From 9af9ffd2a4167db95e9cd59d224eefecd1e5faf3 Mon Sep 17 00:00:00 2001 From: krypton-byte Date: Sat, 22 Aug 2026 11:37:17 +0000 Subject: [PATCH 01/24] fix(docs): remove redundant deploy_pages job mike deploy --push already pushes to gh-pages branch directly. The deploy_pages job (actions/deploy-pages@v4) was redundant and only triggered on tag pushes, causing confusion. Generated with Codebuff Co-Authored-By: Codebuff --- .github/workflows/docs.yml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index e8c2dec..b53cb50 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -190,17 +190,3 @@ jobs: - name: List deployed versions if: success() run: uv run --no-project mike list - - # ── Job 4: Deploy to GitHub Pages (only for tag releases) ────────────────── - deploy_pages: - name: Deploy to GitHub Pages - needs: deploy - runs-on: ubuntu-latest - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 From ca2b63fc85d8ca8925453fc72c1551217399b52b Mon Sep 17 00:00:00 2001 From: krypton-byte Date: Sat, 22 Aug 2026 15:50:11 +0000 Subject: [PATCH 02/24] fix(typing): make Tryx.on() decorator strictly typed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace Callable[..., Any] with precise type annotations: - Tryx.on(): returns Callable[[Callable[[TryxClient, EventT], Awaitable[None]]], ...] - Dispatcher.__call__: typed callback parameter and return - handlers field typed as Dispatcher instead of Any - Removed unused Any import from client.pyi 🤖 Generated with Codebuff Co-Authored-By: Codebuff --- python/tryx/client.pyi | 11 ++++++++--- python/tryx/events.pyi | 9 ++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/python/tryx/client.pyi b/python/tryx/client.pyi index c212c61..e16fb7d 100644 --- a/python/tryx/client.pyi +++ b/python/tryx/client.pyi @@ -1,6 +1,8 @@ """High-level client API surface for Tryx Python bindings.""" -from typing import Any, Awaitable, Callable, TypeVar +from typing import Awaitable, Callable, TypeVar + +from .events import Dispatcher from .backend import BackendBase, FfiStoreProtocol, StoreBase from .events import EvMessage @@ -84,13 +86,16 @@ class Tryx: - ``StoreBase`` subclass — pure Python custom backend """ - handlers: Any + handlers: Dispatcher def __init__(self, backend: BackendBase | FfiStoreProtocol | StoreBase) -> None: ... def get_client(self) -> TryxClient: ... def on( self, event_type: type[EventT] - ) -> Callable[[Callable[..., Awaitable[Any]]], Callable[..., Awaitable[Any]]]: ... + ) -> Callable[ + [Callable[[TryxClient, EventT], Awaitable[None]]], + Callable[[TryxClient, EventT], Awaitable[None]], + ]: ... def run(self) -> Awaitable[None]: ... def run_blocking(self) -> None: ... diff --git a/python/tryx/events.pyi b/python/tryx/events.pyi index d62c782..6edc46c 100644 --- a/python/tryx/events.pyi +++ b/python/tryx/events.pyi @@ -21,13 +21,16 @@ class Dispatcher: """Callback registry used by the runtime to map event classes to handlers.""" def __init__(self) -> None: ... - def on(self, event_type: type[EventT]) -> Dispatcher: + def on( + self, event_type: type[EventT] + ) -> Dispatcher: """Select an event class and return a decorator-like dispatcher object.""" ... def __call__( - self, func: Callable[..., Awaitable[Any]] | Callable[..., Any] - ) -> Callable[..., Any]: + self, + func: Callable[..., Awaitable[None]] | Callable[..., Any], + ) -> Callable[..., Awaitable[None]] | Callable[..., Any]: """Register a callback function for the previously selected event class.""" ... From 85e5dc97a0658ec46348b655ad86116589572489 Mon Sep 17 00:00:00 2001 From: krypton-byte Date: Sat, 22 Aug 2026 15:57:27 +0000 Subject: [PATCH 03/24] fix(typing): replace ellipsis defaults with explicit Rust-matched values MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Audit against Rust #[pyo3(signature)] to fix all placeholder defaults: - VideoFrame.orientation: ... -> 0 - AudioPlayer.__init__(buffer_frames): ... -> 3 - AudioPlayer.play(mode): str = ... -> str | None = None - VideoPlayer.__init__(fps): ... -> 15 - client.pyi: remove duplicate AudioPlayer/VideoPlayer stubs, import from media.pyi - events.pyi: tighten Dispatcher.__call__ return type 🤖 Generated with Codebuff Co-Authored-By: Codebuff --- python/tryx/client.pyi | 32 +++++++------------------------- python/tryx/events.pyi | 4 +--- python/tryx/media.pyi | 9 +++++---- 3 files changed, 13 insertions(+), 32 deletions(-) diff --git a/python/tryx/client.pyi b/python/tryx/client.pyi index e16fb7d..df62886 100644 --- a/python/tryx/client.pyi +++ b/python/tryx/client.pyi @@ -2,43 +2,25 @@ from typing import Awaitable, Callable, TypeVar -from .events import Dispatcher - from .backend import BackendBase, FfiStoreProtocol, StoreBase -from .events import EvMessage +from .events import Dispatcher, EvMessage +from .media import ( + AudioPlayer as AudioPlayer, +) from .media import ( AudioSink, AudioSource, VideoSink, VideoSource, ) +from .media import ( + VideoPlayer as VideoPlayer, +) from .types import JID, MediaReuploadResult, ProfilePicture, SendResult, UploadResponse from .wacore import MediaType, Node from .waproto.whatsapp_pb2 import Message as MessageProto from .waproto.whatsapp_pb2 import MessageKey, SyncActionValue -# Re-export media types that are registered in the client module -class AudioPlayer(AudioSource): - """Built-in audio player that decodes and plays audio files.""" - - def __init__(self, buffer_frames: int = ...) -> None: ... - def play(self, path: str, mode: str = ...) -> None: ... - def stop(self) -> None: ... - def pause(self) -> None: ... - def resume(self) -> None: ... - def enqueue(self, path: str) -> None: ... - def skip(self) -> None: ... - def clear_queue(self) -> None: ... - @property - def state(self) -> str: ... - -class VideoPlayer(VideoSource): - """Built-in video player that demuxes and decodes video files.""" - - def __init__(self, fps: int = ...) -> None: ... - def play(self, path: str) -> None: ... - def stop(self) -> None: ... - EventT = TypeVar("EventT") class IsOnWhatsAppResult: diff --git a/python/tryx/events.pyi b/python/tryx/events.pyi index 6edc46c..3328d16 100644 --- a/python/tryx/events.pyi +++ b/python/tryx/events.pyi @@ -21,9 +21,7 @@ class Dispatcher: """Callback registry used by the runtime to map event classes to handlers.""" def __init__(self) -> None: ... - def on( - self, event_type: type[EventT] - ) -> Dispatcher: + def on(self, event_type: type[EventT]) -> Dispatcher: """Select an event class and return a decorator-like dispatcher object.""" ... diff --git a/python/tryx/media.pyi b/python/tryx/media.pyi index fcc56db..4c6bc3a 100644 --- a/python/tryx/media.pyi +++ b/python/tryx/media.pyi @@ -14,6 +14,7 @@ WA_FRAME_SAMPLES: Final[int] WA_FRAME_MS: Final[int] def validate_audio_frame(frame: bytes | bytearray | memoryview) -> bytes: ... + @dataclass(frozen=True) class VideoFrame: """One H.264 Annex-B access unit received from or sent to a call.""" @@ -24,7 +25,7 @@ class VideoFrame: keyframe: bool width: int | None height: int | None - orientation: int = ... + orientation: int = 0 class AudioSource: """Abstract audio source that produces raw PCM frames.""" @@ -35,8 +36,8 @@ class AudioSource: class AudioPlayer(AudioSource): """Built-in audio player that decodes and plays audio files.""" - def __init__(self, buffer_frames: int = ...) -> None: ... - def play(self, path: str, mode: str = ...) -> None: ... + def __init__(self, buffer_frames: int = 3) -> None: ... + def play(self, path: str, mode: str | None = None) -> None: ... def stop(self) -> None: ... def pause(self) -> None: ... def resume(self) -> None: ... @@ -49,7 +50,7 @@ class AudioPlayer(AudioSource): class VideoPlayer(VideoSource): """Built-in video player that demuxes and decodes video files.""" - def __init__(self, fps: int = ...) -> None: ... + def __init__(self, fps: int = 15) -> None: ... def play(self, path: str) -> None: ... def stop(self) -> None: ... From 9d5177fab0fa03a759a73c1750f0afcc0a5c34fd Mon Sep 17 00:00:00 2001 From: krypton-byte Date: Sat, 22 Aug 2026 16:04:38 +0000 Subject: [PATCH 04/24] fix(typing): remove all Any from Dispatcher.__call__ signature MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace Callable[..., Any] with Callable[..., object] for sync callbacks. Added docstring clarifying callback receives (client, event) args. Removed unused Any import from events.pyi. 🤖 Generated with Codebuff Co-Authored-By: Codebuff --- python/tryx/events.pyi | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/python/tryx/events.pyi b/python/tryx/events.pyi index 3328d16..0060b0e 100644 --- a/python/tryx/events.pyi +++ b/python/tryx/events.pyi @@ -1,7 +1,7 @@ """Event classes and payload types emitted by the Tryx runtime.""" from datetime import datetime -from typing import Any, Awaitable, Callable, TypeVar +from typing import Awaitable, Callable, TypeVar from .types import JID, MessageInfo, MessageSource from .wacore import BusinessSubscription, KeyIndexInfo, Node @@ -27,9 +27,12 @@ class Dispatcher: def __call__( self, - func: Callable[..., Awaitable[None]] | Callable[..., Any], - ) -> Callable[..., Awaitable[None]] | Callable[..., Any]: - """Register a callback function for the previously selected event class.""" + func: Callable[..., Awaitable[None]] | Callable[..., object], + ) -> Callable[..., Awaitable[None]] | Callable[..., object]: + """Register a callback function for the previously selected event class. + + The callback receives ``(client, event)`` as positional arguments. + """ ... class TempBanReason: From c41439d921fdf8870e356fbaa2e1069a521831d5 Mon Sep 17 00:00:00 2001 From: krypton-byte Date: Sat, 22 Aug 2026 16:07:24 +0000 Subject: [PATCH 05/24] fix(typing): revert Dispatcher.__call__ to Any (Rust accepts any callable) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dispatcher.__call__ literally does push(func) with no type validation. Any is the correct type here — the strict typing lives in Tryx.on() which is the user-facing API with proper Callable[..., EventT] inference. 🤖 Generated with Codebuff Co-Authored-By: Codebuff --- python/tryx/events.pyi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/python/tryx/events.pyi b/python/tryx/events.pyi index 0060b0e..af054ec 100644 --- a/python/tryx/events.pyi +++ b/python/tryx/events.pyi @@ -1,7 +1,7 @@ """Event classes and payload types emitted by the Tryx runtime.""" from datetime import datetime -from typing import Awaitable, Callable, TypeVar +from typing import Any, Awaitable, Callable, TypeVar from .types import JID, MessageInfo, MessageSource from .wacore import BusinessSubscription, KeyIndexInfo, Node @@ -27,8 +27,8 @@ class Dispatcher: def __call__( self, - func: Callable[..., Awaitable[None]] | Callable[..., object], - ) -> Callable[..., Awaitable[None]] | Callable[..., object]: + func: Callable[..., Awaitable[None]] | Callable[..., Any], + ) -> Callable[..., Awaitable[None]] | Callable[..., Any]: """Register a callback function for the previously selected event class. The callback receives ``(client, event)`` as positional arguments. From 62366c31445c6a76adaf5ba4f0d7f21d8d2b8ea5 Mon Sep 17 00:00:00 2001 From: krypton-byte Date: Sat, 22 Aug 2026 16:31:55 +0000 Subject: [PATCH 06/24] docs(typing): add PEP 257 + Google Style docstrings to client.pyi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add comprehensive Google Style docstrings to all 180 methods in client.pyi including Tryx, TryxClient, CallHandle, VoipClient, all sub-clients, and constructor methods. Docstrings include Args, Returns, Raises, and Example sections where applicable, based on actual Rust source code. 🤖 Generated with Codebuff Co-Authored-By: Codebuff --- python/tryx/client.pyi | 875 ++++++++++++++++++++++++++++++++--------- 1 file changed, 693 insertions(+), 182 deletions(-) diff --git a/python/tryx/client.pyi b/python/tryx/client.pyi index df62886..0782095 100644 --- a/python/tryx/client.pyi +++ b/python/tryx/client.pyi @@ -70,16 +70,65 @@ class Tryx: handlers: Dispatcher - def __init__(self, backend: BackendBase | FfiStoreProtocol | StoreBase) -> None: ... - def get_client(self) -> TryxClient: ... + def __init__(self, backend: BackendBase | FfiStoreProtocol | StoreBase) -> None: + """Create a Tryx runtime with the given storage backend. + + Args: + backend: Storage backend (SqliteStore, FfiStoreProtocol, or StoreBase). + + Example:: + + from tryx.backend import SqliteStore + from tryx.client import Tryx + + app = Tryx(SqliteStore('session.db')) + """ + ... + def get_client(self) -> TryxClient: + """Return the connected client facade. + + Raises: + RuntimeError: If the client is not yet running. + + Example:: + + client = app.get_client() + await client.send_text(to=JID('123', 's.whatsapp.net'), text='hi') + """ + ... def on( self, event_type: type[EventT] ) -> Callable[ [Callable[[TryxClient, EventT], Awaitable[None]]], Callable[[TryxClient, EventT], Awaitable[None]], - ]: ... - def run(self) -> Awaitable[None]: ... - def run_blocking(self) -> None: ... + ]: + """Decorator to register an async event handler. + + Example:: + + @app.on(EvMessage) + async def handler(client: TryxClient, event: EvMessage) -> None: + text = event.data.get_text() + chat = event.data.message_info.source.chat + await client.send_text(to=chat, text=text) + """ + ... + def run(self) -> Awaitable[None]: + """Start the client in async mode. + + Example:: + + asyncio.run(app.run()) + """ + ... + def run_blocking(self) -> None: + """Start the client and block until it exits. + + Example:: + + app.run_blocking() + """ + ... class TryxClient: """Connected client facade for messaging and feature namespaces.""" @@ -102,14 +151,73 @@ class TryxClient: events: EventsClient voip: VoipClient - def is_connected(self) -> bool: ... - async def download_media(self, message: DownloadableMedia) -> bytes: ... - async def upload_file(self, path: str, media_type: MediaType) -> UploadResponse: ... - async def upload(self, data: bytes, media_type: MediaType) -> UploadResponse: ... - async def send_message(self, to: JID, message: MessageProto) -> SendResult: ... + def is_connected(self) -> bool: + """Return True if the underlying WebSocket is connected.""" + ... + async def download_media(self, message: DownloadableMedia) -> bytes: + """Download media content from a WhatsApp message. + + Accepts any protobuf media type (Image, Video, Audio, Document, Sticker). + + Returns: + Raw media bytes. + + Example:: + + data = await client.download_media(event.data.raw_proto.image_message) + """ + ... + async def upload_file(self, path: str, media_type: MediaType) -> UploadResponse: + """Upload a file from disk to WhatsApp servers. + + Args: + path: Filesystem path to the file. + media_type: Category of media (MediaType.Image, etc.). + + Returns: + Upload metadata including URL, media key, and hashes. + + Example:: + + resp = await client.upload_file('photo.jpg', MediaType.Image) + """ + ... + async def upload(self, data: bytes, media_type: MediaType) -> UploadResponse: + """Upload raw bytes to WhatsApp servers. + + Args: + data: Raw file content. + media_type: Category of media. + + Returns: + Upload metadata. + """ + ... + async def send_message(self, to: JID, message: MessageProto) -> SendResult: + """Send a pre-built protobuf message.""" + ... async def send_text( self, to: JID, text: str, quoted: EvMessage | None = None - ) -> SendResult: ... + ) -> SendResult: + """Send a plain text message. + + Args: + to: Recipient JID. + text: Message body. + quoted: Optional message to quote-reply. + + Returns: + SendResult with the server-assigned message ID. + + Example:: + + result = await client.send_text( + to=JID('123', 's.whatsapp.net'), + text='Hello!', + ) + print(result.message_id) + """ + ... async def send_photo( self, to: JID, @@ -117,7 +225,9 @@ class TryxClient: mimetype: str | None = None, caption: str | None = None, quoted: EvMessage | None = None, - ) -> SendResult: ... + ) -> SendResult: + """Send an image with an optional caption.""" + ... async def send_document( self, to: JID, @@ -126,7 +236,9 @@ class TryxClient: file_name: str | None = None, caption: str | None = None, quoted: EvMessage | None = None, - ) -> SendResult: ... + ) -> SendResult: + """Send a document/file with an optional caption.""" + ... async def send_audio( self, to: JID, @@ -135,7 +247,18 @@ class TryxClient: ptt: bool = False, seconds: int | None = None, quoted: EvMessage | None = None, - ) -> SendResult: ... + ) -> SendResult: + """Send an audio clip. + + Args: + to: Recipient JID. + audio_data: Raw audio bytes. + mimetype: MIME type (auto-detected if None). + ptt: If True, send as push-to-talk voice message. + seconds: Duration in seconds (used for voice messages). + quoted: Optional message to quote-reply. + """ + ... async def send_video( self, to: JID, @@ -145,7 +268,9 @@ class TryxClient: seconds: int | None = None, gif_playback: bool = False, quoted: EvMessage | None = None, - ) -> SendResult: ... + ) -> SendResult: + """Send a video with an optional caption.""" + ... async def send_gif( self, to: JID, @@ -153,14 +278,18 @@ class TryxClient: caption: str | None = None, seconds: int | None = None, quoted: EvMessage | None = None, - ) -> SendResult: ... + ) -> SendResult: + """Send a GIF (sent as video with gif_playback=True).""" + ... async def send_sticker( self, to: JID, sticker_data: bytes, is_animated: bool = False, quoted: EvMessage | None = None, - ) -> SendResult: ... + ) -> SendResult: + """Send a sticker (static WEBP or animated).""" + ... async def request_media_reupload( self, message_id: str, @@ -168,28 +297,56 @@ class TryxClient: media_key: bytes, is_from_me: bool = False, participant: JID | None = None, - ) -> MediaReuploadResult: ... + ) -> MediaReuploadResult: + """Request WhatsApp to re-upload expired media for re-download.""" + ... class CallHandle: """Handle for an active voice/video call.""" call_id: str peer: JID - def is_muted(self) -> bool: ... - def set_muted(self, muted: bool) -> None: ... - async def hangup(self) -> None: ... - async def wait_ended(self) -> None: ... + def is_muted(self) -> bool: + """Return True if the local microphone is muted.""" + ... + def set_muted(self, muted: bool) -> None: + """Mute or unmute the local microphone.""" + ... + async def hangup(self) -> None: + """End the call.""" + ... + async def wait_ended(self) -> None: + """Block until the call is ended (by either party).""" + ... async def start_video( self, video_source: VideoSource, video_sink: VideoSink - ) -> None: ... - async def stop_video(self) -> None: ... - async def invite_participant(self, target: JID) -> None: ... - async def ring_participant(self, target: JID) -> None: ... - async def start_screen_share(self, screen_share_id: int | None = None) -> None: ... - async def stop_screen_share(self) -> None: ... - async def set_approval_required(self, enabled: bool) -> None: ... - async def admit_waiting_user(self, target: JID) -> None: ... - async def deny_waiting_user(self, target: JID) -> None: ... + ) -> None: + """Start sending and receiving video in the call.""" + ... + async def stop_video(self) -> None: + """Stop sending video (audio continues).""" + ... + async def invite_participant(self, target: JID) -> None: + """Invite a participant to a group call.""" + ... + async def ring_participant(self, target: JID) -> None: + """Ring a specific participant in a group call.""" + ... + async def start_screen_share(self, screen_share_id: int | None = None) -> None: + """Start sharing screen content.""" + ... + async def stop_screen_share(self) -> None: + """Stop screen sharing.""" + ... + async def set_approval_required(self, enabled: bool) -> None: + """Toggle whether new participants need admin approval.""" + ... + async def admit_waiting_user(self, target: JID) -> None: + """Admit a user waiting in the lobby.""" + ... + async def deny_waiting_user(self, target: JID) -> None: + """Deny a user waiting in the lobby.""" + ... class IncomingCallEvent: """Event emitted when an incoming call is received.""" @@ -199,15 +356,29 @@ class IncomingCallEvent: is_video: bool async def accept( self, audio_source: AudioSource, audio_sink: AudioSink - ) -> CallHandle: ... - async def reject(self) -> None: ... + ) -> CallHandle: + """Accept the incoming call and return a handle for control. + + Returns: + CallHandle for controlling the call. + """ + ... + async def reject(self) -> None: + """Reject the incoming call.""" + ... class VoipClient: """VoIP client for making and receiving voice/video calls.""" async def call( self, peer: JID, audio_source: AudioSource, audio_sink: AudioSink - ) -> CallHandle: ... + ) -> CallHandle: + """Start a 1:1 voice call. + + Returns: + CallHandle for controlling the call. + """ + ... async def group_call( self, peers: list[JID], @@ -215,7 +386,9 @@ class VoipClient: audio_sink: AudioSink, video_source: VideoSource | None = None, video_sink: VideoSink | None = None, - ) -> CallHandle: ... + ) -> CallHandle: + """Start a group voice/video call with multiple participants.""" + ... async def join_call_link( self, token_or_url: str, @@ -224,7 +397,9 @@ class VoipClient: audio_sink: AudioSink, video_source: VideoSource | None = None, video_sink: VideoSink | None = None, - ) -> CallHandle: ... + ) -> CallHandle: + """Join a call via invite link.""" + ... async def video_call( self, peer: JID, @@ -232,36 +407,78 @@ class VoipClient: audio_sink: AudioSink, video_source: VideoSource, video_sink: VideoSink, - ) -> CallHandle: ... + ) -> CallHandle: + """Start a 1:1 video call with camera and microphone.""" + ... class AdvancedClient: """Advanced diagnostics, lifecycle waits, and raw protocol escape hatches.""" - def is_logged_in(self) -> bool: ... - def get_push_name(self) -> str: ... - def get_pn(self) -> JID | None: ... - def get_lid(self) -> JID | None: ... - def stats(self) -> dict[str, int]: ... - async def memory_report_text(self) -> str: ... - async def resource_report_text(self) -> str: ... - async def wait_for_socket(self, timeout_seconds: float) -> None: ... - async def wait_for_connected(self, timeout_seconds: float) -> None: ... - async def wait_for_startup_sync(self, timeout_seconds: float) -> None: ... - async def flush_pending_signal_state(self) -> None: ... - async def send_raw_bytes(self, plaintext: bytes) -> None: ... - async def send_node(self, node: Node) -> None: ... - def set_force_active_delivery_receipts(self, active: bool) -> None: ... + def is_logged_in(self) -> bool: + """Return True if the session is authenticated.""" + ... + def get_push_name(self) -> str: + """Return the current push name (display name).""" + ... + def get_pn(self) -> JID | None: + """Return the phone-number JID, or None if not linked.""" + ... + def get_lid(self) -> JID | None: + """Return the LID (linked ID) JID, or None if not linked.""" + ... + def stats(self) -> dict[str, int]: + """Return internal counters (handlers, messages, etc.).""" + ... + async def memory_report_text(self) -> str: + """Return a human-readable memory usage report.""" + ... + async def resource_report_text(self) -> str: + """Return a human-readable resource usage report.""" + ... + async def wait_for_socket(self, timeout_seconds: float) -> None: + """Block until the WebSocket connection is established.""" + ... + async def wait_for_connected(self, timeout_seconds: float) -> None: + """Block until the client is fully connected.""" + ... + async def wait_for_startup_sync(self, timeout_seconds: float) -> None: + """Block until the initial history sync completes.""" + ... + async def flush_pending_signal_state(self) -> None: + """Flush any pending Signal protocol state to the store.""" + ... + async def send_raw_bytes(self, plaintext: bytes) -> None: + """Send raw encrypted bytes directly over the socket.""" + ... + async def send_node(self, node: Node) -> None: + """Send a protocol node directly over the socket.""" + ... + def set_force_active_delivery_receipts(self, active: bool) -> None: + """Toggle forced active delivery receipts.""" + ... class LabelsClient: """WhatsApp label app-state operations.""" - async def create_label(self, label_id: str, name: str, color: int) -> None: ... - async def delete_label(self, label_id: str) -> None: ... - async def add_chat_label(self, jid: JID, label_id: str) -> None: ... - async def remove_chat_label(self, jid: JID, label_id: str) -> None: ... + async def create_label(self, label_id: str, name: str, color: int) -> None: + """Create a new label with the given name and color.""" + ... + async def delete_label(self, label_id: str) -> None: + """Delete a label by ID.""" + ... + async def add_chat_label(self, jid: JID, label_id: str) -> None: + """Attach a label to a chat.""" + ... + async def remove_chat_label(self, jid: JID, label_id: str) -> None: + """Remove a label from a chat.""" + ... class CommentsClient: """Channel/comment operations anchored to a received parent message.""" - async def send_text(self, parent: EvMessage, text: str) -> str: ... - async def send_message(self, parent: EvMessage, message: MessageProto) -> str: ... + async def send_text(self, parent: EvMessage, text: str) -> str: + """Reply to a channel message with text.""" + ... + async def send_message(self, parent: EvMessage, message: MessageProto) -> str: + """Reply to a channel message with a protobuf message.""" + ... class EventResponse: """RSVP response for WhatsApp events.""" @@ -282,7 +499,9 @@ class EventsClient: join_link: str | None = None, is_scheduled_call: bool | None = None, extra_guests_allowed: bool | None = None, - ) -> dict[str, object]: ... + ) -> dict[str, object]: + """Create a WhatsApp event in a chat.""" + ... async def respond( self, chat_jid: JID, @@ -291,14 +510,24 @@ class EventsClient: message_secret: bytes, response: EventResponse, extra_guest_count: int | None = None, - ) -> str: ... + ) -> str: + """RSVP to a WhatsApp event.""" + ... class ContactClient: """Contact and profile lookup operations.""" - async def get_info(self, phones: list[str]) -> list[ContactInfo]: ... - async def get_user_info(self, jid: JID) -> dict[JID, UserInfo]: ... - async def get_profile_picture(self, jid: JID, preview: bool) -> ProfilePicture: ... - async def is_on_whatsapp(self, jid: list[JID]) -> list[IsOnWhatsAppResult]: ... + async def get_info(self, phones: list[str]) -> list[ContactInfo]: + """Look up contact info by phone numbers.""" + ... + async def get_user_info(self, jid: JID) -> dict[JID, UserInfo]: + """Get detailed user profile info by JID.""" + ... + async def get_profile_picture(self, jid: JID, preview: bool) -> ProfilePicture: + """Fetch the profile picture metadata for a JID.""" + ... + async def is_on_whatsapp(self, jid: list[JID]) -> list[IsOnWhatsAppResult]: + """Check which JIDs are registered on WhatsApp.""" + ... class ChatActionsClient: """Chat-level actions such as archive, pin, mute, and reactions.""" @@ -308,54 +537,80 @@ class ChatActionsClient: remote_jid: JID, from_me: bool, participant: JID | None = None, - ) -> MessageKey: ... + ) -> MessageKey: + """Build a protobuf MessageKey from its components.""" + ... @staticmethod def build_message_range( last_message_timestamp: int, last_system_message_timestamp: int | None, messages: list[tuple[MessageKey, int]], - ) -> SyncActionValue.SyncActionMessageRange: ... + ) -> SyncActionValue.SyncActionMessageRange: + """Build a SyncActionMessageRange for sync operations.""" + ... async def archive_chat( self, jid: JID, message_range: SyncActionValue.SyncActionMessageRange | None = None, - ) -> None: ... + ) -> None: + """Archive a chat.""" + ... async def unarchive_chat( self, jid: JID, message_range: SyncActionValue.SyncActionMessageRange | None = None, - ) -> None: ... - async def pin_chat(self, jid: JID) -> None: ... - async def unpin_chat(self, jid: JID) -> None: ... - async def mute_chat(self, jid: JID) -> None: ... - async def mute_chat_until(self, jid: JID, mute_end_timestamp_ms: int) -> None: ... - async def unmute_chat(self, jid: JID) -> None: ... + ) -> None: + """Unarchive a chat.""" + ... + async def pin_chat(self, jid: JID) -> None: + """Pin a chat to the top of the list.""" + ... + async def unpin_chat(self, jid: JID) -> None: + """Unpin a chat.""" + ... + async def mute_chat(self, jid: JID) -> None: + """Mute a chat indefinitely.""" + ... + async def mute_chat_until(self, jid: JID, mute_end_timestamp_ms: int) -> None: + """Mute a chat until the given Unix timestamp (ms).""" + ... + async def unmute_chat(self, jid: JID) -> None: + """Unmute a chat.""" + ... async def star_message( self, chat_jid: JID, participant_jid: JID | None, message_id: str, from_me: bool, - ) -> None: ... + ) -> None: + """Star a message in a chat.""" + ... async def unstar_message( self, chat_jid: JID, participant_jid: JID | None, message_id: str, from_me: bool, - ) -> None: ... + ) -> None: + """Unstar a message in a chat.""" + ... async def mark_chat_as_read( self, jid: JID, read: bool, message_range: SyncActionValue.SyncActionMessageRange | None = None, - ) -> None: ... + ) -> None: + """Mark a chat as read or unread.""" + ... async def delete_chat( self, jid: JID, delete_media: bool, message_range: SyncActionValue.SyncActionMessageRange | None = None, - ) -> None: ... + ) -> None: + """Delete an entire chat (with optional media deletion).""" + ... async def delete_message_for_me( self, chat_jid: JID, @@ -364,33 +619,43 @@ class ChatActionsClient: from_me: bool, delete_media: bool, message_timestamp: int | None = None, - ) -> None: ... + ) -> None: + """Delete a single message for the local user only.""" + ... async def clear_chat( self, jid: JID, delete_starred: bool, delete_media: bool, message_range: SyncActionValue.SyncActionMessageRange | None = None, - ) -> None: ... + ) -> None: + """Clear all messages in a chat.""" + ... async def save_contact( self, jid: JID, full_name: str | None = None, first_name: str | None = None, save_on_primary_addressbook: bool = False, - ) -> None: ... + ) -> None: + """Save a contact to the address book.""" + ... async def edit_message( self, chat_jid: JID, original_id: str, new_message: MessageProto, - ) -> str: ... + ) -> str: + """Edit a previously sent message.""" + ... async def revoke_message( self, chat_jid: JID, message_id: str, original_sender: JID | None = None, - ) -> None: ... + ) -> None: + """Revoke (delete for everyone) a sent message.""" + ... async def react_message( self, chat_jid: JID, @@ -398,7 +663,9 @@ class ChatActionsClient: reaction: str, from_me: bool = False, participant_jid: JID | None = None, - ) -> str: ... + ) -> str: + """Add or remove an emoji reaction to a message.""" + ... class GroupType: """Type stub for GroupType.""" @@ -425,7 +692,17 @@ class CreateCommunityOptions: closed: bool = False, allow_non_admin_sub_group_creation: bool = False, create_general_chat: bool = True, - ) -> None: ... + ) -> None: + """Create options for a new community. + + Args: + name: Community name. + description: Optional description. + closed: If True, only admins can add subgroups. + allow_non_admin_sub_group_creation: Allow non-admins to create subgroups. + create_general_chat: Auto-create a general chat. + """ + ... class CreateCommunityResult: """Type stub for CreateCommunityResult.""" @@ -491,41 +768,59 @@ class GroupMetadata: class CommunityClient: """Type stub for CommunityClient.""" @staticmethod - def classify_group(metadata: GroupMetadata) -> GroupType: ... - async def create( - self, options: CreateCommunityOptions - ) -> CreateCommunityResult: ... - async def deactivate(self, community_jid: JID) -> None: ... + def classify_group(metadata: GroupMetadata) -> GroupType: + """Classify a group as Default, Community, LinkedSubgroup, etc.""" + ... + async def create(self, options: CreateCommunityOptions) -> CreateCommunityResult: + """Create a new community with the given options.""" + ... + async def deactivate(self, community_jid: JID) -> None: + """Deactivate (archive) a community.""" + ... async def link_subgroups( self, community_jid: JID, subgroup_jids: list[JID], - ) -> LinkSubgroupsResult: ... + ) -> LinkSubgroupsResult: + """Link existing groups as subgroups of a community.""" + ... async def unlink_subgroups( self, community_jid: JID, subgroup_jids: list[JID], remove_orphan_members: bool, - ) -> UnlinkSubgroupsResult: ... - async def get_subgroups(self, community_jid: JID) -> list[CommunitySubgroup]: ... + ) -> UnlinkSubgroupsResult: + """Unlink subgroups from a community.""" + ... + async def get_subgroups(self, community_jid: JID) -> list[CommunitySubgroup]: + """List all subgroups in a community.""" + ... async def get_subgroup_participant_counts( self, community_jid: JID, - ) -> list[tuple[JID, int]]: ... + ) -> list[tuple[JID, int]]: + """Get participant counts for each subgroup.""" + ... async def query_linked_group( self, community_jid: JID, subgroup_jid: JID, - ) -> GroupMetadata: ... + ) -> GroupMetadata: + """Query metadata for a specific linked subgroup.""" + ... async def join_subgroup( self, community_jid: JID, subgroup_jid: JID, - ) -> GroupMetadata: ... + ) -> GroupMetadata: + """Join a subgroup within a community.""" + ... async def get_linked_groups_participants( self, community_jid: JID, - ) -> list[GroupParticipant]: ... + ) -> list[GroupParticipant]: + """Get all participants across linked groups.""" + ... class NewsletterVerification: """Type stub for NewsletterVerification.""" @@ -607,42 +902,80 @@ class NewsletterFollower: class NewsletterClient: """Type stub for NewsletterClient.""" - async def list_subscribed(self) -> list[NewsletterMetadata]: ... - async def get_admin_info(self, jid: JID) -> NewsletterAdminInfo: ... - async def get_followers(self, jid: JID, count: int) -> list[NewsletterFollower]: ... - async def get_metadata(self, jid: JID) -> NewsletterMetadata: ... - async def get_metadata_by_invite(self, invite_code: str) -> NewsletterMetadata: ... + async def list_subscribed(self) -> list[NewsletterMetadata]: + """List all newsletters the account is subscribed to.""" + ... + async def get_admin_info(self, jid: JID) -> NewsletterAdminInfo: + """Get admin information for a newsletter.""" + ... + async def get_followers(self, jid: JID, count: int) -> list[NewsletterFollower]: + """Get the follower list for a newsletter.""" + ... + async def get_metadata(self, jid: JID) -> NewsletterMetadata: + """Get metadata for a newsletter by JID.""" + ... + async def get_metadata_by_invite(self, invite_code: str) -> NewsletterMetadata: + """Get metadata for a newsletter by invite code.""" + ... async def create( self, name: str, description: str | None = None, - ) -> NewsletterMetadata: ... - async def join(self, jid: JID) -> NewsletterMetadata: ... - async def leave(self, jid: JID) -> None: ... + ) -> NewsletterMetadata: + """Create a new newsletter channel.""" + ... + async def join(self, jid: JID) -> NewsletterMetadata: + """Join a newsletter by JID.""" + ... + async def leave(self, jid: JID) -> None: + """Leave a newsletter.""" + ... async def update( self, jid: JID, name: str | None = None, description: str | None = None, - ) -> NewsletterMetadata: ... - async def subscribe_live_updates(self, jid: JID) -> int: ... - async def send_message(self, jid: JID, message: MessageProto) -> str: ... - async def send_reaction(self, jid: JID, server_id: int, reaction: str) -> None: ... - async def set_follower_mute(self, jid: JID, muted: bool) -> None: ... - async def set_admin_mute(self, jid: JID, muted: bool) -> None: ... + ) -> NewsletterMetadata: + """Update newsletter name or description.""" + ... + async def subscribe_live_updates(self, jid: JID) -> int: + """Subscribe to live updates for a newsletter. + + Returns: + Ticket ID for the live update stream. + """ + ... + async def send_message(self, jid: JID, message: MessageProto) -> str: + """Send a protobuf message to a newsletter.""" + ... + async def send_reaction(self, jid: JID, server_id: int, reaction: str) -> None: + """React to a newsletter message.""" + ... + async def set_follower_mute(self, jid: JID, muted: bool) -> None: + """Mute or unmute newsletter notifications as a follower.""" + ... + async def set_admin_mute(self, jid: JID, muted: bool) -> None: + """Mute or unmute newsletter notifications as an admin.""" + ... async def edit_message( self, jid: JID, message_id: str, message: MessageProto, - ) -> None: ... - async def revoke_message(self, jid: JID, message_id: str) -> None: ... + ) -> None: + """Edit a previously sent newsletter message.""" + ... + async def revoke_message(self, jid: JID, message_id: str) -> None: + """Revoke a newsletter message.""" + ... async def get_messages( self, jid: JID, count: int, before: int | None = None, - ) -> list[NewsletterMessage]: ... + ) -> list[NewsletterMessage]: + """Fetch recent messages from a newsletter.""" + ... class MemberLinkMode: """Type stub for MemberLinkMode.""" @@ -674,7 +1007,15 @@ class GroupParticipantOptions: jid: JID, phone_number: JID | None = None, privacy: bytes | None = None, - ) -> None: ... + ) -> None: + """Create a group participant entry. + + Args: + jid: Participant JID. + phone_number: Optional phone number JID. + privacy: Optional privacy bytes. + """ + ... class CreateGroupOptions: """Type stub for CreateGroupOptions.""" @@ -703,7 +1044,22 @@ class CreateGroupOptions: closed: bool = False, allow_non_admin_sub_group_creation: bool = False, create_general_chat: bool = False, - ) -> None: ... + ) -> None: + """Create options for a new group. + + Args: + subject: Group name. + participants: List of initial participants. + member_link_mode: Who can share the group link. + member_add_mode: Who can add members. + membership_approval_mode: Require approval for new members. + ephemeral_expiration: Disappearing message timer in seconds (0 = off). + is_parent: If True, create as a parent group. + closed: If True, only admins can edit group info. + allow_non_admin_sub_group_creation: Allow non-admins to create subgroups. + create_general_chat: Auto-create a general chat. + """ + ... class CreateGroupResult: """Type stub for CreateGroupResult.""" @@ -739,83 +1095,151 @@ class GroupInfo: class GroupsClient: """Type stub for GroupsClient.""" - async def query_info(self, jid: JID) -> GroupInfo: ... - async def get_participating(self) -> dict[str, GroupMetadata]: ... - async def get_metadata(self, jid: JID) -> GroupMetadata: ... - async def create_group(self, options: CreateGroupOptions) -> CreateGroupResult: ... - async def set_subject(self, jid: JID, subject: str) -> None: ... + async def query_info(self, jid: JID) -> GroupInfo: + """Query basic group info (participants, addressing mode).""" + ... + async def get_participating(self) -> dict[str, GroupMetadata]: + """Get all groups the account is participating in.""" + ... + async def get_metadata(self, jid: JID) -> GroupMetadata: + """Get full group metadata including participants.""" + ... + async def create_group(self, options: CreateGroupOptions) -> CreateGroupResult: + """Create a new group with the given options.""" + ... + async def set_subject(self, jid: JID, subject: str) -> None: + """Change the group name (subject).""" + ... async def set_description( self, jid: JID, description: str | None = None, prev: str | None = None, - ) -> None: ... - async def leave(self, jid: JID) -> None: ... + ) -> None: + """Set or update the group description.""" + ... + async def leave(self, jid: JID) -> None: + """Leave a group.""" + ... async def add_participants( self, jid: JID, participants: list[JID], - ) -> list[ParticipantChangeResponse]: ... + ) -> list[ParticipantChangeResponse]: + """Add participants to a group.""" + ... async def remove_participants( self, jid: JID, participants: list[JID], - ) -> list[ParticipantChangeResponse]: ... - async def promote_participants(self, jid: JID, participants: list[JID]) -> None: ... - async def demote_participants(self, jid: JID, participants: list[JID]) -> None: ... - async def get_invite_link(self, jid: JID, reset: bool) -> str: ... - async def set_locked(self, jid: JID, locked: bool) -> None: ... - async def set_announce(self, jid: JID, announce: bool) -> None: ... - async def set_ephemeral(self, jid: JID, expiration: int) -> None: ... + ) -> list[ParticipantChangeResponse]: + """Remove participants from a group.""" + ... + async def promote_participants(self, jid: JID, participants: list[JID]) -> None: + """Promote participants to group admin.""" + ... + async def demote_participants(self, jid: JID, participants: list[JID]) -> None: + """Demote admins to regular participants.""" + ... + async def get_invite_link(self, jid: JID, reset: bool) -> str: + """Get (or reset) the group invite link.""" + ... + async def set_locked(self, jid: JID, locked: bool) -> None: + """Lock or unlock group info changes to admins only.""" + ... + async def set_announce(self, jid: JID, announce: bool) -> None: + """Set whether only admins can send messages.""" + ... + async def set_ephemeral(self, jid: JID, expiration: int) -> None: + """Set disappearing message timer (seconds, 0 to disable).""" + ... async def set_membership_approval( self, jid: JID, mode: MembershipApprovalMode, - ) -> None: ... - async def join_with_invite_code(self, code: str) -> JoinGroupResult: ... + ) -> None: + """Set membership approval mode (On/Off).""" + ... + async def join_with_invite_code(self, code: str) -> JoinGroupResult: + """Join a group using an invite code.""" + ... async def join_with_invite_v4( self, group_jid: JID, code: str, expiration: int, admin_jid: JID, - ) -> JoinGroupResult: ... - async def get_invite_info(self, code: str) -> GroupMetadata: ... - async def get_membership_requests(self, jid: JID) -> list[MembershipRequest]: ... + ) -> JoinGroupResult: + """Join a group using a v4 invite link components.""" + ... + async def get_invite_info(self, code: str) -> GroupMetadata: + """Preview group metadata from an invite code.""" + ... + async def get_membership_requests(self, jid: JID) -> list[MembershipRequest]: + """List pending membership requests.""" + ... async def approve_membership_requests( self, jid: JID, participants: list[JID], - ) -> list[ParticipantChangeResponse]: ... + ) -> list[ParticipantChangeResponse]: + """Approve pending membership requests.""" + ... async def reject_membership_requests( self, jid: JID, participants: list[JID], - ) -> list[ParticipantChangeResponse]: ... - async def set_member_add_mode(self, jid: JID, mode: MemberAddMode) -> None: ... + ) -> list[ParticipantChangeResponse]: + """Reject pending membership requests.""" + ... + async def set_member_add_mode(self, jid: JID, mode: MemberAddMode) -> None: + """Set who can add members (admin-only or all).""" + ... async def set_no_frequently_forwarded( self, jid: JID, restrict: bool, - ) -> None: ... - async def set_allow_admin_reports(self, jid: JID, allow: bool) -> None: ... - async def set_group_history(self, jid: JID, enabled: bool) -> None: ... - async def set_member_link_mode(self, jid: JID, mode: MemberLinkMode) -> None: ... - async def set_limit_sharing(self, jid: JID, enabled: bool) -> None: ... + ) -> None: + """Toggle the frequently-forwarded restriction.""" + ... + async def set_allow_admin_reports(self, jid: JID, allow: bool) -> None: + """Toggle whether admins can send reports.""" + ... + async def set_group_history(self, jid: JID, enabled: bool) -> None: + """Toggle group history visibility for new members.""" + ... + async def set_member_link_mode(self, jid: JID, mode: MemberLinkMode) -> None: + """Set the member link mode (admin or all members).""" + ... + async def set_limit_sharing(self, jid: JID, enabled: bool) -> None: + """Toggle the limit-sharing restriction.""" + ... async def cancel_membership_requests( self, jid: JID, participants: list[JID], - ) -> list[ParticipantChangeResponse]: ... + ) -> list[ParticipantChangeResponse]: + """Cancel pending membership requests (self).""" + ... async def revoke_request_code( self, jid: JID, participants: list[JID], - ) -> list[ParticipantChangeResponse]: ... - async def acknowledge(self, jid: JID) -> None: ... - async def set_profile_picture(self, jid: JID, image_data: bytes) -> str: ... - async def remove_profile_picture(self, jid: JID) -> str: ... - async def update_member_label(self, jid: JID, label: str) -> None: ... + ) -> list[ParticipantChangeResponse]: + """Revoke membership request codes for participants.""" + ... + async def acknowledge(self, jid: JID) -> None: + """Acknowledge group info (mark as seen).""" + ... + async def set_profile_picture(self, jid: JID, image_data: bytes) -> str: + """Set the group profile picture from raw image bytes.""" + ... + async def remove_profile_picture(self, jid: JID) -> str: + """Remove the group profile picture.""" + ... + async def update_member_label(self, jid: JID, label: str) -> None: + """Update the label for a group member.""" + ... class StatusPrivacySetting: """Type stub for StatusPrivacySetting.""" @@ -832,7 +1256,13 @@ class StatusSendOptions: def __init__( self, privacy: StatusPrivacySetting = StatusPrivacySetting.Contacts, - ) -> None: ... + ) -> None: + """Create status send options. + + Args: + privacy: Privacy setting (Contacts, AllowList, DenyList). + """ + ... class StatusClient: """Type stub for StatusClient.""" @@ -843,7 +1273,9 @@ class StatusClient: font: int, recipients: list[JID], options: StatusSendOptions | None = None, - ) -> str: ... + ) -> str: + """Send a text status update.""" + ... async def send_image( self, upload: UploadResponse, @@ -851,7 +1283,9 @@ class StatusClient: recipients: list[JID], caption: str | None = None, options: StatusSendOptions | None = None, - ) -> str: ... + ) -> str: + """Send an image status update.""" + ... async def send_video( self, upload: UploadResponse, @@ -860,21 +1294,29 @@ class StatusClient: recipients: list[JID], caption: str | None = None, options: StatusSendOptions | None = None, - ) -> str: ... + ) -> str: + """Send a video status update.""" + ... async def send_raw( self, message: MessageProto, recipients: list[JID], options: StatusSendOptions | None = None, - ) -> str: ... + ) -> str: + """Send a raw protobuf message as a status update.""" + ... async def revoke( self, message_id: str, recipients: list[JID], options: StatusSendOptions | None = None, - ) -> str: ... + ) -> str: + """Revoke a status update by message ID.""" + ... @staticmethod - def default_privacy() -> StatusPrivacySetting: ... + def default_privacy() -> StatusPrivacySetting: + """Return the default status privacy setting.""" + ... class ChatStateType: """Type stub for ChatStateType.""" @@ -952,7 +1394,15 @@ class DisallowedListUserEntry: action: DisallowedListAction, jid: JID, pn_jid: JID | None = None, - ) -> None: ... + ) -> None: + """Create a disallowed list entry. + + Args: + action: Add or Remove. + jid: Target JID. + pn_jid: Optional phone-number JID. + """ + ... class DisallowedListUpdate: """Type stub for DisallowedListUpdate.""" @@ -964,43 +1414,82 @@ class DisallowedListUpdate: self, dhash: str, users: list[DisallowedListUserEntry] = [], - ) -> None: ... + ) -> None: + """Create a disallowed list update. + + Args: + dhash: Current list hash. + users: List of user entries to add/remove. + """ + ... class ChatstateClient: """Type stub for ChatstateClient.""" - async def send(self, to: JID, state: ChatStateType) -> None: ... - async def send_composing(self, to: JID) -> None: ... - async def send_recording(self, to: JID) -> None: ... - async def send_paused(self, to: JID) -> None: ... + async def send(self, to: JID, state: ChatStateType) -> None: + """Send a chat state (composing, recording, or paused).""" + ... + async def send_composing(self, to: JID) -> None: + """Send typing indicator to a chat.""" + ... + async def send_recording(self, to: JID) -> None: + """Send recording indicator to a chat.""" + ... + async def send_paused(self, to: JID) -> None: + """Send paused indicator to a chat.""" + ... class BlockingClient: """Type stub for BlockingClient.""" - async def block(self, jid: JID) -> None: ... - async def unblock(self, jid: JID) -> None: ... - async def get_blocklist(self) -> list[BlocklistEntry]: ... - async def is_blocked(self, jid: JID) -> bool: ... + async def block(self, jid: JID) -> None: + """Block a JID.""" + ... + async def unblock(self, jid: JID) -> None: + """Unblock a JID.""" + ... + async def get_blocklist(self) -> list[BlocklistEntry]: + """Return the list of blocked JIDs.""" + ... + async def is_blocked(self, jid: JID) -> bool: + """Return True if the JID is blocked.""" + ... class ProfileClient: """Type stub for ProfileClient.""" - async def set_push_name(self, name: str) -> None: ... - async def set_status_text(self, text: str) -> None: ... - async def set_profile_picture(self, image_data: bytes) -> str: ... - async def remove_profile_picture(self) -> str: ... + async def set_push_name(self, name: str) -> None: + """Update the account display name.""" + ... + async def set_status_text(self, text: str) -> None: + """Update the account about/status text.""" + ... + async def set_profile_picture(self, image_data: bytes) -> str: + """Set the profile picture from raw image bytes.""" + ... + async def remove_profile_picture(self) -> str: + """Remove the profile picture.""" + ... class PrivacyClient: """Type stub for PrivacyClient.""" - async def fetch_settings(self) -> list[PrivacySetting]: ... + async def fetch_settings(self) -> list[PrivacySetting]: + """Fetch all current privacy settings.""" + ... async def set_setting( self, category: PrivacyCategory, value: PrivacyValue, - ) -> str | None: ... + ) -> str | None: + """Set a privacy category to a specific value.""" + ... async def set_disallowed_list( self, category: PrivacyCategory, update: DisallowedListUpdate, - ) -> str | None: ... - async def set_default_disappearing_mode(self, duration_seconds: int) -> None: ... + ) -> str | None: + """Update the disallowed list for a privacy category.""" + ... + async def set_default_disappearing_mode(self, duration_seconds: int) -> None: + """Set the default disappearing message duration (seconds).""" + ... class PollsClient: """Type stub for PollsClient.""" @@ -1010,7 +1499,13 @@ class PollsClient: name: str, options: list[str], selectable_count: int, - ) -> tuple[str, bytes]: ... + ) -> tuple[str, bytes]: + """Create a poll in a chat. + + Returns: + (message_id, poll_enc_key) tuple. + """ + ... async def vote( self, chat_jid: JID, @@ -1018,7 +1513,9 @@ class PollsClient: poll_creator_jid: JID, message_secret: bytes, option_names: list[str], - ) -> str: ... + ) -> str: + """Cast a vote on a poll message.""" + ... @staticmethod def decrypt_vote( enc_payload: bytes, @@ -1027,7 +1524,9 @@ class PollsClient: poll_msg_id: str, poll_creator_jid: JID, voter_jid: JID, - ) -> list[bytes]: ... + ) -> list[bytes]: + """Decrypt a single poll vote without LID/PN fallback.""" + ... @staticmethod def aggregate_votes( poll_options: list[str], @@ -1035,12 +1534,24 @@ class PollsClient: message_secret: bytes, poll_msg_id: str, poll_creator_jid: JID, - ) -> list[PollOptionResult]: ... + ) -> list[PollOptionResult]: + """Aggregate multiple poll votes into per-option results.""" + ... class PresenceClient: """Type stub for PresenceClient.""" - async def set(self, status: PresenceStatus) -> None: ... - async def set_available(self) -> None: ... - async def set_unavailable(self) -> None: ... - async def subscribe(self, jid: JID) -> None: ... - async def unsubscribe(self, jid: JID) -> None: ... + async def set(self, status: PresenceStatus) -> None: + """Set presence status (Available or Unavailable).""" + ... + async def set_available(self) -> None: + """Set presence to Available.""" + ... + async def set_unavailable(self) -> None: + """Set presence to Unavailable.""" + ... + async def subscribe(self, jid: JID) -> None: + """Subscribe to presence updates for a JID.""" + ... + async def unsubscribe(self, jid: JID) -> None: + """Unsubscribe from presence updates for a JID.""" + ... From 7f2f00e443d89ba1c4daedf5849449770c45c650 Mon Sep 17 00:00:00 2001 From: krypton-byte Date: Sat, 22 Aug 2026 16:47:03 +0000 Subject: [PATCH 07/24] docs(typing): add PEP 257 + Google Style docstrings to all .pyi files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Complete Google Style docstrings across all 585 classes and methods: - events.pyi: 45 property getters (data, source, node, proto, action) - types.pyi: 47 property getters (source, timestamp, media_type, etc.) - wacore.pyi: NodeValue.value() - backend.pyi: SqliteStore.__init__() with Args/Example - helpers.pyi: 15 static methods (build_participant, decrypt_vote, etc.) - media.pyi: 25 source/sink methods (frames, write, play, stop, etc.) All docstrings follow PEP 257 + Google Style with Args, Returns, Raises, and Example sections where applicable. 🤖 Generated with Codebuff Co-Authored-By: Codebuff --- python/tryx/backend.pyi | 13 +- python/tryx/events.pyi | 402 +++++++++++++++++++++++++++++++++----- python/tryx/helpers.pyi | 186 ++++++++++++++++-- python/tryx/media.pyi | 193 +++++++++++++++--- python/tryx/types.pyi | 423 +++++++++++++++++++++++++++++++++++----- python/tryx/wacore.pyi | 9 +- 6 files changed, 1092 insertions(+), 134 deletions(-) diff --git a/python/tryx/backend.pyi b/python/tryx/backend.pyi index 279439b..f94a937 100644 --- a/python/tryx/backend.pyi +++ b/python/tryx/backend.pyi @@ -50,7 +50,18 @@ class SqliteStore(BackendBase): path: str - def __init__(self, path: str) -> None: ... + def __init__(self, path: str) -> None: + """ + Create a SQLite storage backend. + + Args: + path: Filesystem path to the database file. + + Example:: + + store = SqliteStore('session.db') + """ + ... # ── Internal Rust structs (JSON-serialized across FFI) ────────────────────── diff --git a/python/tryx/events.pyi b/python/tryx/events.pyi index af054ec..0f60bd1 100644 --- a/python/tryx/events.pyi +++ b/python/tryx/events.pyi @@ -20,7 +20,11 @@ EventT = TypeVar("EventT") class Dispatcher: """Callback registry used by the runtime to map event classes to handlers.""" - def __init__(self) -> None: ... + def __init__(self) -> None: + """ + Create an empty dispatcher with no registered handlers. + """ + ... def on(self, event_type: type[EventT]) -> Dispatcher: """Select an event class and return a decorator-like dispatcher object.""" ... @@ -133,7 +137,14 @@ class EvPairSuccess: """Emitted when account pairing succeeds.""" @property - def data(self) -> PairSuccessData: ... + def data(self) -> PairSuccessData: + """ + Return the pairing success payload. + + Returns: + PairSuccessData with id, lid, business_name, and platform. + """ + ... class EvPairError: """Emitted when account pairing fails.""" @@ -175,7 +186,14 @@ class EvTemporaryBan: """Emitted when the account receives a temporary ban.""" @property - def data(self) -> EvTemporaryData: ... + def data(self) -> EvTemporaryData: + """ + Return the temporary ban details. + + Returns: + EvTemporaryData with ban reason code and expiration time. + """ + ... class EvConnectFailure: """Emitted when an initial connect attempt fails.""" @@ -184,7 +202,14 @@ class EvConnectFailure: message: str | None @property - def node(self) -> Node | None: ... + def node(self) -> Node | None: + """ + Return the raw protocol node, or ``None`` if unavailable. + + Returns: + Optional protocol Node for debugging connection failures. + """ + ... class EvStreamError: """Emitted when stream-level protocol error is received.""" @@ -192,7 +217,14 @@ class EvStreamError: code: str @property - def node(self) -> Node | None: ... + def node(self) -> Node | None: + """ + Return the raw protocol node, or ``None`` if unavailable. + + Returns: + Optional protocol Node for debugging stream errors. + """ + ... class EvReceipt: """Message receipt update event.""" @@ -203,7 +235,14 @@ class EvReceipt: message_sender: JID @property - def source(self) -> MessageSource | None: ... + def source(self) -> MessageSource | None: + """ + Return the message source, or ``None`` if unavailable. + + Returns: + Optional MessageSource with sender/chat JIDs. + """ + ... class EvUndecryptableMessage: """Emitted when a message cannot be decrypted.""" @@ -213,7 +252,14 @@ class EvUndecryptableMessage: decrypt_fail_mode: DecryptFailMode @property - def info(self) -> MessageInfo | None: ... + def info(self) -> MessageInfo | None: + """ + Return message metadata, or ``None`` if unavailable. + + Returns: + Optional MessageInfo for the undecryptable message. + """ + ... class MessageData: """Normalized message payload data.""" @@ -222,33 +268,96 @@ class MessageData: caption: str | None @property - def message_info(self) -> MessageInfo: ... - def get_extended_text_message(self) -> str | None: ... - def get_text(self) -> str | None: ... + def message_info(self) -> MessageInfo: + """ + Return normalized message metadata (id, type, push_name, source). + + Returns: + MessageInfo for this message. + """ + ... + def get_extended_text_message(self) -> str | None: + """ + Extract text from extended text message, or ``None``. + + Returns: + The extended text content, or ``None``. + """ + ... + def get_text(self) -> str | None: + """ + Extract plain text from the message body. + + Returns: + The message text, or ``None`` if not a text message. + """ + ... @property - def raw_proto(self) -> MessageProto: ... + def raw_proto(self) -> MessageProto: + """ + Return the raw protobuf message object. + + Returns: + The underlying protobuf Message instance. + """ + ... class EvMessage: """Main message event.""" @property - def data(self) -> MessageData: ... + def data(self) -> MessageData: + """ + Return the normalized message payload. + + Returns: + MessageData with text, caption, and metadata. + """ + ... class EvNotification: """Raw notification node event.""" @property - def node(self) -> Node: ... + def node(self) -> Node: + """ + Return the raw notification protocol node. + + Returns: + The notification Node for custom handling. + """ + ... class EvChatPresence: """Typing/recording presence event for a chat.""" @property - def source(self) -> MessageSource: ... + def source(self) -> MessageSource: + """ + Return the chat source (sender and chat JIDs). + + Returns: + MessageSource identifying the chat. + """ + ... @property - def state(self) -> str: ... + def state(self) -> str: + """ + Return the presence state string (e.g. ``'composing'``). + + Returns: + State string like ``'composing'``, ``'paused'``. + """ + ... @property - def media(self) -> str: ... + def media(self) -> str: + """ + Return the presence media type (e.g. ``'text'``). + + Returns: + Media string like ``'text'``, ``'audio'``. + """ + ... class EvPresence: """Presence update event for a contact.""" @@ -270,7 +379,14 @@ class EvPictureUpdate: """Emitted when profile picture changes.""" @property - def data(self) -> PictureUpdateData: ... + def data(self) -> PictureUpdateData: + """ + Return the picture update payload. + + Returns: + PictureUpdateData with jid, author, and picture_id. + """ + ... class UserAboutUpdateData: """User bio/about text update payload.""" @@ -283,19 +399,40 @@ class EvUserAboutUpdate: """Emitted when a user's about/status text changes.""" @property - def data(self) -> UserAboutUpdateData: ... + def data(self) -> UserAboutUpdateData: + """ + Return the about/status text update payload. + + Returns: + UserAboutUpdateData with jid and status text. + """ + ... class LazyConversation: """Deferred conversation object from history sync.""" @property - def conversation(self) -> Conversation | None: ... + def conversation(self) -> Conversation | None: + """ + Return the parsed Conversation protobuf, or ``None``. + + Returns: + Optional Conversation proto from history sync. + """ + ... class EvJoinedGroup: """Emitted when account joins a group.""" @property - def data(self) -> LazyConversation: ... + def data(self) -> LazyConversation: + """ + Return the lazy conversation payload. + + Returns: + LazyConversation for the joined group event. + """ + ... class EvGroupInfoUpdate: """Emitted for generic group info changes.""" @@ -312,7 +449,14 @@ class EvPushNameUpdate: """Emitted when a contact push name changes.""" @property - def data(self) -> EvPushNameUpdateData: ... + def data(self) -> EvPushNameUpdateData: + """ + Return the push name change payload. + + Returns: + EvPushNameUpdateData with old and new push names. + """ + ... class EvSelfPushNameUpdated: """Emitted when own account push name is updated.""" @@ -333,7 +477,14 @@ class EvPinUpdate: """Emitted when chat pin status changes.""" @property - def data(self) -> PinUpdatedata: ... + def data(self) -> PinUpdatedata: + """ + Return the pin update payload. + + Returns: + PinUpdatedata with jid, timestamp, and pinned state. + """ + ... class MuteUpdateData: """Mute update payload.""" @@ -343,13 +494,27 @@ class MuteUpdateData: from_full_sync: bool @property - def action(self) -> _MuteAction: ... + def action(self) -> _MuteAction: + """ + Return the mute action protobuf. + + Returns: + SyncActionValue.MuteAction proto. + """ + ... class EvMuteUpdate: """Emitted when mute settings change.""" @property - def data(self) -> MuteUpdateData: ... + def data(self) -> MuteUpdateData: + """ + Return the mute update payload. + + Returns: + MuteUpdateData with jid and timestamp. + """ + ... class MarkChatAsReadUpdateData: """Read/unread marker sync payload.""" @@ -359,19 +524,40 @@ class MarkChatAsReadUpdateData: from_full_sync: bool @property - def action(self) -> _MarkChatAsReadAction: ... + def action(self) -> _MarkChatAsReadAction: + """ + Return the mark-as-read action protobuf. + + Returns: + SyncActionValue.MarkChatAsReadAction proto. + """ + ... class EvMarkChatAsReadUpdate: """Emitted when read state sync action is applied.""" @property - def data(self) -> MarkChatAsReadUpdateData: ... + def data(self) -> MarkChatAsReadUpdateData: + """ + Return the mark-as-read update payload. + + Returns: + MarkChatAsReadUpdateData with jid and timestamp. + """ + ... class EvHistorySync: """Contains protobuf history sync payload.""" @property - def proto(self) -> HistorySync: ... + def proto(self) -> HistorySync: + """ + Return the raw HistorySync protobuf. + + Returns: + HistorySync proto containing synced messages. + """ + ... class OfflineSyncData: """Preview counters for offline sync.""" @@ -386,7 +572,14 @@ class EvOfflineSyncPreview: """Emitted before offline sync processing starts.""" @property - def data(self) -> OfflineSyncData: ... + def data(self) -> OfflineSyncData: + """ + Return offline sync preview counters. + + Returns: + OfflineSyncData with total, messages, notifications counts. + """ + ... class OfflineSyncCompletedData: """Summary payload after offline sync completes.""" @@ -397,7 +590,14 @@ class EvOfflineSyncCompleted: """Emitted when offline sync is fully processed.""" @property - def data(self) -> OfflineSyncCompletedData: ... + def data(self) -> OfflineSyncCompletedData: + """ + Return offline sync completion summary. + + Returns: + OfflineSyncCompletedData with processed count. + """ + ... class DeviceNottificationInfo: """Single device info entry within a device list update.""" @@ -419,7 +619,14 @@ class EvDeviceListUpdate: """Emitted when companion device list changes.""" @property - def data(self) -> DeviceListUpdateData: ... + def data(self) -> DeviceListUpdateData: + """ + Return the device list update payload. + + Returns: + DeviceListUpdateData with user, devices, and update type. + """ + ... class BusinessStatusUpdateData: """Business profile sync payload.""" @@ -437,7 +644,14 @@ class EvBusinessStatusUpdate: """Emitted when business profile information changes.""" @property - def data(self) -> BusinessStatusUpdateData: ... + def data(self) -> BusinessStatusUpdateData: + """ + Return the business profile update payload. + + Returns: + BusinessStatusUpdateData with jid and update type. + """ + ... class EvArchiveUpdateData: """Archive state sync payload.""" @@ -447,13 +661,27 @@ class EvArchiveUpdateData: from_full_sync: bool @property - def action(self) -> _ArchiveChatAction: ... + def action(self) -> _ArchiveChatAction: + """ + Return the archive action protobuf. + + Returns: + SyncActionValue.ArchiveChatAction proto. + """ + ... class EvArchiveUpdate: """Emitted when chat archive state changes.""" @property - def data(self) -> EvArchiveUpdateData: ... + def data(self) -> EvArchiveUpdateData: + """ + Return the archive update payload. + + Returns: + EvArchiveUpdateData with jid and timestamp. + """ + ... class EvDisappearingModeChangedData: """Disappearing mode update payload.""" @@ -466,7 +694,14 @@ class EvDisappearingModeChanged: """Emitted when disappearing mode duration changes.""" @property - def data(self) -> EvDisappearingModeChangedData: ... + def data(self) -> EvDisappearingModeChangedData: + """ + Return the disappearing mode change payload. + + Returns: + EvDisappearingModeChangedData with duration and timestamp. + """ + ... class EvContactNumberChangedData: """Contact number change payload.""" @@ -481,7 +716,14 @@ class EvContactNumberChanged: """Emitted when a contact number/JID is migrated.""" @property - def data(self) -> EvContactNumberChangedData: ... + def data(self) -> EvContactNumberChangedData: + """ + Return the contact number change payload. + + Returns: + EvContactNumberChangedData with old and new JIDs. + """ + ... class EvContactSyncRequestedData: """Payload that indicates contact sync was requested.""" @@ -493,7 +735,14 @@ class EvContactSyncRequested: """Emitted when the server requests contact synchronization.""" @property - def data(self) -> EvContactSyncRequestedData: ... + def data(self) -> EvContactSyncRequestedData: + """ + Return the contact sync request payload. + + Returns: + EvContactSyncRequestedData with after timestamp. + """ + ... class EvContactUpdatedData: """Payload for single contact metadata updates.""" @@ -505,7 +754,14 @@ class EvContactUpdated: """Emitted when a contact metadata entry is updated.""" @property - def data(self) -> EvContactUpdatedData: ... + def data(self) -> EvContactUpdatedData: + """ + Return the contact update payload. + + Returns: + EvContactUpdatedData with jid and timestamp. + """ + ... class EvStarUpdateData: """Star/unstar sync payload for a specific message.""" @@ -522,7 +778,14 @@ class EvStarUpdate: """Emitted when message star state changes.""" @property - def data(self) -> EvStarUpdateData: ... + def data(self) -> EvStarUpdateData: + """ + Return the star update payload. + + Returns: + EvStarUpdateData with message_id, starred state, and timestamp. + """ + ... class GroupParticipant: """Participant entry embedded in group notification actions.""" @@ -544,7 +807,14 @@ class EvGroupUpdate: """Emitted for rich group notification changes.""" @property - def data(self) -> GroupUpdateData: ... + def data(self) -> GroupUpdateData: + """ + Return the group notification update payload. + + Returns: + GroupUpdateData with group_jid, participant, and action. + """ + ... class ContactUpdateData: """Contact sync action payload.""" @@ -554,13 +824,27 @@ class ContactUpdateData: from_full_sync: bool @property - def action(self) -> _ContactAction: ... + def action(self) -> _ContactAction: + """ + Return the contact sync action protobuf. + + Returns: + SyncActionValue.ContactAction proto. + """ + ... class EvContactUpdate: """Emitted when contact sync actions are applied.""" @property - def data(self) -> ContactUpdateData: ... + def data(self) -> ContactUpdateData: + """ + Return the contact update payload. + + Returns: + ContactUpdateData with jid and timestamp. + """ + ... class NewsletterLiveUpdateReaction: """Reaction count entry in newsletter live updates.""" @@ -584,7 +868,14 @@ class EvNewsletterLiveUpdate: """Emitted when subscribed newsletter receives live changes.""" @property - def data(self) -> NewsletterLiveUpdateData: ... + def data(self) -> NewsletterLiveUpdateData: + """ + Return the newsletter live update payload. + + Returns: + NewsletterLiveUpdateData with messages and reactions. + """ + ... class DeleteChatUpdateData: """Delete-chat sync action payload.""" @@ -595,13 +886,27 @@ class DeleteChatUpdateData: from_full_sync: bool @property - def action(self) -> _DeleteChatAction: ... + def action(self) -> _DeleteChatAction: + """ + Return the delete-chat action protobuf. + + Returns: + SyncActionValue.DeleteChatAction proto. + """ + ... class EvDeleteChatUpdate: """Emitted when a chat is deleted via sync action.""" @property - def data(self) -> DeleteChatUpdateData: ... + def data(self) -> DeleteChatUpdateData: + """ + Return the delete-chat update payload. + + Returns: + DeleteChatUpdateData with jid and timestamp. + """ + ... class DeleteMessageForMeUpdateData: """Delete-for-me sync action payload for a single message.""" @@ -618,4 +923,11 @@ class EvDeleteMessageForMeUpdate: """Emitted when a message is deleted-for-me via sync action.""" @property - def data(self) -> DeleteMessageForMeUpdateData: ... + def data(self) -> DeleteMessageForMeUpdateData: + """ + Return the delete-for-me update payload. + + Returns: + DeleteMessageForMeUpdateData with message_id and timestamp. + """ + ... diff --git a/python/tryx/helpers.pyi b/python/tryx/helpers.pyi index 88a3e1e..364f633 100644 --- a/python/tryx/helpers.pyi +++ b/python/tryx/helpers.pyi @@ -19,23 +19,75 @@ class NewsletterHelpers: """Helpers for newsletter message serialization and builders.""" @staticmethod - def parse_message(data: bytes) -> MessageProto: ... + def parse_message(data: bytes) -> MessageProto: + """ + Deserialize protobuf bytes into a Message proto. + + Args: + data: Raw protobuf bytes. + + Returns: + Parsed Message proto. + """ + ... @staticmethod - def serialize_message(message: MessageProto) -> bytes: ... + def serialize_message(message: MessageProto) -> bytes: + """ + Serialize a Message proto into protobuf bytes. + + Args: + message: Message proto to serialize. + + Returns: + Serialized bytes. + """ + ... @staticmethod - def build_text_message(text: str) -> MessageProto: ... + def build_text_message(text: str) -> MessageProto: + """ + Build a text-only Message proto. + + Args: + text: Message body text. + + Returns: + Message proto with conversation set. + """ + ... class GroupsHelpers: """Helpers for group invite and option object construction.""" @staticmethod - def strip_invite_url(code: str) -> str: ... + def strip_invite_url(code: str) -> str: + """ + Strip the WhatsApp invite URL prefix from a code. + + Args: + code: Full invite URL or raw code. + + Returns: + Stripped invite code. + """ + ... @staticmethod def build_participant( jid: JID, phone_number: JID | None = None, privacy: bytes | None = None, - ) -> GroupParticipantOptions: ... + ) -> GroupParticipantOptions: + """ + Build a GroupParticipantOptions object. + + Args: + jid: Participant JID. + phone_number: Optional phone number JID. + privacy: Optional privacy bytes. + + Returns: + GroupParticipantOptions instance. + """ + ... @staticmethod def build_create_options( subject: str, @@ -49,7 +101,26 @@ class GroupsHelpers: closed: bool = False, allow_non_admin_sub_group_creation: bool = False, create_general_chat: bool = False, - ) -> CreateGroupOptions: ... + ) -> CreateGroupOptions: + """ + Build a CreateGroupOptions object. + + Args: + subject: Group name. + participants: List of initial participants. + member_link_mode: Who can share the group link. + member_add_mode: Who can add members. + membership_approval_mode: Require approval for new members. + ephemeral_expiration: Disappearing message timer in seconds. + is_parent: If ``True``, create as a parent group. + closed: If ``True``, only admins can edit group info. + allow_non_admin_sub_group_creation: Allow non-admins to create subgroups. + create_general_chat: Auto-create a general chat. + + Returns: + CreateGroupOptions instance. + """ + ... class StatusHelpers: """Helpers for status privacy and send options.""" @@ -57,25 +128,74 @@ class StatusHelpers: @staticmethod def build_send_options( privacy: StatusPrivacySetting = StatusPrivacySetting.Contacts, - ) -> StatusSendOptions: ... + ) -> StatusSendOptions: + """ + Build a StatusSendOptions object. + + Args: + privacy: Privacy setting (Contacts, AllowList, DenyList). + + Returns: + StatusSendOptions instance. + """ + ... @staticmethod - def default_privacy() -> StatusPrivacySetting: ... + def default_privacy() -> StatusPrivacySetting: + """ + Return the default status privacy setting. + + Returns: + StatusPrivacySetting.Contacts. + """ + ... class ChatstateHelpers: """Helpers for constructing chat state enum values.""" @staticmethod - def composing() -> ChatStateType: ... + def composing() -> ChatStateType: + """ + Return ChatStateType.Composing. + + Returns: + ChatStateType for typing indicator. + """ + ... @staticmethod - def recording() -> ChatStateType: ... + def recording() -> ChatStateType: + """ + Return ChatStateType.Recording. + + Returns: + ChatStateType for recording indicator. + """ + ... @staticmethod - def paused() -> ChatStateType: ... + def paused() -> ChatStateType: + """ + Return ChatStateType.Paused. + + Returns: + ChatStateType for paused indicator. + """ + ... class BlockingHelpers: """Helpers related to blocklist identity matching.""" @staticmethod - def same_user(a: JID, b: JID) -> bool: ... + def same_user(a: JID, b: JID) -> bool: + """ + Check if two JIDs belong to the same user (ignoring device). + + Args: + a: First JID. + b: Second JID. + + Returns: + ``True`` if both JIDs share the same user part. + """ + ... class PollsHelpers: """Helpers for poll vote decryption and aggregation.""" @@ -88,7 +208,22 @@ class PollsHelpers: poll_msg_id: str, poll_creator_jid: JID, voter_jid: JID, - ) -> list[bytes]: ... + ) -> list[bytes]: + """ + Decrypt a single poll vote without LID/PN fallback. + + Args: + enc_payload: Encrypted vote payload. + enc_iv: Encrypted initialization vector. + message_secret: Poll message secret key. + poll_msg_id: Poll message ID. + poll_creator_jid: Poll creator JID. + voter_jid: Voter JID. + + Returns: + List of selected option name hashes. + """ + ... @staticmethod def aggregate_votes( poll_options: list[str], @@ -96,10 +231,31 @@ class PollsHelpers: message_secret: bytes, poll_msg_id: str, poll_creator_jid: JID, - ) -> list[PollOptionResult]: ... + ) -> list[PollOptionResult]: + """ + Aggregate multiple poll votes into per-option results. + + Args: + poll_options: List of option name strings. + votes: List of (voter_jid, enc_payload, enc_iv) tuples. + message_secret: Poll message secret key. + poll_msg_id: Poll message ID. + poll_creator_jid: Poll creator JID. + + Returns: + List of PollOptionResult with name and voters. + """ + ... class PresenceHelpers: """Helpers for default presence values.""" @staticmethod - def default_status() -> PresenceStatus: ... + def default_status() -> PresenceStatus: + """ + Return the default presence status. + + Returns: + PresenceStatus.Available. + """ + ... diff --git a/python/tryx/media.pyi b/python/tryx/media.pyi index 4c6bc3a..c71ac53 100644 --- a/python/tryx/media.pyi +++ b/python/tryx/media.pyi @@ -30,57 +30,200 @@ class VideoFrame: class AudioSource: """Abstract audio source that produces raw PCM frames.""" - def frames(self) -> AsyncIterator[bytes]: ... - async def aclose(self) -> None: ... + def frames(self) -> AsyncIterator[bytes]: + """ + Yield raw PCM audio frames (16-bit LE, 48 kHz mono). + + Yields: + Bytes of raw PCM audio. + """ + ... + async def aclose(self) -> None: + """ + Release resources held by this audio source. + """ + ... class AudioPlayer(AudioSource): """Built-in audio player that decodes and plays audio files.""" - def __init__(self, buffer_frames: int = 3) -> None: ... - def play(self, path: str, mode: str | None = None) -> None: ... - def stop(self) -> None: ... - def pause(self) -> None: ... - def resume(self) -> None: ... - def enqueue(self, path: str) -> None: ... - def skip(self) -> None: ... - def clear_queue(self) -> None: ... + def __init__(self, buffer_frames: int = 3) -> None: + """ + Create an audio player with a decoder and command channel. + + Args: + buffer_frames: Number of decoded frames to buffer (1-30). + """ + ... + def play(self, path: str, mode: str | None = None) -> None: + """ + Start playing an audio file. + + Args: + path: Filesystem path to the audio file. + mode: Playback mode (``'replace'``, ``'queue'``, ``'interrupt'``), + or ``None`` for default replace behavior. + """ + ... + def stop(self) -> None: + """ + Stop playback and flush the command queue. + """ + ... + def pause(self) -> None: + """ + Pause playback (resume with ``resume()``). + """ + ... + def resume(self) -> None: + """ + Resume paused playback. + """ + ... + def enqueue(self, path: str) -> None: + """ + Add an audio file to the playback queue. + + Args: + path: Filesystem path to the audio file. + """ + ... + def skip(self) -> None: + """ + Skip the currently playing file and play the next in queue. + """ + ... + def clear_queue(self) -> None: + """ + Clear all queued audio files. + """ + ... @property - def state(self) -> str: ... + def state(self) -> str: + """ + Return the current player state string. + + Returns: + State string (``'idle'``, ``'playing'``, ``'paused'``). + """ + ... class VideoPlayer(VideoSource): """Built-in video player that demuxes and decodes video files.""" - def __init__(self, fps: int = 15) -> None: ... - def play(self, path: str) -> None: ... - def stop(self) -> None: ... + def __init__(self, fps: int = 15) -> None: + """ + Create a video player with FFmpeg demuxer. + + Args: + fps: Target frames per second (1-60). + """ + ... + def play(self, path: str) -> None: + """ + Start playing a video file. + + Args: + path: Filesystem path to the video file. + """ + ... + def stop(self) -> None: + """ + Stop video playback. + """ + ... class AudioSink: """Abstract audio sink that consumes raw PCM frames.""" - async def write(self, frame: bytes) -> None: ... - async def aclose(self) -> None: ... + async def write(self, frame: bytes) -> None: + """ + Write a raw PCM audio frame. + + Args: + frame: Raw PCM bytes (16-bit LE, 48 kHz mono). + """ + ... + async def aclose(self) -> None: + """ + Release resources held by this audio sink. + """ + ... class VideoSource: """Abstract video source that produces decoded video frames.""" - def frames(self) -> AsyncIterator[VideoFrame]: ... - def rtp_timestamp_stride(self) -> int: ... - async def aclose(self) -> None: ... + def frames(self) -> AsyncIterator[VideoFrame]: + """ + Yield decoded H.264 video frames. + + Yields: + VideoFrame access units. + """ + ... + def rtp_timestamp_stride(self) -> int: + """ + Return the RTP timestamp stride for this video source. + + Returns: + Timestamp stride integer (ticks per frame). + """ + ... + async def aclose(self) -> None: + """ + Release resources held by this video source. + """ + ... class VideoSink: """Abstract video sink that consumes decoded video frames.""" - async def write(self, frame: VideoFrame) -> None: ... - async def aclose(self) -> None: ... + async def write(self, frame: VideoFrame) -> None: + """ + Write a decoded video frame. + + Args: + frame: VideoFrame access unit. + """ + ... + async def aclose(self) -> None: + """ + Release resources held by this video sink. + """ + ... class EncodedAudioSource: """Abstract source that produces encoded audio packets (e.g. Opus).""" - def frames(self) -> AsyncIterator[bytes]: ... - async def aclose(self) -> None: ... + def frames(self) -> AsyncIterator[bytes]: + """ + Yield encoded audio packets (e.g. Opus). + + Yields: + Encoded audio packet bytes. + """ + ... + async def aclose(self) -> None: + """ + Release resources held by this encoded audio source. + """ + ... class EncodedAudioSink: """Abstract sink that consumes encoded audio packets.""" - async def write(self, packet: bytes, timestamp: int, sequence: int) -> None: ... - async def aclose(self) -> None: ... + async def write(self, packet: bytes, timestamp: int, sequence: int) -> None: + """ + Write an encoded audio packet. + + Args: + packet: Encoded audio bytes. + timestamp: RTP timestamp. + sequence: Packet sequence number. + """ + ... + async def aclose(self) -> None: + """ + Release resources held by this encoded audio sink. + """ + ... diff --git a/python/tryx/types.pyi b/python/tryx/types.pyi index 26ecb63..3cf2b4c 100644 --- a/python/tryx/types.pyi +++ b/python/tryx/types.pyi @@ -32,45 +32,157 @@ class MsgBotInfo: """Bot edit metadata attached to a message.""" @property - def edit_type(self) -> Literal["First", "Inner", "Last"] | None: ... + def edit_type(self) -> Literal["First", "Inner", "Last"] | None: + """ + Return the edit type (``'First'``, ``'Inner'``, ``'Last'``), or ``None``. + + Returns: + Edit type string or ``None``. + """ + ... @property - def edit_target_id(self) -> str | None: ... + def edit_target_id(self) -> str | None: + """ + Return the edit target message ID, or ``None``. + + Returns: + Target message ID string or ``None``. + """ + ... @property - def edit_sender_timestamp(self) -> int | None: ... + def edit_sender_timestamp(self) -> int | None: + """ + Return the edit sender timestamp, or ``None``. + + Returns: + Timestamp integer or ``None``. + """ + ... class MsgMetaInfo: """Additional metadata attached to a message payload.""" @property - def target_id(self) -> str | None: ... + def target_id(self) -> str | None: + """ + Return the target message ID, or ``None``. + + Returns: + Target message ID string or ``None``. + """ + ... @property - def target_sender(self) -> JID | None: ... + def target_sender(self) -> JID | None: + """ + Return the target sender JID, or ``None``. + + Returns: + Target sender JID or ``None``. + """ + ... @property - def target_chat(self) -> JID | None: ... + def target_chat(self) -> JID | None: + """ + Return the target chat JID, or ``None``. + + Returns: + Target chat JID or ``None``. + """ + ... @property - def deprecated_lid_session(self) -> bool | None: ... + def deprecated_lid_session(self) -> bool | None: + """ + Return deprecated LID session flag, or ``None``. + + Returns: + Boolean or ``None``. + """ + ... @property - def thread_message_id(self) -> str | None: ... + def thread_message_id(self) -> str | None: + """ + Return the thread message ID, or ``None``. + + Returns: + Thread message ID string or ``None``. + """ + ... @property - def thread_message_sender_jid(self) -> JID | None: ... + def thread_message_sender_jid(self) -> JID | None: + """ + Return the thread message sender JID, or ``None``. + + Returns: + Sender JID or ``None``. + """ + ... @property - def content_type(self) -> str | None: ... + def content_type(self) -> str | None: + """ + Return the content type string, or ``None``. + + Returns: + Content type string or ``None``. + """ + ... @property - def appdata(self) -> str | None: ... + def appdata(self) -> str | None: + """ + Return the app data string, or ``None``. + + Returns: + App data string or ``None``. + """ + ... @property - def reporting_tag(self) -> bytes | None: ... + def reporting_tag(self) -> bytes | None: + """ + Return the reporting tag bytes, or ``None``. + + Returns: + Raw bytes or ``None``. + """ + ... @property - def reporting_token(self) -> bytes | None: ... + def reporting_token(self) -> bytes | None: + """ + Return the reporting token bytes, or ``None``. + + Returns: + Raw bytes or ``None``. + """ + ... @property - def reporting_token_version(self) -> int | None: ... + def reporting_token_version(self) -> int | None: + """ + Return the reporting token version, or ``None``. + + Returns: + Version integer or ``None``. + """ + ... class DeviceSentMeta: """Metadata used for device-sent message synchronization.""" @property - def destination_jid(self) -> str: ... + def destination_jid(self) -> str: + """ + Return the destination JID string. + + Returns: + Destination JID string. + """ + ... @property - def phash(self) -> str: ... + def phash(self) -> str: + """ + Return the phone hash string. + + Returns: + Phone hash string. + """ + ... class MessageInfo: """Normalized metadata for a received or sent message.""" @@ -80,79 +192,296 @@ class MessageInfo: push_name: str @property - def source(self) -> MessageSource: ... + def source(self) -> MessageSource: + """ + Return the message source (sender, chat, is_from_me). + + Returns: + MessageSource with sender and chat JIDs. + """ + ... @property - def multicast(self) -> bool: ... + def multicast(self) -> bool: + """ + Return ``True`` if the message was sent to multiple recipients. + + Returns: + Boolean flag. + """ + ... @property - def server_id(self) -> int: ... + def server_id(self) -> int: + """ + Return the server-assigned message ID. + + Returns: + Server ID integer. + """ + ... @property - def timestamp(self) -> datetime: ... + def timestamp(self) -> datetime: + """ + Return the message timestamp. + + Returns: + datetime of the message. + """ + ... @property - def media_type(self) -> str: ... + def media_type(self) -> str: + """ + Return the media type string (e.g. ``'image'``, ``'video'``). + + Returns: + Media type string. + """ + ... @property - def edit(self) -> str: ... + def edit(self) -> str: + """ + Return the edit status string, or ``None``. + + Returns: + Edit string or ``None``. + """ + ... @property - def bot_info(self) -> MsgBotInfo | None: ... + def bot_info(self) -> MsgBotInfo | None: + """ + Return bot edit metadata, or ``None``. + + Returns: + MsgBotInfo or ``None``. + """ + ... @property - def meta_info(self) -> MsgMetaInfo: ... + def meta_info(self) -> MsgMetaInfo: + """ + Return additional message metadata. + + Returns: + MsgMetaInfo with target_id, content_type, etc. + """ + ... @property - def verified_name(self) -> VerifiedNameCertificate | None: ... + def verified_name(self) -> VerifiedNameCertificate | None: + """ + Return the verified name certificate, or ``None``. + + Returns: + VerifiedNameCertificate or ``None``. + """ + ... @property - def device_sent_meta(self) -> DeviceSentMeta | None: ... + def device_sent_meta(self) -> DeviceSentMeta | None: + """ + Return device-sent metadata, or ``None``. + + Returns: + DeviceSentMeta or ``None``. + """ + ... @property - def category(self) -> str: ... + def category(self) -> str: + """ + Return the message category string. + + Returns: + Category string (e.g. ``'message'``). + """ + ... @property - def ephemeral_expiration(self) -> int | None: ... + def ephemeral_expiration(self) -> int | None: + """ + Return the ephemeral expiration timer in seconds, or ``None``. + + Returns: + Expiration seconds or ``None``. + """ + ... @property - def is_offline(self) -> bool: ... + def is_offline(self) -> bool: + """ + Return ``True`` if the message was sent while offline. + + Returns: + Boolean flag. + """ + ... @property - def unavailable_request_id(self) -> str | None: ... + def unavailable_request_id(self) -> str | None: + """ + Return the unavailable request ID, or ``None``. + + Returns: + Request ID string or ``None``. + """ + ... @property - def server_timestamp_us(self) -> int | None: ... + def server_timestamp_us(self) -> int | None: + """ + Return the server timestamp in microseconds, or ``None``. + + Returns: + Microsecond timestamp or ``None``. + """ + ... @property - def verified_level(self) -> str | None: ... + def verified_level(self) -> str | None: + """ + Return the verified level string, or ``None``. + + Returns: + Level string or ``None``. + """ + ... @property - def verified_name_serial(self) -> int | None: ... + def verified_name_serial(self) -> int | None: + """ + Return the verified name serial number, or ``None``. + + Returns: + Serial integer or ``None``. + """ + ... @property - def peer_recipient_pn(self) -> JID | None: ... + def peer_recipient_pn(self) -> JID | None: + """ + Return the peer recipient phone JID, or ``None``. + + Returns: + JID or ``None``. + """ + ... @property - def bcl_participants(self) -> list[JID]: ... + def bcl_participants(self) -> list[JID]: + """ + Return the broadcast list participant JIDs. + + Returns: + List of JID objects. + """ + ... class UploadResponse: """Result of a media upload call.""" @property - def url(self) -> str: ... + def url(self) -> str: + """ + Return the upload URL. + + Returns: + URL string. + """ + ... @property - def direct_path(self) -> str: ... + def direct_path(self) -> str: + """ + Return the direct download path. + + Returns: + Direct path string. + """ + ... @property - def media_key(self) -> bytes: ... + def media_key(self) -> bytes: + """ + Return the media encryption key. + + Returns: + Media key bytes. + """ + ... @property - def file_enc_sha256(self) -> bytes: ... + def file_enc_sha256(self) -> bytes: + """ + Return the encrypted file SHA-256 hash. + + Returns: + SHA-256 hash bytes. + """ + ... @property - def file_sha256(self) -> bytes: ... + def file_sha256(self) -> bytes: + """ + Return the plaintext file SHA-256 hash. + + Returns: + SHA-256 hash bytes. + """ + ... @property - def file_length(self) -> int: ... + def file_length(self) -> int: + """ + Return the file size in bytes. + + Returns: + File length integer. + """ + ... @property - def media_key_timestamp(self) -> int: ... + def media_key_timestamp(self) -> int: + """ + Return the media key timestamp. + + Returns: + Timestamp integer. + """ + ... @property - def streaming_sidecar(self) -> bytes | None: ... + def streaming_sidecar(self) -> bytes | None: + """ + Return the streaming sidecar bytes, or ``None``. + + Returns: + Sidecar bytes or ``None``. + """ + ... class SendResult: """Result metadata for send operations.""" @property - def message_id(self) -> str: ... + def message_id(self) -> str: + """ + Return the server-assigned message ID. + + Returns: + Message ID string. + """ + ... @property - def to(self) -> JID: ... + def to(self) -> JID: + """ + Return the recipient JID. + + Returns: + Recipient JID. + """ + ... class MediaReuploadResult: """Result of media reupload request.""" @property - def status(self) -> str: ... + def status(self) -> str: + """ + Return the reupload status string. + + Returns: + Status string (e.g. ``'ok'``). + """ + ... @property - def direct_path(self) -> str | None: ... + def direct_path(self) -> str | None: + """ + Return the new direct path, or ``None``. + + Returns: + Direct path string or ``None``. + """ + ... class ProfilePicture: """Metadata about a user's profile picture.""" diff --git a/python/tryx/wacore.pyi b/python/tryx/wacore.pyi index 95b7ca7..b8962de 100644 --- a/python/tryx/wacore.pyi +++ b/python/tryx/wacore.pyi @@ -47,7 +47,14 @@ class NodeValue: ... @value.setter - def value(self, value: str | JID) -> None: ... + def value(self, value: str | JID) -> None: + """ + Return the current value as either a string or JID. + + Returns: + The attribute value (str or JID). + """ + ... class NodeContent: """Represents node payload content. From 182c3702e96bdd222e73b6647473b9584f1e7419 Mon Sep 17 00:00:00 2001 From: krypton-byte Date: Sat, 22 Aug 2026 17:40:12 +0000 Subject: [PATCH 08/24] docs(typing): add Example:: and Raises: to all .pyi method docstrings Add complete Google Style docstrings with Args:, Returns:, Raises:, and Example:: sections to all client methods in client.pyi and wacore.pyi. Verify exception patterns from Rust source to ensure accurate Raises: documentation. Co-Authored-By: Codebuff --- python/tryx/client.pyi | 2353 ++++++++++++++++++++++++++++++++++++---- python/tryx/wacore.pyi | 99 +- 2 files changed, 2238 insertions(+), 214 deletions(-) diff --git a/python/tryx/client.pyi b/python/tryx/client.pyi index 0782095..b0fb73d 100644 --- a/python/tryx/client.pyi +++ b/python/tryx/client.pyi @@ -194,7 +194,31 @@ class TryxClient: """ ... async def send_message(self, to: JID, message: MessageProto) -> SendResult: - """Send a pre-built protobuf message.""" + """Send a pre-built protobuf message directly. + + Use this for raw protocol-level sends when the helper methods + (``send_text``, ``send_photo``, etc.) are not sufficient. + + Args: + to: Recipient JID. + message: Fully constructed protobuf Message. + + Returns: + SendResult with the server-assigned message ID. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + from tryx.waproto.whatsapp_pb2 import Message + + msg = Message(conversation="Hello from raw proto!") + result = await client.send_message( + to=JID('123', 's.whatsapp.net'), + message=msg, + ) + """ ... async def send_text( self, to: JID, text: str, quoted: EvMessage | None = None @@ -226,7 +250,35 @@ class TryxClient: caption: str | None = None, quoted: EvMessage | None = None, ) -> SendResult: - """Send an image with an optional caption.""" + """Send an image with an optional caption. + + The image is uploaded to WhatsApp servers before the message is sent. + If *mimetype* is ``None``, it is auto-detected from the raw bytes + (defaults to ``image/jpeg`` on failure). + + Args: + to: Recipient JID. + photo_data: Raw image bytes. + mimetype: MIME type (auto-detected if None). + caption: Optional image caption. + quoted: Optional message to quote-reply. + + Returns: + SendResult with the server-assigned message ID. + + Raises: + RuntimeError: If the client is not running or upload fails. + + Example:: + + with open('photo.jpg', 'rb') as f: + photo_data = f.read() + result = await client.send_photo( + to=JID('123', 's.whatsapp.net'), + photo_data=photo_data, + caption='Check this out!', + ) + """ ... async def send_document( self, @@ -237,7 +289,37 @@ class TryxClient: caption: str | None = None, quoted: EvMessage | None = None, ) -> SendResult: - """Send a document/file with an optional caption.""" + """Send a document/file with an optional caption. + + The document is uploaded to WhatsApp servers before the message is sent. + If *mimetype* is ``None``, it is auto-detected from the raw bytes + (defaults to ``application/octet-stream`` on failure). + + Args: + to: Recipient JID. + document_data: Raw document bytes. + mimetype: MIME type (auto-detected if None). + file_name: Display file name on the recipient side. + caption: Optional document caption. + quoted: Optional message to quote-reply. + + Returns: + SendResult with the server-assigned message ID. + + Raises: + RuntimeError: If the client is not running or upload fails. + + Example:: + + with open('report.pdf', 'rb') as f: + doc_data = f.read() + result = await client.send_document( + to=JID('123', 's.whatsapp.net'), + document_data=doc_data, + file_name='report.pdf', + caption='Monthly report', + ) + """ ... async def send_audio( self, @@ -250,6 +332,10 @@ class TryxClient: ) -> SendResult: """Send an audio clip. + The audio is uploaded to WhatsApp servers before the message is sent. + If *mimetype* is ``None``, it is auto-detected from the raw bytes + (defaults to ``audio/ogg; codecs=opus`` on failure). + Args: to: Recipient JID. audio_data: Raw audio bytes. @@ -257,6 +343,23 @@ class TryxClient: ptt: If True, send as push-to-talk voice message. seconds: Duration in seconds (used for voice messages). quoted: Optional message to quote-reply. + + Returns: + SendResult with the server-assigned message ID. + + Raises: + RuntimeError: If the client is not running or upload fails. + + Example:: + + with open('voice.ogg', 'rb') as f: + audio_data = f.read() + result = await client.send_audio( + to=JID('123', 's.whatsapp.net'), + audio_data=audio_data, + ptt=True, + seconds=5, + ) """ ... async def send_video( @@ -269,7 +372,38 @@ class TryxClient: gif_playback: bool = False, quoted: EvMessage | None = None, ) -> SendResult: - """Send a video with an optional caption.""" + """Send a video with an optional caption. + + The video is uploaded to WhatsApp servers before the message is sent. + If *mimetype* is ``None``, it is auto-detected from the raw bytes + (defaults to ``video/mp4`` on failure). + + Args: + to: Recipient JID. + video_data: Raw video bytes. + mimetype: MIME type (auto-detected if None). + caption: Optional video caption. + seconds: Duration in seconds. + gif_playback: If True, display as a GIF on the recipient side. + quoted: Optional message to quote-reply. + + Returns: + SendResult with the server-assigned message ID. + + Raises: + RuntimeError: If the client is not running or upload fails. + + Example:: + + with open('clip.mp4', 'rb') as f: + video_data = f.read() + result = await client.send_video( + to=JID('123', 's.whatsapp.net'), + video_data=video_data, + caption='Funny clip', + seconds=15, + ) + """ ... async def send_gif( self, @@ -279,7 +413,34 @@ class TryxClient: seconds: int | None = None, quoted: EvMessage | None = None, ) -> SendResult: - """Send a GIF (sent as video with gif_playback=True).""" + """Send a GIF (sent as video with gif_playback=True). + + Convenience wrapper around :meth:`send_video` that sets + ``gif_playback=True`` and ``mimetype='video/mp4'``. + + Args: + to: Recipient JID. + gif_data: Raw GIF/video bytes. + caption: Optional caption. + seconds: Duration in seconds. + quoted: Optional message to quote-reply. + + Returns: + SendResult with the server-assigned message ID. + + Raises: + RuntimeError: If the client is not running or upload fails. + + Example:: + + with open('animation.gif', 'rb') as f: + gif_data = f.read() + result = await client.send_gif( + to=JID('123', 's.whatsapp.net'), + gif_data=gif_data, + caption='Look at this!', + ) + """ ... async def send_sticker( self, @@ -288,7 +449,33 @@ class TryxClient: is_animated: bool = False, quoted: EvMessage | None = None, ) -> SendResult: - """Send a sticker (static WEBP or animated).""" + """Send a sticker (static WEBP or animated). + + The sticker is uploaded to WhatsApp servers before the message is sent. + MIME type is auto-detected from the raw bytes (defaults to + ``image/webp`` on failure). + + Args: + to: Recipient JID. + sticker_data: Raw sticker bytes. + is_animated: If True, mark as an animated sticker. + quoted: Optional message to quote-reply. + + Returns: + SendResult with the server-assigned message ID. + + Raises: + RuntimeError: If the client is not running or upload fails. + + Example:: + + with open('sticker.webp', 'rb') as f: + sticker_data = f.read() + result = await client.send_sticker( + to=JID('123', 's.whatsapp.net'), + sticker_data=sticker_data, + ) + """ ... async def request_media_reupload( self, @@ -298,7 +485,36 @@ class TryxClient: is_from_me: bool = False, participant: JID | None = None, ) -> MediaReuploadResult: - """Request WhatsApp to re-upload expired media for re-download.""" + """Request WhatsApp to re-upload expired media for re-download. + + When a media direct path has expired, this method asks WhatsApp + servers to re-upload the media so it can be downloaded again. + + Args: + message_id: Server-assigned message ID. + chat_jid: JID of the chat containing the message. + media_key: The media encryption key bytes. + is_from_me: Whether the message was sent by the local user. + participant: Optional participant JID (for group messages). + + Returns: + MediaReuploadResult with the new direct path and status. + + Raises: + ValueError: If *media_key* is empty. + RuntimeError: If the client is not running. + + Example:: + + result = await client.request_media_reupload( + message_id='3EB0ABC123', + chat_jid=JID('123', 's.whatsapp.net'), + media_key=media_key_bytes, + is_from_me=True, + ) + if result.status == 'ok': + data = await client.download_media(message.image_message) + """ ... class CallHandle: @@ -306,46 +522,146 @@ class CallHandle: call_id: str peer: JID + def is_muted(self) -> bool: """Return True if the local microphone is muted.""" ... + def set_muted(self, muted: bool) -> None: - """Mute or unmute the local microphone.""" + """Mute or unmute the local microphone. + + Args: + muted: ``True`` to mute, ``False`` to unmute. + + Example:: + + handle.set_muted(True) + """ ... + async def hangup(self) -> None: - """End the call.""" + """End the call. + + Raises: + RuntimeError: If the call has already ended. + + Example:: + + await handle.hangup() + """ ... + async def wait_ended(self) -> None: - """Block until the call is ended (by either party).""" + """Block until the call is ended (by either party). + + Raises: + RuntimeError: If the call handle is invalid. + + Example:: + + await handle.wait_ended() + print('Call finished') + """ ... + async def start_video( self, video_source: VideoSource, video_sink: VideoSink ) -> None: - """Start sending and receiving video in the call.""" + """Start sending and receiving video in the call. + + Args: + video_source: Source providing outgoing video frames. + video_sink: Sink receiving incoming video frames. + + Raises: + RuntimeError: If the call has ended or video adapter is missing. + """ ... + async def stop_video(self) -> None: - """Stop sending video (audio continues).""" + """Stop sending video (audio continues). + + Raises: + RuntimeError: If the call has ended. + """ ... + async def invite_participant(self, target: JID) -> None: - """Invite a participant to a group call.""" + """Invite a participant to a group call. + + Args: + target: JID of the participant to invite. + + Raises: + RuntimeError: If the call has ended. + + Example:: + + await handle.invite_participant(JID('5599800001', 's.whatsapp.net')) + """ ... + async def ring_participant(self, target: JID) -> None: - """Ring a specific participant in a group call.""" + """Ring a specific participant in a group call. + + Args: + target: JID of the participant to ring. + + Raises: + RuntimeError: If the call has ended. + """ ... + async def start_screen_share(self, screen_share_id: int | None = None) -> None: - """Start sharing screen content.""" + """Start sharing screen content. + + Args: + screen_share_id: Optional screen share identifier. + + Raises: + RuntimeError: If the call has ended. + """ ... + async def stop_screen_share(self) -> None: - """Stop screen sharing.""" + """Stop screen sharing. + + Raises: + RuntimeError: If the call has ended. + """ ... + async def set_approval_required(self, enabled: bool) -> None: - """Toggle whether new participants need admin approval.""" + """Toggle whether new participants need admin approval. + + Args: + enabled: ``True`` to require approval, ``False`` to disable. + + Raises: + RuntimeError: If the call has ended. + """ ... + async def admit_waiting_user(self, target: JID) -> None: - """Admit a user waiting in the lobby.""" + """Admit a user waiting in the lobby. + + Args: + target: JID of the user to admit. + + Raises: + RuntimeError: If the call has ended. + """ ... + async def deny_waiting_user(self, target: JID) -> None: - """Deny a user waiting in the lobby.""" + """Deny a user waiting in the lobby. + + Args: + target: JID of the user to deny. + + Raises: + RuntimeError: If the call has ended. + """ ... class IncomingCallEvent: @@ -354,17 +670,39 @@ class IncomingCallEvent: call_id: str peer: JID is_video: bool + async def accept( self, audio_source: AudioSource, audio_sink: AudioSink ) -> CallHandle: """Accept the incoming call and return a handle for control. + Args: + audio_source: Source providing outgoing audio frames. + audio_sink: Sink receiving incoming audio frames. + Returns: CallHandle for controlling the call. + + Raises: + RuntimeError: If the call was already consumed. + + Example:: + + handle = await event.accept(audio_source, audio_sink) + await handle.wait_ended() """ ... + async def reject(self) -> None: - """Reject the incoming call.""" + """Reject the incoming call. + + Raises: + RuntimeError: If the call was already consumed. + + Example:: + + await event.reject() + """ ... class VoipClient: @@ -375,10 +713,24 @@ class VoipClient: ) -> CallHandle: """Start a 1:1 voice call. + Args: + peer: JID of the callee. + audio_source: Source providing outgoing audio frames. + audio_sink: Sink receiving incoming audio frames. + Returns: CallHandle for controlling the call. + + Raises: + RuntimeError: If the call fails to connect. + + Example:: + + handle = await client.voip.call(peer, audio_source, audio_sink) + await handle.wait_ended() """ ... + async def group_call( self, peers: list[JID], @@ -387,8 +739,23 @@ class VoipClient: video_source: VideoSource | None = None, video_sink: VideoSink | None = None, ) -> CallHandle: - """Start a group voice/video call with multiple participants.""" + """Start a group voice/video call with multiple participants. + + Args: + peers: JIDs of the participants to call. + audio_source: Source providing outgoing audio frames. + audio_sink: Sink receiving incoming audio frames. + video_source: Optional source providing outgoing video frames. + video_sink: Optional sink receiving incoming video frames. + + Returns: + CallHandle for controlling the call. + + Raises: + RuntimeError: If the call fails to connect. + """ ... + async def join_call_link( self, token_or_url: str, @@ -398,8 +765,24 @@ class VoipClient: video_source: VideoSource | None = None, video_sink: VideoSink | None = None, ) -> CallHandle: - """Join a call via invite link.""" + """Join a call via invite link. + + Args: + token_or_url: Call link token or full URL. + media: Media type to join with (e.g. ``'audio'``, ``'video'``). + audio_source: Source providing outgoing audio frames. + audio_sink: Sink receiving incoming audio frames. + video_source: Optional source providing outgoing video frames. + video_sink: Optional sink receiving incoming video frames. + + Returns: + CallHandle for controlling the call. + + Raises: + RuntimeError: If the call link is invalid or join fails. + """ ... + async def video_call( self, peer: JID, @@ -408,76 +791,237 @@ class VoipClient: video_source: VideoSource, video_sink: VideoSink, ) -> CallHandle: - """Start a 1:1 video call with camera and microphone.""" + """Start a 1:1 video call with camera and microphone. + + Args: + peer: JID of the callee. + audio_source: Source providing outgoing audio frames. + audio_sink: Sink receiving incoming audio frames. + video_source: Source providing outgoing video frames. + video_sink: Sink receiving incoming video frames. + + Returns: + CallHandle for controlling the call. + + Raises: + RuntimeError: If the call fails to connect. + + Example:: + + handle = await client.voip.video_call( + peer, audio_source, audio_sink, + video_source, video_sink, + ) + await handle.start_video(video_source, video_sink) + """ ... class AdvancedClient: """Advanced diagnostics, lifecycle waits, and raw protocol escape hatches.""" + def is_logged_in(self) -> bool: """Return True if the session is authenticated.""" ... + def get_push_name(self) -> str: """Return the current push name (display name).""" ... + def get_pn(self) -> JID | None: """Return the phone-number JID, or None if not linked.""" ... + def get_lid(self) -> JID | None: """Return the LID (linked ID) JID, or None if not linked.""" ... + def stats(self) -> dict[str, int]: """Return internal counters (handlers, messages, etc.).""" ... + async def memory_report_text(self) -> str: """Return a human-readable memory usage report.""" ... + async def resource_report_text(self) -> str: """Return a human-readable resource usage report.""" ... + async def wait_for_socket(self, timeout_seconds: float) -> None: - """Block until the WebSocket connection is established.""" + """Block until the WebSocket connection is established. + + Args: + timeout_seconds: Maximum seconds to wait before timing out. + + Raises: + RuntimeError: If the timeout is reached. + """ ... + async def wait_for_connected(self, timeout_seconds: float) -> None: - """Block until the client is fully connected.""" + """Block until the client is fully connected. + + Args: + timeout_seconds: Maximum seconds to wait before timing out. + + Raises: + RuntimeError: If the timeout is reached. + + Example:: + + await client.advanced.wait_for_connected(30.0) + """ ... + async def wait_for_startup_sync(self, timeout_seconds: float) -> None: - """Block until the initial history sync completes.""" + """Block until the initial history sync completes. + + Args: + timeout_seconds: Maximum seconds to wait before timing out. + + Raises: + RuntimeError: If the timeout is reached. + """ ... + async def flush_pending_signal_state(self) -> None: - """Flush any pending Signal protocol state to the store.""" + """Flush any pending Signal protocol state to the store. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + await client.advanced.flush_pending_signal_state() + """ ... + async def send_raw_bytes(self, plaintext: bytes) -> None: - """Send raw encrypted bytes directly over the socket.""" + """Send raw encrypted bytes directly over the socket. + + Args: + plaintext: Pre-encrypted bytes to send. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def send_node(self, node: Node) -> None: - """Send a protocol node directly over the socket.""" + """Send a protocol node directly over the socket. + + Args: + node: Protocol node to send. + + Raises: + RuntimeError: If the client is not running. + """ ... + def set_force_active_delivery_receipts(self, active: bool) -> None: - """Toggle forced active delivery receipts.""" + """Toggle forced active delivery receipts. + + Args: + active: ``True`` to force active delivery receipts. + """ ... class LabelsClient: - """WhatsApp label app-state operations.""" + """WhatsApp label app-state operations. + + All methods raise ``RuntimeError`` if the client is not running. + """ + async def create_label(self, label_id: str, name: str, color: int) -> None: - """Create a new label with the given name and color.""" + """Create a new label with the given name and color. + + Args: + label_id: Unique label identifier. + name: Display name for the label. + color: Label color value. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + await client.labels.create_label('L1', 'Urgent', 0xFF0000) + """ ... + async def delete_label(self, label_id: str) -> None: - """Delete a label by ID.""" + """Delete a label by ID. + + Args: + label_id: Unique label identifier. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def add_chat_label(self, jid: JID, label_id: str) -> None: - """Attach a label to a chat.""" + """Attach a label to a chat. + + Args: + jid: Chat JID to label. + label_id: Label identifier to attach. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def remove_chat_label(self, jid: JID, label_id: str) -> None: - """Remove a label from a chat.""" + """Remove a label from a chat. + + Args: + jid: Chat JID. + label_id: Label identifier to remove. + + Raises: + RuntimeError: If the client is not running. + """ ... class CommentsClient: - """Channel/comment operations anchored to a received parent message.""" + """Channel/comment operations anchored to a received parent message. + + All methods raise ``RuntimeError`` if the client is not running. + """ + async def send_text(self, parent: EvMessage, text: str) -> str: - """Reply to a channel message with text.""" + """Reply to a channel message with text. + + Args: + parent: The parent message to reply to. + text: Comment text body. + + Returns: + Server-assigned message ID of the comment. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + msg_id = await client.comments.send_text(event, 'Great post!') + """ ... + async def send_message(self, parent: EvMessage, message: MessageProto) -> str: - """Reply to a channel message with a protobuf message.""" + """Reply to a channel message with a protobuf message. + + Args: + parent: The parent message to reply to. + message: Fully constructed protobuf Message. + + Returns: + Server-assigned message ID of the comment. + + Raises: + RuntimeError: If the client is not running. + """ ... class EventResponse: @@ -488,7 +1032,11 @@ class EventResponse: Maybe: EventResponse class EventsClient: - """WhatsApp event creation and RSVP operations.""" + """WhatsApp event creation and RSVP operations. + + All methods raise ``RuntimeError`` if the client is not running. + """ + async def create( self, chat_jid: JID, @@ -500,8 +1048,36 @@ class EventsClient: is_scheduled_call: bool | None = None, extra_guests_allowed: bool | None = None, ) -> dict[str, object]: - """Create a WhatsApp event in a chat.""" + """Create a WhatsApp event in a chat. + + Args: + chat_jid: Chat where the event is created. + name: Event name/title. + start_time: Optional start time as Unix timestamp. + end_time: Optional end time as Unix timestamp. + description: Optional event description. + join_link: Optional join link for the event. + is_scheduled_call: Whether the event is a scheduled call. + extra_guests_allowed: Whether extra guests are allowed. + + Returns: + Dict with event creation details. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + import time + result = await client.events.create( + chat_jid=JID('123', 's.whatsapp.net'), + name='Team standup', + start_time=int(time.time()) + 3600, + description='Daily standup meeting', + ) + """ ... + async def respond( self, chat_jid: JID, @@ -511,26 +1087,120 @@ class EventsClient: response: EventResponse, extra_guest_count: int | None = None, ) -> str: - """RSVP to a WhatsApp event.""" + """RSVP to a WhatsApp event. + + Args: + chat_jid: Chat containing the event. + event_message_id: Message ID of the event. + event_creator_jid: JID of the event creator. + message_secret: Event message secret bytes. + response: RSVP response (Going, NotGoing, Maybe). + extra_guest_count: Optional number of extra guests. + + Returns: + Server-assigned message ID of the RSVP response. + + Raises: + RuntimeError: If the client is not running. + """ ... class ContactClient: - """Contact and profile lookup operations.""" + """Contact and profile lookup operations. + + All methods raise ``RuntimeError`` if the client is not running. + """ + async def get_info(self, phones: list[str]) -> list[ContactInfo]: - """Look up contact info by phone numbers.""" + """Look up contact info by phone numbers. + + Args: + phones: List of phone number strings (e.g. ``['5599800001']``). + + Returns: + List of ContactInfo entries for each phone number. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + results = await client.contact.get_info(['5599800001']) + for info in results: + print(info.jid, info.is_registered) + """ ... + async def get_user_info(self, jid: JID) -> dict[JID, UserInfo]: - """Get detailed user profile info by JID.""" + """Get detailed user profile info by JID. + + Args: + jid: Target user JID. + + Returns: + Dict mapping JIDs to their UserInfo profiles. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + info_map = await client.contact.get_user_info(sender_jid) + user_info = next(iter(info_map.values()), None) + if user_info: + print(user_info.status) + """ ... + async def get_profile_picture(self, jid: JID, preview: bool) -> ProfilePicture: - """Fetch the profile picture metadata for a JID.""" + """Fetch the profile picture metadata for a JID. + + Args: + jid: Target user or group JID. + preview: If True, return the small preview version. + + Returns: + ProfilePicture with URL, direct_path, and hash. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + pic = await client.contact.get_profile_picture(sender_jid, False) + if pic.url: + data = await download_bytes(pic.url) + """ ... + async def is_on_whatsapp(self, jid: list[JID]) -> list[IsOnWhatsAppResult]: - """Check which JIDs are registered on WhatsApp.""" + """Check which JIDs are registered on WhatsApp. + + Args: + jid: List of JIDs to check. + + Returns: + List of IsOnWhatsAppResult with registration status. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + results = await client.contact.is_on_whatsapp([ + JID('5599800001', 's.whatsapp.net'), + ]) + for r in results: + print(r.jid, r.is_registered) + """ ... class ChatActionsClient: - """Chat-level actions such as archive, pin, mute, and reactions.""" + """Chat-level actions such as archive, pin, mute, and reactions. + + All async methods raise ``RuntimeError`` if the client is not running. + """ + @staticmethod def build_message_key( id: str, @@ -538,45 +1208,165 @@ class ChatActionsClient: from_me: bool, participant: JID | None = None, ) -> MessageKey: - """Build a protobuf MessageKey from its components.""" + """Build a protobuf MessageKey from its components. + + Args: + id: Message ID. + remote_jid: Chat JID. + from_me: Whether the message was sent by the local user. + participant: Optional participant JID (for group chats). + + Returns: + Constructed MessageKey proto. + + Example:: + + key = ChatActionsClient.build_message_key( + id='3EB0ABC123', + remote_jid=JID('123', 's.whatsapp.net'), + from_me=True, + ) + """ ... + @staticmethod def build_message_range( last_message_timestamp: int, last_system_message_timestamp: int | None, messages: list[tuple[MessageKey, int]], ) -> SyncActionValue.SyncActionMessageRange: - """Build a SyncActionMessageRange for sync operations.""" + """Build a SyncActionMessageRange for sync operations. + + Args: + last_message_timestamp: Timestamp of the last message. + last_system_message_timestamp: Timestamp of the last system + message, or ``None``. + messages: List of ``(MessageKey, timestamp)`` tuples. + + Returns: + Constructed SyncActionMessageRange proto. + + Example:: + + key = ChatActionsClient.build_message_key( + '3EB0', JID('123', 's.whatsapp.net'), True, + ) + msg_range = ChatActionsClient.build_message_range( + last_message_timestamp=1700000000, + last_system_message_timestamp=None, + messages=[(key, 1700000000)], + ) + """ ... + async def archive_chat( self, jid: JID, message_range: SyncActionValue.SyncActionMessageRange | None = None, ) -> None: - """Archive a chat.""" + """Archive a chat. + + Args: + jid: Chat JID to archive. + message_range: Optional sync message range. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + await client.chat_actions.archive_chat(JID('123', 's.whatsapp.net')) + """ ... + async def unarchive_chat( self, jid: JID, message_range: SyncActionValue.SyncActionMessageRange | None = None, ) -> None: - """Unarchive a chat.""" + """Unarchive a chat. + + Args: + jid: Chat JID to unarchive. + message_range: Optional sync message range. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def pin_chat(self, jid: JID) -> None: - """Pin a chat to the top of the list.""" + """Pin a chat to the top of the list. + + Args: + jid: Chat JID to pin. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + await client.chat_actions.pin_chat(JID('123', 's.whatsapp.net')) + """ ... + async def unpin_chat(self, jid: JID) -> None: - """Unpin a chat.""" + """Unpin a chat. + + Args: + jid: Chat JID to unpin. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def mute_chat(self, jid: JID) -> None: - """Mute a chat indefinitely.""" + """Mute a chat indefinitely. + + Args: + jid: Chat JID to mute. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + await client.chat_actions.mute_chat(JID('123', 's.whatsapp.net')) + """ ... + async def mute_chat_until(self, jid: JID, mute_end_timestamp_ms: int) -> None: - """Mute a chat until the given Unix timestamp (ms).""" + """Mute a chat until the given Unix timestamp (ms). + + Args: + jid: Chat JID to mute. + mute_end_timestamp_ms: Expiration timestamp in milliseconds. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + import time + await client.chat_actions.mute_chat_until( + JID('123', 's.whatsapp.net'), + int(time.time() * 1000) + 3600000, + ) + """ ... + async def unmute_chat(self, jid: JID) -> None: - """Unmute a chat.""" + """Unmute a chat. + + Args: + jid: Chat JID to unmute. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def star_message( self, chat_jid: JID, @@ -584,8 +1374,19 @@ class ChatActionsClient: message_id: str, from_me: bool, ) -> None: - """Star a message in a chat.""" + """Star a message in a chat. + + Args: + chat_jid: Chat JID. + participant_jid: Participant JID (for group chats), or None. + message_id: Message ID to star. + from_me: Whether the message was sent by the local user. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def unstar_message( self, chat_jid: JID, @@ -593,24 +1394,59 @@ class ChatActionsClient: message_id: str, from_me: bool, ) -> None: - """Unstar a message in a chat.""" + """Unstar a message in a chat. + + Args: + chat_jid: Chat JID. + participant_jid: Participant JID (for group chats), or None. + message_id: Message ID to unstar. + from_me: Whether the message was sent by the local user. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def mark_chat_as_read( self, jid: JID, read: bool, message_range: SyncActionValue.SyncActionMessageRange | None = None, ) -> None: - """Mark a chat as read or unread.""" + """Mark a chat as read or unread. + + Args: + jid: Chat JID. + read: ``True`` to mark as read, ``False`` to mark as unread. + message_range: Optional sync message range. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + await client.chat_actions.mark_chat_as_read(jid, True) + """ ... + async def delete_chat( self, jid: JID, delete_media: bool, message_range: SyncActionValue.SyncActionMessageRange | None = None, ) -> None: - """Delete an entire chat (with optional media deletion).""" + """Delete an entire chat (with optional media deletion). + + Args: + jid: Chat JID to delete. + delete_media: If True, also delete media from storage. + message_range: Optional sync message range. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def delete_message_for_me( self, chat_jid: JID, @@ -620,8 +1456,27 @@ class ChatActionsClient: delete_media: bool, message_timestamp: int | None = None, ) -> None: - """Delete a single message for the local user only.""" + """Delete a single message for the local user only. + + Args: + chat_jid: Chat JID. + participant_jid: Participant JID (for group chats), or None. + message_id: Message ID to delete. + from_me: Whether the message was sent by the local user. + delete_media: If True, also delete the media file. + message_timestamp: Optional message timestamp for sync. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + await client.chat_actions.delete_message_for_me( + chat_jid, participant_jid, msg_id, True, False, + ) + """ ... + async def clear_chat( self, jid: JID, @@ -629,8 +1484,19 @@ class ChatActionsClient: delete_media: bool, message_range: SyncActionValue.SyncActionMessageRange | None = None, ) -> None: - """Clear all messages in a chat.""" + """Clear all messages in a chat. + + Args: + jid: Chat JID to clear. + delete_starred: If True, also delete starred messages. + delete_media: If True, also delete media files. + message_range: Optional sync message range. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def save_contact( self, jid: JID, @@ -638,24 +1504,65 @@ class ChatActionsClient: first_name: str | None = None, save_on_primary_addressbook: bool = False, ) -> None: - """Save a contact to the address book.""" + """Save a contact to the address book. + + Args: + jid: Contact JID. + full_name: Optional full display name. + first_name: Optional first name. + save_on_primary_addressbook: If True, save to the primary + address book. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def edit_message( self, chat_jid: JID, original_id: str, new_message: MessageProto, ) -> str: - """Edit a previously sent message.""" + """Edit a previously sent message. + + Args: + chat_jid: Chat JID. + original_id: ID of the message to edit. + new_message: Replacement protobuf message. + + Returns: + Server-assigned message ID of the edit. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def revoke_message( self, chat_jid: JID, message_id: str, original_sender: JID | None = None, ) -> None: - """Revoke (delete for everyone) a sent message.""" + """Revoke (delete for everyone) a sent message. + + Args: + chat_jid: Chat JID. + message_id: Message ID to revoke. + original_sender: Optional sender JID (for group messages). + + Raises: + RuntimeError: If the client is not running. + + Example:: + + await client.chat_actions.revoke_message( + chat_jid, '3EB0ABC123', + ) + """ ... + async def react_message( self, chat_jid: JID, @@ -664,11 +1571,33 @@ class ChatActionsClient: from_me: bool = False, participant_jid: JID | None = None, ) -> str: - """Add or remove an emoji reaction to a message.""" + """Add or remove an emoji reaction to a message. + + Pass an empty string for *reaction* to remove an existing reaction. + + Args: + chat_jid: Chat JID. + message_id: Message ID to react to. + reaction: Emoji string, or empty string to remove. + from_me: Whether the message was sent by the local user. + participant_jid: Optional participant JID (for group chats). + + Returns: + Server-assigned message ID of the reaction. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + await client.chat_actions.react_message( + chat_jid, msg_id, '✅', from_me=True, + ) + """ ... class GroupType: - """Type stub for GroupType.""" + """Classification of a WhatsApp group (default, community, linked).""" Default: GroupType Community: GroupType @@ -677,7 +1606,7 @@ class GroupType: LinkedGeneralGroup: GroupType class CreateCommunityOptions: - """Type stub for CreateCommunityOptions.""" + """Options for creating a new WhatsApp community.""" name: str description: str | None @@ -699,19 +1628,20 @@ class CreateCommunityOptions: name: Community name. description: Optional description. closed: If True, only admins can add subgroups. - allow_non_admin_sub_group_creation: Allow non-admins to create subgroups. + allow_non_admin_sub_group_creation: Allow non-admins to create + subgroups. create_general_chat: Auto-create a general chat. """ ... class CreateCommunityResult: - """Type stub for CreateCommunityResult.""" + """Result returned after creating a community.""" gid: JID metadata: GroupMetadata class CommunitySubgroup: - """Type stub for CommunitySubgroup.""" + """Subgroup entry within a WhatsApp community.""" id: JID subject: str @@ -720,26 +1650,26 @@ class CommunitySubgroup: is_general_chat: bool class LinkSubgroupsResult: - """Type stub for LinkSubgroupsResult.""" + """Result of linking subgroups to a community.""" linked_jids: list[JID] failed_groups: list[tuple[JID, int]] class UnlinkSubgroupsResult: - """Type stub for UnlinkSubgroupsResult.""" + """Result of unlinking subgroups from a community.""" unlinked_jids: list[JID] failed_groups: list[tuple[JID, int]] class GroupParticipant: - """Type stub for GroupParticipant.""" + """Participant entry within a WhatsApp group.""" jid: JID phone_number: JID | None is_admin: bool class GroupMetadata: - """Type stub for GroupMetadata.""" + """Full metadata for a WhatsApp group.""" id: JID subject: str @@ -766,77 +1696,214 @@ class GroupMetadata: group_type: GroupType class CommunityClient: - """Type stub for CommunityClient.""" + """WhatsApp community creation and subgroup management. + + All async methods raise ``RuntimeError`` if the client is not running. + """ + @staticmethod def classify_group(metadata: GroupMetadata) -> GroupType: - """Classify a group as Default, Community, LinkedSubgroup, etc.""" + """Classify a group as Default, Community, LinkedSubgroup, etc. + + Args: + metadata: Group metadata to classify. + + Returns: + GroupType classification. + + Example:: + + group_type = CommunityClient.classify_group(metadata) + if group_type == GroupType.Community: + print('This is a community') + """ ... + async def create(self, options: CreateCommunityOptions) -> CreateCommunityResult: - """Create a new community with the given options.""" + """Create a new community with the given options. + + Args: + options: Community creation configuration. + + Returns: + CreateCommunityResult with group ID and metadata. + + Example:: + + from tryx.client import CreateCommunityOptions + opts = CreateCommunityOptions(name='My Community') + result = await client.community.create(opts) + print(result.gid) + """ ... + async def deactivate(self, community_jid: JID) -> None: - """Deactivate (archive) a community.""" + """Deactivate (archive) a community. + + Args: + community_jid: JID of the community to deactivate. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def link_subgroups( self, community_jid: JID, subgroup_jids: list[JID], ) -> LinkSubgroupsResult: - """Link existing groups as subgroups of a community.""" + """Link existing groups as subgroups of a community. + + Args: + community_jid: JID of the community. + subgroup_jids: JIDs of groups to link. + + Returns: + LinkSubgroupsResult with linked and failed group JIDs. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + result = await client.community.link_subgroups( + community_jid, + [JID('123', 'g.us'), JID('456', 'g.us')], + ) + print(result.linked_jids) + """ ... + async def unlink_subgroups( self, community_jid: JID, subgroup_jids: list[JID], remove_orphan_members: bool, ) -> UnlinkSubgroupsResult: - """Unlink subgroups from a community.""" + """Unlink subgroups from a community. + + Args: + community_jid: JID of the community. + subgroup_jids: JIDs of subgroups to unlink. + remove_orphan_members: If True, remove members who are no + longer in any linked group. + + Returns: + UnlinkSubgroupsResult with unlinked and failed group JIDs. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def get_subgroups(self, community_jid: JID) -> list[CommunitySubgroup]: - """List all subgroups in a community.""" + """List all subgroups in a community. + + Args: + community_jid: JID of the community. + + Returns: + List of CommunitySubgroup entries. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + groups = await client.community.get_subgroups(community_jid) + for g in groups: + print(g.subject, g.participant_count) + """ ... + async def get_subgroup_participant_counts( self, community_jid: JID, ) -> list[tuple[JID, int]]: - """Get participant counts for each subgroup.""" + """Get participant counts for each subgroup. + + Args: + community_jid: JID of the community. + + Returns: + List of ``(subgroup_jid, participant_count)`` tuples. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def query_linked_group( self, community_jid: JID, subgroup_jid: JID, ) -> GroupMetadata: - """Query metadata for a specific linked subgroup.""" + """Query metadata for a specific linked subgroup. + + Args: + community_jid: JID of the community. + subgroup_jid: JID of the subgroup to query. + + Returns: + GroupMetadata for the linked subgroup. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def join_subgroup( self, community_jid: JID, subgroup_jid: JID, ) -> GroupMetadata: - """Join a subgroup within a community.""" + """Join a subgroup within a community. + + Args: + community_jid: JID of the community. + subgroup_jid: JID of the subgroup to join. + + Returns: + GroupMetadata after joining. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def get_linked_groups_participants( self, community_jid: JID, ) -> list[GroupParticipant]: - """Get all participants across linked groups.""" + """Get all participants across linked groups. + + Args: + community_jid: JID of the community. + + Returns: + List of GroupParticipant entries from all linked groups. + + Raises: + RuntimeError: If the client is not running. + """ ... class NewsletterVerification: - """Type stub for NewsletterVerification.""" + """Verification status of a WhatsApp newsletter.""" Verified: NewsletterVerification Unverified: NewsletterVerification class NewsletterState: - """Type stub for NewsletterState.""" + """Operational state of a WhatsApp newsletter.""" Active: NewsletterState Suspended: NewsletterState Geosuspended: NewsletterState class NewsletterRole: - """Type stub for NewsletterRole.""" + """Role of a user within a WhatsApp newsletter.""" Owner: NewsletterRole Admin: NewsletterRole @@ -844,13 +1911,13 @@ class NewsletterRole: Guest: NewsletterRole class NewsletterReactionCount: - """Type stub for NewsletterReactionCount.""" + """Reaction tally for a newsletter message.""" code: str count: int class NewsletterMetadata: - """Type stub for NewsletterMetadata.""" + """Metadata for a WhatsApp newsletter channel.""" jid: JID name: str @@ -865,7 +1932,7 @@ class NewsletterMetadata: creation_time: int | None class NewsletterMessage: - """Type stub for NewsletterMessage.""" + """A message within a WhatsApp newsletter.""" server_id: int timestamp: int @@ -901,102 +1968,319 @@ class NewsletterFollower: admin_profile: NewsletterAdminProfile | None class NewsletterClient: - """Type stub for NewsletterClient.""" + """WhatsApp newsletter channel operations. + + All async methods raise ``RuntimeError`` if the client is not running. + """ + async def list_subscribed(self) -> list[NewsletterMetadata]: - """List all newsletters the account is subscribed to.""" + """List all newsletters the account is subscribed to. + + Returns: + List of NewsletterMetadata for each subscribed newsletter. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + newsletters = await client.newsletter.list_subscribed() + for nl in newsletters: + print(nl.name, nl.subscriber_count) + """ ... + async def get_admin_info(self, jid: JID) -> NewsletterAdminInfo: - """Get admin information for a newsletter.""" + """Get admin information for a newsletter. + + Args: + jid: Newsletter JID. + + Returns: + NewsletterAdminInfo with admin count and profiles. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def get_followers(self, jid: JID, count: int) -> list[NewsletterFollower]: - """Get the follower list for a newsletter.""" + """Get the follower list for a newsletter. + + Args: + jid: Newsletter JID. + count: Maximum number of followers to return. + + Returns: + List of NewsletterFollower entries. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def get_metadata(self, jid: JID) -> NewsletterMetadata: - """Get metadata for a newsletter by JID.""" + """Get metadata for a newsletter by JID. + + Args: + jid: Newsletter JID. + + Returns: + NewsletterMetadata with name, subscriber count, etc. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + metadata = await client.newsletter.get_metadata(newsletter_jid) + print(metadata.name, metadata.subscriber_count) + """ ... + async def get_metadata_by_invite(self, invite_code: str) -> NewsletterMetadata: - """Get metadata for a newsletter by invite code.""" + """Get metadata for a newsletter by invite code. + + Args: + invite_code: Newsletter invite code. + + Returns: + NewsletterMetadata for the newsletter. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + metadata = await client.newsletter.get_metadata_by_invite(invite_code) + await client.newsletter.join(metadata.jid) + """ ... + async def create( self, name: str, description: str | None = None, ) -> NewsletterMetadata: - """Create a new newsletter channel.""" + """Create a new newsletter channel. + + Args: + name: Newsletter display name. + description: Optional description. + + Returns: + NewsletterMetadata of the created newsletter. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + metadata = await client.newsletter.create( + name='My Newsletter', + description='Weekly updates', + ) + print(metadata.jid) + """ ... + async def join(self, jid: JID) -> NewsletterMetadata: - """Join a newsletter by JID.""" + """Join a newsletter by JID. + + Args: + jid: Newsletter JID to join. + + Returns: + NewsletterMetadata after joining. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def leave(self, jid: JID) -> None: - """Leave a newsletter.""" + """Leave a newsletter. + + Args: + jid: Newsletter JID to leave. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def update( self, jid: JID, name: str | None = None, description: str | None = None, ) -> NewsletterMetadata: - """Update newsletter name or description.""" + """Update newsletter name or description. + + Args: + jid: Newsletter JID. + name: New display name, or None to keep current. + description: New description, or None to keep current. + + Returns: + Updated NewsletterMetadata. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def subscribe_live_updates(self, jid: JID) -> int: """Subscribe to live updates for a newsletter. + Args: + jid: Newsletter JID. + Returns: Ticket ID for the live update stream. + + Raises: + RuntimeError: If the client is not running. """ ... + async def send_message(self, jid: JID, message: MessageProto) -> str: - """Send a protobuf message to a newsletter.""" + """Send a protobuf message to a newsletter. + + Args: + jid: Newsletter JID. + message: Fully constructed protobuf Message. + + Returns: + Server-assigned message ID. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + from tryx.waproto.whatsapp_pb2 import Message + msg = Message(conversation='Hello from newsletter!') + msg_id = await client.newsletter.send_message(newsletter_jid, msg) + """ ... + async def send_reaction(self, jid: JID, server_id: int, reaction: str) -> None: - """React to a newsletter message.""" + """React to a newsletter message. + + Args: + jid: Newsletter JID. + server_id: Server-assigned message ID to react to. + reaction: Emoji reaction string. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def set_follower_mute(self, jid: JID, muted: bool) -> None: - """Mute or unmute newsletter notifications as a follower.""" + """Mute or unmute newsletter notifications as a follower. + + Args: + jid: Newsletter JID. + muted: ``True`` to mute, ``False`` to unmute. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def set_admin_mute(self, jid: JID, muted: bool) -> None: - """Mute or unmute newsletter notifications as an admin.""" + """Mute or unmute newsletter notifications as an admin. + + Args: + jid: Newsletter JID. + muted: ``True`` to mute, ``False`` to unmute. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def edit_message( self, jid: JID, message_id: str, message: MessageProto, ) -> None: - """Edit a previously sent newsletter message.""" + """Edit a previously sent newsletter message. + + Args: + jid: Newsletter JID. + message_id: Message ID to edit. + message: Replacement protobuf message. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def revoke_message(self, jid: JID, message_id: str) -> None: - """Revoke a newsletter message.""" + """Revoke a newsletter message. + + Args: + jid: Newsletter JID. + message_id: Message ID to revoke. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def get_messages( self, jid: JID, count: int, before: int | None = None, ) -> list[NewsletterMessage]: - """Fetch recent messages from a newsletter.""" + """Fetch recent messages from a newsletter. + + Args: + jid: Newsletter JID. + count: Maximum number of messages to return. + before: Optional server_id to paginate before. + + Returns: + List of NewsletterMessage entries. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + messages = await client.newsletter.get_messages( + newsletter_jid, count=10, + ) + for msg in messages: + print(msg.server_id, msg.message_type) + """ ... class MemberLinkMode: - """Type stub for MemberLinkMode.""" + """Controls who can share the group invite link.""" AdminLink: MemberLinkMode AllMemberLink: MemberLinkMode class MemberAddMode: - """Type stub for MemberAddMode.""" + """Controls who can add new members to the group.""" AdminAdd: MemberAddMode AllMemberAdd: MemberAddMode class MembershipApprovalMode: - """Type stub for MembershipApprovalMode.""" + """Controls whether new members require admin approval.""" Off: MembershipApprovalMode On: MembershipApprovalMode class GroupParticipantOptions: - """Type stub for GroupParticipantOptions.""" + """Options for adding a participant to a group.""" jid: JID phone_number: JID | None @@ -1018,7 +2302,7 @@ class GroupParticipantOptions: ... class CreateGroupOptions: - """Type stub for CreateGroupOptions.""" + """Options for creating a new WhatsApp group.""" subject: str participants: list[GroupParticipantOptions] @@ -1062,107 +2346,290 @@ class CreateGroupOptions: ... class CreateGroupResult: - """Type stub for CreateGroupResult.""" + """Result returned after creating a group.""" gid: JID metadata: GroupMetadata class JoinGroupResult: - """Type stub for JoinGroupResult.""" + """Result returned after joining a group.""" jid: JID pending_approval: bool class ParticipantChangeResponse: - """Type stub for ParticipantChangeResponse.""" + """Response for a single participant add/remove/promote/demote operation.""" jid: JID status: str | None error: str | None class MembershipRequest: - """Type stub for MembershipRequest.""" + """Pending membership request for a group.""" jid: JID request_time: int | None class GroupInfo: - """Type stub for GroupInfo.""" + """Basic group information returned by query_info.""" participants: list[JID] addressing_mode: str lid_to_pn_map: list[tuple[str, JID]] class GroupsClient: - """Type stub for GroupsClient.""" + """WhatsApp group management operations. + + All async methods raise ``RuntimeError`` if the client is not running. + """ + async def query_info(self, jid: JID) -> GroupInfo: - """Query basic group info (participants, addressing mode).""" + """Query basic group info (participants, addressing mode). + + Args: + jid: Group JID. + + Returns: + GroupInfo with participants and addressing mode. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + info = await client.groups.query_info(group_jid) + print(info.participants) + """ ... + async def get_participating(self) -> dict[str, GroupMetadata]: - """Get all groups the account is participating in.""" + """Get all groups the account is participating in. + + Returns: + Dict mapping group JID strings to GroupMetadata. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + groups = await client.groups.get_participating() + for jid_str, metadata in groups.items(): + print(metadata.subject) + """ ... + async def get_metadata(self, jid: JID) -> GroupMetadata: - """Get full group metadata including participants.""" + """Get full group metadata including participants. + + Args: + jid: Group JID. + + Returns: + GroupMetadata with full participant list. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + metadata = await client.groups.get_metadata(group_jid) + for p in metadata.participants: + print(p.jid, p.is_admin) + """ ... + async def create_group(self, options: CreateGroupOptions) -> CreateGroupResult: - """Create a new group with the given options.""" + """Create a new group with the given options. + + Args: + options: Group creation configuration. + + Returns: + CreateGroupResult with group ID and metadata. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + from tryx.client import CreateGroupOptions + opts = CreateGroupOptions(subject='Engineering Room') + result = await client.groups.create_group(opts) + print(result.gid) + """ ... + async def set_subject(self, jid: JID, subject: str) -> None: - """Change the group name (subject).""" + """Change the group name (subject). + + Args: + jid: Group JID. + subject: New group name. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def set_description( self, jid: JID, description: str | None = None, prev: str | None = None, ) -> None: - """Set or update the group description.""" + """Set or update the group description. + + Args: + jid: Group JID. + description: New description, or None to clear. + prev: Expected previous description for optimistic concurrency. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def leave(self, jid: JID) -> None: - """Leave a group.""" + """Leave a group. + + Args: + jid: Group JID to leave. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + await client.groups.leave(group_jid) + """ ... + async def add_participants( self, jid: JID, participants: list[JID], ) -> list[ParticipantChangeResponse]: - """Add participants to a group.""" + """Add participants to a group. + + Args: + jid: Group JID. + participants: List of participant JIDs to add. + + Returns: + List of ParticipantChangeResponse for each participant. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + responses = await client.groups.add_participants( + group_jid, + [JID('5599800001', 's.whatsapp.net')], + ) + for r in responses: + print(r.jid, r.status) + """ ... + async def remove_participants( self, jid: JID, participants: list[JID], ) -> list[ParticipantChangeResponse]: - """Remove participants from a group.""" + """Remove participants from a group. + + Args: + jid: Group JID. + participants: List of participant JIDs to remove. + + Returns: + List of ParticipantChangeResponse for each participant. + """ ... + async def promote_participants(self, jid: JID, participants: list[JID]) -> None: - """Promote participants to group admin.""" + """Promote participants to group admin. + + Args: + jid: Group JID. + participants: List of participant JIDs to promote. + """ ... + async def demote_participants(self, jid: JID, participants: list[JID]) -> None: - """Demote admins to regular participants.""" + """Demote admins to regular participants. + + Args: + jid: Group JID. + participants: List of admin JIDs to demote. + """ ... + async def get_invite_link(self, jid: JID, reset: bool) -> str: - """Get (or reset) the group invite link.""" + """Get (or reset) the group invite link. + + Args: + jid: Group JID. + reset: If True, generate a new invite link. + + Returns: + Group invite link string. + """ ... + async def set_locked(self, jid: JID, locked: bool) -> None: - """Lock or unlock group info changes to admins only.""" + """Lock or unlock group info changes to admins only. + + Args: + jid: Group JID. + locked: ``True`` to lock, ``False`` to unlock. + """ ... + async def set_announce(self, jid: JID, announce: bool) -> None: - """Set whether only admins can send messages.""" + """Set whether only admins can send messages. + + Args: + jid: Group JID. + announce: ``True`` for admin-only messaging. + """ ... + async def set_ephemeral(self, jid: JID, expiration: int) -> None: - """Set disappearing message timer (seconds, 0 to disable).""" + """Set disappearing message timer (seconds, 0 to disable). + + Args: + jid: Group JID. + expiration: Timer in seconds (0 to disable). + """ ... + async def set_membership_approval( self, jid: JID, mode: MembershipApprovalMode, ) -> None: - """Set membership approval mode (On/Off).""" + """Set membership approval mode (On/Off). + + Args: + jid: Group JID. + mode: MembershipApprovalMode.On or .Off. + """ ... + async def join_with_invite_code(self, code: str) -> JoinGroupResult: - """Join a group using an invite code.""" + """Join a group using an invite code. + + Args: + code: Invite code string. + + Returns: + JoinGroupResult with group JID and pending approval status. + """ ... + async def join_with_invite_v4( self, group_jid: JID, @@ -1170,86 +2637,212 @@ class GroupsClient: expiration: int, admin_jid: JID, ) -> JoinGroupResult: - """Join a group using a v4 invite link components.""" + """Join a group using a v4 invite link components. + + Args: + group_jid: Group JID. + code: Invite code. + expiration: Invite expiration timestamp. + admin_jid: Admin JID that generated the invite. + + Returns: + JoinGroupResult with group JID and pending approval status. + """ ... + async def get_invite_info(self, code: str) -> GroupMetadata: - """Preview group metadata from an invite code.""" + """Preview group metadata from an invite code. + + Args: + code: Invite code string. + + Returns: + GroupMetadata for the group. + """ ... + async def get_membership_requests(self, jid: JID) -> list[MembershipRequest]: - """List pending membership requests.""" + """List pending membership requests. + + Args: + jid: Group JID. + + Returns: + List of MembershipRequest entries. + """ ... + async def approve_membership_requests( self, jid: JID, participants: list[JID], ) -> list[ParticipantChangeResponse]: - """Approve pending membership requests.""" + """Approve pending membership requests. + + Args: + jid: Group JID. + participants: List of participant JIDs to approve. + + Returns: + List of ParticipantChangeResponse for each participant. + """ ... + async def reject_membership_requests( self, jid: JID, participants: list[JID], ) -> list[ParticipantChangeResponse]: - """Reject pending membership requests.""" + """Reject pending membership requests. + + Args: + jid: Group JID. + participants: List of participant JIDs to reject. + + Returns: + List of ParticipantChangeResponse for each participant. + """ ... + async def set_member_add_mode(self, jid: JID, mode: MemberAddMode) -> None: - """Set who can add members (admin-only or all).""" + """Set who can add members (admin-only or all). + + Args: + jid: Group JID. + mode: MemberAddMode.AdminAdd or .AllMemberAdd. + """ ... + async def set_no_frequently_forwarded( self, jid: JID, restrict: bool, ) -> None: - """Toggle the frequently-forwarded restriction.""" + """Toggle the frequently-forwarded restriction. + + Args: + jid: Group JID. + restrict: ``True`` to restrict forwarding. + """ ... + async def set_allow_admin_reports(self, jid: JID, allow: bool) -> None: - """Toggle whether admins can send reports.""" + """Toggle whether admins can send reports. + + Args: + jid: Group JID. + allow: ``True`` to allow admin reports. + """ ... + async def set_group_history(self, jid: JID, enabled: bool) -> None: - """Toggle group history visibility for new members.""" + """Toggle group history visibility for new members. + + Args: + jid: Group JID. + enabled: ``True`` to show history to new members. + """ ... + async def set_member_link_mode(self, jid: JID, mode: MemberLinkMode) -> None: - """Set the member link mode (admin or all members).""" + """Set the member link mode (admin or all members). + + Args: + jid: Group JID. + mode: MemberLinkMode.AdminLink or .AllMemberLink. + """ ... + async def set_limit_sharing(self, jid: JID, enabled: bool) -> None: - """Toggle the limit-sharing restriction.""" + """Toggle the limit-sharing restriction. + + Args: + jid: Group JID. + enabled: ``True`` to limit sharing. + """ ... + async def cancel_membership_requests( self, jid: JID, participants: list[JID], ) -> list[ParticipantChangeResponse]: - """Cancel pending membership requests (self).""" + """Cancel pending membership requests (self). + + Args: + jid: Group JID. + participants: List of participant JIDs whose requests to cancel. + + Returns: + List of ParticipantChangeResponse for each participant. + """ ... + async def revoke_request_code( self, jid: JID, participants: list[JID], ) -> list[ParticipantChangeResponse]: - """Revoke membership request codes for participants.""" + """Revoke membership request codes for participants. + + Args: + jid: Group JID. + participants: List of participant JIDs. + + Returns: + List of ParticipantChangeResponse for each participant. + """ ... + async def acknowledge(self, jid: JID) -> None: - """Acknowledge group info (mark as seen).""" + """Acknowledge group info (mark as seen). + + Args: + jid: Group JID. + """ ... + async def set_profile_picture(self, jid: JID, image_data: bytes) -> str: - """Set the group profile picture from raw image bytes.""" + """Set the group profile picture from raw image bytes. + + Args: + jid: Group JID. + image_data: Raw image bytes. + + Returns: + Server-assigned picture ID. + """ ... + async def remove_profile_picture(self, jid: JID) -> str: - """Remove the group profile picture.""" + """Remove the group profile picture. + + Args: + jid: Group JID. + + Returns: + Server-assigned picture ID. + """ ... + async def update_member_label(self, jid: JID, label: str) -> None: - """Update the label for a group member.""" + """Update the label for a group member. + + Args: + jid: Group JID. + label: New label string. + """ ... class StatusPrivacySetting: - """Type stub for StatusPrivacySetting.""" + """Privacy setting for WhatsApp status updates.""" Contacts: StatusPrivacySetting AllowList: StatusPrivacySetting DenyList: StatusPrivacySetting class StatusSendOptions: - """Type stub for StatusSendOptions.""" + """Options for sending a WhatsApp status update.""" privacy: StatusPrivacySetting @@ -1265,7 +2858,11 @@ class StatusSendOptions: ... class StatusClient: - """Type stub for StatusClient.""" + """WhatsApp status (story) posting operations. + + All async methods raise ``RuntimeError`` if the client is not running. + """ + async def send_text( self, text: str, @@ -1274,8 +2871,32 @@ class StatusClient: recipients: list[JID], options: StatusSendOptions | None = None, ) -> str: - """Send a text status update.""" + """Send a text status update. + + Args: + text: Status text body. + background_argb: Background color as ARGB integer. + font: Font style identifier. + recipients: List of recipient JIDs. + options: Optional status send options. + + Returns: + Server-assigned message ID. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + msg_id = await client.status.send_text( + text='Hello world!', + background_argb=0xFF1F9D86, + font=1, + recipients=[JID('status', 'status')], + ) + """ ... + async def send_image( self, upload: UploadResponse, @@ -1284,8 +2905,20 @@ class StatusClient: caption: str | None = None, options: StatusSendOptions | None = None, ) -> str: - """Send an image status update.""" + """Send an image status update. + + Args: + upload: Upload metadata from a prior upload call. + thumbnail: Thumbnail image bytes. + recipients: List of recipient JIDs. + caption: Optional image caption. + options: Optional status send options. + + Returns: + Server-assigned message ID. + """ ... + async def send_video( self, upload: UploadResponse, @@ -1295,56 +2928,93 @@ class StatusClient: caption: str | None = None, options: StatusSendOptions | None = None, ) -> str: - """Send a video status update.""" + """Send a video status update. + + Args: + upload: Upload metadata from a prior upload call. + thumbnail: Thumbnail image bytes. + duration_seconds: Video duration in seconds. + recipients: List of recipient JIDs. + caption: Optional video caption. + options: Optional status send options. + + Returns: + Server-assigned message ID. + """ ... + async def send_raw( self, message: MessageProto, recipients: list[JID], options: StatusSendOptions | None = None, ) -> str: - """Send a raw protobuf message as a status update.""" + """Send a raw protobuf message as a status update. + + Args: + message: Fully constructed protobuf Message. + recipients: List of recipient JIDs. + options: Optional status send options. + + Returns: + Server-assigned message ID. + """ ... + async def revoke( self, message_id: str, recipients: list[JID], options: StatusSendOptions | None = None, ) -> str: - """Revoke a status update by message ID.""" + """Revoke a status update by message ID. + + Args: + message_id: Status message ID to revoke. + recipients: List of recipient JIDs. + options: Optional status send options. + + Returns: + Server-assigned message ID of the revocation. + """ ... + @staticmethod def default_privacy() -> StatusPrivacySetting: - """Return the default status privacy setting.""" + """Return the default status privacy setting. + + Returns: + StatusPrivacySetting.Contacts. + """ ... class ChatStateType: - """Type stub for ChatStateType.""" + """Chat state indicator type (composing, recording, paused).""" Composing: ChatStateType Recording: ChatStateType Paused: ChatStateType class BlocklistEntry: - """Type stub for BlocklistEntry.""" + """A single entry in the user's blocklist.""" jid: JID timestamp: int | None class PollOptionResult: - """Type stub for PollOptionResult.""" + """Aggregated result for a single poll option.""" name: str voters: list[str] class PresenceStatus: - """Type stub for PresenceStatus.""" + """Online presence status (available or unavailable).""" Available: PresenceStatus Unavailable: PresenceStatus class PrivacyCategory: - """Type stub for PrivacyCategory.""" + """Category of a WhatsApp privacy setting.""" Last: PrivacyCategory Online: PrivacyCategory @@ -1358,7 +3028,7 @@ class PrivacyCategory: Other: PrivacyCategory class PrivacyValue: - """Type stub for PrivacyValue.""" + """Value for a WhatsApp privacy setting.""" All: PrivacyValue Contacts: PrivacyValue @@ -1371,19 +3041,19 @@ class PrivacyValue: Other: PrivacyValue class DisallowedListAction: - """Type stub for DisallowedListAction.""" + """Action to apply to a disallowed list entry.""" Add: DisallowedListAction Remove: DisallowedListAction class PrivacySetting: - """Type stub for PrivacySetting.""" + """A privacy category-value pair.""" category: PrivacyCategory value: PrivacyValue class DisallowedListUserEntry: - """Type stub for DisallowedListUserEntry.""" + """A single entry in a privacy disallowed list.""" action: DisallowedListAction jid: JID @@ -1405,7 +3075,7 @@ class DisallowedListUserEntry: ... class DisallowedListUpdate: - """Type stub for DisallowedListUpdate.""" + """Update payload for a privacy disallowed list.""" dhash: str users: list[DisallowedListUserEntry] @@ -1424,75 +3094,263 @@ class DisallowedListUpdate: ... class ChatstateClient: - """Type stub for ChatstateClient.""" + """Chat state indicators (typing, recording, paused). + + All methods raise ``RuntimeError`` if the client is not running. + """ + async def send(self, to: JID, state: ChatStateType) -> None: - """Send a chat state (composing, recording, or paused).""" + """Send a chat state (composing, recording, or paused). + + Args: + to: Chat JID. + state: ChatStateType indicator to send. + """ ... + async def send_composing(self, to: JID) -> None: - """Send typing indicator to a chat.""" + """Send typing indicator to a chat. + + Args: + to: Chat JID. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + await client.chatstate.send_composing(chat_jid) + await asyncio.sleep(2) + await client.chatstate.send_paused(chat_jid) + """ ... + async def send_recording(self, to: JID) -> None: - """Send recording indicator to a chat.""" + """Send recording indicator to a chat. + + Args: + to: Chat JID. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def send_paused(self, to: JID) -> None: - """Send paused indicator to a chat.""" + """Send paused indicator to a chat. + + Args: + to: Chat JID. + + Raises: + RuntimeError: If the client is not running. + """ ... class BlockingClient: - """Type stub for BlockingClient.""" + """Block and unblock WhatsApp contacts. + + All methods raise ``RuntimeError`` if the client is not running. + """ + async def block(self, jid: JID) -> None: - """Block a JID.""" + """Block a JID. + + Args: + jid: JID to block. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + await client.blocking.block(sender_jid) + """ ... + async def unblock(self, jid: JID) -> None: - """Unblock a JID.""" + """Unblock a JID. + + Args: + jid: JID to unblock. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def get_blocklist(self) -> list[BlocklistEntry]: - """Return the list of blocked JIDs.""" + """Return the list of blocked JIDs. + + Returns: + List of BlocklistEntry with JID and timestamp. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + blocklist = await client.blocking.get_blocklist() + for entry in blocklist: + print(entry.jid) + """ ... + async def is_blocked(self, jid: JID) -> bool: - """Return True if the JID is blocked.""" + """Return True if the JID is blocked. + + Args: + jid: JID to check. + + Returns: + ``True`` if the JID is in the blocklist. + + Raises: + RuntimeError: If the client is not running. + """ ... class ProfileClient: - """Type stub for ProfileClient.""" + """Account profile management (name, status, picture). + + All methods raise ``RuntimeError`` if the client is not running. + """ + async def set_push_name(self, name: str) -> None: - """Update the account display name.""" + """Update the account display name. + + Args: + name: New display name. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + await client.profile.set_push_name('My Bot') + """ ... + async def set_status_text(self, text: str) -> None: - """Update the account about/status text.""" + """Update the account about/status text. + + Args: + text: New about/status text. + + Raises: + RuntimeError: If the client is not running. + """ ... + async def set_profile_picture(self, image_data: bytes) -> str: - """Set the profile picture from raw image bytes.""" + """Set the profile picture from raw image bytes. + + Args: + image_data: Raw image bytes. + + Returns: + Server-assigned picture ID. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + with open('avatar.jpg', 'rb') as f: + pic_id = await client.profile.set_profile_picture(f.read()) + """ ... + async def remove_profile_picture(self) -> str: - """Remove the profile picture.""" + """Remove the profile picture. + + Returns: + Server-assigned picture ID. + + Raises: + RuntimeError: If the client is not running. + """ ... class PrivacyClient: - """Type stub for PrivacyClient.""" + """WhatsApp privacy settings management. + + All methods raise ``RuntimeError`` if the client is not running. + """ + async def fetch_settings(self) -> list[PrivacySetting]: - """Fetch all current privacy settings.""" + """Fetch all current privacy settings. + + Returns: + List of PrivacySetting entries. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + rows = await client.privacy.fetch_settings() + for row in rows: + print(row.category, row.value) + """ ... + async def set_setting( self, category: PrivacyCategory, value: PrivacyValue, ) -> str | None: - """Set a privacy category to a specific value.""" + """Set a privacy category to a specific value. + + Args: + category: Privacy category to update. + value: New privacy value. + + Returns: + Server status string, or None on success. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + await client.privacy.set_setting( + PrivacyCategory.Status, + PrivacyValue.Contacts, + ) + """ ... + async def set_disallowed_list( self, category: PrivacyCategory, update: DisallowedListUpdate, ) -> str | None: - """Update the disallowed list for a privacy category.""" + """Update the disallowed list for a privacy category. + + Args: + category: Privacy category to update. + update: DisallowedListUpdate with entries to add/remove. + + Returns: + Server status string, or None on success. + """ ... + async def set_default_disappearing_mode(self, duration_seconds: int) -> None: - """Set the default disappearing message duration (seconds).""" + """Set the default disappearing message duration (seconds). + + Args: + duration_seconds: Duration in seconds (0 to disable). + """ ... class PollsClient: - """Type stub for PollsClient.""" + """Poll creation, voting, and decryption operations. + + All async methods raise ``RuntimeError`` if the client is not running. + """ + async def create( self, to: JID, @@ -1502,10 +3360,31 @@ class PollsClient: ) -> tuple[str, bytes]: """Create a poll in a chat. + Args: + to: Chat JID. + name: Poll question/name. + options: List of option strings. + selectable_count: Number of options a voter can select. + Returns: - (message_id, poll_enc_key) tuple. + ``(message_id, poll_enc_key)`` tuple. + + Raises: + ValueError: If *options* is empty or *selectable_count* is + invalid. + RuntimeError: If the client is not running. + + Example:: + + msg_id, secret = await client.polls.create( + to=JID('123', 's.whatsapp.net'), + name='Favorite color?', + options=['Red', 'Blue', 'Green'], + selectable_count=1, + ) """ ... + async def vote( self, chat_jid: JID, @@ -1514,8 +3393,20 @@ class PollsClient: message_secret: bytes, option_names: list[str], ) -> str: - """Cast a vote on a poll message.""" + """Cast a vote on a poll message. + + Args: + chat_jid: Chat JID containing the poll. + poll_msg_id: Poll message ID. + poll_creator_jid: JID of the poll creator. + message_secret: Poll message secret bytes. + option_names: Selected option names. + + Returns: + Server-assigned message ID of the vote. + """ ... + @staticmethod def decrypt_vote( enc_payload: bytes, @@ -1525,8 +3416,21 @@ class PollsClient: poll_creator_jid: JID, voter_jid: JID, ) -> list[bytes]: - """Decrypt a single poll vote without LID/PN fallback.""" + """Decrypt a single poll vote without LID/PN fallback. + + Args: + enc_payload: Encrypted vote payload. + enc_iv: Encrypted initialization vector. + message_secret: Poll message secret key. + poll_msg_id: Poll message ID. + poll_creator_jid: Poll creator JID. + voter_jid: Voter JID. + + Returns: + List of selected option name hashes. + """ ... + @staticmethod def aggregate_votes( poll_options: list[str], @@ -1535,23 +3439,68 @@ class PollsClient: poll_msg_id: str, poll_creator_jid: JID, ) -> list[PollOptionResult]: - """Aggregate multiple poll votes into per-option results.""" + """Aggregate multiple poll votes into per-option results. + + Args: + poll_options: List of option name strings. + votes: List of ``(voter_jid, enc_payload, enc_iv)`` tuples. + message_secret: Poll message secret key. + poll_msg_id: Poll message ID. + poll_creator_jid: Poll creator JID. + + Returns: + List of PollOptionResult with name and voters. + """ ... class PresenceClient: - """Type stub for PresenceClient.""" + """Online presence status management. + + All methods raise ``RuntimeError`` if the client is not running. + """ + async def set(self, status: PresenceStatus) -> None: - """Set presence status (Available or Unavailable).""" + """Set presence status (Available or Unavailable). + + Args: + status: PresenceStatus.Available or .Unavailable. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + await client.presence.set(PresenceStatus.Available) + """ ... + async def set_available(self) -> None: """Set presence to Available.""" ... + async def set_unavailable(self) -> None: """Set presence to Unavailable.""" ... + async def subscribe(self, jid: JID) -> None: - """Subscribe to presence updates for a JID.""" + """Subscribe to presence updates for a JID. + + Args: + jid: JID to subscribe to. + + Raises: + RuntimeError: If the client is not running. + + Example:: + + await client.presence.subscribe(target_jid) + """ ... + async def unsubscribe(self, jid: JID) -> None: - """Unsubscribe from presence updates for a JID.""" + """Unsubscribe from presence updates for a JID. + + Args: + jid: JID to unsubscribe from. + """ ... diff --git a/python/tryx/wacore.pyi b/python/tryx/wacore.pyi index b8962de..07af6b5 100644 --- a/python/tryx/wacore.pyi +++ b/python/tryx/wacore.pyi @@ -25,34 +25,82 @@ class NodeValue: """ def __init__(self, value: str) -> None: - """Create a NodeValue from a string.""" + """Create a NodeValue from a string. + + Args: + value: Initial string value. + + Example:: + + val = NodeValue('hello') + print(val.value) # 'hello' + """ ... @staticmethod def jid(value: JID) -> NodeValue: - """Create a NodeValue from a JID.""" + """Create a NodeValue from a JID. + + Args: + value: JID to wrap. + + Returns: + NodeValue wrapping the JID. + + Example:: + + val = NodeValue.jid(JID('123', 's.whatsapp.net')) + print(val.value) # JID object + """ ... def set_string(self, value: str) -> None: - """Replace the current value with a string.""" + """Replace the current value with a string. + + Args: + value: New string value. + + Example:: + + val = NodeValue('old') + val.set_string('new') + """ ... def set_jid(self, value: JID) -> None: - """Replace the current value with a JID.""" + """Replace the current value with a JID. + + Args: + value: New JID value. + + Example:: + + val = NodeValue('default') + val.set_jid(JID('123', 's.whatsapp.net')) + """ ... @property def value(self) -> str | JID: - """Return the current value as either a string or JID.""" + """Return the current value as either a string or JID. + + Returns: + The attribute value (str or JID). + + Raises: + TypeError: If the internal type is neither str nor JID. + """ ... @value.setter def value(self, value: str | JID) -> None: - """ - Return the current value as either a string or JID. + """Set the current value to a string or JID. - Returns: - The attribute value (str or JID). + Args: + value: New value (string or JID). + + Raises: + TypeError: If *value* is not a str or JID. """ ... @@ -64,7 +112,11 @@ class NodeContent: @property def value(self) -> bytes | str | list[Node]: - """Return the current content value.""" + """Return the current content value. + + Returns: + Content as bytes, string, or list of child Nodes. + """ ... def is_bytes(self) -> bool: @@ -86,7 +138,16 @@ class Attrs: value: NodeValue def __init__(self, key: str, value: NodeValue) -> None: - """Create a node attribute pair.""" + """Create a node attribute pair. + + Args: + key: Attribute name. + value: Attribute value. + + Example:: + + attr = Attrs('to', NodeValue.jid(JID('123', 's.whatsapp.net'))) + """ ... class Node: @@ -102,7 +163,21 @@ class Node: attrs: list[Attrs], content: NodeContent | None, ) -> None: - """Create a protocol node object.""" + """Create a protocol node object. + + Args: + tag: Node tag name. + attrs: List of attribute entries. + content: Optional payload content. + + Example:: + + node = Node( + tag='message', + attrs=[Attrs('to', NodeValue.jid(JID('123', 's.whatsapp.net')))], + content=None, + ) + """ ... class KeyIndexInfo: From 0d04c5792bb4bef5a614eafcafc22535919888e4 Mon Sep 17 00:00:00 2001 From: krypton-byte Date: Sat, 22 Aug 2026 18:18:27 +0000 Subject: [PATCH 09/24] chore: update submodule and dependencies, fix Rust compilation - Update whatsapp-rust submodule to latest (1489b7da) - Update all Cargo and Python dependencies to latest versions - Fix PushNameUpdate -> RetiredPushNameUpdate rename in upstream - Fix CompactString/SmallVec type conversions in types.rs Co-Authored-By: Codebuff --- Cargo.lock | 1840 ++++++++++++-------------- libs/whatsapp-rust | 2 +- src/clients/tryx.rs | 2 +- src/events/dispatcher.rs | 2 +- src/events/types/profile_sync.rs | 8 +- src/types.rs | 22 +- uv.lock | 2124 ++++++++++++++++-------------- 7 files changed, 2014 insertions(+), 1986 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b4c54e9..01a29a3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18,7 +18,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1973cfbc1a2daf9cf550e74e1f088c28e7f7d8c1e1418fb6c9dc5184b7e84c99" dependencies = [ - "crypto-common 0.2.1", + "crypto-common 0.2.2", "inout 0.2.2", ] @@ -39,71 +39,48 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8eb277bec05f56a0e0591f155a484cbd0f4f07ff2905051a48c72f004f7ed58" dependencies = [ - "cipher 0.5.1", + "cipher 0.5.2", "cpubits", "cpufeatures 0.3.0", ] [[package]] name = "aes-gcm" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" -dependencies = [ - "aead 0.5.2", - "aes 0.8.4", - "cipher 0.4.4", - "ctr 0.9.2", - "ghash 0.5.1", - "subtle", -] - -[[package]] -name = "aes-gcm" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdf011db2e21ce0d575593d749db5554b47fed37aff429e4dc50bc91ac93a028" +checksum = "7f2b8006a0c83f52b62ba44a97b58bf76fe2f70a329e588f67f89691d93d498f" dependencies = [ "aead 0.6.1", "aes 0.9.2", - "cipher 0.5.1", - "ctr 0.10.0", - "ghash 0.6.0", - "subtle", + "cipher 0.5.2", + "ctr 0.10.1", + "ctutils", + "ghash", ] [[package]] name = "aho-corasick" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" dependencies = [ "memchr", ] [[package]] name = "android_system_properties" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc" dependencies = [ "libc", ] [[package]] name = "anyhow" -version = "1.0.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" - -[[package]] -name = "arc-swap" -version = "1.9.2" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c049c0be4daef0b145cb3555416b3b8ef5b7888a38aea1a3a155801fe7b0810b" -dependencies = [ - "rustversion", -] +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" [[package]] name = "arrayvec" @@ -117,7 +94,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" dependencies = [ - "asn1-rs-derive", + "asn1-rs-derive 0.5.1", "asn1-rs-impl", "displaydoc", "nom", @@ -127,6 +104,22 @@ dependencies = [ "time", ] +[[package]] +name = "asn1-rs" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f43a50ac4fdca5df8e885c21b835997f0a1cdee65494a6847694a98652d9d8" +dependencies = [ + "asn1-rs-derive 0.6.0", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror 2.0.20", + "time", +] + [[package]] name = "asn1-rs-derive" version = "0.5.1" @@ -135,7 +128,19 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", + "synstructure", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", "synstructure", ] @@ -147,7 +152,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -197,15 +202,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "base64" @@ -214,10 +213,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] -name = "base64ct" -version = "1.8.3" +name = "base64" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" [[package]] name = "bincode" @@ -228,6 +227,15 @@ dependencies = [ "serde", ] +[[package]] +name = "bit-vec" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71798fca2c1fe1086445a7258a4bc81e6e49dcd24c8d0dd9a1e57395b603f51" +dependencies = [ + "serde", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -236,9 +244,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.11.0" +version = "2.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" [[package]] name = "block-buffer" @@ -251,22 +259,13 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdd35008169921d80bc60d3d0ab416eecb028c4cd653352907921d95084790be" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" dependencies = [ "hybrid-array", ] -[[package]] -name = "block-padding" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" -dependencies = [ - "generic-array", -] - [[package]] name = "block-padding" version = "0.4.2" @@ -292,13 +291,13 @@ version = "3.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dee98b0db6a962de883bf5d20362dee4d7ca0d12fe39a7c6c73c844e1cd7c1f" dependencies = [ - "darling", + "darling 0.23.0", "ident_case", "prettyplease", "proc-macro2", "quote", "rustversion", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -307,7 +306,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf9e6224bc4ee1f189ad257120c156fb05f95b826f5369d620b24984476c200a" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "foldhash 0.1.5", "hashbrown 0.15.5", @@ -341,7 +340,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", "thiserror 2.0.20", ] @@ -359,9 +358,32 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.20.2" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[package]] +name = "bytecheck" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26333eeac754f0ad8a6bcd0eb0ac012156302e4e16b852b72ee399aea4f12c29" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "rancor", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +checksum = "46d07918caa9eeaaf06b7873925c53a61daac173539b4f7715090745e44e4e69" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] [[package]] name = "bytemuck" @@ -377,9 +399,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae3f5d315924270530207e2a68396c3cc547f6dca3fbdca317cfb1a51edb593" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" [[package]] name = "castaway" @@ -392,27 +414,18 @@ dependencies = [ [[package]] name = "cbc" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" -dependencies = [ - "cipher 0.4.4", -] - -[[package]] -name = "cbc" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98db6aeaef0eeef2c1e3ce9a27b739218825dae116076352ac3777076aa22225" +checksum = "ce2dc9ee5f88d11e0beb842c88b33c8a5cf0d1329c4b19494af42b07dbfe8896" dependencies = [ - "cipher 0.5.1", + "cipher 0.5.2", ] [[package]] name = "cc" -version = "1.2.57" +version = "1.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423" +checksum = "0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273" dependencies = [ "find-msvc-tools", "shlex", @@ -432,12 +445,13 @@ dependencies = [ [[package]] name = "cfb" -version = "0.12.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb9b414dc579b1b0194d06e65472b6ee2e87f623f970a715e3bb04e105400ffa" +checksum = "a347dcabdae9c31b0825fd6a8bed285ec9c2acb89c47827126d52fa4f59cece3" dependencies = [ "fnv", "uuid", + "web-time", ] [[package]] @@ -446,22 +460,28 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +[[package]] +name = "cfg_aliases" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + [[package]] name = "chacha20" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81" dependencies = [ "cfg-if", "cpufeatures 0.3.0", - "rand_core 0.10.0", + "rand_core 0.10.1", ] [[package]] name = "chrono" -version = "0.4.44" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" dependencies = [ "iana-time-zone", "js-sys", @@ -483,12 +503,12 @@ dependencies = [ [[package]] name = "cipher" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34d8227fe1ba289043aeb13792056ff80fd6de1a9f49137a5f499de8e8c78ea" +checksum = "e8cf2a2c93cd704877c0858356ed03480ff301ee950b43f1cbe4573b088bfa6c" dependencies = [ - "block-buffer 0.12.0", - "crypto-common 0.2.1", + "block-buffer 0.12.1", + "crypto-common 0.2.2", "inout 0.2.2", ] @@ -503,9 +523,9 @@ dependencies = [ [[package]] name = "cmov" -version = "0.5.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0758edba32d61d1fd9f4d69491b47604b91ee2f7e6b33de7e54ca4ebe55dc3" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" [[package]] name = "compact_str" @@ -530,12 +550,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -544,9 +558,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpubits" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef0c543070d296ea414df2dd7625d1b24866ce206709d8a4a424f28377f5861" +checksum = "15b85f9c39137c3a891689859392b1bd49812121d0d61c9caf00d46ed5ce06ae" [[package]] name = "cpufeatures" @@ -567,37 +581,19 @@ dependencies = [ ] [[package]] -name = "crc" -version = "3.4.0" +name = "crc32c" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" +checksum = "3a47af21622d091a8f0fb295b88bc886ac74efcc613efc19f5d0b21de5c89e47" dependencies = [ - "crc-catalog", + "rustc_version", ] -[[package]] -name = "crc-catalog" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "217698eaf96b4a3f0bc4f3662aaa55bdf913cd54d7204591faa790070c6d0853" - [[package]] name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crypto-bigint" -version = "0.5.5" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array", - "rand_core 0.6.4", - "subtle", - "zeroize", -] +checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" [[package]] name = "crypto-common" @@ -612,9 +608,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77727bb15fa921304124b128af125e7e3b968275d1b108b379190264f4423710" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" dependencies = [ "hybrid-array", ] @@ -630,37 +626,22 @@ dependencies = [ [[package]] name = "ctr" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17469f8eb9bdbfad10f71f4cfddfd38b01143520c0e717d8796ccb4d44d44e42" +checksum = "baaca1c4b237092596f64d571e9db6ce4109c4ef9742e27590f1709594461f21" dependencies = [ - "cipher 0.5.1", + "cipher 0.5.2", ] [[package]] name = "ctutils" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1005a6d4446f5120ef475ad3d2af2b30c49c2c9c6904258e3bb30219bebed5e4" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" dependencies = [ "cmov", ] -[[package]] -name = "curve25519-dalek" -version = "4.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" -dependencies = [ - "cfg-if", - "cpufeatures 0.2.17", - "curve25519-dalek-derive", - "fiat-crypto 0.2.9", - "rustc_version", - "subtle", - "zeroize", -] - [[package]] name = "curve25519-dalek" version = "5.0.0" @@ -670,7 +651,7 @@ dependencies = [ "cfg-if", "cpufeatures 0.3.0", "curve25519-dalek-derive", - "fiat-crypto 0.3.0", + "fiat-crypto", "rustc_version", "subtle", "zeroize", @@ -684,7 +665,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -693,8 +674,18 @@ version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.21.3", + "darling_macro 0.21.3", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", ] [[package]] @@ -708,7 +699,20 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.117", + "syn 2.0.119", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", ] [[package]] @@ -717,9 +721,20 @@ version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ - "darling_core", + "darling_core 0.21.3", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -729,23 +744,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4583a4551df46e2792f82ceeac45e850d2e2d5debba0b91f102385cda5b11f06" [[package]] -name = "der" -version = "0.7.10" +name = "der-parser" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", + "asn1-rs 0.6.2", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", ] [[package]] name = "der-parser" -version = "9.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" +checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" dependencies = [ - "asn1-rs", + "asn1-rs 0.7.2", "displaydoc", "nom", "num-bigint", @@ -758,9 +776,6 @@ name = "deranged" version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" -dependencies = [ - "powerfmt", -] [[package]] name = "diesel" @@ -778,15 +793,15 @@ dependencies = [ [[package]] name = "diesel_derives" -version = "2.3.7" +version = "2.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47618bf0fac06bb670c036e48404c26a865e6a71af4114dfd97dfe89936e404e" +checksum = "d1817b7f4279b947fc4cafddec12b0e5f8727141706561ce3ac94a60bddd1cf5" dependencies = [ "diesel_table_macro_syntax", "dsl_auto_type", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -806,7 +821,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe2444076b48641147115697648dc743c2c00b61adade0f01ce67133c7babe8c" dependencies = [ - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -816,19 +831,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", - "const-oid", "crypto-common 0.1.7", "subtle", ] [[package]] name = "digest" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4850db49bf08e663084f7fb5c87d202ef91a3907271aff24a94eb97ff039153c" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" dependencies = [ - "block-buffer 0.12.0", - "crypto-common 0.2.1", + "block-buffer 0.12.1", + "crypto-common 0.2.2", "ctutils", ] @@ -855,54 +869,19 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd122633e4bef06db27737f21d3738fb89c8f6d5360d6d9d7635dda142a7757e" dependencies = [ - "darling", + "darling 0.21.3", "either", "heck", "proc-macro2", "quote", - "syn 2.0.117", -] - -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "signature", - "spki", + "syn 2.0.119", ] [[package]] name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" - -[[package]] -name = "elliptic-curve" -version = "0.13.8" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff", - "generic-array", - "group", - "hkdf 0.12.4", - "pem-rfc7468", - "pkcs8", - "rand_core 0.6.4", - "sec1", - "subtle", - "zeroize", -] +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" [[package]] name = "encoding_rs" @@ -931,11 +910,10 @@ dependencies = [ [[package]] name = "event-listener" -version = "5.4.1" +version = "5.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +checksum = "5a23add41df1562121a9393cb065eab5146a1242410f23a644851e90cfd669d2" dependencies = [ - "concurrent-queue", "parking", "pin-project-lite", ] @@ -958,25 +936,9 @@ checksum = "af9673d8203fcb076b19dfd17e38b3d4ae9f44959416ea532ce72415a6020365" [[package]] name = "fastrand" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" - -[[package]] -name = "ff" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" -dependencies = [ - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "fiat-crypto" -version = "0.2.9" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" [[package]] name = "fiat-crypto" @@ -986,9 +948,9 @@ checksum = "64cd1e32ddd350061ae6edb1b082d7c54915b5c672c389143b9a63403a109f24" [[package]] name = "find-msvc-tools" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890" [[package]] name = "fnv" @@ -1008,11 +970,20 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + [[package]] name = "futures" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" +checksum = "9a31d2a3fbaaeb2af2368bbdd904aa8e812d3c04a1ee10d3171f52d556e5d0a3" dependencies = [ "futures-channel", "futures-core", @@ -1024,9 +995,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "262590f4fe6afeb0bc83be1daa64e52657fe185690a958af7f3ad0e92085c5ae" +checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4" dependencies = [ "futures-core", "futures-sink", @@ -1034,44 +1005,44 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" [[package]] name = "futures-io" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4577ecaa3c4f96589d473f679a71b596316f6641bc350038b962a5daf0085d7a" +checksum = "53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed" [[package]] name = "futures-macro" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d6d3cde68c518367be28956066ddfef33813991b77a55005a69dae04bf3b10b" +checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.3", ] [[package]] name = "futures-sink" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34418ac499d6305c2fb5ad0ed2f6ac998c5f8ca209b4510f7f94242c647e307" +checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d" [[package]] name = "futures-task" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" [[package]] name = "futures-util" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" dependencies = [ "futures-channel", "futures-core", @@ -1092,7 +1063,6 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", - "zeroize", ] [[package]] @@ -1108,60 +1078,25 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" -dependencies = [ - "cfg-if", - "libc", - "r-efi 5.3.0", - "wasip2", -] - -[[package]] -name = "getrandom" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" dependencies = [ "cfg-if", "js-sys", "libc", - "r-efi 6.0.0", - "rand_core 0.10.0", - "wasip2", - "wasip3", + "r-efi", + "rand_core 0.10.1", "wasm-bindgen", ] -[[package]] -name = "ghash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" -dependencies = [ - "opaque-debug", - "polyval 0.6.2", -] - [[package]] name = "ghash" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eecf2d5dc9b66b732b97707a0210906b1d30523eb773193ab777c0c84b3e8d5" dependencies = [ - "polyval 0.7.1", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core 0.6.4", - "subtle", + "polyval", ] [[package]] @@ -1201,15 +1136,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac 0.12.1", -] - [[package]] name = "hkdf" version = "0.13.0" @@ -1234,7 +1160,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f" dependencies = [ - "digest 0.11.2", + "digest 0.11.3", ] [[package]] @@ -1255,9 +1181,9 @@ checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "hybrid-array" -version = "0.4.8" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8655f91cd07f2b9d0c24137bd650fe69617773435ee5ec83022377777ce65ef1" +checksum = "707114b52a152fa7bdb290cd7cd5912d9467273b6d74e21b8d81aca1f8533f6b" dependencies = [ "typenum", ] @@ -1287,10 +1213,87 @@ dependencies = [ ] [[package]] -name = "id-arena" +name = "icu_collections" version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" +checksum = "fa68d21081c4a05d5a901a1c62add574c77048b6a1c67be3b50ce0b60d4ca513" +dependencies = [ + "displaydoc", + "potential_utf", + "utf8_iter", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d56e28588da92eee5c3201a6eff33fabdd49b62269c8938d4ff050ce4d900deb" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f9cf5f235641ed274641dd81c3f28d870e276763d0797aeeab72317b1c646f" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1563da1ed3e0b3bf3d74c9b85917ac9c56464d2f57242270c09c9e752f8021a0" + +[[package]] +name = "icu_properties" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e7ca276ad3145661a65914e6daf131ca5120cd3dcee8f8f3214b8875184a148" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e590f038c1464a96894fd6d10127e90a8be4509f56ff7ecef851b15cee0b7caa" + +[[package]] +name = "icu_provider" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d27bbb9d3abbefac45d55f647c9de1d44aafcd1186eb91879afef17c396c3e73" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] [[package]] name = "ident_case" @@ -1298,22 +1301,41 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + [[package]] name = "indexmap" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.16.1", - "serde", - "serde_core", + "hashbrown 0.17.1", ] [[package]] name = "infer" -version = "0.21.0" -source = "git+https://github.com/bojand/infer?branch=master#7e6b1d00762cbfbef480333cd137582b3e4aba32" +version = "0.22.0" +source = "git+https://github.com/bojand/infer?branch=master#cb05400c5f43e07200fbc1c5753e15946e9b1de8" dependencies = [ "cfb", ] @@ -1324,7 +1346,6 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ - "block-padding 0.3.3", "generic-array", ] @@ -1334,29 +1355,24 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4250ce6452e92010fdf7268ccc5d14faa80bb12fc741938534c58f16804e03c7" dependencies = [ - "block-padding 0.4.2", + "block-padding", "hybrid-array", ] -[[package]] -name = "ipnet" -version = "2.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a756c3fac73139e83f14c2d742155dd2b78d3ee56597b419a0579b7bdd6dd78" - [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "js-sys" -version = "0.3.91" +version = "0.3.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" +checksum = "0e0c1080212aad755ea003d18543e8768dd432c48819efd73a7bf1e39b7a5a3a" dependencies = [ - "once_cell", + "cfg-if", + "futures-util", "wasm-bindgen", ] @@ -1366,17 +1382,11 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -[[package]] -name = "leb128fmt" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" - [[package]] name = "libc" -version = "0.2.183" +version = "0.2.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "libloading" @@ -1405,6 +1415,12 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" +[[package]] +name = "litemap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae" + [[package]] name = "lock_api" version = "0.4.14" @@ -1416,9 +1432,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.29" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" [[package]] name = "matchers" @@ -1429,6 +1445,16 @@ dependencies = [ "regex-automata", ] +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + [[package]] name = "md5" version = "0.8.1" @@ -1437,15 +1463,15 @@ checksum = "7ebb8d8732c6a6df3d8f032a82911cfc747e00efb95cc46e8d0acd5b5b88570c" [[package]] name = "memchr" -version = "2.8.0" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "memoffset" -version = "0.7.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" dependencies = [ "autocfg", ] @@ -1479,26 +1505,46 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "mio" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda" +checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427" dependencies = [ "libc", "wasi", "windows-sys 0.61.2", ] +[[package]] +name = "munge" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c" +dependencies = [ + "munge_macro", +] + +[[package]] +name = "munge_macro" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + [[package]] name = "nix" -version = "0.26.4" +version = "0.31.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.13.1", "cfg-if", + "cfg_aliases", "libc", "memoffset", - "pin-utils", ] [[package]] @@ -1532,15 +1578,15 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" [[package]] name = "num-integer" -version = "0.1.46" +version = "0.1.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" dependencies = [ "num-traits", ] @@ -1560,20 +1606,23 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" dependencies = [ - "asn1-rs", + "asn1-rs 0.6.2", ] [[package]] -name = "once_cell" -version = "1.21.4" +name = "oid-registry" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" +checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7" +dependencies = [ + "asn1-rs 0.7.2", +] [[package]] -name = "opaque-debug" -version = "0.3.1" +name = "once_cell" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "opus" @@ -1584,30 +1633,6 @@ dependencies = [ "audiopus_sys", ] -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2 0.10.9", -] - -[[package]] -name = "p384" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6" -dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2 0.10.9", -] - [[package]] name = "parking" version = "2.2.1" @@ -1643,19 +1668,10 @@ version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" dependencies = [ - "base64", + "base64 0.22.1", "serde_core", ] -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - [[package]] name = "percent-encoding" version = "2.3.2" @@ -1668,56 +1684,37 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - [[package]] name = "pkg-config" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" [[package]] name = "polyval" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" -dependencies = [ - "cfg-if", - "cpufeatures 0.2.17", - "opaque-debug", - "universal-hash 0.5.1", -] - -[[package]] -name = "polyval" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dfc63250416fea14f5749b90725916a6c903f599d51cb635aa7a52bfd03eede" +checksum = "f0fa31d631f2b2cb2a544d0aa321ce847a94764d701ca2becc411138b93d49cd" dependencies = [ "cpubits", "cpufeatures 0.3.0", - "universal-hash 0.6.1", + "universal-hash", ] [[package]] name = "portable-atomic" -version = "1.13.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" +checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" + +[[package]] +name = "potential_utf" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d83eb9bc6d8e5cf568e7a1101d60ee05e81ed50ea106026f3d18deeb046d7661" +dependencies = [ + "zerovec", +] [[package]] name = "powerfmt" @@ -1726,47 +1723,49 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] -name = "ppv-lite86" -version = "0.2.21" +name = "prettyplease" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ - "zerocopy", + "proc-macro2", + "syn 2.0.119", ] [[package]] -name = "prettyplease" -version = "0.2.37" +name = "proc-macro2" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" dependencies = [ - "proc-macro2", - "syn 2.0.117", + "unicode-ident", ] [[package]] -name = "primeorder" -version = "0.13.6" +name = "ptr_meta" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +checksum = "743da816b98c921cdbe8628ef7381b76f25ecf4da599fc80aca90eae7ef70cc0" dependencies = [ - "elliptic-curve", + "ptr_meta_derive", ] [[package]] -name = "proc-macro2" -version = "1.0.106" +name = "ptr_meta_derive" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "1c8d9ca532f185d5d4db7a7c9d51420b452168ea1c2b913953281bd6fe1fcbd0" dependencies = [ - "unicode-ident", + "proc-macro2", + "quote", + "syn 3.0.3", ] [[package]] name = "pyo3" -version = "0.28.2" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf85e27e86080aafd5a22eae58a162e133a589551542b3e5cee4beb27e54f8e1" +checksum = "91fd8e38a3b50ed1167fb981cd6fd60147e091784c427b8f7183a7ee32c31c12" dependencies = [ "libc", "once_cell", @@ -1799,23 +1798,23 @@ checksum = "c23399970eea9c31d0ac84cee4a9d8dd05f89b1da2f4dd5bb44b32a3f66db4f8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] name = "pyo3-build-config" -version = "0.28.2" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf94ee265674bf76c09fa430b0e99c26e319c945d96ca0d5a8215f31bf81cf7" +checksum = "e368e7ddfdeb98c9bca7f8383be1648fd84ab466bf2bc015e94008db6d35611e" dependencies = [ "target-lexicon", ] [[package]] name = "pyo3-ffi" -version = "0.28.2" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "491aa5fc66d8059dd44a75f4580a2962c1862a1c2945359db36f6c2818b748dc" +checksum = "7f29e10af80b1f7ccaf7f69eace800a03ecd13e883acfacc1e5d0988605f651e" dependencies = [ "libc", "pyo3-build-config", @@ -1823,44 +1822,38 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.28.2" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5d671734e9d7a43449f8480f8b38115df67bef8d21f76837fa75ee7aaa5e52e" +checksum = "df6e520eff47c45997d2fc7dd8214b25dd1310918bbb2642156ef66a67f29813" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] name = "pyo3-macros-backend" -version = "0.28.2" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22faaa1ce6c430a1f71658760497291065e6450d7b5dc2bcf254d49f66ee700a" +checksum = "c4cdc218d835738f81c2338f822078af45b4afdf8b2e33cbb5916f108b813acb" dependencies = [ "heck", "proc-macro2", "pyo3-build-config", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] name = "quote" -version = "1.0.45" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" dependencies = [ "proc-macro2", ] -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - [[package]] name = "r-efi" version = "6.0.0" @@ -1879,55 +1872,23 @@ dependencies = [ ] [[package]] -name = "rand" -version = "0.8.7" +name = "rancor" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a" +checksum = "9b534442d0fcdb55d66f373d9cac6d33b6293a2335bc2136dbd06ce0e87d2572" dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", + "ptr_meta", ] [[package]] name = "rand" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.5", -] - -[[package]] -name = "rand" -version = "0.10.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8" +checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" dependencies = [ "chacha20", - "getrandom 0.4.2", - "rand_core 0.10.0", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.5", + "getrandom 0.4.3", + "rand_core 0.10.1", ] [[package]] @@ -1941,29 +1902,21 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" -dependencies = [ - "getrandom 0.3.4", -] - -[[package]] -name = "rand_core" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" [[package]] name = "rcgen" -version = "0.13.2" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2" +checksum = "091e7a8e7d86e6feb87a27ce8e2cba29d49eff9507afeebefab7eeb2ca667fb4" dependencies = [ "pem", "ring", "rustls-pki-types", "time", + "x509-parser 0.18.1", "yasna", ] @@ -1973,14 +1926,14 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", ] [[package]] name = "regex-automata" -version = "0.4.14" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" dependencies = [ "aho-corasick", "memchr", @@ -1989,18 +1942,17 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] -name = "rfc6979" -version = "0.4.0" +name = "rend" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +checksum = "663ba70707f96e871406fe10d68128412e619b06d1d47cb91c3a4c6501176240" dependencies = [ - "hmac 0.12.1", - "subtle", + "bytecheck", ] [[package]] @@ -2017,16 +1969,137 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rkyv" +version = "0.8.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9776093b7ca170454ab1406954f7b7d97a57c51dc6c0642957fb2ef25c2d399" +dependencies = [ + "bytecheck", + "bytes", + "hashbrown 0.17.1", + "indexmap", + "munge", + "ptr_meta", + "rancor", + "rend", + "rkyv_derive", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.8.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c25ef604ac7dd839d44d64648952ea23c97866f124ff671b0ed2cf3ad9bb06e" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + [[package]] name = "rsqlite-vfs" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a1f2315036ef6b1fbacd1972e8ee7688030b0a2121edfc2a6550febd41574d" +checksum = "c51c9ae4df8a7fba42103df5c621fa3c37eccf3a3c650879e90fc48b11cc192c" dependencies = [ "hashbrown 0.16.1", "thiserror 2.0.20", ] +[[package]] +name = "rtc-crypto" +version = "0.21.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d47521f43ea9a6e16feafa78ba06633ca85a51f0ad66b906a5f01ccfe08ba90" +dependencies = [ + "aes 0.8.4", + "ccm", + "ctr 0.9.2", + "hmac 0.12.1", + "md-5", + "rand", + "ring", + "sha1 0.10.7", + "subtle", + "thiserror 2.0.20", + "zeroize", +] + +[[package]] +name = "rtc-datachannel" +version = "0.21.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374adcfc6f138839109d84c521ccedae9410b11f62c1ae577cb786ed91494f50" +dependencies = [ + "bytes", + "log", + "rtc-sctp", + "rtc-shared", + "sansio", +] + +[[package]] +name = "rtc-dtls" +version = "0.21.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3baf3ee5b4d481d57fdee828ed4abd281ba45ad98594502cd4e866d14316b48f" +dependencies = [ + "bytecheck", + "byteorder", + "bytes", + "der-parser 9.0.0", + "log", + "pem", + "rcgen", + "rkyv", + "rtc-crypto", + "rtc-shared", + "rustls", + "x509-parser 0.16.0", +] + +[[package]] +name = "rtc-sctp" +version = "0.21.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db38ed06af7bea634b210c3e8cf0e78e3bb36669e120968f5961a3c12a209b67" +dependencies = [ + "bytes", + "crc32c", + "log", + "rand", + "rtc-shared", + "rustc-hash", + "slab", + "thiserror 2.0.20", +] + +[[package]] +name = "rtc-shared" +version = "0.21.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "108063844e58fa8470139c2d6bea3a28362e07d43194acef7e0d57d829d27cd6" +dependencies = [ + "bitflags 1.3.2", + "bytes", + "nix", + "rand", + "serde", + "substring", + "thiserror 2.0.20", + "url", + "winapi", +] + +[[package]] +name = "rustc-hash" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" + [[package]] name = "rustc_version" version = "0.4.1" @@ -2051,7 +2124,7 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "errno", "libc", "linux-raw-sys", @@ -2060,9 +2133,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.37" +version = "0.23.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" +checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06" dependencies = [ "log", "once_cell", @@ -2075,18 +2148,18 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.14.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +checksum = "2f4925028c7eb5d1fcdaf196971378ed9d2c1c4efc7dc5d011256f76c99c0a96" dependencies = [ "zeroize", ] [[package]] name = "rustls-webpki" -version = "0.103.9" +version = "0.103.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" +checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2" dependencies = [ "ring", "rustls-pki-types", @@ -2095,9 +2168,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.22" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "sansio" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +checksum = "c62751faa8bc286982334a082fe125184a29fc89d17775766e4f891b7d726980" [[package]] name = "scheduled-thread-pool" @@ -2114,31 +2193,17 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "subtle", - "zeroize", -] - [[package]] name = "semver" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" [[package]] name = "serde" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" dependencies = [ "serde_core", "serde_derive", @@ -2155,29 +2220,29 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.3", ] [[package]] name = "serde_json" -version = "1.0.149" +version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" dependencies = [ "itoa", "memchr", @@ -2188,9 +2253,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "1.0.4" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" dependencies = [ "serde_core", ] @@ -2214,18 +2279,7 @@ checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214" dependencies = [ "cfg-if", "cpufeatures 0.3.0", - "digest 0.11.2", -] - -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures 0.2.17", - "digest 0.10.7", + "digest 0.11.3", ] [[package]] @@ -2236,7 +2290,7 @@ checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" dependencies = [ "cfg-if", "cpufeatures 0.3.0", - "digest 0.11.2", + "digest 0.11.3", ] [[package]] @@ -2250,9 +2304,9 @@ dependencies = [ [[package]] name = "shlex" -version = "1.3.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "signal-hook-registry" @@ -2264,16 +2318,6 @@ dependencies = [ "libc", ] -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", -] - [[package]] name = "simdutf8" version = "0.1.5" @@ -2288,9 +2332,9 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" -version = "1.15.1" +version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" dependencies = [ "serde", ] @@ -2306,29 +2350,19 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" dependencies = [ "libc", "windows-sys 0.61.2", ] -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - [[package]] name = "sqlite-wasm-rs" -version = "0.5.2" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f4206ed3a67690b9c29b77d728f6acc3ce78f16bf846d83c94f76400320181b" +checksum = "dc3efc0da82635d7e1ced0053bbbfa8c7ab9645d0bf36ceb4f7127bb85315d75" dependencies = [ "cc", "js-sys", @@ -2352,7 +2386,16 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" name = "strsim" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "substring" +version = "1.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ee6433ecef213b2e72f587ef64a2f5943e7cd16fbd82dbe8bc07486c534c86" +dependencies = [ + "autocfg", +] [[package]] name = "subtle" @@ -2470,9 +2513,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.117" +version = "2.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" dependencies = [ "proc-macro2", "quote", @@ -2498,7 +2541,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -2514,7 +2557,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.4.2", + "getrandom 0.4.3", "once_cell", "rustix", "windows-sys 0.61.2", @@ -2546,7 +2589,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -2562,21 +2605,20 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070" dependencies = [ "cfg-if", ] [[package]] name = "time" -version = "0.3.47" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" +checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134" dependencies = [ "deranged", - "itoa", "num-conv", "powerfmt", "serde_core", @@ -2586,20 +2628,45 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" +checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" [[package]] name = "time-macros" -version = "0.2.27" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" +checksum = "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85" dependencies = [ "num-conv", "time-core", ] +[[package]] +name = "tinystr" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e27c91459209c2986af3dcf603a5a74a4368754ce37414f59acc971167f643" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + [[package]] name = "tokio" version = "1.53.1" @@ -2609,7 +2676,6 @@ dependencies = [ "bytes", "libc", "mio", - "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", @@ -2619,13 +2685,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.7.0" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" +checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.3", ] [[package]] @@ -2640,13 +2706,14 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.18" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" +checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52" dependencies = [ "bytes", "futures-core", "futures-sink", + "libc", "pin-project-lite", "tokio", ] @@ -2657,13 +2724,13 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d52efb639344a7c6adb8e62c6f3d2c19c001ff1b79a5041ba1c6ed42e19c6aa5" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "futures-core", "futures-sink", "http", "httparse", - "rand 0.10.0", + "rand", "ring", "rustls-pki-types", "simdutf8", @@ -2696,11 +2763,11 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.10+spec-1.1.0" +version = "1.1.3+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" dependencies = [ - "winnow 1.0.0", + "winnow 1.0.4", ] [[package]] @@ -2722,7 +2789,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -2766,7 +2833,7 @@ dependencies = [ [[package]] name = "tryx" -version = "0.6.4" +version = "1.3.1" dependencies = [ "async-channel", "async-trait", @@ -2796,9 +2863,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "unicode-ident" @@ -2806,29 +2873,13 @@ version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "universal-hash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" -dependencies = [ - "crypto-common 0.1.7", - "subtle", -] - [[package]] name = "universal-hash" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4987bdc12753382e0bec4a65c50738ffaabc998b9cdd1f952fb5f39b0048a96" dependencies = [ - "crypto-common 0.2.1", + "crypto-common 0.2.2", "ctutils", ] @@ -2840,11 +2891,11 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea7109cdcd5864d4eeb1b58a1648dc9bf520360d7af16ec26d0a9354bafcfc0" +checksum = "972d7902c8735f2695410b8aed7df6ed12a47394aa1c8d7af49f0497b731a94d" dependencies = [ - "base64", + "base64 0.23.1", "log", "percent-encoding", "rustls", @@ -2856,27 +2907,45 @@ dependencies = [ [[package]] name = "ureq-proto" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e994ba84b0bd1b1b0cf92878b7ef898a5c1760108fe7b6010327e274917a808c" +checksum = "da5f78b09e6941e1a0f2e30e695e4b120377b54d5e0aec11b594bb57b3971613" dependencies = [ - "base64", + "base64 0.23.1", "http", "httparse", "log", ] +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + [[package]] name = "utf8-zero" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "uuid" -version = "1.22.0" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" +checksum = "f053576934f05a761a402421fbbe3d425d9366f75f978806a037b3ca481abecc" dependencies = [ "js-sys", "wasm-bindgen", @@ -2905,35 +2974,35 @@ name = "wacore" version = "0.7.0" dependencies = [ "aes 0.9.2", - "aes-gcm 0.11.0", + "aes-gcm", "anyhow", "async-channel", "async-lock", "async-trait", - "base64", + "base64 0.23.1", "bon", "buffa", "buffa-build", "bytes", "chrono", "compact_str", - "ctr 0.10.0", + "ctr 0.10.1", "event-listener", "futures", "hashbrown 0.17.1", "hex", - "hkdf 0.13.0", + "hkdf", "hmac 0.13.0", "itoa", "log", "md5", "portable-atomic", - "rand 0.10.0", + "rand", "serde", "serde-big-array", "serde_json", "sha1 0.11.0", - "sha2 0.11.0", + "sha2", "smallvec", "smoothutf8", "subtle", @@ -2955,13 +3024,13 @@ dependencies = [ "anyhow", "buffa", "hex", - "hkdf 0.13.0", + "hkdf", "hmac 0.13.0", "log", "serde", "serde-big-array", "serde_json", - "sha2 0.11.0", + "sha2", "thiserror 2.0.20", "wacore-binary", "wacore-libsignal", @@ -3002,25 +3071,25 @@ dependencies = [ "async-trait", "buffa", "bytes", - "cbc 0.2.0", + "cbc", "chrono", - "ctr 0.10.0", - "curve25519-dalek 5.0.0", - "ghash 0.6.0", + "ctr 0.10.1", + "curve25519-dalek", + "ghash", "hex", - "hkdf 0.13.0", + "hkdf", "hmac 0.13.0", "log", "portable-atomic", - "rand 0.10.0", + "rand", "serde", "sha1 0.11.0", - "sha2 0.11.0", + "sha2", "subtle", "thiserror 2.0.20", "wacore-derive", "waproto", - "x25519-dalek 3.0.0", + "x25519-dalek", ] [[package]] @@ -3030,10 +3099,10 @@ dependencies = [ "anyhow", "buffa", "bytes", - "hkdf 0.13.0", + "hkdf", "log", - "rand 0.10.0", - "sha2 0.11.0", + "rand", + "sha2", "thiserror 2.0.20", "wacore-binary", "wacore-libsignal", @@ -3050,7 +3119,7 @@ dependencies = [ "bytes", "heck", "serde", - "sha2 0.11.0", + "sha2", ] [[package]] @@ -3059,29 +3128,11 @@ version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" -[[package]] -name = "wasip2" -version = "1.0.2+wasi-0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" -dependencies = [ - "wit-bindgen", -] - [[package]] name = "wasm-bindgen" -version = "0.2.114" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" +checksum = "1b70935747edd64d89de3efa29d73789b806c15798f8e7dca4d8ac356b50ce70" dependencies = [ "cfg-if", "once_cell", @@ -3092,9 +3143,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.114" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" +checksum = "77775f8f3f7217702089053b94958f8f54061a3f663417df76e19cbdcca29bc1" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3102,58 +3153,34 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.114" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" +checksum = "e11d33f857dc2fb11b8bc75aee111aa9cbeb12cd9f25efd3d4c2a3dd4e235284" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.114" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" +checksum = "7ef64dbcc55df09c7e5a46182d181c2cfa3e925f3da937ea764728b4bbb9dcbf" dependencies = [ "unicode-ident", ] [[package]] -name = "wasm-encoder" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" -dependencies = [ - "leb128fmt", - "wasmparser", -] - -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasmparser" -version = "0.244.0" +name = "web-time" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ - "bitflags 2.11.0", - "hashbrown 0.15.5", - "indexmap", - "semver", + "js-sys", + "wasm-bindgen", ] [[package]] @@ -3165,117 +3192,6 @@ dependencies = [ "rustls-pki-types", ] -[[package]] -name = "webrtc-data" -version = "0.17.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd470286275809f2fcfcdb1e73ef5f1500be82eff7fe98150ce81b20aad5a2a4" -dependencies = [ - "bytes", - "log", - "portable-atomic", - "thiserror 1.0.69", - "tokio", - "webrtc-sctp", - "webrtc-util 0.17.2", -] - -[[package]] -name = "webrtc-dtls" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ccbe4d9049390ab52695c3646c1395c877e16c15fb05d3bda8eee0c7351711c" -dependencies = [ - "aes 0.8.4", - "aes-gcm 0.10.3", - "async-trait", - "bincode", - "byteorder", - "cbc 0.1.2", - "ccm", - "der-parser", - "hkdf 0.12.4", - "hmac 0.12.1", - "log", - "p256", - "p384", - "portable-atomic", - "rand 0.8.7", - "rand_core 0.6.4", - "rcgen", - "ring", - "rustls", - "sec1", - "serde", - "sha1 0.10.7", - "sha2 0.10.9", - "subtle", - "thiserror 1.0.69", - "tokio", - "webrtc-util 0.11.0", - "x25519-dalek 2.0.1", - "x509-parser", -] - -[[package]] -name = "webrtc-sctp" -version = "0.17.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c4b637f0d8eb96d900ac0f79b3060ddd21ca88dfefa467e96e67ab0016f2574" -dependencies = [ - "arc-swap", - "async-trait", - "bytes", - "crc", - "log", - "portable-atomic", - "rand 0.9.5", - "thiserror 1.0.69", - "tokio", - "webrtc-util 0.17.2", -] - -[[package]] -name = "webrtc-util" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64bfb10dbe6d762f80169ae07cf252bafa1f764b9594d140008a0231c0cdce58" -dependencies = [ - "async-trait", - "bitflags 1.3.2", - "bytes", - "ipnet", - "lazy_static", - "libc", - "log", - "nix", - "portable-atomic", - "rand 0.8.7", - "thiserror 1.0.69", - "tokio", - "winapi", -] - -[[package]] -name = "webrtc-util" -version = "0.17.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1beae0b4f24969741c26ca282a257dc5823bd9cbe608f7e3ca3775102d323ad9" -dependencies = [ - "async-trait", - "bitflags 1.3.2", - "bytes", - "ipnet", - "lazy_static", - "log", - "nix", - "portable-atomic", - "rand 0.9.5", - "thiserror 1.0.69", - "tokio", - "winapi", -] - [[package]] name = "whatsapp-rust" version = "0.7.0" @@ -3284,21 +3200,24 @@ dependencies = [ "async-channel", "async-lock", "async-trait", - "base64", + "base64 0.23.1", "buffa", "bytes", "chrono", "event-listener", "futures", - "getrandom 0.4.2", + "getrandom 0.4.3", "hashbrown 0.17.1", "hex", "itoa", "log", "opus", "portable-atomic", - "rand 0.10.0", - "rustls", + "rand", + "rtc-datachannel", + "rtc-dtls", + "rtc-sctp", + "rtc-shared", "scopeguard", "serde", "serde_json", @@ -3308,11 +3227,6 @@ dependencies = [ "wacore", "wacore-binary", "waproto", - "webrtc-data", - "webrtc-dtls", - "webrtc-sctp", - "webrtc-util 0.11.0", - "webrtc-util 0.17.2", "whatsapp-rust-sqlite-storage", "whatsapp-rust-tokio-transport", "whatsapp-rust-ureq-http-client", @@ -3333,7 +3247,7 @@ dependencies = [ "log", "scheduled-thread-pool", "serde_json", - "sha2 0.11.0", + "sha2", "tokio", "wacore", ] @@ -3411,7 +3325,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -3422,7 +3336,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -3539,109 +3453,15 @@ checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" [[package]] name = "winnow" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" - -[[package]] -name = "wit-bindgen" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -dependencies = [ - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck", - "indexmap", - "prettyplease", - "syn 2.0.117", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn 2.0.117", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags 2.11.0", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.244.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser", -] +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" [[package]] -name = "x25519-dalek" -version = "2.0.1" +name = "writeable" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" -dependencies = [ - "curve25519-dalek 4.1.3", - "rand_core 0.6.4", - "serde", - "zeroize", -] +checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc" [[package]] name = "x25519-dalek" @@ -3649,8 +3469,8 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7e8131a03190127fb2263afc72b322ecadae46b6ff8c6f399ff5d02f5559af6" dependencies = [ - "curve25519-dalek 5.0.0", - "rand_core 0.10.0", + "curve25519-dalek", + "rand_core 0.10.1", "zeroize", ] @@ -3660,31 +3480,50 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" dependencies = [ - "asn1-rs", + "asn1-rs 0.6.2", "data-encoding", - "der-parser", + "der-parser 9.0.0", "lazy_static", "nom", - "oid-registry", + "oid-registry 0.7.1", "rusticata-macros", "thiserror 1.0.69", "time", ] +[[package]] +name = "x509-parser" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d43b0f71ce057da06bc0851b23ee24f3f86190b07203dd8f567d0b706a185202" +dependencies = [ + "asn1-rs 0.7.2", + "data-encoding", + "der-parser 10.0.0", + "lazy_static", + "nom", + "oid-registry 0.8.1", + "ring", + "rusticata-macros", + "thiserror 2.0.20", + "time", +] + [[package]] name = "yasna" -version = "0.5.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +checksum = "b5f6765e852b9b4dc8e2a76843e4d64d1cea8e79bcde0b6901aea8e7c7f08282" dependencies = [ + "bit-vec", "time", ] [[package]] name = "yoke" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" +checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" dependencies = [ "stable_deref_trait", "yoke-derive", @@ -3699,7 +3538,7 @@ checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", "synstructure", ] @@ -3720,27 +3559,27 @@ checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", "synstructure", ] @@ -3749,19 +3588,38 @@ name = "zeroize" version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" + +[[package]] +name = "zerotrie" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea269c3bd32f0a32c321907a2ae912ba6f4649bb0fc764a15627e99a7095a3f" dependencies = [ - "zeroize_derive", + "displaydoc", + "yoke", + "zerofrom", ] [[package]] -name = "zeroize_derive" -version = "1.5.0" +name = "zerovec" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" +checksum = "bb0464e17806c1d976d5cba29399c7f08e516e279e2ba493f63123b5fca67dd8" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.3", ] [[package]] @@ -3772,6 +3630,6 @@ checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" [[package]] name = "zmij" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/libs/whatsapp-rust b/libs/whatsapp-rust index d610523..1489b7d 160000 --- a/libs/whatsapp-rust +++ b/libs/whatsapp-rust @@ -1 +1 @@ -Subproject commit d610523e81c5589971099360e7f0627b32eced07 +Subproject commit 1489b7da9a6a7e3cadc4337ee46399da7de25915 diff --git a/src/clients/tryx.rs b/src/clients/tryx.rs index 6a63d77..18243b7 100644 --- a/src/clients/tryx.rs +++ b/src/clients/tryx.rs @@ -582,7 +582,7 @@ impl Tryx { Py::new(py, EvContactUpdate::new(contact_update)).map(|event| event.into_any()) }).await; } - Event::PushNameUpdate(pushname) => { + Event::RetiredPushNameUpdate(pushname) => { let pushname = pushname.clone(); Self::emit_built_event(&tryx_client, &callbacks.push_name_update, locals.clone(), "RetiredPushNameUpdate", |py| { Py::new(py, EvPushNameUpdate::from(pushname)).map(|event| event.into_any()) diff --git a/src/events/dispatcher.rs b/src/events/dispatcher.rs index 744be4c..657a031 100644 --- a/src/events/dispatcher.rs +++ b/src/events/dispatcher.rs @@ -189,7 +189,7 @@ define_dispatcher! { joined_group, JoinedGroup, "joined_group", EvJoinedGroup, "joined group", joined_group_handlers; group_info_update, GroupInfoUpdate, "group_info_update", EvGroupInfoUpdate, "group info update", group_info_update_handlers; contact_update, ContactUpdate, "contact_update", EvContactUpdate, "contact update", contact_update_handlers; - push_name_update, PushNameUpdate, "push_name_update", EvPushNameUpdate, "push name update", push_name_update_handlers; + push_name_update, RetiredPushNameUpdate, "push_name_update", EvPushNameUpdate, "push name update", push_name_update_handlers; self_push_name_update, SelfPushNameUpdated, "self_push_name_updated", EvSelfPushNameUpdated, "self push name updated", self_push_name_updated_handlers; pin_update, PinUpdate, "pin_update", EvPinUpdate, "pin update", pin_update_handlers; mute_update, MuteUpdate, "mute_update", EvMuteUpdate, "mute update", mute_update_handlers; diff --git a/src/events/types/profile_sync.rs b/src/events/types/profile_sync.rs index a06509d..69b16ba 100644 --- a/src/events/types/profile_sync.rs +++ b/src/events/types/profile_sync.rs @@ -12,12 +12,12 @@ pub struct EvPushNameUpdateData { #[pyclass] pub struct EvPushNameUpdate { - inner: Box, + inner: Box, data_cache: OnceLock>, } impl EvPushNameUpdate { - pub fn new(inner: wacore::types::events::PushNameUpdate) -> Self { + pub fn new(inner: wacore::types::events::RetiredPushNameUpdate) -> Self { Self { inner: Box::new(inner), data_cache: OnceLock::new(), @@ -25,8 +25,8 @@ impl EvPushNameUpdate { } } -impl From for EvPushNameUpdate { - fn from(event: wacore::types::events::PushNameUpdate) -> Self { +impl From for EvPushNameUpdate { + fn from(event: wacore::types::events::RetiredPushNameUpdate) -> Self { EvPushNameUpdate::new(event) } } diff --git a/src/types.rs b/src/types.rs index e3162b6..a1df1af 100644 --- a/src/types.rs +++ b/src/types.rs @@ -195,7 +195,7 @@ impl From for MessageInfo { MessageInfo { inner: Arc::new(info.clone()), id: info.id.clone(), - r#type: info.r#type.clone(), + r#type: info.r#type.map(|t| t.to_string()).unwrap_or_default(), push_name: info.push_name.clone(), } } @@ -235,7 +235,7 @@ impl MessageInfo { } #[getter] fn media_type(&self) -> Option { - Some(self.inner.media_type.clone()) + self.inner.media_type.as_ref().map(|m| m.to_string()) } #[getter] fn edit(&self) -> &str { @@ -265,10 +265,7 @@ impl MessageInfo { #[getter] fn meta_info(&self, py: Python<'_>) -> MsgMetaInfo{ MsgMetaInfo { - target_id: match self.inner.meta_info.target_id { - Some(ref s) => Some(s.clone()), - None => None, - }, + target_id: self.inner.meta_info.target_id.as_deref().map(String::from), target_sender: match self.inner.meta_info.target_sender { Some(ref jid) => Some(pyo3::Py::new(py, JID::from(jid.clone())).unwrap()), None => None, @@ -277,18 +274,15 @@ impl MessageInfo { Some(ref jid) => Some(pyo3::Py::new(py, JID::from(jid.clone())).unwrap()), None => None, }, - thread_message_id: match self.inner.meta_info.thread_message_id { - Some(ref s) => Some(s.clone()), - None => None, - }, + thread_message_id: self.inner.meta_info.thread_message_id.as_deref().map(String::from), thread_message_sender_jid: match self.inner.meta_info.thread_message_sender_jid { Some(ref jid) => Some(pyo3::Py::new(py, JID::from(jid.clone())).unwrap()), None => None, }, - content_type: self.inner.meta_info.content_type.clone(), - appdata: self.inner.meta_info.appdata.clone(), - reporting_tag: self.inner.meta_info.reporting_tag.clone(), - reporting_token: self.inner.meta_info.reporting_token.clone(), + content_type: self.inner.meta_info.content_type.as_deref().map(String::from), + appdata: self.inner.meta_info.appdata.as_deref().map(String::from), + reporting_tag: self.inner.meta_info.reporting_tag.as_deref().map(|b| b.to_vec()), + reporting_token: self.inner.meta_info.reporting_token.as_deref().map(|b| b.to_vec()), reporting_token_version: self.inner.meta_info.reporting_token_version, } } diff --git a/uv.lock b/uv.lock index b18e51b..b3ec9f2 100644 --- a/uv.lock +++ b/uv.lock @@ -2,7 +2,8 @@ version = 1 revision = 3 requires-python = ">=3.8" resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", "python_full_version == '3.9.*'", "python_full_version < '3.9'", ] @@ -11,8 +12,12 @@ resolution-markers = [ name = "annotated-types" version = "0.7.0" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.9.*'", + "python_full_version < '3.9'", +] dependencies = [ - { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version != '3.9.*'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } wheels = [ @@ -20,58 +25,111 @@ wheels = [ ] [[package]] -name = "babel" -version = "2.18.0" +name = "annotated-types" +version = "0.8.0" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pytz", marker = "python_full_version < '3.9'" }, +resolution-markers = [ + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", ] -sdist = { url = "https://files.pythonhosted.org/packages/7d/b2/51899539b6ceeeb420d40ed3cd4b7a40519404f9baf3d4ac99dc413a834b/babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d", size = 9959554, upload-time = "2026-02-01T12:30:56.078Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5f/56/a8120250d128bed162cd73c76d45f6ef9991f3e068f62a8ee060afa3104a/annotated_types-0.8.0.tar.gz", hash = "sha256:13b2beaad985e05e2d6407ee4c4f35590b11f8d693a258a561055cac8f64cab7", size = 15893, upload-time = "2026-07-23T20:16:13.995Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35", size = 10196845, upload-time = "2026-02-01T12:30:53.445Z" }, + { url = "https://files.pythonhosted.org/packages/99/91/8acff4f5e50511b911bbccb72b8628a49c68ce14148cd9f6431094859a90/annotated_types-0.8.0-py3-none-any.whl", hash = "sha256:f072f4d804ea359e4eaf198b1af7a8b0943881a87f31bb764f8bf219bb9419e0", size = 13427, upload-time = "2026-07-23T20:16:12.938Z" }, ] [[package]] -name = "backrefs" -version = "5.7.post1" +name = "ast-serialize" +version = "0.8.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.9'", +sdist = { url = "https://files.pythonhosted.org/packages/e1/a9/11851c3e02a3fea2ddc9932d1fdc7d2edaeecc0d2e11bc5f2a7fde2b0934/ast_serialize-0.8.0.tar.gz", hash = "sha256:6c37c43e4004dfb42d321ddedc569dc17ff4259296f3af577c9ea46a809bc010", size = 845638, upload-time = "2026-08-07T11:29:02.152Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/16/6e520b57cd8c75914b38c670ad4593d13c22911e4306cc7165dab8b0789b/ast_serialize-0.8.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:3d822605fa7bb326ef868d25fafced7fc660fa46d9b90c02ea86d5e2f5d325f7", size = 863924, upload-time = "2026-08-07T11:27:34.579Z" }, + { url = "https://files.pythonhosted.org/packages/03/e1/48802de9b22a2bcad42ec80601a17e3f69172fe4f590e6311bcc2b323aeb/ast_serialize-0.8.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:2efa40b068197d5efb62655b43baadb842ed71c4958cccd3e8b86a35726f0119", size = 1177662, upload-time = "2026-08-07T11:27:36.196Z" }, + { url = "https://files.pythonhosted.org/packages/38/d4/323438db76bded3a1f3523a3167b8325916b2ddceb2107a330c6ec9fcf4d/ast_serialize-0.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:db1b957291bca08c7e72f43a12357b2948e20775d970e3fc3dac0aa3160ab725", size = 1167072, upload-time = "2026-08-07T11:27:37.646Z" }, + { url = "https://files.pythonhosted.org/packages/77/82/53c5400b54144b56de8ed7f957fd1ccd97e42482009292ab46121d15f8dd/ast_serialize-0.8.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdc0d5b18ff8fb364e87923e47c0a91d0d69dbcaeaa274591f7fd26892cc3a3a", size = 1225497, upload-time = "2026-08-07T11:27:39.225Z" }, + { url = "https://files.pythonhosted.org/packages/44/5f/36c07327a8b91303fbf1382c7c3e8a2902072dbe1b9546138a5288e75ff0/ast_serialize-0.8.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9da7330f3e235bf7da89b8d39205c6350fc0c08a85379743f2df9fff87d6d980", size = 1227101, upload-time = "2026-08-07T11:27:40.799Z" }, + { url = "https://files.pythonhosted.org/packages/9d/48/5adf5c67addc7ddb328122208c6d375a84cf154984f412b4087330a157bd/ast_serialize-0.8.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3186969ee66a9863b00acc6523ace44c56974eecb348a7ea4b228d9f0b80e19", size = 1424001, upload-time = "2026-08-07T11:27:42.708Z" }, + { url = "https://files.pythonhosted.org/packages/38/a1/70074dd3869d2b0e934f91891d8d6b734361cd3b80f85ca7ece2e668ecdd/ast_serialize-0.8.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40a57b73731be45da4fa41430c4d5dc94a24b3a4faba7b9e069978c0402064ea", size = 1245545, upload-time = "2026-08-07T11:27:44.4Z" }, + { url = "https://files.pythonhosted.org/packages/e3/be/53b9c0a8a6399950c2e3546bdfab96d2b299d5b114b47eb94fd3c49c4054/ast_serialize-0.8.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5075b9da3ef807eda752502446dfecea3b381c4900b7e27a5d5f4f899eb39951", size = 1248961, upload-time = "2026-08-07T11:27:45.781Z" }, + { url = "https://files.pythonhosted.org/packages/eb/13/3651d3812548a2bda15e26e5dd51aadb48cf682d0865370255fcf0e367dd/ast_serialize-0.8.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:293cc1c5bfa741f8e3fbe8175b9c07beee487c9a6fdbb25a5acad9f1df2d30a9", size = 1243877, upload-time = "2026-08-07T11:27:47.325Z" }, + { url = "https://files.pythonhosted.org/packages/21/a0/521f0bf000f675e9312a4aae2c8ba7a992405d072a85c485e08fd59433b9/ast_serialize-0.8.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e0910c3442a75216dde0f102d854ba2aaa71d2482e0ee213630b9bf29584fba3", size = 1293903, upload-time = "2026-08-07T11:27:49.264Z" }, + { url = "https://files.pythonhosted.org/packages/b1/7e/402fc902568aa2ee65865a3e151f000db0153da8ce6b1be4c9c349025f8d/ast_serialize-0.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:43dd6d596879bb1cb8a12cc9dae7bb10090a39a35883026c24f82488a195619a", size = 1401070, upload-time = "2026-08-07T11:27:50.947Z" }, + { url = "https://files.pythonhosted.org/packages/ff/7c/97d4b66c057f1706fc8be6dd532cc77c988794357c8f4ffdb6adabb39562/ast_serialize-0.8.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:8c9d537f59e936392cfd3597789d1390304dd659efc3c486ce7f40fb6b8a9f53", size = 1502602, upload-time = "2026-08-07T11:27:52.364Z" }, + { url = "https://files.pythonhosted.org/packages/89/6f/72cc3b71562001bba46e898ccfbf1844f7939b3e28912736206102f2e5a8/ast_serialize-0.8.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:f0190a33d7f97c65e9069f7a7f40499eea6b5cbe260c558378109caf20ce934b", size = 1495848, upload-time = "2026-08-07T11:27:53.803Z" }, + { url = "https://files.pythonhosted.org/packages/a0/53/d6f629d1e49308b2f363dae028baa213ec222c9106fa1f7f0d1f7b41499a/ast_serialize-0.8.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:77308ae6c5cf5264cc0f01a7c556ec77a9e68eb1f61b093534d698139fdc3b14", size = 1556556, upload-time = "2026-08-07T11:27:55.342Z" }, + { url = "https://files.pythonhosted.org/packages/ee/22/340f35dd8dfc6d412d53dc20699ca014b8d228db923e8ed4759c512b162c/ast_serialize-0.8.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:8d53a23f27e1ed3a36b2d26fd2a1a6228c8e85a1ed62ff7cdb44bd610769f20a", size = 1417822, upload-time = "2026-08-07T11:27:56.712Z" }, + { url = "https://files.pythonhosted.org/packages/11/29/6dde5c13fbebc051d3a6df4ec0a6fd1d5359333cc1193f7f609f3410b4d8/ast_serialize-0.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ffa5e7cb08f96fed9121f77b224151e41caf88feab9d652bb46c78202b6fbeda", size = 1445153, upload-time = "2026-08-07T11:27:58.275Z" }, + { url = "https://files.pythonhosted.org/packages/62/c5/f473a8ed030f7a0ca24b9849cca184677a50c053867a7b808c2e1289bbd3/ast_serialize-0.8.0-cp314-cp314t-win32.whl", hash = "sha256:fa70ed4dea0bb18b30a1789c77baa701d0ef30c474f2ccabdea61e25623a8827", size = 1063711, upload-time = "2026-08-07T11:27:59.793Z" }, + { url = "https://files.pythonhosted.org/packages/23/63/39e171fcd38ca057c2e1979d5ee81ac7a3502784abe3d83df7454f7a0978/ast_serialize-0.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d8b3c8eee4c1baef9d4e84d2a59a805501617127be42615cb48970b15b0892b6", size = 1103740, upload-time = "2026-08-07T11:28:01.405Z" }, + { url = "https://files.pythonhosted.org/packages/21/1c/d00762b399e7726d68d0a088cc946e3a4c60f1c6176f557608f672f627f3/ast_serialize-0.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:ac4f0a83c55a9b782f79ad55a5247b7db123c1db405959791c2ef886e9710c9f", size = 1076021, upload-time = "2026-08-07T11:28:02.947Z" }, + { url = "https://files.pythonhosted.org/packages/4c/11/911210c3c78923273a9211a2b6cfc4c8aa723b30dab3e1c8d19afb983b40/ast_serialize-0.8.0-cp315-abi3.abi3t-macosx_10_12_x86_64.whl", hash = "sha256:86b8a1e6d90467345356098b040150e82fbc26d24a7a202224b13dc1f6264ca0", size = 1177715, upload-time = "2026-08-07T11:28:04.654Z" }, + { url = "https://files.pythonhosted.org/packages/77/89/6282881c8587606638db153cbe21e1e0c4d1f3970dee1aa0610a1c62a026/ast_serialize-0.8.0-cp315-abi3.abi3t-macosx_11_0_arm64.whl", hash = "sha256:39e92ff8e8cb45947fe9007174b2950e1fb098e6abd00266a13cd3bcf6675068", size = 1169347, upload-time = "2026-08-07T11:28:06.1Z" }, + { url = "https://files.pythonhosted.org/packages/97/78/a9f846a03a340ff3728c915f23338ca742742f3292700559cdb3ad999b1e/ast_serialize-0.8.0-cp315-abi3.abi3t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c85d8d18db5b2dfcb3b7e38a4d600ca35504c0ed8a6f75cd1c811e4ffe248a15", size = 1225916, upload-time = "2026-08-07T11:28:07.654Z" }, + { url = "https://files.pythonhosted.org/packages/c0/15/aba6ef8a988a6eceb6f0359589aac509e29ae2dba67fd9bfd5af0c3f13e7/ast_serialize-0.8.0-cp315-abi3.abi3t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9830ff7e764f74d9eefb01170c61a9f0fd2c027dac5fcb72e064decd57d56371", size = 1227135, upload-time = "2026-08-07T11:28:09.504Z" }, + { url = "https://files.pythonhosted.org/packages/94/29/3f63d696ea7c5b8abadcecc3505be51bd900daaccc522ed8322fa5b05a93/ast_serialize-0.8.0-cp315-abi3.abi3t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6479d9722a4cd21b578f5478074c41e6169f04811996ec881655560f703a5bba", size = 1425040, upload-time = "2026-08-07T11:28:11.044Z" }, + { url = "https://files.pythonhosted.org/packages/e2/5d/0aac338604ff59df5774d4304307898982252f325ff7cafe31d52fedcb65/ast_serialize-0.8.0-cp315-abi3.abi3t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a63bed264e818cd83eec11feed0f50aa162542b91132ef58afebc857182763a5", size = 1246278, upload-time = "2026-08-07T11:28:12.519Z" }, + { url = "https://files.pythonhosted.org/packages/23/ca/9f1ef795bb724719532bd86dbec11e5b66857d3fbe9b6772baec0191a6ed/ast_serialize-0.8.0-cp315-abi3.abi3t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d187197d234aa45d6cfa2b096be5f666e8cc2e7eb3722d0ab8926293cf5720c", size = 1250029, upload-time = "2026-08-07T11:28:13.896Z" }, + { url = "https://files.pythonhosted.org/packages/dc/25/5e061372d2ed953b9ba3b9c4f73de3b8e9234cda3f6c088db4686801d0e1/ast_serialize-0.8.0-cp315-abi3.abi3t-manylinux_2_31_riscv64.whl", hash = "sha256:2d39a56282cfcc0d8eeea37267c754be59c98d48505c23b1dae5c6011f3813dd", size = 1243575, upload-time = "2026-08-07T11:28:15.37Z" }, + { url = "https://files.pythonhosted.org/packages/a8/c1/ae7da218053120635a4ca802366c69f707203641af95372eeb83f70dfd52/ast_serialize-0.8.0-cp315-abi3.abi3t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f7cc5f10386994c0f4844f1e6d6a97127e9b478660eb6dec2b257644f0acab64", size = 1294396, upload-time = "2026-08-07T11:28:16.813Z" }, + { url = "https://files.pythonhosted.org/packages/2e/89/271d1f49c5269fcddcc789ea3f25be401f6723fc1138aeda539f4d05516d/ast_serialize-0.8.0-cp315-abi3.abi3t-musllinux_1_2_aarch64.whl", hash = "sha256:6102f2f985c2e542be85cd857678ec9356fefa792b93cadfadd31139f5696f27", size = 1401987, upload-time = "2026-08-07T11:28:18.333Z" }, + { url = "https://files.pythonhosted.org/packages/55/be/4e7d77fcf571ac7cb5cf7115a20c36642bd7d29473b45dfaaefeb9618f90/ast_serialize-0.8.0-cp315-abi3.abi3t-musllinux_1_2_armv7l.whl", hash = "sha256:3a8660fe66667b76a6e9dccd1d33e66b229fde3b308db991c041609226c005b6", size = 1502904, upload-time = "2026-08-07T11:28:20.039Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ae/ed1de2db7e019d4236fbc164ffa5ef9a6022a300a342bbf142d21b7c141e/ast_serialize-0.8.0-cp315-abi3.abi3t-musllinux_1_2_i686.whl", hash = "sha256:e7266307e5fba39836edb79def8608887af48820508bff3c5f2941e1e04d1534", size = 1496967, upload-time = "2026-08-07T11:28:21.734Z" }, + { url = "https://files.pythonhosted.org/packages/92/89/5fea507fae5c5f18b7dc7f95e5c00956574b8c717b8fd2049c504fab0b18/ast_serialize-0.8.0-cp315-abi3.abi3t-musllinux_1_2_ppc64le.whl", hash = "sha256:4ca7e6fd1ad845d1cc649dc2ecd499db2f8f46af5bf8da7b70dd858774cc038b", size = 1559041, upload-time = "2026-08-07T11:28:23.194Z" }, + { url = "https://files.pythonhosted.org/packages/42/71/478d69df21b64e064554a68134c94be304270316ca676a94e63c389a636a/ast_serialize-0.8.0-cp315-abi3.abi3t-musllinux_1_2_riscv64.whl", hash = "sha256:2880350b13d3eae69a0d70bc1fb6c9bfaca4dbd0e20ba8cd1aa483080b56ff06", size = 1417367, upload-time = "2026-08-07T11:28:24.601Z" }, + { url = "https://files.pythonhosted.org/packages/5e/2d/8962dc8d5b3a9dc27b36f9db199afa25264c741505469d9ec10ffbfd2ba7/ast_serialize-0.8.0-cp315-abi3.abi3t-musllinux_1_2_x86_64.whl", hash = "sha256:ab0f9a59f7d63d0d441b56b9a818b273705264352d5115cfee12e940e816d958", size = 1446178, upload-time = "2026-08-07T11:28:26.152Z" }, + { url = "https://files.pythonhosted.org/packages/4f/22/14d2ad4fd1d1bcd0dc687ca268e0630069f45162496260c0efb70ee0ea72/ast_serialize-0.8.0-cp315-abi3.abi3t-win32.whl", hash = "sha256:0485a25ef519c62e749ee3c1ad8070e591b380d67226349eb5a70b228dc1ac4a", size = 1063811, upload-time = "2026-08-07T11:28:27.864Z" }, + { url = "https://files.pythonhosted.org/packages/18/1d/84a327c0202a41aa5fdba3ade33904d6d8f3b9e6806fa83568d835395850/ast_serialize-0.8.0-cp315-abi3.abi3t-win_amd64.whl", hash = "sha256:bd84d60bca7079e741be4ac5dbe237751a59d7f6f9f0126b11880d63822cbe16", size = 1105518, upload-time = "2026-08-07T11:28:29.691Z" }, + { url = "https://files.pythonhosted.org/packages/8c/92/74556dec52fde85a2ad84ed159991b916241043788609c15d8b77e14570b/ast_serialize-0.8.0-cp315-abi3.abi3t-win_arm64.whl", hash = "sha256:057769b5921336eb2d9124f2a731b42ed05ffdac559b840dbdf6f3937cf153dc", size = 1076319, upload-time = "2026-08-07T11:28:31.282Z" }, + { url = "https://files.pythonhosted.org/packages/d1/5d/c650b1f2cc1e75193358da95a080261422e8cd10b66d7370b1688c9915c5/ast_serialize-0.8.0-cp315-cp315-pyemscripten_2026_5_wasm32.whl", hash = "sha256:a02cbed7d8bfdcdee88edaac12bd50d53d9953aaa2e1852ef078625be5f1c0b5", size = 852914, upload-time = "2026-08-07T11:28:32.929Z" }, + { url = "https://files.pythonhosted.org/packages/d9/e3/6142e920fec6ef7bccabd8c24ed8ed99f8bdc6cb8b065e1df7c6a3b2d667/ast_serialize-0.8.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:e1bd223df0f6c96b396975fa604cb33bce53d9b4a0185490be4c4a289f7c9c87", size = 1184007, upload-time = "2026-08-07T11:28:34.654Z" }, + { url = "https://files.pythonhosted.org/packages/a6/e9/6e8be8df02b35d85e2b8809f7f1cfa290bdf5882b55127a539d049482db0/ast_serialize-0.8.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:ddd3b61f45c132da66c5476b281891e08c1fd87fbdabe8a6973e1622efc85f06", size = 1177588, upload-time = "2026-08-07T11:28:36.318Z" }, + { url = "https://files.pythonhosted.org/packages/8c/80/7e0fd2e2e2aba257820db4a8657c4c356844d36b914b20a4af294bcfb902/ast_serialize-0.8.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f9caa63fad8241257ae401b5ff0a64026c6adb36b8e86cbe8782d9ea505daf6", size = 1234575, upload-time = "2026-08-07T11:28:37.772Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6a/3bae0af06f9b1bae3001c44d64215f5b567877e7aae9ffd45db11c3a7647/ast_serialize-0.8.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3926fa117b5e65019853a2969966d11c7175af377a3425991f3fe73784412405", size = 1236015, upload-time = "2026-08-07T11:28:39.14Z" }, + { url = "https://files.pythonhosted.org/packages/6f/c4/ce2d41a1bc22508e82618901f7e10f2a5e2f9556553fea90624daf9875e2/ast_serialize-0.8.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:485f1113af805e9e170b95ef993ca3fbd4f89c04bab25c58b4fc632d854801ab", size = 1432808, upload-time = "2026-08-07T11:28:40.664Z" }, + { url = "https://files.pythonhosted.org/packages/1a/90/f5058f209756dd70e958b7538aaa82d25d24944baf9ec8ae6f27b06fcacc/ast_serialize-0.8.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ccebbed24f1281062d5852353c72c47502955926cfcb8345ffb3a44d87ff3d3", size = 1256251, upload-time = "2026-08-07T11:28:42.223Z" }, + { url = "https://files.pythonhosted.org/packages/bf/32/7f77ea87fa0836daab706ed5cb7f903bb25fa26a77439011aee626af11d8/ast_serialize-0.8.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:252f883290d1cdb728eb7fe1d9a7221b88af5a329aae0bc91ddee4dafb820331", size = 1258574, upload-time = "2026-08-07T11:28:43.751Z" }, + { url = "https://files.pythonhosted.org/packages/eb/5a/75b82ad2725b5e8e8c742732f9e76c6738a292d0709e1f60d10a973730b4/ast_serialize-0.8.0-cp39-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:96abc072ad29db8d02194afd47d68987322622787daceae82398d7b69f3ba2e6", size = 1254075, upload-time = "2026-08-07T11:28:45.28Z" }, + { url = "https://files.pythonhosted.org/packages/4e/54/8c20ed4eea805516a3fd23dd4a721ce28c64f50f0e4b359969f60a8c97a6/ast_serialize-0.8.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9118ad3e369727060b2696fc4078f250ecffca4248ba87f537f55cea9f9dce06", size = 1301018, upload-time = "2026-08-07T11:28:46.851Z" }, + { url = "https://files.pythonhosted.org/packages/cb/5b/9f14430f12fe830b656fb38f8e2e05ee13b02a88967660bef46af0ab22a8/ast_serialize-0.8.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f359df4bd921918af8bebd142a376c77511d7151cc8ba852760b587b5a4a54f3", size = 1409951, upload-time = "2026-08-07T11:28:48.312Z" }, + { url = "https://files.pythonhosted.org/packages/2d/3d/084882eca93c842bd4262591a071ec7f825340644035e51501208cc5a8d4/ast_serialize-0.8.0-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:e94f9121d13fa36cbf21314783c77d05ae3a0868decd18cf5233fdcc6de49ac8", size = 1509544, upload-time = "2026-08-07T11:28:49.847Z" }, + { url = "https://files.pythonhosted.org/packages/ce/73/ea84852096c2036c61cc0b2f97b90242207419f534dc671060ee1c8e05cb/ast_serialize-0.8.0-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:54f95b486018d262bcb387a9afd96f0da74508b442762b80c769454a6fbb3ee3", size = 1505671, upload-time = "2026-08-07T11:28:51.239Z" }, + { url = "https://files.pythonhosted.org/packages/cb/88/287b9a5300c1f2f651d259f670931b63110adc265b7613c885b44c5bc53d/ast_serialize-0.8.0-cp39-abi3-musllinux_1_2_ppc64le.whl", hash = "sha256:4c38b915511e32bc718c49dbce98ff9af36bac0ad6a604f58000cd5e3aecdba7", size = 1563685, upload-time = "2026-08-07T11:28:53.112Z" }, + { url = "https://files.pythonhosted.org/packages/ee/f3/1bc3a79afcf0c2a8d2c37182d0d659d1545a9d7f7f6dc9cf3e63d6c17135/ast_serialize-0.8.0-cp39-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:9a2ef9cf12f2de4f1028c42c1dd7d775255e0fb3e5bb48896c97e35ef52366fe", size = 1427977, upload-time = "2026-08-07T11:28:54.418Z" }, + { url = "https://files.pythonhosted.org/packages/5c/cd/440c798957e14e31776bfeb024d8fafe0bb1d5b89c51c2f067e69938f7b0/ast_serialize-0.8.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6f18048fe9f6dd266bd577cdec48bdcecb74faaa01fe941324435483b013ed2a", size = 1454335, upload-time = "2026-08-07T11:28:55.968Z" }, + { url = "https://files.pythonhosted.org/packages/4f/4a/587eb36dcc240a54c8660f599464516b469ecad96f0dbdb6bccbedb50745/ast_serialize-0.8.0-cp39-abi3-win32.whl", hash = "sha256:31883542dd6c94d178f5db3d32fbd69c5eb88b3a7c018e7ac8cc0c45195ddbed", size = 1068858, upload-time = "2026-08-07T11:28:57.541Z" }, + { url = "https://files.pythonhosted.org/packages/5f/a4/3e887bbd92164e183cb6e412c6a3e9198ddd446d7fe405958293ef5ef49c/ast_serialize-0.8.0-cp39-abi3-win_amd64.whl", hash = "sha256:861794565b06337005c1447ef23103a3d5a627d08bdc827870d00d0b28ef5f51", size = 1111839, upload-time = "2026-08-07T11:28:59Z" }, + { url = "https://files.pythonhosted.org/packages/25/6c/b400476d3ceba681ab929787edc9554f6d88fcc69435eb681b00fc0457a5/ast_serialize-0.8.0-cp39-abi3-win_arm64.whl", hash = "sha256:b2a5978662fd4db463dfb4b974d2b10ac6430b98f5333aabc7051909df3561d0", size = 1083655, upload-time = "2026-08-07T11:29:00.349Z" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/df/30/903f35159c87ff1d92aa3fcf8cb52de97632a21e0ae43ed940f5d033e01a/backrefs-5.7.post1.tar.gz", hash = "sha256:8b0f83b770332ee2f1c8244f4e03c77d127a0fa529328e6a0e77fa25bee99678", size = 6582270, upload-time = "2024-06-16T18:38:20.166Z" } + +[[package]] +name = "babel" +version = "2.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/b2/51899539b6ceeeb420d40ed3cd4b7a40519404f9baf3d4ac99dc413a834b/babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d", size = 9959554, upload-time = "2026-02-01T12:30:56.078Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/24/bb/47fc255d1060dcfd55b460236380edd8ebfc5b2a42a0799ca90c9fc983e3/backrefs-5.7.post1-py310-none-any.whl", hash = "sha256:c5e3fd8fd185607a7cb1fefe878cfb09c34c0be3c18328f12c574245f1c0287e", size = 380429, upload-time = "2024-06-16T18:38:10.131Z" }, - { url = "https://files.pythonhosted.org/packages/89/72/39ef491caef3abae945f5a5fd72830d3b596bfac0630508629283585e213/backrefs-5.7.post1-py311-none-any.whl", hash = "sha256:712ea7e494c5bf3291156e28954dd96d04dc44681d0e5c030adf2623d5606d51", size = 392234, upload-time = "2024-06-16T18:38:12.283Z" }, - { url = "https://files.pythonhosted.org/packages/6a/00/33403f581b732ca70fdebab558e8bbb426a29c34e0c3ed674a479b74beea/backrefs-5.7.post1-py312-none-any.whl", hash = "sha256:a6142201c8293e75bce7577ac29e1a9438c12e730d73a59efdd1b75528d1a6c5", size = 398110, upload-time = "2024-06-16T18:38:14.257Z" }, - { url = "https://files.pythonhosted.org/packages/5d/ea/df0ac74a26838f6588aa012d5d801831448b87d0a7d0aefbbfabbe894870/backrefs-5.7.post1-py38-none-any.whl", hash = "sha256:ec61b1ee0a4bfa24267f6b67d0f8c5ffdc8e0d7dc2f18a2685fd1d8d9187054a", size = 369477, upload-time = "2024-06-16T18:38:16.196Z" }, - { url = "https://files.pythonhosted.org/packages/6f/e8/e43f535c0a17a695e5768670fc855a0e5d52dc0d4135b3915bfa355f65ac/backrefs-5.7.post1-py39-none-any.whl", hash = "sha256:05c04af2bf752bb9a6c9dcebb2aff2fab372d3d9d311f2a138540e307756bd3a", size = 380429, upload-time = "2024-06-16T18:38:18.079Z" }, + { url = "https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35", size = 10196845, upload-time = "2026-02-01T12:30:53.445Z" }, ] [[package]] name = "backrefs" -version = "6.2" +version = "8.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.10'", - "python_full_version == '3.9.*'", -] -sdist = { url = "https://files.pythonhosted.org/packages/4e/a6/e325ec73b638d3ede4421b5445d4a0b8b219481826cc079d510100af356c/backrefs-6.2.tar.gz", hash = "sha256:f44ff4d48808b243b6c0cdc6231e22195c32f77046018141556c66f8bab72a49", size = 7012303, upload-time = "2026-02-16T19:10:15.828Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/56/4744bcd0c82184e80c52b0ac4076c261a8ffa1f1b343ff2f6e89ce0e1cef/backrefs-8.0.tar.gz", hash = "sha256:b556cd7d36c3a3a2f256b89590b176b8eddfb73bcfaee3a3ddd84ea66d21ce50", size = 7013081, upload-time = "2026-07-26T19:54:24.638Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1b/39/3765df263e08a4df37f4f43cb5aa3c6c17a4bdd42ecfe841e04c26037171/backrefs-6.2-py310-none-any.whl", hash = "sha256:0fdc7b012420b6b144410342caeb8adc54c6866cf12064abc9bb211302e496f8", size = 381075, upload-time = "2026-02-16T19:10:04.322Z" }, - { url = "https://files.pythonhosted.org/packages/0f/f0/35240571e1b67ffb19dafb29ab34150b6f59f93f717b041082cdb1bfceb1/backrefs-6.2-py311-none-any.whl", hash = "sha256:08aa7fae530c6b2361d7bdcbda1a7c454e330cc9dbcd03f5c23205e430e5c3be", size = 392874, upload-time = "2026-02-16T19:10:06.314Z" }, - { url = "https://files.pythonhosted.org/packages/e3/63/77e8c9745b4d227cce9f5e0a6f68041278c5f9b18588b35905f5f19c1beb/backrefs-6.2-py312-none-any.whl", hash = "sha256:c3f4b9cb2af8cda0d87ab4f57800b57b95428488477be164dd2b47be54db0c90", size = 398787, upload-time = "2026-02-16T19:10:08.274Z" }, - { url = "https://files.pythonhosted.org/packages/c5/71/c754b1737ad99102e03fa3235acb6cb6d3ac9d6f596cbc3e5f236705abd8/backrefs-6.2-py313-none-any.whl", hash = "sha256:12df81596ab511f783b7d87c043ce26bc5b0288cf3bb03610fe76b8189282b2b", size = 400747, upload-time = "2026-02-16T19:10:09.791Z" }, - { url = "https://files.pythonhosted.org/packages/af/75/be12ba31a6eb20dccef2320cd8ccb3f7d9013b68ba4c70156259fee9e409/backrefs-6.2-py314-none-any.whl", hash = "sha256:e5f805ae09819caa1aa0623b4a83790e7028604aa2b8c73ba602c4454e665de7", size = 412602, upload-time = "2026-02-16T19:10:12.317Z" }, - { url = "https://files.pythonhosted.org/packages/21/f8/d02f650c47d05034dcd6f9c8cf94f39598b7a89c00ecda0ecb2911bc27e9/backrefs-6.2-py39-none-any.whl", hash = "sha256:664e33cd88c6840b7625b826ecf2555f32d491800900f5a541f772c485f7cda7", size = 381077, upload-time = "2026-02-16T19:10:13.74Z" }, + { url = "https://files.pythonhosted.org/packages/e3/fd/9bf53b6a6f6f519ffaac765df2f2a25e5c2fc6d32cfd2b2747099e72c911/backrefs-8.0-py310-none-any.whl", hash = "sha256:4a627b817fd2dce43b79ab48da63613340509381cd8ce0897078a0bce79a2ab8", size = 380377, upload-time = "2026-07-26T19:54:17.457Z" }, + { url = "https://files.pythonhosted.org/packages/e1/29/4bd7ae72a2634da00379c2b3bcc5439e7c94620235c6afea8af15229a973/backrefs-8.0-py311-none-any.whl", hash = "sha256:f0c35cf0102ba6b6070c12a492be3c1c1d3f5839529784b9a9565d6d04569a01", size = 392169, upload-time = "2026-07-26T19:54:18.782Z" }, + { url = "https://files.pythonhosted.org/packages/29/13/232505664e8e2a0c7a2eb0c505cfade9d715538f89a5d62bc4c272968f62/backrefs-8.0-py312-none-any.whl", hash = "sha256:87f0fae8c5f207fe9f4b2887efc71d42f4900ac78faa1af08d675ef303692dc5", size = 398084, upload-time = "2026-07-26T19:54:19.954Z" }, + { url = "https://files.pythonhosted.org/packages/8a/69/47a3dc20abc4fa5486655fde681bd55e63211b46c886d8c02223d6468431/backrefs-8.0-py313-none-any.whl", hash = "sha256:601ce68ca12385dbda06ce264406b4c4210cf5b79fd0fd627592365c92f29a88", size = 400040, upload-time = "2026-07-26T19:54:21.194Z" }, + { url = "https://files.pythonhosted.org/packages/1c/cf/e5f9b68a5b0e939a2fb933a66c20180d0c9241bf8927f7a47fa48c1675e9/backrefs-8.0-py314-none-any.whl", hash = "sha256:9ec96efa080938be92323e8e730e57718c9c88eb15ad70bbef4e1766df591408", size = 411903, upload-time = "2026-07-26T19:54:23.221Z" }, ] [[package]] name = "certifi" -version = "2026.2.25" +version = "2026.7.22" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029, upload-time = "2026-02-25T02:54:17.342Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a3/c2/24167ea9858356b47a87a50d39908bfdb72ceeefe0041586e704e5376b3a/certifi-2026.7.22.tar.gz", hash = "sha256:741e2c3b351ddf169a738da9f2c048608ff7f2c5cc02f1ebc6b118bb090d5d55", size = 138112, upload-time = "2026-07-22T03:35:12.644Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" }, + { url = "https://files.pythonhosted.org/packages/0b/a7/71ac2cff56fec219ed242bb11b8efb69fcc4bec75db06fb7bfe35de520e6/certifi-2026.7.22-py3-none-any.whl", hash = "sha256:62f22742b58a1a33014a2b6b706588a8d7e2a88ae7bd1a6ebe8c992928483775", size = 136983, upload-time = "2026-07-22T03:35:11.276Z" }, ] [[package]] @@ -91,7 +149,8 @@ name = "cfgv" version = "3.5.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", ] sdist = { url = "https://files.pythonhosted.org/packages/4e/b5/721b8799b04bf9afe054a3899c6cf4e880fcf8563cc71c15610242490a0c/cfgv-3.5.0.tar.gz", hash = "sha256:d5b1034354820651caa73ede66a6294d6e95c1b00acc5e9b098e917404669132", size = 7334, upload-time = "2025-11-19T20:55:51.612Z" } wheels = [ @@ -100,144 +159,191 @@ wheels = [ [[package]] name = "charset-normalizer" -version = "3.4.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7b/60/e3bec1881450851b087e301bedc3daa9377a4d45f1c26aa90b0b235e38aa/charset_normalizer-3.4.6.tar.gz", hash = "sha256:1ae6b62897110aa7c79ea2f5dd38d1abca6db663687c0b1ad9aed6f6bae3d9d6", size = 143363, upload-time = "2026-03-15T18:53:25.478Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/8c/2c56124c6dc53a774d435f985b5973bc592f42d437be58c0c92d65ae7296/charset_normalizer-3.4.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2e1d8ca8611099001949d1cdfaefc510cf0f212484fe7c565f735b68c78c3c95", size = 298751, upload-time = "2026-03-15T18:50:00.003Z" }, - { url = "https://files.pythonhosted.org/packages/86/2a/2a7db6b314b966a3bcad8c731c0719c60b931b931de7ae9f34b2839289ee/charset_normalizer-3.4.6-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e25369dc110d58ddf29b949377a93e0716d72a24f62bad72b2b39f155949c1fd", size = 200027, upload-time = "2026-03-15T18:50:01.702Z" }, - { url = "https://files.pythonhosted.org/packages/68/f2/0fe775c74ae25e2a3b07b01538fc162737b3e3f795bada3bc26f4d4d495c/charset_normalizer-3.4.6-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:259695e2ccc253feb2a016303543d691825e920917e31f894ca1a687982b1de4", size = 220741, upload-time = "2026-03-15T18:50:03.194Z" }, - { url = "https://files.pythonhosted.org/packages/10/98/8085596e41f00b27dd6aa1e68413d1ddda7e605f34dd546833c61fddd709/charset_normalizer-3.4.6-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:dda86aba335c902b6149a02a55b38e96287157e609200811837678214ba2b1db", size = 215802, upload-time = "2026-03-15T18:50:05.859Z" }, - { url = "https://files.pythonhosted.org/packages/fd/ce/865e4e09b041bad659d682bbd98b47fb490b8e124f9398c9448065f64fee/charset_normalizer-3.4.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:51fb3c322c81d20567019778cb5a4a6f2dc1c200b886bc0d636238e364848c89", size = 207908, upload-time = "2026-03-15T18:50:07.676Z" }, - { url = "https://files.pythonhosted.org/packages/a8/54/8c757f1f7349262898c2f169e0d562b39dcb977503f18fdf0814e923db78/charset_normalizer-3.4.6-cp310-cp310-manylinux_2_31_armv7l.whl", hash = "sha256:4482481cb0572180b6fd976a4d5c72a30263e98564da68b86ec91f0fe35e8565", size = 194357, upload-time = "2026-03-15T18:50:09.327Z" }, - { url = "https://files.pythonhosted.org/packages/6f/29/e88f2fac9218907fc7a70722b393d1bbe8334c61fe9c46640dba349b6e66/charset_normalizer-3.4.6-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:39f5068d35621da2881271e5c3205125cc456f54e9030d3f723288c873a71bf9", size = 205610, upload-time = "2026-03-15T18:50:10.732Z" }, - { url = "https://files.pythonhosted.org/packages/4c/c5/21d7bb0cb415287178450171d130bed9d664211fdd59731ed2c34267b07d/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8bea55c4eef25b0b19a0337dc4e3f9a15b00d569c77211fa8cde38684f234fb7", size = 203512, upload-time = "2026-03-15T18:50:12.535Z" }, - { url = "https://files.pythonhosted.org/packages/a4/be/ce52f3c7fdb35cc987ad38a53ebcef52eec498f4fb6c66ecfe62cfe57ba2/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:f0cdaecd4c953bfae0b6bb64910aaaca5a424ad9c72d85cb88417bb9814f7550", size = 195398, upload-time = "2026-03-15T18:50:14.236Z" }, - { url = "https://files.pythonhosted.org/packages/81/a0/3ab5dd39d4859a3555e5dadfc8a9fa7f8352f8c183d1a65c90264517da0e/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:150b8ce8e830eb7ccb029ec9ca36022f756986aaaa7956aad6d9ec90089338c0", size = 221772, upload-time = "2026-03-15T18:50:15.581Z" }, - { url = "https://files.pythonhosted.org/packages/04/6e/6a4e41a97ba6b2fa87f849c41e4d229449a586be85053c4d90135fe82d26/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:e68c14b04827dd76dcbd1aeea9e604e3e4b78322d8faf2f8132c7138efa340a8", size = 205759, upload-time = "2026-03-15T18:50:17.047Z" }, - { url = "https://files.pythonhosted.org/packages/db/3b/34a712a5ee64a6957bf355b01dc17b12de457638d436fdb05d01e463cd1c/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:3778fd7d7cd04ae8f54651f4a7a0bd6e39a0cf20f801720a4c21d80e9b7ad6b0", size = 216938, upload-time = "2026-03-15T18:50:18.44Z" }, - { url = "https://files.pythonhosted.org/packages/cb/05/5bd1e12da9ab18790af05c61aafd01a60f489778179b621ac2a305243c62/charset_normalizer-3.4.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dad6e0f2e481fffdcf776d10ebee25e0ef89f16d691f1e5dee4b586375fdc64b", size = 210138, upload-time = "2026-03-15T18:50:19.852Z" }, - { url = "https://files.pythonhosted.org/packages/bd/8e/3cb9e2d998ff6b21c0a1860343cb7b83eba9cdb66b91410e18fc4969d6ab/charset_normalizer-3.4.6-cp310-cp310-win32.whl", hash = "sha256:74a2e659c7ecbc73562e2a15e05039f1e22c75b7c7618b4b574a3ea9118d1557", size = 144137, upload-time = "2026-03-15T18:50:21.505Z" }, - { url = "https://files.pythonhosted.org/packages/d8/8f/78f5489ffadb0db3eb7aff53d31c24531d33eb545f0c6f6567c25f49a5ff/charset_normalizer-3.4.6-cp310-cp310-win_amd64.whl", hash = "sha256:aa9cccf4a44b9b62d8ba8b4dd06c649ba683e4bf04eea606d2e94cfc2d6ff4d6", size = 154244, upload-time = "2026-03-15T18:50:22.81Z" }, - { url = "https://files.pythonhosted.org/packages/e4/74/e472659dffb0cadb2f411282d2d76c60da1fc94076d7fffed4ae8a93ec01/charset_normalizer-3.4.6-cp310-cp310-win_arm64.whl", hash = "sha256:e985a16ff513596f217cee86c21371b8cd011c0f6f056d0920aa2d926c544058", size = 143312, upload-time = "2026-03-15T18:50:24.074Z" }, - { url = "https://files.pythonhosted.org/packages/62/28/ff6f234e628a2de61c458be2779cb182bc03f6eec12200d4a525bbfc9741/charset_normalizer-3.4.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:82060f995ab5003a2d6e0f4ad29065b7672b6593c8c63559beefe5b443242c3e", size = 293582, upload-time = "2026-03-15T18:50:25.454Z" }, - { url = "https://files.pythonhosted.org/packages/1c/b7/b1a117e5385cbdb3205f6055403c2a2a220c5ea80b8716c324eaf75c5c95/charset_normalizer-3.4.6-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:60c74963d8350241a79cb8feea80e54d518f72c26db618862a8f53e5023deaf9", size = 197240, upload-time = "2026-03-15T18:50:27.196Z" }, - { url = "https://files.pythonhosted.org/packages/a1/5f/2574f0f09f3c3bc1b2f992e20bce6546cb1f17e111c5be07308dc5427956/charset_normalizer-3.4.6-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6e4333fb15c83f7d1482a76d45a0818897b3d33f00efd215528ff7c51b8e35d", size = 217363, upload-time = "2026-03-15T18:50:28.601Z" }, - { url = "https://files.pythonhosted.org/packages/4a/d1/0ae20ad77bc949ddd39b51bf383b6ca932f2916074c95cad34ae465ab71f/charset_normalizer-3.4.6-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bc72863f4d9aba2e8fd9085e63548a324ba706d2ea2c83b260da08a59b9482de", size = 212994, upload-time = "2026-03-15T18:50:30.102Z" }, - { url = "https://files.pythonhosted.org/packages/60/ac/3233d262a310c1b12633536a07cde5ddd16985e6e7e238e9f3f9423d8eb9/charset_normalizer-3.4.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9cc4fc6c196d6a8b76629a70ddfcd4635a6898756e2d9cac5565cf0654605d73", size = 204697, upload-time = "2026-03-15T18:50:31.654Z" }, - { url = "https://files.pythonhosted.org/packages/25/3c/8a18fc411f085b82303cfb7154eed5bd49c77035eb7608d049468b53f87c/charset_normalizer-3.4.6-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:0c173ce3a681f309f31b87125fecec7a5d1347261ea11ebbb856fa6006b23c8c", size = 191673, upload-time = "2026-03-15T18:50:33.433Z" }, - { url = "https://files.pythonhosted.org/packages/ff/a7/11cfe61d6c5c5c7438d6ba40919d0306ed83c9ab957f3d4da2277ff67836/charset_normalizer-3.4.6-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c907cdc8109f6c619e6254212e794d6548373cc40e1ec75e6e3823d9135d29cc", size = 201120, upload-time = "2026-03-15T18:50:35.105Z" }, - { url = "https://files.pythonhosted.org/packages/b5/10/cf491fa1abd47c02f69687046b896c950b92b6cd7337a27e6548adbec8e4/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:404a1e552cf5b675a87f0651f8b79f5f1e6fd100ee88dc612f89aa16abd4486f", size = 200911, upload-time = "2026-03-15T18:50:36.819Z" }, - { url = "https://files.pythonhosted.org/packages/28/70/039796160b48b18ed466fde0af84c1b090c4e288fae26cd674ad04a2d703/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:e3c701e954abf6fc03a49f7c579cc80c2c6cc52525340ca3186c41d3f33482ef", size = 192516, upload-time = "2026-03-15T18:50:38.228Z" }, - { url = "https://files.pythonhosted.org/packages/ff/34/c56f3223393d6ff3124b9e78f7de738047c2d6bc40a4f16ac0c9d7a1cb3c/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7a6967aaf043bceabab5412ed6bd6bd26603dae84d5cb75bf8d9a74a4959d398", size = 218795, upload-time = "2026-03-15T18:50:39.664Z" }, - { url = "https://files.pythonhosted.org/packages/e8/3b/ce2d4f86c5282191a041fdc5a4ce18f1c6bd40a5bd1f74cf8625f08d51c1/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:5feb91325bbceade6afab43eb3b508c63ee53579fe896c77137ded51c6b6958e", size = 201833, upload-time = "2026-03-15T18:50:41.552Z" }, - { url = "https://files.pythonhosted.org/packages/3b/9b/b6a9f76b0fd7c5b5ec58b228ff7e85095370282150f0bd50b3126f5506d6/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:f820f24b09e3e779fe84c3c456cb4108a7aa639b0d1f02c28046e11bfcd088ed", size = 213920, upload-time = "2026-03-15T18:50:43.33Z" }, - { url = "https://files.pythonhosted.org/packages/ae/98/7bc23513a33d8172365ed30ee3a3b3fe1ece14a395e5fc94129541fc6003/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b35b200d6a71b9839a46b9b7fff66b6638bb52fc9658aa58796b0326595d3021", size = 206951, upload-time = "2026-03-15T18:50:44.789Z" }, - { url = "https://files.pythonhosted.org/packages/32/73/c0b86f3d1458468e11aec870e6b3feac931facbe105a894b552b0e518e79/charset_normalizer-3.4.6-cp311-cp311-win32.whl", hash = "sha256:9ca4c0b502ab399ef89248a2c84c54954f77a070f28e546a85e91da627d1301e", size = 143703, upload-time = "2026-03-15T18:50:46.103Z" }, - { url = "https://files.pythonhosted.org/packages/c6/e3/76f2facfe8eddee0bbd38d2594e709033338eae44ebf1738bcefe0a06185/charset_normalizer-3.4.6-cp311-cp311-win_amd64.whl", hash = "sha256:a9e68c9d88823b274cf1e72f28cb5dc89c990edf430b0bfd3e2fb0785bfeabf4", size = 153857, upload-time = "2026-03-15T18:50:47.563Z" }, - { url = "https://files.pythonhosted.org/packages/e2/dc/9abe19c9b27e6cd3636036b9d1b387b78c40dedbf0b47f9366737684b4b0/charset_normalizer-3.4.6-cp311-cp311-win_arm64.whl", hash = "sha256:97d0235baafca5f2b09cf332cc275f021e694e8362c6bb9c96fc9a0eb74fc316", size = 142751, upload-time = "2026-03-15T18:50:49.234Z" }, - { url = "https://files.pythonhosted.org/packages/e5/62/c0815c992c9545347aeea7859b50dc9044d147e2e7278329c6e02ac9a616/charset_normalizer-3.4.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2ef7fedc7a6ecbe99969cd09632516738a97eeb8bd7258bf8a0f23114c057dab", size = 295154, upload-time = "2026-03-15T18:50:50.88Z" }, - { url = "https://files.pythonhosted.org/packages/a8/37/bdca6613c2e3c58c7421891d80cc3efa1d32e882f7c4a7ee6039c3fc951a/charset_normalizer-3.4.6-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a4ea868bc28109052790eb2b52a9ab33f3aa7adc02f96673526ff47419490e21", size = 199191, upload-time = "2026-03-15T18:50:52.658Z" }, - { url = "https://files.pythonhosted.org/packages/6c/92/9934d1bbd69f7f398b38c5dae1cbf9cc672e7c34a4adf7b17c0a9c17d15d/charset_normalizer-3.4.6-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:836ab36280f21fc1a03c99cd05c6b7af70d2697e374c7af0b61ed271401a72a2", size = 218674, upload-time = "2026-03-15T18:50:54.102Z" }, - { url = "https://files.pythonhosted.org/packages/af/90/25f6ab406659286be929fd89ab0e78e38aa183fc374e03aa3c12d730af8a/charset_normalizer-3.4.6-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f1ce721c8a7dfec21fcbdfe04e8f68174183cf4e8188e0645e92aa23985c57ff", size = 215259, upload-time = "2026-03-15T18:50:55.616Z" }, - { url = "https://files.pythonhosted.org/packages/4e/ef/79a463eb0fff7f96afa04c1d4c51f8fc85426f918db467854bfb6a569ce3/charset_normalizer-3.4.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e28d62a8fc7a1fa411c43bd65e346f3bce9716dc51b897fbe930c5987b402d5", size = 207276, upload-time = "2026-03-15T18:50:57.054Z" }, - { url = "https://files.pythonhosted.org/packages/f7/72/d0426afec4b71dc159fa6b4e68f868cd5a3ecd918fec5813a15d292a7d10/charset_normalizer-3.4.6-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:530d548084c4a9f7a16ed4a294d459b4f229db50df689bfe92027452452943a0", size = 195161, upload-time = "2026-03-15T18:50:58.686Z" }, - { url = "https://files.pythonhosted.org/packages/bf/18/c82b06a68bfcb6ce55e508225d210c7e6a4ea122bfc0748892f3dc4e8e11/charset_normalizer-3.4.6-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:30f445ae60aad5e1f8bdbb3108e39f6fbc09f4ea16c815c66578878325f8f15a", size = 203452, upload-time = "2026-03-15T18:51:00.196Z" }, - { url = "https://files.pythonhosted.org/packages/44/d6/0c25979b92f8adafdbb946160348d8d44aa60ce99afdc27df524379875cb/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ac2393c73378fea4e52aa56285a3d64be50f1a12395afef9cce47772f60334c2", size = 202272, upload-time = "2026-03-15T18:51:01.703Z" }, - { url = "https://files.pythonhosted.org/packages/2e/3d/7fea3e8fe84136bebbac715dd1221cc25c173c57a699c030ab9b8900cbb7/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:90ca27cd8da8118b18a52d5f547859cc1f8354a00cd1e8e5120df3e30d6279e5", size = 195622, upload-time = "2026-03-15T18:51:03.526Z" }, - { url = "https://files.pythonhosted.org/packages/57/8a/d6f7fd5cb96c58ef2f681424fbca01264461336d2a7fc875e4446b1f1346/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8e5a94886bedca0f9b78fecd6afb6629142fd2605aa70a125d49f4edc6037ee6", size = 220056, upload-time = "2026-03-15T18:51:05.269Z" }, - { url = "https://files.pythonhosted.org/packages/16/50/478cdda782c8c9c3fb5da3cc72dd7f331f031e7f1363a893cdd6ca0f8de0/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:695f5c2823691a25f17bc5d5ffe79fa90972cc34b002ac6c843bb8a1720e950d", size = 203751, upload-time = "2026-03-15T18:51:06.858Z" }, - { url = "https://files.pythonhosted.org/packages/75/fc/cc2fcac943939c8e4d8791abfa139f685e5150cae9f94b60f12520feaa9b/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:231d4da14bcd9301310faf492051bee27df11f2bc7549bc0bb41fef11b82daa2", size = 216563, upload-time = "2026-03-15T18:51:08.564Z" }, - { url = "https://files.pythonhosted.org/packages/a8/b7/a4add1d9a5f68f3d037261aecca83abdb0ab15960a3591d340e829b37298/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a056d1ad2633548ca18ffa2f85c202cfb48b68615129143915b8dc72a806a923", size = 209265, upload-time = "2026-03-15T18:51:10.312Z" }, - { url = "https://files.pythonhosted.org/packages/6c/18/c094561b5d64a24277707698e54b7f67bd17a4f857bbfbb1072bba07c8bf/charset_normalizer-3.4.6-cp312-cp312-win32.whl", hash = "sha256:c2274ca724536f173122f36c98ce188fd24ce3dad886ec2b7af859518ce008a4", size = 144229, upload-time = "2026-03-15T18:51:11.694Z" }, - { url = "https://files.pythonhosted.org/packages/ab/20/0567efb3a8fd481b8f34f739ebddc098ed062a59fed41a8d193a61939e8f/charset_normalizer-3.4.6-cp312-cp312-win_amd64.whl", hash = "sha256:c8ae56368f8cc97c7e40a7ee18e1cedaf8e780cd8bc5ed5ac8b81f238614facb", size = 154277, upload-time = "2026-03-15T18:51:13.004Z" }, - { url = "https://files.pythonhosted.org/packages/15/57/28d79b44b51933119e21f65479d0864a8d5893e494cf5daab15df0247c17/charset_normalizer-3.4.6-cp312-cp312-win_arm64.whl", hash = "sha256:899d28f422116b08be5118ef350c292b36fc15ec2daeb9ea987c89281c7bb5c4", size = 142817, upload-time = "2026-03-15T18:51:14.408Z" }, - { url = "https://files.pythonhosted.org/packages/1e/1d/4fdabeef4e231153b6ed7567602f3b68265ec4e5b76d6024cf647d43d981/charset_normalizer-3.4.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:11afb56037cbc4b1555a34dd69151e8e069bee82e613a73bef6e714ce733585f", size = 294823, upload-time = "2026-03-15T18:51:15.755Z" }, - { url = "https://files.pythonhosted.org/packages/47/7b/20e809b89c69d37be748d98e84dce6820bf663cf19cf6b942c951a3e8f41/charset_normalizer-3.4.6-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:423fb7e748a08f854a08a222b983f4df1912b1daedce51a72bd24fe8f26a1843", size = 198527, upload-time = "2026-03-15T18:51:17.177Z" }, - { url = "https://files.pythonhosted.org/packages/37/a6/4f8d27527d59c039dce6f7622593cdcd3d70a8504d87d09eb11e9fdc6062/charset_normalizer-3.4.6-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d73beaac5e90173ac3deb9928a74763a6d230f494e4bfb422c217a0ad8e629bf", size = 218388, upload-time = "2026-03-15T18:51:18.934Z" }, - { url = "https://files.pythonhosted.org/packages/f6/9b/4770ccb3e491a9bacf1c46cc8b812214fe367c86a96353ccc6daf87b01ec/charset_normalizer-3.4.6-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d60377dce4511655582e300dc1e5a5f24ba0cb229005a1d5c8d0cb72bb758ab8", size = 214563, upload-time = "2026-03-15T18:51:20.374Z" }, - { url = "https://files.pythonhosted.org/packages/2b/58/a199d245894b12db0b957d627516c78e055adc3a0d978bc7f65ddaf7c399/charset_normalizer-3.4.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:530e8cebeea0d76bdcf93357aa5e41336f48c3dc709ac52da2bb167c5b8271d9", size = 206587, upload-time = "2026-03-15T18:51:21.807Z" }, - { url = "https://files.pythonhosted.org/packages/7e/70/3def227f1ec56f5c69dfc8392b8bd63b11a18ca8178d9211d7cc5e5e4f27/charset_normalizer-3.4.6-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:a26611d9987b230566f24a0a125f17fe0de6a6aff9f25c9f564aaa2721a5fb88", size = 194724, upload-time = "2026-03-15T18:51:23.508Z" }, - { url = "https://files.pythonhosted.org/packages/58/ab/9318352e220c05efd31c2779a23b50969dc94b985a2efa643ed9077bfca5/charset_normalizer-3.4.6-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:34315ff4fc374b285ad7f4a0bf7dcbfe769e1b104230d40f49f700d4ab6bbd84", size = 202956, upload-time = "2026-03-15T18:51:25.239Z" }, - { url = "https://files.pythonhosted.org/packages/75/13/f3550a3ac25b70f87ac98c40d3199a8503676c2f1620efbf8d42095cfc40/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5f8ddd609f9e1af8c7bd6e2aca279c931aefecd148a14402d4e368f3171769fd", size = 201923, upload-time = "2026-03-15T18:51:26.682Z" }, - { url = "https://files.pythonhosted.org/packages/1b/db/c5c643b912740b45e8eec21de1bbab8e7fc085944d37e1e709d3dcd9d72f/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:80d0a5615143c0b3225e5e3ef22c8d5d51f3f72ce0ea6fb84c943546c7b25b6c", size = 195366, upload-time = "2026-03-15T18:51:28.129Z" }, - { url = "https://files.pythonhosted.org/packages/5a/67/3b1c62744f9b2448443e0eb160d8b001c849ec3fef591e012eda6484787c/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:92734d4d8d187a354a556626c221cd1a892a4e0802ccb2af432a1d85ec012194", size = 219752, upload-time = "2026-03-15T18:51:29.556Z" }, - { url = "https://files.pythonhosted.org/packages/f6/98/32ffbaf7f0366ffb0445930b87d103f6b406bc2c271563644bde8a2b1093/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:613f19aa6e082cf96e17e3ffd89383343d0d589abda756b7764cf78361fd41dc", size = 203296, upload-time = "2026-03-15T18:51:30.921Z" }, - { url = "https://files.pythonhosted.org/packages/41/12/5d308c1bbe60cabb0c5ef511574a647067e2a1f631bc8634fcafaccd8293/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:2b1a63e8224e401cafe7739f77efd3f9e7f5f2026bda4aead8e59afab537784f", size = 215956, upload-time = "2026-03-15T18:51:32.399Z" }, - { url = "https://files.pythonhosted.org/packages/53/e9/5f85f6c5e20669dbe56b165c67b0260547dea97dba7e187938833d791687/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6cceb5473417d28edd20c6c984ab6fee6c6267d38d906823ebfe20b03d607dc2", size = 208652, upload-time = "2026-03-15T18:51:34.214Z" }, - { url = "https://files.pythonhosted.org/packages/f1/11/897052ea6af56df3eef3ca94edafee410ca699ca0c7b87960ad19932c55e/charset_normalizer-3.4.6-cp313-cp313-win32.whl", hash = "sha256:d7de2637729c67d67cf87614b566626057e95c303bc0a55ffe391f5205e7003d", size = 143940, upload-time = "2026-03-15T18:51:36.15Z" }, - { url = "https://files.pythonhosted.org/packages/a1/5c/724b6b363603e419829f561c854b87ed7c7e31231a7908708ac086cdf3e2/charset_normalizer-3.4.6-cp313-cp313-win_amd64.whl", hash = "sha256:572d7c822caf521f0525ba1bce1a622a0b85cf47ffbdae6c9c19e3b5ac3c4389", size = 154101, upload-time = "2026-03-15T18:51:37.876Z" }, - { url = "https://files.pythonhosted.org/packages/01/a5/7abf15b4c0968e47020f9ca0935fb3274deb87cb288cd187cad92e8cdffd/charset_normalizer-3.4.6-cp313-cp313-win_arm64.whl", hash = "sha256:a4474d924a47185a06411e0064b803c68be044be2d60e50e8bddcc2649957c1f", size = 143109, upload-time = "2026-03-15T18:51:39.565Z" }, - { url = "https://files.pythonhosted.org/packages/25/6f/ffe1e1259f384594063ea1869bfb6be5cdb8bc81020fc36c3636bc8302a1/charset_normalizer-3.4.6-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:9cc6e6d9e571d2f863fa77700701dae73ed5f78881efc8b3f9a4398772ff53e8", size = 294458, upload-time = "2026-03-15T18:51:41.134Z" }, - { url = "https://files.pythonhosted.org/packages/56/60/09bb6c13a8c1016c2ed5c6a6488e4ffef506461aa5161662bd7636936fb1/charset_normalizer-3.4.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef5960d965e67165d75b7c7ffc60a83ec5abfc5c11b764ec13ea54fbef8b4421", size = 199277, upload-time = "2026-03-15T18:51:42.953Z" }, - { url = "https://files.pythonhosted.org/packages/00/50/dcfbb72a5138bbefdc3332e8d81a23494bf67998b4b100703fd15fa52d81/charset_normalizer-3.4.6-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b3694e3f87f8ac7ce279d4355645b3c878d24d1424581b46282f24b92f5a4ae2", size = 218758, upload-time = "2026-03-15T18:51:44.339Z" }, - { url = "https://files.pythonhosted.org/packages/03/b3/d79a9a191bb75f5aa81f3aaaa387ef29ce7cb7a9e5074ba8ea095cc073c2/charset_normalizer-3.4.6-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5d11595abf8dd942a77883a39d81433739b287b6aa71620f15164f8096221b30", size = 215299, upload-time = "2026-03-15T18:51:45.871Z" }, - { url = "https://files.pythonhosted.org/packages/76/7e/bc8911719f7084f72fd545f647601ea3532363927f807d296a8c88a62c0d/charset_normalizer-3.4.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7bda6eebafd42133efdca535b04ccb338ab29467b3f7bf79569883676fc628db", size = 206811, upload-time = "2026-03-15T18:51:47.308Z" }, - { url = "https://files.pythonhosted.org/packages/e2/40/c430b969d41dda0c465aa36cc7c2c068afb67177bef50905ac371b28ccc7/charset_normalizer-3.4.6-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:bbc8c8650c6e51041ad1be191742b8b421d05bbd3410f43fa2a00c8db87678e8", size = 193706, upload-time = "2026-03-15T18:51:48.849Z" }, - { url = "https://files.pythonhosted.org/packages/48/15/e35e0590af254f7df984de1323640ef375df5761f615b6225ba8deb9799a/charset_normalizer-3.4.6-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:22c6f0c2fbc31e76c3b8a86fba1a56eda6166e238c29cdd3d14befdb4a4e4815", size = 202706, upload-time = "2026-03-15T18:51:50.257Z" }, - { url = "https://files.pythonhosted.org/packages/5e/bd/f736f7b9cc5e93a18b794a50346bb16fbfd6b37f99e8f306f7951d27c17c/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7edbed096e4a4798710ed6bc75dcaa2a21b68b6c356553ac4823c3658d53743a", size = 202497, upload-time = "2026-03-15T18:51:52.012Z" }, - { url = "https://files.pythonhosted.org/packages/9d/ba/2cc9e3e7dfdf7760a6ed8da7446d22536f3d0ce114ac63dee2a5a3599e62/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:7f9019c9cb613f084481bd6a100b12e1547cf2efe362d873c2e31e4035a6fa43", size = 193511, upload-time = "2026-03-15T18:51:53.723Z" }, - { url = "https://files.pythonhosted.org/packages/9e/cb/5be49b5f776e5613be07298c80e1b02a2d900f7a7de807230595c85a8b2e/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:58c948d0d086229efc484fe2f30c2d382c86720f55cd9bc33591774348ad44e0", size = 220133, upload-time = "2026-03-15T18:51:55.333Z" }, - { url = "https://files.pythonhosted.org/packages/83/43/99f1b5dad345accb322c80c7821071554f791a95ee50c1c90041c157ae99/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:419a9d91bd238052642a51938af8ac05da5b3343becde08d5cdeab9046df9ee1", size = 203035, upload-time = "2026-03-15T18:51:56.736Z" }, - { url = "https://files.pythonhosted.org/packages/87/9a/62c2cb6a531483b55dddff1a68b3d891a8b498f3ca555fbcf2978e804d9d/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5273b9f0b5835ff0350c0828faea623c68bfa65b792720c453e22b25cc72930f", size = 216321, upload-time = "2026-03-15T18:51:58.17Z" }, - { url = "https://files.pythonhosted.org/packages/6e/79/94a010ff81e3aec7c293eb82c28f930918e517bc144c9906a060844462eb/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:0e901eb1049fdb80f5bd11ed5ea1e498ec423102f7a9b9e4645d5b8204ff2815", size = 208973, upload-time = "2026-03-15T18:51:59.998Z" }, - { url = "https://files.pythonhosted.org/packages/2a/57/4ecff6d4ec8585342f0c71bc03efaa99cb7468f7c91a57b105bcd561cea8/charset_normalizer-3.4.6-cp314-cp314-win32.whl", hash = "sha256:b4ff1d35e8c5bd078be89349b6f3a845128e685e751b6ea1169cf2160b344c4d", size = 144610, upload-time = "2026-03-15T18:52:02.213Z" }, - { url = "https://files.pythonhosted.org/packages/80/94/8434a02d9d7f168c25767c64671fead8d599744a05d6a6c877144c754246/charset_normalizer-3.4.6-cp314-cp314-win_amd64.whl", hash = "sha256:74119174722c4349af9708993118581686f343adc1c8c9c007d59be90d077f3f", size = 154962, upload-time = "2026-03-15T18:52:03.658Z" }, - { url = "https://files.pythonhosted.org/packages/46/4c/48f2cdbfd923026503dfd67ccea45c94fd8fe988d9056b468579c66ed62b/charset_normalizer-3.4.6-cp314-cp314-win_arm64.whl", hash = "sha256:e5bcc1a1ae744e0bb59641171ae53743760130600da8db48cbb6e4918e186e4e", size = 143595, upload-time = "2026-03-15T18:52:05.123Z" }, - { url = "https://files.pythonhosted.org/packages/31/93/8878be7569f87b14f1d52032946131bcb6ebbd8af3e20446bc04053dc3f1/charset_normalizer-3.4.6-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ad8faf8df23f0378c6d527d8b0b15ea4a2e23c89376877c598c4870d1b2c7866", size = 314828, upload-time = "2026-03-15T18:52:06.831Z" }, - { url = "https://files.pythonhosted.org/packages/06/b6/fae511ca98aac69ecc35cde828b0a3d146325dd03d99655ad38fc2cc3293/charset_normalizer-3.4.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f5ea69428fa1b49573eef0cc44a1d43bebd45ad0c611eb7d7eac760c7ae771bc", size = 208138, upload-time = "2026-03-15T18:52:08.239Z" }, - { url = "https://files.pythonhosted.org/packages/54/57/64caf6e1bf07274a1e0b7c160a55ee9e8c9ec32c46846ce59b9c333f7008/charset_normalizer-3.4.6-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:06a7e86163334edfc5d20fe104db92fcd666e5a5df0977cb5680a506fe26cc8e", size = 224679, upload-time = "2026-03-15T18:52:10.043Z" }, - { url = "https://files.pythonhosted.org/packages/aa/cb/9ff5a25b9273ef160861b41f6937f86fae18b0792fe0a8e75e06acb08f1d/charset_normalizer-3.4.6-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e1f6e2f00a6b8edb562826e4632e26d063ac10307e80f7461f7de3ad8ef3f077", size = 223475, upload-time = "2026-03-15T18:52:11.854Z" }, - { url = "https://files.pythonhosted.org/packages/fc/97/440635fc093b8d7347502a377031f9605a1039c958f3cd18dcacffb37743/charset_normalizer-3.4.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:95b52c68d64c1878818687a473a10547b3292e82b6f6fe483808fb1468e2f52f", size = 215230, upload-time = "2026-03-15T18:52:13.325Z" }, - { url = "https://files.pythonhosted.org/packages/cd/24/afff630feb571a13f07c8539fbb502d2ab494019492aaffc78ef41f1d1d0/charset_normalizer-3.4.6-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:7504e9b7dc05f99a9bbb4525c67a2c155073b44d720470a148b34166a69c054e", size = 199045, upload-time = "2026-03-15T18:52:14.752Z" }, - { url = "https://files.pythonhosted.org/packages/e5/17/d1399ecdaf7e0498c327433e7eefdd862b41236a7e484355b8e0e5ebd64b/charset_normalizer-3.4.6-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:172985e4ff804a7ad08eebec0a1640ece87ba5041d565fff23c8f99c1f389484", size = 211658, upload-time = "2026-03-15T18:52:16.278Z" }, - { url = "https://files.pythonhosted.org/packages/b5/38/16baa0affb957b3d880e5ac2144caf3f9d7de7bc4a91842e447fbb5e8b67/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:4be9f4830ba8741527693848403e2c457c16e499100963ec711b1c6f2049b7c7", size = 210769, upload-time = "2026-03-15T18:52:17.782Z" }, - { url = "https://files.pythonhosted.org/packages/05/34/c531bc6ac4c21da9ddfddb3107be2287188b3ea4b53b70fc58f2a77ac8d8/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:79090741d842f564b1b2827c0b82d846405b744d31e84f18d7a7b41c20e473ff", size = 201328, upload-time = "2026-03-15T18:52:19.553Z" }, - { url = "https://files.pythonhosted.org/packages/fa/73/a5a1e9ca5f234519c1953608a03fe109c306b97fdfb25f09182babad51a7/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:87725cfb1a4f1f8c2fc9890ae2f42094120f4b44db9360be5d99a4c6b0e03a9e", size = 225302, upload-time = "2026-03-15T18:52:21.043Z" }, - { url = "https://files.pythonhosted.org/packages/ba/f6/cd782923d112d296294dea4bcc7af5a7ae0f86ab79f8fefbda5526b6cfc0/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:fcce033e4021347d80ed9c66dcf1e7b1546319834b74445f561d2e2221de5659", size = 211127, upload-time = "2026-03-15T18:52:22.491Z" }, - { url = "https://files.pythonhosted.org/packages/0e/c5/0b6898950627af7d6103a449b22320372c24c6feda91aa24e201a478d161/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:ca0276464d148c72defa8bb4390cce01b4a0e425f3b50d1435aa6d7a18107602", size = 222840, upload-time = "2026-03-15T18:52:24.113Z" }, - { url = "https://files.pythonhosted.org/packages/7d/25/c4bba773bef442cbdc06111d40daa3de5050a676fa26e85090fc54dd12f0/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:197c1a244a274bb016dd8b79204850144ef77fe81c5b797dc389327adb552407", size = 216890, upload-time = "2026-03-15T18:52:25.541Z" }, - { url = "https://files.pythonhosted.org/packages/35/1a/05dacadb0978da72ee287b0143097db12f2e7e8d3ffc4647da07a383b0b7/charset_normalizer-3.4.6-cp314-cp314t-win32.whl", hash = "sha256:2a24157fa36980478dd1770b585c0f30d19e18f4fb0c47c13aa568f871718579", size = 155379, upload-time = "2026-03-15T18:52:27.05Z" }, - { url = "https://files.pythonhosted.org/packages/5d/7a/d269d834cb3a76291651256f3b9a5945e81d0a49ab9f4a498964e83c0416/charset_normalizer-3.4.6-cp314-cp314t-win_amd64.whl", hash = "sha256:cd5e2801c89992ed8c0a3f0293ae83c159a60d9a5d685005383ef4caca77f2c4", size = 169043, upload-time = "2026-03-15T18:52:28.502Z" }, - { url = "https://files.pythonhosted.org/packages/23/06/28b29fba521a37a8932c6a84192175c34d49f84a6d4773fa63d05f9aff22/charset_normalizer-3.4.6-cp314-cp314t-win_arm64.whl", hash = "sha256:47955475ac79cc504ef2704b192364e51d0d473ad452caedd0002605f780101c", size = 148523, upload-time = "2026-03-15T18:52:29.956Z" }, - { url = "https://files.pythonhosted.org/packages/ed/58/58e0cd3cd20ce69bf3daa0ded2509b40070f820b7d19a883c108d099f575/charset_normalizer-3.4.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:659a1e1b500fac8f2779dd9e1570464e012f43e580371470b45277a27baa7532", size = 282635, upload-time = "2026-03-15T18:52:32.186Z" }, - { url = "https://files.pythonhosted.org/packages/e3/c2/3dc26177a0bfc9e416cd99745b348b9dd7fcf37355d60eb3331d44dea084/charset_normalizer-3.4.6-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f61aa92e4aad0be58eb6eb4e0c21acf32cf8065f4b2cae5665da756c4ceef982", size = 191949, upload-time = "2026-03-15T18:52:33.766Z" }, - { url = "https://files.pythonhosted.org/packages/30/dc/93d1e33efaceb05fa7eacc4a7617f6307f42c999d67fbd8dc9e0bc3f741c/charset_normalizer-3.4.6-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f50498891691e0864dc3da965f340fada0771f6142a378083dc4608f4ea513e2", size = 209106, upload-time = "2026-03-15T18:52:35.681Z" }, - { url = "https://files.pythonhosted.org/packages/fd/12/92fb2d1722404102f84938b3610d260cd511ca917bd51b0f8d3d471018dd/charset_normalizer-3.4.6-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bf625105bb9eef28a56a943fec8c8a98aeb80e7d7db99bd3c388137e6eb2d237", size = 205324, upload-time = "2026-03-15T18:52:37.494Z" }, - { url = "https://files.pythonhosted.org/packages/b5/ff/286446724c185fa82daa74df13e0776c720482010c123aebd6f3aa0b0640/charset_normalizer-3.4.6-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2bd9d128ef93637a5d7a6af25363cf5dec3fa21cf80e68055aad627f280e8afa", size = 198735, upload-time = "2026-03-15T18:52:39.032Z" }, - { url = "https://files.pythonhosted.org/packages/76/68/776580df3b98426ad21c639423066b08f42c7f4e5f263cfbdbce480a71af/charset_normalizer-3.4.6-cp38-cp38-manylinux_2_31_armv7l.whl", hash = "sha256:d08ec48f0a1c48d75d0356cea971921848fb620fdeba805b28f937e90691209f", size = 187796, upload-time = "2026-03-15T18:52:40.971Z" }, - { url = "https://files.pythonhosted.org/packages/ab/80/95de4a300d7dc4fb6cc8b2e39f771ee1636273882becce14e8bd875a577a/charset_normalizer-3.4.6-cp38-cp38-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1ed80ff870ca6de33f4d953fda4d55654b9a2b340ff39ab32fa3adbcd718f264", size = 196929, upload-time = "2026-03-15T18:52:42.389Z" }, - { url = "https://files.pythonhosted.org/packages/da/41/f3ccbb1417aeec79f02201fc37d1835b8091bf9838f2a8d1cb48583cb9cf/charset_normalizer-3.4.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f98059e4fcd3e3e4e2d632b7cf81c2faae96c43c60b569e9c621468082f1d104", size = 194649, upload-time = "2026-03-15T18:52:43.845Z" }, - { url = "https://files.pythonhosted.org/packages/1b/ee/4f2a275c862d56648dbdd12d4d89f2e2786bf0bea6f1127461980b818906/charset_normalizer-3.4.6-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:ab30e5e3e706e3063bc6de96b118688cb10396b70bb9864a430f67df98c61ecc", size = 188203, upload-time = "2026-03-15T18:52:45.739Z" }, - { url = "https://files.pythonhosted.org/packages/ba/13/4363a16ef726d73ec85a3fdafcbcfaef6e63a86bbb8ed423226c4a04a8c1/charset_normalizer-3.4.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:d5f5d1e9def3405f60e3ca8232d56f35c98fb7bf581efcc60051ebf53cb8b611", size = 210986, upload-time = "2026-03-15T18:52:47.564Z" }, - { url = "https://files.pythonhosted.org/packages/96/39/5cfccd712bfb1f37fcb963cc8057c3605a0b3a222394deba7e3bd986dfcb/charset_normalizer-3.4.6-cp38-cp38-musllinux_1_2_riscv64.whl", hash = "sha256:461598cd852bfa5a61b09cae2b1c02e2efcd166ee5516e243d540ac24bfa68a7", size = 196801, upload-time = "2026-03-15T18:52:49.407Z" }, - { url = "https://files.pythonhosted.org/packages/05/9f/ef57946ad3637d8d09f28dbd7d6efff2282fcd28cae2f37ebb074e67779a/charset_normalizer-3.4.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:71be7e0e01753a89cf024abf7ecb6bca2c81738ead80d43004d9b5e3f1244e64", size = 206881, upload-time = "2026-03-15T18:52:50.896Z" }, - { url = "https://files.pythonhosted.org/packages/0f/a9/278ea02d48eb50ed23ec23ce4845ffecf881104e0c25975a80f9fbe2dcad/charset_normalizer-3.4.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:df01808ee470038c3f8dc4f48620df7225c49c2d6639e38f96e6d6ac6e6f7b0e", size = 200632, upload-time = "2026-03-15T18:52:52.727Z" }, - { url = "https://files.pythonhosted.org/packages/7b/b8/4b06263034d3f8f25b1ee5869a32be479dc61f0bd12d4b51863299a4a919/charset_normalizer-3.4.6-cp38-cp38-win32.whl", hash = "sha256:69dd852c2f0ad631b8b60cfbe25a28c0058a894de5abb566619c205ce0550eae", size = 141571, upload-time = "2026-03-15T18:52:54.293Z" }, - { url = "https://files.pythonhosted.org/packages/41/16/e37a1405c914a6a00d589226c835999bd6ce09754b212299ad3b33f10b1f/charset_normalizer-3.4.6-cp38-cp38-win_amd64.whl", hash = "sha256:517ad0e93394ac532745129ceabdf2696b609ec9f87863d337140317ebce1c14", size = 151453, upload-time = "2026-03-15T18:52:55.855Z" }, - { url = "https://files.pythonhosted.org/packages/41/85/580dbaa12ab31041ed7df59f0bebc8893514fc21da6c05c3a1c1707d118f/charset_normalizer-3.4.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:31215157227939b4fb3d740cd23fe27be0439afef67b785a1eb78a3ae69cba9e", size = 298620, upload-time = "2026-03-15T18:52:57.332Z" }, - { url = "https://files.pythonhosted.org/packages/67/2c/1e55af3a5e2f52e44396d5c5b731e0ae4f3bb92915ff09a610fb2f4497eb/charset_normalizer-3.4.6-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecbbd45615a6885fe3240eb9db73b9e62518b611850fdf8ab08bd56de7ad2b17", size = 200106, upload-time = "2026-03-15T18:52:59.2Z" }, - { url = "https://files.pythonhosted.org/packages/10/42/0f2f51a1d16caa45fbf384fd337d4242df1a5b313babee211381d2d39a96/charset_normalizer-3.4.6-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c45a03a4c69820a399f1dda9e1d8fbf3562eda46e7720458180302021b08f778", size = 220539, upload-time = "2026-03-15T18:53:01.019Z" }, - { url = "https://files.pythonhosted.org/packages/1c/0c/4e10996c740eec0f4ae8afbbbfa25f66e8479c4b6ee9cff1ca366a4f6c04/charset_normalizer-3.4.6-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e8aeb10fcbe92767f0fa69ad5a72deca50d0dca07fbde97848997d778a50c9fe", size = 215821, upload-time = "2026-03-15T18:53:02.621Z" }, - { url = "https://files.pythonhosted.org/packages/46/73/205ae7644ebb581a7c6fa9c3751e283606e145f0e6f066003c66aafc9973/charset_normalizer-3.4.6-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:54fae94be3d75f3e573c9a1b5402dc593de19377013c9a0e4285e3d402dd3a2a", size = 207917, upload-time = "2026-03-15T18:53:04.413Z" }, - { url = "https://files.pythonhosted.org/packages/b3/ca/18f7dcf19afdab8097aeb2feb8b3809bb4b6ee356cb720abf5263d79406a/charset_normalizer-3.4.6-cp39-cp39-manylinux_2_31_armv7l.whl", hash = "sha256:2f7fdd9b6e6c529d6a2501a2d36b240109e78a8ceaef5687cfcfa2bbe671d297", size = 194513, upload-time = "2026-03-15T18:53:06.025Z" }, - { url = "https://files.pythonhosted.org/packages/e4/6a/e7e3e204c8d79832a091e00b24595af1d5d9800d37dc1f67a6b264cc99a6/charset_normalizer-3.4.6-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4d1d02209e06550bdaef34af58e041ad71b88e624f5d825519da3a3308e22687", size = 205612, upload-time = "2026-03-15T18:53:07.494Z" }, - { url = "https://files.pythonhosted.org/packages/ff/ae/2169ebcea2851c5460c7a21993a0f87028be3c3e60899cb36251e1135cf5/charset_normalizer-3.4.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8bc5f0687d796c05b1e28ab0d38a50e6309906ee09375dd3aff6a9c09dd6e8f4", size = 203519, upload-time = "2026-03-15T18:53:09.048Z" }, - { url = "https://files.pythonhosted.org/packages/43/a0/6a49a925b9c225fe35dffeac5c76f68996b814c637e9d7213718f96be109/charset_normalizer-3.4.6-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:ee4ec14bc1680d6b0afab9aea2ef27e26d2024f18b24a2d7155a52b60da7e833", size = 195411, upload-time = "2026-03-15T18:53:10.542Z" }, - { url = "https://files.pythonhosted.org/packages/47/f7/a26b0a18e52b1a0f11f53c2c400ed062f386ac227a64ae4be4c5a64699be/charset_normalizer-3.4.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:d1a2ee9c1499fc8f86f4521f27a973c914b211ffa87322f4ee33bb35392da2c5", size = 221653, upload-time = "2026-03-15T18:53:12.394Z" }, - { url = "https://files.pythonhosted.org/packages/a7/3a/ed1d3b5bb55e3634bd5c31cedbe4fff79d0e5b8d9a062f663a757a07760d/charset_normalizer-3.4.6-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:48696db7f18afb80a068821504296eb0787d9ce239b91ca15059d1d3eaacf13b", size = 205650, upload-time = "2026-03-15T18:53:13.934Z" }, - { url = "https://files.pythonhosted.org/packages/b1/27/c75819eea5ceeefc49bae329327bb91e81adc346e2a9873d9fdb9e77cde6/charset_normalizer-3.4.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4f41da960b196ea355357285ad1316a00099f22d0929fe168343b99b254729c9", size = 216919, upload-time = "2026-03-15T18:53:15.44Z" }, - { url = "https://files.pythonhosted.org/packages/0f/42/6e91bf8b15f67b7c957091138a36057a083e60703cc27848d5e36ca1eb03/charset_normalizer-3.4.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:802168e03fba8bbc5ce0d866d589e4b1ca751d06edee69f7f3a19c5a9fe6b597", size = 210101, upload-time = "2026-03-15T18:53:17.045Z" }, - { url = "https://files.pythonhosted.org/packages/99/ff/101af2605e66a7ee59961d7f9e1060df7c92e8ea54208a02ab881422c24e/charset_normalizer-3.4.6-cp39-cp39-win32.whl", hash = "sha256:8761ac29b6c81574724322a554605608a9960769ea83d2c73e396f3df896ad54", size = 144136, upload-time = "2026-03-15T18:53:19.152Z" }, - { url = "https://files.pythonhosted.org/packages/1d/da/de5942dfbf21f28c19e9202267dabf7bc73f195465d020a3a60054520cc5/charset_normalizer-3.4.6-cp39-cp39-win_amd64.whl", hash = "sha256:1cf0a70018692f85172348fe06d3a4b63f94ecb055e13a00c644d368eb82e5b8", size = 154210, upload-time = "2026-03-15T18:53:20.576Z" }, - { url = "https://files.pythonhosted.org/packages/06/df/1b780a25b86d22b1d736f6ac883afd38ffdf30ddc18e5dc0e82211f493f1/charset_normalizer-3.4.6-cp39-cp39-win_arm64.whl", hash = "sha256:3516bbb8d42169de9e61b8520cbeeeb716f12f4ecfe3fd30a9919aa16c806ca8", size = 143225, upload-time = "2026-03-15T18:53:22.072Z" }, - { url = "https://files.pythonhosted.org/packages/2a/68/687187c7e26cb24ccbd88e5069f5ef00eba804d36dde11d99aad0838ab45/charset_normalizer-3.4.6-py3-none-any.whl", hash = "sha256:947cf925bc916d90adba35a64c82aace04fa39b46b52d4630ece166655905a69", size = 61455, upload-time = "2026-03-15T18:53:23.833Z" }, +version = "3.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e5/3f/143b048436775b0f76ac3eec145c019e8173ccc2885c8f20319b996d5e83/charset_normalizer-3.5.1.tar.gz", hash = "sha256:6117b84ea48435e5356dc737f5121485c30920ba43375fa7b434fd753df0eac3", size = 171764, upload-time = "2026-08-15T08:20:44.807Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/aa/554e2614f38fc34c58ff1d0911ae8535ad2516440d5482d76fe59f1088b0/charset_normalizer-3.5.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1ee1e296209fdce05b81b663250eefa02213a2da7b41bf26f7829b8ba3545aa", size = 369072, upload-time = "2026-08-15T08:16:22.964Z" }, + { url = "https://files.pythonhosted.org/packages/03/6d/439231dfc3ccfa6f8c06477b7da2219cbd41a2de3d49084df8ec7b5100f2/charset_normalizer-3.5.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9fbdce1e47394b09bc9f26ab117dfc8d6491977a11d86f592bb42c779db2fda", size = 251142, upload-time = "2026-08-15T08:16:24.81Z" }, + { url = "https://files.pythonhosted.org/packages/55/53/7d819bd23a00ef45039146fa2cce1daa2f0771e758c5653ee1f6edac91ed/charset_normalizer-3.5.1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:00668ebb0609751758682eb0b5857e7c35b9f00e84dfdef062e103244ec94d45", size = 240714, upload-time = "2026-08-15T08:16:26.392Z" }, + { url = "https://files.pythonhosted.org/packages/b2/2c/45847198c16f4b38090cc7423b2b6a9008e438704d8ab413211832498d31/charset_normalizer-3.5.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba2f37ee79e6338845261a3c5b1784e5d1acdff2c0785b284f1b633033d136ab", size = 279637, upload-time = "2026-08-15T08:16:27.961Z" }, + { url = "https://files.pythonhosted.org/packages/69/2b/d8be3523ddf9f0b0f3e56d1359034aa10653a4d11564c697f802b4775766/charset_normalizer-3.5.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ce854f5f478050ade5a238731c4ca985a7d3b3cb53ff600a9b5c3b689b5f0a7a", size = 276543, upload-time = "2026-08-15T08:16:29.399Z" }, + { url = "https://files.pythonhosted.org/packages/32/cd/4f564b8f132de25db594efc706897069f016790cea63a5669c9df2675f64/charset_normalizer-3.5.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:96eefc178f8636b9c760c5829345307fd81cfae9ab1e80997dbddeb0f54ee9a3", size = 261644, upload-time = "2026-08-15T08:16:30.722Z" }, + { url = "https://files.pythonhosted.org/packages/f5/e3/38b975422534a608f98c360e79c2f07c763d66dd4272300d45fb1fee54b0/charset_normalizer-3.5.1-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:366ec70f5547c640d3ce1985722490f23faf4eb5216a7eeba78277490e78dacb", size = 259609, upload-time = "2026-08-15T08:16:32.248Z" }, + { url = "https://files.pythonhosted.org/packages/87/bd/fbc24d825c66f1c74f6ccdea3742c3d8354a4888e86d1315a197fee69061/charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:950f23cb393f85543777b0433f082cddd25b51ab398eac7971146495679efe5f", size = 252457, upload-time = "2026-08-15T08:16:33.849Z" }, + { url = "https://files.pythonhosted.org/packages/b9/2d/918d0e98a0e679469ed05bb2d90c2088b4d315bb612969d8499f76fb5210/charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1dcc36dcb96abc02236e182d17e0f71430152a6c2c7447421da2d2dc144edea", size = 242240, upload-time = "2026-08-15T08:16:35.396Z" }, + { url = "https://files.pythonhosted.org/packages/20/c8/c36f6e0b2dfec351bd38cbc05362697e58bcd073d7dbd95154290c9714ce/charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:07ffd07412fc5d5e84cd8952acf9ff7e4ed7a708e69d1bada19d8ba91711353f", size = 280308, upload-time = "2026-08-15T08:16:36.825Z" }, + { url = "https://files.pythonhosted.org/packages/ca/7b/311b3e02e8c4092400c449c850a760d8c45d900983c83a70cc07208c551d/charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:f5542f9b941279d82d41eb0aa9f98eba36fe4df5c7086c651df7944935b37182", size = 258679, upload-time = "2026-08-15T08:16:38.22Z" }, + { url = "https://files.pythonhosted.org/packages/b9/90/082cc45599c392f28c036a497f49e0634041a785fc3849c80ccf396d096f/charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:a545775cfe815855ea32d7c27731d79da358ef2055b4a25830231b1622dd18aa", size = 277221, upload-time = "2026-08-15T08:16:39.62Z" }, + { url = "https://files.pythonhosted.org/packages/58/ad/b9aecf38d805cbcf84fa94f14c5d972a16561e20296a11dc799a5dcf3763/charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:494b70049a4d69aec6e8137c13af4cf8db8c9f9820a1392ac293b0dd2987a818", size = 263799, upload-time = "2026-08-15T08:16:40.885Z" }, + { url = "https://files.pythonhosted.org/packages/b7/23/b38a20598d5a825f85d9d7636860e56ff0db1479f86497a6e485aa9326f7/charset_normalizer-3.5.1-cp310-cp310-win32.whl", hash = "sha256:94fbf1c0c6cc0d3d5e50f9a9313a8cdca90dd696d34b381cd1704f8c9e939f20", size = 182037, upload-time = "2026-08-15T08:16:42.198Z" }, + { url = "https://files.pythonhosted.org/packages/d2/21/83fffb77864408b8bf0fe1ca603926401d6f8775a8e150b39aacc9958f8a/charset_normalizer-3.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:be47f99644b208bff7766314013f9acf57b056b04191d570d68ad14022cf5b1d", size = 206030, upload-time = "2026-08-15T08:16:43.787Z" }, + { url = "https://files.pythonhosted.org/packages/86/2e/b93135b5034b1157fb29554b0d06d4844ce62282f0e0a14036f93d7ee2e7/charset_normalizer-3.5.1-cp310-cp310-win_arm64.whl", hash = "sha256:a6d095662e73e74f0a49988e0593373e243e3a52e27bfeea0a859e88acf4a0f5", size = 185092, upload-time = "2026-08-15T08:16:45.177Z" }, + { url = "https://files.pythonhosted.org/packages/6a/b6/034f6802e9c3f6418966cfabb7db8c9252cc2429c5098f41cc43af804149/charset_normalizer-3.5.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:eda059b6bc8bc0812d626fd91a7ce01bf583df0a61296eff390fd94141a34e30", size = 363585, upload-time = "2026-08-15T08:16:46.646Z" }, + { url = "https://files.pythonhosted.org/packages/d5/fa/6a7e2a7c4b5451912b8c417732df79574354443592a88d616de03da66ae5/charset_normalizer-3.5.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa2bb0b37202dca27175591f761108b5d34096ade1191ffe4808bdf6b1571488", size = 251189, upload-time = "2026-08-15T08:16:48.287Z" }, + { url = "https://files.pythonhosted.org/packages/a4/c8/ab42b07cfd82e919f427fcfaa7c41abae8242833ad1aad66d42bae40b669/charset_normalizer-3.5.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b2b1b3fa5670c127b246df1d0c059defd41f689a868a3b9d79df9b1cac42d22", size = 239724, upload-time = "2026-08-15T08:16:49.67Z" }, + { url = "https://files.pythonhosted.org/packages/e7/80/b9348b5d3041209f98b4cdad7655766369233f1d533f4f4f7558e9717bec/charset_normalizer-3.5.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6e5e4d73d588ca5ed09df1b7dcd1b203d1df3c542e3f50d126c947d432b10731", size = 280078, upload-time = "2026-08-15T08:16:51.228Z" }, + { url = "https://files.pythonhosted.org/packages/82/38/083a24028304bc85bb9e376fed801178423dcbb67495f73b6ea0624e1894/charset_normalizer-3.5.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b54e7e13267d49ffbfe68e25b3cbd774dab38fa37238f71265e91b36146eb21c", size = 276650, upload-time = "2026-08-15T08:16:52.625Z" }, + { url = "https://files.pythonhosted.org/packages/0d/35/731ac04aa0a097fc1c97f0994c375bdb230c6c96619db794208fe664e9ce/charset_normalizer-3.5.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7b742bf31c88566b4bb6335a7f393bb322e580b6bb98df7bd0c25e6e3519ce8", size = 262325, upload-time = "2026-08-15T08:16:54.085Z" }, + { url = "https://files.pythonhosted.org/packages/f5/28/c2028e7021fb89c6e56868ed0e387b8e9aa811abdd2ab3208d6578d2c930/charset_normalizer-3.5.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6ba32c4d2abf1d2fe7cf27d280f4cca5664233b0f885549c7761719eb977f486", size = 261140, upload-time = "2026-08-15T08:16:55.604Z" }, + { url = "https://files.pythonhosted.org/packages/28/f0/0c0ceec6d98b7daa62e361e418135d59685811d79ba11529aad5cdf15e84/charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0722590aabf9dc6a6c0343d523c05458fa2b5047dbe6302fd526bb570600753f", size = 252791, upload-time = "2026-08-15T08:16:57.103Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3e/48f4cd187b1c33189d86039e9cbe4f92c05454175504b44ff81806d4d1bf/charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:aa1099b956fb795e686d073568f6dc002a0bb89765ea6d5b055dd7d9bf1b116c", size = 240730, upload-time = "2026-08-15T08:16:58.418Z" }, + { url = "https://files.pythonhosted.org/packages/42/85/f9e22af69af67c54cce42be9455d9c81294f918b4ccc454db01f66efcac2/charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bd6c173f04743d483881bffa1478d5a4624475b8cd1d2194956a75548e191c18", size = 280791, upload-time = "2026-08-15T08:16:59.918Z" }, + { url = "https://files.pythonhosted.org/packages/fd/4c/9044135f42127630b6fa742feb51256353f6ab87a78f2fdd1de3de955a7f/charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:f298e218441525d3794428b4c8b8fb8662c6d3ea79925d4807ee6b9a96a3bca5", size = 259598, upload-time = "2026-08-15T08:17:01.421Z" }, + { url = "https://files.pythonhosted.org/packages/ba/ed/1dd7cfebb4e75812934c49ca3b79757d11948053f7937ab7070c151f3c55/charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:6e2912d4babbc65196ac13c2f53468dc57fb8b9c25ef913e8c59ddf7c6dc0e1b", size = 278217, upload-time = "2026-08-15T08:17:02.782Z" }, + { url = "https://files.pythonhosted.org/packages/bf/eb/239c84503cc9e3ba6eb34686a24bc66e84f3924efdd7e38e751a19f6bc10/charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3d27167433c0d5f18dc850f07d0b3816221984fecdc405d6c157a6f0b8f8e9e6", size = 263417, upload-time = "2026-08-15T08:17:04.216Z" }, + { url = "https://files.pythonhosted.org/packages/37/ab/4e4510e1e288478e2c8333131d1c1382382ba8cd2165053c79e39d1da961/charset_normalizer-3.5.1-cp311-cp311-win32.whl", hash = "sha256:ac00177c4831ffa650f8609e4bdddd5fe09c03b1c0c47acece7e6ea20421598b", size = 181774, upload-time = "2026-08-15T08:17:05.58Z" }, + { url = "https://files.pythonhosted.org/packages/e3/57/32f0ccea59e8612057c61d6fd22ef2cb63cca93c9fe594094919696ac170/charset_normalizer-3.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:f9b1e28d0e8dbfa858abdba91d6b547beaf2df1a59bec6da6faae7b96a4991a9", size = 206653, upload-time = "2026-08-15T08:17:07.075Z" }, + { url = "https://files.pythonhosted.org/packages/17/d4/b65c433fc521e58b5f54293982a5e51c05cb5f2dd3f1c7a6acb65b75324e/charset_normalizer-3.5.1-cp311-cp311-win_arm64.whl", hash = "sha256:ae31a1a1db2ee6cc2942fccaf695c934bc7f3db9f2133a3fef1f367cf1a4ab10", size = 185630, upload-time = "2026-08-15T08:17:08.502Z" }, + { url = "https://files.pythonhosted.org/packages/30/27/78873dc8b6a56357517b74b6bb9568b80450e7bb4f6ef7e3fa9d22aa0bd7/charset_normalizer-3.5.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5b6d1386bf0096d26d3a863dc0a487a5b4eb9aa93cf5ba69683d29dde6b9d60f", size = 344456, upload-time = "2026-08-15T08:17:10.072Z" }, + { url = "https://files.pythonhosted.org/packages/9a/4c/be49ada26b1f0232d57aa89bbebf997a5cc2332a5616b6eca26ff680044d/charset_normalizer-3.5.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4582c27e8c889d64811987b5967fbd3ae0c823fe1fd933b543d55ac20bb475fa", size = 238530, upload-time = "2026-08-15T08:17:11.563Z" }, + { url = "https://files.pythonhosted.org/packages/76/84/6f1290fa07ae6978d3960caa3eb1b8019bf9284ab7c2297b00c099ef4250/charset_normalizer-3.5.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:1d1c7a53a6c2103925cdd6d7229f8c567379f211c869793df679f2e9f738c369", size = 230200, upload-time = "2026-08-15T08:17:12.919Z" }, + { url = "https://files.pythonhosted.org/packages/e7/a0/47b18adeed31c8f16ba9700f32c1b18594cfa09f47eb672a488c273c22bf/charset_normalizer-3.5.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e6621fb2a4988d6e53eedc455e5903e2679f3967b8acb3d639f1b63c14a2e893", size = 262222, upload-time = "2026-08-15T08:17:14.571Z" }, + { url = "https://files.pythonhosted.org/packages/38/fe/341861ac118dae06f3ec0eb487488af52128f2ef2faf0b11003944d22259/charset_normalizer-3.5.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7c0c10730342b0c9b35dd1d619beb8214e520bd96a1f870f452680b238aab3e0", size = 258951, upload-time = "2026-08-15T08:17:16.158Z" }, + { url = "https://files.pythonhosted.org/packages/6f/89/bb5108dc6c3651dca963f2b0a3ba19bbcb370c94e1b6d3e0e844a58e6dca/charset_normalizer-3.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b9af956078716df40d985fb0dfeb2c2120c5ca92ba4ff4b388acfd01cdc14d08", size = 248801, upload-time = "2026-08-15T08:17:17.683Z" }, + { url = "https://files.pythonhosted.org/packages/b1/ba/ef83ae3aca816393decfa3530976f38a79812d707b80b580ac33b83f9877/charset_normalizer-3.5.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f9f8405c2c758532c74fed975dbee57be1f31a6e865c031870c79a6ed3212ada", size = 244070, upload-time = "2026-08-15T08:17:19.191Z" }, + { url = "https://files.pythonhosted.org/packages/f6/0b/c5292a2462d69b7378ea89793bbb5b2b6fcf6f7dd6d1667f9619094ad553/charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:96fef3e886d6a9874b14f27fc193fbdc69d5d8035783d86aa4e1cea594e695f9", size = 240110, upload-time = "2026-08-15T08:17:20.547Z" }, + { url = "https://files.pythonhosted.org/packages/46/22/111e5be3b740d5c2a5bfcedb3d237b6591e5c2e82ae9d6ffcb121fe0909c/charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5d8531a6569d025f68e2321e7638fb7978f23db58e5f69f56913837aae03816e", size = 232836, upload-time = "2026-08-15T08:17:21.895Z" }, + { url = "https://files.pythonhosted.org/packages/f9/d2/d2aad6fe0dbb44b194bf3becb60f5a0ac48446ade999a47fe7bb41eb09a7/charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:aae2ee51122d3ae968a3837d97dc24a0aeebb0dea23694422cd172bd30017cd6", size = 262712, upload-time = "2026-08-15T08:17:23.727Z" }, + { url = "https://files.pythonhosted.org/packages/35/5a/337e4663a5eae6de99db940ee8066d4145caafb61327db62deda15313cce/charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:7235dc28fc6dd9d832ac7c7bce95367dedb85929f17368a0c2bee1e080b9acbf", size = 242977, upload-time = "2026-08-15T08:17:25.157Z" }, + { url = "https://files.pythonhosted.org/packages/ca/85/f82f8a92e31c7519410e2e1afdc630f28ec47490ce2c09a11c1a43cbb459/charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4abdc5f9ad448c1ecbfae2974b820535d6bc6e7eef63babbab3d81cf46968c71", size = 260207, upload-time = "2026-08-15T08:17:26.602Z" }, + { url = "https://files.pythonhosted.org/packages/b7/52/643d11ffd60e9ac2fd1fb87e167a19285b9eefeff4a40e63c87cbfbeab36/charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ba501e667c17d8411f98e67a022d9604ef179aff0e459b7e292c796837c13573", size = 250562, upload-time = "2026-08-15T08:17:27.971Z" }, + { url = "https://files.pythonhosted.org/packages/62/16/46556278c2168d12df9da7fede5dc6fc70e60301b26a82bbeec238c9cfe3/charset_normalizer-3.5.1-cp312-cp312-win32.whl", hash = "sha256:cfa1c0cc3a8f9f53f1243a5a99ac36fd003880199383b37672e86ddda9cb07e2", size = 178507, upload-time = "2026-08-15T08:17:29.277Z" }, + { url = "https://files.pythonhosted.org/packages/9d/7a/4c6c298171e6b3e745633180ff59350fc0ca0db1ffd28df1e369e0579f71/charset_normalizer-3.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:3617ac3cfd8b9888f145ad89dd6e692285834b0201c6074a5eeaad3fd4d668c2", size = 200551, upload-time = "2026-08-15T08:17:30.668Z" }, + { url = "https://files.pythonhosted.org/packages/cd/d7/eb95a042f0dd22e304b0b6472b154f3546a1a039a9ee89ccb2a7f61591fc/charset_normalizer-3.5.1-cp312-cp312-win_arm64.whl", hash = "sha256:88e85ab89cb822c1e635f51d6d32e488f94e002e70e2f492bdb8b945543f345a", size = 180700, upload-time = "2026-08-15T08:17:32.028Z" }, + { url = "https://files.pythonhosted.org/packages/bc/61/2cb6ad133dbbb449fa2d37ccae973232f4827e799af258d15e589a3d1e9e/charset_normalizer-3.5.1-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:4f298bdadb8f0b9e5672877f647d1be9373ef5320c9e2f049795e26cad28b6a9", size = 211584, upload-time = "2026-08-15T08:17:33.597Z" }, + { url = "https://files.pythonhosted.org/packages/18/57/a305c968be1ca13f3dd1b32f445877e97addf55d80b65c7cb35fac82b777/charset_normalizer-3.5.1-cp313-cp313-android_24_x86_64.whl", hash = "sha256:88ca277405c2d3b71c4e1c2ee0e7966e807bcba86a69d11e19ba199d18ae4491", size = 223359, upload-time = "2026-08-15T08:17:35.022Z" }, + { url = "https://files.pythonhosted.org/packages/09/0a/d3646670292ce8d8f8cc11ac067d44885e697a5591f57a9221128da5e7b3/charset_normalizer-3.5.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:9362dd90aa7dab48c0054a21187791ccf05473f7dba5d92b8033ae62164675e7", size = 194464, upload-time = "2026-08-15T08:17:36.452Z" }, + { url = "https://files.pythonhosted.org/packages/de/93/d51ec556e01042fed6f993ea859311bc7917b466684182fbbceb6ca24762/charset_normalizer-3.5.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:977cdbd483a9cff38179bea4fd754289a6f2195c7abd414aba85410b3e66cc5e", size = 197676, upload-time = "2026-08-15T08:17:37.819Z" }, + { url = "https://files.pythonhosted.org/packages/a4/a0/562247944386f7d4ef94467e84876600cc1e0f1b93239aaa9213d2bc3cbd/charset_normalizer-3.5.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e90251c0c7bdd54a100a0dce3c07b7e637278c93af29dbf78ebb89a58c4bac7d", size = 340473, upload-time = "2026-08-15T08:17:39.303Z" }, + { url = "https://files.pythonhosted.org/packages/31/e7/1d994be1b93d41e9502b8b0460eaa88a1dd8df335df415db87d6c3e91ab2/charset_normalizer-3.5.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94d78ecec2605a8d0398b0f365d5f12a63248438516f5dac536a5eff7337df4a", size = 240156, upload-time = "2026-08-15T08:17:40.66Z" }, + { url = "https://files.pythonhosted.org/packages/09/53/27923ce5cc6cbccb832037b27dca98882d9c53e9b69e866bbbef4aae7fc8/charset_normalizer-3.5.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d59b75732e9b6f27388e10c14b0259cc5f2e48c78627d185e6a177b58ad3cffe", size = 228246, upload-time = "2026-08-15T08:17:42.003Z" }, + { url = "https://files.pythonhosted.org/packages/ce/48/5a97e84d63af1d55c07439cb80e56d99a8efb4295700eb4e18c0d1615d2c/charset_normalizer-3.5.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0d929fc574b4d6fd9e7c0f5c2ede8716a41911923aa7fa5fce38e0818aa4a1ac", size = 263660, upload-time = "2026-08-15T08:17:43.627Z" }, + { url = "https://files.pythonhosted.org/packages/7a/c2/071575791dcc88316c0a9a65ce38897a82e4cfe4a325f0f7fe1b1ac47bcf/charset_normalizer-3.5.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:394fea06235c8543390050ed5f529187074b029fb027213f6c46ac11ab5d950e", size = 260354, upload-time = "2026-08-15T08:17:45.094Z" }, + { url = "https://files.pythonhosted.org/packages/fb/af/63240b0c0248c075c2535a1f1bd992821d8251b9f173abc13329661d09e4/charset_normalizer-3.5.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62b55f6722735a6c472f88361cde6640608773d9443cebdbb51abf436a1fcdd3", size = 250638, upload-time = "2026-08-15T08:17:46.496Z" }, + { url = "https://files.pythonhosted.org/packages/4d/66/70dfad64f15be09c15ccfee81330a7e515895dbe296dd23114e9a231268a/charset_normalizer-3.5.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fa48b1b63d639f9483e0633e092f5851e2348c352f1f9bb6c8182f87884ef876", size = 244583, upload-time = "2026-08-15T08:17:47.963Z" }, + { url = "https://files.pythonhosted.org/packages/c0/24/ef36367d38b9ddd4bccbf72888c342e8de1f5ae506fa0b2dcf970e2732a1/charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c71fb0d56c920c269cd3e2e3fe7c610e3f1fdb21a6ce60efa6430ff63676cea6", size = 242038, upload-time = "2026-08-15T08:17:49.481Z" }, + { url = "https://files.pythonhosted.org/packages/db/ab/55e683ba0fff2e43adafc10daa3001eac90fdaa419a97227d5a7067eedde/charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:485a0d363cafefcd2538a73c7c838daa2035f09b2c9f9b5e3133f80c6aeb84c2", size = 233677, upload-time = "2026-08-15T08:17:50.845Z" }, + { url = "https://files.pythonhosted.org/packages/bd/67/0f40eaf8d1b6e7cf15e82382a2965efaca787fc1c2794b7021d37aaf5036/charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c0ea61a470e070686aa30892fed79e297d2c8d0ab46b8bcdf027d38c51da591", size = 264491, upload-time = "2026-08-15T08:17:52.61Z" }, + { url = "https://files.pythonhosted.org/packages/5c/64/12b4c2a11ee8df4fcc518c78b0d93e3a92bd3d5253d1617ce74ff0e8c7ef/charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:90b7481fb62fbe172c558bc6fd1c4c98d82004a54a7551f20e11ac9bf0b8708c", size = 245196, upload-time = "2026-08-15T08:17:54.023Z" }, + { url = "https://files.pythonhosted.org/packages/37/2e/651d910af6d0fba325eee1cda37ec5443462ed25360e666c144166eb6091/charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:35fe081843b35aad20ffeccec3eeffbe637b15d14f3fb22cc1b59cd8ec17e93c", size = 261660, upload-time = "2026-08-15T08:17:55.491Z" }, + { url = "https://files.pythonhosted.org/packages/90/c6/b09e05e6db7f64338e0dc067c79577b1138da86c1e38369096851d96be88/charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fd0350afdc3aabd5576f60ea109228bd5538139713c7b094c5cd27c73a98bc6f", size = 252618, upload-time = "2026-08-15T08:17:57.025Z" }, + { url = "https://files.pythonhosted.org/packages/76/4e/362d4f9fdcdf5556fb2aa3ce7d4a58ebce03ed1ff03aa1d9aca8d02f13f3/charset_normalizer-3.5.1-cp313-cp313-pyemscripten_2025_0_wasm32.whl", hash = "sha256:9d9a0dc7cbe9bec24c3f767c9122c41fe5a1bc43f47cd099d00d393e09769de4", size = 140362, upload-time = "2026-08-15T08:17:58.425Z" }, + { url = "https://files.pythonhosted.org/packages/b4/d4/703be739b26acce318bd29eb3b25b7209e1b1f527f9eae3d1f1f01fdde2b/charset_normalizer-3.5.1-cp313-cp313-win32.whl", hash = "sha256:d63600d620ad0064c3a748b950ac5ea38a80190e5498532efefa4b7b3f1da1f3", size = 177755, upload-time = "2026-08-15T08:18:00.037Z" }, + { url = "https://files.pythonhosted.org/packages/8a/33/56d97ade41c8db611e727168c52ae46c9224c362ec28d4b65d7e9869e8da/charset_normalizer-3.5.1-cp313-cp313-win_amd64.whl", hash = "sha256:aea996a6aba25260827c9ea511d1addfde2da9eb686ac961838509086188b7e6", size = 199295, upload-time = "2026-08-15T08:18:01.506Z" }, + { url = "https://files.pythonhosted.org/packages/5b/75/5b20dd1e6573a01a08158fe104104fa2c8abf941745596954185726cd46c/charset_normalizer-3.5.1-cp313-cp313-win_arm64.whl", hash = "sha256:fd0a274c0e5f9a21565cd9d3dd749b61f96b7aa1e20a93aa1ba4029518f2e5c0", size = 179856, upload-time = "2026-08-15T08:18:02.929Z" }, + { url = "https://files.pythonhosted.org/packages/29/cd/2b812ce5e888f1ce69a5350281e58aab07ae64a958ecae8912f30865718e/charset_normalizer-3.5.1-cp314-cp314-android_24_arm64_v8a.whl", hash = "sha256:774d157f112367ff4abd29019f38f023c24e00e56edc7829c20e358a5a913ad8", size = 212318, upload-time = "2026-08-15T08:18:04.403Z" }, + { url = "https://files.pythonhosted.org/packages/9e/4a/a6ee107430768a5334e6d63f31f148a04a1a491ef161a1ac9415a73f2fa8/charset_normalizer-3.5.1-cp314-cp314-android_24_x86_64.whl", hash = "sha256:26422d45fd13551cf564c58932f7d72b4f58b93b0fcf18c35ba6be12b46bb102", size = 224897, upload-time = "2026-08-15T08:18:05.997Z" }, + { url = "https://files.pythonhosted.org/packages/c3/d9/35ae3f64f29d0179c35c3baefe575904df2913dde519129c7f75995a2b1d/charset_normalizer-3.5.1-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:09a7bba9f739468c8e78c36a75c33768e53cb1959fc638f510454c14683f00d5", size = 194848, upload-time = "2026-08-15T08:18:07.397Z" }, + { url = "https://files.pythonhosted.org/packages/74/76/f2fc7380f056cc273a53af37f50d08ad54b2c59f61078f31432edcf1c2bd/charset_normalizer-3.5.1-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:4c9548dc78002099910abaebc0a72ac58b7d30931869e0351c09b507dff4ece3", size = 198163, upload-time = "2026-08-15T08:18:08.989Z" }, + { url = "https://files.pythonhosted.org/packages/e9/40/095ce62fa078483cccc1fa2b36e6bc9580b85422a20ee9f925341c50e44f/charset_normalizer-3.5.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c428c6c31eb5f4277d7f8eccaf767fbd548ddd5ce3c8b4f4cbbfab3d96b5904c", size = 341823, upload-time = "2026-08-15T08:18:10.458Z" }, + { url = "https://files.pythonhosted.org/packages/f1/5a/0e58b1c04a1596e0256f407274a92d5fb2ee21324409d1fab1da48a65b5b/charset_normalizer-3.5.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2f06b7eae9dbe77fe1d644ca244dad508de8d302870a43f3c559b521270938a0", size = 242458, upload-time = "2026-08-15T08:18:11.989Z" }, + { url = "https://files.pythonhosted.org/packages/22/95/b4618ce912e6db0b1aae89ba788e38e8a7eba0f3025cc66e8c0699f977b2/charset_normalizer-3.5.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6b7430cf5728e68f6c462254009a6ef4086e1bea43cf2f57aa9c55fb4f50ff96", size = 226717, upload-time = "2026-08-15T08:18:13.401Z" }, + { url = "https://files.pythonhosted.org/packages/8a/76/c681192bbda3d55356db5dadd64381d5202b37c6b598fcda5282e88b5d3d/charset_normalizer-3.5.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab743e9bc90c1f73552ec33e10e3331315acd2c397b36065b591b0181de533cc", size = 266111, upload-time = "2026-08-15T08:18:14.961Z" }, + { url = "https://files.pythonhosted.org/packages/88/be/55127bfca72c0cff6c022488d140d7c5b04c771e3b72e9bdb4836d54979d/charset_normalizer-3.5.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f6f7deae3feb4edfa2efaf7c574fe88cbf055038a6abdb40188e4fff66d5699f", size = 263128, upload-time = "2026-08-15T08:18:16.515Z" }, + { url = "https://files.pythonhosted.org/packages/e0/91/39c3af510b0aa32bbda03374259200f28430febfd1bf5e511fe765282ce5/charset_normalizer-3.5.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15f024313246a4ed976c60f440bb8d257815513a681d212ff74fd46f7d715a90", size = 251240, upload-time = "2026-08-15T08:18:18.127Z" }, + { url = "https://files.pythonhosted.org/packages/1c/a5/cbe418bbc6ecdfc3e05a0116002897c4b403a5e838d697e64c78e9f0190d/charset_normalizer-3.5.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:823f82903d189af463d7df250ef1f7f696f3cee08cc8d91deb565e8d425f6506", size = 245282, upload-time = "2026-08-15T08:18:19.625Z" }, + { url = "https://files.pythonhosted.org/packages/cc/a4/689bb42e8e7cd492f3cb64907c6bc00ad247ec9a3628cd3f8eed126e8ae1/charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:01e93745f7f219b703b60ba7afead36cfc4242782be5af484673fc500df12da5", size = 244597, upload-time = "2026-08-15T08:18:21.121Z" }, + { url = "https://files.pythonhosted.org/packages/c1/ce/9962938e179cf9f699d3f1e7b3114b5d7642dee6a893745229f9dd04f274/charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:329fc3ccb63ad22d867d84c2adea759a64079a37ba4a343433b02c7a2816871e", size = 231376, upload-time = "2026-08-15T08:18:22.57Z" }, + { url = "https://files.pythonhosted.org/packages/85/54/46000450ada53bd9eac5429a2c8c54cd2d9b39c0c255f229aea9af0948a5/charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:bb57753e36e4855b8ca375069482250a6246372331a3e4f3407eaebb007443f5", size = 266715, upload-time = "2026-08-15T08:18:24.235Z" }, + { url = "https://files.pythonhosted.org/packages/3d/bb/618749d70f792b44252a777bf89bfb86823b9bbc1ea13fe8ce759b07f38a/charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:fce8cbd4997efeb450bd298b54f755dcdff18d496f7a5ddbb4867c6d7c88fdc3", size = 245848, upload-time = "2026-08-15T08:18:25.726Z" }, + { url = "https://files.pythonhosted.org/packages/7e/3f/ffb64458527c7668031d5eb095d978de561958dc9f5b53f8e488a533e603/charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:6c9cdde8becb25a7fde49924511aa2644d6f8081cc8df8e9452724303348d8e3", size = 264521, upload-time = "2026-08-15T08:18:27.193Z" }, + { url = "https://files.pythonhosted.org/packages/4f/ab/74a55fd803916a35ac461daf002708191aac19b546b80dc8cabfedc63d98/charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9ac4444d8d4fd4c4bd08bf451ed3167aa9e7ec6cdb41b648794f1d1103652e36", size = 253054, upload-time = "2026-08-15T08:18:28.568Z" }, + { url = "https://files.pythonhosted.org/packages/a0/2a/6a9034b7d3c60b17499afb482df5878bf9fa20b50cc3887d5ef017a833db/charset_normalizer-3.5.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:f03ac127268b43ef4fe9e6ab6794a6794b49485a0cc0c1db79876d2f33f75bc7", size = 140580, upload-time = "2026-08-15T08:18:30.214Z" }, + { url = "https://files.pythonhosted.org/packages/f3/46/1d362e1a00d035d66b9869e1281eee115907f7e390a16a07824ab5737360/charset_normalizer-3.5.1-cp314-cp314-win32.whl", hash = "sha256:1f5883d77fd409a261abb5dc8ccbe335720d798b1de4abb3b1d47ccbbc76b53b", size = 180325, upload-time = "2026-08-15T08:18:31.877Z" }, + { url = "https://files.pythonhosted.org/packages/7a/7c/4938c329b6a9d446f6a59aa2092ff7118f274209b5ed0e26893d1d30a63c/charset_normalizer-3.5.1-cp314-cp314-win_amd64.whl", hash = "sha256:c658c50ac0c98cd755a2dd50b7977d3bca7df401dcc47fbdfa87db53ef7d4e8b", size = 204175, upload-time = "2026-08-15T08:18:33.466Z" }, + { url = "https://files.pythonhosted.org/packages/ac/33/eeb384dbd8dec570661354592f4f2e1b2fcc92585624d146a000caf53841/charset_normalizer-3.5.1-cp314-cp314-win_arm64.whl", hash = "sha256:4bea7f8ebe90bbd7f0e4a2de42ca6924ba23e3e76418c408ff82f1d46fabd687", size = 184123, upload-time = "2026-08-15T08:18:34.913Z" }, + { url = "https://files.pythonhosted.org/packages/1c/6c/c73fa9d5a85f6ab05395de61c5f6984e0a9ff40bb5ff888d46dff02526c6/charset_normalizer-3.5.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:fbc597639158fd7c14d55e808718848319540f51b0e6746e3eefa59723a4a348", size = 381682, upload-time = "2026-08-15T08:18:36.349Z" }, + { url = "https://files.pythonhosted.org/packages/30/c7/63565f860921457feba93bae6c86fb7746deb4cffeed2f375cb845318146/charset_normalizer-3.5.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e71c909f353863b2b89c83de2ebed71ea6d0df8a6ef65a128193c5e650766bef", size = 240826, upload-time = "2026-08-15T08:18:37.887Z" }, + { url = "https://files.pythonhosted.org/packages/06/ae/7ae8807410dfa33f8e6f1715740adeaafa8a816cc4cb33508f54b1f7c896/charset_normalizer-3.5.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7ac76cf9afd34929d76eb7fcb63be476a4853d8a96f0dcf2d0db68a0cbdf9885", size = 227861, upload-time = "2026-08-15T08:18:39.315Z" }, + { url = "https://files.pythonhosted.org/packages/e9/a3/887c1642f0da26000b0e0652d91071113c0e72cea33952e225cf589f49a9/charset_normalizer-3.5.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a3a370082ce34d0612f421e15fe011c53bb1feff21a26d06ad4fb244dab5a375", size = 260758, upload-time = "2026-08-15T08:18:40.88Z" }, + { url = "https://files.pythonhosted.org/packages/3e/11/e6f5b9a3d0e55b0ef7505cd3765cdd48f22db89994c947b316f52f801fd8/charset_normalizer-3.5.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:256dd4d85d9e4dc595e2bc983c980e73f62ddeb3165c58b4c3dfe78c5c8548c1", size = 259950, upload-time = "2026-08-15T08:18:42.351Z" }, + { url = "https://files.pythonhosted.org/packages/1b/ee/e4e10a94d51cd1ee638aa7e00b65399e6b2a4e8376ab6d2eac9f95586671/charset_normalizer-3.5.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:58d4aa13a59c969dbfdf9e6a9560e242cbfd9e8a8f50c2747714df1a423adf65", size = 249329, upload-time = "2026-08-15T08:18:43.914Z" }, + { url = "https://files.pythonhosted.org/packages/c4/25/d5f4198819e6059735a84e8d0bfb72dc33976da67b97adcd3fb5a5e07ec6/charset_normalizer-3.5.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0c6dfb5ca6723eeed15aa8e564a014d69fcb8812f94eef11fe3631e0508199f5", size = 243137, upload-time = "2026-08-15T08:18:45.368Z" }, + { url = "https://files.pythonhosted.org/packages/a5/e9/e925ca7569cf9fb9701fd82503fee73eea5268fdb856bdd64947092d3daa/charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c010f5581d9c612804cc59fcf7b524b707fbcb72828551237ab545bb5c7034af", size = 242820, upload-time = "2026-08-15T08:18:46.842Z" }, + { url = "https://files.pythonhosted.org/packages/34/17/672c251a888ed2aebcdd2fe830ad0104e25ff83c43f5c4f9c15e9fc6853c/charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:52ec005752a56ae79547a05c0139ca2501a0c866390b6115008456b9f0e7cde1", size = 230504, upload-time = "2026-08-15T08:18:48.353Z" }, + { url = "https://files.pythonhosted.org/packages/3f/fc/f6a85abebd42ce4da2f1db0aa56cc6a0df1995e318b3875d14401b8381d1/charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:2bced4061f000f7187254a02ad3433ae17eaf991747ceea2f478422590a5bba9", size = 263087, upload-time = "2026-08-15T08:18:49.859Z" }, + { url = "https://files.pythonhosted.org/packages/98/66/7c42677e739ba66746b297e2046918d793078094dc239e1e72768cffccc6/charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:9eea3ab2597a5e65fe65296e2d6a84570845a6b55532d90333d740d48bbc850a", size = 243269, upload-time = "2026-08-15T08:18:51.601Z" }, + { url = "https://files.pythonhosted.org/packages/de/d8/a50b79237f417af10f8c2a501ce8d1ca87829a22e69117891ca4ba20a69e/charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:496846868fea80e479324862fa877f02411f2fd0f83b79ccee2607aa68b2a032", size = 258766, upload-time = "2026-08-15T08:18:53.23Z" }, + { url = "https://files.pythonhosted.org/packages/2e/1d/0fc91aeaeb3c83b748f532399ce67cf84604b48297405d740000f7a9e786/charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:85d5855daafc240cc045c026d7a15fd198a09b0fc8ff6f5ecbb5297b509cb11e", size = 250814, upload-time = "2026-08-15T08:18:54.768Z" }, + { url = "https://files.pythonhosted.org/packages/ae/10/3d8c777cf9024615295aa1b808324ad5b4a77855869c00824bad74ffaf8a/charset_normalizer-3.5.1-cp314-cp314t-win32.whl", hash = "sha256:58d3e12c88e0950bca850ae1f7c256055c097639c2edb9eb123af9807d8b15e4", size = 191074, upload-time = "2026-08-15T08:18:56.305Z" }, + { url = "https://files.pythonhosted.org/packages/4d/81/ae557d3c44d1a1d688696d60563413a0866a91b7ebc50f20df838be3d8c8/charset_normalizer-3.5.1-cp314-cp314t-win_amd64.whl", hash = "sha256:acaf604462bf330b0d07e7a07c1d6e4adac79e5fb13e9c5140590542cafacc00", size = 216476, upload-time = "2026-08-15T08:18:57.889Z" }, + { url = "https://files.pythonhosted.org/packages/27/e9/61c01fb8b804692569c036b3fc50495814502dcf13a60649c6055390b02c/charset_normalizer-3.5.1-cp314-cp314t-win_arm64.whl", hash = "sha256:fdb8a068947befafba9952162645dc2fecaeb400e64584829ed5e9b2fbe21a7f", size = 194115, upload-time = "2026-08-15T08:18:59.418Z" }, + { url = "https://files.pythonhosted.org/packages/4a/4e/8544831ef59d8f27ce92c80871380fdacc8076a8a56ed62f82e54f991333/charset_normalizer-3.5.1-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:9085f87b0e38a2b92b8923059b4e8789fe40d9279712d15dcc670048d77079af", size = 342048, upload-time = "2026-08-15T08:19:01.054Z" }, + { url = "https://files.pythonhosted.org/packages/7f/a6/e3b46852424246065355644f4fb6dbccc0239a42a2eee27ecfc8957f0bcd/charset_normalizer-3.5.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2679de311c7946dde5d3b6f44941844133ff5c7cb86099c0061ab1e8901c20a8", size = 242997, upload-time = "2026-08-15T08:19:02.492Z" }, + { url = "https://files.pythonhosted.org/packages/03/3b/0cc9a26777334ab2f2e3089b948bbf4e4fe72ea70b897715ef6415043ec8/charset_normalizer-3.5.1-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:baf3775a2635e5a11fbd5e4e64ee69c7e86875d224a5c72aca4c141064589a90", size = 237014, upload-time = "2026-08-15T08:19:03.943Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c2/027335f0aa337a2a2e121bac1ad88c4f02ba6053ea0926802784f3db11af/charset_normalizer-3.5.1-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ac8c94b6539074e0f40899301273ac8402b9b3e01c7b7ba269ff30340aaaf20", size = 266174, upload-time = "2026-08-15T08:19:05.598Z" }, + { url = "https://files.pythonhosted.org/packages/86/d3/e367787febe4e74769dec0f406f2c3c8d1b955fce5aee1fd0f94e8367a45/charset_normalizer-3.5.1-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8fe532b3c966d1fb794e0698e4589d0444017ae77fc0b31edea13c0e35bcc449", size = 263361, upload-time = "2026-08-15T08:19:07.251Z" }, + { url = "https://files.pythonhosted.org/packages/af/3d/391b193eb9f3e84b02f9314088c386debdc0debee843535aaea2e2c6715d/charset_normalizer-3.5.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5c84bec0ab5ae0c64bfe73a7d2adcb5ce73b467523fc27fd6a28ab2aa6cbe35a", size = 252143, upload-time = "2026-08-15T08:19:08.816Z" }, + { url = "https://files.pythonhosted.org/packages/2e/57/de221f1745a90d418199761967e2776bfe2c275a1194220985e8c1d37833/charset_normalizer-3.5.1-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:854066be00447fa8de2ccbbe893e2ffc4b123ef16d897af794c1e18bd4a714b0", size = 252086, upload-time = "2026-08-15T08:19:10.255Z" }, + { url = "https://files.pythonhosted.org/packages/c8/e3/d119f86a01f9331e8186175f24873b1d74a7ee9e2e4b4d68f9947dae5afd/charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:21b82d8082f6f5e7f456ef0bd16323d08de1266efbfeb476e64b2a91d1471a4e", size = 245231, upload-time = "2026-08-15T08:19:11.807Z" }, + { url = "https://files.pythonhosted.org/packages/26/de/d8e48c135ae480879539cdb179c8d3b50c7879497d75dd899b5763b69cee/charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_armv7l.whl", hash = "sha256:838648accb3a7fd9803fd45c87bce8509648eb0c11bc34e216141300977244f2", size = 241546, upload-time = "2026-08-15T08:19:13.416Z" }, + { url = "https://files.pythonhosted.org/packages/67/c4/217755fd1abc50d326c252922cd642002758095a81ff45010337b8b3ef65/charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:195ce897c6153c0700078142cf8efe3e6454ca4cf4357499e4078dfd83396626", size = 267033, upload-time = "2026-08-15T08:19:14.981Z" }, + { url = "https://files.pythonhosted.org/packages/b8/d7/34d8e404e358d2adcc5a228c2134643af00104c8fb0bf525f3688d756f05/charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:978eab16f55b4ab2c2a745be9a0a840bf8f09a7f227d9c76eb30214d078865a5", size = 252045, upload-time = "2026-08-15T08:19:16.618Z" }, + { url = "https://files.pythonhosted.org/packages/5e/fa/40414471acf0aa0692ca77305aa00e434fcd8288f0941c93c30e9a5f8f2f/charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:cc0329df4caaceb950d2f580b5ac716a377f7059624a0bafaeaf8a218c6ed774", size = 264866, upload-time = "2026-08-15T08:19:18.101Z" }, + { url = "https://files.pythonhosted.org/packages/32/90/fcc850bae791abd2e0c041847f13e270aa08692a79f3e00de6d2dce1cb50/charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:687c9ca3035544b113bea2055e180af96fb63c0c476e22a9180f51925186e7b7", size = 253932, upload-time = "2026-08-15T08:19:19.734Z" }, + { url = "https://files.pythonhosted.org/packages/af/af/53afe99068b3c10b4cbae592a52ef72a7c92c0188440e83ee3a078fd8f75/charset_normalizer-3.5.1-cp315-cp315-win32.whl", hash = "sha256:706bfd38730a5ac7a365793269a00f4e988178cec121391f4248d84ad8c972e9", size = 180320, upload-time = "2026-08-15T08:19:21.37Z" }, + { url = "https://files.pythonhosted.org/packages/c9/bc/f46a132041b29e4a8779ed712d3df1bf112e94ca8de58b66d7ec2c0cf8b9/charset_normalizer-3.5.1-cp315-cp315-win_amd64.whl", hash = "sha256:92caef967d287a407085d61176fce4012b1dd62daed4eb6d5ceb26d3d2538712", size = 204174, upload-time = "2026-08-15T08:19:23.088Z" }, + { url = "https://files.pythonhosted.org/packages/a1/5d/9ed554480eda8e447b673648628fdc29574d23dbad01fe11837adedd1cae/charset_normalizer-3.5.1-cp315-cp315-win_arm64.whl", hash = "sha256:5fc45d653ea8c9a20479167e11d4a0f8cb2fa3470737ab6f9c827532313187b7", size = 184126, upload-time = "2026-08-15T08:19:24.471Z" }, + { url = "https://files.pythonhosted.org/packages/3b/32/9b8929bf384061ee1fe5d9c27c6f9776d3d824039ad4e14c88ec00c7808e/charset_normalizer-3.5.1-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:59171c6e45bf07d0d5cab3b0bf81d945035530f6873398b3b531c31184d46663", size = 381441, upload-time = "2026-08-15T08:19:26.038Z" }, + { url = "https://files.pythonhosted.org/packages/96/10/e9aa7923d3ddac652c99a1c5f7be494e737e151566a44abe018daf757f2c/charset_normalizer-3.5.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9dbdd9205662134957cf0c324f639bdc5031c0ca056e2369e238db75187c0f11", size = 241742, upload-time = "2026-08-15T08:19:27.532Z" }, + { url = "https://files.pythonhosted.org/packages/28/53/a2d249ebddf47b889a100c0bdcb61a2f9dbb8bc24ef325cc062e4f476877/charset_normalizer-3.5.1-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e4b018dc5a0eee4676e38fe84a47a427816c590b93b55d9025274ec4d6ffc2dc", size = 235298, upload-time = "2026-08-15T08:19:29.274Z" }, + { url = "https://files.pythonhosted.org/packages/7d/07/469f78af590f7d5cd48e20d8dbfa3d66deeff9ba37768c04d886b5afd45c/charset_normalizer-3.5.1-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ced3fdd71aaa83ce593746c2edb42b7a59cb4c19c8b5c407781c72e493aae55a", size = 262500, upload-time = "2026-08-15T08:19:30.955Z" }, + { url = "https://files.pythonhosted.org/packages/55/66/3bb56a47f7dcba014055b1a1d33c6f08bbe9c1e74dba154cfa25f90ae885/charset_normalizer-3.5.1-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:19a3dd5aa73cef1c99687c4fc57db016a9c17104ae1185da88ba566a5d3bebe4", size = 258888, upload-time = "2026-08-15T08:19:32.458Z" }, + { url = "https://files.pythonhosted.org/packages/ff/c1/2adc2800903fb013210349313b710a5376856578d9e33e6b9a1d8b36714a/charset_normalizer-3.5.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cc5d36d96478aa9c60654bd932525bf32964c62a7281eafdf16d85003a8d6004", size = 250243, upload-time = "2026-08-15T08:19:33.94Z" }, + { url = "https://files.pythonhosted.org/packages/95/b5/a18d0dd1157ab655cc2cb14a545f4a4784bbad70ab3502412e36097502d9/charset_normalizer-3.5.1-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:04368edf83514385ffc3e1cfd4546e595f4f1272dd23ba437a93a9cc3741d47b", size = 249871, upload-time = "2026-08-15T08:19:35.413Z" }, + { url = "https://files.pythonhosted.org/packages/ad/c3/525f508cd1e58d0450ac55ed40ac75bc3a97482c59def5278456a5fbf03c/charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:9b5db6052055d34d41230fb78d7c439c23dc536a9896f6cb039e8dd92cfc1263", size = 243580, upload-time = "2026-08-15T08:19:36.886Z" }, + { url = "https://files.pythonhosted.org/packages/7c/c1/49a91fe7e97c8140094ca5c64161ab623a70d9f636bf834eace14048acb5/charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_armv7l.whl", hash = "sha256:252d099029bcbea642f2a06c4ed5046bdf8b5a8150b64afa5e027e88b106e5ee", size = 239807, upload-time = "2026-08-15T08:19:38.392Z" }, + { url = "https://files.pythonhosted.org/packages/d3/58/56a48c296601274c4689b864a8e2dfb209b81dfcb39472753ce95eea662b/charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:6199d5606e2bbf2b096cf64d03f8b6790c91081d5ac866b8e7bb6422738cc60c", size = 264083, upload-time = "2026-08-15T08:19:39.856Z" }, + { url = "https://files.pythonhosted.org/packages/10/4c/dc48409274a1817ff349711d26c62aa0c597df865d4d69ef79160c859193/charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:77efcff2b23071c349402ac1066667a3d011f62398d81408c9b88ad991747c9e", size = 250317, upload-time = "2026-08-15T08:19:41.53Z" }, + { url = "https://files.pythonhosted.org/packages/81/58/d325912115caec62d6bdd77bbab5e0b7da5d234a9f20affdffcbcb530d0b/charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:a5cbd90ecf0fc62e64726917ad083b73001f0563657a87ec3c0b504e277dc90d", size = 258173, upload-time = "2026-08-15T08:19:43.07Z" }, + { url = "https://files.pythonhosted.org/packages/34/f7/b13b1ccae2c8ec63980d13be1890eb73f8aeabbfce02a24aabc0908788f5/charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:4d26f14f041e83dd8edfd61f4cd4fa7285d31798b5bf1f28e70c367ba6c41d61", size = 251960, upload-time = "2026-08-15T08:19:44.587Z" }, + { url = "https://files.pythonhosted.org/packages/1e/25/ed3f9919c5aef8cc818be1f972f565f7610d7b2076b8ebb98839516ffc3c/charset_normalizer-3.5.1-cp315-cp315t-win32.whl", hash = "sha256:ac13b004224fb341e1e25a1ed5e19d32f57cdb2a403e01f003b46f051a550f6f", size = 191186, upload-time = "2026-08-15T08:19:46.293Z" }, + { url = "https://files.pythonhosted.org/packages/69/d5/43c2b3e9d8267092b913eb8b0603f0f71993c395632886bd37a7223f96cf/charset_normalizer-3.5.1-cp315-cp315t-win_amd64.whl", hash = "sha256:35aea775dc2bd5f54cd84a1cd2696cc3207c479cb9cf0bd346f0d343e4300ddb", size = 215947, upload-time = "2026-08-15T08:19:47.853Z" }, + { url = "https://files.pythonhosted.org/packages/a8/76/9aad3e9c8865e5e0efa9a7f6f81c37a67635a985145ecd44528a81e088ee/charset_normalizer-3.5.1-cp315-cp315t-win_arm64.whl", hash = "sha256:fb78f6e7fcd8ad785d28cd577168bc1aaee827b25bb8755638f694794ea98f0a", size = 193909, upload-time = "2026-08-15T08:19:49.383Z" }, + { url = "https://files.pythonhosted.org/packages/5b/97/fb4e82231aba271ffd775a1b4993b0defc4e3059f286ae41d9433409fe85/charset_normalizer-3.5.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:41876ee62a3dddf48ff1121ad8f0798032aa03f2fd35f21f34a4cab14f18d8d2", size = 331467, upload-time = "2026-08-15T08:19:50.959Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2f/fe3f187327aac18e2d54e9d2b08e15d27bf9b642d9e51c219f130fc34d1a/charset_normalizer-3.5.1-cp37-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a6dac12ff6b846103483683f60c5f8fee205121adc58ffd87e90a90a3af69e99", size = 253057, upload-time = "2026-08-15T08:19:52.654Z" }, + { url = "https://files.pythonhosted.org/packages/d7/c7/9e48cee5c161fe24da823b61bf381921d77cb994a0a4de148e95018c1984/charset_normalizer-3.5.1-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cee5dd7c6fb5dd52a0fe2a740f9bc6e3593f5f8b1788bde49de02086f30182b2", size = 240930, upload-time = "2026-08-15T08:19:54.163Z" }, + { url = "https://files.pythonhosted.org/packages/49/e0/716601f3cc69be7b198951150c75ead1ece33c3c8036ff6ffa46029659a0/charset_normalizer-3.5.1-cp37-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:343fb4f2821043bd87095f7b08a1a181febc8e36ac64212143bbfd0a0e1bc235", size = 230822, upload-time = "2026-08-15T08:19:55.807Z" }, + { url = "https://files.pythonhosted.org/packages/d3/05/71bfc5caa0abcc45aea1f6a4d50ac68e59605ddc7666fe8494f4cd229665/charset_normalizer-3.5.1-cp37-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ae4a097991662cd4fff0ddc74e0fe7874f82e00042fa0ea00855645ed0c79598", size = 260037, upload-time = "2026-08-15T08:19:57.312Z" }, + { url = "https://files.pythonhosted.org/packages/c3/92/de7e32ed05341e7a9c4c877c318418197b7f2d66a3b68d561bf2ac57ca3e/charset_normalizer-3.5.1-cp37-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4b599739b93b2cbeded49645ae3c8d1405c29ddfbceac1545c87a3f9580a9e96", size = 255097, upload-time = "2026-08-15T08:19:59.056Z" }, + { url = "https://files.pythonhosted.org/packages/f5/7b/ade0a122600319dfa0b1000ab0f9731c94a817904cf3c5de408c73a4ede7/charset_normalizer-3.5.1-cp37-abi3-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b39b69b347e5e47a3b5b8cfc005c68c1ba347474e3960236c4944a8ecd174962", size = 250166, upload-time = "2026-08-15T08:20:00.612Z" }, + { url = "https://files.pythonhosted.org/packages/75/9c/019fbb9f4834491a160951349b1a3714439376f66e5f7cf18b4f18f0c7aa/charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:a2028475ba855475b8b4d3cfeb4994269c967aea8b9892dfba907f4263a863a3", size = 241821, upload-time = "2026-08-15T08:20:02.321Z" }, + { url = "https://files.pythonhosted.org/packages/2b/b8/11d4840bfc99330cc7fbcc2681ee5a044553a6e77655508d8f9b2bff7b34/charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:36047af20e17097c3bb9476c2b7655f2f7aa51322c0ba58c07695bedf755a950", size = 232529, upload-time = "2026-08-15T08:20:04.008Z" }, + { url = "https://files.pythonhosted.org/packages/18/96/2b3a21492d9f65171ac75d872f5018260013d00bfa0ff70ec9f179148cbd/charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_ppc64le.whl", hash = "sha256:4c4fb141a727957c93edfe5c32a26ceb6b5f6461d67146e2d39f51e16170bea8", size = 260348, upload-time = "2026-08-15T08:20:05.877Z" }, + { url = "https://files.pythonhosted.org/packages/d6/aa/a69a2028e8bd052476c245460ab19d7de595de084dd968f2d75cd50c3e25/charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:2f293479cce755c75f1697e87c409b7ae4c555c7dfecb6e988ad13abba943031", size = 247234, upload-time = "2026-08-15T08:20:07.487Z" }, + { url = "https://files.pythonhosted.org/packages/35/8a/3d130aeabcaf3d2466af76b7b141c08d9e89c9016ab4b7cdd0f7dc2d1c62/charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_s390x.whl", hash = "sha256:3588e376b3ea2eea84976f67273d679f229e24c66dce7b82ae45aef04ff6e072", size = 256917, upload-time = "2026-08-15T08:20:09.142Z" }, + { url = "https://files.pythonhosted.org/packages/80/c2/a7379b840292d0c1ab9fbd17d1f3967aa81794dc95bc74be8999d7fedcf7/charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e199fb99720074809a7720f1c0b4d919eea8b87e88713e0f8f602f7bef543d9d", size = 254846, upload-time = "2026-08-15T08:20:10.727Z" }, + { url = "https://files.pythonhosted.org/packages/01/65/d43b714731bb2f40d4053dfa00ecfc1c5a301f8e3316c5db3a09af59fe94/charset_normalizer-3.5.1-cp37-abi3-win32.whl", hash = "sha256:dd732602a7009217f658d5863d12d79d373a4de0eebc111094bcdd3bb8e0a6cc", size = 174216, upload-time = "2026-08-15T08:20:12.334Z" }, + { url = "https://files.pythonhosted.org/packages/35/4f/b911ed898b26a09789eba9c9200c999aff6c61b4bafaf4838e56d1a1e1a3/charset_normalizer-3.5.1-cp37-abi3-win_amd64.whl", hash = "sha256:70055ff39b97c99e7ae40ea3e393fb62aa2e44dbd9b29f8d14f42fb0025c3959", size = 199764, upload-time = "2026-08-15T08:20:13.908Z" }, + { url = "https://files.pythonhosted.org/packages/f0/a7/920baf467bfd9bf689f3b318340f37aee4572a71f162bd8db51da55ba4fa/charset_normalizer-3.5.1-cp37-abi3-win_arm64.whl", hash = "sha256:87e4f41d375c0b9be2fb5251aee4b8a689169e134535aed81bf085c3b647451e", size = 287318, upload-time = "2026-08-15T08:20:15.551Z" }, + { url = "https://files.pythonhosted.org/packages/d0/91/bc145e42f93d6601b9a26f5421af2d7c3093ae6e6d03b8e583c9cebbf530/charset_normalizer-3.5.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:85de3134b5379856e323ba37c19c9256d39425f7b76a63af52b09fb4664c2e8f", size = 368830, upload-time = "2026-08-15T08:20:17.272Z" }, + { url = "https://files.pythonhosted.org/packages/58/67/62df6a907162461f372e95cbbc1bc64c7457e86abcc851feb84409a11eff/charset_normalizer-3.5.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3e5e1224c0a6a90e05843e07adfec669edebec17801c67072f51e59561d63c0b", size = 251725, upload-time = "2026-08-15T08:20:18.942Z" }, + { url = "https://files.pythonhosted.org/packages/a4/2d/64a13610fd28c80f97aff0ea5cf31cf255d220a8243ac0c78c66fd3d874d/charset_normalizer-3.5.1-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5e2d0e146dcb57034f8b97dc58d2d512cb90aba253960ce449f695fec6a82c6f", size = 241254, upload-time = "2026-08-15T08:20:20.641Z" }, + { url = "https://files.pythonhosted.org/packages/84/79/a88c181e7f4a7579696fedb34fa63844ede2ff7caf44c5f321cec57d92fb/charset_normalizer-3.5.1-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e06efa066f7dbadbc84ebc126a97c452a6451dfcf589d89d788484949e1cf795", size = 281944, upload-time = "2026-08-15T08:20:22.219Z" }, + { url = "https://files.pythonhosted.org/packages/64/60/7c5469f455f4fa65d39da9f088dffc1a586560bfb9e3279441eed78bd469/charset_normalizer-3.5.1-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:994e883d17c559cdfd38c84003c8b27d25424a1077272a17e7cd27bfe0bf57b2", size = 278350, upload-time = "2026-08-15T08:20:23.744Z" }, + { url = "https://files.pythonhosted.org/packages/9f/cf/7568d8c1c9100b7c8bab9035215a6b36b32b39bb50cabaee9389c4606887/charset_normalizer-3.5.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:789b8982559ae28dad2356519f841655756cdcd96616410590ae0b17454ee64f", size = 262670, upload-time = "2026-08-15T08:20:25.387Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ec/3a616c3806ec3f957337e6bf874ae7d64693185039edfbbf87103b8c8631/charset_normalizer-3.5.1-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a951ad59cad9145664a730d3036b40b844e74d2d3683da40111463cd3a83845d", size = 260445, upload-time = "2026-08-15T08:20:27.012Z" }, + { url = "https://files.pythonhosted.org/packages/b2/e0/489aa2a33b944077d4c2c705c245d833dc12cd571a52fc67eaf273f5373a/charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:55261ac0d2941c42f196dd576f543d87a8ee03cd6f5e30dfb4d807b2e3b9121a", size = 253263, upload-time = "2026-08-15T08:20:28.6Z" }, + { url = "https://files.pythonhosted.org/packages/d3/bc/f528dfb78d3bfdc8ee6aeea81eb22e6918d03e4442d373a79717f17de45e/charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:5ca0555312ae2fe82715cada7fac375530c2f3349e1eaa1bcb33d0283ac79a18", size = 242879, upload-time = "2026-08-15T08:20:30.186Z" }, + { url = "https://files.pythonhosted.org/packages/c0/8c/58efc6393e405a8d52b241d31dd9118352c247e4017110c3edfdb4618f0d/charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:2e9cf9253119d8e5d111f05d71626786fd3d6193817316eab1ca088cdb8593cf", size = 282086, upload-time = "2026-08-15T08:20:31.826Z" }, + { url = "https://files.pythonhosted.org/packages/02/fc/0d9ab98fa7a61394353e8acd0f5f60fc6e94a4615f574af8be0eca14a7ef/charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:433c5a81eade63b47e522303bad236f59dba55ea6951746f5558355eeed8c75d", size = 259212, upload-time = "2026-08-15T08:20:33.442Z" }, + { url = "https://files.pythonhosted.org/packages/79/71/6ee3a48a21e844e5079d8e9b2e91c641da5a7912a748e9e94c9e3ab9ce1c/charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:13e3afe97712e8887cd516e960c63f0b93122971e5b5e4b2622fe7701771e838", size = 278949, upload-time = "2026-08-15T08:20:35.133Z" }, + { url = "https://files.pythonhosted.org/packages/64/77/9ae101cb33bd9f681551e82a2b9e08eec99ff715458340931370f4228de9/charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb12fb2ba69ffa05f8695f61c69e591dc4b4a12ac3757ac8af8adb259bf56d17", size = 264513, upload-time = "2026-08-15T08:20:36.887Z" }, + { url = "https://files.pythonhosted.org/packages/d1/91/249943372195935ff7393eae5842c7dae6fd04401e512bbd69dab1aae40b/charset_normalizer-3.5.1-cp39-cp39-win32.whl", hash = "sha256:56490c595a28b1bb27dfc583e816152a9767721ef58b2c03b13f954d2f707420", size = 182431, upload-time = "2026-08-15T08:20:38.498Z" }, + { url = "https://files.pythonhosted.org/packages/53/31/7f79c671d827080d6eecd697fbbeb4f0f6f8507bf4c5625b5f6398ec5876/charset_normalizer-3.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:012a22b88a77ca2e59b98ac5889b0deb604147666032f45e6d6e217634d2550d", size = 206385, upload-time = "2026-08-15T08:20:40.242Z" }, + { url = "https://files.pythonhosted.org/packages/c4/58/c9295c61e3f826ba7d874f0fd1c5e335dbec928d7b9146b33b48d14a25f1/charset_normalizer-3.5.1-cp39-cp39-win_arm64.whl", hash = "sha256:29880d17a8eb0b5cfdfd8944b468322928059aa35f1f5fa8ff22b149ec0b42f8", size = 185470, upload-time = "2026-08-15T08:20:41.765Z" }, + { url = "https://files.pythonhosted.org/packages/cc/61/d01fc49b8dea277640b55a9e15960dbca9fdc8c9fde18e572d39c59f4019/charset_normalizer-3.5.1-py3-none-any.whl", hash = "sha256:6df0ec430f9a831772c23ca5a224cba36517a58a84bb32c32bb59a9fa67c47f6", size = 68658, upload-time = "2026-08-15T08:20:43.306Z" }, ] [[package]] name = "click" version = "8.1.8" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.9.*'", + "python_full_version < '3.9'", +] dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] @@ -246,12 +352,29 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188, upload-time = "2024-12-21T18:38:41.666Z" }, ] +[[package]] +name = "click" +version = "8.4.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", +] +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/76/d4/81420972a676e8ffea40450d8c8c92943e7218a78fe9b64359836cc9876b/click-8.4.2.tar.gz", hash = "sha256:9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6", size = 338000, upload-time = "2026-06-24T17:45:15.148Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/e2/79c688af8b210d232694e31e59da9f6ec747bae31c3f5946e4e9b98860d5/click-8.4.2-py3-none-any.whl", hash = "sha256:e6f9f66136c816745b9d65817da91d61d957fb16e02e4dcd0552553c5a197b76", size = 119243, upload-time = "2026-06-24T17:45:13.73Z" }, +] + [[package]] name = "click-option-group" version = "0.5.9" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click" }, + { name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ef/ff/d291d66595b30b83d1cb9e314b2c9be7cfc7327d4a0d40a15da2416ea97b/click_option_group-0.5.9.tar.gz", hash = "sha256:f94ed2bc4cf69052e0f29592bd1e771a1789bd7bfc482dd0bc482134aff95823", size = 22222, upload-time = "2025-10-09T09:38:01.474Z" } wheels = [ @@ -279,7 +402,7 @@ version = "1.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "wrapt", version = "2.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "wrapt", version = "2.1.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "wrapt", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/49/85/12f0a49a7c4ffb70572b6c2ef13c90c88fd190debda93b23f026b25f9634/deprecated-1.3.1.tar.gz", hash = "sha256:b1b50e0ff0c1fddaa5708a2c6b0a6588bb09b892825ab2b214ac9ea9d92a5223", size = 2932523, upload-time = "2025-10-30T08:19:02.757Z" } wheels = [ @@ -288,11 +411,11 @@ wheels = [ [[package]] name = "distlib" -version = "0.4.0" +version = "0.4.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/96/8e/709914eb2b5749865801041647dc7f4e6d00b549cfe88b65ca192995f07c/distlib-0.4.0.tar.gz", hash = "sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d", size = 614605, upload-time = "2025-07-17T16:52:00.465Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c9/02/bd72be9134d25ed783ecbbc38a539ffaefbf90c78418c7fb7229600dbac7/distlib-0.4.3.tar.gz", hash = "sha256:f152097224a0ae24be5a0f6bae1b9359af82133bce63f98a95f86cae1aede9ed", size = 615141, upload-time = "2026-06-12T08:04:52.847Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl", hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16", size = 469047, upload-time = "2025-07-17T16:51:58.613Z" }, + { url = "https://files.pythonhosted.org/packages/02/08/9c41fb51ab5b43eb21674aff13df270e8ba6c4b29c8624e328dc7a9482af/distlib-0.4.3-py2.py3-none-any.whl", hash = "sha256:4b0ce306c966eb73bc3a7b6abad017c556dadd92c44701562cd528ac7fde4d5b", size = 470628, upload-time = "2026-06-12T08:04:50.506Z" }, ] [[package]] @@ -309,8 +432,8 @@ name = "exceptiongroup" version = "1.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.13'" }, + { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9' or python_full_version >= '3.11'" }, + { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } wheels = [ @@ -331,14 +454,15 @@ wheels = [ [[package]] name = "filelock" -version = "3.25.2" +version = "3.32.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", ] -sdist = { url = "https://files.pythonhosted.org/packages/94/b8/00651a0f559862f3bb7d6f7477b192afe3f583cc5e26403b44e59a55ab34/filelock-3.25.2.tar.gz", hash = "sha256:b64ece2b38f4ca29dd3e810287aa8c48182bbecd1ae6e9ae126c9b35f1382694", size = 40480, upload-time = "2026-03-11T20:45:38.487Z" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/64/a02e6765de08964ed371eca577870593245afc9dfac16d037de7c10d18e6/filelock-3.32.3.tar.gz", hash = "sha256:0ffa185a3540854c95caa7fa76b76cb219d907415e2c5dc9af25fd970563487f", size = 218135, upload-time = "2026-08-13T16:00:05.577Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl", hash = "sha256:ca8afb0da15f229774c9ad1b455ed96e85a81373065fb10446672f64444ddf70", size = 26759, upload-time = "2026-03-11T20:45:37.437Z" }, + { url = "https://files.pythonhosted.org/packages/a7/8e/50f46a9c0ce8d2861a394c1347caae037ea0431d2f67d7feb151cbc4649a/filelock-3.32.3-py3-none-any.whl", hash = "sha256:7f0ca4bcc0e181c60dbbd8aa9ab5b120ebb99e4e064e83636340056f833a1f09", size = 98901, upload-time = "2026-08-13T16:00:03.974Z" }, ] [[package]] @@ -367,16 +491,25 @@ wheels = [ [[package]] name = "gitpython" -version = "3.1.46" +version = "3.1.59" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "gitdb" }, { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/df/b5/59d16470a1f0dfe8c793f9ef56fd3826093fc52b3bd96d6b9d6c26c7e27b/gitpython-3.1.46.tar.gz", hash = "sha256:400124c7d0ef4ea03f7310ac2fbf7151e09ff97f2a3288d64a440c584a29c37f", size = 215371, upload-time = "2026-01-01T15:37:32.073Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/dc/126b28e76b24a9268ba931ad3e012f71ebdadf62fd9f17758f7074bb0b20/gitpython-3.1.59.tar.gz", hash = "sha256:0a1475cfdc38a5bfba1a3e9a4a9da52a39749ecec322b772915c019f94e5b7e4", size = 230445, upload-time = "2026-08-10T12:03:20.271Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/09/e21df6aef1e1ffc0c816f0522ddc3f6dcded766c3261813131c78a704470/gitpython-3.1.46-py3-none-any.whl", hash = "sha256:79812ed143d9d25b6d176a10bb511de0f9c67b1fa641d82097b0ab90398a2058", size = 208620, upload-time = "2026-01-01T15:37:30.574Z" }, + { url = "https://files.pythonhosted.org/packages/ef/ed/ae57eb7d344f43f87b74b3a281ead6ec7d6394eef72a7b1dcb28dd089550/gitpython-3.1.59-py3-none-any.whl", hash = "sha256:67a82f537384578643624c8b2c531938a9b82be431663e575dcf638526631d4c", size = 220996, upload-time = "2026-08-10T12:03:18.804Z" }, +] + +[[package]] +name = "griffelib" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f0/b4/a767e91c606deefc447a96eaf59edd77397960b1d677dffd833ee8449831/griffelib-2.2.0.tar.gz", hash = "sha256:e1bc36fe9cd21d4b6b659b456346755e4cfdc5676c0a5214083126ee12612b3c", size = 227048, upload-time = "2026-08-16T14:04:58.383Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f6/b6/f65ac785d4ac90dcf7c831ac6256f5dd4a19780f4e1575b2c0d6eeebe319/griffelib-2.2.0-py3-none-any.whl", hash = "sha256:d71c3bc2bbed9f958488634fe788b843a9f705d6d2838ca32cd6c25eeb64dfc4", size = 166779, upload-time = "2026-08-16T14:04:54.365Z" }, ] [[package]] @@ -401,23 +534,41 @@ wheels = [ [[package]] name = "identify" -version = "2.6.18" +version = "2.6.19" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", ] -sdist = { url = "https://files.pythonhosted.org/packages/46/c4/7fb4db12296cdb11893d61c92048fe617ee853f8523b9b296ac03b43757e/identify-2.6.18.tar.gz", hash = "sha256:873ac56a5e3fd63e7438a7ecbc4d91aca692eb3fefa4534db2b7913f3fc352fd", size = 99580, upload-time = "2026-03-15T18:39:50.319Z" } +sdist = { url = "https://files.pythonhosted.org/packages/52/63/51723b5f116cc04b061cb6f5a561790abf249d25931d515cd375e063e0f4/identify-2.6.19.tar.gz", hash = "sha256:6be5020c38fcb07da56c53733538a3081ea5aa70d36a156f83044bfbf9173842", size = 99567, upload-time = "2026-04-17T18:39:50.265Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/46/33/92ef41c6fad0233e41d3d84ba8e8ad18d1780f1e5d99b3c683e6d7f98b63/identify-2.6.18-py2.py3-none-any.whl", hash = "sha256:8db9d3c8ea9079db92cafb0ebf97abdc09d52e97f4dcf773a2e694048b7cd737", size = 99394, upload-time = "2026-03-15T18:39:48.915Z" }, + { url = "https://files.pythonhosted.org/packages/94/84/d9273cd09688070a6523c4aee4663a8538721b2b755c4962aafae0011e72/identify-2.6.19-py2.py3-none-any.whl", hash = "sha256:20e6a87f786f768c092a721ad107fc9df0eb89347be9396cadf3f4abbd1fb78a", size = 99397, upload-time = "2026-04-17T18:39:49.221Z" }, ] [[package]] name = "idna" -version = "3.11" +version = "3.15" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +resolution-markers = [ + "python_full_version < '3.9'", +] +sdist = { url = "https://files.pythonhosted.org/packages/82/77/7b3966d0b9d1d31a36ddf1746926a11dface89a83409bf1483f0237aa758/idna-3.15.tar.gz", hash = "sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc", size = 199245, upload-time = "2026-05-12T22:45:57.011Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, + { url = "https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl", hash = "sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8", size = 72340, upload-time = "2026-05-12T22:45:55.733Z" }, +] + +[[package]] +name = "idna" +version = "3.19" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/5f/f7/abb373e5757eaec4b922b92f97ec8d6d7e057cf06778247604fbc4e7c3f3/idna-3.19.tar.gz", hash = "sha256:5e0811a4383b21dc5838069f801c4fb62113b7447663d2530d2bd6e77b49bf15", size = 215237, upload-time = "2026-08-18T05:14:24.27Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/57/b0/0e52c878c53f245edd3a11020f20979b3f490f245af532c7cae3027754b5/idna-3.19-py3-none-any.whl", hash = "sha256:815e7be7a7806d54abb586dc943addc79e8b2ee16915059658cbeff4b1b43bf4", size = 68550, upload-time = "2026-08-18T05:14:22.343Z" }, ] [[package]] @@ -428,7 +579,7 @@ resolution-markers = [ "python_full_version < '3.9'", ] dependencies = [ - { name = "zipp", version = "3.20.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "zipp", version = "3.20.2", source = { registry = "https://pypi.org/simple" } }, ] sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304, upload-time = "2024-09-11T14:56:08.937Z" } wheels = [ @@ -443,7 +594,7 @@ resolution-markers = [ "python_full_version == '3.9.*'", ] dependencies = [ - { name = "zipp", version = "3.23.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "zipp", version = "3.23.1", source = { registry = "https://pypi.org/simple" } }, ] sdist = { url = "https://files.pythonhosted.org/packages/f3/49/3b30cad09e7771a4982d9975a8cbf64f00d4a1ececb53297f1d9a7be1b10/importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb", size = 57107, upload-time = "2025-12-21T10:00:19.278Z" } wheels = [ @@ -458,7 +609,7 @@ resolution-markers = [ "python_full_version < '3.9'", ] dependencies = [ - { name = "zipp", version = "3.20.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "zipp", version = "3.20.2", source = { registry = "https://pypi.org/simple" } }, ] sdist = { url = "https://files.pythonhosted.org/packages/98/be/f3e8c6081b684f176b761e6a2fef02a0be939740ed6f54109a2951d806f3/importlib_resources-6.4.5.tar.gz", hash = "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065", size = 43372, upload-time = "2024-09-09T17:03:14.677Z" } wheels = [ @@ -470,11 +621,12 @@ name = "importlib-resources" version = "6.5.2" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", "python_full_version == '3.9.*'", ] dependencies = [ - { name = "zipp", version = "3.23.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "zipp", version = "3.23.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cf/8c/f834fbf984f691b4f7ff60f50b514cc3de5cc08abfc3295564dd89c5e2e7/importlib_resources-6.5.2.tar.gz", hash = "sha256:185f87adef5bcc288449d98fb4fba07cea78bc036455dd44c5fc4a2fe78fed2c", size = 44693, upload-time = "2025-01-03T18:51:56.698Z" } wheels = [ @@ -499,7 +651,8 @@ name = "iniconfig" version = "2.3.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", ] sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } wheels = [ @@ -527,141 +680,155 @@ sdist = { url = "https://files.pythonhosted.org/packages/5e/73/e01e4c5e11ad0494f [[package]] name = "librt" -version = "0.8.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/56/9c/b4b0c54d84da4a94b37bd44151e46d5e583c9534c7e02250b961b1b6d8a8/librt-0.8.1.tar.gz", hash = "sha256:be46a14693955b3bd96014ccbdb8339ee8c9346fbe11c1b78901b55125f14c73", size = 177471, upload-time = "2026-02-17T16:13:06.101Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7c/5f/63f5fa395c7a8a93558c0904ba8f1c8d1b997ca6a3de61bc7659970d66bf/librt-0.8.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:81fd938344fecb9373ba1b155968c8a329491d2ce38e7ddb76f30ffb938f12dc", size = 65697, upload-time = "2026-02-17T16:11:06.903Z" }, - { url = "https://files.pythonhosted.org/packages/ff/e0/0472cf37267b5920eff2f292ccfaede1886288ce35b7f3203d8de00abfe6/librt-0.8.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5db05697c82b3a2ec53f6e72b2ed373132b0c2e05135f0696784e97d7f5d48e7", size = 68376, upload-time = "2026-02-17T16:11:08.395Z" }, - { url = "https://files.pythonhosted.org/packages/c8/be/8bd1359fdcd27ab897cd5963294fa4a7c83b20a8564678e4fd12157e56a5/librt-0.8.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d56bc4011975f7460bea7b33e1ff425d2f1adf419935ff6707273c77f8a4ada6", size = 197084, upload-time = "2026-02-17T16:11:09.774Z" }, - { url = "https://files.pythonhosted.org/packages/e2/fe/163e33fdd091d0c2b102f8a60cc0a61fd730ad44e32617cd161e7cd67a01/librt-0.8.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5cdc0f588ff4b663ea96c26d2a230c525c6fc62b28314edaaaca8ed5af931ad0", size = 207337, upload-time = "2026-02-17T16:11:11.311Z" }, - { url = "https://files.pythonhosted.org/packages/01/99/f85130582f05dcf0c8902f3d629270231d2f4afdfc567f8305a952ac7f14/librt-0.8.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:97c2b54ff6717a7a563b72627990bec60d8029df17df423f0ed37d56a17a176b", size = 219980, upload-time = "2026-02-17T16:11:12.499Z" }, - { url = "https://files.pythonhosted.org/packages/6f/54/cb5e4d03659e043a26c74e08206412ac9a3742f0477d96f9761a55313b5f/librt-0.8.1-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:8f1125e6bbf2f1657d9a2f3ccc4a2c9b0c8b176965bb565dd4d86be67eddb4b6", size = 212921, upload-time = "2026-02-17T16:11:14.484Z" }, - { url = "https://files.pythonhosted.org/packages/b1/81/a3a01e4240579c30f3487f6fed01eb4bc8ef0616da5b4ebac27ca19775f3/librt-0.8.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8f4bb453f408137d7581be309b2fbc6868a80e7ef60c88e689078ee3a296ae71", size = 221381, upload-time = "2026-02-17T16:11:17.459Z" }, - { url = "https://files.pythonhosted.org/packages/08/b0/fc2d54b4b1c6fb81e77288ff31ff25a2c1e62eaef4424a984f228839717b/librt-0.8.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c336d61d2fe74a3195edc1646d53ff1cddd3a9600b09fa6ab75e5514ba4862a7", size = 216714, upload-time = "2026-02-17T16:11:19.197Z" }, - { url = "https://files.pythonhosted.org/packages/96/96/85daa73ffbd87e1fb287d7af6553ada66bf25a2a6b0de4764344a05469f6/librt-0.8.1-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:eb5656019db7c4deacf0c1a55a898c5bb8f989be904597fcb5232a2f4828fa05", size = 214777, upload-time = "2026-02-17T16:11:20.443Z" }, - { url = "https://files.pythonhosted.org/packages/12/9c/c3aa7a2360383f4bf4f04d98195f2739a579128720c603f4807f006a4225/librt-0.8.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c25d9e338d5bed46c1632f851babf3d13c78f49a225462017cf5e11e845c5891", size = 237398, upload-time = "2026-02-17T16:11:22.083Z" }, - { url = "https://files.pythonhosted.org/packages/61/19/d350ea89e5274665185dabc4bbb9c3536c3411f862881d316c8b8e00eb66/librt-0.8.1-cp310-cp310-win32.whl", hash = "sha256:aaab0e307e344cb28d800957ef3ec16605146ef0e59e059a60a176d19543d1b7", size = 54285, upload-time = "2026-02-17T16:11:23.27Z" }, - { url = "https://files.pythonhosted.org/packages/4f/d6/45d587d3d41c112e9543a0093d883eb57a24a03e41561c127818aa2a6bcc/librt-0.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:56e04c14b696300d47b3bc5f1d10a00e86ae978886d0cee14e5714fafb5df5d2", size = 61352, upload-time = "2026-02-17T16:11:24.207Z" }, - { url = "https://files.pythonhosted.org/packages/1d/01/0e748af5e4fee180cf7cd12bd12b0513ad23b045dccb2a83191bde82d168/librt-0.8.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:681dc2451d6d846794a828c16c22dc452d924e9f700a485b7ecb887a30aad1fd", size = 65315, upload-time = "2026-02-17T16:11:25.152Z" }, - { url = "https://files.pythonhosted.org/packages/9d/4d/7184806efda571887c798d573ca4134c80ac8642dcdd32f12c31b939c595/librt-0.8.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3b4350b13cc0e6f5bec8fa7caf29a8fb8cdc051a3bae45cfbfd7ce64f009965", size = 68021, upload-time = "2026-02-17T16:11:26.129Z" }, - { url = "https://files.pythonhosted.org/packages/ae/88/c3c52d2a5d5101f28d3dc89298444626e7874aa904eed498464c2af17627/librt-0.8.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:ac1e7817fd0ed3d14fd7c5df91daed84c48e4c2a11ee99c0547f9f62fdae13da", size = 194500, upload-time = "2026-02-17T16:11:27.177Z" }, - { url = "https://files.pythonhosted.org/packages/d6/5d/6fb0a25b6a8906e85b2c3b87bee1d6ed31510be7605b06772f9374ca5cb3/librt-0.8.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:747328be0c5b7075cde86a0e09d7a9196029800ba75a1689332348e998fb85c0", size = 205622, upload-time = "2026-02-17T16:11:28.242Z" }, - { url = "https://files.pythonhosted.org/packages/b2/a6/8006ae81227105476a45691f5831499e4d936b1c049b0c1feb17c11b02d1/librt-0.8.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0af2bd2bc204fa27f3d6711d0f360e6b8c684a035206257a81673ab924aa11e", size = 218304, upload-time = "2026-02-17T16:11:29.344Z" }, - { url = "https://files.pythonhosted.org/packages/ee/19/60e07886ad16670aae57ef44dada41912c90906a6fe9f2b9abac21374748/librt-0.8.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d480de377f5b687b6b1bc0c0407426da556e2a757633cc7e4d2e1a057aa688f3", size = 211493, upload-time = "2026-02-17T16:11:30.445Z" }, - { url = "https://files.pythonhosted.org/packages/9c/cf/f666c89d0e861d05600438213feeb818c7514d3315bae3648b1fc145d2b6/librt-0.8.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d0ee06b5b5291f609ddb37b9750985b27bc567791bc87c76a569b3feed8481ac", size = 219129, upload-time = "2026-02-17T16:11:32.021Z" }, - { url = "https://files.pythonhosted.org/packages/8f/ef/f1bea01e40b4a879364c031476c82a0dc69ce068daad67ab96302fed2d45/librt-0.8.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9e2c6f77b9ad48ce5603b83b7da9ee3e36b3ab425353f695cba13200c5d96596", size = 213113, upload-time = "2026-02-17T16:11:33.192Z" }, - { url = "https://files.pythonhosted.org/packages/9b/80/cdab544370cc6bc1b72ea369525f547a59e6938ef6863a11ab3cd24759af/librt-0.8.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:439352ba9373f11cb8e1933da194dcc6206daf779ff8df0ed69c5e39113e6a99", size = 212269, upload-time = "2026-02-17T16:11:34.373Z" }, - { url = "https://files.pythonhosted.org/packages/9d/9c/48d6ed8dac595654f15eceab2035131c136d1ae9a1e3548e777bb6dbb95d/librt-0.8.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:82210adabbc331dbb65d7868b105185464ef13f56f7f76688565ad79f648b0fe", size = 234673, upload-time = "2026-02-17T16:11:36.063Z" }, - { url = "https://files.pythonhosted.org/packages/16/01/35b68b1db517f27a01be4467593292eb5315def8900afad29fabf56304ba/librt-0.8.1-cp311-cp311-win32.whl", hash = "sha256:52c224e14614b750c0a6d97368e16804a98c684657c7518752c356834fff83bb", size = 54597, upload-time = "2026-02-17T16:11:37.544Z" }, - { url = "https://files.pythonhosted.org/packages/71/02/796fe8f02822235966693f257bf2c79f40e11337337a657a8cfebba5febc/librt-0.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:c00e5c884f528c9932d278d5c9cbbea38a6b81eb62c02e06ae53751a83a4d52b", size = 61733, upload-time = "2026-02-17T16:11:38.691Z" }, - { url = "https://files.pythonhosted.org/packages/28/ad/232e13d61f879a42a4e7117d65e4984bb28371a34bb6fb9ca54ec2c8f54e/librt-0.8.1-cp311-cp311-win_arm64.whl", hash = "sha256:f7cdf7f26c2286ffb02e46d7bac56c94655540b26347673bea15fa52a6af17e9", size = 52273, upload-time = "2026-02-17T16:11:40.308Z" }, - { url = "https://files.pythonhosted.org/packages/95/21/d39b0a87ac52fc98f621fb6f8060efb017a767ebbbac2f99fbcbc9ddc0d7/librt-0.8.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a28f2612ab566b17f3698b0da021ff9960610301607c9a5e8eaca62f5e1c350a", size = 66516, upload-time = "2026-02-17T16:11:41.604Z" }, - { url = "https://files.pythonhosted.org/packages/69/f1/46375e71441c43e8ae335905e069f1c54febee63a146278bcee8782c84fd/librt-0.8.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:60a78b694c9aee2a0f1aaeaa7d101cf713e92e8423a941d2897f4fa37908dab9", size = 68634, upload-time = "2026-02-17T16:11:43.268Z" }, - { url = "https://files.pythonhosted.org/packages/0a/33/c510de7f93bf1fa19e13423a606d8189a02624a800710f6e6a0a0f0784b3/librt-0.8.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:758509ea3f1eba2a57558e7e98f4659d0ea7670bff49673b0dde18a3c7e6c0eb", size = 198941, upload-time = "2026-02-17T16:11:44.28Z" }, - { url = "https://files.pythonhosted.org/packages/dd/36/e725903416409a533d92398e88ce665476f275081d0d7d42f9c4951999e5/librt-0.8.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:039b9f2c506bd0ab0f8725aa5ba339c6f0cd19d3b514b50d134789809c24285d", size = 209991, upload-time = "2026-02-17T16:11:45.462Z" }, - { url = "https://files.pythonhosted.org/packages/30/7a/8d908a152e1875c9f8eac96c97a480df425e657cdb47854b9efaa4998889/librt-0.8.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bb54f1205a3a6ab41a6fd71dfcdcbd278670d3a90ca502a30d9da583105b6f7", size = 224476, upload-time = "2026-02-17T16:11:46.542Z" }, - { url = "https://files.pythonhosted.org/packages/a8/b8/a22c34f2c485b8903a06f3fe3315341fe6876ef3599792344669db98fcff/librt-0.8.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:05bd41cdee35b0c59c259f870f6da532a2c5ca57db95b5f23689fcb5c9e42440", size = 217518, upload-time = "2026-02-17T16:11:47.746Z" }, - { url = "https://files.pythonhosted.org/packages/79/6f/5c6fea00357e4f82ba44f81dbfb027921f1ab10e320d4a64e1c408d035d9/librt-0.8.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:adfab487facf03f0d0857b8710cf82d0704a309d8ffc33b03d9302b4c64e91a9", size = 225116, upload-time = "2026-02-17T16:11:49.298Z" }, - { url = "https://files.pythonhosted.org/packages/f2/a0/95ced4e7b1267fe1e2720a111685bcddf0e781f7e9e0ce59d751c44dcfe5/librt-0.8.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:153188fe98a72f206042be10a2c6026139852805215ed9539186312d50a8e972", size = 217751, upload-time = "2026-02-17T16:11:50.49Z" }, - { url = "https://files.pythonhosted.org/packages/93/c2/0517281cb4d4101c27ab59472924e67f55e375bc46bedae94ac6dc6e1902/librt-0.8.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:dd3c41254ee98604b08bd5b3af5bf0a89740d4ee0711de95b65166bf44091921", size = 218378, upload-time = "2026-02-17T16:11:51.783Z" }, - { url = "https://files.pythonhosted.org/packages/43/e8/37b3ac108e8976888e559a7b227d0ceac03c384cfd3e7a1c2ee248dbae79/librt-0.8.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e0d138c7ae532908cbb342162b2611dbd4d90c941cd25ab82084aaf71d2c0bd0", size = 241199, upload-time = "2026-02-17T16:11:53.561Z" }, - { url = "https://files.pythonhosted.org/packages/4b/5b/35812d041c53967fedf551a39399271bbe4257e681236a2cf1a69c8e7fa1/librt-0.8.1-cp312-cp312-win32.whl", hash = "sha256:43353b943613c5d9c49a25aaffdba46f888ec354e71e3529a00cca3f04d66a7a", size = 54917, upload-time = "2026-02-17T16:11:54.758Z" }, - { url = "https://files.pythonhosted.org/packages/de/d1/fa5d5331b862b9775aaf2a100f5ef86854e5d4407f71bddf102f4421e034/librt-0.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:ff8baf1f8d3f4b6b7257fcb75a501f2a5499d0dda57645baa09d4d0d34b19444", size = 62017, upload-time = "2026-02-17T16:11:55.748Z" }, - { url = "https://files.pythonhosted.org/packages/c7/7c/c614252f9acda59b01a66e2ddfd243ed1c7e1deab0293332dfbccf862808/librt-0.8.1-cp312-cp312-win_arm64.whl", hash = "sha256:0f2ae3725904f7377e11cc37722d5d401e8b3d5851fb9273d7f4fe04f6b3d37d", size = 52441, upload-time = "2026-02-17T16:11:56.801Z" }, - { url = "https://files.pythonhosted.org/packages/c5/3c/f614c8e4eaac7cbf2bbdf9528790b21d89e277ee20d57dc6e559c626105f/librt-0.8.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7e6bad1cd94f6764e1e21950542f818a09316645337fd5ab9a7acc45d99a8f35", size = 66529, upload-time = "2026-02-17T16:11:57.809Z" }, - { url = "https://files.pythonhosted.org/packages/ab/96/5836544a45100ae411eda07d29e3d99448e5258b6e9c8059deb92945f5c2/librt-0.8.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cf450f498c30af55551ba4f66b9123b7185362ec8b625a773b3d39aa1a717583", size = 68669, upload-time = "2026-02-17T16:11:58.843Z" }, - { url = "https://files.pythonhosted.org/packages/06/53/f0b992b57af6d5531bf4677d75c44f095f2366a1741fb695ee462ae04b05/librt-0.8.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:eca45e982fa074090057132e30585a7e8674e9e885d402eae85633e9f449ce6c", size = 199279, upload-time = "2026-02-17T16:11:59.862Z" }, - { url = "https://files.pythonhosted.org/packages/f3/ad/4848cc16e268d14280d8168aee4f31cea92bbd2b79ce33d3e166f2b4e4fc/librt-0.8.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c3811485fccfda840861905b8c70bba5ec094e02825598bb9d4ca3936857a04", size = 210288, upload-time = "2026-02-17T16:12:00.954Z" }, - { url = "https://files.pythonhosted.org/packages/52/05/27fdc2e95de26273d83b96742d8d3b7345f2ea2bdbd2405cc504644f2096/librt-0.8.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e4af413908f77294605e28cfd98063f54b2c790561383971d2f52d113d9c363", size = 224809, upload-time = "2026-02-17T16:12:02.108Z" }, - { url = "https://files.pythonhosted.org/packages/7a/d0/78200a45ba3240cb042bc597d6f2accba9193a2c57d0356268cbbe2d0925/librt-0.8.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5212a5bd7fae98dae95710032902edcd2ec4dc994e883294f75c857b83f9aba0", size = 218075, upload-time = "2026-02-17T16:12:03.631Z" }, - { url = "https://files.pythonhosted.org/packages/af/72/a210839fa74c90474897124c064ffca07f8d4b347b6574d309686aae7ca6/librt-0.8.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e692aa2d1d604e6ca12d35e51fdc36f4cda6345e28e36374579f7ef3611b3012", size = 225486, upload-time = "2026-02-17T16:12:04.725Z" }, - { url = "https://files.pythonhosted.org/packages/a3/c1/a03cc63722339ddbf087485f253493e2b013039f5b707e8e6016141130fa/librt-0.8.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4be2a5c926b9770c9e08e717f05737a269b9d0ebc5d2f0060f0fe3fe9ce47acb", size = 218219, upload-time = "2026-02-17T16:12:05.828Z" }, - { url = "https://files.pythonhosted.org/packages/58/f5/fff6108af0acf941c6f274a946aea0e484bd10cd2dc37610287ce49388c5/librt-0.8.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:fd1a720332ea335ceb544cf0a03f81df92abd4bb887679fd1e460976b0e6214b", size = 218750, upload-time = "2026-02-17T16:12:07.09Z" }, - { url = "https://files.pythonhosted.org/packages/71/67/5a387bfef30ec1e4b4f30562c8586566faf87e47d696768c19feb49e3646/librt-0.8.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2af9e01e0ef80d95ae3c720be101227edae5f2fe7e3dc63d8857fadfc5a1d", size = 241624, upload-time = "2026-02-17T16:12:08.43Z" }, - { url = "https://files.pythonhosted.org/packages/d4/be/24f8502db11d405232ac1162eb98069ca49c3306c1d75c6ccc61d9af8789/librt-0.8.1-cp313-cp313-win32.whl", hash = "sha256:086a32dbb71336627e78cc1d6ee305a68d038ef7d4c39aaff41ae8c9aa46e91a", size = 54969, upload-time = "2026-02-17T16:12:09.633Z" }, - { url = "https://files.pythonhosted.org/packages/5c/73/c9fdf6cb2a529c1a092ce769a12d88c8cca991194dfe641b6af12fa964d2/librt-0.8.1-cp313-cp313-win_amd64.whl", hash = "sha256:e11769a1dbda4da7b00a76cfffa67aa47cfa66921d2724539eee4b9ede780b79", size = 62000, upload-time = "2026-02-17T16:12:10.632Z" }, - { url = "https://files.pythonhosted.org/packages/d3/97/68f80ca3ac4924f250cdfa6e20142a803e5e50fca96ef5148c52ee8c10ea/librt-0.8.1-cp313-cp313-win_arm64.whl", hash = "sha256:924817ab3141aca17893386ee13261f1d100d1ef410d70afe4389f2359fea4f0", size = 52495, upload-time = "2026-02-17T16:12:11.633Z" }, - { url = "https://files.pythonhosted.org/packages/c9/6a/907ef6800f7bca71b525a05f1839b21f708c09043b1c6aa77b6b827b3996/librt-0.8.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:6cfa7fe54fd4d1f47130017351a959fe5804bda7a0bc7e07a2cdbc3fdd28d34f", size = 66081, upload-time = "2026-02-17T16:12:12.766Z" }, - { url = "https://files.pythonhosted.org/packages/1b/18/25e991cd5640c9fb0f8d91b18797b29066b792f17bf8493da183bf5caabe/librt-0.8.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:228c2409c079f8c11fb2e5d7b277077f694cb93443eb760e00b3b83cb8b3176c", size = 68309, upload-time = "2026-02-17T16:12:13.756Z" }, - { url = "https://files.pythonhosted.org/packages/a4/36/46820d03f058cfb5a9de5940640ba03165ed8aded69e0733c417bb04df34/librt-0.8.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:7aae78ab5e3206181780e56912d1b9bb9f90a7249ce12f0e8bf531d0462dd0fc", size = 196804, upload-time = "2026-02-17T16:12:14.818Z" }, - { url = "https://files.pythonhosted.org/packages/59/18/5dd0d3b87b8ff9c061849fbdb347758d1f724b9a82241aa908e0ec54ccd0/librt-0.8.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:172d57ec04346b047ca6af181e1ea4858086c80bdf455f61994c4aa6fc3f866c", size = 206907, upload-time = "2026-02-17T16:12:16.513Z" }, - { url = "https://files.pythonhosted.org/packages/d1/96/ef04902aad1424fd7299b62d1890e803e6ab4018c3044dca5922319c4b97/librt-0.8.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6b1977c4ea97ce5eb7755a78fae68d87e4102e4aaf54985e8b56806849cc06a3", size = 221217, upload-time = "2026-02-17T16:12:17.906Z" }, - { url = "https://files.pythonhosted.org/packages/6d/ff/7e01f2dda84a8f5d280637a2e5827210a8acca9a567a54507ef1c75b342d/librt-0.8.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:10c42e1f6fd06733ef65ae7bebce2872bcafd8d6e6b0a08fe0a05a23b044fb14", size = 214622, upload-time = "2026-02-17T16:12:19.108Z" }, - { url = "https://files.pythonhosted.org/packages/1e/8c/5b093d08a13946034fed57619742f790faf77058558b14ca36a6e331161e/librt-0.8.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4c8dfa264b9193c4ee19113c985c95f876fae5e51f731494fc4e0cf594990ba7", size = 221987, upload-time = "2026-02-17T16:12:20.331Z" }, - { url = "https://files.pythonhosted.org/packages/d3/cc/86b0b3b151d40920ad45a94ce0171dec1aebba8a9d72bb3fa00c73ab25dd/librt-0.8.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:01170b6729a438f0dedc4a26ed342e3dc4f02d1000b4b19f980e1877f0c297e6", size = 215132, upload-time = "2026-02-17T16:12:21.54Z" }, - { url = "https://files.pythonhosted.org/packages/fc/be/8588164a46edf1e69858d952654e216a9a91174688eeefb9efbb38a9c799/librt-0.8.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:7b02679a0d783bdae30d443025b94465d8c3dc512f32f5b5031f93f57ac32071", size = 215195, upload-time = "2026-02-17T16:12:23.073Z" }, - { url = "https://files.pythonhosted.org/packages/f5/f2/0b9279bea735c734d69344ecfe056c1ba211694a72df10f568745c899c76/librt-0.8.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:190b109bb69592a3401fe1ffdea41a2e73370ace2ffdc4a0e8e2b39cdea81b78", size = 237946, upload-time = "2026-02-17T16:12:24.275Z" }, - { url = "https://files.pythonhosted.org/packages/e9/cc/5f2a34fbc8aeb35314a3641f9956fa9051a947424652fad9882be7a97949/librt-0.8.1-cp314-cp314-win32.whl", hash = "sha256:e70a57ecf89a0f64c24e37f38d3fe217a58169d2fe6ed6d70554964042474023", size = 50689, upload-time = "2026-02-17T16:12:25.766Z" }, - { url = "https://files.pythonhosted.org/packages/a0/76/cd4d010ab2147339ca2b93e959c3686e964edc6de66ddacc935c325883d7/librt-0.8.1-cp314-cp314-win_amd64.whl", hash = "sha256:7e2f3edca35664499fbb36e4770650c4bd4a08abc1f4458eab9df4ec56389730", size = 57875, upload-time = "2026-02-17T16:12:27.465Z" }, - { url = "https://files.pythonhosted.org/packages/84/0f/2143cb3c3ca48bd3379dcd11817163ca50781927c4537345d608b5045998/librt-0.8.1-cp314-cp314-win_arm64.whl", hash = "sha256:0d2f82168e55ddefd27c01c654ce52379c0750ddc31ee86b4b266bcf4d65f2a3", size = 48058, upload-time = "2026-02-17T16:12:28.556Z" }, - { url = "https://files.pythonhosted.org/packages/d2/0e/9b23a87e37baf00311c3efe6b48d6b6c168c29902dfc3f04c338372fd7db/librt-0.8.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2c74a2da57a094bd48d03fa5d196da83d2815678385d2978657499063709abe1", size = 68313, upload-time = "2026-02-17T16:12:29.659Z" }, - { url = "https://files.pythonhosted.org/packages/db/9a/859c41e5a4f1c84200a7d2b92f586aa27133c8243b6cac9926f6e54d01b9/librt-0.8.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a355d99c4c0d8e5b770313b8b247411ed40949ca44e33e46a4789b9293a907ee", size = 70994, upload-time = "2026-02-17T16:12:31.516Z" }, - { url = "https://files.pythonhosted.org/packages/4c/28/10605366ee599ed34223ac2bf66404c6fb59399f47108215d16d5ad751a8/librt-0.8.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:2eb345e8b33fb748227409c9f1233d4df354d6e54091f0e8fc53acdb2ffedeb7", size = 220770, upload-time = "2026-02-17T16:12:33.294Z" }, - { url = "https://files.pythonhosted.org/packages/af/8d/16ed8fd452dafae9c48d17a6bc1ee3e818fd40ef718d149a8eff2c9f4ea2/librt-0.8.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9be2f15e53ce4e83cc08adc29b26fb5978db62ef2a366fbdf716c8a6c8901040", size = 235409, upload-time = "2026-02-17T16:12:35.443Z" }, - { url = "https://files.pythonhosted.org/packages/89/1b/7bdf3e49349c134b25db816e4a3db6b94a47ac69d7d46b1e682c2c4949be/librt-0.8.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:785ae29c1f5c6e7c2cde2c7c0e148147f4503da3abc5d44d482068da5322fd9e", size = 246473, upload-time = "2026-02-17T16:12:36.656Z" }, - { url = "https://files.pythonhosted.org/packages/4e/8a/91fab8e4fd2a24930a17188c7af5380eb27b203d72101c9cc000dbdfd95a/librt-0.8.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1d3a7da44baf692f0c6aeb5b2a09c5e6fc7a703bca9ffa337ddd2e2da53f7732", size = 238866, upload-time = "2026-02-17T16:12:37.849Z" }, - { url = "https://files.pythonhosted.org/packages/b9/e0/c45a098843fc7c07e18a7f8a24ca8496aecbf7bdcd54980c6ca1aaa79a8e/librt-0.8.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5fc48998000cbc39ec0d5311312dda93ecf92b39aaf184c5e817d5d440b29624", size = 250248, upload-time = "2026-02-17T16:12:39.445Z" }, - { url = "https://files.pythonhosted.org/packages/82/30/07627de23036640c952cce0c1fe78972e77d7d2f8fd54fa5ef4554ff4a56/librt-0.8.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:e96baa6820280077a78244b2e06e416480ed859bbd8e5d641cf5742919d8beb4", size = 240629, upload-time = "2026-02-17T16:12:40.889Z" }, - { url = "https://files.pythonhosted.org/packages/fb/c1/55bfe1ee3542eba055616f9098eaf6eddb966efb0ca0f44eaa4aba327307/librt-0.8.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:31362dbfe297b23590530007062c32c6f6176f6099646bb2c95ab1b00a57c382", size = 239615, upload-time = "2026-02-17T16:12:42.446Z" }, - { url = "https://files.pythonhosted.org/packages/2b/39/191d3d28abc26c9099b19852e6c99f7f6d400b82fa5a4e80291bd3803e19/librt-0.8.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cc3656283d11540ab0ea01978378e73e10002145117055e03722417aeab30994", size = 263001, upload-time = "2026-02-17T16:12:43.627Z" }, - { url = "https://files.pythonhosted.org/packages/b9/eb/7697f60fbe7042ab4e88f4ee6af496b7f222fffb0a4e3593ef1f29f81652/librt-0.8.1-cp314-cp314t-win32.whl", hash = "sha256:738f08021b3142c2918c03692608baed43bc51144c29e35807682f8070ee2a3a", size = 51328, upload-time = "2026-02-17T16:12:45.148Z" }, - { url = "https://files.pythonhosted.org/packages/7c/72/34bf2eb7a15414a23e5e70ecb9440c1d3179f393d9349338a91e2781c0fb/librt-0.8.1-cp314-cp314t-win_amd64.whl", hash = "sha256:89815a22daf9c51884fb5dbe4f1ef65ee6a146e0b6a8df05f753e2e4a9359bf4", size = 58722, upload-time = "2026-02-17T16:12:46.85Z" }, - { url = "https://files.pythonhosted.org/packages/b2/c8/d148e041732d631fc76036f8b30fae4e77b027a1e95b7a84bb522481a940/librt-0.8.1-cp314-cp314t-win_arm64.whl", hash = "sha256:bf512a71a23504ed08103a13c941f763db13fb11177beb3d9244c98c29fb4a61", size = 48755, upload-time = "2026-02-17T16:12:47.943Z" }, - { url = "https://files.pythonhosted.org/packages/01/1f/c7d8b66a3ca3ca3ed8ded4b32c96ee58a45920ebbbaa934355c74adcc33e/librt-0.8.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3dff3d3ca8db20e783b1bc7de49c0a2ab0b8387f31236d6a026597d07fcd68ac", size = 65990, upload-time = "2026-02-17T16:12:48.972Z" }, - { url = "https://files.pythonhosted.org/packages/56/be/ee9ba1730052313d08457f19beaa1b878619978863fba09b40aed5b5c123/librt-0.8.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:08eec3a1fc435f0d09c87b6bf1ec798986a3544f446b864e4099633a56fcd9ed", size = 68640, upload-time = "2026-02-17T16:12:50.24Z" }, - { url = "https://files.pythonhosted.org/packages/81/27/b7309298b96f7690cec3ceee38004c1a7f60fcd96d952d3ac344a1e3e8b3/librt-0.8.1-cp39-cp39-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e3f0a41487fd5fad7e760b9e8a90e251e27c2816fbc2cff36a22a0e6bcbbd9dd", size = 196099, upload-time = "2026-02-17T16:12:52.788Z" }, - { url = "https://files.pythonhosted.org/packages/10/48/160a5aacdcb21824b10a52378c39e88c46a29bb31efdaf3910dd1f9b670e/librt-0.8.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bacdb58d9939d95cc557b4dbaa86527c9db2ac1ed76a18bc8d26f6dc8647d851", size = 206663, upload-time = "2026-02-17T16:12:55.017Z" }, - { url = "https://files.pythonhosted.org/packages/ee/65/33dd1d8caabb7c6805d87d095b143417dc96b0277c06ffa0508361422c82/librt-0.8.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b6d7ab1f01aa753188605b09a51faa44a3327400b00b8cce424c71910fc0a128", size = 219318, upload-time = "2026-02-17T16:12:56.145Z" }, - { url = "https://files.pythonhosted.org/packages/09/d4/353805aa6181c7950a2462bd6e855366eeca21a501f375228d72a51547df/librt-0.8.1-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4998009e7cb9e896569f4be7004f09d0ed70d386fa99d42b6d363f6d200501ac", size = 212191, upload-time = "2026-02-17T16:12:57.326Z" }, - { url = "https://files.pythonhosted.org/packages/06/08/725b3f304d61eba56c713c251fb833a06d84bf93381caad5152366f5d2bb/librt-0.8.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2cc68eeeef5e906839c7bb0815748b5b0a974ec27125beefc0f942715785b551", size = 220672, upload-time = "2026-02-17T16:12:58.497Z" }, - { url = "https://files.pythonhosted.org/packages/0e/55/e8cdf04145872b3b97cb9b68287b22d1c08348227063f305aec11a3e6ce7/librt-0.8.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:0bf69d79a23f4f40b8673a947a234baeeb133b5078b483b7297c5916539cf5d5", size = 216172, upload-time = "2026-02-17T16:12:59.751Z" }, - { url = "https://files.pythonhosted.org/packages/8f/d8/23b1c6592d2422dd6829c672f45b1f1c257f219926b0d216fedb572d0184/librt-0.8.1-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:22b46eabd76c1986ee7d231b0765ad387d7673bbd996aa0d0d054b38ac65d8f6", size = 214116, upload-time = "2026-02-17T16:13:01.056Z" }, - { url = "https://files.pythonhosted.org/packages/c9/92/2b44fd3cc3313f44e43bdbb41343735b568fa675fa351642b408ee48d418/librt-0.8.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:237796479f4d0637d6b9cbcb926ff424a97735e68ade6facf402df4ec93375ed", size = 236664, upload-time = "2026-02-17T16:13:02.314Z" }, - { url = "https://files.pythonhosted.org/packages/00/23/92313ecdab80e142d8ea10e8dfa6297694359dbaacc9e81679bdc8cbceb6/librt-0.8.1-cp39-cp39-win32.whl", hash = "sha256:4beb04b8c66c6ae62f8c1e0b2f097c1ebad9295c929a8d5286c05eae7c2fc7dc", size = 54368, upload-time = "2026-02-17T16:13:03.549Z" }, - { url = "https://files.pythonhosted.org/packages/68/36/18f6e768afad6b55a690d38427c53251b69b7ba8795512730fd2508b31a9/librt-0.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:64548cde61b692dc0dc379f4b5f59a2f582c2ebe7890d09c1ae3b9e66fa015b7", size = 61507, upload-time = "2026-02-17T16:13:04.556Z" }, +version = "0.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/36/9b/356320fbae2ac8467e21c5e73e1389c80468e4998c62cc7d3536cc51b614/librt-0.15.0.tar.gz", hash = "sha256:4e66cbe84437497d951b799d3e1551291b6fb3d643820a7014b3655d57a59162", size = 214338, upload-time = "2026-08-07T10:49:42.663Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/48/12/e2e9ca532cf5a0e08c9489826c4a35c6958c92ba0313fda70e8c6c3912be/librt-0.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e1a49adf16a7c9d9646816c2946135527197b6fcf4347c7b8b761cf1bfbf4489", size = 148673, upload-time = "2026-08-07T10:46:22.569Z" }, + { url = "https://files.pythonhosted.org/packages/6d/7c/02005e23478bd5950618d9712e0fd2b4c511657857f3efd8ba6a5feabcdd/librt-0.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:81a398f45b45a59200e13cd5ad1ae1d3f44334de98b148331afe2cdfee701c52", size = 153547, upload-time = "2026-08-07T10:46:23.931Z" }, + { url = "https://files.pythonhosted.org/packages/a0/90/d8848a735f5642077fc4b3b4bebcdb08edf10178e3add45597f5201a368f/librt-0.15.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4eafbaff06b9563f8b1c850621ce51605de05208e09d4d71ce490bc972b7b9e8", size = 494355, upload-time = "2026-08-07T10:46:25.122Z" }, + { url = "https://files.pythonhosted.org/packages/e1/0b/8604f41ea02feace490e9e405a338a15f9905369f55b239a9ce31c946f24/librt-0.15.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:b0411b4066db926b80258c60dcb0e6db4c9cee312eab45b7e8866b17ddf9ada1", size = 485459, upload-time = "2026-08-07T10:46:26.447Z" }, + { url = "https://files.pythonhosted.org/packages/a0/ac/84153bda1ce0da609182527ab92b40d961809e544eefdc5a1c2422971416/librt-0.15.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:febb1ce6cac545a54e6b769982824e955a700fdd9fbf3a08a3d82c990968b57d", size = 498398, upload-time = "2026-08-07T10:46:27.701Z" }, + { url = "https://files.pythonhosted.org/packages/2c/3a/5ca6cd282b2c244bec8ec84102e09773264e9c02891d56ab3a8f0e4d7083/librt-0.15.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b230acc1c3bfe2d6f2627ba2b95dc92e58aa494600e9722d0e6ccbc931e59702", size = 515474, upload-time = "2026-08-07T10:46:28.9Z" }, + { url = "https://files.pythonhosted.org/packages/73/d3/bd34110234779eb843c6ed66aba7c9b2091d3dd85989f1fb9922f564cb7a/librt-0.15.0-cp310-cp310-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6da110e5f314c19ab8478464d02ae18808ae73d522c15260fa4918acdcd64da9", size = 509484, upload-time = "2026-08-07T10:46:30.124Z" }, + { url = "https://files.pythonhosted.org/packages/1b/6c/43c3f7f071d71631a7daa3b835ef2168ea39f20692d81464d4e47fbaa6d6/librt-0.15.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:eab9208b00ca55bf75983ec99f7bf13acc746a36102e98953addaad7f7ea1e1b", size = 532534, upload-time = "2026-08-07T10:46:31.511Z" }, + { url = "https://files.pythonhosted.org/packages/c5/1c/b854adf036ea817c40408873a5b794d65a91d9f0f39826f2ad2a2d5d7f48/librt-0.15.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:6c013cd3a1721e69e14380ada97eaa4b7b0cdf1c6b96fa765d4ea47c875088db", size = 537087, upload-time = "2026-08-07T10:46:32.734Z" }, + { url = "https://files.pythonhosted.org/packages/25/5c/c9a890e244e7dd725d3bd8b560e41f0aec787eaf343b46956a290ab7b841/librt-0.15.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:567b1c430f8bd560e689421468278ac5941bab4a05303b5d95b6ae10db03f451", size = 536575, upload-time = "2026-08-07T10:46:33.965Z" }, + { url = "https://files.pythonhosted.org/packages/5f/c5/c8e70b60b704299555f55db468eb46b1c81bfc60201ffbfe20407d89870c/librt-0.15.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:29c4cab9df457b19672c39be7f384ebb2bc925c4e2684b8780c222b43eb36389", size = 517142, upload-time = "2026-08-07T10:46:35.577Z" }, + { url = "https://files.pythonhosted.org/packages/56/d1/767a90c41f5d381b3195bc88ac0ec4afda35777c9c781e1f9848fedd965e/librt-0.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bccbd8e5b0bffb7106cf18eb1baa3d7194b1cebb3b4b1cdbd4bdb19382a6ee6c", size = 558714, upload-time = "2026-08-07T10:46:36.829Z" }, + { url = "https://files.pythonhosted.org/packages/f9/b4/3c0624b8dc8301ab808f2b3a910995bcabe28df070fb9a0e5505ae997dae/librt-0.15.0-cp310-cp310-win32.whl", hash = "sha256:8ae493ed5f659a7761c43d42f183db514536073ded9bcf671d2d1df47e29a07e", size = 104426, upload-time = "2026-08-07T10:46:38.594Z" }, + { url = "https://files.pythonhosted.org/packages/31/98/e91c0382304bedb2db9c6801897319a9dcb68daac5e975819b562362f20d/librt-0.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:bc25fb356d0c7810bb49ff3df908ad1fda6995d660ab099ded69244ed7ab6053", size = 125057, upload-time = "2026-08-07T10:46:40.052Z" }, + { url = "https://files.pythonhosted.org/packages/59/52/06790ced2ac7117f890c21bda43c39c958ec82aa665c0718e821d33ff939/librt-0.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:823b92cf3c18ecd08afc70c42473888b41b6e8ef5046f3b82c05c154a2fa3d22", size = 148039, upload-time = "2026-08-07T10:46:41.165Z" }, + { url = "https://files.pythonhosted.org/packages/e7/1d/8e150b7fc449a1f33c8a760965cc1f43b14fc1577d9d0b50ab2701420e74/librt-0.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c70bc1b602cf59917e8f0c7a2cbc8bcc6fbc14d5486136b00707a79619121d63", size = 153067, upload-time = "2026-08-07T10:46:42.418Z" }, + { url = "https://files.pythonhosted.org/packages/51/87/a162bc5a66a35599dc619ecb215145f4de7d68e886b479b6d12593139f7c/librt-0.15.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:814ff83a25b5fce8b9c80c4dd803153fb5c5599fc74db9e022466938368957ef", size = 493087, upload-time = "2026-08-07T10:46:43.657Z" }, + { url = "https://files.pythonhosted.org/packages/e5/3a/aeea1fc620cf48060d3065b37614edbf97043c099d0f50782bc8ca61d897/librt-0.15.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:57f5eeb6ad4c180de583b1038e61fe5fbd9796bb69a8a1c1a0c7ddbec4c8c60f", size = 485608, upload-time = "2026-08-07T10:46:45.038Z" }, + { url = "https://files.pythonhosted.org/packages/52/ff/fe571ad416f0856fd0d5578ffc2e6dc531891e586e36b647bcf50569cab8/librt-0.15.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:82909c8f7eb9952656b65d3147afde4cf8e6d5a991eebc86418b5e65843b0ab8", size = 498723, upload-time = "2026-08-07T10:46:46.35Z" }, + { url = "https://files.pythonhosted.org/packages/0f/e1/7a65eb5dedb1f00aebd948cdd8e17add48bf066cab3514e9daf84ab45a6c/librt-0.15.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f779070399f991400fc451719e0ea388eb7de313388bada2c127a35de05f798a", size = 516002, upload-time = "2026-08-07T10:46:47.599Z" }, + { url = "https://files.pythonhosted.org/packages/5f/45/59832b0ebfbd08c2742e6ece372ceb53f18bf1faef5d33c8daf3abebf749/librt-0.15.0-cp311-cp311-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bac89069bc496ebdf4f79ebb57bbd10d0b214c8454225deb672d91002bd17e18", size = 508607, upload-time = "2026-08-07T10:46:48.873Z" }, + { url = "https://files.pythonhosted.org/packages/ea/0d/37fa73f3b43ebd8259f91ae9102a15e5a54e65d581e48dea72df3e81d7a4/librt-0.15.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e0d00c708fb2f5822b152429b1ac80a58dbbbc3f6c232c4d13a3f7fcf2ea5b4c", size = 530422, upload-time = "2026-08-07T10:46:50.45Z" }, + { url = "https://files.pythonhosted.org/packages/26/02/e046c6fe7a5881ac34623242192f484426ba8a75595fd18f22c53a3f530f/librt-0.15.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6c6624fe268625869485553dd7cc1daf30d22558215bb2a4ff16f67a9801a31a", size = 534303, upload-time = "2026-08-07T10:46:51.693Z" }, + { url = "https://files.pythonhosted.org/packages/95/32/d5e6d861ab0366f3edf74f887ab0c9eb9f535aaf01d32b80b4f734daa179/librt-0.15.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f56b397858a23dacf35ede366ed2212fdc03a6a57a1ad36468ad6e9dc5fac091", size = 536084, upload-time = "2026-08-07T10:46:52.951Z" }, + { url = "https://files.pythonhosted.org/packages/2a/de/d69d725513fe53fc90c6d7a1f86e4428939bad2fb905b17fe4c18d413dde/librt-0.15.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:4388184646efe2054911c5b00a1077d6d1ee86a95b7e8ba96dc7850a809f3f40", size = 514307, upload-time = "2026-08-07T10:46:54.194Z" }, + { url = "https://files.pythonhosted.org/packages/36/93/f8aded0d6682b4f25820fa86e0690f87f01df9fd7bd09ddb04d9167ad021/librt-0.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:97335f59082f9fe2ce6c2a9cc6433a0114bbb6cd4d5c09dd76c95c68b9f9a8b0", size = 557686, upload-time = "2026-08-07T10:46:55.443Z" }, + { url = "https://files.pythonhosted.org/packages/74/09/ffeb6bdeb6cd862b4272fddc8ad05f938dd25d020ed517e631813917d80a/librt-0.15.0-cp311-cp311-win32.whl", hash = "sha256:83380ffde38062a2e9bb55d83e74474f6614665528b98a6928720fc006dfffbb", size = 104917, upload-time = "2026-08-07T10:46:56.605Z" }, + { url = "https://files.pythonhosted.org/packages/96/28/7e2313a3ffbf0b4de7ba3da58a09e488507b4bd1ea2b5e69378354a23415/librt-0.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:f75720477ee05d509a310e856cacc8d909adc182f7b91193c207bcc26d7ee6db", size = 125886, upload-time = "2026-08-07T10:46:57.729Z" }, + { url = "https://files.pythonhosted.org/packages/39/9e/04b8c3cde014ef255ee785730425268354543acc38902093a40afa0dc164/librt-0.15.0-cp311-cp311-win_arm64.whl", hash = "sha256:256237037a3ab001ae8d9803b2d43562a4c3aa38739843694349e4d5ebb0fd56", size = 111885, upload-time = "2026-08-07T10:46:58.787Z" }, + { url = "https://files.pythonhosted.org/packages/ba/39/99c25030e782bdfb7a21be8c05254806a2e4bbb05c8d50c2a2130acbfa05/librt-0.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e87bc679f86a99aa3b26e3c78eeb821a247c9a28eae48eaafcc32c3bf4c3bb9e", size = 151021, upload-time = "2026-08-07T10:47:00.057Z" }, + { url = "https://files.pythonhosted.org/packages/14/43/f4b1bd1b2888798a1409808889a25ea1ba49eaabce7d681ed27734c2df9d/librt-0.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:71599e011ac880e8e45d46047d714871894c7d4ab6f25626f8d4f89da21f368d", size = 155267, upload-time = "2026-08-07T10:47:01.311Z" }, + { url = "https://files.pythonhosted.org/packages/0c/db/3ad9c965c72f1e1d6beeec44ec10a54e17be8ae042fbb4baade16cbadced/librt-0.15.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c802434092b769b1d613ed2e13fac15fbfce1934a74bd10283b03c0fae231cd1", size = 503136, upload-time = "2026-08-07T10:47:02.45Z" }, + { url = "https://files.pythonhosted.org/packages/4b/07/5888a6d76acd62ebce66c61b74d94e9370b9c32929f111e487bb6546f8ed/librt-0.15.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:5500eeae393a184d14e1f35645962c27129d20c81afa4069e6ef826ebc2b3aaa", size = 496670, upload-time = "2026-08-07T10:47:03.675Z" }, + { url = "https://files.pythonhosted.org/packages/29/39/ab57cc2f5b276156da02bb7f5a8921bada1cb1993ffec99acf811c602c23/librt-0.15.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6ecfc32dfb46fb7b565bcd6abf9412acf978775a998273d22888a6d7953730dd", size = 513688, upload-time = "2026-08-07T10:47:04.981Z" }, + { url = "https://files.pythonhosted.org/packages/a7/b9/bdbb0b648b5c2befb031f4c6f3b1dd857415e8fb492a25a3c764a6681e6c/librt-0.15.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:89cc46cfd15022e35084355478c9ac809d90b1152222706ac9a7655ec21df6fa", size = 531904, upload-time = "2026-08-07T10:47:06.211Z" }, + { url = "https://files.pythonhosted.org/packages/93/26/473c2e4b6c104e9e58e27ce95fc8005c8bd4fc36cae4f254371125a92db8/librt-0.15.0-cp312-cp312-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d5f51401d102c885b9ca509e62c79b1dbff286e1b9b047fde6f763780789356d", size = 524427, upload-time = "2026-08-07T10:47:07.592Z" }, + { url = "https://files.pythonhosted.org/packages/26/60/03b3abb82b41714671b907bf6989b228e31e6a8af52dec82b5b0728dc250/librt-0.15.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cc30523e3f1a23fb7511cc659834a0d01a1042bb9de359bc1c131cc4ec6c9656", size = 543155, upload-time = "2026-08-07T10:47:08.866Z" }, + { url = "https://files.pythonhosted.org/packages/f2/0e/9bb1f0a4affbd0a1888f4f79dc03ed2a299d9a2c26c59ab2a97dcbf11903/librt-0.15.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:59fe030d8ae4a57e3fb7756bf35a858de74e04066fc8555c53d0af979132af81", size = 546890, upload-time = "2026-08-07T10:47:10.327Z" }, + { url = "https://files.pythonhosted.org/packages/dc/84/6937a280d461f7de6e031ffb02edc2b7c3c90d49d630565ce8ff27cbc5f2/librt-0.15.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5a6526a2a956bbb1e4ae3568c82e650fc99119c66bb011ea60715744955a2b4d", size = 555163, upload-time = "2026-08-07T10:47:11.798Z" }, + { url = "https://files.pythonhosted.org/packages/bc/95/2a2853c1ee014bf102116e7f897a04beeaeb2461b45b79af98bdfb95f1ef/librt-0.15.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:85ea21ec6730194d67156b0e0b5430ccb1d61f8b8b907e39b37f9812b74a13f0", size = 535812, upload-time = "2026-08-07T10:47:13.279Z" }, + { url = "https://files.pythonhosted.org/packages/c9/4c/cf9601c1b4c5f09280acd5d83abdb2e68527a2be8257136eb42304218622/librt-0.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1e47b8ba865d7ede071a91a7163073bbaeb72541f1ef8a07d512c45c7b5007f2", size = 573688, upload-time = "2026-08-07T10:47:14.727Z" }, + { url = "https://files.pythonhosted.org/packages/47/6d/9ac7cbec46189a7625af4b5acbd25f10d827f4141b2002181848c8418923/librt-0.15.0-cp312-cp312-win32.whl", hash = "sha256:a5207ec414d1c4a2a7231b2086970dc036f94293cdf338190984958a013a42f1", size = 106138, upload-time = "2026-08-07T10:47:15.973Z" }, + { url = "https://files.pythonhosted.org/packages/38/d0/2ae99c83be86ce23f925ac1aeeedc777e97f427c4a8d190c70d0a16e9a87/librt-0.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:73b30cfa976659b3917c8f6153bdb0591c6a9ec6583599fd24a689b690622022", size = 126974, upload-time = "2026-08-07T10:47:17.049Z" }, + { url = "https://files.pythonhosted.org/packages/5d/ef/dd24f9635c730b86b87587967dda7516b1845e8b17684603d31607fed598/librt-0.15.0-cp312-cp312-win_arm64.whl", hash = "sha256:a54cf9e0ef47b96af580849db5471142200568ce1e02cbf416addab551369570", size = 112292, upload-time = "2026-08-07T10:47:18.222Z" }, + { url = "https://files.pythonhosted.org/packages/e7/42/467b53a601b406ccd7b97c1fd54b59cb34f9185ad5ce7e9d5c3c4e8961c8/librt-0.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:db13ca398005abcbe538deda87b686d9bd08b7001cf40c4c06b444960ae10a26", size = 151029, upload-time = "2026-08-07T10:47:19.312Z" }, + { url = "https://files.pythonhosted.org/packages/3e/e6/36c2299b7a94b84fdd01220d8a777a71be5be0925bb0dbdf71c0a06a34d9/librt-0.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa1f1995789dca3698bc550aaceb09a51bd5df0a057ff84ff15296cd1975b801", size = 155194, upload-time = "2026-08-07T10:47:20.398Z" }, + { url = "https://files.pythonhosted.org/packages/c9/b6/ed5071f9325845e670bd36012757419767fbf56af77ed483077b9e4db541/librt-0.15.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:55456ea87d8df21808446d03817be2f65e20391c1c615d9187440dff28cd08dc", size = 502568, upload-time = "2026-08-07T10:47:21.652Z" }, + { url = "https://files.pythonhosted.org/packages/7f/81/6450c67c3615d87704bcbc21323fafc69c799b06a044c447529f725d4b01/librt-0.15.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:5a86a5a08c2235316bdb359d5dbb6ce0abfca7fac06363103e2c5af571d92f95", size = 496153, upload-time = "2026-08-07T10:47:22.925Z" }, + { url = "https://files.pythonhosted.org/packages/e1/d6/5f52b722bc75076954b3bfd49be15ea362df4d580c6fb315d0f617100d30/librt-0.15.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e56b6a368529bed262da40ce13f8fef590db0479819cca84f16a1f01ac356d0b", size = 513336, upload-time = "2026-08-07T10:47:24.213Z" }, + { url = "https://files.pythonhosted.org/packages/8d/e2/c08fd1d36ce63ea5a12b85c5d37f4550b5f86a692167e41e5a74222607ae/librt-0.15.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:234d8d394721fa0d786af15ebf1f3fb7f3ed82fd1cd0cde45c2f247b5d4281d2", size = 531661, upload-time = "2026-08-07T10:47:25.507Z" }, + { url = "https://files.pythonhosted.org/packages/3f/d8/d9482fcbeb177b9eb87bb3899eeb3b42be690313c652f9e146b1d0681fb2/librt-0.15.0-cp313-cp313-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d8363d7accb0286ac3a0e633f396e93800dafb8150494505daf9515bbda591f3", size = 524487, upload-time = "2026-08-07T10:47:26.79Z" }, + { url = "https://files.pythonhosted.org/packages/10/cc/075171517b41f861753034fbb151b42cfc83bcc853849f24f5e66fd60ccf/librt-0.15.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0f0ee3644d951f31055ad07d77d92520e84505dd7a432cc4cd501dd70ee06785", size = 543201, upload-time = "2026-08-07T10:47:27.999Z" }, + { url = "https://files.pythonhosted.org/packages/b0/03/42c2330f37eeb475b6affeedd06518f60035f323af3a839335e3fc9fef2d/librt-0.15.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2cfd1a81a648806e6a7717be4cc4d1bb392fa229752bf8444ba365e381e984d6", size = 546467, upload-time = "2026-08-07T10:47:29.396Z" }, + { url = "https://files.pythonhosted.org/packages/57/1e/1ad4c5638f7e64d8560328bd25c54b409a661bdb6ff254b38ff90744288d/librt-0.15.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a6cd22c9da0d866558e46a041f1cc0c2bbb26b61b137b2347fa834c332e1d101", size = 555139, upload-time = "2026-08-07T10:47:30.815Z" }, + { url = "https://files.pythonhosted.org/packages/49/41/39fa7d15db1204cd1cbe6514680fbdc243adf754a0885061308f43afc013/librt-0.15.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:6d5225ef8801e4ea5e482fa9b5dfb891dd9ef6f6d870f1f25d449ca2c70ac218", size = 536050, upload-time = "2026-08-07T10:47:32.222Z" }, + { url = "https://files.pythonhosted.org/packages/1e/88/c6dcf0dd8e26dc0c9a499a2abab8646c86dcaf9ecea9524cb46d3686331a/librt-0.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d28a05796b99f749bf8794f17ba9ba1612d0076b802e9cfc62c554634e9ce3b", size = 573700, upload-time = "2026-08-07T10:47:33.527Z" }, + { url = "https://files.pythonhosted.org/packages/1b/9b/ab54c71a7918a7c34fa5327fb61390a77446a07a146fbfb1165250a61035/librt-0.15.0-cp313-cp313-pyemscripten_2025_0_wasm32.whl", hash = "sha256:2067ff438048cead9d223ca5675bae2a25e520a7c3e6c1498bf9c6892d22caab", size = 82194, upload-time = "2026-08-07T10:47:34.835Z" }, + { url = "https://files.pythonhosted.org/packages/8d/b2/4f9a243bb892395f3becb80789ade13771701091f9f07ab8230247953ba8/librt-0.15.0-cp313-cp313-win32.whl", hash = "sha256:1cd3b721f24c206398b9e26da3c3a9c011e6e89d06f318ba8ebefc30f1003890", size = 106231, upload-time = "2026-08-07T10:47:36.251Z" }, + { url = "https://files.pythonhosted.org/packages/bf/af/64aff4885a40b93132382f2c314647d722574605416504379184ef3045ea/librt-0.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:f395a4a9a03ac062dbe9a9f82e0c720502e590a38feee6a757bc82e9c63afbd8", size = 126996, upload-time = "2026-08-07T10:47:37.453Z" }, + { url = "https://files.pythonhosted.org/packages/27/83/335bccf6c7cb9028cb0b54aead27d9ece3f01f83bc6baa2abace5da655c1/librt-0.15.0-cp313-cp313-win_arm64.whl", hash = "sha256:0a15cb554761247d84a3ec0cbdf4078d70725384f0e4662c0fa3b26266eb60ad", size = 112188, upload-time = "2026-08-07T10:47:38.729Z" }, + { url = "https://files.pythonhosted.org/packages/a8/93/949053fb462eecc4a9a5ee770a81f4b40be7b79538b245545d4aebc6b58b/librt-0.15.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:f5de7feedc56337a088eb15cd9fafa9938367362221d8cc62c642b7f94821993", size = 149833, upload-time = "2026-08-07T10:47:39.86Z" }, + { url = "https://files.pythonhosted.org/packages/61/ca/8281aa6cd560a3420e4497729f6b704b53be3eeaaef82d5aeadddaf7441f/librt-0.15.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6c0eb900c0e91f4aebe680845242e614f1864edfd44106380d0752ac29522bf8", size = 154088, upload-time = "2026-08-07T10:47:41.065Z" }, + { url = "https://files.pythonhosted.org/packages/dd/02/1a1662dceaba6a086360891448d5ce9a7d3555976cae59a31a39d744b9c7/librt-0.15.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e8c9a650a188e38bac005048cbe6342e81407782944d01934540ab75e417df21", size = 494215, upload-time = "2026-08-07T10:47:42.388Z" }, + { url = "https://files.pythonhosted.org/packages/69/84/99211619dc656370a3740c33d2b0b6d5a3fb1e73689314f6ed477a397dc4/librt-0.15.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:92bfed8deec93df30286b9fe9e3b1dd17329cc076a192b4ee5ec223841d54953", size = 491173, upload-time = "2026-08-07T10:47:43.683Z" }, + { url = "https://files.pythonhosted.org/packages/d4/aa/5448d0b05f4579b635d3899176817ebf561af0e57bacd425b5b1887264c1/librt-0.15.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ec4b19788f835711a2072f9dbe6b03b3bf32ed1f0fb30cf399bdd59d9f0c33fa", size = 505512, upload-time = "2026-08-07T10:47:45.314Z" }, + { url = "https://files.pythonhosted.org/packages/95/82/01940e40b83c43a546c4a3c896cf34ca272a9690899d55914e4827b3dcce/librt-0.15.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d4c7bacb70930f3d0a56f4ecf1be474a1f0d941b01dd73b756f3c256d42cb879", size = 523073, upload-time = "2026-08-07T10:47:46.66Z" }, + { url = "https://files.pythonhosted.org/packages/88/fa/759c0030f3ee371439eb26de34fc745807caf0abb878af7af4b8b7c3dd3d/librt-0.15.0-cp314-cp314-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3e79f05e4a08b4d880342673312bbc895b56df7765605796f15902eb5367d3ae", size = 515080, upload-time = "2026-08-07T10:47:48.319Z" }, + { url = "https://files.pythonhosted.org/packages/0b/27/894e072228fcb159703c655da69f8cd10dbed489c36e3df7dd032a2483be/librt-0.15.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a417149c0cba4d50b61e992e5a15e69eaf96746609b461cc4ed168aeef6b79dd", size = 534164, upload-time = "2026-08-07T10:47:49.875Z" }, + { url = "https://files.pythonhosted.org/packages/98/a3/0078e91c1f36f8815db17827de15650b9a3fe56c55fbf998c854b34e40d3/librt-0.15.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:da7a94d6a3411f579d72aa3e3bc5fbca7ed4549f3dbd7e5de3aa567333374285", size = 540616, upload-time = "2026-08-07T10:47:51.408Z" }, + { url = "https://files.pythonhosted.org/packages/86/33/81a29b796dd52a45e9ef7974c7732926e8f10f15b8d2be505665979f896d/librt-0.15.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:856f743ae607f2c1380eccb566c0038a9fb3eabf0fc2be2704d76d9f73557239", size = 545890, upload-time = "2026-08-07T10:47:52.818Z" }, + { url = "https://files.pythonhosted.org/packages/05/82/8be1baa1350e5d30cfd70ae79d0a6f4dc5862ef47f7bb2808aabc9bb86e5/librt-0.15.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:779a6e7c894737e5983e7790a9c78c4000c30e23c9aada08081bdbea53b0fa60", size = 523287, upload-time = "2026-08-07T10:47:54.165Z" }, + { url = "https://files.pythonhosted.org/packages/c6/4f/d1be6a01a35c20ef734e0e44113f87d4af756a9354a89dcfbe3b4f8af5e1/librt-0.15.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:96bb17dbe8bab3c0954fbebfc69ed395599de75b6bbc35e3270a878e15d4dd65", size = 565868, upload-time = "2026-08-07T10:47:55.566Z" }, + { url = "https://files.pythonhosted.org/packages/67/88/649cfa33f5825927b160610f670bdab012a64d627eddb94fa795ea4292fd/librt-0.15.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:7220697efaa6e5348fc3d18ee7f8563d4bfecd9872b37ffb915bfc1d08840622", size = 81619, upload-time = "2026-08-07T10:47:56.886Z" }, + { url = "https://files.pythonhosted.org/packages/22/31/8e88a8d5e48fc8d1a817787fb6811dfff6499acd6c8683dd83934aa6ede0/librt-0.15.0-cp314-cp314-win32.whl", hash = "sha256:f54598964d357b1c5ab77cf5d92f21e598fe0e23cdbe9618480807f81b4eba15", size = 100138, upload-time = "2026-08-07T10:47:58.093Z" }, + { url = "https://files.pythonhosted.org/packages/80/92/20fd6c4b6a1b1a564b076d55cd3d427d8428217d7638dc25a654cc4791d4/librt-0.15.0-cp314-cp314-win_amd64.whl", hash = "sha256:3ff5893a2c23d886aa9ce786de5ac6ddc74aeeaf90743682b74d920e117d2e28", size = 121258, upload-time = "2026-08-07T10:47:59.564Z" }, + { url = "https://files.pythonhosted.org/packages/fc/28/6af430b44d9ebb897b865a3c363b6dcace51357be2347cc0f8f869656a86/librt-0.15.0-cp314-cp314-win_arm64.whl", hash = "sha256:3722a099730704c9a3d70c879fc0f51daec25fe5f1555672d97bc595abeafb95", size = 106467, upload-time = "2026-08-07T10:48:01.097Z" }, + { url = "https://files.pythonhosted.org/packages/7e/aa/b42bb798942ced219f6d63b27e07f91237887a8d0bd0921666db79a13790/librt-0.15.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:38c0c7d4b6fc06c3324b3f9162c8391bfc4fd9dde53afe1033ce7edb48d5a714", size = 159523, upload-time = "2026-08-07T10:48:02.442Z" }, + { url = "https://files.pythonhosted.org/packages/75/03/1b53cd4ef904e73b1d828a5f90143bf94a2967d7cfff0b9ccf93e12aa9b4/librt-0.15.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8b2fdd7ead3c995c37940a790690660d0ca006c302db26cc51933f6766866fc3", size = 161638, upload-time = "2026-08-07T10:48:03.725Z" }, + { url = "https://files.pythonhosted.org/packages/ac/c4/9f9c9fba097d49e9e694c2b4dc331df31884645ecbc58a93b4b5fc69d2c5/librt-0.15.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2fde98cf1fc4bac144ce23c2c4c017b924ba714509ea9334977b0b27050c837d", size = 701795, upload-time = "2026-08-07T10:48:05.135Z" }, + { url = "https://files.pythonhosted.org/packages/4c/05/0966840bda0380c8ae167b9043c6230202941cc90ea29c48e096964c765e/librt-0.15.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:e3b461183c5fa7681b48560f91515f53a953122fb30c71e07abc67d7ddf58c38", size = 682147, upload-time = "2026-08-07T10:48:06.555Z" }, + { url = "https://files.pythonhosted.org/packages/18/af/1c47ca573c30ea47d195aec26133af522fea1104afaace028d7b32247ea8/librt-0.15.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4bbcc257e3babea20a91715c361b24554ec4e8f51aa578568afc230799fe1a19", size = 696397, upload-time = "2026-08-07T10:48:08.03Z" }, + { url = "https://files.pythonhosted.org/packages/2e/0f/1aed6223d4f9f9d1171a8596ff100ea4c3f7699fea7a4ba657c3e60daa6c/librt-0.15.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b845b8d48088fad0cadc84be4b8fda63203be7e9237b71015b3925443c1f35ab", size = 722542, upload-time = "2026-08-07T10:48:09.569Z" }, + { url = "https://files.pythonhosted.org/packages/c6/22/9e3a929aea456c97d69e6ef3884efea56d4807f97399471cc946baebd8af/librt-0.15.0-cp314-cp314t-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b30e600e8f337b9bd7f39b86d9fdfedc73cc46e3d0f745931a23a234220bb7e2", size = 729709, upload-time = "2026-08-07T10:48:11.129Z" }, + { url = "https://files.pythonhosted.org/packages/e9/1b/c327ef6018e3a9ca0b8e7c5eddeeb331ba8f9b76c24e126d37d0f6d62faf/librt-0.15.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:64b0c8c35aa4c4ed79896359f3e0b285cbe4e610042106500da4811c322cc108", size = 752891, upload-time = "2026-08-07T10:48:12.558Z" }, + { url = "https://files.pythonhosted.org/packages/d7/d1/d5f1ea02c56930087009e39db9b70660a663e76c730b27b925d786718457/librt-0.15.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:0da0d94cb802f32a0524653e7201f2cef72d5f700a5407678f5290483d4fcd08", size = 745301, upload-time = "2026-08-07T10:48:14.55Z" }, + { url = "https://files.pythonhosted.org/packages/d9/3c/5f7c585d15ebb2250c73e7c0ee4e9e47be72c65d520c07ddbcdc62037674/librt-0.15.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:4a6369168d371207339b1e50d4532b06a7121586141f82599505a3f315751d47", size = 747921, upload-time = "2026-08-07T10:48:16.453Z" }, + { url = "https://files.pythonhosted.org/packages/7f/52/1443a446486eba966bcbca1696b472e4f210320ec42f490a47f48fbf0fdc/librt-0.15.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:c434e072557ade9cbc642d052c89d031efe47d5c9614523619d0d74a02378e81", size = 727561, upload-time = "2026-08-07T10:48:18.089Z" }, + { url = "https://files.pythonhosted.org/packages/79/91/2270a9380f11725cf83ce1925a5e32dd1dde2be9bba597f25c10a38644e7/librt-0.15.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c7eec6a42018bc1d45763b1c162d3d2bf7c3b9a1b0ed30d3e91dcba390efefcc", size = 774417, upload-time = "2026-08-07T10:48:19.611Z" }, + { url = "https://files.pythonhosted.org/packages/9e/3b/f4b1548d4f5b99186737fe27aec238e9823e8d5d23bf4df007c030689dc5/librt-0.15.0-cp314-cp314t-win32.whl", hash = "sha256:6912fa5e635d74529ac7cdb1bdf6ca3af4453da8d1edbe0110ee1cb4ad407ebf", size = 104381, upload-time = "2026-08-07T10:48:21.048Z" }, + { url = "https://files.pythonhosted.org/packages/80/b6/134afad262def1de04c0843c376d02135f1168af43f22e09a52bd8394727/librt-0.15.0-cp314-cp314t-win_amd64.whl", hash = "sha256:8e11699ed745931c395acd3621b07062e0f840efa6935aad87a64ed0995f0915", size = 127034, upload-time = "2026-08-07T10:48:22.561Z" }, + { url = "https://files.pythonhosted.org/packages/99/5f/1b6846b20572bd699c9e9ec321a5f781845bee477df2aa2a43b28bc40119/librt-0.15.0-cp314-cp314t-win_arm64.whl", hash = "sha256:5d2a91724463bfed4f573cd7a9fdc856d2e230d0c0e5a61416a93481dccd8605", size = 110827, upload-time = "2026-08-07T10:48:23.804Z" }, + { url = "https://files.pythonhosted.org/packages/c6/44/4de9f4ddadb009a55c7758eb5736d62534a7daaf27bd71bc50e64b606b06/librt-0.15.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:8443e38dcfcfdbcf5add5118c623efd788d65ac2e25756d6251a54a06a4d0aca", size = 149843, upload-time = "2026-08-07T10:48:25.148Z" }, + { url = "https://files.pythonhosted.org/packages/1f/eb/5d9ab71e30119c44094e0275f38b47dd327aea0f843a080396677029d508/librt-0.15.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:6d15a29033c57490cfe2069097c6fc4049e4e65ffbb749be7dc453b7c4c68965", size = 154510, upload-time = "2026-08-07T10:48:26.485Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9c/8505d1b8f5e8c19587bd03f7429993b3e9ce5c06819d856bfb11d919374c/librt-0.15.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d2c05c729b589e734c09578bf5964be48a911765484840d017bbc84f49d4c4ad", size = 497543, upload-time = "2026-08-07T10:48:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/1d/9a/3a8390775cb095765aded027ac9c63e7c8ea74e731498607544c6505de0e/librt-0.15.0-cp315-cp315-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:fa60887537e1d0cd2d9982269d33a709bf54b195cd2b9364fc0a758022af5bd9", size = 480452, upload-time = "2026-08-07T10:48:29.531Z" }, + { url = "https://files.pythonhosted.org/packages/e7/40/258a4a7117ee915d66de5cd9b8ade65a440993161107ce3a686f1859955c/librt-0.15.0-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d8bc24219b24c0af375718942ab75e3544b2763085f40f965be4326734ae8328", size = 507768, upload-time = "2026-08-07T10:48:31.007Z" }, + { url = "https://files.pythonhosted.org/packages/6b/c6/2f4dd296c97a0b85b98894519b279408ec9dd602d4f692b1ea0e25dee670/librt-0.15.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:86a21a7bd3fe3a419512ef424cc1c020f6771d0b29cfddff36d1635a855e63f0", size = 525122, upload-time = "2026-08-07T10:48:32.7Z" }, + { url = "https://files.pythonhosted.org/packages/49/dd/29eab42be13b2bf0ea8cb227135a45d44693e30a7e8b92871981ff56b82b/librt-0.15.0-cp315-cp315-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:dbab647e88d90b3167b91efe7091e248653688ed4337e4f90907a722c7361bb9", size = 520371, upload-time = "2026-08-07T10:48:34.294Z" }, + { url = "https://files.pythonhosted.org/packages/91/ed/4bad71adeca8fe208b775c2a35417fa5a2584c8f4791daaf89a89450fea1/librt-0.15.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:d8edcf6f550e918dca779c069b9e156385c60b406f99fc7641f32c52f7193659", size = 537258, upload-time = "2026-08-07T10:48:35.88Z" }, + { url = "https://files.pythonhosted.org/packages/4c/63/59dba6143fdcc7240c54458b629f3250000a61b8945890fc9efd451b19c5/librt-0.15.0-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:8b62076030baa2d8b1501a46bf0e19c27a489aa90671c55665bff7887f7660b0", size = 527432, upload-time = "2026-08-07T10:48:37.466Z" }, + { url = "https://files.pythonhosted.org/packages/ec/21/21a24c6a2327d8362580efebe77286bf47b0f4062ec5ea41766e609d3c7d/librt-0.15.0-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:d00d20d1818e82a07a0ee0aa89a98b17ed7916b92441090b683719cb20a59b6d", size = 548108, upload-time = "2026-08-07T10:48:39.384Z" }, + { url = "https://files.pythonhosted.org/packages/5a/6d/fc68c89a7971418b41f9a873623ff935cb864097544c6a2f8ce491c8ef5d/librt-0.15.0-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:4e6ee93fc3cf848dcbf0cce2eca73d8e7dcd0cc2b6df3a529d57750b30a4c55c", size = 529681, upload-time = "2026-08-07T10:48:41.392Z" }, + { url = "https://files.pythonhosted.org/packages/65/7e/c2d98766124400d722063a630b0fde38a9fc768705d37eecca15c47dc192/librt-0.15.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:32896a0af72508ea979e0acb4e4c04cbeeae04938167950d535c83c45597167d", size = 567736, upload-time = "2026-08-07T10:48:43.124Z" }, + { url = "https://files.pythonhosted.org/packages/55/6c/f8c34a95e3a515c6e1c192b89511e7253c89a7760c6b500d57ffdb8d2dc8/librt-0.15.0-cp315-cp315-pyemscripten_2026_5_wasm32.whl", hash = "sha256:ec3ba415afaf951f6951b1dd16d3c8e4f540065fc382d7e70b823a79567ca374", size = 81673, upload-time = "2026-08-07T10:48:44.645Z" }, + { url = "https://files.pythonhosted.org/packages/c9/9e/e23fa8e78679ec45728188650b39e8ff476c83b691c96f749217df3b1b7c/librt-0.15.0-cp315-cp315-win32.whl", hash = "sha256:d2813ba2503764f0450680c533d13df7cff9b49df1411062eded5f67db4195b9", size = 100081, upload-time = "2026-08-07T10:48:46.171Z" }, + { url = "https://files.pythonhosted.org/packages/e1/dc/3eb4c5e297343f0620a55532cd7c8d764d3001fa2159212dadf480464827/librt-0.15.0-cp315-cp315-win_amd64.whl", hash = "sha256:b87d67e33afaf265262f2a66db578284b88ee2e6fcd224579cb5c15518677ad8", size = 121228, upload-time = "2026-08-07T10:48:47.631Z" }, + { url = "https://files.pythonhosted.org/packages/97/70/43abce19f04e49762f8ec834c8fafee13cc40fd6b94a72a24e534febfcd0/librt-0.15.0-cp315-cp315-win_arm64.whl", hash = "sha256:713bd7df21170b982e729e46870f31d6b437bd1a9b4648cffb529bd3c2ec5c4b", size = 106487, upload-time = "2026-08-07T10:48:49.095Z" }, + { url = "https://files.pythonhosted.org/packages/de/15/83f2deddb9368b8951ec8c9477269b5b9b8bd9bbf15e57402d0f38817dca/librt-0.15.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:3de789c82752730f94782a5ee518baf9c05edf85733aeaf73bb6e518755cdf54", size = 159448, upload-time = "2026-08-07T10:48:50.649Z" }, + { url = "https://files.pythonhosted.org/packages/06/bf/043097353f9b3c73b583d07f6b8e552795463f4bfc8caf85e42eee50c26a/librt-0.15.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:e0b5deec9a8664eb722c797241970fd4aa1894d25fda36a1ddac0f7407606bd6", size = 161686, upload-time = "2026-08-07T10:48:52.174Z" }, + { url = "https://files.pythonhosted.org/packages/f4/2a/8ae77f9719d42ce71cd708560a3557b38ac3c17a0383e57f87084de45bbe/librt-0.15.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5563302a8359bc2295bb7084d1a8ed1519df96afb30eb2aa4e0bff7b54228988", size = 710668, upload-time = "2026-08-07T10:48:53.782Z" }, + { url = "https://files.pythonhosted.org/packages/61/34/c0436ea134deb9a0d6da80a396a2739a81cb31e0418f7227239e23140898/librt-0.15.0-cp315-cp315t-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:22d6263b9d39d7bbb286fa791945646e3218f1be2d693e36fb630f1d0e59cd13", size = 679396, upload-time = "2026-08-07T10:48:55.645Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9f/001e0d99aa9250d5cd5715a9081291a20656083459f9019cda15255329e1/librt-0.15.0-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:39ffd14646190c454f0d86e0d256b33f00a87a26ab410e619773b841d0e41416", size = 704313, upload-time = "2026-08-07T10:48:57.46Z" }, + { url = "https://files.pythonhosted.org/packages/2d/53/b34fa9d0ff00f136f4d58ebb4c411ff634baed1eb412bb602a2bc8dcafcb/librt-0.15.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c47318cd3a61401452de11282242937e3e057c4fd3dbaf601e269d0928a06c0a", size = 729847, upload-time = "2026-08-07T10:48:59.231Z" }, + { url = "https://files.pythonhosted.org/packages/86/ac/fa4d7a424665040e95baf480a6d523446057684b6758624c85338e8a23b2/librt-0.15.0-cp315-cp315t-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a56a1d4f859a82ca5b99fc4b82c9b027b15e3c455c5cd99e7d0719f27bb20b6c", size = 742736, upload-time = "2026-08-07T10:49:01.151Z" }, + { url = "https://files.pythonhosted.org/packages/8a/f1/e17a9bb5de6fb8c3186ed1a7d68d21618b027ac2d3633e03d3b6109c67ae/librt-0.15.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:077471b3182db4e17c36ae91555f36a4d2c00080b267f749bcad34a478a9a302", size = 763454, upload-time = "2026-08-07T10:49:03.039Z" }, + { url = "https://files.pythonhosted.org/packages/1d/ec/ecd02cd30935b931b9cdbfed6ab5a099c51b280b4e7baa274da80978ed27/librt-0.15.0-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:411ca4d1b905b860ceba7570dd6717a71dedaddcc4b0f77ece710aa41ee11f8d", size = 743296, upload-time = "2026-08-07T10:49:04.941Z" }, + { url = "https://files.pythonhosted.org/packages/e6/b5/b3c2b8353ce820a4854f78d19321344242f89fa71c975b71132ba9bf242a/librt-0.15.0-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:1256589e0b0adb31751d685a68bce29d73407ddf4ef05d4188f49d5dcf9566d9", size = 756217, upload-time = "2026-08-07T10:49:06.825Z" }, + { url = "https://files.pythonhosted.org/packages/3c/52/6cc22542ba59146b05cca2a656f9ff8bb67e38e63d12c3b0cc183d837bf1/librt-0.15.0-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:f42b74a53e5f26a0ba0007411a7455b66c67ce4022a39cc1f56fc4efd65bcbab", size = 741934, upload-time = "2026-08-07T10:49:08.839Z" }, + { url = "https://files.pythonhosted.org/packages/40/32/a04b72b1aa86e3be23b2ecff8c1aad2dcc955bd3956d6d26e7e34267e57a/librt-0.15.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:291bf73caf78b9e88d6fae9bfd693207ff7d832e2fdbe2cf8e746bc13f5f892b", size = 783763, upload-time = "2026-08-07T10:49:10.661Z" }, + { url = "https://files.pythonhosted.org/packages/6c/f0/89eb11dffbe9279ff37144dec786927314502ae0b114f1449dc78c458aab/librt-0.15.0-cp315-cp315t-win32.whl", hash = "sha256:c16d15ee371643ab48dc8248a3e680ebbeca573a13af2c3dd0c985b142d77162", size = 104313, upload-time = "2026-08-07T10:49:12.305Z" }, + { url = "https://files.pythonhosted.org/packages/6d/4a/1f1978c200f563beda63c36adff2d65bbecb81e365e8e69e572f5f70fbc6/librt-0.15.0-cp315-cp315t-win_amd64.whl", hash = "sha256:dbd605739f228912dc49027cb764456b9757750bdc2b6b7773164db7096c6fd1", size = 126889, upload-time = "2026-08-07T10:49:13.881Z" }, + { url = "https://files.pythonhosted.org/packages/38/a6/800800bfed7b1fb10fc3f3d557785c3854e80d3f7a9800d784b176a1fc2d/librt-0.15.0-cp315-cp315t-win_arm64.whl", hash = "sha256:84d244b00604d17df3fc7736c327892d6bba66181254aa4087be807b6c342bdc", size = 110700, upload-time = "2026-08-07T10:49:15.499Z" }, + { url = "https://files.pythonhosted.org/packages/fd/c8/3f33f32a612139e0e59f9a3798104850e85b70752b0e2cbad586623abc4b/librt-0.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0e2d0c0acf5b0ada7d045912b7cf787c21315c95b38b1fa939ef72d45d366b3d", size = 149546, upload-time = "2026-08-07T10:49:17.007Z" }, + { url = "https://files.pythonhosted.org/packages/8c/d8/e19702379d43f6c9fd54b2dcf0b7824ac01277be581ab701ed066fbe8ee8/librt-0.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f9ca190fe9edc0eb08eec558a509a16d28d91c35667b8f043cba40ed5e77a959", size = 154470, upload-time = "2026-08-07T10:49:18.627Z" }, + { url = "https://files.pythonhosted.org/packages/f0/12/9cc66774b023d4a0fb770e2015064aee60745968395c90a97eb4f6b79576/librt-0.15.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:80811e1c42386ea95c6fb30571d3250ad43d7863f883f787f70517f441150e59", size = 493643, upload-time = "2026-08-07T10:49:20.352Z" }, + { url = "https://files.pythonhosted.org/packages/4d/46/79b7ff1e6d58731ce12d23d9a9cbf969a1b48f7a2db893680783d36c6d2b/librt-0.15.0-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:88c2a17815c266e6d8180204ff62cb739ab869ada4a746d4c505331526ac58f1", size = 484421, upload-time = "2026-08-07T10:49:22.128Z" }, + { url = "https://files.pythonhosted.org/packages/0c/1a/7f2142227c37147f17820b65601d1221c7ff15393c769fdb8450e6aadd8b/librt-0.15.0-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a5fa8f1f916988d0bf1afea005bda37f56ac41a18016e813ccf0097a8d460ca4", size = 497493, upload-time = "2026-08-07T10:49:23.905Z" }, + { url = "https://files.pythonhosted.org/packages/c5/91/053c7396a7d4fe0f731a52ea87803f64251e42a175e28086c79e89738e58/librt-0.15.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:355e3a4c725225a14262004fc1872a552b9d3634b4f791a0dfc80804aafbfd55", size = 515104, upload-time = "2026-08-07T10:49:25.871Z" }, + { url = "https://files.pythonhosted.org/packages/06/dd/34eb3aff3207b44f8c5562f46ab96b821a915c647e8724ac355df8e2eb0f/librt-0.15.0-cp39-cp39-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fc1ed11c4ad0b91af24def2050f2840ea4567828e3dd058fbe608d982f6e5465", size = 508969, upload-time = "2026-08-07T10:49:27.728Z" }, + { url = "https://files.pythonhosted.org/packages/f4/04/3a30b3f0c5103c7c02d902dc0ea27f123b857f63d4a26cd181860d7e7ea2/librt-0.15.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1f4ef2e71db33df4309167ed7f1520c4fae5e611226e159fa9cf33f93e6ddb3d", size = 531810, upload-time = "2026-08-07T10:49:29.736Z" }, + { url = "https://files.pythonhosted.org/packages/ba/50/2964fa8fd1392e65a898938e8bd9ccf19314d7f92abcbc73403abc072051/librt-0.15.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1a1a8cd430c7dd0c083f455cb1b328d7fc682b05c31b940906f7845bdff80881", size = 536891, upload-time = "2026-08-07T10:49:31.687Z" }, + { url = "https://files.pythonhosted.org/packages/9a/b5/724157f9cb5df4bdd3904caf1b1a17031de40dfd35942c3ef66f9e116860/librt-0.15.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:04d5387b908676c0b8d5d2f5fb58373b4ea382d81f7a6f0fab8ea2a462bb4738", size = 535985, upload-time = "2026-08-07T10:49:33.532Z" }, + { url = "https://files.pythonhosted.org/packages/27/00/8bc5b14983c0346abba77ef11b28ef3d3a0e5452301a3cd6c99a15bb73e7/librt-0.15.0-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:1172c6ad2a88b646e7fe3b480e3fac4ab4418b3443fd8a4061fdd531e0622fc7", size = 516616, upload-time = "2026-08-07T10:49:35.459Z" }, + { url = "https://files.pythonhosted.org/packages/06/b6/4938502caf417c8c0c88b60fe6bb5ed8f0d1b59549dd76929f2e1bbf6cd8/librt-0.15.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:52e8db01f603f5da0ca30987479acff98769382efc8e142fa3962395dcf3ffdb", size = 558549, upload-time = "2026-08-07T10:49:37.256Z" }, + { url = "https://files.pythonhosted.org/packages/37/3c/a6682d0c2682f366aeb9d9cec02d6d38c428bb087864fe79914468e25fb0/librt-0.15.0-cp39-cp39-win32.whl", hash = "sha256:e4c911f15a1652ca94ae9f1abd92e74cbb1b3597d2d92fdd556202f94e8cd455", size = 104936, upload-time = "2026-08-07T10:49:39.131Z" }, + { url = "https://files.pythonhosted.org/packages/25/49/d8cd057754799fb59c9d90c8dfb65fc043ee14032e6238a77a5d99556cad/librt-0.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:68242379c9b65a582b6e97318a1e9fbd6d445e58954f2d437991c4804ab11578", size = 125606, upload-time = "2026-08-07T10:49:40.854Z" }, ] [[package]] name = "markdown" -version = "3.7" +version = "3.10.3" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.9'", -] -dependencies = [ - { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/54/28/3af612670f82f4c056911fbbbb42760255801b3068c48de792d354ff4472/markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2", size = 357086, upload-time = "2024-08-16T15:55:17.812Z" } +sdist = { url = "https://files.pythonhosted.org/packages/29/6f/da4c6aea59b3001f2e8c0ec7497475aadaf3b021c10cab5b2858f0f32b26/markdown-3.10.3.tar.gz", hash = "sha256:3589362618f743188b4d955b874402bc814f4f83f544dc207719f4baa7d9c45f", size = 372596, upload-time = "2026-07-30T19:05:29.005Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/08/83871f3c50fc983b88547c196d11cf8c3340e37c32d2e9d6152abe2c61f7/Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803", size = 106349, upload-time = "2024-08-16T15:55:16.176Z" }, -] - -[[package]] -name = "markdown" -version = "3.9" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version == '3.9.*'", -] -dependencies = [ - { name = "importlib-metadata", version = "8.7.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8d/37/02347f6d6d8279247a5837082ebc26fc0d5aaeaf75aa013fcbb433c777ab/markdown-3.9.tar.gz", hash = "sha256:d2900fe1782bd33bdbbd56859defef70c2e78fc46668f8eb9df3128138f2cb6a", size = 364585, upload-time = "2025-09-04T20:25:22.885Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/70/ae/44c4a6a4cbb496d93c6257954260fe3a6e91b7bed2240e5dad2a717f5111/markdown-3.9-py3-none-any.whl", hash = "sha256:9f4d91ed810864ea88a6f32c07ba8bee1346c0cc1f6b1f9f6c822f2a9667d280", size = 107441, upload-time = "2025-09-04T20:25:21.784Z" }, -] - -[[package]] -name = "markdown" -version = "3.10.2" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.10'", -] -sdist = { url = "https://files.pythonhosted.org/packages/2b/f4/69fa6ed85ae003c2378ffa8f6d2e3234662abd02c10d216c0ba96081a238/markdown-3.10.2.tar.gz", hash = "sha256:994d51325d25ad8aa7ce4ebaec003febcce822c3f8c911e3b17c52f7f589f950", size = 368805, upload-time = "2026-02-09T14:57:26.942Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/de/1f/77fa3081e4f66ca3576c896ae5d31c3002ac6607f9747d2e3aa49227e464/markdown-3.10.2-py3-none-any.whl", hash = "sha256:e91464b71ae3ee7afd3017d9f358ef0baf158fd9a298db92f1d4761133824c36", size = 108180, upload-time = "2026-02-09T14:57:25.787Z" }, + { url = "https://files.pythonhosted.org/packages/64/69/4a5af2bc115a9a33fefe51709749de8262be3f9ba063d1753a837cdbc49c/markdown-3.10.3-py3-none-any.whl", hash = "sha256:fa6c92a00a4a3c98b22728c64a935ae1928250ae65058a6ded814d2cc29a4cea", size = 110757, upload-time = "2026-07-30T19:05:27.883Z" }, ] [[package]] @@ -673,7 +840,7 @@ resolution-markers = [ "python_full_version < '3.9'", ] dependencies = [ - { name = "mdurl", marker = "python_full_version < '3.10'" }, + { name = "mdurl" }, ] sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596, upload-time = "2023-06-03T06:41:14.443Z" } wheels = [ @@ -682,17 +849,18 @@ wheels = [ [[package]] name = "markdown-it-py" -version = "4.0.0" +version = "4.2.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", ] dependencies = [ - { name = "mdurl", marker = "python_full_version >= '3.10'" }, + { name = "mdurl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } +sdist = { url = "https://files.pythonhosted.org/packages/06/ff/7841249c247aa650a76b9ee4bbaeae59370dc8bfd2f6c01f3630c35eb134/markdown_it_py-4.2.0.tar.gz", hash = "sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49", size = 82454, upload-time = "2026-05-07T12:08:28.36Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, + { url = "https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl", hash = "sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a", size = 91687, upload-time = "2026-05-07T12:08:27.182Z" }, ] [[package]] @@ -761,7 +929,8 @@ name = "markupsafe" version = "3.0.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", "python_full_version == '3.9.*'", ] sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } @@ -858,26 +1027,26 @@ wheels = [ [[package]] name = "maturin" -version = "1.12.6" +version = "1.14.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "tomli", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0c/18/8b2eebd3ea086a5ec73d7081f95ec64918ceda1900075902fc296ea3ad55/maturin-1.12.6.tar.gz", hash = "sha256:d37be3a811a7f2ee28a0fa0964187efa50e90f21da0c6135c27787fa0b6a89db", size = 269165, upload-time = "2026-03-01T14:54:04.21Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/b3/addd877f871fb1860d46d3a4f206ecb10b946c85846805e6367631926fd3/maturin-1.14.1.tar.gz", hash = "sha256:9d6577a62cd08e0ceba7a0db06fb098e0c9b1b3429bad747a4f3a18215a1b3df", size = 369637, upload-time = "2026-06-19T05:19:49.774Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/71/8b/9ddfde8a485489e3ebdc50ee3042ef1c854f00dfea776b951068f6ffe451/maturin-1.12.6-py3-none-linux_armv6l.whl", hash = "sha256:6892b4176992fcc143f9d1c1c874a816e9a041248eef46433db87b0f0aff4278", size = 9789847, upload-time = "2026-03-01T14:54:09.172Z" }, - { url = "https://files.pythonhosted.org/packages/ef/e8/5f7fd3763f214a77ac0388dbcc71cc30aec5490016bd0c8e6bd729fc7b0a/maturin-1.12.6-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:c0c742beeeef7fb93b6a81bd53e75507887e396fd1003c45117658d063812dad", size = 19023833, upload-time = "2026-03-01T14:53:46.743Z" }, - { url = "https://files.pythonhosted.org/packages/e0/7f/706ff3839c8b2046436d4c2bc97596c558728264d18abc298a1ad862a4be/maturin-1.12.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:2cb41139295eed6411d3cdafc7430738094c2721f34b7eeb44f33cac516115dc", size = 9821620, upload-time = "2026-03-01T14:54:12.04Z" }, - { url = "https://files.pythonhosted.org/packages/0e/9c/70917fb123c8dd6b595e913616c9c72d730cbf4a2b6cac8077dc02a12586/maturin-1.12.6-py3-none-manylinux_2_12_i686.manylinux2010_i686.musllinux_1_1_i686.whl", hash = "sha256:351f3af1488a7cbdcff3b6d8482c17164273ac981378a13a4a9937a49aec7d71", size = 9849107, upload-time = "2026-03-01T14:53:48.971Z" }, - { url = "https://files.pythonhosted.org/packages/59/ea/f1d6ad95c0a12fbe761a7c28a57540341f188564dbe8ad730a4d1788cd32/maturin-1.12.6-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl", hash = "sha256:6dbddfe4dc7ddee60bbac854870bd7cfec660acb54d015d24597d59a1c828f61", size = 10242855, upload-time = "2026-03-01T14:53:44.605Z" }, - { url = "https://files.pythonhosted.org/packages/93/1b/2419843a4f1d2fb4747f3dc3d9c4a2881cd97a3274dd94738fcdf0835e79/maturin-1.12.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:8fdb0f63e77ee3df0f027a120e9af78dbc31edf0eb0f263d55783c250c33b728", size = 9674972, upload-time = "2026-03-01T14:53:52.763Z" }, - { url = "https://files.pythonhosted.org/packages/71/46/b60ab2fc996d904b40e55bd475599dcdccd8f7ad3e649bf95e87970df466/maturin-1.12.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:fa84b7493a2e80759cacc2e668fa5b444d55b9994e90707c42904f55d6322c1e", size = 9645755, upload-time = "2026-03-01T14:53:58.497Z" }, - { url = "https://files.pythonhosted.org/packages/a4/96/03f2b55a8c226805115232fc23c4a4f33f0c9d39e11efab8166dc440f80d/maturin-1.12.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.musllinux_1_1_ppc64le.whl", hash = "sha256:e90dc12bc6a38e9495692a36c9e231c4d7e0c9bfde60719468ab7d8673db3c45", size = 12737612, upload-time = "2026-03-01T14:54:05.393Z" }, - { url = "https://files.pythonhosted.org/packages/2b/c2/648667022c5b53cdccefa67c245e8a984970f3045820f00c2e23bdb2aff4/maturin-1.12.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:06fc8d089f98623ce924c669b70911dfed30f9a29956c362945f727f9abc546b", size = 10455028, upload-time = "2026-03-01T14:54:07.349Z" }, - { url = "https://files.pythonhosted.org/packages/63/d6/5b5efe3ca0c043357ed3f8d2b2d556169fdbf1ff75e50e8e597708a359d2/maturin-1.12.6-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:75133e56274d43b9227fd49dca9a86e32f1fd56a7b55544910c4ce978c2bb5aa", size = 10014531, upload-time = "2026-03-01T14:53:54.548Z" }, - { url = "https://files.pythonhosted.org/packages/68/d5/39c594c27b1a8b32a0cb95fff9ad60b888c4352d1d1c389ac1bd20dc1e16/maturin-1.12.6-py3-none-win32.whl", hash = "sha256:3f32e0a3720b81423c9d35c14e728cb1f954678124749776dc72d533ea1115e8", size = 8553012, upload-time = "2026-03-01T14:53:50.706Z" }, - { url = "https://files.pythonhosted.org/packages/94/66/b262832a91747e04051e21f986bd01a8af81fbffafacc7d66a11e79aab5f/maturin-1.12.6-py3-none-win_amd64.whl", hash = "sha256:977290159d252db946054a0555263c59b3d0c7957135c69e690f4b1558ee9983", size = 9890470, upload-time = "2026-03-01T14:53:56.659Z" }, - { url = "https://files.pythonhosted.org/packages/e3/47/76b8ca470ddc8d7d36aa8c15f5a6aed1841806bb93a0f4ead8ee61e9a088/maturin-1.12.6-py3-none-win_arm64.whl", hash = "sha256:bae91976cdc8148038e13c881e1e844e5c63e58e026e8b9945aa2d19b3b4ae89", size = 8606158, upload-time = "2026-03-01T14:54:02.423Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f0/97c5a5bd9c71653a066c0976a484eaaae50b9369557838a4176b7b0bdaa5/maturin-1.14.1-py3-none-linux_armv6l.whl", hash = "sha256:522292398945442cdafa9daeb2271b2340fbde57027b818f923f88eab04174f8", size = 10207496, upload-time = "2026-06-19T05:19:09.321Z" }, + { url = "https://files.pythonhosted.org/packages/fe/83/294bca639b0e052f1e2f65199b3db258780c7d4e31408b934c9c974a1379/maturin-1.14.1-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:ffe5ad71f21d1e6603c4dd75f7fee34adf5ed5ebcebb692886549888ebb329ed", size = 19680113, upload-time = "2026-06-19T05:19:13.43Z" }, + { url = "https://files.pythonhosted.org/packages/43/b6/79c881410a3b1c187f7eb3d407aecae646c6a4433d630d72200359015e83/maturin-1.14.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:f3306078070c1508fd715b9116070cbcaff5959024272a9f1e6f5cb29768b86c", size = 10169205, upload-time = "2026-06-19T05:19:16.615Z" }, + { url = "https://files.pythonhosted.org/packages/93/9d/44b6f26dcb7f7a04c5501ac2dbb6ca1490150682baa525ca5860504f9eab/maturin-1.14.1-py3-none-manylinux_2_12_i686.manylinux2010_i686.musllinux_1_1_i686.whl", hash = "sha256:cd457cd88961156e26379e1155bd287cc0ec1c8b2f1582b0660fb31b87c8842d", size = 10188098, upload-time = "2026-06-19T05:19:19.736Z" }, + { url = "https://files.pythonhosted.org/packages/1a/bd/9c0d5d6983905ce2c9edaa073a7e89355a9cf7f396988e05d32f1c37785d/maturin-1.14.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl", hash = "sha256:dfc54ae32e6fcb18302193ab9a30b0b25eefffba994ae13238974805533ef75e", size = 10627576, upload-time = "2026-06-19T05:19:22.713Z" }, + { url = "https://files.pythonhosted.org/packages/e5/33/b096412bd6a7cb399652b260666f901adf88a687181a6dbd6a3f89f0a94e/maturin-1.14.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:a131d912b5267e640bc96d70f4914e10590aed64082ec9abacba7cea52004224", size = 10085181, upload-time = "2026-06-19T05:19:25.69Z" }, + { url = "https://files.pythonhosted.org/packages/56/8d/08c3bf469c38a23c9e6c877e338193001eb604d010fedc08341974e38528/maturin-1.14.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:be18fc568fb76884c0205456336892a75105ec398e6b667cd777c6268bd06d69", size = 10026363, upload-time = "2026-06-19T05:19:28.904Z" }, + { url = "https://files.pythonhosted.org/packages/3a/a4/c4d1a92839f8745ab4aab988a7db884a79d6d710bd3b286fcf9316dece1a/maturin-1.14.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.musllinux_1_1_ppc64le.whl", hash = "sha256:994a0c8ba3ad8a92b3a9ee1b02645d200d610216b15cff5102b0fe65e8e08666", size = 13321347, upload-time = "2026-06-19T05:19:32.411Z" }, + { url = "https://files.pythonhosted.org/packages/b3/fa/170f04624d03fd07d2a8b1b67de83a127af93aef9eaa425839553347297b/maturin-1.14.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:be80866363e605d137991b491a741a84cde9ae350183c4c85f49690ca9aaaa65", size = 10877609, upload-time = "2026-06-19T05:19:35.448Z" }, + { url = "https://files.pythonhosted.org/packages/61/ad/1ae2e1d0ded282bf2c55ac13f0811d87deb425e200ae64a15785675dede9/maturin-1.14.1-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:5282dffd4b539d2be245f4e5b1a5ab6bc1033b58f4a4872f5833f9d43c954aa4", size = 10417316, upload-time = "2026-06-19T05:19:38.28Z" }, + { url = "https://files.pythonhosted.org/packages/fb/27/bf677183920718da49cd7982d6a3ffc440aad8919329f571d189f81b7bdf/maturin-1.14.1-py3-none-win32.whl", hash = "sha256:1a04de0a20188f95c721b5702eed18140bdcccb28c386797093eca3f62f4d4e0", size = 8931293, upload-time = "2026-06-19T05:19:41.183Z" }, + { url = "https://files.pythonhosted.org/packages/63/4b/585adeb9167b08d3cdff0032a938b0e72655c92003df4f52c3f696a1bcc2/maturin-1.14.1-py3-none-win_amd64.whl", hash = "sha256:3c9f94640ecc4895e94abaf834a0684430032c865b2748a36c12461fd9252fdd", size = 10314067, upload-time = "2026-06-19T05:19:44.389Z" }, + { url = "https://files.pythonhosted.org/packages/51/d4/dac8c0720ae246be1700afb6fbdbbea20fe35b13f6570b2f70faa005df77/maturin-1.14.1-py3-none-win_arm64.whl", hash = "sha256:15cea8fcb3ba47dd636f50092bb34baea8b04ac777392f23e6bf8a9a61efb894", size = 9718943, upload-time = "2026-06-19T05:19:47.49Z" }, ] [[package]] @@ -898,33 +1067,41 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2c/19/04f9b178c2d8a15b076c8b5140708fa6ffc5601fb6f1e975537072df5b2a/mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307", size = 6354, upload-time = "2021-02-05T18:55:29.583Z" }, ] +[[package]] +name = "mike" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jinja2" }, + { name = "mkdocs" }, + { name = "pyparsing" }, + { name = "pyyaml" }, + { name = "pyyaml-env-tag" }, + { name = "verspec" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b4/47/fa87e9d56bef16cdfe34b059a437e8c6f7ec6f1b9c378871c3cf95ebea9c/mike-2.2.0.tar.gz", hash = "sha256:1e3858e32c0f125aac14432fc7848434358f9ae0962c5c5cde387ad47f6ad25e", size = 38450, upload-time = "2026-04-14T04:59:03.944Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/8e/56ccb09c7232a55403a7637caa21922f3b65901a37f5e8bdb405d0de0946/mike-2.2.0-py3-none-any.whl", hash = "sha256:e1f4981c1152eec7c2490a3401142292cc47d686194188416db2648fdfe1d040", size = 34026, upload-time = "2026-04-14T04:59:02.602Z" }, +] + [[package]] name = "mkdocs" version = "1.6.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click" }, + { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" } }, { name = "colorama", marker = "sys_platform == 'win32'" }, { name = "ghp-import" }, - { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "importlib-metadata", version = "8.7.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "jinja2" }, - { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "markdown", version = "3.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "markdown", version = "3.10.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "markupsafe", version = "2.1.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "markupsafe", version = "3.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "markdown" }, + { name = "markupsafe", version = "3.0.3", source = { registry = "https://pypi.org/simple" } }, { name = "mergedeep" }, - { name = "mkdocs-get-deps", version = "0.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "mkdocs-get-deps", version = "0.2.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, - { name = "packaging" }, - { name = "pathspec", version = "0.12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "pathspec", version = "1.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocs-get-deps" }, + { name = "packaging", version = "26.3", source = { registry = "https://pypi.org/simple" } }, + { name = "pathspec" }, { name = "pyyaml" }, - { name = "pyyaml-env-tag", version = "0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "pyyaml-env-tag", version = "1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, - { name = "watchdog", version = "4.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "watchdog", version = "6.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pyyaml-env-tag" }, + { name = "watchdog" }, ] sdist = { url = "https://files.pythonhosted.org/packages/bc/c6/bbd4f061bd16b378247f12953ffcb04786a618ce5e904b8c5a01a0309061/mkdocs-1.6.1.tar.gz", hash = "sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2", size = 3889159, upload-time = "2024-08-30T12:24:06.899Z" } wheels = [ @@ -932,37 +1109,27 @@ wheels = [ ] [[package]] -name = "mkdocs-get-deps" -version = "0.2.0" +name = "mkdocs-autorefs" +version = "1.4.4" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.9'", -] dependencies = [ - { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "mergedeep", marker = "python_full_version < '3.9'" }, - { name = "platformdirs", version = "4.3.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "pyyaml", marker = "python_full_version < '3.9'" }, + { name = "markdown" }, + { name = "markupsafe", version = "3.0.3", source = { registry = "https://pypi.org/simple" } }, + { name = "mkdocs" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/98/f5/ed29cd50067784976f25ed0ed6fcd3c2ce9eb90650aa3b2796ddf7b6870b/mkdocs_get_deps-0.2.0.tar.gz", hash = "sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c", size = 10239, upload-time = "2023-11-20T17:51:09.981Z" } +sdist = { url = "https://files.pythonhosted.org/packages/52/c0/f641843de3f612a6b48253f39244165acff36657a91cc903633d456ae1ac/mkdocs_autorefs-1.4.4.tar.gz", hash = "sha256:d54a284f27a7346b9c38f1f852177940c222da508e66edc816a0fa55fc6da197", size = 56588, upload-time = "2026-02-10T15:23:55.105Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134", size = 9521, upload-time = "2023-11-20T17:51:08.587Z" }, + { url = "https://files.pythonhosted.org/packages/28/de/a3e710469772c6a89595fc52816da05c1e164b4c866a89e3cb82fb1b67c5/mkdocs_autorefs-1.4.4-py3-none-any.whl", hash = "sha256:834ef5408d827071ad1bc69e0f39704fa34c7fc05bc8e1c72b227dfdc5c76089", size = 25530, upload-time = "2026-02-10T15:23:53.817Z" }, ] [[package]] name = "mkdocs-get-deps" version = "0.2.2" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.10'", - "python_full_version == '3.9.*'", -] dependencies = [ - { name = "importlib-metadata", version = "8.7.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "mergedeep", marker = "python_full_version >= '3.9'" }, - { name = "platformdirs", version = "4.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "platformdirs", version = "4.9.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyyaml", marker = "python_full_version >= '3.9'" }, + { name = "mergedeep" }, + { name = "platformdirs", version = "4.11.3", source = { registry = "https://pypi.org/simple" } }, + { name = "pyyaml" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ce/25/b3cccb187655b9393572bde9b09261d267c3bf2f2cdabe347673be5976a6/mkdocs_get_deps-0.2.2.tar.gz", hash = "sha256:8ee8d5f316cdbbb2834bc1df6e69c08fe769a83e040060de26d3c19fad3599a1", size = 11047, upload-time = "2026-03-10T02:46:33.632Z" } wheels = [ @@ -971,31 +1138,24 @@ wheels = [ [[package]] name = "mkdocs-material" -version = "9.7.6" +version = "9.7.7" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "babel" }, - { name = "backrefs", version = "5.7.post1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "backrefs", version = "6.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "backrefs" }, { name = "colorama" }, { name = "jinja2" }, - { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "markdown", version = "3.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "markdown", version = "3.10.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "markdown" }, { name = "mkdocs" }, { name = "mkdocs-material-extensions" }, { name = "paginate" }, - { name = "pygments", version = "2.19.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "pygments", version = "2.20.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, - { name = "pymdown-extensions", version = "10.15", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "pymdown-extensions", version = "10.21.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, - { name = "requests", version = "2.32.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "requests", version = "2.32.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "requests", version = "2.33.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "pygments", version = "2.21.0", source = { registry = "https://pypi.org/simple" } }, + { name = "pymdown-extensions" }, + { name = "requests", version = "2.34.2", source = { registry = "https://pypi.org/simple" } }, ] -sdist = { url = "https://files.pythonhosted.org/packages/45/29/6d2bcf41ae40802c4beda2432396fff97b8456fb496371d1bc7aad6512ec/mkdocs_material-9.7.6.tar.gz", hash = "sha256:00bdde50574f776d328b1862fe65daeaf581ec309bd150f7bff345a098c64a69", size = 4097959, upload-time = "2026-03-19T15:41:58.161Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/cd/c05d3a530ba7934f144fb45f7203cd236adc25c7bdcc34673d202f4b0278/mkdocs_material-9.7.7.tar.gz", hash = "sha256:c0649c065b1b0512d60aad8c10f947f8e455284475239b364b610f2deb4d0855", size = 4097923, upload-time = "2026-07-17T16:21:33.156Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/01/bc663630c510822c95c47a66af9fa7a443c295b47d5f041e5e6ae62ef659/mkdocs_material-9.7.6-py3-none-any.whl", hash = "sha256:71b84353921b8ea1ba84fe11c50912cc512da8fe0881038fcc9a0761c0e635ba", size = 9305470, upload-time = "2026-03-19T15:41:55.217Z" }, + { url = "https://files.pythonhosted.org/packages/ad/21/17c1bc9e6f47c972ad66fb2ac2568f99f90f1207eeb6fc3b34d094dba7b5/mkdocs_material-9.7.7-py3-none-any.whl", hash = "sha256:8ea9bb1737a5b524a5f9dcf2e1b4ebda8274ae3008aa7845720a97083bef708f", size = 9305438, upload-time = "2026-07-17T16:21:30.017Z" }, ] [[package]] @@ -1022,6 +1182,38 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1b/cd/2e8d0d92421916e2ea4ff97f10a544a9bd5588eb747556701c983581df13/mkdocs_minify_plugin-0.8.0-py3-none-any.whl", hash = "sha256:5fba1a3f7bd9a2142c9954a6559a57e946587b21f133165ece30ea145c66aee6", size = 6723, upload-time = "2024-01-29T16:11:31.851Z" }, ] +[[package]] +name = "mkdocstrings" +version = "1.0.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jinja2" }, + { name = "markdown" }, + { name = "markupsafe", version = "3.0.3", source = { registry = "https://pypi.org/simple" } }, + { name = "mkdocs" }, + { name = "mkdocs-autorefs" }, + { name = "pymdown-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/53/71/f85bdf13355073ae15a7375f09879375a830553552e58c1c4b7e0bbc5c8b/mkdocstrings-1.0.6.tar.gz", hash = "sha256:a0b8c2bdd29a6416c80d717aa369bbf7831946bd9f23c2a66db1b1dbe7693dbd", size = 100649, upload-time = "2026-07-11T19:38:05.732Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/5b/4c1902e8bdd5c4db63284e9d101dece4038d4025d6d88850ffe0a1578980/mkdocstrings-1.0.6-py3-none-any.whl", hash = "sha256:2703708697487d1b6d6d7b412e176fa436edf120c1bf81dc9e126b12d00893c7", size = 35787, upload-time = "2026-07-11T19:38:04.417Z" }, +] + +[[package]] +name = "mkdocstrings-python" +version = "2.0.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "griffelib" }, + { name = "mkdocs-autorefs" }, + { name = "mkdocstrings" }, + { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/90/5d/1be1c7a49d8fa13dc80f66a85f53333d52cf5206911412006ffdff8fb9a0/mkdocstrings_python-2.0.7.tar.gz", hash = "sha256:8c49faf66d243072d7590a1b5dea028d9d7425fac191f54f096123a4a9c1a783", size = 201598, upload-time = "2026-08-17T16:56:18.239Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/6d/77546d8c26f038fce314a507106954f76270f6c182488bcf9ac9721175df/mkdocstrings_python-2.0.7-py3-none-any.whl", hash = "sha256:1fce5fbfe4ffa6e8136a35351cdc97c3bf55219c7efbd3f92a82260f93235d60", size = 105387, upload-time = "2026-08-17T16:56:16.813Z" }, +] + [[package]] name = "mypy" version = "1.14.1" @@ -1030,9 +1222,9 @@ resolution-markers = [ "python_full_version < '3.9'", ] dependencies = [ - { name = "mypy-extensions", marker = "python_full_version < '3.9'" }, - { name = "tomli", marker = "python_full_version < '3.9'" }, - { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "mypy-extensions" }, + { name = "tomli" }, + { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" } }, ] sdist = { url = "https://files.pythonhosted.org/packages/b9/eb/2c92d8ea1e684440f54fa49ac5d9a5f19967b7b472a281f419e69a8d228e/mypy-1.14.1.tar.gz", hash = "sha256:7ec88144fe9b510e8475ec2f5f251992690fcf89ccb4500b214b4226abcd32d6", size = 3216051, upload-time = "2024-12-30T16:39:07.335Z" } wheels = [ @@ -1083,11 +1275,11 @@ resolution-markers = [ "python_full_version == '3.9.*'", ] dependencies = [ - { name = "librt", marker = "python_full_version == '3.9.*' and platform_python_implementation != 'PyPy'" }, - { name = "mypy-extensions", marker = "python_full_version == '3.9.*'" }, - { name = "pathspec", version = "1.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "tomli", marker = "python_full_version == '3.9.*'" }, - { name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "librt", marker = "platform_python_implementation != 'PyPy'" }, + { name = "mypy-extensions" }, + { name = "pathspec" }, + { name = "tomli" }, + { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" } }, ] sdist = { url = "https://files.pythonhosted.org/packages/f5/db/4efed9504bc01309ab9c2da7e352cc223569f05478012b5d9ece38fd44d2/mypy-1.19.1.tar.gz", hash = "sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba", size = 3582404, upload-time = "2025-12-15T05:03:48.42Z" } wheels = [ @@ -1132,63 +1324,73 @@ wheels = [ [[package]] name = "mypy" -version = "1.20.0" +version = "2.3.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", ] dependencies = [ - { name = "librt", marker = "python_full_version >= '3.10' and platform_python_implementation != 'PyPy'" }, - { name = "mypy-extensions", marker = "python_full_version >= '3.10'" }, - { name = "pathspec", version = "1.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "tomli", marker = "python_full_version == '3.10.*'" }, - { name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f8/5c/b0089fe7fef0a994ae5ee07029ced0526082c6cfaaa4c10d40a10e33b097/mypy-1.20.0.tar.gz", hash = "sha256:eb96c84efcc33f0b5e0e04beacf00129dd963b67226b01c00b9dfc8affb464c3", size = 3815028, upload-time = "2026-03-31T16:55:14.959Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4d/a2/a965c8c3fcd4fa8b84ba0d46606181b0d0a1d50f274c67877f3e9ed4882c/mypy-1.20.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d99f515f95fd03a90875fdb2cca12ff074aa04490db4d190905851bdf8a549a8", size = 14430138, upload-time = "2026-03-31T16:52:37.843Z" }, - { url = "https://files.pythonhosted.org/packages/53/6e/043477501deeb8eabbab7f1a2f6cac62cfb631806dc1d6862a04a7f5011b/mypy-1.20.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bd0212976dc57a5bfeede7c219e7cd66568a32c05c9129686dd487c059c1b88a", size = 13311282, upload-time = "2026-03-31T16:55:11.021Z" }, - { url = "https://files.pythonhosted.org/packages/65/aa/bd89b247b83128197a214f29f0632ff3c14f54d4cd70d144d157bd7d7d6e/mypy-1.20.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f8426d4d75d68714abc17a4292d922f6ba2cfb984b72c2278c437f6dae797865", size = 13750889, upload-time = "2026-03-31T16:52:02.909Z" }, - { url = "https://files.pythonhosted.org/packages/fa/9d/2860be7355c45247ccc0be1501c91176318964c2a137bd4743f58ce6200e/mypy-1.20.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02cca0761c75b42a20a2757ae58713276605eb29a08dd8a6e092aa347c4115ca", size = 14619788, upload-time = "2026-03-31T16:50:48.928Z" }, - { url = "https://files.pythonhosted.org/packages/75/7f/3ef3e360c91f3de120f205c8ce405e9caf9fc52ef14b65d37073e322c114/mypy-1.20.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b3a49064504be59e59da664c5e149edc1f26c67c4f8e8456f6ba6aba55033018", size = 14918849, upload-time = "2026-03-31T16:51:10.478Z" }, - { url = "https://files.pythonhosted.org/packages/ae/72/af970dfe167ef788df7c5e6109d2ed0229f164432ce828bc9741a4250e64/mypy-1.20.0-cp310-cp310-win_amd64.whl", hash = "sha256:ebea00201737ad4391142808ed16e875add5c17f676e0912b387739f84991e13", size = 10822007, upload-time = "2026-03-31T16:50:25.268Z" }, - { url = "https://files.pythonhosted.org/packages/93/94/ba9065c2ebe5421619aff684b793d953e438a8bfe31a320dd6d1e0706e81/mypy-1.20.0-cp310-cp310-win_arm64.whl", hash = "sha256:e80cf77847d0d3e6e3111b7b25db32a7f8762fd4b9a3a72ce53fe16a2863b281", size = 9756158, upload-time = "2026-03-31T16:48:36.213Z" }, - { url = "https://files.pythonhosted.org/packages/6e/1c/74cb1d9993236910286865679d1c616b136b2eae468493aa939431eda410/mypy-1.20.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4525e7010b1b38334516181c5b81e16180b8e149e6684cee5a727c78186b4e3b", size = 14343972, upload-time = "2026-03-31T16:49:04.887Z" }, - { url = "https://files.pythonhosted.org/packages/d5/0d/01399515eca280386e308cf57901e68d3a52af18691941b773b3380c1df8/mypy-1.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a17c5d0bdcca61ce24a35beb828a2d0d323d3fcf387d7512206888c900193367", size = 13225007, upload-time = "2026-03-31T16:50:08.151Z" }, - { url = "https://files.pythonhosted.org/packages/56/ac/b4ba5094fb2d7fe9d2037cd8d18bbe02bcf68fd22ab9ff013f55e57ba095/mypy-1.20.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f75ff57defcd0f1d6e006d721ccdec6c88d4f6a7816eb92f1c4890d979d9ee62", size = 13663752, upload-time = "2026-03-31T16:49:26.064Z" }, - { url = "https://files.pythonhosted.org/packages/db/a7/460678d3cf7da252d2288dad0c602294b6ec22a91932ec368cc11e44bb6e/mypy-1.20.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b503ab55a836136b619b5fc21c8803d810c5b87551af8600b72eecafb0059cb0", size = 14532265, upload-time = "2026-03-31T16:53:55.077Z" }, - { url = "https://files.pythonhosted.org/packages/a3/3e/051cca8166cf0438ae3ea80e0e7c030d7a8ab98dffc93f80a1aa3f23c1a2/mypy-1.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1973868d2adbb4584a3835780b27436f06d1dc606af5be09f187aaa25be1070f", size = 14768476, upload-time = "2026-03-31T16:50:34.587Z" }, - { url = "https://files.pythonhosted.org/packages/be/66/8e02ec184f852ed5c4abb805583305db475930854e09964b55e107cdcbc4/mypy-1.20.0-cp311-cp311-win_amd64.whl", hash = "sha256:2fcedb16d456106e545b2bfd7ef9d24e70b38ec252d2a629823a4d07ebcdb69e", size = 10818226, upload-time = "2026-03-31T16:53:15.624Z" }, - { url = "https://files.pythonhosted.org/packages/13/4b/383ad1924b28f41e4879a74151e7a5451123330d45652da359f9183bcd45/mypy-1.20.0-cp311-cp311-win_arm64.whl", hash = "sha256:379edf079ce44ac8d2805bcf9b3dd7340d4f97aad3a5e0ebabbf9d125b84b442", size = 9750091, upload-time = "2026-03-31T16:54:12.162Z" }, - { url = "https://files.pythonhosted.org/packages/be/dd/3afa29b58c2e57c79116ed55d700721c3c3b15955e2b6251dd165d377c0e/mypy-1.20.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:002b613ae19f4ac7d18b7e168ffe1cb9013b37c57f7411984abbd3b817b0a214", size = 14509525, upload-time = "2026-03-31T16:55:01.824Z" }, - { url = "https://files.pythonhosted.org/packages/54/eb/227b516ab8cad9f2a13c5e7a98d28cd6aa75e9c83e82776ae6c1c4c046c7/mypy-1.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a9336b5e6712f4adaf5afc3203a99a40b379049104349d747eb3e5a3aa23ac2e", size = 13326469, upload-time = "2026-03-31T16:51:41.23Z" }, - { url = "https://files.pythonhosted.org/packages/57/d4/1ddb799860c1b5ac6117ec307b965f65deeb47044395ff01ab793248a591/mypy-1.20.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f13b3e41bce9d257eded794c0f12878af3129d80aacd8a3ee0dee51f3a978651", size = 13705953, upload-time = "2026-03-31T16:48:55.69Z" }, - { url = "https://files.pythonhosted.org/packages/c5/b7/54a720f565a87b893182a2a393370289ae7149e4715859e10e1c05e49154/mypy-1.20.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9804c3ad27f78e54e58b32e7cb532d128b43dbfb9f3f9f06262b821a0f6bd3f5", size = 14710363, upload-time = "2026-03-31T16:53:26.948Z" }, - { url = "https://files.pythonhosted.org/packages/b2/2a/74810274848d061f8a8ea4ac23aaad43bd3d8c1882457999c2e568341c57/mypy-1.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:697f102c5c1d526bdd761a69f17c6070f9892eebcb94b1a5963d679288c09e78", size = 14947005, upload-time = "2026-03-31T16:50:17.591Z" }, - { url = "https://files.pythonhosted.org/packages/77/91/21b8ba75f958bcda75690951ce6fa6b7138b03471618959529d74b8544e2/mypy-1.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:0ecd63f75fdd30327e4ad8b5704bd6d91fc6c1b2e029f8ee14705e1207212489", size = 10880616, upload-time = "2026-03-31T16:52:19.986Z" }, - { url = "https://files.pythonhosted.org/packages/8a/15/3d8198ef97c1ca03aea010cce4f1d4f3bc5d9849e8c0140111ca2ead9fdd/mypy-1.20.0-cp312-cp312-win_arm64.whl", hash = "sha256:f194db59657c58593a3c47c6dfd7bad4ef4ac12dbc94d01b3a95521f78177e33", size = 9813091, upload-time = "2026-03-31T16:53:44.385Z" }, - { url = "https://files.pythonhosted.org/packages/d6/a7/f64ea7bd592fa431cb597418b6dec4a47f7d0c36325fec7ac67bc8402b94/mypy-1.20.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b20c8b0fd5877abdf402e79a3af987053de07e6fb208c18df6659f708b535134", size = 14485344, upload-time = "2026-03-31T16:49:16.78Z" }, - { url = "https://files.pythonhosted.org/packages/bb/72/8927d84cfc90c6abea6e96663576e2e417589347eb538749a464c4c218a0/mypy-1.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:367e5c993ba34d5054d11937d0485ad6dfc60ba760fa326c01090fc256adf15c", size = 13327400, upload-time = "2026-03-31T16:53:08.02Z" }, - { url = "https://files.pythonhosted.org/packages/ab/4a/11ab99f9afa41aa350178d24a7d2da17043228ea10f6456523f64b5a6cf6/mypy-1.20.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f799d9db89fc00446f03281f84a221e50018fc40113a3ba9864b132895619ebe", size = 13706384, upload-time = "2026-03-31T16:52:28.577Z" }, - { url = "https://files.pythonhosted.org/packages/42/79/694ca73979cfb3535ebfe78733844cd5aff2e63304f59bf90585110d975a/mypy-1.20.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:555658c611099455b2da507582ea20d2043dfdfe7f5ad0add472b1c6238b433f", size = 14700378, upload-time = "2026-03-31T16:48:45.527Z" }, - { url = "https://files.pythonhosted.org/packages/84/24/a022ccab3a46e3d2cdf2e0e260648633640eb396c7e75d5a42818a8d3971/mypy-1.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:efe8d70949c3023698c3fca1e94527e7e790a361ab8116f90d11221421cd8726", size = 14932170, upload-time = "2026-03-31T16:49:36.038Z" }, - { url = "https://files.pythonhosted.org/packages/d8/9b/549228d88f574d04117e736f55958bd4908f980f9f5700a07aeb85df005b/mypy-1.20.0-cp313-cp313-win_amd64.whl", hash = "sha256:f49590891d2c2f8a9de15614e32e459a794bcba84693c2394291a2038bbaaa69", size = 10888526, upload-time = "2026-03-31T16:50:59.827Z" }, - { url = "https://files.pythonhosted.org/packages/91/17/15095c0e54a8bc04d22d4ff06b2139d5f142c2e87520b4e39010c4862771/mypy-1.20.0-cp313-cp313-win_arm64.whl", hash = "sha256:76a70bf840495729be47510856b978f1b0ec7d08f257ca38c9d932720bf6b43e", size = 9816456, upload-time = "2026-03-31T16:49:59.537Z" }, - { url = "https://files.pythonhosted.org/packages/4e/0e/6ca4a84cbed9e62384bc0b2974c90395ece5ed672393e553996501625fc5/mypy-1.20.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:0f42dfaab7ec1baff3b383ad7af562ab0de573c5f6edb44b2dab016082b89948", size = 14483331, upload-time = "2026-03-31T16:52:57.999Z" }, - { url = "https://files.pythonhosted.org/packages/7d/c5/5fe9d8a729dd9605064691816243ae6c49fde0bd28f6e5e17f6a24203c43/mypy-1.20.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:31b5dbb55293c1bd27c0fc813a0d2bb5ceef9d65ac5afa2e58f829dab7921fd5", size = 13342047, upload-time = "2026-03-31T16:54:21.555Z" }, - { url = "https://files.pythonhosted.org/packages/4c/33/e18bcfa338ca4e6b2771c85d4c5203e627d0c69d9de5c1a2cf2ba13320ba/mypy-1.20.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49d11c6f573a5a08f77fad13faff2139f6d0730ebed2cfa9b3d2702671dd7188", size = 13719585, upload-time = "2026-03-31T16:51:53.89Z" }, - { url = "https://files.pythonhosted.org/packages/6b/8d/93491ff7b79419edc7eabf95cb3b3f7490e2e574b2855c7c7e7394ff933f/mypy-1.20.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d3243c406773185144527f83be0e0aefc7bf4601b0b2b956665608bf7c98a83", size = 14685075, upload-time = "2026-03-31T16:54:04.464Z" }, - { url = "https://files.pythonhosted.org/packages/b5/9d/d924b38a4923f8d164bf2b4ec98bf13beaf6e10a5348b4b137eadae40a6e/mypy-1.20.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a79c1eba7ac4209f2d850f0edd0a2f8bba88cbfdfefe6fb76a19e9d4fe5e71a2", size = 14919141, upload-time = "2026-03-31T16:54:51.785Z" }, - { url = "https://files.pythonhosted.org/packages/59/98/1da9977016678c0b99d43afe52ed00bb3c1a0c4c995d3e6acca1a6ebb9b4/mypy-1.20.0-cp314-cp314-win_amd64.whl", hash = "sha256:00e047c74d3ec6e71a2eb88e9ea551a2edb90c21f993aefa9e0d2a898e0bb732", size = 11050925, upload-time = "2026-03-31T16:51:30.758Z" }, - { url = "https://files.pythonhosted.org/packages/5e/e3/ba0b7a3143e49a9c4f5967dde6ea4bf8e0b10ecbbcca69af84027160ee89/mypy-1.20.0-cp314-cp314-win_arm64.whl", hash = "sha256:931a7630bba591593dcf6e97224a21ff80fb357e7982628d25e3c618e7f598ef", size = 10001089, upload-time = "2026-03-31T16:49:43.632Z" }, - { url = "https://files.pythonhosted.org/packages/12/28/e617e67b3be9d213cda7277913269c874eb26472489f95d09d89765ce2d8/mypy-1.20.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:26c8b52627b6552f47ff11adb4e1509605f094e29815323e487fc0053ebe93d1", size = 15534710, upload-time = "2026-03-31T16:52:12.506Z" }, - { url = "https://files.pythonhosted.org/packages/6e/0c/3b5f2d3e45dc7169b811adce8451679d9430399d03b168f9b0489f43adaa/mypy-1.20.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:39362cdb4ba5f916e7976fccecaab1ba3a83e35f60fa68b64e9a70e221bb2436", size = 14393013, upload-time = "2026-03-31T16:54:41.186Z" }, - { url = "https://files.pythonhosted.org/packages/a3/49/edc8b0aa145cc09c1c74f7ce2858eead9329931dcbbb26e2ad40906daa4e/mypy-1.20.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:34506397dbf40c15dc567635d18a21d33827e9ab29014fb83d292a8f4f8953b6", size = 15047240, upload-time = "2026-03-31T16:54:31.955Z" }, - { url = "https://files.pythonhosted.org/packages/42/37/a946bb416e37a57fa752b3100fd5ede0e28df94f92366d1716555d47c454/mypy-1.20.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:555493c44a4f5a1b58d611a43333e71a9981c6dbe26270377b6f8174126a0526", size = 15858565, upload-time = "2026-03-31T16:53:36.997Z" }, - { url = "https://files.pythonhosted.org/packages/2f/99/7690b5b5b552db1bd4ff362e4c0eb3107b98d680835e65823fbe888c8b78/mypy-1.20.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:2721f0ce49cb74a38f00c50da67cb7d36317b5eda38877a49614dc018e91c787", size = 16087874, upload-time = "2026-03-31T16:52:48.313Z" }, - { url = "https://files.pythonhosted.org/packages/aa/76/53e893a498138066acd28192b77495c9357e5a58cc4be753182846b43315/mypy-1.20.0-cp314-cp314t-win_amd64.whl", hash = "sha256:47781555a7aa5fedcc2d16bcd72e0dc83eb272c10dd657f9fb3f9cc08e2e6abb", size = 12572380, upload-time = "2026-03-31T16:49:52.454Z" }, - { url = "https://files.pythonhosted.org/packages/76/9c/6dbdae21f01b7aacddc2c0bbf3c5557aa547827fdf271770fe1e521e7093/mypy-1.20.0-cp314-cp314t-win_arm64.whl", hash = "sha256:c70380fe5d64010f79fb863b9081c7004dd65225d2277333c219d93a10dad4dd", size = 10381174, upload-time = "2026-03-31T16:51:20.179Z" }, - { url = "https://files.pythonhosted.org/packages/21/66/4d734961ce167f0fd8380769b3b7c06dbdd6ff54c2190f3f2ecd22528158/mypy-1.20.0-py3-none-any.whl", hash = "sha256:a6e0641147cbfa7e4e94efdb95c2dab1aff8cfc159ded13e07f308ddccc8c48e", size = 2636365, upload-time = "2026-03-31T16:51:44.911Z" }, + { name = "ast-serialize" }, + { name = "librt", marker = "platform_python_implementation != 'PyPy'" }, + { name = "mypy-extensions" }, + { name = "pathspec" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, + { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" } }, +] +sdist = { url = "https://files.pythonhosted.org/packages/82/6a/878cc1097d4035f82bd516658d0c528d2a9955bc7b363afcbd0b07fea11b/mypy-2.3.1.tar.gz", hash = "sha256:47c1b1207258513a9d93495f69c8be9de73916186f0e52703e8c461b7a623419", size = 3992554, upload-time = "2026-08-15T03:03:38.549Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/b9/de8f67e12d721cdcc8ba6cfc440b989a4ba4dfabe4402ae94dfdd8bb30a4/mypy-2.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:57a936373fc690c43a8cd7e7e12a35148e4ec5aa7698ad7fc0a9f918bdc5be41", size = 14015541, upload-time = "2026-08-15T03:01:53.104Z" }, + { url = "https://files.pythonhosted.org/packages/f1/8a/9e746ab012c67ed8ea3232a613716c306ee8c0b5682c80d8103b4f04568e/mypy-2.3.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d00d769056bde2f4e69c175071eba45cfb44fa1ed92bdfbfe64a93e0543b0cf0", size = 14248142, upload-time = "2026-08-15T03:02:43.201Z" }, + { url = "https://files.pythonhosted.org/packages/f7/5c/c99ff2d8d0e2c53393e32dfe22d9aa43a5d959d30db46c786dafd24527d3/mypy-2.3.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2166b29228835e1f88ff411e96639e6ca3c7fdde84b62ec211f70f86b4051167", size = 15193309, upload-time = "2026-08-15T03:01:28.714Z" }, + { url = "https://files.pythonhosted.org/packages/64/39/124638f745243faae1ff4b37d5426fe41c0f0454535edc82fe8102b56a3c/mypy-2.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:83d36c2924df7426333abe7faf4724a7e1aab0d9fd41625e81b4683034b80c13", size = 15498246, upload-time = "2026-08-15T03:02:46.29Z" }, + { url = "https://files.pythonhosted.org/packages/b2/83/31c0781e243836505c0fb5f4e865487d6df1023e4ad959f4ebd4b84a0226/mypy-2.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:f12fdb70459d0060dea40b29e52163a961b156106d68d57882a6a9f648983a53", size = 11155028, upload-time = "2026-08-15T03:01:39.08Z" }, + { url = "https://files.pythonhosted.org/packages/a0/ab/bc2eb0129e72d7d7d93d5e981a78084a9abefda7efa732a7e02f97d6e27d/mypy-2.3.1-cp310-cp310-win_arm64.whl", hash = "sha256:e099200a1b1b1223a4951f0a90cbff1b8c91b250ba599dab1f7217a628144d90", size = 10151438, upload-time = "2026-08-15T03:02:19.04Z" }, + { url = "https://files.pythonhosted.org/packages/a4/be/c624d4241484f37dc62839e177ab607a9b8b3e96f0866544ca99e8e41d51/mypy-2.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94f04929f1c44c35fb0061e912087edaf504acede963a4a7d00680bd089d8531", size = 13936739, upload-time = "2026-08-15T03:03:26.475Z" }, + { url = "https://files.pythonhosted.org/packages/53/84/e3cf72f90dce5960871c82551c8fba6da05fc1018f79be41c047bd126bdd/mypy-2.3.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f5d716048611e85ca9eefb2e1baa5d73ede389b5820ded260ea27c757d667af8", size = 14166460, upload-time = "2026-08-15T03:01:50.565Z" }, + { url = "https://files.pythonhosted.org/packages/4a/ff/6b97d58aa0f79a5ab9b472db1f6d6df1b11a51d74d0c08ab3760d3a613ba/mypy-2.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b091a455111214cb5c9d54a57b9618e9a49f9fe2a42e4e1ac86e9d104ed96ce8", size = 15100476, upload-time = "2026-08-15T03:03:12.079Z" }, + { url = "https://files.pythonhosted.org/packages/da/f0/cbb4b7d2ae3ac635f6b4f2d9b04070b8a92edf50da599d3b39e5ed109001/mypy-2.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:df12e20c9efd614738c71b390007ecd0181125afc4ccafca04d78a1d2eed2c01", size = 15347826, upload-time = "2026-08-15T03:03:02.856Z" }, + { url = "https://files.pythonhosted.org/packages/5f/10/91dcdc6f8d43fc08e6a06ab1f9732f3abaaf835ac1b2e67b9dff56910855/mypy-2.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:52eaf3a155f35cf80b40220288c861eb45f14a2340c1f6cbfbdb0feff32879d1", size = 11142615, upload-time = "2026-08-15T03:03:36.316Z" }, + { url = "https://files.pythonhosted.org/packages/3d/8a/28d54535bf4b9aa43b2d8918c2ef660378b9f66b23d78dcee052744ae622/mypy-2.3.1-cp311-cp311-win_arm64.whl", hash = "sha256:9b4eacbee8a69836c06eff6d0dd4e134a07c2b047755b30c08625fe214f322c6", size = 10141145, upload-time = "2026-08-15T03:03:07.406Z" }, + { url = "https://files.pythonhosted.org/packages/85/da/d6effc4f808a842d91edc22535dc9e799d2ff6e91449168b7f47a0771f54/mypy-2.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a32bbbb940af990d3be0b8af321c7b6815bb1b3b48142fe7459b9cc5f58959ff", size = 14047547, upload-time = "2026-08-15T03:02:57.707Z" }, + { url = "https://files.pythonhosted.org/packages/e4/e6/478229701dab76f26485fc8ff5d6f241f393da22447400bbc56f6946aebe/mypy-2.3.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff715e45b2231a8e85de1d163d1b42791e4d7aab8f5145f85fee1b710b735aff", size = 14216515, upload-time = "2026-08-15T03:01:26.496Z" }, + { url = "https://files.pythonhosted.org/packages/8d/fe/7c42327a3b21e84681f691982cbfe43f334a3685f3b683b72c376476c4fa/mypy-2.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:858fc57d3d91fa728e33e7ad71def60fc6272694607b306cd3292db53ae39080", size = 15307789, upload-time = "2026-08-15T03:03:31.62Z" }, + { url = "https://files.pythonhosted.org/packages/59/f4/7e597edbe01b5a56fa958ce541302dcaabfed979966f1dffedbea0ea0fc2/mypy-2.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:851833db876e7b650f93719c74b7879a08e338979c96054fdfc3bfd90a486355", size = 15548831, upload-time = "2026-08-15T03:03:15.55Z" }, + { url = "https://files.pythonhosted.org/packages/a3/52/cb31e084bc0314a1e384bdd677a4b80e55af04ccac077545e2238b9d320a/mypy-2.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:4c5095a327483591c94e0c8d3ef9e50d4ab1369b541eae007c1f23bc2a41f6bb", size = 11226359, upload-time = "2026-08-15T03:03:29.002Z" }, + { url = "https://files.pythonhosted.org/packages/7a/47/88fcf6217b43fa2da81a8c2611370af18141536a4f0294bbf98b457d456d/mypy-2.3.1-cp312-cp312-win_arm64.whl", hash = "sha256:bbfe022634a2a195406bd469e888d2eaf193b02ba7e607391cd7640374aaae3b", size = 10214707, upload-time = "2026-08-15T03:02:48.807Z" }, + { url = "https://files.pythonhosted.org/packages/de/cf/862010ee800ca9c2bd0c4c0dacf0f092e5411824a09b8f97ad4be8fe250e/mypy-2.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:114dff494000f18bd10d5d95d84b8567b26da60279ecbe838131841df20e635d", size = 13964542, upload-time = "2026-08-15T03:02:21.43Z" }, + { url = "https://files.pythonhosted.org/packages/75/5a/3f3a2107b41e3e92e617e25daaee121413b91e9784bea733131ed4fecc5d/mypy-2.3.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8637731bb5eee3671eb2c3200827aa3564ed8a9309ecee4d1afe77e6d031bdb", size = 14168922, upload-time = "2026-08-15T03:03:00.351Z" }, + { url = "https://files.pythonhosted.org/packages/8b/41/04dc4fe7e63d7820fa4eff272e95157d30cbea921388f3ab3fe77794cd0b/mypy-2.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c80fbc405ed8020f5ff3802dc18cf060197bcdd3fbdd6a26ef2fd34dfdd5226", size = 15244791, upload-time = "2026-08-15T03:02:31.089Z" }, + { url = "https://files.pythonhosted.org/packages/96/fc/c3053b26b9054949285aa868cb6af8c10e7591541cacd79c5dcc06a1fcf9/mypy-2.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:84081f538ce27375045c02e3d7f81bd11d853400621ae245d87ce7b6c420ec74", size = 15501627, upload-time = "2026-08-15T03:03:34.128Z" }, + { url = "https://files.pythonhosted.org/packages/70/4e/d77daab008bbc4e5001374d7928f4a260d28f0e6747af444fc4763f7a310/mypy-2.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:e9144ac16fde007096f9563eb2041b4433c2d705c4218edeb79e7e9d01035ee6", size = 11243961, upload-time = "2026-08-15T03:02:11.952Z" }, + { url = "https://files.pythonhosted.org/packages/f0/f8/7eb68c136e4abd30569fe31ef2bfcb7eceae9952cab80017c04cd09f5d0c/mypy-2.3.1-cp313-cp313-win_arm64.whl", hash = "sha256:77ad9529e67dca28e511f5cd5671436584ce91f6d3bac159a353158187b986ac", size = 10213219, upload-time = "2026-08-15T03:02:26.361Z" }, + { url = "https://files.pythonhosted.org/packages/be/c4/42a49d44aeff804edf1b19acce0b49e8bd1a9c57dee9605dd8d980aa43d7/mypy-2.3.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:192abaedf75da1bc0b1cef104927e70ec49c1ef0031cc4825c7ee10a438ed24d", size = 13986778, upload-time = "2026-08-15T03:01:33.69Z" }, + { url = "https://files.pythonhosted.org/packages/45/13/9331fd2dfed7194d66c5304072894a8be3e51e9deda6863c1eceaa35a43d/mypy-2.3.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf678dffd16efcda2c15cbd30e9ecc0081388e29ea23687a88e686ed92638dc3", size = 14188467, upload-time = "2026-08-15T03:02:40.554Z" }, + { url = "https://files.pythonhosted.org/packages/78/f7/f4a34edab45667c5465855dc585a20e87978ffa8aee711445b7239d120c6/mypy-2.3.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e036f06b41630f4c8a1d48f9ac6aa26acc65f8be089973f5519da643318f03f", size = 15225538, upload-time = "2026-08-15T03:03:09.761Z" }, + { url = "https://files.pythonhosted.org/packages/40/05/534b3590757bd05794f73e07f6666c2a77b8597ffed795c94ce570096aa0/mypy-2.3.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:71af9c8a894e862b58e92abb08e53b05a384a1e5e5d6dc7cda59126211a53d82", size = 15480805, upload-time = "2026-08-15T03:01:41.134Z" }, + { url = "https://files.pythonhosted.org/packages/55/da/bdfba852e2562f599624af5bb7d29e36b0b4f526f2b8bac85efe0dd1803d/mypy-2.3.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:3c80cd23d85368bdd9f37d5231dfd97d35bcbf5bf41af96ef3a9b078ad1957f9", size = 7761712, upload-time = "2026-08-15T03:02:36.008Z" }, + { url = "https://files.pythonhosted.org/packages/98/31/60fc64a74cdba4f2a5d642d32317993e479163e1ac7d91b695e5d15e2264/mypy-2.3.1-cp314-cp314-win_amd64.whl", hash = "sha256:4956f34d145e145562a0a0bf367f642bbc85c04ec2baf47ae015947c3169a85d", size = 11423968, upload-time = "2026-08-15T03:02:06.931Z" }, + { url = "https://files.pythonhosted.org/packages/a9/23/eb5950b24cd26ba3b78f87707a275568d633c77dae8e61c9661be6055ca6/mypy-2.3.1-cp314-cp314-win_arm64.whl", hash = "sha256:cfb12e360242d23d91f5e978d94f58ea66acf5804c4fb6f2f794a20d4cb1b595", size = 10399323, upload-time = "2026-08-15T03:02:33.671Z" }, + { url = "https://files.pythonhosted.org/packages/82/c7/f80f4e46c0b9a00eb5f78a79d49dda8bdf56a5230f7257fb33e76be04da7/mypy-2.3.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e5f1c50bb05b64e2026b52867e8d21106f01313c744a2c4ecc34c90d12e8d6e2", size = 15121308, upload-time = "2026-08-15T03:01:46.053Z" }, + { url = "https://files.pythonhosted.org/packages/5d/74/9b04f17c7074cc5188f02fb63a2ca1d43fedf479e84fe3091c39061a1d7f/mypy-2.3.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:667196b352f4cf304ded4c10f90cfc179263a1acfb3cdcfa984bdfd340d498bc", size = 15536590, upload-time = "2026-08-15T03:01:35.941Z" }, + { url = "https://files.pythonhosted.org/packages/26/04/c837ef6208e567774e2ed1f863f8ba6ec4817b1b6dd426315e5d559b6ec9/mypy-2.3.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b9c53e395c12cad2c6d4b67d5da7c6057638a132d85c08b73646b18f802a0045", size = 16791074, upload-time = "2026-08-15T03:01:31.073Z" }, + { url = "https://files.pythonhosted.org/packages/37/68/48730230afa45192d5bd429a6a2ff24a6f8dedda90fdf2b221792b54518f/mypy-2.3.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:18162b128c3f9c703cd35f5537446900b0d21a2549aa7a95d21380d2ef643fb0", size = 17069183, upload-time = "2026-08-15T03:02:28.566Z" }, + { url = "https://files.pythonhosted.org/packages/1c/ea/ca23fc9c20eeda09a15c9cbcf50015d0e73f409f6ead059e42aa69a608ff/mypy-2.3.1-cp314-cp314t-win_amd64.whl", hash = "sha256:30c0477d4aab7b7f39c8397dc877f2c96b9fe5588ec379f372c56eb63d599f63", size = 12154679, upload-time = "2026-08-15T03:02:04.809Z" }, + { url = "https://files.pythonhosted.org/packages/3b/67/8d982126034990869466f73b8db80dcb2234a7ac39b4dad093e047a79835/mypy-2.3.1-cp314-cp314t-win_arm64.whl", hash = "sha256:6941ab3619377bc3f32ca02876b07d27f216f5201604b664d3937ea0fdd23bb4", size = 10969159, upload-time = "2026-08-15T03:02:38.152Z" }, + { url = "https://files.pythonhosted.org/packages/ee/f7/41e7f2d8117fbc7a7587286162ffe2f688984b69c46ed63cf5f2e4fc3bae/mypy-2.3.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:6f041a6de52c9217ca125e78ba0a335cb7fd98a1c0580978e49ab2b126f70b57", size = 13990694, upload-time = "2026-08-15T03:03:21.919Z" }, + { url = "https://files.pythonhosted.org/packages/06/85/8f665811a0c8f3bf6fa1d9acd665ec2d97a2bcc453ae68dcd92340941cd6/mypy-2.3.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5159ae60f5dbc3a498af5ba8365505808ac8031bc63f9e00304ad545d40bdd9b", size = 14203518, upload-time = "2026-08-15T03:01:48.455Z" }, + { url = "https://files.pythonhosted.org/packages/2d/82/91b866c8546b120bff83b73a439d90d2d63ef3aff113599e6b8e4d566848/mypy-2.3.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:47a8a7a0a7f6f6e63995c0ac36fa0c07b127413fdc81f0439b7f3dccafd33561", size = 15220224, upload-time = "2026-08-15T03:01:23.577Z" }, + { url = "https://files.pythonhosted.org/packages/c8/78/c226c99208ee40de7c768369fa533f933afa003dfdc606ff021450724e91/mypy-2.3.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:2329c0501293d4e1f33bc15d04d6304d65a1cdda967ee93a05c1e681a3923133", size = 15501512, upload-time = "2026-08-15T03:02:09.453Z" }, + { url = "https://files.pythonhosted.org/packages/a9/e7/7cfb3f106c393979f4cc37ad6c0586044d50401e3c35b0c003e4f3ba6bc9/mypy-2.3.1-cp315-cp315-pyemscripten_2026_5_wasm32.whl", hash = "sha256:bb26deed807bdb0457cf3e3f1cd7c4a1cf9d66864eaf1b4a61e06805d4c6b1f9", size = 7761913, upload-time = "2026-08-15T03:01:55.65Z" }, + { url = "https://files.pythonhosted.org/packages/99/3c/52affefa273b97939a1f474ae4a349c8718635c15b941112dfab4291b0c1/mypy-2.3.1-cp315-cp315-win_amd64.whl", hash = "sha256:375d7013876a8233b2d05be185bfa09f689696cd999ce8b1cfe6acac5c80e8a3", size = 11422533, upload-time = "2026-08-15T03:03:24.101Z" }, + { url = "https://files.pythonhosted.org/packages/2a/b7/75643e70c72a5b346d8a9b1543c967ea8824df2ee3fb7ccba652c272b7bb/mypy-2.3.1-cp315-cp315-win_arm64.whl", hash = "sha256:586b3612214cceabb3c0f588c97e7d1e535393f06a60e912e994f6b3ace97523", size = 10397931, upload-time = "2026-08-15T03:02:55.265Z" }, + { url = "https://files.pythonhosted.org/packages/10/ce/53be21f2d4adfcd26f63f1184a13ed797015ab463853f117e2e11e4d726f/mypy-2.3.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:ef0c6335cda9d807f8193d8ff6204a72bc909fa9882aacbca14f43cdb7188306", size = 15118669, upload-time = "2026-08-15T03:02:51.479Z" }, + { url = "https://files.pythonhosted.org/packages/62/43/20de757cd42989d291a17fad607742c4c74e875ce5cea00e5a5225020ac1/mypy-2.3.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e598c8c66401d26b150872154a286e6d484cf2789c3bb28a7556806298423021", size = 15545627, upload-time = "2026-08-15T03:03:05.132Z" }, + { url = "https://files.pythonhosted.org/packages/7e/fc/092bdf77ad280eaf501422f0f3b966012b528076cc13e41a774861c907d1/mypy-2.3.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eda22fd4efa9dcd39331d1dede9b5b8b8a7fd69af07592e778433da98610d29e", size = 16764157, upload-time = "2026-08-15T03:02:23.958Z" }, + { url = "https://files.pythonhosted.org/packages/94/5c/c94c4d62d909b07f552d0d9356d7acc943825558e602a64822ffa2231536/mypy-2.3.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:2a0ba2e57847849fb0d1fcdabb32786d223095ed8bc121dfe322bcdb3d9c46bc", size = 17073258, upload-time = "2026-08-15T03:02:14.573Z" }, + { url = "https://files.pythonhosted.org/packages/c0/f7/511a88b89e478053c02d22039bb8f3ce4183efe8fd7a4f0a5910a8bb0a32/mypy-2.3.1-cp315-cp315t-win_amd64.whl", hash = "sha256:3f7e865dd51f235f60a2dbcd8728a1c095f5ca28f095d48a725b84cd935735c4", size = 12135505, upload-time = "2026-08-15T03:02:16.714Z" }, + { url = "https://files.pythonhosted.org/packages/71/bf/02573b56964ecb0f7c644f915f53c325ae15c3faec521c5adf11599a32df/mypy-2.3.1-cp315-cp315t-win_arm64.whl", hash = "sha256:8ad80807dc3ab8ea978b1b2b6e4a657194ace1d4ef03e0e731aff1abd517da29", size = 10962647, upload-time = "2026-08-15T03:01:43.712Z" }, + { url = "https://files.pythonhosted.org/packages/8e/41/9675c7a1e78edecfba0b79e587a52594c56e189368261dc7b3a7fffb9527/mypy-2.3.1-py3-none-any.whl", hash = "sha256:6ed5c7e3419083268e5c9258bd1c1ef91af44a9e89374dbcaf37b775716e72eb", size = 2754338, upload-time = "2026-08-15T03:02:53.4Z" }, ] [[package]] @@ -1202,19 +1404,19 @@ wheels = [ [[package]] name = "mypy-protobuf" -version = "5.0.0" +version = "5.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "protobuf", version = "5.29.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "protobuf", version = "6.33.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "protobuf", version = "7.35.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "protobuf", version = "7.36.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "types-protobuf", version = "5.29.1.20241207", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "types-protobuf", version = "6.32.1.20251210", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "types-protobuf", version = "6.32.1.20260221", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "types-protobuf", version = "7.35.1.20260822", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d5/48/658827446368bca30a94e545598065587ece9cd09b678d7d2895c37a59d2/mypy_protobuf-5.0.0.tar.gz", hash = "sha256:6fdd1cfdbb4419c713291d800a332d4bba6510dbd1341ed95e0bcc82fcadb6b5", size = 37309, upload-time = "2026-01-13T17:10:12.616Z" } +sdist = { url = "https://files.pythonhosted.org/packages/87/07/7ffb897eee5c01e816e037f51a6720bf1a0a8c17cca1a2382ae554f43044/mypy_protobuf-5.1.0.tar.gz", hash = "sha256:8493758852a9cdc075a11dbe96c6e37ea2feba5fd5f33ef7442b9a275322a94c", size = 37529, upload-time = "2026-04-28T15:56:40.356Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b4/b1/ab1e7a49930a8c1d1f7a570bbd4ec7d552ef035acc7aa4b97906e17a34a9/mypy_protobuf-5.0.0-py3-none-any.whl", hash = "sha256:3a7dd753ef3e3b8783a824eb51f07983f62812f9ec066e4fbb1b22d6c5dc36d0", size = 26008, upload-time = "2026-01-13T17:10:11.053Z" }, + { url = "https://files.pythonhosted.org/packages/e8/ec/5ffcf8f5f53757e01afdece10c664e694ac60d2f17c2036811b85b842a5b/mypy_protobuf-5.1.0-py3-none-any.whl", hash = "sha256:d7031f563f806b8bcd448a3e86768bf0994c0af5b0017b344a4fbbba4191f43c", size = 26313, upload-time = "2026-04-28T15:56:39.096Z" }, ] [[package]] @@ -1228,57 +1430,46 @@ wheels = [ [[package]] name = "packaging" -version = "26.0" +version = "26.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload-time = "2026-01-21T20:50:39.064Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" }, +resolution-markers = [ + "python_full_version < '3.9'", ] - -[[package]] -name = "paginate" -version = "0.5.7" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ec/46/68dde5b6bc00c1296ec6466ab27dddede6aec9af1b99090e1107091b3b84/paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945", size = 19252, upload-time = "2024-08-25T14:17:24.139Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload-time = "2026-04-24T20:15:23.917Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/90/96/04b8e52da071d28f5e21a805b19cb9390aa17a47462ac87f5e2696b9566d/paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591", size = 13746, upload-time = "2024-08-25T14:17:22.55Z" }, + { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload-time = "2026-04-24T20:15:22.081Z" }, ] [[package]] -name = "pathspec" -version = "0.12.1" +name = "packaging" +version = "26.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.9'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", + "python_full_version == '3.9.*'", ] -sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043, upload-time = "2023-12-10T22:30:45Z" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/fa/3944b40b07da9ce895c0e6303a5ab7d53da063554f534556b134a54d6093/packaging-26.3.tar.gz", hash = "sha256:94edc256424af38762eb31306eed28beb9f0efc50a8837492c9d6fd6004aed79", size = 313412, upload-time = "2026-08-04T18:15:28.737Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, + { url = "https://files.pythonhosted.org/packages/63/34/ba1c580383c9eada3711951fef0795c80b829a078d72188184bcab9dd527/packaging-26.3-py3-none-any.whl", hash = "sha256:d7193f7c8e4e93f444fde0262bf90af30e16fa0ad0ad44cb553c87339b23cd1c", size = 129956, upload-time = "2026-08-04T18:15:27.159Z" }, ] [[package]] -name = "pathspec" -version = "1.0.4" +name = "paginate" +version = "0.5.7" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.10'", - "python_full_version == '3.9.*'", -] -sdist = { url = "https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz", hash = "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645", size = 131200, upload-time = "2026-01-27T03:59:46.938Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/46/68dde5b6bc00c1296ec6466ab27dddede6aec9af1b99090e1107091b3b84/paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945", size = 19252, upload-time = "2024-08-25T14:17:24.139Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl", hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723", size = 55206, upload-time = "2026-01-27T03:59:45.137Z" }, + { url = "https://files.pythonhosted.org/packages/90/96/04b8e52da071d28f5e21a805b19cb9390aa17a47462ac87f5e2696b9566d/paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591", size = 13746, upload-time = "2024-08-25T14:17:22.55Z" }, ] [[package]] -name = "platformdirs" -version = "4.3.6" +name = "pathspec" +version = "1.1.1" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.9'", -] -sdist = { url = "https://files.pythonhosted.org/packages/13/fc/128cc9cb8f03208bdbf93d3aa862e16d376844a14f9a0ce5cf4507372de4/platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907", size = 21302, upload-time = "2024-09-17T19:06:50.688Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/82/42f767fc1c1143d6fd36efb827202a2d997a375e160a71eb2888a925aac1/pathspec-1.1.1.tar.gz", hash = "sha256:17db5ecd524104a120e173814c90367a96a98d07c45b2e10c2f3919fff91bf5a", size = 135180, upload-time = "2026-04-27T01:46:08.907Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb", size = 18439, upload-time = "2024-09-17T19:06:49.212Z" }, + { url = "https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl", hash = "sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189", size = 57328, upload-time = "2026-04-27T01:46:07.06Z" }, ] [[package]] @@ -1295,14 +1486,15 @@ wheels = [ [[package]] name = "platformdirs" -version = "4.9.4" +version = "4.11.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", ] -sdist = { url = "https://files.pythonhosted.org/packages/19/56/8d4c30c8a1d07013911a8fdbd8f89440ef9f08d07a1b50ab8ca8be5a20f9/platformdirs-4.9.4.tar.gz", hash = "sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934", size = 28737, upload-time = "2026-03-05T18:34:13.271Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b8/d7/e7bfbc86e9f99ff7807e24de7703f032e9c9ba80bb355cf26e0e9bc5a75e/platformdirs-4.11.3.tar.gz", hash = "sha256:66a73d38a849810252df809a3d8bcbda8e26f6c189920e7535ad608a48dbb5ab", size = 33050, upload-time = "2026-08-13T22:43:27.52Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/63/d7/97f7e3a6abb67d8080dd406fd4df842c2be0efaf712d1c899c32a075027c/platformdirs-4.9.4-py3-none-any.whl", hash = "sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868", size = 21216, upload-time = "2026-03-05T18:34:12.172Z" }, + { url = "https://files.pythonhosted.org/packages/19/a9/c34aebedd3a4c9afe5101b1b8713710b3fec18087c8a36c35d2f909861bd/platformdirs-4.11.3-py3-none-any.whl", hash = "sha256:5ed065d443751de711da036041a7a214122efc4a4de393b3f4137ba5576540e7", size = 23491, upload-time = "2026-08-13T22:43:26.121Z" }, ] [[package]] @@ -1322,7 +1514,8 @@ name = "pluggy" version = "1.6.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", "python_full_version == '3.9.*'", ] sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } @@ -1338,11 +1531,11 @@ resolution-markers = [ "python_full_version == '3.9.*'", ] dependencies = [ - { name = "cfgv", version = "3.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "identify", version = "2.6.15", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "nodeenv", marker = "python_full_version == '3.9.*'" }, - { name = "pyyaml", marker = "python_full_version == '3.9.*'" }, - { name = "virtualenv", marker = "python_full_version == '3.9.*'" }, + { name = "cfgv", version = "3.4.0", source = { registry = "https://pypi.org/simple" } }, + { name = "identify", version = "2.6.15", source = { registry = "https://pypi.org/simple" } }, + { name = "nodeenv" }, + { name = "pyyaml" }, + { name = "virtualenv" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ff/29/7cf5bbc236333876e4b41f56e06857a87937ce4bf91e117a6991a2dbb02a/pre_commit-4.3.0.tar.gz", hash = "sha256:499fe450cc9d42e9d58e606262795ecb64dd05438943c62b66f6a8673da30b16", size = 193792, upload-time = "2025-08-09T18:56:14.651Z" } wheels = [ @@ -1351,21 +1544,22 @@ wheels = [ [[package]] name = "pre-commit" -version = "4.5.1" +version = "4.6.2" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", ] dependencies = [ - { name = "cfgv", version = "3.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "identify", version = "2.6.18", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "nodeenv", marker = "python_full_version >= '3.10'" }, - { name = "pyyaml", marker = "python_full_version >= '3.10'" }, - { name = "virtualenv", marker = "python_full_version >= '3.10'" }, + { name = "cfgv", version = "3.5.0", source = { registry = "https://pypi.org/simple" } }, + { name = "identify", version = "2.6.19", source = { registry = "https://pypi.org/simple" } }, + { name = "nodeenv" }, + { name = "pyyaml" }, + { name = "virtualenv" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/40/f1/6d86a29246dfd2e9b6237f0b5823717f60cad94d47ddc26afa916d21f525/pre_commit-4.5.1.tar.gz", hash = "sha256:eb545fcff725875197837263e977ea257a402056661f09dae08e4b149b030a61", size = 198232, upload-time = "2025-12-16T21:14:33.552Z" } +sdist = { url = "https://files.pythonhosted.org/packages/74/89/1f3e8e1fc3e97de0fa963495832f581f025f29471602a309e48808244292/pre_commit-4.6.2.tar.gz", hash = "sha256:8f5d7bfb021ecdbcd9d49d89847082dd24172ccde534390081a679ad046e2441", size = 198670, upload-time = "2026-08-10T22:07:18.421Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/19/fd3ef348460c80af7bb4669ea7926651d1f95c23ff2df18b9d24bab4f3fa/pre_commit-4.5.1-py2.py3-none-any.whl", hash = "sha256:3b3afd891e97337708c1674210f8eba659b52a38ea5f822ff142d10786221f77", size = 226437, upload-time = "2025-12-16T21:14:32.409Z" }, + { url = "https://files.pythonhosted.org/packages/45/e2/bbb7129c9e7999a6b8ee9cca3b66486c25c423ab5a75f34071798b74ce94/pre_commit-4.6.2-py2.py3-none-any.whl", hash = "sha256:e2dde9a75d3bce11bd3831c26d134df00a2803c1d818be6a0383c3dcda25dc4e", size = 226202, upload-time = "2026-08-10T22:07:16.942Z" }, ] [[package]] @@ -1411,20 +1605,21 @@ wheels = [ [[package]] name = "protobuf" -version = "7.35.1" +version = "7.36.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", ] -sdist = { url = "https://files.pythonhosted.org/packages/da/01/9ef0afd7999eb9badb3a768b4aedd78c86d4c65cfaf1958ab276199e76b4/protobuf-7.35.1.tar.gz", hash = "sha256:ce115a26fe0c39a2c29973d914d327e516a6455464489fe3cd1e51a1b354f81a", size = 458717, upload-time = "2026-06-11T21:55:40.257Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a7/e7/0553e21d25ca4d9f573135775348a372c3ec34a93a71d5f297c3bac38341/protobuf-7.36.0.tar.gz", hash = "sha256:e8e09cb0d794c6687926fa558a8a6e72aa10edb997d5ca61da0765f12a3e00ea", size = 510034, upload-time = "2026-08-20T16:34:01.071Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/10/03/8aeeb7458d22546bf64b5250ca1daeb5ff757d900e8e4a7476c6f0db843e/protobuf-7.35.1-cp310-abi3-macosx_10_9_universal2.whl", hash = "sha256:24f857477359a85c0c235261b8ba905fd51b2562f4a64ca1df5473f29850cbf6", size = 433226, upload-time = "2026-06-11T21:55:31.719Z" }, - { url = "https://files.pythonhosted.org/packages/37/4b/dfb89eb0e652a1ff073c39a59fb5e3a83cfe9b57a2c83fa6d78270101767/protobuf-7.35.1-cp310-abi3-manylinux2014_aarch64.whl", hash = "sha256:11d6b0ec246892d85215b0a13ca6e0233cf5284b68f0ac02646427f4ff88a799", size = 328847, upload-time = "2026-06-11T21:55:34.035Z" }, - { url = "https://files.pythonhosted.org/packages/0f/58/dc12f2cd484951524af6e3382c785869b9b3fb5e52ee95ae23add53ee8f9/protobuf-7.35.1-cp310-abi3-manylinux2014_s390x.whl", hash = "sha256:b73f9489a4b8b1c9cb1f8ed951c736392592edb24b9d6819f36d2e10b171d5b4", size = 344030, upload-time = "2026-06-11T21:55:34.941Z" }, - { url = "https://files.pythonhosted.org/packages/e4/be/5b3cfe508bfab6761414ff944e3366eb13be4fd71efcd69450f89ba39f43/protobuf-7.35.1-cp310-abi3-manylinux2014_x86_64.whl", hash = "sha256:74758715c53d7158fb76caf4f0cfdacc5329a4b1bb994f865d6cf302d413a1c4", size = 327130, upload-time = "2026-06-11T21:55:35.921Z" }, - { url = "https://files.pythonhosted.org/packages/d8/bc/6d6c7ba8709c85f8f2c390b2b118d6fb08a783676a572271851bf45a7d22/protobuf-7.35.1-cp310-abi3-win32.whl", hash = "sha256:353652e4efd0bca5b5fc2656abf8307ef351f0cf938c9eba09f0e09c20a25c30", size = 428945, upload-time = "2026-06-11T21:55:37.034Z" }, - { url = "https://files.pythonhosted.org/packages/0a/19/8d0cb6f20a1ef7b18f1c8986ad5783f22f84cce39c6ce9a6e645ea55192e/protobuf-7.35.1-cp310-abi3-win_amd64.whl", hash = "sha256:230a75ddfc2de4806e56696ce9640c1cdfdb6543b7cfce98d42a4c0a0e7bdb87", size = 439996, upload-time = "2026-06-11T21:55:38.123Z" }, - { url = "https://files.pythonhosted.org/packages/19/c7/5f7c636ec43e0c545e28d1f1db71990108306f7bdcb89f069ba97e428e7f/protobuf-7.35.1-py3-none-any.whl", hash = "sha256:4bc97768d8fe4ad6743c8a19403e314511ed9f6d13205b687e52421c023ac1b9", size = 171659, upload-time = "2026-06-11T21:55:39.155Z" }, + { url = "https://files.pythonhosted.org/packages/8f/ae/58e3ca96cb2e118cc546b677359b3c6659f79a140935c08dec94c7998585/protobuf-7.36.0-cp310-abi3-macosx_10_9_universal2.whl", hash = "sha256:9103532dffd80c6fab7e50c65a31007680a06eb57537d437bb1b35812c138a37", size = 453256, upload-time = "2026-08-20T16:33:53.945Z" }, + { url = "https://files.pythonhosted.org/packages/f0/15/5162230af4912697f0fe406f6800f80760945babcff0e2c2fe6c84ef2d5d/protobuf-7.36.0-cp310-abi3-manylinux2014_aarch64.whl", hash = "sha256:bf94a5917c71058262de683669bc0a797a7669d3de71f0b36d058e3194f47b44", size = 341436, upload-time = "2026-08-20T16:33:55.134Z" }, + { url = "https://files.pythonhosted.org/packages/d7/09/1670b2bfc9a45e807e520c3e9be36524db9ccc7dc05ea17af7681cabdc61/protobuf-7.36.0-cp310-abi3-manylinux2014_s390x.whl", hash = "sha256:3297e60abdff301e5f74393d87f6cc59dacab5f024a89548a6e8de1d26576b16", size = 354440, upload-time = "2026-08-20T16:33:56.077Z" }, + { url = "https://files.pythonhosted.org/packages/c7/f8/bd5804695ba400e423c33fd4d9f58c28d86633d5ba1945c36ff3967d98cb/protobuf-7.36.0-cp310-abi3-manylinux2014_x86_64.whl", hash = "sha256:70f5ec8eb0da81a44360c0dc0beac99a0d78071d21956a7076bae8bd2051841b", size = 340439, upload-time = "2026-08-20T16:33:56.992Z" }, + { url = "https://files.pythonhosted.org/packages/ef/9f/acd02338235a3e7d03168c4303478347b7624fc8189ff4e7f0d2654bbe86/protobuf-7.36.0-cp310-abi3-win32.whl", hash = "sha256:7326fd717bdc419162a735938d89d4032332bcc3408804012b24ff3a37086071", size = 440216, upload-time = "2026-08-20T16:33:57.99Z" }, + { url = "https://files.pythonhosted.org/packages/0e/4e/12cb93270967a2affff5b3f720694700d4d87712a67afd05c8cb3f6fa52c/protobuf-7.36.0-cp310-abi3-win_amd64.whl", hash = "sha256:1781cc1de61249b750848029bca452c0a8b7e990080316b9bbc2518b2117b488", size = 453731, upload-time = "2026-08-20T16:33:58.951Z" }, + { url = "https://files.pythonhosted.org/packages/01/c3/629999e78d46c1115c11886d51c6bd68c17ce4a944f1ea3e153a91316a33/protobuf-7.36.0-py3-none-any.whl", hash = "sha256:53374d53fc29a67f7dbbf0ade47d7526a0f0137bf0f9c90e48d8a60790ef748c", size = 177024, upload-time = "2026-08-20T16:34:00.053Z" }, ] [[package]] @@ -1435,9 +1630,9 @@ resolution-markers = [ "python_full_version < '3.9'", ] dependencies = [ - { name = "annotated-types", marker = "python_full_version < '3.9'" }, - { name = "pydantic-core", version = "2.27.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "annotated-types", version = "0.7.0", source = { registry = "https://pypi.org/simple" } }, + { name = "pydantic-core", version = "2.27.2", source = { registry = "https://pypi.org/simple" } }, + { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" } }, ] sdist = { url = "https://files.pythonhosted.org/packages/b7/ae/d5220c5c52b158b1de7ca89fc5edb72f304a70a4c540c84c8844bf4008de/pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236", size = 761681, upload-time = "2025-01-24T01:42:12.693Z" } wheels = [ @@ -1446,21 +1641,24 @@ wheels = [ [[package]] name = "pydantic" -version = "2.12.5" +version = "2.13.4" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", "python_full_version == '3.9.*'", ] dependencies = [ - { name = "annotated-types", marker = "python_full_version >= '3.9'" }, - { name = "pydantic-core", version = "2.41.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, - { name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, - { name = "typing-inspection", marker = "python_full_version >= '3.9'" }, + { name = "annotated-types", version = "0.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "annotated-types", version = "0.8.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "pydantic-core", version = "2.46.4", source = { registry = "https://pypi.org/simple" } }, + { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" } }, + { name = "typing-inspection", version = "0.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "typing-inspection", version = "0.4.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591, upload-time = "2025-11-26T15:11:46.471Z" } +sdist = { url = "https://files.pythonhosted.org/packages/18/a5/b60d21ac674192f8ab0ba4e9fd860690f9b4a6e51ca5df118733b487d8d6/pydantic-2.13.4.tar.gz", hash = "sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6", size = 844775, upload-time = "2026-05-06T13:43:05.343Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d", size = 463580, upload-time = "2025-11-26T15:11:44.605Z" }, + { url = "https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl", hash = "sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba", size = 472262, upload-time = "2026-05-06T13:43:02.641Z" }, ] [[package]] @@ -1471,7 +1669,7 @@ resolution-markers = [ "python_full_version < '3.9'", ] dependencies = [ - { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" } }, ] sdist = { url = "https://files.pythonhosted.org/packages/fc/01/f3e5ac5e7c25833db5eb555f7b7ab24cd6f8c322d3a3ad2d67a952dc0abc/pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39", size = 413443, upload-time = "2024-12-18T11:31:54.917Z" } wheels = [ @@ -1578,137 +1776,137 @@ wheels = [ [[package]] name = "pydantic-core" -version = "2.41.5" +version = "2.46.4" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", "python_full_version == '3.9.*'", ] dependencies = [ - { name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952, upload-time = "2025-11-04T13:43:49.098Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c6/90/32c9941e728d564b411d574d8ee0cf09b12ec978cb22b294995bae5549a5/pydantic_core-2.41.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:77b63866ca88d804225eaa4af3e664c5faf3568cea95360d21f4725ab6e07146", size = 2107298, upload-time = "2025-11-04T13:39:04.116Z" }, - { url = "https://files.pythonhosted.org/packages/fb/a8/61c96a77fe28993d9a6fb0f4127e05430a267b235a124545d79fea46dd65/pydantic_core-2.41.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dfa8a0c812ac681395907e71e1274819dec685fec28273a28905df579ef137e2", size = 1901475, upload-time = "2025-11-04T13:39:06.055Z" }, - { url = "https://files.pythonhosted.org/packages/5d/b6/338abf60225acc18cdc08b4faef592d0310923d19a87fba1faf05af5346e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5921a4d3ca3aee735d9fd163808f5e8dd6c6972101e4adbda9a4667908849b97", size = 1918815, upload-time = "2025-11-04T13:39:10.41Z" }, - { url = "https://files.pythonhosted.org/packages/d1/1c/2ed0433e682983d8e8cba9c8d8ef274d4791ec6a6f24c58935b90e780e0a/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25c479382d26a2a41b7ebea1043564a937db462816ea07afa8a44c0866d52f9", size = 2065567, upload-time = "2025-11-04T13:39:12.244Z" }, - { url = "https://files.pythonhosted.org/packages/b3/24/cf84974ee7d6eae06b9e63289b7b8f6549d416b5c199ca2d7ce13bbcf619/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f547144f2966e1e16ae626d8ce72b4cfa0caedc7fa28052001c94fb2fcaa1c52", size = 2230442, upload-time = "2025-11-04T13:39:13.962Z" }, - { url = "https://files.pythonhosted.org/packages/fd/21/4e287865504b3edc0136c89c9c09431be326168b1eb7841911cbc877a995/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f52298fbd394f9ed112d56f3d11aabd0d5bd27beb3084cc3d8ad069483b8941", size = 2350956, upload-time = "2025-11-04T13:39:15.889Z" }, - { url = "https://files.pythonhosted.org/packages/a8/76/7727ef2ffa4b62fcab916686a68a0426b9b790139720e1934e8ba797e238/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:100baa204bb412b74fe285fb0f3a385256dad1d1879f0a5cb1499ed2e83d132a", size = 2068253, upload-time = "2025-11-04T13:39:17.403Z" }, - { url = "https://files.pythonhosted.org/packages/d5/8c/a4abfc79604bcb4c748e18975c44f94f756f08fb04218d5cb87eb0d3a63e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:05a2c8852530ad2812cb7914dc61a1125dc4e06252ee98e5638a12da6cc6fb6c", size = 2177050, upload-time = "2025-11-04T13:39:19.351Z" }, - { url = "https://files.pythonhosted.org/packages/67/b1/de2e9a9a79b480f9cb0b6e8b6ba4c50b18d4e89852426364c66aa82bb7b3/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:29452c56df2ed968d18d7e21f4ab0ac55e71dc59524872f6fc57dcf4a3249ed2", size = 2147178, upload-time = "2025-11-04T13:39:21Z" }, - { url = "https://files.pythonhosted.org/packages/16/c1/dfb33f837a47b20417500efaa0378adc6635b3c79e8369ff7a03c494b4ac/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:d5160812ea7a8a2ffbe233d8da666880cad0cbaf5d4de74ae15c313213d62556", size = 2341833, upload-time = "2025-11-04T13:39:22.606Z" }, - { url = "https://files.pythonhosted.org/packages/47/36/00f398642a0f4b815a9a558c4f1dca1b4020a7d49562807d7bc9ff279a6c/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:df3959765b553b9440adfd3c795617c352154e497a4eaf3752555cfb5da8fc49", size = 2321156, upload-time = "2025-11-04T13:39:25.843Z" }, - { url = "https://files.pythonhosted.org/packages/7e/70/cad3acd89fde2010807354d978725ae111ddf6d0ea46d1ea1775b5c1bd0c/pydantic_core-2.41.5-cp310-cp310-win32.whl", hash = "sha256:1f8d33a7f4d5a7889e60dc39856d76d09333d8a6ed0f5f1190635cbec70ec4ba", size = 1989378, upload-time = "2025-11-04T13:39:27.92Z" }, - { url = "https://files.pythonhosted.org/packages/76/92/d338652464c6c367e5608e4488201702cd1cbb0f33f7b6a85a60fe5f3720/pydantic_core-2.41.5-cp310-cp310-win_amd64.whl", hash = "sha256:62de39db01b8d593e45871af2af9e497295db8d73b085f6bfd0b18c83c70a8f9", size = 2013622, upload-time = "2025-11-04T13:39:29.848Z" }, - { url = "https://files.pythonhosted.org/packages/e8/72/74a989dd9f2084b3d9530b0915fdda64ac48831c30dbf7c72a41a5232db8/pydantic_core-2.41.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a3a52f6156e73e7ccb0f8cced536adccb7042be67cb45f9562e12b319c119da6", size = 2105873, upload-time = "2025-11-04T13:39:31.373Z" }, - { url = "https://files.pythonhosted.org/packages/12/44/37e403fd9455708b3b942949e1d7febc02167662bf1a7da5b78ee1ea2842/pydantic_core-2.41.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7f3bf998340c6d4b0c9a2f02d6a400e51f123b59565d74dc60d252ce888c260b", size = 1899826, upload-time = "2025-11-04T13:39:32.897Z" }, - { url = "https://files.pythonhosted.org/packages/33/7f/1d5cab3ccf44c1935a359d51a8a2a9e1a654b744b5e7f80d41b88d501eec/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:378bec5c66998815d224c9ca994f1e14c0c21cb95d2f52b6021cc0b2a58f2a5a", size = 1917869, upload-time = "2025-11-04T13:39:34.469Z" }, - { url = "https://files.pythonhosted.org/packages/6e/6a/30d94a9674a7fe4f4744052ed6c5e083424510be1e93da5bc47569d11810/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7b576130c69225432866fe2f4a469a85a54ade141d96fd396dffcf607b558f8", size = 2063890, upload-time = "2025-11-04T13:39:36.053Z" }, - { url = "https://files.pythonhosted.org/packages/50/be/76e5d46203fcb2750e542f32e6c371ffa9b8ad17364cf94bb0818dbfb50c/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cb58b9c66f7e4179a2d5e0f849c48eff5c1fca560994d6eb6543abf955a149e", size = 2229740, upload-time = "2025-11-04T13:39:37.753Z" }, - { url = "https://files.pythonhosted.org/packages/d3/ee/fed784df0144793489f87db310a6bbf8118d7b630ed07aa180d6067e653a/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:88942d3a3dff3afc8288c21e565e476fc278902ae4d6d134f1eeda118cc830b1", size = 2350021, upload-time = "2025-11-04T13:39:40.94Z" }, - { url = "https://files.pythonhosted.org/packages/c8/be/8fed28dd0a180dca19e72c233cbf58efa36df055e5b9d90d64fd1740b828/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f31d95a179f8d64d90f6831d71fa93290893a33148d890ba15de25642c5d075b", size = 2066378, upload-time = "2025-11-04T13:39:42.523Z" }, - { url = "https://files.pythonhosted.org/packages/b0/3b/698cf8ae1d536a010e05121b4958b1257f0b5522085e335360e53a6b1c8b/pydantic_core-2.41.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1df3d34aced70add6f867a8cf413e299177e0c22660cc767218373d0779487b", size = 2175761, upload-time = "2025-11-04T13:39:44.553Z" }, - { url = "https://files.pythonhosted.org/packages/b8/ba/15d537423939553116dea94ce02f9c31be0fa9d0b806d427e0308ec17145/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4009935984bd36bd2c774e13f9a09563ce8de4abaa7226f5108262fa3e637284", size = 2146303, upload-time = "2025-11-04T13:39:46.238Z" }, - { url = "https://files.pythonhosted.org/packages/58/7f/0de669bf37d206723795f9c90c82966726a2ab06c336deba4735b55af431/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:34a64bc3441dc1213096a20fe27e8e128bd3ff89921706e83c0b1ac971276594", size = 2340355, upload-time = "2025-11-04T13:39:48.002Z" }, - { url = "https://files.pythonhosted.org/packages/e5/de/e7482c435b83d7e3c3ee5ee4451f6e8973cff0eb6007d2872ce6383f6398/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c9e19dd6e28fdcaa5a1de679aec4141f691023916427ef9bae8584f9c2fb3b0e", size = 2319875, upload-time = "2025-11-04T13:39:49.705Z" }, - { url = "https://files.pythonhosted.org/packages/fe/e6/8c9e81bb6dd7560e33b9053351c29f30c8194b72f2d6932888581f503482/pydantic_core-2.41.5-cp311-cp311-win32.whl", hash = "sha256:2c010c6ded393148374c0f6f0bf89d206bf3217f201faa0635dcd56bd1520f6b", size = 1987549, upload-time = "2025-11-04T13:39:51.842Z" }, - { url = "https://files.pythonhosted.org/packages/11/66/f14d1d978ea94d1bc21fc98fcf570f9542fe55bfcc40269d4e1a21c19bf7/pydantic_core-2.41.5-cp311-cp311-win_amd64.whl", hash = "sha256:76ee27c6e9c7f16f47db7a94157112a2f3a00e958bc626e2f4ee8bec5c328fbe", size = 2011305, upload-time = "2025-11-04T13:39:53.485Z" }, - { url = "https://files.pythonhosted.org/packages/56/d8/0e271434e8efd03186c5386671328154ee349ff0354d83c74f5caaf096ed/pydantic_core-2.41.5-cp311-cp311-win_arm64.whl", hash = "sha256:4bc36bbc0b7584de96561184ad7f012478987882ebf9f9c389b23f432ea3d90f", size = 1972902, upload-time = "2025-11-04T13:39:56.488Z" }, - { url = "https://files.pythonhosted.org/packages/5f/5d/5f6c63eebb5afee93bcaae4ce9a898f3373ca23df3ccaef086d0233a35a7/pydantic_core-2.41.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7", size = 2110990, upload-time = "2025-11-04T13:39:58.079Z" }, - { url = "https://files.pythonhosted.org/packages/aa/32/9c2e8ccb57c01111e0fd091f236c7b371c1bccea0fa85247ac55b1e2b6b6/pydantic_core-2.41.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0", size = 1896003, upload-time = "2025-11-04T13:39:59.956Z" }, - { url = "https://files.pythonhosted.org/packages/68/b8/a01b53cb0e59139fbc9e4fda3e9724ede8de279097179be4ff31f1abb65a/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69", size = 1919200, upload-time = "2025-11-04T13:40:02.241Z" }, - { url = "https://files.pythonhosted.org/packages/38/de/8c36b5198a29bdaade07b5985e80a233a5ac27137846f3bc2d3b40a47360/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75", size = 2052578, upload-time = "2025-11-04T13:40:04.401Z" }, - { url = "https://files.pythonhosted.org/packages/00/b5/0e8e4b5b081eac6cb3dbb7e60a65907549a1ce035a724368c330112adfdd/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05", size = 2208504, upload-time = "2025-11-04T13:40:06.072Z" }, - { url = "https://files.pythonhosted.org/packages/77/56/87a61aad59c7c5b9dc8caad5a41a5545cba3810c3e828708b3d7404f6cef/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc", size = 2335816, upload-time = "2025-11-04T13:40:07.835Z" }, - { url = "https://files.pythonhosted.org/packages/0d/76/941cc9f73529988688a665a5c0ecff1112b3d95ab48f81db5f7606f522d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c", size = 2075366, upload-time = "2025-11-04T13:40:09.804Z" }, - { url = "https://files.pythonhosted.org/packages/d3/43/ebef01f69baa07a482844faaa0a591bad1ef129253ffd0cdaa9d8a7f72d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5", size = 2171698, upload-time = "2025-11-04T13:40:12.004Z" }, - { url = "https://files.pythonhosted.org/packages/b1/87/41f3202e4193e3bacfc2c065fab7706ebe81af46a83d3e27605029c1f5a6/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c", size = 2132603, upload-time = "2025-11-04T13:40:13.868Z" }, - { url = "https://files.pythonhosted.org/packages/49/7d/4c00df99cb12070b6bccdef4a195255e6020a550d572768d92cc54dba91a/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294", size = 2329591, upload-time = "2025-11-04T13:40:15.672Z" }, - { url = "https://files.pythonhosted.org/packages/cc/6a/ebf4b1d65d458f3cda6a7335d141305dfa19bdc61140a884d165a8a1bbc7/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1", size = 2319068, upload-time = "2025-11-04T13:40:17.532Z" }, - { url = "https://files.pythonhosted.org/packages/49/3b/774f2b5cd4192d5ab75870ce4381fd89cf218af999515baf07e7206753f0/pydantic_core-2.41.5-cp312-cp312-win32.whl", hash = "sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d", size = 1985908, upload-time = "2025-11-04T13:40:19.309Z" }, - { url = "https://files.pythonhosted.org/packages/86/45/00173a033c801cacf67c190fef088789394feaf88a98a7035b0e40d53dc9/pydantic_core-2.41.5-cp312-cp312-win_amd64.whl", hash = "sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815", size = 2020145, upload-time = "2025-11-04T13:40:21.548Z" }, - { url = "https://files.pythonhosted.org/packages/f9/22/91fbc821fa6d261b376a3f73809f907cec5ca6025642c463d3488aad22fb/pydantic_core-2.41.5-cp312-cp312-win_arm64.whl", hash = "sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3", size = 1976179, upload-time = "2025-11-04T13:40:23.393Z" }, - { url = "https://files.pythonhosted.org/packages/87/06/8806241ff1f70d9939f9af039c6c35f2360cf16e93c2ca76f184e76b1564/pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9", size = 2120403, upload-time = "2025-11-04T13:40:25.248Z" }, - { url = "https://files.pythonhosted.org/packages/94/02/abfa0e0bda67faa65fef1c84971c7e45928e108fe24333c81f3bfe35d5f5/pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34", size = 1896206, upload-time = "2025-11-04T13:40:27.099Z" }, - { url = "https://files.pythonhosted.org/packages/15/df/a4c740c0943e93e6500f9eb23f4ca7ec9bf71b19e608ae5b579678c8d02f/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0", size = 1919307, upload-time = "2025-11-04T13:40:29.806Z" }, - { url = "https://files.pythonhosted.org/packages/9a/e3/6324802931ae1d123528988e0e86587c2072ac2e5394b4bc2bc34b61ff6e/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33", size = 2063258, upload-time = "2025-11-04T13:40:33.544Z" }, - { url = "https://files.pythonhosted.org/packages/c9/d4/2230d7151d4957dd79c3044ea26346c148c98fbf0ee6ebd41056f2d62ab5/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e", size = 2214917, upload-time = "2025-11-04T13:40:35.479Z" }, - { url = "https://files.pythonhosted.org/packages/e6/9f/eaac5df17a3672fef0081b6c1bb0b82b33ee89aa5cec0d7b05f52fd4a1fa/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2", size = 2332186, upload-time = "2025-11-04T13:40:37.436Z" }, - { url = "https://files.pythonhosted.org/packages/cf/4e/35a80cae583a37cf15604b44240e45c05e04e86f9cfd766623149297e971/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586", size = 2073164, upload-time = "2025-11-04T13:40:40.289Z" }, - { url = "https://files.pythonhosted.org/packages/bf/e3/f6e262673c6140dd3305d144d032f7bd5f7497d3871c1428521f19f9efa2/pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d", size = 2179146, upload-time = "2025-11-04T13:40:42.809Z" }, - { url = "https://files.pythonhosted.org/packages/75/c7/20bd7fc05f0c6ea2056a4565c6f36f8968c0924f19b7d97bbfea55780e73/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740", size = 2137788, upload-time = "2025-11-04T13:40:44.752Z" }, - { url = "https://files.pythonhosted.org/packages/3a/8d/34318ef985c45196e004bc46c6eab2eda437e744c124ef0dbe1ff2c9d06b/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e", size = 2340133, upload-time = "2025-11-04T13:40:46.66Z" }, - { url = "https://files.pythonhosted.org/packages/9c/59/013626bf8c78a5a5d9350d12e7697d3d4de951a75565496abd40ccd46bee/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858", size = 2324852, upload-time = "2025-11-04T13:40:48.575Z" }, - { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679, upload-time = "2025-11-04T13:40:50.619Z" }, - { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766, upload-time = "2025-11-04T13:40:52.631Z" }, - { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005, upload-time = "2025-11-04T13:40:54.734Z" }, - { url = "https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a", size = 2119622, upload-time = "2025-11-04T13:40:56.68Z" }, - { url = "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14", size = 1891725, upload-time = "2025-11-04T13:40:58.807Z" }, - { url = "https://files.pythonhosted.org/packages/23/04/e89c29e267b8060b40dca97bfc64a19b2a3cf99018167ea1677d96368273/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1", size = 1915040, upload-time = "2025-11-04T13:41:00.853Z" }, - { url = "https://files.pythonhosted.org/packages/84/a3/15a82ac7bd97992a82257f777b3583d3e84bdb06ba6858f745daa2ec8a85/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66", size = 2063691, upload-time = "2025-11-04T13:41:03.504Z" }, - { url = "https://files.pythonhosted.org/packages/74/9b/0046701313c6ef08c0c1cf0e028c67c770a4e1275ca73131563c5f2a310a/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869", size = 2213897, upload-time = "2025-11-04T13:41:05.804Z" }, - { url = "https://files.pythonhosted.org/packages/8a/cd/6bac76ecd1b27e75a95ca3a9a559c643b3afcd2dd62086d4b7a32a18b169/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2", size = 2333302, upload-time = "2025-11-04T13:41:07.809Z" }, - { url = "https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375", size = 2064877, upload-time = "2025-11-04T13:41:09.827Z" }, - { url = "https://files.pythonhosted.org/packages/18/66/e9db17a9a763d72f03de903883c057b2592c09509ccfe468187f2a2eef29/pydantic_core-2.41.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553", size = 2180680, upload-time = "2025-11-04T13:41:12.379Z" }, - { url = "https://files.pythonhosted.org/packages/d3/9e/3ce66cebb929f3ced22be85d4c2399b8e85b622db77dad36b73c5387f8f8/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90", size = 2138960, upload-time = "2025-11-04T13:41:14.627Z" }, - { url = "https://files.pythonhosted.org/packages/a6/62/205a998f4327d2079326b01abee48e502ea739d174f0a89295c481a2272e/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07", size = 2339102, upload-time = "2025-11-04T13:41:16.868Z" }, - { url = "https://files.pythonhosted.org/packages/3c/0d/f05e79471e889d74d3d88f5bd20d0ed189ad94c2423d81ff8d0000aab4ff/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb", size = 2326039, upload-time = "2025-11-04T13:41:18.934Z" }, - { url = "https://files.pythonhosted.org/packages/ec/e1/e08a6208bb100da7e0c4b288eed624a703f4d129bde2da475721a80cab32/pydantic_core-2.41.5-cp314-cp314-win32.whl", hash = "sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23", size = 1995126, upload-time = "2025-11-04T13:41:21.418Z" }, - { url = "https://files.pythonhosted.org/packages/48/5d/56ba7b24e9557f99c9237e29f5c09913c81eeb2f3217e40e922353668092/pydantic_core-2.41.5-cp314-cp314-win_amd64.whl", hash = "sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf", size = 2015489, upload-time = "2025-11-04T13:41:24.076Z" }, - { url = "https://files.pythonhosted.org/packages/4e/bb/f7a190991ec9e3e0ba22e4993d8755bbc4a32925c0b5b42775c03e8148f9/pydantic_core-2.41.5-cp314-cp314-win_arm64.whl", hash = "sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0", size = 1977288, upload-time = "2025-11-04T13:41:26.33Z" }, - { url = "https://files.pythonhosted.org/packages/92/ed/77542d0c51538e32e15afe7899d79efce4b81eee631d99850edc2f5e9349/pydantic_core-2.41.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a", size = 2120255, upload-time = "2025-11-04T13:41:28.569Z" }, - { url = "https://files.pythonhosted.org/packages/bb/3d/6913dde84d5be21e284439676168b28d8bbba5600d838b9dca99de0fad71/pydantic_core-2.41.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3", size = 1863760, upload-time = "2025-11-04T13:41:31.055Z" }, - { url = "https://files.pythonhosted.org/packages/5a/f0/e5e6b99d4191da102f2b0eb9687aaa7f5bea5d9964071a84effc3e40f997/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c", size = 1878092, upload-time = "2025-11-04T13:41:33.21Z" }, - { url = "https://files.pythonhosted.org/packages/71/48/36fb760642d568925953bcc8116455513d6e34c4beaa37544118c36aba6d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612", size = 2053385, upload-time = "2025-11-04T13:41:35.508Z" }, - { url = "https://files.pythonhosted.org/packages/20/25/92dc684dd8eb75a234bc1c764b4210cf2646479d54b47bf46061657292a8/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d", size = 2218832, upload-time = "2025-11-04T13:41:37.732Z" }, - { url = "https://files.pythonhosted.org/packages/e2/09/f53e0b05023d3e30357d82eb35835d0f6340ca344720a4599cd663dca599/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9", size = 2327585, upload-time = "2025-11-04T13:41:40Z" }, - { url = "https://files.pythonhosted.org/packages/aa/4e/2ae1aa85d6af35a39b236b1b1641de73f5a6ac4d5a7509f77b814885760c/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660", size = 2041078, upload-time = "2025-11-04T13:41:42.323Z" }, - { url = "https://files.pythonhosted.org/packages/cd/13/2e215f17f0ef326fc72afe94776edb77525142c693767fc347ed6288728d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9", size = 2173914, upload-time = "2025-11-04T13:41:45.221Z" }, - { url = "https://files.pythonhosted.org/packages/02/7a/f999a6dcbcd0e5660bc348a3991c8915ce6599f4f2c6ac22f01d7a10816c/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3", size = 2129560, upload-time = "2025-11-04T13:41:47.474Z" }, - { url = "https://files.pythonhosted.org/packages/3a/b1/6c990ac65e3b4c079a4fb9f5b05f5b013afa0f4ed6780a3dd236d2cbdc64/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf", size = 2329244, upload-time = "2025-11-04T13:41:49.992Z" }, - { url = "https://files.pythonhosted.org/packages/d9/02/3c562f3a51afd4d88fff8dffb1771b30cfdfd79befd9883ee094f5b6c0d8/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470", size = 2331955, upload-time = "2025-11-04T13:41:54.079Z" }, - { url = "https://files.pythonhosted.org/packages/5c/96/5fb7d8c3c17bc8c62fdb031c47d77a1af698f1d7a406b0f79aaa1338f9ad/pydantic_core-2.41.5-cp314-cp314t-win32.whl", hash = "sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa", size = 1988906, upload-time = "2025-11-04T13:41:56.606Z" }, - { url = "https://files.pythonhosted.org/packages/22/ed/182129d83032702912c2e2d8bbe33c036f342cc735737064668585dac28f/pydantic_core-2.41.5-cp314-cp314t-win_amd64.whl", hash = "sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c", size = 1981607, upload-time = "2025-11-04T13:41:58.889Z" }, - { url = "https://files.pythonhosted.org/packages/9f/ed/068e41660b832bb0b1aa5b58011dea2a3fe0ba7861ff38c4d4904c1c1a99/pydantic_core-2.41.5-cp314-cp314t-win_arm64.whl", hash = "sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008", size = 1974769, upload-time = "2025-11-04T13:42:01.186Z" }, - { url = "https://files.pythonhosted.org/packages/54/db/160dffb57ed9a3705c4cbcbff0ac03bdae45f1ca7d58ab74645550df3fbd/pydantic_core-2.41.5-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:8bfeaf8735be79f225f3fefab7f941c712aaca36f1128c9d7e2352ee1aa87bdf", size = 2107999, upload-time = "2025-11-04T13:42:03.885Z" }, - { url = "https://files.pythonhosted.org/packages/a3/7d/88e7de946f60d9263cc84819f32513520b85c0f8322f9b8f6e4afc938383/pydantic_core-2.41.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:346285d28e4c8017da95144c7f3acd42740d637ff41946af5ce6e5e420502dd5", size = 1929745, upload-time = "2025-11-04T13:42:06.075Z" }, - { url = "https://files.pythonhosted.org/packages/d5/c2/aef51e5b283780e85e99ff19db0f05842d2d4a8a8cd15e63b0280029b08f/pydantic_core-2.41.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a75dafbf87d6276ddc5b2bf6fae5254e3d0876b626eb24969a574fff9149ee5d", size = 1920220, upload-time = "2025-11-04T13:42:08.457Z" }, - { url = "https://files.pythonhosted.org/packages/c7/97/492ab10f9ac8695cd76b2fdb24e9e61f394051df71594e9bcc891c9f586e/pydantic_core-2.41.5-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7b93a4d08587e2b7e7882de461e82b6ed76d9026ce91ca7915e740ecc7855f60", size = 2067296, upload-time = "2025-11-04T13:42:10.817Z" }, - { url = "https://files.pythonhosted.org/packages/ec/23/984149650e5269c59a2a4c41d234a9570adc68ab29981825cfaf4cfad8f4/pydantic_core-2.41.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e8465ab91a4bd96d36dde3263f06caa6a8a6019e4113f24dc753d79a8b3a3f82", size = 2231548, upload-time = "2025-11-04T13:42:13.843Z" }, - { url = "https://files.pythonhosted.org/packages/71/0c/85bcbb885b9732c28bec67a222dbed5ed2d77baee1f8bba2002e8cd00c5c/pydantic_core-2.41.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:299e0a22e7ae2b85c1a57f104538b2656e8ab1873511fd718a1c1c6f149b77b5", size = 2362571, upload-time = "2025-11-04T13:42:16.208Z" }, - { url = "https://files.pythonhosted.org/packages/c0/4a/412d2048be12c334003e9b823a3fa3d038e46cc2d64dd8aab50b31b65499/pydantic_core-2.41.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:707625ef0983fcfb461acfaf14de2067c5942c6bb0f3b4c99158bed6fedd3cf3", size = 2068175, upload-time = "2025-11-04T13:42:18.911Z" }, - { url = "https://files.pythonhosted.org/packages/73/f4/c58b6a776b502d0a5540ad02e232514285513572060f0d78f7832ca3c98b/pydantic_core-2.41.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f41eb9797986d6ebac5e8edff36d5cef9de40def462311b3eb3eeded1431e425", size = 2177203, upload-time = "2025-11-04T13:42:22.578Z" }, - { url = "https://files.pythonhosted.org/packages/ed/ae/f06ea4c7e7a9eead3d165e7623cd2ea0cb788e277e4f935af63fc98fa4e6/pydantic_core-2.41.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0384e2e1021894b1ff5a786dbf94771e2986ebe2869533874d7e43bc79c6f504", size = 2148191, upload-time = "2025-11-04T13:42:24.89Z" }, - { url = "https://files.pythonhosted.org/packages/c1/57/25a11dcdc656bf5f8b05902c3c2934ac3ea296257cc4a3f79a6319e61856/pydantic_core-2.41.5-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:f0cd744688278965817fd0839c4a4116add48d23890d468bc436f78beb28abf5", size = 2343907, upload-time = "2025-11-04T13:42:27.683Z" }, - { url = "https://files.pythonhosted.org/packages/96/82/e33d5f4933d7a03327c0c43c65d575e5919d4974ffc026bc917a5f7b9f61/pydantic_core-2.41.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:753e230374206729bf0a807954bcc6c150d3743928a73faffee51ac6557a03c3", size = 2322174, upload-time = "2025-11-04T13:42:30.776Z" }, - { url = "https://files.pythonhosted.org/packages/81/45/4091be67ce9f469e81656f880f3506f6a5624121ec5eb3eab37d7581897d/pydantic_core-2.41.5-cp39-cp39-win32.whl", hash = "sha256:873e0d5b4fb9b89ef7c2d2a963ea7d02879d9da0da8d9d4933dee8ee86a8b460", size = 1990353, upload-time = "2025-11-04T13:42:33.111Z" }, - { url = "https://files.pythonhosted.org/packages/44/8a/a98aede18db6e9cd5d66bcacd8a409fcf8134204cdede2e7de35c5a2c5ef/pydantic_core-2.41.5-cp39-cp39-win_amd64.whl", hash = "sha256:e4f4a984405e91527a0d62649ee21138f8e3d0ef103be488c1dc11a80d7f184b", size = 2015698, upload-time = "2025-11-04T13:42:35.484Z" }, - { url = "https://files.pythonhosted.org/packages/11/72/90fda5ee3b97e51c494938a4a44c3a35a9c96c19bba12372fb9c634d6f57/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034", size = 2115441, upload-time = "2025-11-04T13:42:39.557Z" }, - { url = "https://files.pythonhosted.org/packages/1f/53/8942f884fa33f50794f119012dc6a1a02ac43a56407adaac20463df8e98f/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c", size = 1930291, upload-time = "2025-11-04T13:42:42.169Z" }, - { url = "https://files.pythonhosted.org/packages/79/c8/ecb9ed9cd942bce09fc888ee960b52654fbdbede4ba6c2d6e0d3b1d8b49c/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2", size = 1948632, upload-time = "2025-11-04T13:42:44.564Z" }, - { url = "https://files.pythonhosted.org/packages/2e/1b/687711069de7efa6af934e74f601e2a4307365e8fdc404703afc453eab26/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad", size = 2138905, upload-time = "2025-11-04T13:42:47.156Z" }, - { url = "https://files.pythonhosted.org/packages/09/32/59b0c7e63e277fa7911c2fc70ccfb45ce4b98991e7ef37110663437005af/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd", size = 2110495, upload-time = "2025-11-04T13:42:49.689Z" }, - { url = "https://files.pythonhosted.org/packages/aa/81/05e400037eaf55ad400bcd318c05bb345b57e708887f07ddb2d20e3f0e98/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc", size = 1915388, upload-time = "2025-11-04T13:42:52.215Z" }, - { url = "https://files.pythonhosted.org/packages/6e/0d/e3549b2399f71d56476b77dbf3cf8937cec5cd70536bdc0e374a421d0599/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56", size = 1942879, upload-time = "2025-11-04T13:42:56.483Z" }, - { url = "https://files.pythonhosted.org/packages/f7/07/34573da085946b6a313d7c42f82f16e8920bfd730665de2d11c0c37a74b5/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b", size = 2139017, upload-time = "2025-11-04T13:42:59.471Z" }, - { url = "https://files.pythonhosted.org/packages/e6/b0/1a2aa41e3b5a4ba11420aba2d091b2d17959c8d1519ece3627c371951e73/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b5819cd790dbf0c5eb9f82c73c16b39a65dd6dd4d1439dcdea7816ec9adddab8", size = 2103351, upload-time = "2025-11-04T13:43:02.058Z" }, - { url = "https://files.pythonhosted.org/packages/a4/ee/31b1f0020baaf6d091c87900ae05c6aeae101fa4e188e1613c80e4f1ea31/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5a4e67afbc95fa5c34cf27d9089bca7fcab4e51e57278d710320a70b956d1b9a", size = 1925363, upload-time = "2025-11-04T13:43:05.159Z" }, - { url = "https://files.pythonhosted.org/packages/e1/89/ab8e86208467e467a80deaca4e434adac37b10a9d134cd2f99b28a01e483/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ece5c59f0ce7d001e017643d8d24da587ea1f74f6993467d85ae8a5ef9d4f42b", size = 2135615, upload-time = "2025-11-04T13:43:08.116Z" }, - { url = "https://files.pythonhosted.org/packages/99/0a/99a53d06dd0348b2008f2f30884b34719c323f16c3be4e6cc1203b74a91d/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:16f80f7abe3351f8ea6858914ddc8c77e02578544a0ebc15b4c2e1a0e813b0b2", size = 2175369, upload-time = "2025-11-04T13:43:12.49Z" }, - { url = "https://files.pythonhosted.org/packages/6d/94/30ca3b73c6d485b9bb0bc66e611cff4a7138ff9736b7e66bcf0852151636/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:33cb885e759a705b426baada1fe68cbb0a2e68e34c5d0d0289a364cf01709093", size = 2144218, upload-time = "2025-11-04T13:43:15.431Z" }, - { url = "https://files.pythonhosted.org/packages/87/57/31b4f8e12680b739a91f472b5671294236b82586889ef764b5fbc6669238/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:c8d8b4eb992936023be7dee581270af5c6e0697a8559895f527f5b7105ecd36a", size = 2329951, upload-time = "2025-11-04T13:43:18.062Z" }, - { url = "https://files.pythonhosted.org/packages/7d/73/3c2c8edef77b8f7310e6fb012dbc4b8551386ed575b9eb6fb2506e28a7eb/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:242a206cd0318f95cd21bdacff3fcc3aab23e79bba5cac3db5a841c9ef9c6963", size = 2318428, upload-time = "2025-11-04T13:43:20.679Z" }, - { url = "https://files.pythonhosted.org/packages/2f/02/8559b1f26ee0d502c74f9cca5c0d2fd97e967e083e006bbbb4e97f3a043a/pydantic_core-2.41.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d3a978c4f57a597908b7e697229d996d77a6d3c94901e9edee593adada95ce1a", size = 2147009, upload-time = "2025-11-04T13:43:23.286Z" }, - { url = "https://files.pythonhosted.org/packages/5f/9b/1b3f0e9f9305839d7e84912f9e8bfbd191ed1b1ef48083609f0dabde978c/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b2379fa7ed44ddecb5bfe4e48577d752db9fc10be00a6b7446e9663ba143de26", size = 2101980, upload-time = "2025-11-04T13:43:25.97Z" }, - { url = "https://files.pythonhosted.org/packages/a4/ed/d71fefcb4263df0da6a85b5d8a7508360f2f2e9b3bf5814be9c8bccdccc1/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:266fb4cbf5e3cbd0b53669a6d1b039c45e3ce651fd5442eff4d07c2cc8d66808", size = 1923865, upload-time = "2025-11-04T13:43:28.763Z" }, - { url = "https://files.pythonhosted.org/packages/ce/3a/626b38db460d675f873e4444b4bb030453bbe7b4ba55df821d026a0493c4/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58133647260ea01e4d0500089a8c4f07bd7aa6ce109682b1426394988d8aaacc", size = 2134256, upload-time = "2025-11-04T13:43:31.71Z" }, - { url = "https://files.pythonhosted.org/packages/83/d9/8412d7f06f616bbc053d30cb4e5f76786af3221462ad5eee1f202021eb4e/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:287dad91cfb551c363dc62899a80e9e14da1f0e2b6ebde82c806612ca2a13ef1", size = 2174762, upload-time = "2025-11-04T13:43:34.744Z" }, - { url = "https://files.pythonhosted.org/packages/55/4c/162d906b8e3ba3a99354e20faa1b49a85206c47de97a639510a0e673f5da/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:03b77d184b9eb40240ae9fd676ca364ce1085f203e1b1256f8ab9984dca80a84", size = 2143141, upload-time = "2025-11-04T13:43:37.701Z" }, - { url = "https://files.pythonhosted.org/packages/1f/f2/f11dd73284122713f5f89fc940f370d035fa8e1e078d446b3313955157fe/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:a668ce24de96165bb239160b3d854943128f4334822900534f2fe947930e5770", size = 2330317, upload-time = "2025-11-04T13:43:40.406Z" }, - { url = "https://files.pythonhosted.org/packages/88/9d/b06ca6acfe4abb296110fb1273a4d848a0bfb2ff65f3ee92127b3244e16b/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f14f8f046c14563f8eb3f45f499cc658ab8d10072961e07225e507adb700e93f", size = 2316992, upload-time = "2025-11-04T13:43:43.602Z" }, - { url = "https://files.pythonhosted.org/packages/36/c7/cfc8e811f061c841d7990b0201912c3556bfeb99cdcb7ed24adc8d6f8704/pydantic_core-2.41.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51", size = 2145302, upload-time = "2025-11-04T13:43:46.64Z" }, + { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" } }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9d/56/921726b776ace8d8f5db44c4ef961006580d91dc52b803c489fafd1aa249/pydantic_core-2.46.4.tar.gz", hash = "sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1", size = 471464, upload-time = "2026-05-06T13:37:06.98Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/08/f1ba952f1c8ae5581c70fa9c6da89f247b83e3dd8c09c035d5d7931fc23d/pydantic_core-2.46.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4", size = 2113146, upload-time = "2026-05-06T13:37:36.537Z" }, + { url = "https://files.pythonhosted.org/packages/56/c6/65f646c7ff09bd257f660434adb45c4dfcbbcebcc030562fecf6f5bf887d/pydantic_core-2.46.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5", size = 1949769, upload-time = "2026-05-06T13:37:46.365Z" }, + { url = "https://files.pythonhosted.org/packages/64/ba/bfb1d928fd5b49e1258935ff104ae356e9fd89384a55bf9f847e9193ad40/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba", size = 1974958, upload-time = "2026-05-06T13:37:28.611Z" }, + { url = "https://files.pythonhosted.org/packages/4e/74/76223bfb117b64af743c9b6670d1364516f5c0604f96b48f3272f6af6cc6/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b", size = 2042118, upload-time = "2026-05-06T13:36:55.216Z" }, + { url = "https://files.pythonhosted.org/packages/cb/7b/848732968bc8f48f3187542f08358b9d842db564147b256669426ebb1652/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c", size = 2222876, upload-time = "2026-05-06T13:38:25.455Z" }, + { url = "https://files.pythonhosted.org/packages/b5/2f/e90b63ee2e14bd8d3db8f705a6d75d64e6ee1b7c2c8833747ce706e1e0ce/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50", size = 2286703, upload-time = "2026-05-06T13:37:53.304Z" }, + { url = "https://files.pythonhosted.org/packages/ba/1e/acc4d70f88a0a277e4a1fa77ebb985ceabaf900430f875bf9338e11c9420/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd", size = 2092042, upload-time = "2026-05-06T13:38:46.981Z" }, + { url = "https://files.pythonhosted.org/packages/a9/da/0a422b57bf8504102bf3c4ccea9c41bab5a5cee6a54650acf8faf67f5a24/pydantic_core-2.46.4-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01", size = 2117231, upload-time = "2026-05-06T13:39:23.146Z" }, + { url = "https://files.pythonhosted.org/packages/bd/2a/2ac13c3af305843e23c5078c53d135656b3f05a2fd78cb7bbbb12e97b473/pydantic_core-2.46.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d", size = 2168388, upload-time = "2026-05-06T13:40:08.06Z" }, + { url = "https://files.pythonhosted.org/packages/72/04/2beacf7e1607e93eefe4aed1b4709f079b905fb77530179d4f7c71745f22/pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4", size = 2184769, upload-time = "2026-05-06T13:38:13.901Z" }, + { url = "https://files.pythonhosted.org/packages/9e/29/d2b9fd9f539133548eaf622c06a4ce176cb46ac59f32d0359c4abc0de047/pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f", size = 2319312, upload-time = "2026-05-06T13:39:08.24Z" }, + { url = "https://files.pythonhosted.org/packages/7c/af/0f7a5b85fec6075bea96e3ef9187de38fccced0de92c1e7feda8d5cc7bb9/pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39", size = 2361817, upload-time = "2026-05-06T13:38:43.2Z" }, + { url = "https://files.pythonhosted.org/packages/25/a4/73363fec545fd3ec025490bdda2743c56d0dd5b6266b1a53bbe9e4265375/pydantic_core-2.46.4-cp310-cp310-win32.whl", hash = "sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d", size = 1987085, upload-time = "2026-05-06T13:39:25.497Z" }, + { url = "https://files.pythonhosted.org/packages/01/aa/62f082da2c91fac1c234bc9ee0066257ce83f0604abd72e4c9d5991f2d84/pydantic_core-2.46.4-cp310-cp310-win_amd64.whl", hash = "sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf", size = 2074311, upload-time = "2026-05-06T13:39:59.922Z" }, + { url = "https://files.pythonhosted.org/packages/5c/fa/6d7708d2cfc1a832acb6aeb0cd16e801902df8a0f583bb3b4b527fde022e/pydantic_core-2.46.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594", size = 2111872, upload-time = "2026-05-06T13:40:27.596Z" }, + { url = "https://files.pythonhosted.org/packages/ae/6f/aa064a3e74b5745afbdf250594f38e7ead05e2d651bcb35994b9417a0d4d/pydantic_core-2.46.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c", size = 1948255, upload-time = "2026-05-06T13:39:12.574Z" }, + { url = "https://files.pythonhosted.org/packages/43/3a/41114a9f7569b84b4d84e7a018c57c56347dac30c0d4a872946ec4e36c46/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826", size = 1972827, upload-time = "2026-05-06T13:38:19.841Z" }, + { url = "https://files.pythonhosted.org/packages/ef/25/1ab42e8048fe551934d9884e8d64daa7e990ad386f310a15981aeb6a5b08/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04", size = 2041051, upload-time = "2026-05-06T13:38:10.447Z" }, + { url = "https://files.pythonhosted.org/packages/94/c2/1a934597ddf08da410385b3b7aae91956a5a76c635effef456074fad7e88/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e", size = 2221314, upload-time = "2026-05-06T13:40:13.089Z" }, + { url = "https://files.pythonhosted.org/packages/02/6d/9e8ad178c9c4df27ad3c8f25d1fe2a7ab0d2ba0559fad4aee5d3d1f16771/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3", size = 2285146, upload-time = "2026-05-06T13:38:59.224Z" }, + { url = "https://files.pythonhosted.org/packages/80/50/540cd3aeefc041beb111125c4bff779831a2111fc6b15a9138cda277d32c/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4", size = 2089685, upload-time = "2026-05-06T13:38:17.762Z" }, + { url = "https://files.pythonhosted.org/packages/6b/a4/b440ad35f05f6a38f89fa0f149accb3f0e02be94ca5e15f3c449a61b4bc9/pydantic_core-2.46.4-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398", size = 2115420, upload-time = "2026-05-06T13:37:58.195Z" }, + { url = "https://files.pythonhosted.org/packages/99/61/de4f55db8dfd57bfdfa9a12ec90fe1b57c4f41062f7ca86f08586b3e0ac0/pydantic_core-2.46.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3", size = 2165122, upload-time = "2026-05-06T13:37:01.167Z" }, + { url = "https://files.pythonhosted.org/packages/f7/52/7c529d7bdb2d1068bd52f51fe32572c8301f9a4febf1948f10639f1436f5/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848", size = 2182573, upload-time = "2026-05-06T13:38:45.04Z" }, + { url = "https://files.pythonhosted.org/packages/37/b3/7c40325848ba78247f2812dcf9c7274e38cd801820ca6dd9fe63bcfb0eb4/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3", size = 2317139, upload-time = "2026-05-06T13:37:15.539Z" }, + { url = "https://files.pythonhosted.org/packages/d9/37/f913f81a657c865b75da6c0dbed79876073c2a43b5bd9edbe8da785e4d49/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109", size = 2360433, upload-time = "2026-05-06T13:37:30.099Z" }, + { url = "https://files.pythonhosted.org/packages/c4/67/6acaa1be2567f9256b056d8477158cac7240813956ce86e49deae8e173b4/pydantic_core-2.46.4-cp311-cp311-win32.whl", hash = "sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda", size = 1985513, upload-time = "2026-05-06T13:38:15.669Z" }, + { url = "https://files.pythonhosted.org/packages/aa/e6/c505f83dfeda9a2e5c995cfd872949e4d05e12f7feb3dca72f633daefa94/pydantic_core-2.46.4-cp311-cp311-win_amd64.whl", hash = "sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33", size = 2071114, upload-time = "2026-05-06T13:40:35.416Z" }, + { url = "https://files.pythonhosted.org/packages/0f/da/7a263a96d965d9d0df5e8de8a475f33495451117035b09acb110288c381f/pydantic_core-2.46.4-cp311-cp311-win_arm64.whl", hash = "sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d", size = 2044298, upload-time = "2026-05-06T13:38:29.754Z" }, + { url = "https://files.pythonhosted.org/packages/ce/8c/af022f0af448d7747c5154288d46b5f2bc5f17366eaa0e23e9aa04d59f3b/pydantic_core-2.46.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2", size = 2106158, upload-time = "2026-05-06T13:38:57.215Z" }, + { url = "https://files.pythonhosted.org/packages/19/95/6195171e385007300f0f5574592e467c568becce2d937a0b6804f218bc49/pydantic_core-2.46.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f", size = 1951724, upload-time = "2026-05-06T13:37:02.697Z" }, + { url = "https://files.pythonhosted.org/packages/8e/bc/f47d1ff9cbb1620e1b5b697eef06010035735f07820180e74178226b27b3/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7", size = 1975742, upload-time = "2026-05-06T13:37:09.448Z" }, + { url = "https://files.pythonhosted.org/packages/5b/11/9b9a5b0306345664a2da6410877af6e8082481b5884b3ddd78d47c6013ce/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7", size = 2052418, upload-time = "2026-05-06T13:37:38.234Z" }, + { url = "https://files.pythonhosted.org/packages/f1/b7/a65fec226f5d78fc39f4a13c4cc0c768c22b113438f60c14adc9d2865038/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712", size = 2232274, upload-time = "2026-05-06T13:38:27.753Z" }, + { url = "https://files.pythonhosted.org/packages/68/f0/92039db98b907ef49269a8271f67db9cb78ae2fc68062ef7e4e77adb5f61/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4", size = 2309940, upload-time = "2026-05-06T13:38:05.353Z" }, + { url = "https://files.pythonhosted.org/packages/5f/97/2aab507d3d00ca626e8e57c1eac6a79e4e5fbcc63eb99733ff55d1717f65/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce", size = 2094516, upload-time = "2026-05-06T13:39:10.577Z" }, + { url = "https://files.pythonhosted.org/packages/22/37/a8aca44d40d737dde2bc05b3c6c07dff0de07ce6f82e9f3167aeaf4d5dea/pydantic_core-2.46.4-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987", size = 2136854, upload-time = "2026-05-06T13:40:22.59Z" }, + { url = "https://files.pythonhosted.org/packages/24/99/fcef1b79238c06a8cbec70819ac722ba76e02bc8ada9b0fd66eba40da01b/pydantic_core-2.46.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b", size = 2180306, upload-time = "2026-05-06T13:40:10.666Z" }, + { url = "https://files.pythonhosted.org/packages/ae/6c/fc44000918855b42779d007ae63b0532794739027b2f417321cddbc44f6a/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458", size = 2190044, upload-time = "2026-05-06T13:40:43.231Z" }, + { url = "https://files.pythonhosted.org/packages/6b/65/d9cadc9f1920d7a127ad2edba16c1db7916e59719285cd6c94600b0080ba/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b", size = 2329133, upload-time = "2026-05-06T13:39:57.365Z" }, + { url = "https://files.pythonhosted.org/packages/d0/cf/c873d91679f3a30bcf5e7ac280ce5573483e72295307685120d0d5ad3416/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c", size = 2374464, upload-time = "2026-05-06T13:38:06.976Z" }, + { url = "https://files.pythonhosted.org/packages/47/bd/6f2fc8188f31bf10590f1e98e7b306336161fac930a8c514cd7bd828c7dc/pydantic_core-2.46.4-cp312-cp312-win32.whl", hash = "sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894", size = 1974823, upload-time = "2026-05-06T13:40:47.985Z" }, + { url = "https://files.pythonhosted.org/packages/40/8c/985c1d41ea1107c2534abd9870e4ed5c8e7669b5c308297835c001e7a1c4/pydantic_core-2.46.4-cp312-cp312-win_amd64.whl", hash = "sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89", size = 2072919, upload-time = "2026-05-06T13:39:21.153Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ba/f463d006e0c47373ca7ec5e1a261c59dc01ef4d62b2657af925fb0deee3a/pydantic_core-2.46.4-cp312-cp312-win_arm64.whl", hash = "sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a", size = 2027604, upload-time = "2026-05-06T13:39:03.753Z" }, + { url = "https://files.pythonhosted.org/packages/51/a2/5d30b469c5267a17b39dec53208222f76a8d351dfac4af661888c5aee77d/pydantic_core-2.46.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008", size = 2106306, upload-time = "2026-05-06T13:37:48.029Z" }, + { url = "https://files.pythonhosted.org/packages/c1/81/4fa520eaffa8bd7d1525e644cd6d39e7d60b1592bc5b516693c7340b50f1/pydantic_core-2.46.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4", size = 1951906, upload-time = "2026-05-06T13:37:17.012Z" }, + { url = "https://files.pythonhosted.org/packages/03/d5/fd02da45b659668b05923b17ba3a0100a0a3d5541e3bd8fcc4ecb711309e/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76", size = 1976802, upload-time = "2026-05-06T13:37:35.113Z" }, + { url = "https://files.pythonhosted.org/packages/21/f2/95727e1368be3d3ed485eaab7adbd7dda408f33f7a36e8b48e0144002b91/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3", size = 2052446, upload-time = "2026-05-06T13:37:12.313Z" }, + { url = "https://files.pythonhosted.org/packages/9c/86/5d99feea3f77c7234b8718075b23db11532773c1a0dbd9b9490215dc2eeb/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76", size = 2232757, upload-time = "2026-05-06T13:39:01.149Z" }, + { url = "https://files.pythonhosted.org/packages/d2/3a/508ac615935ef7588cf6d9e9b91309fdc2da751af865e02a9098de88258c/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4", size = 2309275, upload-time = "2026-05-06T13:37:41.406Z" }, + { url = "https://files.pythonhosted.org/packages/07/f8/41db9de19d7987d6b04715a02b3b40aea467000275d9d758ffaa31af7d50/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a", size = 2094467, upload-time = "2026-05-06T13:39:18.847Z" }, + { url = "https://files.pythonhosted.org/packages/2c/e2/f35033184cb11d0052daf4416e8e10a502ea2ac006fc4f459aee872727d1/pydantic_core-2.46.4-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262", size = 2134417, upload-time = "2026-05-06T13:40:17.944Z" }, + { url = "https://files.pythonhosted.org/packages/7e/7b/6ceeb1cc90e193862f444ebe373d8fdf613f0a82572dde03fb10734c6c71/pydantic_core-2.46.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e", size = 2179782, upload-time = "2026-05-06T13:40:32.618Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f2/c8d7773ede6af08036423a00ae0ceffce266c3c52a096c435d68c896083f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd", size = 2188782, upload-time = "2026-05-06T13:36:51.018Z" }, + { url = "https://files.pythonhosted.org/packages/59/31/0c864784e31f09f05cdd87606f08923b9c9e7f6e51dd27f20f62f975ce9f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be", size = 2328334, upload-time = "2026-05-06T13:40:37.764Z" }, + { url = "https://files.pythonhosted.org/packages/c2/eb/4f6c8a41efa30baa755590f4141abf3a8c370fab610915733e74134a7270/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d", size = 2372986, upload-time = "2026-05-06T13:39:34.152Z" }, + { url = "https://files.pythonhosted.org/packages/5b/24/b375a480d53113860c299764bfe9f349a3dc9108b3adc0d7f0d786492ebf/pydantic_core-2.46.4-cp313-cp313-win32.whl", hash = "sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb", size = 1973693, upload-time = "2026-05-06T13:37:55.072Z" }, + { url = "https://files.pythonhosted.org/packages/7e/e8/cff247591966f2d22ec8c003cd7587e27b7ba7b81ab2fb888e3ab75dc285/pydantic_core-2.46.4-cp313-cp313-win_amd64.whl", hash = "sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292", size = 2071819, upload-time = "2026-05-06T13:38:49.139Z" }, + { url = "https://files.pythonhosted.org/packages/c6/1a/f4aee670d5670e9e148e0c82c7db98d780be566c6e6a97ee8035528ca0b3/pydantic_core-2.46.4-cp313-cp313-win_arm64.whl", hash = "sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d", size = 2027411, upload-time = "2026-05-06T13:40:45.796Z" }, + { url = "https://files.pythonhosted.org/packages/8d/74/228a26ddad29c6672b805d9fd78e8d251cd04004fa7eed0e622096cd0250/pydantic_core-2.46.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb", size = 2102079, upload-time = "2026-05-06T13:38:41.019Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/8970b150a4b4365623ae00fc88603491f763c627311ae8031e3111356d6e/pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462", size = 1952179, upload-time = "2026-05-06T13:36:59.812Z" }, + { url = "https://files.pythonhosted.org/packages/95/30/5211a831ae054928054b2f79731661087a2bc5c01e825c672b3a4a8f1b3e/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9", size = 1978926, upload-time = "2026-05-06T13:37:39.933Z" }, + { url = "https://files.pythonhosted.org/packages/57/e9/689668733b1eb67adeef047db3c2e8788fcf65a7fd9c9e2b46b7744fe245/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4", size = 2046785, upload-time = "2026-05-06T13:38:01.995Z" }, + { url = "https://files.pythonhosted.org/packages/60/d9/6715260422ff50a2109878fd24d948a6c3446bb2664f34ee78cd972b3acd/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914", size = 2228733, upload-time = "2026-05-06T13:40:50.371Z" }, + { url = "https://files.pythonhosted.org/packages/18/ae/fdb2f64316afca925640f8e70bb1a564b0ec2721c1389e25b8eb4bf9a299/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28", size = 2307534, upload-time = "2026-05-06T13:37:21.531Z" }, + { url = "https://files.pythonhosted.org/packages/89/1d/8eff589b45bb8190a9d12c49cfad0f176a5cbd1534908a6b5125e2886239/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b", size = 2099732, upload-time = "2026-05-06T13:39:31.942Z" }, + { url = "https://files.pythonhosted.org/packages/06/d5/ee5a3366637fee41dee51a1fc91562dcf12ddbc68fda34e6b253da2324bb/pydantic_core-2.46.4-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c", size = 2129627, upload-time = "2026-05-06T13:37:25.033Z" }, + { url = "https://files.pythonhosted.org/packages/94/33/2414be571d2c6a6c4d08be21f9292b6d3fdb08949a97b6dfe985017821db/pydantic_core-2.46.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb", size = 2179141, upload-time = "2026-05-06T13:37:14.046Z" }, + { url = "https://files.pythonhosted.org/packages/7b/79/7daa95be995be0eecc4cf75064cb33f9bbbfe3fe0158caf2f0d4a996a5c7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898", size = 2184325, upload-time = "2026-05-06T13:36:53.615Z" }, + { url = "https://files.pythonhosted.org/packages/9f/cb/d0a382f5c0de8a222dc61c65348e0ce831b1f68e0a018450d31c2cace3a5/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e", size = 2323990, upload-time = "2026-05-06T13:40:29.971Z" }, + { url = "https://files.pythonhosted.org/packages/05/db/d9ba624cc4a5aced1598e88c04fdbd8310c8a69b9d38b9a3d39ce3a61ed7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519", size = 2369978, upload-time = "2026-05-06T13:37:23.027Z" }, + { url = "https://files.pythonhosted.org/packages/f2/20/d15df15ba918c423461905802bfd2981c3af0bfa0e40d05e13edbfa48bc3/pydantic_core-2.46.4-cp314-cp314-win32.whl", hash = "sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4", size = 1966354, upload-time = "2026-05-06T13:38:03.499Z" }, + { url = "https://files.pythonhosted.org/packages/fc/b6/6b8de4c0a7d7ab3004c439c80c5c1e0a3e8d78bbae19379b01960383d9e5/pydantic_core-2.46.4-cp314-cp314-win_amd64.whl", hash = "sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac", size = 2072238, upload-time = "2026-05-06T13:39:40.807Z" }, + { url = "https://files.pythonhosted.org/packages/32/36/51eb763beec1f4cf59b1db243a7dcc39cbb41230f050a09b9d69faaf0a48/pydantic_core-2.46.4-cp314-cp314-win_arm64.whl", hash = "sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a", size = 2018251, upload-time = "2026-05-06T13:37:26.72Z" }, + { url = "https://files.pythonhosted.org/packages/e8/91/855af51d625b23aa987116a19e231d2aaef9c4a415273ddc189b79a45fee/pydantic_core-2.46.4-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0", size = 2099593, upload-time = "2026-05-06T13:39:47.682Z" }, + { url = "https://files.pythonhosted.org/packages/fb/1b/8784a54c65edb5f49f0a14d6977cf1b209bba85a4c77445b255c2de58ab3/pydantic_core-2.46.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d", size = 1935226, upload-time = "2026-05-06T13:40:40.428Z" }, + { url = "https://files.pythonhosted.org/packages/e8/e7/1955d28d1afc56dd4b3ad7cc0cf39df1b9852964cf16e5d13912756d6d6b/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b", size = 1974605, upload-time = "2026-05-06T13:37:32.029Z" }, + { url = "https://files.pythonhosted.org/packages/93/e2/3fedbf0ba7a22850e6e9fd78117f1c0f10f950182344d8a6c535d468fdd8/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000", size = 2030777, upload-time = "2026-05-06T13:38:55.239Z" }, + { url = "https://files.pythonhosted.org/packages/f8/61/46be275fcaaba0b4f5b9669dd852267ce1ff616592dccf7a7845588df091/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e", size = 2236641, upload-time = "2026-05-06T13:37:08.096Z" }, + { url = "https://files.pythonhosted.org/packages/60/db/12e93e46a8bac9988be3c016860f83293daea8c716c029c9ace279036f2f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd", size = 2286404, upload-time = "2026-05-06T13:40:20.221Z" }, + { url = "https://files.pythonhosted.org/packages/e2/4a/4d8b19008f38d31c53b8219cfedc2e3d5de5fe99d90076b7e767de29274f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3", size = 2109219, upload-time = "2026-05-06T13:38:12.153Z" }, + { url = "https://files.pythonhosted.org/packages/88/70/3cbc40978fefb7bb09c6708d40d4ad1a5d70fd7213c3d17f971de868ec1f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7", size = 2110594, upload-time = "2026-05-06T13:40:02.971Z" }, + { url = "https://files.pythonhosted.org/packages/9d/20/b8d36736216e29491125531685b2f9e61aa5b4b2599893f8268551da3338/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff", size = 2159542, upload-time = "2026-05-06T13:39:27.506Z" }, + { url = "https://files.pythonhosted.org/packages/1d/a2/367df868eb584dacf6bf82a389272406d7178e301c4ac82545ab98bc2dd9/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424", size = 2168146, upload-time = "2026-05-06T13:38:31.93Z" }, + { url = "https://files.pythonhosted.org/packages/c1/b8/4460f77f7e201893f649a29ab355dddd3beee8a97bcb1a320db414f9a06e/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6", size = 2306309, upload-time = "2026-05-06T13:37:44.717Z" }, + { url = "https://files.pythonhosted.org/packages/64/c4/be2639293acd87dc8ddbcec41a73cee9b2ebf996fe6d892a1a74e88ad3f7/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565", size = 2369736, upload-time = "2026-05-06T13:37:05.645Z" }, + { url = "https://files.pythonhosted.org/packages/30/a6/9f9f380dbb301f67023bf8f707aaa75daadf84f7152d95c410fd7e81d994/pydantic_core-2.46.4-cp314-cp314t-win32.whl", hash = "sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02", size = 1955575, upload-time = "2026-05-06T13:38:51.116Z" }, + { url = "https://files.pythonhosted.org/packages/40/1f/f1eb9eb350e795d1af8586289746f5c5677d16043040d63710e22abc43c9/pydantic_core-2.46.4-cp314-cp314t-win_amd64.whl", hash = "sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5", size = 2051624, upload-time = "2026-05-06T13:38:21.672Z" }, + { url = "https://files.pythonhosted.org/packages/f6/d2/42dd53d0a85c27606f316d3aa5d2869c4e8470a5ed6dec30e4a1abe19192/pydantic_core-2.46.4-cp314-cp314t-win_arm64.whl", hash = "sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596", size = 2017325, upload-time = "2026-05-06T13:40:52.723Z" }, + { url = "https://files.pythonhosted.org/packages/5d/00/13a0c039569d1e583779ee1b8d7df6bfe275a0db83fcae14f01d6856c16e/pydantic_core-2.46.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:fd8b3d9fd264be37976686c7f65cd52a83f5e84f4bfd2adf9c1d469676bbb6ae", size = 2115337, upload-time = "2026-05-06T13:38:37.741Z" }, + { url = "https://files.pythonhosted.org/packages/41/60/e70fa1ee03e243bdfd4b1fddf1e1f2a8fba681df3034b51b9376c0fb5bf5/pydantic_core-2.46.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9f444c499b3eefd3a92e348059471ea0c3a6e303d9c1cec09fa748fd9f895201", size = 1957976, upload-time = "2026-05-06T13:37:33.478Z" }, + { url = "https://files.pythonhosted.org/packages/11/9a/78fb5f2ea849f767ea802de8b4e8f5a0c4a48ddbe4bc66bd19ac2f55a01c/pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3447661d99f75a3683a4cf5c87da72f2161964611864dbbeac7fbb118bb4bfc0", size = 1979390, upload-time = "2026-05-06T13:36:52.419Z" }, + { url = "https://files.pythonhosted.org/packages/f5/7d/3acfdcd000bad9735de0430a88355948469781f62cb841fd63e8a307e80e/pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8b9bab013d1c7a79d3501ff86d0bc9c31bf587db4551677b96bec07df78c6b15", size = 2043263, upload-time = "2026-05-06T13:39:54.798Z" }, + { url = "https://files.pythonhosted.org/packages/35/60/1325e5a8d7f9697416481c7f7c1c304738d6b961a7fd1ea0f054ce0f14fb/pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d995260fdf4e1db774581b4900e0f832abe3c7c84996726bbc161b19c8f29e76", size = 2225708, upload-time = "2026-05-06T13:40:24.887Z" }, + { url = "https://files.pythonhosted.org/packages/6a/b0/9ec8c38f33b26db0b612cb7fd165bb0a370773710432a2a74fa31287b430/pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f13a646d65d09fbf1bc6b3a9635d30095c8e7e5cc419ff35ecc563c5fd04cd49", size = 2288494, upload-time = "2026-05-06T13:38:00.091Z" }, + { url = "https://files.pythonhosted.org/packages/65/05/497446a9586d1b2d24ee25ebe208beb15388f1875d783e1e014055d150ac/pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432c179df7874eeb73307aad2df0755e1ae0efa61ff0ea89b93e194411ae3928", size = 2095629, upload-time = "2026-05-06T13:38:23.632Z" }, + { url = "https://files.pythonhosted.org/packages/93/d9/cd5fa98f9d94f9294c15459396c8a2383c164469e679ac178d6d42cfee6b/pydantic_core-2.46.4-cp39-cp39-manylinux_2_31_riscv64.whl", hash = "sha256:e68b7a074f65a2fd746c52a7ce6142ab7006074ac269ace0c25cd8ba171f8066", size = 2119309, upload-time = "2026-05-06T13:39:50.144Z" }, + { url = "https://files.pythonhosted.org/packages/20/1b/64cec655451ddbf3976df5dc9706b240df4fdaebdeebeadd4f59a8dab926/pydantic_core-2.46.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4a05d69cba51d852c5c3e92758653245a50c0b646ced0cf05bd793ed592839d6", size = 2170216, upload-time = "2026-05-06T13:39:14.561Z" }, + { url = "https://files.pythonhosted.org/packages/2a/21/fe9f039138c9ea3be10ccdb6ec490acb54dcbef5a5e96dbdf1411f82b929/pydantic_core-2.46.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:228ee9bae8bef5b1e97ec58302f80357c37199e0d0a99174e138d28e6957b9d9", size = 2186726, upload-time = "2026-05-06T13:37:51.597Z" }, + { url = "https://files.pythonhosted.org/packages/44/cb/19ca0da64821d1aefcef65f253aa9ecbdd0dde360f607d0f9b3d95db2b4e/pydantic_core-2.46.4-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:10e17cbb10a330363733efc4d7c4d0dd827ac0909b8f6a6542298fed1ea62f29", size = 2320400, upload-time = "2026-05-06T13:39:36.29Z" }, + { url = "https://files.pythonhosted.org/packages/cd/14/fe3fbf6e845bf2080dc2f282d75085ddf79d037b35634ecde68f33c217b4/pydantic_core-2.46.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:91a06d2e259ecfbd8c901d70c3c507900458498142b3026a296b7de4d1322cc9", size = 2363318, upload-time = "2026-05-06T13:38:53.039Z" }, + { url = "https://files.pythonhosted.org/packages/62/88/60b110889507a426eecf626f7536566cb290ada71147eff49b6e2724ca62/pydantic_core-2.46.4-cp39-cp39-win32.whl", hash = "sha256:d80ee3d731373b24cebbc10d689ca4ee1875caf0d5703a245db18efd4dd37fc1", size = 1988880, upload-time = "2026-05-06T13:39:16.572Z" }, + { url = "https://files.pythonhosted.org/packages/0b/d6/8ede2f98f17e1e4e127d37be0eced4eee931a511c62cd68af50e1b25bfa9/pydantic_core-2.46.4-cp39-cp39-win_amd64.whl", hash = "sha256:3be77f45df024d789a672ae34f8b06fb346c4f9f46ea714956660ea4862e89ac", size = 2079257, upload-time = "2026-05-06T13:39:38.498Z" }, + { url = "https://files.pythonhosted.org/packages/ee/a4/73995fd4ebbb46ba0ee51e6fa049b8f02c40daebb762208feda8a6b7894d/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c", size = 2111589, upload-time = "2026-05-06T13:37:10.817Z" }, + { url = "https://files.pythonhosted.org/packages/fb/7f/f37d3a5e8bfcc2e403f5c57a730f2d815693fb42119e8ea48b3789335af1/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b", size = 1944552, upload-time = "2026-05-06T13:36:56.717Z" }, + { url = "https://files.pythonhosted.org/packages/15/3c/d7eb777b3ff43e8433a4efb39a17aa8fd98a4ee8561a24a67ef5db07b2d6/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b", size = 1982984, upload-time = "2026-05-06T13:39:06.207Z" }, + { url = "https://files.pythonhosted.org/packages/63/87/70b9f40170a81afd55ca26c9b2acb25c20d64bcfbf888fafecb3ba077d4c/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea", size = 2138417, upload-time = "2026-05-06T13:39:45.476Z" }, + { url = "https://files.pythonhosted.org/packages/9d/1d/8987ad40f65ae1432753072f214fb5c74fe47ffbd0698bb9cbbb585664f8/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7", size = 2095527, upload-time = "2026-05-06T13:39:52.283Z" }, + { url = "https://files.pythonhosted.org/packages/64/d3/84c282a7eee1d3ac4c0377546ef5a1ea436ce26840d9ac3b7ed54a377507/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df", size = 1936024, upload-time = "2026-05-06T13:40:15.671Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ca/eac61596cdeb4d7e174d3dc0bd8a6238f14f75f97a24e7b7db4c7e7340a0/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526", size = 1990696, upload-time = "2026-05-06T13:38:34.717Z" }, + { url = "https://files.pythonhosted.org/packages/fa/c3/7c8b240552251faf6b3a957db200fcfbbcec36763c050428b601e0c9b83b/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0", size = 2147590, upload-time = "2026-05-06T13:39:29.883Z" }, + { url = "https://files.pythonhosted.org/packages/11/cb/428de0385b6c8d44b716feba566abfacfbd23ee3c4439faa789a1456242f/pydantic_core-2.46.4-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0", size = 2112782, upload-time = "2026-05-06T13:37:04.016Z" }, + { url = "https://files.pythonhosted.org/packages/0b/b5/6a17bdadd0fc1f170adfd05a20d37c832f52b117b4d9131da1f41bb097ce/pydantic_core-2.46.4-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7", size = 1952146, upload-time = "2026-05-06T13:39:43.092Z" }, + { url = "https://files.pythonhosted.org/packages/2a/dc/03734d80e362cd43ef65428e9de77c730ce7f2f11c60d2b1e1b39f0fbf99/pydantic_core-2.46.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2", size = 2134492, upload-time = "2026-05-06T13:36:58.124Z" }, + { url = "https://files.pythonhosted.org/packages/de/df/5e5ffc085ed07cc22d298134d3d911c63e91f6a0eb91fe646750a3209910/pydantic_core-2.46.4-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9", size = 2156604, upload-time = "2026-05-06T13:37:49.88Z" }, + { url = "https://files.pythonhosted.org/packages/81/44/6e112a4253e56f5705467cbab7ab5e91ee7398ba3d56d358635958893d3e/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf", size = 2183828, upload-time = "2026-05-06T13:37:43.053Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ad/5565071e937d8e752842ac241463944c9eb14c87e2d269f2658a5bd05e98/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30", size = 2310000, upload-time = "2026-05-06T13:37:56.694Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c3/66883a5cec183e7fba4d024b4cbbe61851a63750ef606b0afecc46d1f2bf/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc", size = 2361286, upload-time = "2026-05-06T13:40:05.667Z" }, + { url = "https://files.pythonhosted.org/packages/4b/2d/69abac8f838090bbecd5df894befb2c2619e7996a98ddb949db9f3b93225/pydantic_core-2.46.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983", size = 2193071, upload-time = "2026-05-06T13:38:08.682Z" }, ] [[package]] @@ -1725,49 +1923,38 @@ wheels = [ [[package]] name = "pygments" -version = "2.20.0" +version = "2.21.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", "python_full_version == '3.9.*'", ] -sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" } +sdist = { url = "https://files.pythonhosted.org/packages/49/2e/ced460408999b33da6b31b0021b0f37d329e202d4169aeb164493778f25b/pygments-2.21.0.tar.gz", hash = "sha256:610ca751c9bc2492b38eb9a38a7fbc93edbbb2d7182edaf34e66ae493dee5c8c", size = 5005329, upload-time = "2026-08-17T08:02:48.824Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, + { url = "https://files.pythonhosted.org/packages/71/46/17f022dd3e953bf20a04a028a21ec746d942f8d2af30fa0f124fa0e6a684/pygments-2.21.0-py3-none-any.whl", hash = "sha256:2363c69b61c4a97c838da3b130dcd6468f4848992b21a82f2a63ec34377137d9", size = 1250147, upload-time = "2026-08-17T08:02:44.912Z" }, ] [[package]] name = "pymdown-extensions" -version = "10.15" +version = "11.0.1" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.9'", -] dependencies = [ - { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "pyyaml", marker = "python_full_version < '3.9'" }, + { name = "markdown" }, + { name = "pyyaml" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/08/92/a7296491dbf5585b3a987f3f3fc87af0e632121ff3e490c14b5f2d2b4eb5/pymdown_extensions-10.15.tar.gz", hash = "sha256:0e5994e32155f4b03504f939e501b981d306daf7ec2aa1cd2eb6bd300784f8f7", size = 852320, upload-time = "2025-04-27T23:48:29.183Z" } +sdist = { url = "https://files.pythonhosted.org/packages/21/a9/5f0c535ba3b08fe09270c16808e053a968868242ecbd5676d4e3a488bf28/pymdown_extensions-11.0.1.tar.gz", hash = "sha256:dd2905ae6fc5b75582fafb139a1266ffc754705efa902aa50067fa7ff4f94ec0", size = 857113, upload-time = "2026-07-02T17:59:22.955Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/d1/c54e608505776ce4e7966d03358ae635cfd51dff1da6ee421c090dbc797b/pymdown_extensions-10.15-py3-none-any.whl", hash = "sha256:46e99bb272612b0de3b7e7caf6da8dd5f4ca5212c0b273feb9304e236c484e5f", size = 265845, upload-time = "2025-04-27T23:48:27.359Z" }, + { url = "https://files.pythonhosted.org/packages/d6/54/da572c98c0b77626a91b5d3b89f0231d8bff5125c225420908632f8b342d/pymdown_extensions-11.0.1-py3-none-any.whl", hash = "sha256:db3943a62bab7e03af1364f0c4083e64b91fb097675a4b6cceccfbe9a77e5eb2", size = 269455, upload-time = "2026-07-02T17:59:21.271Z" }, ] [[package]] -name = "pymdown-extensions" -version = "10.21.2" +name = "pyparsing" +version = "3.3.2" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.10'", - "python_full_version == '3.9.*'", -] -dependencies = [ - { name = "markdown", version = "3.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "markdown", version = "3.10.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pyyaml", marker = "python_full_version >= '3.9'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/df/08/f1c908c581fd11913da4711ea7ba32c0eee40b0190000996bb863b0c9349/pymdown_extensions-10.21.2.tar.gz", hash = "sha256:c3f55a5b8a1d0edf6699e35dcbea71d978d34ff3fa79f3d807b8a5b3fa90fbdc", size = 853922, upload-time = "2026-03-29T15:01:55.233Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574, upload-time = "2026-01-21T03:57:59.36Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/27/a2fc51a4a122dfd1015e921ae9d22fee3d20b0b8080d9a704578bf9deece/pymdown_extensions-10.21.2-py3-none-any.whl", hash = "sha256:5c0fd2a2bea14eb39af8ff284f1066d898ab2187d81b889b75d46d4348c01638", size = 268901, upload-time = "2026-03-29T15:01:53.244Z" }, + { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781, upload-time = "2026-01-21T03:57:55.912Z" }, ] [[package]] @@ -1778,12 +1965,12 @@ resolution-markers = [ "python_full_version < '3.9'", ] dependencies = [ - { name = "colorama", marker = "python_full_version < '3.9' and sys_platform == 'win32'" }, - { name = "exceptiongroup", marker = "python_full_version < '3.9'" }, - { name = "iniconfig", version = "2.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "packaging", marker = "python_full_version < '3.9'" }, - { name = "pluggy", version = "1.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "tomli", marker = "python_full_version < '3.9'" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "exceptiongroup" }, + { name = "iniconfig", version = "2.1.0", source = { registry = "https://pypi.org/simple" } }, + { name = "packaging", version = "26.2", source = { registry = "https://pypi.org/simple" } }, + { name = "pluggy", version = "1.5.0", source = { registry = "https://pypi.org/simple" } }, + { name = "tomli" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ae/3c/c9d525a414d506893f0cd8a8d0de7706446213181570cdbd766691164e40/pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845", size = 1450891, upload-time = "2025-03-02T12:54:54.503Z" } wheels = [ @@ -1798,13 +1985,13 @@ resolution-markers = [ "python_full_version == '3.9.*'", ] dependencies = [ - { name = "colorama", marker = "python_full_version == '3.9.*' and sys_platform == 'win32'" }, - { name = "exceptiongroup", marker = "python_full_version == '3.9.*'" }, - { name = "iniconfig", version = "2.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "packaging", marker = "python_full_version == '3.9.*'" }, - { name = "pluggy", version = "1.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "pygments", version = "2.20.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "tomli", marker = "python_full_version == '3.9.*'" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "exceptiongroup" }, + { name = "iniconfig", version = "2.1.0", source = { registry = "https://pypi.org/simple" } }, + { name = "packaging", version = "26.3", source = { registry = "https://pypi.org/simple" } }, + { name = "pluggy", version = "1.6.0", source = { registry = "https://pypi.org/simple" } }, + { name = "pygments", version = "2.21.0", source = { registry = "https://pypi.org/simple" } }, + { name = "tomli" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", size = 1519618, upload-time = "2025-09-04T14:34:22.711Z" } wheels = [ @@ -1813,23 +2000,24 @@ wheels = [ [[package]] name = "pytest" -version = "9.0.2" +version = "9.1.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", ] dependencies = [ - { name = "colorama", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, - { name = "exceptiongroup", marker = "python_full_version == '3.10.*'" }, - { name = "iniconfig", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "packaging", marker = "python_full_version >= '3.10'" }, - { name = "pluggy", version = "1.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "pygments", version = "2.20.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "tomli", marker = "python_full_version == '3.10.*'" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, + { name = "iniconfig", version = "2.3.0", source = { registry = "https://pypi.org/simple" } }, + { name = "packaging", version = "26.3", source = { registry = "https://pypi.org/simple" } }, + { name = "pluggy", version = "1.6.0", source = { registry = "https://pypi.org/simple" } }, + { name = "pygments", version = "2.21.0", source = { registry = "https://pypi.org/simple" } }, + { name = "tomli", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901, upload-time = "2025-12-06T21:30:51.014Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 1636369, upload-time = "2026-06-19T10:58:32.857Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801, upload-time = "2025-12-06T21:30:49.154Z" }, + { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386536, upload-time = "2026-06-19T10:58:31.347Z" }, ] [[package]] @@ -1846,17 +2034,15 @@ wheels = [ [[package]] name = "python-discovery" -version = "1.2.1" +version = "1.5.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "filelock", version = "3.19.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "filelock", version = "3.25.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "platformdirs", version = "4.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "platformdirs", version = "4.9.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "filelock", version = "3.19.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "filelock", version = "3.32.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b9/88/815e53084c5079a59df912825a279f41dd2e0df82281770eadc732f5352c/python_discovery-1.2.1.tar.gz", hash = "sha256:180c4d114bff1c32462537eac5d6a332b768242b76b69c0259c7d14b1b680c9e", size = 58457, upload-time = "2026-03-26T22:30:44.496Z" } +sdist = { url = "https://files.pythonhosted.org/packages/38/b7/ac44da2cf0e53ada0e419033c2d058219c95dc1403126f163304c9e814b1/python_discovery-1.5.2.tar.gz", hash = "sha256:45fd4f20a4e3f9b7bf2e0817870bc8e3b320a19658da177af800768c82dbf354", size = 82350, upload-time = "2026-08-12T14:05:26.419Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/67/0f/019d3949a40280f6193b62bc010177d4ce702d0fce424322286488569cd3/python_discovery-1.2.1-py3-none-any.whl", hash = "sha256:b6a957b24c1cd79252484d3566d1b49527581d46e789aaf43181005e56201502", size = 31674, upload-time = "2026-03-26T22:30:43.396Z" }, + { url = "https://files.pythonhosted.org/packages/71/45/689603d04b3bb8d7faa00f25c24acef993aab7813b3dbbfc472a459ab0b5/python_discovery-1.5.2-py3-none-any.whl", hash = "sha256:3e338c2d0f15dfaeea57493f4c2c6caebe0e998ea815c30ae8bf8ee21f1112d3", size = 38350, upload-time = "2026-08-12T14:05:25.113Z" }, ] [[package]] @@ -1867,8 +2053,8 @@ resolution-markers = [ "python_full_version < '3.9'", ] dependencies = [ - { name = "requests", version = "2.32.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "requests-toolbelt", marker = "python_full_version < '3.9'" }, + { name = "requests", version = "2.32.4", source = { registry = "https://pypi.org/simple" } }, + { name = "requests-toolbelt" }, ] sdist = { url = "https://files.pythonhosted.org/packages/c4/ea/e2cde926d63526935c1df259177371a195089b631d67a577fe5c39fbc7e1/python_gitlab-4.13.0.tar.gz", hash = "sha256:576bfb0901faca0c6b2d1ff2592e02944a6ec3e086c3129fb43c2a0df56a1c67", size = 484996, upload-time = "2024-10-08T13:28:48.755Z" } wheels = [ @@ -1880,25 +2066,41 @@ name = "python-gitlab" version = "6.5.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", "python_full_version == '3.9.*'", ] dependencies = [ - { name = "requests", version = "2.32.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "requests", version = "2.33.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "requests-toolbelt", marker = "python_full_version >= '3.9'" }, + { name = "requests", version = "2.32.5", source = { registry = "https://pypi.org/simple" } }, + { name = "requests-toolbelt" }, ] sdist = { url = "https://files.pythonhosted.org/packages/9a/bd/b30f1d3b303cb5d3c72e2d57a847d699e8573cbdfd67ece5f1795e49da1c/python_gitlab-6.5.0.tar.gz", hash = "sha256:97553652d94b02de343e9ca92782239aa2b5f6594c5482331a9490d9d5e8737d", size = 400591, upload-time = "2025-10-17T21:40:02.89Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/34/bd/b0d440685fbcafee462bed793a74aea88541887c4c30556a55ac64914b8d/python_gitlab-6.5.0-py3-none-any.whl", hash = "sha256:494e1e8e5edd15286eaf7c286f3a06652688f1ee20a49e2a0218ddc5cc475e32", size = 144419, upload-time = "2025-10-17T21:40:01.233Z" }, ] +[[package]] +name = "python-gitlab" +version = "8.5.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", +] +dependencies = [ + { name = "requests", version = "2.34.2", source = { registry = "https://pypi.org/simple" } }, + { name = "requests-toolbelt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/26/55/8050293b360a29218a15892c2b936e286a69fd4f5d2cf54c7cbe19d34b47/python_gitlab-8.5.0.tar.gz", hash = "sha256:628529ec4ce1f9a7ba2c145b2cf5e4eeca3015418e504b2e6fba70171b6b1b59", size = 411497, upload-time = "2026-07-28T02:04:30.015Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/3d/fb547ed2ac318132517e001b74b09d1f17d2c2c681cad1e32a8b84139867/python_gitlab-8.5.0-py3-none-any.whl", hash = "sha256:94228973c54f09eccd30f5160eca91200adc31d6ed0c894221a3865b90f96426", size = 148234, upload-time = "2026-07-28T02:04:28.454Z" }, +] + [[package]] name = "python-semantic-release" -version = "10.5.3" +version = "10.6.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click" }, + { name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "click-option-group" }, { name = "deprecated" }, { name = "dotty-dict" }, @@ -1907,28 +2109,20 @@ dependencies = [ { name = "importlib-resources", version = "6.5.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "jinja2" }, { name = "pydantic", version = "2.10.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "pydantic", version = "2.12.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pydantic", version = "2.13.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "python-gitlab", version = "4.13.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "python-gitlab", version = "6.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "python-gitlab", version = "6.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "python-gitlab", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "requests", version = "2.32.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "requests", version = "2.32.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "requests", version = "2.33.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "requests", version = "2.34.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "rich" }, { name = "shellingham" }, { name = "tomlkit" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/19/3a/7332b822825ed0e902c6e950e0d1e90e8f666fd12eb27855d1c8b6677eff/python_semantic_release-10.5.3.tar.gz", hash = "sha256:de4da78635fa666e5774caaca2be32063cae72431eb75e2ac23b9f2dfd190785", size = 618034, upload-time = "2025-12-14T22:37:29.782Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/f6/06d5aa54b46bb192b00ef3e74234300ea5932dd310d142a3c8070e770e93/python_semantic_release-10.6.1.tar.gz", hash = "sha256:ee6369238f72e75a009b3724481232c8b813416191be099bc0266e375fd02b2b", size = 626453, upload-time = "2026-07-06T06:14:35.507Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/01/ada29a1215df601bded0a2efd3b6d53864a0a9e0a9ea52aeaebe14fd03fd/python_semantic_release-10.5.3-py3-none-any.whl", hash = "sha256:1be0e07c36fa1f1ec9da4f438c1f6bbd7bc10eb0d6ac0089b0643103708c2823", size = 152716, upload-time = "2025-12-14T22:37:28.089Z" }, -] - -[[package]] -name = "pytz" -version = "2026.1.post1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/56/db/b8721d71d945e6a8ac63c0fc900b2067181dbb50805958d4d4661cf7d277/pytz-2026.1.post1.tar.gz", hash = "sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1", size = 321088, upload-time = "2026-03-03T07:47:50.683Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl", hash = "sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a", size = 510489, upload-time = "2026-03-03T07:47:49.167Z" }, + { url = "https://files.pythonhosted.org/packages/18/97/be812cd1eb350551d2f3cc38426864cce493a03ed31f4749133bcff8d053/python_semantic_release-10.6.1-py3-none-any.whl", hash = "sha256:36f7319515f218719d0972bc9535813a930f04cd19556767599e9863242efcdc", size = 155674, upload-time = "2026-07-06T06:14:33.575Z" }, ] [[package]] @@ -2011,31 +2205,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f0/0c/25113e0b5e103d7f1490c0e947e303fe4a696c10b501dea7a9f49d4e876c/pyyaml-6.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:2e71d11abed7344e42a8849600193d15b6def118602c4c176f748e4583246007", size = 158777, upload-time = "2025-09-25T21:33:15.55Z" }, ] -[[package]] -name = "pyyaml-env-tag" -version = "0.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.9'", -] -dependencies = [ - { name = "pyyaml", marker = "python_full_version < '3.9'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/fb/8e/da1c6c58f751b70f8ceb1eb25bc25d524e8f14fe16edcce3f4e3ba08629c/pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb", size = 5631, upload-time = "2020-11-12T02:38:26.239Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/66/bbb1dd374f5c870f59c5bb1db0e18cbe7fa739415a24cbd95b2d1f5ae0c4/pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069", size = 3911, upload-time = "2020-11-12T02:38:24.638Z" }, -] - [[package]] name = "pyyaml-env-tag" version = "1.1" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.10'", - "python_full_version == '3.9.*'", -] dependencies = [ - { name = "pyyaml", marker = "python_full_version >= '3.9'" }, + { name = "pyyaml" }, ] sdist = { url = "https://files.pythonhosted.org/packages/eb/2e/79c822141bfd05a853236b504869ebc6b70159afc570e1d5a20641782eaa/pyyaml_env_tag-1.1.tar.gz", hash = "sha256:2eb38b75a2d21ee0475d6d97ec19c63287a7e140231e4214969d0eac923cd7ff", size = 5737, upload-time = "2025-05-13T15:24:01.64Z" } wheels = [ @@ -2050,10 +2225,10 @@ resolution-markers = [ "python_full_version < '3.9'", ] dependencies = [ - { name = "certifi", marker = "python_full_version < '3.9'" }, - { name = "charset-normalizer", marker = "python_full_version < '3.9'" }, - { name = "idna", marker = "python_full_version < '3.9'" }, - { name = "urllib3", version = "2.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna", version = "3.15", source = { registry = "https://pypi.org/simple" } }, + { name = "urllib3", version = "2.2.3", source = { registry = "https://pypi.org/simple" } }, ] sdist = { url = "https://files.pythonhosted.org/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422", size = 135258, upload-time = "2025-06-09T16:43:07.34Z" } wheels = [ @@ -2068,10 +2243,10 @@ resolution-markers = [ "python_full_version == '3.9.*'", ] dependencies = [ - { name = "certifi", marker = "python_full_version == '3.9.*'" }, - { name = "charset-normalizer", marker = "python_full_version == '3.9.*'" }, - { name = "idna", marker = "python_full_version == '3.9.*'" }, - { name = "urllib3", version = "2.6.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna", version = "3.19", source = { registry = "https://pypi.org/simple" } }, + { name = "urllib3", version = "2.6.3", source = { registry = "https://pypi.org/simple" } }, ] sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } wheels = [ @@ -2080,20 +2255,21 @@ wheels = [ [[package]] name = "requests" -version = "2.33.1" +version = "2.34.2" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", ] dependencies = [ - { name = "certifi", marker = "python_full_version >= '3.10'" }, - { name = "charset-normalizer", marker = "python_full_version >= '3.10'" }, - { name = "idna", marker = "python_full_version >= '3.10'" }, - { name = "urllib3", version = "2.6.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna", version = "3.19", source = { registry = "https://pypi.org/simple" } }, + { name = "urllib3", version = "2.7.0", source = { registry = "https://pypi.org/simple" } }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5f/a4/98b9c7c6428a668bf7e42ebb7c79d576a1c3c1e3ae2d47e674b468388871/requests-2.33.1.tar.gz", hash = "sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517", size = 134120, upload-time = "2026-03-30T16:09:15.531Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ac/c3/e2a2b89f2d3e2179abd6d00ebd70bff6273f37fb3e0cc209f48b39d00cbf/requests-2.34.2.tar.gz", hash = "sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed", size = 142856, upload-time = "2026-05-14T19:25:27.735Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl", hash = "sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a", size = 64947, upload-time = "2026-03-30T16:09:13.83Z" }, + { url = "https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl", hash = "sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0", size = 73075, upload-time = "2026-05-14T19:25:26.443Z" }, ] [[package]] @@ -2103,7 +2279,7 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "requests", version = "2.32.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "requests", version = "2.32.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "requests", version = "2.33.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "requests", version = "2.34.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload-time = "2023-05-01T04:11:33.229Z" } wheels = [ @@ -2112,42 +2288,42 @@ wheels = [ [[package]] name = "rich" -version = "14.3.3" +version = "14.3.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markdown-it-py", version = "3.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "markdown-it-py", version = "4.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "markdown-it-py", version = "4.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pygments", version = "2.19.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "pygments", version = "2.20.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pygments", version = "2.21.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b3/c6/f3b320c27991c46f43ee9d856302c70dc2d0fb2dba4842ff739d5f46b393/rich-14.3.3.tar.gz", hash = "sha256:b8daa0b9e4eef54dd8cf7c86c03713f53241884e814f4e2f5fb342fe520f639b", size = 230582, upload-time = "2026-02-19T17:23:12.474Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e9/67/cae617f1351490c25a4b8ac3b8b63a4dda609295d8222bad12242dfdc629/rich-14.3.4.tar.gz", hash = "sha256:817e02727f2b25b40ef56f5aa2217f400c8489f79ca8f46ea2b70dd5e14558a9", size = 230524, upload-time = "2026-04-11T02:57:45.419Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/14/25/b208c5683343959b670dc001595f2f3737e051da617f66c31f7c4fa93abc/rich-14.3.3-py3-none-any.whl", hash = "sha256:793431c1f8619afa7d3b52b2cdec859562b950ea0d4b6b505397612db8d5362d", size = 310458, upload-time = "2026-02-19T17:23:13.732Z" }, + { url = "https://files.pythonhosted.org/packages/b3/76/6d163cfac87b632216f71879e6b2cf17163f773ff59c00b5ff4900a80fa3/rich-14.3.4-py3-none-any.whl", hash = "sha256:07e7adb4690f68864777b1450859253bed81a99a31ac321ac1817b2313558952", size = 310480, upload-time = "2026-04-11T02:57:47.484Z" }, ] [[package]] name = "ruff" -version = "0.15.8" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/14/b0/73cf7550861e2b4824950b8b52eebdcc5adc792a00c514406556c5b80817/ruff-0.15.8.tar.gz", hash = "sha256:995f11f63597ee362130d1d5a327a87cb6f3f5eae3094c620bcc632329a4d26e", size = 4610921, upload-time = "2026-03-26T18:39:38.675Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/92/c445b0cd6da6e7ae51e954939cb69f97e008dbe750cfca89b8cedc081be7/ruff-0.15.8-py3-none-linux_armv6l.whl", hash = "sha256:cbe05adeba76d58162762d6b239c9056f1a15a55bd4b346cfd21e26cd6ad7bc7", size = 10527394, upload-time = "2026-03-26T18:39:41.566Z" }, - { url = "https://files.pythonhosted.org/packages/eb/92/f1c662784d149ad1414cae450b082cf736430c12ca78367f20f5ed569d65/ruff-0.15.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:d3e3d0b6ba8dca1b7ef9ab80a28e840a20070c4b62e56d675c24f366ef330570", size = 10905693, upload-time = "2026-03-26T18:39:30.364Z" }, - { url = "https://files.pythonhosted.org/packages/ca/f2/7a631a8af6d88bcef997eb1bf87cc3da158294c57044aafd3e17030613de/ruff-0.15.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:6ee3ae5c65a42f273f126686353f2e08ff29927b7b7e203b711514370d500de3", size = 10323044, upload-time = "2026-03-26T18:39:33.37Z" }, - { url = "https://files.pythonhosted.org/packages/67/18/1bf38e20914a05e72ef3b9569b1d5c70a7ef26cd188d69e9ca8ef588d5bf/ruff-0.15.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdce027ada77baa448077ccc6ebb2fa9c3c62fd110d8659d601cf2f475858d94", size = 10629135, upload-time = "2026-03-26T18:39:44.142Z" }, - { url = "https://files.pythonhosted.org/packages/d2/e9/138c150ff9af60556121623d41aba18b7b57d95ac032e177b6a53789d279/ruff-0.15.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:12e617fc01a95e5821648a6df341d80456bd627bfab8a829f7cfc26a14a4b4a3", size = 10348041, upload-time = "2026-03-26T18:39:52.178Z" }, - { url = "https://files.pythonhosted.org/packages/02/f1/5bfb9298d9c323f842c5ddeb85f1f10ef51516ac7a34ba446c9347d898df/ruff-0.15.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:432701303b26416d22ba696c39f2c6f12499b89093b61360abc34bcc9bf07762", size = 11121987, upload-time = "2026-03-26T18:39:55.195Z" }, - { url = "https://files.pythonhosted.org/packages/10/11/6da2e538704e753c04e8d86b1fc55712fdbdcc266af1a1ece7a51fff0d10/ruff-0.15.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d910ae974b7a06a33a057cb87d2a10792a3b2b3b35e33d2699fdf63ec8f6b17a", size = 11951057, upload-time = "2026-03-26T18:39:19.18Z" }, - { url = "https://files.pythonhosted.org/packages/83/f0/c9208c5fd5101bf87002fed774ff25a96eea313d305f1e5d5744698dc314/ruff-0.15.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2033f963c43949d51e6fdccd3946633c6b37c484f5f98c3035f49c27395a8ab8", size = 11464613, upload-time = "2026-03-26T18:40:06.301Z" }, - { url = "https://files.pythonhosted.org/packages/f8/22/d7f2fabdba4fae9f3b570e5605d5eb4500dcb7b770d3217dca4428484b17/ruff-0.15.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f29b989a55572fb885b77464cf24af05500806ab4edf9a0fd8977f9759d85b1", size = 11257557, upload-time = "2026-03-26T18:39:57.972Z" }, - { url = "https://files.pythonhosted.org/packages/71/8c/382a9620038cf6906446b23ce8632ab8c0811b8f9d3e764f58bedd0c9a6f/ruff-0.15.8-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:ac51d486bf457cdc985a412fb1801b2dfd1bd8838372fc55de64b1510eff4bec", size = 11169440, upload-time = "2026-03-26T18:39:22.205Z" }, - { url = "https://files.pythonhosted.org/packages/4d/0d/0994c802a7eaaf99380085e4e40c845f8e32a562e20a38ec06174b52ef24/ruff-0.15.8-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c9861eb959edab053c10ad62c278835ee69ca527b6dcd72b47d5c1e5648964f6", size = 10605963, upload-time = "2026-03-26T18:39:46.682Z" }, - { url = "https://files.pythonhosted.org/packages/19/aa/d624b86f5b0aad7cef6bbf9cd47a6a02dfdc4f72c92a337d724e39c9d14b/ruff-0.15.8-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8d9a5b8ea13f26ae90838afc33f91b547e61b794865374f114f349e9036835fb", size = 10357484, upload-time = "2026-03-26T18:39:49.176Z" }, - { url = "https://files.pythonhosted.org/packages/35/c3/e0b7835d23001f7d999f3895c6b569927c4d39912286897f625736e1fd04/ruff-0.15.8-py3-none-musllinux_1_2_i686.whl", hash = "sha256:c2a33a529fb3cbc23a7124b5c6ff121e4d6228029cba374777bd7649cc8598b8", size = 10830426, upload-time = "2026-03-26T18:40:03.702Z" }, - { url = "https://files.pythonhosted.org/packages/f0/51/ab20b322f637b369383adc341d761eaaa0f0203d6b9a7421cd6e783d81b9/ruff-0.15.8-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:75e5cd06b1cf3f47a3996cfc999226b19aa92e7cce682dcd62f80d7035f98f49", size = 11345125, upload-time = "2026-03-26T18:39:27.799Z" }, - { url = "https://files.pythonhosted.org/packages/37/e6/90b2b33419f59d0f2c4c8a48a4b74b460709a557e8e0064cf33ad894f983/ruff-0.15.8-py3-none-win32.whl", hash = "sha256:bc1f0a51254ba21767bfa9a8b5013ca8149dcf38092e6a9eb704d876de94dc34", size = 10571959, upload-time = "2026-03-26T18:39:36.117Z" }, - { url = "https://files.pythonhosted.org/packages/1f/a2/ef467cb77099062317154c63f234b8a7baf7cb690b99af760c5b68b9ee7f/ruff-0.15.8-py3-none-win_amd64.whl", hash = "sha256:04f79eff02a72db209d47d665ba7ebcad609d8918a134f86cb13dd132159fc89", size = 11743893, upload-time = "2026-03-26T18:39:25.01Z" }, - { url = "https://files.pythonhosted.org/packages/15/e2/77be4fff062fa78d9b2a4dea85d14785dac5f1d0c1fb58ed52331f0ebe28/ruff-0.15.8-py3-none-win_arm64.whl", hash = "sha256:cf891fa8e3bb430c0e7fac93851a5978fc99c8fa2c053b57b118972866f8e5f2", size = 11048175, upload-time = "2026-03-26T18:40:01.06Z" }, +version = "0.16.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/00/8f/d8074b1f25e003164087a8bfe79a0f1a3945135764dbb6aaab04103dcaf9/ruff-0.16.4.tar.gz", hash = "sha256:13171aa9d9af2240ee3504e639de73122c67e74036de5ba2e1d01422cd17e3dc", size = 4899731, upload-time = "2026-08-20T17:43:59.196Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/80/779895ef584e089d22f2c6df0d0e99a65ec2df0805f1fffd439415b8c1f0/ruff-0.16.4-py3-none-linux_armv6l.whl", hash = "sha256:df4075f71ddac40b9934af60c3ec8a53047dd5a5fdc43224e6e4e8e9a27cb6f7", size = 10006909, upload-time = "2026-08-20T17:43:16.888Z" }, + { url = "https://files.pythonhosted.org/packages/a9/e6/f553199b5e8927a05cb5c422d921fd0656b29ab976e91c44802107c6b0da/ruff-0.16.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:0c95538517af68004306b0fb3214ff2f2af67a65092aee77cd9eb86db6656604", size = 10240201, upload-time = "2026-08-20T17:43:19.337Z" }, + { url = "https://files.pythonhosted.org/packages/1c/70/4a6dc4bb34da4dee35e30f09bbd1bfbdd26f33b62fb9b8df31f08a199cd2/ruff-0.16.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:963f83df8e69e575b64d67dd447ebbc917db41a14bf38d4593a4183e7aaa8255", size = 9835122, upload-time = "2026-08-20T17:43:21.708Z" }, + { url = "https://files.pythonhosted.org/packages/24/12/c6e22d686372c15bcb7af99831f1a1be96df696491babf4f24e4f942c527/ruff-0.16.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32a5057c7ff3f6e6480a48fccfb3a412a690f48a3d03ac5cf08177d6c2da3ade", size = 9977162, upload-time = "2026-08-20T17:43:24.236Z" }, + { url = "https://files.pythonhosted.org/packages/46/49/72b10ec912f5ab5854992eaf7aa7cd36729b6937d9dc4e0fb41b3bf428ec/ruff-0.16.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b3dce8d9b0c57c265b91885a66a567d8ea1372e8eb4e250fa8e5e3f579e99cff", size = 9829789, upload-time = "2026-08-20T17:43:26.966Z" }, + { url = "https://files.pythonhosted.org/packages/fa/80/0f30e32e7f6ee26edc39075502db9d368d788a44a79b55f763eb4ab03796/ruff-0.16.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7dc651db49283c69f8e72c834eec4fe5573e4c646856aebece0ce385dceb2a80", size = 10527949, upload-time = "2026-08-20T17:43:29.384Z" }, + { url = "https://files.pythonhosted.org/packages/52/3d/86e8ad3542169e56cac3859a343afdb9df2ad54d35a59ce1e67baee83421/ruff-0.16.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3817b87dbcabc92f13b05019257c5b89b5b4d51b5fb20f56fb5235ceb723cd07", size = 11333695, upload-time = "2026-08-20T17:43:31.872Z" }, + { url = "https://files.pythonhosted.org/packages/d0/16/481c29b380c20a0054a8261066665e1b3488e23636c49d0a43e75975b9bb/ruff-0.16.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9fce1499134b2c8c68e5166f95705a5812062bb93aacc5f9873bb1a27084bc7", size = 10727741, upload-time = "2026-08-20T17:43:34.596Z" }, + { url = "https://files.pythonhosted.org/packages/5e/b6/56bc0b8cf45b54b28b3a5e6381c8945d51b5b18adf659454c32295209a31/ruff-0.16.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2d812e482f5a7e02eee26cd73d2a37ebbdf47d795ea63ba1b89110ae93e9fb3", size = 10286522, upload-time = "2026-08-20T17:43:37.288Z" }, + { url = "https://files.pythonhosted.org/packages/e8/8b/b345b4fb110f2fbe2bd31eabd271e5e8b3b7e4ee6c0e02f2dc6be78db000/ruff-0.16.4-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:6baaf984aa7976edf93d3b627fe2d1d22ee94bbca05fa6f90fc76d73924e3454", size = 10584182, upload-time = "2026-08-20T17:43:39.984Z" }, + { url = "https://files.pythonhosted.org/packages/29/e5/827b34041c35f58774a9681a4213994c164fc987800f4dddabcf451da0bf/ruff-0.16.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:bdfcf0b28662eb890372d50f92c283bb94e67e7635ed93c7fd533970acff7b2b", size = 10134195, upload-time = "2026-08-20T17:43:42.351Z" }, + { url = "https://files.pythonhosted.org/packages/0f/10/d0bffcdd6729b87afc82ba0ef377173356a7dc8e972f5179968cf2fdf98c/ruff-0.16.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:b66b02cb9b04f537643cadf5768e5f98dc461890d530cb67113d71c8c76e605d", size = 9825821, upload-time = "2026-08-20T17:43:44.532Z" }, + { url = "https://files.pythonhosted.org/packages/f5/32/0db2a863b796ca62d83e92a07a3ccf00921b14db02059347576a2fda3d4b/ruff-0.16.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:8528bf9a4b291a60bf02ea453511e8ce6215bd2b982ee80405b66b008b6c30a0", size = 10267658, upload-time = "2026-08-20T17:43:46.989Z" }, + { url = "https://files.pythonhosted.org/packages/b2/a0/fbdeb59e48c6261f523e56c8f12e9c08fbe693786595cc7e3959207a9232/ruff-0.16.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:fbd85d2875fdd67e833213a651f613bbf25303abf6aa822a5121f4531195678d", size = 10697071, upload-time = "2026-08-20T17:43:49.891Z" }, + { url = "https://files.pythonhosted.org/packages/aa/28/0c6dd865859c6d17bc8ccc34cb72b0e02d6c7eb25e8a1e22b5bea681e2c0/ruff-0.16.4-py3-none-win32.whl", hash = "sha256:312769988007aaeb8e189b443ccdd03c0e6374489e053467be6d96518ebff76e", size = 10021687, upload-time = "2026-08-20T17:43:52.281Z" }, + { url = "https://files.pythonhosted.org/packages/a3/03/e724450f621698117f9aa6dd241c94d0274ae96781378dc86745ae29f0e7/ruff-0.16.4-py3-none-win_amd64.whl", hash = "sha256:05d9d27a18c4bcbefada602480ec9e01e0bc949d432e0ced5df77edac195919c", size = 10567657, upload-time = "2026-08-20T17:43:54.78Z" }, + { url = "https://files.pythonhosted.org/packages/0e/fe/da8b9e1347696bb22120b77280ec5ce25d500ca5cb39d5ad6e5c18de19c1/ruff-0.16.4-py3-none-win_arm64.whl", hash = "sha256:a3a61621c9b6f6a89573e938a080e648f1695baa3f58570a3a707bc51ff65a21", size = 10451579, upload-time = "2026-08-20T17:43:57.135Z" }, ] [[package]] @@ -2259,7 +2435,7 @@ source = { editable = "." } dependencies = [ { name = "protobuf", version = "5.29.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "protobuf", version = "6.33.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "protobuf", version = "7.35.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "protobuf", version = "7.36.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] [package.dev-dependencies] @@ -2267,21 +2443,24 @@ dev = [ { name = "maturin" }, { name = "mypy", version = "1.14.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "mypy", version = "1.19.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "mypy", version = "1.20.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "mypy", version = "2.3.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "mypy-protobuf" }, { name = "pre-commit", version = "4.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "pre-commit", version = "4.5.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "pre-commit", version = "4.6.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pytest", version = "8.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "pytest", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "pytest", version = "9.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "pytest", version = "9.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "python-semantic-release" }, { name = "ruff" }, { name = "segno" }, ] docs = [ - { name = "mkdocs" }, - { name = "mkdocs-material" }, - { name = "mkdocs-minify-plugin" }, + { name = "mike", marker = "python_full_version >= '3.10'" }, + { name = "mkdocs", marker = "python_full_version >= '3.10'" }, + { name = "mkdocs-material", marker = "python_full_version >= '3.10'" }, + { name = "mkdocs-minify-plugin", marker = "python_full_version >= '3.10'" }, + { name = "mkdocstrings", marker = "python_full_version >= '3.10'" }, + { name = "mkdocstrings-python", marker = "python_full_version >= '3.10'" }, ] [package.metadata] @@ -2300,9 +2479,12 @@ dev = [ { name = "segno", specifier = ">=1.6.6" }, ] docs = [ - { name = "mkdocs", specifier = ">=1.6.0" }, - { name = "mkdocs-material", specifier = ">=9.6.0" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" }, + { name = "mike", marker = "python_full_version >= '3.10'", specifier = ">=2.1.0" }, + { name = "mkdocs", marker = "python_full_version >= '3.10'", specifier = ">=1.6.0" }, + { name = "mkdocs-material", marker = "python_full_version >= '3.10'", specifier = ">=9.6.0" }, + { name = "mkdocs-minify-plugin", marker = "python_full_version >= '3.10'", specifier = ">=0.8.0" }, + { name = "mkdocstrings", marker = "python_full_version >= '3.10'", specifier = ">=1.0.0" }, + { name = "mkdocstrings-python", marker = "python_full_version >= '3.10'", specifier = ">=1.12.0" }, ] [[package]] @@ -2331,14 +2513,15 @@ wheels = [ [[package]] name = "types-protobuf" -version = "6.32.1.20260221" +version = "7.35.1.20260822" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", ] -sdist = { url = "https://files.pythonhosted.org/packages/5f/e2/9aa4a3b2469508bd7b4e2ae11cbedaf419222a09a1b94daffcd5efca4023/types_protobuf-6.32.1.20260221.tar.gz", hash = "sha256:6d5fb060a616bfb076cbb61b4b3c3969f5fc8bec5810f9a2f7e648ee5cbcbf6e", size = 64408, upload-time = "2026-02-21T03:55:13.916Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ae/73/83a53029c6acf3c1d041c14864e9c4256b687787719f9f04b0ece7487bf8/types_protobuf-7.35.1.20260822.tar.gz", hash = "sha256:734db0a9620a032eea789eabfd2848a875e17aedc3fb0dcb57ef530c0badda00", size = 69612, upload-time = "2026-08-22T02:43:48.607Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2e/e8/1fd38926f9cf031188fbc5a96694203ea6f24b0e34bd64a225ec6f6291ba/types_protobuf-6.32.1.20260221-py3-none-any.whl", hash = "sha256:da7cdd947975964a93c30bfbcc2c6841ee646b318d3816b033adc2c4eb6448e4", size = 77956, upload-time = "2026-02-21T03:55:12.894Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ba/eb30d4110b7c426555b5bffd79cdd1e920290983a5744858dd3e2682c8db/types_protobuf-7.35.1.20260822-py3-none-any.whl", hash = "sha256:0a6621dd28ec85876bbd0e2e80fba4998bfb63bbd4cff2c15eb469e73915fa05", size = 86411, upload-time = "2026-08-22T02:43:47.529Z" }, ] [[package]] @@ -2355,29 +2538,49 @@ wheels = [ [[package]] name = "typing-extensions" -version = "4.15.0" +version = "4.16.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", "python_full_version == '3.9.*'", ] -sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/cc/6253133b5bb138fc3306cebfbda2c520f545d36b5be2c7255cc528bb45d6/typing_extensions-4.16.0.tar.gz", hash = "sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5", size = 113555, upload-time = "2026-07-02T08:40:05.92Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, + { url = "https://files.pythonhosted.org/packages/49/d3/b8441a820a491ddfc024b0b0cf0393375b75ea13866d9c66727e54c2fc80/typing_extensions-4.16.0-py3-none-any.whl", hash = "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8", size = 45571, upload-time = "2026-07-02T08:40:04.659Z" }, ] [[package]] name = "typing-inspection" version = "0.4.2" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.9.*'", +] dependencies = [ - { name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" } }, ] sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, ] +[[package]] +name = "typing-inspection" +version = "0.4.4" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", +] +dependencies = [ + { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" } }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a3/26/b09b8010994eccc3c09092e6b34058f36a460eea2d4c3e8b910c695975a0/typing_inspection-0.4.4.tar.gz", hash = "sha256:547274fa6b0a561ccf549cc9524b999a578e737d015d8709d021f9d0d13bea47", size = 76928, upload-time = "2026-08-12T12:37:25.997Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/67/81/4add07e5172b7ac40d8ed5ff580409a7801a4fe26d529bdd915401dabfbe/typing_inspection-0.4.4-py3-none-any.whl", hash = "sha256:65b8397ba37ccbce054456aaccddfc91e6e3083c92824df348d96ca832f3f147", size = 14750, upload-time = "2026-08-12T12:37:24.648Z" }, +] + [[package]] name = "urllib3" version = "2.2.3" @@ -2395,7 +2598,6 @@ name = "urllib3" version = "2.6.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", "python_full_version == '3.9.*'", ] sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } @@ -2404,76 +2606,49 @@ wheels = [ ] [[package]] -name = "virtualenv" -version = "21.2.0" +name = "urllib3" +version = "2.7.0" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "distlib", marker = "python_full_version >= '3.9'" }, - { name = "filelock", version = "3.19.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "filelock", version = "3.25.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "platformdirs", version = "4.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "platformdirs", version = "4.9.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "python-discovery", marker = "python_full_version >= '3.9'" }, - { name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, +resolution-markers = [ + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", ] -sdist = { url = "https://files.pythonhosted.org/packages/aa/92/58199fe10049f9703c2666e809c4f686c54ef0a68b0f6afccf518c0b1eb9/virtualenv-21.2.0.tar.gz", hash = "sha256:1720dc3a62ef5b443092e3f499228599045d7fea4c79199770499df8becf9098", size = 5840618, upload-time = "2026-03-09T17:24:38.013Z" } +sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c6/59/7d02447a55b2e55755011a647479041bc92a82e143f96a8195cb33bd0a1c/virtualenv-21.2.0-py3-none-any.whl", hash = "sha256:1bd755b504931164a5a496d217c014d098426cddc79363ad66ac78125f9d908f", size = 5825084, upload-time = "2026-03-09T17:24:35.378Z" }, + { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" }, ] [[package]] -name = "watchdog" -version = "4.0.2" +name = "verspec" +version = "0.1.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.9'", +sdist = { url = "https://files.pythonhosted.org/packages/e7/44/8126f9f0c44319b2efc65feaad589cadef4d77ece200ae3c9133d58464d0/verspec-0.1.0.tar.gz", hash = "sha256:c4504ca697b2056cdb4bfa7121461f5a0e81809255b41c03dda4ba823637c01e", size = 27123, upload-time = "2020-11-30T02:24:09.646Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/ce/3b6fee91c85626eaf769d617f1be9d2e15c1cca027bbdeb2e0d751469355/verspec-0.1.0-py3-none-any.whl", hash = "sha256:741877d5633cc9464c45a469ae2a31e801e6dbbaa85b9675d481cda100f11c31", size = 19640, upload-time = "2020-11-30T02:24:08.387Z" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4f/38/764baaa25eb5e35c9a043d4c4588f9836edfe52a708950f4b6d5f714fd42/watchdog-4.0.2.tar.gz", hash = "sha256:b4dfbb6c49221be4535623ea4474a4d6ee0a9cef4a80b20c28db4d858b64e270", size = 126587, upload-time = "2024-08-11T07:38:01.623Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/46/b0/219893d41c16d74d0793363bf86df07d50357b81f64bba4cb94fe76e7af4/watchdog-4.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ede7f010f2239b97cc79e6cb3c249e72962404ae3865860855d5cbe708b0fd22", size = 100257, upload-time = "2024-08-11T07:37:04.209Z" }, - { url = "https://files.pythonhosted.org/packages/6d/c6/8e90c65693e87d98310b2e1e5fd7e313266990853b489e85ce8396cc26e3/watchdog-4.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a2cffa171445b0efa0726c561eca9a27d00a1f2b83846dbd5a4f639c4f8ca8e1", size = 92249, upload-time = "2024-08-11T07:37:06.364Z" }, - { url = "https://files.pythonhosted.org/packages/6f/cd/2e306756364a934532ff8388d90eb2dc8bb21fe575cd2b33d791ce05a02f/watchdog-4.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c50f148b31b03fbadd6d0b5980e38b558046b127dc483e5e4505fcef250f9503", size = 92888, upload-time = "2024-08-11T07:37:08.275Z" }, - { url = "https://files.pythonhosted.org/packages/de/78/027ad372d62f97642349a16015394a7680530460b1c70c368c506cb60c09/watchdog-4.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7c7d4bf585ad501c5f6c980e7be9c4f15604c7cc150e942d82083b31a7548930", size = 100256, upload-time = "2024-08-11T07:37:11.017Z" }, - { url = "https://files.pythonhosted.org/packages/59/a9/412b808568c1814d693b4ff1cec0055dc791780b9dc947807978fab86bc1/watchdog-4.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:914285126ad0b6eb2258bbbcb7b288d9dfd655ae88fa28945be05a7b475a800b", size = 92252, upload-time = "2024-08-11T07:37:13.098Z" }, - { url = "https://files.pythonhosted.org/packages/04/57/179d76076cff264982bc335dd4c7da6d636bd3e9860bbc896a665c3447b6/watchdog-4.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:984306dc4720da5498b16fc037b36ac443816125a3705dfde4fd90652d8028ef", size = 92888, upload-time = "2024-08-11T07:37:15.077Z" }, - { url = "https://files.pythonhosted.org/packages/92/f5/ea22b095340545faea37ad9a42353b265ca751f543da3fb43f5d00cdcd21/watchdog-4.0.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1cdcfd8142f604630deef34722d695fb455d04ab7cfe9963055df1fc69e6727a", size = 100342, upload-time = "2024-08-11T07:37:16.393Z" }, - { url = "https://files.pythonhosted.org/packages/cb/d2/8ce97dff5e465db1222951434e3115189ae54a9863aef99c6987890cc9ef/watchdog-4.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d7ab624ff2f663f98cd03c8b7eedc09375a911794dfea6bf2a359fcc266bff29", size = 92306, upload-time = "2024-08-11T07:37:17.997Z" }, - { url = "https://files.pythonhosted.org/packages/49/c4/1aeba2c31b25f79b03b15918155bc8c0b08101054fc727900f1a577d0d54/watchdog-4.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:132937547a716027bd5714383dfc40dc66c26769f1ce8a72a859d6a48f371f3a", size = 92915, upload-time = "2024-08-11T07:37:19.967Z" }, - { url = "https://files.pythonhosted.org/packages/79/63/eb8994a182672c042d85a33507475c50c2ee930577524dd97aea05251527/watchdog-4.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:cd67c7df93eb58f360c43802acc945fa8da70c675b6fa37a241e17ca698ca49b", size = 100343, upload-time = "2024-08-11T07:37:21.935Z" }, - { url = "https://files.pythonhosted.org/packages/ce/82/027c0c65c2245769580605bcd20a1dc7dfd6c6683c8c4e2ef43920e38d27/watchdog-4.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcfd02377be80ef3b6bc4ce481ef3959640458d6feaae0bd43dd90a43da90a7d", size = 92313, upload-time = "2024-08-11T07:37:23.314Z" }, - { url = "https://files.pythonhosted.org/packages/2a/89/ad4715cbbd3440cb0d336b78970aba243a33a24b1a79d66f8d16b4590d6a/watchdog-4.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:980b71510f59c884d684b3663d46e7a14b457c9611c481e5cef08f4dd022eed7", size = 92919, upload-time = "2024-08-11T07:37:24.715Z" }, - { url = "https://files.pythonhosted.org/packages/55/08/1a9086a3380e8828f65b0c835b86baf29ebb85e5e94a2811a2eb4f889cfd/watchdog-4.0.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:aa160781cafff2719b663c8a506156e9289d111d80f3387cf3af49cedee1f040", size = 100255, upload-time = "2024-08-11T07:37:26.862Z" }, - { url = "https://files.pythonhosted.org/packages/6c/3e/064974628cf305831f3f78264800bd03b3358ec181e3e9380a36ff156b93/watchdog-4.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f6ee8dedd255087bc7fe82adf046f0b75479b989185fb0bdf9a98b612170eac7", size = 92257, upload-time = "2024-08-11T07:37:28.253Z" }, - { url = "https://files.pythonhosted.org/packages/23/69/1d2ad9c12d93bc1e445baa40db46bc74757f3ffc3a3be592ba8dbc51b6e5/watchdog-4.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0b4359067d30d5b864e09c8597b112fe0a0a59321a0f331498b013fb097406b4", size = 92886, upload-time = "2024-08-11T07:37:29.52Z" }, - { url = "https://files.pythonhosted.org/packages/68/eb/34d3173eceab490d4d1815ba9a821e10abe1da7a7264a224e30689b1450c/watchdog-4.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:770eef5372f146997638d737c9a3c597a3b41037cfbc5c41538fc27c09c3a3f9", size = 100254, upload-time = "2024-08-11T07:37:30.888Z" }, - { url = "https://files.pythonhosted.org/packages/18/a1/4bbafe7ace414904c2cc9bd93e472133e8ec11eab0b4625017f0e34caad8/watchdog-4.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eeea812f38536a0aa859972d50c76e37f4456474b02bd93674d1947cf1e39578", size = 92249, upload-time = "2024-08-11T07:37:32.193Z" }, - { url = "https://files.pythonhosted.org/packages/f3/11/ec5684e0ca692950826af0de862e5db167523c30c9cbf9b3f4ce7ec9cc05/watchdog-4.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b2c45f6e1e57ebb4687690c05bc3a2c1fb6ab260550c4290b8abb1335e0fd08b", size = 92891, upload-time = "2024-08-11T07:37:34.212Z" }, - { url = "https://files.pythonhosted.org/packages/3b/9a/6f30f023324de7bad8a3eb02b0afb06bd0726003a3550e9964321315df5a/watchdog-4.0.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:10b6683df70d340ac3279eff0b2766813f00f35a1d37515d2c99959ada8f05fa", size = 91775, upload-time = "2024-08-11T07:37:35.567Z" }, - { url = "https://files.pythonhosted.org/packages/87/62/8be55e605d378a154037b9ba484e00a5478e627b69c53d0f63e3ef413ba6/watchdog-4.0.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f7c739888c20f99824f7aa9d31ac8a97353e22d0c0e54703a547a218f6637eb3", size = 92255, upload-time = "2024-08-11T07:37:37.596Z" }, - { url = "https://files.pythonhosted.org/packages/6b/59/12e03e675d28f450bade6da6bc79ad6616080b317c472b9ae688d2495a03/watchdog-4.0.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c100d09ac72a8a08ddbf0629ddfa0b8ee41740f9051429baa8e31bb903ad7508", size = 91682, upload-time = "2024-08-11T07:37:38.901Z" }, - { url = "https://files.pythonhosted.org/packages/ef/69/241998de9b8e024f5c2fbdf4324ea628b4231925305011ca8b7e1c3329f6/watchdog-4.0.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:f5315a8c8dd6dd9425b974515081fc0aadca1d1d61e078d2246509fd756141ee", size = 92249, upload-time = "2024-08-11T07:37:40.143Z" }, - { url = "https://files.pythonhosted.org/packages/70/3f/2173b4d9581bc9b5df4d7f2041b6c58b5e5448407856f68d4be9981000d0/watchdog-4.0.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:2d468028a77b42cc685ed694a7a550a8d1771bb05193ba7b24006b8241a571a1", size = 91773, upload-time = "2024-08-11T07:37:42.095Z" }, - { url = "https://files.pythonhosted.org/packages/f0/de/6fff29161d5789048f06ef24d94d3ddcc25795f347202b7ea503c3356acb/watchdog-4.0.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f15edcae3830ff20e55d1f4e743e92970c847bcddc8b7509bcd172aa04de506e", size = 92250, upload-time = "2024-08-11T07:37:44.052Z" }, - { url = "https://files.pythonhosted.org/packages/8a/b1/25acf6767af6f7e44e0086309825bd8c098e301eed5868dc5350642124b9/watchdog-4.0.2-py3-none-manylinux2014_aarch64.whl", hash = "sha256:936acba76d636f70db8f3c66e76aa6cb5136a936fc2a5088b9ce1c7a3508fc83", size = 82947, upload-time = "2024-08-11T07:37:45.388Z" }, - { url = "https://files.pythonhosted.org/packages/e8/90/aebac95d6f954bd4901f5d46dcd83d68e682bfd21798fd125a95ae1c9dbf/watchdog-4.0.2-py3-none-manylinux2014_armv7l.whl", hash = "sha256:e252f8ca942a870f38cf785aef420285431311652d871409a64e2a0a52a2174c", size = 82942, upload-time = "2024-08-11T07:37:46.722Z" }, - { url = "https://files.pythonhosted.org/packages/15/3a/a4bd8f3b9381824995787488b9282aff1ed4667e1110f31a87b871ea851c/watchdog-4.0.2-py3-none-manylinux2014_i686.whl", hash = "sha256:0e83619a2d5d436a7e58a1aea957a3c1ccbf9782c43c0b4fed80580e5e4acd1a", size = 82947, upload-time = "2024-08-11T07:37:48.941Z" }, - { url = "https://files.pythonhosted.org/packages/09/cc/238998fc08e292a4a18a852ed8274159019ee7a66be14441325bcd811dfd/watchdog-4.0.2-py3-none-manylinux2014_ppc64.whl", hash = "sha256:88456d65f207b39f1981bf772e473799fcdc10801062c36fd5ad9f9d1d463a73", size = 82946, upload-time = "2024-08-11T07:37:50.279Z" }, - { url = "https://files.pythonhosted.org/packages/80/f1/d4b915160c9d677174aa5fae4537ae1f5acb23b3745ab0873071ef671f0a/watchdog-4.0.2-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:32be97f3b75693a93c683787a87a0dc8db98bb84701539954eef991fb35f5fbc", size = 82947, upload-time = "2024-08-11T07:37:51.55Z" }, - { url = "https://files.pythonhosted.org/packages/db/02/56ebe2cf33b352fe3309588eb03f020d4d1c061563d9858a9216ba004259/watchdog-4.0.2-py3-none-manylinux2014_s390x.whl", hash = "sha256:c82253cfc9be68e3e49282831afad2c1f6593af80c0daf1287f6a92657986757", size = 82944, upload-time = "2024-08-11T07:37:52.855Z" }, - { url = "https://files.pythonhosted.org/packages/01/d2/c8931ff840a7e5bd5dcb93f2bb2a1fd18faf8312e9f7f53ff1cf76ecc8ed/watchdog-4.0.2-py3-none-manylinux2014_x86_64.whl", hash = "sha256:c0b14488bd336c5b1845cee83d3e631a1f8b4e9c5091ec539406e4a324f882d8", size = 82947, upload-time = "2024-08-11T07:37:55.172Z" }, - { url = "https://files.pythonhosted.org/packages/d0/d8/cdb0c21a4a988669d7c210c75c6a2c9a0e16a3b08d9f7e633df0d9a16ad8/watchdog-4.0.2-py3-none-win32.whl", hash = "sha256:0d8a7e523ef03757a5aa29f591437d64d0d894635f8a50f370fe37f913ce4e19", size = 82935, upload-time = "2024-08-11T07:37:56.668Z" }, - { url = "https://files.pythonhosted.org/packages/99/2e/b69dfaae7a83ea64ce36538cc103a3065e12c447963797793d5c0a1d5130/watchdog-4.0.2-py3-none-win_amd64.whl", hash = "sha256:c344453ef3bf875a535b0488e3ad28e341adbd5a9ffb0f7d62cefacc8824ef2b", size = 82934, upload-time = "2024-08-11T07:37:57.991Z" }, - { url = "https://files.pythonhosted.org/packages/b0/0b/43b96a9ecdd65ff5545b1b13b687ca486da5c6249475b1a45f24d63a1858/watchdog-4.0.2-py3-none-win_ia64.whl", hash = "sha256:baececaa8edff42cd16558a639a9b0ddf425f93d892e8392a56bf904f5eff22c", size = 82933, upload-time = "2024-08-11T07:37:59.573Z" }, + +[[package]] +name = "virtualenv" +version = "21.7.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "distlib" }, + { name = "filelock", version = "3.19.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "filelock", version = "3.32.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "platformdirs", version = "4.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "platformdirs", version = "4.11.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "python-discovery" }, + { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2d/dc/a6eb1ddfa7f1e390fa599b078453c97edb3f6f846b34fb4eac3e8ea16401/virtualenv-21.7.4.tar.gz", hash = "sha256:c9d960c95fa458171e58222a5ccab7465298e4b6559977865e627c4719f1e825", size = 5345511, upload-time = "2026-08-10T22:54:33.316Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/4c/eb2f52aeeaf30dbd073d315a251a63ae2b8263171ec4428c135140cb0802/virtualenv-21.7.4-py3-none-any.whl", hash = "sha256:376ec93cd6aab3044fa395d7db226db38043b7b5748948044b2a87168525e843", size = 5324444, upload-time = "2026-08-10T22:54:31.515Z" }, ] [[package]] name = "watchdog" version = "6.0.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.10'", - "python_full_version == '3.9.*'", -] sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220, upload-time = "2024-11-01T14:07:13.037Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/0c/56/90994d789c61df619bfc5ce2ecdabd5eeff564e1eb47512bd01b5e019569/watchdog-6.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1cdb490583ebd691c012b3d6dae011000fe42edb7a82ece80965b42abd61f26", size = 96390, upload-time = "2024-11-01T14:06:24.793Z" }, @@ -2626,103 +2801,104 @@ wheels = [ [[package]] name = "wrapt" -version = "2.1.2" +version = "2.3.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.10'", + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", "python_full_version == '3.9.*'", ] -sdist = { url = "https://files.pythonhosted.org/packages/2e/64/925f213fdcbb9baeb1530449ac71a4d57fc361c053d06bf78d0c5c7cd80c/wrapt-2.1.2.tar.gz", hash = "sha256:3996a67eecc2c68fd47b4e3c564405a5777367adfd9b8abb58387b63ee83b21e", size = 81678, upload-time = "2026-03-06T02:53:25.134Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/da/d2/387594fb592d027366645f3d7cc9b4d7ca7be93845fbaba6d835a912ef3c/wrapt-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b7a86d99a14f76facb269dc148590c01aaf47584071809a70da30555228158c", size = 60669, upload-time = "2026-03-06T02:52:40.671Z" }, - { url = "https://files.pythonhosted.org/packages/c9/18/3f373935bc5509e7ac444c8026a56762e50c1183e7061797437ca96c12ce/wrapt-2.1.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a819e39017f95bf7aede768f75915635aa8f671f2993c036991b8d3bfe8dbb6f", size = 61603, upload-time = "2026-03-06T02:54:21.032Z" }, - { url = "https://files.pythonhosted.org/packages/c2/7a/32758ca2853b07a887a4574b74e28843919103194bb47001a304e24af62f/wrapt-2.1.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5681123e60aed0e64c7d44f72bbf8b4ce45f79d81467e2c4c728629f5baf06eb", size = 113632, upload-time = "2026-03-06T02:53:54.121Z" }, - { url = "https://files.pythonhosted.org/packages/1d/d5/eeaa38f670d462e97d978b3b0d9ce06d5b91e54bebac6fbed867809216e7/wrapt-2.1.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2b8b28e97a44d21836259739ae76284e180b18abbb4dcfdff07a415cf1016c3e", size = 115644, upload-time = "2026-03-06T02:54:53.33Z" }, - { url = "https://files.pythonhosted.org/packages/e3/09/2a41506cb17affb0bdf9d5e2129c8c19e192b388c4c01d05e1b14db23c00/wrapt-2.1.2-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cef91c95a50596fcdc31397eb6955476f82ae8a3f5a8eabdc13611b60ee380ba", size = 112016, upload-time = "2026-03-06T02:54:43.274Z" }, - { url = "https://files.pythonhosted.org/packages/64/15/0e6c3f5e87caadc43db279724ee36979246d5194fa32fed489c73643ba59/wrapt-2.1.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:dad63212b168de8569b1c512f4eac4b57f2c6934b30df32d6ee9534a79f1493f", size = 114823, upload-time = "2026-03-06T02:54:29.392Z" }, - { url = "https://files.pythonhosted.org/packages/56/b2/0ad17c8248f4e57bedf44938c26ec3ee194715f812d2dbbd9d7ff4be6c06/wrapt-2.1.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d307aa6888d5efab2c1cde09843d48c843990be13069003184b67d426d145394", size = 111244, upload-time = "2026-03-06T02:54:02.149Z" }, - { url = "https://files.pythonhosted.org/packages/ff/04/bcdba98c26f2c6522c7c09a726d5d9229120163493620205b2f76bd13c01/wrapt-2.1.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c87cf3f0c85e27b3ac7d9ad95da166bf8739ca215a8b171e8404a2d739897a45", size = 113307, upload-time = "2026-03-06T02:54:12.428Z" }, - { url = "https://files.pythonhosted.org/packages/0e/1b/5e2883c6bc14143924e465a6fc5a92d09eeabe35310842a481fb0581f832/wrapt-2.1.2-cp310-cp310-win32.whl", hash = "sha256:d1c5fea4f9fe3762e2b905fdd67df51e4be7a73b7674957af2d2ade71a5c075d", size = 57986, upload-time = "2026-03-06T02:54:26.823Z" }, - { url = "https://files.pythonhosted.org/packages/42/5a/4efc997bccadd3af5749c250b49412793bc41e13a83a486b2b54a33e240c/wrapt-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:d8f7740e1af13dff2684e4d56fe604a7e04d6c94e737a60568d8d4238b9a0c71", size = 60336, upload-time = "2026-03-06T02:54:18Z" }, - { url = "https://files.pythonhosted.org/packages/c1/f5/a2bb833e20181b937e87c242645ed5d5aa9c373006b0467bfe1a35c727d0/wrapt-2.1.2-cp310-cp310-win_arm64.whl", hash = "sha256:1c6cc827c00dc839350155f316f1f8b4b0c370f52b6a19e782e2bda89600c7dc", size = 58757, upload-time = "2026-03-06T02:53:51.545Z" }, - { url = "https://files.pythonhosted.org/packages/c7/81/60c4471fce95afa5922ca09b88a25f03c93343f759aae0f31fb4412a85c7/wrapt-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:96159a0ee2b0277d44201c3b5be479a9979cf154e8c82fa5df49586a8e7679bb", size = 60666, upload-time = "2026-03-06T02:52:58.934Z" }, - { url = "https://files.pythonhosted.org/packages/6b/be/80e80e39e7cb90b006a0eaf11c73ac3a62bbfb3068469aec15cc0bc795de/wrapt-2.1.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:98ba61833a77b747901e9012072f038795de7fc77849f1faa965464f3f87ff2d", size = 61601, upload-time = "2026-03-06T02:53:00.487Z" }, - { url = "https://files.pythonhosted.org/packages/b0/be/d7c88cd9293c859fc74b232abdc65a229bb953997995d6912fc85af18323/wrapt-2.1.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:767c0dbbe76cae2a60dd2b235ac0c87c9cccf4898aef8062e57bead46b5f6894", size = 114057, upload-time = "2026-03-06T02:52:44.08Z" }, - { url = "https://files.pythonhosted.org/packages/ea/25/36c04602831a4d685d45a93b3abea61eca7fe35dab6c842d6f5d570ef94a/wrapt-2.1.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c691a6bc752c0cc4711cc0c00896fcd0f116abc253609ef64ef930032821842", size = 116099, upload-time = "2026-03-06T02:54:56.74Z" }, - { url = "https://files.pythonhosted.org/packages/5c/4e/98a6eb417ef551dc277bec1253d5246b25003cf36fdf3913b65cb7657a56/wrapt-2.1.2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f3b7d73012ea75aee5844de58c88f44cf62d0d62711e39da5a82824a7c4626a8", size = 112457, upload-time = "2026-03-06T02:53:52.842Z" }, - { url = "https://files.pythonhosted.org/packages/cb/a6/a6f7186a5297cad8ec53fd7578533b28f795fdf5372368c74bd7e6e9841c/wrapt-2.1.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:577dff354e7acd9d411eaf4bfe76b724c89c89c8fc9b7e127ee28c5f7bcb25b6", size = 115351, upload-time = "2026-03-06T02:53:32.684Z" }, - { url = "https://files.pythonhosted.org/packages/97/6f/06e66189e721dbebd5cf20e138acc4d1150288ce118462f2fcbff92d38db/wrapt-2.1.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:3d7b6fd105f8b24e5bd23ccf41cb1d1099796524bcc6f7fbb8fe576c44befbc9", size = 111748, upload-time = "2026-03-06T02:53:08.455Z" }, - { url = "https://files.pythonhosted.org/packages/ef/43/4808b86f499a51370fbdbdfa6cb91e9b9169e762716456471b619fca7a70/wrapt-2.1.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:866abdbf4612e0b34764922ef8b1c5668867610a718d3053d59e24a5e5fcfc15", size = 113783, upload-time = "2026-03-06T02:53:02.02Z" }, - { url = "https://files.pythonhosted.org/packages/91/2c/a3f28b8fa7ac2cefa01cfcaca3471f9b0460608d012b693998cd61ef43df/wrapt-2.1.2-cp311-cp311-win32.whl", hash = "sha256:5a0a0a3a882393095573344075189eb2d566e0fd205a2b6414e9997b1b800a8b", size = 57977, upload-time = "2026-03-06T02:53:27.844Z" }, - { url = "https://files.pythonhosted.org/packages/3f/c3/2b1c7bd07a27b1db885a2fab469b707bdd35bddf30a113b4917a7e2139d2/wrapt-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:64a07a71d2730ba56f11d1a4b91f7817dc79bc134c11516b75d1921a7c6fcda1", size = 60336, upload-time = "2026-03-06T02:54:28.104Z" }, - { url = "https://files.pythonhosted.org/packages/ec/5c/76ece7b401b088daa6503d6264dd80f9a727df3e6042802de9a223084ea2/wrapt-2.1.2-cp311-cp311-win_arm64.whl", hash = "sha256:b89f095fe98bc12107f82a9f7d570dc83a0870291aeb6b1d7a7d35575f55d98a", size = 58756, upload-time = "2026-03-06T02:53:16.319Z" }, - { url = "https://files.pythonhosted.org/packages/4c/b6/1db817582c49c7fcbb7df6809d0f515af29d7c2fbf57eb44c36e98fb1492/wrapt-2.1.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ff2aad9c4cda28a8f0653fc2d487596458c2a3f475e56ba02909e950a9efa6a9", size = 61255, upload-time = "2026-03-06T02:52:45.663Z" }, - { url = "https://files.pythonhosted.org/packages/a2/16/9b02a6b99c09227c93cd4b73acc3678114154ec38da53043c0ddc1fba0dc/wrapt-2.1.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6433ea84e1cfacf32021d2a4ee909554ade7fd392caa6f7c13f1f4bf7b8e8748", size = 61848, upload-time = "2026-03-06T02:53:48.728Z" }, - { url = "https://files.pythonhosted.org/packages/af/aa/ead46a88f9ec3a432a4832dfedb84092fc35af2d0ba40cd04aea3889f247/wrapt-2.1.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c20b757c268d30d6215916a5fa8461048d023865d888e437fab451139cad6c8e", size = 121433, upload-time = "2026-03-06T02:54:40.328Z" }, - { url = "https://files.pythonhosted.org/packages/3a/9f/742c7c7cdf58b59085a1ee4b6c37b013f66ac33673a7ef4aaed5e992bc33/wrapt-2.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:79847b83eb38e70d93dc392c7c5b587efe65b3e7afcc167aa8abd5d60e8761c8", size = 123013, upload-time = "2026-03-06T02:53:26.58Z" }, - { url = "https://files.pythonhosted.org/packages/e8/44/2c3dd45d53236b7ed7c646fcf212251dc19e48e599debd3926b52310fafb/wrapt-2.1.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f8fba1bae256186a83d1875b2b1f4e2d1242e8fac0f58ec0d7e41b26967b965c", size = 117326, upload-time = "2026-03-06T02:53:11.547Z" }, - { url = "https://files.pythonhosted.org/packages/74/e2/b17d66abc26bd96f89dec0ecd0ef03da4a1286e6ff793839ec431b9fae57/wrapt-2.1.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e3d3b35eedcf5f7d022291ecd7533321c4775f7b9cd0050a31a68499ba45757c", size = 121444, upload-time = "2026-03-06T02:54:09.5Z" }, - { url = "https://files.pythonhosted.org/packages/3c/62/e2977843fdf9f03daf1586a0ff49060b1b2fc7ff85a7ea82b6217c1ae36e/wrapt-2.1.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:6f2c5390460de57fa9582bc8a1b7a6c86e1a41dfad74c5225fc07044c15cc8d1", size = 116237, upload-time = "2026-03-06T02:54:03.884Z" }, - { url = "https://files.pythonhosted.org/packages/88/dd/27fc67914e68d740bce512f11734aec08696e6b17641fef8867c00c949fc/wrapt-2.1.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7dfa9f2cf65d027b951d05c662cc99ee3bd01f6e4691ed39848a7a5fffc902b2", size = 120563, upload-time = "2026-03-06T02:53:20.412Z" }, - { url = "https://files.pythonhosted.org/packages/ec/9f/b750b3692ed2ef4705cb305bd68858e73010492b80e43d2a4faa5573cbe7/wrapt-2.1.2-cp312-cp312-win32.whl", hash = "sha256:eba8155747eb2cae4a0b913d9ebd12a1db4d860fc4c829d7578c7b989bd3f2f0", size = 58198, upload-time = "2026-03-06T02:53:37.732Z" }, - { url = "https://files.pythonhosted.org/packages/8e/b2/feecfe29f28483d888d76a48f03c4c4d8afea944dbee2b0cd3380f9df032/wrapt-2.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:1c51c738d7d9faa0b3601708e7e2eda9bf779e1b601dce6c77411f2a1b324a63", size = 60441, upload-time = "2026-03-06T02:52:47.138Z" }, - { url = "https://files.pythonhosted.org/packages/44/e1/e328f605d6e208547ea9fd120804fcdec68536ac748987a68c47c606eea8/wrapt-2.1.2-cp312-cp312-win_arm64.whl", hash = "sha256:c8e46ae8e4032792eb2f677dbd0d557170a8e5524d22acc55199f43efedd39bf", size = 58836, upload-time = "2026-03-06T02:53:22.053Z" }, - { url = "https://files.pythonhosted.org/packages/4c/7a/d936840735c828b38d26a854e85d5338894cda544cb7a85a9d5b8b9c4df7/wrapt-2.1.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:787fd6f4d67befa6fe2abdffcbd3de2d82dfc6fb8a6d850407c53332709d030b", size = 61259, upload-time = "2026-03-06T02:53:41.922Z" }, - { url = "https://files.pythonhosted.org/packages/5e/88/9a9b9a90ac8ca11c2fdb6a286cb3a1fc7dd774c00ed70929a6434f6bc634/wrapt-2.1.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4bdf26e03e6d0da3f0e9422fd36bcebf7bc0eeb55fdf9c727a09abc6b9fe472e", size = 61851, upload-time = "2026-03-06T02:52:48.672Z" }, - { url = "https://files.pythonhosted.org/packages/03/a9/5b7d6a16fd6533fed2756900fc8fc923f678179aea62ada6d65c92718c00/wrapt-2.1.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:bbac24d879aa22998e87f6b3f481a5216311e7d53c7db87f189a7a0266dafffb", size = 121446, upload-time = "2026-03-06T02:54:14.013Z" }, - { url = "https://files.pythonhosted.org/packages/45/bb/34c443690c847835cfe9f892be78c533d4f32366ad2888972c094a897e39/wrapt-2.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:16997dfb9d67addc2e3f41b62a104341e80cac52f91110dece393923c0ebd5ca", size = 123056, upload-time = "2026-03-06T02:54:10.829Z" }, - { url = "https://files.pythonhosted.org/packages/93/b9/ff205f391cb708f67f41ea148545f2b53ff543a7ac293b30d178af4d2271/wrapt-2.1.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:162e4e2ba7542da9027821cb6e7c5e068d64f9a10b5f15512ea28e954893a267", size = 117359, upload-time = "2026-03-06T02:53:03.623Z" }, - { url = "https://files.pythonhosted.org/packages/1f/3d/1ea04d7747825119c3c9a5e0874a40b33594ada92e5649347c457d982805/wrapt-2.1.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f29c827a8d9936ac320746747a016c4bc66ef639f5cd0d32df24f5eacbf9c69f", size = 121479, upload-time = "2026-03-06T02:53:45.844Z" }, - { url = "https://files.pythonhosted.org/packages/78/cc/ee3a011920c7a023b25e8df26f306b2484a531ab84ca5c96260a73de76c0/wrapt-2.1.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:a9dd9813825f7ecb018c17fd147a01845eb330254dff86d3b5816f20f4d6aaf8", size = 116271, upload-time = "2026-03-06T02:54:46.356Z" }, - { url = "https://files.pythonhosted.org/packages/98/fd/e5ff7ded41b76d802cf1191288473e850d24ba2e39a6ec540f21ae3b57cb/wrapt-2.1.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6f8dbdd3719e534860d6a78526aafc220e0241f981367018c2875178cf83a413", size = 120573, upload-time = "2026-03-06T02:52:50.163Z" }, - { url = "https://files.pythonhosted.org/packages/47/c5/242cae3b5b080cd09bacef0591691ba1879739050cc7c801ff35c8886b66/wrapt-2.1.2-cp313-cp313-win32.whl", hash = "sha256:5c35b5d82b16a3bc6e0a04349b606a0582bc29f573786aebe98e0c159bc48db6", size = 58205, upload-time = "2026-03-06T02:53:47.494Z" }, - { url = "https://files.pythonhosted.org/packages/12/69/c358c61e7a50f290958809b3c61ebe8b3838ea3e070d7aac9814f95a0528/wrapt-2.1.2-cp313-cp313-win_amd64.whl", hash = "sha256:f8bc1c264d8d1cf5b3560a87bbdd31131573eb25f9f9447bb6252b8d4c44a3a1", size = 60452, upload-time = "2026-03-06T02:53:30.038Z" }, - { url = "https://files.pythonhosted.org/packages/8e/66/c8a6fcfe321295fd8c0ab1bd685b5a01462a9b3aa2f597254462fc2bc975/wrapt-2.1.2-cp313-cp313-win_arm64.whl", hash = "sha256:3beb22f674550d5634642c645aba4c72a2c66fb185ae1aebe1e955fae5a13baf", size = 58842, upload-time = "2026-03-06T02:52:52.114Z" }, - { url = "https://files.pythonhosted.org/packages/da/55/9c7052c349106e0b3f17ae8db4b23a691a963c334de7f9dbd60f8f74a831/wrapt-2.1.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0fc04bc8664a8bc4c8e00b37b5355cffca2535209fba1abb09ae2b7c76ddf82b", size = 63075, upload-time = "2026-03-06T02:53:19.108Z" }, - { url = "https://files.pythonhosted.org/packages/09/a8/ce7b4006f7218248dd71b7b2b732d0710845a0e49213b18faef64811ffef/wrapt-2.1.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a9b9d50c9af998875a1482a038eb05755dfd6fe303a313f6a940bb53a83c3f18", size = 63719, upload-time = "2026-03-06T02:54:33.452Z" }, - { url = "https://files.pythonhosted.org/packages/e4/e5/2ca472e80b9e2b7a17f106bb8f9df1db11e62101652ce210f66935c6af67/wrapt-2.1.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2d3ff4f0024dd224290c0eabf0240f1bfc1f26363431505fb1b0283d3b08f11d", size = 152643, upload-time = "2026-03-06T02:52:42.721Z" }, - { url = "https://files.pythonhosted.org/packages/36/42/30f0f2cefca9d9cbf6835f544d825064570203c3e70aa873d8ae12e23791/wrapt-2.1.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3278c471f4468ad544a691b31bb856374fbdefb7fee1a152153e64019379f015", size = 158805, upload-time = "2026-03-06T02:54:25.441Z" }, - { url = "https://files.pythonhosted.org/packages/bb/67/d08672f801f604889dcf58f1a0b424fe3808860ede9e03affc1876b295af/wrapt-2.1.2-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a8914c754d3134a3032601c6984db1c576e6abaf3fc68094bb8ab1379d75ff92", size = 145990, upload-time = "2026-03-06T02:53:57.456Z" }, - { url = "https://files.pythonhosted.org/packages/68/a7/fd371b02e73babec1de6ade596e8cd9691051058cfdadbfd62a5898f3295/wrapt-2.1.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ff95d4264e55839be37bafe1536db2ab2de19da6b65f9244f01f332b5286cfbf", size = 155670, upload-time = "2026-03-06T02:54:55.309Z" }, - { url = "https://files.pythonhosted.org/packages/86/2d/9fe0095dfdb621009f40117dcebf41d7396c2c22dca6eac779f4c007b86c/wrapt-2.1.2-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:76405518ca4e1b76fbb1b9f686cff93aebae03920cc55ceeec48ff9f719c5f67", size = 144357, upload-time = "2026-03-06T02:54:24.092Z" }, - { url = "https://files.pythonhosted.org/packages/0e/b6/ec7b4a254abbe4cde9fa15c5d2cca4518f6b07d0f1b77d4ee9655e30280e/wrapt-2.1.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c0be8b5a74c5824e9359b53e7e58bef71a729bacc82e16587db1c4ebc91f7c5a", size = 150269, upload-time = "2026-03-06T02:53:31.268Z" }, - { url = "https://files.pythonhosted.org/packages/6e/6b/2fabe8ebf148f4ee3c782aae86a795cc68ffe7d432ef550f234025ce0cfa/wrapt-2.1.2-cp313-cp313t-win32.whl", hash = "sha256:f01277d9a5fc1862f26f7626da9cf443bebc0abd2f303f41c5e995b15887dabd", size = 59894, upload-time = "2026-03-06T02:54:15.391Z" }, - { url = "https://files.pythonhosted.org/packages/ca/fb/9ba66fc2dedc936de5f8073c0217b5d4484e966d87723415cc8262c5d9c2/wrapt-2.1.2-cp313-cp313t-win_amd64.whl", hash = "sha256:84ce8f1c2104d2f6daa912b1b5b039f331febfeee74f8042ad4e04992bd95c8f", size = 63197, upload-time = "2026-03-06T02:54:41.943Z" }, - { url = "https://files.pythonhosted.org/packages/c0/1c/012d7423c95d0e337117723eb8ecf73c622ce15a97847e84cf3f8f26cd7e/wrapt-2.1.2-cp313-cp313t-win_arm64.whl", hash = "sha256:a93cd767e37faeddbe07d8fc4212d5cba660af59bdb0f6372c93faaa13e6e679", size = 60363, upload-time = "2026-03-06T02:54:48.093Z" }, - { url = "https://files.pythonhosted.org/packages/39/25/e7ea0b417db02bb796182a5316398a75792cd9a22528783d868755e1f669/wrapt-2.1.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1370e516598854e5b4366e09ce81e08bfe94d42b0fd569b88ec46cc56d9164a9", size = 61418, upload-time = "2026-03-06T02:53:55.706Z" }, - { url = "https://files.pythonhosted.org/packages/ec/0f/fa539e2f6a770249907757eaeb9a5ff4deb41c026f8466c1c6d799088a9b/wrapt-2.1.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6de1a3851c27e0bd6a04ca993ea6f80fc53e6c742ee1601f486c08e9f9b900a9", size = 61914, upload-time = "2026-03-06T02:52:53.37Z" }, - { url = "https://files.pythonhosted.org/packages/53/37/02af1867f5b1441aaeda9c82deed061b7cd1372572ddcd717f6df90b5e93/wrapt-2.1.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:de9f1a2bbc5ac7f6012ec24525bdd444765a2ff64b5985ac6e0692144838542e", size = 120417, upload-time = "2026-03-06T02:54:30.74Z" }, - { url = "https://files.pythonhosted.org/packages/c3/b7/0138a6238c8ba7476c77cf786a807f871672b37f37a422970342308276e7/wrapt-2.1.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:970d57ed83fa040d8b20c52fe74a6ae7e3775ae8cff5efd6a81e06b19078484c", size = 122797, upload-time = "2026-03-06T02:54:51.539Z" }, - { url = "https://files.pythonhosted.org/packages/e1/ad/819ae558036d6a15b7ed290d5b14e209ca795dd4da9c58e50c067d5927b0/wrapt-2.1.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3969c56e4563c375861c8df14fa55146e81ac11c8db49ea6fb7f2ba58bc1ff9a", size = 117350, upload-time = "2026-03-06T02:54:37.651Z" }, - { url = "https://files.pythonhosted.org/packages/8b/2d/afc18dc57a4600a6e594f77a9ae09db54f55ba455440a54886694a84c71b/wrapt-2.1.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:57d7c0c980abdc5f1d98b11a2aa3bb159790add80258c717fa49a99921456d90", size = 121223, upload-time = "2026-03-06T02:54:35.221Z" }, - { url = "https://files.pythonhosted.org/packages/b9/5b/5ec189b22205697bc56eb3b62aed87a1e0423e9c8285d0781c7a83170d15/wrapt-2.1.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:776867878e83130c7a04237010463372e877c1c994d449ca6aaafeab6aab2586", size = 116287, upload-time = "2026-03-06T02:54:19.654Z" }, - { url = "https://files.pythonhosted.org/packages/f7/2d/f84939a7c9b5e6cdd8a8d0f6a26cabf36a0f7e468b967720e8b0cd2bdf69/wrapt-2.1.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:fab036efe5464ec3291411fabb80a7a39e2dd80bae9bcbeeca5087fdfa891e19", size = 119593, upload-time = "2026-03-06T02:54:16.697Z" }, - { url = "https://files.pythonhosted.org/packages/0b/fe/ccd22a1263159c4ac811ab9374c061bcb4a702773f6e06e38de5f81a1bdc/wrapt-2.1.2-cp314-cp314-win32.whl", hash = "sha256:e6ed62c82ddf58d001096ae84ce7f833db97ae2263bff31c9b336ba8cfe3f508", size = 58631, upload-time = "2026-03-06T02:53:06.498Z" }, - { url = "https://files.pythonhosted.org/packages/65/0a/6bd83be7bff2e7efaac7b4ac9748da9d75a34634bbbbc8ad077d527146df/wrapt-2.1.2-cp314-cp314-win_amd64.whl", hash = "sha256:467e7c76315390331c67073073d00662015bb730c566820c9ca9b54e4d67fd04", size = 60875, upload-time = "2026-03-06T02:53:50.252Z" }, - { url = "https://files.pythonhosted.org/packages/6c/c0/0b3056397fe02ff80e5a5d72d627c11eb885d1ca78e71b1a5c1e8c7d45de/wrapt-2.1.2-cp314-cp314-win_arm64.whl", hash = "sha256:da1f00a557c66225d53b095a97eace0fc5349e3bfda28fa34ffae238978ee575", size = 59164, upload-time = "2026-03-06T02:53:59.128Z" }, - { url = "https://files.pythonhosted.org/packages/71/ed/5d89c798741993b2371396eb9d4634f009ff1ad8a6c78d366fe2883ea7a6/wrapt-2.1.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:62503ffbc2d3a69891cf29beeaccdb4d5e0a126e2b6a851688d4777e01428dbb", size = 63163, upload-time = "2026-03-06T02:52:54.873Z" }, - { url = "https://files.pythonhosted.org/packages/c6/8c/05d277d182bf36b0a13d6bd393ed1dec3468a25b59d01fba2dd70fe4d6ae/wrapt-2.1.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c7e6cd120ef837d5b6f860a6ea3745f8763805c418bb2f12eeb1fa6e25f22d22", size = 63723, upload-time = "2026-03-06T02:52:56.374Z" }, - { url = "https://files.pythonhosted.org/packages/f4/27/6c51ec1eff4413c57e72d6106bb8dec6f0c7cdba6503d78f0fa98767bcc9/wrapt-2.1.2-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:3769a77df8e756d65fbc050333f423c01ae012b4f6731aaf70cf2bef61b34596", size = 152652, upload-time = "2026-03-06T02:53:23.79Z" }, - { url = "https://files.pythonhosted.org/packages/db/4c/d7dd662d6963fc7335bfe29d512b02b71cdfa23eeca7ab3ac74a67505deb/wrapt-2.1.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a76d61a2e851996150ba0f80582dd92a870643fa481f3b3846f229de88caf044", size = 158807, upload-time = "2026-03-06T02:53:35.742Z" }, - { url = "https://files.pythonhosted.org/packages/b4/4d/1e5eea1a78d539d346765727422976676615814029522c76b87a95f6bcdd/wrapt-2.1.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6f97edc9842cf215312b75fe737ee7c8adda75a89979f8e11558dfff6343cc4b", size = 146061, upload-time = "2026-03-06T02:52:57.574Z" }, - { url = "https://files.pythonhosted.org/packages/89/bc/62cabea7695cd12a288023251eeefdcb8465056ddaab6227cb78a2de005b/wrapt-2.1.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:4006c351de6d5007aa33a551f600404ba44228a89e833d2fadc5caa5de8edfbf", size = 155667, upload-time = "2026-03-06T02:53:39.422Z" }, - { url = "https://files.pythonhosted.org/packages/e9/99/6f2888cd68588f24df3a76572c69c2de28287acb9e1972bf0c83ce97dbc1/wrapt-2.1.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:a9372fc3639a878c8e7d87e1556fa209091b0a66e912c611e3f833e2c4202be2", size = 144392, upload-time = "2026-03-06T02:54:22.41Z" }, - { url = "https://files.pythonhosted.org/packages/40/51/1dfc783a6c57971614c48e361a82ca3b6da9055879952587bc99fe1a7171/wrapt-2.1.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3144b027ff30cbd2fca07c0a87e67011adb717eb5f5bd8496325c17e454257a3", size = 150296, upload-time = "2026-03-06T02:54:07.848Z" }, - { url = "https://files.pythonhosted.org/packages/6c/38/cbb8b933a0201076c1f64fc42883b0023002bdc14a4964219154e6ff3350/wrapt-2.1.2-cp314-cp314t-win32.whl", hash = "sha256:3b8d15e52e195813efe5db8cec156eebe339aaf84222f4f4f051a6c01f237ed7", size = 60539, upload-time = "2026-03-06T02:54:00.594Z" }, - { url = "https://files.pythonhosted.org/packages/82/dd/e5176e4b241c9f528402cebb238a36785a628179d7d8b71091154b3e4c9e/wrapt-2.1.2-cp314-cp314t-win_amd64.whl", hash = "sha256:08ffa54146a7559f5b8df4b289b46d963a8e74ed16ba3687f99896101a3990c5", size = 63969, upload-time = "2026-03-06T02:54:39Z" }, - { url = "https://files.pythonhosted.org/packages/5c/99/79f17046cf67e4a95b9987ea129632ba8bcec0bc81f3fb3d19bdb0bd60cd/wrapt-2.1.2-cp314-cp314t-win_arm64.whl", hash = "sha256:72aaa9d0d8e4ed0e2e98019cea47a21f823c9dd4b43c7b77bba6679ffcca6a00", size = 60554, upload-time = "2026-03-06T02:53:14.132Z" }, - { url = "https://files.pythonhosted.org/packages/f7/ea/fe375f8a012e5f25b2cd31b093860c8c6540be445345c6f886e5d8bca9ef/wrapt-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5e0fa9cc32300daf9eb09a1f5bdc6deb9a79defd70d5356ba453bcd50aef3742", size = 60661, upload-time = "2026-03-06T02:54:06.572Z" }, - { url = "https://files.pythonhosted.org/packages/d8/2a/0dff969ddf4d3f69f051c8f81afbd3a9fc9fb08ab993b1061ee582b6543c/wrapt-2.1.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:710f6e5dfaf6a5d5c397d2d6758a78fecd9649deb21f1b645f5b57a328d63050", size = 61602, upload-time = "2026-03-06T02:53:44.48Z" }, - { url = "https://files.pythonhosted.org/packages/25/62/b80dd7a6c21486a7b8aea63b6bac509b2e4ea184b0eefe3795aa7202a92c/wrapt-2.1.2-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:305d8a1755116bfdad5dda9e771dcb2138990a1d66e9edd81658816edf51aed1", size = 113340, upload-time = "2026-03-06T02:54:44.626Z" }, - { url = "https://files.pythonhosted.org/packages/82/06/adbe093e07a775d8687cc45329cda9e1b33779357d146c688accbc3a9f1f/wrapt-2.1.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f0d8fc30a43b5fe191cf2b1a0c82bab2571dadd38e7c0062ee87d6df858dd06e", size = 115305, upload-time = "2026-03-06T02:53:04.929Z" }, - { url = "https://files.pythonhosted.org/packages/3f/dd/31c2596c6bf6bfb1874aa637c66e3028baa83d00708d1439db3b395f8371/wrapt-2.1.2-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a5d516e22aedb7c9c1d47cba1c63160b1a6f61ec2f3948d127cd38d5cfbb556f", size = 111691, upload-time = "2026-03-06T02:53:17.845Z" }, - { url = "https://files.pythonhosted.org/packages/03/92/e9ba179f4a00b7eb7ab8afc1f729fc3be8bd468b9f1d33be1fd99476493a/wrapt-2.1.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:45914e8efbe4b9d5102fcf0e8e2e3258b83a5d5fba9f8f7b6d15681e9d29ffe0", size = 114507, upload-time = "2026-03-06T02:54:49.398Z" }, - { url = "https://files.pythonhosted.org/packages/0f/dd/5ce1332e824503fb7041a8f8b51ec1f06e7033834e38c01416fa1c599668/wrapt-2.1.2-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:478282ebd3795a089154fb16d3db360e103aa13d3b2ad30f8f6aac0d2207de0e", size = 110945, upload-time = "2026-03-06T02:54:32.088Z" }, - { url = "https://files.pythonhosted.org/packages/1b/17/d1c1d7b63a029205fe8add19db654fd105e2a92a3776c1312e74456ce3ab/wrapt-2.1.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3756219045f73fb28c5d7662778e4156fbd06cf823c4d2d4b19f97305e52819c", size = 113107, upload-time = "2026-03-06T02:54:05.226Z" }, - { url = "https://files.pythonhosted.org/packages/85/9f/aa5b1570ca36a0533ad5fc9d9e436047b9af187f9bd182f5eb6b718fe28b/wrapt-2.1.2-cp39-cp39-win32.whl", hash = "sha256:b8aefb4dbb18d904b96827435a763fa42fc1f08ea096a391710407a60983ced8", size = 57984, upload-time = "2026-03-06T02:53:10.07Z" }, - { url = "https://files.pythonhosted.org/packages/71/3a/a0c92e4c8b6cd8ef179c62249f03f5ce50c142f71fe04c2a14279bd826b4/wrapt-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:e5aeab8fe15c3dff75cfee94260dcd9cded012d4ff06add036c28fae7718593b", size = 60334, upload-time = "2026-03-06T02:53:34.183Z" }, - { url = "https://files.pythonhosted.org/packages/75/87/2725632aa7f1f70a9730952444e2ba856bd15ce8ee0210afcdb50f48ab69/wrapt-2.1.2-cp39-cp39-win_arm64.whl", hash = "sha256:f069e113743a21a3defac6677f000068ebb931639f789b5b226598e247a4c89e", size = 58759, upload-time = "2026-03-06T02:53:43.16Z" }, - { url = "https://files.pythonhosted.org/packages/1a/c7/8528ac2dfa2c1e6708f647df7ae144ead13f0a31146f43c7264b4942bf12/wrapt-2.1.2-py3-none-any.whl", hash = "sha256:b8fd6fa2b2c4e7621808f8c62e8317f4aae56e59721ad933bac5239d913cf0e8", size = 43993, upload-time = "2026-03-06T02:53:12.905Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/2b/b0/c1f5a970721f06b85c0cd5142e0ff8fe067708abd779b0c4f4be7d61d09f/wrapt-2.3.0.tar.gz", hash = "sha256:681a2d0eefd721998f90642762b8e75c2159ec531b20ad5e437245ea7b06a107", size = 131509, upload-time = "2026-07-28T06:06:14.895Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/31/5822ce37ca8820c2ed35a498c67c8b37960b9cee2ba437fd32849d0a234c/wrapt-2.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0bb2797048db0956348cb3058c33bc4184614f13231389cfbccc16a5d32780a7", size = 81191, upload-time = "2026-07-28T06:04:04.858Z" }, + { url = "https://files.pythonhosted.org/packages/7a/5a/3c6117938be98754578ab83f5a40d7d0ea2cd2c487dc5cd6027ee7228229/wrapt-2.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce9f398f868d2b3b27aa2ea4de79645ef9077aeeac8dfc2814b0d542c6a2b87f", size = 82255, upload-time = "2026-07-28T06:04:07.151Z" }, + { url = "https://files.pythonhosted.org/packages/a5/0f/94ae724c5087eb6054c0d63febd7094947dcf302fe058e2e0488102a872b/wrapt-2.3.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ad71df7a04dd3497e9302e81f4a7c91bd401ea0e15a9df9029527900f94bee43", size = 155228, upload-time = "2026-07-28T06:04:08.272Z" }, + { url = "https://files.pythonhosted.org/packages/6c/21/1f780bba935dcf697c0c59de9be3a559bbb8e31a53ca3f25422023738432/wrapt-2.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fc82c2ccc8e234c844f5303d9f2984b346dcdd53e94823ce8420d2c75b4b9023", size = 157073, upload-time = "2026-07-28T06:04:09.459Z" }, + { url = "https://files.pythonhosted.org/packages/73/31/6c7799d7b6431fcd7e1b83245fb45258a2d2c3a2187fbaecb83572a72d7a/wrapt-2.3.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a6e19531ae33c508cea7d84a7edfda01fa86e51b8d1a93a77712c55e6e469152", size = 151594, upload-time = "2026-07-28T06:04:10.784Z" }, + { url = "https://files.pythonhosted.org/packages/ce/17/42d670dbfafd49076c6eb2b7d67633d7e1c968e39bfb11a135acb6fac67b/wrapt-2.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:df4ce31150bcd5d9f36f816aac3010ab4f4bf8672ac1d3b0ac7d539ec61c7c02", size = 156069, upload-time = "2026-07-28T06:04:12.316Z" }, + { url = "https://files.pythonhosted.org/packages/1f/d6/c66b4ba4eda49257c84d5c2df26118280f09ca7905aee20d0064db778d13/wrapt-2.3.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:e2e692bc0d63f881cf7006730a56bd4e0c2fab5dc318466942805d692b166276", size = 150930, upload-time = "2026-07-28T06:04:13.482Z" }, + { url = "https://files.pythonhosted.org/packages/c0/f2/1a3b949c0322fb27396eafd1044328c1cb0400e0b32105d75a3cd03096e7/wrapt-2.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c8388ba7faf5dbf9ee106bb70d66f257629b1bd98091123e19e8a4553a319199", size = 154525, upload-time = "2026-07-28T06:04:14.698Z" }, + { url = "https://files.pythonhosted.org/packages/12/65/147563a3dfa6e830c857b93b530ebd8c0cd9d540e5914aec8f9b12880c02/wrapt-2.3.0-cp310-cp310-win32.whl", hash = "sha256:e045ff75d7d94900fc32896ed93c45ce2d2cac28c9dead582ff9a5a49d446e35", size = 77879, upload-time = "2026-07-28T06:04:16.102Z" }, + { url = "https://files.pythonhosted.org/packages/c4/eb/921405b4dc55d4f8be4c700ef120539fdd75d5fdb50d83bd257171ee18e0/wrapt-2.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:b4fc96b159af0a3e0faa72475a69d66292bea72a5bed1e1aca1bffbddc3cb2b0", size = 80733, upload-time = "2026-07-28T06:04:17.43Z" }, + { url = "https://files.pythonhosted.org/packages/b6/13/75947450c5bb57795fa86384721cd52c5c4deb0879022f309501a8a85d44/wrapt-2.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:1236fa25173ca964c97422470482e9011b9e3c7ed0d75798b40b3da3b0e0e760", size = 80199, upload-time = "2026-07-28T06:04:18.761Z" }, + { url = "https://files.pythonhosted.org/packages/00/b8/9182e4c618a847be0baccb68e4602b070d0fa22c782cf058f4bc66b32709/wrapt-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5ab559e1b2551d23d54db2a0001c6d73bad022a254639561c5f6c382a9d6c2fe", size = 81427, upload-time = "2026-07-28T06:04:20.106Z" }, + { url = "https://files.pythonhosted.org/packages/84/ca/613cefd9c5977366b1587e61c0b428176d382e6d75b454084c5e58503042/wrapt-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bff9a671bc00709cab5a7f745c592b5671873449db0ee2a569af994f16b29a4d", size = 82360, upload-time = "2026-07-28T06:04:21.613Z" }, + { url = "https://files.pythonhosted.org/packages/71/71/4cd2151a236f44a6e2dd4ed8011838d7ba0be3d656c8bafdfc65a2ed1917/wrapt-2.3.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fc648a335d7e01adb3640b25f02fd0ea05886cf04d0af7f4ee902bc7b5e466e8", size = 161700, upload-time = "2026-07-28T06:04:22.723Z" }, + { url = "https://files.pythonhosted.org/packages/49/2c/bc508fee75eb2919ed69769800b09968e4aab16897f909a23f39c81e323f/wrapt-2.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d0077f3d65541925fa83002f967b22ad6550d24813ac64cb905f717194128d9c", size = 162922, upload-time = "2026-07-28T06:04:24.177Z" }, + { url = "https://files.pythonhosted.org/packages/4d/e5/04f34d38e66d857dfc2fc4088d60e70c0e422467822defa49b2b4a26e17b/wrapt-2.3.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9790ea25190a4e0fe4cdf4eeb868e9d75f8a024a70a5b6bf9c348a3a2b72e731", size = 156125, upload-time = "2026-07-28T06:04:25.58Z" }, + { url = "https://files.pythonhosted.org/packages/23/41/c35940ea1c423f129ebe4361db853bc80d4def6326242e1206fa15bf94f4/wrapt-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:816877aa749253149f9ecfd2635d4d948ecfa338e1a0311d187b1acb1bb8a3eb", size = 162039, upload-time = "2026-07-28T06:04:27.154Z" }, + { url = "https://files.pythonhosted.org/packages/0e/60/9bda34c3d7d182aa703fe35339ae0ed4c4dad5e5c587f93890143e1f87fb/wrapt-2.3.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:3d1c2c1b808600d2ea808e6360910a60ed5f409a4011655e10f9164ba0a414a6", size = 155110, upload-time = "2026-07-28T06:04:28.497Z" }, + { url = "https://files.pythonhosted.org/packages/e8/ba/60bfd9b1a751f4fcb2d603668fc272d651ccdd339a56acf8c40ad21a0293/wrapt-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5ba1e5e08ddc46130e9682b2c249f2d1dd39bda9106ed4bd401b7519f18f41bd", size = 161089, upload-time = "2026-07-28T06:04:29.959Z" }, + { url = "https://files.pythonhosted.org/packages/0f/32/2bd358c6f4f1305c813479d1e9ba746bebdd794f4a20107ab2b3ee0cbd45/wrapt-2.3.0-cp311-cp311-win32.whl", hash = "sha256:45c9279b373d15649dfa2c2077cb3408ea1a6d3125afbdab9d6b809a66f68e14", size = 78030, upload-time = "2026-07-28T06:04:31.241Z" }, + { url = "https://files.pythonhosted.org/packages/4a/62/ecc969b13b141fef89b888c9760821cb01a86ac8fc953911592c8e1e1522/wrapt-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:195b1842b4122fb54e3cd3dd5b2b4aa49302a5a61da901df0481f5c97aedde84", size = 80944, upload-time = "2026-07-28T06:04:32.655Z" }, + { url = "https://files.pythonhosted.org/packages/c4/3d/9278ada8a2b3f24372b630361e84e9a7de7abc3784634860c26d1c37785a/wrapt-2.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:6db604ef0c67bdb2042ecdfd7b7f037cf09733557ca42360d1018285634f7b98", size = 80074, upload-time = "2026-07-28T06:04:33.811Z" }, + { url = "https://files.pythonhosted.org/packages/5b/4a/d17a0fad1bf1c5f2c887ff71fef75654141b0880bff71d157d955b5bec3a/wrapt-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0a45ffae742ce91a16e11cb6c7cd71e7f9994f3cbd283b962ab093f5c6dcf525", size = 82139, upload-time = "2026-07-28T06:04:35.082Z" }, + { url = "https://files.pythonhosted.org/packages/6e/55/51b92daaf6defb57f4dc56bdcce985400f75c6984a03ca5e78ccac717028/wrapt-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:69e477046f2237ef0bc6547544ee73008dc764ca26eff44f09e976d221b34d5d", size = 82723, upload-time = "2026-07-28T06:04:36.502Z" }, + { url = "https://files.pythonhosted.org/packages/28/7f/cfd9bc4b1f5e424eeea83d0493e43f3b1b02707ce8e50c47945873982bd5/wrapt-2.3.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5d221a6e6ddd302b8397433184e96b59f259f50024b854db1c411a881586b6b8", size = 172381, upload-time = "2026-07-28T06:04:37.674Z" }, + { url = "https://files.pythonhosted.org/packages/cb/89/ff7814f6eb6856b479946117d1138a2fbb46cdb6b1f379db359056c69743/wrapt-2.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:392158c9a7f2ab1b8699418bfc0fe6f83548788c418b27d7bf2019ad3405cebb", size = 174120, upload-time = "2026-07-28T06:04:38.987Z" }, + { url = "https://files.pythonhosted.org/packages/12/1e/8eded8615d39e3ce81f626937a3a87b280a2a86239a2bf14a4b4bb345034/wrapt-2.3.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e5301c35cf75655eb33498f2bd6ae8703ca19940e3167dc9cdf740c712a39c60", size = 163035, upload-time = "2026-07-28T06:04:40.361Z" }, + { url = "https://files.pythonhosted.org/packages/35/ea/a0af2d9da62897af2a055484920de05dade30d2ba2c0d65cbdea875d3d8b/wrapt-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:418f54bb09d1762db02c7009b4051149893af3153a87f92d70356703c11eea02", size = 171887, upload-time = "2026-07-28T06:04:41.614Z" }, + { url = "https://files.pythonhosted.org/packages/7e/dd/63cd4c864c65ef4906df64bd2d378f4a62b54f28063f282dfb3bf93caead/wrapt-2.3.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:1598becd30f8f2777d18564064eb4f4dbe1ab0e05a8f09786d0ef505ac782bf3", size = 161113, upload-time = "2026-07-28T06:04:42.864Z" }, + { url = "https://files.pythonhosted.org/packages/ca/ee/82f1fc9e431b5c2c5a6d201aa865dbeae3984c311c6d11a185f0c8367cf6/wrapt-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3da470536bf9645143323dd41b32db55c6f4304ad382094c1a1da8a92061e10d", size = 170530, upload-time = "2026-07-28T06:04:44.212Z" }, + { url = "https://files.pythonhosted.org/packages/37/a5/5dc590e863a419930d988f8b7ca3e75a6befcfb10b6003b3a152f3d5f732/wrapt-2.3.0-cp312-cp312-win32.whl", hash = "sha256:fb8e2e6704a1e0b1b989546c69e2688371ef4a07fa5f61bde3eb6211186f5ac1", size = 78323, upload-time = "2026-07-28T06:04:45.484Z" }, + { url = "https://files.pythonhosted.org/packages/51/f9/4a6925a07951df56394f7e6ebe14f69f1c5ef9d87aa63e0839acf15aa63a/wrapt-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:cdc021cb0b62471d6aac7f2bd92f3b4658073775f9ee7fcd325c511129e7bcc8", size = 81180, upload-time = "2026-07-28T06:04:47.021Z" }, + { url = "https://files.pythonhosted.org/packages/a8/4f/8b5de0395b2a72216751d41c9861df6facaeb611b619d8810ed2b3b23eb2/wrapt-2.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:67bfe2485f50368c3fcd2275fc1fd100e350d601e0058921a7c82678a465aeab", size = 80155, upload-time = "2026-07-28T06:04:48.373Z" }, + { url = "https://files.pythonhosted.org/packages/8e/6e/0f88a072483e76b881e3fdcd6b6ffb4a5791002514fe541e72b1b73c859a/wrapt-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0d3fb71e65b001adfc42684522eeccd9c21d8ba679945abc993439567b66e59f", size = 81960, upload-time = "2026-07-28T06:04:49.622Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ff/b7e2776e7c294075eb712cc9ef573d1b818f393006d09787262b8fc871c4/wrapt-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:51a7a4181c1295774812271fbcd7c909df372bc25579d4ed9eb875caaf0ae86f", size = 82435, upload-time = "2026-07-28T06:04:50.9Z" }, + { url = "https://files.pythonhosted.org/packages/d8/90/343bb5d0f1f9669bc252a6073f085b4abf862511bd5c9c9eaec754341f1d/wrapt-2.3.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9045917809c63fdf7abe3a2ceaed3d670b8ee4500ddd9291192d30aeb34467c5", size = 170350, upload-time = "2026-07-28T06:04:52.187Z" }, + { url = "https://files.pythonhosted.org/packages/59/f8/13b79a392930bd0dd6b86cbfbfe1c40944110456e1dc6d809e5c46ece904/wrapt-2.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:54ca1d5573f69b5fe1d74f1f65799c68015e82f685efec9fd8cfa40a094c44d0", size = 170022, upload-time = "2026-07-28T06:04:53.599Z" }, + { url = "https://files.pythonhosted.org/packages/b2/fc/4f1b6918f5290db959d6e0c07f77385d87cede29c39c9cf8f145e9c82954/wrapt-2.3.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:242b60c21e30866e6a2fa606c612b47c553fa60c0eaeeeb7797fb842ac0ce609", size = 161043, upload-time = "2026-07-28T06:04:54.936Z" }, + { url = "https://files.pythonhosted.org/packages/01/e1/45d3cf74414780bdff6d0380467e003f6eb0f028b6c9403db868dbc7209c/wrapt-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3f3d7ec0a51fbfe00d3aef047641ff2c58b25565b4717fc1f90e050be01cba8", size = 168576, upload-time = "2026-07-28T06:04:56.261Z" }, + { url = "https://files.pythonhosted.org/packages/f3/73/2fa58dd97f191c997755e2c6d569a68f0c433db4e4b36099bdd7227b6cac/wrapt-2.3.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:261f53870cd4fb2bf38f9f972c56c728fd224cb7c65721307de59d9e7e6741ae", size = 159140, upload-time = "2026-07-28T06:04:57.754Z" }, + { url = "https://files.pythonhosted.org/packages/29/a8/08a56e2000a8816d449dcbad8c8b081697acbbd490821ceca0f9d8e8d20c/wrapt-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8159ec0b0cb7608175eb150de94c19e34f4d47ac655f5ca9baf45df6b688ffd3", size = 169263, upload-time = "2026-07-28T06:04:59.161Z" }, + { url = "https://files.pythonhosted.org/packages/9e/d4/354e1725e35a73b2af4fa70a3e024c7a5d1bf1802dfb862dcb668aae0253/wrapt-2.3.0-cp313-cp313-win32.whl", hash = "sha256:10461884b3014fbfc8eb7d09a93c5f246363e6711d9d881f95eb8c27fdef049f", size = 78241, upload-time = "2026-07-28T06:05:00.507Z" }, + { url = "https://files.pythonhosted.org/packages/6c/7e/34c87fa2174848dfee820322aaa318bab08913998ccecc8d2f57b4ad4639/wrapt-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:ac870cc97b73bb00ac353329e9559a4bebc47c4c86792ed9b23b58c15b6ad838", size = 81113, upload-time = "2026-07-28T06:05:01.839Z" }, + { url = "https://files.pythonhosted.org/packages/11/86/fcc9a530579e008c9478bb565a6cdfbfd33536660f069c8b91a6607c5050/wrapt-2.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:a65e8db2b4e90c2e7ade931086351c98ef420bf7a94ee08c95ac8a3cbbc43579", size = 80182, upload-time = "2026-07-28T06:05:03.152Z" }, + { url = "https://files.pythonhosted.org/packages/96/50/3864848b95b28ef73e17551fc8dccbff2628a834f52cf26a57f9c419fb83/wrapt-2.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:fd1f2f557dd3491fe75905e578f4db967393d40d1a8f468edc4d40ac7f2d5944", size = 83921, upload-time = "2026-07-28T06:05:04.476Z" }, + { url = "https://files.pythonhosted.org/packages/3b/4c/3d1921a60c3e8c71c540ff136e6a47a1fbccf7f671e818394889f7871d9c/wrapt-2.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9f5d2aec29dfc76c37e23897dee92766a3fd4f3bff3ae7fc9c6b4bf37d8c1360", size = 84412, upload-time = "2026-07-28T06:05:05.921Z" }, + { url = "https://files.pythonhosted.org/packages/fa/1a/4a796ff7adb26ada6d4b758c94d47a38320b085e7099afc088efbbcdb006/wrapt-2.3.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:646d20d413ffcd1b0a2f700076e2d0252d872dcb7754860a73e45a59ea883614", size = 207168, upload-time = "2026-07-28T06:05:07.256Z" }, + { url = "https://files.pythonhosted.org/packages/1d/3e/d7777776806c579b761bac2f91721dda9f04c7a1b380213c5935cc750ae6/wrapt-2.3.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:379f670f45b7bb8993edd9f6fc36c6cc65edb81cffa0b504be34acb0303fff0a", size = 214351, upload-time = "2026-07-28T06:05:08.945Z" }, + { url = "https://files.pythonhosted.org/packages/63/27/2d64d394df7bf181955b3bb562bf33c4492fb4be113f53071106d43ad8b5/wrapt-2.3.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6208f302f110295d64b22a7ac96500c791bf492dce4366e622e4912b077c9687", size = 199020, upload-time = "2026-07-28T06:05:10.418Z" }, + { url = "https://files.pythonhosted.org/packages/3e/3d/fb31d3db7d9834d265fb1a27a2adf0ddf51557c67458c97b22439ad6ae3d/wrapt-2.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ed635a9ca4f3a5a2b900c10c69e823373bc00ebc114b459383596d3487da3570", size = 209969, upload-time = "2026-07-28T06:05:11.983Z" }, + { url = "https://files.pythonhosted.org/packages/1f/d1/8724b5da582e62070dc9bf4d8bf1972f317297eefd7ba1f2b5c6393ccf6c/wrapt-2.3.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:e3b9eaa742ae7a0aaaaad4ca4b69469d757af2d6e6663ef1dadc47adec0aeb41", size = 196324, upload-time = "2026-07-28T06:05:13.557Z" }, + { url = "https://files.pythonhosted.org/packages/0d/5c/3d9ef411149543016ee6bcf3af707f787cebd946527452b94bf122e9b7b4/wrapt-2.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d0f7284f88f4833705132d06d3b425a43095c2cbd07c58166aac3ab646ba12a4", size = 202610, upload-time = "2026-07-28T06:05:15.048Z" }, + { url = "https://files.pythonhosted.org/packages/13/9b/4fc042ceb757866dd4a5fc057b3b736f2b360d3703ce9f830d83dc9226e0/wrapt-2.3.0-cp313-cp313t-win32.whl", hash = "sha256:7ebb274aba688b043429eb1500ff8a76ce0cb8ac0812ca3e301f06247b8722b3", size = 79178, upload-time = "2026-07-28T06:05:16.469Z" }, + { url = "https://files.pythonhosted.org/packages/6b/ff/b94878f8eed809ca042685276bcea9f24e8c2ca7c9653bb80bbb920a68a5/wrapt-2.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:c4bded758ad6f03b965830944a2f0bc5b2eb3767fe5a7310134315d1a6610e98", size = 82634, upload-time = "2026-07-28T06:05:18.026Z" }, + { url = "https://files.pythonhosted.org/packages/80/fb/663e1de5332a71685a729754312d327d4cada767c36e1c5a2db4c8de49e6/wrapt-2.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:d2cc64539da63e39ffb9c7ede849b6e8ddaaf7b3876b5cfb04efd85a5f3f4eb6", size = 81387, upload-time = "2026-07-28T06:05:19.417Z" }, + { url = "https://files.pythonhosted.org/packages/58/10/b073beaea89bc0d3670a75ff51139430a54b6af7ba7796507730634536dd/wrapt-2.3.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:ea52a0d0f08c584943d5764be0e84efa912c8da23c23e1e285ff2f5641c18fcc", size = 81978, upload-time = "2026-07-28T06:05:21.133Z" }, + { url = "https://files.pythonhosted.org/packages/b3/31/0916d9cebf848ed3f1a0c1888faee421747df77331e4db2bc527a9a85988/wrapt-2.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:fd85b0aa88efdb189d6ae2f35f4526943a8f091c38599c9c31478241c819e6a1", size = 82518, upload-time = "2026-07-28T06:05:22.562Z" }, + { url = "https://files.pythonhosted.org/packages/f5/73/31c1bf0f3384062751c2094dadb314916d70aa9b6bfd26d994b4a7b393fa/wrapt-2.3.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:141ed6211286a9660d8d6702de598b43f0934b4f0eda16393f100a80f501d945", size = 170187, upload-time = "2026-07-28T06:05:23.904Z" }, + { url = "https://files.pythonhosted.org/packages/ed/25/fce087d54b79b8905f3c3c9dd5f454bbd8d8acb80b960c4a6aee5b4659b3/wrapt-2.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2e49885a62ec4ee854d1b9e6371fda6afd219917225752abf729a3f36d4df9a5", size = 169288, upload-time = "2026-07-28T06:05:25.378Z" }, + { url = "https://files.pythonhosted.org/packages/c7/30/0d09e6dddc6b7a7230ac77f50254b5980ab4fcd22976f72f8cc8a0404458/wrapt-2.3.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1d6159c9b2fefec02314e1332dbbbfaf960e369dfd26bcf7f8b258b5732065b3", size = 160932, upload-time = "2026-07-28T06:05:27.022Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ca/0913af0d2ec0c43865d32d615f518fea66c13c5c930e489e9b0de248e9a8/wrapt-2.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:24da48596326ef8e448cfa837b454f638713d3531262375f00e5a9681682fc07", size = 169017, upload-time = "2026-07-28T06:05:28.501Z" }, + { url = "https://files.pythonhosted.org/packages/c3/f2/3d1e47ea81b822210f5df1bf942fd90780a75c055243d569b664529dea88/wrapt-2.3.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:cd3a2edf0427013736b8127955cec62608c56e53ea47e82812ea32059cda407f", size = 159065, upload-time = "2026-07-28T06:05:30.01Z" }, + { url = "https://files.pythonhosted.org/packages/43/a5/ef2066ced8e5fca204e2b361e9708e36555b40949c583d997ea3b590817d/wrapt-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4fa0df3bff4e7ce45759f33fd39335fe2f60477bb9ecf7b8aa41e7d07ee36a23", size = 168821, upload-time = "2026-07-28T06:05:31.649Z" }, + { url = "https://files.pythonhosted.org/packages/d5/e1/016104650d4e572fa91506eb396b3dd8efbccc9284fdc1c9479c3d21db28/wrapt-2.3.0-cp314-cp314-win32.whl", hash = "sha256:2935d5454b3f179a29b12cf390ee47246740ba2c3a7545b1b46ba31a5f2a4a0b", size = 78700, upload-time = "2026-07-28T06:05:33.391Z" }, + { url = "https://files.pythonhosted.org/packages/3d/97/6fdc20a9f2ca304748b3f0819cbf377d55260562777bf0b615431bc3c181/wrapt-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:cc2cea812e5cb179a796b766747e7d3b21088760d8deb95676d482b8c8e6fa7d", size = 81422, upload-time = "2026-07-28T06:05:34.774Z" }, + { url = "https://files.pythonhosted.org/packages/5e/a4/9cbd53bf05746bea2c392af39cb052427a8ec95cbd494d930733d8f44681/wrapt-2.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:22cc5c0a717bd4da87018ae0bffd4c19c6fb679d3ff357216ba566ab26c76cab", size = 80639, upload-time = "2026-07-28T06:05:36.228Z" }, + { url = "https://files.pythonhosted.org/packages/43/bb/6c5e4a0f66ea0d2b2dd267e8dd05a0014eea56840b3c8595d40b0a5d1f91/wrapt-2.3.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:a6b5984cd65dd639546f0eb4b8eacf1c31cb2fe9fb5c27bffe240987cdb2cf84", size = 84030, upload-time = "2026-07-28T06:05:37.714Z" }, + { url = "https://files.pythonhosted.org/packages/6a/eb/a1aedf03283bc9cbf8a1783995ddc54e3c5a86878f19002d2c428494f4c5/wrapt-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c88abcf53daef80e01a75c7530e727fa6e2c1888fe83e3dcdba4c96216a1f5c7", size = 84419, upload-time = "2026-07-28T06:05:39.131Z" }, + { url = "https://files.pythonhosted.org/packages/63/61/50d511c0dc5105563849e86daa3e16ac7feef699f79fb05af45ea70107d5/wrapt-2.3.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:85de890ff968196e92dd1ae73a9fb8970495e7650a457b1c9ef0ac3dd550bce2", size = 207171, upload-time = "2026-07-28T06:05:40.69Z" }, + { url = "https://files.pythonhosted.org/packages/3f/59/9b538cf7795217e810699d16bc88b96a830d9b5c403eb2ec2db6b5f2ae81/wrapt-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50f416b74d092bb9f41b424e90dd457f365f7ba4b11de62a23679769a21bd85c", size = 214329, upload-time = "2026-07-28T06:05:42.287Z" }, + { url = "https://files.pythonhosted.org/packages/b3/28/9935d62b1499e5c8b3d191e99ba4eb31ca237a0b699142011a837e9dc7ea/wrapt-2.3.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:39febbee6d77301d31da6996b152ce52452da7c7ef72aba10c2fa976dff9c295", size = 199079, upload-time = "2026-07-28T06:05:43.958Z" }, + { url = "https://files.pythonhosted.org/packages/2b/01/4446b80fa2ffa47a3449b250d004ba1c1937f07f64a179608fec735df866/wrapt-2.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:93513bec052c6cd987f9f580c3df068c8bc4ebae6543736be3ca7ec5959cafcd", size = 209992, upload-time = "2026-07-28T06:05:45.677Z" }, + { url = "https://files.pythonhosted.org/packages/d4/07/56f26c9f9979586a021e8148747004aba4498f49458c90b0502969b904e1/wrapt-2.3.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:729126e667da34d251b8ebf8a45ef0c5ddadc21542b3d6e1abf4259ece6508df", size = 196334, upload-time = "2026-07-28T06:05:47.608Z" }, + { url = "https://files.pythonhosted.org/packages/8b/41/6d7bcc895b0f28b2250e10908f060687b9165429dcd7f22ddb3d4c031b74/wrapt-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:626b69db2021aa01671ec7bbc9740e558522bd44c18cf2ce69bf3d666a014109", size = 202644, upload-time = "2026-07-28T06:05:49.183Z" }, + { url = "https://files.pythonhosted.org/packages/cd/25/7860927edba06b758b8852a6f02e832be715563c67a6795d94350bc81099/wrapt-2.3.0-cp314-cp314t-win32.whl", hash = "sha256:629d73378082c00a8173031f9fb30a3ac6abbc894a5bfdfae71fabc60642d501", size = 79685, upload-time = "2026-07-28T06:05:50.976Z" }, + { url = "https://files.pythonhosted.org/packages/c4/0f/270bafe92fde3b069a39bc01e39ee79340895b335640df861d43d2a51885/wrapt-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:42869085687f0aefd57c0f636c3f9354f8ffb321a8ba9cb52d19beb796e561c5", size = 83104, upload-time = "2026-07-28T06:05:52.405Z" }, + { url = "https://files.pythonhosted.org/packages/55/b3/af176d79a8515a8a720eccdad9a96f6e31a30abf2865430c8c42adf2fd13/wrapt-2.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:b1e5aa486e269b00ed35e64771c7d0ab8096cfd2643405ca8cd60ebedc099a51", size = 81774, upload-time = "2026-07-28T06:05:53.902Z" }, + { url = "https://files.pythonhosted.org/packages/40/99/b44e9dc20c8d768ffe65174bfebde1412068fc1638aac436eccf1e7a603a/wrapt-2.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c3b476ae63b4a3b4da681aafcb25ff3542d289fbda8b5da7caf76aaffafafdbb", size = 81227, upload-time = "2026-07-28T06:05:55.438Z" }, + { url = "https://files.pythonhosted.org/packages/7e/cb/1e1bbdb39ea166b4b2568c5eec3d82f59cddecf1ed57e5c4a1ed54692107/wrapt-2.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:932dced0a7b2950ed58a3325536a1dcb7b58e7330af54e8552d2e566b5328b99", size = 82284, upload-time = "2026-07-28T06:05:56.879Z" }, + { url = "https://files.pythonhosted.org/packages/54/0a/935b037716e02376415dbc9fe95e523c64111c223a0de4dc2e12c1e1ee20/wrapt-2.3.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0db083387d6e75ec0be8173ecbf0e811cf60bae1cc75a815feb104167ea10d4d", size = 154975, upload-time = "2026-07-28T06:05:58.369Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ed/6222b5e4ab73a0185d77e3490dbdd372dc1cd961acbcdc62b0bc345a8d2c/wrapt-2.3.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:abc71504669d126d91f89fc0e388c6295d8fbd2439be884f175133fda8aa403c", size = 157056, upload-time = "2026-07-28T06:06:00.038Z" }, + { url = "https://files.pythonhosted.org/packages/20/f8/eac651ecc80db2c7ac697111411de05fd4d4f9eea557d32b9bb11e1ada5c/wrapt-2.3.0-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b767a9566f165dd14decf8f4194c6bb0ce3a8420cec213824e05a99400c9260a", size = 151513, upload-time = "2026-07-28T06:06:01.808Z" }, + { url = "https://files.pythonhosted.org/packages/e1/32/ed810ea37c2b4b9948bf23def5954a1848d98021602dd7220db3f8ee1a58/wrapt-2.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:73d0b10b64620a2cf4bc3d31775c4d9527e309a5549e4379e3bf71e8d2dc193e", size = 156054, upload-time = "2026-07-28T06:06:03.467Z" }, + { url = "https://files.pythonhosted.org/packages/7f/8e/facfaa9b2d4eda4f14fb5f88fc493947d1513cec28538613082e1663037d/wrapt-2.3.0-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:e31734c5077f29f892b2565eee5106d610278151ad49fc6a9d69a647cd5730e2", size = 150821, upload-time = "2026-07-28T06:06:05.152Z" }, + { url = "https://files.pythonhosted.org/packages/5a/7e/14f4b6f2d9a89186f35f04dd1ec6aad41ffa439dac16c88fc41f3756b9a6/wrapt-2.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:628f3ba8ec793a5b10a6cd8c6c6b7b55eb552abd1f3bd301336acb74c7a82dfe", size = 154303, upload-time = "2026-07-28T06:06:06.808Z" }, + { url = "https://files.pythonhosted.org/packages/4b/90/e25fd18051bc83a1f7c62edd184a262a3f593716126619ebbc79de801e6a/wrapt-2.3.0-cp39-cp39-win32.whl", hash = "sha256:3873c3c5ca9f4ef91f693602eca19d1f1e7c410338df82a4ff11d826b5896a8f", size = 77908, upload-time = "2026-07-28T06:06:08.384Z" }, + { url = "https://files.pythonhosted.org/packages/eb/2c/40f523565f1aed94d0030f4f99f481adc5b5620ee8600bfcd46effb49a79/wrapt-2.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:8f8a1c6472675956cece9a8f403f43c3594f1681319eed2dd56f60877397c636", size = 80796, upload-time = "2026-07-28T06:06:09.906Z" }, + { url = "https://files.pythonhosted.org/packages/3f/91/a86501de81265751a42b3c3f977e6c88d580936dd180e3298e2bd813e0d4/wrapt-2.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:c8858d8ff9822a081e3cc49ae1b3b22f0f789c14001cdac8f94564010d9c9d66", size = 80227, upload-time = "2026-07-28T06:06:11.413Z" }, + { url = "https://files.pythonhosted.org/packages/00/39/3daf9f47be208606586de4568ba6713db53ebc8fd7a575aea1fe57983b69/wrapt-2.3.0-py3-none-any.whl", hash = "sha256:d8c7ed08477429752b8c44991f40ad7838b18332a160698740a6bfbc10d998a2", size = 61866, upload-time = "2026-07-28T06:06:12.9Z" }, ] [[package]] @@ -2739,12 +2915,12 @@ wheels = [ [[package]] name = "zipp" -version = "3.23.0" +version = "3.23.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version == '3.9.*'", ] -sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" } +sdist = { url = "https://files.pythonhosted.org/packages/30/21/093488dfc7cc8964ded15ab726fad40f25fd3d788fd741cc1c5a17d78ee8/zipp-3.23.1.tar.gz", hash = "sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110", size = 25965, upload-time = "2026-04-13T23:21:46.6Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" }, + { url = "https://files.pythonhosted.org/packages/08/8a/0861bec20485572fbddf3dfba2910e38fe249796cb73ecdeb74e07eeb8d3/zipp-3.23.1-py3-none-any.whl", hash = "sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc", size = 10378, upload-time = "2026-04-13T23:21:45.386Z" }, ] From 1919d22860df0b48ea579c00f5a4fe5165471689 Mon Sep 17 00:00:00 2001 From: krypton-byte Date: Sat, 22 Aug 2026 18:53:41 +0000 Subject: [PATCH 10/24] feat: update proto, config_json, split README, add examples - Regenerate Python protobuf bindings from submodule proto (2.3000.1045368834) - Rename connect_string -> config_json in FfiStoreProtocol (Rust + .pyi + docs) - Update pyproject.toml protobuf version constraint to >=5.28.3,<7 - Clean up stale SIMD comments in Cargo.toml (feature removed upstream) - Split README.md into English (README.md), Chinese (README.zh.md), and Indonesian (README.id.md) - Add structured examples: basic_bot.py, media_bot.py, group_bot.py Co-Authored-By: Codebuff --- Cargo.toml | 5 +- README.id.md | 248 + README.md | 688 +- README.zh.md | 248 + docs/api/backend.md | 8 +- docs/core-concepts/storage-backends.md | 6 +- examples/basic_bot.py | 102 + examples/group_bot.py | 167 + examples/media_bot.py | 159 + pyproject.toml | 3 +- python/tryx/backend.pyi | 10 +- python/tryx/waproto/whatsapp_pb2.py | 3604 +++-- python/tryx/waproto/whatsapp_pb2.pyi | 18634 ++++++++++++++--------- src/clients/tryx.rs | 2 +- uv.lock | 458 + waproto/whatsapp.proto | 2313 ++- 16 files changed, 17028 insertions(+), 9627 deletions(-) create mode 100644 README.id.md create mode 100644 README.zh.md create mode 100644 examples/basic_bot.py create mode 100644 examples/group_bot.py create mode 100644 examples/media_bot.py diff --git a/Cargo.toml b/Cargo.toml index 49c40da..54781ab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,8 +11,6 @@ crate-type = ["cdylib"] [dependencies] pyo3 = { version = "0.28.0", features = ["extension-module", "abi3-py38"] } -# NOTE: intentionally no `simd` feature — it turns on `#![feature(portable_simd)]` -# in wacore-binary, which is nightly-only and breaks stable builds (CI + sdist). # NOTE: `voip` is excluded from the hardcoded feature set; it is controlled by # crate-level features below so CI can toggle voip-libopus per target. whatsapp-rust = { path = "libs/whatsapp-rust", default-features = false, features = ["sqlite-storage", "tokio-transport", "tokio-runtime", "ureq-client", "tokio-native", "signal"] } @@ -40,8 +38,7 @@ async-channel = "2.5" # the PyO3 player and receives lifecycle results. symphonia = { version = "0.5.4", default-features = false, features = ["mp3", "wav", "ogg", "vorbis", "pcm"] } serde = { version = "1", features = ["derive"] } -# default-features = false disables wacore-appstate's default `simd` feature, -# which would otherwise pull in nightly-only portable_simd via wacore-binary. +# default-features = false avoids pulling unnecessary default features. wacore-appstate = { path = "libs/whatsapp-rust/wacore/appstate", default-features = false } # ── Feature flags ────────────────────────────────────────────────────── diff --git a/README.id.md b/README.id.md new file mode 100644 index 0000000..e923495 --- /dev/null +++ b/README.id.md @@ -0,0 +1,248 @@ +# Tryx + +[![PyPI version](https://img.shields.io/pypi/v/tryx?color=blue)](https://pypi.org/project/tryx/) +[![Python](https://img.shields.io/pypi/pyversions/tryx.svg)](https://pypi.org/project/tryx/) +[![License](https://img.shields.io/github/license/krypton-byte/tryx)](LICENSE) +[![Docs](https://img.shields.io/badge/docs-online-brightgreen)](https://krypton-byte.github.io/tryx/) + +**Bahasa:** [English](README.md) | [简体中文](README.zh.md) | Bahasa Indonesia + +Tryx adalah library otomasi WhatsApp untuk Python yang dibangun dengan Rust dan PyO3. API publiknya dibuat agar nyaman digunakan dari Python, dengan dukungan async, sesi persisten, dan akses ke fitur protokol WhatsApp Web tingkat lanjut. + +> Tryx adalah proyek independen. Tidak berafiliasi dengan WhatsApp, Meta, atau produk resmi mereka. + +## Apa Itu Tryx? + +Tryx membantu pengembang Python membangun tools otomasi WhatsApp tanpa harus menulis Rust secara langsung. Logika protokol berjalan di Rust untuk performa, sedangkan API publiknya tetap nyaman untuk aplikasi Python. + +Tryx cocok untuk: + +- Otomasi WhatsApp Web dari Python. +- Sesi login persisten dengan SQLite, PostgreSQL, atau MySQL. +- API async untuk bot, worker, dashboard, dan tool internal. +- Akses ke kontak, grup, newsletter, status, privasi, profil, label, komentar, event, dan helper protokol tingkat lanjut. + +## Fitur Utama + +- **Core Rust, API Python** — logika protokol diimplementasikan dalam Rust dan diekspos melalui PyO3. +- **Async first** — dirancang untuk aplikasi `asyncio`. +- **Sesi persisten** — sesi perangkat dapat digunakan ulang melalui database. +- **API luas** — namespace umum dan advanced sudah diexpose. +- **Type stub Python** — tersedia `.pyi` untuk autocomplete dan type checking yang lebih baik. + +## Instalasi + +```bash +pip install tryx +``` + +Untuk development lokal: + +```bash +git clone https://github.com/krypton-byte/tryx.git +cd tryx +git submodule update --init --recursive +uv sync --group dev +uv run maturin develop +``` + +## Mulai Cepat + +```python +import asyncio + +from tryx.backend import SqliteStore +from tryx.client import Tryx, TryxClient +from tryx.events import EvMessage, EvPairingQrCode + +backend = SqliteStore("whatsapp.db") +app = Tryx(backend) + + +@app.on(EvPairingQrCode) +async def on_pairing_qr(_client: TryxClient, event: EvPairingQrCode) -> None: + print("Scan kode QR ini dengan WhatsApp:") + print(event.code) + + +@app.on(EvMessage) +async def on_message(client: TryxClient, event: EvMessage) -> None: + text = (event.data.get_text() or "").strip() + if text.lower() == "ping": + await client.send_text( + event.data.message_info.source.chat, "pong", quoted=event + ) + + +async def main() -> None: + await app.run() + + +asyncio.run(main()) +``` + +## Namespace Client + +Objek runtime `TryxClient` dibagi menjadi beberapa namespace agar API lebih rapi: + +| Namespace | Fungsi | +| --- | --- | +| `contact` | Helper untuk kontak dan pencarian kontak. | +| `chat_actions` | Operasi chat seperti mute, archive, pin, mark read, clear chat, dan save contact. | +| `groups` | Pembuatan grup, metadata, member, invite, request membership, dan pengaturan admin. | +| `community` | Operasi terkait komunitas. | +| `newsletter` | Info newsletter, pesan, mute, edit, dan revoke. | +| `status` | Posting status, lookup status, dan helper terkait status. | +| `chatstate` | State chat seperti typing, recording, dan paused. | +| `blocking` | Block dan unblock kontak. | +| `polls` | Membuat poll dan mengirim vote. | +| `presence` | Subscribe presence dan update availability. | +| `privacy` | Pengaturan privasi. | +| `profile` | Nama profil, status teks, dan foto profil. | +| `labels` | Manajemen label untuk chat dan pesan. | +| `comments` | Helper protokol terkait komentar. | +| `events` | Helper response dan operasi berbasis event. | +| `advanced` | Wait lifecycle, diagnostik, dan akses protokol tingkat lanjut. | +| `voip` | Manajemen panggilan audio dan video. | + +## Storage Backend + +Tryx mendukung tiga tipe storage untuk menyimpan sesi WhatsApp: + +| Tipe | Backend | Kegunaan | +| --- | --- | --- | +| Built-in | `SqliteStore("whatsapp.db")` | Development lokal dan deployment sederhana. | +| Native FFI | `FfiStoreProtocol` | Store eksternal throughput tinggi seperti PostgreSQL. | +| Pure Python | subclass `StoreBase` | Store async custom seperti Redis, MongoDB, atau DynamoDB. | + +SQLite cukup untuk development lokal. Native FFI atau backend Python custom lebih cocok jika sesi perlu dipakai bersama oleh beberapa worker atau environment deployment. + +## VoIP: Panggilan Audio dan Video + +Tryx menyediakan bridge VoIP berbasis Rust untuk panggilan audio dan video WhatsApp. Protocol, RTP/WebRTC, enkripsi, codec, dan orkestrasi call berjalan di whatsapp-rust; Python menyediakan media melalui adapter source dan sink asynchronous. + +### Kontrak Media + +| Media | Kontrak | +| --- | --- | +| Audio | Mono signed PCM16 little-endian, 16.000 Hz, 960 sample / 1.920 byte per frame, 60 ms | +| Video | H.264 Annex-B access unit melalui `VideoFrame` | + +### Adapter Audio Minimal + +```python +from collections.abc import AsyncIterator +from tryx.media import AudioSink, AudioSource, validate_audio_frame + + +class Microphone(AudioSource): + async def frames(self) -> AsyncIterator[bytes]: + while True: + frame = await read_microphone_frame() + yield validate_audio_frame(frame) + + +class Speaker(AudioSink): + async def write(self, frame: bytes) -> None: + validate_audio_frame(frame) + await play_speaker_frame(frame) +``` + +### Panggilan Audio 1:1 + +```python +from tryx.types import JID + + +async def start_audio_call(client, phone_number: str): + peer = JID(phone_number + "@s.whatsapp.net") + call = await client.voip.call(peer, Microphone(), Speaker()) + print("panggilan dimulai:", call.call_id) + call.set_muted(True) + call.set_muted(False) + await call.wait_ended() +``` + +### Panggilan Video + +```python +from tryx.media import VideoPlayer + + +async def start_video_call(client, peer, video_sink): + video_source = VideoPlayer(fps=15) + video_source.play("sample.mp4") + call = await client.voip.video_call( + peer, Microphone(), Speaker(), video_source, video_sink + ) + await call.wait_ended() + video_source.stop() +``` + +### Group Call dan Call Link + +```python +call = await client.voip.group_call( + peers=[peer_a, peer_b], + audio_source=Microphone(), + audio_sink=Speaker(), +) +await call.invite_participant(peer_c) +await call.ring_participant(peer_c) + +linked = await client.voip.join_call_link( + "https://call.whatsapp.com/your-token", + "audio", + Microphone(), + Speaker(), +) +``` + +### AudioPlayer Native + +```python +from tryx.media import AudioPlayer + +player = AudioPlayer(buffer_frames=3) +player.play("intro.mp3", mode="replace") +call = await client.voip.call(peer, player, Speaker()) +player.pause() +player.resume() +player.enqueue("next.wav") +player.skip() +player.clear_queue() +player.stop() +``` + +## Development + +```bash +cargo check +cargo test --lib +uv run pytest -q +uv run maturin develop +uv run maturin build --release +``` + +## Struktur Project + +```text +. +├── libs/whatsapp-rust/ # Submodule crate protokol Rust +├── src/ # Binding Rust dan PyO3 +├── python/tryx/ # Package Python dan type stub +├── examples/ # Contoh script otomasi +├── docs/ # Situs dokumentasi +└── tests/ # Test suite Python +``` + +## Link Penting + +- Dokumentasi: +- Contoh: [`examples/`](examples/) +- Type stub Python: [`python/tryx/`](python/tryx/) +- Binding Rust: [`src/`](src/) + +## Lisensi + +Proyek ini dilisensikan di bawah [MIT License](LICENSE). diff --git a/README.md b/README.md index e7f2fcb..95a24c2 100644 --- a/README.md +++ b/README.md @@ -3,19 +3,15 @@ [![PyPI version](https://img.shields.io/pypi/v/tryx?color=blue)](https://pypi.org/project/tryx/) [![Python](https://img.shields.io/pypi/pyversions/tryx.svg)](https://pypi.org/project/tryx/) [![License](https://img.shields.io/github/license/krypton-byte/tryx)](LICENSE) -[![Docs](https://img.shields.io/badge/docs-online-brightgreen)](http://krypton-byte.tech/tryx/) +[![Docs](https://img.shields.io/badge/docs-online-brightgreen)](https://krypton-byte.github.io/tryx/) -**Language:** [English](#english) | [简体中文](#简体中文) | [Bahasa Indonesia](#bahasa-indonesia) +**Language:** English | [简体中文](README.zh.md) | [Bahasa Indonesia](README.id.md) Tryx is a Python automation library powered by Rust and PyO3. It provides a Python-friendly API on top of the `whatsapp-rust` crate, with async support, persistent sessions, and access to advanced WhatsApp Web protocol features. > Tryx is an independent project. It is not affiliated with WhatsApp, Meta, or their official products. ---- - -## English - -### What Is Tryx? +## What Is Tryx? Tryx helps Python developers build WhatsApp automation tools without writing Rust directly. The core protocol logic runs in Rust for performance, while the public interface stays ergonomic for Python applications. @@ -26,15 +22,15 @@ Use Tryx when you need: - Async APIs for bots, workers, dashboards, and internal tools. - Access to contacts, groups, newsletters, status, privacy, profile, labels, comments, events, and lower-level protocol helpers. -### Highlights +## Highlights -- **Rust core, Python API** - protocol logic is implemented in Rust and exposed through PyO3. -- **Async first** - designed for `asyncio` applications. -- **Persistent sessions** - reuse device sessions through a database-backed store. -- **Broad API surface** - exposes common and advanced client namespaces. -- **Typed Python stubs** - includes `.pyi` files for better editor support. +- **Rust core, Python API** — protocol logic is implemented in Rust and exposed through PyO3. +- **Async first** — designed for `asyncio` applications. +- **Persistent sessions** — reuse device sessions through a database-backed store. +- **Broad API surface** — exposes common and advanced client namespaces. +- **Typed Python stubs** — includes `.pyi` files for better editor support. -### Installation +## Installation ```bash pip install tryx @@ -50,7 +46,7 @@ uv sync --group dev uv run maturin develop ``` -### Quick Start +## Quick Start ```python import asyncio @@ -85,7 +81,7 @@ async def main() -> None: asyncio.run(main()) ``` -### Runtime Client Namespaces +## Client Namespaces The runtime `TryxClient` object exposes several namespaces so the API stays organized: @@ -107,8 +103,9 @@ The runtime `TryxClient` object exposes several namespaces so the API stays orga | `comments` | Comment-related protocol helpers. | | `events` | Event response helpers and event-oriented operations. | | `advanced` | Lifecycle waits, diagnostics, and lower-level protocol escape hatches. | +| `voip` | Audio and video call management. | -### Storage Backends +## Storage Backends Tryx supports three storage tiers: @@ -120,31 +117,18 @@ Tryx supports three storage tiers: SQLite is usually enough for local development. Native FFI or a custom Python backend is better when several workers or deployment environments need shared session state. -### VoIP: Audio and Video Calls - -Tryx provides a Rust-backed bridge for WhatsApp audio and video calls. After the client is connected, use client.voip. Protocol handling, RTP/WebRTC, encryption, codecs, and call orchestration run in whatsapp-rust; Python supplies media through asynchronous source and sink adapters. +## VoIP: Audio and Video Calls -#### Features +Tryx provides a Rust-backed bridge for WhatsApp audio and video calls. Protocol handling, RTP/WebRTC, encryption, codecs, and call orchestration run in whatsapp-rust; Python supplies media through asynchronous source and sink adapters. -- One-to-one audio calls through voip.call(). -- One-to-one video calls through voip.video_call(). -- Group calls with optional video through voip.group_call(). -- Call-link joining through voip.join_call_link() with audio or video media. -- Hangup, wait, mute/unmute, video, participant, approval, and screen-sharing controls. -- Native Rust playback for WAV, MP3, OGG, Vorbis, and PCM audio files. -- Native FFmpeg playback producing H.264 Annex-B video access units. -- Python adapters for microphones, speakers, cameras, codecs, TTS, DSP, and custom pipelines. +### Media Contract -#### Media Contract - -| Media | Kontrak | +| Media | Contract | | --- | --- | | Audio | Mono signed PCM16 little-endian, 16,000 Hz, 960 samples / 1,920 bytes per frame, 60 ms | -| Video | H.264 Annex-B access unit represented by VideoFrame | - -AudioSource.frames() must yield exactly 1,920 bytes per frame. AudioSink.write() receives the same format. VideoFrame carries data, timestamp_us, duration_us, keyframe, optional dimensions, and orientation. +| Video | H.264 Annex-B access unit represented by `VideoFrame` | -#### Minimal Audio Adapters +### Minimal Audio Adapters ```python from collections.abc import AsyncIterator @@ -164,9 +148,7 @@ class Speaker(AudioSink): await play_speaker_frame(frame) ``` -Replace the two backend functions with PyAudio, sounddevice, ALSA, CoreAudio, or another device library. - -#### One-to-One Audio Call +### One-to-One Audio Call ```python from tryx.types import JID @@ -180,9 +162,9 @@ async def start_audio_call(client, phone_number: str): call.set_muted(False) await call.wait_ended() ``` -Use await call.hangup() to end a call explicitly. Keep the CallHandle alive and await wait_ended() for deterministic cleanup. -#### Video Call +### Video Call + ```python from tryx.media import VideoPlayer @@ -196,9 +178,9 @@ async def start_video_call(client, peer, video_sink): await call.wait_ended() video_source.stop() ``` -VideoPlayer accepts 1–60 FPS and defaults to 15. FFmpeg must be in PATH; missing files and missing FFmpeg produce explicit errors. -#### Group Calls and Call Links +### Group Calls and Call Links + ```python call = await client.voip.group_call( peers=[peer_a, peer_b], @@ -207,7 +189,7 @@ call = await client.voip.group_call( ) await call.invite_participant(peer_c) await call.ring_participant(peer_c) -await call.set_approval_required(True) + linked = await client.voip.join_call_link( "https://call.whatsapp.com/your-token", "audio", @@ -215,25 +197,9 @@ linked = await client.voip.join_call_link( Speaker(), ) ``` -group_call() accepts optional video source/sink pairs. join_call_link() accepts a token or URL and media audio or video. - -#### Incoming Calls - -IncomingCallEvent exposes call_id, peer, is_video, accept(audio_source, audio_sink), and reject(). Accept or reject it only once because the invitation is consumed. -```python -@app.on(EvIncomingCall) -async def on_incoming_call(_client, event): - if event.is_video: - await event.reject() - return - call = await event.accept(Microphone(), Speaker()) - await call.wait_ended() -``` -Use the incoming-call event exported by the installed package version. -#### Native AudioPlayer +### Native AudioPlayer -AudioPlayer decodes files in Rust and normalizes them to mono PCM16 at 16 kHz. ```python from tryx.media import AudioPlayer @@ -247,42 +213,18 @@ player.skip() player.clear_queue() player.stop() ``` -Modes are replace, queue, and interrupt. buffer_frames defaults to 3 and is capped at 30. States are idle, playing, and paused; non-16 kHz audio uses linear interpolation. - -#### Internal Data Flow and Backpressure - - Python source/sink -> PyO3 bridge + bounded async channel - -> whatsapp-rust VoIP facade - -> WaCore call engine -> RTP/SRTP/WebRTC - -> WhatsApp call network - -Inbound media follows the reverse path: transport decrypts and decodes, the bridge creates PCM16 or VideoFrame, and the Python sink receives it. Bounded channels prevent unbounded queues; audio defaults to three frames, about 180 ms before network and codec overhead. Slow sinks cause asynchronous backpressure instead of CPU spin-waiting. -Audio commands wait for the manager result and propagate errors to Python. VideoPlayer.stop() cancels its FFmpeg task, which kills and reaps the child process instead of leaving an orphan. - -#### Lifecycle and Troubleshooting - -- Start calls only after Tryx is connected; use one native player per active call. -- Stop players when cancelling a call and release them after wait_ended(). -- Send only mono PCM16 16 kHz frames of exactly 1,920 bytes. -- Video sources must emit H.264 Annex-B, not an MP4 container. -- For invalid audio sizes, chunk or resample into 960 samples. -- For high latency, use buffer_frames=2 or 3. -- Install FFmpeg and verify it with ffmpeg -version when video playback fails. - -### Development - -Useful commands: +## Development ```bash cargo check cargo test --lib -env UV_CACHE_DIR=/tmp/uv-cache uv run pytest -q +uv run pytest -q uv run maturin develop uv run maturin build --release ``` -Project layout: +## Project Layout ```text . @@ -294,579 +236,13 @@ Project layout: └── tests/ # Python test suite ``` -### Links +## Links -- Documentation: +- Documentation: - Examples: [`examples/`](examples/) - Python type stubs: [`python/tryx/`](python/tryx/) - Rust bindings: [`src/`](src/) ---- - -## 简体中文 - -### Tryx 是什么? - -Tryx 是一个基于 Rust 和 PyO3 的 Python WhatsApp 自动化库。底层协议能力来自 `whatsapp-rust` crate,Python 侧提供更易用的异步 API,适合构建机器人、后台任务、内部工具和自动化服务。 - -Tryx 适合以下场景: - -- 使用 Python 操作 WhatsApp Web。 -- 通过 SQLite、PostgreSQL 或 MySQL 持久化登录会话。 -- 在 `asyncio` 项目中构建机器人或自动化流程。 -- 使用联系人、群组、频道、状态、隐私、资料、标签、评论、事件和高级协议能力。 - -### 主要特点 - -- **Rust 核心,Python 调用** - 协议逻辑在 Rust 中运行,Python 通过 PyO3 调用。 -- **异步优先** - 适合 `asyncio` 应用。 -- **会话持久化** - 可以复用已登录的 WhatsApp 设备会话。 -- **API 覆盖面更广** - 暴露常用功能和高级功能命名空间。 -- **类型提示支持** - 提供 `.pyi` 文件,提升编辑器补全体验。 - -### 安装 - -```bash -pip install tryx -``` - -本地开发: - -```bash -git clone https://github.com/krypton-byte/tryx.git -cd tryx -git submodule update --init --recursive -uv sync --group dev -uv run maturin develop -``` - -### 快速开始 - -```python -import asyncio - -from tryx.backend import SqliteStore -from tryx.client import Tryx, TryxClient -from tryx.events import EvMessage, EvPairingQrCode - -backend = SqliteStore("whatsapp.db") -app = Tryx(backend) - - -@app.on(EvPairingQrCode) -async def on_pairing_qr(_client: TryxClient, event: EvPairingQrCode) -> None: - print("Scan this QR code with WhatsApp:") - print(event.code) - - -@app.on(EvMessage) -async def on_message(client: TryxClient, event: EvMessage) -> None: - text = (event.data.get_text() or "").strip() - if text.lower() == "ping": - await client.send_text( - event.data.message_info.source.chat, "pong", quoted=event - ) - - -async def main() -> None: - await app.run() - - -asyncio.run(main()) -``` - -### Client 命名空间 - -运行时 `TryxClient` 对象按功能拆分为多个命名空间: - -| 命名空间 | 用途 | -| --- | --- | -| `contact` | 联系人查询和联系人相关工具。 | -| `chat_actions` | 聊天操作,例如静音、归档、置顶、标记已读、清空聊天和保存联系人。 | -| `groups` | 群组创建、信息、成员、邀请、入群请求和管理员设置。 | -| `community` | 社区相关操作。 | -| `newsletter` | 频道信息、消息、静音设置、编辑和撤回。 | -| `status` | 状态发布、查询和相关工具。 | -| `chatstate` | 输入中、录音中、暂停等聊天状态。 | -| `blocking` | 拉黑和取消拉黑联系人。 | -| `polls` | 投票创建和投票操作。 | -| `presence` | 在线状态订阅和可用性更新。 | -| `privacy` | 隐私设置和控制。 | -| `profile` | 资料名称、状态文本和头像操作。 | -| `labels` | 聊天和消息标签管理。 | -| `comments` | 评论相关协议工具。 | -| `events` | 事件响应和事件相关操作。 | -| `advanced` | 生命周期等待、诊断和更底层的协议能力。 | - -### 存储后端 - -Tryx 支持三种会话存储方式: - -| 类型 | 后端 | 使用场景 | -| --- | --- | --- | -| 内置 | `SqliteStore("whatsapp.db")` | 本地开发和简单部署。 | -| Native FFI | `FfiStoreProtocol` | 高吞吐外部存储,例如 PostgreSQL。 | -| 纯 Python | `StoreBase` 子类 | 自定义异步存储,例如 Redis、MongoDB 或 DynamoDB。 | - -本地开发通常使用 SQLite 即可。如果多个 worker 或部署环境需要共享会话状态,建议使用 Native FFI 或自定义 Python 后端。 - -### VoIP:音频和视频通话 - -Tryx 提供基于 Rust 的 WhatsApp 音频和视频通话桥接层。客户端连接后,可以通过 client.voip 使用 API。协议处理、RTP/WebRTC、加密、编解码器和通话编排由 whatsapp-rust 执行;Python 通过异步 source 和 sink adapter 提供媒体数据。 - -#### 功能 - -- 使用 voip.call() 发起一对一音频通话。 -- 使用 voip.video_call() 发起一对一视频通话。 -- 使用 voip.group_call() 发起带可选视频的群组通话。 -- 使用 voip.join_call_link() 加入音频或视频 call link。 -- 支持挂断、等待结束、静音/取消静音、开始/停止视频。 -- 支持邀请、响铃、参与者审批,以及允许或拒绝等待中的用户。 -- 支持 start_screen_share() 和 stop_screen_share() 屏幕共享。 -- Rust 原生播放 WAV、MP3、OGG、Vorbis 和 PCM 音频文件。 -- 通过 FFmpeg 原生播放视频并输出 H.264 Annex-B access unit。 -- 支持用于麦克风、扬声器、摄像头、编解码器、TTS、DSP 和自定义媒体管线的 Python adapter。 - -#### 媒体契约 - -| 媒体 | 契约 | -| --- | --- | -| 音频 | 单声道 signed PCM16 little-endian,16,000 Hz,每帧 960 个 sample / 1,920 字节,60 ms | -| 视频 | 通过 VideoFrame 表示的 H.264 Annex-B access unit | - -AudioSource.frames() 必须每次产生恰好 1,920 字节。AudioSink.write() 接收相同的 PCM 格式。VideoFrame 包含 data、timestamp_us、duration_us、keyframe、可选的 width 和 height,以及 orientation。 - -#### 最小音频 Adapter -```python -from collections.abc import AsyncIterator -from tryx.media import AudioSink, AudioSource, validate_audio_frame - - -class Microphone(AudioSource): - async def frames(self) -> AsyncIterator[bytes]: - while True: - frame = await read_microphone_frame() - yield validate_audio_frame(frame) - - -class Speaker(AudioSink): - async def write(self, frame: bytes) -> None: - validate_audio_frame(frame) - await play_speaker_frame(frame) -``` -请将两个设备函数替换为 PyAudio、sounddevice、ALSA、CoreAudio 或其他音频设备库的实现。 - -#### 一对一音频通话 - -```python -from tryx.types import JID - - -async def start_audio_call(client, phone_number: str): - peer = JID(phone_number + "@s.whatsapp.net") - call = await client.voip.call(peer, Microphone(), Speaker()) - print("call started:", call.call_id) - call.set_muted(True) - call.set_muted(False) - await call.wait_ended() -``` -使用 await call.hangup() 主动结束通话。通话期间请保持 CallHandle,并等待 wait_ended(),以便媒体资源能够稳定清理。 - -#### 视频通话 -```python -from tryx.media import VideoPlayer - - -async def start_video_call(client, peer, video_sink): - video_source = VideoPlayer(fps=15) - video_source.play("sample.mp4") - call = await client.voip.video_call( - peer, Microphone(), Speaker(), video_source, video_sink - ) - await call.wait_ended() - video_source.stop() -``` -VideoPlayer 支持 1–60 FPS,默认值为 15。系统必须在 PATH 中提供 FFmpeg;文件不存在或 FFmpeg 不可用时,play() 会返回明确错误。 - -#### 群组通话和 Call Link -```python -call = await client.voip.group_call( - peers=[peer_a, peer_b], - audio_source=Microphone(), - audio_sink=Speaker(), -) -await call.invite_participant(peer_c) -await call.ring_participant(peer_c) -await call.set_approval_required(True) -linked = await client.voip.join_call_link( - "https://call.whatsapp.com/your-token", - "audio", - Microphone(), - Speaker(), -) -``` -group_call() 可以接收可选的 video source/sink。join_call_link() 可以接收 token 或 URL,并使用 media="audio" 或 media="video"。 - -#### 来电 - -IncomingCallEvent 提供 call_id、peer、is_video、accept(audio_source, audio_sink) 和 reject()。一个 event 只能 accept 或 reject 一次,因为底层来电邀请在操作后会被消费。 -```python -@app.on(EvIncomingCall) -async def on_incoming_call(_client, event): - if event.is_video: - await event.reject() - return - call = await event.accept(Microphone(), Speaker()) - await call.wait_ended() -``` -请使用当前安装版本导出的来电 event 名称。 - -#### Rust 原生 AudioPlayer - -AudioPlayer 在 Rust 中解码文件,并将其标准化为 16 kHz 单声道 PCM16。 -```python -from tryx.media import AudioPlayer - -player = AudioPlayer(buffer_frames=3) -player.play("intro.mp3", mode="replace") -call = await client.voip.call(peer, player, Speaker()) -player.pause() -player.resume() -player.enqueue("next.wav") -player.skip() -player.clear_queue() -player.stop() -``` -播放模式为 replace、queue 和 interrupt。buffer_frames 默认 3,最大限制为 30。播放器状态为 idle、playing 和 paused。非 16 kHz 音频使用线性插值转换。 - -#### 内部数据流和背压 - - Python source/sink -> PyO3 bridge + bounded async channel - -> whatsapp-rust VoIP facade - -> WaCore call engine -> RTP/SRTP/WebRTC - -> WhatsApp call network - -接收媒体沿反方向流动:transport 解密并解码,bridge 将数据转换为 PCM16 或 VideoFrame,再交给 Python sink。bounded channel 防止队列无限增长;音频默认缓存 3 帧,即在网络和 codec 开销之前约 180 ms。sink 较慢时 producer 会异步等待,而不是消耗 CPU 自旋等待。 - -AudioPlayer command 会等待 manager 的结果,并将错误传递给 Python。VideoPlayer.stop() 会取消 FFmpeg task,由该 task kill 并回收 child process,避免留下孤儿进程。 - -#### 生命周期和故障排查 - -- 只有在 Tryx 连接成功后才开始通话;每个活动通话使用一个 native player。 -- 取消通话时停止 player,并在 wait_ended() 后释放资源。 -- 只能发送恰好 1,920 字节的单声道 PCM16 16 kHz 音频帧。 -- 视频 source 必须输出 H.264 Annex-B,不能直接输出 MP4 container。 -- 音频尺寸错误时,将音频切分或重采样为 960 samples。 -- 延迟过高时使用 buffer_frames=2 或 3。 -- 视频播放失败时安装 FFmpeg,并使用 ffmpeg -version 验证 PATH。 - -### 开发命令 - -```bash -cargo check -cargo test --lib -env UV_CACHE_DIR=/tmp/uv-cache uv run pytest -q -uv run maturin develop -uv run maturin build --release -``` - -### 相关链接 - -- 文档: -- 示例:[`examples/`](examples/) -- Python 类型文件:[`python/tryx/`](python/tryx/) -- Rust 绑定代码:[`src/`](src/) - ---- - -## Bahasa Indonesia - -### Apa Itu Tryx? - -Tryx adalah library otomasi WhatsApp untuk Python yang dibangun dengan Rust dan PyO3. Logika protokol berjalan di Rust melalui `whatsapp-rust`, sedangkan API publiknya dibuat agar nyaman digunakan dari Python. - -Tryx cocok untuk: - -- Membuat otomasi WhatsApp Web dari Python. -- Menyimpan sesi login dengan SQLite, PostgreSQL, atau MySQL. -- Membangun bot, worker, dashboard, dan tool internal berbasis `asyncio`. -- Mengakses fitur kontak, grup, newsletter, status, privasi, profil, label, komentar, event, dan helper protokol tingkat lanjut. - -### Fitur Utama - -- **Core Rust, API Python** - performa dan logika protokol ditangani Rust, pemakaian tetap sederhana dari Python. -- **Async first** - dirancang untuk aplikasi `asyncio`. -- **Sesi persisten** - sesi WhatsApp dapat dipakai ulang melalui database. -- **API luas** - namespace umum dan advanced sudah diexpose. -- **Type stub Python** - tersedia `.pyi` untuk autocomplete dan type checking yang lebih baik. - -### Instalasi - -```bash -pip install tryx -``` - -Untuk development lokal: - -```bash -git clone https://github.com/krypton-byte/tryx.git -cd tryx -git submodule update --init --recursive -uv sync --group dev -uv run maturin develop -``` - -### Mulai Cepat - -```python -import asyncio - -from tryx.backend import SqliteStore -from tryx.client import Tryx, TryxClient -from tryx.events import EvMessage, EvPairingQrCode - -backend = SqliteStore("whatsapp.db") -app = Tryx(backend) - - -@app.on(EvPairingQrCode) -async def on_pairing_qr(_client: TryxClient, event: EvPairingQrCode) -> None: - print("Scan this QR code with WhatsApp:") - print(event.code) - - -@app.on(EvMessage) -async def on_message(client: TryxClient, event: EvMessage) -> None: - text = (event.data.get_text() or "").strip() - if text.lower() == "ping": - await client.send_text( - event.data.message_info.source.chat, "pong", quoted=event - ) - - -async def main() -> None: - await app.run() - - -asyncio.run(main()) -``` - -### Namespace Client - -Objek runtime `TryxClient` dibagi menjadi beberapa namespace agar API lebih rapi: - -| Namespace | Fungsi | -| --- | --- | -| `contact` | Helper untuk kontak dan pencarian kontak. | -| `chat_actions` | Operasi chat seperti mute, archive, pin, mark read, clear chat, dan save contact. | -| `groups` | Pembuatan grup, metadata, member, invite, request membership, dan pengaturan admin. | -| `community` | Operasi terkait komunitas. | -| `newsletter` | Info newsletter, pesan, mute, edit, dan revoke. | -| `status` | Posting status, lookup status, dan helper terkait status. | -| `chatstate` | State chat seperti typing, recording, dan paused. | -| `blocking` | Block dan unblock kontak. | -| `polls` | Membuat poll dan mengirim vote. | -| `presence` | Subscribe presence dan update availability. | -| `privacy` | Pengaturan privasi. | -| `profile` | Nama profil, status teks, dan foto profil. | -| `labels` | Manajemen label untuk chat dan pesan. | -| `comments` | Helper protokol terkait komentar. | -| `events` | Helper response dan operasi berbasis event. | -| `advanced` | Wait lifecycle, diagnostik, dan akses protokol tingkat lanjut. | - -### Storage Backend - -Tryx mendukung tiga tipe storage untuk menyimpan sesi WhatsApp: - -| Tipe | Backend | Kegunaan | -| --- | --- | --- | -| Built-in | `SqliteStore("whatsapp.db")` | Development lokal dan deployment sederhana. | -| Native FFI | `FfiStoreProtocol` | Store eksternal throughput tinggi seperti PostgreSQL. | -| Pure Python | subclass `StoreBase` | Store async custom seperti Redis, MongoDB, atau DynamoDB. | - -SQLite cukup untuk development lokal. Native FFI atau backend Python custom lebih cocok jika sesi perlu dipakai bersama oleh beberapa worker atau environment deployment. - -### VoIP: Panggilan Audio dan Video - -Tryx menyediakan bridge VoIP berbasis Rust untuk panggilan audio dan video WhatsApp. Setelah client tersambung, API tersedia melalui client.voip. Protocol, RTP/WebRTC, enkripsi, codec, dan orkestrasi call berjalan di whatsapp-rust; Python menyediakan media melalui adapter source dan sink asynchronous. - -#### Fitur - -- Panggilan audio 1:1 melalui voip.call(). -- Panggilan video 1:1 melalui voip.video_call(). -- Group call dengan video opsional melalui voip.group_call(). -- Bergabung ke call link melalui voip.join_call_link() dengan media audio atau video. -- Kontrol hangup, wait, mute/unmute, video, peserta, approval, dan screen sharing. -- Playback file audio native Rust untuk WAV, MP3, OGG, Vorbis, dan PCM. -- Playback video native melalui FFmpeg dengan output H.264 Annex-B access unit. -- Adapter Python untuk microphone, speaker, camera, codec, TTS, DSP, dan pipeline media custom. - -#### Kontrak Media - -| Media | Kontrak | -| --- | --- | -| Audio | Mono signed PCM16 little-endian, 16.000 Hz, 960 sample / 1.920 byte per frame, 60 ms | -| Video | H.264 Annex-B access unit melalui VideoFrame | - -AudioSource.frames() harus menghasilkan async iterator dengan tepat 1.920 byte untuk setiap frame. AudioSink.write() menerima format PCM yang sama. VideoFrame berisi data, timestamp_us, duration_us, keyframe, dimensi opsional, dan orientation. - -#### Adapter Audio Minimal -```python -from collections.abc import AsyncIterator -from tryx.media import AudioSink, AudioSource, validate_audio_frame - - -class Microphone(AudioSource): - async def frames(self) -> AsyncIterator[bytes]: - while True: - frame = await read_microphone_frame() - yield validate_audio_frame(frame) - - -class Speaker(AudioSink): - async def write(self, frame: bytes) -> None: - validate_audio_frame(frame) - await play_speaker_frame(frame) -``` -Ganti fungsi perangkat tersebut dengan implementasi PyAudio, sounddevice, ALSA, CoreAudio, atau library perangkat lain. - -#### Panggilan Audio 1:1 -```python -from tryx.types import JID - - -async def start_audio_call(client, phone_number: str): - peer = JID(phone_number + "@s.whatsapp.net") - call = await client.voip.call(peer, Microphone(), Speaker()) - print("call started:", call.call_id) - call.set_muted(True) - call.set_muted(False) - await call.wait_ended() -``` -Gunakan await call.hangup() untuk mengakhiri call secara eksplisit. Pertahankan CallHandle selama call aktif dan tunggu wait_ended() agar cleanup media berjalan deterministik. - -#### Panggilan Video -```python -from tryx.media import VideoPlayer - - -async def start_video_call(client, peer, video_sink): - video_source = VideoPlayer(fps=15) - video_source.play("sample.mp4") - call = await client.voip.video_call( - peer, Microphone(), Speaker(), video_source, video_sink - ) - await call.wait_ended() - video_source.stop() -``` -VideoPlayer mendukung 1–60 FPS dengan default 15. FFmpeg harus tersedia di PATH. File yang tidak ditemukan atau FFmpeg yang tidak tersedia akan menghasilkan error yang jelas. - -#### Group Call dan Call Link -```python - call = await client.voip.group_call( - peers=[peer_a, peer_b], - audio_source=Microphone(), - audio_sink=Speaker(), - ) - await call.invite_participant(peer_c) - await call.ring_participant(peer_c) - await call.set_approval_required(True) - - linked = await client.voip.join_call_link( - "https://call.whatsapp.com/your-token", - "audio", - Microphone(), - Speaker(), - ) -``` -group_call() menerima video source dan sink secara opsional. join_call_link() menerima token atau URL dengan media audio atau video. - -#### Panggilan Masuk - -IncomingCallEvent menyediakan call_id, peer, is_video, accept(audio_source, audio_sink), dan reject(). Event hanya boleh di-accept atau reject satu kali karena invitation akan dikonsumsi. -```python - @app.on(EvIncomingCall) - async def on_incoming_call(_client, event): - if event.is_video: - await event.reject() - return - call = await event.accept(Microphone(), Speaker()) - await call.wait_ended() -``` -Gunakan nama event incoming-call yang diexport oleh versi package yang terpasang. - -#### AudioPlayer Native - -AudioPlayer mendecode file di Rust dan menormalisasikannya menjadi mono PCM16 16 kHz. -```python - from tryx.media import AudioPlayer - - player = AudioPlayer(buffer_frames=3) - player.play("intro.mp3", mode="replace") - call = await client.voip.call(peer, player, Speaker()) - player.pause() - player.resume() - player.enqueue("next.wav") - player.skip() - player.clear_queue() - player.stop() -``` -Mode playback adalah replace, queue, dan interrupt. buffer_frames default 3 dan dibatasi maksimal 30 frame. State player adalah idle, playing, atau paused. Audio non-16 kHz diproses dengan interpolasi linear. - -#### Alur Internal dan Backpressure - - Python source/sink -> PyO3 bridge + bounded async channel - -> whatsapp-rust VoIP facade - -> WaCore call engine -> RTP/SRTP/WebRTC - -> WhatsApp call network - -Media masuk berjalan terbalik: transport mendekripsi dan mendecode, bridge mengubahnya menjadi PCM16 atau VideoFrame, kemudian sink Python menerimanya. Bounded channel mencegah queue tumbuh tanpa batas. Buffer audio default 3 frame, sekitar 180 ms sebelum overhead jaringan dan codec. Jika sink lambat, producer menunggu secara asynchronous tanpa spin-wait CPU. - -Command AudioPlayer menunggu hasil manager dan meneruskan error ke Python. VideoPlayer.stop() membatalkan task FFmpeg; task tersebut membunuh dan mereap child process agar tidak meninggalkan proses yatim. - -#### Lifecycle dan Troubleshooting - -- Mulai call setelah Tryx tersambung dan gunakan satu native player untuk setiap call aktif. -- Hentikan player saat call dibatalkan dan lepaskan setelah wait_ended(). -- Kirim hanya frame mono PCM16 16 kHz dengan ukuran tepat 1.920 byte. -- Video source harus menghasilkan H.264 Annex-B, bukan MP4 container. -- Jika ukuran audio salah, lakukan chunk atau resample menjadi 960 sample. -- Jika latency tinggi, gunakan buffer_frames=2 atau 3. -- Jika video gagal, instal FFmpeg dan verifikasi dengan ffmpeg -version. - -### Development - -Command yang umum dipakai: - -```bash -cargo check -cargo test --lib -env UV_CACHE_DIR=/tmp/uv-cache uv run pytest -q -uv run maturin develop -uv run maturin build --release -``` - -Struktur project: - -```text -. -├── libs/whatsapp-rust/ # Submodule crate protokol Rust -├── src/ # Binding Rust dan PyO3 -├── python/tryx/ # Package Python dan type stub -├── examples/ # Contoh script otomasi -├── docs/ # Situs dokumentasi -└── tests/ # Test suite Python -``` - -### Link Penting - -- Dokumentasi: -- Contoh: [`examples/`](examples/) -- Type stub Python: [`python/tryx/`](python/tryx/) -- Binding Rust: [`src/`](src/) - ---- - ## License This project is licensed under the terms of the [MIT License](LICENSE). diff --git a/README.zh.md b/README.zh.md new file mode 100644 index 0000000..bc51c1e --- /dev/null +++ b/README.zh.md @@ -0,0 +1,248 @@ +# Tryx + +[![PyPI version](https://img.shields.io/pypi/v/tryx?color=blue)](https://pypi.org/project/tryx/) +[![Python](https://img.shields.io/pypi/pyversions/tryx.svg)](https://pypi.org/project/tryx/) +[![License](https://img.shields.io/github/license/krypton-byte/tryx)](LICENSE) +[![Docs](https://img.shields.io/badge/docs-online-brightgreen)](https://krypton-byte.github.io/tryx/) + +**语言:** [English](README.md) | 简体中文 | [Bahasa Indonesia](README.id.md) + +Tryx 是一个基于 Rust 和 PyO3 的 Python WhatsApp 自动化库。底层协议能力来自 `whatsapp-rust` crate,Python 侧提供更易用的异步 API,适合构建机器人、后台任务、内部工具和自动化服务。 + +> Tryx 是一个独立项目,与 WhatsApp、Meta 或其官方产品无关。 + +## Tryx 是什么? + +Tryx 帮助 Python 开发者构建 WhatsApp 自动化工具,无需直接编写 Rust 代码。核心协议逻辑在 Rust 中运行以保证性能,而公共接口则保持对 Python 应用的友好性。 + +Tryx 适合以下场景: + +- 使用 Python 操作 WhatsApp Web。 +- 通过 SQLite、PostgreSQL 或 MySQL 持久化登录会话。 +- 在 `asyncio` 项目中构建机器人或自动化流程。 +- 使用联系人、群组、频道、状态、隐私、资料、标签、评论、事件和高级协议能力。 + +## 主要特点 + +- **Rust 核心,Python 调用** — 协议逻辑在 Rust 中运行,Python 通过 PyO3 调用。 +- **异步优先** — 适合 `asyncio` 应用。 +- **会话持久化** — 可以复用已登录的 WhatsApp 设备会话。 +- **API 覆盖面更广** — 暴露常用功能和高级功能命名空间。 +- **类型提示支持** — 提供 `.pyi` 文件,提升编辑器补全体验。 + +## 安装 + +```bash +pip install tryx +``` + +本地开发: + +```bash +git clone https://github.com/krypton-byte/tryx.git +cd tryx +git submodule update --init --recursive +uv sync --group dev +uv run maturin develop +``` + +## 快速开始 + +```python +import asyncio + +from tryx.backend import SqliteStore +from tryx.client import Tryx, TryxClient +from tryx.events import EvMessage, EvPairingQrCode + +backend = SqliteStore("whatsapp.db") +app = Tryx(backend) + + +@app.on(EvPairingQrCode) +async def on_pairing_qr(_client: TryxClient, event: EvPairingQrCode) -> None: + print("请用 WhatsApp 扫描此二维码:") + print(event.code) + + +@app.on(EvMessage) +async def on_message(client: TryxClient, event: EvMessage) -> None: + text = (event.data.get_text() or "").strip() + if text.lower() == "ping": + await client.send_text( + event.data.message_info.source.chat, "pong", quoted=event + ) + + +async def main() -> None: + await app.run() + + +asyncio.run(main()) +``` + +## Client 命名空间 + +运行时 `TryxClient` 对象按功能拆分为多个命名空间: + +| 命名空间 | 用途 | +| --- | --- | +| `contact` | 联系人查询和联系人相关工具。 | +| `chat_actions` | 聊天操作,例如静音、归档、置顶、标记已读、清空聊天和保存联系人。 | +| `groups` | 群组创建、信息、成员、邀请、入群请求和管理员设置。 | +| `community` | 社区相关操作。 | +| `newsletter` | 频道信息、消息、静音设置、编辑和撤回。 | +| `status` | 状态发布、查询和相关工具。 | +| `chatstate` | 输入中、录音中、暂停等聊天状态。 | +| `blocking` | 拉黑和取消拉黑联系人。 | +| `polls` | 投票创建和投票操作。 | +| `presence` | 在线状态订阅和可用性更新。 | +| `privacy` | 隐私设置和控制。 | +| `profile` | 资料名称、状态文本和头像操作。 | +| `labels` | 聊天和消息标签管理。 | +| `comments` | 评论相关协议工具。 | +| `events` | 事件响应和事件相关操作。 | +| `advanced` | 生命周期等待、诊断和更底层的协议能力。 | +| `voip` | 音频和视频通话管理。 | + +## 存储后端 + +Tryx 支持三种会话存储方式: + +| 类型 | 后端 | 使用场景 | +| --- | --- | --- | +| 内置 | `SqliteStore("whatsapp.db")` | 本地开发和简单部署。 | +| Native FFI | `FfiStoreProtocol` | 高吞吐外部存储,例如 PostgreSQL。 | +| 纯 Python | `StoreBase` 子类 | 自定义异步存储,例如 Redis、MongoDB 或 DynamoDB。 | + +本地开发通常使用 SQLite 即可。如果多个 worker 或部署环境需要共享会话状态,建议使用 Native FFI 或自定义 Python 后端。 + +## VoIP:音频和视频通话 + +Tryx 提供基于 Rust 的 WhatsApp 音频和视频通话桥接层。协议处理、RTP/WebRTC、加密、编解码器和通话编排由 whatsapp-rust 执行;Python 通过异步 source 和 sink adapter 提供媒体数据。 + +### 媒体契约 + +| 媒体 | 契约 | +| --- | --- | +| 音频 | 单声道 signed PCM16 little-endian,16,000 Hz,每帧 960 个 sample / 1,920 字节,60 ms | +| 视频 | 通过 `VideoFrame` 表示的 H.264 Annex-B access unit | + +### 最小音频 Adapter + +```python +from collections.abc import AsyncIterator +from tryx.media import AudioSink, AudioSource, validate_audio_frame + + +class Microphone(AudioSource): + async def frames(self) -> AsyncIterator[bytes]: + while True: + frame = await read_microphone_frame() + yield validate_audio_frame(frame) + + +class Speaker(AudioSink): + async def write(self, frame: bytes) -> None: + validate_audio_frame(frame) + await play_speaker_frame(frame) +``` + +### 一对一音频通话 + +```python +from tryx.types import JID + + +async def start_audio_call(client, phone_number: str): + peer = JID(phone_number + "@s.whatsapp.net") + call = await client.voip.call(peer, Microphone(), Speaker()) + print("通话已开始:", call.call_id) + call.set_muted(True) + call.set_muted(False) + await call.wait_ended() +``` + +### 视频通话 + +```python +from tryx.media import VideoPlayer + + +async def start_video_call(client, peer, video_sink): + video_source = VideoPlayer(fps=15) + video_source.play("sample.mp4") + call = await client.voip.video_call( + peer, Microphone(), Speaker(), video_source, video_sink + ) + await call.wait_ended() + video_source.stop() +``` + +### 群组通话和 Call Link + +```python +call = await client.voip.group_call( + peers=[peer_a, peer_b], + audio_source=Microphone(), + audio_sink=Speaker(), +) +await call.invite_participant(peer_c) +await call.ring_participant(peer_c) + +linked = await client.voip.join_call_link( + "https://call.whatsapp.com/your-token", + "audio", + Microphone(), + Speaker(), +) +``` + +### Rust 原生 AudioPlayer + +```python +from tryx.media import AudioPlayer + +player = AudioPlayer(buffer_frames=3) +player.play("intro.mp3", mode="replace") +call = await client.voip.call(peer, player, Speaker()) +player.pause() +player.resume() +player.enqueue("next.wav") +player.skip() +player.clear_queue() +player.stop() +``` + +## 开发命令 + +```bash +cargo check +cargo test --lib +uv run pytest -q +uv run maturin develop +uv run maturin build --release +``` + +## 项目结构 + +```text +. +├── libs/whatsapp-rust/ # Rust 协议 crate 子模块 +├── src/ # Rust 和 PyO3 绑定 +├── python/tryx/ # Python 包和类型存根 +├── examples/ # 示例自动化脚本 +├── docs/ # 文档站点 +└── tests/ # Python 测试套件 +``` + +## 相关链接 + +- 文档: +- 示例:[`examples/`](examples/) +- Python 类型文件:[`python/tryx/`](python/tryx/) +- Rust 绑定代码:[`src/`](src/) + +## 许可证 + +本项目基于 [MIT 许可证](LICENSE) 授权。 diff --git a/docs/api/backend.md b/docs/api/backend.md index 6b9abd4..91a5645 100644 --- a/docs/api/backend.md +++ b/docs/api/backend.md @@ -42,17 +42,19 @@ app = Tryx(backend) ## FfiStoreProtocol Structural typing protocol for native FFI-based storage backends. Any object -exposing `lib_path` and `connect_string` attributes satisfies this protocol. +exposing `lib_path` and `config_json` attributes satisfies this protocol. ```python +import json + class PostgresStore: lib_path: str # path to compiled .so - connect_string: str + config_json: str backend = PostgresStore( lib_path="./libtryx_pg.so", - connect_string="host=localhost dbname=tryx", + config_json=json.dumps({"host": "localhost", "dbname": "tryx"}), ) ``` diff --git a/docs/core-concepts/storage-backends.md b/docs/core-concepts/storage-backends.md index afdce72..efc2f9a 100644 --- a/docs/core-concepts/storage-backends.md +++ b/docs/core-concepts/storage-backends.md @@ -69,16 +69,18 @@ sequenceDiagram ### Usage -Any object with `lib_path` and `connect_string` attributes is detected as an FFI backend: +Any object with `lib_path` and `config_json` attributes is detected as an FFI backend: ```python +import json + from tryx.client import Tryx # tryx-store-postgres exposes this interface class PostgresStore: lib_path = "./libtryx_pg.so" - connect_string = "host=localhost dbname=tryx" + config_json = json.dumps({"host": "localhost", "dbname": "tryx"}) app = Tryx(PostgresStore()) diff --git a/examples/basic_bot.py b/examples/basic_bot.py new file mode 100644 index 0000000..8cb7b4b --- /dev/null +++ b/examples/basic_bot.py @@ -0,0 +1,102 @@ +"""Basic Echo Bot — replies to every text message. + +Commands: + ping -> reply pong + help -> show available commands + time -> show current server time + info -> show sender info +""" + +import asyncio +import os +from datetime import datetime, timezone + +from tryx.backend import SqliteStore +from tryx.client import Tryx, TryxClient +from tryx.events import EvMessage, EvPairingQrCode + +DB_PATH = os.getenv("TRYX_DB_PATH", "whatsapp.db") + + +def jid_to_text(jid: object) -> str: + """Format a JID object as user@server string.""" + user = getattr(jid, "user", "") + server = getattr(jid, "server", "") + return f"{user}@{server}" + + +# ── Setup ──────────────────────────────────────────────────────────────────── + +backend = SqliteStore(DB_PATH) +app = Tryx(backend) + + +@app.on(EvPairingQrCode) +async def on_pairing_qr(_client: TryxClient, event: EvPairingQrCode) -> None: + """Display the QR code for initial device pairing.""" + print("=" * 40) + print("Scan this QR code with WhatsApp:") + print(event.code) + print("=" * 40) + + +@app.on(EvMessage) +async def on_message(client: TryxClient, event: EvMessage) -> None: + """Handle incoming messages and dispatch commands.""" + data = event.data + info = data.message_info + source = info.source + chat_jid = source.chat + sender_jid = source.sender + text = (data.get_text() or "").strip() + + print(f"[message] from={jid_to_text(sender_jid)} chat={jid_to_text(chat_jid)} text={text!r}") + + if not text: + return + + cmd = text.lower() + + # ── /ping ──────────────────────────────────────────────────────────── + if cmd == "ping": + await client.chatstate.send_composing(chat_jid) + await asyncio.sleep(1) # Simulate processing + await client.send_text(chat_jid, "pong", quoted=event) + await client.chatstate.send_paused(chat_jid) + + # ── /help ──────────────────────────────────────────────────────────── + elif cmd == "help": + help_text = ( + "*Available Commands*\n\n" + "• ping — check if bot is alive\n" + "• help — show this message\n" + "• time — show current time\n" + "• info — show your info" + ) + await client.send_text(chat_jid, help_text, quoted=event) + + # ── /time ──────────────────────────────────────────────────────────── + elif cmd == "time": + now = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S UTC") + await client.send_text(chat_jid, f"Current time: {now}", quoted=event) + + # ── /info ──────────────────────────────────────────────────────────── + elif cmd == "info": + info_lines = [ + f"*Your Info*", + f"• JID: {jid_to_text(sender_jid)}", + f"• Chat: {jid_to_text(chat_jid)}", + f"• Push name: {info.push_name or '(none)'}", + ] + await client.send_text(chat_jid, "\n".join(info_lines), quoted=event) + + +# ── Entry point ────────────────────────────────────────────────────────────── + +async def main() -> None: + print(f"Starting basic bot with DB: {DB_PATH}") + await app.run() + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/examples/group_bot.py b/examples/group_bot.py new file mode 100644 index 0000000..5448162 --- /dev/null +++ b/examples/group_bot.py @@ -0,0 +1,167 @@ +"""Group Management Bot — demonstrates group admin operations. + +Commands (admin only): + info -> show group metadata + pin -> pin the group + unpin -> unpin the group + announce -> toggle announcement-only mode + lock -> toggle group info lock + ephemeral N -> set disappearing messages timer (seconds) + members -> list group members + help -> show available commands +""" + +import asyncio +import os + +from tryx.backend import SqliteStore +from tryx.client import Tryx, TryxClient +from tryx.events import EvMessage, EvPairingQrCode + +DB_PATH = os.getenv("TRYX_DB_PATH", "whatsapp.db") + + +def jid_to_text(jid: object) -> str: + """Format a JID object as user@server string.""" + user = getattr(jid, "user", "") + server = getattr(jid, "server", "") + return f"{user}@{server}" + + +# ── Setup ──────────────────────────────────────────────────────────────────── + +backend = SqliteStore(DB_PATH) +app = Tryx(backend) + + +@app.on(EvPairingQrCode) +async def on_pairing_qr(_client: TryxClient, event: EvPairingQrCode) -> None: + """Display the QR code for initial device pairing.""" + print("=" * 40) + print("Scan this QR code with WhatsApp:") + print(event.code) + print("=" * 40) + + +@app.on(EvMessage) +async def on_message(client: TryxClient, event: EvMessage) -> None: + """Handle group admin commands.""" + data = event.data + info = data.message_info + source = info.source + chat_jid = source.chat + sender_jid = source.sender + text = (data.get_text() or "").strip() + + print(f"[message] from={jid_to_text(sender_jid)} chat={jid_to_text(chat_jid)} text={text!r}") + + if not text or not source.is_group: + return + + cmd_parts = text.lower().split() + cmd = cmd_parts[0] if cmd_parts else "" + + # ── /info ──────────────────────────────────────────────────────────── + if cmd == "info": + try: + metadata = await client.groups.get_metadata(chat_jid) + lines = [ + f"*Group Info*", + f"• Name: {metadata.subject}", + f"• Members: {metadata.size or len(metadata.participants)}", + f"• Locked: {'Yes' if metadata.is_locked else 'No'}", + f"• Announce: {'Yes' if metadata.is_announcement else 'No'}", + f"• Ephemeral: {metadata.ephemeral_expiration}s", + ] + if metadata.description: + lines.append(f"• Description: {metadata.description}") + await client.send_text(chat_jid, "\n".join(lines), quoted=event) + except Exception as exc: + await client.send_text(chat_jid, f"Error: {exc}", quoted=event) + + # ── /pin ───────────────────────────────────────────────────────────── + elif cmd == "pin": + await client.chat_actions.pin_chat(chat_jid) + await client.send_text(chat_jid, "Chat pinned", quoted=event) + + # ── /unpin ─────────────────────────────────────────────────────────── + elif cmd == "unpin": + await client.chat_actions.unpin_chat(chat_jid) + await client.send_text(chat_jid, "Chat unpinned", quoted=event) + + # ── /announce ──────────────────────────────────────────────────────── + elif cmd == "announce": + try: + metadata = await client.groups.get_metadata(chat_jid) + new_value = not metadata.is_announcement + await client.groups.set_announce(chat_jid, new_value) + state = "enabled" if new_value else "disabled" + await client.send_text(chat_jid, f"Announcement mode {state}", quoted=event) + except Exception as exc: + await client.send_text(chat_jid, f"Error: {exc}", quoted=event) + + # ── /lock ──────────────────────────────────────────────────────────── + elif cmd == "lock": + try: + metadata = await client.groups.get_metadata(chat_jid) + new_value = not metadata.is_locked + await client.groups.set_locked(chat_jid, new_value) + state = "locked" if new_value else "unlocked" + await client.send_text(chat_jid, f"Group info {state}", quoted=event) + except Exception as exc: + await client.send_text(chat_jid, f"Error: {exc}", quoted=event) + + # ── /ephemeral N ───────────────────────────────────────────────────── + elif cmd == "ephemeral": + if len(cmd_parts) < 2: + await client.send_text(chat_jid, "Usage: /ephemeral \n0 = off", quoted=event) + return + try: + seconds = int(cmd_parts[1]) + await client.groups.set_ephemeral(chat_jid, seconds) + if seconds == 0: + await client.send_text(chat_jid, "Disabling disappearing messages", quoted=event) + else: + await client.send_text(chat_jid, f"Disappearing messages set to {seconds}s", quoted=event) + except ValueError: + await client.send_text(chat_jid, "Invalid number", quoted=event) + + # ── /members ───────────────────────────────────────────────────────── + elif cmd == "members": + try: + metadata = await client.groups.get_metadata(chat_jid) + lines = [f"*Members ({len(metadata.participants)})*"] + for p in metadata.participants[:30]: # limit to 30 + role = " 👑" if p.is_admin else "" + lines.append(f"• {jid_to_text(p.jid)}{role}") + if len(metadata.participants) > 30: + lines.append(f"• ... and {len(metadata.participants) - 30} more") + await client.send_text(chat_jid, "\n".join(lines), quoted=event) + except Exception as exc: + await client.send_text(chat_jid, f"Error: {exc}", quoted=event) + + # ── /help ──────────────────────────────────────────────────────────── + elif cmd == "help": + help_text = ( + "*Group Admin Commands*\n\n" + "• info — show group metadata\n" + "• pin — pin the group\n" + "• unpin — unpin the group\n" + "• announce — toggle announcement-only mode\n" + "• lock — toggle group info lock\n" + "• ephemeral N — set disappearing messages timer\n" + "• members — list group members\n" + "• help — show this message" + ) + await client.send_text(chat_jid, help_text, quoted=event) + + +# ── Entry point ────────────────────────────────────────────────────────────── + +async def main() -> None: + print(f"Starting group bot with DB: {DB_PATH}") + await app.run() + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/examples/media_bot.py b/examples/media_bot.py new file mode 100644 index 0000000..6c8dd13 --- /dev/null +++ b/examples/media_bot.py @@ -0,0 +1,159 @@ +"""Media Bot — demonstrates sending various media types. + +Commands: + photo -> send a sample photo from URL + document -> send a sample PDF document + audio -> send a sample audio clip + video -> send a sample video clip + sticker -> send a sample sticker + gif -> send a sample GIF +""" + +import asyncio +import os +from urllib.request import urlopen + +from tryx.backend import SqliteStore +from tryx.client import Tryx, TryxClient +from tryx.events import EvMessage, EvPairingQrCode + +DB_PATH = os.getenv("TRYX_DB_PATH", "whatsapp.db") + +# ── Sample media URLs (public domain) ──────────────────────────────────────── + +SAMPLE_MEDIA = { + "photo": { + "url": "https://samplelib.com/lib/preview/png/sample-boat-400x300.png", + "name": "sample-boat.png", + }, + "document": { + "url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", + "name": "sample-document.pdf", + }, + "audio": { + "url": "https://samplelib.com/lib/preview/mp3/sample-3s.mp3", + "name": "sample-audio.mp3", + }, + "video": { + "url": "https://samplelib.com/lib/preview/mp4/sample-5s.mp4", + "name": "sample-video.mp4", + }, +} + + +def jid_to_text(jid: object) -> str: + """Format a JID object as user@server string.""" + user = getattr(jid, "user", "") + server = getattr(jid, "server", "") + return f"{user}@{server}" + + +async def download_bytes(url: str) -> bytes: + """Download bytes from an HTTPS URL. Rejects non-HTTPS for safety.""" + if not url.startswith("https://"): + raise ValueError(f"Refusing to download from non-HTTPS URL: {url}") + + def _download() -> bytes: + with urlopen(url, timeout=30) as response: # noqa: S310 + return response.read() + + return await asyncio.to_thread(_download) + + +# ── Setup ──────────────────────────────────────────────────────────────────── + +backend = SqliteStore(DB_PATH) +app = Tryx(backend) + + +@app.on(EvPairingQrCode) +async def on_pairing_qr(_client: TryxClient, event: EvPairingQrCode) -> None: + """Display the QR code for initial device pairing.""" + print("=" * 40) + print("Scan this QR code with WhatsApp:") + print(event.code) + print("=" * 40) + + +@app.on(EvMessage) +async def on_message(client: TryxClient, event: EvMessage) -> None: + """Handle incoming media requests.""" + data = event.data + source = data.message_info.source + chat_jid = source.chat + sender_jid = source.sender + text = (data.get_text() or "").strip().lower() + + print(f"[message] from={jid_to_text(sender_jid)} chat={jid_to_text(chat_jid)} text={text!r}") + + if not text: + return + + # ── /photo ─────────────────────────────────────────────────────────── + if text == "photo": + try: + await client.chatstate.send_composing(chat_jid) + photo_data = await download_bytes(SAMPLE_MEDIA["photo"]["url"]) + result = await client.send_photo( + chat_jid, photo_data, caption="Sample photo from public domain" + ) + print(f"[photo] sent: {result.message_id}") + except Exception as exc: + await client.send_text(chat_jid, f"Failed to send photo: {exc}", quoted=event) + + # ── /document ──────────────────────────────────────────────────────── + elif text == "document": + try: + await client.chatstate.send_composing(chat_jid) + doc_data = await download_bytes(SAMPLE_MEDIA["document"]["url"]) + result = await client.send_document( + chat_jid, doc_data, file_name="sample.pdf", caption="Sample PDF document" + ) + print(f"[document] sent: {result.message_id}") + except Exception as exc: + await client.send_text(chat_jid, f"Failed to send document: {exc}", quoted=event) + + # ── /audio ─────────────────────────────────────────────────────────── + elif text == "audio": + try: + await client.chatstate.send_composing(chat_jid) + audio_data = await download_bytes(SAMPLE_MEDIA["audio"]["url"]) + result = await client.send_audio(chat_jid, audio_data) + print(f"[audio] sent: {result.message_id}") + except Exception as exc: + await client.send_text(chat_jid, f"Failed to send audio: {exc}", quoted=event) + + # ── /video ─────────────────────────────────────────────────────────── + elif text == "video": + try: + await client.chatstate.send_composing(chat_jid) + video_data = await download_bytes(SAMPLE_MEDIA["video"]["url"]) + result = await client.send_video( + chat_jid, video_data, caption="Sample video clip" + ) + print(f"[video] sent: {result.message_id}") + except Exception as exc: + await client.send_text(chat_jid, f"Failed to send video: {exc}", quoted=event) + + # ── /help ──────────────────────────────────────────────────────────── + elif text == "help": + help_text = ( + "*Media Bot Commands*\n\n" + "• photo — send a sample PNG image\n" + "• document — send a sample PDF\n" + "• audio — send a sample MP3 clip\n" + "• video — send a sample MP4 video\n" + "• help — show this message" + ) + await client.send_text(chat_jid, help_text, quoted=event) + + +# ── Entry point ────────────────────────────────────────────────────────────── + +async def main() -> None: + print(f"Starting media bot with DB: {DB_PATH}") + await app.run() + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/pyproject.toml b/pyproject.toml index 1513128..16a8c2b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,7 +47,7 @@ classifiers = [ urls = { Homepage = "https://github.com/krypton-byte/tryx", Repository = "https://github.com/krypton-byte/tryx", Documentation = "https://krypton-byte.github.io/tryx/", Issues = "https://github.com/krypton-byte/tryx/issues" } dynamic = ["version"] dependencies = [ - "protobuf>=5.29.6", + "protobuf>=5.28.3,<7", ] [tool.maturin] @@ -56,6 +56,7 @@ python-source = "python" [dependency-groups] dev = [ + "grpcio-tools>=1.70.0", "maturin>=1.12,<2.0", "mypy>=1.14.0", "mypy-protobuf>=5.0.0", diff --git a/python/tryx/backend.pyi b/python/tryx/backend.pyi index f94a937..76f49b1 100644 --- a/python/tryx/backend.pyi +++ b/python/tryx/backend.pyi @@ -111,7 +111,7 @@ class MsgSecretEntry: class FfiStoreProtocol(Protocol): """Structural typing protocol for native FFI-based storage backends. - Any object exposing a ``lib_path`` attribute and a ``connect_string`` + Any object exposing a ``lib_path`` attribute and a ``config_json`` attribute satisfies this protocol without inheriting from anything in the Tryx package — keeping third-party store packages fully decoupled. @@ -122,18 +122,20 @@ class FfiStoreProtocol(Protocol): Example (tryx-store-postgres):: + import json + class PostgresStore: lib_path: str # path to compiled .so - connect_string: str + config_json: str backend = PostgresStore( lib_path="./libtryx_pg.so", - connect_string="host=localhost dbname=tryx", + config_json=json.dumps({"host": "localhost", "dbname": "tryx"}), ) """ lib_path: str - connect_string: str + config_json: str # ── Pure Python Store Base ─────────────────────────────────────────────────── diff --git a/python/tryx/waproto/whatsapp_pb2.py b/python/tryx/waproto/whatsapp_pb2.py index a1bb3ae..f85410f 100644 --- a/python/tryx/waproto/whatsapp_pb2.py +++ b/python/tryx/waproto/whatsapp_pb2.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # NO CHECKED-IN PROTOBUF GENCODE -# source: waproto/whatsapp.proto -# Protobuf Python Version: 7.34.1 +# source: whatsapp.proto +# Protobuf Python Version: 5.28.3 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -11,11 +11,11 @@ from google.protobuf.internal import builder as _builder _runtime_version.ValidateProtobufRuntimeVersion( _runtime_version.Domain.PUBLIC, - 7, - 34, - 1, + 5, + 28, + 3, '', - 'waproto/whatsapp.proto' + 'whatsapp.proto' ) # @@protoc_insertion_point(imports) @@ -24,11 +24,11 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16waproto/whatsapp.proto\x12\x08whatsapp\"\xaa\x01\n\x11\x41\x44VDeviceIdentity\x12\r\n\x05rawId\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x10\n\x08keyIndex\x18\x03 \x01(\r\x12\x30\n\x0b\x61\x63\x63ountType\x18\x04 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType\x12/\n\ndeviceType\x18\x05 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType\"\x95\x01\n\x0f\x41\x44VKeyIndexList\x12\r\n\x05rawId\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x14\n\x0c\x63urrentIndex\x18\x03 \x01(\r\x12\x18\n\x0cvalidIndexes\x18\x04 \x03(\rB\x02\x10\x01\x12\x30\n\x0b\x61\x63\x63ountType\x18\x05 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType\"z\n\x17\x41\x44VSignedDeviceIdentity\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x1b\n\x13\x61\x63\x63ountSignatureKey\x18\x02 \x01(\x0c\x12\x18\n\x10\x61\x63\x63ountSignature\x18\x03 \x01(\x0c\x12\x17\n\x0f\x64\x65viceSignature\x18\x04 \x01(\x0c\"n\n\x1b\x41\x44VSignedDeviceIdentityHMAC\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x0c\n\x04hmac\x18\x02 \x01(\x0c\x12\x30\n\x0b\x61\x63\x63ountType\x18\x03 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType\"_\n\x15\x41\x44VSignedKeyIndexList\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x18\n\x10\x61\x63\x63ountSignature\x18\x02 \x01(\x0c\x12\x1b\n\x13\x61\x63\x63ountSignatureKey\x18\x03 \x01(\x0c\"\x94\x04\n\x0b\x41IHomeState\x12\x15\n\rlastFetchTime\x18\x01 \x01(\x03\x12=\n\x11\x63\x61pabilityOptions\x18\x02 \x03(\x0b\x32\".whatsapp.AIHomeState.AIHomeOption\x12?\n\x13\x63onversationOptions\x18\x03 \x03(\x0b\x32\".whatsapp.AIHomeState.AIHomeOption\x1a\xed\x02\n\x0c\x41IHomeOption\x12\x41\n\x04type\x18\x01 \x01(\x0e\x32\x33.whatsapp.AIHomeState.AIHomeOption.AIHomeActionType\x12\r\n\x05title\x18\x02 \x01(\t\x12\x12\n\npromptText\x18\x03 \x01(\t\x12\x11\n\tsessionId\x18\x04 \x01(\t\x12\x1a\n\x12imageWdsIdentifier\x18\x05 \x01(\t\x12\x16\n\x0eimageTintColor\x18\x06 \x01(\t\x12\x1c\n\x14imageBackgroundColor\x18\x07 \x01(\t\x12\x12\n\ncardTypeId\x18\x08 \x01(\t\"~\n\x10\x41IHomeActionType\x12\n\n\x06PROMPT\x10\x00\x12\x10\n\x0c\x43REATE_IMAGE\x10\x01\x12\x11\n\rANIMATE_PHOTO\x10\x02\x12\x10\n\x0c\x41NALYZE_FILE\x10\x03\x12\x0f\n\x0b\x43OLLABORATE\x10\x04\x12\x16\n\x12OPEN_GREETING_CARD\x10\x05\"f\n\x18\x41IMediaCollectionMessage\x12\x14\n\x0c\x63ollectionId\x18\x01 \x01(\t\x12\x1a\n\x12\x65xpectedMediaCount\x18\x02 \x01(\r\x12\x18\n\x10hasGlobalCaption\x18\x03 \x01(\x08\"K\n\x19\x41IMediaCollectionMetadata\x12\x14\n\x0c\x63ollectionId\x18\x01 \x01(\t\x12\x18\n\x10uploadOrderIndex\x18\x02 \x01(\r\"M\n\x13\x41IMetadataOperation\x12\x36\n\x11hatchMetadataSync\x18\x01 \x01(\x0b\x32\x1b.whatsapp.HatchMetadataSync\"p\n\rAIQueryFanout\x12(\n\nmessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\"]\n\x14\x41IRegenerateMetadata\x12(\n\nmessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x1b\n\x13responseTimestampMs\x18\x02 \x01(\x03\"\xc1\x04\n\x1a\x41IRichResponseCodeMetadata\x12\x14\n\x0c\x63odeLanguage\x18\x01 \x01(\t\x12P\n\ncodeBlocks\x18\x02 \x03(\x0b\x32<.whatsapp.AIRichResponseCodeMetadata.AIRichResponseCodeBlock\x1a\x8b\x01\n\x17\x41IRichResponseCodeBlock\x12[\n\rhighlightType\x18\x01 \x01(\x0e\x32\x44.whatsapp.AIRichResponseCodeMetadata.AIRichResponseCodeHighlightType\x12\x13\n\x0b\x63odeContent\x18\x02 \x01(\t\"\xac\x02\n\x1f\x41IRichResponseCodeHighlightType\x12+\n\'AI_RICH_RESPONSE_CODE_HIGHLIGHT_DEFAULT\x10\x00\x12+\n\'AI_RICH_RESPONSE_CODE_HIGHLIGHT_KEYWORD\x10\x01\x12*\n&AI_RICH_RESPONSE_CODE_HIGHLIGHT_METHOD\x10\x02\x12*\n&AI_RICH_RESPONSE_CODE_HIGHLIGHT_STRING\x10\x03\x12*\n&AI_RICH_RESPONSE_CODE_HIGHLIGHT_NUMBER\x10\x04\x12+\n\'AI_RICH_RESPONSE_CODE_HIGHLIGHT_COMMENT\x10\x05\"\x89\x04\n\"AIRichResponseContentItemsMetadata\x12\x65\n\ritemsMetadata\x18\x01 \x03(\x0b\x32N.whatsapp.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadata\x12M\n\x0b\x63ontentType\x18\x02 \x01(\x0e\x32\x38.whatsapp.AIRichResponseContentItemsMetadata.ContentType\x1a\x99\x01\n!AIRichResponseContentItemMetadata\x12W\n\x08reelItem\x18\x01 \x01(\x0b\x32\x43.whatsapp.AIRichResponseContentItemsMetadata.AIRichResponseReelItemH\x00\x42\x1b\n\x19\x61IRichResponseContentItem\x1ag\n\x16\x41IRichResponseReelItem\x12\r\n\x05title\x18\x01 \x01(\t\x12\x16\n\x0eprofileIconUrl\x18\x02 \x01(\t\x12\x14\n\x0cthumbnailUrl\x18\x03 \x01(\t\x12\x10\n\x08videoUrl\x18\x04 \x01(\t\"(\n\x0b\x43ontentType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08\x43\x41ROUSEL\x10\x01\"\xe5\x02\n\x1d\x41IRichResponseDynamicMetadata\x12W\n\x04type\x18\x01 \x01(\x0e\x32I.whatsapp.AIRichResponseDynamicMetadata.AIRichResponseDynamicMetadataType\x12\x0f\n\x07version\x18\x02 \x01(\x04\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x11\n\tloopCount\x18\x04 \x01(\r\"\xb9\x01\n!AIRichResponseDynamicMetadataType\x12\x32\n.AI_RICH_RESPONSE_DYNAMIC_METADATA_TYPE_UNKNOWN\x10\x00\x12\x30\n,AI_RICH_RESPONSE_DYNAMIC_METADATA_TYPE_IMAGE\x10\x01\x12.\n*AI_RICH_RESPONSE_DYNAMIC_METADATA_TYPE_GIF\x10\x02\"\x8e\x01\n\x1f\x41IRichResponseGridImageMetadata\x12\x36\n\x0cgridImageUrl\x18\x01 \x01(\x0b\x32 .whatsapp.AIRichResponseImageURL\x12\x33\n\timageUrls\x18\x02 \x03(\x0b\x32 .whatsapp.AIRichResponseImageURL\"]\n\x16\x41IRichResponseImageURL\x12\x17\n\x0fimagePreviewUrl\x18\x01 \x01(\t\x12\x17\n\x0fimageHighResUrl\x18\x02 \x01(\t\x12\x11\n\tsourceUrl\x18\x03 \x01(\t\"\x95\x03\n!AIRichResponseInlineImageMetadata\x12\x32\n\x08imageUrl\x18\x01 \x01(\x0b\x32 .whatsapp.AIRichResponseImageURL\x12\x11\n\timageText\x18\x02 \x01(\t\x12[\n\talignment\x18\x03 \x01(\x0e\x32H.whatsapp.AIRichResponseInlineImageMetadata.AIRichResponseImageAlignment\x12\x12\n\ntapLinkUrl\x18\x04 \x01(\t\"\xb7\x01\n\x1c\x41IRichResponseImageAlignment\x12\x31\n-AI_RICH_RESPONSE_IMAGE_LAYOUT_LEADING_ALIGNED\x10\x00\x12\x32\n.AI_RICH_RESPONSE_IMAGE_LAYOUT_TRAILING_ALIGNED\x10\x01\x12\x30\n,AI_RICH_RESPONSE_IMAGE_LAYOUT_CENTER_ALIGNED\x10\x02\"\xf0\x02\n\x1b\x41IRichResponseLatexMetadata\x12\x0c\n\x04text\x18\x01 \x01(\t\x12X\n\x0b\x65xpressions\x18\x02 \x03(\x0b\x32\x43.whatsapp.AIRichResponseLatexMetadata.AIRichResponseLatexExpression\x1a\xe8\x01\n\x1d\x41IRichResponseLatexExpression\x12\x17\n\x0flatexExpression\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\r\n\x05width\x18\x03 \x01(\x01\x12\x0e\n\x06height\x18\x04 \x01(\x01\x12\x12\n\nfontHeight\x18\x05 \x01(\x01\x12\x17\n\x0fimageTopPadding\x18\x06 \x01(\x01\x12\x1b\n\x13imageLeadingPadding\x18\x07 \x01(\x01\x12\x1a\n\x12imageBottomPadding\x18\x08 \x01(\x01\x12\x1c\n\x14imageTrailingPadding\x18\t \x01(\x01\"\xe2\x02\n\x19\x41IRichResponseMapMetadata\x12\x16\n\x0e\x63\x65nterLatitude\x18\x01 \x01(\x01\x12\x17\n\x0f\x63\x65nterLongitude\x18\x02 \x01(\x01\x12\x15\n\rlatitudeDelta\x18\x03 \x01(\x01\x12\x16\n\x0elongitudeDelta\x18\x04 \x01(\x01\x12T\n\x0b\x61nnotations\x18\x05 \x03(\x0b\x32?.whatsapp.AIRichResponseMapMetadata.AIRichResponseMapAnnotation\x12\x14\n\x0cshowInfoList\x18\x06 \x01(\x08\x1ay\n\x1b\x41IRichResponseMapAnnotation\x12\x18\n\x10\x61nnotationNumber\x18\x01 \x01(\r\x12\x10\n\x08latitude\x18\x02 \x01(\x01\x12\x11\n\tlongitude\x18\x03 \x01(\x01\x12\r\n\x05title\x18\x04 \x01(\t\x12\x0c\n\x04\x62ody\x18\x05 \x01(\t\"\xf8\x01\n\x15\x41IRichResponseMessage\x12\x38\n\x0bmessageType\x18\x01 \x01(\x0e\x32#.whatsapp.AIRichResponseMessageType\x12\x37\n\x0bsubmessages\x18\x02 \x03(\x0b\x32\".whatsapp.AIRichResponseSubMessage\x12@\n\x0funifiedResponse\x18\x03 \x01(\x0b\x32\'.whatsapp.AIRichResponseUnifiedResponse\x12*\n\x0b\x63ontextInfo\x18\x04 \x01(\x0b\x32\x15.whatsapp.ContextInfo\"\xf6\x04\n\x18\x41IRichResponseSubMessage\x12;\n\x0bmessageType\x18\x01 \x01(\x0e\x32&.whatsapp.AIRichResponseSubMessageType\x12\x44\n\x11gridImageMetadata\x18\x02 \x01(\x0b\x32).whatsapp.AIRichResponseGridImageMetadata\x12\x13\n\x0bmessageText\x18\x03 \x01(\t\x12\x42\n\rimageMetadata\x18\x04 \x01(\x0b\x32+.whatsapp.AIRichResponseInlineImageMetadata\x12:\n\x0c\x63odeMetadata\x18\x05 \x01(\x0b\x32$.whatsapp.AIRichResponseCodeMetadata\x12<\n\rtableMetadata\x18\x06 \x01(\x0b\x32%.whatsapp.AIRichResponseTableMetadata\x12@\n\x0f\x64ynamicMetadata\x18\x07 \x01(\x0b\x32\'.whatsapp.AIRichResponseDynamicMetadata\x12<\n\rlatexMetadata\x18\x08 \x01(\x0b\x32%.whatsapp.AIRichResponseLatexMetadata\x12\x38\n\x0bmapMetadata\x18\t \x01(\x0b\x32#.whatsapp.AIRichResponseMapMetadata\x12J\n\x14\x63ontentItemsMetadata\x18\n \x01(\x0b\x32,.whatsapp.AIRichResponseContentItemsMetadata\"\xb4\x01\n\x1b\x41IRichResponseTableMetadata\x12J\n\x04rows\x18\x01 \x03(\x0b\x32<.whatsapp.AIRichResponseTableMetadata.AIRichResponseTableRow\x12\r\n\x05title\x18\x02 \x01(\t\x1a:\n\x16\x41IRichResponseTableRow\x12\r\n\x05items\x18\x01 \x03(\t\x12\x11\n\tisHeading\x18\x02 \x01(\x08\"-\n\x1d\x41IRichResponseUnifiedResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"X\n\x1c\x41ISubscriptionUpsellMetadata\x12\x38\n\x0brequestType\x18\x01 \x01(\x0e\x32#.whatsapp.AISubscriptionRequestType\"\xed\x02\n\x0c\x41IThreadInfo\x12=\n\nserverInfo\x18\x01 \x01(\x0b\x32).whatsapp.AIThreadInfo.AIThreadServerInfo\x12=\n\nclientInfo\x18\x02 \x01(\x0b\x32).whatsapp.AIThreadInfo.AIThreadClientInfo\x1a\xb9\x01\n\x12\x41IThreadClientInfo\x12\x44\n\x04type\x18\x01 \x01(\x0e\x32\x36.whatsapp.AIThreadInfo.AIThreadClientInfo.AIThreadType\x12\x15\n\rsourceChatJid\x18\x02 \x01(\t\"F\n\x0c\x41IThreadType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\x12\r\n\tINCOGNITO\x10\x02\x12\r\n\tSIDE_CHAT\x10\x03\x1a#\n\x12\x41IThreadServerInfo\x12\r\n\x05title\x18\x01 \x01(\t\"X\n\x07\x41\x63\x63ount\x12\x0b\n\x03lid\x18\x01 \x01(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x13\n\x0b\x63ountryCode\x18\x03 \x01(\t\x12\x19\n\x11isUsernameDeleted\x18\x04 \x01(\x08\"g\n\x18\x41\x63\x63ountLinkingOpaqueData\x12\x13\n\x0b\x61\x63\x63\x65sstoken\x18\x01 \x01(\t\x12\x0c\n\x04\x66\x62id\x18\x02 \x01(\t\x12\r\n\x05nonce\x18\x03 \x01(\t\x12\x19\n\x11\x65ncryptedPassword\x18\x04 \x01(\t\".\n\nActionLink\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x13\n\x0b\x62uttonTitle\x18\x02 \x01(\t\"w\n\x14\x41utoDownloadSettings\x12\x16\n\x0e\x64ownloadImages\x18\x01 \x01(\x08\x12\x15\n\rdownloadAudio\x18\x02 \x01(\x08\x12\x15\n\rdownloadVideo\x18\x03 \x01(\x08\x12\x19\n\x11\x64ownloadDocuments\x18\x04 \x01(\x08\"4\n\x12\x41vatarUserSettings\x12\x0c\n\x04\x66\x62id\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t\"\xb2\x02\n\x12\x42izAccountLinkInfo\x12\x1b\n\x13whatsappBizAcctFbid\x18\x01 \x01(\x04\x12\x1a\n\x12whatsappAcctNumber\x18\x02 \x01(\t\x12\x11\n\tissueTime\x18\x03 \x01(\x04\x12\x41\n\x0bhostStorage\x18\x04 \x01(\x0e\x32,.whatsapp.BizAccountLinkInfo.HostStorageType\x12=\n\x0b\x61\x63\x63ountType\x18\x05 \x01(\x0e\x32(.whatsapp.BizAccountLinkInfo.AccountType\"\x1d\n\x0b\x41\x63\x63ountType\x12\x0e\n\nENTERPRISE\x10\x00\"/\n\x0fHostStorageType\x12\x0e\n\nON_PREMISE\x10\x00\x12\x0c\n\x08\x46\x41\x43\x45\x42OOK\x10\x01\"b\n\x11\x42izAccountPayload\x12\x34\n\tvnameCert\x18\x01 \x01(\x0b\x32!.whatsapp.VerifiedNameCertificate\x12\x17\n\x0f\x62izAcctLinkInfo\x18\x02 \x01(\x0c\"\xe6\x03\n\x0f\x42izIdentityInfo\x12<\n\x06vlevel\x18\x01 \x01(\x0e\x32,.whatsapp.BizIdentityInfo.VerifiedLevelValue\x12\x34\n\tvnameCert\x18\x02 \x01(\x0b\x32!.whatsapp.VerifiedNameCertificate\x12\x0e\n\x06signed\x18\x03 \x01(\x08\x12\x0f\n\x07revoked\x18\x04 \x01(\x08\x12>\n\x0bhostStorage\x18\x05 \x01(\x0e\x32).whatsapp.BizIdentityInfo.HostStorageType\x12@\n\x0c\x61\x63tualActors\x18\x06 \x01(\x0e\x32*.whatsapp.BizIdentityInfo.ActualActorsType\x12\x15\n\rprivacyModeTs\x18\x07 \x01(\x04\x12\x17\n\x0f\x66\x65\x61tureControls\x18\x08 \x01(\x04\"%\n\x10\x41\x63tualActorsType\x12\x08\n\x04SELF\x10\x00\x12\x07\n\x03\x42SP\x10\x01\"/\n\x0fHostStorageType\x12\x0e\n\nON_PREMISE\x10\x00\x12\x0c\n\x08\x46\x41\x43\x45\x42OOK\x10\x01\"4\n\x12VerifiedLevelValue\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03LOW\x10\x01\x12\x08\n\x04HIGH\x10\x02\"\xe7\x01\n\x18\x42otAgeCollectionMetadata\x12\x1d\n\x15\x61geCollectionEligible\x18\x01 \x01(\x08\x12*\n\"shouldTriggerAgeCollectionOnClient\x18\x02 \x01(\x08\x12O\n\x11\x61geCollectionType\x18\x03 \x01(\x0e\x32\x34.whatsapp.BotAgeCollectionMetadata.AgeCollectionType\"/\n\x11\x41geCollectionType\x12\x0e\n\nO18_BINARY\x10\x00\x12\n\n\x06WAFFLE\x10\x01\")\n\x18\x42otAgentDeepLinkMetadata\x12\r\n\x05token\x18\x01 \x01(\t\"P\n\x10\x42otAgentMetadata\x12<\n\x10\x64\x65\x65pLinkMetadata\x18\x01 \x01(\x0b\x32\".whatsapp.BotAgentDeepLinkMetadata\"\x89\x12\n\x15\x42otCapabilityMetadata\x12G\n\x0c\x63\x61pabilities\x18\x01 \x03(\x0e\x32\x31.whatsapp.BotCapabilityMetadata.BotCapabilityType\"\xa6\x11\n\x11\x42otCapabilityType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x16\n\x12PROGRESS_INDICATOR\x10\x01\x12\x19\n\x15RICH_RESPONSE_HEADING\x10\x02\x12\x1d\n\x19RICH_RESPONSE_NESTED_LIST\x10\x03\x12\r\n\tAI_MEMORY\x10\x04\x12 \n\x1cRICH_RESPONSE_THREAD_SURFING\x10\x05\x12\x17\n\x13RICH_RESPONSE_TABLE\x10\x06\x12\x16\n\x12RICH_RESPONSE_CODE\x10\x07\x12%\n!RICH_RESPONSE_STRUCTURED_RESPONSE\x10\x08\x12\x1e\n\x1aRICH_RESPONSE_INLINE_IMAGE\x10\t\x12#\n\x1fWA_IG_1P_PLUGIN_RANKING_CONTROL\x10\n\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_1\x10\x0b\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_2\x10\x0c\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_3\x10\r\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_4\x10\x0e\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_5\x10\x0f\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_6\x10\x10\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_7\x10\x11\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_8\x10\x12\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_9\x10\x13\x12%\n!WA_IG_1P_PLUGIN_RANKING_UPDATE_10\x10\x14\x12\x1d\n\x19RICH_RESPONSE_SUB_HEADING\x10\x15\x12\x1c\n\x18RICH_RESPONSE_GRID_IMAGE\x10\x16\x12\x18\n\x14\x41I_STUDIO_UGC_MEMORY\x10\x17\x12\x17\n\x13RICH_RESPONSE_LATEX\x10\x18\x12\x16\n\x12RICH_RESPONSE_MAPS\x10\x19\x12\x1e\n\x1aRICH_RESPONSE_INLINE_REELS\x10\x1a\x12\x14\n\x10\x41GENTIC_PLANNING\x10\x1b\x12\x13\n\x0f\x41\x43\x43OUNT_LINKING\x10\x1c\x12\x1c\n\x18STREAMING_DISAGGREGATION\x10\x1d\x12\x1f\n\x1bRICH_RESPONSE_GRID_IMAGE_3P\x10\x1e\x12\x1e\n\x1aRICH_RESPONSE_LATEX_INLINE\x10\x1f\x12\x0e\n\nQUERY_PLAN\x10 \x12\x15\n\x11PROACTIVE_MESSAGE\x10!\x12\"\n\x1eRICH_RESPONSE_UNIFIED_RESPONSE\x10\"\x12\x15\n\x11PROMOTION_MESSAGE\x10#\x12\x1b\n\x17SIMPLIFIED_PROFILE_PAGE\x10$\x12$\n RICH_RESPONSE_SOURCES_IN_MESSAGE\x10%\x12%\n!RICH_RESPONSE_SIDE_BY_SIDE_SURVEY\x10&\x12(\n$RICH_RESPONSE_UNIFIED_TEXT_COMPONENT\x10\'\x12\x14\n\x10\x41I_SHARED_MEMORY\x10(\x12!\n\x1dRICH_RESPONSE_UNIFIED_SOURCES\x10)\x12*\n&RICH_RESPONSE_UNIFIED_DOMAIN_CITATIONS\x10*\x12)\n%RICH_RESPONSE_UR_INLINE_REELS_ENABLED\x10+\x12\'\n#RICH_RESPONSE_UR_MEDIA_GRID_ENABLED\x10,\x12*\n&RICH_RESPONSE_UR_TIMESTAMP_PLACEHOLDER\x10-\x12\x1f\n\x1bRICH_RESPONSE_IN_APP_SURVEY\x10.\x12\x1e\n\x1a\x41I_RESPONSE_MODEL_BRANDING\x10/\x12\'\n#SESSION_TRANSPARENCY_SYSTEM_MESSAGE\x10\x30\x12\x1e\n\x1aRICH_RESPONSE_UR_REASONING\x10\x31\x12(\n$RICH_RESPONSE_UR_ZEITGEIST_CITATIONS\x10\x32\x12\'\n#RICH_RESPONSE_UR_ZEITGEIST_CAROUSEL\x10\x33\x12 \n\x1c\x41I_IMAGINE_LOADING_INDICATOR\x10\x34\x12\x1c\n\x18RICH_RESPONSE_UR_IMAGINE\x10\x35\x12-\n)AI_IMAGINE_UR_TO_NATIVE_LOADING_INDICATOR\x10\x36\x12\"\n\x1eRICH_RESPONSE_UR_BLOKS_ENABLED\x10\x37\x12&\n\"RICH_RESPONSE_INLINE_LINKS_ENABLED\x10\x38\x12\"\n\x1eRICH_RESPONSE_UR_IMAGINE_VIDEO\x10\x39\x12\x18\n\x14JSON_PATCH_STREAMING\x10:\x12\x17\n\x13\x41I_TAB_FORCE_CLIPPY\x10;\x12%\n!UNIFIED_RESPONSE_EMBEDDED_SCREENS\x10<\x12\x1b\n\x17\x41I_SUBSCRIPTION_ENABLED\x10=\x12.\n*UNIFIED_RESPONSE_AI_CONTENT_SEARCH_ENABLED\x10>\x12+\n\'UNIFIED_RESPONSE_MARKDOWN_LINKS_ENABLED\x10?\x12$\n AI_RICH_RESPONSE_MAPS_V2_ENABLED\x10@\x12$\n AI_SUBSCRIPTION_METERING_ENABLED\x10\x41\"\\\n\x12\x42otCommandMetadata\x12\x13\n\x0b\x63ommandName\x18\x01 \x01(\t\x12\x1a\n\x12\x63ommandDescription\x18\x02 \x01(\t\x12\x15\n\rcommandPrompt\x18\x03 \x01(\t\"\xa8\x01\n\x1a\x42otDocumentMessageMetadata\x12K\n\npluginType\x18\x01 \x01(\x0e\x32\x37.whatsapp.BotDocumentMessageMetadata.DocumentPluginType\"=\n\x12\x44ocumentPluginType\x12\x13\n\x0fTEXT_EXTRACTION\x10\x00\x12\x12\n\x0eOCR_AND_IMAGES\x10\x01\"\x86\x1a\n\x12\x42otFeedbackMessage\x12(\n\nmessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12:\n\x04kind\x18\x02 \x01(\x0e\x32,.whatsapp.BotFeedbackMessage.BotFeedbackKind\x12\x0c\n\x04text\x18\x03 \x01(\t\x12\x14\n\x0ckindNegative\x18\x04 \x01(\x04\x12\x14\n\x0ckindPositive\x18\x05 \x01(\x04\x12;\n\nkindReport\x18\x06 \x01(\x0e\x32\'.whatsapp.BotFeedbackMessage.ReportKind\x12W\n\x18sideBySideSurveyMetadata\x18\x07 \x01(\x0b\x32\x35.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata\x1a\x9d\x0e\n\x18SideBySideSurveyMetadata\x12\x19\n\x11selectedRequestId\x18\x01 \x01(\t\x12\x10\n\x08surveyId\x18\x02 \x01(\r\x12\x18\n\x10simonSessionFbid\x18\x03 \x01(\t\x12\x14\n\x0cresponseOtid\x18\x04 \x01(\t\x12!\n\x19responseTimestampMsString\x18\x05 \x01(\t\x12!\n\x19isSelectedResponsePrimary\x18\x06 \x01(\x08\x12\x17\n\x0fmessageIdToEdit\x18\x07 \x01(\t\x12j\n\ranalyticsData\x18\x08 \x01(\x0b\x32S.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SideBySideSurveyAnalyticsData\x12v\n\x13metaAiAnalyticsData\x18\t \x01(\x0b\x32Y.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData\x1ag\n\x1dSideBySideSurveyAnalyticsData\x12\x12\n\ntessaEvent\x18\x01 \x01(\t\x12\x18\n\x10tessaSessionFbid\x18\x02 \x01(\t\x12\x18\n\x10simonSessionFbid\x18\x03 \x01(\t\x1a\xf7\t\n#SidebySideSurveyMetaAiAnalyticsData\x12\x10\n\x08surveyId\x18\x01 \x01(\r\x12\x19\n\x11primaryResponseId\x18\x02 \x01(\t\x12\x13\n\x0btestArmName\x18\x03 \x01(\t\x12\x19\n\x11timestampMsString\x18\x04 \x01(\t\x12\x9d\x01\n\x12\x63taImpressionEvent\x18\x05 \x01(\x0b\x32\x80\x01.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAImpressionEventData\x12\x92\x01\n\rctaClickEvent\x18\x06 \x01(\x0b\x32{.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAClickEventData\x12\x9f\x01\n\x13\x63\x61rdImpressionEvent\x18\x07 \x01(\x0b\x32\x81\x01.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCardImpressionEventData\x12\x92\x01\n\rresponseEvent\x18\x08 \x01(\x0b\x32{.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyResponseEventData\x12\x90\x01\n\x0c\x61\x62\x61ndonEvent\x18\t \x01(\x0b\x32z.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyAbandonEventData\x1a\x44\n SideBySideSurveyAbandonEventData\x12 \n\x18\x61\x62\x61ndonDwellTimeMsString\x18\x01 \x01(\t\x1a\\\n!SideBySideSurveyCTAClickEventData\x12\x17\n\x0fisSurveyExpired\x18\x01 \x01(\x08\x12\x1e\n\x16\x63lickDwellTimeMsString\x18\x02 \x01(\t\x1a\x41\n&SideBySideSurveyCTAImpressionEventData\x12\x17\n\x0fisSurveyExpired\x18\x01 \x01(\x08\x1a)\n\'SideBySideSurveyCardImpressionEventData\x1a\x62\n!SideBySideSurveyResponseEventData\x12!\n\x19responseDwellTimeMsString\x18\x01 \x01(\t\x12\x1a\n\x12selectedResponseId\x18\x02 \x01(\t\"\xd7\x04\n\x0f\x42otFeedbackKind\x12\x19\n\x15\x42OT_FEEDBACK_POSITIVE\x10\x00\x12!\n\x1d\x42OT_FEEDBACK_NEGATIVE_GENERIC\x10\x01\x12!\n\x1d\x42OT_FEEDBACK_NEGATIVE_HELPFUL\x10\x02\x12%\n!BOT_FEEDBACK_NEGATIVE_INTERESTING\x10\x03\x12\"\n\x1e\x42OT_FEEDBACK_NEGATIVE_ACCURATE\x10\x04\x12\x1e\n\x1a\x42OT_FEEDBACK_NEGATIVE_SAFE\x10\x05\x12\x1f\n\x1b\x42OT_FEEDBACK_NEGATIVE_OTHER\x10\x06\x12!\n\x1d\x42OT_FEEDBACK_NEGATIVE_REFUSED\x10\x07\x12\x30\n,BOT_FEEDBACK_NEGATIVE_NOT_VISUALLY_APPEALING\x10\x08\x12.\n*BOT_FEEDBACK_NEGATIVE_NOT_RELEVANT_TO_TEXT\x10\t\x12&\n\"BOT_FEEDBACK_NEGATIVE_PERSONALIZED\x10\n\x12!\n\x1d\x42OT_FEEDBACK_NEGATIVE_CLARITY\x10\x0b\x12\x35\n1BOT_FEEDBACK_NEGATIVE_DOESNT_LOOK_LIKE_THE_PERSON\x10\x0c\x12\x35\n1BOT_FEEDBACK_NEGATIVE_HALLUCINATION_INTERNAL_ONLY\x10\r\x12\x19\n\x15\x42OT_FEEDBACK_NEGATIVE\x10\x0e\"\xcb\x03\n\x1f\x42otFeedbackKindMultipleNegative\x12*\n&BOT_FEEDBACK_MULTIPLE_NEGATIVE_GENERIC\x10\x01\x12*\n&BOT_FEEDBACK_MULTIPLE_NEGATIVE_HELPFUL\x10\x02\x12.\n*BOT_FEEDBACK_MULTIPLE_NEGATIVE_INTERESTING\x10\x04\x12+\n\'BOT_FEEDBACK_MULTIPLE_NEGATIVE_ACCURATE\x10\x08\x12\'\n#BOT_FEEDBACK_MULTIPLE_NEGATIVE_SAFE\x10\x10\x12(\n$BOT_FEEDBACK_MULTIPLE_NEGATIVE_OTHER\x10 \x12*\n&BOT_FEEDBACK_MULTIPLE_NEGATIVE_REFUSED\x10@\x12:\n5BOT_FEEDBACK_MULTIPLE_NEGATIVE_NOT_VISUALLY_APPEALING\x10\x80\x01\x12\x38\n3BOT_FEEDBACK_MULTIPLE_NEGATIVE_NOT_RELEVANT_TO_TEXT\x10\x80\x02\"M\n\x1f\x42otFeedbackKindMultiplePositive\x12*\n&BOT_FEEDBACK_MULTIPLE_POSITIVE_GENERIC\x10\x01\"#\n\nReportKind\x12\x08\n\x04NONE\x10\x00\x12\x0b\n\x07GENERIC\x10\x01\"W\n\x10\x42otGroupMetadata\x12\x43\n\x14participantsMetadata\x18\x01 \x03(\x0b\x32%.whatsapp.BotGroupParticipantMetadata\".\n\x1b\x42otGroupParticipantMetadata\x12\x0f\n\x07\x62otFbid\x18\x01 \x01(\t\"\xb0\x01\n\x12\x42otImagineMetadata\x12=\n\x0bimagineType\x18\x01 \x01(\x0e\x32(.whatsapp.BotImagineMetadata.ImagineType\x12\x13\n\x0bshortPrompt\x18\x02 \x01(\t\"F\n\x0bImagineType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07IMAGINE\x10\x01\x12\x08\n\x04MEMU\x10\x02\x12\t\n\x05\x46LASH\x10\x03\x12\x08\n\x04\x45\x44IT\x10\x04\"\xb0\x01\n\x1c\x42otInfrastructureDiagnostics\x12\x45\n\nbotBackend\x18\x01 \x01(\x0e\x32\x31.whatsapp.BotInfrastructureDiagnostics.BotBackend\x12\x11\n\ttoolsUsed\x18\x02 \x03(\t\x12\x12\n\nisThinking\x18\x03 \x01(\x08\"\"\n\nBotBackend\x12\x08\n\x04\x41\x41PI\x10\x00\x12\n\n\x06\x43LIPPY\x10\x01\"\x89\x01\n\x10\x42otLinkedAccount\x12=\n\x04type\x18\x01 \x01(\x0e\x32/.whatsapp.BotLinkedAccount.BotLinkedAccountType\"6\n\x14\x42otLinkedAccountType\x12\x1e\n\x1a\x42OT_LINKED_ACCOUNT_TYPE_1P\x10\x00\"t\n\x19\x42otLinkedAccountsMetadata\x12,\n\x08\x61\x63\x63ounts\x18\x01 \x03(\x0b\x32\x1a.whatsapp.BotLinkedAccount\x12\x14\n\x0c\x61\x63\x41uthTokens\x18\x02 \x01(\x0c\x12\x13\n\x0b\x61\x63\x45rrorCode\x18\x03 \x01(\x05\"\x89\x02\n\x10\x42otMediaMetadata\x12\x12\n\nfileSha256\x18\x01 \x01(\t\x12\x10\n\x08mediaKey\x18\x02 \x01(\t\x12\x15\n\rfileEncSha256\x18\x03 \x01(\t\x12\x12\n\ndirectPath\x18\x04 \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x05 \x01(\x03\x12\x10\n\x08mimetype\x18\x06 \x01(\t\x12\x43\n\x0forientationType\x18\x07 \x01(\x0e\x32*.whatsapp.BotMediaMetadata.OrientationType\"2\n\x0fOrientationType\x12\n\n\x06\x43\x45NTER\x10\x01\x12\x08\n\x04LEFT\x10\x02\x12\t\n\x05RIGHT\x10\x03\"-\n\rBotMemoryFact\x12\x0c\n\x04\x66\x61\x63t\x18\x01 \x01(\t\x12\x0e\n\x06\x66\x61\x63tId\x18\x02 \x01(\t\"\x83\x01\n\x11\x42otMemoryMetadata\x12+\n\naddedFacts\x18\x01 \x03(\x0b\x32\x17.whatsapp.BotMemoryFact\x12-\n\x0cremovedFacts\x18\x02 \x03(\x0b\x32\x17.whatsapp.BotMemoryFact\x12\x12\n\ndisclaimer\x18\x03 \x01(\t\"A\n\x0f\x42otMemuMetadata\x12.\n\nfaceImages\x18\x01 \x03(\x0b\x32\x1a.whatsapp.BotMediaMetadata\"\x93\x01\n\x10\x42otMessageOrigin\x12=\n\x04type\x18\x01 \x01(\x0e\x32/.whatsapp.BotMessageOrigin.BotMessageOriginType\"@\n\x14\x42otMessageOriginType\x12(\n$BOT_MESSAGE_ORIGIN_TYPE_AI_INITIATED\x10\x00\"G\n\x18\x42otMessageOriginMetadata\x12+\n\x07origins\x18\x01 \x03(\x0b\x32\x1a.whatsapp.BotMessageOrigin\"j\n\x15\x42otMessageSharingInfo\x12;\n\x13\x62otEntryPointOrigin\x18\x01 \x01(\x0e\x32\x1e.whatsapp.BotMetricsEntryPoint\x12\x14\n\x0c\x66orwardScore\x18\x02 \x01(\r\"\xe4\x12\n\x0b\x42otMetadata\x12\x11\n\tpersonaId\x18\x02 \x01(\t\x12\x33\n\x0epluginMetadata\x18\x03 \x01(\x0b\x32\x1b.whatsapp.BotPluginMetadata\x12\x45\n\x17suggestedPromptMetadata\x18\x04 \x01(\x0b\x32$.whatsapp.BotSuggestedPromptMetadata\x12\x12\n\ninvokerJid\x18\x05 \x01(\t\x12\x35\n\x0fsessionMetadata\x18\x06 \x01(\x0b\x32\x1c.whatsapp.BotSessionMetadata\x12/\n\x0cmemuMetadata\x18\x07 \x01(\x0b\x32\x19.whatsapp.BotMemuMetadata\x12\x10\n\x08timezone\x18\x08 \x01(\t\x12\x37\n\x10reminderMetadata\x18\t \x01(\x0b\x32\x1d.whatsapp.BotReminderMetadata\x12\x31\n\rmodelMetadata\x18\n \x01(\x0b\x32\x1a.whatsapp.BotModelMetadata\x12\x1d\n\x15messageDisclaimerText\x18\x0b \x01(\t\x12I\n\x19progressIndicatorMetadata\x18\x0c \x01(\x0b\x32&.whatsapp.BotProgressIndicatorMetadata\x12;\n\x12\x63\x61pabilityMetadata\x18\r \x01(\x0b\x32\x1f.whatsapp.BotCapabilityMetadata\x12\x35\n\x0fimagineMetadata\x18\x0e \x01(\x0b\x32\x1c.whatsapp.BotImagineMetadata\x12\x33\n\x0ememoryMetadata\x18\x0f \x01(\x0b\x32\x1b.whatsapp.BotMemoryMetadata\x12\x39\n\x11renderingMetadata\x18\x10 \x01(\x0b\x32\x1e.whatsapp.BotRenderingMetadata\x12\x38\n\x12\x62otMetricsMetadata\x18\x11 \x01(\x0b\x32\x1c.whatsapp.BotMetricsMetadata\x12\x46\n\x19\x62otLinkedAccountsMetadata\x18\x12 \x01(\x0b\x32#.whatsapp.BotLinkedAccountsMetadata\x12\x41\n\x1brichResponseSourcesMetadata\x18\x13 \x01(\x0b\x32\x1c.whatsapp.BotSourcesMetadata\x12\x1d\n\x15\x61iConversationContext\x18\x14 \x01(\x0c\x12J\n\x1b\x62otPromotionMessageMetadata\x18\x15 \x01(\x0b\x32%.whatsapp.BotPromotionMessageMetadata\x12\x44\n\x18\x62otModeSelectionMetadata\x18\x16 \x01(\x0b\x32\".whatsapp.BotModeSelectionMetadata\x12\x34\n\x10\x62otQuotaMetadata\x18\x17 \x01(\x0b\x32\x1a.whatsapp.BotQuotaMetadata\x12\x44\n\x18\x62otAgeCollectionMetadata\x18\x18 \x01(\x0b\x32\".whatsapp.BotAgeCollectionMetadata\x12#\n\x1b\x63onversationStarterPromptId\x18\x19 \x01(\t\x12\x15\n\rbotResponseId\x18\x1a \x01(\t\x12H\n\x14verificationMetadata\x18\x1b \x01(\x0b\x32*.whatsapp.BotSignatureVerificationMetadata\x12\x45\n\x17unifiedResponseMutation\x18\x1c \x01(\x0b\x32$.whatsapp.BotUnifiedResponseMutation\x12\x44\n\x18\x62otMessageOriginMetadata\x18\x1d \x01(\x0b\x32\".whatsapp.BotMessageOriginMetadata\x12@\n\x16inThreadSurveyMetadata\x18\x1e \x01(\x0b\x32 .whatsapp.InThreadSurveyMetadata\x12-\n\rbotThreadInfo\x18\x1f \x01(\x0b\x32\x16.whatsapp.AIThreadInfo\x12:\n\x12regenerateMetadata\x18 \x01(\x0b\x32\x1e.whatsapp.AIRegenerateMetadata\x12J\n\x1bsessionTransparencyMetadata\x18! \x01(\x0b\x32%.whatsapp.SessionTransparencyMetadata\x12H\n\x1a\x62otDocumentMessageMetadata\x18\" \x01(\x0b\x32$.whatsapp.BotDocumentMessageMetadata\x12\x34\n\x10\x62otGroupMetadata\x18# \x01(\x0b\x32\x1a.whatsapp.BotGroupMetadata\x12H\n\x1a\x62otRenderingConfigMetadata\x18$ \x01(\x0b\x32$.whatsapp.BotRenderingConfigMetadata\x12L\n\x1c\x62otInfrastructureDiagnostics\x18% \x01(\x0b\x32&.whatsapp.BotInfrastructureDiagnostics\x12\x46\n\x19\x61iMediaCollectionMetadata\x18& \x01(\x0b\x32#.whatsapp.AIMediaCollectionMetadata\x12\x35\n\x0f\x63ommandMetadata\x18\' \x01(\x0b\x32\x1c.whatsapp.BotCommandMetadata\x12G\n\x18resolvedToolCallMetadata\x18( \x01(\x0b\x32%.whatsapp.BotResolvedToolCallMetadata\x12J\n\x1asubscriptionUpsellMetadata\x18) \x01(\x0b\x32&.whatsapp.AISubscriptionUpsellMetadata\x12\x39\n\x11pttPromptMetadata\x18* \x01(\x0b\x32\x1e.whatsapp.BotPttPromptMetadata\x12\x19\n\x10internalMetadata\x18\xe7\x07 \x01(\x0c\"\xa6\x01\n\x12\x42otMetricsMetadata\x12\x15\n\rdestinationId\x18\x01 \x01(\t\x12=\n\x15\x64\x65stinationEntryPoint\x18\x02 \x01(\x0e\x32\x1e.whatsapp.BotMetricsEntryPoint\x12:\n\x0cthreadOrigin\x18\x03 \x01(\x0e\x32$.whatsapp.BotMetricsThreadEntryPoint\"\xb6\x01\n\x18\x42otModeSelectionMetadata\x12\x45\n\x04mode\x18\x01 \x03(\x0e\x32\x37.whatsapp.BotModeSelectionMetadata.BotUserSelectionMode\x12\x14\n\x0coverrideMode\x18\x02 \x03(\r\"=\n\x14\x42otUserSelectionMode\x12\x10\n\x0c\x44\x45\x46\x41ULT_MODE\x10\x00\x12\x13\n\x0fTHINK_HARD_MODE\x10\x01\"\xc9\x02\n\x10\x42otModelMetadata\x12\x37\n\tmodelType\x18\x01 \x01(\x0e\x32$.whatsapp.BotModelMetadata.ModelType\x12I\n\x12premiumModelStatus\x18\x02 \x01(\x0e\x32-.whatsapp.BotModelMetadata.PremiumModelStatus\x12\x19\n\x11modelNameOverride\x18\x03 \x01(\t\"E\n\tModelType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x0e\n\nLLAMA_PROD\x10\x01\x12\x16\n\x12LLAMA_PROD_PREMIUM\x10\x02\"O\n\x12PremiumModelStatus\x12\x12\n\x0eUNKNOWN_STATUS\x10\x00\x12\r\n\tAVAILABLE\x10\x01\x12\x16\n\x12QUOTA_EXCEED_LIMIT\x10\x02\"\xf1\x04\n\x11\x42otPluginMetadata\x12<\n\x08provider\x18\x01 \x01(\x0e\x32*.whatsapp.BotPluginMetadata.SearchProvider\x12:\n\npluginType\x18\x02 \x01(\x0e\x32&.whatsapp.BotPluginMetadata.PluginType\x12\x17\n\x0fthumbnailCdnUrl\x18\x03 \x01(\t\x12\x1a\n\x12profilePhotoCdnUrl\x18\x04 \x01(\t\x12\x19\n\x11searchProviderUrl\x18\x05 \x01(\t\x12\x16\n\x0ereferenceIndex\x18\x06 \x01(\r\x12\x1a\n\x12\x65xpectedLinksCount\x18\x07 \x01(\r\x12\x13\n\x0bsearchQuery\x18\t \x01(\t\x12\x34\n\x16parentPluginMessageKey\x18\n \x01(\x0b\x32\x14.whatsapp.MessageKey\x12?\n\x0f\x64\x65precatedField\x18\x0b \x01(\x0e\x32&.whatsapp.BotPluginMetadata.PluginType\x12@\n\x10parentPluginType\x18\x0c \x01(\x0e\x32&.whatsapp.BotPluginMetadata.PluginType\x12\x15\n\rfaviconCdnUrl\x18\r \x01(\t\"7\n\nPluginType\x12\x12\n\x0eUNKNOWN_PLUGIN\x10\x00\x12\t\n\x05REELS\x10\x01\x12\n\n\x06SEARCH\x10\x02\"@\n\x0eSearchProvider\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x42ING\x10\x01\x12\n\n\x06GOOGLE\x10\x02\x12\x0b\n\x07SUPPORT\x10\x03\"\xd1\x0b\n\x1c\x42otProgressIndicatorMetadata\x12\x1b\n\x13progressDescription\x18\x01 \x01(\t\x12U\n\rstepsMetadata\x18\x02 \x03(\x0b\x32>.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata\x12\x1f\n\x17\x65stimatedCompletionTime\x18\x03 \x01(\x03\x1a\x9b\n\n\x17\x42otPlanningStepMetadata\x12\x13\n\x0bstatusTitle\x18\x01 \x01(\t\x12\x12\n\nstatusBody\x18\x02 \x01(\t\x12x\n\x0fsourcesMetadata\x18\x03 \x03(\x0b\x32_.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata\x12\x61\n\x06status\x18\x04 \x01(\x0e\x32Q.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus\x12\x13\n\x0bisReasoning\x18\x05 \x01(\x08\x12\x18\n\x10isEnhancedSearch\x18\x06 \x01(\x08\x12o\n\x08sections\x18\x07 \x03(\x0b\x32].whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata\x1a\xc1\x01\n\x1f\x42otPlanningSearchSourceMetadata\x12\r\n\x05title\x18\x01 \x01(\t\x12h\n\x08provider\x18\x02 \x01(\x0e\x32V.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider\x12\x11\n\tsourceUrl\x18\x03 \x01(\t\x12\x12\n\nfavIconUrl\x18\x04 \x01(\t\x1a\xaf\x02\n BotPlanningSearchSourcesMetadata\x12\x13\n\x0bsourceTitle\x18\x01 \x01(\t\x12\x91\x01\n\x08provider\x18\x02 \x01(\x0e\x32\x7f.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.BotPlanningSearchSourceProvider\x12\x11\n\tsourceUrl\x18\x03 \x01(\t\"O\n\x1f\x42otPlanningSearchSourceProvider\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05OTHER\x10\x01\x12\n\n\x06GOOGLE\x10\x02\x12\x08\n\x04\x42ING\x10\x03\x1a\xc4\x01\n\x1e\x42otPlanningStepSectionMetadata\x12\x14\n\x0csectionTitle\x18\x01 \x01(\t\x12\x13\n\x0bsectionBody\x18\x02 \x01(\t\x12w\n\x0fsourcesMetadata\x18\x03 \x03(\x0b\x32^.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata\"P\n\x17\x42otSearchSourceProvider\x12\x14\n\x10UNKNOWN_PROVIDER\x10\x00\x12\t\n\x05OTHER\x10\x01\x12\n\n\x06GOOGLE\x10\x02\x12\x08\n\x04\x42ING\x10\x03\"K\n\x12PlanningStepStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07PLANNED\x10\x01\x12\r\n\tEXECUTING\x10\x02\x12\x0c\n\x08\x46INISHED\x10\x03\"\xc5\x01\n\x1b\x42otPromotionMessageMetadata\x12M\n\rpromotionType\x18\x01 \x01(\x0e\x32\x36.whatsapp.BotPromotionMessageMetadata.BotPromotionType\x12\x13\n\x0b\x62uttonTitle\x18\x02 \x01(\t\"B\n\x10\x42otPromotionType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x07\n\x03\x43\x35\x30\x10\x01\x12\x13\n\x0fSURVEY_PLATFORM\x10\x02\"7\n\x13\x42otPromptSuggestion\x12\x0e\n\x06prompt\x18\x01 \x01(\t\x12\x10\n\x08promptId\x18\x02 \x01(\t\"J\n\x14\x42otPromptSuggestions\x12\x32\n\x0bsuggestions\x18\x01 \x03(\x0b\x32\x1d.whatsapp.BotPromptSuggestion\"*\n\x14\x42otPttPromptMetadata\x12\x12\n\ntranscript\x18\x01 \x01(\t\"\xce\x02\n\x10\x42otQuotaMetadata\x12S\n\x17\x62otFeatureQuotaMetadata\x18\x01 \x03(\x0b\x32\x32.whatsapp.BotQuotaMetadata.BotFeatureQuotaMetadata\x1a\xe4\x01\n\x17\x42otFeatureQuotaMetadata\x12V\n\x0b\x66\x65\x61tureType\x18\x01 \x01(\x0e\x32\x41.whatsapp.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType\x12\x16\n\x0eremainingQuota\x18\x02 \x01(\r\x12\x1b\n\x13\x65xpirationTimestamp\x18\x03 \x01(\x04\"<\n\x0e\x42otFeatureType\x12\x13\n\x0fUNKNOWN_FEATURE\x10\x00\x12\x15\n\x11REASONING_FEATURE\x10\x01\"\x87\x03\n\x13\x42otReminderMetadata\x12/\n\x11requestMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12<\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32,.whatsapp.BotReminderMetadata.ReminderAction\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x1c\n\x14nextTriggerTimestamp\x18\x04 \x01(\x04\x12\x42\n\tfrequency\x18\x05 \x01(\x0e\x32/.whatsapp.BotReminderMetadata.ReminderFrequency\"@\n\x0eReminderAction\x12\n\n\x06NOTIFY\x10\x01\x12\n\n\x06\x43REATE\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03\x12\n\n\x06UPDATE\x10\x04\"O\n\x11ReminderFrequency\x12\x08\n\x04ONCE\x10\x01\x12\t\n\x05\x44\x41ILY\x10\x02\x12\n\n\x06WEEKLY\x10\x03\x12\x0c\n\x08\x42IWEEKLY\x10\x04\x12\x0b\n\x07MONTHLY\x10\x05\"M\n\x1a\x42otRenderingConfigMetadata\x12\x19\n\x11\x62loksVersioningId\x18\x01 \x01(\t\x12\x14\n\x0cpixelDensity\x18\x02 \x01(\x01\"\x85\x01\n\x14\x42otRenderingMetadata\x12\x38\n\x08keywords\x18\x01 \x03(\x0b\x32&.whatsapp.BotRenderingMetadata.Keyword\x1a\x33\n\x07Keyword\x12\r\n\x05value\x18\x01 \x01(\t\x12\x19\n\x11\x61ssociatedPrompts\x18\x02 \x03(\t\"S\n\x1b\x42otResolvedToolCallMetadata\x12\x12\n\ntoolCallId\x18\x01 \x01(\t\x12 \n\x18resolutionDataSerialized\x18\x02 \x01(\t\"Z\n\x12\x42otSessionMetadata\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x31\n\rsessionSource\x18\x02 \x01(\x0e\x32\x1a.whatsapp.BotSessionSource\"b\n BotSignatureVerificationMetadata\x12>\n\x06proofs\x18\x01 \x03(\x0b\x32..whatsapp.BotSignatureVerificationUseCaseProof\"\x94\x02\n$BotSignatureVerificationUseCaseProof\x12\x0f\n\x07version\x18\x01 \x01(\x05\x12S\n\x07useCase\x18\x02 \x01(\x0e\x32\x42.whatsapp.BotSignatureVerificationUseCaseProof.BotSignatureUseCase\x12\x11\n\tsignature\x18\x03 \x01(\x0c\x12\x18\n\x10\x63\x65rtificateChain\x18\x04 \x03(\x0c\"Y\n\x13\x42otSignatureUseCase\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0e\n\nWA_BOT_MSG\x10\x01\x12\x12\n\x0eWA_TEE_BOT_MSG\x10\x02\x12\r\n\tP2P_PILLS\x10\x03\"\x8a\x03\n\x12\x42otSourcesMetadata\x12;\n\x07sources\x18\x01 \x03(\x0b\x32*.whatsapp.BotSourcesMetadata.BotSourceItem\x1a\xb6\x02\n\rBotSourceItem\x12K\n\x08provider\x18\x01 \x01(\x0e\x32\x39.whatsapp.BotSourcesMetadata.BotSourceItem.SourceProvider\x12\x17\n\x0fthumbnailCdnUrl\x18\x02 \x01(\t\x12\x19\n\x11sourceProviderUrl\x18\x03 \x01(\t\x12\x13\n\x0bsourceQuery\x18\x04 \x01(\t\x12\x15\n\rfaviconCdnUrl\x18\x05 \x01(\t\x12\x16\n\x0e\x63itationNumber\x18\x06 \x01(\r\x12\x13\n\x0bsourceTitle\x18\x07 \x01(\t\"K\n\x0eSourceProvider\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x42ING\x10\x01\x12\n\n\x06GOOGLE\x10\x02\x12\x0b\n\x07SUPPORT\x10\x03\x12\t\n\x05OTHER\x10\x04\"\xa8\x01\n\x1a\x42otSuggestedPromptMetadata\x12\x18\n\x10suggestedPrompts\x18\x01 \x03(\t\x12\x1b\n\x13selectedPromptIndex\x18\x02 \x01(\r\x12\x39\n\x11promptSuggestions\x18\x03 \x01(\x0b\x32\x1e.whatsapp.BotPromptSuggestions\x12\x18\n\x10selectedPromptId\x18\x04 \x01(\t\"\x9f\x03\n\x1a\x42otUnifiedResponseMutation\x12L\n\x0bsbsMetadata\x18\x01 \x01(\x0b\x32\x37.whatsapp.BotUnifiedResponseMutation.SideBySideMetadata\x12[\n\x18mediaDetailsMetadataList\x18\x02 \x03(\x0b\x32\x39.whatsapp.BotUnifiedResponseMutation.MediaDetailsMetadata\x1a\x86\x01\n\x14MediaDetailsMetadata\x12\n\n\x02id\x18\x01 \x01(\t\x12\x30\n\x0chighResMedia\x18\x02 \x01(\x0b\x32\x1a.whatsapp.BotMediaMetadata\x12\x30\n\x0cpreviewMedia\x18\x03 \x01(\x0b\x32\x1a.whatsapp.BotMediaMetadata\x1aM\n\x12SideBySideMetadata\x12\x19\n\x11primaryResponseId\x18\x01 \x01(\t\x12\x1c\n\x14surveyCtaHasRendered\x18\x02 \x01(\x08\"\xe6\x06\n\rCallLogRecord\x12\x36\n\ncallResult\x18\x01 \x01(\x0e\x32\".whatsapp.CallLogRecord.CallResult\x12\x11\n\tisDndMode\x18\x02 \x01(\x08\x12<\n\rsilenceReason\x18\x03 \x01(\x0e\x32%.whatsapp.CallLogRecord.SilenceReason\x12\x10\n\x08\x64uration\x18\x04 \x01(\x03\x12\x11\n\tstartTime\x18\x05 \x01(\x03\x12\x12\n\nisIncoming\x18\x06 \x01(\x08\x12\x0f\n\x07isVideo\x18\x07 \x01(\x08\x12\x12\n\nisCallLink\x18\x08 \x01(\x08\x12\x15\n\rcallLinkToken\x18\t \x01(\t\x12\x17\n\x0fscheduledCallId\x18\n \x01(\t\x12\x0e\n\x06\x63\x61llId\x18\x0b \x01(\t\x12\x16\n\x0e\x63\x61llCreatorJid\x18\x0c \x01(\t\x12\x10\n\x08groupJid\x18\r \x01(\t\x12=\n\x0cparticipants\x18\x0e \x03(\x0b\x32\'.whatsapp.CallLogRecord.ParticipantInfo\x12\x32\n\x08\x63\x61llType\x18\x0f \x01(\x0e\x32 .whatsapp.CallLogRecord.CallType\x1aZ\n\x0fParticipantInfo\x12\x0f\n\x07userJid\x18\x01 \x01(\t\x12\x36\n\ncallResult\x18\x02 \x01(\x0e\x32\".whatsapp.CallLogRecord.CallResult\"\xaf\x01\n\nCallResult\x12\r\n\tCONNECTED\x10\x00\x12\x0c\n\x08REJECTED\x10\x01\x12\r\n\tCANCELLED\x10\x02\x12\x15\n\x11\x41\x43\x43\x45PTEDELSEWHERE\x10\x03\x12\n\n\x06MISSED\x10\x04\x12\x0b\n\x07INVALID\x10\x05\x12\x0f\n\x0bUNAVAILABLE\x10\x06\x12\x0c\n\x08UPCOMING\x10\x07\x12\n\n\x06\x46\x41ILED\x10\x08\x12\r\n\tABANDONED\x10\t\x12\x0b\n\x07ONGOING\x10\n\";\n\x08\x43\x61llType\x12\x0b\n\x07REGULAR\x10\x00\x12\x12\n\x0eSCHEDULED_CALL\x10\x01\x12\x0e\n\nVOICE_CHAT\x10\x02\"F\n\rSilenceReason\x12\x08\n\x04NONE\x10\x00\x12\r\n\tSCHEDULED\x10\x01\x12\x0b\n\x07PRIVACY\x10\x02\x12\x0f\n\x0bLIGHTWEIGHT\x10\x03\"\x97\x02\n\tCertChain\x12\x32\n\x04leaf\x18\x01 \x01(\x0b\x32$.whatsapp.CertChain.NoiseCertificate\x12:\n\x0cintermediate\x18\x02 \x01(\x0b\x32$.whatsapp.CertChain.NoiseCertificate\x1a\x99\x01\n\x10NoiseCertificate\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x1a\x61\n\x07\x44\x65tails\x12\x0e\n\x06serial\x18\x01 \x01(\r\x12\x14\n\x0cissuerSerial\x18\x02 \x01(\r\x12\x0b\n\x03key\x18\x03 \x01(\x0c\x12\x11\n\tnotBefore\x18\x04 \x01(\x04\x12\x10\n\x08notAfter\x18\x05 \x01(\x04\"W\n\x10\x43hatLockSettings\x12\x17\n\x0fhideLockedChats\x18\x01 \x01(\x08\x12*\n\nsecretCode\x18\x02 \x01(\x0b\x32\x16.whatsapp.UserPassword\"\xd9\x06\n\x11\x43hatRowOpaqueData\x12>\n\x0c\x64raftMessage\x18\x01 \x01(\x0b\x32(.whatsapp.ChatRowOpaqueData.DraftMessage\x1a\x83\x06\n\x0c\x44raftMessage\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x12\n\nomittedUrl\x18\x02 \x01(\t\x12Y\n\x13\x63twaContextLinkData\x18\x03 \x01(\x0b\x32<.whatsapp.ChatRowOpaqueData.DraftMessage.CtwaContextLinkData\x12M\n\x0b\x63twaContext\x18\x04 \x01(\x0b\x32\x38.whatsapp.ChatRowOpaqueData.DraftMessage.CtwaContextData\x12\x11\n\ttimestamp\x18\x05 \x01(\x03\x1a\xb5\x03\n\x0f\x43twaContextData\x12\x18\n\x10\x63onversionSource\x18\x01 \x01(\t\x12\x16\n\x0e\x63onversionData\x18\x02 \x01(\x0c\x12\x11\n\tsourceUrl\x18\x03 \x01(\t\x12\x10\n\x08sourceId\x18\x04 \x01(\t\x12\x12\n\nsourceType\x18\x05 \x01(\t\x12\r\n\x05title\x18\x06 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\x12\x11\n\tthumbnail\x18\x08 \x01(\t\x12\x14\n\x0cthumbnailUrl\x18\t \x01(\t\x12s\n\tmediaType\x18\n \x01(\x0e\x32`.whatsapp.ChatRowOpaqueData.DraftMessage.CtwaContextData.ContextInfoExternalAdReplyInfoMediaType\x12\x10\n\x08mediaUrl\x18\x0b \x01(\t\x12\x18\n\x10isSuspiciousLink\x18\x0c \x01(\x08\"I\n\'ContextInfoExternalAdReplyInfoMediaType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05IMAGE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\\\n\x13\x43twaContextLinkData\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\t\x12\x11\n\tsourceUrl\x18\x02 \x01(\t\x12\x12\n\nicebreaker\x18\x03 \x01(\t\x12\r\n\x05phone\x18\x04 \x01(\t\"L\n\x08\x43itation\x12\r\n\x05title\x18\x01 \x02(\t\x12\x10\n\x08subtitle\x18\x02 \x02(\t\x12\r\n\x05\x63msId\x18\x03 \x02(\t\x12\x10\n\x08imageUrl\x18\x04 \x02(\t\"\xbb\x01\n\x12\x43lientPairingProps\x12\x1b\n\x13isChatDbLidMigrated\x18\x01 \x01(\x08\x12\x1d\n\x15isSyncdPureLidSession\x18\x02 \x01(\x08\x12&\n\x1eisSyncdSnapshotRecoveryEnabled\x18\x03 \x01(\x08\x12 \n\x18isHsThumbnailSyncEnabled\x18\x04 \x01(\x08\x12\x1f\n\x17subscriptionSyncPayload\x18\x05 \x01(\x0c\"\xb1#\n\rClientPayload\x12\x10\n\x08username\x18\x01 \x01(\x04\x12\x0f\n\x07passive\x18\x03 \x01(\x08\x12\x34\n\tuserAgent\x18\x05 \x01(\x0b\x32!.whatsapp.ClientPayload.UserAgent\x12\x30\n\x07webInfo\x18\x06 \x01(\x0b\x32\x1f.whatsapp.ClientPayload.WebInfo\x12\x10\n\x08pushName\x18\x07 \x01(\t\x12\x11\n\tsessionId\x18\t \x01(\x0f\x12\x14\n\x0cshortConnect\x18\n \x01(\x08\x12\x38\n\x0b\x63onnectType\x18\x0c \x01(\x0e\x32#.whatsapp.ClientPayload.ConnectType\x12<\n\rconnectReason\x18\r \x01(\x0e\x32%.whatsapp.ClientPayload.ConnectReason\x12\x0e\n\x06shards\x18\x0e \x03(\x05\x12\x34\n\tdnsSource\x18\x0f \x01(\x0b\x32!.whatsapp.ClientPayload.DNSSource\x12\x1b\n\x13\x63onnectAttemptCount\x18\x10 \x01(\r\x12\x0e\n\x06\x64\x65vice\x18\x12 \x01(\r\x12P\n\x11\x64\x65vicePairingData\x18\x13 \x01(\x0b\x32\x35.whatsapp.ClientPayload.DevicePairingRegistrationData\x12\x30\n\x07product\x18\x14 \x01(\x0e\x32\x1f.whatsapp.ClientPayload.Product\x12\r\n\x05\x66\x62\x43\x61t\x18\x15 \x01(\x0c\x12\x13\n\x0b\x66\x62UserAgent\x18\x16 \x01(\x0c\x12\n\n\x02oc\x18\x17 \x01(\x08\x12\n\n\x02lc\x18\x18 \x01(\x05\x12@\n\x0fiosAppExtension\x18\x1e \x01(\x0e\x32\'.whatsapp.ClientPayload.IOSAppExtension\x12\x0f\n\x07\x66\x62\x41ppId\x18\x1f \x01(\x04\x12\x12\n\nfbDeviceId\x18 \x01(\x0c\x12\x0c\n\x04pull\x18! \x01(\x08\x12\x14\n\x0cpaddingBytes\x18\" \x01(\x0c\x12\x11\n\tyearClass\x18$ \x01(\x05\x12\x10\n\x08memClass\x18% \x01(\x05\x12\x38\n\x0binteropData\x18& \x01(\x0b\x32#.whatsapp.ClientPayload.InteropData\x12J\n\x14trafficAnonymization\x18( \x01(\x0e\x32,.whatsapp.ClientPayload.TrafficAnonymization\x12\x15\n\rlidDbMigrated\x18) \x01(\x08\x12\x38\n\x0b\x61\x63\x63ountType\x18* \x01(\x0e\x32#.whatsapp.ClientPayload.AccountType\x12\x1e\n\x16\x63onnectionSequenceInfo\x18+ \x01(\x0f\x12\x0f\n\x07paaLink\x18, \x01(\x08\x12\x14\n\x0cpreacksCount\x18- \x01(\x05\x12\x1b\n\x13processingQueueSize\x18. \x01(\x05\x12\x19\n\x11pairedPeripherals\x18/ \x03(\t\x12\x17\n\x0ftestIsolationId\x18\x30 \x01(\x0c\x1a\xf0\x01\n\tDNSSource\x12H\n\tdnsMethod\x18\x0f \x01(\x0e\x32\x35.whatsapp.ClientPayload.DNSSource.DNSResolutionMethod\x12\x11\n\tappCached\x18\x10 \x01(\x08\"\x85\x01\n\x13\x44NSResolutionMethod\x12\n\n\x06SYSTEM\x10\x00\x12\n\n\x06GOOGLE\x10\x01\x12\r\n\tHARDCODED\x10\x02\x12\x0c\n\x08OVERRIDE\x10\x03\x12\x0c\n\x08\x46\x41LLBACK\x10\x04\x12\x07\n\x03MNS\x10\x05\x12\x11\n\rMNS_SECONDARY\x10\x06\x12\x0f\n\x0bSOCKS_PROXY\x10\x07\x1a\xae\x01\n\x1d\x44\x65vicePairingRegistrationData\x12\x0e\n\x06\x65Regid\x18\x01 \x01(\x0c\x12\x10\n\x08\x65Keytype\x18\x02 \x01(\x0c\x12\x0e\n\x06\x65Ident\x18\x03 \x01(\x0c\x12\x0f\n\x07\x65SkeyId\x18\x04 \x01(\x0c\x12\x10\n\x08\x65SkeyVal\x18\x05 \x01(\x0c\x12\x10\n\x08\x65SkeySig\x18\x06 \x01(\x0c\x12\x11\n\tbuildHash\x18\x07 \x01(\x0c\x12\x13\n\x0b\x64\x65viceProps\x18\x08 \x01(\x0c\x1aK\n\x0bInteropData\x12\x11\n\taccountId\x18\x01 \x01(\x04\x12\r\n\x05token\x18\x02 \x01(\x0c\x12\x1a\n\x12\x65nableReadReceipts\x18\x03 \x01(\x08\x1a\xd5\x0b\n\tUserAgent\x12<\n\x08platform\x18\x01 \x01(\x0e\x32*.whatsapp.ClientPayload.UserAgent.Platform\x12@\n\nappVersion\x18\x02 \x01(\x0b\x32,.whatsapp.ClientPayload.UserAgent.AppVersion\x12\x0b\n\x03mcc\x18\x03 \x01(\t\x12\x0b\n\x03mnc\x18\x04 \x01(\t\x12\x11\n\tosVersion\x18\x05 \x01(\t\x12\x14\n\x0cmanufacturer\x18\x06 \x01(\t\x12\x0e\n\x06\x64\x65vice\x18\x07 \x01(\t\x12\x15\n\rosBuildNumber\x18\x08 \x01(\t\x12\x0f\n\x07phoneId\x18\t \x01(\t\x12H\n\x0ereleaseChannel\x18\n \x01(\x0e\x32\x30.whatsapp.ClientPayload.UserAgent.ReleaseChannel\x12\x1d\n\x15localeLanguageIso6391\x18\x0b \x01(\t\x12#\n\x1blocaleCountryIso31661Alpha2\x18\x0c \x01(\t\x12\x13\n\x0b\x64\x65viceBoard\x18\r \x01(\t\x12\x13\n\x0b\x64\x65viceExpId\x18\x0e \x01(\t\x12@\n\ndeviceType\x18\x0f \x01(\x0e\x32,.whatsapp.ClientPayload.UserAgent.DeviceType\x12\x17\n\x0f\x64\x65viceModelType\x18\x10 \x01(\t\x12R\n\x13\x64istributionChannel\x18\x11 \x01(\x0e\x32\x35.whatsapp.ClientPayload.UserAgent.DistributionChannel\x1ag\n\nAppVersion\x12\x0f\n\x07primary\x18\x01 \x01(\r\x12\x11\n\tsecondary\x18\x02 \x01(\r\x12\x10\n\x08tertiary\x18\x03 \x01(\r\x12\x12\n\nquaternary\x18\x04 \x01(\r\x12\x0f\n\x07quinary\x18\x05 \x01(\r\"F\n\nDeviceType\x12\t\n\x05PHONE\x10\x00\x12\n\n\x06TABLET\x10\x01\x12\x0b\n\x07\x44\x45SKTOP\x10\x02\x12\x0c\n\x08WEARABLE\x10\x03\x12\x06\n\x02VR\x10\x04\"N\n\x13\x44istributionChannel\x12\x0c\n\x08\x41PPSTORE\x10\x00\x12\x0b\n\x07WEBSITE\x10\x01\x12\x0e\n\nTESTFLIGHT\x10\x02\x12\x0c\n\x08INTERNAL\x10\x03\"\xa5\x04\n\x08Platform\x12\x0b\n\x07\x41NDROID\x10\x00\x12\x07\n\x03IOS\x10\x01\x12\x11\n\rWINDOWS_PHONE\x10\x02\x12\x0e\n\nBLACKBERRY\x10\x03\x12\x0f\n\x0b\x42LACKBERRYX\x10\x04\x12\x07\n\x03S40\x10\x05\x12\x07\n\x03S60\x10\x06\x12\x11\n\rPYTHON_CLIENT\x10\x07\x12\t\n\x05TIZEN\x10\x08\x12\x0e\n\nENTERPRISE\x10\t\x12\x0f\n\x0bSMB_ANDROID\x10\n\x12\t\n\x05KAIOS\x10\x0b\x12\x0b\n\x07SMB_IOS\x10\x0c\x12\x0b\n\x07WINDOWS\x10\r\x12\x07\n\x03WEB\x10\x0e\x12\n\n\x06PORTAL\x10\x0f\x12\x11\n\rGREEN_ANDROID\x10\x10\x12\x10\n\x0cGREEN_IPHONE\x10\x11\x12\x10\n\x0c\x42LUE_ANDROID\x10\x12\x12\x0f\n\x0b\x42LUE_IPHONE\x10\x13\x12\x12\n\x0e\x46\x42LITE_ANDROID\x10\x14\x12\x11\n\rMLITE_ANDROID\x10\x15\x12\x12\n\x0eIGLITE_ANDROID\x10\x16\x12\x08\n\x04PAGE\x10\x17\x12\t\n\x05MACOS\x10\x18\x12\x0e\n\nOCULUS_MSG\x10\x19\x12\x0f\n\x0bOCULUS_CALL\x10\x1a\x12\t\n\x05MILAN\x10\x1b\x12\x08\n\x04\x43\x41PI\x10\x1c\x12\n\n\x06WEAROS\x10\x1d\x12\x0c\n\x08\x41RDEVICE\x10\x1e\x12\x0c\n\x08VRDEVICE\x10\x1f\x12\x0c\n\x08\x42LUE_WEB\x10 \x12\x08\n\x04IPAD\x10!\x12\x08\n\x04TEST\x10\"\x12\x11\n\rSMART_GLASSES\x10#\x12\x0b\n\x07\x42LUE_VR\x10$\x12\x0c\n\x08\x41R_WRIST\x10%\"=\n\x0eReleaseChannel\x12\x0b\n\x07RELEASE\x10\x00\x12\x08\n\x04\x42\x45TA\x10\x01\x12\t\n\x05\x41LPHA\x10\x02\x12\t\n\x05\x44\x45\x42UG\x10\x03\x1a\x85\x05\n\x07WebInfo\x12\x10\n\x08refToken\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12@\n\x0bwebdPayload\x18\x03 \x01(\x0b\x32+.whatsapp.ClientPayload.WebInfo.WebdPayload\x12\x46\n\x0ewebSubPlatform\x18\x04 \x01(\x0e\x32..whatsapp.ClientPayload.WebInfo.WebSubPlatform\x12\x0f\n\x07\x62rowser\x18\x05 \x01(\t\x12\x16\n\x0e\x62rowserVersion\x18\x06 \x01(\t\x1a\xbb\x02\n\x0bWebdPayload\x12\x1c\n\x14usesParticipantInKey\x18\x01 \x01(\x08\x12\x1f\n\x17supportsStarredMessages\x18\x02 \x01(\x08\x12 \n\x18supportsDocumentMessages\x18\x03 \x01(\x08\x12\x1b\n\x13supportsUrlMessages\x18\x04 \x01(\x08\x12\x1a\n\x12supportsMediaRetry\x18\x05 \x01(\x08\x12\x18\n\x10supportsE2EImage\x18\x06 \x01(\x08\x12\x18\n\x10supportsE2EVideo\x18\x07 \x01(\x08\x12\x18\n\x10supportsE2EAudio\x18\x08 \x01(\x08\x12\x1b\n\x13supportsE2EDocument\x18\t \x01(\x08\x12\x15\n\rdocumentTypes\x18\n \x01(\t\x12\x10\n\x08\x66\x65\x61tures\x18\x0b \x01(\x0c\"f\n\x0eWebSubPlatform\x12\x0f\n\x0bWEB_BROWSER\x10\x00\x12\r\n\tAPP_STORE\x10\x01\x12\r\n\tWIN_STORE\x10\x02\x12\n\n\x06\x44\x41RWIN\x10\x03\x12\t\n\x05WIN32\x10\x04\x12\x0e\n\nWIN_HYBRID\x10\x05\"%\n\x0b\x41\x63\x63ountType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05GUEST\x10\x01\"\x86\x01\n\rConnectReason\x12\x08\n\x04PUSH\x10\x00\x12\x12\n\x0eUSER_ACTIVATED\x10\x01\x12\r\n\tSCHEDULED\x10\x02\x12\x13\n\x0f\x45RROR_RECONNECT\x10\x03\x12\x12\n\x0eNETWORK_SWITCH\x10\x04\x12\x12\n\x0ePING_RECONNECT\x10\x05\x12\x0b\n\x07UNKNOWN\x10\x06\"\xb0\x02\n\x0b\x43onnectType\x12\x14\n\x10\x43\x45LLULAR_UNKNOWN\x10\x00\x12\x10\n\x0cWIFI_UNKNOWN\x10\x01\x12\x11\n\rCELLULAR_EDGE\x10\x64\x12\x11\n\rCELLULAR_IDEN\x10\x65\x12\x11\n\rCELLULAR_UMTS\x10\x66\x12\x11\n\rCELLULAR_EVDO\x10g\x12\x11\n\rCELLULAR_GPRS\x10h\x12\x12\n\x0e\x43\x45LLULAR_HSDPA\x10i\x12\x12\n\x0e\x43\x45LLULAR_HSUPA\x10j\x12\x11\n\rCELLULAR_HSPA\x10k\x12\x11\n\rCELLULAR_CDMA\x10l\x12\x12\n\x0e\x43\x45LLULAR_1XRTT\x10m\x12\x12\n\x0e\x43\x45LLULAR_EHRPD\x10n\x12\x10\n\x0c\x43\x45LLULAR_LTE\x10o\x12\x12\n\x0e\x43\x45LLULAR_HSPAP\x10p\"T\n\x0fIOSAppExtension\x12\x13\n\x0fSHARE_EXTENSION\x10\x00\x12\x15\n\x11SERVICE_EXTENSION\x10\x01\x12\x15\n\x11INTENTS_EXTENSION\x10\x02\"W\n\x07Product\x12\x0c\n\x08WHATSAPP\x10\x00\x12\r\n\tMESSENGER\x10\x01\x12\x0b\n\x07INTEROP\x10\x02\x12\x10\n\x0cINTEROP_MSGR\x10\x03\x12\x10\n\x0cWHATSAPP_LID\x10\x04\"-\n\x14TrafficAnonymization\x12\x07\n\x03OFF\x10\x00\x12\x0c\n\x08STANDARD\x10\x01\"\x91\x01\n\x13\x43ombinedFingerprint\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x33\n\x10localFingerprint\x18\x02 \x01(\x0b\x32\x19.whatsapp.FingerprintData\x12\x34\n\x11remoteFingerprint\x18\x03 \x01(\x0b\x32\x19.whatsapp.FingerprintData\"w\n\x07\x43ommand\x12\x33\n\x0b\x63ommandType\x18\x01 \x01(\x0e\x32\x1e.whatsapp.COMMAND_COMMAND_TYPE\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\x0e\n\x06length\x18\x03 \x01(\r\x12\x17\n\x0fvalidationToken\x18\x04 \x01(\t\"U\n\x0f\x43ommentMetadata\x12.\n\x10\x63ommentParentKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nreplyCount\x18\x02 \x01(\r\"#\n\x13\x43ompanionCommitment\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\"t\n\x1a\x43ompanionEphemeralIdentity\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\x36\n\ndeviceType\x18\x02 \x01(\x0e\x32\".whatsapp.DeviceProps.PlatformType\x12\x0b\n\x03ref\x18\x03 \x01(\t\"\x84\x01\n\x06\x43onfig\x12*\n\x05\x66ield\x18\x01 \x03(\x0b\x32\x1b.whatsapp.Config.FieldEntry\x12\x0f\n\x07version\x18\x02 \x01(\r\x1a=\n\nFieldEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1e\n\x05value\x18\x02 \x01(\x0b\x32\x0f.whatsapp.Field:\x02\x38\x01\"\xee\'\n\x13\x43onsumerApplication\x12\x36\n\x07payload\x18\x01 \x01(\x0b\x32%.whatsapp.ConsumerApplication.Payload\x12\x38\n\x08metadata\x18\x02 \x01(\x0b\x32&.whatsapp.ConsumerApplication.Metadata\x1a\x66\n\x0f\x41pplicationData\x12=\n\x06revoke\x18\x01 \x01(\x0b\x32+.whatsapp.ConsumerApplication.RevokeMessageH\x00\x42\x14\n\x12\x61pplicationContent\x1a\x41\n\x0c\x41udioMessage\x12$\n\x05\x61udio\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12\x0b\n\x03ptt\x18\x02 \x01(\x08\x1a\x38\n\x0e\x43ontactMessage\x12&\n\x07\x63ontact\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x1ak\n\x14\x43ontactsArrayMessage\x12\x13\n\x0b\x64isplayName\x18\x01 \x01(\t\x12>\n\x08\x63ontacts\x18\x02 \x03(\x0b\x32,.whatsapp.ConsumerApplication.ContactMessage\x1a\xbd\n\n\x07\x43ontent\x12,\n\x0bmessageText\x18\x01 \x01(\x0b\x32\x15.whatsapp.MessageTextH\x00\x12\x42\n\x0cimageMessage\x18\x02 \x01(\x0b\x32*.whatsapp.ConsumerApplication.ImageMessageH\x00\x12\x46\n\x0e\x63ontactMessage\x18\x03 \x01(\x0b\x32,.whatsapp.ConsumerApplication.ContactMessageH\x00\x12H\n\x0flocationMessage\x18\x04 \x01(\x0b\x32-.whatsapp.ConsumerApplication.LocationMessageH\x00\x12P\n\x13\x65xtendedTextMessage\x18\x05 \x01(\x0b\x32\x31.whatsapp.ConsumerApplication.ExtendedTextMessageH\x00\x12K\n\x11statusTextMessage\x18\x06 \x01(\x0b\x32..whatsapp.ConsumerApplication.StatusTextMesageH\x00\x12H\n\x0f\x64ocumentMessage\x18\x07 \x01(\x0b\x32-.whatsapp.ConsumerApplication.DocumentMessageH\x00\x12\x42\n\x0c\x61udioMessage\x18\x08 \x01(\x0b\x32*.whatsapp.ConsumerApplication.AudioMessageH\x00\x12\x42\n\x0cvideoMessage\x18\t \x01(\x0b\x32*.whatsapp.ConsumerApplication.VideoMessageH\x00\x12R\n\x14\x63ontactsArrayMessage\x18\n \x01(\x0b\x32\x32.whatsapp.ConsumerApplication.ContactsArrayMessageH\x00\x12P\n\x13liveLocationMessage\x18\x0b \x01(\x0b\x32\x31.whatsapp.ConsumerApplication.LiveLocationMessageH\x00\x12\x46\n\x0estickerMessage\x18\x0c \x01(\x0b\x32,.whatsapp.ConsumerApplication.StickerMessageH\x00\x12N\n\x12groupInviteMessage\x18\r \x01(\x0b\x32\x30.whatsapp.ConsumerApplication.GroupInviteMessageH\x00\x12H\n\x0fviewOnceMessage\x18\x0e \x01(\x0b\x32-.whatsapp.ConsumerApplication.ViewOnceMessageH\x00\x12H\n\x0freactionMessage\x18\x10 \x01(\x0b\x32-.whatsapp.ConsumerApplication.ReactionMessageH\x00\x12P\n\x13pollCreationMessage\x18\x11 \x01(\x0b\x32\x31.whatsapp.ConsumerApplication.PollCreationMessageH\x00\x12L\n\x11pollUpdateMessage\x18\x12 \x01(\x0b\x32/.whatsapp.ConsumerApplication.PollUpdateMessageH\x00\x12@\n\x0b\x65\x64itMessage\x18\x13 \x01(\x0b\x32).whatsapp.ConsumerApplication.EditMessageH\x00\x42\t\n\x07\x63ontent\x1aL\n\x0f\x44ocumentMessage\x12\'\n\x08\x64ocument\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12\x10\n\x08\x66ileName\x18\x02 \x01(\t\x1am\n\x0b\x45\x64itMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12&\n\x07message\x18\x02 \x01(\x0b\x32\x15.whatsapp.MessageText\x12\x13\n\x0btimestampMs\x18\x03 \x01(\x03\x1a\x9f\x02\n\x13\x45xtendedTextMessage\x12#\n\x04text\x18\x01 \x01(\x0b\x32\x15.whatsapp.MessageText\x12\x13\n\x0bmatchedText\x18\x02 \x01(\t\x12\x14\n\x0c\x63\x61nonicalUrl\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\r\n\x05title\x18\x05 \x01(\t\x12(\n\tthumbnail\x18\x06 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12j\n\x0bpreviewType\x18\x07 \x01(\x0e\x32U.whatsapp.ConsumerApplication.CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE\x1a\xa6\x01\n\x12GroupInviteMessage\x12\x10\n\x08groupJid\x18\x01 \x01(\t\x12\x12\n\ninviteCode\x18\x02 \x01(\t\x12\x18\n\x10inviteExpiration\x18\x03 \x01(\x03\x12\x11\n\tgroupName\x18\x04 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x05 \x01(\x0c\x12&\n\x07\x63\x61ption\x18\x06 \x01(\x0b\x32\x15.whatsapp.MessageText\x1a\\\n\x0cImageMessage\x12$\n\x05image\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12&\n\x07\x63\x61ption\x18\x02 \x01(\x0b\x32\x15.whatsapp.MessageText\x1a\x9b\x01\n\x15InteractiveAnnotation\x12<\n\x0fpolygonVertices\x18\x01 \x03(\x0b\x32#.whatsapp.ConsumerApplication.Point\x12:\n\x08location\x18\x02 \x01(\x0b\x32&.whatsapp.ConsumerApplication.LocationH\x00\x42\x08\n\x06\x61\x63tion\x1a\xfc\x01\n\x13LiveLocationMessage\x12\x38\n\x08location\x18\x01 \x01(\x0b\x32&.whatsapp.ConsumerApplication.Location\x12\x18\n\x10\x61\x63\x63uracyInMeters\x18\x02 \x01(\r\x12\x12\n\nspeedInMps\x18\x03 \x01(\x02\x12)\n!degreesClockwiseFromMagneticNorth\x18\x04 \x01(\r\x12&\n\x07\x63\x61ption\x18\x05 \x01(\x0b\x32\x15.whatsapp.MessageText\x12\x16\n\x0esequenceNumber\x18\x06 \x01(\x03\x12\x12\n\ntimeOffset\x18\x07 \x01(\r\x1aK\n\x08Location\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x1a\\\n\x0fLocationMessage\x12\x38\n\x08location\x18\x01 \x01(\x0b\x32&.whatsapp.ConsumerApplication.Location\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x1a\x37\n\x0cMediaPayload\x12\'\n\x08protocol\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x1a^\n\x08Metadata\x12R\n\x0fspecialTextSize\x18\x01 \x01(\x0e\x32\x39.whatsapp.CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE\x1a\x1c\n\x06Option\x12\x12\n\noptionName\x18\x01 \x01(\t\x1a\x99\x02\n\x07Payload\x12\x38\n\x07\x63ontent\x18\x01 \x01(\x0b\x32%.whatsapp.ConsumerApplication.ContentH\x00\x12H\n\x0f\x61pplicationData\x18\x02 \x01(\x0b\x32-.whatsapp.ConsumerApplication.ApplicationDataH\x00\x12\x36\n\x06signal\x18\x03 \x01(\x0b\x32$.whatsapp.ConsumerApplication.SignalH\x00\x12G\n\x0bsubProtocol\x18\x04 \x01(\x0b\x32\x30.whatsapp.ConsumerApplication.SubProtocolPayloadH\x00\x42\t\n\x07payload\x1a\x1d\n\x05Point\x12\t\n\x01x\x18\x01 \x01(\x01\x12\t\n\x01y\x18\x02 \x01(\x01\x1aP\n\x14PollAddOptionMessage\x12\x38\n\npollOption\x18\x01 \x03(\x0b\x32$.whatsapp.ConsumerApplication.Option\x1a\x8a\x01\n\x13PollCreationMessage\x12\x0e\n\x06\x65ncKey\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x35\n\x07options\x18\x03 \x03(\x0b\x32$.whatsapp.ConsumerApplication.Option\x12\x1e\n\x16selectableOptionsCount\x18\x04 \x01(\r\x1a\x31\n\x0cPollEncValue\x12\x12\n\nencPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\x1a\xc2\x01\n\x11PollUpdateMessage\x12\x34\n\x16pollCreationMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x38\n\x04vote\x18\x02 \x01(\x0b\x32*.whatsapp.ConsumerApplication.PollEncValue\x12=\n\taddOption\x18\x03 \x01(\x0b\x32*.whatsapp.ConsumerApplication.PollEncValue\x1a\x45\n\x0fPollVoteMessage\x12\x17\n\x0fselectedOptions\x18\x01 \x03(\x0c\x12\x19\n\x11senderTimestampMs\x18\x02 \x01(\x03\x1a\xa8\x01\n\x0fReactionMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x13\n\x0bgroupingKey\x18\x03 \x01(\t\x12\x19\n\x11senderTimestampMs\x18\x04 \x01(\x03\x12%\n\x1dreactionMetadataDataclassData\x18\x05 \x01(\t\x12\r\n\x05style\x18\x06 \x01(\x05\x1a\x32\n\rRevokeMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a\x08\n\x06Signal\x1a\xc8\x01\n\x10StatusTextMesage\x12?\n\x04text\x18\x01 \x01(\x0b\x32\x31.whatsapp.ConsumerApplication.ExtendedTextMessage\x12\x10\n\x08textArgb\x18\x06 \x01(\x07\x12\x16\n\x0e\x62\x61\x63kgroundArgb\x18\x07 \x01(\x07\x12I\n\x04\x66ont\x18\x08 \x01(\x0e\x32;.whatsapp.CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE\x1a\x38\n\x0eStickerMessage\x12&\n\x07sticker\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x1aJ\n\x12SubProtocolPayload\x12\x34\n\x0b\x66utureProof\x18\x01 \x01(\x0e\x32\x1f.whatsapp.FUTURE_PROOF_BEHAVIOR\x1a\\\n\x0cVideoMessage\x12$\n\x05video\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12&\n\x07\x63\x61ption\x18\x02 \x01(\x0b\x32\x15.whatsapp.MessageText\x1a\xac\x01\n\x0fViewOnceMessage\x12\x42\n\x0cimageMessage\x18\x01 \x01(\x0b\x32*.whatsapp.ConsumerApplication.ImageMessageH\x00\x12\x42\n\x0cvideoMessage\x18\x02 \x01(\x0b\x32*.whatsapp.ConsumerApplication.VideoMessageH\x00\x42\x11\n\x0fviewOnceContent\"N\n7CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05VIDEO\x10\x01\"\xe4\x34\n\x0b\x43ontextInfo\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\x12\x13\n\x0bparticipant\x18\x02 \x01(\t\x12(\n\rquotedMessage\x18\x03 \x01(\x0b\x32\x11.whatsapp.Message\x12\x11\n\tremoteJid\x18\x04 \x01(\t\x12\x14\n\x0cmentionedJid\x18\x0f \x03(\t\x12\x18\n\x10\x63onversionSource\x18\x12 \x01(\t\x12\x16\n\x0e\x63onversionData\x18\x13 \x01(\x0c\x12\x1e\n\x16\x63onversionDelaySeconds\x18\x14 \x01(\r\x12\x17\n\x0f\x66orwardingScore\x18\x15 \x01(\r\x12\x13\n\x0bisForwarded\x18\x16 \x01(\x08\x12\x33\n\x08quotedAd\x18\x17 \x01(\x0b\x32!.whatsapp.ContextInfo.AdReplyInfo\x12,\n\x0eplaceholderKey\x18\x18 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nexpiration\x18\x19 \x01(\r\x12!\n\x19\x65phemeralSettingTimestamp\x18\x1a \x01(\x03\x12\x1d\n\x15\x65phemeralSharedSecret\x18\x1b \x01(\x0c\x12\x42\n\x0f\x65xternalAdReply\x18\x1c \x01(\x0b\x32).whatsapp.ContextInfo.ExternalAdReplyInfo\x12\"\n\x1a\x65ntryPointConversionSource\x18\x1d \x01(\t\x12\x1f\n\x17\x65ntryPointConversionApp\x18\x1e \x01(\t\x12(\n entryPointConversionDelaySeconds\x18\x1f \x01(\r\x12\x34\n\x10\x64isappearingMode\x18 \x01(\x0b\x32\x1a.whatsapp.DisappearingMode\x12(\n\nactionLink\x18! \x01(\x0b\x32\x14.whatsapp.ActionLink\x12\x14\n\x0cgroupSubject\x18\" \x01(\t\x12\x16\n\x0eparentGroupJid\x18# \x01(\t\x12\x17\n\x0ftrustBannerType\x18% \x01(\t\x12\x19\n\x11trustBannerAction\x18& \x01(\r\x12\x11\n\tisSampled\x18\' \x01(\x08\x12-\n\rgroupMentions\x18( \x03(\x0b\x32\x16.whatsapp.GroupMention\x12*\n\x03utm\x18) \x01(\x0b\x32\x1d.whatsapp.ContextInfo.UTMInfo\x12\\\n\x1e\x66orwardedNewsletterMessageInfo\x18+ \x01(\x0b\x32\x34.whatsapp.ContextInfo.ForwardedNewsletterMessageInfo\x12T\n\x1a\x62usinessMessageForwardInfo\x18, \x01(\x0b\x32\x30.whatsapp.ContextInfo.BusinessMessageForwardInfo\x12\x1b\n\x13smbClientCampaignId\x18- \x01(\t\x12\x1b\n\x13smbServerCampaignId\x18. \x01(\t\x12\x44\n\x12\x64\x61taSharingContext\x18/ \x01(\x0b\x32(.whatsapp.ContextInfo.DataSharingContext\x12\x1f\n\x17\x61lwaysShowAdAttribution\x18\x30 \x01(\x08\x12H\n\x14\x66\x65\x61tureEligibilities\x18\x31 \x01(\x0b\x32*.whatsapp.ContextInfo.FeatureEligibilities\x12*\n\"entryPointConversionExternalSource\x18\x32 \x01(\t\x12*\n\"entryPointConversionExternalMedium\x18\x33 \x01(\t\x12\x13\n\x0b\x63twaSignals\x18\x36 \x01(\t\x12\x13\n\x0b\x63twaPayload\x18\x37 \x01(\x0c\x12\x46\n\x19\x66orwardedAiBotMessageInfo\x18\x38 \x01(\x0b\x32#.whatsapp.ForwardedAIBotMessageInfo\x12J\n\x15statusAttributionType\x18\x39 \x01(\x0e\x32+.whatsapp.ContextInfo.StatusAttributionType\x12\x30\n\x0eurlTrackingMap\x18: \x01(\x0b\x32\x18.whatsapp.UrlTrackingMap\x12>\n\x0fpairedMediaType\x18; \x01(\x0e\x32%.whatsapp.ContextInfo.PairedMediaType\x12\x16\n\x0erankingVersion\x18< \x01(\r\x12*\n\x0bmemberLabel\x18> \x01(\x0b\x32\x15.whatsapp.MemberLabel\x12\x12\n\nisQuestion\x18? \x01(\x08\x12@\n\x10statusSourceType\x18@ \x01(\x0e\x32&.whatsapp.ContextInfo.StatusSourceType\x12\x37\n\x12statusAttributions\x18\x41 \x03(\x0b\x32\x1b.whatsapp.StatusAttribution\x12\x15\n\risGroupStatus\x18\x42 \x01(\x08\x12:\n\rforwardOrigin\x18\x43 \x01(\x0e\x32#.whatsapp.ContextInfo.ForwardOrigin\x12T\n\x1aquestionReplyQuotedMessage\x18\x44 \x01(\x0b\x32\x30.whatsapp.ContextInfo.QuestionReplyQuotedMessage\x12L\n\x16statusAudienceMetadata\x18\x45 \x01(\x0b\x32,.whatsapp.ContextInfo.StatusAudienceMetadata\x12\x16\n\x0enonJidMentions\x18\x46 \x01(\r\x12\x34\n\nquotedType\x18G \x01(\x0e\x32 .whatsapp.ContextInfo.QuotedType\x12>\n\x15\x62otMessageSharingInfo\x18H \x01(\x0b\x32\x1f.whatsapp.BotMessageSharingInfo\x12\x11\n\tisSpoiler\x18I \x01(\x08\x12\x32\n\x0fmediaDomainInfo\x18J \x01(\x0b\x32\x19.whatsapp.MediaDomainInfo\x12P\n\x18partiallySelectedContent\x18K \x01(\x0b\x32..whatsapp.ContextInfo.PartiallySelectedContent\x12\x19\n\x11\x61\x66terReadDuration\x18L \x01(\r\x12<\n\x0e\x63rossAppSource\x18M \x01(\x0e\x32$.whatsapp.ContextInfo.CrossAppSource\x12P\n\x18\x62usinessInteractionPills\x18N \x01(\x0b\x32..whatsapp.ContextInfo.BusinessInteractionPills\x12\x16\n\x0eposterStatusId\x18O \x01(\t\x1a\xba\x01\n\x0b\x41\x64ReplyInfo\x12\x16\n\x0e\x61\x64vertiserName\x18\x01 \x01(\t\x12>\n\tmediaType\x18\x02 \x01(\x0e\x32+.whatsapp.ContextInfo.AdReplyInfo.MediaType\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x11 \x01(\t\"+\n\tMediaType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05IMAGE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\xb9\x06\n\x18\x42usinessInteractionPills\x12\x13\n\x0b\x62usinessJid\x18\x01 \x01(\t\x12\x42\n\x05pills\x18\x02 \x03(\x0b\x32\x33.whatsapp.ContextInfo.BusinessInteractionPills.Pill\x12M\n\nentryPoint\x18\x03 \x01(\x0e\x32\x39.whatsapp.ContextInfo.BusinessInteractionPills.EntryPoint\x12\x15\n\rsignedPayload\x18\x04 \x01(\x0c\x12\x45\n\x11signatureEnvelope\x18\x05 \x01(\x0b\x32*.whatsapp.BotSignatureVerificationMetadata\x1a\x64\n\x04Pill\x12I\n\x08pillType\x18\x01 \x01(\x0e\x32\x37.whatsapp.ContextInfo.BusinessInteractionPills.PillType\x12\x11\n\tactionUrl\x18\x02 \x01(\t\x1ai\n\rSignedPayload\x12\x14\n\x0cverifiedName\x18\x01 \x01(\t\x12\x42\n\x05pills\x18\x02 \x03(\x0b\x32\x33.whatsapp.ContextInfo.BusinessInteractionPills.Pill\"\x8d\x01\n\nEntryPoint\x12\x17\n\x13\x45NTRY_POINT_UNKNOWN\x10\x00\x12\x12\n\x0eP2P_LINK_SHARE\x10\x01\x12\x18\n\x14\x43ONTACT_CARD_SHARING\x10\x02\x12\x10\n\x0cPHONE_NUMBER\x10\x03\x12\n\n\x06STATUS\x10\x04\x12\x1a\n\x16IN_THREAD_CONTEXT_CARD\x10\x05\"\xb5\x01\n\x08PillType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rVIEW_BUSINESS\x10\x01\x12\x08\n\x04\x43HAT\x10\x02\x12\x08\n\x04\x43\x41LL\x10\x03\x12\x0b\n\x07\x43\x41TALOG\x10\x04\x12\x0b\n\x07\x43HANNEL\x10\x05\x12\x14\n\x10\x42OOK_APPOINTMENT\x10\x06\x12\n\n\x06OFFERS\x10\x07\x12\x0f\n\x0b\x42\x45STSELLERS\x10\x08\x12\x08\n\x04MENU\x10\t\x12\t\n\x05\x41\x42OUT\x10\n\x12\x08\n\x04SHOP\x10\x0b\x12\t\n\x05ORDER\x10\x0c\x1a\x36\n\x1a\x42usinessMessageForwardInfo\x12\x18\n\x10\x62usinessOwnerJid\x18\x01 \x01(\t\x1a\xa8\x03\n\x12\x44\x61taSharingContext\x12\x18\n\x10showMmDisclosure\x18\x01 \x01(\x08\x12%\n\x1d\x65ncryptedSignalTokenConsented\x18\x02 \x01(\t\x12G\n\nparameters\x18\x03 \x03(\x0b\x32\x33.whatsapp.ContextInfo.DataSharingContext.Parameters\x12\x18\n\x10\x64\x61taSharingFlags\x18\x04 \x01(\x05\x1a\x98\x01\n\nParameters\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\nstringData\x18\x02 \x01(\t\x12\x0f\n\x07intData\x18\x03 \x01(\x03\x12\x11\n\tfloatData\x18\x04 \x01(\x02\x12\x45\n\x08\x63ontents\x18\x05 \x01(\x0b\x32\x33.whatsapp.ContextInfo.DataSharingContext.Parameters\"S\n\x10\x44\x61taSharingFlags\x12\x1f\n\x1bSHOW_MM_DISCLOSURE_ON_CLICK\x10\x01\x12\x1e\n\x1aSHOW_MM_DISCLOSURE_ON_READ\x10\x02\x1a\xd6\x07\n\x13\x45xternalAdReplyInfo\x12\r\n\x05title\x18\x01 \x01(\t\x12\x0c\n\x04\x62ody\x18\x02 \x01(\t\x12\x46\n\tmediaType\x18\x03 \x01(\x0e\x32\x33.whatsapp.ContextInfo.ExternalAdReplyInfo.MediaType\x12\x14\n\x0cthumbnailUrl\x18\x04 \x01(\t\x12\x10\n\x08mediaUrl\x18\x05 \x01(\t\x12\x11\n\tthumbnail\x18\x06 \x01(\x0c\x12\x12\n\nsourceType\x18\x07 \x01(\t\x12\x10\n\x08sourceId\x18\x08 \x01(\t\x12\x11\n\tsourceUrl\x18\t \x01(\t\x12\x19\n\x11\x63ontainsAutoReply\x18\n \x01(\x08\x12\x1d\n\x15renderLargerThumbnail\x18\x0b \x01(\x08\x12\x19\n\x11showAdAttribution\x18\x0c \x01(\x08\x12\x10\n\x08\x63twaClid\x18\r \x01(\t\x12\x0b\n\x03ref\x18\x0e \x01(\t\x12\x1b\n\x13\x63lickToWhatsappCall\x18\x0f \x01(\x08\x12!\n\x19\x61\x64\x43ontextPreviewDismissed\x18\x10 \x01(\x08\x12\x11\n\tsourceApp\x18\x11 \x01(\t\x12%\n\x1d\x61utomatedGreetingMessageShown\x18\x12 \x01(\x08\x12\x1b\n\x13greetingMessageBody\x18\x13 \x01(\t\x12\x12\n\nctaPayload\x18\x14 \x01(\t\x12\x14\n\x0c\x64isableNudge\x18\x15 \x01(\x08\x12\x18\n\x10originalImageUrl\x18\x16 \x01(\t\x12\'\n\x1f\x61utomatedGreetingMessageCtaType\x18\x17 \x01(\t\x12\x14\n\x0cwtwaAdFormat\x18\x18 \x01(\x08\x12@\n\x06\x61\x64Type\x18\x19 \x01(\x0e\x32\x30.whatsapp.ContextInfo.ExternalAdReplyInfo.AdType\x12\x16\n\x0ewtwaWebsiteUrl\x18\x1a \x01(\t\x12\x14\n\x0c\x61\x64PreviewUrl\x18\x1b \x01(\t\x12\"\n\x1a\x63ontainsCtwaFlowsAutoReply\x18\x1c \x01(\x08\x12\x1c\n\x14\x61gmThumbnailStrategy\x18\x1d \x01(\x05\x12\x18\n\x10\x61gmTitleStrategy\x18\x1e \x01(\x05\x12\x1b\n\x13\x61gmSubtitleStrategy\x18\x1f \x01(\x05\x12$\n\x1c\x61gmHeaderInteractionStrategy\x18 \x01(\x05\"\x1c\n\x06\x41\x64Type\x12\x08\n\x04\x43TWA\x10\x00\x12\x08\n\x04\x43\x41WC\x10\x01\"+\n\tMediaType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05IMAGE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\x9a\x01\n\x14\x46\x65\x61tureEligibilities\x12\x19\n\x11\x63\x61nnotBeReactedTo\x18\x01 \x01(\x08\x12\x16\n\x0e\x63\x61nnotBeRanked\x18\x02 \x01(\x08\x12\x1a\n\x12\x63\x61nRequestFeedback\x18\x03 \x01(\x08\x12\x15\n\rcanBeReshared\x18\x04 \x01(\x08\x12\x1c\n\x14\x63\x61nReceiveMultiReact\x18\x05 \x01(\x08\x1a\xaa\x02\n\x1e\x46orwardedNewsletterMessageInfo\x12\x15\n\rnewsletterJid\x18\x01 \x01(\t\x12\x17\n\x0fserverMessageId\x18\x02 \x01(\x05\x12\x16\n\x0enewsletterName\x18\x03 \x01(\t\x12U\n\x0b\x63ontentType\x18\x04 \x01(\x0e\x32@.whatsapp.ContextInfo.ForwardedNewsletterMessageInfo.ContentType\x12\x19\n\x11\x61\x63\x63\x65ssibilityText\x18\x05 \x01(\t\x12\x13\n\x0bprofileName\x18\x06 \x01(\t\"9\n\x0b\x43ontentType\x12\n\n\x06UPDATE\x10\x01\x12\x0f\n\x0bUPDATE_CARD\x10\x02\x12\r\n\tLINK_CARD\x10\x03\x1a(\n\x18PartiallySelectedContent\x12\x0c\n\x04text\x18\x01 \x01(\t\x1a\x8c\x01\n\x1aQuestionReplyQuotedMessage\x12\x18\n\x10serverQuestionId\x18\x01 \x01(\x05\x12)\n\x0equotedQuestion\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12)\n\x0equotedResponse\x18\x03 \x01(\x0b\x32\x11.whatsapp.Message\x1a\xbe\x01\n\x16StatusAudienceMetadata\x12O\n\x0c\x61udienceType\x18\x01 \x01(\x0e\x32\x39.whatsapp.ContextInfo.StatusAudienceMetadata.AudienceType\x12\x10\n\x08listName\x18\x02 \x01(\t\x12\x11\n\tlistEmoji\x18\x03 \x01(\t\".\n\x0c\x41udienceType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rCLOSE_FRIENDS\x10\x01\x1a\x31\n\x07UTMInfo\x12\x11\n\tutmSource\x18\x01 \x01(\t\x12\x13\n\x0butmCampaign\x18\x02 \x01(\t\"m\n\x0e\x43rossAppSource\x12\x1c\n\x18\x43ROSS_APP_SOURCE_UNKNOWN\x10\x00\x12\x1e\n\x1a\x43ROSS_APP_SOURCE_INSTAGRAM\x10\x01\x12\x1d\n\x19\x43ROSS_APP_SOURCE_FACEBOOK\x10\x02\"V\n\rForwardOrigin\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x43HAT\x10\x01\x12\n\n\x06STATUS\x10\x02\x12\x0c\n\x08\x43HANNELS\x10\x03\x12\x0b\n\x07META_AI\x10\x04\x12\x07\n\x03UGC\x10\x05\"\xd7\x01\n\x0fPairedMediaType\x12\x14\n\x10NOT_PAIRED_MEDIA\x10\x00\x12\x13\n\x0fSD_VIDEO_PARENT\x10\x01\x12\x12\n\x0eHD_VIDEO_CHILD\x10\x02\x12\x13\n\x0fSD_IMAGE_PARENT\x10\x03\x12\x12\n\x0eHD_IMAGE_CHILD\x10\x04\x12\x17\n\x13MOTION_PHOTO_PARENT\x10\x05\x12\x16\n\x12MOTION_PHOTO_CHILD\x10\x06\x12\x15\n\x11HEVC_VIDEO_PARENT\x10\x07\x12\x14\n\x10HEVC_VIDEO_CHILD\x10\x08\"$\n\nQuotedType\x12\x0c\n\x08\x45XPLICIT\x10\x00\x12\x08\n\x04\x41UTO\x10\x01\"\x92\x01\n\x15StatusAttributionType\x12\x08\n\x04NONE\x10\x00\x12\x19\n\x15RESHARED_FROM_MENTION\x10\x01\x12\x16\n\x12RESHARED_FROM_POST\x10\x02\x12!\n\x1dRESHARED_FROM_POST_MANY_TIMES\x10\x03\x12\x19\n\x15\x46ORWARDED_FROM_STATUS\x10\x04\"\\\n\x10StatusSourceType\x12\t\n\x05IMAGE\x10\x00\x12\t\n\x05VIDEO\x10\x01\x12\x07\n\x03GIF\x10\x02\x12\t\n\x05\x41UDIO\x10\x03\x12\x08\n\x04TEXT\x10\x04\x12\x14\n\x10MUSIC_STANDALONE\x10\x05\"\xe2\x10\n\x0c\x43onversation\x12\n\n\x02id\x18\x01 \x02(\t\x12*\n\x08messages\x18\x02 \x03(\x0b\x32\x18.whatsapp.HistorySyncMsg\x12\x0e\n\x06newJid\x18\x03 \x01(\t\x12\x0e\n\x06oldJid\x18\x04 \x01(\t\x12\x18\n\x10lastMsgTimestamp\x18\x05 \x01(\x04\x12\x13\n\x0bunreadCount\x18\x06 \x01(\r\x12\x10\n\x08readOnly\x18\x07 \x01(\x08\x12\x1c\n\x14\x65ndOfHistoryTransfer\x18\x08 \x01(\x08\x12\x1b\n\x13\x65phemeralExpiration\x18\t \x01(\r\x12!\n\x19\x65phemeralSettingTimestamp\x18\n \x01(\x03\x12Q\n\x18\x65ndOfHistoryTransferType\x18\x0b \x01(\x0e\x32/.whatsapp.Conversation.EndOfHistoryTransferType\x12\x1d\n\x15\x63onversationTimestamp\x18\x0c \x01(\x04\x12\x0c\n\x04name\x18\r \x01(\t\x12\r\n\x05pHash\x18\x0e \x01(\t\x12\x0f\n\x07notSpam\x18\x0f \x01(\x08\x12\x10\n\x08\x61rchived\x18\x10 \x01(\x08\x12\x34\n\x10\x64isappearingMode\x18\x11 \x01(\x0b\x32\x1a.whatsapp.DisappearingMode\x12\x1a\n\x12unreadMentionCount\x18\x12 \x01(\r\x12\x16\n\x0emarkedAsUnread\x18\x13 \x01(\x08\x12/\n\x0bparticipant\x18\x14 \x03(\x0b\x32\x1a.whatsapp.GroupParticipant\x12\x0f\n\x07tcToken\x18\x15 \x01(\x0c\x12\x18\n\x10tcTokenTimestamp\x18\x16 \x01(\x04\x12!\n\x19\x63ontactPrimaryIdentityKey\x18\x17 \x01(\x0c\x12\x0e\n\x06pinned\x18\x18 \x01(\r\x12\x13\n\x0bmuteEndTime\x18\x19 \x01(\x04\x12.\n\twallpaper\x18\x1a \x01(\x0b\x32\x1b.whatsapp.WallpaperSettings\x12\x32\n\x0fmediaVisibility\x18\x1b \x01(\x0e\x32\x19.whatsapp.MediaVisibility\x12\x1e\n\x16tcTokenSenderTimestamp\x18\x1c \x01(\x04\x12\x11\n\tsuspended\x18\x1d \x01(\x08\x12\x12\n\nterminated\x18\x1e \x01(\x08\x12\x11\n\tcreatedAt\x18\x1f \x01(\x04\x12\x11\n\tcreatedBy\x18 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18! \x01(\t\x12\x0f\n\x07support\x18\" \x01(\x08\x12\x15\n\risParentGroup\x18# \x01(\x08\x12\x15\n\rparentGroupId\x18% \x01(\t\x12\x19\n\x11isDefaultSubgroup\x18$ \x01(\x08\x12\x13\n\x0b\x64isplayName\x18& \x01(\t\x12\r\n\x05pnJid\x18\' \x01(\t\x12\x12\n\nshareOwnPn\x18( \x01(\x08\x12\x1d\n\x15pnhDuplicateLidThread\x18) \x01(\x08\x12\x0e\n\x06lidJid\x18* \x01(\t\x12\x10\n\x08username\x18+ \x01(\t\x12\x15\n\rlidOriginType\x18, \x01(\t\x12\x15\n\rcommentsCount\x18- \x01(\r\x12\x0e\n\x06locked\x18. \x01(\x08\x12=\n\x15systemMessageToInsert\x18/ \x01(\x0e\x32\x1e.whatsapp.PrivacySystemMessage\x12\x18\n\x10\x63\x61piCreatedGroup\x18\x30 \x01(\x08\x12\x12\n\naccountLid\x18\x31 \x01(\t\x12\x14\n\x0climitSharing\x18\x32 \x01(\x08\x12$\n\x1climitSharingSettingTimestamp\x18\x33 \x01(\x03\x12?\n\x13limitSharingTrigger\x18\x34 \x01(\x0e\x32\".whatsapp.LimitSharing.TriggerType\x12!\n\x19limitSharingInitiatedByMe\x18\x35 \x01(\x08\x12\x1c\n\x14maibaAiThreadEnabled\x18\x36 \x01(\x08\x12 \n\x18isMarketingMessageThread\x18\x37 \x01(\x08\x12\x1a\n\x12isSenderNewAccount\x18\x38 \x01(\x08\x12\x19\n\x11\x61\x66terReadDuration\x18\x39 \x01(\r\x12\x1a\n\x12isSenderSuspicious\x18: \x01(\x08\x12>\n\x0c\x61ppealStatus\x18; \x01(\x0e\x32(.whatsapp.Conversation.GroupAppealStatus\x12\x18\n\x10\x61ppealUpdateTime\x18< \x01(\x04\x12\"\n\x1a\x61uthAgentParentCompanyName\x18= \x01(\t\x12\x1f\n\x17\x61uthAgentObaPhoneNumber\x18> \x01(\t\"\x80\x02\n\x18\x45ndOfHistoryTransferType\x12\x30\n,COMPLETE_BUT_MORE_MESSAGES_REMAIN_ON_PRIMARY\x10\x00\x12\x32\n.COMPLETE_AND_NO_MORE_MESSAGE_REMAIN_ON_PRIMARY\x10\x01\x12:\n6COMPLETE_ON_DEMAND_SYNC_BUT_MORE_MSG_REMAIN_ON_PRIMARY\x10\x02\x12\x42\n>COMPLETE_ON_DEMAND_SYNC_WITH_MORE_MSG_ON_PRIMARY_BUT_NO_ACCESS\x10\x03\"b\n\x11GroupAppealStatus\x12\r\n\tNO_APPEAL\x10\x00\x12\x14\n\x10\x41PPEAL_IN_REVIEW\x10\x01\x12\x13\n\x0f\x41PPEAL_APPROVED\x10\x02\x12\x13\n\x0f\x41PPEAL_REJECTED\x10\x03\"\xe0\x07\n\x12\x44\x65viceCapabilities\x12O\n\x14\x63hatLockSupportLevel\x18\x01 \x01(\x0e\x32\x31.whatsapp.DeviceCapabilities.ChatLockSupportLevel\x12?\n\x0clidMigration\x18\x02 \x01(\x0b\x32).whatsapp.DeviceCapabilities.LIDMigration\x12I\n\x11\x62usinessBroadcast\x18\x03 \x01(\x0b\x32..whatsapp.DeviceCapabilities.BusinessBroadcast\x12\x41\n\ruserHasAvatar\x18\x04 \x01(\x0b\x32*.whatsapp.DeviceCapabilities.UserHasAvatar\x12]\n\x1bmemberNameTagPrimarySupport\x18\x05 \x01(\x0e\x32\x38.whatsapp.DeviceCapabilities.MemberNameTagPrimarySupport\x12\x37\n\x08\x61iThread\x18\x06 \x01(\x0b\x32%.whatsapp.DeviceCapabilities.AiThread\x1a\x83\x01\n\x08\x41iThread\x12H\n\x0csupportLevel\x18\x01 \x01(\x0e\x32\x32.whatsapp.DeviceCapabilities.AiThread.SupportLevel\"-\n\x0cSupportLevel\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05INFRA\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\x1a\xa1\x01\n\x11\x42usinessBroadcast\x12\x19\n\x11importListEnabled\x18\x01 \x01(\x08\x12\x1f\n\x17\x63ompanionSupportEnabled\x18\x02 \x01(\x08\x12\x1b\n\x13\x63\x61mpaignSyncEnabled\x18\x03 \x01(\x08\x12\x1b\n\x13insightsSyncEnabled\x18\x04 \x01(\x08\x12\x16\n\x0erecipientLimit\x18\x05 \x01(\x05\x1a\x30\n\x0cLIDMigration\x12 \n\x18\x63hatDbMigrationTimestamp\x18\x01 \x01(\x04\x1a&\n\rUserHasAvatar\x12\x15\n\ruserHasAvatar\x18\x01 \x01(\x08\"7\n\x14\x43hatLockSupportLevel\x12\x08\n\x04NONE\x10\x00\x12\x0b\n\x07MINIMAL\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\"U\n\x1bMemberNameTagPrimarySupport\x12\x0c\n\x08\x44ISABLED\x10\x00\x12\x14\n\x10RECEIVER_ENABLED\x10\x01\x12\x12\n\x0eSENDER_ENABLED\x10\x02\"E\n\x1c\x44\x65viceConsistencyCodeMessage\x12\x12\n\ngeneration\x18\x01 \x01(\r\x12\x11\n\tsignature\x18\x02 \x01(\x0c\"\xab\x02\n\x12\x44\x65viceListMetadata\x12\x15\n\rsenderKeyHash\x18\x01 \x01(\x0c\x12\x17\n\x0fsenderTimestamp\x18\x02 \x01(\x04\x12\x1c\n\x10senderKeyIndexes\x18\x03 \x03(\rB\x02\x10\x01\x12\x36\n\x11senderAccountType\x18\x04 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType\x12\x38\n\x13receiverAccountType\x18\x05 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType\x12\x18\n\x10recipientKeyHash\x18\x08 \x01(\x0c\x12\x1a\n\x12recipientTimestamp\x18\t \x01(\x04\x12\x1f\n\x13recipientKeyIndexes\x18\n \x03(\rB\x02\x10\x01\"\xd1\x0b\n\x0b\x44\x65viceProps\x12\n\n\x02os\x18\x01 \x01(\t\x12\x31\n\x07version\x18\x02 \x01(\x0b\x32 .whatsapp.DeviceProps.AppVersion\x12\x38\n\x0cplatformType\x18\x03 \x01(\x0e\x32\".whatsapp.DeviceProps.PlatformType\x12\x17\n\x0frequireFullSync\x18\x04 \x01(\x08\x12\x42\n\x11historySyncConfig\x18\x05 \x01(\x0b\x32\'.whatsapp.DeviceProps.HistorySyncConfig\x1ag\n\nAppVersion\x12\x0f\n\x07primary\x18\x01 \x01(\r\x12\x11\n\tsecondary\x18\x02 \x01(\r\x12\x10\n\x08tertiary\x18\x03 \x01(\r\x12\x12\n\nquaternary\x18\x04 \x01(\r\x12\x0f\n\x07quinary\x18\x05 \x01(\r\x1a\xa0\x06\n\x11HistorySyncConfig\x12\x19\n\x11\x66ullSyncDaysLimit\x18\x01 \x01(\r\x12\x1b\n\x13\x66ullSyncSizeMbLimit\x18\x02 \x01(\r\x12\x16\n\x0estorageQuotaMb\x18\x03 \x01(\r\x12%\n\x1dinlineInitialPayloadInE2EeMsg\x18\x04 \x01(\x08\x12\x1b\n\x13recentSyncDaysLimit\x18\x05 \x01(\r\x12\x1d\n\x15supportCallLogHistory\x18\x06 \x01(\x08\x12&\n\x1esupportBotUserAgentChatHistory\x18\x07 \x01(\x08\x12#\n\x1bsupportCagReactionsAndPolls\x18\x08 \x01(\x08\x12\x1b\n\x13supportBizHostedMsg\x18\t \x01(\x08\x12\x30\n(supportRecentSyncChunkMessageCountTuning\x18\n \x01(\x08\x12\x1d\n\x15supportHostedGroupMsg\x18\x0b \x01(\x08\x12!\n\x19supportFbidBotChatHistory\x18\x0c \x01(\x08\x12(\n supportAddOnHistorySyncMigration\x18\r \x01(\x08\x12!\n\x19supportMessageAssociation\x18\x0e \x01(\x08\x12\x1b\n\x13supportGroupHistory\x18\x0f \x01(\x08\x12\x15\n\ronDemandReady\x18\x10 \x01(\x08\x12\x18\n\x10supportGuestChat\x18\x11 \x01(\x08\x12\x1d\n\x15\x63ompleteOnDemandReady\x18\x12 \x01(\x08\x12\x1e\n\x16thumbnailSyncDaysLimit\x18\x13 \x01(\r\x12%\n\x1dinitialSyncMaxMessagesPerChat\x18\x14 \x01(\r\x12\x1b\n\x13supportManusHistory\x18\x15 \x01(\x08\x12\x1b\n\x13supportHatchHistory\x18\x16 \x01(\x08\x12 \n\x18supportedBotChannelFbids\x18\x17 \x03(\t\x12\x1d\n\x15supportInlineContacts\x18\x18 \x01(\x08\"\xdf\x02\n\x0cPlatformType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x43HROME\x10\x01\x12\x0b\n\x07\x46IREFOX\x10\x02\x12\x06\n\x02IE\x10\x03\x12\t\n\x05OPERA\x10\x04\x12\n\n\x06SAFARI\x10\x05\x12\x08\n\x04\x45\x44GE\x10\x06\x12\x0b\n\x07\x44\x45SKTOP\x10\x07\x12\x08\n\x04IPAD\x10\x08\x12\x12\n\x0e\x41NDROID_TABLET\x10\t\x12\t\n\x05OHANA\x10\n\x12\t\n\x05\x41LOHA\x10\x0b\x12\x0c\n\x08\x43\x41TALINA\x10\x0c\x12\n\n\x06TCL_TV\x10\r\x12\r\n\tIOS_PHONE\x10\x0e\x12\x10\n\x0cIOS_CATALYST\x10\x0f\x12\x11\n\rANDROID_PHONE\x10\x10\x12\x15\n\x11\x41NDROID_AMBIGUOUS\x10\x11\x12\x0b\n\x07WEAR_OS\x10\x12\x12\x0c\n\x08\x41R_WRIST\x10\x13\x12\r\n\tAR_DEVICE\x10\x14\x12\x07\n\x03UWP\x10\x15\x12\x06\n\x02VR\x10\x16\x12\r\n\tCLOUD_API\x10\x17\x12\x10\n\x0cSMARTGLASSES\x10\x18\"\x9f\x03\n\x10\x44isappearingMode\x12\x37\n\tinitiator\x18\x01 \x01(\x0e\x32$.whatsapp.DisappearingMode.Initiator\x12\x33\n\x07trigger\x18\x02 \x01(\x0e\x32\".whatsapp.DisappearingMode.Trigger\x12\x1a\n\x12initiatorDeviceJid\x18\x03 \x01(\t\x12\x15\n\rinitiatedByMe\x18\x04 \x01(\x08\"i\n\tInitiator\x12\x13\n\x0f\x43HANGED_IN_CHAT\x10\x00\x12\x13\n\x0fINITIATED_BY_ME\x10\x01\x12\x16\n\x12INITIATED_BY_OTHER\x10\x02\x12\x1a\n\x16\x42IZ_UPGRADE_FB_HOSTING\x10\x03\"\x7f\n\x07Trigger\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0c\x43HAT_SETTING\x10\x01\x12\x13\n\x0f\x41\x43\x43OUNT_SETTING\x10\x02\x12\x0f\n\x0b\x42ULK_CHANGE\x10\x03\x12\x1b\n\x17\x42IZ_SUPPORTS_FB_HOSTING\x10\x04\x12\x12\n\x0eUNKNOWN_GROUPS\x10\x05\"\x84\x01\n\x0f\x45mbeddedContent\x12\x34\n\x0f\x65mbeddedMessage\x18\x01 \x01(\x0b\x32\x19.whatsapp.EmbeddedMessageH\x00\x12\x30\n\rembeddedMusic\x18\x02 \x01(\x0b\x32\x17.whatsapp.EmbeddedMusicH\x00\x42\t\n\x07\x63ontent\"G\n\x0f\x45mbeddedMessage\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\"\xeb\x02\n\rEmbeddedMusic\x12\x1b\n\x13musicContentMediaId\x18\x01 \x01(\t\x12\x0e\n\x06songId\x18\x02 \x01(\t\x12\x0e\n\x06\x61uthor\x18\x03 \x01(\t\x12\r\n\x05title\x18\x04 \x01(\t\x12\x19\n\x11\x61rtworkDirectPath\x18\x05 \x01(\t\x12\x15\n\rartworkSha256\x18\x06 \x01(\x0c\x12\x18\n\x10\x61rtworkEncSha256\x18\x07 \x01(\x0c\x12\x19\n\x11\x61rtistAttribution\x18\x08 \x01(\t\x12\x18\n\x10\x63ountryBlocklist\x18\t \x01(\x0c\x12\x12\n\nisExplicit\x18\n \x01(\x08\x12\x17\n\x0f\x61rtworkMediaKey\x18\x0b \x01(\x0c\x12\x1e\n\x16musicSongStartTimeInMs\x18\x0c \x01(\x03\x12#\n\x1b\x64\x65rivedContentStartTimeInMs\x18\r \x01(\x03\x12\x1b\n\x13overlapDurationInMs\x18\x0e \x01(\x03\"?\n\x17\x45ncryptedPairingRequest\x12\x18\n\x10\x65ncryptedPayload\x18\x01 \x01(\x0c\x12\n\n\x02iv\x18\x02 \x01(\x0c\"7\n\x10\x45phemeralSetting\x12\x10\n\x08\x64uration\x18\x01 \x01(\x0f\x12\x11\n\ttimestamp\x18\x02 \x01(\x10\"*\n\x17\x45ventAdditionalMetadata\x12\x0f\n\x07isStale\x18\x01 \x01(\x08\"\xb1\x01\n\rEventResponse\x12\x35\n\x17\x65ventResponseMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x13\n\x0btimestampMs\x18\x02 \x01(\x03\x12\x44\n\x14\x65ventResponseMessage\x18\x03 \x01(\x0b\x32&.whatsapp.Message.EventResponseMessage\x12\x0e\n\x06unread\x18\x04 \x01(\x08\"&\n\x08\x45xitCode\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x04\x12\x0c\n\x04text\x18\x02 \x01(\t\"\x8f\x01\n\x15\x45xternalBlobReference\x12\x10\n\x08mediaKey\x18\x01 \x01(\x0c\x12\x12\n\ndirectPath\x18\x02 \x01(\t\x12\x0e\n\x06handle\x18\x03 \x01(\t\x12\x15\n\rfileSizeBytes\x18\x04 \x01(\x04\x12\x12\n\nfileSha256\x18\x05 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x06 \x01(\x0c\"\xd6\x01\n\x05\x46ield\x12\x12\n\nminVersion\x18\x01 \x01(\r\x12\x12\n\nmaxVersion\x18\x02 \x01(\r\x12\x1f\n\x17notReportableMinVersion\x18\x03 \x01(\r\x12\x11\n\tisMessage\x18\x04 \x01(\x08\x12/\n\x08subfield\x18\x05 \x03(\x0b\x32\x1d.whatsapp.Field.SubfieldEntry\x1a@\n\rSubfieldEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1e\n\x05value\x18\x02 \x01(\x0b\x32\x0f.whatsapp.Field:\x02\x38\x01\"\xe7\x01\n\x0f\x46ingerprintData\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\x14\n\x0cpnIdentifier\x18\x02 \x01(\x0c\x12\x15\n\rlidIdentifier\x18\x03 \x01(\x0c\x12\x1a\n\x12usernameIdentifier\x18\x04 \x01(\x0c\x12:\n\x0bhostedState\x18\x05 \x01(\x0e\x32%.whatsapp.FingerprintData.HostedState\x12\x17\n\x0fhashedPublicKey\x18\x06 \x01(\x0c\"#\n\x0bHostedState\x12\x08\n\x04\x45\x32\x45\x45\x10\x00\x12\n\n\x06HOSTED\x10\x01\"Q\n\x19\x46orwardedAIBotMessageInfo\x12\x0f\n\x07\x62otName\x18\x01 \x01(\t\x12\x0e\n\x06\x62otJid\x18\x02 \x01(\t\x12\x13\n\x0b\x63reatorName\x18\x03 \x01(\t\"\xa5\x07\n\x0eGlobalSettings\x12\x38\n\x13lightThemeWallpaper\x18\x01 \x01(\x0b\x32\x1b.whatsapp.WallpaperSettings\x12\x32\n\x0fmediaVisibility\x18\x02 \x01(\x0e\x32\x19.whatsapp.MediaVisibility\x12\x37\n\x12\x64\x61rkThemeWallpaper\x18\x03 \x01(\x0b\x32\x1b.whatsapp.WallpaperSettings\x12\x38\n\x10\x61utoDownloadWiFi\x18\x04 \x01(\x0b\x32\x1e.whatsapp.AutoDownloadSettings\x12<\n\x14\x61utoDownloadCellular\x18\x05 \x01(\x0b\x32\x1e.whatsapp.AutoDownloadSettings\x12;\n\x13\x61utoDownloadRoaming\x18\x06 \x01(\x0b\x32\x1e.whatsapp.AutoDownloadSettings\x12*\n\"showIndividualNotificationsPreview\x18\x07 \x01(\x08\x12%\n\x1dshowGroupNotificationsPreview\x18\x08 \x01(\x08\x12 \n\x18\x64isappearingModeDuration\x18\t \x01(\x05\x12!\n\x19\x64isappearingModeTimestamp\x18\n \x01(\x03\x12\x38\n\x12\x61vatarUserSettings\x18\x0b \x01(\x0b\x32\x1c.whatsapp.AvatarUserSettings\x12\x10\n\x08\x66ontSize\x18\x0c \x01(\x05\x12\x1d\n\x15securityNotifications\x18\r \x01(\x08\x12\x1a\n\x12\x61utoUnarchiveChats\x18\x0e \x01(\x08\x12\x18\n\x10videoQualityMode\x18\x0f \x01(\x05\x12\x18\n\x10photoQualityMode\x18\x10 \x01(\x05\x12\x46\n\x1eindividualNotificationSettings\x18\x11 \x01(\x0b\x32\x1e.whatsapp.NotificationSettings\x12\x41\n\x19groupNotificationSettings\x18\x12 \x01(\x0b\x32\x1e.whatsapp.NotificationSettings\x12\x34\n\x10\x63hatLockSettings\x18\x13 \x01(\x0b\x32\x1a.whatsapp.ChatLockSettings\x12#\n\x1b\x63hatDbLidMigrationTimestamp\x18\x14 \x01(\x03\"\xfd\x01\n\x0cGroupHistory\x12*\n\x08messages\x18\x01 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\x12Q\n\x1funcountedAssociatedMessageLists\x18\x02 \x03(\x0b\x32(.whatsapp.UnCountedAssociatedMessageList\x12\x31\n\x0f\x63ommentMessages\x18\x03 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\x12;\n\x19outOfWindowPinnedMessages\x18\x04 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\"\xb6\x02\n\x16GroupHistoryBundleInfo\x12N\n\x1e\x64\x65precatedMessageHistoryBundle\x18\x01 \x01(\x0b\x32&.whatsapp.Message.MessageHistoryBundle\x12\x43\n\x0cprocessState\x18\x02 \x01(\x0e\x32-.whatsapp.GroupHistoryBundleInfo.ProcessState\"\x86\x01\n\x0cProcessState\x12\x10\n\x0cNOT_INJECTED\x10\x00\x12\x0c\n\x08INJECTED\x10\x01\x12\x14\n\x10INJECTED_PARTIAL\x10\x02\x12\x14\n\x10INJECTION_FAILED\x10\x03\x12\x1d\n\x19INJECTION_FAILED_NO_RETRY\x10\x04\x12\x0b\n\x07\x44\x45\x44UPED\x10\x05\"y\n!GroupHistoryIndividualMessageInfo\x12.\n\x10\x62undleMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12$\n\x1c\x65\x64itedAfterReceivedAsHistory\x18\x02 \x01(\x08\"\xcd\x02\n\x1cGroupHistoryWithMessageBytes\x12:\n\x08messages\x18\x01 \x03(\x0b\x32(.whatsapp.WebMessageInfoWithMessageBytes\x12\x61\n\x1funcountedAssociatedMessageLists\x18\x02 \x03(\x0b\x32\x38.whatsapp.UnCountedAssociatedMessageListWithMessageBytes\x12\x41\n\x0f\x63ommentMessages\x18\x03 \x03(\x0b\x32(.whatsapp.WebMessageInfoWithMessageBytes\x12K\n\x19outOfWindowPinnedMessages\x18\x04 \x03(\x0b\x32(.whatsapp.WebMessageInfoWithMessageBytes\"6\n\x0cGroupMention\x12\x10\n\x08groupJid\x18\x01 \x01(\t\x12\x14\n\x0cgroupSubject\x18\x02 \x01(\t\"\xae\x01\n\x10GroupParticipant\x12\x0f\n\x07userJid\x18\x01 \x02(\t\x12-\n\x04rank\x18\x02 \x01(\x0e\x32\x1f.whatsapp.GroupParticipant.Rank\x12*\n\x0bmemberLabel\x18\x03 \x01(\x0b\x32\x15.whatsapp.MemberLabel\".\n\x04Rank\x12\x0b\n\x07REGULAR\x10\x00\x12\t\n\x05\x41\x44MIN\x10\x01\x12\x0e\n\nSUPERADMIN\x10\x02\"C\n\x11GroupRootKeyShare\x12.\n\x04keys\x18\x01 \x03(\x0b\x32 .whatsapp.GroupRootKeyShareEntry\"t\n\x16GroupRootKeyShareEntry\x12\x14\n\x0cgroupRootKey\x18\x01 \x01(\x0c\x12\r\n\x05keyId\x18\x02 \x01(\t\x12\x19\n\x11\x65xpiryTimestampMs\x18\x03 \x01(\x03\x12\x1a\n\x12\x63reatedTimestampMs\x18\x04 \x01(\x03\"\x8e\x07\n\x10HandshakeMessage\x12;\n\x0b\x63lientHello\x18\x02 \x01(\x0b\x32&.whatsapp.HandshakeMessage.ClientHello\x12;\n\x0bserverHello\x18\x03 \x01(\x0b\x32&.whatsapp.HandshakeMessage.ServerHello\x12=\n\x0c\x63lientFinish\x18\x04 \x01(\x0b\x32\'.whatsapp.HandshakeMessage.ClientFinish\x1ay\n\x0c\x43lientFinish\x12\x0e\n\x06static\x18\x01 \x01(\x0c\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\x12\x1a\n\x12\x65xtendedCiphertext\x18\x03 \x01(\x0c\x12\x13\n\x0bpaddedBytes\x18\x04 \x01(\x0c\x12\x17\n\x0fsimulateXxkemFs\x18\x05 \x01(\x08\x1a\x9b\x02\n\x0b\x43lientHello\x12\x11\n\tephemeral\x18\x01 \x01(\x0c\x12\x0e\n\x06static\x18\x02 \x01(\x0c\x12\x0f\n\x07payload\x18\x03 \x01(\x0c\x12\x13\n\x0buseExtended\x18\x04 \x01(\x08\x12\x1a\n\x12\x65xtendedCiphertext\x18\x05 \x01(\x0c\x12\x13\n\x0bpaddedBytes\x18\x06 \x01(\x0c\x12\"\n\x1asendServerHelloPaddedBytes\x18\x07 \x01(\x08\x12\x17\n\x0fsimulateXxkemFs\x18\x08 \x01(\x08\x12:\n\x06pqMode\x18\t \x01(\x0e\x32*.whatsapp.HandshakeMessage.HandshakePqMode\x12\x19\n\x11\x65xtendedEphemeral\x18\n \x01(\x0c\x1a\x8b\x01\n\x0bServerHello\x12\x11\n\tephemeral\x18\x01 \x01(\x0c\x12\x0e\n\x06static\x18\x02 \x01(\x0c\x12\x0f\n\x07payload\x18\x03 \x01(\x0c\x12\x16\n\x0e\x65xtendedStatic\x18\x04 \x01(\x0c\x12\x14\n\x0cpaddingBytes\x18\x05 \x01(\x0c\x12\x1a\n\x12\x65xtendedCiphertext\x18\x06 \x01(\x0c\"\x99\x01\n\x0fHandshakePqMode\x12\x1d\n\x19HANDSHAKE_PQ_MODE_UNKNOWN\x10\x00\x12\t\n\x05XXKEM\x10\x01\x12\x0c\n\x08XXKEM_FS\x10\x02\x12\x10\n\x0cWA_CLASSICAL\x10\x03\x12\t\n\x05WA_PQ\x10\x04\x12\t\n\x05IKKEM\x10\x05\x12\x0c\n\x08IKKEM_FS\x10\x06\x12\x0b\n\x07XXKEM_2\x10\x07\x12\x0b\n\x07IKKEM_2\x10\x08\"I\n\x11HatchMetadataSync\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x13\n\x0btimestampMs\x18\x02 \x01(\x03\x12\x11\n\trequestId\x18\x03 \x01(\t\"\x9e\x08\n\x0bHistorySync\x12\x37\n\x08syncType\x18\x01 \x02(\x0e\x32%.whatsapp.HistorySync.HistorySyncType\x12-\n\rconversations\x18\x02 \x03(\x0b\x32\x16.whatsapp.Conversation\x12\x32\n\x10statusV3Messages\x18\x03 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\x12\x12\n\nchunkOrder\x18\x05 \x01(\r\x12\x10\n\x08progress\x18\x06 \x01(\r\x12%\n\tpushnames\x18\x07 \x03(\x0b\x32\x12.whatsapp.Pushname\x12\x30\n\x0eglobalSettings\x18\x08 \x01(\x0b\x32\x18.whatsapp.GlobalSettings\x12\x1a\n\x12threadIdUserSecret\x18\t \x01(\x0c\x12\x1f\n\x17threadDsTimeframeOffset\x18\n \x01(\r\x12\x31\n\x0erecentStickers\x18\x0b \x03(\x0b\x32\x19.whatsapp.StickerMetadata\x12\x34\n\x10pastParticipants\x18\x0c \x03(\x0b\x32\x1a.whatsapp.PastParticipants\x12/\n\x0e\x63\x61llLogRecords\x18\r \x03(\x0b\x32\x17.whatsapp.CallLogRecord\x12\x41\n\x0f\x61iWaitListState\x18\x0e \x01(\x0e\x32(.whatsapp.HistorySync.BotAIWaitListState\x12\x43\n\x18phoneNumberToLidMappings\x18\x0f \x03(\x0b\x32!.whatsapp.PhoneNumberToLIDMapping\x12\x1a\n\x12\x63ompanionMetaNonce\x18\x10 \x01(\t\x12,\n$shareableChatIdentifierEncryptionKey\x18\x11 \x01(\x0c\x12#\n\x08\x61\x63\x63ounts\x18\x12 \x03(\x0b\x32\x11.whatsapp.Account\x12\x0f\n\x07nctSalt\x18\x13 \x01(\x0c\x12/\n\x0einlineContacts\x18\x14 \x03(\x0b\x32\x17.whatsapp.InlineContact\x12\x1e\n\x16inlineContactsProvided\x18\x15 \x01(\x08\"7\n\x12\x42otAIWaitListState\x12\x0f\n\x0bIN_WAITLIST\x10\x00\x12\x10\n\x0c\x41I_AVAILABLE\x10\x01\"\x8a\x01\n\x0fHistorySyncType\x12\x15\n\x11INITIAL_BOOTSTRAP\x10\x00\x12\x15\n\x11INITIAL_STATUS_V3\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\x12\n\n\x06RECENT\x10\x03\x12\r\n\tPUSH_NAME\x10\x04\x12\x15\n\x11NON_BLOCKING_DATA\x10\x05\x12\r\n\tON_DEMAND\x10\x06\"O\n\x0eHistorySyncMsg\x12)\n\x07message\x18\x01 \x01(\x0b\x32\x18.whatsapp.WebMessageInfo\x12\x12\n\nmsgOrderId\x18\x02 \x01(\x04\"\x99\x05\n\x16HydratedTemplateButton\x12\r\n\x05index\x18\x04 \x01(\r\x12U\n\x10quickReplyButton\x18\x01 \x01(\x0b\x32\x39.whatsapp.HydratedTemplateButton.HydratedQuickReplyButtonH\x00\x12G\n\turlButton\x18\x02 \x01(\x0b\x32\x32.whatsapp.HydratedTemplateButton.HydratedURLButtonH\x00\x12I\n\ncallButton\x18\x03 \x01(\x0b\x32\x33.whatsapp.HydratedTemplateButton.HydratedCallButtonH\x00\x1a>\n\x12HydratedCallButton\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x12\x13\n\x0bphoneNumber\x18\x02 \x01(\t\x1a;\n\x18HydratedQuickReplyButton\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t\x1a\xf5\x01\n\x11HydratedURLButton\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x19\n\x11\x63onsentedUsersUrl\x18\x03 \x01(\t\x12g\n\x13webviewPresentation\x18\x04 \x01(\x0e\x32J.whatsapp.HydratedTemplateButton.HydratedURLButton.WebviewPresentationType\":\n\x17WebviewPresentationType\x12\x08\n\x04\x46ULL\x10\x01\x12\x08\n\x04TALL\x10\x02\x12\x0b\n\x07\x43OMPACT\x10\x03\x42\x10\n\x0ehydratedButton\"A\n\x18IdentityKeyPairStructure\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\x12\n\nprivateKey\x18\x02 \x01(\x0c\"\x97\x07\n\x16InThreadSurveyMetadata\x12\x16\n\x0etessaSessionId\x18\x01 \x01(\t\x12\x16\n\x0esimonSessionId\x18\x02 \x01(\t\x12\x15\n\rsimonSurveyId\x18\x03 \x01(\t\x12\x13\n\x0btessaRootId\x18\x04 \x01(\t\x12\x11\n\trequestId\x18\x05 \x01(\t\x12\x12\n\ntessaEvent\x18\x06 \x01(\t\x12\x1c\n\x14invitationHeaderText\x18\x07 \x01(\t\x12\x1a\n\x12invitationBodyText\x18\x08 \x01(\t\x12\x19\n\x11invitationCtaText\x18\t \x01(\t\x12\x18\n\x10invitationCtaUrl\x18\n \x01(\t\x12\x13\n\x0bsurveyTitle\x18\x0b \x01(\t\x12J\n\tquestions\x18\x0c \x03(\x0b\x32\x37.whatsapp.InThreadSurveyMetadata.InThreadSurveyQuestion\x12 \n\x18surveyContinueButtonText\x18\r \x01(\t\x12\x1e\n\x16surveySubmitButtonText\x18\x0e \x01(\t\x12\x1c\n\x14privacyStatementFull\x18\x0f \x01(\t\x12\x62\n\x15privacyStatementParts\x18\x10 \x03(\x0b\x32\x43.whatsapp.InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPart\x12\x19\n\x11\x66\x65\x65\x64\x62\x61\x63kToastText\x18\x11 \x01(\t\x12\x1a\n\x12startQuestionIndex\x18\x12 \x01(\x05\x1aY\n\x14InThreadSurveyOption\x12\x13\n\x0bstringValue\x18\x01 \x01(\t\x12\x14\n\x0cnumericValue\x18\x02 \x01(\r\x12\x16\n\x0etextTranslated\x18\x03 \x01(\t\x1a?\n\"InThreadSurveyPrivacyStatementPart\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x1a\x92\x01\n\x16InThreadSurveyQuestion\x12\x14\n\x0cquestionText\x18\x01 \x01(\t\x12\x12\n\nquestionId\x18\x02 \x01(\t\x12N\n\x0fquestionOptions\x18\x03 \x03(\x0b\x32\x35.whatsapp.InThreadSurveyMetadata.InThreadSurveyOption\"e\n\rInlineContact\x12\r\n\x05pnJid\x18\x01 \x01(\t\x12\x0e\n\x06lidJid\x18\x02 \x01(\t\x12\x10\n\x08\x66ullName\x18\x03 \x01(\t\x12\x11\n\tfirstName\x18\x04 \x01(\t\x12\x10\n\x08username\x18\x05 \x01(\t\"\x8f\x04\n\x15InteractiveAnnotation\x12(\n\x0fpolygonVertices\x18\x01 \x03(\x0b\x32\x0f.whatsapp.Point\x12\x1e\n\x16shouldSkipConfirmation\x18\x04 \x01(\x08\x12\x32\n\x0f\x65mbeddedContent\x18\x05 \x01(\x0b\x32\x19.whatsapp.EmbeddedContent\x12\x46\n\x0estatusLinkType\x18\x08 \x01(\x0e\x32..whatsapp.InteractiveAnnotation.StatusLinkType\x12&\n\x08location\x18\x02 \x01(\x0b\x32\x12.whatsapp.LocationH\x00\x12J\n\nnewsletter\x18\x03 \x01(\x0b\x32\x34.whatsapp.ContextInfo.ForwardedNewsletterMessageInfoH\x00\x12\x18\n\x0e\x65mbeddedAction\x18\x06 \x01(\x08H\x00\x12,\n\ttapAction\x18\x07 \x01(\x0b\x32\x17.whatsapp.TapLinkActionH\x00\"j\n\x0eStatusLinkType\x12\x1b\n\x17RASTERIZED_LINK_PREVIEW\x10\x01\x12\x1d\n\x19RASTERIZED_LINK_TRUNCATED\x10\x02\x12\x1c\n\x18RASTERIZED_LINK_FULL_URL\x10\x03\x42\x08\n\x06\x61\x63tion\"E\n$InteractiveMessageAdditionalMetadata\x12\x1d\n\x15isGalaxyFlowCompleted\x18\x01 \x01(\x08\"\xb7\x01\n\nKeepInChat\x12$\n\x08keepType\x18\x01 \x01(\x0e\x32\x12.whatsapp.KeepType\x12\x17\n\x0fserverTimestamp\x18\x02 \x01(\x03\x12!\n\x03key\x18\x03 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x11\n\tdeviceJid\x18\x04 \x01(\t\x12\x19\n\x11\x63lientTimestampMs\x18\x05 \x01(\x03\x12\x19\n\x11serverTimestampMs\x18\x06 \x01(\x03\"t\n\x12KeyExchangeMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\x12\x12\n\nratchetKey\x18\x03 \x01(\x0c\x12\x13\n\x0bidentityKey\x18\x04 \x01(\x0c\x12\x18\n\x10\x62\x61seKeySignature\x18\x05 \x01(\x0c\"\x13\n\x05KeyId\x12\n\n\x02id\x18\x01 \x01(\x0c\"I\n\x13LIDMigrationMapping\x12\n\n\x02pn\x18\x01 \x02(\x04\x12\x13\n\x0b\x61ssignedLid\x18\x02 \x02(\x04\x12\x11\n\tlatestLid\x18\x03 \x01(\x04\"?\n\x1eLIDMigrationMappingSyncMessage\x12\x1d\n\x15\x65ncodedMappingPayload\x18\x01 \x01(\x0c\"z\n\x1eLIDMigrationMappingSyncPayload\x12\x36\n\x0fpnToLidMappings\x18\x01 \x03(\x0b\x32\x1d.whatsapp.LIDMigrationMapping\x12 \n\x18\x63hatDbMigrationTimestamp\x18\x02 \x01(\x04\"\x8a\x01\n\rLegacyMessage\x12\x44\n\x14\x65ventResponseMessage\x18\x01 \x01(\x0b\x32&.whatsapp.Message.EventResponseMessage\x12\x33\n\x08pollVote\x18\x02 \x01(\x0b\x32!.whatsapp.Message.PollVoteMessage\"\xf6\x01\n\x0cLimitSharing\x12\x16\n\x0esharingLimited\x18\x01 \x01(\x08\x12\x33\n\x07trigger\x18\x02 \x01(\x0e\x32\".whatsapp.LimitSharing.TriggerType\x12$\n\x1climitSharingSettingTimestamp\x18\x03 \x01(\x03\x12\x15\n\rinitiatedByMe\x18\x04 \x01(\x08\"\\\n\x0bTriggerType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0c\x43HAT_SETTING\x10\x01\x12\x1b\n\x17\x42IZ_SUPPORTS_FB_HOSTING\x10\x02\x12\x11\n\rUNKNOWN_GROUP\x10\x03\"=\n\rLocalizedName\x12\n\n\x02lg\x18\x01 \x01(\t\x12\n\n\x02lc\x18\x02 \x01(\t\x12\x14\n\x0cverifiedName\x18\x03 \x01(\t\"K\n\x08Location\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\"\x1e\n\tMediaData\x12\x11\n\tlocalPath\x18\x01 \x01(\t\"Y\n\x0fMediaDomainInfo\x12\x30\n\x0emediaKeyDomain\x18\x01 \x01(\x0e\x32\x18.whatsapp.MediaKeyDomain\x12\x14\n\x0c\x65\x32\x45\x65MediaKey\x18\x02 \x01(\x0c\"\xb9\x05\n\nMediaEntry\x12\x12\n\nfileSha256\x18\x01 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x02 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x03 \x01(\x0c\x12\x12\n\ndirectPath\x18\x04 \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x05 \x01(\x03\x12\x17\n\x0fserverMediaType\x18\x06 \x01(\t\x12\x13\n\x0buploadToken\x18\x07 \x01(\x0c\x12\x1a\n\x12validatedTimestamp\x18\x08 \x01(\x0c\x12\x0f\n\x07sidecar\x18\t \x01(\x0c\x12\x10\n\x08objectId\x18\n \x01(\t\x12\x0c\n\x04\x66\x62id\x18\x0b \x01(\t\x12I\n\x15\x64ownloadableThumbnail\x18\x0c \x01(\x0b\x32*.whatsapp.MediaEntry.DownloadableThumbnail\x12\x0e\n\x06handle\x18\r \x01(\t\x12\x10\n\x08\x66ilename\x18\x0e \x01(\t\x12K\n\x16progressiveJpegDetails\x18\x0f \x01(\x0b\x32+.whatsapp.MediaEntry.ProgressiveJpegDetails\x12\x0c\n\x04size\x18\x10 \x01(\x03\x12$\n\x1clastDownloadAttemptTimestamp\x18\x11 \x01(\x03\x1a\x95\x01\n\x15\x44ownloadableThumbnail\x12\x12\n\nfileSha256\x18\x01 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x02 \x01(\x0c\x12\x12\n\ndirectPath\x18\x03 \x01(\t\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x19\n\x11mediaKeyTimestamp\x18\x05 \x01(\x03\x12\x10\n\x08objectId\x18\x06 \x01(\t\x1a>\n\x16ProgressiveJpegDetails\x12\x13\n\x0bscanLengths\x18\x01 \x03(\r\x12\x0f\n\x07sidecar\x18\x02 \x01(\x0c\"W\n\x12MediaNotifyMessage\x12\x16\n\x0e\x65xpressPathUrl\x18\x01 \x01(\t\x12\x15\n\rfileEncSha256\x18\x02 \x01(\x0c\x12\x12\n\nfileLength\x18\x03 \x01(\x04\"\xe5\x01\n\x16MediaRetryNotification\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\x12\x12\n\ndirectPath\x18\x02 \x01(\t\x12;\n\x06result\x18\x03 \x01(\x0e\x32+.whatsapp.MediaRetryNotification.ResultType\x12\x15\n\rmessageSecret\x18\x04 \x01(\x0c\"Q\n\nResultType\x12\x11\n\rGENERAL_ERROR\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\r\n\tNOT_FOUND\x10\x02\x12\x14\n\x10\x44\x45\x43RYPTION_ERROR\x10\x03\"4\n\x0bMemberLabel\x12\r\n\x05label\x18\x01 \x01(\t\x12\x16\n\x0elabelTimestamp\x18\x02 \x01(\x03\"t\n\x07Mention\x12\x33\n\x0bmentionType\x18\x01 \x01(\x0e\x32\x1e.whatsapp.MENTION_MENTION_TYPE\x12\x14\n\x0cmentionedJid\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\r\x12\x0e\n\x06length\x18\x04 \x01(\r\"\xbf\xff\x02\n\x07Message\x12\x14\n\x0c\x63onversation\x18\x01 \x01(\t\x12T\n\x1csenderKeyDistributionMessage\x18\x02 \x01(\x0b\x32..whatsapp.Message.SenderKeyDistributionMessage\x12\x34\n\x0cimageMessage\x18\x03 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessage\x12\x38\n\x0e\x63ontactMessage\x18\x04 \x01(\x0b\x32 .whatsapp.Message.ContactMessage\x12:\n\x0flocationMessage\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessage\x12\x42\n\x13\x65xtendedTextMessage\x18\x06 \x01(\x0b\x32%.whatsapp.Message.ExtendedTextMessage\x12:\n\x0f\x64ocumentMessage\x18\x07 \x01(\x0b\x32!.whatsapp.Message.DocumentMessage\x12\x34\n\x0c\x61udioMessage\x18\x08 \x01(\x0b\x32\x1e.whatsapp.Message.AudioMessage\x12\x34\n\x0cvideoMessage\x18\t \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessage\x12$\n\x04\x63\x61ll\x18\n \x01(\x0b\x32\x16.whatsapp.Message.Call\x12$\n\x04\x63hat\x18\x0b \x01(\x0b\x32\x16.whatsapp.Message.Chat\x12:\n\x0fprotocolMessage\x18\x0c \x01(\x0b\x32!.whatsapp.Message.ProtocolMessage\x12\x44\n\x14\x63ontactsArrayMessage\x18\r \x01(\x0b\x32&.whatsapp.Message.ContactsArrayMessage\x12J\n\x17highlyStructuredMessage\x18\x0e \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12\x62\n*fastRatchetKeySenderKeyDistributionMessage\x18\x0f \x01(\x0b\x32..whatsapp.Message.SenderKeyDistributionMessage\x12@\n\x12sendPaymentMessage\x18\x10 \x01(\x0b\x32$.whatsapp.Message.SendPaymentMessage\x12\x42\n\x13liveLocationMessage\x18\x12 \x01(\x0b\x32%.whatsapp.Message.LiveLocationMessage\x12\x46\n\x15requestPaymentMessage\x18\x16 \x01(\x0b\x32\'.whatsapp.Message.RequestPaymentMessage\x12T\n\x1c\x64\x65\x63linePaymentRequestMessage\x18\x17 \x01(\x0b\x32..whatsapp.Message.DeclinePaymentRequestMessage\x12R\n\x1b\x63\x61ncelPaymentRequestMessage\x18\x18 \x01(\x0b\x32-.whatsapp.Message.CancelPaymentRequestMessage\x12:\n\x0ftemplateMessage\x18\x19 \x01(\x0b\x32!.whatsapp.Message.TemplateMessage\x12\x38\n\x0estickerMessage\x18\x1a \x01(\x0b\x32 .whatsapp.Message.StickerMessage\x12@\n\x12groupInviteMessage\x18\x1c \x01(\x0b\x32$.whatsapp.Message.GroupInviteMessage\x12P\n\x1atemplateButtonReplyMessage\x18\x1d \x01(\x0b\x32,.whatsapp.Message.TemplateButtonReplyMessage\x12\x38\n\x0eproductMessage\x18\x1e \x01(\x0b\x32 .whatsapp.Message.ProductMessage\x12>\n\x11\x64\x65viceSentMessage\x18\x1f \x01(\x0b\x32#.whatsapp.Message.DeviceSentMessage\x12\x38\n\x12messageContextInfo\x18# \x01(\x0b\x32\x1c.whatsapp.MessageContextInfo\x12\x32\n\x0blistMessage\x18$ \x01(\x0b\x32\x1d.whatsapp.Message.ListMessage\x12=\n\x0fviewOnceMessage\x18% \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x34\n\x0corderMessage\x18& \x01(\x0b\x32\x1e.whatsapp.Message.OrderMessage\x12\x42\n\x13listResponseMessage\x18\' \x01(\x0b\x32%.whatsapp.Message.ListResponseMessage\x12>\n\x10\x65phemeralMessage\x18( \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x38\n\x0einvoiceMessage\x18) \x01(\x0b\x32 .whatsapp.Message.InvoiceMessage\x12\x38\n\x0e\x62uttonsMessage\x18* \x01(\x0b\x32 .whatsapp.Message.ButtonsMessage\x12H\n\x16\x62uttonsResponseMessage\x18+ \x01(\x0b\x32(.whatsapp.Message.ButtonsResponseMessage\x12\x44\n\x14paymentInviteMessage\x18, \x01(\x0b\x32&.whatsapp.Message.PaymentInviteMessage\x12@\n\x12interactiveMessage\x18- \x01(\x0b\x32$.whatsapp.Message.InteractiveMessage\x12:\n\x0freactionMessage\x18. \x01(\x0b\x32!.whatsapp.Message.ReactionMessage\x12\x46\n\x15stickerSyncRmrMessage\x18/ \x01(\x0b\x32\'.whatsapp.Message.StickerSyncRMRMessage\x12P\n\x1ainteractiveResponseMessage\x18\x30 \x01(\x0b\x32,.whatsapp.Message.InteractiveResponseMessage\x12\x42\n\x13pollCreationMessage\x18\x31 \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12>\n\x11pollUpdateMessage\x18\x32 \x01(\x0b\x32#.whatsapp.Message.PollUpdateMessage\x12>\n\x11keepInChatMessage\x18\x33 \x01(\x0b\x32#.whatsapp.Message.KeepInChatMessage\x12H\n\x1a\x64ocumentWithCaptionMessage\x18\x35 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12N\n\x19requestPhoneNumberMessage\x18\x36 \x01(\x0b\x32+.whatsapp.Message.RequestPhoneNumberMessage\x12?\n\x11viewOnceMessageV2\x18\x37 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12@\n\x12\x65ncReactionMessage\x18\x38 \x01(\x0b\x32$.whatsapp.Message.EncReactionMessage\x12;\n\reditedMessage\x18: \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12H\n\x1aviewOnceMessageV2Extension\x18; \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x44\n\x15pollCreationMessageV2\x18< \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12T\n\x1cscheduledCallCreationMessage\x18= \x01(\x0b\x32..whatsapp.Message.ScheduledCallCreationMessage\x12\x43\n\x15groupMentionedMessage\x18> \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x10pinInChatMessage\x18? \x01(\x0b\x32\".whatsapp.Message.PinInChatMessage\x12\x44\n\x15pollCreationMessageV3\x18@ \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12L\n\x18scheduledCallEditMessage\x18\x41 \x01(\x0b\x32*.whatsapp.Message.ScheduledCallEditMessage\x12\x32\n\nptvMessage\x18\x42 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessage\x12>\n\x10\x62otInvokeMessage\x18\x43 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x39\n\x0f\x63\x61llLogMesssage\x18\x45 \x01(\x0b\x32 .whatsapp.Message.CallLogMessage\x12\x44\n\x14messageHistoryBundle\x18\x46 \x01(\x0b\x32&.whatsapp.Message.MessageHistoryBundle\x12>\n\x11\x65ncCommentMessage\x18G \x01(\x0b\x32#.whatsapp.Message.EncCommentMessage\x12\x34\n\x0c\x62\x63\x61llMessage\x18H \x01(\x0b\x32\x1e.whatsapp.Message.BCallMessage\x12\x42\n\x14lottieStickerMessage\x18J \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x34\n\x0c\x65ventMessage\x18K \x01(\x0b\x32\x1e.whatsapp.Message.EventMessage\x12J\n\x17\x65ncEventResponseMessage\x18L \x01(\x0b\x32).whatsapp.Message.EncEventResponseMessage\x12\x38\n\x0e\x63ommentMessage\x18M \x01(\x0b\x32 .whatsapp.Message.CommentMessage\x12T\n\x1cnewsletterAdminInviteMessage\x18N \x01(\x0b\x32..whatsapp.Message.NewsletterAdminInviteMessage\x12@\n\x12placeholderMessage\x18P \x01(\x0b\x32$.whatsapp.Message.PlaceholderMessage\x12H\n\x16secretEncryptedMessage\x18R \x01(\x0b\x32(.whatsapp.Message.SecretEncryptedMessage\x12\x34\n\x0c\x61lbumMessage\x18S \x01(\x0b\x32\x1e.whatsapp.Message.AlbumMessage\x12=\n\x0f\x65ventCoverImage\x18U \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12@\n\x12stickerPackMessage\x18V \x01(\x0b\x32$.whatsapp.Message.StickerPackMessage\x12\x42\n\x14statusMentionMessage\x18W \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12N\n\x19pollResultSnapshotMessage\x18X \x01(\x0b\x32+.whatsapp.Message.PollResultSnapshotMessage\x12L\n\x1epollCreationOptionImageMessage\x18Z \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x44\n\x16\x61ssociatedChildMessage\x18[ \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12G\n\x19groupStatusMentionMessage\x18\\ \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x43\n\x15pollCreationMessageV4\x18] \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x0estatusAddYours\x18_ \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12@\n\x12groupStatusMessage\x18` \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x13richResponseMessage\x18\x61 \x01(\x0b\x32\x1f.whatsapp.AIRichResponseMessage\x12N\n\x19statusNotificationMessage\x18\x62 \x01(\x0b\x32+.whatsapp.Message.StatusNotificationMessage\x12\x41\n\x13limitSharingMessage\x18\x63 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x0e\x62otTaskMessage\x18\x64 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12=\n\x0fquestionMessage\x18\x65 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x44\n\x14messageHistoryNotice\x18\x66 \x01(\x0b\x32&.whatsapp.Message.MessageHistoryNotice\x12\x42\n\x14groupStatusMessageV2\x18g \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x41\n\x13\x62otForwardedMessage\x18h \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12R\n\x1bstatusQuestionAnswerMessage\x18i \x01(\x0b\x32-.whatsapp.Message.StatusQuestionAnswerMessage\x12\x42\n\x14questionReplyMessage\x18j \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12J\n\x17questionResponseMessage\x18k \x01(\x0b\x32).whatsapp.Message.QuestionResponseMessage\x12\x42\n\x13statusQuotedMessage\x18m \x01(\x0b\x32%.whatsapp.Message.StatusQuotedMessage\x12Z\n\x1fstatusStickerInteractionMessage\x18n \x01(\x0b\x32\x31.whatsapp.Message.StatusStickerInteractionMessage\x12\x44\n\x15pollCreationMessageV5\x18o \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12\\\n!newsletterFollowerInviteMessageV2\x18q \x01(\x0b\x32\x31.whatsapp.Message.NewsletterFollowerInviteMessage\x12P\n\x1bpollResultSnapshotMessageV3\x18s \x01(\x0b\x32+.whatsapp.Message.PollResultSnapshotMessage\x12K\n\x1dnewsletterAdminProfileMessage\x18t \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12M\n\x1fnewsletterAdminProfileMessageV2\x18u \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x0espoilerMessage\x18v \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x44\n\x15pollCreationMessageV6\x18w \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12L\n\x18\x63onditionalRevealMessage\x18x \x01(\x0b\x32*.whatsapp.Message.ConditionalRevealMessage\x12\x44\n\x14pollAddOptionMessage\x18y \x01(\x0b\x32&.whatsapp.Message.PollAddOptionMessage\x12@\n\x12\x65ventInviteMessage\x18z \x01(\x0b\x32$.whatsapp.Message.EventInviteMessage\x12\x36\n\x11groupRootKeyShare\x18{ \x01(\x0b\x32\x1b.whatsapp.GroupRootKeyShare\x12H\n\x16paymentReminderMessage\x18| \x01(\x0b\x32(.whatsapp.Message.PaymentReminderMessage\x12\x42\n\x13splitPaymentMessage\x18} \x01(\x0b\x32%.whatsapp.Message.SplitPaymentMessage\x12Q\n#newsletterAdminProfileStatusMessage\x18~ \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12R\n\x1brootSecretDistributeMessage\x18\x7f \x01(\x0b\x32-.whatsapp.Message.RootSecretDistributeMessage\x1ar\n\x0c\x41lbumMessage\x12\x1a\n\x12\x65xpectedImageCount\x18\x02 \x01(\r\x12\x1a\n\x12\x65xpectedVideoCount\x18\x03 \x01(\r\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1aP\n\"AppStateFatalExceptionNotification\x12\x17\n\x0f\x63ollectionNames\x18\x01 \x03(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\x1a}\n\x0f\x41ppStateSyncKey\x12\x32\n\x05keyId\x18\x01 \x01(\x0b\x32#.whatsapp.Message.AppStateSyncKeyId\x12\x36\n\x07keyData\x18\x02 \x01(\x0b\x32%.whatsapp.Message.AppStateSyncKeyData\x1a|\n\x13\x41ppStateSyncKeyData\x12\x0f\n\x07keyData\x18\x01 \x01(\x0c\x12\x41\n\x0b\x66ingerprint\x18\x02 \x01(\x0b\x32,.whatsapp.Message.AppStateSyncKeyFingerprint\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\x1a\\\n\x1a\x41ppStateSyncKeyFingerprint\x12\r\n\x05rawId\x18\x01 \x01(\r\x12\x14\n\x0c\x63urrentIndex\x18\x02 \x01(\r\x12\x19\n\rdeviceIndexes\x18\x03 \x03(\rB\x02\x10\x01\x1a\"\n\x11\x41ppStateSyncKeyId\x12\r\n\x05keyId\x18\x01 \x01(\x0c\x1aM\n\x16\x41ppStateSyncKeyRequest\x12\x33\n\x06keyIds\x18\x01 \x03(\x0b\x32#.whatsapp.Message.AppStateSyncKeyId\x1aG\n\x14\x41ppStateSyncKeyShare\x12/\n\x04keys\x18\x01 \x03(\x0b\x32!.whatsapp.Message.AppStateSyncKey\x1a\xe9\x02\n\x0c\x41udioMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08mimetype\x18\x02 \x01(\t\x12\x12\n\nfileSha256\x18\x03 \x01(\x0c\x12\x12\n\nfileLength\x18\x04 \x01(\x04\x12\x0f\n\x07seconds\x18\x05 \x01(\r\x12\x0b\n\x03ptt\x18\x06 \x01(\x08\x12\x10\n\x08mediaKey\x18\x07 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x08 \x01(\x0c\x12\x12\n\ndirectPath\x18\t \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\n \x01(\x03\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x18\n\x10streamingSidecar\x18\x12 \x01(\x0c\x12\x10\n\x08waveform\x18\x13 \x01(\x0c\x12\x16\n\x0e\x62\x61\x63kgroundArgb\x18\x14 \x01(\x07\x12\x10\n\x08viewOnce\x18\x15 \x01(\x08\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x16 \x01(\t\x1a\xb2\x01\n\x0c\x42\x43\x61llMessage\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12;\n\tmediaType\x18\x02 \x01(\x0e\x32(.whatsapp.Message.BCallMessage.MediaType\x12\x11\n\tmasterKey\x18\x03 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x04 \x01(\t\".\n\tMediaType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x41UDIO\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\xc4\x07\n\x0e\x42uttonsMessage\x12\x13\n\x0b\x63ontentText\x18\x06 \x01(\t\x12\x12\n\nfooterText\x18\x07 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x08 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x38\n\x07\x62uttons\x18\t \x03(\x0b\x32\'.whatsapp.Message.ButtonsMessage.Button\x12?\n\nheaderType\x18\n \x01(\x0e\x32+.whatsapp.Message.ButtonsMessage.HeaderType\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x12<\n\x0f\x64ocumentMessage\x18\x02 \x01(\x0b\x32!.whatsapp.Message.DocumentMessageH\x00\x12\x36\n\x0cimageMessage\x18\x03 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessageH\x00\x12\x36\n\x0cvideoMessage\x18\x04 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessageH\x00\x12<\n\x0flocationMessage\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessageH\x00\x1a\xf9\x02\n\x06\x42utton\x12\x10\n\x08\x62uttonId\x18\x01 \x01(\t\x12\x46\n\nbuttonText\x18\x02 \x01(\x0b\x32\x32.whatsapp.Message.ButtonsMessage.Button.ButtonText\x12:\n\x04type\x18\x03 \x01(\x0e\x32,.whatsapp.Message.ButtonsMessage.Button.Type\x12N\n\x0enativeFlowInfo\x18\x04 \x01(\x0b\x32\x36.whatsapp.Message.ButtonsMessage.Button.NativeFlowInfo\x1a!\n\nButtonText\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x1a\x32\n\x0eNativeFlowInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nparamsJson\x18\x02 \x01(\t\"2\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08RESPONSE\x10\x01\x12\x0f\n\x0bNATIVE_FLOW\x10\x02\"`\n\nHeaderType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x45MPTY\x10\x01\x12\x08\n\x04TEXT\x10\x02\x12\x0c\n\x08\x44OCUMENT\x10\x03\x12\t\n\x05IMAGE\x10\x04\x12\t\n\x05VIDEO\x10\x05\x12\x0c\n\x08LOCATION\x10\x06\x42\x08\n\x06header\x1a\xed\x01\n\x16\x42uttonsResponseMessage\x12\x18\n\x10selectedButtonId\x18\x01 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x03 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12;\n\x04type\x18\x04 \x01(\x0e\x32-.whatsapp.Message.ButtonsResponseMessage.Type\x12\x1d\n\x13selectedDisplayText\x18\x02 \x01(\tH\x00\"%\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0c\x44ISPLAY_TEXT\x10\x01\x42\n\n\x08response\x1a\xcf\x02\n\x04\x43\x61ll\x12\x0f\n\x07\x63\x61llKey\x18\x01 \x01(\x0c\x12\x18\n\x10\x63onversionSource\x18\x02 \x01(\t\x12\x16\n\x0e\x63onversionData\x18\x03 \x01(\x0c\x12\x1e\n\x16\x63onversionDelaySeconds\x18\x04 \x01(\r\x12\x13\n\x0b\x63twaSignals\x18\x05 \x01(\t\x12\x13\n\x0b\x63twaPayload\x18\x06 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x07 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12#\n\x1bnativeFlowCallButtonPayload\x18\x08 \x01(\t\x12\x17\n\x0f\x64\x65\x65plinkPayload\x18\t \x01(\t\x12\x38\n\x12messageContextInfo\x18\n \x01(\x0b\x32\x1c.whatsapp.MessageContextInfo\x12\x16\n\x0e\x63\x61llEntryPoint\x18\x0b \x01(\r\x1a\xbb\x04\n\x0e\x43\x61llLogMessage\x12\x0f\n\x07isVideo\x18\x01 \x01(\x08\x12\x41\n\x0b\x63\x61llOutcome\x18\x02 \x01(\x0e\x32,.whatsapp.Message.CallLogMessage.CallOutcome\x12\x14\n\x0c\x64urationSecs\x18\x03 \x01(\x03\x12;\n\x08\x63\x61llType\x18\x04 \x01(\x0e\x32).whatsapp.Message.CallLogMessage.CallType\x12\x46\n\x0cparticipants\x18\x05 \x03(\x0b\x32\x30.whatsapp.Message.CallLogMessage.CallParticipant\x1a\x61\n\x0f\x43\x61llParticipant\x12\x0b\n\x03jid\x18\x01 \x01(\t\x12\x41\n\x0b\x63\x61llOutcome\x18\x02 \x01(\x0e\x32,.whatsapp.Message.CallLogMessage.CallOutcome\"\x99\x01\n\x0b\x43\x61llOutcome\x12\r\n\tCONNECTED\x10\x00\x12\n\n\x06MISSED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\x0c\n\x08REJECTED\x10\x03\x12\x16\n\x12\x41\x43\x43\x45PTED_ELSEWHERE\x10\x04\x12\x0b\n\x07ONGOING\x10\x05\x12\x13\n\x0fSILENCED_BY_DND\x10\x06\x12\x1b\n\x17SILENCED_UNKNOWN_CALLER\x10\x07\";\n\x08\x43\x61llType\x12\x0b\n\x07REGULAR\x10\x00\x12\x12\n\x0eSCHEDULED_CALL\x10\x01\x12\x0e\n\nVOICE_CHAT\x10\x02\x1a@\n\x1b\x43\x61ncelPaymentRequestMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a\'\n\x04\x43hat\x12\x13\n\x0b\x64isplayName\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t\x1a}\n\x18\x43hatCustomImageWallpaper\x12\x12\n\ndirectPath\x18\x01 \x01(\t\x12\x10\n\x08mediaKey\x18\x02 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x03 \x01(\x0c\x12\x12\n\nfileSha256\x18\x04 \x01(\x0c\x12\x10\n\x08\x64imLevel\x18\x05 \x01(\x02\x1a/\n\x14\x43hatDefaultWallpaper\x12\x17\n\x0fisDoodleEnabled\x18\x01 \x01(\x08\x1aY\n\x17\x43hatSolidColorWallpaper\x12\x12\n\ncolorLight\x18\x01 \x01(\t\x12\x11\n\tcolorDark\x18\x02 \x01(\t\x12\x17\n\x0fisDoodleEnabled\x18\x03 \x01(\x08\x1a\x41\n\x17\x43hatStockImageWallpaper\x12\x14\n\x0cstockImageId\x18\x01 \x01(\t\x12\x10\n\x08\x64imLevel\x18\x02 \x01(\x02\x1a\xef\x02\n\x10\x43hatThemeSetting\x12\x1a\n\x12settingTimestampMs\x18\x01 \x01(\x03\x12\x12\n\nclearTheme\x18\x02 \x01(\x08\x12\x15\n\rcolorSchemeId\x18\x03 \x01(\t\x12\x42\n\x10\x64\x65\x66\x61ultWallpaper\x18\n \x01(\x0b\x32&.whatsapp.Message.ChatDefaultWallpaperH\x00\x12?\n\nsolidColor\x18\x0b \x01(\x0b\x32).whatsapp.Message.ChatSolidColorWallpaperH\x00\x12?\n\nstockImage\x18\x0c \x01(\x0b\x32).whatsapp.Message.ChatStockImageWallpaperH\x00\x12\x41\n\x0b\x63ustomImage\x18\r \x01(\x0b\x32*.whatsapp.Message.ChatCustomImageWallpaperH\x00\x42\x0b\n\twallpaper\x1a\xad\x04\n!CloudAPIThreadControlNotification\x12Y\n\x06status\x18\x01 \x01(\x0e\x32I.whatsapp.Message.CloudAPIThreadControlNotification.CloudAPIThreadControl\x12%\n\x1dsenderNotificationTimestampMs\x18\x02 \x01(\x03\x12\x13\n\x0b\x63onsumerLid\x18\x03 \x01(\t\x12\x1b\n\x13\x63onsumerPhoneNumber\x18\x04 \x01(\t\x12y\n\x13notificationContent\x18\x05 \x01(\x0b\x32\\.whatsapp.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent\x12\"\n\x1ashouldSuppressNotification\x18\x06 \x01(\x08\x1a^\n(CloudAPIThreadControlNotificationContent\x12\x1f\n\x17handoffNotificationText\x18\x01 \x01(\t\x12\x11\n\textraJson\x18\x02 \x01(\t\"U\n\x15\x43loudAPIThreadControl\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0e\x43ONTROL_PASSED\x10\x01\x12\x11\n\rCONTROL_TAKEN\x10\x02\x12\x08\n\x04INFO\x10\x03\x1a\x64\n\x0e\x43ommentMessage\x12\"\n\x07message\x18\x01 \x01(\x0b\x32\x11.whatsapp.Message\x12.\n\x10targetMessageKey\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a\x85\x02\n\x18\x43onditionalRevealMessage\x12\x12\n\nencPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\x12m\n\x1c\x63onditionalRevealMessageType\x18\x03 \x01(\x0e\x32G.whatsapp.Message.ConditionalRevealMessage.ConditionalRevealMessageType\x12\x13\n\x0brevealKeyId\x18\x04 \x01(\t\"B\n\x1c\x43onditionalRevealMessageType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x15\n\x11SCHEDULED_MESSAGE\x10\x01\x1aw\n\x0e\x43ontactMessage\x12\x13\n\x0b\x64isplayName\x18\x01 \x01(\t\x12\r\n\x05vcard\x18\x10 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x15\n\risSelfContact\x18\x12 \x01(\x08\x1a\x8b\x01\n\x14\x43ontactsArrayMessage\x12\x13\n\x0b\x64isplayName\x18\x01 \x01(\t\x12\x32\n\x08\x63ontacts\x18\x02 \x03(\x0b\x32 .whatsapp.Message.ContactMessage\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\x41\n\x1c\x44\x65\x63linePaymentRequestMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a^\n\x11\x44\x65viceSentMessage\x12\x16\n\x0e\x64\x65stinationJid\x18\x01 \x01(\t\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\r\n\x05phash\x18\x03 \x01(\t\x1a\xed\x03\n\x0f\x44ocumentMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08mimetype\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x12\n\nfileSha256\x18\x04 \x01(\x0c\x12\x12\n\nfileLength\x18\x05 \x01(\x04\x12\x11\n\tpageCount\x18\x06 \x01(\r\x12\x10\n\x08mediaKey\x18\x07 \x01(\x0c\x12\x10\n\x08\x66ileName\x18\x08 \x01(\t\x12\x15\n\rfileEncSha256\x18\t \x01(\x0c\x12\x12\n\ndirectPath\x18\n \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x0b \x01(\x03\x12\x14\n\x0c\x63ontactVcard\x18\x0c \x01(\x08\x12\x1b\n\x13thumbnailDirectPath\x18\r \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x0e \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x0f \x01(\x0c\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x17\n\x0fthumbnailHeight\x18\x12 \x01(\r\x12\x16\n\x0ethumbnailWidth\x18\x13 \x01(\r\x12\x0f\n\x07\x63\x61ption\x18\x14 \x01(\t\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x15 \x01(\t\x1a\x66\n\x11\x45ncCommentMessage\x12.\n\x10targetMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nencPayload\x18\x02 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x03 \x01(\x0c\x1as\n\x17\x45ncEventResponseMessage\x12\x35\n\x17\x65ventCreationMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nencPayload\x18\x02 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x03 \x01(\x0c\x1ag\n\x12\x45ncReactionMessage\x12.\n\x10targetMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nencPayload\x18\x02 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x03 \x01(\x0c\x1a\xd7\x01\n\x12\x45ventInviteMessage\x12*\n\x0b\x63ontextInfo\x18\x01 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x0f\n\x07\x65ventId\x18\x02 \x01(\t\x12\x12\n\neventTitle\x18\x03 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x04 \x01(\x0c\x12\x11\n\tstartTime\x18\x05 \x01(\x03\x12\x0f\n\x07\x63\x61ption\x18\x06 \x01(\t\x12\x12\n\nisCanceled\x18\x07 \x01(\x08\x12\x0f\n\x07\x65ndTime\x18\x08 \x01(\x03\x12\x10\n\x08\x63\x61llLink\x18\t \x01(\t\x1a\xc0\x02\n\x0c\x45ventMessage\x12*\n\x0b\x63ontextInfo\x18\x01 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x12\n\nisCanceled\x18\x02 \x01(\x08\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x33\n\x08location\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessage\x12\x10\n\x08joinLink\x18\x06 \x01(\t\x12\x11\n\tstartTime\x18\x07 \x01(\x03\x12\x0f\n\x07\x65ndTime\x18\x08 \x01(\x03\x12\x1a\n\x12\x65xtraGuestsAllowed\x18\t \x01(\x08\x12\x16\n\x0eisScheduleCall\x18\n \x01(\x08\x12\x13\n\x0bhasReminder\x18\x0b \x01(\x08\x12\x19\n\x11reminderOffsetSec\x18\x0c \x01(\x03\x1a\xd7\x01\n\x14\x45ventResponseMessage\x12J\n\x08response\x18\x01 \x01(\x0e\x32\x38.whatsapp.Message.EventResponseMessage.EventResponseType\x12\x13\n\x0btimestampMs\x18\x02 \x01(\x03\x12\x17\n\x0f\x65xtraGuestCount\x18\x03 \x01(\x05\"E\n\x11\x45ventResponseType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05GOING\x10\x01\x12\r\n\tNOT_GOING\x10\x02\x12\t\n\x05MAYBE\x10\x03\x1a\xbf\x0c\n\x13\x45xtendedTextMessage\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x13\n\x0bmatchedText\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\r\n\x05title\x18\x06 \x01(\t\x12\x10\n\x08textArgb\x18\x07 \x01(\x07\x12\x16\n\x0e\x62\x61\x63kgroundArgb\x18\x08 \x01(\x07\x12<\n\x04\x66ont\x18\t \x01(\x0e\x32..whatsapp.Message.ExtendedTextMessage.FontType\x12\x46\n\x0bpreviewType\x18\n \x01(\x0e\x32\x31.whatsapp.Message.ExtendedTextMessage.PreviewType\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x17\n\x0f\x64oNotPlayInline\x18\x12 \x01(\x08\x12\x1b\n\x13thumbnailDirectPath\x18\x13 \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x14 \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x15 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x16 \x01(\x0c\x12\x19\n\x11mediaKeyTimestamp\x18\x17 \x01(\x03\x12\x17\n\x0fthumbnailHeight\x18\x18 \x01(\r\x12\x16\n\x0ethumbnailWidth\x18\x19 \x01(\r\x12V\n\x13inviteLinkGroupType\x18\x1a \x01(\x0e\x32\x39.whatsapp.Message.ExtendedTextMessage.InviteLinkGroupType\x12&\n\x1einviteLinkParentGroupSubjectV2\x18\x1b \x01(\t\x12(\n inviteLinkParentGroupThumbnailV2\x18\x1c \x01(\x0c\x12X\n\x15inviteLinkGroupTypeV2\x18\x1d \x01(\x0e\x32\x39.whatsapp.Message.ExtendedTextMessage.InviteLinkGroupType\x12\x10\n\x08viewOnce\x18\x1e \x01(\x08\x12\x13\n\x0bvideoHeight\x18\x1f \x01(\r\x12\x12\n\nvideoWidth\x18 \x01(\r\x12\x42\n\x12\x66\x61viconMMSMetadata\x18! \x01(\x0b\x32&.whatsapp.Message.MMSThumbnailMetadata\x12\x42\n\x13linkPreviewMetadata\x18\" \x01(\x0b\x32%.whatsapp.Message.LinkPreviewMetadata\x12\x42\n\x13paymentLinkMetadata\x18# \x01(\x0b\x32%.whatsapp.Message.PaymentLinkMetadata\x12\x34\n\x0c\x65ndCardTiles\x18$ \x03(\x0b\x32\x1e.whatsapp.Message.VideoEndCard\x12\x17\n\x0fvideoContentUrl\x18% \x01(\t\x12.\n\rmusicMetadata\x18& \x01(\x0b\x32\x17.whatsapp.EmbeddedMusic\x12J\n\x17paymentExtendedMetadata\x18\' \x01(\x0b\x32).whatsapp.Message.PaymentExtendedMetadata\"\xa4\x01\n\x08\x46ontType\x12\n\n\x06SYSTEM\x10\x00\x12\x0f\n\x0bSYSTEM_TEXT\x10\x01\x12\r\n\tFB_SCRIPT\x10\x02\x12\x0f\n\x0bSYSTEM_BOLD\x10\x06\x12\x19\n\x15MORNINGBREEZE_REGULAR\x10\x07\x12\x15\n\x11\x43\x41LISTOGA_REGULAR\x10\x08\x12\x12\n\x0e\x45XO2_EXTRABOLD\x10\t\x12\x15\n\x11\x43OURIERPRIME_BOLD\x10\n\"H\n\x13InviteLinkGroupType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\n\n\x06PARENT\x10\x01\x12\x07\n\x03SUB\x10\x02\x12\x0f\n\x0b\x44\x45\x46\x41ULT_SUB\x10\x03\"^\n\x0bPreviewType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05VIDEO\x10\x01\x12\x0f\n\x0bPLACEHOLDER\x10\x04\x12\t\n\x05IMAGE\x10\x05\x12\x11\n\rPAYMENT_LINKS\x10\x06\x12\x0b\n\x07PROFILE\x10\x07\x1aZ\n\x1d\x46ullHistorySyncOnDemandConfig\x12\x1c\n\x14historyFromTimestamp\x18\x01 \x01(\x04\x12\x1b\n\x13historyDurationDays\x18\x02 \x01(\r\x1an\n&FullHistorySyncOnDemandRequestMetadata\x12\x11\n\trequestId\x18\x01 \x01(\t\x12\x17\n\x0f\x62usinessProduct\x18\x02 \x01(\t\x12\x18\n\x10opaqueClientData\x18\x03 \x01(\x0c\x1a\x38\n\x12\x46utureProofMessage\x12\"\n\x07message\x18\x01 \x01(\x0b\x32\x11.whatsapp.Message\x1a\xa4\x02\n\x12GroupInviteMessage\x12\x10\n\x08groupJid\x18\x01 \x01(\t\x12\x12\n\ninviteCode\x18\x02 \x01(\t\x12\x18\n\x10inviteExpiration\x18\x03 \x01(\x03\x12\x11\n\tgroupName\x18\x04 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x05 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x06 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x07 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x41\n\tgroupType\x18\x08 \x01(\x0e\x32..whatsapp.Message.GroupInviteMessage.GroupType\"$\n\tGroupType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\n\n\x06PARENT\x10\x01\x1a\xc8\x0b\n\x17HighlyStructuredMessage\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0b\x65lementName\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t\x12\x12\n\nfallbackLg\x18\x04 \x01(\t\x12\x12\n\nfallbackLc\x18\x05 \x01(\t\x12\\\n\x11localizableParams\x18\x06 \x03(\x0b\x32\x41.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter\x12\x17\n\x0f\x64\x65terministicLg\x18\x07 \x01(\t\x12\x17\n\x0f\x64\x65terministicLc\x18\x08 \x01(\t\x12\x36\n\x0bhydratedHsm\x18\t \x01(\x0b\x32!.whatsapp.Message.TemplateMessage\x1a\x84\t\n\x17HSMLocalizableParameter\x12\x0f\n\x07\x64\x65\x66\x61ult\x18\x01 \x01(\t\x12\x61\n\x08\x63urrency\x18\x02 \x01(\x0b\x32M.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrencyH\x00\x12\x61\n\x08\x64\x61teTime\x18\x03 \x01(\x0b\x32M.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTimeH\x00\x1a\x37\n\x0bHSMCurrency\x12\x14\n\x0c\x63urrencyCode\x18\x01 \x01(\t\x12\x12\n\namount1000\x18\x02 \x01(\x03\x1a\xca\x06\n\x0bHSMDateTime\x12w\n\tcomponent\x18\x01 \x01(\x0b\x32\x62.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponentH\x00\x12w\n\tunixEpoch\x18\x02 \x01(\x0b\x32\x62.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpochH\x00\x1a\x8c\x04\n\x14HSMDateTimeComponent\x12\x83\x01\n\tdayOfWeek\x18\x01 \x01(\x0e\x32p.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType\x12\x0c\n\x04year\x18\x02 \x01(\r\x12\r\n\x05month\x18\x03 \x01(\r\x12\x12\n\ndayOfMonth\x18\x04 \x01(\r\x12\x0c\n\x04hour\x18\x05 \x01(\r\x12\x0e\n\x06minute\x18\x06 \x01(\r\x12\x81\x01\n\x08\x63\x61lendar\x18\x07 \x01(\x0e\x32o.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType\".\n\x0c\x43\x61lendarType\x12\r\n\tGREGORIAN\x10\x01\x12\x0f\n\x0bSOLAR_HIJRI\x10\x02\"k\n\rDayOfWeekType\x12\n\n\x06MONDAY\x10\x01\x12\x0b\n\x07TUESDAY\x10\x02\x12\r\n\tWEDNESDAY\x10\x03\x12\x0c\n\x08THURSDAY\x10\x04\x12\n\n\x06\x46RIDAY\x10\x05\x12\x0c\n\x08SATURDAY\x10\x06\x12\n\n\x06SUNDAY\x10\x07\x1a)\n\x14HSMDateTimeUnixEpoch\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\x42\x0f\n\rdatetimeOneofB\x0c\n\nparamOneof\x1a?\n\x1eHistorySyncMessageAccessStatus\x12\x1d\n\x15\x63ompleteAccessGranted\x18\x01 \x01(\x08\x1a\xb3\x04\n\x17HistorySyncNotification\x12\x12\n\nfileSha256\x18\x01 \x01(\x0c\x12\x12\n\nfileLength\x18\x02 \x01(\x04\x12\x10\n\x08mediaKey\x18\x03 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x04 \x01(\x0c\x12\x12\n\ndirectPath\x18\x05 \x01(\t\x12\x33\n\x08syncType\x18\x06 \x01(\x0e\x32!.whatsapp.Message.HistorySyncType\x12\x12\n\nchunkOrder\x18\x07 \x01(\r\x12\x19\n\x11originalMessageId\x18\x08 \x01(\t\x12\x10\n\x08progress\x18\t \x01(\r\x12$\n\x1coldestMsgInChunkTimestampSec\x18\n \x01(\x03\x12)\n!initialHistBootstrapInlinePayload\x18\x0b \x01(\x0c\x12 \n\x18peerDataRequestSessionId\x18\x0c \x01(\t\x12h\n&fullHistorySyncOnDemandRequestMetadata\x18\r \x01(\x0b\x32\x38.whatsapp.Message.FullHistorySyncOnDemandRequestMetadata\x12\x11\n\tencHandle\x18\x0e \x01(\t\x12M\n\x13messageAccessStatus\x18\x0f \x01(\x0b\x32\x30.whatsapp.Message.HistorySyncMessageAccessStatus\x1a\x9c\x07\n\x0cImageMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08mimetype\x18\x02 \x01(\t\x12\x0f\n\x07\x63\x61ption\x18\x03 \x01(\t\x12\x12\n\nfileSha256\x18\x04 \x01(\x0c\x12\x12\n\nfileLength\x18\x05 \x01(\x04\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\r\n\x05width\x18\x07 \x01(\r\x12\x10\n\x08mediaKey\x18\x08 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\t \x01(\x0c\x12?\n\x16interactiveAnnotations\x18\n \x03(\x0b\x32\x1f.whatsapp.InteractiveAnnotation\x12\x12\n\ndirectPath\x18\x0b \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x0c \x01(\x03\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x18\n\x10\x66irstScanSidecar\x18\x12 \x01(\x0c\x12\x17\n\x0f\x66irstScanLength\x18\x13 \x01(\r\x12\x19\n\x11\x65xperimentGroupId\x18\x14 \x01(\r\x12\x14\n\x0cscansSidecar\x18\x15 \x01(\x0c\x12\x13\n\x0bscanLengths\x18\x16 \x03(\r\x12\x1c\n\x14midQualityFileSha256\x18\x17 \x01(\x0c\x12\x1f\n\x17midQualityFileEncSha256\x18\x18 \x01(\x0c\x12\x10\n\x08viewOnce\x18\x19 \x01(\x08\x12\x1b\n\x13thumbnailDirectPath\x18\x1a \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x1b \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x1c \x01(\x0c\x12\x11\n\tstaticUrl\x18\x1d \x01(\t\x12\x34\n\x0b\x61nnotations\x18\x1e \x03(\x0b\x32\x1f.whatsapp.InteractiveAnnotation\x12G\n\x0fimageSourceType\x18\x1f \x01(\x0e\x32..whatsapp.Message.ImageMessage.ImageSourceType\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18 \x01(\t\x12\r\n\x05qrUrl\x18\" \x01(\t\"`\n\x0fImageSourceType\x12\x0e\n\nUSER_IMAGE\x10\x00\x12\x10\n\x0c\x41I_GENERATED\x10\x01\x12\x0f\n\x0b\x41I_MODIFIED\x10\x02\x12\x1a\n\x16RASTERIZED_TEXT_STATUS\x10\x03\x1aM\n&InitialSecurityNotificationSettingSync\x12#\n\x1bsecurityNotificationEnabled\x18\x01 \x01(\x08\x1a\xe5\x10\n\x12InteractiveMessage\x12;\n\x06header\x18\x01 \x01(\x0b\x32+.whatsapp.Message.InteractiveMessage.Header\x12\x37\n\x04\x62ody\x18\x02 \x01(\x0b\x32).whatsapp.Message.InteractiveMessage.Body\x12;\n\x06\x66ooter\x18\x03 \x01(\x0b\x32+.whatsapp.Message.InteractiveMessage.Footer\x12\x45\n\x0b\x62loksWidget\x18\x08 \x01(\x0b\x32\x30.whatsapp.Message.InteractiveMessage.BloksWidget\x12*\n\x0b\x63ontextInfo\x18\x0f \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x30\n\x0eurlTrackingMap\x18\x10 \x01(\x0b\x32\x18.whatsapp.UrlTrackingMap\x12Q\n\x15shopStorefrontMessage\x18\x04 \x01(\x0b\x32\x30.whatsapp.Message.InteractiveMessage.ShopMessageH\x00\x12S\n\x11\x63ollectionMessage\x18\x05 \x01(\x0b\x32\x36.whatsapp.Message.InteractiveMessage.CollectionMessageH\x00\x12S\n\x11nativeFlowMessage\x18\x06 \x01(\x0b\x32\x36.whatsapp.Message.InteractiveMessage.NativeFlowMessageH\x00\x12O\n\x0f\x63\x61rouselMessage\x18\x07 \x01(\x0b\x32\x34.whatsapp.Message.InteractiveMessage.CarouselMessageH\x00\x1aI\n\x0b\x42loksWidget\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x10\n\x08\x66\x61llback\x18\x04 \x01(\t\x1a\x14\n\x04\x42ody\x12\x0c\n\x04text\x18\x01 \x01(\t\x1a\x84\x02\n\x0f\x43\x61rouselMessage\x12\x33\n\x05\x63\x61rds\x18\x01 \x03(\x0b\x32$.whatsapp.Message.InteractiveMessage\x12\x16\n\x0emessageVersion\x18\x02 \x01(\x05\x12_\n\x10\x63\x61rouselCardType\x18\x03 \x01(\x0e\x32\x45.whatsapp.Message.InteractiveMessage.CarouselMessage.CarouselCardType\"C\n\x10\x43\x61rouselCardType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rHSCROLL_CARDS\x10\x01\x12\x0f\n\x0b\x41LBUM_IMAGE\x10\x02\x1aG\n\x11\x43ollectionMessage\x12\x0e\n\x06\x62izJid\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t\x12\x16\n\x0emessageVersion\x18\x03 \x01(\x05\x1as\n\x06\x46ooter\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x1a\n\x12hasMediaAttachment\x18\x03 \x01(\x08\x12\x36\n\x0c\x61udioMessage\x18\x02 \x01(\x0b\x32\x1e.whatsapp.Message.AudioMessageH\x00\x42\x07\n\x05media\x1a\xd6\x03\n\x06Header\x12\r\n\x05title\x18\x01 \x01(\t\x12\x10\n\x08subtitle\x18\x02 \x01(\t\x12\x1a\n\x12hasMediaAttachment\x18\x05 \x01(\x08\x12\x45\n\x0b\x62loksWidget\x18\n \x01(\x0b\x32\x30.whatsapp.Message.InteractiveMessage.BloksWidget\x12<\n\x0f\x64ocumentMessage\x18\x03 \x01(\x0b\x32!.whatsapp.Message.DocumentMessageH\x00\x12\x36\n\x0cimageMessage\x18\x04 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessageH\x00\x12\x17\n\rjpegThumbnail\x18\x06 \x01(\x0cH\x00\x12\x36\n\x0cvideoMessage\x18\x07 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessageH\x00\x12<\n\x0flocationMessage\x18\x08 \x01(\x0b\x32!.whatsapp.Message.LocationMessageH\x00\x12:\n\x0eproductMessage\x18\t \x01(\x0b\x32 .whatsapp.Message.ProductMessageH\x00\x42\x07\n\x05media\x1a\xdc\x01\n\x11NativeFlowMessage\x12X\n\x07\x62uttons\x18\x01 \x03(\x0b\x32G.whatsapp.Message.InteractiveMessage.NativeFlowMessage.NativeFlowButton\x12\x19\n\x11messageParamsJson\x18\x02 \x01(\t\x12\x16\n\x0emessageVersion\x18\x03 \x01(\x05\x1a:\n\x10NativeFlowButton\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x18\n\x10\x62uttonParamsJson\x18\x02 \x01(\t\x1a\xb4\x01\n\x0bShopMessage\x12\n\n\x02id\x18\x01 \x01(\t\x12I\n\x07surface\x18\x02 \x01(\x0e\x32\x38.whatsapp.Message.InteractiveMessage.ShopMessage.Surface\x12\x16\n\x0emessageVersion\x18\x03 \x01(\x05\"6\n\x07Surface\x12\x13\n\x0fUNKNOWN_SURFACE\x10\x00\x12\x06\n\x02\x46\x42\x10\x01\x12\x06\n\x02IG\x10\x02\x12\x06\n\x02WA\x10\x03\x42\x14\n\x12interactiveMessage\x1a\xee\x03\n\x1aInteractiveResponseMessage\x12?\n\x04\x62ody\x18\x01 \x01(\x0b\x32\x31.whatsapp.Message.InteractiveResponseMessage.Body\x12*\n\x0b\x63ontextInfo\x18\x0f \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12k\n\x19nativeFlowResponseMessage\x18\x02 \x01(\x0b\x32\x46.whatsapp.Message.InteractiveResponseMessage.NativeFlowResponseMessageH\x00\x1a\x87\x01\n\x04\x42ody\x12\x0c\n\x04text\x18\x01 \x01(\t\x12H\n\x06\x66ormat\x18\x02 \x01(\x0e\x32\x38.whatsapp.Message.InteractiveResponseMessage.Body.Format\"\'\n\x06\x46ormat\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x10\n\x0c\x45XTENSIONS_1\x10\x01\x1aN\n\x19NativeFlowResponseMessage\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nparamsJson\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\x05\x42\x1c\n\x1ainteractiveResponseMessage\x1a\xf7\x02\n\x0eInvoiceMessage\x12\x0c\n\x04note\x18\x01 \x01(\t\x12\r\n\x05token\x18\x02 \x01(\t\x12G\n\x0e\x61ttachmentType\x18\x03 \x01(\x0e\x32/.whatsapp.Message.InvoiceMessage.AttachmentType\x12\x1a\n\x12\x61ttachmentMimetype\x18\x04 \x01(\t\x12\x1a\n\x12\x61ttachmentMediaKey\x18\x05 \x01(\x0c\x12#\n\x1b\x61ttachmentMediaKeyTimestamp\x18\x06 \x01(\x03\x12\x1c\n\x14\x61ttachmentFileSha256\x18\x07 \x01(\x0c\x12\x1f\n\x17\x61ttachmentFileEncSha256\x18\x08 \x01(\x0c\x12\x1c\n\x14\x61ttachmentDirectPath\x18\t \x01(\t\x12\x1f\n\x17\x61ttachmentJpegThumbnail\x18\n \x01(\x0c\"$\n\x0e\x41ttachmentType\x12\t\n\x05IMAGE\x10\x00\x12\x07\n\x03PDF\x10\x01\x1aq\n\x11KeepInChatMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12$\n\x08keepType\x18\x02 \x01(\x0e\x32\x12.whatsapp.KeepType\x12\x13\n\x0btimestampMs\x18\x03 \x01(\x03\x1a\x87\x04\n\x13LinkPreviewMetadata\x12\x42\n\x13paymentLinkMetadata\x18\x01 \x01(\x0b\x32%.whatsapp.Message.PaymentLinkMetadata\x12\x32\n\x0burlMetadata\x18\x02 \x01(\x0b\x32\x1d.whatsapp.Message.URLMetadata\x12\x16\n\x0e\x66\x62\x45xperimentId\x18\x03 \x01(\r\x12\x19\n\x11linkMediaDuration\x18\x04 \x01(\r\x12V\n\x13socialMediaPostType\x18\x05 \x01(\x0e\x32\x39.whatsapp.Message.LinkPreviewMetadata.SocialMediaPostType\x12\x1c\n\x14linkInlineVideoMuted\x18\x06 \x01(\x08\x12\x17\n\x0fvideoContentUrl\x18\x07 \x01(\t\x12.\n\rmusicMetadata\x18\x08 \x01(\x0b\x32\x17.whatsapp.EmbeddedMusic\x12\x1b\n\x13videoContentCaption\x18\t \x01(\t\"i\n\x13SocialMediaPostType\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04REEL\x10\x01\x12\x0e\n\nLIVE_VIDEO\x10\x02\x12\x0e\n\nLONG_VIDEO\x10\x03\x12\x10\n\x0cSINGLE_IMAGE\x10\x04\x12\x0c\n\x08\x43\x41ROUSEL\x10\x05\x1a\xff\x06\n\x0bListMessage\x12\r\n\x05title\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x12\n\nbuttonText\x18\x03 \x01(\t\x12\x38\n\x08listType\x18\x04 \x01(\x0e\x32&.whatsapp.Message.ListMessage.ListType\x12\x37\n\x08sections\x18\x05 \x03(\x0b\x32%.whatsapp.Message.ListMessage.Section\x12\x46\n\x0fproductListInfo\x18\x06 \x01(\x0b\x32-.whatsapp.Message.ListMessage.ProductListInfo\x12\x12\n\nfooterText\x18\x07 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x08 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\x1c\n\x07Product\x12\x11\n\tproductId\x18\x01 \x01(\t\x1a\x42\n\x16ProductListHeaderImage\x12\x11\n\tproductId\x18\x01 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x02 \x01(\x0c\x1a\xbd\x01\n\x0fProductListInfo\x12\x45\n\x0fproductSections\x18\x01 \x03(\x0b\x32,.whatsapp.Message.ListMessage.ProductSection\x12I\n\x0bheaderImage\x18\x02 \x01(\x0b\x32\x34.whatsapp.Message.ListMessage.ProductListHeaderImage\x12\x18\n\x10\x62usinessOwnerJid\x18\x03 \x01(\t\x1aX\n\x0eProductSection\x12\r\n\x05title\x18\x01 \x01(\t\x12\x37\n\x08products\x18\x02 \x03(\x0b\x32%.whatsapp.Message.ListMessage.Product\x1a\x38\n\x03Row\x12\r\n\x05title\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\r\n\x05rowId\x18\x03 \x01(\t\x1aI\n\x07Section\x12\r\n\x05title\x18\x01 \x01(\t\x12/\n\x04rows\x18\x02 \x03(\x0b\x32!.whatsapp.Message.ListMessage.Row\"<\n\x08ListType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rSINGLE_SELECT\x10\x01\x12\x10\n\x0cPRODUCT_LIST\x10\x02\x1a\xd3\x02\n\x13ListResponseMessage\x12\r\n\x05title\x18\x01 \x01(\t\x12@\n\x08listType\x18\x02 \x01(\x0e\x32..whatsapp.Message.ListResponseMessage.ListType\x12R\n\x11singleSelectReply\x18\x03 \x01(\x0b\x32\x37.whatsapp.Message.ListResponseMessage.SingleSelectReply\x12*\n\x0b\x63ontextInfo\x18\x04 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x1a*\n\x11SingleSelectReply\x12\x15\n\rselectedRowId\x18\x01 \x01(\t\"*\n\x08ListType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rSINGLE_SELECT\x10\x01\x1a\xa1\x02\n\x13LiveLocationMessage\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x18\n\x10\x61\x63\x63uracyInMeters\x18\x03 \x01(\r\x12\x12\n\nspeedInMps\x18\x04 \x01(\x02\x12)\n!degreesClockwiseFromMagneticNorth\x18\x05 \x01(\r\x12\x0f\n\x07\x63\x61ption\x18\x06 \x01(\t\x12\x16\n\x0esequenceNumber\x18\x07 \x01(\x03\x12\x12\n\ntimeOffset\x18\x08 \x01(\r\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xad\x02\n\x0fLocationMessage\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x04 \x01(\t\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x0e\n\x06isLive\x18\x06 \x01(\x08\x12\x18\n\x10\x61\x63\x63uracyInMeters\x18\x07 \x01(\r\x12\x12\n\nspeedInMps\x18\x08 \x01(\x02\x12)\n!degreesClockwiseFromMagneticNorth\x18\t \x01(\r\x12\x0f\n\x07\x63omment\x18\x0b \x01(\t\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xc6\x01\n\x14MMSThumbnailMetadata\x12\x1b\n\x13thumbnailDirectPath\x18\x01 \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x02 \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x03 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x19\n\x11mediaKeyTimestamp\x18\x05 \x01(\x03\x12\x17\n\x0fthumbnailHeight\x18\x06 \x01(\r\x12\x16\n\x0ethumbnailWidth\x18\x07 \x01(\r\x1a\x8a\x02\n\x14MessageHistoryBundle\x12\x10\n\x08mimetype\x18\x01 \x01(\t\x12\x12\n\nfileSha256\x18\x02 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x03 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x04 \x01(\x0c\x12\x12\n\ndirectPath\x18\x05 \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x06 \x01(\x03\x12*\n\x0b\x63ontextInfo\x18\x07 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12H\n\x16messageHistoryMetadata\x18\x08 \x01(\x0b\x32(.whatsapp.Message.MessageHistoryMetadata\x1a\xb5\x01\n\x16MessageHistoryMetadata\x12\x18\n\x10historyReceivers\x18\x01 \x03(\t\x12&\n\x1eoldestMessageTimestampInWindow\x18\x02 \x01(\x03\x12\x14\n\x0cmessageCount\x18\x03 \x01(\x03\x12\x1b\n\x13nonHistoryReceivers\x18\x04 \x03(\t\x12&\n\x1eoldestMessageTimestampInBundle\x18\x05 \x01(\x03\x1a\x8c\x01\n\x14MessageHistoryNotice\x12*\n\x0b\x63ontextInfo\x18\x01 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12H\n\x16messageHistoryMetadata\x18\x02 \x01(\x0b\x32(.whatsapp.Message.MessageHistoryMetadata\x1a\xbb\x01\n\x1cNewsletterAdminInviteMessage\x12\x15\n\rnewsletterJid\x18\x01 \x01(\t\x12\x16\n\x0enewsletterName\x18\x02 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x03 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x04 \x01(\t\x12\x18\n\x10inviteExpiration\x18\x05 \x01(\x03\x12*\n\x0b\x63ontextInfo\x18\x06 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xa4\x01\n\x1fNewsletterFollowerInviteMessage\x12\x15\n\rnewsletterJid\x18\x01 \x01(\t\x12\x16\n\x0enewsletterName\x18\x02 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x03 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x04 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x05 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\x9d\x04\n\x0cOrderMessage\x12\x0f\n\x07orderId\x18\x01 \x01(\t\x12\x11\n\tthumbnail\x18\x02 \x01(\x0c\x12\x11\n\titemCount\x18\x03 \x01(\x05\x12:\n\x06status\x18\x04 \x01(\x0e\x32*.whatsapp.Message.OrderMessage.OrderStatus\x12<\n\x07surface\x18\x05 \x01(\x0e\x32+.whatsapp.Message.OrderMessage.OrderSurface\x12\x0f\n\x07message\x18\x06 \x01(\t\x12\x12\n\norderTitle\x18\x07 \x01(\t\x12\x11\n\tsellerJid\x18\x08 \x01(\t\x12\r\n\x05token\x18\t \x01(\t\x12\x17\n\x0ftotalAmount1000\x18\n \x01(\x03\x12\x19\n\x11totalCurrencyCode\x18\x0b \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x16\n\x0emessageVersion\x18\x0c \x01(\x05\x12\x33\n\x15orderRequestMessageId\x18\r \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x13\n\x0b\x63\x61talogType\x18\x0f \x01(\t\"6\n\x0bOrderStatus\x12\x0b\n\x07INQUIRY\x10\x01\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x02\x12\x0c\n\x08\x44\x45\x43LINED\x10\x03\"\x1b\n\x0cOrderSurface\x12\x0b\n\x07\x43\x41TALOG\x10\x01\x1a\x39\n\x17PaymentExtendedMetadata\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x10\n\x08platform\x18\x02 \x01(\t\x1a\xcf\x02\n\x14PaymentInviteMessage\x12G\n\x0bserviceType\x18\x01 \x01(\x0e\x32\x32.whatsapp.Message.PaymentInviteMessage.ServiceType\x12\x17\n\x0f\x65xpiryTimestamp\x18\x02 \x01(\x03\x12\x19\n\x11incentiveEligible\x18\x03 \x01(\x08\x12\x12\n\nreferralId\x18\x04 \x01(\t\x12\x45\n\ninviteType\x18\x05 \x01(\x0e\x32\x31.whatsapp.Message.PaymentInviteMessage.InviteType\"%\n\nInviteType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\n\n\x06MAPPER\x10\x01\"8\n\x0bServiceType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x46\x42PAY\x10\x01\x12\x08\n\x04NOVI\x10\x02\x12\x07\n\x03UPI\x10\x03\x1a\xf8\x03\n\x13PaymentLinkMetadata\x12G\n\x06\x62utton\x18\x01 \x01(\x0b\x32\x37.whatsapp.Message.PaymentLinkMetadata.PaymentLinkButton\x12G\n\x06header\x18\x02 \x01(\x0b\x32\x37.whatsapp.Message.PaymentLinkMetadata.PaymentLinkHeader\x12K\n\x08provider\x18\x03 \x01(\x0b\x32\x39.whatsapp.Message.PaymentLinkMetadata.PaymentLinkProvider\x1a(\n\x11PaymentLinkButton\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x1a\xac\x01\n\x11PaymentLinkHeader\x12\x61\n\nheaderType\x18\x01 \x01(\x0e\x32M.whatsapp.Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType\"4\n\x15PaymentLinkHeaderType\x12\x10\n\x0cLINK_PREVIEW\x10\x00\x12\t\n\x05ORDER\x10\x01\x1a)\n\x13PaymentLinkProvider\x12\x12\n\nparamsJson\x18\x01 \x01(\t\x1a\xb6\x04\n\x16PaymentReminderMessage\x12\x12\n\nreminderId\x18\x01 \x01(\t\x12\x12\n\ninstanceId\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12M\n\tfrequency\x18\x04 \x01(\x0e\x32:.whatsapp.Message.PaymentReminderMessage.ReminderFrequency\x12G\n\x06status\x18\x05 \x01(\x0e\x32\x37.whatsapp.Message.PaymentReminderMessage.ReminderStatus\x12\x10\n\x08payeeVpa\x18\x06 \x01(\t\x12\x10\n\x08payeeJid\x18\x07 \x01(\t\x12\x10\n\x08payerJid\x18\x08 \x01(\t\x12\x1f\n\x06\x61mount\x18\t \x01(\x0b\x32\x0f.whatsapp.Money\"j\n\x11ReminderFrequency\x12\x1e\n\x1aREMINDER_FREQUENCY_UNKNOWN\x10\x00\x12\n\n\x06WEEKLY\x10\x01\x12\r\n\tBI_WEEKLY\x10\x02\x12\x0b\n\x07MONTHLY\x10\x03\x12\r\n\tQUARTERLY\x10\x04\"\x83\x01\n\x0eReminderStatus\x12\x1b\n\x17REMINDER_STATUS_UNKNOWN\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x12\x18\n\x14\x43\x41NCELLED_BY_CREATOR\x10\x02\x12\x17\n\x13STOPPED_BY_RECEIVER\x10\x03\x12\x0b\n\x07\x45XPIRED\x10\x04\x12\x08\n\x04PAID\x10\x05\x1a\xf8\x15\n\x1fPeerDataOperationRequestMessage\x12T\n\x1cpeerDataOperationRequestType\x18\x01 \x01(\x0e\x32..whatsapp.Message.PeerDataOperationRequestType\x12h\n\x16requestStickerReupload\x18\x02 \x03(\x0b\x32H.whatsapp.Message.PeerDataOperationRequestMessage.RequestStickerReupload\x12^\n\x11requestUrlPreview\x18\x03 \x03(\x0b\x32\x43.whatsapp.Message.PeerDataOperationRequestMessage.RequestUrlPreview\x12p\n\x1ahistorySyncOnDemandRequest\x18\x04 \x01(\x0b\x32L.whatsapp.Message.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest\x12z\n\x1fplaceholderMessageResendRequest\x18\x05 \x03(\x0b\x32Q.whatsapp.Message.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest\x12x\n\x1e\x66ullHistorySyncOnDemandRequest\x18\x06 \x01(\x0b\x32P.whatsapp.Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest\x12\x82\x01\n#syncdCollectionFatalRecoveryRequest\x18\x07 \x01(\x0b\x32U.whatsapp.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest\x12t\n\x1chistorySyncChunkRetryRequest\x18\x08 \x01(\x0b\x32N.whatsapp.Message.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest\x12\\\n\x10galaxyFlowAction\x18\t \x01(\x0b\x32\x42.whatsapp.Message.PeerDataOperationRequestMessage.GalaxyFlowAction\x12\x8a\x01\n\'companionCanonicalUserNonceFetchRequest\x18\n \x01(\x0b\x32Y.whatsapp.Message.PeerDataOperationRequestMessage.CompanionCanonicalUserNonceFetchRequest\x12\x88\x01\n&bizBroadcastInsightsContactListRequest\x18\x0b \x01(\x0b\x32X.whatsapp.Message.PeerDataOperationRequestMessage.BizBroadcastInsightsContactListRequest\x12\x80\x01\n\"bizBroadcastInsightsRefreshRequest\x18\x0c \x01(\x0b\x32T.whatsapp.Message.PeerDataOperationRequestMessage.BizBroadcastInsightsRefreshRequest\x1a<\n&BizBroadcastInsightsContactListRequest\x12\x12\n\ncampaignId\x18\x01 \x01(\t\x1a\x38\n\"BizBroadcastInsightsRefreshRequest\x12\x12\n\ncampaignId\x18\x01 \x01(\t\x1a\x46\n\'CompanionCanonicalUserNonceFetchRequest\x12\x1b\n\x13registrationTraceId\x18\x01 \x01(\t\x1a\x8f\x02\n\x1e\x46ullHistorySyncOnDemandRequest\x12Q\n\x0frequestMetadata\x18\x01 \x01(\x0b\x32\x38.whatsapp.Message.FullHistorySyncOnDemandRequestMetadata\x12\x42\n\x11historySyncConfig\x18\x02 \x01(\x0b\x32\'.whatsapp.DeviceProps.HistorySyncConfig\x12V\n\x1d\x66ullHistorySyncOnDemandConfig\x18\x03 \x01(\x0b\x32/.whatsapp.Message.FullHistorySyncOnDemandConfig\x1a\x92\x02\n\x10GalaxyFlowAction\x12\x65\n\x04type\x18\x01 \x01(\x0e\x32W.whatsapp.Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType\x12\x0e\n\x06\x66lowId\x18\x02 \x01(\t\x12\x10\n\x08stanzaId\x18\x03 \x01(\t\x12#\n\x1bgalaxyFlowDownloadRequestId\x18\x04 \x01(\t\x12\r\n\x05\x61gmId\x18\x05 \x01(\t\"A\n\x14GalaxyFlowActionType\x12\x11\n\rNOTIFY_LAUNCH\x10\x01\x12\x16\n\x12\x44OWNLOAD_RESPONSES\x10\x02\x1a\x9d\x01\n\x1cHistorySyncChunkRetryRequest\x12\x33\n\x08syncType\x18\x01 \x01(\x0e\x32!.whatsapp.Message.HistorySyncType\x12\x12\n\nchunkOrder\x18\x02 \x01(\r\x12\x1b\n\x13\x63hunkNotificationId\x18\x03 \x01(\t\x12\x17\n\x0fregenerateChunk\x18\x04 \x01(\x08\x1a\xc6\x01\n\x1aHistorySyncOnDemandRequest\x12\x0f\n\x07\x63hatJid\x18\x01 \x01(\t\x12\x13\n\x0boldestMsgId\x18\x02 \x01(\t\x12\x17\n\x0foldestMsgFromMe\x18\x03 \x01(\x08\x12\x18\n\x10onDemandMsgCount\x18\x04 \x01(\x05\x12\x1c\n\x14oldestMsgTimestampMs\x18\x05 \x01(\x03\x12\x12\n\naccountLid\x18\x06 \x01(\t\x12\x1d\n\x15supportInlineResponse\x18\x07 \x01(\x08\x1aK\n\x1fPlaceholderMessageResendRequest\x12(\n\nmessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a,\n\x16RequestStickerReupload\x12\x12\n\nfileSha256\x18\x01 \x01(\t\x1a<\n\x11RequestUrlPreview\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x1a\n\x12includeHqThumbnail\x18\x02 \x01(\x08\x1aP\n#SyncDCollectionFatalRecoveryRequest\x12\x16\n\x0e\x63ollectionName\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\x1a\xef$\n\'PeerDataOperationRequestResponseMessage\x12T\n\x1cpeerDataOperationRequestType\x18\x01 \x01(\x0e\x32..whatsapp.Message.PeerDataOperationRequestType\x12\x10\n\x08stanzaId\x18\x02 \x01(\t\x12r\n\x17peerDataOperationResult\x18\x03 \x03(\x0b\x32Q.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult\x1a\xe7\"\n\x17PeerDataOperationResult\x12\x46\n\x11mediaUploadResult\x18\x01 \x01(\x0e\x32+.whatsapp.MediaRetryNotification.ResultType\x12\x38\n\x0estickerMessage\x18\x02 \x01(\x0b\x32 .whatsapp.Message.StickerMessage\x12\x82\x01\n\x13linkPreviewResponse\x18\x03 \x01(\x0b\x32\x65.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse\x12\x9c\x01\n placeholderMessageResendResponse\x18\x04 \x01(\x0b\x32r.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse\x12\x93\x01\n\x1fwaffleNonceFetchRequestResponse\x18\x05 \x01(\x0b\x32j.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse\x12\xa8\x01\n&fullHistorySyncOnDemandRequestResponse\x18\x06 \x01(\x0b\x32x.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse\x12\xa1\x01\n&companionMetaNonceFetchRequestResponse\x18\x07 \x01(\x0b\x32q.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse\x12\xa0\x01\n\"syncdSnapshotFatalRecoveryResponse\x18\x08 \x01(\x0b\x32t.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse\x12\xb3\x01\n/companionCanonicalUserNonceFetchRequestResponse\x18\t \x01(\x0b\x32z.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionCanonicalUserNonceFetchResponse\x12\x96\x01\n\x1dhistorySyncChunkRetryResponse\x18\n \x01(\x0b\x32o.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse\x12\x88\x01\n\x16\x66lowResponsesCsvBundle\x18\x0b \x01(\x0b\x32h.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FlowResponsesCsvBundle\x12\xaa\x01\n\'bizBroadcastInsightsContactListResponse\x18\x0c \x01(\x0b\x32y.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactListResponse\x1a\xd9\x01\n\'BizBroadcastInsightsContactListResponse\x12\x12\n\ncampaignId\x18\x01 \x01(\t\x12\x13\n\x0btimestampMs\x18\x02 \x01(\x03\x12\x84\x01\n\x08\x63ontacts\x18\x03 \x03(\x0b\x32r.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactState\x1am\n BizBroadcastInsightsContactState\x12\x12\n\ncontactJid\x18\x01 \x01(\t\x12\x35\n\x05state\x18\x02 \x01(\x0e\x32&.whatsapp.Message.InsightDeliveryState\x1a_\n(CompanionCanonicalUserNonceFetchResponse\x12\r\n\x05nonce\x18\x01 \x01(\t\x12\x0e\n\x06waFbid\x18\x02 \x01(\t\x12\x14\n\x0c\x66orceRefresh\x18\x03 \x01(\x08\x1a\x30\n\x1f\x43ompanionMetaNonceFetchResponse\x12\r\n\x05nonce\x18\x01 \x01(\t\x1a\xf1\x01\n\x16\x46lowResponsesCsvBundle\x12\x0e\n\x06\x66lowId\x18\x01 \x01(\t\x12#\n\x1bgalaxyFlowDownloadRequestId\x18\x02 \x01(\t\x12\x10\n\x08\x66ileName\x18\x03 \x01(\t\x12\x10\n\x08mimetype\x18\x04 \x01(\t\x12\x12\n\nfileSha256\x18\x05 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x06 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x07 \x01(\x0c\x12\x12\n\ndirectPath\x18\x08 \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\t \x01(\x03\x12\x12\n\nfileLength\x18\n \x01(\x04\x1a\x89\x02\n&FullHistorySyncOnDemandRequestResponse\x12Q\n\x0frequestMetadata\x18\x01 \x01(\x0b\x32\x38.whatsapp.Message.FullHistorySyncOnDemandRequestMetadata\x12\x8b\x01\n\x0cresponseCode\x18\x02 \x01(\x0e\x32u.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode\x1a\x9b\x02\n\x1dHistorySyncChunkRetryResponse\x12\x33\n\x08syncType\x18\x01 \x01(\x0e\x32!.whatsapp.Message.HistorySyncType\x12\x12\n\nchunkOrder\x18\x02 \x01(\r\x12\x11\n\trequestId\x18\x03 \x01(\t\x12\x89\x01\n\x0cresponseCode\x18\x04 \x01(\x0e\x32s.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode\x12\x12\n\ncanRecover\x18\x05 \x01(\x08\x1a\xf8\x05\n\x13LinkPreviewResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\r\n\x05title\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x11\n\tthumbData\x18\x04 \x01(\x0c\x12\x11\n\tmatchText\x18\x06 \x01(\t\x12\x13\n\x0bpreviewType\x18\x07 \x01(\t\x12\x9b\x01\n\x0bhqThumbnail\x18\x08 \x01(\x0b\x32\x85\x01.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail\x12\x9a\x01\n\x0fpreviewMetadata\x18\t \x01(\x0b\x32\x80\x01.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.PaymentLinkPreviewMetadata\x1a\xb6\x01\n\x1fLinkPreviewHighQualityThumbnail\x12\x12\n\ndirectPath\x18\x01 \x01(\t\x12\x11\n\tthumbHash\x18\x02 \x01(\t\x12\x14\n\x0c\x65ncThumbHash\x18\x03 \x01(\t\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x1b\n\x13mediaKeyTimestampMs\x18\x05 \x01(\x03\x12\x12\n\nthumbWidth\x18\x06 \x01(\x05\x12\x13\n\x0bthumbHeight\x18\x07 \x01(\x05\x1a\x80\x01\n\x1aPaymentLinkPreviewMetadata\x12\x1a\n\x12isBusinessVerified\x18\x01 \x01(\x08\x12\x14\n\x0cproviderName\x18\x02 \x01(\t\x12\x0e\n\x06\x61mount\x18\x03 \x01(\t\x12\x0e\n\x06offset\x18\x04 \x01(\t\x12\x10\n\x08\x63urrency\x18\x05 \x01(\t\x1a?\n PlaceholderMessageResendResponse\x12\x1b\n\x13webMessageInfoBytes\x18\x01 \x01(\x0c\x1aV\n\"SyncDSnapshotFatalRecoveryResponse\x12\x1a\n\x12\x63ollectionSnapshot\x18\x01 \x01(\x0c\x12\x14\n\x0cisCompressed\x18\x02 \x01(\x08\x1a<\n\x18WaffleNonceFetchResponse\x12\r\n\x05nonce\x18\x01 \x01(\t\x12\x11\n\twaEntFbid\x18\x02 \x01(\t\"\xa7\x02\n#FullHistorySyncOnDemandResponseCode\x12\x13\n\x0fREQUEST_SUCCESS\x10\x00\x12\x18\n\x14REQUEST_TIME_EXPIRED\x10\x01\x12\x1c\n\x18\x44\x45\x43LINED_SHARING_HISTORY\x10\x02\x12\x11\n\rGENERIC_ERROR\x10\x03\x12$\n ERROR_REQUEST_ON_NON_SMB_PRIMARY\x10\x04\x12%\n!ERROR_HOSTED_DEVICE_NOT_CONNECTED\x10\x05\x12*\n&ERROR_HOSTED_DEVICE_LOGIN_TIME_NOT_SET\x10\x06\x12\'\n#ERROR_MULTI_PROVIDER_NOT_CONFIGURED\x10\x07\"\x9e\x01\n!HistorySyncChunkRetryResponseCode\x12\x14\n\x10GENERATION_ERROR\x10\x01\x12\x12\n\x0e\x43HUNK_CONSUMED\x10\x02\x12\x0b\n\x07TIMEOUT\x10\x03\x12\x15\n\x11SESSION_EXHAUSTED\x10\x04\x12\x13\n\x0f\x43HUNK_EXHAUSTED\x10\x05\x12\x16\n\x12\x44UPLICATED_REQUEST\x10\x06\x1a\xc5\x01\n\x10PinInChatMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x35\n\x04type\x18\x02 \x01(\x0e\x32\'.whatsapp.Message.PinInChatMessage.Type\x12\x19\n\x11senderTimestampMs\x18\x03 \x01(\x03\"<\n\x04Type\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x0f\n\x0bPIN_FOR_ALL\x10\x01\x12\x11\n\rUNPIN_FOR_ALL\x10\x02\x1a\x84\x01\n\x12PlaceholderMessage\x12\x42\n\x04type\x18\x01 \x01(\x0e\x32\x34.whatsapp.Message.PlaceholderMessage.PlaceholderType\"*\n\x0fPlaceholderType\x12\x17\n\x13MASK_LINKED_DEVICES\x10\x00\x1a\xcc\x01\n\x14PollAddOptionMessage\x12\x34\n\x16pollCreationMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12?\n\taddOption\x18\x02 \x01(\x0b\x32,.whatsapp.Message.PollCreationMessage.Option\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.whatsapp.Message.PollUpdateMessageMetadata\x1a\xe5\x03\n\x13PollCreationMessage\x12\x0e\n\x06\x65ncKey\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12=\n\x07options\x18\x03 \x03(\x0b\x32,.whatsapp.Message.PollCreationMessage.Option\x12\x1e\n\x16selectableOptionsCount\x18\x04 \x01(\r\x12*\n\x0b\x63ontextInfo\x18\x05 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12:\n\x0fpollContentType\x18\x06 \x01(\x0e\x32!.whatsapp.Message.PollContentType\x12,\n\x08pollType\x18\x07 \x01(\x0e\x32\x1a.whatsapp.Message.PollType\x12\x43\n\rcorrectAnswer\x18\x08 \x01(\x0b\x32,.whatsapp.Message.PollCreationMessage.Option\x12\x0f\n\x07\x65ndTime\x18\t \x01(\x03\x12\x1b\n\x13hideParticipantName\x18\n \x01(\x08\x12\x16\n\x0e\x61llowAddOption\x18\x0b \x01(\x08\x1a\x30\n\x06Option\x12\x12\n\noptionName\x18\x01 \x01(\t\x12\x12\n\noptionHash\x18\x02 \x01(\t\x1a\x31\n\x0cPollEncValue\x12\x12\n\nencPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\x1a\x85\x02\n\x19PollResultSnapshotMessage\x12\x0c\n\x04name\x18\x01 \x01(\t\x12G\n\tpollVotes\x18\x02 \x03(\x0b\x32\x34.whatsapp.Message.PollResultSnapshotMessage.PollVote\x12*\n\x0b\x63ontextInfo\x18\x03 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12,\n\x08pollType\x18\x04 \x01(\x0e\x32\x1a.whatsapp.Message.PollType\x1a\x37\n\x08PollVote\x12\x12\n\noptionName\x18\x01 \x01(\t\x12\x17\n\x0foptionVoteCount\x18\x02 \x01(\x03\x1a\xd1\x01\n\x11PollUpdateMessage\x12\x34\n\x16pollCreationMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12,\n\x04vote\x18\x02 \x01(\x0b\x32\x1e.whatsapp.Message.PollEncValue\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.whatsapp.Message.PollUpdateMessageMetadata\x12\x19\n\x11senderTimestampMs\x18\x04 \x01(\x03\x1aK\n\x19PollUpdateMessageMetadata\x12\x14\n\x0cpollNameHash\x18\x01 \x01(\x0c\x12\x18\n\x10lastEditStanzaId\x18\x02 \x01(\t\x1a*\n\x0fPollVoteMessage\x12\x17\n\x0fselectedOptions\x18\x01 \x03(\x0c\x1a\x99\x05\n\x0eProductMessage\x12\x41\n\x07product\x18\x01 \x01(\x0b\x32\x30.whatsapp.Message.ProductMessage.ProductSnapshot\x12\x18\n\x10\x62usinessOwnerJid\x18\x02 \x01(\t\x12\x41\n\x07\x63\x61talog\x18\x04 \x01(\x0b\x32\x30.whatsapp.Message.ProductMessage.CatalogSnapshot\x12\x0c\n\x04\x62ody\x18\x05 \x01(\t\x12\x0e\n\x06\x66ooter\x18\x06 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1ak\n\x0f\x43\x61talogSnapshot\x12\x34\n\x0c\x63\x61talogImage\x18\x01 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessage\x12\r\n\x05title\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x1a\xaf\x02\n\x0fProductSnapshot\x12\x34\n\x0cproductImage\x18\x01 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessage\x12\x11\n\tproductId\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x14\n\x0c\x63urrencyCode\x18\x05 \x01(\t\x12\x17\n\x0fpriceAmount1000\x18\x06 \x01(\x03\x12\x12\n\nretailerId\x18\x07 \x01(\t\x12\x0b\n\x03url\x18\x08 \x01(\t\x12\x19\n\x11productImageCount\x18\t \x01(\r\x12\x14\n\x0c\x66irstImageId\x18\x0b \x01(\t\x12\x1b\n\x13salePriceAmount1000\x18\x0c \x01(\x03\x12\x11\n\tsignedUrl\x18\r \x01(\t\x1a\x99\x14\n\x0fProtocolMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x34\n\x04type\x18\x02 \x01(\x0e\x32&.whatsapp.Message.ProtocolMessage.Type\x12\x1b\n\x13\x65phemeralExpiration\x18\x04 \x01(\r\x12!\n\x19\x65phemeralSettingTimestamp\x18\x05 \x01(\x03\x12J\n\x17historySyncNotification\x18\x06 \x01(\x0b\x32).whatsapp.Message.HistorySyncNotification\x12\x44\n\x14\x61ppStateSyncKeyShare\x18\x07 \x01(\x0b\x32&.whatsapp.Message.AppStateSyncKeyShare\x12H\n\x16\x61ppStateSyncKeyRequest\x18\x08 \x01(\x0b\x32(.whatsapp.Message.AppStateSyncKeyRequest\x12h\n&initialSecurityNotificationSettingSync\x18\t \x01(\x0b\x32\x38.whatsapp.Message.InitialSecurityNotificationSettingSync\x12`\n\"appStateFatalExceptionNotification\x18\n \x01(\x0b\x32\x34.whatsapp.Message.AppStateFatalExceptionNotification\x12\x34\n\x10\x64isappearingMode\x18\x0b \x01(\x0b\x32\x1a.whatsapp.DisappearingMode\x12(\n\reditedMessage\x18\x0e \x01(\x0b\x32\x11.whatsapp.Message\x12\x13\n\x0btimestampMs\x18\x0f \x01(\x03\x12Z\n\x1fpeerDataOperationRequestMessage\x18\x10 \x01(\x0b\x32\x31.whatsapp.Message.PeerDataOperationRequestMessage\x12j\n\'peerDataOperationRequestResponseMessage\x18\x11 \x01(\x0b\x32\x39.whatsapp.Message.PeerDataOperationRequestResponseMessage\x12\x38\n\x12\x62otFeedbackMessage\x18\x12 \x01(\x0b\x32\x1c.whatsapp.BotFeedbackMessage\x12\x12\n\ninvokerJid\x18\x13 \x01(\t\x12V\n\x1drequestWelcomeMessageMetadata\x18\x14 \x01(\x0b\x32/.whatsapp.Message.RequestWelcomeMessageMetadata\x12\x38\n\x12mediaNotifyMessage\x18\x15 \x01(\x0b\x32\x1c.whatsapp.MediaNotifyMessage\x12^\n!cloudApiThreadControlNotification\x18\x16 \x01(\x0b\x32\x33.whatsapp.Message.CloudAPIThreadControlNotification\x12P\n\x1elidMigrationMappingSyncMessage\x18\x17 \x01(\x0b\x32(.whatsapp.LIDMigrationMappingSyncMessage\x12,\n\x0climitSharing\x18\x18 \x01(\x0b\x32\x16.whatsapp.LimitSharing\x12\x15\n\raiPsiMetadata\x18\x19 \x01(\x0c\x12.\n\raiQueryFanout\x18\x1a \x01(\x0b\x32\x17.whatsapp.AIQueryFanout\x12*\n\x0bmemberLabel\x18\x1b \x01(\x0b\x32\x15.whatsapp.MemberLabel\x12\x44\n\x18\x61iMediaCollectionMessage\x18\x1c \x01(\x0b\x32\".whatsapp.AIMediaCollectionMessage\x12\x19\n\x11\x61\x66terReadDuration\x18\x1d \x01(\r\x12<\n\x10\x63hatThemeSetting\x18\x1e \x01(\x0b\x32\".whatsapp.Message.ChatThemeSetting\x12:\n\x13\x61iMetadataOperation\x18\x1f \x01(\x0b\x32\x1d.whatsapp.AIMetadataOperation\"\xf9\x06\n\x04Type\x12\n\n\x06REVOKE\x10\x00\x12\x15\n\x11\x45PHEMERAL_SETTING\x10\x03\x12\x1b\n\x17\x45PHEMERAL_SYNC_RESPONSE\x10\x04\x12\x1d\n\x19HISTORY_SYNC_NOTIFICATION\x10\x05\x12\x1c\n\x18\x41PP_STATE_SYNC_KEY_SHARE\x10\x06\x12\x1e\n\x1a\x41PP_STATE_SYNC_KEY_REQUEST\x10\x07\x12\x1f\n\x1bMSG_FANOUT_BACKFILL_REQUEST\x10\x08\x12.\n*INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC\x10\t\x12*\n&APP_STATE_FATAL_EXCEPTION_NOTIFICATION\x10\n\x12\x16\n\x12SHARE_PHONE_NUMBER\x10\x0b\x12\x10\n\x0cMESSAGE_EDIT\x10\x0e\x12\'\n#PEER_DATA_OPERATION_REQUEST_MESSAGE\x10\x10\x12\x30\n,PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE\x10\x11\x12\x1b\n\x17REQUEST_WELCOME_MESSAGE\x10\x12\x12\x18\n\x14\x42OT_FEEDBACK_MESSAGE\x10\x13\x12\x18\n\x14MEDIA_NOTIFY_MESSAGE\x10\x14\x12)\n%CLOUD_API_THREAD_CONTROL_NOTIFICATION\x10\x15\x12\x1e\n\x1aLID_MIGRATION_MAPPING_SYNC\x10\x16\x12\x14\n\x10REMINDER_MESSAGE\x10\x17\x12\x1f\n\x1b\x42OT_MEMU_ONBOARDING_MESSAGE\x10\x18\x12\x1a\n\x16STATUS_MENTION_MESSAGE\x10\x19\x12\x1b\n\x17STOP_GENERATION_MESSAGE\x10\x1a\x12\x11\n\rLIMIT_SHARING\x10\x1b\x12\x13\n\x0f\x41I_PSI_METADATA\x10\x1c\x12\x13\n\x0f\x41I_QUERY_FANOUT\x10\x1d\x12\x1d\n\x19GROUP_MEMBER_LABEL_CHANGE\x10\x1e\x12\x1f\n\x1b\x41I_MEDIA_COLLECTION_MESSAGE\x10\x1f\x12\x16\n\x12MESSAGE_UNSCHEDULE\x10 \x12\x16\n\x12\x43HAT_THEME_SETTING\x10\"\x12\x19\n\x15\x41I_METADATA_OPERATION\x10#\x1aJ\n\x17QuestionResponseMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x1ar\n\x0fReactionMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x13\n\x0bgroupingKey\x18\x03 \x01(\t\x12\x19\n\x11senderTimestampMs\x18\x04 \x01(\x03\x1a\xf0\x01\n\x15RequestPaymentMessage\x12&\n\x0bnoteMessage\x18\x04 \x01(\x0b\x32\x11.whatsapp.Message\x12\x1b\n\x13\x63urrencyCodeIso4217\x18\x01 \x01(\t\x12\x12\n\namount1000\x18\x02 \x01(\x04\x12\x13\n\x0brequestFrom\x18\x03 \x01(\t\x12\x17\n\x0f\x65xpiryTimestamp\x18\x05 \x01(\x03\x12\x1f\n\x06\x61mount\x18\x06 \x01(\x0b\x32\x0f.whatsapp.Money\x12/\n\nbackground\x18\x07 \x01(\x0b\x32\x1b.whatsapp.PaymentBackground\x1aG\n\x19RequestPhoneNumberMessage\x12*\n\x0b\x63ontextInfo\x18\x01 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xe9\x02\n\x1dRequestWelcomeMessageMetadata\x12V\n\x0elocalChatState\x18\x01 \x01(\x0e\x32>.whatsapp.Message.RequestWelcomeMessageMetadata.LocalChatState\x12V\n\x0ewelcomeTrigger\x18\x02 \x01(\x0e\x32>.whatsapp.Message.RequestWelcomeMessageMetadata.WelcomeTrigger\x12\x34\n\x10\x62otAgentMetadata\x18\x03 \x01(\x0b\x32\x1a.whatsapp.BotAgentMetadata\"*\n\x0eLocalChatState\x12\t\n\x05\x45MPTY\x10\x00\x12\r\n\tNON_EMPTY\x10\x01\"6\n\x0eWelcomeTrigger\x12\r\n\tCHAT_OPEN\x10\x00\x12\x15\n\x11\x43OMPANION_PAIRING\x10\x01\x1a.\n\x1bRootSecretDistributeMessage\x12\x0f\n\x07\x63hatJid\x18\x01 \x01(\t\x1a\xc5\x01\n\x1cScheduledCallCreationMessage\x12\x1c\n\x14scheduledTimestampMs\x18\x01 \x01(\x03\x12I\n\x08\x63\x61llType\x18\x02 \x01(\x0e\x32\x37.whatsapp.Message.ScheduledCallCreationMessage.CallType\x12\r\n\x05title\x18\x03 \x01(\t\"-\n\x08\x43\x61llType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05VOICE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\xa9\x01\n\x18ScheduledCallEditMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x45\n\x08\x65\x64itType\x18\x02 \x01(\x0e\x32\x33.whatsapp.Message.ScheduledCallEditMessage.EditType\"#\n\x08\x45\x64itType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x43\x41NCEL\x10\x01\x1a\xc9\x02\n\x16SecretEncryptedMessage\x12.\n\x10targetMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nencPayload\x18\x02 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x03 \x01(\x0c\x12M\n\rsecretEncType\x18\x04 \x01(\x0e\x32\x36.whatsapp.Message.SecretEncryptedMessage.SecretEncType\x12\x13\n\x0bremoteKeyId\x18\x05 \x01(\t\"x\n\rSecretEncType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0e\n\nEVENT_EDIT\x10\x01\x12\x10\n\x0cMESSAGE_EDIT\x10\x02\x12\x14\n\x10MESSAGE_SCHEDULE\x10\x03\x12\r\n\tPOLL_EDIT\x10\x04\x12\x13\n\x0fPOLL_ADD_OPTION\x10\x05\x1a\xb7\x01\n\x12SendPaymentMessage\x12&\n\x0bnoteMessage\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12/\n\x11requestMessageKey\x18\x03 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12/\n\nbackground\x18\x04 \x01(\x0b\x32\x1b.whatsapp.PaymentBackground\x12\x17\n\x0ftransactionData\x18\x05 \x01(\t\x1a\\\n\x1cSenderKeyDistributionMessage\x12\x0f\n\x07groupId\x18\x01 \x01(\t\x12+\n#axolotlSenderKeyDistributionMessage\x18\x02 \x01(\x0c\x1a\xf9\x01\n\x13SplitPaymentMessage\x12\x0f\n\x07splitId\x18\x01 \x01(\t\x12$\n\x0btotalAmount\x18\x02 \x01(\x0b\x32\x0f.whatsapp.Money\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x14\n\x0crequesterJid\x18\x04 \x01(\t\x12?\n\x0cparticipants\x18\x05 \x03(\x0b\x32).whatsapp.Message.SplitPaymentParticipant\x12\x13\n\x0b\x63reatedAtMs\x18\x06 \x01(\x03\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xc2\x01\n\x17SplitPaymentParticipant\x12\x0b\n\x03jid\x18\x01 \x01(\t\x12\x1f\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x0f.whatsapp.Money\x12L\n\x06status\x18\x03 \x01(\x0e\x32<.whatsapp.Message.SplitPaymentParticipant.SplitPaymentStatus\"+\n\x12SplitPaymentStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x08\n\x04PAID\x10\x01\x1a\xc6\x02\n\x19StatusNotificationMessage\x12\x30\n\x12responseMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x30\n\x12originalMessageKey\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12P\n\x04type\x18\x03 \x01(\x0e\x32\x42.whatsapp.Message.StatusNotificationMessage.StatusNotificationType\"s\n\x16StatusNotificationType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x14\n\x10STATUS_ADD_YOURS\x10\x01\x12\x12\n\x0eSTATUS_RESHARE\x10\x02\x12\"\n\x1eSTATUS_QUESTION_ANSWER_RESHARE\x10\x03\x1aN\n\x1bStatusQuestionAnswerMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x1a\xe3\x01\n\x13StatusQuotedMessage\x12K\n\x04type\x18\x01 \x01(\x0e\x32=.whatsapp.Message.StatusQuotedMessage.StatusQuotedMessageType\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x11\n\tthumbnail\x18\x03 \x01(\x0c\x12.\n\x10originalStatusId\x18\x04 \x01(\x0b\x32\x14.whatsapp.MessageKey\".\n\x17StatusQuotedMessageType\x12\x13\n\x0fQUESTION_ANSWER\x10\x01\x1a\xdb\x01\n\x1fStatusStickerInteractionMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nstickerKey\x18\x02 \x01(\t\x12Q\n\x04type\x18\x03 \x01(\x0e\x32\x43.whatsapp.Message.StatusStickerInteractionMessage.StatusStickerType\".\n\x11StatusStickerType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08REACTION\x10\x01\x1a\xe6\x03\n\x0eStickerMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\nfileSha256\x18\x02 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x03 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x10\n\x08mimetype\x18\x05 \x01(\t\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\r\n\x05width\x18\x07 \x01(\r\x12\x12\n\ndirectPath\x18\x08 \x01(\t\x12\x12\n\nfileLength\x18\t \x01(\x04\x12\x19\n\x11mediaKeyTimestamp\x18\n \x01(\x03\x12\x18\n\x10\x66irstFrameLength\x18\x0b \x01(\r\x12\x19\n\x11\x66irstFrameSidecar\x18\x0c \x01(\x0c\x12\x12\n\nisAnimated\x18\r \x01(\x08\x12\x14\n\x0cpngThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x15\n\rstickerSentTs\x18\x12 \x01(\x03\x12\x10\n\x08isAvatar\x18\x13 \x01(\x08\x12\x13\n\x0bisAiSticker\x18\x14 \x01(\x08\x12\x10\n\x08isLottie\x18\x15 \x01(\x08\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x16 \x01(\t\x12\x0f\n\x07premium\x18\x18 \x01(\x05\x12\x0e\n\x06\x65mojis\x18\x19 \x01(\t\x1a\xde\x06\n\x12StickerPackMessage\x12\x15\n\rstickerPackId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\tpublisher\x18\x03 \x01(\t\x12>\n\x08stickers\x18\x04 \x03(\x0b\x32,.whatsapp.Message.StickerPackMessage.Sticker\x12\x12\n\nfileLength\x18\x05 \x01(\x04\x12\x12\n\nfileSha256\x18\x06 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x07 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x08 \x01(\x0c\x12\x12\n\ndirectPath\x18\t \x01(\t\x12\x0f\n\x07\x63\x61ption\x18\n \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x0b \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x17\n\x0fpackDescription\x18\x0c \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\r \x01(\x03\x12\x18\n\x10trayIconFileName\x18\x0e \x01(\t\x12\x1b\n\x13thumbnailDirectPath\x18\x0f \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x10 \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x11 \x01(\x0c\x12\x17\n\x0fthumbnailHeight\x18\x12 \x01(\r\x12\x16\n\x0ethumbnailWidth\x18\x13 \x01(\r\x12\x15\n\rimageDataHash\x18\x14 \x01(\t\x12\x17\n\x0fstickerPackSize\x18\x15 \x01(\x04\x12Q\n\x11stickerPackOrigin\x18\x16 \x01(\x0e\x32\x36.whatsapp.Message.StickerPackMessage.StickerPackOrigin\x1a\x90\x01\n\x07Sticker\x12\x10\n\x08\x66ileName\x18\x01 \x01(\t\x12\x12\n\nisAnimated\x18\x02 \x01(\x08\x12\x0e\n\x06\x65mojis\x18\x03 \x03(\t\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x04 \x01(\t\x12\x10\n\x08isLottie\x18\x05 \x01(\x08\x12\x10\n\x08mimetype\x18\x06 \x01(\t\x12\x0f\n\x07premium\x18\x07 \x01(\x05\"G\n\x11StickerPackOrigin\x12\x0f\n\x0b\x46IRST_PARTY\x10\x00\x12\x0f\n\x0bTHIRD_PARTY\x10\x01\x12\x10\n\x0cUSER_CREATED\x10\x02\x1aV\n\x15StickerSyncRMRMessage\x12\x10\n\x08\x66ilehash\x18\x01 \x03(\t\x12\x11\n\trmrSource\x18\x02 \x01(\t\x12\x18\n\x10requestTimestamp\x18\x03 \x01(\x03\x1a\xb3\x01\n\x1aTemplateButtonReplyMessage\x12\x12\n\nselectedId\x18\x01 \x01(\t\x12\x1b\n\x13selectedDisplayText\x18\x02 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x03 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x15\n\rselectedIndex\x18\x04 \x01(\r\x12!\n\x19selectedCarouselCardIndex\x18\x05 \x01(\r\x1a\xf2\n\n\x0fTemplateMessage\x12*\n\x0b\x63ontextInfo\x18\x03 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12S\n\x10hydratedTemplate\x18\x04 \x01(\x0b\x32\x39.whatsapp.Message.TemplateMessage.HydratedFourRowTemplate\x12\x12\n\ntemplateId\x18\t \x01(\t\x12L\n\x0f\x66ourRowTemplate\x18\x01 \x01(\x0b\x32\x31.whatsapp.Message.TemplateMessage.FourRowTemplateH\x00\x12\\\n\x17hydratedFourRowTemplate\x18\x02 \x01(\x0b\x32\x39.whatsapp.Message.TemplateMessage.HydratedFourRowTemplateH\x00\x12J\n\x1ainteractiveMessageTemplate\x18\x05 \x01(\x0b\x32$.whatsapp.Message.InteractiveMessageH\x00\x1a\xf6\x03\n\x0f\x46ourRowTemplate\x12:\n\x07\x63ontent\x18\x06 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12\x39\n\x06\x66ooter\x18\x07 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12)\n\x07\x62uttons\x18\x08 \x03(\x0b\x32\x18.whatsapp.TemplateButton\x12<\n\x0f\x64ocumentMessage\x18\x01 \x01(\x0b\x32!.whatsapp.Message.DocumentMessageH\x00\x12L\n\x17highlyStructuredMessage\x18\x02 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessageH\x00\x12\x36\n\x0cimageMessage\x18\x03 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessageH\x00\x12\x36\n\x0cvideoMessage\x18\x04 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessageH\x00\x12<\n\x0flocationMessage\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessageH\x00\x42\x07\n\x05title\x1a\xce\x03\n\x17HydratedFourRowTemplate\x12\x1b\n\x13hydratedContentText\x18\x06 \x01(\t\x12\x1a\n\x12hydratedFooterText\x18\x07 \x01(\t\x12\x39\n\x0fhydratedButtons\x18\x08 \x03(\x0b\x32 .whatsapp.HydratedTemplateButton\x12\x12\n\ntemplateId\x18\t \x01(\t\x12\x19\n\x11maskLinkedDevices\x18\n \x01(\x08\x12<\n\x0f\x64ocumentMessage\x18\x01 \x01(\x0b\x32!.whatsapp.Message.DocumentMessageH\x00\x12\x1b\n\x11hydratedTitleText\x18\x02 \x01(\tH\x00\x12\x36\n\x0cimageMessage\x18\x03 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessageH\x00\x12\x36\n\x0cvideoMessage\x18\x04 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessageH\x00\x12<\n\x0flocationMessage\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessageH\x00\x42\x07\n\x05titleB\x08\n\x06\x66ormat\x1a%\n\x0bURLMetadata\x12\x16\n\x0e\x66\x62\x45xperimentId\x18\x01 \x01(\r\x1ag\n\x0cVideoEndCard\x12\x10\n\x08username\x18\x01 \x02(\t\x12\x0f\n\x07\x63\x61ption\x18\x02 \x02(\t\x12\x19\n\x11thumbnailImageUrl\x18\x03 \x02(\t\x12\x19\n\x11profilePictureUrl\x18\x04 \x02(\t\x1a\x88\x08\n\x0cVideoMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08mimetype\x18\x02 \x01(\t\x12\x12\n\nfileSha256\x18\x03 \x01(\x0c\x12\x12\n\nfileLength\x18\x04 \x01(\x04\x12\x0f\n\x07seconds\x18\x05 \x01(\r\x12\x10\n\x08mediaKey\x18\x06 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x07 \x01(\t\x12\x13\n\x0bgifPlayback\x18\x08 \x01(\x08\x12\x0e\n\x06height\x18\t \x01(\r\x12\r\n\x05width\x18\n \x01(\r\x12\x15\n\rfileEncSha256\x18\x0b \x01(\x0c\x12?\n\x16interactiveAnnotations\x18\x0c \x03(\x0b\x32\x1f.whatsapp.InteractiveAnnotation\x12\x12\n\ndirectPath\x18\r \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x0e \x01(\x03\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x18\n\x10streamingSidecar\x18\x12 \x01(\x0c\x12\x42\n\x0egifAttribution\x18\x13 \x01(\x0e\x32*.whatsapp.Message.VideoMessage.Attribution\x12\x10\n\x08viewOnce\x18\x14 \x01(\x08\x12\x1b\n\x13thumbnailDirectPath\x18\x15 \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x16 \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x17 \x01(\x0c\x12\x11\n\tstaticUrl\x18\x18 \x01(\t\x12\x34\n\x0b\x61nnotations\x18\x19 \x03(\x0b\x32\x1f.whatsapp.InteractiveAnnotation\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x1a \x01(\t\x12\x31\n\x0fprocessedVideos\x18\x1b \x03(\x0b\x32\x18.whatsapp.ProcessedVideo\x12/\n\'externalShareFullVideoDurationInSeconds\x18\x1c \x01(\r\x12\'\n\x1fmotionPhotoPresentationOffsetMs\x18\x1d \x01(\x04\x12\x13\n\x0bmetadataUrl\x18\x1e \x01(\t\x12G\n\x0fvideoSourceType\x18\x1f \x01(\x0e\x32..whatsapp.Message.VideoMessage.VideoSourceType\"8\n\x0b\x41ttribution\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05GIPHY\x10\x01\x12\t\n\x05TENOR\x10\x02\x12\t\n\x05KLIPY\x10\x03\"3\n\x0fVideoSourceType\x12\x0e\n\nUSER_VIDEO\x10\x00\x12\x10\n\x0c\x41I_GENERATED\x10\x01\"\xb5\x01\n\x0fHistorySyncType\x12\x15\n\x11INITIAL_BOOTSTRAP\x10\x00\x12\x15\n\x11INITIAL_STATUS_V3\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\x12\n\n\x06RECENT\x10\x03\x12\r\n\tPUSH_NAME\x10\x04\x12\x15\n\x11NON_BLOCKING_DATA\x10\x05\x12\r\n\tON_DEMAND\x10\x06\x12\x0e\n\nNO_HISTORY\x10\x07\x12\x19\n\x15MESSAGE_ACCESS_STATUS\x10\x08\"Y\n\x14InsightDeliveryState\x12\x08\n\x04SENT\x10\x00\x12\r\n\tDELIVERED\x10\x01\x12\x08\n\x04READ\x10\x02\x12\x0b\n\x07REPLIED\x10\x03\x12\x11\n\rQUICK_REPLIED\x10\x04\"\xf1\x03\n\x1cPeerDataOperationRequestType\x12\x12\n\x0eUPLOAD_STICKER\x10\x00\x12!\n\x1dSEND_RECENT_STICKER_BOOTSTRAP\x10\x01\x12\x19\n\x15GENERATE_LINK_PREVIEW\x10\x02\x12\x1a\n\x16HISTORY_SYNC_ON_DEMAND\x10\x03\x12\x1e\n\x1aPLACEHOLDER_MESSAGE_RESEND\x10\x04\x12\x1e\n\x1aWAFFLE_LINKING_NONCE_FETCH\x10\x05\x12\x1f\n\x1b\x46ULL_HISTORY_SYNC_ON_DEMAND\x10\x06\x12\x1e\n\x1a\x43OMPANION_META_NONCE_FETCH\x10\x07\x12+\n\'COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY\x10\x08\x12(\n$COMPANION_CANONICAL_USER_NONCE_FETCH\x10\t\x12\x1c\n\x18HISTORY_SYNC_CHUNK_RETRY\x10\n\x12\x16\n\x12GALAXY_FLOW_ACTION\x10\x0b\x12,\n(BUSINESS_BROADCAST_INSIGHTS_DELIVERED_TO\x10\x0c\x12\'\n#BUSINESS_BROADCAST_INSIGHTS_REFRESH\x10\r\"3\n\x0fPollContentType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04TEXT\x10\x01\x12\t\n\x05IMAGE\x10\x02\"\x1e\n\x08PollType\x12\x08\n\x04POLL\x10\x00\x12\x08\n\x04QUIZ\x10\x01\"\xe4\x03\n\x0cMessageAddOn\x12\x41\n\x10messageAddOnType\x18\x01 \x01(\x0e\x32\'.whatsapp.MessageAddOn.MessageAddOnType\x12\'\n\x0cmessageAddOn\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\x19\n\x11senderTimestampMs\x18\x03 \x01(\x03\x12\x19\n\x11serverTimestampMs\x18\x04 \x01(\x03\x12/\n\x06status\x18\x05 \x01(\x0e\x32\x1f.whatsapp.WebMessageInfo.Status\x12;\n\x10\x61\x64\x64OnContextInfo\x18\x06 \x01(\x0b\x32!.whatsapp.MessageAddOnContextInfo\x12-\n\x0fmessageAddOnKey\x18\x07 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12.\n\rlegacyMessage\x18\x08 \x01(\x0b\x32\x17.whatsapp.LegacyMessage\"e\n\x10MessageAddOnType\x12\r\n\tUNDEFINED\x10\x00\x12\x0c\n\x08REACTION\x10\x01\x12\x12\n\x0e\x45VENT_RESPONSE\x10\x02\x12\x0f\n\x0bPOLL_UPDATE\x10\x03\x12\x0f\n\x0bPIN_IN_CHAT\x10\x04\"\x92\x01\n\x17MessageAddOnContextInfo\x12\"\n\x1amessageAddOnDurationInSecs\x18\x01 \x01(\r\x12S\n\x16messageAddOnExpiryType\x18\x02 \x01(\x0e\x32\x33.whatsapp.MessageContextInfo.MessageAddonExpiryType\"\x8c\x05\n\x12MessageAssociation\x12\x45\n\x0f\x61ssociationType\x18\x01 \x01(\x0e\x32,.whatsapp.MessageAssociation.AssociationType\x12.\n\x10parentMessageKey\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x14\n\x0cmessageIndex\x18\x03 \x01(\x05\"\xe8\x03\n\x0f\x41ssociationType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0f\n\x0bMEDIA_ALBUM\x10\x01\x12\x0e\n\nBOT_PLUGIN\x10\x02\x12\x15\n\x11\x45VENT_COVER_IMAGE\x10\x03\x12\x0f\n\x0bSTATUS_POLL\x10\x04\x12\x18\n\x14HD_VIDEO_DUAL_UPLOAD\x10\x05\x12\x1b\n\x17STATUS_EXTERNAL_RESHARE\x10\x06\x12\x0e\n\nMEDIA_POLL\x10\x07\x12\x14\n\x10STATUS_ADD_YOURS\x10\x08\x12\x17\n\x13STATUS_NOTIFICATION\x10\t\x12\x18\n\x14HD_IMAGE_DUAL_UPLOAD\x10\n\x12\x16\n\x12STICKER_ANNOTATION\x10\x0b\x12\x10\n\x0cMOTION_PHOTO\x10\x0c\x12\x16\n\x12STATUS_LINK_ACTION\x10\r\x12\x14\n\x10VIEW_ALL_REPLIES\x10\x0e\x12\x1f\n\x1bSTATUS_ADD_YOURS_AI_IMAGINE\x10\x0f\x12\x13\n\x0fSTATUS_QUESTION\x10\x10\x12\x1b\n\x17STATUS_ADD_YOURS_DIWALI\x10\x11\x12\x13\n\x0fSTATUS_REACTION\x10\x12\x12\x1a\n\x16HEVC_VIDEO_DUAL_UPLOAD\x10\x13\x12\x13\n\x0fPOLL_ADD_OPTION\x10\x14\"\xff\x05\n\x12MessageContextInfo\x12\x38\n\x12\x64\x65viceListMetadata\x18\x01 \x01(\x0b\x32\x1c.whatsapp.DeviceListMetadata\x12!\n\x19\x64\x65viceListMetadataVersion\x18\x02 \x01(\x05\x12\x15\n\rmessageSecret\x18\x03 \x01(\x0c\x12\x14\n\x0cpaddingBytes\x18\x04 \x01(\x0c\x12\"\n\x1amessageAddOnDurationInSecs\x18\x05 \x01(\r\x12\x18\n\x10\x62otMessageSecret\x18\x06 \x01(\x0c\x12*\n\x0b\x62otMetadata\x18\x07 \x01(\x0b\x32\x15.whatsapp.BotMetadata\x12\x1d\n\x15reportingTokenVersion\x18\x08 \x01(\x05\x12S\n\x16messageAddOnExpiryType\x18\t \x01(\x0e\x32\x33.whatsapp.MessageContextInfo.MessageAddonExpiryType\x12\x38\n\x12messageAssociation\x18\n \x01(\x0b\x32\x1c.whatsapp.MessageAssociation\x12\x18\n\x10\x63\x61piCreatedGroup\x18\x0b \x01(\x08\x12\x16\n\x0esupportPayload\x18\x0c \x01(\t\x12,\n\x0climitSharing\x18\r \x01(\x0b\x32\x16.whatsapp.LimitSharing\x12.\n\x0elimitSharingV2\x18\x0e \x01(\x0b\x32\x16.whatsapp.LimitSharing\x12$\n\x08threadId\x18\x0f \x03(\x0b\x32\x12.whatsapp.ThreadID\x12:\n\x13weblinkRenderConfig\x18\x10 \x01(\x0e\x32\x1d.whatsapp.WebLinkRenderConfig\x12\x16\n\x0eteeBotMetadata\x18\x11 \x01(\x0c\"=\n\x16MessageAddonExpiryType\x12\n\n\x06STATIC\x10\x01\x12\x17\n\x13\x44\x45PENDENT_ON_PARENT\x10\x02\"P\n\nMessageKey\x12\x11\n\tremoteJid\x18\x01 \x01(\t\x12\x0e\n\x06\x66romMe\x18\x02 \x01(\x08\x12\n\n\x02id\x18\x03 \x01(\t\x12\x13\n\x0bparticipant\x18\x04 \x01(\t\"J\n\x14MessageSecretMessage\x12\x0f\n\x07version\x18\x01 \x01(\x0f\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\x12\x12\n\nencPayload\x18\x03 \x01(\x0c\"{\n\x0bMessageText\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x14\n\x0cmentionedJid\x18\x02 \x03(\t\x12#\n\x08\x63ommands\x18\x03 \x03(\x0b\x32\x11.whatsapp.Command\x12#\n\x08mentions\x18\x04 \x03(\x0b\x32\x11.whatsapp.Mention\"<\n\x05Money\x12\r\n\x05value\x18\x01 \x01(\x03\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\x14\n\x0c\x63urrencyCode\x18\x03 \x01(\t\"\xa7\x10\n\rMsgOpaqueData\x12\x0c\n\x04\x62ody\x18\x01 \x01(\t\x12\x0f\n\x07\x63\x61ption\x18\x03 \x01(\t\x12\x0b\n\x03lng\x18\x05 \x01(\x01\x12\x0e\n\x06isLive\x18\x06 \x01(\x08\x12\x0b\n\x03lat\x18\x07 \x01(\x01\x12\x19\n\x11paymentAmount1000\x18\x08 \x01(\x05\x12\x1a\n\x12paymentNoteMsgBody\x18\t \x01(\t\x12\x13\n\x0bmatchedText\x18\x0b \x01(\t\x12\r\n\x05title\x18\x0c \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\r \x01(\t\x12\x19\n\x11\x66utureproofBuffer\x18\x0e \x01(\x0c\x12\x11\n\tclientUrl\x18\x0f \x01(\t\x12\x0b\n\x03loc\x18\x10 \x01(\t\x12\x10\n\x08pollName\x18\x11 \x01(\t\x12\x37\n\x0bpollOptions\x18\x12 \x03(\x0b\x32\".whatsapp.MsgOpaqueData.PollOption\x12\"\n\x1apollSelectableOptionsCount\x18\x14 \x01(\r\x12\x15\n\rmessageSecret\x18\x15 \x01(\x0c\x12\x1a\n\x12originalSelfAuthor\x18\x33 \x01(\t\x12\x19\n\x11senderTimestampMs\x18\x16 \x01(\x03\x12\x1b\n\x13pollUpdateParentKey\x18\x17 \x01(\t\x12+\n\x0b\x65ncPollVote\x18\x18 \x01(\x0b\x32\x16.whatsapp.PollEncValue\x12\x1d\n\x15isSentCagPollCreation\x18\x1c \x01(\x08\x12@\n\x0fpollContentType\x18* \x01(\x0e\x32\'.whatsapp.MsgOpaqueData.PollContentType\x12\x32\n\x08pollType\x18. \x01(\x0e\x32 .whatsapp.MsgOpaqueData.PollType\x12\x1a\n\x12\x63orrectOptionIndex\x18/ \x01(\x05\x12\x44\n\x11pollVotesSnapshot\x18) \x01(\x0b\x32).whatsapp.MsgOpaqueData.PollVotesSnapshot\x12#\n\x1b\x65ncReactionTargetMessageKey\x18\x19 \x01(\t\x12\x1d\n\x15\x65ncReactionEncPayload\x18\x1a \x01(\x0c\x12\x18\n\x10\x65ncReactionEncIv\x18\x1b \x01(\x0c\x12\x18\n\x10\x62otMessageSecret\x18\x1d \x01(\x0c\x12\x18\n\x10targetMessageKey\x18\x1e \x01(\t\x12\x12\n\nencPayload\x18\x1f \x01(\x0c\x12\r\n\x05\x65ncIv\x18 \x01(\x0c\x12\x11\n\teventName\x18! \x01(\t\x12\x17\n\x0fisEventCanceled\x18\" \x01(\x08\x12\x18\n\x10\x65ventDescription\x18# \x01(\t\x12\x15\n\reventJoinLink\x18$ \x01(\t\x12\x16\n\x0e\x65ventStartTime\x18% \x01(\x03\x12<\n\reventLocation\x18& \x01(\x0b\x32%.whatsapp.MsgOpaqueData.EventLocation\x12\x14\n\x0c\x65ventEndTime\x18( \x01(\x03\x12\x1c\n\x14\x65ventIsScheduledCall\x18, \x01(\x08\x12\x1f\n\x17\x65ventExtraGuestsAllowed\x18- \x01(\x08\x12\x1a\n\x12plainProtobufBytes\x18+ \x01(\x0c\x12\x1f\n\x17quarantineExtractedText\x18\x30 \x01(\t\x12\x13\n\x0bpollEndTime\x18\x31 \x01(\x03\x12\x1a\n\x12pollHideVoterNames\x18\x32 \x01(\x08\x12\x1a\n\x12pollAllowAddOption\x18\x34 \x01(\x08\x12\x1d\n\x15sharableEventInviteId\x18\x35 \x01(\t\x12 \n\x18sharableEventInviteTitle\x18\x36 \x01(\t\x12$\n\x1csharableEventInviteStartTime\x18\x37 \x01(\x03\x12\"\n\x1asharableEventInviteEndTime\x18\x38 \x01(\x03\x12\"\n\x1asharableEventInviteCaption\x18\x39 \x01(\t\x12%\n\x1dsharableEventInviteIsCanceled\x18: \x01(\x08\x12(\n sharableEventInviteJpegThumbnail\x18; \x01(\x0c\x12#\n\x1bsharableEventInviteCallLink\x18< \x01(\t\x1a\x85\x01\n\rEventLocation\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x04 \x01(\t\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x06 \x01(\x0c\x1a(\n\nPollOption\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04hash\x18\x02 \x01(\t\x1a_\n\x10PollVoteSnapshot\x12\x32\n\x06option\x18\x01 \x01(\x0b\x32\".whatsapp.MsgOpaqueData.PollOption\x12\x17\n\x0foptionVoteCount\x18\x02 \x01(\x05\x1aP\n\x11PollVotesSnapshot\x12;\n\tpollVotes\x18\x01 \x03(\x0b\x32(.whatsapp.MsgOpaqueData.PollVoteSnapshot\"3\n\x0fPollContentType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04TEXT\x10\x01\x12\t\n\x05IMAGE\x10\x02\"\x1e\n\x08PollType\x12\x08\n\x04POLL\x10\x00\x12\x08\n\x04QUIZ\x10\x01\"k\n\x10MsgRowOpaqueData\x12+\n\ncurrentMsg\x18\x01 \x01(\x0b\x32\x17.whatsapp.MsgOpaqueData\x12*\n\tquotedMsg\x18\x02 \x01(\x0b\x32\x17.whatsapp.MsgOpaqueData\"\x90\x01\n\x10NoiseCertificate\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x1aX\n\x07\x44\x65tails\x12\x0e\n\x06serial\x18\x01 \x01(\r\x12\x0e\n\x06issuer\x18\x02 \x01(\t\x12\x0f\n\x07\x65xpires\x18\x03 \x01(\x04\x12\x0f\n\x07subject\x18\x04 \x01(\t\x12\x0b\n\x03key\x18\x05 \x01(\x0c\"\x8f\x01\n\x17NotificationMessageInfo\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\x18\n\x10messageTimestamp\x18\x03 \x01(\x04\x12\x13\n\x0bparticipant\x18\x04 \x01(\t\"\xa9\x01\n\x14NotificationSettings\x12\x16\n\x0emessageVibrate\x18\x01 \x01(\t\x12\x14\n\x0cmessagePopup\x18\x02 \x01(\t\x12\x14\n\x0cmessageLight\x18\x03 \x01(\t\x12 \n\x18lowPriorityNotifications\x18\x04 \x01(\x08\x12\x16\n\x0ereactionsMuted\x18\x05 \x01(\x08\x12\x13\n\x0b\x63\x61llVibrate\x18\x06 \x01(\t\"]\n\x0ePairingRequest\x12\x1a\n\x12\x63ompanionPublicKey\x18\x01 \x01(\x0c\x12\x1c\n\x14\x63ompanionIdentityKey\x18\x02 \x01(\x0c\x12\x11\n\tadvSecret\x18\x03 \x01(\x0c\"\x95\x01\n\x0fPastParticipant\x12\x0f\n\x07userJid\x18\x01 \x01(\t\x12:\n\x0bleaveReason\x18\x02 \x01(\x0e\x32%.whatsapp.PastParticipant.LeaveReason\x12\x0f\n\x07leaveTs\x18\x03 \x01(\x04\"$\n\x0bLeaveReason\x12\x08\n\x04LEFT\x10\x00\x12\x0b\n\x07REMOVED\x10\x01\"Y\n\x10PastParticipants\x12\x10\n\x08groupJid\x18\x01 \x01(\t\x12\x33\n\x10pastParticipants\x18\x02 \x03(\x0b\x32\x19.whatsapp.PastParticipant\"\xd6\x03\n\x0ePatchDebugData\x12\x15\n\rcurrentLthash\x18\x01 \x01(\x0c\x12\x11\n\tnewLthash\x18\x02 \x01(\x0c\x12\x14\n\x0cpatchVersion\x18\x03 \x01(\x0c\x12\x16\n\x0e\x63ollectionName\x18\x04 \x01(\x0c\x12/\n\'firstFourBytesFromAHashOfSnapshotMacKey\x18\x05 \x01(\x0c\x12\x19\n\x11newLthashSubtract\x18\x06 \x01(\x0c\x12\x11\n\tnumberAdd\x18\x07 \x01(\x05\x12\x14\n\x0cnumberRemove\x18\x08 \x01(\x05\x12\x16\n\x0enumberOverride\x18\t \x01(\x05\x12\x39\n\x0esenderPlatform\x18\n \x01(\x0e\x32!.whatsapp.PatchDebugData.Platform\x12\x17\n\x0fisSenderPrimary\x18\x0b \x01(\x08\"\x8a\x01\n\x08Platform\x12\x0b\n\x07\x41NDROID\x10\x00\x12\x08\n\x04SMBA\x10\x01\x12\n\n\x06IPHONE\x10\x02\x12\x08\n\x04SMBI\x10\x03\x12\x07\n\x03WEB\x10\x04\x12\x07\n\x03UWP\x10\x05\x12\n\n\x06\x44\x41RWIN\x10\x06\x12\x08\n\x04IPAD\x10\x07\x12\n\n\x06WEAROS\x10\x08\x12\x08\n\x04WASG\x10\t\x12\t\n\x05WEARM\x10\n\x12\x08\n\x04\x43\x41PI\x10\x0b\"\xa9\x03\n\x11PaymentBackground\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nfileLength\x18\x02 \x01(\x04\x12\r\n\x05width\x18\x03 \x01(\r\x12\x0e\n\x06height\x18\x04 \x01(\r\x12\x10\n\x08mimetype\x18\x05 \x01(\t\x12\x17\n\x0fplaceholderArgb\x18\x06 \x01(\x07\x12\x10\n\x08textArgb\x18\x07 \x01(\x07\x12\x13\n\x0bsubtextArgb\x18\x08 \x01(\x07\x12\x38\n\tmediaData\x18\t \x01(\x0b\x32%.whatsapp.PaymentBackground.MediaData\x12.\n\x04type\x18\n \x01(\x0e\x32 .whatsapp.PaymentBackground.Type\x1aw\n\tMediaData\x12\x10\n\x08mediaKey\x18\x01 \x01(\x0c\x12\x19\n\x11mediaKeyTimestamp\x18\x02 \x01(\x03\x12\x12\n\nfileSha256\x18\x03 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x04 \x01(\x0c\x12\x12\n\ndirectPath\x18\x05 \x01(\t\" \n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\"\xe7\n\n\x0bPaymentInfo\x12:\n\x12\x63urrencyDeprecated\x18\x01 \x01(\x0e\x32\x1e.whatsapp.PaymentInfo.Currency\x12\x12\n\namount1000\x18\x02 \x01(\x04\x12\x13\n\x0breceiverJid\x18\x03 \x01(\t\x12,\n\x06status\x18\x04 \x01(\x0e\x32\x1c.whatsapp.PaymentInfo.Status\x12\x1c\n\x14transactionTimestamp\x18\x05 \x01(\x04\x12/\n\x11requestMessageKey\x18\x06 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x17\n\x0f\x65xpiryTimestamp\x18\x07 \x01(\x04\x12\x15\n\rfutureproofed\x18\x08 \x01(\x08\x12\x10\n\x08\x63urrency\x18\t \x01(\t\x12\x32\n\ttxnStatus\x18\n \x01(\x0e\x32\x1f.whatsapp.PaymentInfo.TxnStatus\x12\x19\n\x11useNoviFiatFormat\x18\x0b \x01(\x08\x12&\n\rprimaryAmount\x18\x0c \x01(\x0b\x32\x0f.whatsapp.Money\x12\'\n\x0e\x65xchangeAmount\x18\r \x01(\x0b\x32\x0f.whatsapp.Money\")\n\x08\x43urrency\x12\x14\n\x10UNKNOWN_CURRENCY\x10\x00\x12\x07\n\x03INR\x10\x01\"\xcc\x01\n\x06Status\x12\x12\n\x0eUNKNOWN_STATUS\x10\x00\x12\x0e\n\nPROCESSING\x10\x01\x12\x08\n\x04SENT\x10\x02\x12\x12\n\x0eNEED_TO_ACCEPT\x10\x03\x12\x0c\n\x08\x43OMPLETE\x10\x04\x12\x16\n\x12\x43OULD_NOT_COMPLETE\x10\x05\x12\x0c\n\x08REFUNDED\x10\x06\x12\x0b\n\x07\x45XPIRED\x10\x07\x12\x0c\n\x08REJECTED\x10\x08\x12\r\n\tCANCELLED\x10\t\x12\x15\n\x11WAITING_FOR_PAYER\x10\n\x12\x0b\n\x07WAITING\x10\x0b\"\x99\x05\n\tTxnStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rPENDING_SETUP\x10\x01\x12\x1a\n\x16PENDING_RECEIVER_SETUP\x10\x02\x12\x08\n\x04INIT\x10\x03\x12\x0b\n\x07SUCCESS\x10\x04\x12\r\n\tCOMPLETED\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06\x12\x0f\n\x0b\x46\x41ILED_RISK\x10\x07\x12\x15\n\x11\x46\x41ILED_PROCESSING\x10\x08\x12\x1e\n\x1a\x46\x41ILED_RECEIVER_PROCESSING\x10\t\x12\r\n\tFAILED_DA\x10\n\x12\x13\n\x0f\x46\x41ILED_DA_FINAL\x10\x0b\x12\x10\n\x0cREFUNDED_TXN\x10\x0c\x12\x11\n\rREFUND_FAILED\x10\r\x12\x1c\n\x18REFUND_FAILED_PROCESSING\x10\x0e\x12\x14\n\x10REFUND_FAILED_DA\x10\x0f\x12\x0f\n\x0b\x45XPIRED_TXN\x10\x10\x12\x11\n\rAUTH_CANCELED\x10\x11\x12!\n\x1d\x41UTH_CANCEL_FAILED_PROCESSING\x10\x12\x12\x16\n\x12\x41UTH_CANCEL_FAILED\x10\x13\x12\x10\n\x0c\x43OLLECT_INIT\x10\x14\x12\x13\n\x0f\x43OLLECT_SUCCESS\x10\x15\x12\x12\n\x0e\x43OLLECT_FAILED\x10\x16\x12\x17\n\x13\x43OLLECT_FAILED_RISK\x10\x17\x12\x14\n\x10\x43OLLECT_REJECTED\x10\x18\x12\x13\n\x0f\x43OLLECT_EXPIRED\x10\x19\x12\x14\n\x10\x43OLLECT_CANCELED\x10\x1a\x12\x16\n\x12\x43OLLECT_CANCELLING\x10\x1b\x12\r\n\tIN_REVIEW\x10\x1c\x12\x14\n\x10REVERSAL_SUCCESS\x10\x1d\x12\x14\n\x10REVERSAL_PENDING\x10\x1e\x12\x12\n\x0eREFUND_PENDING\x10\x1f\"8\n\x17PhoneNumberToLIDMapping\x12\r\n\x05pnJid\x18\x01 \x01(\t\x12\x0e\n\x06lidJid\x18\x02 \x01(\t\"E\n\x0bPhotoChange\x12\x10\n\x08oldPhoto\x18\x01 \x01(\x0c\x12\x10\n\x08newPhoto\x18\x02 \x01(\x0c\x12\x12\n\nnewPhotoId\x18\x03 \x01(\r\"\x8e\x02\n\tPinInChat\x12&\n\x04type\x18\x01 \x01(\x0e\x32\x18.whatsapp.PinInChat.Type\x12!\n\x03key\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x19\n\x11senderTimestampMs\x18\x03 \x01(\x03\x12\x19\n\x11serverTimestampMs\x18\x04 \x01(\x03\x12\x42\n\x17messageAddOnContextInfo\x18\x05 \x01(\x0b\x32!.whatsapp.MessageAddOnContextInfo\"<\n\x04Type\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x0f\n\x0bPIN_FOR_ALL\x10\x01\x12\x11\n\rUNPIN_FOR_ALL\x10\x02\"G\n\x05Point\x12\x13\n\x0bxDeprecated\x18\x01 \x01(\x05\x12\x13\n\x0byDeprecated\x18\x02 \x01(\x05\x12\t\n\x01x\x18\x03 \x01(\x01\x12\t\n\x01y\x18\x04 \x01(\x01\"\xd1\x01\n\x16PollAdditionalMetadata\x12\x17\n\x0fpollInvalidated\x18\x01 \x01(\x08\x12V\n\x13pollNameHashHistory\x18\x02 \x03(\x0b\x32\x39.whatsapp.PollAdditionalMetadata.PollNameHashHistoryEntry\x1a\x46\n\x18PollNameHashHistoryEntry\x12\x14\n\x0c\x65\x64itStanzaId\x18\x01 \x01(\t\x12\x14\n\x0cpollNameHash\x18\x02 \x01(\x0c\"1\n\x0cPollEncValue\x12\x12\n\nencPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\"\xf6\x01\n\nPollUpdate\x12\x32\n\x14pollUpdateMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12/\n\x04vote\x18\x02 \x01(\x0b\x32!.whatsapp.Message.PollVoteMessage\x12\x19\n\x11senderTimestampMs\x18\x03 \x01(\x03\x12\x19\n\x11serverTimestampMs\x18\x04 \x01(\x03\x12\x0e\n\x06unread\x18\x05 \x01(\x08\x12=\n\x08metadata\x18\x06 \x01(\x0b\x32+.whatsapp.Message.PollUpdateMessageMetadata\"J\n\x15PreKeyRecordStructure\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x12\n\nprivateKey\x18\x03 \x01(\x0c\"\x8e\x01\n\x13PreKeySignalMessage\x12\x16\n\x0eregistrationId\x18\x05 \x01(\r\x12\x10\n\x08preKeyId\x18\x01 \x01(\r\x12\x16\n\x0esignedPreKeyId\x18\x06 \x01(\r\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\x12\x13\n\x0bidentityKey\x18\x03 \x01(\x0c\x12\x0f\n\x07message\x18\x04 \x01(\x0c\".\n\x12PremiumMessageInfo\x12\x18\n\x10serverCampaignId\x18\x01 \x01(\t\"<\n\x18PrimaryEphemeralIdentity\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\r\n\x05nonce\x18\x02 \x01(\x0c\"\x85\x02\n\x0eProcessedVideo\x12\x12\n\ndirectPath\x18\x01 \x01(\t\x12\x12\n\nfileSha256\x18\x02 \x01(\x0c\x12\x0e\n\x06height\x18\x03 \x01(\r\x12\r\n\x05width\x18\x04 \x01(\r\x12\x12\n\nfileLength\x18\x05 \x01(\x04\x12\x0f\n\x07\x62itrate\x18\x06 \x01(\r\x12\x36\n\x07quality\x18\x07 \x01(\x0e\x32%.whatsapp.ProcessedVideo.VideoQuality\x12\x14\n\x0c\x63\x61pabilities\x18\x08 \x03(\t\"9\n\x0cVideoQuality\x12\r\n\tUNDEFINED\x10\x00\x12\x07\n\x03LOW\x10\x01\x12\x07\n\x03MID\x10\x02\x12\x08\n\x04HIGH\x10\x03\"h\n\x0fProloguePayload\x12\"\n\x1a\x63ompanionEphemeralIdentity\x18\x01 \x01(\x0c\x12\x31\n\ncommitment\x18\x02 \x01(\x0b\x32\x1d.whatsapp.CompanionCommitment\"(\n\x08Pushname\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08pushname\x18\x02 \x01(\t\"\xbc\x04\n\x02QP\x1a\xcf\x01\n\x06\x46ilter\x12\x12\n\nfilterName\x18\x01 \x02(\t\x12\x31\n\nparameters\x18\x02 \x03(\x0b\x32\x1d.whatsapp.QP.FilterParameters\x12/\n\x0c\x66ilterResult\x18\x03 \x01(\x0e\x32\x19.whatsapp.QP.FilterResult\x12M\n\x18\x63lientNotSupportedConfig\x18\x04 \x02(\x0e\x32+.whatsapp.QP.FilterClientNotSupportedConfig\x1a\x8d\x01\n\x0c\x46ilterClause\x12+\n\nclauseType\x18\x01 \x02(\x0e\x32\x17.whatsapp.QP.ClauseType\x12*\n\x07\x63lauses\x18\x02 \x03(\x0b\x32\x19.whatsapp.QP.FilterClause\x12$\n\x07\x66ilters\x18\x03 \x03(\x0b\x32\x13.whatsapp.QP.Filter\x1a.\n\x10\x46ilterParameters\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"&\n\nClauseType\x12\x07\n\x03\x41ND\x10\x01\x12\x06\n\x02OR\x10\x02\x12\x07\n\x03NOR\x10\x03\"J\n\x1e\x46ilterClientNotSupportedConfig\x12\x13\n\x0fPASS_BY_DEFAULT\x10\x01\x12\x13\n\x0f\x46\x41IL_BY_DEFAULT\x10\x02\"0\n\x0c\x46ilterResult\x12\x08\n\x04TRUE\x10\x01\x12\t\n\x05\x46\x41LSE\x10\x02\x12\x0b\n\x07UNKNOWN\x10\x03\"A\n\x12QuarantinedMessage\x12\x14\n\x0coriginalData\x18\x01 \x01(\x0c\x12\x15\n\rextractedText\x18\x02 \x01(\t\"{\n\x08Reaction\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x13\n\x0bgroupingKey\x18\x03 \x01(\t\x12\x19\n\x11senderTimestampMs\x18\x04 \x01(\x03\x12\x0e\n\x06unread\x18\x05 \x01(\x08\"2\n\x11RecentEmojiWeight\x12\r\n\x05\x65moji\x18\x01 \x01(\t\x12\x0e\n\x06weight\x18\x02 \x01(\x02\"{\n\x0fRecordStructure\x12\x32\n\x0e\x63urrentSession\x18\x01 \x01(\x0b\x32\x1a.whatsapp.SessionStructure\x12\x34\n\x10previousSessions\x18\x02 \x03(\x0b\x32\x1a.whatsapp.SessionStructure\"d\n\nReportable\x12\x12\n\nminVersion\x18\x01 \x01(\r\x12\x12\n\nmaxVersion\x18\x02 \x01(\r\x12\x1f\n\x17notReportableMinVersion\x18\x03 \x01(\r\x12\r\n\x05never\x18\x04 \x01(\x08\"*\n\x12ReportingTokenInfo\x12\x14\n\x0creportingTag\x18\x01 \x01(\x0c\"w\n\x0bRoutingInfo\x12\x10\n\x08regionId\x18\x01 \x03(\x05\x12\x11\n\tclusterId\x18\x02 \x03(\x05\x12\x0e\n\x06taskId\x18\x03 \x01(\x05\x12\r\n\x05\x64\x65\x62ug\x18\x04 \x01(\x08\x12\x0e\n\x06tcpBbr\x18\x05 \x01(\x08\x12\x14\n\x0ctcpKeepalive\x18\x06 \x01(\x08\"Y\n\x18ScheduledMessageMetadata\x12\x13\n\x0brevealKeyId\x18\x01 \x01(\t\x12\x11\n\trevealKey\x18\x02 \x01(\x0c\x12\x15\n\rscheduledTime\x18\x03 \x01(\x04\"c\n\x1cSenderKeyDistributionMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\titeration\x18\x02 \x01(\r\x12\x10\n\x08\x63hainKey\x18\x03 \x01(\x0c\x12\x12\n\nsigningKey\x18\x04 \x01(\x0c\"E\n\x10SenderKeyMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\titeration\x18\x02 \x01(\r\x12\x12\n\nciphertext\x18\x03 \x01(\x0c\"V\n\x18SenderKeyRecordStructure\x12:\n\x0fsenderKeyStates\x18\x01 \x03(\x0b\x32!.whatsapp.SenderKeyStateStructure\"\xb2\x03\n\x17SenderKeyStateStructure\x12\x13\n\x0bsenderKeyId\x18\x01 \x01(\r\x12H\n\x0esenderChainKey\x18\x02 \x01(\x0b\x32\x30.whatsapp.SenderKeyStateStructure.SenderChainKey\x12L\n\x10senderSigningKey\x18\x03 \x01(\x0b\x32\x32.whatsapp.SenderKeyStateStructure.SenderSigningKey\x12M\n\x11senderMessageKeys\x18\x04 \x03(\x0b\x32\x32.whatsapp.SenderKeyStateStructure.SenderMessageKey\x1a\x31\n\x0eSenderChainKey\x12\x11\n\titeration\x18\x01 \x01(\r\x12\x0c\n\x04seed\x18\x02 \x01(\x0c\x1a\x33\n\x10SenderMessageKey\x12\x11\n\titeration\x18\x01 \x01(\r\x12\x0c\n\x04seed\x18\x02 \x01(\x0c\x1a\x33\n\x10SenderSigningKey\x12\x0e\n\x06public\x18\x01 \x01(\x0c\x12\x0f\n\x07private\x18\x02 \x01(\x0c\"&\n\x12ServerErrorReceipt\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\"\xc7\x08\n\x10SessionStructure\x12\x16\n\x0esessionVersion\x18\x01 \x01(\r\x12\x1b\n\x13localIdentityPublic\x18\x02 \x01(\x0c\x12\x1c\n\x14remoteIdentityPublic\x18\x03 \x01(\x0c\x12\x0f\n\x07rootKey\x18\x04 \x01(\x0c\x12\x17\n\x0fpreviousCounter\x18\x05 \x01(\r\x12\x35\n\x0bsenderChain\x18\x06 \x01(\x0b\x32 .whatsapp.SessionStructure.Chain\x12\x38\n\x0ereceiverChains\x18\x07 \x03(\x0b\x32 .whatsapp.SessionStructure.Chain\x12I\n\x12pendingKeyExchange\x18\x08 \x01(\x0b\x32-.whatsapp.SessionStructure.PendingKeyExchange\x12?\n\rpendingPreKey\x18\t \x01(\x0b\x32(.whatsapp.SessionStructure.PendingPreKey\x12\x1c\n\x14remoteRegistrationId\x18\n \x01(\r\x12\x1b\n\x13localRegistrationId\x18\x0b \x01(\r\x12\x14\n\x0cneedsRefresh\x18\x0c \x01(\x08\x12\x14\n\x0c\x61liceBaseKey\x18\r \x01(\x0c\x1a\xb5\x02\n\x05\x43hain\x12\x18\n\x10senderRatchetKey\x18\x01 \x01(\x0c\x12\x1f\n\x17senderRatchetKeyPrivate\x18\x02 \x01(\x0c\x12;\n\x08\x63hainKey\x18\x03 \x01(\x0b\x32).whatsapp.SessionStructure.Chain.ChainKey\x12@\n\x0bmessageKeys\x18\x04 \x03(\x0b\x32+.whatsapp.SessionStructure.Chain.MessageKey\x1a&\n\x08\x43hainKey\x12\r\n\x05index\x18\x01 \x01(\r\x12\x0b\n\x03key\x18\x02 \x01(\x0c\x1aJ\n\nMessageKey\x12\r\n\x05index\x18\x01 \x01(\r\x12\x11\n\tcipherKey\x18\x02 \x01(\x0c\x12\x0e\n\x06macKey\x18\x03 \x01(\x0c\x12\n\n\x02iv\x18\x04 \x01(\x0c\x1a\xcd\x01\n\x12PendingKeyExchange\x12\x10\n\x08sequence\x18\x01 \x01(\r\x12\x14\n\x0clocalBaseKey\x18\x02 \x01(\x0c\x12\x1b\n\x13localBaseKeyPrivate\x18\x03 \x01(\x0c\x12\x17\n\x0flocalRatchetKey\x18\x04 \x01(\x0c\x12\x1e\n\x16localRatchetKeyPrivate\x18\x05 \x01(\x0c\x12\x18\n\x10localIdentityKey\x18\x07 \x01(\x0c\x12\x1f\n\x17localIdentityKeyPrivate\x18\x08 \x01(\x0c\x1aJ\n\rPendingPreKey\x12\x10\n\x08preKeyId\x18\x01 \x01(\r\x12\x16\n\x0esignedPreKeyId\x18\x03 \x01(\x05\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\"\x88\x01\n\x1bSessionTransparencyMetadata\x12\x16\n\x0e\x64isclaimerText\x18\x01 \x01(\t\x12\r\n\x05hcaId\x18\x02 \x01(\t\x12\x42\n\x17sessionTransparencyType\x18\x03 \x01(\x0e\x32!.whatsapp.SessionTransparencyType\"a\n\rSignalMessage\x12\x12\n\nratchetKey\x18\x01 \x01(\x0c\x12\x0f\n\x07\x63ounter\x18\x02 \x01(\r\x12\x17\n\x0fpreviousCounter\x18\x03 \x01(\r\x12\x12\n\nciphertext\x18\x04 \x01(\x0c\"v\n\x1bSignedPreKeyRecordStructure\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x12\n\nprivateKey\x18\x03 \x01(\x0c\x12\x11\n\tsignature\x18\x04 \x01(\x0c\x12\x11\n\ttimestamp\x18\x05 \x01(\x06\"\xfe\x0e\n\x11StatusAttribution\x12.\n\x04type\x18\x01 \x01(\x0e\x32 .whatsapp.StatusAttribution.Type\x12\x11\n\tactionUrl\x18\x02 \x01(\t\x12\x42\n\rstatusReshare\x18\x03 \x01(\x0b\x32).whatsapp.StatusAttribution.StatusReshareH\x00\x12\x42\n\rexternalShare\x18\x04 \x01(\x0b\x32).whatsapp.StatusAttribution.ExternalShareH\x00\x12\x32\n\x05music\x18\x05 \x01(\x0b\x32!.whatsapp.StatusAttribution.MusicH\x00\x12>\n\x0bgroupStatus\x18\x06 \x01(\x0b\x32\'.whatsapp.StatusAttribution.GroupStatusH\x00\x12\x42\n\rrlAttribution\x18\x07 \x01(\x0b\x32).whatsapp.StatusAttribution.RLAttributionH\x00\x12P\n\x14\x61iCreatedAttribution\x18\x08 \x01(\x0b\x32\x30.whatsapp.StatusAttribution.AiCreatedAttributionH\x00\x1a\x8a\x01\n\x14\x41iCreatedAttribution\x12G\n\x06source\x18\x01 \x01(\x0e\x32\x37.whatsapp.StatusAttribution.AiCreatedAttribution.Source\")\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0eSTATUS_MIMICRY\x10\x01\x1a\xda\x02\n\rExternalShare\x12\x11\n\tactionUrl\x18\x01 \x01(\t\x12@\n\x06source\x18\x02 \x01(\x0e\x32\x30.whatsapp.StatusAttribution.ExternalShare.Source\x12\x10\n\x08\x64uration\x18\x03 \x01(\x05\x12\x19\n\x11\x61\x63tionFallbackUrl\x18\x04 \x01(\t\"\xc6\x01\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\r\n\tINSTAGRAM\x10\x01\x12\x0c\n\x08\x46\x41\x43\x45\x42OOK\x10\x02\x12\r\n\tMESSENGER\x10\x03\x12\x0b\n\x07SPOTIFY\x10\x04\x12\x0b\n\x07YOUTUBE\x10\x05\x12\r\n\tPINTEREST\x10\x06\x12\x0b\n\x07THREADS\x10\x07\x12\x0f\n\x0b\x41PPLE_MUSIC\x10\x08\x12\r\n\tSHARECHAT\x10\t\x12\x11\n\rGOOGLE_PHOTOS\x10\n\x12\x0e\n\nSOUNDCLOUD\x10\x0b\x12\n\n\x06SHAZAM\x10\x0c\x1a \n\x0bGroupStatus\x12\x11\n\tauthorJid\x18\x01 \x01(\t\x1ay\n\x05Music\x12\x12\n\nauthorName\x18\x01 \x01(\t\x12\x0e\n\x06songId\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x0e\n\x06\x61uthor\x18\x04 \x01(\t\x12\x19\n\x11\x61rtistAttribution\x18\x05 \x01(\t\x12\x12\n\nisExplicit\x18\x06 \x01(\x08\x1a\xb2\x01\n\rRLAttribution\x12@\n\x06source\x18\x01 \x01(\x0e\x32\x30.whatsapp.StatusAttribution.RLAttribution.Source\"_\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x18\n\x14RAY_BAN_META_GLASSES\x10\x01\x12\x17\n\x13OAKLEY_META_GLASSES\x10\x02\x12\x15\n\x11HYPERNOVA_GLASSES\x10\x03\x1a\xe4\x02\n\rStatusReshare\x12@\n\x06source\x18\x01 \x01(\x0e\x32\x30.whatsapp.StatusAttribution.StatusReshare.Source\x12\x44\n\x08metadata\x18\x02 \x01(\x0b\x32\x32.whatsapp.StatusAttribution.StatusReshare.Metadata\x1ag\n\x08Metadata\x12\x10\n\x08\x64uration\x18\x01 \x01(\x05\x12\x12\n\nchannelJid\x18\x02 \x01(\t\x12\x18\n\x10\x63hannelMessageId\x18\x03 \x01(\x05\x12\x1b\n\x13hasMultipleReshares\x18\x04 \x01(\x08\"b\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x14\n\x10INTERNAL_RESHARE\x10\x01\x12\x13\n\x0fMENTION_RESHARE\x10\x02\x12\x13\n\x0f\x43HANNEL_RESHARE\x10\x03\x12\x0b\n\x07\x46ORWARD\x10\x04\"\xdd\x01\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07RESHARE\x10\x01\x12\x12\n\x0e\x45XTERNAL_SHARE\x10\x02\x12\t\n\x05MUSIC\x10\x03\x12\x12\n\x0eSTATUS_MENTION\x10\x04\x12\x10\n\x0cGROUP_STATUS\x10\x05\x12\x12\n\x0eRL_ATTRIBUTION\x10\x06\x12\x0e\n\nAI_CREATED\x10\x07\x12\x0b\n\x07LAYOUTS\x10\x08\x12\x15\n\x11NEWSLETTER_STATUS\x10\t\x12\x18\n\x14STATUS_CLOSE_SHARING\x10\n\x12\x14\n\x10PAID_PARTNERSHIP\x10\x0b\x42\x11\n\x0f\x61ttributionData\"?\n\x14StatusMentionMessage\x12\'\n\x0cquotedStatus\x18\x01 \x01(\x0b\x32\x11.whatsapp.Message\"D\n\tStatusPSA\x12\x12\n\ncampaignId\x18, \x02(\x04\x12#\n\x1b\x63\x61mpaignExpirationTimestamp\x18- \x01(\x04\"\x9d\x02\n\x0fStickerMetadata\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\nfileSha256\x18\x02 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x03 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x10\n\x08mimetype\x18\x05 \x01(\t\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\r\n\x05width\x18\x07 \x01(\r\x12\x12\n\ndirectPath\x18\x08 \x01(\t\x12\x12\n\nfileLength\x18\t \x01(\x04\x12\x0e\n\x06weight\x18\n \x01(\x02\x12\x19\n\x11lastStickerSentTs\x18\x0b \x01(\x03\x12\x10\n\x08isLottie\x18\x0c \x01(\x08\x12\x11\n\timageHash\x18\r \x01(\t\x12\x17\n\x0fisAvatarSticker\x18\x0e \x01(\x08\"/\n\x0bSubProtocol\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\x0f\n\x07version\x18\x02 \x01(\x05\"k\n\x0eSyncActionData\x12\r\n\x05index\x18\x01 \x01(\x0c\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.whatsapp.SyncActionValue\x12\x0f\n\x07padding\x18\x03 \x01(\x0c\x12\x0f\n\x07version\x18\x04 \x01(\x05\"\xf9\x8e\x01\n\x0fSyncActionValue\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\x12\x38\n\nstarAction\x18\x02 \x01(\x0b\x32$.whatsapp.SyncActionValue.StarAction\x12>\n\rcontactAction\x18\x03 \x01(\x0b\x32\'.whatsapp.SyncActionValue.ContactAction\x12\x38\n\nmuteAction\x18\x04 \x01(\x0b\x32$.whatsapp.SyncActionValue.MuteAction\x12\x36\n\tpinAction\x18\x05 \x01(\x0b\x32#.whatsapp.SyncActionValue.PinAction\x12\x42\n\x0fpushNameSetting\x18\x07 \x01(\x0b\x32).whatsapp.SyncActionValue.PushNameSetting\x12\x44\n\x10quickReplyAction\x18\x08 \x01(\x0b\x32*.whatsapp.SyncActionValue.QuickReplyAction\x12T\n\x18recentEmojiWeightsAction\x18\x0b \x01(\x0b\x32\x32.whatsapp.SyncActionValue.RecentEmojiWeightsAction\x12\x42\n\x0flabelEditAction\x18\x0e \x01(\x0b\x32).whatsapp.SyncActionValue.LabelEditAction\x12P\n\x16labelAssociationAction\x18\x0f \x01(\x0b\x32\x30.whatsapp.SyncActionValue.LabelAssociationAction\x12>\n\rlocaleSetting\x18\x10 \x01(\x0b\x32\'.whatsapp.SyncActionValue.LocaleSetting\x12\x46\n\x11\x61rchiveChatAction\x18\x11 \x01(\x0b\x32+.whatsapp.SyncActionValue.ArchiveChatAction\x12T\n\x18\x64\x65leteMessageForMeAction\x18\x12 \x01(\x0b\x32\x32.whatsapp.SyncActionValue.DeleteMessageForMeAction\x12>\n\rkeyExpiration\x18\x13 \x01(\x0b\x32\'.whatsapp.SyncActionValue.KeyExpiration\x12L\n\x14markChatAsReadAction\x18\x14 \x01(\x0b\x32..whatsapp.SyncActionValue.MarkChatAsReadAction\x12\x42\n\x0f\x63learChatAction\x18\x15 \x01(\x0b\x32).whatsapp.SyncActionValue.ClearChatAction\x12\x44\n\x10\x64\x65leteChatAction\x18\x16 \x01(\x0b\x32*.whatsapp.SyncActionValue.DeleteChatAction\x12N\n\x15unarchiveChatsSetting\x18\x17 \x01(\x0b\x32/.whatsapp.SyncActionValue.UnarchiveChatsSetting\x12@\n\x0eprimaryFeature\x18\x18 \x01(\x0b\x32(.whatsapp.SyncActionValue.PrimaryFeature\x12V\n\x19\x61ndroidUnsupportedActions\x18\x1a \x01(\x0b\x32\x33.whatsapp.SyncActionValue.AndroidUnsupportedActions\x12:\n\x0b\x61gentAction\x18\x1b \x01(\x0b\x32%.whatsapp.SyncActionValue.AgentAction\x12H\n\x12subscriptionAction\x18\x1c \x01(\x0b\x32,.whatsapp.SyncActionValue.SubscriptionAction\x12L\n\x14userStatusMuteAction\x18\x1d \x01(\x0b\x32..whatsapp.SyncActionValue.UserStatusMuteAction\x12\x44\n\x10timeFormatAction\x18\x1e \x01(\x0b\x32*.whatsapp.SyncActionValue.TimeFormatAction\x12\x36\n\tnuxAction\x18\x1f \x01(\x0b\x32#.whatsapp.SyncActionValue.NuxAction\x12L\n\x14primaryVersionAction\x18 \x01(\x0b\x32..whatsapp.SyncActionValue.PrimaryVersionAction\x12>\n\rstickerAction\x18! \x01(\x0b\x32\'.whatsapp.SyncActionValue.StickerAction\x12V\n\x19removeRecentStickerAction\x18\" \x01(\x0b\x32\x33.whatsapp.SyncActionValue.RemoveRecentStickerAction\x12\x46\n\x0e\x63hatAssignment\x18# \x01(\x0b\x32..whatsapp.SyncActionValue.ChatAssignmentAction\x12^\n\x1a\x63hatAssignmentOpenedStatus\x18$ \x01(\x0b\x32:.whatsapp.SyncActionValue.ChatAssignmentOpenedStatusAction\x12H\n\x12pnForLidChatAction\x18% \x01(\x0b\x32,.whatsapp.SyncActionValue.PnForLidChatAction\x12P\n\x16marketingMessageAction\x18& \x01(\x0b\x32\x30.whatsapp.SyncActionValue.MarketingMessageAction\x12\x62\n\x1fmarketingMessageBroadcastAction\x18\' \x01(\x0b\x32\x39.whatsapp.SyncActionValue.MarketingMessageBroadcastAction\x12N\n\x15\x65xternalWebBetaAction\x18( \x01(\x0b\x32/.whatsapp.SyncActionValue.ExternalWebBetaAction\x12Z\n\x1bprivacySettingRelayAllCalls\x18) \x01(\x0b\x32\x35.whatsapp.SyncActionValue.PrivacySettingRelayAllCalls\x12>\n\rcallLogAction\x18* \x01(\x0b\x32\'.whatsapp.SyncActionValue.CallLogAction\x12\x30\n\x06ugcBot\x18+ \x01(\x0b\x32 .whatsapp.SyncActionValue.UGCBot\x12\x44\n\rstatusPrivacy\x18, \x01(\x0b\x32-.whatsapp.SyncActionValue.StatusPrivacyAction\x12R\n\x17\x62otWelcomeRequestAction\x18- \x01(\x0b\x32\x31.whatsapp.SyncActionValue.BotWelcomeRequestAction\x12X\n\x17\x64\x65leteIndividualCallLog\x18. \x01(\x0b\x32\x37.whatsapp.SyncActionValue.DeleteIndividualCallLogAction\x12N\n\x15labelReorderingAction\x18/ \x01(\x0b\x32/.whatsapp.SyncActionValue.LabelReorderingAction\x12\x46\n\x11paymentInfoAction\x18\x30 \x01(\x0b\x32+.whatsapp.SyncActionValue.PaymentInfoAction\x12X\n\x1a\x63ustomPaymentMethodsAction\x18\x31 \x01(\x0b\x32\x34.whatsapp.SyncActionValue.CustomPaymentMethodsAction\x12@\n\x0elockChatAction\x18\x32 \x01(\x0b\x32(.whatsapp.SyncActionValue.LockChatAction\x12\x34\n\x10\x63hatLockSettings\x18\x33 \x01(\x0b\x32\x1a.whatsapp.ChatLockSettings\x12T\n\x18wamoUserIdentifierAction\x18\x34 \x01(\x0b\x32\x32.whatsapp.SyncActionValue.WamoUserIdentifierAction\x12r\n\'privacySettingDisableLinkPreviewsAction\x18\x35 \x01(\x0b\x32\x41.whatsapp.SyncActionValue.PrivacySettingDisableLinkPreviewsAction\x12\x38\n\x12\x64\x65viceCapabilities\x18\x36 \x01(\x0b\x32\x1c.whatsapp.DeviceCapabilities\x12@\n\x0enoteEditAction\x18\x37 \x01(\x0b\x32(.whatsapp.SyncActionValue.NoteEditAction\x12\x42\n\x0f\x66\x61voritesAction\x18\x38 \x01(\x0b\x32).whatsapp.SyncActionValue.FavoritesAction\x12\\\n\x1cmerchantPaymentPartnerAction\x18\x39 \x01(\x0b\x32\x36.whatsapp.SyncActionValue.MerchantPaymentPartnerAction\x12\\\n\x1cwaffleAccountLinkStateAction\x18: \x01(\x0b\x32\x36.whatsapp.SyncActionValue.WaffleAccountLinkStateAction\x12T\n\x15usernameChatStartMode\x18; \x01(\x0b\x32\x35.whatsapp.SyncActionValue.UsernameChatStartModeAction\x12\x66\n!notificationActivitySettingAction\x18< \x01(\x0b\x32;.whatsapp.SyncActionValue.NotificationActivitySettingAction\x12\x44\n\x10lidContactAction\x18= \x01(\x0b\x32*.whatsapp.SyncActionValue.LidContactAction\x12\x64\n ctwaPerCustomerDataSharingAction\x18> \x01(\x0b\x32:.whatsapp.SyncActionValue.CtwaPerCustomerDataSharingAction\x12\x44\n\x10paymentTosAction\x18? \x01(\x0b\x32*.whatsapp.SyncActionValue.PaymentTosAction\x12\x90\x01\n6privacySettingChannelsPersonalisedRecommendationAction\x18@ \x01(\x0b\x32P.whatsapp.SyncActionValue.PrivacySettingChannelsPersonalisedRecommendationAction\x12\\\n\x1c\x64\x65tectedOutcomesStatusAction\x18\x42 \x01(\x0b\x32\x36.whatsapp.SyncActionValue.DetectedOutcomesStatusAction\x12\\\n\x1cmaibaAiFeaturesControlAction\x18\x44 \x01(\x0b\x32\x36.whatsapp.SyncActionValue.MaibaAIFeaturesControlAction\x12Z\n\x1b\x62usinessBroadcastListAction\x18\x45 \x01(\x0b\x32\x35.whatsapp.SyncActionValue.BusinessBroadcastListAction\x12\x46\n\x11musicUserIdAction\x18\x46 \x01(\x0b\x32+.whatsapp.SyncActionValue.MusicUserIdAction\x12|\n,statusPostOptInNotificationPreferencesAction\x18G \x01(\x0b\x32\x46.whatsapp.SyncActionValue.StatusPostOptInNotificationPreferencesAction\x12J\n\x13\x61vatarUpdatedAction\x18H \x01(\x0b\x32-.whatsapp.SyncActionValue.AvatarUpdatedAction\x12`\n\x1eprivateProcessingSettingAction\x18J \x01(\x0b\x32\x38.whatsapp.SyncActionValue.PrivateProcessingSettingAction\x12`\n\x1enewsletterSavedInterestsAction\x18K \x01(\x0b\x32\x38.whatsapp.SyncActionValue.NewsletterSavedInterestsAction\x12L\n\x14\x61iThreadRenameAction\x18L \x01(\x0b\x32..whatsapp.SyncActionValue.AiThreadRenameAction\x12T\n\x18interactiveMessageAction\x18M \x01(\x0b\x32\x32.whatsapp.SyncActionValue.InteractiveMessageAction\x12H\n\x12settingsSyncAction\x18N \x01(\x0b\x32,.whatsapp.SyncActionValue.SettingsSyncAction\x12\x44\n\x10outContactAction\x18O \x01(\x0b\x32*.whatsapp.SyncActionValue.OutContactAction\x12\x46\n\x11nctSaltSyncAction\x18P \x01(\x0b\x32+.whatsapp.SyncActionValue.NctSaltSyncAction\x12\x62\n\x1f\x62usinessBroadcastCampaignAction\x18Q \x01(\x0b\x32\x39.whatsapp.SyncActionValue.BusinessBroadcastCampaignAction\x12\x62\n\x1f\x62usinessBroadcastInsightsAction\x18R \x01(\x0b\x32\x39.whatsapp.SyncActionValue.BusinessBroadcastInsightsAction\x12H\n\x12\x63ustomerDataAction\x18S \x01(\x0b\x32,.whatsapp.SyncActionValue.CustomerDataAction\x12V\n\x19subscriptionsSyncV2Action\x18T \x01(\x0b\x32\x33.whatsapp.SyncActionValue.SubscriptionsSyncV2Action\x12\x42\n\x0fthreadPinAction\x18U \x01(\x0b\x32).whatsapp.SyncActionValue.ThreadPinAction\x12\x62\n\x1f\x61utoOrganizeBusinessChatSetting\x18V \x01(\x0b\x32\x39.whatsapp.SyncActionValue.AutoOrganizeBusinessChatSetting\x12T\n\x18\x62izAiSettingsNudgeAction\x18W \x01(\x0b\x32\x32.whatsapp.SyncActionValue.BizAISettingsNudgeAction\x1a@\n\x0b\x41gentAction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08\x64\x65viceID\x18\x02 \x01(\x05\x12\x11\n\tisDeleted\x18\x03 \x01(\x08\x1a(\n\x14\x41iThreadRenameAction\x12\x10\n\x08newTitle\x18\x01 \x01(\t\x1a,\n\x19\x41ndroidUnsupportedActions\x12\x0f\n\x07\x61llowed\x18\x01 \x01(\x08\x1am\n\x11\x41rchiveChatAction\x12\x10\n\x08\x61rchived\x18\x01 \x01(\x08\x12\x46\n\x0cmessageRange\x18\x02 \x01(\x0b\x32\x30.whatsapp.SyncActionValue.SyncActionMessageRange\x1a\x37\n\x1f\x41utoOrganizeBusinessChatSetting\x12\x14\n\x0c\x61utoOrganize\x18\x01 \x01(\x08\x1a\xe8\x01\n\x13\x41vatarUpdatedAction\x12P\n\teventType\x18\x01 \x01(\x0e\x32=.whatsapp.SyncActionValue.AvatarUpdatedAction.AvatarEventType\x12\x45\n\x14recentAvatarStickers\x18\x02 \x03(\x0b\x32\'.whatsapp.SyncActionValue.StickerAction\"8\n\x0f\x41vatarEventType\x12\x0b\n\x07UPDATED\x10\x00\x12\x0b\n\x07\x43REATED\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\x1a\xa0\x02\n\x18\x42izAISettingsNudgeAction\x12Z\n\x08\x63\x61tegory\x18\x01 \x01(\x0e\x32H.whatsapp.SyncActionValue.BizAISettingsNudgeAction.BizAISettingsCategory\x12\x0f\n\x07version\x18\x02 \x01(\x03\x12\x13\n\x0bupdatedAtMs\x18\x03 \x01(\x03\"\x81\x01\n\x15\x42izAISettingsCategory\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0cINSTRUCTIONS\x10\x01\x12\x15\n\x11RESPONSE_SETTINGS\x10\x02\x12\x15\n\x11\x45XAMPLE_RESPONSES\x10\x03\x12\r\n\tKNOWLEDGE\x10\x04\x12\x0c\n\x08LEAD_GEN\x10\x05\x1a)\n\x17\x42otWelcomeRequestAction\x12\x0e\n\x06isSent\x18\x01 \x01(\x08\x1a\x39\n\x18\x42roadcastListParticipant\x12\x0e\n\x06lidJid\x18\x01 \x02(\t\x12\r\n\x05pnJid\x18\x02 \x01(\t\x1a\x35\n\"BusinessBroadcastAssociationAction\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x08\x1a\x8b\x02\n\x1f\x42usinessBroadcastCampaignAction\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\x05\x12\x0c\n\x04\x61\x64Id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\r\n\x05msgId\x18\x04 \x01(\t\x12\x14\n\x0c\x62roadcastJid\x18\x05 \x01(\t\x12\x15\n\rreservedQuota\x18\x06 \x01(\x05\x12\x1a\n\x12scheduledTimestamp\x18\x07 \x01(\x03\x12\x17\n\x0f\x63reateTimestamp\x18\x08 \x01(\x03\x12I\n\x06status\x18\t \x01(\x0e\x32\x39.whatsapp.SyncActionValue.BusinessBroadcastCampaignStatus\x1a\x93\x01\n\x1f\x42usinessBroadcastInsightsAction\x12\x16\n\x0erecipientCount\x18\x01 \x01(\x05\x12\x16\n\x0e\x64\x65liveredCount\x18\x02 \x01(\x05\x12\x11\n\treadCount\x18\x03 \x01(\x05\x12\x14\n\x0crepliedCount\x18\x04 \x01(\x05\x12\x17\n\x0fquickReplyCount\x18\x05 \x01(\x05\x1a\xb8\x01\n\x1b\x42usinessBroadcastListAction\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x08\x12H\n\x0cparticipants\x18\x02 \x03(\x0b\x32\x32.whatsapp.SyncActionValue.BroadcastListParticipant\x12\x10\n\x08listName\x18\x03 \x01(\t\x12\x10\n\x08labelIds\x18\x04 \x03(\t\x12\x1a\n\x12\x61udienceExpression\x18\x05 \x01(\t\x1a?\n\rCallLogAction\x12.\n\rcallLogRecord\x18\x01 \x01(\x0b\x32\x17.whatsapp.CallLogRecord\x1a-\n\x14\x43hatAssignmentAction\x12\x15\n\rdeviceAgentID\x18\x01 \x01(\t\x1a\x36\n ChatAssignmentOpenedStatusAction\x12\x12\n\nchatOpened\x18\x01 \x01(\x08\x1aY\n\x0f\x43learChatAction\x12\x46\n\x0cmessageRange\x18\x01 \x01(\x0b\x32\x30.whatsapp.SyncActionValue.SyncActionMessageRange\x1a\x87\x01\n\rContactAction\x12\x10\n\x08\x66ullName\x18\x01 \x01(\t\x12\x11\n\tfirstName\x18\x02 \x01(\t\x12\x0e\n\x06lidJid\x18\x03 \x01(\t\x12 \n\x18saveOnPrimaryAddressbook\x18\x04 \x01(\x08\x12\r\n\x05pnJid\x18\x05 \x01(\t\x12\x10\n\x08username\x18\x06 \x01(\t\x1aO\n CtwaPerCustomerDataSharingAction\x12+\n#isCtwaPerCustomerDataSharingEnabled\x18\x01 \x01(\x08\x1a\x93\x01\n\x13\x43ustomPaymentMethod\x12\x14\n\x0c\x63redentialId\x18\x01 \x02(\t\x12\x0f\n\x07\x63ountry\x18\x02 \x02(\t\x12\x0c\n\x04type\x18\x03 \x02(\t\x12G\n\x08metadata\x18\x04 \x03(\x0b\x32\x35.whatsapp.SyncActionValue.CustomPaymentMethodMetadata\x1a\x39\n\x1b\x43ustomPaymentMethodMetadata\x12\x0b\n\x03key\x18\x01 \x02(\t\x12\r\n\x05value\x18\x02 \x02(\t\x1ai\n\x1a\x43ustomPaymentMethodsAction\x12K\n\x14\x63ustomPaymentMethods\x18\x01 \x03(\x0b\x32-.whatsapp.SyncActionValue.CustomPaymentMethod\x1a\xed\x01\n\x12\x43ustomerDataAction\x12\x0f\n\x07\x63hatJid\x18\x01 \x01(\t\x12\x13\n\x0b\x63ontactType\x18\x02 \x01(\x05\x12\r\n\x05\x65mail\x18\x03 \x01(\t\x12\x17\n\x0f\x61ltPhoneNumbers\x18\x04 \x01(\t\x12\x10\n\x08\x62irthday\x18\x05 \x01(\x03\x12\x0f\n\x07\x61\x64\x64ress\x18\x06 \x01(\t\x12\x19\n\x11\x61\x63quisitionSource\x18\x07 \x01(\x05\x12\x11\n\tleadStage\x18\x08 \x01(\x05\x12\x11\n\tlastOrder\x18\t \x01(\x03\x12\x11\n\tcreatedAt\x18\n \x01(\x03\x12\x12\n\nmodifiedAt\x18\x0b \x01(\x03\x1aZ\n\x10\x44\x65leteChatAction\x12\x46\n\x0cmessageRange\x18\x01 \x01(\x0b\x32\x30.whatsapp.SyncActionValue.SyncActionMessageRange\x1a\x44\n\x1d\x44\x65leteIndividualCallLogAction\x12\x0f\n\x07peerJid\x18\x01 \x01(\t\x12\x12\n\nisIncoming\x18\x02 \x01(\x08\x1aI\n\x18\x44\x65leteMessageForMeAction\x12\x13\n\x0b\x64\x65leteMedia\x18\x01 \x01(\x08\x12\x18\n\x10messageTimestamp\x18\x02 \x01(\x03\x1a\x31\n\x1c\x44\x65tectedOutcomesStatusAction\x12\x11\n\tisEnabled\x18\x01 \x01(\x08\x1a(\n\x15\x45xternalWebBetaAction\x12\x0f\n\x07isOptIn\x18\x01 \x01(\x08\x1ap\n\x0f\x46\x61voritesAction\x12\x45\n\tfavorites\x18\x01 \x03(\x0b\x32\x32.whatsapp.SyncActionValue.FavoritesAction.Favorite\x1a\x16\n\x08\x46\x61vorite\x12\n\n\x02id\x18\x01 \x01(\t\x1a\xb9\x01\n\x18InteractiveMessageAction\x12]\n\x04type\x18\x01 \x02(\x0e\x32O.whatsapp.SyncActionValue.InteractiveMessageAction.InteractiveMessageActionMode\x12\r\n\x05\x61gmId\x18\x02 \x01(\t\"/\n\x1cInteractiveMessageActionMode\x12\x0f\n\x0b\x44ISABLE_CTA\x10\x01\x1a(\n\rKeyExpiration\x12\x17\n\x0f\x65xpiredKeyEpoch\x18\x01 \x01(\x05\x1a@\n\x16LabelAssociationAction\x12\x0f\n\x07labeled\x18\x01 \x01(\x08\x12\x15\n\rmodelMetaData\x18\x02 \x01(\t\x1a\xdd\x03\n\x0fLabelEditAction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x63olor\x18\x02 \x01(\x05\x12\x14\n\x0cpredefinedId\x18\x03 \x01(\x05\x12\x0f\n\x07\x64\x65leted\x18\x04 \x01(\x08\x12\x12\n\norderIndex\x18\x05 \x01(\x05\x12\x10\n\x08isActive\x18\x06 \x01(\x08\x12@\n\x04type\x18\x07 \x01(\x0e\x32\x32.whatsapp.SyncActionValue.LabelEditAction.ListType\x12\x13\n\x0bisImmutable\x18\x08 \x01(\x08\x12\x15\n\rmuteEndTimeMs\x18\t \x01(\x03\"\xf1\x01\n\x08ListType\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06UNREAD\x10\x01\x12\n\n\x06GROUPS\x10\x02\x12\r\n\tFAVORITES\x10\x03\x12\x0e\n\nPREDEFINED\x10\x04\x12\n\n\x06\x43USTOM\x10\x05\x12\r\n\tCOMMUNITY\x10\x06\x12\x13\n\x0fSERVER_ASSIGNED\x10\x07\x12\x0b\n\x07\x44RAFTED\x10\x08\x12\x0e\n\nAI_HANDOFF\x10\t\x12\x0c\n\x08\x43HANNELS\x10\n\x12\x11\n\rAI_RESPONDING\x10\x0b\x12\x0c\n\x08\x41RCHIVED\x10\x0c\x12\n\n\x06LOCKED\x10\r\x12\x0b\n\x07INVITES\x10\x0e\x12\x0f\n\x0bTHIRD_PARTY\x10\x0f\x1a/\n\x15LabelReorderingAction\x12\x16\n\x0esortedLabelIds\x18\x01 \x03(\x05\x1aI\n\x10LidContactAction\x12\x10\n\x08\x66ullName\x18\x01 \x01(\t\x12\x11\n\tfirstName\x18\x02 \x01(\t\x12\x10\n\x08username\x18\x03 \x01(\t\x1a\x1f\n\rLocaleSetting\x12\x0e\n\x06locale\x18\x01 \x01(\t\x1a \n\x0eLockChatAction\x12\x0e\n\x06locked\x18\x01 \x01(\x08\x1a\xed\x02\n\x1cMaibaAIFeaturesControlAction\x12\x64\n\x0f\x61iFeatureStatus\x18\x01 \x01(\x0e\x32K.whatsapp.SyncActionValue.MaibaAIFeaturesControlAction.MaibaAIFeatureStatus\x12\\\n\x0b\x61iReplyMode\x18\x02 \x01(\x0e\x32G.whatsapp.SyncActionValue.MaibaAIFeaturesControlAction.MaibaAIReplyMode\"K\n\x14MaibaAIFeatureStatus\x12\x0b\n\x07\x45NABLED\x10\x00\x12\x18\n\x14\x45NABLED_HAS_LEARNING\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\"<\n\x10MaibaAIReplyMode\x12\t\n\x05MUTED\x10\x00\x12\x0c\n\x08\x41I_AGENT\x10\x01\x12\x0f\n\x0bSUGGESTIONS\x10\x02\x1al\n\x14MarkChatAsReadAction\x12\x0c\n\x04read\x18\x01 \x01(\x08\x12\x46\n\x0cmessageRange\x18\x02 \x01(\x0b\x32\x30.whatsapp.SyncActionValue.SyncActionMessageRange\x1a\x93\x02\n\x16MarketingMessageAction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\\\n\x04type\x18\x03 \x01(\x0e\x32N.whatsapp.SyncActionValue.MarketingMessageAction.MarketingMessagePrototypeType\x12\x11\n\tcreatedAt\x18\x04 \x01(\x03\x12\x12\n\nlastSentAt\x18\x05 \x01(\x03\x12\x11\n\tisDeleted\x18\x06 \x01(\x08\x12\x0f\n\x07mediaId\x18\x07 \x01(\t\"1\n\x1dMarketingMessagePrototypeType\x12\x10\n\x0cPERSONALIZED\x10\x00\x1a\x37\n\x1fMarketingMessageBroadcastAction\x12\x14\n\x0crepliedCount\x18\x01 \x01(\x05\x1a\xcd\x01\n\x1cMerchantPaymentPartnerAction\x12M\n\x06status\x18\x01 \x02(\x0e\x32=.whatsapp.SyncActionValue.MerchantPaymentPartnerAction.Status\x12\x0f\n\x07\x63ountry\x18\x02 \x02(\t\x12\x13\n\x0bgatewayName\x18\x03 \x01(\t\x12\x14\n\x0c\x63redentialId\x18\x04 \x01(\t\"\"\n\x06Status\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08INACTIVE\x10\x01\x1a\xbb\x01\n\x11MusicUserIdAction\x12\x13\n\x0bmusicUserId\x18\x01 \x01(\t\x12Z\n\x11music_user_id_map\x18\x02 \x03(\x0b\x32?.whatsapp.SyncActionValue.MusicUserIdAction.MusicUserIdMapEntry\x1a\x35\n\x13MusicUserIdMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aq\n\nMuteAction\x12\r\n\x05muted\x18\x01 \x01(\x08\x12\x18\n\x10muteEndTimestamp\x18\x02 \x01(\x03\x12\x11\n\tautoMuted\x18\x03 \x01(\x08\x12\'\n\x1fmuteEveryoneMentionEndTimestamp\x18\x04 \x01(\x03\x1a!\n\x11NctSaltSyncAction\x12\x0c\n\x04salt\x18\x01 \x01(\x0c\x1a\x42\n\x1eNewsletterSavedInterestsAction\x12 \n\x18newsletterSavedInterests\x18\x01 \x01(\t\x1a\xd1\x01\n\x0eNoteEditAction\x12?\n\x04type\x18\x01 \x01(\x0e\x32\x31.whatsapp.SyncActionValue.NoteEditAction.NoteType\x12\x0f\n\x07\x63hatJid\x18\x02 \x01(\t\x12\x11\n\tcreatedAt\x18\x03 \x01(\x03\x12\x0f\n\x07\x64\x65leted\x18\x04 \x01(\x08\x12\x1b\n\x13unstructuredContent\x18\x05 \x01(\t\",\n\x08NoteType\x12\x10\n\x0cUNSTRUCTURED\x10\x01\x12\x0e\n\nSTRUCTURED\x10\x02\x1a\x94\x02\n!NotificationActivitySettingAction\x12|\n\x1bnotificationActivitySetting\x18\x01 \x01(\x0e\x32W.whatsapp.SyncActionValue.NotificationActivitySettingAction.NotificationActivitySetting\"q\n\x1bNotificationActivitySetting\x12\x18\n\x14\x44\x45\x46\x41ULT_ALL_MESSAGES\x10\x00\x12\x10\n\x0c\x41LL_MESSAGES\x10\x01\x12\x0e\n\nHIGHLIGHTS\x10\x02\x12\x16\n\x12\x44\x45\x46\x41ULT_HIGHLIGHTS\x10\x03\x1a!\n\tNuxAction\x12\x14\n\x0c\x61\x63knowledged\x18\x01 \x01(\x08\x1a\x37\n\x10OutContactAction\x12\x10\n\x08\x66ullName\x18\x01 \x01(\t\x12\x11\n\tfirstName\x18\x02 \x01(\t\x1a \n\x11PaymentInfoAction\x12\x0b\n\x03\x63pi\x18\x01 \x01(\t\x1a\xa1\x01\n\x10PaymentTosAction\x12O\n\rpaymentNotice\x18\x01 \x02(\x0e\x32\x38.whatsapp.SyncActionValue.PaymentTosAction.PaymentNotice\x12\x10\n\x08\x61\x63\x63\x65pted\x18\x02 \x02(\x08\"*\n\rPaymentNotice\x12\x19\n\x15\x42R_PAY_PRIVACY_POLICY\x10\x00\x1a\x1b\n\tPinAction\x12\x0e\n\x06pinned\x18\x01 \x01(\x08\x1a#\n\x12PnForLidChatAction\x12\r\n\x05pnJid\x18\x01 \x01(\t\x1a\x1f\n\x0ePrimaryFeature\x12\r\n\x05\x66lags\x18\x01 \x03(\t\x1a\'\n\x14PrimaryVersionAction\x12\x0f\n\x07version\x18\x01 \x01(\t\x1aP\n6PrivacySettingChannelsPersonalisedRecommendationAction\x12\x16\n\x0eisUserOptedOut\x18\x01 \x01(\x08\x1a\x45\n\'PrivacySettingDisableLinkPreviewsAction\x12\x1a\n\x12isPreviewsDisabled\x18\x01 \x01(\x08\x1a\x30\n\x1bPrivacySettingRelayAllCalls\x12\x11\n\tisEnabled\x18\x01 \x01(\x08\x1a\xd8\x01\n\x1ePrivateProcessingSettingAction\x12q\n\x17privateProcessingStatus\x18\x01 \x01(\x0e\x32P.whatsapp.SyncActionValue.PrivateProcessingSettingAction.PrivateProcessingStatus\"C\n\x17PrivateProcessingStatus\x12\r\n\tUNDEFINED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\x1a\x1f\n\x0fPushNameSetting\x12\x0c\n\x04name\x18\x01 \x01(\t\x1a\x83\x01\n\x10QuickReplyAction\x12\x10\n\x08shortcut\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x10\n\x08keywords\x18\x03 \x03(\t\x12\r\n\x05\x63ount\x18\x04 \x01(\x05\x12\x0f\n\x07\x64\x65leted\x18\x05 \x01(\x08\x12\x1a\n\x12\x61ssociatedLabelIds\x18\x06 \x03(\t\x1aH\n\x18RecentEmojiWeightsAction\x12,\n\x07weights\x18\x01 \x03(\x0b\x32\x1b.whatsapp.RecentEmojiWeight\x1a\x36\n\x19RemoveRecentStickerAction\x12\x19\n\x11lastStickerSentTs\x18\x01 \x01(\x03\x1a\xbe\x14\n\x12SettingsSyncAction\x12\x14\n\x0cstartAtLogin\x18\x01 \x01(\x08\x12\x16\n\x0eminimizeToTray\x18\x02 \x01(\x08\x12\x10\n\x08language\x18\x03 \x01(\t\x12\x1c\n\x14replaceTextWithEmoji\x18\x04 \x01(\x08\x12_\n\x1d\x62\x61nnerNotificationDisplayMode\x18\x05 \x01(\x0e\x32\x38.whatsapp.SyncActionValue.SettingsSyncAction.DisplayMode\x12_\n\x1dunreadCounterBadgeDisplayMode\x18\x06 \x01(\x0e\x32\x38.whatsapp.SyncActionValue.SettingsSyncAction.DisplayMode\x12%\n\x1disMessagesNotificationEnabled\x18\x07 \x01(\x08\x12\"\n\x1aisCallsNotificationEnabled\x18\x08 \x01(\x08\x12&\n\x1eisReactionsNotificationEnabled\x18\t \x01(\x08\x12,\n$isStatusReactionsNotificationEnabled\x18\n \x01(\x08\x12+\n#isTextPreviewForNotificationEnabled\x18\x0b \x01(\x08\x12!\n\x19\x64\x65\x66\x61ultNotificationToneId\x18\x0c \x01(\x05\x12&\n\x1egroupDefaultNotificationToneId\x18\r \x01(\x05\x12\x10\n\x08\x61ppTheme\x18\x0e \x01(\x05\x12\x13\n\x0bwallpaperId\x18\x0f \x01(\x05\x12 \n\x18isDoodleWallpaperEnabled\x18\x10 \x01(\x08\x12\x10\n\x08\x66ontSize\x18\x11 \x01(\x05\x12#\n\x1bisPhotosAutodownloadEnabled\x18\x12 \x01(\x08\x12#\n\x1bisAudiosAutodownloadEnabled\x18\x13 \x01(\x08\x12#\n\x1bisVideosAutodownloadEnabled\x18\x14 \x01(\x08\x12&\n\x1eisDocumentsAutodownloadEnabled\x18\x15 \x01(\x08\x12\x1b\n\x13\x64isableLinkPreviews\x18\x16 \x01(\x08\x12\x1a\n\x12notificationToneId\x18\x17 \x01(\x05\x12\\\n\x12mediaUploadQuality\x18\x18 \x01(\x0e\x32@.whatsapp.SyncActionValue.SettingsSyncAction.MediaQualitySetting\x12\x1b\n\x13isSpellCheckEnabled\x18\x19 \x01(\x08\x12\x1c\n\x14isEnterToSendEnabled\x18\x1a \x01(\x08\x12)\n!isGroupMessageNotificationEnabled\x18\x1b \x01(\x08\x12+\n#isGroupReactionsNotificationEnabled\x18\x1c \x01(\x08\x12#\n\x1bisStatusNotificationEnabled\x18\x1d \x01(\x08\x12 \n\x18statusNotificationToneId\x18\x1e \x01(\x05\x12*\n\"shouldPlaySoundForCallNotification\x18\x1f \x01(\x08\x12\x13\n\x0b\x63hatThemeId\x18 \x01(\t\x12\x15\n\rcolorSchemeId\x18! \x01(\t\"Y\n\x0b\x44isplayMode\x12\x18\n\x14\x44ISPLAY_MODE_UNKNOWN\x10\x00\x12\n\n\x06\x41LWAYS\x10\x01\x12\t\n\x05NEVER\x10\x02\x12\x19\n\x15ONLY_WHEN_APP_IS_OPEN\x10\x03\"F\n\x13MediaQualitySetting\x12\x19\n\x15MEDIA_QUALITY_UNKNOWN\x10\x00\x12\x0c\n\x08STANDARD\x10\x01\x12\x06\n\x02HD\x10\x02\"\xbc\x08\n\nSettingKey\x12\x17\n\x13SETTING_KEY_UNKNOWN\x10\x00\x12\x12\n\x0eSTART_AT_LOGIN\x10\x01\x12\x14\n\x10MINIMIZE_TO_TRAY\x10\x02\x12\x0c\n\x08LANGUAGE\x10\x03\x12\x1b\n\x17REPLACE_TEXT_WITH_EMOJI\x10\x04\x12$\n BANNER_NOTIFICATION_DISPLAY_MODE\x10\x05\x12%\n!UNREAD_COUNTER_BADGE_DISPLAY_MODE\x10\x06\x12$\n IS_MESSAGES_NOTIFICATION_ENABLED\x10\x07\x12!\n\x1dIS_CALLS_NOTIFICATION_ENABLED\x10\x08\x12%\n!IS_REACTIONS_NOTIFICATION_ENABLED\x10\t\x12,\n(IS_STATUS_REACTIONS_NOTIFICATION_ENABLED\x10\n\x12,\n(IS_TEXT_PREVIEW_FOR_NOTIFICATION_ENABLED\x10\x0b\x12 \n\x1c\x44\x45\x46\x41ULT_NOTIFICATION_TONE_ID\x10\x0c\x12&\n\"GROUP_DEFAULT_NOTIFICATION_TONE_ID\x10\r\x12\r\n\tAPP_THEME\x10\x0e\x12\x10\n\x0cWALLPAPER_ID\x10\x0f\x12\x1f\n\x1bIS_DOODLE_WALLPAPER_ENABLED\x10\x10\x12\r\n\tFONT_SIZE\x10\x11\x12\"\n\x1eIS_PHOTOS_AUTODOWNLOAD_ENABLED\x10\x12\x12\"\n\x1eIS_AUDIOS_AUTODOWNLOAD_ENABLED\x10\x13\x12\"\n\x1eIS_VIDEOS_AUTODOWNLOAD_ENABLED\x10\x14\x12%\n!IS_DOCUMENTS_AUTODOWNLOAD_ENABLED\x10\x15\x12\x19\n\x15\x44ISABLE_LINK_PREVIEWS\x10\x16\x12\x18\n\x14NOTIFICATION_TONE_ID\x10\x17\x12\x18\n\x14MEDIA_UPLOAD_QUALITY\x10\x18\x12\x1a\n\x16IS_SPELL_CHECK_ENABLED\x10\x19\x12\x1c\n\x18IS_ENTER_TO_SEND_ENABLED\x10\x1a\x12)\n%IS_GROUP_MESSAGE_NOTIFICATION_ENABLED\x10\x1b\x12+\n\'IS_GROUP_REACTIONS_NOTIFICATION_ENABLED\x10\x1c\x12\"\n\x1eIS_STATUS_NOTIFICATION_ENABLED\x10\x1d\x12\x1f\n\x1bSTATUS_NOTIFICATION_TONE_ID\x10\x1e\x12+\n\'SHOULD_PLAY_SOUND_FOR_CALL_NOTIFICATION\x10\x1f\x12\x11\n\rCHAT_THEME_ID\x10 \x12\x13\n\x0f\x43OLOR_SCHEME_ID\x10!\"R\n\x0fSettingPlatform\x12\x14\n\x10PLATFORM_UNKNOWN\x10\x00\x12\x07\n\x03WEB\x10\x01\x12\n\n\x06HYBRID\x10\x02\x12\x0b\n\x07WINDOWS\x10\x03\x12\x07\n\x03MAC\x10\x04\x1a\x1d\n\nStarAction\x12\x0f\n\x07starred\x18\x01 \x01(\x08\x1a?\n,StatusPostOptInNotificationPreferencesAction\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x1a\x8f\x04\n\x13StatusPrivacyAction\x12R\n\x04mode\x18\x01 \x01(\x0e\x32\x44.whatsapp.SyncActionValue.StatusPrivacyAction.StatusDistributionMode\x12\x0f\n\x07userJid\x18\x02 \x03(\t\x12\x11\n\tshareToFB\x18\x03 \x01(\x08\x12\x11\n\tshareToIG\x18\x04 \x01(\x08\x12M\n\x0b\x63ustomLists\x18\x05 \x03(\x0b\x32\x38.whatsapp.SyncActionValue.StatusPrivacyAction.CustomList\x12S\n\x05modes\x18\x06 \x03(\x0e\x32\x44.whatsapp.SyncActionValue.StatusPrivacyAction.StatusDistributionMode\x1a^\n\nCustomList\x12\x0e\n\x06listId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05\x65moji\x18\x03 \x01(\t\x12\x12\n\nisSelected\x18\x04 \x01(\x08\x12\x0f\n\x07userJid\x18\x05 \x03(\t\"i\n\x16StatusDistributionMode\x12\x0e\n\nALLOW_LIST\x10\x00\x12\r\n\tDENY_LIST\x10\x01\x12\x0c\n\x08\x43ONTACTS\x10\x02\x12\x11\n\rCLOSE_FRIENDS\x10\x03\x12\x0f\n\x0b\x43USTOM_LIST\x10\x04\x1a\x86\x02\n\rStickerAction\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x15\n\rfileEncSha256\x18\x02 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x03 \x01(\x0c\x12\x10\n\x08mimetype\x18\x04 \x01(\t\x12\x0e\n\x06height\x18\x05 \x01(\r\x12\r\n\x05width\x18\x06 \x01(\r\x12\x12\n\ndirectPath\x18\x07 \x01(\t\x12\x12\n\nfileLength\x18\x08 \x01(\x04\x12\x12\n\nisFavorite\x18\t \x01(\x08\x12\x14\n\x0c\x64\x65viceIdHint\x18\n \x01(\r\x12\x10\n\x08isLottie\x18\x0b \x01(\x08\x12\x11\n\timageHash\x18\x0c \x01(\t\x12\x17\n\x0fisAvatarSticker\x18\r \x01(\x08\x1a[\n\x12SubscriptionAction\x12\x15\n\risDeactivated\x18\x01 \x01(\x08\x12\x16\n\x0eisAutoRenewing\x18\x02 \x01(\x08\x12\x16\n\x0e\x65xpirationDate\x18\x03 \x01(\x03\x1a\xc7\x03\n\x19SubscriptionsSyncV2Action\x12[\n\rsubscriptions\x18\x01 \x03(\x0b\x32\x44.whatsapp.SyncActionValue.SubscriptionsSyncV2Action.SubscriptionInfo\x12T\n\x0bpaidFeature\x18\x02 \x03(\x0b\x32?.whatsapp.SyncActionValue.SubscriptionsSyncV2Action.PaidFeature\x1aS\n\x0bPaidFeature\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\x12\r\n\x05limit\x18\x03 \x01(\x05\x12\x16\n\x0e\x65xpirationTime\x18\x04 \x01(\x03\x1a\xa1\x01\n\x10SubscriptionInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04tier\x18\x02 \x01(\x05\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x11\n\tstartTime\x18\x04 \x01(\x03\x12\x0f\n\x07\x65ndTime\x18\x05 \x01(\x03\x12\x19\n\x11isPlatformChanged\x18\x06 \x01(\x08\x12\x0e\n\x06source\x18\x07 \x01(\t\x12\x14\n\x0c\x63reationTime\x18\x08 \x01(\x03\x1aI\n\x11SyncActionMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\x1a\x99\x01\n\x16SyncActionMessageRange\x12\x1c\n\x14lastMessageTimestamp\x18\x01 \x01(\x03\x12\"\n\x1alastSystemMessageTimestamp\x18\x02 \x01(\x03\x12=\n\x08messages\x18\x03 \x03(\x0b\x32+.whatsapp.SyncActionValue.SyncActionMessage\x1a!\n\x0fThreadPinAction\x12\x0e\n\x06pinned\x18\x01 \x01(\x08\x1a\x39\n\x10TimeFormatAction\x12%\n\x1disTwentyFourHourFormatEnabled\x18\x01 \x01(\x08\x1a\x1c\n\x06UGCBot\x12\x12\n\ndefinition\x18\x01 \x01(\x0c\x1a/\n\x15UnarchiveChatsSetting\x12\x16\n\x0eunarchiveChats\x18\x01 \x01(\x08\x1a%\n\x14UserStatusMuteAction\x12\r\n\x05muted\x18\x01 \x01(\x08\x1a\x9b\x01\n\x1bUsernameChatStartModeAction\x12Z\n\rchatStartMode\x18\x01 \x01(\x0e\x32\x43.whatsapp.SyncActionValue.UsernameChatStartModeAction.ChatStartMode\" \n\rChatStartMode\x12\x07\n\x03LID\x10\x01\x12\x06\n\x02PN\x10\x02\x1a\xb4\x01\n\x1cWaffleAccountLinkStateAction\x12Z\n\tlinkState\x18\x02 \x01(\x0e\x32G.whatsapp.SyncActionValue.WaffleAccountLinkStateAction.AccountLinkState\"8\n\x10\x41\x63\x63ountLinkState\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\n\n\x06PAUSED\x10\x01\x12\x0c\n\x08UNLINKED\x10\x02\x1a.\n\x18WamoUserIdentifierAction\x12\x12\n\nidentifier\x18\x01 \x01(\t\"a\n\x1f\x42usinessBroadcastCampaignStatus\x12\t\n\x05\x44RAFT\x10\x01\x12\r\n\tSCHEDULED\x10\x02\x12\x0e\n\nPROCESSING\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\x08\n\x04SENT\x10\x05\"\x1a\n\nSyncdIndex\x12\x0c\n\x04\x62lob\x18\x01 \x01(\x0c\"\x98\x01\n\rSyncdMutation\x12\x39\n\toperation\x18\x01 \x01(\x0e\x32&.whatsapp.SyncdMutation.SyncdOperation\x12%\n\x06record\x18\x02 \x01(\x0b\x32\x15.whatsapp.SyncdRecord\"%\n\x0eSyncdOperation\x12\x07\n\x03SET\x10\x00\x12\n\n\x06REMOVE\x10\x01\"<\n\x0eSyncdMutations\x12*\n\tmutations\x18\x01 \x03(\x0b\x32\x17.whatsapp.SyncdMutation\"\xb8\x02\n\nSyncdPatch\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x16.whatsapp.SyncdVersion\x12*\n\tmutations\x18\x02 \x03(\x0b\x32\x17.whatsapp.SyncdMutation\x12:\n\x11\x65xternalMutations\x18\x03 \x01(\x0b\x32\x1f.whatsapp.ExternalBlobReference\x12\x13\n\x0bsnapshotMac\x18\x04 \x01(\x0c\x12\x10\n\x08patchMac\x18\x05 \x01(\x0c\x12\x1e\n\x05keyId\x18\x06 \x01(\x0b\x32\x0f.whatsapp.KeyId\x12$\n\x08\x65xitCode\x18\x07 \x01(\x0b\x32\x12.whatsapp.ExitCode\x12\x13\n\x0b\x64\x65viceIndex\x18\x08 \x01(\r\x12\x17\n\x0f\x63lientDebugData\x18\t \x01(\x0c\"[\n\x14SyncdPlainTextRecord\x12\'\n\x05value\x18\x01 \x01(\x0b\x32\x18.whatsapp.SyncActionData\x12\r\n\x05keyId\x18\x02 \x01(\x0c\x12\x0b\n\x03mac\x18\x03 \x01(\x0c\"w\n\x0bSyncdRecord\x12#\n\x05index\x18\x01 \x01(\x0b\x32\x14.whatsapp.SyncdIndex\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.whatsapp.SyncdValue\x12\x1e\n\x05keyId\x18\x03 \x01(\x0b\x32\x0f.whatsapp.KeyId\"\x8d\x01\n\rSyncdSnapshot\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x16.whatsapp.SyncdVersion\x12&\n\x07records\x18\x02 \x03(\x0b\x32\x15.whatsapp.SyncdRecord\x12\x0b\n\x03mac\x18\x03 \x01(\x0c\x12\x1e\n\x05keyId\x18\x04 \x01(\x0b\x32\x0f.whatsapp.KeyId\"\xab\x01\n\x15SyncdSnapshotRecovery\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x16.whatsapp.SyncdVersion\x12\x16\n\x0e\x63ollectionName\x18\x02 \x01(\t\x12\x37\n\x0fmutationRecords\x18\x03 \x03(\x0b\x32\x1e.whatsapp.SyncdPlainTextRecord\x12\x18\n\x10\x63ollectionLthash\x18\x04 \x01(\x0c\"\x1a\n\nSyncdValue\x12\x0c\n\x04\x62lob\x18\x01 \x01(\x0c\"\x1f\n\x0cSyncdVersion\x12\x0f\n\x07version\x18\x01 \x01(\x04\".\n\rTapLinkAction\x12\r\n\x05title\x18\x01 \x01(\t\x12\x0e\n\x06tapUrl\x18\x02 \x01(\t\"\xd9\x04\n\x0eTemplateButton\x12\r\n\x05index\x18\x04 \x01(\r\x12\x45\n\x10quickReplyButton\x18\x01 \x01(\x0b\x32).whatsapp.TemplateButton.QuickReplyButtonH\x00\x12\x37\n\turlButton\x18\x02 \x01(\x0b\x32\".whatsapp.TemplateButton.URLButtonH\x00\x12\x39\n\ncallButton\x18\x03 \x01(\x0b\x32#.whatsapp.TemplateButton.CallButtonH\x00\x1a\x8c\x01\n\nCallButton\x12>\n\x0b\x64isplayText\x18\x01 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12>\n\x0bphoneNumber\x18\x02 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x1a^\n\x10QuickReplyButton\x12>\n\x0b\x64isplayText\x18\x01 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12\n\n\x02id\x18\x02 \x01(\t\x1a\x83\x01\n\tURLButton\x12>\n\x0b\x64isplayText\x18\x01 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12\x36\n\x03url\x18\x02 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessageB\x08\n\x06\x62utton\"\xa2\x01\n\x08ThreadID\x12\x31\n\nthreadType\x18\x01 \x01(\x0e\x32\x1d.whatsapp.ThreadID.ThreadType\x12\'\n\tthreadKey\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\":\n\nThreadType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0cVIEW_REPLIES\x10\x01\x12\r\n\tAI_THREAD\x10\x02\"\xc0\x01\n\x1eUnCountedAssociatedMessageList\x12*\n\x08messages\x18\x01 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\x12+\n\rparentMessage\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x45\n\x0f\x61ssociationType\x18\x03 \x01(\x0e\x32,.whatsapp.MessageAssociation.AssociationType\"\x99\x01\n.UnCountedAssociatedMessageListWithMessageBytes\x12:\n\x08messages\x18\x01 \x03(\x0b\x32(.whatsapp.WebMessageInfoWithMessageBytes\x12+\n\rparentMessage\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\"\xd9\x01\n\x0eUrlTrackingMap\x12N\n\x16urlTrackingMapElements\x18\x01 \x03(\x0b\x32..whatsapp.UrlTrackingMap.UrlTrackingMapElement\x1aw\n\x15UrlTrackingMapElement\x12\x13\n\x0boriginalUrl\x18\x01 \x01(\t\x12\x1b\n\x13unconsentedUsersUrl\x18\x02 \x01(\t\x12\x19\n\x11\x63onsentedUsersUrl\x18\x03 \x01(\t\x12\x11\n\tcardIndex\x18\x04 \x01(\r\"\xdf\x03\n\x0cUserPassword\x12\x31\n\x08\x65ncoding\x18\x01 \x01(\x0e\x32\x1f.whatsapp.UserPassword.Encoding\x12\x37\n\x0btransformer\x18\x02 \x01(\x0e\x32\".whatsapp.UserPassword.Transformer\x12=\n\x0etransformerArg\x18\x03 \x03(\x0b\x32%.whatsapp.UserPassword.TransformerArg\x12\x17\n\x0ftransformedData\x18\x04 \x01(\x0c\x1a\x9a\x01\n\x0eTransformerArg\x12\x0b\n\x03key\x18\x01 \x01(\t\x12:\n\x05value\x18\x02 \x01(\x0b\x32+.whatsapp.UserPassword.TransformerArg.Value\x1a?\n\x05Value\x12\x10\n\x06\x61sBlob\x18\x01 \x01(\x0cH\x00\x12\x1b\n\x11\x61sUnsignedInteger\x18\x02 \x01(\rH\x00\x42\x07\n\x05value\"%\n\x08\x45ncoding\x12\x08\n\x04UTF8\x10\x00\x12\x0f\n\x0bUTF8_BROKEN\x10\x01\"G\n\x0bTransformer\x12\x08\n\x04NONE\x10\x00\x12\x16\n\x12PBKDF2_HMAC_SHA512\x10\x01\x12\x16\n\x12PBKDF2_HMAC_SHA384\x10\x02\"\x9e\x01\n\x0bUserReceipt\x12\x0f\n\x07userJid\x18\x01 \x02(\t\x12\x18\n\x10receiptTimestamp\x18\x02 \x01(\x03\x12\x15\n\rreadTimestamp\x18\x03 \x01(\x03\x12\x17\n\x0fplayedTimestamp\x18\x04 \x01(\x03\x12\x18\n\x10pendingDeviceJid\x18\x05 \x03(\t\x12\x1a\n\x12\x64\x65liveredDeviceJid\x18\x06 \x03(\t\"\xdc\x01\n\x17VerifiedNameCertificate\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x17\n\x0fserverSignature\x18\x03 \x01(\x0c\x1a\x83\x01\n\x07\x44\x65tails\x12\x0e\n\x06serial\x18\x01 \x01(\x04\x12\x0e\n\x06issuer\x18\x02 \x01(\t\x12\x14\n\x0cverifiedName\x18\x04 \x01(\t\x12/\n\x0elocalizedNames\x18\x08 \x03(\x0b\x32\x17.whatsapp.LocalizedName\x12\x11\n\tissueTime\x18\n \x01(\x04\"G\n\x11WallpaperSettings\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0f\n\x07opacity\x18\x02 \x01(\r\x12\x0f\n\x07isGenAi\x18\x03 \x01(\x08\"\xe2\x13\n\x0bWebFeatures\x12\x31\n\rlabelsDisplay\x18\x01 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12:\n\x16voipIndividualOutgoing\x18\x02 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12,\n\x08groupsV3\x18\x03 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x32\n\x0egroupsV3Create\x18\x04 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x32\n\x0e\x63hangeNumberV2\x18\x05 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12:\n\x16queryStatusV3Thumbnail\x18\x06 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x31\n\rliveLocations\x18\x07 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12.\n\nqueryVname\x18\x08 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12:\n\x16voipIndividualIncoming\x18\t \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x35\n\x11quickRepliesQuery\x18\n \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12,\n\x08payments\x18\x0b \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10stickerPackQuery\x18\x0c \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x36\n\x12liveLocationsFinal\x18\r \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12.\n\nlabelsEdit\x18\x0e \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12/\n\x0bmediaUpload\x18\x0f \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12?\n\x1bmediaUploadRichQuickReplies\x18\x12 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12+\n\x07vnameV2\x18\x13 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10videoPlaybackUrl\x18\x14 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x31\n\rstatusRanking\x18\x15 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x37\n\x13voipIndividualVideo\x18\x16 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x36\n\x12thirdPartyStickers\x18\x17 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12>\n\x1a\x66requentlyForwardedSetting\x18\x18 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12:\n\x16groupsV4JoinPermission\x18\x19 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x32\n\x0erecentStickers\x18\x1a \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12+\n\x07\x63\x61talog\x18\x1b \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x33\n\x0fstarredStickers\x18\x1c \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x31\n\rvoipGroupCall\x18\x1d \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x33\n\x0ftemplateMessage\x18\x1e \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12@\n\x1ctemplateMessageInteractivity\x18\x1f \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x35\n\x11\x65phemeralMessages\x18 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x37\n\x13\x65\x32\x45NotificationSync\x18! \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10recentStickersV2\x18\" \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10recentStickersV3\x18$ \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12.\n\nuserNotice\x18% \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12+\n\x07support\x18\' \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x33\n\x0fgroupUiiCleanup\x18( \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12?\n\x1bgroupDogfoodingInternalOnly\x18) \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x30\n\x0csettingsSync\x18* \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12-\n\tarchiveV2\x18+ \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12>\n\x1a\x65phemeralAllowGroupMembers\x18, \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x38\n\x14\x65phemeral24HDuration\x18- \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x32\n\x0emdForceUpgrade\x18. \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10\x64isappearingMode\x18/ \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12<\n\x18\x65xternalMdOptInAvailable\x18\x30 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12<\n\x18noDeleteMessageTimeLimit\x18\x31 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\"K\n\x04\x46lag\x12\x0f\n\x0bNOT_STARTED\x10\x00\x12\x11\n\rFORCE_UPGRADE\x10\x01\x12\x0f\n\x0b\x44\x45VELOPMENT\x10\x02\x12\x0e\n\nPRODUCTION\x10\x03\"\xcdR\n\x0eWebMessageInfo\x12!\n\x03key\x18\x01 \x02(\x0b\x32\x14.whatsapp.MessageKey\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\x18\n\x10messageTimestamp\x18\x03 \x01(\x04\x12/\n\x06status\x18\x04 \x01(\x0e\x32\x1f.whatsapp.WebMessageInfo.Status\x12\x13\n\x0bparticipant\x18\x05 \x01(\t\x12\x1b\n\x13messageC2STimestamp\x18\x06 \x01(\x04\x12\x0e\n\x06ignore\x18\x10 \x01(\x08\x12\x0f\n\x07starred\x18\x11 \x01(\x08\x12\x11\n\tbroadcast\x18\x12 \x01(\x08\x12\x10\n\x08pushName\x18\x13 \x01(\t\x12\x1d\n\x15mediaCiphertextSha256\x18\x14 \x01(\x0c\x12\x11\n\tmulticast\x18\x15 \x01(\x08\x12\x0f\n\x07urlText\x18\x16 \x01(\x08\x12\x11\n\turlNumber\x18\x17 \x01(\x08\x12:\n\x0fmessageStubType\x18\x18 \x01(\x0e\x32!.whatsapp.WebMessageInfo.StubType\x12\x12\n\nclearMedia\x18\x19 \x01(\x08\x12\x1d\n\x15messageStubParameters\x18\x1a \x03(\t\x12\x10\n\x08\x64uration\x18\x1b \x01(\r\x12\x0e\n\x06labels\x18\x1c \x03(\t\x12*\n\x0bpaymentInfo\x18\x1d \x01(\x0b\x32\x15.whatsapp.PaymentInfo\x12@\n\x11\x66inalLiveLocation\x18\x1e \x01(\x0b\x32%.whatsapp.Message.LiveLocationMessage\x12\x30\n\x11quotedPaymentInfo\x18\x1f \x01(\x0b\x32\x15.whatsapp.PaymentInfo\x12\x1f\n\x17\x65phemeralStartTimestamp\x18 \x01(\x04\x12\x19\n\x11\x65phemeralDuration\x18! \x01(\r\x12\x18\n\x10\x65phemeralOffToOn\x18\" \x01(\x08\x12\x1a\n\x12\x65phemeralOutOfSync\x18# \x01(\x08\x12\x43\n\x10\x62izPrivacyStatus\x18$ \x01(\x0e\x32).whatsapp.WebMessageInfo.BizPrivacyStatus\x12\x17\n\x0fverifiedBizName\x18% \x01(\t\x12&\n\tmediaData\x18& \x01(\x0b\x32\x13.whatsapp.MediaData\x12*\n\x0bphotoChange\x18\' \x01(\x0b\x32\x15.whatsapp.PhotoChange\x12*\n\x0buserReceipt\x18( \x03(\x0b\x32\x15.whatsapp.UserReceipt\x12%\n\treactions\x18) \x03(\x0b\x32\x12.whatsapp.Reaction\x12.\n\x11quotedStickerData\x18* \x01(\x0b\x32\x13.whatsapp.MediaData\x12\x17\n\x0f\x66utureproofData\x18+ \x01(\x0c\x12&\n\tstatusPsa\x18, \x01(\x0b\x32\x13.whatsapp.StatusPSA\x12)\n\x0bpollUpdates\x18- \x03(\x0b\x32\x14.whatsapp.PollUpdate\x12@\n\x16pollAdditionalMetadata\x18. \x01(\x0b\x32 .whatsapp.PollAdditionalMetadata\x12\x0f\n\x07\x61gentId\x18/ \x01(\t\x12\x1b\n\x13statusAlreadyViewed\x18\x30 \x01(\x08\x12\x15\n\rmessageSecret\x18\x31 \x01(\x0c\x12(\n\nkeepInChat\x18\x32 \x01(\x0b\x32\x14.whatsapp.KeepInChat\x12\'\n\x1foriginalSelfAuthorUserJidString\x18\x33 \x01(\t\x12\x1e\n\x16revokeMessageTimestamp\x18\x34 \x01(\x04\x12&\n\tpinInChat\x18\x36 \x01(\x0b\x32\x13.whatsapp.PinInChat\x12\x38\n\x12premiumMessageInfo\x18\x37 \x01(\x0b\x32\x1c.whatsapp.PremiumMessageInfo\x12\x19\n\x11is1PBizBotMessage\x18\x38 \x01(\x08\x12\x1d\n\x15isGroupHistoryMessage\x18\x39 \x01(\x08\x12\x1c\n\x14\x62otMessageInvokerJid\x18: \x01(\t\x12\x32\n\x0f\x63ommentMetadata\x18; \x01(\x0b\x32\x19.whatsapp.CommentMetadata\x12/\n\x0e\x65ventResponses\x18= \x03(\x0b\x32\x17.whatsapp.EventResponse\x12\x38\n\x12reportingTokenInfo\x18> \x01(\x0b\x32\x1c.whatsapp.ReportingTokenInfo\x12\x1a\n\x12newsletterServerId\x18? \x01(\x04\x12\x42\n\x17\x65ventAdditionalMetadata\x18@ \x01(\x0b\x32!.whatsapp.EventAdditionalMetadata\x12\x1b\n\x13isMentionedInStatus\x18\x41 \x01(\x08\x12\x16\n\x0estatusMentions\x18\x42 \x03(\t\x12-\n\x0ftargetMessageId\x18\x43 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12-\n\rmessageAddOns\x18\x44 \x03(\x0b\x32\x16.whatsapp.MessageAddOn\x12@\n\x18statusMentionMessageInfo\x18\x45 \x01(\x0b\x32\x1e.whatsapp.StatusMentionMessage\x12\x1a\n\x12isSupportAiMessage\x18\x46 \x01(\x08\x12\x1c\n\x14statusMentionSources\x18G \x03(\t\x12.\n\x12supportAiCitations\x18H \x03(\x0b\x32\x12.whatsapp.Citation\x12\x13\n\x0b\x62otTargetId\x18I \x01(\t\x12V\n!groupHistoryIndividualMessageInfo\x18J \x01(\x0b\x32+.whatsapp.GroupHistoryIndividualMessageInfo\x12@\n\x16groupHistoryBundleInfo\x18K \x01(\x0b\x32 .whatsapp.GroupHistoryBundleInfo\x12\\\n$interactiveMessageAdditionalMetadata\x18L \x01(\x0b\x32..whatsapp.InteractiveMessageAdditionalMetadata\x12\x38\n\x12quarantinedMessage\x18M \x01(\x0b\x32\x1c.whatsapp.QuarantinedMessage\x12\x16\n\x0enonJidMentions\x18N \x01(\r\x12\x0e\n\x06hsmTag\x18O \x01(\t\x12$\n\x1c\x65phemeralExpirationTimestamp\x18P \x01(\x04\x12\x44\n\x18scheduledMessageMetadata\x18Q \x01(\x0b\x32\".whatsapp.ScheduledMessageMetadata\x12\x12\n\ndecisionId\x18R \x01(\t\x12\x17\n\x0f\x64\x65\x63isionSources\x18S \x03(\t\"=\n\x10\x42izPrivacyStatus\x12\x08\n\x04\x45\x32\x45\x45\x10\x00\x12\x06\n\x02\x46\x42\x10\x02\x12\x07\n\x03\x42SP\x10\x01\x12\x0e\n\nBSP_AND_FB\x10\x03\"X\n\x06Status\x12\t\n\x05\x45RROR\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\x0e\n\nSERVER_ACK\x10\x02\x12\x10\n\x0c\x44\x45LIVERY_ACK\x10\x03\x12\x08\n\x04READ\x10\x04\x12\n\n\x06PLAYED\x10\x05\"\x83<\n\x08StubType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06REVOKE\x10\x01\x12\x0e\n\nCIPHERTEXT\x10\x02\x12\x0f\n\x0b\x46UTUREPROOF\x10\x03\x12\x1b\n\x17NON_VERIFIED_TRANSITION\x10\x04\x12\x19\n\x15UNVERIFIED_TRANSITION\x10\x05\x12\x17\n\x13VERIFIED_TRANSITION\x10\x06\x12\x18\n\x14VERIFIED_LOW_UNKNOWN\x10\x07\x12\x11\n\rVERIFIED_HIGH\x10\x08\x12\x1c\n\x18VERIFIED_INITIAL_UNKNOWN\x10\t\x12\x18\n\x14VERIFIED_INITIAL_LOW\x10\n\x12\x19\n\x15VERIFIED_INITIAL_HIGH\x10\x0b\x12#\n\x1fVERIFIED_TRANSITION_ANY_TO_NONE\x10\x0c\x12#\n\x1fVERIFIED_TRANSITION_ANY_TO_HIGH\x10\r\x12#\n\x1fVERIFIED_TRANSITION_HIGH_TO_LOW\x10\x0e\x12\'\n#VERIFIED_TRANSITION_HIGH_TO_UNKNOWN\x10\x0f\x12&\n\"VERIFIED_TRANSITION_UNKNOWN_TO_LOW\x10\x10\x12&\n\"VERIFIED_TRANSITION_LOW_TO_UNKNOWN\x10\x11\x12#\n\x1fVERIFIED_TRANSITION_NONE_TO_LOW\x10\x12\x12\'\n#VERIFIED_TRANSITION_NONE_TO_UNKNOWN\x10\x13\x12\x10\n\x0cGROUP_CREATE\x10\x14\x12\x18\n\x14GROUP_CHANGE_SUBJECT\x10\x15\x12\x15\n\x11GROUP_CHANGE_ICON\x10\x16\x12\x1c\n\x18GROUP_CHANGE_INVITE_LINK\x10\x17\x12\x1c\n\x18GROUP_CHANGE_DESCRIPTION\x10\x18\x12\x19\n\x15GROUP_CHANGE_RESTRICT\x10\x19\x12\x19\n\x15GROUP_CHANGE_ANNOUNCE\x10\x1a\x12\x19\n\x15GROUP_PARTICIPANT_ADD\x10\x1b\x12\x1c\n\x18GROUP_PARTICIPANT_REMOVE\x10\x1c\x12\x1d\n\x19GROUP_PARTICIPANT_PROMOTE\x10\x1d\x12\x1c\n\x18GROUP_PARTICIPANT_DEMOTE\x10\x1e\x12\x1c\n\x18GROUP_PARTICIPANT_INVITE\x10\x1f\x12\x1b\n\x17GROUP_PARTICIPANT_LEAVE\x10 \x12#\n\x1fGROUP_PARTICIPANT_CHANGE_NUMBER\x10!\x12\x14\n\x10\x42ROADCAST_CREATE\x10\"\x12\x11\n\rBROADCAST_ADD\x10#\x12\x14\n\x10\x42ROADCAST_REMOVE\x10$\x12\x18\n\x14GENERIC_NOTIFICATION\x10%\x12\x18\n\x14\x45\x32\x45_IDENTITY_CHANGED\x10&\x12\x11\n\rE2E_ENCRYPTED\x10\'\x12\x15\n\x11\x43\x41LL_MISSED_VOICE\x10(\x12\x15\n\x11\x43\x41LL_MISSED_VIDEO\x10)\x12\x1c\n\x18INDIVIDUAL_CHANGE_NUMBER\x10*\x12\x10\n\x0cGROUP_DELETE\x10+\x12&\n\"GROUP_ANNOUNCE_MODE_MESSAGE_BOUNCE\x10,\x12\x1b\n\x17\x43\x41LL_MISSED_GROUP_VOICE\x10-\x12\x1b\n\x17\x43\x41LL_MISSED_GROUP_VIDEO\x10.\x12\x16\n\x12PAYMENT_CIPHERTEXT\x10/\x12\x17\n\x13PAYMENT_FUTUREPROOF\x10\x30\x12,\n(PAYMENT_TRANSACTION_STATUS_UPDATE_FAILED\x10\x31\x12.\n*PAYMENT_TRANSACTION_STATUS_UPDATE_REFUNDED\x10\x32\x12\x33\n/PAYMENT_TRANSACTION_STATUS_UPDATE_REFUND_FAILED\x10\x33\x12\x35\n1PAYMENT_TRANSACTION_STATUS_RECEIVER_PENDING_SETUP\x10\x34\x12<\n8PAYMENT_TRANSACTION_STATUS_RECEIVER_SUCCESS_AFTER_HICCUP\x10\x35\x12)\n%PAYMENT_ACTION_ACCOUNT_SETUP_REMINDER\x10\x36\x12(\n$PAYMENT_ACTION_SEND_PAYMENT_REMINDER\x10\x37\x12*\n&PAYMENT_ACTION_SEND_PAYMENT_INVITATION\x10\x38\x12#\n\x1fPAYMENT_ACTION_REQUEST_DECLINED\x10\x39\x12\"\n\x1ePAYMENT_ACTION_REQUEST_EXPIRED\x10:\x12$\n PAYMENT_ACTION_REQUEST_CANCELLED\x10;\x12)\n%BIZ_VERIFIED_TRANSITION_TOP_TO_BOTTOM\x10<\x12)\n%BIZ_VERIFIED_TRANSITION_BOTTOM_TO_TOP\x10=\x12\x11\n\rBIZ_INTRO_TOP\x10>\x12\x14\n\x10\x42IZ_INTRO_BOTTOM\x10?\x12\x13\n\x0f\x42IZ_NAME_CHANGE\x10@\x12\x1c\n\x18\x42IZ_MOVE_TO_CONSUMER_APP\x10\x41\x12\x1e\n\x1a\x42IZ_TWO_TIER_MIGRATION_TOP\x10\x42\x12!\n\x1d\x42IZ_TWO_TIER_MIGRATION_BOTTOM\x10\x43\x12\r\n\tOVERSIZED\x10\x44\x12(\n$GROUP_CHANGE_NO_FREQUENTLY_FORWARDED\x10\x45\x12\x1c\n\x18GROUP_V4_ADD_INVITE_SENT\x10\x46\x12&\n\"GROUP_PARTICIPANT_ADD_REQUEST_JOIN\x10G\x12\x1c\n\x18\x43HANGE_EPHEMERAL_SETTING\x10H\x12\x16\n\x12\x45\x32\x45_DEVICE_CHANGED\x10I\x12\x0f\n\x0bVIEWED_ONCE\x10J\x12\x15\n\x11\x45\x32\x45_ENCRYPTED_NOW\x10K\x12\"\n\x1e\x42LUE_MSG_BSP_FB_TO_BSP_PREMISE\x10L\x12\x1e\n\x1a\x42LUE_MSG_BSP_FB_TO_SELF_FB\x10M\x12#\n\x1f\x42LUE_MSG_BSP_FB_TO_SELF_PREMISE\x10N\x12\x1e\n\x1a\x42LUE_MSG_BSP_FB_UNVERIFIED\x10O\x12\x37\n3BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED\x10P\x12\x1c\n\x18\x42LUE_MSG_BSP_FB_VERIFIED\x10Q\x12\x37\n3BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED\x10R\x12(\n$BLUE_MSG_BSP_PREMISE_TO_SELF_PREMISE\x10S\x12#\n\x1f\x42LUE_MSG_BSP_PREMISE_UNVERIFIED\x10T\x12<\n8BLUE_MSG_BSP_PREMISE_UNVERIFIED_TO_SELF_PREMISE_VERIFIED\x10U\x12!\n\x1d\x42LUE_MSG_BSP_PREMISE_VERIFIED\x10V\x12<\n8BLUE_MSG_BSP_PREMISE_VERIFIED_TO_SELF_PREMISE_UNVERIFIED\x10W\x12*\n&BLUE_MSG_CONSUMER_TO_BSP_FB_UNVERIFIED\x10X\x12/\n+BLUE_MSG_CONSUMER_TO_BSP_PREMISE_UNVERIFIED\x10Y\x12+\n\'BLUE_MSG_CONSUMER_TO_SELF_FB_UNVERIFIED\x10Z\x12\x30\n,BLUE_MSG_CONSUMER_TO_SELF_PREMISE_UNVERIFIED\x10[\x12#\n\x1f\x42LUE_MSG_SELF_FB_TO_BSP_PREMISE\x10\\\x12$\n BLUE_MSG_SELF_FB_TO_SELF_PREMISE\x10]\x12\x1f\n\x1b\x42LUE_MSG_SELF_FB_UNVERIFIED\x10^\x12\x38\n4BLUE_MSG_SELF_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED\x10_\x12\x1d\n\x19\x42LUE_MSG_SELF_FB_VERIFIED\x10`\x12\x38\n4BLUE_MSG_SELF_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED\x10\x61\x12(\n$BLUE_MSG_SELF_PREMISE_TO_BSP_PREMISE\x10\x62\x12$\n BLUE_MSG_SELF_PREMISE_UNVERIFIED\x10\x63\x12\"\n\x1e\x42LUE_MSG_SELF_PREMISE_VERIFIED\x10\x64\x12\x16\n\x12\x42LUE_MSG_TO_BSP_FB\x10\x65\x12\x18\n\x14\x42LUE_MSG_TO_CONSUMER\x10\x66\x12\x17\n\x13\x42LUE_MSG_TO_SELF_FB\x10g\x12*\n&BLUE_MSG_UNVERIFIED_TO_BSP_FB_VERIFIED\x10h\x12/\n+BLUE_MSG_UNVERIFIED_TO_BSP_PREMISE_VERIFIED\x10i\x12+\n\'BLUE_MSG_UNVERIFIED_TO_SELF_FB_VERIFIED\x10j\x12#\n\x1f\x42LUE_MSG_UNVERIFIED_TO_VERIFIED\x10k\x12*\n&BLUE_MSG_VERIFIED_TO_BSP_FB_UNVERIFIED\x10l\x12/\n+BLUE_MSG_VERIFIED_TO_BSP_PREMISE_UNVERIFIED\x10m\x12+\n\'BLUE_MSG_VERIFIED_TO_SELF_FB_UNVERIFIED\x10n\x12#\n\x1f\x42LUE_MSG_VERIFIED_TO_UNVERIFIED\x10o\x12\x36\n2BLUE_MSG_BSP_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED\x10p\x12\x32\n.BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_FB_VERIFIED\x10q\x12\x36\n2BLUE_MSG_BSP_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED\x10r\x12\x32\n.BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_FB_UNVERIFIED\x10s\x12\x37\n3BLUE_MSG_SELF_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED\x10t\x12\x37\n3BLUE_MSG_SELF_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED\x10u\x12\x1c\n\x18\x45\x32\x45_IDENTITY_UNAVAILABLE\x10v\x12\x12\n\x0eGROUP_CREATING\x10w\x12\x17\n\x13GROUP_CREATE_FAILED\x10x\x12\x11\n\rGROUP_BOUNCED\x10y\x12\x11\n\rBLOCK_CONTACT\x10z\x12!\n\x1d\x45PHEMERAL_SETTING_NOT_APPLIED\x10{\x12\x0f\n\x0bSYNC_FAILED\x10|\x12\x0b\n\x07SYNCING\x10}\x12\x1c\n\x18\x42IZ_PRIVACY_MODE_INIT_FB\x10~\x12\x1d\n\x19\x42IZ_PRIVACY_MODE_INIT_BSP\x10\x7f\x12\x1b\n\x16\x42IZ_PRIVACY_MODE_TO_FB\x10\x80\x01\x12\x1c\n\x17\x42IZ_PRIVACY_MODE_TO_BSP\x10\x81\x01\x12\x16\n\x11\x44ISAPPEARING_MODE\x10\x82\x01\x12\x1c\n\x17\x45\x32\x45_DEVICE_FETCH_FAILED\x10\x83\x01\x12\x11\n\x0c\x41\x44MIN_REVOKE\x10\x84\x01\x12$\n\x1fGROUP_INVITE_LINK_GROWTH_LOCKED\x10\x85\x01\x12 \n\x1b\x43OMMUNITY_LINK_PARENT_GROUP\x10\x86\x01\x12!\n\x1c\x43OMMUNITY_LINK_SIBLING_GROUP\x10\x87\x01\x12\x1d\n\x18\x43OMMUNITY_LINK_SUB_GROUP\x10\x88\x01\x12\"\n\x1d\x43OMMUNITY_UNLINK_PARENT_GROUP\x10\x89\x01\x12#\n\x1e\x43OMMUNITY_UNLINK_SIBLING_GROUP\x10\x8a\x01\x12\x1f\n\x1a\x43OMMUNITY_UNLINK_SUB_GROUP\x10\x8b\x01\x12\x1d\n\x18GROUP_PARTICIPANT_ACCEPT\x10\x8c\x01\x12(\n#GROUP_PARTICIPANT_LINKED_GROUP_JOIN\x10\x8d\x01\x12\x15\n\x10\x43OMMUNITY_CREATE\x10\x8e\x01\x12\x1b\n\x16\x45PHEMERAL_KEEP_IN_CHAT\x10\x8f\x01\x12+\n&GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST\x10\x90\x01\x12(\n#GROUP_MEMBERSHIP_JOIN_APPROVAL_MODE\x10\x91\x01\x12\"\n\x1dINTEGRITY_UNLINK_PARENT_GROUP\x10\x92\x01\x12\"\n\x1d\x43OMMUNITY_PARTICIPANT_PROMOTE\x10\x93\x01\x12!\n\x1c\x43OMMUNITY_PARTICIPANT_DEMOTE\x10\x94\x01\x12#\n\x1e\x43OMMUNITY_PARENT_GROUP_DELETED\x10\x95\x01\x12\x34\n/COMMUNITY_LINK_PARENT_GROUP_MEMBERSHIP_APPROVAL\x10\x96\x01\x12\x34\n/GROUP_PARTICIPANT_JOINED_GROUP_AND_PARENT_GROUP\x10\x97\x01\x12\x1a\n\x15MASKED_THREAD_CREATED\x10\x98\x01\x12\x1b\n\x16MASKED_THREAD_UNMASKED\x10\x99\x01\x12\x18\n\x13\x42IZ_CHAT_ASSIGNMENT\x10\x9a\x01\x12\r\n\x08\x43HAT_PSA\x10\x9b\x01\x12\x1f\n\x1a\x43HAT_POLL_CREATION_MESSAGE\x10\x9c\x01\x12\x1e\n\x19\x43\x41G_MASKED_THREAD_CREATED\x10\x9d\x01\x12+\n&COMMUNITY_PARENT_GROUP_SUBJECT_CHANGED\x10\x9e\x01\x12\x18\n\x13\x43\x41G_INVITE_AUTO_ADD\x10\x9f\x01\x12!\n\x1c\x42IZ_CHAT_ASSIGNMENT_UNASSIGN\x10\xa0\x01\x12\x1b\n\x16\x43\x41G_INVITE_AUTO_JOINED\x10\xa1\x01\x12!\n\x1cSCHEDULED_CALL_START_MESSAGE\x10\xa2\x01\x12\x1a\n\x15\x43OMMUNITY_INVITE_RICH\x10\xa3\x01\x12#\n\x1e\x43OMMUNITY_INVITE_AUTO_ADD_RICH\x10\xa4\x01\x12\x1a\n\x15SUB_GROUP_INVITE_RICH\x10\xa5\x01\x12#\n\x1eSUB_GROUP_PARTICIPANT_ADD_RICH\x10\xa6\x01\x12%\n COMMUNITY_LINK_PARENT_GROUP_RICH\x10\xa7\x01\x12#\n\x1e\x43OMMUNITY_PARTICIPANT_ADD_RICH\x10\xa8\x01\x12\"\n\x1dSILENCED_UNKNOWN_CALLER_AUDIO\x10\xa9\x01\x12\"\n\x1dSILENCED_UNKNOWN_CALLER_VIDEO\x10\xaa\x01\x12\x1a\n\x15GROUP_MEMBER_ADD_MODE\x10\xab\x01\x12\x39\n4GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST_NON_ADMIN_ADD\x10\xac\x01\x12!\n\x1c\x43OMMUNITY_CHANGE_DESCRIPTION\x10\xad\x01\x12\x12\n\rSENDER_INVITE\x10\xae\x01\x12\x14\n\x0fRECEIVER_INVITE\x10\xaf\x01\x12(\n#COMMUNITY_ALLOW_MEMBER_ADDED_GROUPS\x10\xb0\x01\x12\x1b\n\x16PINNED_MESSAGE_IN_CHAT\x10\xb1\x01\x12!\n\x1cPAYMENT_INVITE_SETUP_INVITER\x10\xb2\x01\x12.\n)PAYMENT_INVITE_SETUP_INVITEE_RECEIVE_ONLY\x10\xb3\x01\x12\x32\n-PAYMENT_INVITE_SETUP_INVITEE_SEND_AND_RECEIVE\x10\xb4\x01\x12\x1c\n\x17LINKED_GROUP_CALL_START\x10\xb5\x01\x12#\n\x1eREPORT_TO_ADMIN_ENABLED_STATUS\x10\xb6\x01\x12\x1a\n\x15\x45MPTY_SUBGROUP_CREATE\x10\xb7\x01\x12\x1a\n\x15SCHEDULED_CALL_CANCEL\x10\xb8\x01\x12+\n&SUBGROUP_ADMIN_TRIGGERED_AUTO_ADD_RICH\x10\xb9\x01\x12(\n#GROUP_CHANGE_RECENT_HISTORY_SHARING\x10\xba\x01\x12$\n\x1fPAID_MESSAGE_SERVER_CAMPAIGN_ID\x10\xbb\x01\x12\x18\n\x13GENERAL_CHAT_CREATE\x10\xbc\x01\x12\x15\n\x10GENERAL_CHAT_ADD\x10\xbd\x01\x12#\n\x1eGENERAL_CHAT_AUTO_ADD_DISABLED\x10\xbe\x01\x12 \n\x1bSUGGESTED_SUBGROUP_ANNOUNCE\x10\xbf\x01\x12!\n\x1c\x42IZ_BOT_1P_MESSAGING_ENABLED\x10\xc0\x01\x12\x14\n\x0f\x43HANGE_USERNAME\x10\xc1\x01\x12\x1f\n\x1a\x42IZ_COEX_PRIVACY_INIT_SELF\x10\xc2\x01\x12%\n BIZ_COEX_PRIVACY_TRANSITION_SELF\x10\xc3\x01\x12\x19\n\x14SUPPORT_AI_EDUCATION\x10\xc4\x01\x12!\n\x1c\x42IZ_BOT_3P_MESSAGING_ENABLED\x10\xc5\x01\x12\x1b\n\x16REMINDER_SETUP_MESSAGE\x10\xc6\x01\x12\x1a\n\x15REMINDER_SENT_MESSAGE\x10\xc7\x01\x12\x1c\n\x17REMINDER_CANCEL_MESSAGE\x10\xc8\x01\x12\x1a\n\x15\x42IZ_COEX_PRIVACY_INIT\x10\xc9\x01\x12 \n\x1b\x42IZ_COEX_PRIVACY_TRANSITION\x10\xca\x01\x12\x16\n\x11GROUP_DEACTIVATED\x10\xcb\x01\x12\'\n\"COMMUNITY_DEACTIVATE_SIBLING_GROUP\x10\xcc\x01\x12\x12\n\rEVENT_UPDATED\x10\xcd\x01\x12\x13\n\x0e\x45VENT_CANCELED\x10\xce\x01\x12\x1c\n\x17\x43OMMUNITY_OWNER_UPDATED\x10\xcf\x01\x12*\n%COMMUNITY_SUB_GROUP_VISIBILITY_HIDDEN\x10\xd0\x01\x12$\n\x1f\x43\x41PI_GROUP_NE2EE_SYSTEM_MESSAGE\x10\xd1\x01\x12\x13\n\x0eSTATUS_MENTION\x10\xd2\x01\x12!\n\x1cUSER_CONTROLS_SYSTEM_MESSAGE\x10\xd3\x01\x12\x1b\n\x16SUPPORT_SYSTEM_MESSAGE\x10\xd4\x01\x12\x0f\n\nCHANGE_LID\x10\xd5\x01\x12\x31\n,BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_IN_MESSAGE\x10\xd6\x01\x12\x32\n-BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_OUT_MESSAGE\x10\xd7\x01\x12\x19\n\x14\x43HANGE_LIMIT_SHARING\x10\xd8\x01\x12\x1b\n\x16GROUP_MEMBER_LINK_MODE\x10\xd9\x01\x12\x32\n-BIZ_AUTOMATICALLY_LABELED_CHAT_SYSTEM_MESSAGE\x10\xda\x01\x12\x30\n+PHONE_NUMBER_HIDING_CHAT_DEPRECATED_MESSAGE\x10\xdb\x01\x12\x18\n\x13QUARANTINED_MESSAGE\x10\xdc\x01\x12*\n%GROUP_MEMBER_SHARE_GROUP_HISTORY_MODE\x10\xdd\x01\x12\x19\n\x14GROUP_OPEN_BOT_ADDED\x10\xde\x01\x12\x18\n\x13GROUP_TEE_BOT_ADDED\x10\xdf\x01\x12\x11\n\x0c\x43ONTACT_INFO\x10\xe0\x01\x12\x1e\n\x19SCHEDULED_MESSAGE_CREATED\x10\xe1\x01\"Y\n\x1eWebMessageInfoWithMessageBytes\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x14\n\x0cmessageBytes\x18\x02 \x01(\x0c\"\x8c\x01\n\x14WebNotificationsInfo\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x13\n\x0bunreadChats\x18\x03 \x01(\r\x12\x1a\n\x12notifyMessageCount\x18\x04 \x01(\r\x12\x30\n\x0enotifyMessages\x18\x05 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo*7\n\x11\x41\x44VEncryptionType\x12\x08\n\x04\x45\x32\x45\x45\x10\x00\x12\n\n\x06HOSTED\x10\x01\x12\x0c\n\x08NON_E2EE\x10\x02*b\n\x19\x41IRichResponseMessageType\x12!\n\x1d\x41I_RICH_RESPONSE_TYPE_UNKNOWN\x10\x00\x12\"\n\x1e\x41I_RICH_RESPONSE_TYPE_STANDARD\x10\x01*\xca\x02\n\x1c\x41IRichResponseSubMessageType\x12\x1c\n\x18\x41I_RICH_RESPONSE_UNKNOWN\x10\x00\x12\x1f\n\x1b\x41I_RICH_RESPONSE_GRID_IMAGE\x10\x01\x12\x19\n\x15\x41I_RICH_RESPONSE_TEXT\x10\x02\x12!\n\x1d\x41I_RICH_RESPONSE_INLINE_IMAGE\x10\x03\x12\x1a\n\x16\x41I_RICH_RESPONSE_TABLE\x10\x04\x12\x19\n\x15\x41I_RICH_RESPONSE_CODE\x10\x05\x12\x1c\n\x18\x41I_RICH_RESPONSE_DYNAMIC\x10\x06\x12\x18\n\x14\x41I_RICH_RESPONSE_MAP\x10\x07\x12\x1a\n\x16\x41I_RICH_RESPONSE_LATEX\x10\x08\x12\"\n\x1e\x41I_RICH_RESPONSE_CONTENT_ITEMS\x10\t*Z\n\x19\x41ISubscriptionRequestType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0e\n\nTHINK_HARD\x10\x01\x12\r\n\tIMAGE_GEN\x10\x02\x12\r\n\tVIDEO_GEN\x10\x03*\x8e\n\n\x14\x42otMetricsEntryPoint\x12\x19\n\x15UNDEFINED_ENTRY_POINT\x10\x00\x12\x0b\n\x07\x46\x41VICON\x10\x01\x12\x0c\n\x08\x43HATLIST\x10\x02\x12#\n\x1f\x41ISEARCH_NULL_STATE_PAPER_PLANE\x10\x03\x12\"\n\x1e\x41ISEARCH_NULL_STATE_SUGGESTION\x10\x04\x12\"\n\x1e\x41ISEARCH_TYPE_AHEAD_SUGGESTION\x10\x05\x12#\n\x1f\x41ISEARCH_TYPE_AHEAD_PAPER_PLANE\x10\x06\x12\'\n#AISEARCH_TYPE_AHEAD_RESULT_CHATLIST\x10\x07\x12\'\n#AISEARCH_TYPE_AHEAD_RESULT_MESSAGES\x10\x08\x12\x16\n\x12\x41IVOICE_SEARCH_BAR\x10\t\x12\x13\n\x0f\x41IVOICE_FAVICON\x10\n\x12\x0c\n\x08\x41ISTUDIO\x10\x0b\x12\x0c\n\x08\x44\x45\x45PLINK\x10\x0c\x12\x10\n\x0cNOTIFICATION\x10\r\x12\x1a\n\x16PROFILE_MESSAGE_BUTTON\x10\x0e\x12\x0b\n\x07\x46ORWARD\x10\x0f\x12\x10\n\x0c\x41PP_SHORTCUT\x10\x10\x12\r\n\tFF_FAMILY\x10\x11\x12\n\n\x06\x41I_TAB\x10\x12\x12\x0b\n\x07\x41I_HOME\x10\x13\x12\x19\n\x15\x41I_DEEPLINK_IMMERSIVE\x10\x14\x12\x0f\n\x0b\x41I_DEEPLINK\x10\x15\x12#\n\x1fMETA_AI_CHAT_SHORTCUT_AI_STUDIO\x10\x16\x12\x1f\n\x1bUGC_CHAT_SHORTCUT_AI_STUDIO\x10\x17\x12\x16\n\x12NEW_CHAT_AI_STUDIO\x10\x18\x12 \n\x1c\x41IVOICE_FAVICON_CALL_HISTORY\x10\x19\x12\x1c\n\x18\x41SK_META_AI_CONTEXT_MENU\x10\x1a\x12!\n\x1d\x41SK_META_AI_CONTEXT_MENU_1ON1\x10\x1b\x12\"\n\x1e\x41SK_META_AI_CONTEXT_MENU_GROUP\x10\x1c\x12\x17\n\x13INVOKE_META_AI_1ON1\x10\x1d\x12\x18\n\x14INVOKE_META_AI_GROUP\x10\x1e\x12\x13\n\x0fMETA_AI_FORWARD\x10\x1f\x12\x17\n\x13NEW_CHAT_AI_CONTACT\x10 \x12$\n MESSAGE_QUICK_ACTION_1_ON_1_CHAT\x10!\x12#\n\x1fMESSAGE_QUICK_ACTION_GROUP_CHAT\x10\"\x12\x1f\n\x1b\x41TTACHMENT_TRAY_1_ON_1_CHAT\x10#\x12\x1e\n\x1a\x41TTACHMENT_TRAY_GROUP_CHAT\x10$\x12!\n\x1d\x41SK_META_AI_MEDIA_VIEWER_1ON1\x10%\x12\"\n\x1e\x41SK_META_AI_MEDIA_VIEWER_GROUP\x10&\x12\x1c\n\x18MEDIA_PICKER_1_ON_1_CHAT\x10\'\x12\x1b\n\x17MEDIA_PICKER_GROUP_CHAT\x10(\x12!\n\x1d\x41SK_META_AI_NO_SEARCH_RESULTS\x10)\x12\x14\n\x10META_AI_SETTINGS\x10-\x12\x13\n\x0fWEB_INTRO_PANEL\x10.\x12\x16\n\x12WEB_NAVIGATION_BAR\x10/\x12\x10\n\x0cGROUP_MEMBER\x10\x36\x12\x13\n\x0f\x43HATLIST_SEARCH\x10\x37\x12\x11\n\rNEW_CHAT_LIST\x10\x38*\xa2\x01\n\x1a\x42otMetricsThreadEntryPoint\x12\x11\n\rAI_TAB_THREAD\x10\x01\x12\x12\n\x0e\x41I_HOME_THREAD\x10\x02\x12 \n\x1c\x41I_DEEPLINK_IMMERSIVE_THREAD\x10\x03\x12\x16\n\x12\x41I_DEEPLINK_THREAD\x10\x04\x12#\n\x1f\x41SK_META_AI_CONTEXT_MENU_THREAD\x10\x05*\x92\x01\n\x10\x42otSessionSource\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nNULL_STATE\x10\x01\x12\r\n\tTYPEAHEAD\x10\x02\x12\x0e\n\nUSER_INPUT\x10\x03\x12\r\n\tEMU_FLASH\x10\x04\x12\x16\n\x12\x45MU_FLASH_FOLLOWUP\x10\x05\x12\t\n\x05VOICE\x10\x06\x12\x13\n\x0f\x41I_HOME_SESSION\x10\x07*H\n\x14\x43OMMAND_COMMAND_TYPE\x12\x0c\n\x08\x45VERYONE\x10\x01\x12\n\n\x06SILENT\x10\x02\x12\x06\n\x02\x41I\x10\x03\x12\x0e\n\nAI_IMAGINE\x10\x04*S\n/CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE\x12\t\n\x05SMALL\x10\x01\x12\n\n\x06MEDIUM\x10\x02\x12\t\n\x05LARGE\x10\x03*\x9f\x01\n1CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE\x12\x0e\n\nSANS_SERIF\x10\x00\x12\t\n\x05SERIF\x10\x01\x12\x13\n\x0fNORICAN_REGULAR\x10\x02\x12\x11\n\rBRYNDAN_WRITE\x10\x03\x12\x15\n\x11\x42\x45\x42\x41SNEUE_REGULAR\x10\x04\x12\x10\n\x0cOSWALD_HEAVY\x10\x05*\x8b\x01\n\x0e\x43ollectionName\x12\x1b\n\x17\x43OLLECTION_NAME_UNKNOWN\x10\x00\x12\x0b\n\x07REGULAR\x10\x01\x12\x0f\n\x0bREGULAR_LOW\x10\x02\x12\x10\n\x0cREGULAR_HIGH\x10\x03\x12\x12\n\x0e\x43RITICAL_BLOCK\x10\x04\x12\x18\n\x14\x43RITICAL_UNBLOCK_LOW\x10\x05*H\n\x15\x46UTURE_PROOF_BEHAVIOR\x12\x0f\n\x0bPLACEHOLDER\x10\x00\x12\x12\n\x0eNO_PLACEHOLDER\x10\x01\x12\n\n\x06IGNORE\x10\x02*@\n\x08KeepType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0cKEEP_FOR_ALL\x10\x01\x12\x15\n\x11UNDO_KEEP_FOR_ALL\x10\x02*#\n\x14MENTION_MENTION_TYPE\x12\x0b\n\x07PROFILE\x10\x00*h\n\x0eMediaKeyDomain\x12\x1c\n\x18MEDIA_KEY_DOMAIN_UNKNOWN\x10\x00\x12\x19\n\x15MEDIA_KEY_DOMAIN_E2EE\x10\x01\x12\x1d\n\x19MEDIA_KEY_DOMAIN_NON_E2EE\x10\x02*/\n\x0fMediaVisibility\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x07\n\x03OFF\x10\x01\x12\x06\n\x02ON\x10\x02*\xb2\x13\n\rMutationProps\x12\x0f\n\x0bSTAR_ACTION\x10\x02\x12\x12\n\x0e\x43ONTACT_ACTION\x10\x03\x12\x0f\n\x0bMUTE_ACTION\x10\x04\x12\x0e\n\nPIN_ACTION\x10\x05\x12!\n\x1dSECURITY_NOTIFICATION_SETTING\x10\x06\x12\x15\n\x11PUSH_NAME_SETTING\x10\x07\x12\x16\n\x12QUICK_REPLY_ACTION\x10\x08\x12\x1f\n\x1bRECENT_EMOJI_WEIGHTS_ACTION\x10\x0b\x12\x18\n\x14LABEL_MESSAGE_ACTION\x10\r\x12\x15\n\x11LABEL_EDIT_ACTION\x10\x0e\x12\x1c\n\x18LABEL_ASSOCIATION_ACTION\x10\x0f\x12\x12\n\x0eLOCALE_SETTING\x10\x10\x12\x17\n\x13\x41RCHIVE_CHAT_ACTION\x10\x11\x12 \n\x1c\x44\x45LETE_MESSAGE_FOR_ME_ACTION\x10\x12\x12\x12\n\x0eKEY_EXPIRATION\x10\x13\x12\x1c\n\x18MARK_CHAT_AS_READ_ACTION\x10\x14\x12\x15\n\x11\x43LEAR_CHAT_ACTION\x10\x15\x12\x16\n\x12\x44\x45LETE_CHAT_ACTION\x10\x16\x12\x1b\n\x17UNARCHIVE_CHATS_SETTING\x10\x17\x12\x13\n\x0fPRIMARY_FEATURE\x10\x18\x12\x1f\n\x1b\x41NDROID_UNSUPPORTED_ACTIONS\x10\x1a\x12\x10\n\x0c\x41GENT_ACTION\x10\x1b\x12\x17\n\x13SUBSCRIPTION_ACTION\x10\x1c\x12\x1b\n\x17USER_STATUS_MUTE_ACTION\x10\x1d\x12\x16\n\x12TIME_FORMAT_ACTION\x10\x1e\x12\x0e\n\nNUX_ACTION\x10\x1f\x12\x1a\n\x16PRIMARY_VERSION_ACTION\x10 \x12\x12\n\x0eSTICKER_ACTION\x10!\x12 \n\x1cREMOVE_RECENT_STICKER_ACTION\x10\"\x12\x13\n\x0f\x43HAT_ASSIGNMENT\x10#\x12!\n\x1d\x43HAT_ASSIGNMENT_OPENED_STATUS\x10$\x12\x1a\n\x16PN_FOR_LID_CHAT_ACTION\x10%\x12\x1c\n\x18MARKETING_MESSAGE_ACTION\x10&\x12&\n\"MARKETING_MESSAGE_BROADCAST_ACTION\x10\'\x12\x1c\n\x18\x45XTERNAL_WEB_BETA_ACTION\x10(\x12#\n\x1fPRIVACY_SETTING_RELAY_ALL_CALLS\x10)\x12\x13\n\x0f\x43\x41LL_LOG_ACTION\x10*\x12\x0b\n\x07UGC_BOT\x10+\x12\x12\n\x0eSTATUS_PRIVACY\x10,\x12\x1e\n\x1a\x42OT_WELCOME_REQUEST_ACTION\x10-\x12\x1e\n\x1a\x44\x45LETE_INDIVIDUAL_CALL_LOG\x10.\x12\x1b\n\x17LABEL_REORDERING_ACTION\x10/\x12\x17\n\x13PAYMENT_INFO_ACTION\x10\x30\x12!\n\x1d\x43USTOM_PAYMENT_METHODS_ACTION\x10\x31\x12\x14\n\x10LOCK_CHAT_ACTION\x10\x32\x12\x16\n\x12\x43HAT_LOCK_SETTINGS\x10\x33\x12\x1f\n\x1bWAMO_USER_IDENTIFIER_ACTION\x10\x34\x12\x30\n,PRIVACY_SETTING_DISABLE_LINK_PREVIEWS_ACTION\x10\x35\x12\x17\n\x13\x44\x45VICE_CAPABILITIES\x10\x36\x12\x14\n\x10NOTE_EDIT_ACTION\x10\x37\x12\x14\n\x10\x46\x41VORITES_ACTION\x10\x38\x12#\n\x1fMERCHANT_PAYMENT_PARTNER_ACTION\x10\x39\x12$\n WAFFLE_ACCOUNT_LINK_STATE_ACTION\x10:\x12\x1c\n\x18USERNAME_CHAT_START_MODE\x10;\x12(\n$NOTIFICATION_ACTIVITY_SETTING_ACTION\x10<\x12\x16\n\x12LID_CONTACT_ACTION\x10=\x12)\n%CTWA_PER_CUSTOMER_DATA_SHARING_ACTION\x10>\x12\x16\n\x12PAYMENT_TOS_ACTION\x10?\x12?\n;PRIVACY_SETTING_CHANNELS_PERSONALISED_RECOMMENDATION_ACTION\x10@\x12)\n%BUSINESS_BROADCAST_ASSOCIATION_ACTION\x10\x41\x12#\n\x1f\x44\x45TECTED_OUTCOMES_STATUS_ACTION\x10\x42\x12$\n MAIBA_AI_FEATURES_CONTROL_ACTION\x10\x44\x12\"\n\x1e\x42USINESS_BROADCAST_LIST_ACTION\x10\x45\x12\x18\n\x14MUSIC_USER_ID_ACTION\x10\x46\x12\x36\n2STATUS_POST_OPT_IN_NOTIFICATION_PREFERENCES_ACTION\x10G\x12\x19\n\x15\x41VATAR_UPDATED_ACTION\x10H\x12\x16\n\x12GALAXY_FLOW_ACTION\x10I\x12%\n!PRIVATE_PROCESSING_SETTING_ACTION\x10J\x12%\n!NEWSLETTER_SAVED_INTERESTS_ACTION\x10K\x12\x1b\n\x17\x41I_THREAD_RENAME_ACTION\x10L\x12\x1e\n\x1aINTERACTIVE_MESSAGE_ACTION\x10M\x12\x18\n\x14SETTINGS_SYNC_ACTION\x10N\x12\x16\n\x12OUT_CONTACT_ACTION\x10O\x12\x18\n\x14NCT_SALT_SYNC_ACTION\x10P\x12&\n\"BUSINESS_BROADCAST_CAMPAIGN_ACTION\x10Q\x12&\n\"BUSINESS_BROADCAST_INSIGHTS_ACTION\x10R\x12\x18\n\x14\x43USTOMER_DATA_ACTION\x10S\x12 \n\x1cSUBSCRIPTIONS_SYNC_V2_ACTION\x10T\x12\x15\n\x11THREAD_PIN_ACTION\x10U\x12\'\n#AUTO_ORGANIZE_BUSINESS_CHAT_SETTING\x10V\x12 \n\x1c\x42IZ_AI_SETTINGS_NUDGE_ACTION\x10W\x12\x11\n\x0cSHARE_OWN_PN\x10\x91N\x12\x1e\n\x19\x42USINESS_BROADCAST_ACTION\x10\x92N\x12\x1c\n\x17\x41I_THREAD_DELETE_ACTION\x10\x93N*E\n\x14PrivacySystemMessage\x12\x0c\n\x08\x45\x32\x45\x45_MSG\x10\x01\x12\x0e\n\nNE2EE_SELF\x10\x02\x12\x0f\n\x0bNE2EE_OTHER\x10\x03*H\n\x17SessionTransparencyType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x1b\n\x17NY_AI_SAFETY_DISCLAIMER\x10\x01*.\n\x13WebLinkRenderConfig\x12\x0b\n\x07WEBVIEW\x10\x00\x12\n\n\x06SYSTEM\x10\x01') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0ewhatsapp.proto\x12\x08whatsapp\"\xb6\x01\n\x11\x41\x44VDeviceIdentity\x12\r\n\x05rawId\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x10\n\x08keyIndex\x18\x03 \x01(\r\x12\x36\n\x0b\x61\x63\x63ountType\x18\x04 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType:\x04\x45\x32\x45\x45\x12\x35\n\ndeviceType\x18\x05 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType:\x04\x45\x32\x45\x45\"\x9b\x01\n\x0f\x41\x44VKeyIndexList\x12\r\n\x05rawId\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x14\n\x0c\x63urrentIndex\x18\x03 \x01(\r\x12\x18\n\x0cvalidIndexes\x18\x04 \x03(\rB\x02\x10\x01\x12\x36\n\x0b\x61\x63\x63ountType\x18\x05 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType:\x04\x45\x32\x45\x45\"z\n\x17\x41\x44VSignedDeviceIdentity\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x1b\n\x13\x61\x63\x63ountSignatureKey\x18\x02 \x01(\x0c\x12\x18\n\x10\x61\x63\x63ountSignature\x18\x03 \x01(\x0c\x12\x17\n\x0f\x64\x65viceSignature\x18\x04 \x01(\x0c\"t\n\x1b\x41\x44VSignedDeviceIdentityHMAC\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x0c\n\x04hmac\x18\x02 \x01(\x0c\x12\x36\n\x0b\x61\x63\x63ountType\x18\x03 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType:\x04\x45\x32\x45\x45\"_\n\x15\x41\x44VSignedKeyIndexList\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x18\n\x10\x61\x63\x63ountSignature\x18\x02 \x01(\x0c\x12\x1b\n\x13\x61\x63\x63ountSignatureKey\x18\x03 \x01(\x0c\"\x94\x04\n\x0b\x41IHomeState\x12\x15\n\rlastFetchTime\x18\x01 \x01(\x03\x12=\n\x11\x63\x61pabilityOptions\x18\x02 \x03(\x0b\x32\".whatsapp.AIHomeState.AIHomeOption\x12?\n\x13\x63onversationOptions\x18\x03 \x03(\x0b\x32\".whatsapp.AIHomeState.AIHomeOption\x1a\xed\x02\n\x0c\x41IHomeOption\x12\x41\n\x04type\x18\x01 \x01(\x0e\x32\x33.whatsapp.AIHomeState.AIHomeOption.AIHomeActionType\x12\r\n\x05title\x18\x02 \x01(\t\x12\x12\n\npromptText\x18\x03 \x01(\t\x12\x11\n\tsessionId\x18\x04 \x01(\t\x12\x1a\n\x12imageWdsIdentifier\x18\x05 \x01(\t\x12\x16\n\x0eimageTintColor\x18\x06 \x01(\t\x12\x1c\n\x14imageBackgroundColor\x18\x07 \x01(\t\x12\x12\n\ncardTypeId\x18\x08 \x01(\t\"~\n\x10\x41IHomeActionType\x12\n\n\x06PROMPT\x10\x00\x12\x10\n\x0c\x43REATE_IMAGE\x10\x01\x12\x11\n\rANIMATE_PHOTO\x10\x02\x12\x10\n\x0c\x41NALYZE_FILE\x10\x03\x12\x0f\n\x0b\x43OLLABORATE\x10\x04\x12\x16\n\x12OPEN_GREETING_CARD\x10\x05\"f\n\x18\x41IMediaCollectionMessage\x12\x14\n\x0c\x63ollectionId\x18\x01 \x01(\t\x12\x1a\n\x12\x65xpectedMediaCount\x18\x02 \x01(\r\x12\x18\n\x10hasGlobalCaption\x18\x03 \x01(\x08\"K\n\x19\x41IMediaCollectionMetadata\x12\x14\n\x0c\x63ollectionId\x18\x01 \x01(\t\x12\x18\n\x10uploadOrderIndex\x18\x02 \x01(\r\"M\n\x13\x41IMetadataOperation\x12\x36\n\x11hatchMetadataSync\x18\x01 \x01(\x0b\x32\x1b.whatsapp.HatchMetadataSync\"\xbb\x01\n\x0c\x41IProvenance\x12\x35\n\x0c\x63\x32PaMetadata\x18\x01 \x01(\x0b\x32\x1f.whatsapp.AIProvenance.Metadata\x12\x35\n\x0ciptcMetadata\x18\x02 \x01(\x0b\x32\x1f.whatsapp.AIProvenance.Metadata\x1a=\n\x08Metadata\x12\x18\n\x10\x63reatedWithGenAi\x18\x01 \x01(\x08\x12\x17\n\x0f\x65\x64itedWithGenAi\x18\x02 \x01(\x08\"p\n\rAIQueryFanout\x12(\n\nmessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\"]\n\x14\x41IRegenerateMetadata\x12(\n\nmessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x1b\n\x13responseTimestampMs\x18\x02 \x01(\x03\"\xc1\x04\n\x1a\x41IRichResponseCodeMetadata\x12\x14\n\x0c\x63odeLanguage\x18\x01 \x01(\t\x12P\n\ncodeBlocks\x18\x02 \x03(\x0b\x32<.whatsapp.AIRichResponseCodeMetadata.AIRichResponseCodeBlock\x1a\x8b\x01\n\x17\x41IRichResponseCodeBlock\x12[\n\rhighlightType\x18\x01 \x01(\x0e\x32\x44.whatsapp.AIRichResponseCodeMetadata.AIRichResponseCodeHighlightType\x12\x13\n\x0b\x63odeContent\x18\x02 \x01(\t\"\xac\x02\n\x1f\x41IRichResponseCodeHighlightType\x12+\n\'AI_RICH_RESPONSE_CODE_HIGHLIGHT_DEFAULT\x10\x00\x12+\n\'AI_RICH_RESPONSE_CODE_HIGHLIGHT_KEYWORD\x10\x01\x12*\n&AI_RICH_RESPONSE_CODE_HIGHLIGHT_METHOD\x10\x02\x12*\n&AI_RICH_RESPONSE_CODE_HIGHLIGHT_STRING\x10\x03\x12*\n&AI_RICH_RESPONSE_CODE_HIGHLIGHT_NUMBER\x10\x04\x12+\n\'AI_RICH_RESPONSE_CODE_HIGHLIGHT_COMMENT\x10\x05\"\x89\x04\n\"AIRichResponseContentItemsMetadata\x12\x65\n\ritemsMetadata\x18\x01 \x03(\x0b\x32N.whatsapp.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadata\x12M\n\x0b\x63ontentType\x18\x02 \x01(\x0e\x32\x38.whatsapp.AIRichResponseContentItemsMetadata.ContentType\x1a\x99\x01\n!AIRichResponseContentItemMetadata\x12W\n\x08reelItem\x18\x01 \x01(\x0b\x32\x43.whatsapp.AIRichResponseContentItemsMetadata.AIRichResponseReelItemH\x00\x42\x1b\n\x19\x61iRichResponseContentItem\x1ag\n\x16\x41IRichResponseReelItem\x12\r\n\x05title\x18\x01 \x01(\t\x12\x16\n\x0eprofileIconUrl\x18\x02 \x01(\t\x12\x14\n\x0cthumbnailUrl\x18\x03 \x01(\t\x12\x10\n\x08videoUrl\x18\x04 \x01(\t\"(\n\x0b\x43ontentType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08\x43\x41ROUSEL\x10\x01\"\xe5\x02\n\x1d\x41IRichResponseDynamicMetadata\x12W\n\x04type\x18\x01 \x01(\x0e\x32I.whatsapp.AIRichResponseDynamicMetadata.AIRichResponseDynamicMetadataType\x12\x0f\n\x07version\x18\x02 \x01(\x04\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x11\n\tloopCount\x18\x04 \x01(\r\"\xb9\x01\n!AIRichResponseDynamicMetadataType\x12\x32\n.AI_RICH_RESPONSE_DYNAMIC_METADATA_TYPE_UNKNOWN\x10\x00\x12\x30\n,AI_RICH_RESPONSE_DYNAMIC_METADATA_TYPE_IMAGE\x10\x01\x12.\n*AI_RICH_RESPONSE_DYNAMIC_METADATA_TYPE_GIF\x10\x02\"\x8e\x01\n\x1f\x41IRichResponseGridImageMetadata\x12\x36\n\x0cgridImageUrl\x18\x01 \x01(\x0b\x32 .whatsapp.AIRichResponseImageURL\x12\x33\n\timageUrls\x18\x02 \x03(\x0b\x32 .whatsapp.AIRichResponseImageURL\"]\n\x16\x41IRichResponseImageURL\x12\x17\n\x0fimagePreviewUrl\x18\x01 \x01(\t\x12\x17\n\x0fimageHighResUrl\x18\x02 \x01(\t\x12\x11\n\tsourceUrl\x18\x03 \x01(\t\"\x95\x03\n!AIRichResponseInlineImageMetadata\x12\x32\n\x08imageUrl\x18\x01 \x01(\x0b\x32 .whatsapp.AIRichResponseImageURL\x12\x11\n\timageText\x18\x02 \x01(\t\x12[\n\talignment\x18\x03 \x01(\x0e\x32H.whatsapp.AIRichResponseInlineImageMetadata.AIRichResponseImageAlignment\x12\x12\n\ntapLinkUrl\x18\x04 \x01(\t\"\xb7\x01\n\x1c\x41IRichResponseImageAlignment\x12\x31\n-AI_RICH_RESPONSE_IMAGE_LAYOUT_LEADING_ALIGNED\x10\x00\x12\x32\n.AI_RICH_RESPONSE_IMAGE_LAYOUT_TRAILING_ALIGNED\x10\x01\x12\x30\n,AI_RICH_RESPONSE_IMAGE_LAYOUT_CENTER_ALIGNED\x10\x02\"\xf0\x02\n\x1b\x41IRichResponseLatexMetadata\x12\x0c\n\x04text\x18\x01 \x01(\t\x12X\n\x0b\x65xpressions\x18\x02 \x03(\x0b\x32\x43.whatsapp.AIRichResponseLatexMetadata.AIRichResponseLatexExpression\x1a\xe8\x01\n\x1d\x41IRichResponseLatexExpression\x12\x17\n\x0flatexExpression\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\r\n\x05width\x18\x03 \x01(\x01\x12\x0e\n\x06height\x18\x04 \x01(\x01\x12\x12\n\nfontHeight\x18\x05 \x01(\x01\x12\x17\n\x0fimageTopPadding\x18\x06 \x01(\x01\x12\x1b\n\x13imageLeadingPadding\x18\x07 \x01(\x01\x12\x1a\n\x12imageBottomPadding\x18\x08 \x01(\x01\x12\x1c\n\x14imageTrailingPadding\x18\t \x01(\x01\"\xe2\x02\n\x19\x41IRichResponseMapMetadata\x12\x16\n\x0e\x63\x65nterLatitude\x18\x01 \x01(\x01\x12\x17\n\x0f\x63\x65nterLongitude\x18\x02 \x01(\x01\x12\x15\n\rlatitudeDelta\x18\x03 \x01(\x01\x12\x16\n\x0elongitudeDelta\x18\x04 \x01(\x01\x12T\n\x0b\x61nnotations\x18\x05 \x03(\x0b\x32?.whatsapp.AIRichResponseMapMetadata.AIRichResponseMapAnnotation\x12\x14\n\x0cshowInfoList\x18\x06 \x01(\x08\x1ay\n\x1b\x41IRichResponseMapAnnotation\x12\x18\n\x10\x61nnotationNumber\x18\x01 \x01(\r\x12\x10\n\x08latitude\x18\x02 \x01(\x01\x12\x11\n\tlongitude\x18\x03 \x01(\x01\x12\r\n\x05title\x18\x04 \x01(\t\x12\x0c\n\x04\x62ody\x18\x05 \x01(\t\"\xf8\x01\n\x15\x41IRichResponseMessage\x12\x38\n\x0bmessageType\x18\x01 \x01(\x0e\x32#.whatsapp.AIRichResponseMessageType\x12\x37\n\x0bsubmessages\x18\x02 \x03(\x0b\x32\".whatsapp.AIRichResponseSubMessage\x12@\n\x0funifiedResponse\x18\x03 \x01(\x0b\x32\'.whatsapp.AIRichResponseUnifiedResponse\x12*\n\x0b\x63ontextInfo\x18\x04 \x01(\x0b\x32\x15.whatsapp.ContextInfo\"\xf6\x04\n\x18\x41IRichResponseSubMessage\x12;\n\x0bmessageType\x18\x01 \x01(\x0e\x32&.whatsapp.AIRichResponseSubMessageType\x12\x44\n\x11gridImageMetadata\x18\x02 \x01(\x0b\x32).whatsapp.AIRichResponseGridImageMetadata\x12\x13\n\x0bmessageText\x18\x03 \x01(\t\x12\x42\n\rimageMetadata\x18\x04 \x01(\x0b\x32+.whatsapp.AIRichResponseInlineImageMetadata\x12:\n\x0c\x63odeMetadata\x18\x05 \x01(\x0b\x32$.whatsapp.AIRichResponseCodeMetadata\x12<\n\rtableMetadata\x18\x06 \x01(\x0b\x32%.whatsapp.AIRichResponseTableMetadata\x12@\n\x0f\x64ynamicMetadata\x18\x07 \x01(\x0b\x32\'.whatsapp.AIRichResponseDynamicMetadata\x12<\n\rlatexMetadata\x18\x08 \x01(\x0b\x32%.whatsapp.AIRichResponseLatexMetadata\x12\x38\n\x0bmapMetadata\x18\t \x01(\x0b\x32#.whatsapp.AIRichResponseMapMetadata\x12J\n\x14\x63ontentItemsMetadata\x18\n \x01(\x0b\x32,.whatsapp.AIRichResponseContentItemsMetadata\"\xb4\x01\n\x1b\x41IRichResponseTableMetadata\x12J\n\x04rows\x18\x01 \x03(\x0b\x32<.whatsapp.AIRichResponseTableMetadata.AIRichResponseTableRow\x12\r\n\x05title\x18\x02 \x01(\t\x1a:\n\x16\x41IRichResponseTableRow\x12\r\n\x05items\x18\x01 \x03(\t\x12\x11\n\tisHeading\x18\x02 \x01(\x08\"-\n\x1d\x41IRichResponseUnifiedResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"X\n\x1c\x41ISubscriptionUpsellMetadata\x12\x38\n\x0brequestType\x18\x01 \x01(\x0e\x32#.whatsapp.AISubscriptionRequestType\"\xed\x02\n\x0c\x41IThreadInfo\x12=\n\nserverInfo\x18\x01 \x01(\x0b\x32).whatsapp.AIThreadInfo.AIThreadServerInfo\x12=\n\nclientInfo\x18\x02 \x01(\x0b\x32).whatsapp.AIThreadInfo.AIThreadClientInfo\x1a\xb9\x01\n\x12\x41IThreadClientInfo\x12\x44\n\x04type\x18\x01 \x01(\x0e\x32\x36.whatsapp.AIThreadInfo.AIThreadClientInfo.AIThreadType\x12\x15\n\rsourceChatJid\x18\x02 \x01(\t\"F\n\x0c\x41IThreadType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\x12\r\n\tINCOGNITO\x10\x02\x12\r\n\tSIDE_CHAT\x10\x03\x1a#\n\x12\x41IThreadServerInfo\x12\r\n\x05title\x18\x01 \x01(\t\"X\n\x07\x41\x63\x63ount\x12\x0b\n\x03lid\x18\x01 \x01(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x13\n\x0b\x63ountryCode\x18\x03 \x01(\t\x12\x19\n\x11isUsernameDeleted\x18\x04 \x01(\x08\"g\n\x18\x41\x63\x63ountLinkingOpaqueData\x12\x13\n\x0b\x61\x63\x63\x65sstoken\x18\x01 \x01(\t\x12\x0c\n\x04\x66\x62id\x18\x02 \x01(\t\x12\r\n\x05nonce\x18\x03 \x01(\t\x12\x19\n\x11\x65ncryptedPassword\x18\x04 \x01(\t\".\n\nActionLink\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x13\n\x0b\x62uttonTitle\x18\x02 \x01(\t\"w\n\x14\x41utoDownloadSettings\x12\x16\n\x0e\x64ownloadImages\x18\x01 \x01(\x08\x12\x15\n\rdownloadAudio\x18\x02 \x01(\x08\x12\x15\n\rdownloadVideo\x18\x03 \x01(\x08\x12\x19\n\x11\x64ownloadDocuments\x18\x04 \x01(\x08\"4\n\x12\x41vatarUserSettings\x12\x0c\n\x04\x66\x62id\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t\"x\n\x0c\x42\x61\x63kwardEdge\x12 \n\x18\x65ncryptedPrevEpochAnonId\x18\x01 \x01(\x0c\x12!\n\x19\x65ncryptedPrevEpochRootKey\x18\x02 \x01(\x0c\x12#\n\x1bprevEpochRootKeyFingerprint\x18\x03 \x01(\x0c\"\xb2\x02\n\x12\x42izAccountLinkInfo\x12\x1b\n\x13whatsappBizAcctFbid\x18\x01 \x01(\x04\x12\x1a\n\x12whatsappAcctNumber\x18\x02 \x01(\t\x12\x11\n\tissueTime\x18\x03 \x01(\x04\x12\x41\n\x0bhostStorage\x18\x04 \x01(\x0e\x32,.whatsapp.BizAccountLinkInfo.HostStorageType\x12=\n\x0b\x61\x63\x63ountType\x18\x05 \x01(\x0e\x32(.whatsapp.BizAccountLinkInfo.AccountType\"\x1d\n\x0b\x41\x63\x63ountType\x12\x0e\n\nENTERPRISE\x10\x00\"/\n\x0fHostStorageType\x12\x0e\n\nON_PREMISE\x10\x00\x12\x0c\n\x08\x46\x41\x43\x45\x42OOK\x10\x01\"b\n\x11\x42izAccountPayload\x12\x34\n\tvnameCert\x18\x01 \x01(\x0b\x32!.whatsapp.VerifiedNameCertificate\x12\x17\n\x0f\x62izAcctLinkInfo\x18\x02 \x01(\x0c\"\xe6\x03\n\x0f\x42izIdentityInfo\x12<\n\x06vlevel\x18\x01 \x01(\x0e\x32,.whatsapp.BizIdentityInfo.VerifiedLevelValue\x12\x34\n\tvnameCert\x18\x02 \x01(\x0b\x32!.whatsapp.VerifiedNameCertificate\x12\x0e\n\x06signed\x18\x03 \x01(\x08\x12\x0f\n\x07revoked\x18\x04 \x01(\x08\x12>\n\x0bhostStorage\x18\x05 \x01(\x0e\x32).whatsapp.BizIdentityInfo.HostStorageType\x12@\n\x0c\x61\x63tualActors\x18\x06 \x01(\x0e\x32*.whatsapp.BizIdentityInfo.ActualActorsType\x12\x15\n\rprivacyModeTs\x18\x07 \x01(\x04\x12\x17\n\x0f\x66\x65\x61tureControls\x18\x08 \x01(\x04\"%\n\x10\x41\x63tualActorsType\x12\x08\n\x04SELF\x10\x00\x12\x07\n\x03\x42SP\x10\x01\"/\n\x0fHostStorageType\x12\x0e\n\nON_PREMISE\x10\x00\x12\x0c\n\x08\x46\x41\x43\x45\x42OOK\x10\x01\"4\n\x12VerifiedLevelValue\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03LOW\x10\x01\x12\x08\n\x04HIGH\x10\x02\"\xe7\x01\n\x18\x42otAgeCollectionMetadata\x12\x1d\n\x15\x61geCollectionEligible\x18\x01 \x01(\x08\x12*\n\"shouldTriggerAgeCollectionOnClient\x18\x02 \x01(\x08\x12O\n\x11\x61geCollectionType\x18\x03 \x01(\x0e\x32\x34.whatsapp.BotAgeCollectionMetadata.AgeCollectionType\"/\n\x11\x41geCollectionType\x12\x0e\n\nO18_BINARY\x10\x00\x12\n\n\x06WAFFLE\x10\x01\"B\n\x18\x42otAgentDeepLinkMetadata\x12\r\n\x05token\x18\x01 \x01(\t\x12\x17\n\x0f\x63lientPublicKey\x18\x02 \x01(\x0c\"P\n\x10\x42otAgentMetadata\x12<\n\x10\x64\x65\x65pLinkMetadata\x18\x01 \x01(\x0b\x32\".whatsapp.BotAgentDeepLinkMetadata\"\xaf\x13\n\x15\x42otCapabilityMetadata\x12G\n\x0c\x63\x61pabilities\x18\x01 \x03(\x0e\x32\x31.whatsapp.BotCapabilityMetadata.BotCapabilityType\"\xcc\x12\n\x11\x42otCapabilityType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x16\n\x12PROGRESS_INDICATOR\x10\x01\x12\x19\n\x15RICH_RESPONSE_HEADING\x10\x02\x12\x1d\n\x19RICH_RESPONSE_NESTED_LIST\x10\x03\x12\r\n\tAI_MEMORY\x10\x04\x12 \n\x1cRICH_RESPONSE_THREAD_SURFING\x10\x05\x12\x17\n\x13RICH_RESPONSE_TABLE\x10\x06\x12\x16\n\x12RICH_RESPONSE_CODE\x10\x07\x12%\n!RICH_RESPONSE_STRUCTURED_RESPONSE\x10\x08\x12\x1e\n\x1aRICH_RESPONSE_INLINE_IMAGE\x10\t\x12#\n\x1fWA_IG_1P_PLUGIN_RANKING_CONTROL\x10\n\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_1\x10\x0b\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_2\x10\x0c\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_3\x10\r\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_4\x10\x0e\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_5\x10\x0f\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_6\x10\x10\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_7\x10\x11\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_8\x10\x12\x12$\n WA_IG_1P_PLUGIN_RANKING_UPDATE_9\x10\x13\x12%\n!WA_IG_1P_PLUGIN_RANKING_UPDATE_10\x10\x14\x12\x1d\n\x19RICH_RESPONSE_SUB_HEADING\x10\x15\x12\x1c\n\x18RICH_RESPONSE_GRID_IMAGE\x10\x16\x12\x18\n\x14\x41I_STUDIO_UGC_MEMORY\x10\x17\x12\x17\n\x13RICH_RESPONSE_LATEX\x10\x18\x12\x16\n\x12RICH_RESPONSE_MAPS\x10\x19\x12\x1e\n\x1aRICH_RESPONSE_INLINE_REELS\x10\x1a\x12\x14\n\x10\x41GENTIC_PLANNING\x10\x1b\x12\x13\n\x0f\x41\x43\x43OUNT_LINKING\x10\x1c\x12\x1c\n\x18STREAMING_DISAGGREGATION\x10\x1d\x12\x1f\n\x1bRICH_RESPONSE_GRID_IMAGE_3P\x10\x1e\x12\x1e\n\x1aRICH_RESPONSE_LATEX_INLINE\x10\x1f\x12\x0e\n\nQUERY_PLAN\x10 \x12\x15\n\x11PROACTIVE_MESSAGE\x10!\x12\"\n\x1eRICH_RESPONSE_UNIFIED_RESPONSE\x10\"\x12\x15\n\x11PROMOTION_MESSAGE\x10#\x12\x1b\n\x17SIMPLIFIED_PROFILE_PAGE\x10$\x12$\n RICH_RESPONSE_SOURCES_IN_MESSAGE\x10%\x12%\n!RICH_RESPONSE_SIDE_BY_SIDE_SURVEY\x10&\x12(\n$RICH_RESPONSE_UNIFIED_TEXT_COMPONENT\x10\'\x12\x14\n\x10\x41I_SHARED_MEMORY\x10(\x12!\n\x1dRICH_RESPONSE_UNIFIED_SOURCES\x10)\x12*\n&RICH_RESPONSE_UNIFIED_DOMAIN_CITATIONS\x10*\x12)\n%RICH_RESPONSE_UR_INLINE_REELS_ENABLED\x10+\x12\'\n#RICH_RESPONSE_UR_MEDIA_GRID_ENABLED\x10,\x12*\n&RICH_RESPONSE_UR_TIMESTAMP_PLACEHOLDER\x10-\x12\x1f\n\x1bRICH_RESPONSE_IN_APP_SURVEY\x10.\x12\x1e\n\x1a\x41I_RESPONSE_MODEL_BRANDING\x10/\x12\'\n#SESSION_TRANSPARENCY_SYSTEM_MESSAGE\x10\x30\x12\x1e\n\x1aRICH_RESPONSE_UR_REASONING\x10\x31\x12(\n$RICH_RESPONSE_UR_ZEITGEIST_CITATIONS\x10\x32\x12\'\n#RICH_RESPONSE_UR_ZEITGEIST_CAROUSEL\x10\x33\x12 \n\x1c\x41I_IMAGINE_LOADING_INDICATOR\x10\x34\x12\x1c\n\x18RICH_RESPONSE_UR_IMAGINE\x10\x35\x12-\n)AI_IMAGINE_UR_TO_NATIVE_LOADING_INDICATOR\x10\x36\x12\"\n\x1eRICH_RESPONSE_UR_BLOKS_ENABLED\x10\x37\x12&\n\"RICH_RESPONSE_INLINE_LINKS_ENABLED\x10\x38\x12\"\n\x1eRICH_RESPONSE_UR_IMAGINE_VIDEO\x10\x39\x12\x18\n\x14JSON_PATCH_STREAMING\x10:\x12\x17\n\x13\x41I_TAB_FORCE_CLIPPY\x10;\x12%\n!UNIFIED_RESPONSE_EMBEDDED_SCREENS\x10<\x12\x1b\n\x17\x41I_SUBSCRIPTION_ENABLED\x10=\x12.\n*UNIFIED_RESPONSE_AI_CONTENT_SEARCH_ENABLED\x10>\x12+\n\'UNIFIED_RESPONSE_MARKDOWN_LINKS_ENABLED\x10?\x12$\n AI_RICH_RESPONSE_MAPS_V2_ENABLED\x10@\x12$\n AI_SUBSCRIPTION_METERING_ENABLED\x10\x41\x12\'\n#RICH_RESPONSE_SPORTS_WIDGET_ENABLED\x10\x42\x12&\n\"AI_RICH_RESPONSE_ARTIFACTS_ENABLED\x10\x43\x12+\n\'AI_RICH_RESPONSE_EMAIL_CALENDAR_ENABLED\x10\x44\x12&\n\"AI_RICH_RESPONSE_REMINDERS_ENABLED\x10\x45\"\\\n\x12\x42otCommandMetadata\x12\x13\n\x0b\x63ommandName\x18\x01 \x01(\t\x12\x1a\n\x12\x63ommandDescription\x18\x02 \x01(\t\x12\x15\n\rcommandPrompt\x18\x03 \x01(\t\"\xa8\x01\n\x1a\x42otDocumentMessageMetadata\x12K\n\npluginType\x18\x01 \x01(\x0e\x32\x37.whatsapp.BotDocumentMessageMetadata.DocumentPluginType\"=\n\x12\x44ocumentPluginType\x12\x13\n\x0fTEXT_EXTRACTION\x10\x00\x12\x12\n\x0eOCR_AND_IMAGES\x10\x01\"\x86\x1a\n\x12\x42otFeedbackMessage\x12(\n\nmessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12:\n\x04kind\x18\x02 \x01(\x0e\x32,.whatsapp.BotFeedbackMessage.BotFeedbackKind\x12\x0c\n\x04text\x18\x03 \x01(\t\x12\x14\n\x0ckindNegative\x18\x04 \x01(\x04\x12\x14\n\x0ckindPositive\x18\x05 \x01(\x04\x12;\n\nkindReport\x18\x06 \x01(\x0e\x32\'.whatsapp.BotFeedbackMessage.ReportKind\x12W\n\x18sideBySideSurveyMetadata\x18\x07 \x01(\x0b\x32\x35.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata\x1a\x9d\x0e\n\x18SideBySideSurveyMetadata\x12\x19\n\x11selectedRequestId\x18\x01 \x01(\t\x12\x10\n\x08surveyId\x18\x02 \x01(\r\x12\x18\n\x10simonSessionFbid\x18\x03 \x01(\t\x12\x14\n\x0cresponseOtid\x18\x04 \x01(\t\x12!\n\x19responseTimestampMsString\x18\x05 \x01(\t\x12!\n\x19isSelectedResponsePrimary\x18\x06 \x01(\x08\x12\x17\n\x0fmessageIdToEdit\x18\x07 \x01(\t\x12j\n\ranalyticsData\x18\x08 \x01(\x0b\x32S.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SideBySideSurveyAnalyticsData\x12v\n\x13metaAiAnalyticsData\x18\t \x01(\x0b\x32Y.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData\x1ag\n\x1dSideBySideSurveyAnalyticsData\x12\x12\n\ntessaEvent\x18\x01 \x01(\t\x12\x18\n\x10tessaSessionFbid\x18\x02 \x01(\t\x12\x18\n\x10simonSessionFbid\x18\x03 \x01(\t\x1a\xf7\t\n#SidebySideSurveyMetaAiAnalyticsData\x12\x10\n\x08surveyId\x18\x01 \x01(\r\x12\x19\n\x11primaryResponseId\x18\x02 \x01(\t\x12\x13\n\x0btestArmName\x18\x03 \x01(\t\x12\x19\n\x11timestampMsString\x18\x04 \x01(\t\x12\x9d\x01\n\x12\x63taImpressionEvent\x18\x05 \x01(\x0b\x32\x80\x01.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAImpressionEventData\x12\x92\x01\n\rctaClickEvent\x18\x06 \x01(\x0b\x32{.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAClickEventData\x12\x9f\x01\n\x13\x63\x61rdImpressionEvent\x18\x07 \x01(\x0b\x32\x81\x01.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCardImpressionEventData\x12\x92\x01\n\rresponseEvent\x18\x08 \x01(\x0b\x32{.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyResponseEventData\x12\x90\x01\n\x0c\x61\x62\x61ndonEvent\x18\t \x01(\x0b\x32z.whatsapp.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyAbandonEventData\x1a\x44\n SideBySideSurveyAbandonEventData\x12 \n\x18\x61\x62\x61ndonDwellTimeMsString\x18\x01 \x01(\t\x1a\\\n!SideBySideSurveyCTAClickEventData\x12\x17\n\x0fisSurveyExpired\x18\x01 \x01(\x08\x12\x1e\n\x16\x63lickDwellTimeMsString\x18\x02 \x01(\t\x1a\x41\n&SideBySideSurveyCTAImpressionEventData\x12\x17\n\x0fisSurveyExpired\x18\x01 \x01(\x08\x1a)\n\'SideBySideSurveyCardImpressionEventData\x1a\x62\n!SideBySideSurveyResponseEventData\x12!\n\x19responseDwellTimeMsString\x18\x01 \x01(\t\x12\x1a\n\x12selectedResponseId\x18\x02 \x01(\t\"\xd7\x04\n\x0f\x42otFeedbackKind\x12\x19\n\x15\x42OT_FEEDBACK_POSITIVE\x10\x00\x12!\n\x1d\x42OT_FEEDBACK_NEGATIVE_GENERIC\x10\x01\x12!\n\x1d\x42OT_FEEDBACK_NEGATIVE_HELPFUL\x10\x02\x12%\n!BOT_FEEDBACK_NEGATIVE_INTERESTING\x10\x03\x12\"\n\x1e\x42OT_FEEDBACK_NEGATIVE_ACCURATE\x10\x04\x12\x1e\n\x1a\x42OT_FEEDBACK_NEGATIVE_SAFE\x10\x05\x12\x1f\n\x1b\x42OT_FEEDBACK_NEGATIVE_OTHER\x10\x06\x12!\n\x1d\x42OT_FEEDBACK_NEGATIVE_REFUSED\x10\x07\x12\x30\n,BOT_FEEDBACK_NEGATIVE_NOT_VISUALLY_APPEALING\x10\x08\x12.\n*BOT_FEEDBACK_NEGATIVE_NOT_RELEVANT_TO_TEXT\x10\t\x12&\n\"BOT_FEEDBACK_NEGATIVE_PERSONALIZED\x10\n\x12!\n\x1d\x42OT_FEEDBACK_NEGATIVE_CLARITY\x10\x0b\x12\x35\n1BOT_FEEDBACK_NEGATIVE_DOESNT_LOOK_LIKE_THE_PERSON\x10\x0c\x12\x35\n1BOT_FEEDBACK_NEGATIVE_HALLUCINATION_INTERNAL_ONLY\x10\r\x12\x19\n\x15\x42OT_FEEDBACK_NEGATIVE\x10\x0e\"\xcb\x03\n\x1f\x42otFeedbackKindMultipleNegative\x12*\n&BOT_FEEDBACK_MULTIPLE_NEGATIVE_GENERIC\x10\x01\x12*\n&BOT_FEEDBACK_MULTIPLE_NEGATIVE_HELPFUL\x10\x02\x12.\n*BOT_FEEDBACK_MULTIPLE_NEGATIVE_INTERESTING\x10\x04\x12+\n\'BOT_FEEDBACK_MULTIPLE_NEGATIVE_ACCURATE\x10\x08\x12\'\n#BOT_FEEDBACK_MULTIPLE_NEGATIVE_SAFE\x10\x10\x12(\n$BOT_FEEDBACK_MULTIPLE_NEGATIVE_OTHER\x10 \x12*\n&BOT_FEEDBACK_MULTIPLE_NEGATIVE_REFUSED\x10@\x12:\n5BOT_FEEDBACK_MULTIPLE_NEGATIVE_NOT_VISUALLY_APPEALING\x10\x80\x01\x12\x38\n3BOT_FEEDBACK_MULTIPLE_NEGATIVE_NOT_RELEVANT_TO_TEXT\x10\x80\x02\"M\n\x1f\x42otFeedbackKindMultiplePositive\x12*\n&BOT_FEEDBACK_MULTIPLE_POSITIVE_GENERIC\x10\x01\"#\n\nReportKind\x12\x08\n\x04NONE\x10\x00\x12\x0b\n\x07GENERIC\x10\x01\"W\n\x10\x42otGroupMetadata\x12\x43\n\x14participantsMetadata\x18\x01 \x03(\x0b\x32%.whatsapp.BotGroupParticipantMetadata\".\n\x1b\x42otGroupParticipantMetadata\x12\x0f\n\x07\x62otFbid\x18\x01 \x01(\t\"^\n\x17\x42otHistoryShareMetadata\x12\x43\n\x14participantsMetadata\x18\x01 \x03(\x0b\x32%.whatsapp.BotGroupParticipantMetadata\"\xb0\x01\n\x12\x42otImagineMetadata\x12=\n\x0bimagineType\x18\x01 \x01(\x0e\x32(.whatsapp.BotImagineMetadata.ImagineType\x12\x13\n\x0bshortPrompt\x18\x02 \x01(\t\"F\n\x0bImagineType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07IMAGINE\x10\x01\x12\x08\n\x04MEMU\x10\x02\x12\t\n\x05\x46LASH\x10\x03\x12\x08\n\x04\x45\x44IT\x10\x04\"\xb0\x01\n\x1c\x42otInfrastructureDiagnostics\x12\x45\n\nbotBackend\x18\x01 \x01(\x0e\x32\x31.whatsapp.BotInfrastructureDiagnostics.BotBackend\x12\x11\n\ttoolsUsed\x18\x02 \x03(\t\x12\x12\n\nisThinking\x18\x03 \x01(\x08\"\"\n\nBotBackend\x12\x08\n\x04\x41\x41PI\x10\x00\x12\n\n\x06\x43LIPPY\x10\x01\"\x89\x01\n\x10\x42otLinkedAccount\x12=\n\x04type\x18\x01 \x01(\x0e\x32/.whatsapp.BotLinkedAccount.BotLinkedAccountType\"6\n\x14\x42otLinkedAccountType\x12\x1e\n\x1a\x42OT_LINKED_ACCOUNT_TYPE_1P\x10\x00\"t\n\x19\x42otLinkedAccountsMetadata\x12,\n\x08\x61\x63\x63ounts\x18\x01 \x03(\x0b\x32\x1a.whatsapp.BotLinkedAccount\x12\x14\n\x0c\x61\x63\x41uthTokens\x18\x02 \x01(\x0c\x12\x13\n\x0b\x61\x63\x45rrorCode\x18\x03 \x01(\x05\"\x89\x02\n\x10\x42otMediaMetadata\x12\x12\n\nfileSha256\x18\x01 \x01(\t\x12\x10\n\x08mediaKey\x18\x02 \x01(\t\x12\x15\n\rfileEncSha256\x18\x03 \x01(\t\x12\x12\n\ndirectPath\x18\x04 \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x05 \x01(\x03\x12\x10\n\x08mimetype\x18\x06 \x01(\t\x12\x43\n\x0forientationType\x18\x07 \x01(\x0e\x32*.whatsapp.BotMediaMetadata.OrientationType\"2\n\x0fOrientationType\x12\n\n\x06\x43\x45NTER\x10\x01\x12\x08\n\x04LEFT\x10\x02\x12\t\n\x05RIGHT\x10\x03\"-\n\rBotMemoryFact\x12\x0c\n\x04\x66\x61\x63t\x18\x01 \x01(\t\x12\x0e\n\x06\x66\x61\x63tId\x18\x02 \x01(\t\"\x83\x01\n\x11\x42otMemoryMetadata\x12+\n\naddedFacts\x18\x01 \x03(\x0b\x32\x17.whatsapp.BotMemoryFact\x12-\n\x0cremovedFacts\x18\x02 \x03(\x0b\x32\x17.whatsapp.BotMemoryFact\x12\x12\n\ndisclaimer\x18\x03 \x01(\t\"A\n\x0f\x42otMemuMetadata\x12.\n\nfaceImages\x18\x01 \x03(\x0b\x32\x1a.whatsapp.BotMediaMetadata\"\x93\x01\n\x10\x42otMessageOrigin\x12=\n\x04type\x18\x01 \x01(\x0e\x32/.whatsapp.BotMessageOrigin.BotMessageOriginType\"@\n\x14\x42otMessageOriginType\x12(\n$BOT_MESSAGE_ORIGIN_TYPE_AI_INITIATED\x10\x00\"G\n\x18\x42otMessageOriginMetadata\x12+\n\x07origins\x18\x01 \x03(\x0b\x32\x1a.whatsapp.BotMessageOrigin\"j\n\x15\x42otMessageSharingInfo\x12;\n\x13\x62otEntryPointOrigin\x18\x01 \x01(\x0e\x32\x1e.whatsapp.BotMetricsEntryPoint\x12\x14\n\x0c\x66orwardScore\x18\x02 \x01(\r\"\xa8\x13\n\x0b\x42otMetadata\x12\x11\n\tpersonaId\x18\x02 \x01(\t\x12\x33\n\x0epluginMetadata\x18\x03 \x01(\x0b\x32\x1b.whatsapp.BotPluginMetadata\x12\x45\n\x17suggestedPromptMetadata\x18\x04 \x01(\x0b\x32$.whatsapp.BotSuggestedPromptMetadata\x12\x12\n\ninvokerJid\x18\x05 \x01(\t\x12\x35\n\x0fsessionMetadata\x18\x06 \x01(\x0b\x32\x1c.whatsapp.BotSessionMetadata\x12/\n\x0cmemuMetadata\x18\x07 \x01(\x0b\x32\x19.whatsapp.BotMemuMetadata\x12\x10\n\x08timezone\x18\x08 \x01(\t\x12\x37\n\x10reminderMetadata\x18\t \x01(\x0b\x32\x1d.whatsapp.BotReminderMetadata\x12\x31\n\rmodelMetadata\x18\n \x01(\x0b\x32\x1a.whatsapp.BotModelMetadata\x12\x1d\n\x15messageDisclaimerText\x18\x0b \x01(\t\x12I\n\x19progressIndicatorMetadata\x18\x0c \x01(\x0b\x32&.whatsapp.BotProgressIndicatorMetadata\x12;\n\x12\x63\x61pabilityMetadata\x18\r \x01(\x0b\x32\x1f.whatsapp.BotCapabilityMetadata\x12\x35\n\x0fimagineMetadata\x18\x0e \x01(\x0b\x32\x1c.whatsapp.BotImagineMetadata\x12\x33\n\x0ememoryMetadata\x18\x0f \x01(\x0b\x32\x1b.whatsapp.BotMemoryMetadata\x12\x39\n\x11renderingMetadata\x18\x10 \x01(\x0b\x32\x1e.whatsapp.BotRenderingMetadata\x12\x38\n\x12\x62otMetricsMetadata\x18\x11 \x01(\x0b\x32\x1c.whatsapp.BotMetricsMetadata\x12\x46\n\x19\x62otLinkedAccountsMetadata\x18\x12 \x01(\x0b\x32#.whatsapp.BotLinkedAccountsMetadata\x12\x41\n\x1brichResponseSourcesMetadata\x18\x13 \x01(\x0b\x32\x1c.whatsapp.BotSourcesMetadata\x12\x1d\n\x15\x61iConversationContext\x18\x14 \x01(\x0c\x12J\n\x1b\x62otPromotionMessageMetadata\x18\x15 \x01(\x0b\x32%.whatsapp.BotPromotionMessageMetadata\x12\x44\n\x18\x62otModeSelectionMetadata\x18\x16 \x01(\x0b\x32\".whatsapp.BotModeSelectionMetadata\x12\x34\n\x10\x62otQuotaMetadata\x18\x17 \x01(\x0b\x32\x1a.whatsapp.BotQuotaMetadata\x12\x44\n\x18\x62otAgeCollectionMetadata\x18\x18 \x01(\x0b\x32\".whatsapp.BotAgeCollectionMetadata\x12#\n\x1b\x63onversationStarterPromptId\x18\x19 \x01(\t\x12\x15\n\rbotResponseId\x18\x1a \x01(\t\x12H\n\x14verificationMetadata\x18\x1b \x01(\x0b\x32*.whatsapp.BotSignatureVerificationMetadata\x12\x45\n\x17unifiedResponseMutation\x18\x1c \x01(\x0b\x32$.whatsapp.BotUnifiedResponseMutation\x12\x44\n\x18\x62otMessageOriginMetadata\x18\x1d \x01(\x0b\x32\".whatsapp.BotMessageOriginMetadata\x12@\n\x16inThreadSurveyMetadata\x18\x1e \x01(\x0b\x32 .whatsapp.InThreadSurveyMetadata\x12-\n\rbotThreadInfo\x18\x1f \x01(\x0b\x32\x16.whatsapp.AIThreadInfo\x12:\n\x12regenerateMetadata\x18 \x01(\x0b\x32\x1e.whatsapp.AIRegenerateMetadata\x12J\n\x1bsessionTransparencyMetadata\x18! \x01(\x0b\x32%.whatsapp.SessionTransparencyMetadata\x12H\n\x1a\x62otDocumentMessageMetadata\x18\" \x01(\x0b\x32$.whatsapp.BotDocumentMessageMetadata\x12\x34\n\x10\x62otGroupMetadata\x18# \x01(\x0b\x32\x1a.whatsapp.BotGroupMetadata\x12H\n\x1a\x62otRenderingConfigMetadata\x18$ \x01(\x0b\x32$.whatsapp.BotRenderingConfigMetadata\x12L\n\x1c\x62otInfrastructureDiagnostics\x18% \x01(\x0b\x32&.whatsapp.BotInfrastructureDiagnostics\x12\x46\n\x19\x61iMediaCollectionMetadata\x18& \x01(\x0b\x32#.whatsapp.AIMediaCollectionMetadata\x12\x35\n\x0f\x63ommandMetadata\x18\' \x01(\x0b\x32\x1c.whatsapp.BotCommandMetadata\x12G\n\x18resolvedToolCallMetadata\x18( \x01(\x0b\x32%.whatsapp.BotResolvedToolCallMetadata\x12J\n\x1asubscriptionUpsellMetadata\x18) \x01(\x0b\x32&.whatsapp.AISubscriptionUpsellMetadata\x12\x39\n\x11pttPromptMetadata\x18* \x01(\x0b\x32\x1e.whatsapp.BotPttPromptMetadata\x12\x42\n\x17\x62otHistoryShareMetadata\x18+ \x01(\x0b\x32!.whatsapp.BotHistoryShareMetadata\x12\x19\n\x10internalMetadata\x18\xe7\x07 \x01(\x0c\"\xa6\x01\n\x12\x42otMetricsMetadata\x12\x15\n\rdestinationId\x18\x01 \x01(\t\x12=\n\x15\x64\x65stinationEntryPoint\x18\x02 \x01(\x0e\x32\x1e.whatsapp.BotMetricsEntryPoint\x12:\n\x0cthreadOrigin\x18\x03 \x01(\x0e\x32$.whatsapp.BotMetricsThreadEntryPoint\"\xb6\x01\n\x18\x42otModeSelectionMetadata\x12\x45\n\x04mode\x18\x01 \x03(\x0e\x32\x37.whatsapp.BotModeSelectionMetadata.BotUserSelectionMode\x12\x14\n\x0coverrideMode\x18\x02 \x03(\r\"=\n\x14\x42otUserSelectionMode\x12\x10\n\x0c\x44\x45\x46\x41ULT_MODE\x10\x00\x12\x13\n\x0fTHINK_HARD_MODE\x10\x01\"\xc9\x02\n\x10\x42otModelMetadata\x12\x37\n\tmodelType\x18\x01 \x01(\x0e\x32$.whatsapp.BotModelMetadata.ModelType\x12I\n\x12premiumModelStatus\x18\x02 \x01(\x0e\x32-.whatsapp.BotModelMetadata.PremiumModelStatus\x12\x19\n\x11modelNameOverride\x18\x03 \x01(\t\"E\n\tModelType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x0e\n\nLLAMA_PROD\x10\x01\x12\x16\n\x12LLAMA_PROD_PREMIUM\x10\x02\"O\n\x12PremiumModelStatus\x12\x12\n\x0eUNKNOWN_STATUS\x10\x00\x12\r\n\tAVAILABLE\x10\x01\x12\x16\n\x12QUOTA_EXCEED_LIMIT\x10\x02\"\xf1\x04\n\x11\x42otPluginMetadata\x12<\n\x08provider\x18\x01 \x01(\x0e\x32*.whatsapp.BotPluginMetadata.SearchProvider\x12:\n\npluginType\x18\x02 \x01(\x0e\x32&.whatsapp.BotPluginMetadata.PluginType\x12\x17\n\x0fthumbnailCdnUrl\x18\x03 \x01(\t\x12\x1a\n\x12profilePhotoCdnUrl\x18\x04 \x01(\t\x12\x19\n\x11searchProviderUrl\x18\x05 \x01(\t\x12\x16\n\x0ereferenceIndex\x18\x06 \x01(\r\x12\x1a\n\x12\x65xpectedLinksCount\x18\x07 \x01(\r\x12\x13\n\x0bsearchQuery\x18\t \x01(\t\x12\x34\n\x16parentPluginMessageKey\x18\n \x01(\x0b\x32\x14.whatsapp.MessageKey\x12?\n\x0f\x64\x65precatedField\x18\x0b \x01(\x0e\x32&.whatsapp.BotPluginMetadata.PluginType\x12@\n\x10parentPluginType\x18\x0c \x01(\x0e\x32&.whatsapp.BotPluginMetadata.PluginType\x12\x15\n\rfaviconCdnUrl\x18\r \x01(\t\"7\n\nPluginType\x12\x12\n\x0eUNKNOWN_PLUGIN\x10\x00\x12\t\n\x05REELS\x10\x01\x12\n\n\x06SEARCH\x10\x02\"@\n\x0eSearchProvider\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x42ING\x10\x01\x12\n\n\x06GOOGLE\x10\x02\x12\x0b\n\x07SUPPORT\x10\x03\"\xd1\x0b\n\x1c\x42otProgressIndicatorMetadata\x12\x1b\n\x13progressDescription\x18\x01 \x01(\t\x12U\n\rstepsMetadata\x18\x02 \x03(\x0b\x32>.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata\x12\x1f\n\x17\x65stimatedCompletionTime\x18\x03 \x01(\x03\x1a\x9b\n\n\x17\x42otPlanningStepMetadata\x12\x13\n\x0bstatusTitle\x18\x01 \x01(\t\x12\x12\n\nstatusBody\x18\x02 \x01(\t\x12x\n\x0fsourcesMetadata\x18\x03 \x03(\x0b\x32_.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata\x12\x61\n\x06status\x18\x04 \x01(\x0e\x32Q.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus\x12\x13\n\x0bisReasoning\x18\x05 \x01(\x08\x12\x18\n\x10isEnhancedSearch\x18\x06 \x01(\x08\x12o\n\x08sections\x18\x07 \x03(\x0b\x32].whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata\x1a\xc1\x01\n\x1f\x42otPlanningSearchSourceMetadata\x12\r\n\x05title\x18\x01 \x01(\t\x12h\n\x08provider\x18\x02 \x01(\x0e\x32V.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider\x12\x11\n\tsourceUrl\x18\x03 \x01(\t\x12\x12\n\nfavIconUrl\x18\x04 \x01(\t\x1a\xaf\x02\n BotPlanningSearchSourcesMetadata\x12\x13\n\x0bsourceTitle\x18\x01 \x01(\t\x12\x91\x01\n\x08provider\x18\x02 \x01(\x0e\x32\x7f.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.BotPlanningSearchSourceProvider\x12\x11\n\tsourceUrl\x18\x03 \x01(\t\"O\n\x1f\x42otPlanningSearchSourceProvider\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05OTHER\x10\x01\x12\n\n\x06GOOGLE\x10\x02\x12\x08\n\x04\x42ING\x10\x03\x1a\xc4\x01\n\x1e\x42otPlanningStepSectionMetadata\x12\x14\n\x0csectionTitle\x18\x01 \x01(\t\x12\x13\n\x0bsectionBody\x18\x02 \x01(\t\x12w\n\x0fsourcesMetadata\x18\x03 \x03(\x0b\x32^.whatsapp.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata\"P\n\x17\x42otSearchSourceProvider\x12\x14\n\x10UNKNOWN_PROVIDER\x10\x00\x12\t\n\x05OTHER\x10\x01\x12\n\n\x06GOOGLE\x10\x02\x12\x08\n\x04\x42ING\x10\x03\"K\n\x12PlanningStepStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07PLANNED\x10\x01\x12\r\n\tEXECUTING\x10\x02\x12\x0c\n\x08\x46INISHED\x10\x03\"\xc5\x01\n\x1b\x42otPromotionMessageMetadata\x12M\n\rpromotionType\x18\x01 \x01(\x0e\x32\x36.whatsapp.BotPromotionMessageMetadata.BotPromotionType\x12\x13\n\x0b\x62uttonTitle\x18\x02 \x01(\t\"B\n\x10\x42otPromotionType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x07\n\x03\x43\x35\x30\x10\x01\x12\x13\n\x0fSURVEY_PLATFORM\x10\x02\"7\n\x13\x42otPromptSuggestion\x12\x0e\n\x06prompt\x18\x01 \x01(\t\x12\x10\n\x08promptId\x18\x02 \x01(\t\"J\n\x14\x42otPromptSuggestions\x12\x32\n\x0bsuggestions\x18\x01 \x03(\x0b\x32\x1d.whatsapp.BotPromptSuggestion\"*\n\x14\x42otPttPromptMetadata\x12\x12\n\ntranscript\x18\x01 \x01(\t\"\xce\x02\n\x10\x42otQuotaMetadata\x12S\n\x17\x62otFeatureQuotaMetadata\x18\x01 \x03(\x0b\x32\x32.whatsapp.BotQuotaMetadata.BotFeatureQuotaMetadata\x1a\xe4\x01\n\x17\x42otFeatureQuotaMetadata\x12V\n\x0b\x66\x65\x61tureType\x18\x01 \x01(\x0e\x32\x41.whatsapp.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType\x12\x16\n\x0eremainingQuota\x18\x02 \x01(\r\x12\x1b\n\x13\x65xpirationTimestamp\x18\x03 \x01(\x04\"<\n\x0e\x42otFeatureType\x12\x13\n\x0fUNKNOWN_FEATURE\x10\x00\x12\x15\n\x11REASONING_FEATURE\x10\x01\"\x87\x03\n\x13\x42otReminderMetadata\x12/\n\x11requestMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12<\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32,.whatsapp.BotReminderMetadata.ReminderAction\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x1c\n\x14nextTriggerTimestamp\x18\x04 \x01(\x04\x12\x42\n\tfrequency\x18\x05 \x01(\x0e\x32/.whatsapp.BotReminderMetadata.ReminderFrequency\"@\n\x0eReminderAction\x12\n\n\x06NOTIFY\x10\x01\x12\n\n\x06\x43REATE\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03\x12\n\n\x06UPDATE\x10\x04\"O\n\x11ReminderFrequency\x12\x08\n\x04ONCE\x10\x01\x12\t\n\x05\x44\x41ILY\x10\x02\x12\n\n\x06WEEKLY\x10\x03\x12\x0c\n\x08\x42IWEEKLY\x10\x04\x12\x0b\n\x07MONTHLY\x10\x05\"M\n\x1a\x42otRenderingConfigMetadata\x12\x19\n\x11\x62loksVersioningId\x18\x01 \x01(\t\x12\x14\n\x0cpixelDensity\x18\x02 \x01(\x01\"\x85\x01\n\x14\x42otRenderingMetadata\x12\x38\n\x08keywords\x18\x01 \x03(\x0b\x32&.whatsapp.BotRenderingMetadata.Keyword\x1a\x33\n\x07Keyword\x12\r\n\x05value\x18\x01 \x01(\t\x12\x19\n\x11\x61ssociatedPrompts\x18\x02 \x03(\t\"S\n\x1b\x42otResolvedToolCallMetadata\x12\x12\n\ntoolCallId\x18\x01 \x01(\t\x12 \n\x18resolutionDataSerialized\x18\x02 \x01(\t\"Z\n\x12\x42otSessionMetadata\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x31\n\rsessionSource\x18\x02 \x01(\x0e\x32\x1a.whatsapp.BotSessionSource\"b\n BotSignatureVerificationMetadata\x12>\n\x06proofs\x18\x01 \x03(\x0b\x32..whatsapp.BotSignatureVerificationUseCaseProof\"\x87\x04\n$BotSignatureVerificationUseCaseProof\x12\x0f\n\x07version\x18\x01 \x01(\x05\x12S\n\x07useCase\x18\x02 \x01(\x0e\x32\x42.whatsapp.BotSignatureVerificationUseCaseProof.BotSignatureUseCase\x12\x11\n\tsignature\x18\x03 \x01(\x0c\x12\x18\n\x10\x63\x65rtificateChain\x18\x04 \x03(\x0c\x12Z\n\x13\x63\x65rtificateChainSki\x18\x05 \x03(\x0b\x32=.whatsapp.BotSignatureVerificationUseCaseProof.CertificateSKI\x1ar\n\x0e\x43\x65rtificateSKI\x12S\n\x07useCase\x18\x01 \x01(\x0e\x32\x42.whatsapp.BotSignatureVerificationUseCaseProof.BotSignatureUseCase\x12\x0b\n\x03ski\x18\x02 \x01(\x0c\"|\n\x13\x42otSignatureUseCase\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0e\n\nWA_BOT_MSG\x10\x01\x12\x12\n\x0eWA_TEE_BOT_MSG\x10\x02\x12\r\n\tP2P_PILLS\x10\x03\x12\r\n\tWA_WAFFLE\x10\x04\x12\x12\n\x0eWA_FEATURE_PKI\x10\x05\"\x8a\x03\n\x12\x42otSourcesMetadata\x12;\n\x07sources\x18\x01 \x03(\x0b\x32*.whatsapp.BotSourcesMetadata.BotSourceItem\x1a\xb6\x02\n\rBotSourceItem\x12K\n\x08provider\x18\x01 \x01(\x0e\x32\x39.whatsapp.BotSourcesMetadata.BotSourceItem.SourceProvider\x12\x17\n\x0fthumbnailCdnUrl\x18\x02 \x01(\t\x12\x19\n\x11sourceProviderUrl\x18\x03 \x01(\t\x12\x13\n\x0bsourceQuery\x18\x04 \x01(\t\x12\x15\n\rfaviconCdnUrl\x18\x05 \x01(\t\x12\x16\n\x0e\x63itationNumber\x18\x06 \x01(\r\x12\x13\n\x0bsourceTitle\x18\x07 \x01(\t\"K\n\x0eSourceProvider\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x42ING\x10\x01\x12\n\n\x06GOOGLE\x10\x02\x12\x0b\n\x07SUPPORT\x10\x03\x12\t\n\x05OTHER\x10\x04\"\xa8\x01\n\x1a\x42otSuggestedPromptMetadata\x12\x18\n\x10suggestedPrompts\x18\x01 \x03(\t\x12\x1b\n\x13selectedPromptIndex\x18\x02 \x01(\r\x12\x39\n\x11promptSuggestions\x18\x03 \x01(\x0b\x32\x1e.whatsapp.BotPromptSuggestions\x12\x18\n\x10selectedPromptId\x18\x04 \x01(\t\"\x9f\x03\n\x1a\x42otUnifiedResponseMutation\x12L\n\x0bsbsMetadata\x18\x01 \x01(\x0b\x32\x37.whatsapp.BotUnifiedResponseMutation.SideBySideMetadata\x12[\n\x18mediaDetailsMetadataList\x18\x02 \x03(\x0b\x32\x39.whatsapp.BotUnifiedResponseMutation.MediaDetailsMetadata\x1a\x86\x01\n\x14MediaDetailsMetadata\x12\n\n\x02id\x18\x01 \x01(\t\x12\x30\n\x0chighResMedia\x18\x02 \x01(\x0b\x32\x1a.whatsapp.BotMediaMetadata\x12\x30\n\x0cpreviewMedia\x18\x03 \x01(\x0b\x32\x1a.whatsapp.BotMediaMetadata\x1aM\n\x12SideBySideMetadata\x12\x19\n\x11primaryResponseId\x18\x01 \x01(\t\x12\x1c\n\x14surveyCtaHasRendered\x18\x02 \x01(\x08\"\xe6\x06\n\rCallLogRecord\x12\x36\n\ncallResult\x18\x01 \x01(\x0e\x32\".whatsapp.CallLogRecord.CallResult\x12\x11\n\tisDndMode\x18\x02 \x01(\x08\x12<\n\rsilenceReason\x18\x03 \x01(\x0e\x32%.whatsapp.CallLogRecord.SilenceReason\x12\x10\n\x08\x64uration\x18\x04 \x01(\x03\x12\x11\n\tstartTime\x18\x05 \x01(\x03\x12\x12\n\nisIncoming\x18\x06 \x01(\x08\x12\x0f\n\x07isVideo\x18\x07 \x01(\x08\x12\x12\n\nisCallLink\x18\x08 \x01(\x08\x12\x15\n\rcallLinkToken\x18\t \x01(\t\x12\x17\n\x0fscheduledCallId\x18\n \x01(\t\x12\x0e\n\x06\x63\x61llId\x18\x0b \x01(\t\x12\x16\n\x0e\x63\x61llCreatorJid\x18\x0c \x01(\t\x12\x10\n\x08groupJid\x18\r \x01(\t\x12=\n\x0cparticipants\x18\x0e \x03(\x0b\x32\'.whatsapp.CallLogRecord.ParticipantInfo\x12\x32\n\x08\x63\x61llType\x18\x0f \x01(\x0e\x32 .whatsapp.CallLogRecord.CallType\x1aZ\n\x0fParticipantInfo\x12\x0f\n\x07userJid\x18\x01 \x01(\t\x12\x36\n\ncallResult\x18\x02 \x01(\x0e\x32\".whatsapp.CallLogRecord.CallResult\"\xaf\x01\n\nCallResult\x12\r\n\tCONNECTED\x10\x00\x12\x0c\n\x08REJECTED\x10\x01\x12\r\n\tCANCELLED\x10\x02\x12\x15\n\x11\x41\x43\x43\x45PTEDELSEWHERE\x10\x03\x12\n\n\x06MISSED\x10\x04\x12\x0b\n\x07INVALID\x10\x05\x12\x0f\n\x0bUNAVAILABLE\x10\x06\x12\x0c\n\x08UPCOMING\x10\x07\x12\n\n\x06\x46\x41ILED\x10\x08\x12\r\n\tABANDONED\x10\t\x12\x0b\n\x07ONGOING\x10\n\";\n\x08\x43\x61llType\x12\x0b\n\x07REGULAR\x10\x00\x12\x12\n\x0eSCHEDULED_CALL\x10\x01\x12\x0e\n\nVOICE_CHAT\x10\x02\"F\n\rSilenceReason\x12\x08\n\x04NONE\x10\x00\x12\r\n\tSCHEDULED\x10\x01\x12\x0b\n\x07PRIVACY\x10\x02\x12\x0f\n\x0bLIGHTWEIGHT\x10\x03\"\x97\x02\n\tCertChain\x12\x32\n\x04leaf\x18\x01 \x01(\x0b\x32$.whatsapp.CertChain.NoiseCertificate\x12:\n\x0cintermediate\x18\x02 \x01(\x0b\x32$.whatsapp.CertChain.NoiseCertificate\x1a\x99\x01\n\x10NoiseCertificate\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x1a\x61\n\x07\x44\x65tails\x12\x0e\n\x06serial\x18\x01 \x01(\r\x12\x14\n\x0cissuerSerial\x18\x02 \x01(\r\x12\x0b\n\x03key\x18\x03 \x01(\x0c\x12\x11\n\tnotBefore\x18\x04 \x01(\x04\x12\x10\n\x08notAfter\x18\x05 \x01(\x04\"W\n\x10\x43hatLockSettings\x12\x17\n\x0fhideLockedChats\x18\x01 \x01(\x08\x12*\n\nsecretCode\x18\x02 \x01(\x0b\x32\x16.whatsapp.UserPassword\"\xd9\x06\n\x11\x43hatRowOpaqueData\x12>\n\x0c\x64raftMessage\x18\x01 \x01(\x0b\x32(.whatsapp.ChatRowOpaqueData.DraftMessage\x1a\x83\x06\n\x0c\x44raftMessage\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x12\n\nomittedUrl\x18\x02 \x01(\t\x12Y\n\x13\x63twaContextLinkData\x18\x03 \x01(\x0b\x32<.whatsapp.ChatRowOpaqueData.DraftMessage.CtwaContextLinkData\x12M\n\x0b\x63twaContext\x18\x04 \x01(\x0b\x32\x38.whatsapp.ChatRowOpaqueData.DraftMessage.CtwaContextData\x12\x11\n\ttimestamp\x18\x05 \x01(\x03\x1a\xb5\x03\n\x0f\x43twaContextData\x12\x18\n\x10\x63onversionSource\x18\x01 \x01(\t\x12\x16\n\x0e\x63onversionData\x18\x02 \x01(\x0c\x12\x11\n\tsourceUrl\x18\x03 \x01(\t\x12\x10\n\x08sourceId\x18\x04 \x01(\t\x12\x12\n\nsourceType\x18\x05 \x01(\t\x12\r\n\x05title\x18\x06 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\x12\x11\n\tthumbnail\x18\x08 \x01(\t\x12\x14\n\x0cthumbnailUrl\x18\t \x01(\t\x12s\n\tmediaType\x18\n \x01(\x0e\x32`.whatsapp.ChatRowOpaqueData.DraftMessage.CtwaContextData.ContextInfoExternalAdReplyInfoMediaType\x12\x10\n\x08mediaUrl\x18\x0b \x01(\t\x12\x18\n\x10isSuspiciousLink\x18\x0c \x01(\x08\"I\n\'ContextInfoExternalAdReplyInfoMediaType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05IMAGE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\\\n\x13\x43twaContextLinkData\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\t\x12\x11\n\tsourceUrl\x18\x02 \x01(\t\x12\x12\n\nicebreaker\x18\x03 \x01(\t\x12\r\n\x05phone\x18\x04 \x01(\t\"L\n\x08\x43itation\x12\r\n\x05title\x18\x01 \x02(\t\x12\x10\n\x08subtitle\x18\x02 \x02(\t\x12\r\n\x05\x63msId\x18\x03 \x02(\t\x12\x10\n\x08imageUrl\x18\x04 \x02(\t\"\xbb\x01\n\x12\x43lientPairingProps\x12\x1b\n\x13isChatDbLidMigrated\x18\x01 \x01(\x08\x12\x1d\n\x15isSyncdPureLidSession\x18\x02 \x01(\x08\x12&\n\x1eisSyncdSnapshotRecoveryEnabled\x18\x03 \x01(\x08\x12 \n\x18isHsThumbnailSyncEnabled\x18\x04 \x01(\x08\x12\x1f\n\x17subscriptionSyncPayload\x18\x05 \x01(\x0c\"\xbb#\n\rClientPayload\x12\x10\n\x08username\x18\x01 \x01(\x04\x12\x0f\n\x07passive\x18\x03 \x01(\x08\x12\x34\n\tuserAgent\x18\x05 \x01(\x0b\x32!.whatsapp.ClientPayload.UserAgent\x12\x30\n\x07webInfo\x18\x06 \x01(\x0b\x32\x1f.whatsapp.ClientPayload.WebInfo\x12\x10\n\x08pushName\x18\x07 \x01(\t\x12\x11\n\tsessionId\x18\t \x01(\x0f\x12\x14\n\x0cshortConnect\x18\n \x01(\x08\x12\x38\n\x0b\x63onnectType\x18\x0c \x01(\x0e\x32#.whatsapp.ClientPayload.ConnectType\x12<\n\rconnectReason\x18\r \x01(\x0e\x32%.whatsapp.ClientPayload.ConnectReason\x12\x0e\n\x06shards\x18\x0e \x03(\x05\x12\x34\n\tdnsSource\x18\x0f \x01(\x0b\x32!.whatsapp.ClientPayload.DNSSource\x12\x1b\n\x13\x63onnectAttemptCount\x18\x10 \x01(\r\x12\x0e\n\x06\x64\x65vice\x18\x12 \x01(\r\x12P\n\x11\x64\x65vicePairingData\x18\x13 \x01(\x0b\x32\x35.whatsapp.ClientPayload.DevicePairingRegistrationData\x12\x30\n\x07product\x18\x14 \x01(\x0e\x32\x1f.whatsapp.ClientPayload.Product\x12\r\n\x05\x66\x62\x43\x61t\x18\x15 \x01(\x0c\x12\x13\n\x0b\x66\x62UserAgent\x18\x16 \x01(\x0c\x12\n\n\x02oc\x18\x17 \x01(\x08\x12\n\n\x02lc\x18\x18 \x01(\x05\x12@\n\x0fiosAppExtension\x18\x1e \x01(\x0e\x32\'.whatsapp.ClientPayload.IOSAppExtension\x12\x0f\n\x07\x66\x62\x41ppId\x18\x1f \x01(\x04\x12\x12\n\nfbDeviceId\x18 \x01(\x0c\x12\x0c\n\x04pull\x18! \x01(\x08\x12\x14\n\x0cpaddingBytes\x18\" \x01(\x0c\x12\x11\n\tyearClass\x18$ \x01(\x05\x12\x10\n\x08memClass\x18% \x01(\x05\x12\x38\n\x0binteropData\x18& \x01(\x0b\x32#.whatsapp.ClientPayload.InteropData\x12J\n\x14trafficAnonymization\x18( \x01(\x0e\x32,.whatsapp.ClientPayload.TrafficAnonymization\x12\x15\n\rlidDbMigrated\x18) \x01(\x08\x12\x38\n\x0b\x61\x63\x63ountType\x18* \x01(\x0e\x32#.whatsapp.ClientPayload.AccountType\x12\x1e\n\x16\x63onnectionSequenceInfo\x18+ \x01(\x0f\x12\x0f\n\x07paaLink\x18, \x01(\x08\x12\x14\n\x0cpreacksCount\x18- \x01(\x05\x12\x1b\n\x13processingQueueSize\x18. \x01(\x05\x12\x19\n\x11pairedPeripherals\x18/ \x03(\t\x12\x17\n\x0ftestIsolationId\x18\x30 \x01(\x0c\x1a\xf0\x01\n\tDNSSource\x12H\n\tdnsMethod\x18\x0f \x01(\x0e\x32\x35.whatsapp.ClientPayload.DNSSource.DNSResolutionMethod\x12\x11\n\tappCached\x18\x10 \x01(\x08\"\x85\x01\n\x13\x44NSResolutionMethod\x12\n\n\x06SYSTEM\x10\x00\x12\n\n\x06GOOGLE\x10\x01\x12\r\n\tHARDCODED\x10\x02\x12\x0c\n\x08OVERRIDE\x10\x03\x12\x0c\n\x08\x46\x41LLBACK\x10\x04\x12\x07\n\x03MNS\x10\x05\x12\x11\n\rMNS_SECONDARY\x10\x06\x12\x0f\n\x0bSOCKS_PROXY\x10\x07\x1a\xae\x01\n\x1d\x44\x65vicePairingRegistrationData\x12\x0e\n\x06\x65Regid\x18\x01 \x01(\x0c\x12\x10\n\x08\x65Keytype\x18\x02 \x01(\x0c\x12\x0e\n\x06\x65Ident\x18\x03 \x01(\x0c\x12\x0f\n\x07\x65SkeyId\x18\x04 \x01(\x0c\x12\x10\n\x08\x65SkeyVal\x18\x05 \x01(\x0c\x12\x10\n\x08\x65SkeySig\x18\x06 \x01(\x0c\x12\x11\n\tbuildHash\x18\x07 \x01(\x0c\x12\x13\n\x0b\x64\x65viceProps\x18\x08 \x01(\x0c\x1aK\n\x0bInteropData\x12\x11\n\taccountId\x18\x01 \x01(\x04\x12\r\n\x05token\x18\x02 \x01(\x0c\x12\x1a\n\x12\x65nableReadReceipts\x18\x03 \x01(\x08\x1a\xdf\x0b\n\tUserAgent\x12<\n\x08platform\x18\x01 \x01(\x0e\x32*.whatsapp.ClientPayload.UserAgent.Platform\x12@\n\nappVersion\x18\x02 \x01(\x0b\x32,.whatsapp.ClientPayload.UserAgent.AppVersion\x12\x0b\n\x03mcc\x18\x03 \x01(\t\x12\x0b\n\x03mnc\x18\x04 \x01(\t\x12\x11\n\tosVersion\x18\x05 \x01(\t\x12\x14\n\x0cmanufacturer\x18\x06 \x01(\t\x12\x0e\n\x06\x64\x65vice\x18\x07 \x01(\t\x12\x15\n\rosBuildNumber\x18\x08 \x01(\t\x12\x0f\n\x07phoneId\x18\t \x01(\t\x12H\n\x0ereleaseChannel\x18\n \x01(\x0e\x32\x30.whatsapp.ClientPayload.UserAgent.ReleaseChannel\x12\x1d\n\x15localeLanguageIso6391\x18\x0b \x01(\t\x12#\n\x1blocaleCountryIso31661Alpha2\x18\x0c \x01(\t\x12\x13\n\x0b\x64\x65viceBoard\x18\r \x01(\t\x12\x13\n\x0b\x64\x65viceExpId\x18\x0e \x01(\t\x12@\n\ndeviceType\x18\x0f \x01(\x0e\x32,.whatsapp.ClientPayload.UserAgent.DeviceType\x12\x17\n\x0f\x64\x65viceModelType\x18\x10 \x01(\t\x12R\n\x13\x64istributionChannel\x18\x11 \x01(\x0e\x32\x35.whatsapp.ClientPayload.UserAgent.DistributionChannel\x1ag\n\nAppVersion\x12\x0f\n\x07primary\x18\x01 \x01(\r\x12\x11\n\tsecondary\x18\x02 \x01(\r\x12\x10\n\x08tertiary\x18\x03 \x01(\r\x12\x12\n\nquaternary\x18\x04 \x01(\r\x12\x0f\n\x07quinary\x18\x05 \x01(\r\"F\n\nDeviceType\x12\t\n\x05PHONE\x10\x00\x12\n\n\x06TABLET\x10\x01\x12\x0b\n\x07\x44\x45SKTOP\x10\x02\x12\x0c\n\x08WEARABLE\x10\x03\x12\x06\n\x02VR\x10\x04\"N\n\x13\x44istributionChannel\x12\x0c\n\x08\x41PPSTORE\x10\x00\x12\x0b\n\x07WEBSITE\x10\x01\x12\x0e\n\nTESTFLIGHT\x10\x02\x12\x0c\n\x08INTERNAL\x10\x03\"\xaf\x04\n\x08Platform\x12\x0b\n\x07\x41NDROID\x10\x00\x12\x07\n\x03IOS\x10\x01\x12\x11\n\rWINDOWS_PHONE\x10\x02\x12\x0e\n\nBLACKBERRY\x10\x03\x12\x0f\n\x0b\x42LACKBERRYX\x10\x04\x12\x07\n\x03S40\x10\x05\x12\x07\n\x03S60\x10\x06\x12\x11\n\rPYTHON_CLIENT\x10\x07\x12\t\n\x05TIZEN\x10\x08\x12\x0e\n\nENTERPRISE\x10\t\x12\x0f\n\x0bSMB_ANDROID\x10\n\x12\t\n\x05KAIOS\x10\x0b\x12\x0b\n\x07SMB_IOS\x10\x0c\x12\x0b\n\x07WINDOWS\x10\r\x12\x07\n\x03WEB\x10\x0e\x12\n\n\x06PORTAL\x10\x0f\x12\x11\n\rGREEN_ANDROID\x10\x10\x12\x10\n\x0cGREEN_IPHONE\x10\x11\x12\x10\n\x0c\x42LUE_ANDROID\x10\x12\x12\x0f\n\x0b\x42LUE_IPHONE\x10\x13\x12\x12\n\x0e\x46\x42LITE_ANDROID\x10\x14\x12\x11\n\rMLITE_ANDROID\x10\x15\x12\x12\n\x0eIGLITE_ANDROID\x10\x16\x12\x08\n\x04PAGE\x10\x17\x12\t\n\x05MACOS\x10\x18\x12\x0e\n\nOCULUS_MSG\x10\x19\x12\x0f\n\x0bOCULUS_CALL\x10\x1a\x12\t\n\x05MILAN\x10\x1b\x12\x08\n\x04\x43\x41PI\x10\x1c\x12\n\n\x06WEAROS\x10\x1d\x12\x0c\n\x08\x41RDEVICE\x10\x1e\x12\x0c\n\x08VRDEVICE\x10\x1f\x12\x0c\n\x08\x42LUE_WEB\x10 \x12\x08\n\x04IPAD\x10!\x12\x08\n\x04TEST\x10\"\x12\x11\n\rSMART_GLASSES\x10#\x12\x0b\n\x07\x42LUE_VR\x10$\x12\x0c\n\x08\x41R_WRIST\x10%\x12\x08\n\x04WAIL\x10&\"=\n\x0eReleaseChannel\x12\x0b\n\x07RELEASE\x10\x00\x12\x08\n\x04\x42\x45TA\x10\x01\x12\t\n\x05\x41LPHA\x10\x02\x12\t\n\x05\x44\x45\x42UG\x10\x03\x1a\x85\x05\n\x07WebInfo\x12\x10\n\x08refToken\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12@\n\x0bwebdPayload\x18\x03 \x01(\x0b\x32+.whatsapp.ClientPayload.WebInfo.WebdPayload\x12\x46\n\x0ewebSubPlatform\x18\x04 \x01(\x0e\x32..whatsapp.ClientPayload.WebInfo.WebSubPlatform\x12\x0f\n\x07\x62rowser\x18\x05 \x01(\t\x12\x16\n\x0e\x62rowserVersion\x18\x06 \x01(\t\x1a\xbb\x02\n\x0bWebdPayload\x12\x1c\n\x14usesParticipantInKey\x18\x01 \x01(\x08\x12\x1f\n\x17supportsStarredMessages\x18\x02 \x01(\x08\x12 \n\x18supportsDocumentMessages\x18\x03 \x01(\x08\x12\x1b\n\x13supportsUrlMessages\x18\x04 \x01(\x08\x12\x1a\n\x12supportsMediaRetry\x18\x05 \x01(\x08\x12\x18\n\x10supportsE2EImage\x18\x06 \x01(\x08\x12\x18\n\x10supportsE2EVideo\x18\x07 \x01(\x08\x12\x18\n\x10supportsE2EAudio\x18\x08 \x01(\x08\x12\x1b\n\x13supportsE2EDocument\x18\t \x01(\x08\x12\x15\n\rdocumentTypes\x18\n \x01(\t\x12\x10\n\x08\x66\x65\x61tures\x18\x0b \x01(\x0c\"f\n\x0eWebSubPlatform\x12\x0f\n\x0bWEB_BROWSER\x10\x00\x12\r\n\tAPP_STORE\x10\x01\x12\r\n\tWIN_STORE\x10\x02\x12\n\n\x06\x44\x41RWIN\x10\x03\x12\t\n\x05WIN32\x10\x04\x12\x0e\n\nWIN_HYBRID\x10\x05\"%\n\x0b\x41\x63\x63ountType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05GUEST\x10\x01\"\x86\x01\n\rConnectReason\x12\x08\n\x04PUSH\x10\x00\x12\x12\n\x0eUSER_ACTIVATED\x10\x01\x12\r\n\tSCHEDULED\x10\x02\x12\x13\n\x0f\x45RROR_RECONNECT\x10\x03\x12\x12\n\x0eNETWORK_SWITCH\x10\x04\x12\x12\n\x0ePING_RECONNECT\x10\x05\x12\x0b\n\x07UNKNOWN\x10\x06\"\xb0\x02\n\x0b\x43onnectType\x12\x14\n\x10\x43\x45LLULAR_UNKNOWN\x10\x00\x12\x10\n\x0cWIFI_UNKNOWN\x10\x01\x12\x11\n\rCELLULAR_EDGE\x10\x64\x12\x11\n\rCELLULAR_IDEN\x10\x65\x12\x11\n\rCELLULAR_UMTS\x10\x66\x12\x11\n\rCELLULAR_EVDO\x10g\x12\x11\n\rCELLULAR_GPRS\x10h\x12\x12\n\x0e\x43\x45LLULAR_HSDPA\x10i\x12\x12\n\x0e\x43\x45LLULAR_HSUPA\x10j\x12\x11\n\rCELLULAR_HSPA\x10k\x12\x11\n\rCELLULAR_CDMA\x10l\x12\x12\n\x0e\x43\x45LLULAR_1XRTT\x10m\x12\x12\n\x0e\x43\x45LLULAR_EHRPD\x10n\x12\x10\n\x0c\x43\x45LLULAR_LTE\x10o\x12\x12\n\x0e\x43\x45LLULAR_HSPAP\x10p\"T\n\x0fIOSAppExtension\x12\x13\n\x0fSHARE_EXTENSION\x10\x00\x12\x15\n\x11SERVICE_EXTENSION\x10\x01\x12\x15\n\x11INTENTS_EXTENSION\x10\x02\"W\n\x07Product\x12\x0c\n\x08WHATSAPP\x10\x00\x12\r\n\tMESSENGER\x10\x01\x12\x0b\n\x07INTEROP\x10\x02\x12\x10\n\x0cINTEROP_MSGR\x10\x03\x12\x10\n\x0cWHATSAPP_LID\x10\x04\"-\n\x14TrafficAnonymization\x12\x07\n\x03OFF\x10\x00\x12\x0c\n\x08STANDARD\x10\x01\"\xe1\x02\n\rCoexStateSync\x12H\n\x13\x63ollectionMutations\x18\x01 \x03(\x0b\x32+.whatsapp.CoexStateSync.CollectionMutations\x1a^\n\x13\x43ollectionMutations\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x33\n\tmutations\x18\x02 \x03(\x0b\x32 .whatsapp.CoexStateSync.Mutation\x1a\xa5\x01\n\x08Mutation\x12#\n\x05index\x18\x01 \x01(\x0b\x32\x14.whatsapp.SyncdIndex\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.whatsapp.SyncdValue\x12\x14\n\x0c\x64irtyVersion\x18\x03 \x01(\x04\x12\x39\n\toperation\x18\x04 \x01(\x0e\x32&.whatsapp.SyncdMutation.SyncdOperation\"\x91\x01\n\x13\x43ombinedFingerprint\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x33\n\x10localFingerprint\x18\x02 \x01(\x0b\x32\x19.whatsapp.FingerprintData\x12\x34\n\x11remoteFingerprint\x18\x03 \x01(\x0b\x32\x19.whatsapp.FingerprintData\"w\n\x07\x43ommand\x12\x33\n\x0b\x63ommandType\x18\x01 \x01(\x0e\x32\x1e.whatsapp.COMMAND_COMMAND_TYPE\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\x0e\n\x06length\x18\x03 \x01(\r\x12\x17\n\x0fvalidationToken\x18\x04 \x01(\t\"U\n\x0f\x43ommentMetadata\x12.\n\x10\x63ommentParentKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nreplyCount\x18\x02 \x01(\r\"#\n\x13\x43ompanionCommitment\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\"t\n\x1a\x43ompanionEphemeralIdentity\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\x36\n\ndeviceType\x18\x02 \x01(\x0e\x32\".whatsapp.DeviceProps.PlatformType\x12\x0b\n\x03ref\x18\x03 \x01(\t\"\x84\x01\n\x06\x43onfig\x12*\n\x05\x66ield\x18\x01 \x03(\x0b\x32\x1b.whatsapp.Config.FieldEntry\x12\x0f\n\x07version\x18\x02 \x01(\r\x1a=\n\nFieldEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1e\n\x05value\x18\x02 \x01(\x0b\x32\x0f.whatsapp.Field:\x02\x38\x01\"\xee\'\n\x13\x43onsumerApplication\x12\x36\n\x07payload\x18\x01 \x01(\x0b\x32%.whatsapp.ConsumerApplication.Payload\x12\x38\n\x08metadata\x18\x02 \x01(\x0b\x32&.whatsapp.ConsumerApplication.Metadata\x1a\x66\n\x0f\x41pplicationData\x12=\n\x06revoke\x18\x01 \x01(\x0b\x32+.whatsapp.ConsumerApplication.RevokeMessageH\x00\x42\x14\n\x12\x61pplicationContent\x1a\x41\n\x0c\x41udioMessage\x12$\n\x05\x61udio\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12\x0b\n\x03ptt\x18\x02 \x01(\x08\x1a\x38\n\x0e\x43ontactMessage\x12&\n\x07\x63ontact\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x1ak\n\x14\x43ontactsArrayMessage\x12\x13\n\x0b\x64isplayName\x18\x01 \x01(\t\x12>\n\x08\x63ontacts\x18\x02 \x03(\x0b\x32,.whatsapp.ConsumerApplication.ContactMessage\x1a\xbd\n\n\x07\x43ontent\x12,\n\x0bmessageText\x18\x01 \x01(\x0b\x32\x15.whatsapp.MessageTextH\x00\x12\x42\n\x0cimageMessage\x18\x02 \x01(\x0b\x32*.whatsapp.ConsumerApplication.ImageMessageH\x00\x12\x46\n\x0e\x63ontactMessage\x18\x03 \x01(\x0b\x32,.whatsapp.ConsumerApplication.ContactMessageH\x00\x12H\n\x0flocationMessage\x18\x04 \x01(\x0b\x32-.whatsapp.ConsumerApplication.LocationMessageH\x00\x12P\n\x13\x65xtendedTextMessage\x18\x05 \x01(\x0b\x32\x31.whatsapp.ConsumerApplication.ExtendedTextMessageH\x00\x12K\n\x11statusTextMessage\x18\x06 \x01(\x0b\x32..whatsapp.ConsumerApplication.StatusTextMesageH\x00\x12H\n\x0f\x64ocumentMessage\x18\x07 \x01(\x0b\x32-.whatsapp.ConsumerApplication.DocumentMessageH\x00\x12\x42\n\x0c\x61udioMessage\x18\x08 \x01(\x0b\x32*.whatsapp.ConsumerApplication.AudioMessageH\x00\x12\x42\n\x0cvideoMessage\x18\t \x01(\x0b\x32*.whatsapp.ConsumerApplication.VideoMessageH\x00\x12R\n\x14\x63ontactsArrayMessage\x18\n \x01(\x0b\x32\x32.whatsapp.ConsumerApplication.ContactsArrayMessageH\x00\x12P\n\x13liveLocationMessage\x18\x0b \x01(\x0b\x32\x31.whatsapp.ConsumerApplication.LiveLocationMessageH\x00\x12\x46\n\x0estickerMessage\x18\x0c \x01(\x0b\x32,.whatsapp.ConsumerApplication.StickerMessageH\x00\x12N\n\x12groupInviteMessage\x18\r \x01(\x0b\x32\x30.whatsapp.ConsumerApplication.GroupInviteMessageH\x00\x12H\n\x0fviewOnceMessage\x18\x0e \x01(\x0b\x32-.whatsapp.ConsumerApplication.ViewOnceMessageH\x00\x12H\n\x0freactionMessage\x18\x10 \x01(\x0b\x32-.whatsapp.ConsumerApplication.ReactionMessageH\x00\x12P\n\x13pollCreationMessage\x18\x11 \x01(\x0b\x32\x31.whatsapp.ConsumerApplication.PollCreationMessageH\x00\x12L\n\x11pollUpdateMessage\x18\x12 \x01(\x0b\x32/.whatsapp.ConsumerApplication.PollUpdateMessageH\x00\x12@\n\x0b\x65\x64itMessage\x18\x13 \x01(\x0b\x32).whatsapp.ConsumerApplication.EditMessageH\x00\x42\t\n\x07\x63ontent\x1aL\n\x0f\x44ocumentMessage\x12\'\n\x08\x64ocument\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12\x10\n\x08\x66ileName\x18\x02 \x01(\t\x1am\n\x0b\x45\x64itMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12&\n\x07message\x18\x02 \x01(\x0b\x32\x15.whatsapp.MessageText\x12\x13\n\x0btimestampMs\x18\x03 \x01(\x03\x1a\x9f\x02\n\x13\x45xtendedTextMessage\x12#\n\x04text\x18\x01 \x01(\x0b\x32\x15.whatsapp.MessageText\x12\x13\n\x0bmatchedText\x18\x02 \x01(\t\x12\x14\n\x0c\x63\x61nonicalUrl\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\r\n\x05title\x18\x05 \x01(\t\x12(\n\tthumbnail\x18\x06 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12j\n\x0bpreviewType\x18\x07 \x01(\x0e\x32U.whatsapp.ConsumerApplication.CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE\x1a\xa6\x01\n\x12GroupInviteMessage\x12\x10\n\x08groupJid\x18\x01 \x01(\t\x12\x12\n\ninviteCode\x18\x02 \x01(\t\x12\x18\n\x10inviteExpiration\x18\x03 \x01(\x03\x12\x11\n\tgroupName\x18\x04 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x05 \x01(\x0c\x12&\n\x07\x63\x61ption\x18\x06 \x01(\x0b\x32\x15.whatsapp.MessageText\x1a\\\n\x0cImageMessage\x12$\n\x05image\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12&\n\x07\x63\x61ption\x18\x02 \x01(\x0b\x32\x15.whatsapp.MessageText\x1a\x9b\x01\n\x15InteractiveAnnotation\x12<\n\x0fpolygonVertices\x18\x01 \x03(\x0b\x32#.whatsapp.ConsumerApplication.Point\x12:\n\x08location\x18\x02 \x01(\x0b\x32&.whatsapp.ConsumerApplication.LocationH\x00\x42\x08\n\x06\x61\x63tion\x1a\xfc\x01\n\x13LiveLocationMessage\x12\x38\n\x08location\x18\x01 \x01(\x0b\x32&.whatsapp.ConsumerApplication.Location\x12\x18\n\x10\x61\x63\x63uracyInMeters\x18\x02 \x01(\r\x12\x12\n\nspeedInMps\x18\x03 \x01(\x02\x12)\n!degreesClockwiseFromMagneticNorth\x18\x04 \x01(\r\x12&\n\x07\x63\x61ption\x18\x05 \x01(\x0b\x32\x15.whatsapp.MessageText\x12\x16\n\x0esequenceNumber\x18\x06 \x01(\x03\x12\x12\n\ntimeOffset\x18\x07 \x01(\r\x1aK\n\x08Location\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x1a\\\n\x0fLocationMessage\x12\x38\n\x08location\x18\x01 \x01(\x0b\x32&.whatsapp.ConsumerApplication.Location\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x1a\x37\n\x0cMediaPayload\x12\'\n\x08protocol\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x1a^\n\x08Metadata\x12R\n\x0fspecialTextSize\x18\x01 \x01(\x0e\x32\x39.whatsapp.CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE\x1a\x1c\n\x06Option\x12\x12\n\noptionName\x18\x01 \x01(\t\x1a\x99\x02\n\x07Payload\x12\x38\n\x07\x63ontent\x18\x01 \x01(\x0b\x32%.whatsapp.ConsumerApplication.ContentH\x00\x12H\n\x0f\x61pplicationData\x18\x02 \x01(\x0b\x32-.whatsapp.ConsumerApplication.ApplicationDataH\x00\x12\x36\n\x06signal\x18\x03 \x01(\x0b\x32$.whatsapp.ConsumerApplication.SignalH\x00\x12G\n\x0bsubProtocol\x18\x04 \x01(\x0b\x32\x30.whatsapp.ConsumerApplication.SubProtocolPayloadH\x00\x42\t\n\x07payload\x1a\x1d\n\x05Point\x12\t\n\x01x\x18\x01 \x01(\x01\x12\t\n\x01y\x18\x02 \x01(\x01\x1aP\n\x14PollAddOptionMessage\x12\x38\n\npollOption\x18\x01 \x03(\x0b\x32$.whatsapp.ConsumerApplication.Option\x1a\x8a\x01\n\x13PollCreationMessage\x12\x0e\n\x06\x65ncKey\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x35\n\x07options\x18\x03 \x03(\x0b\x32$.whatsapp.ConsumerApplication.Option\x12\x1e\n\x16selectableOptionsCount\x18\x04 \x01(\r\x1a\x31\n\x0cPollEncValue\x12\x12\n\nencPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\x1a\xc2\x01\n\x11PollUpdateMessage\x12\x34\n\x16pollCreationMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x38\n\x04vote\x18\x02 \x01(\x0b\x32*.whatsapp.ConsumerApplication.PollEncValue\x12=\n\taddOption\x18\x03 \x01(\x0b\x32*.whatsapp.ConsumerApplication.PollEncValue\x1a\x45\n\x0fPollVoteMessage\x12\x17\n\x0fselectedOptions\x18\x01 \x03(\x0c\x12\x19\n\x11senderTimestampMs\x18\x02 \x01(\x03\x1a\xa8\x01\n\x0fReactionMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x13\n\x0bgroupingKey\x18\x03 \x01(\t\x12\x19\n\x11senderTimestampMs\x18\x04 \x01(\x03\x12%\n\x1dreactionMetadataDataclassData\x18\x05 \x01(\t\x12\r\n\x05style\x18\x06 \x01(\x05\x1a\x32\n\rRevokeMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a\x08\n\x06Signal\x1a\xc8\x01\n\x10StatusTextMesage\x12?\n\x04text\x18\x01 \x01(\x0b\x32\x31.whatsapp.ConsumerApplication.ExtendedTextMessage\x12\x10\n\x08textArgb\x18\x06 \x01(\x07\x12\x16\n\x0e\x62\x61\x63kgroundArgb\x18\x07 \x01(\x07\x12I\n\x04\x66ont\x18\x08 \x01(\x0e\x32;.whatsapp.CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE\x1a\x38\n\x0eStickerMessage\x12&\n\x07sticker\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x1aJ\n\x12SubProtocolPayload\x12\x34\n\x0b\x66utureProof\x18\x01 \x01(\x0e\x32\x1f.whatsapp.FUTURE_PROOF_BEHAVIOR\x1a\\\n\x0cVideoMessage\x12$\n\x05video\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12&\n\x07\x63\x61ption\x18\x02 \x01(\x0b\x32\x15.whatsapp.MessageText\x1a\xac\x01\n\x0fViewOnceMessage\x12\x42\n\x0cimageMessage\x18\x01 \x01(\x0b\x32*.whatsapp.ConsumerApplication.ImageMessageH\x00\x12\x42\n\x0cvideoMessage\x18\x02 \x01(\x0b\x32*.whatsapp.ConsumerApplication.VideoMessageH\x00\x42\x11\n\x0fviewOnceContent\"N\n7CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05VIDEO\x10\x01\"\xa8\x38\n\x0b\x43ontextInfo\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\x12\x13\n\x0bparticipant\x18\x02 \x01(\t\x12(\n\rquotedMessage\x18\x03 \x01(\x0b\x32\x11.whatsapp.Message\x12\x11\n\tremoteJid\x18\x04 \x01(\t\x12\x14\n\x0cmentionedJid\x18\x0f \x03(\t\x12\x18\n\x10\x63onversionSource\x18\x12 \x01(\t\x12\x16\n\x0e\x63onversionData\x18\x13 \x01(\x0c\x12\x1e\n\x16\x63onversionDelaySeconds\x18\x14 \x01(\r\x12\x17\n\x0f\x66orwardingScore\x18\x15 \x01(\r\x12\x13\n\x0bisForwarded\x18\x16 \x01(\x08\x12\x33\n\x08quotedAd\x18\x17 \x01(\x0b\x32!.whatsapp.ContextInfo.AdReplyInfo\x12,\n\x0eplaceholderKey\x18\x18 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nexpiration\x18\x19 \x01(\r\x12!\n\x19\x65phemeralSettingTimestamp\x18\x1a \x01(\x03\x12\x1d\n\x15\x65phemeralSharedSecret\x18\x1b \x01(\x0c\x12\x42\n\x0f\x65xternalAdReply\x18\x1c \x01(\x0b\x32).whatsapp.ContextInfo.ExternalAdReplyInfo\x12\"\n\x1a\x65ntryPointConversionSource\x18\x1d \x01(\t\x12\x1f\n\x17\x65ntryPointConversionApp\x18\x1e \x01(\t\x12(\n entryPointConversionDelaySeconds\x18\x1f \x01(\r\x12\x34\n\x10\x64isappearingMode\x18 \x01(\x0b\x32\x1a.whatsapp.DisappearingMode\x12(\n\nactionLink\x18! \x01(\x0b\x32\x14.whatsapp.ActionLink\x12\x14\n\x0cgroupSubject\x18\" \x01(\t\x12\x16\n\x0eparentGroupJid\x18# \x01(\t\x12\x17\n\x0ftrustBannerType\x18% \x01(\t\x12\x19\n\x11trustBannerAction\x18& \x01(\r\x12\x11\n\tisSampled\x18\' \x01(\x08\x12-\n\rgroupMentions\x18( \x03(\x0b\x32\x16.whatsapp.GroupMention\x12*\n\x03utm\x18) \x01(\x0b\x32\x1d.whatsapp.ContextInfo.UTMInfo\x12\\\n\x1e\x66orwardedNewsletterMessageInfo\x18+ \x01(\x0b\x32\x34.whatsapp.ContextInfo.ForwardedNewsletterMessageInfo\x12T\n\x1a\x62usinessMessageForwardInfo\x18, \x01(\x0b\x32\x30.whatsapp.ContextInfo.BusinessMessageForwardInfo\x12\x1b\n\x13smbClientCampaignId\x18- \x01(\t\x12\x1b\n\x13smbServerCampaignId\x18. \x01(\t\x12\x44\n\x12\x64\x61taSharingContext\x18/ \x01(\x0b\x32(.whatsapp.ContextInfo.DataSharingContext\x12\x1f\n\x17\x61lwaysShowAdAttribution\x18\x30 \x01(\x08\x12H\n\x14\x66\x65\x61tureEligibilities\x18\x31 \x01(\x0b\x32*.whatsapp.ContextInfo.FeatureEligibilities\x12*\n\"entryPointConversionExternalSource\x18\x32 \x01(\t\x12*\n\"entryPointConversionExternalMedium\x18\x33 \x01(\t\x12\x13\n\x0b\x63twaSignals\x18\x36 \x01(\t\x12\x13\n\x0b\x63twaPayload\x18\x37 \x01(\x0c\x12\x46\n\x19\x66orwardedAiBotMessageInfo\x18\x38 \x01(\x0b\x32#.whatsapp.ForwardedAIBotMessageInfo\x12J\n\x15statusAttributionType\x18\x39 \x01(\x0e\x32+.whatsapp.ContextInfo.StatusAttributionType\x12\x30\n\x0eurlTrackingMap\x18: \x01(\x0b\x32\x18.whatsapp.UrlTrackingMap\x12>\n\x0fpairedMediaType\x18; \x01(\x0e\x32%.whatsapp.ContextInfo.PairedMediaType\x12\x16\n\x0erankingVersion\x18< \x01(\r\x12*\n\x0bmemberLabel\x18> \x01(\x0b\x32\x15.whatsapp.MemberLabel\x12\x12\n\nisQuestion\x18? \x01(\x08\x12@\n\x10statusSourceType\x18@ \x01(\x0e\x32&.whatsapp.ContextInfo.StatusSourceType\x12\x37\n\x12statusAttributions\x18\x41 \x03(\x0b\x32\x1b.whatsapp.StatusAttribution\x12\x15\n\risGroupStatus\x18\x42 \x01(\x08\x12:\n\rforwardOrigin\x18\x43 \x01(\x0e\x32#.whatsapp.ContextInfo.ForwardOrigin\x12T\n\x1aquestionReplyQuotedMessage\x18\x44 \x01(\x0b\x32\x30.whatsapp.ContextInfo.QuestionReplyQuotedMessage\x12L\n\x16statusAudienceMetadata\x18\x45 \x01(\x0b\x32,.whatsapp.ContextInfo.StatusAudienceMetadata\x12\x16\n\x0enonJidMentions\x18\x46 \x01(\r\x12\x34\n\nquotedType\x18G \x01(\x0e\x32 .whatsapp.ContextInfo.QuotedType\x12>\n\x15\x62otMessageSharingInfo\x18H \x01(\x0b\x32\x1f.whatsapp.BotMessageSharingInfo\x12\x11\n\tisSpoiler\x18I \x01(\x08\x12\x32\n\x0fmediaDomainInfo\x18J \x01(\x0b\x32\x19.whatsapp.MediaDomainInfo\x12P\n\x18partiallySelectedContent\x18K \x01(\x0b\x32..whatsapp.ContextInfo.PartiallySelectedContent\x12\x19\n\x11\x61\x66terReadDuration\x18L \x01(\r\x12<\n\x0e\x63rossAppSource\x18M \x01(\x0e\x32$.whatsapp.ContextInfo.CrossAppSource\x12P\n\x18\x62usinessInteractionPills\x18N \x01(\x0b\x32..whatsapp.ContextInfo.BusinessInteractionPills\x12\x16\n\x0eposterStatusId\x18O \x01(\t\x12\x46\n\x13instagramThreadLink\x18P \x01(\x0b\x32).whatsapp.ContextInfo.InstagramThreadLink\x12,\n\x0c\x61iProvenance\x18Q \x01(\x0b\x32\x16.whatsapp.AIProvenance\x1a\xba\x01\n\x0b\x41\x64ReplyInfo\x12\x16\n\x0e\x61\x64vertiserName\x18\x01 \x01(\t\x12>\n\tmediaType\x18\x02 \x01(\x0e\x32+.whatsapp.ContextInfo.AdReplyInfo.MediaType\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x11 \x01(\t\"+\n\tMediaType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05IMAGE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\xc0\x08\n\x18\x42usinessInteractionPills\x12\x13\n\x0b\x62usinessJid\x18\x01 \x01(\t\x12\x42\n\x05pills\x18\x02 \x03(\x0b\x32\x33.whatsapp.ContextInfo.BusinessInteractionPills.Pill\x12M\n\nentryPoint\x18\x03 \x01(\x0e\x32\x39.whatsapp.ContextInfo.BusinessInteractionPills.EntryPoint\x12\x15\n\rsignedPayload\x18\x04 \x01(\x0c\x12\x45\n\x11signatureEnvelope\x18\x05 \x01(\x0b\x32*.whatsapp.BotSignatureVerificationMetadata\x12w\n\x1funauthenticatedBusinessMetadata\x18\x06 \x01(\x0b\x32N.whatsapp.ContextInfo.BusinessInteractionPills.UnauthenticatedBusinessMetadata\x1a\x64\n\x04Pill\x12I\n\x08pillType\x18\x01 \x01(\x0e\x32\x37.whatsapp.ContextInfo.BusinessInteractionPills.PillType\x12\x11\n\tactionUrl\x18\x02 \x01(\t\x1ai\n\rSignedPayload\x12\x14\n\x0cverifiedName\x18\x01 \x01(\t\x12\x42\n\x05pills\x18\x02 \x03(\x0b\x32\x33.whatsapp.ContextInfo.BusinessInteractionPills.Pill\x1a\x8b\x01\n\x1fUnauthenticatedBusinessMetadata\x12\x14\n\x0c\x62usinessName\x18\x01 \x01(\t\x12\x18\n\x10\x62usinessCategory\x18\x02 \x01(\t\x12\x16\n\x0e\x62usinessIsOpen\x18\x03 \x01(\x08\x12 \n\x18\x62usinessIsOpenSnapshotMs\x18\x04 \x01(\x03\"\x8d\x01\n\nEntryPoint\x12\x17\n\x13\x45NTRY_POINT_UNKNOWN\x10\x00\x12\x12\n\x0eP2P_LINK_SHARE\x10\x01\x12\x18\n\x14\x43ONTACT_CARD_SHARING\x10\x02\x12\x10\n\x0cPHONE_NUMBER\x10\x03\x12\n\n\x06STATUS\x10\x04\x12\x1a\n\x16IN_THREAD_CONTEXT_CARD\x10\x05\"\xb5\x01\n\x08PillType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rVIEW_BUSINESS\x10\x01\x12\x08\n\x04\x43HAT\x10\x02\x12\x08\n\x04\x43\x41LL\x10\x03\x12\x0b\n\x07\x43\x41TALOG\x10\x04\x12\x0b\n\x07\x43HANNEL\x10\x05\x12\x14\n\x10\x42OOK_APPOINTMENT\x10\x06\x12\n\n\x06OFFERS\x10\x07\x12\x0f\n\x0b\x42\x45STSELLERS\x10\x08\x12\x08\n\x04MENU\x10\t\x12\t\n\x05\x41\x42OUT\x10\n\x12\x08\n\x04SHOP\x10\x0b\x12\t\n\x05ORDER\x10\x0c\x1a\x36\n\x1a\x42usinessMessageForwardInfo\x12\x18\n\x10\x62usinessOwnerJid\x18\x01 \x01(\t\x1a\xa8\x03\n\x12\x44\x61taSharingContext\x12\x18\n\x10showMmDisclosure\x18\x01 \x01(\x08\x12%\n\x1d\x65ncryptedSignalTokenConsented\x18\x02 \x01(\t\x12G\n\nparameters\x18\x03 \x03(\x0b\x32\x33.whatsapp.ContextInfo.DataSharingContext.Parameters\x12\x18\n\x10\x64\x61taSharingFlags\x18\x04 \x01(\x05\x1a\x98\x01\n\nParameters\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\nstringData\x18\x02 \x01(\t\x12\x0f\n\x07intData\x18\x03 \x01(\x03\x12\x11\n\tfloatData\x18\x04 \x01(\x02\x12\x45\n\x08\x63ontents\x18\x05 \x01(\x0b\x32\x33.whatsapp.ContextInfo.DataSharingContext.Parameters\"S\n\x10\x44\x61taSharingFlags\x12\x1f\n\x1bSHOW_MM_DISCLOSURE_ON_CLICK\x10\x01\x12\x1e\n\x1aSHOW_MM_DISCLOSURE_ON_READ\x10\x02\x1a\xd6\x07\n\x13\x45xternalAdReplyInfo\x12\r\n\x05title\x18\x01 \x01(\t\x12\x0c\n\x04\x62ody\x18\x02 \x01(\t\x12\x46\n\tmediaType\x18\x03 \x01(\x0e\x32\x33.whatsapp.ContextInfo.ExternalAdReplyInfo.MediaType\x12\x14\n\x0cthumbnailUrl\x18\x04 \x01(\t\x12\x10\n\x08mediaUrl\x18\x05 \x01(\t\x12\x11\n\tthumbnail\x18\x06 \x01(\x0c\x12\x12\n\nsourceType\x18\x07 \x01(\t\x12\x10\n\x08sourceId\x18\x08 \x01(\t\x12\x11\n\tsourceUrl\x18\t \x01(\t\x12\x19\n\x11\x63ontainsAutoReply\x18\n \x01(\x08\x12\x1d\n\x15renderLargerThumbnail\x18\x0b \x01(\x08\x12\x19\n\x11showAdAttribution\x18\x0c \x01(\x08\x12\x10\n\x08\x63twaClid\x18\r \x01(\t\x12\x0b\n\x03ref\x18\x0e \x01(\t\x12\x1b\n\x13\x63lickToWhatsappCall\x18\x0f \x01(\x08\x12!\n\x19\x61\x64\x43ontextPreviewDismissed\x18\x10 \x01(\x08\x12\x11\n\tsourceApp\x18\x11 \x01(\t\x12%\n\x1d\x61utomatedGreetingMessageShown\x18\x12 \x01(\x08\x12\x1b\n\x13greetingMessageBody\x18\x13 \x01(\t\x12\x12\n\nctaPayload\x18\x14 \x01(\t\x12\x14\n\x0c\x64isableNudge\x18\x15 \x01(\x08\x12\x18\n\x10originalImageUrl\x18\x16 \x01(\t\x12\'\n\x1f\x61utomatedGreetingMessageCtaType\x18\x17 \x01(\t\x12\x14\n\x0cwtwaAdFormat\x18\x18 \x01(\x08\x12@\n\x06\x61\x64Type\x18\x19 \x01(\x0e\x32\x30.whatsapp.ContextInfo.ExternalAdReplyInfo.AdType\x12\x16\n\x0ewtwaWebsiteUrl\x18\x1a \x01(\t\x12\x14\n\x0c\x61\x64PreviewUrl\x18\x1b \x01(\t\x12\"\n\x1a\x63ontainsCtwaFlowsAutoReply\x18\x1c \x01(\x08\x12\x1c\n\x14\x61gmThumbnailStrategy\x18\x1d \x01(\x05\x12\x18\n\x10\x61gmTitleStrategy\x18\x1e \x01(\x05\x12\x1b\n\x13\x61gmSubtitleStrategy\x18\x1f \x01(\x05\x12$\n\x1c\x61gmHeaderInteractionStrategy\x18 \x01(\x05\"\x1c\n\x06\x41\x64Type\x12\x08\n\x04\x43TWA\x10\x00\x12\x08\n\x04\x43\x41WC\x10\x01\"+\n\tMediaType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05IMAGE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\xbd\x01\n\x14\x46\x65\x61tureEligibilities\x12 \n\x11\x63\x61nnotBeReactedTo\x18\x01 \x01(\x08:\x05\x66\x61lse\x12\x1d\n\x0e\x63\x61nnotBeRanked\x18\x02 \x01(\x08:\x05\x66\x61lse\x12!\n\x12\x63\x61nRequestFeedback\x18\x03 \x01(\x08:\x05\x66\x61lse\x12\x1c\n\rcanBeReshared\x18\x04 \x01(\x08:\x05\x66\x61lse\x12#\n\x14\x63\x61nReceiveMultiReact\x18\x05 \x01(\x08:\x05\x66\x61lse\x1a\xaa\x02\n\x1e\x46orwardedNewsletterMessageInfo\x12\x15\n\rnewsletterJid\x18\x01 \x01(\t\x12\x17\n\x0fserverMessageId\x18\x02 \x01(\x05\x12\x16\n\x0enewsletterName\x18\x03 \x01(\t\x12U\n\x0b\x63ontentType\x18\x04 \x01(\x0e\x32@.whatsapp.ContextInfo.ForwardedNewsletterMessageInfo.ContentType\x12\x19\n\x11\x61\x63\x63\x65ssibilityText\x18\x05 \x01(\t\x12\x13\n\x0bprofileName\x18\x06 \x01(\t\"9\n\x0b\x43ontentType\x12\n\n\x06UPDATE\x10\x01\x12\x0f\n\x0bUPDATE_CARD\x10\x02\x12\r\n\tLINK_CARD\x10\x03\x1a\"\n\x13InstagramThreadLink\x12\x0b\n\x03url\x18\x01 \x01(\t\x1a(\n\x18PartiallySelectedContent\x12\x0c\n\x04text\x18\x01 \x01(\t\x1a\x8c\x01\n\x1aQuestionReplyQuotedMessage\x12\x18\n\x10serverQuestionId\x18\x01 \x01(\x05\x12)\n\x0equotedQuestion\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12)\n\x0equotedResponse\x18\x03 \x01(\x0b\x32\x11.whatsapp.Message\x1a\xbe\x01\n\x16StatusAudienceMetadata\x12O\n\x0c\x61udienceType\x18\x01 \x01(\x0e\x32\x39.whatsapp.ContextInfo.StatusAudienceMetadata.AudienceType\x12\x10\n\x08listName\x18\x02 \x01(\t\x12\x11\n\tlistEmoji\x18\x03 \x01(\t\".\n\x0c\x41udienceType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rCLOSE_FRIENDS\x10\x01\x1a\x31\n\x07UTMInfo\x12\x11\n\tutmSource\x18\x01 \x01(\t\x12\x13\n\x0butmCampaign\x18\x02 \x01(\t\"m\n\x0e\x43rossAppSource\x12\x1c\n\x18\x43ROSS_APP_SOURCE_UNKNOWN\x10\x00\x12\x1e\n\x1a\x43ROSS_APP_SOURCE_INSTAGRAM\x10\x01\x12\x1d\n\x19\x43ROSS_APP_SOURCE_FACEBOOK\x10\x02\"V\n\rForwardOrigin\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x43HAT\x10\x01\x12\n\n\x06STATUS\x10\x02\x12\x0c\n\x08\x43HANNELS\x10\x03\x12\x0b\n\x07META_AI\x10\x04\x12\x07\n\x03UGC\x10\x05\"\xd7\x01\n\x0fPairedMediaType\x12\x14\n\x10NOT_PAIRED_MEDIA\x10\x00\x12\x13\n\x0fSD_VIDEO_PARENT\x10\x01\x12\x12\n\x0eHD_VIDEO_CHILD\x10\x02\x12\x13\n\x0fSD_IMAGE_PARENT\x10\x03\x12\x12\n\x0eHD_IMAGE_CHILD\x10\x04\x12\x17\n\x13MOTION_PHOTO_PARENT\x10\x05\x12\x16\n\x12MOTION_PHOTO_CHILD\x10\x06\x12\x15\n\x11HEVC_VIDEO_PARENT\x10\x07\x12\x14\n\x10HEVC_VIDEO_CHILD\x10\x08\"$\n\nQuotedType\x12\x0c\n\x08\x45XPLICIT\x10\x00\x12\x08\n\x04\x41UTO\x10\x01\"\x92\x01\n\x15StatusAttributionType\x12\x08\n\x04NONE\x10\x00\x12\x19\n\x15RESHARED_FROM_MENTION\x10\x01\x12\x16\n\x12RESHARED_FROM_POST\x10\x02\x12!\n\x1dRESHARED_FROM_POST_MANY_TIMES\x10\x03\x12\x19\n\x15\x46ORWARDED_FROM_STATUS\x10\x04\"\\\n\x10StatusSourceType\x12\t\n\x05IMAGE\x10\x00\x12\t\n\x05VIDEO\x10\x01\x12\x07\n\x03GIF\x10\x02\x12\t\n\x05\x41UDIO\x10\x03\x12\x08\n\x04TEXT\x10\x04\x12\x14\n\x10MUSIC_STANDALONE\x10\x05\"\xa5\x11\n\x0c\x43onversation\x12\n\n\x02id\x18\x01 \x02(\t\x12*\n\x08messages\x18\x02 \x03(\x0b\x32\x18.whatsapp.HistorySyncMsg\x12\x0e\n\x06newJid\x18\x03 \x01(\t\x12\x0e\n\x06oldJid\x18\x04 \x01(\t\x12\x18\n\x10lastMsgTimestamp\x18\x05 \x01(\x04\x12\x13\n\x0bunreadCount\x18\x06 \x01(\r\x12\x10\n\x08readOnly\x18\x07 \x01(\x08\x12\x1c\n\x14\x65ndOfHistoryTransfer\x18\x08 \x01(\x08\x12\x1b\n\x13\x65phemeralExpiration\x18\t \x01(\r\x12!\n\x19\x65phemeralSettingTimestamp\x18\n \x01(\x03\x12Q\n\x18\x65ndOfHistoryTransferType\x18\x0b \x01(\x0e\x32/.whatsapp.Conversation.EndOfHistoryTransferType\x12\x1d\n\x15\x63onversationTimestamp\x18\x0c \x01(\x04\x12\x0c\n\x04name\x18\r \x01(\t\x12\r\n\x05pHash\x18\x0e \x01(\t\x12\x0f\n\x07notSpam\x18\x0f \x01(\x08\x12\x10\n\x08\x61rchived\x18\x10 \x01(\x08\x12\x34\n\x10\x64isappearingMode\x18\x11 \x01(\x0b\x32\x1a.whatsapp.DisappearingMode\x12\x1a\n\x12unreadMentionCount\x18\x12 \x01(\r\x12\x16\n\x0emarkedAsUnread\x18\x13 \x01(\x08\x12/\n\x0bparticipant\x18\x14 \x03(\x0b\x32\x1a.whatsapp.GroupParticipant\x12\x0f\n\x07tcToken\x18\x15 \x01(\x0c\x12\x18\n\x10tcTokenTimestamp\x18\x16 \x01(\x04\x12!\n\x19\x63ontactPrimaryIdentityKey\x18\x17 \x01(\x0c\x12\x0e\n\x06pinned\x18\x18 \x01(\r\x12\x13\n\x0bmuteEndTime\x18\x19 \x01(\x04\x12.\n\twallpaper\x18\x1a \x01(\x0b\x32\x1b.whatsapp.WallpaperSettings\x12\x32\n\x0fmediaVisibility\x18\x1b \x01(\x0e\x32\x19.whatsapp.MediaVisibility\x12\x1e\n\x16tcTokenSenderTimestamp\x18\x1c \x01(\x04\x12\x11\n\tsuspended\x18\x1d \x01(\x08\x12\x12\n\nterminated\x18\x1e \x01(\x08\x12\x11\n\tcreatedAt\x18\x1f \x01(\x04\x12\x11\n\tcreatedBy\x18 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18! \x01(\t\x12\x0f\n\x07support\x18\" \x01(\x08\x12\x15\n\risParentGroup\x18# \x01(\x08\x12\x15\n\rparentGroupId\x18% \x01(\t\x12\x19\n\x11isDefaultSubgroup\x18$ \x01(\x08\x12\x13\n\x0b\x64isplayName\x18& \x01(\t\x12\r\n\x05pnJid\x18\' \x01(\t\x12\x12\n\nshareOwnPn\x18( \x01(\x08\x12\x1d\n\x15pnhDuplicateLidThread\x18) \x01(\x08\x12\x0e\n\x06lidJid\x18* \x01(\t\x12\x10\n\x08username\x18+ \x01(\t\x12\x15\n\rlidOriginType\x18, \x01(\t\x12\x15\n\rcommentsCount\x18- \x01(\r\x12\x0e\n\x06locked\x18. \x01(\x08\x12=\n\x15systemMessageToInsert\x18/ \x01(\x0e\x32\x1e.whatsapp.PrivacySystemMessage\x12\x18\n\x10\x63\x61piCreatedGroup\x18\x30 \x01(\x08\x12\x12\n\naccountLid\x18\x31 \x01(\t\x12\x14\n\x0climitSharing\x18\x32 \x01(\x08\x12$\n\x1climitSharingSettingTimestamp\x18\x33 \x01(\x03\x12?\n\x13limitSharingTrigger\x18\x34 \x01(\x0e\x32\".whatsapp.LimitSharing.TriggerType\x12!\n\x19limitSharingInitiatedByMe\x18\x35 \x01(\x08\x12\x1c\n\x14maibaAiThreadEnabled\x18\x36 \x01(\x08\x12 \n\x18isMarketingMessageThread\x18\x37 \x01(\x08\x12\x1a\n\x12isSenderNewAccount\x18\x38 \x01(\x08\x12\x19\n\x11\x61\x66terReadDuration\x18\x39 \x01(\r\x12\x1a\n\x12isSenderSuspicious\x18: \x01(\x08\x12>\n\x0c\x61ppealStatus\x18; \x01(\x0e\x32(.whatsapp.Conversation.GroupAppealStatus\x12\x18\n\x10\x61ppealUpdateTime\x18< \x01(\x04\x12\"\n\x1a\x61uthAgentParentCompanyName\x18= \x01(\t\x12\x1f\n\x17\x61uthAgentObaPhoneNumber\x18> \x01(\t\x12\x41\n\x14identityVerification\x18? \x01(\x0b\x32#.whatsapp.IdentityVerificationState\"\x80\x02\n\x18\x45ndOfHistoryTransferType\x12\x30\n,COMPLETE_BUT_MORE_MESSAGES_REMAIN_ON_PRIMARY\x10\x00\x12\x32\n.COMPLETE_AND_NO_MORE_MESSAGE_REMAIN_ON_PRIMARY\x10\x01\x12:\n6COMPLETE_ON_DEMAND_SYNC_BUT_MORE_MSG_REMAIN_ON_PRIMARY\x10\x02\x12\x42\n>COMPLETE_ON_DEMAND_SYNC_WITH_MORE_MSG_ON_PRIMARY_BUT_NO_ACCESS\x10\x03\"b\n\x11GroupAppealStatus\x12\r\n\tNO_APPEAL\x10\x00\x12\x14\n\x10\x41PPEAL_IN_REVIEW\x10\x01\x12\x13\n\x0f\x41PPEAL_APPROVED\x10\x02\x12\x13\n\x0f\x41PPEAL_REJECTED\x10\x03\"9\n\x11\x43reateBackupInput\x12\x14\n\x0crecoveryCode\x18\x01 \x02(\t\x12\x0e\n\x06userId\x18\x02 \x02(\x04\"\xc1\x01\n\x12\x43reateBackupOutput\x12&\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x16.whatsapp.DeviceOutput\x12\x34\n\rvirtualDevice\x18\x02 \x01(\x0b\x32\x1d.whatsapp.VirtualDeviceOutput\x12&\n\x06\x65poch0\x18\x03 \x01(\x0b\x32\x16.whatsapp.Epoch0Output\x12\x16\n\x0emailboxRootKey\x18\x04 \x01(\x0c\x12\r\n\x05\x65rror\x18\x05 \x01(\t\"\xd8\x03\n1DecryptMekForDistributionFromTransportSenderInput\x12\x82\x01\n\x0fmekDistribution\x18\x01 \x02(\x0b\x32i.whatsapp.DecryptMekForDistributionFromTransportSenderInput.TransportSenderMEKDistributionSingleRecipient\x12\r\n\x05mekId\x18\x02 \x02(\x0c\x12\x12\n\nrosterHash\x18\x03 \x02(\x0c\x12\x16\n\x0erecipientEncSk\x18\x04 \x02(\x0c\x12\x0f\n\x07version\x18\x05 \x02(\x04\x12)\n\x04\x63onf\x18\x06 \x01(\x0b\x32\x1b.whatsapp.MinosClientConfig\x1a\xa6\x01\n-TransportSenderMEKDistributionSingleRecipient\x12\x14\n\x0c\x65ncryptedMek\x18\x01 \x02(\x0c\x12\x1d\n\x15\x65phemeralEncryptionPk\x18\x02 \x02(\x0c\x12\x11\n\tsigningPk\x18\x03 \x02(\x0c\x12\x11\n\tsignature\x18\x04 \x02(\x0c\x12\x1a\n\x12recipientEpochHead\x18\x05 \x01(\x0c\"\xa8\x01\n2DecryptMekForDistributionFromTransportSenderResult\x12P\n\x07success\x18\x01 \x01(\x0b\x32=.whatsapp.DecryptMekForDistributionFromTransportSenderSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"B\n3DecryptMekForDistributionFromTransportSenderSuccess\x12\x0b\n\x03mek\x18\x01 \x02(\x0c\"\xf3\x01\n\x1e\x44\x65\x63ryptMekForDistributionInput\x12\x13\n\x0btoMailboxSk\x18\x01 \x02(\x0c\x12\x0e\n\x06\x66romPk\x18\x02 \x02(\x0c\x12\r\n\x05mekId\x18\x03 \x02(\x0c\x12\x17\n\x0fsenderEpochHead\x18\x04 \x02(\x0c\x12\x12\n\nrosterHash\x18\x05 \x02(\x0c\x12\x12\n\nciphertext\x18\x06 \x02(\x0c\x12\x13\n\x0btoEpochHead\x18\x07 \x01(\x0c\x12\x1c\n\x14mekEncryptionVersion\x18\x08 \x01(\x05\x12)\n\x04\x63onf\x18\t \x01(\x0b\x32\x1b.whatsapp.MinosClientConfig\"\x82\x01\n\x1f\x44\x65\x63ryptMekForDistributionResult\x12=\n\x07success\x18\x01 \x01(\x0b\x32*.whatsapp.DecryptMekForDistributionSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"/\n DecryptMekForDistributionSuccess\x12\x0b\n\x03mek\x18\x01 \x02(\x0c\"\x81\x01\n\x13\x44\x65\x63ryptMessageInput\x12\x14\n\x0c\x65pochRootKey\x18\x01 \x02(\x0c\x12\x13\n\x0b\x65pochAnonId\x18\x02 \x02(\x0c\x12\x10\n\x08threadId\x18\x03 \x02(\t\x12\x19\n\x11\x65ncryptionVersion\x18\x04 \x02(\x05\x12\x12\n\nciphertext\x18\x05 \x02(\x0c\"?\n\x14\x44\x65\x63ryptMessageOutput\x12\x18\n\x10plaintextPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"g\n\x1f\x44\x65\x63ryptSelfMmkDistributionInput\x12\x14\n\x0c\x65ncryptedMmk\x18\x01 \x02(\x0c\x12\x15\n\rexportRootKey\x18\x02 \x02(\x0c\x12\x17\n\x0fmailboxHeadHash\x18\x03 \x02(\x0c\"\x84\x01\n DecryptSelfMmkDistributionResult\x12>\n\x07success\x18\x01 \x01(\x0b\x32+.whatsapp.DecryptSelfMmkDistributionSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"4\n!DecryptSelfMmkDistributionSuccess\x12\x0f\n\x07mmkSeed\x18\x01 \x02(\x0c\":\n&DeriveAttachmentAccessTokenSecretInput\x12\x10\n\x08mediaKey\x18\x01 \x02(\x0c\"N\n\'DeriveAttachmentAccessTokenSecretResult\x12#\n\x1b\x61ttachmentAccessTokenSecret\x18\x01 \x02(\x0c\"9\n%DeriveAttachmentPrimaryKeySecretInput\x12\x10\n\x08mediaKey\x18\x01 \x02(\x0c\"L\n&DeriveAttachmentPrimaryKeySecretResult\x12\"\n\x1a\x61ttachmentPrimaryKeySecret\x18\x01 \x02(\x0c\"K\n\x1d\x44\x65riveMailboxAuthKeypairInput\x12\x15\n\rexportRootKey\x18\x01 \x02(\x0c\x12\x13\n\x0b\x65pochNumber\x18\x02 \x02(\x04\"]\n\x1e\x44\x65riveMailboxAuthKeypairResult\x12\x1c\n\x14mailboxAuthPublicKey\x18\x01 \x02(\x0c\x12\x1d\n\x15mailboxAuthPrivateKey\x18\x02 \x02(\x0c\"Q\n#DeriveMailboxEncryptionKeypairInput\x12\x15\n\rexportRootKey\x18\x01 \x02(\x0c\x12\x13\n\x0b\x65pochNumber\x18\x02 \x02(\x04\"o\n$DeriveMailboxEncryptionKeypairResult\x12\"\n\x1amailboxEncryptionPublicKey\x18\x01 \x02(\x0c\x12#\n\x1bmailboxEncryptionPrivateKey\x18\x02 \x02(\x0c\"N\n DeriveMailboxSigningKeypairInput\x12\x15\n\rexportRootKey\x18\x01 \x02(\x0c\x12\x13\n\x0b\x65pochNumber\x18\x02 \x02(\x04\"\x86\x01\n!DeriveMailboxSigningKeypairResult\x12?\n\x07success\x18\x01 \x01(\x0b\x32,.whatsapp.DeriveMailboxSigningKeypairSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"g\n\"DeriveMailboxSigningKeypairSuccess\x12\x1f\n\x17mailboxSigningPublicKey\x18\x01 \x02(\x0c\x12 \n\x18mailboxSigningPrivateKey\x18\x02 \x02(\x0c\"T\n\x15\x44\x65riveMessageKeyInput\x12\x14\n\x0c\x65pochRootKey\x18\x01 \x02(\x0c\x12\x13\n\x0b\x65pochAnonId\x18\x02 \x02(\x0c\x12\x10\n\x08threadId\x18\x03 \x02(\t\";\n\x16\x44\x65riveMessageKeyOutput\x12\x12\n\nmessageKey\x18\x01 \x01(\x0c\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"6\n#DeriveMessagingMailboxKeypairsInput\x12\x0f\n\x07mmkSeed\x18\x01 \x02(\x0c\"\x8c\x01\n$DeriveMessagingMailboxKeypairsResult\x12\x42\n\x07success\x18\x01 \x01(\x0b\x32/.whatsapp.DeriveMessagingMailboxKeypairsSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"e\n%DeriveMessagingMailboxKeypairsSuccess\x12\r\n\x05\x65ncSk\x18\x01 \x02(\x0c\x12\r\n\x05\x65ncPk\x18\x02 \x02(\x0c\x12\x0e\n\x06\x61uthSk\x18\x03 \x01(\x0c\x12\x0e\n\x06\x61uthPk\x18\x04 \x01(\x0c\"{\n\x18\x44\x65tachedDevicePublicData\x12\x10\n\x08\x64\x65viceId\x18\x01 \x02(\x04\x12\x0c\n\x04name\x18\x02 \x02(\x0c\x12\r\n\x05sigPk\x18\x03 \x02(\x0c\x12\x0e\n\x06\x61uthPk\x18\x04 \x02(\x0c\x12\r\n\x05\x65ncPk\x18\x05 \x02(\x0c\x12\x11\n\tsignature\x18\x06 \x02(\x0c\"\xd2\n\n\x12\x44\x65viceCapabilities\x12O\n\x14\x63hatLockSupportLevel\x18\x01 \x01(\x0e\x32\x31.whatsapp.DeviceCapabilities.ChatLockSupportLevel\x12?\n\x0clidMigration\x18\x02 \x01(\x0b\x32).whatsapp.DeviceCapabilities.LIDMigration\x12I\n\x11\x62usinessBroadcast\x18\x03 \x01(\x0b\x32..whatsapp.DeviceCapabilities.BusinessBroadcast\x12\x41\n\ruserHasAvatar\x18\x04 \x01(\x0b\x32*.whatsapp.DeviceCapabilities.UserHasAvatar\x12]\n\x1bmemberNameTagPrimarySupport\x18\x05 \x01(\x0e\x32\x38.whatsapp.DeviceCapabilities.MemberNameTagPrimarySupport\x12\x37\n\x08\x61iThread\x18\x06 \x01(\x0b\x32%.whatsapp.DeviceCapabilities.AiThread\x12\x45\n\x0f\x61iFbidMigration\x18\x07 \x01(\x0b\x32,.whatsapp.DeviceCapabilities.AiFbidMigration\x12I\n\x11\x62izAiSettingsSync\x18\x08 \x01(\x0b\x32..whatsapp.DeviceCapabilities.BizAiSettingsSync\x12\x43\n\x0e\x63ontactRefresh\x18\t \x01(\x0b\x32+.whatsapp.DeviceCapabilities.ContactRefresh\x1a\x33\n\x0f\x41iFbidMigration\x12 \n\x18\x63hatDbMigrationTimestamp\x18\x01 \x01(\x04\x1a\x83\x01\n\x08\x41iThread\x12H\n\x0csupportLevel\x18\x01 \x01(\x0e\x32\x32.whatsapp.DeviceCapabilities.AiThread.SupportLevel\"-\n\x0cSupportLevel\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05INFRA\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\x1a\x38\n\x11\x42izAiSettingsSync\x12#\n\x1bhandoffRemovalTimingEnabled\x18\x01 \x01(\x08\x1a\xa1\x01\n\x11\x42usinessBroadcast\x12\x19\n\x11importListEnabled\x18\x01 \x01(\x08\x12\x1f\n\x17\x63ompanionSupportEnabled\x18\x02 \x01(\x08\x12\x1b\n\x13\x63\x61mpaignSyncEnabled\x18\x03 \x01(\x08\x12\x1b\n\x13insightsSyncEnabled\x18\x04 \x01(\x08\x12\x16\n\x0erecipientLimit\x18\x05 \x01(\x05\x1a*\n\x0e\x43ontactRefresh\x12\x18\n\x10refreshSupported\x18\x01 \x01(\x08\x1a\x30\n\x0cLIDMigration\x12 \n\x18\x63hatDbMigrationTimestamp\x18\x01 \x01(\x04\x1a&\n\rUserHasAvatar\x12\x15\n\ruserHasAvatar\x18\x01 \x01(\x08\"7\n\x14\x43hatLockSupportLevel\x12\x08\n\x04NONE\x10\x00\x12\x0b\n\x07MINIMAL\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\"U\n\x1bMemberNameTagPrimarySupport\x12\x0c\n\x08\x44ISABLED\x10\x00\x12\x14\n\x10RECEIVER_ENABLED\x10\x01\x12\x12\n\x0eSENDER_ENABLED\x10\x02\"E\n\x1c\x44\x65viceConsistencyCodeMessage\x12\x12\n\ngeneration\x18\x01 \x01(\r\x12\x11\n\tsignature\x18\x02 \x01(\x0c\"\xb7\x02\n\x12\x44\x65viceListMetadata\x12\x15\n\rsenderKeyHash\x18\x01 \x01(\x0c\x12\x17\n\x0fsenderTimestamp\x18\x02 \x01(\x04\x12\x1c\n\x10senderKeyIndexes\x18\x03 \x03(\rB\x02\x10\x01\x12<\n\x11senderAccountType\x18\x04 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType:\x04\x45\x32\x45\x45\x12>\n\x13receiverAccountType\x18\x05 \x01(\x0e\x32\x1b.whatsapp.ADVEncryptionType:\x04\x45\x32\x45\x45\x12\x18\n\x10recipientKeyHash\x18\x08 \x01(\x0c\x12\x1a\n\x12recipientTimestamp\x18\t \x01(\x04\x12\x1f\n\x13recipientKeyIndexes\x18\n \x03(\rB\x02\x10\x01\"\xb6\x02\n\x0c\x44\x65viceOutput\x12\x11\n\tpublicKey\x18\x01 \x02(\x0c\x12\x1a\n\x12\x65pochAuthPublicKey\x18\x02 \x02(\x0c\x12\x1d\n\x15\x65pochAuthPublicKeySig\x18\x03 \x02(\x0c\x12\x1d\n\x15\x65pochStoragePublicKey\x18\x04 \x02(\x0c\x12 \n\x18\x65pochStoragePublicKeySig\x18\x05 \x02(\x0c\x12#\n\x1bsupportedEncryptionVersions\x18\x06 \x03(\x05\x12\"\n\x1a\x65ncryptionVersionSignature\x18\x07 \x02(\x0c\x12\x15\n\rclientVersion\x18\x08 \x02(\x05\x12\x17\n\x0focmfClientState\x18\t \x02(\x0c\x12\x1e\n\x16\x65pochStoragePrivateKey\x18\n \x02(\x0c\"\xf6\x0b\n\x0b\x44\x65viceProps\x12\n\n\x02os\x18\x01 \x01(\t\x12\x31\n\x07version\x18\x02 \x01(\x0b\x32 .whatsapp.DeviceProps.AppVersion\x12\x38\n\x0cplatformType\x18\x03 \x01(\x0e\x32\".whatsapp.DeviceProps.PlatformType\x12\x17\n\x0frequireFullSync\x18\x04 \x01(\x08\x12\x42\n\x11historySyncConfig\x18\x05 \x01(\x0b\x32\'.whatsapp.DeviceProps.HistorySyncConfig\x1ag\n\nAppVersion\x12\x0f\n\x07primary\x18\x01 \x01(\r\x12\x11\n\tsecondary\x18\x02 \x01(\r\x12\x10\n\x08tertiary\x18\x03 \x01(\r\x12\x12\n\nquaternary\x18\x04 \x01(\r\x12\x0f\n\x07quinary\x18\x05 \x01(\r\x1a\xbb\x06\n\x11HistorySyncConfig\x12\x19\n\x11\x66ullSyncDaysLimit\x18\x01 \x01(\r\x12\x1b\n\x13\x66ullSyncSizeMbLimit\x18\x02 \x01(\r\x12\x16\n\x0estorageQuotaMb\x18\x03 \x01(\r\x12%\n\x1dinlineInitialPayloadInE2EeMsg\x18\x04 \x01(\x08\x12\x1b\n\x13recentSyncDaysLimit\x18\x05 \x01(\r\x12\x1d\n\x15supportCallLogHistory\x18\x06 \x01(\x08\x12&\n\x1esupportBotUserAgentChatHistory\x18\x07 \x01(\x08\x12#\n\x1bsupportCagReactionsAndPolls\x18\x08 \x01(\x08\x12\x1b\n\x13supportBizHostedMsg\x18\t \x01(\x08\x12\x30\n(supportRecentSyncChunkMessageCountTuning\x18\n \x01(\x08\x12\x1d\n\x15supportHostedGroupMsg\x18\x0b \x01(\x08\x12!\n\x19supportFbidBotChatHistory\x18\x0c \x01(\x08\x12(\n supportAddOnHistorySyncMigration\x18\r \x01(\x08\x12!\n\x19supportMessageAssociation\x18\x0e \x01(\x08\x12\x1b\n\x13supportGroupHistory\x18\x0f \x01(\x08\x12\x15\n\ronDemandReady\x18\x10 \x01(\x08\x12\x18\n\x10supportGuestChat\x18\x11 \x01(\x08\x12\x1d\n\x15\x63ompleteOnDemandReady\x18\x12 \x01(\x08\x12\x1e\n\x16thumbnailSyncDaysLimit\x18\x13 \x01(\r\x12%\n\x1dinitialSyncMaxMessagesPerChat\x18\x14 \x01(\r\x12\x1b\n\x13supportManusHistory\x18\x15 \x01(\x08\x12\x1b\n\x13supportHatchHistory\x18\x16 \x01(\x08\x12 \n\x18supportedBotChannelFbids\x18\x17 \x03(\t\x12\x1d\n\x15supportInlineContacts\x18\x18 \x01(\x08\x12\x19\n\x11supportNewsletter\x18\x19 \x01(\x08\"\xe9\x02\n\x0cPlatformType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x43HROME\x10\x01\x12\x0b\n\x07\x46IREFOX\x10\x02\x12\x06\n\x02IE\x10\x03\x12\t\n\x05OPERA\x10\x04\x12\n\n\x06SAFARI\x10\x05\x12\x08\n\x04\x45\x44GE\x10\x06\x12\x0b\n\x07\x44\x45SKTOP\x10\x07\x12\x08\n\x04IPAD\x10\x08\x12\x12\n\x0e\x41NDROID_TABLET\x10\t\x12\t\n\x05OHANA\x10\n\x12\t\n\x05\x41LOHA\x10\x0b\x12\x0c\n\x08\x43\x41TALINA\x10\x0c\x12\n\n\x06TCL_TV\x10\r\x12\r\n\tIOS_PHONE\x10\x0e\x12\x10\n\x0cIOS_CATALYST\x10\x0f\x12\x11\n\rANDROID_PHONE\x10\x10\x12\x15\n\x11\x41NDROID_AMBIGUOUS\x10\x11\x12\x0b\n\x07WEAR_OS\x10\x12\x12\x0c\n\x08\x41R_WRIST\x10\x13\x12\r\n\tAR_DEVICE\x10\x14\x12\x07\n\x03UWP\x10\x15\x12\x06\n\x02VR\x10\x16\x12\r\n\tCLOUD_API\x10\x17\x12\x10\n\x0cSMARTGLASSES\x10\x18\x12\x08\n\x04WAIL\x10\x19\"\x9f\x03\n\x10\x44isappearingMode\x12\x37\n\tinitiator\x18\x01 \x01(\x0e\x32$.whatsapp.DisappearingMode.Initiator\x12\x33\n\x07trigger\x18\x02 \x01(\x0e\x32\".whatsapp.DisappearingMode.Trigger\x12\x1a\n\x12initiatorDeviceJid\x18\x03 \x01(\t\x12\x15\n\rinitiatedByMe\x18\x04 \x01(\x08\"i\n\tInitiator\x12\x13\n\x0f\x43HANGED_IN_CHAT\x10\x00\x12\x13\n\x0fINITIATED_BY_ME\x10\x01\x12\x16\n\x12INITIATED_BY_OTHER\x10\x02\x12\x1a\n\x16\x42IZ_UPGRADE_FB_HOSTING\x10\x03\"\x7f\n\x07Trigger\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0c\x43HAT_SETTING\x10\x01\x12\x13\n\x0f\x41\x43\x43OUNT_SETTING\x10\x02\x12\x0f\n\x0b\x42ULK_CHANGE\x10\x03\x12\x1b\n\x17\x42IZ_SUPPORTS_FB_HOSTING\x10\x04\x12\x12\n\x0eUNKNOWN_GROUPS\x10\x05\"\x84\x01\n\x0f\x45mbeddedContent\x12\x34\n\x0f\x65mbeddedMessage\x18\x01 \x01(\x0b\x32\x19.whatsapp.EmbeddedMessageH\x00\x12\x30\n\rembeddedMusic\x18\x02 \x01(\x0b\x32\x17.whatsapp.EmbeddedMusicH\x00\x42\t\n\x07\x63ontent\"G\n\x0f\x45mbeddedMessage\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\"\xeb\x02\n\rEmbeddedMusic\x12\x1b\n\x13musicContentMediaId\x18\x01 \x01(\t\x12\x0e\n\x06songId\x18\x02 \x01(\t\x12\x0e\n\x06\x61uthor\x18\x03 \x01(\t\x12\r\n\x05title\x18\x04 \x01(\t\x12\x19\n\x11\x61rtworkDirectPath\x18\x05 \x01(\t\x12\x15\n\rartworkSha256\x18\x06 \x01(\x0c\x12\x18\n\x10\x61rtworkEncSha256\x18\x07 \x01(\x0c\x12\x19\n\x11\x61rtistAttribution\x18\x08 \x01(\t\x12\x18\n\x10\x63ountryBlocklist\x18\t \x01(\x0c\x12\x12\n\nisExplicit\x18\n \x01(\x08\x12\x17\n\x0f\x61rtworkMediaKey\x18\x0b \x01(\x0c\x12\x1e\n\x16musicSongStartTimeInMs\x18\x0c \x01(\x03\x12#\n\x1b\x64\x65rivedContentStartTimeInMs\x18\r \x01(\x03\x12\x1b\n\x13overlapDurationInMs\x18\x0e \x01(\x03\"\xa6\x02\n\x1e\x45ncryptMekForDistributionInput\x12\x17\n\x0fsenderEpochHead\x18\x01 \x02(\x0c\x12\x13\n\x0btoMailboxPk\x18\x02 \x02(\x0c\x12K\n\x0b\x66romKeypair\x18\x03 \x02(\x0b\x32\x36.whatsapp.EncryptMekForDistributionInput.MailboxAuthKP\x12 \n\x03mek\x18\x04 \x02(\x0b\x32\x13.whatsapp.MekBundle\x12\x13\n\x0btoEpochHead\x18\x05 \x01(\x0c\x12)\n\x04\x63onf\x18\x06 \x01(\x0b\x32\x1b.whatsapp.MinosClientConfig\x1a\'\n\rMailboxAuthKP\x12\n\n\x02sk\x18\x01 \x02(\x0c\x12\n\n\x02pk\x18\x02 \x02(\x0c\"F\n\x1f\x45ncryptMekForDistributionResult\x12\x12\n\nciphertext\x18\x01 \x02(\x0c\x12\x0f\n\x07version\x18\x02 \x02(\x04\"\xe0\x02\n2EncryptMeksForDistributionFromTransportSenderInput\x12 \n\x03mek\x18\x01 \x02(\x0b\x32\x13.whatsapp.MekBundle\x12k\n\x12transportSigningKp\x18\x02 \x02(\x0b\x32O.whatsapp.EncryptMeksForDistributionFromTransportSenderInput.TransportSigningKP\x12%\n\x1drecipientMailboxEncryptionPks\x18\x03 \x03(\x0c\x12\x1b\n\x13recipientEpochHeads\x18\x04 \x03(\x0c\x12)\n\x04\x63onf\x18\x05 \x01(\x0b\x32\x1b.whatsapp.MinosClientConfig\x1a,\n\x12TransportSigningKP\x12\n\n\x02sk\x18\x01 \x02(\x0c\x12\n\n\x02pk\x18\x02 \x02(\x0c\"\xa2\x01\n3EncryptMeksForDistributionFromTransportSenderResult\x12\x15\n\rencryptedMeks\x18\x01 \x03(\x0c\x12\x1d\n\x15\x65phemeralEncryptionPk\x18\x02 \x02(\x0c\x12\x11\n\tsigningPk\x18\x03 \x02(\x0c\x12\x11\n\tsignature\x18\x04 \x02(\x0c\x12\x0f\n\x07version\x18\x05 \x02(\x04\"\x83\x02\n\x13\x45ncryptMessageInput\x12\x14\n\x0c\x65pochRootKey\x18\x01 \x02(\x0c\x12\x16\n\x0emailboxRootKey\x18\x02 \x02(\x0c\x12\x16\n\x0eorfClientState\x18\x03 \x02(\x0c\x12\x13\n\x0b\x65pochAnonId\x18\x04 \x02(\x0c\x12\x0f\n\x07\x65pochId\x18\x05 \x02(\x04\x12\x10\n\x08threadId\x18\x06 \x02(\t\x12\x1b\n\x13waCanonicalUserFbid\x18\x07 \x02(\x04\x12\x13\n\x0btimestampMs\x18\x08 \x02(\x04\x12\x10\n\x08\x62\x61\x63kupId\x18\t \x02(\x04\x12\x18\n\x10plaintextPayload\x18\n \x02(\x0c\x12\x10\n\x08stanzaId\x18\x0b \x02(\t\"\x9e\x01\n\x14\x45ncryptMessageOutput\x12\x19\n\x11\x65ncryptedProtobuf\x18\x01 \x01(\x0c\x12\x13\n\x0borfThreadId\x18\x02 \x01(\x0c\x12\x16\n\x0evalueSecretRef\x18\x03 \x01(\t\x12\x1a\n\x12offlineThreadingId\x18\x04 \x01(\x04\x12\x13\n\x0btimestampMs\x18\x05 \x01(\x04\x12\r\n\x05\x65rror\x18\x07 \x01(\t\"?\n\x17\x45ncryptedPairingRequest\x12\x18\n\x10\x65ncryptedPayload\x18\x01 \x01(\x0c\x12\n\n\x02iv\x18\x02 \x01(\x0c\"\xbf\x02\n\x1b\x45ncryptedSecretValuesOutput\x12!\n\x19\x65ncryptedDevicePrivateKey\x18\x01 \x02(\x0c\x12-\n%encryptedObliviousValidationTokenBlob\x18\x02 \x02(\x0c\x12\'\n\x1f\x65ncryptedEpochStoragePrivateKey\x18\x03 \x02(\x0c\x12 \n\x18\x65ncryptedOcmfClientState\x18\x04 \x02(\x0c\x12!\n\x19\x65ncryptedOrfClientStateV2\x18\x05 \x01(\x0c\x12#\n\x1b\x65ncryptedMailboxRootKeyBlob\x18\x06 \x02(\x0c\x12\x1c\n\x14\x65ncryptedEpochAnonId\x18\x07 \x02(\x0c\x12\x1d\n\x15\x65ncryptedEpochRootKey\x18\x08 \x02(\x0c\"7\n\x10\x45phemeralSetting\x12\x10\n\x08\x64uration\x18\x01 \x01(\x0f\x12\x11\n\ttimestamp\x18\x02 \x01(\x10\"\xb7\x01\n\x0c\x45poch0Output\x12\x11\n\tepochFbid\x18\x01 \x02(\x04\x12\x13\n\x0b\x65pochAnonId\x18\x02 \x02(\x0c\x12\x11\n\tepochData\x18\x03 \x02(\x0c\x12\x1d\n\x15wrappedRootKeyForSelf\x18\x04 \x02(\x0c\x12\x16\n\x0e\x65pochSignature\x18\x05 \x02(\x0c\x12\x1f\n\x17\x65pochRootKeyFingerprint\x18\x06 \x02(\x0c\x12\x14\n\x0c\x65pochRootKey\x18\x07 \x01(\x0c\"\xa1\x01\n\x0f\x45pochPublicData\x12\x13\n\x0b\x65pochNumber\x18\x01 \x02(\x04\x12\x10\n\x08userFbid\x18\x02 \x02(\t\x12\x18\n\x10mailboxSigningPk\x18\x03 \x02(\x0c\x12\x1b\n\x13mailboxEncryptionPk\x18\x04 \x02(\x0c\x12\x15\n\rmailboxAuthPk\x18\x05 \x02(\x0c\x12\x19\n\x11previousEpochHead\x18\x06 \x01(\x0c\"?\n\x0f\x45pochSignatures\x12\x15\n\rselfSignature\x18\x01 \x02(\x0c\x12\x15\n\rprevSignature\x18\x02 \x01(\x0c\"*\n\x17\x45ventAdditionalMetadata\x12\x0f\n\x07isStale\x18\x01 \x01(\x08\"\xb1\x01\n\rEventResponse\x12\x35\n\x17\x65ventResponseMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x13\n\x0btimestampMs\x18\x02 \x01(\x03\x12\x44\n\x14\x65ventResponseMessage\x18\x03 \x01(\x0b\x32&.whatsapp.Message.EventResponseMessage\x12\x0e\n\x06unread\x18\x04 \x01(\x08\"&\n\x08\x45xitCode\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x04\x12\x0c\n\x04text\x18\x02 \x01(\t\"\xc7\x0b\n\x16\x45xtendedContentMessage\x12\x30\n\x11\x61ssociatedMessage\x18\x01 \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12L\n\ntargetType\x18\x02 \x01(\x0e\x32\x38.whatsapp.EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE\x12\x16\n\x0etargetUsername\x18\x03 \x01(\t\x12\x10\n\x08targetId\x18\x04 \x01(\t\x12\x1b\n\x13targetExpiringAtSec\x18\x05 \x01(\x03\x12I\n\rxmaLayoutType\x18\x06 \x01(\x0e\x32\x32.whatsapp.EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE\x12\x32\n\x04\x63tas\x18\x07 \x03(\x0b\x32$.whatsapp.ExtendedContentMessage.CTA\x12\'\n\x08previews\x18\x08 \x03(\x0b\x32\x15.whatsapp.SubProtocol\x12\x11\n\ttitleText\x18\t \x01(\t\x12\x14\n\x0csubtitleText\x18\n \x01(\t\x12\x1a\n\x12maxTitleNumOfLines\x18\x0b \x01(\r\x12\x1d\n\x15maxSubtitleNumOfLines\x18\x0c \x01(\r\x12&\n\x07\x66\x61vicon\x18\r \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12*\n\x0bheaderImage\x18\x0e \x01(\x0b\x32\x15.whatsapp.SubProtocol\x12\x13\n\x0bheaderTitle\x18\x0f \x01(\t\x12\x66\n\x10overlayIconGlyph\x18\x10 \x01(\x0e\x32L.whatsapp.ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH\x12\x14\n\x0coverlayTitle\x18\x11 \x01(\t\x12\x1a\n\x12overlayDescription\x18\x12 \x01(\t\x12\x19\n\x11sentWithMessageId\x18\x13 \x01(\t\x12\x13\n\x0bmessageText\x18\x14 \x01(\t\x12\x16\n\x0eheaderSubtitle\x18\x15 \x01(\t\x12\x14\n\x0cxmaDataclass\x18\x16 \x01(\t\x12\x12\n\ncontentRef\x18\x17 \x01(\t\x12\x14\n\x0cmentionedJid\x18\x18 \x03(\t\x12#\n\x08\x63ommands\x18\x19 \x03(\x0b\x32\x11.whatsapp.Command\x12#\n\x08mentions\x18\x1a \x03(\x0b\x32\x11.whatsapp.Mention\x12O\n\x10xmaDataclassType\x18\x1b \x01(\x0e\x32\x35.whatsapp.EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE\x12$\n\x1csignedXmaDataclassValidation\x18\x1c \x01(\t\x12\x1e\n\x16\x66\x65\x61tureSharedSessionId\x18\x1d \x01(\t\x1a\xae\x01\n\x03\x43TA\x12\x46\n\nbuttonType\x18\x01 \x01(\x0e\x32\x32.whatsapp.EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\tactionUrl\x18\x03 \x01(\t\x12\x11\n\tnativeUrl\x18\x04 \x01(\t\x12\x0f\n\x07\x63taType\x18\x05 \x01(\t\x12\x19\n\x11\x61\x63tionContentBlob\x18\x06 \x01(\t\"\xbc\x01\n+EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH\x12\x08\n\x04INFO\x10\x00\x12\x0b\n\x07\x45YE_OFF\x10\x01\x12\x0c\n\x08NEWS_OFF\x10\x02\x12\x0b\n\x07WARNING\x10\x03\x12\x0b\n\x07PRIVATE\x10\x04\x12\x08\n\x04NONE\x10\x05\x12\x0f\n\x0bMEDIA_LABEL\x10\x06\x12\x0e\n\nPOST_COVER\x10\x07\x12\x0e\n\nPOST_LABEL\x10\x08\x12\x13\n\x0fWARNING_SCREENS\x10\t\"\x8f\x01\n\x15\x45xternalBlobReference\x12\x10\n\x08mediaKey\x18\x01 \x01(\x0c\x12\x12\n\ndirectPath\x18\x02 \x01(\t\x12\x0e\n\x06handle\x18\x03 \x01(\t\x12\x15\n\rfileSizeBytes\x18\x04 \x01(\x04\x12\x12\n\nfileSha256\x18\x05 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x06 \x01(\x0c\"\xd9\x01\n\x05\x46ield\x12\x15\n\nminVersion\x18\x01 \x01(\r:\x01\x31\x12\x12\n\nmaxVersion\x18\x02 \x01(\r\x12\x1f\n\x17notReportableMinVersion\x18\x03 \x01(\r\x12\x11\n\tisMessage\x18\x04 \x01(\x08\x12/\n\x08subfield\x18\x05 \x03(\x0b\x32\x1d.whatsapp.Field.SubfieldEntry\x1a@\n\rSubfieldEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1e\n\x05value\x18\x02 \x01(\x0b\x32\x0f.whatsapp.Field:\x02\x38\x01\"\xe7\x01\n\x0f\x46ingerprintData\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\x14\n\x0cpnIdentifier\x18\x02 \x01(\x0c\x12\x15\n\rlidIdentifier\x18\x03 \x01(\x0c\x12\x1a\n\x12usernameIdentifier\x18\x04 \x01(\x0c\x12:\n\x0bhostedState\x18\x05 \x01(\x0e\x32%.whatsapp.FingerprintData.HostedState\x12\x17\n\x0fhashedPublicKey\x18\x06 \x01(\x0c\"#\n\x0bHostedState\x12\x08\n\x04\x45\x32\x45\x45\x10\x00\x12\n\n\x06HOSTED\x10\x01\"Q\n\x19\x46orwardedAIBotMessageInfo\x12\x0f\n\x07\x62otName\x18\x01 \x01(\t\x12\x0e\n\x06\x62otJid\x18\x02 \x01(\t\x12\x13\n\x0b\x63reatorName\x18\x03 \x01(\t\"&\n\x10GenerateMekInput\x12\x12\n\nepochHeads\x18\x01 \x03(\x0c\"5\n\x11GenerateMekResult\x12 \n\x03mek\x18\x01 \x02(\x0b\x32\x13.whatsapp.MekBundle\"0\n\x1aGenerateMekRosterHashInput\x12\x12\n\nepochHeads\x18\x01 \x03(\x0c\"1\n\x1bGenerateMekRosterHashResult\x12\x12\n\nrosterHash\x18\x01 \x02(\x0c\"\xa5\x07\n\x0eGlobalSettings\x12\x38\n\x13lightThemeWallpaper\x18\x01 \x01(\x0b\x32\x1b.whatsapp.WallpaperSettings\x12\x32\n\x0fmediaVisibility\x18\x02 \x01(\x0e\x32\x19.whatsapp.MediaVisibility\x12\x37\n\x12\x64\x61rkThemeWallpaper\x18\x03 \x01(\x0b\x32\x1b.whatsapp.WallpaperSettings\x12\x38\n\x10\x61utoDownloadWiFi\x18\x04 \x01(\x0b\x32\x1e.whatsapp.AutoDownloadSettings\x12<\n\x14\x61utoDownloadCellular\x18\x05 \x01(\x0b\x32\x1e.whatsapp.AutoDownloadSettings\x12;\n\x13\x61utoDownloadRoaming\x18\x06 \x01(\x0b\x32\x1e.whatsapp.AutoDownloadSettings\x12*\n\"showIndividualNotificationsPreview\x18\x07 \x01(\x08\x12%\n\x1dshowGroupNotificationsPreview\x18\x08 \x01(\x08\x12 \n\x18\x64isappearingModeDuration\x18\t \x01(\x05\x12!\n\x19\x64isappearingModeTimestamp\x18\n \x01(\x03\x12\x38\n\x12\x61vatarUserSettings\x18\x0b \x01(\x0b\x32\x1c.whatsapp.AvatarUserSettings\x12\x10\n\x08\x66ontSize\x18\x0c \x01(\x05\x12\x1d\n\x15securityNotifications\x18\r \x01(\x08\x12\x1a\n\x12\x61utoUnarchiveChats\x18\x0e \x01(\x08\x12\x18\n\x10videoQualityMode\x18\x0f \x01(\x05\x12\x18\n\x10photoQualityMode\x18\x10 \x01(\x05\x12\x46\n\x1eindividualNotificationSettings\x18\x11 \x01(\x0b\x32\x1e.whatsapp.NotificationSettings\x12\x41\n\x19groupNotificationSettings\x18\x12 \x01(\x0b\x32\x1e.whatsapp.NotificationSettings\x12\x34\n\x10\x63hatLockSettings\x18\x13 \x01(\x0b\x32\x1a.whatsapp.ChatLockSettings\x12#\n\x1b\x63hatDbLidMigrationTimestamp\x18\x14 \x01(\x03\"\xfd\x01\n\x0cGroupHistory\x12*\n\x08messages\x18\x01 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\x12Q\n\x1funcountedAssociatedMessageLists\x18\x02 \x03(\x0b\x32(.whatsapp.UnCountedAssociatedMessageList\x12\x31\n\x0f\x63ommentMessages\x18\x03 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\x12;\n\x19outOfWindowPinnedMessages\x18\x04 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\"\xb6\x02\n\x16GroupHistoryBundleInfo\x12N\n\x1e\x64\x65precatedMessageHistoryBundle\x18\x01 \x01(\x0b\x32&.whatsapp.Message.MessageHistoryBundle\x12\x43\n\x0cprocessState\x18\x02 \x01(\x0e\x32-.whatsapp.GroupHistoryBundleInfo.ProcessState\"\x86\x01\n\x0cProcessState\x12\x10\n\x0cNOT_INJECTED\x10\x00\x12\x0c\n\x08INJECTED\x10\x01\x12\x14\n\x10INJECTED_PARTIAL\x10\x02\x12\x14\n\x10INJECTION_FAILED\x10\x03\x12\x1d\n\x19INJECTION_FAILED_NO_RETRY\x10\x04\x12\x0b\n\x07\x44\x45\x44UPED\x10\x05\"y\n!GroupHistoryIndividualMessageInfo\x12.\n\x10\x62undleMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12$\n\x1c\x65\x64itedAfterReceivedAsHistory\x18\x02 \x01(\x08\"\xcd\x02\n\x1cGroupHistoryWithMessageBytes\x12:\n\x08messages\x18\x01 \x03(\x0b\x32(.whatsapp.WebMessageInfoWithMessageBytes\x12\x61\n\x1funcountedAssociatedMessageLists\x18\x02 \x03(\x0b\x32\x38.whatsapp.UnCountedAssociatedMessageListWithMessageBytes\x12\x41\n\x0f\x63ommentMessages\x18\x03 \x03(\x0b\x32(.whatsapp.WebMessageInfoWithMessageBytes\x12K\n\x19outOfWindowPinnedMessages\x18\x04 \x03(\x0b\x32(.whatsapp.WebMessageInfoWithMessageBytes\"6\n\x0cGroupMention\x12\x10\n\x08groupJid\x18\x01 \x01(\t\x12\x14\n\x0cgroupSubject\x18\x02 \x01(\t\"\xae\x01\n\x10GroupParticipant\x12\x0f\n\x07userJid\x18\x01 \x02(\t\x12-\n\x04rank\x18\x02 \x01(\x0e\x32\x1f.whatsapp.GroupParticipant.Rank\x12*\n\x0bmemberLabel\x18\x03 \x01(\x0b\x32\x15.whatsapp.MemberLabel\".\n\x04Rank\x12\x0b\n\x07REGULAR\x10\x00\x12\t\n\x05\x41\x44MIN\x10\x01\x12\x0e\n\nSUPERADMIN\x10\x02\"C\n\x11GroupRootKeyShare\x12.\n\x04keys\x18\x01 \x03(\x0b\x32 .whatsapp.GroupRootKeyShareEntry\"t\n\x16GroupRootKeyShareEntry\x12\x14\n\x0cgroupRootKey\x18\x01 \x01(\x0c\x12\r\n\x05keyId\x18\x02 \x01(\t\x12\x19\n\x11\x65xpiryTimestampMs\x18\x03 \x01(\x03\x12\x1a\n\x12\x63reatedTimestampMs\x18\x04 \x01(\x03\"\x9d\x07\n\x10HandshakeMessage\x12;\n\x0b\x63lientHello\x18\x02 \x01(\x0b\x32&.whatsapp.HandshakeMessage.ClientHello\x12;\n\x0bserverHello\x18\x03 \x01(\x0b\x32&.whatsapp.HandshakeMessage.ServerHello\x12=\n\x0c\x63lientFinish\x18\x04 \x01(\x0b\x32\'.whatsapp.HandshakeMessage.ClientFinish\x1ay\n\x0c\x43lientFinish\x12\x0e\n\x06static\x18\x01 \x01(\x0c\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\x12\x1a\n\x12\x65xtendedCiphertext\x18\x03 \x01(\x0c\x12\x13\n\x0bpaddedBytes\x18\x04 \x01(\x0c\x12\x17\n\x0fsimulateXxkemFs\x18\x05 \x01(\x08\x1a\x9b\x02\n\x0b\x43lientHello\x12\x11\n\tephemeral\x18\x01 \x01(\x0c\x12\x0e\n\x06static\x18\x02 \x01(\x0c\x12\x0f\n\x07payload\x18\x03 \x01(\x0c\x12\x13\n\x0buseExtended\x18\x04 \x01(\x08\x12\x1a\n\x12\x65xtendedCiphertext\x18\x05 \x01(\x0c\x12\x13\n\x0bpaddedBytes\x18\x06 \x01(\x0c\x12\"\n\x1asendServerHelloPaddedBytes\x18\x07 \x01(\x08\x12\x17\n\x0fsimulateXxkemFs\x18\x08 \x01(\x08\x12:\n\x06pqMode\x18\t \x01(\x0e\x32*.whatsapp.HandshakeMessage.HandshakePqMode\x12\x19\n\x11\x65xtendedEphemeral\x18\n \x01(\x0c\x1a\x8b\x01\n\x0bServerHello\x12\x11\n\tephemeral\x18\x01 \x01(\x0c\x12\x0e\n\x06static\x18\x02 \x01(\x0c\x12\x0f\n\x07payload\x18\x03 \x01(\x0c\x12\x16\n\x0e\x65xtendedStatic\x18\x04 \x01(\x0c\x12\x14\n\x0cpaddingBytes\x18\x05 \x01(\x0c\x12\x1a\n\x12\x65xtendedCiphertext\x18\x06 \x01(\x0c\"\xa8\x01\n\x0fHandshakePqMode\x12\x1d\n\x19HANDSHAKE_PQ_MODE_UNKNOWN\x10\x00\x12\t\n\x05XXKEM\x10\x01\x12\x0c\n\x08XXKEM_FS\x10\x02\x12\r\n\tXXKEM_EPH\x10\t\x12\x10\n\x0cWA_CLASSICAL\x10\x03\x12\t\n\x05WA_PQ\x10\x04\x12\t\n\x05IKKEM\x10\x05\x12\x0c\n\x08IKKEM_FS\x10\x06\x12\x0b\n\x07XXKEM_2\x10\x07\x12\x0b\n\x07IKKEM_2\x10\x08\"I\n\x11HatchMetadataSync\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x13\n\x0btimestampMs\x18\x02 \x01(\x03\x12\x11\n\trequestId\x18\x03 \x01(\t\"\x9e\x08\n\x0bHistorySync\x12\x37\n\x08syncType\x18\x01 \x02(\x0e\x32%.whatsapp.HistorySync.HistorySyncType\x12-\n\rconversations\x18\x02 \x03(\x0b\x32\x16.whatsapp.Conversation\x12\x32\n\x10statusV3Messages\x18\x03 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\x12\x12\n\nchunkOrder\x18\x05 \x01(\r\x12\x10\n\x08progress\x18\x06 \x01(\r\x12%\n\tpushnames\x18\x07 \x03(\x0b\x32\x12.whatsapp.Pushname\x12\x30\n\x0eglobalSettings\x18\x08 \x01(\x0b\x32\x18.whatsapp.GlobalSettings\x12\x1a\n\x12threadIdUserSecret\x18\t \x01(\x0c\x12\x1f\n\x17threadDsTimeframeOffset\x18\n \x01(\r\x12\x31\n\x0erecentStickers\x18\x0b \x03(\x0b\x32\x19.whatsapp.StickerMetadata\x12\x34\n\x10pastParticipants\x18\x0c \x03(\x0b\x32\x1a.whatsapp.PastParticipants\x12/\n\x0e\x63\x61llLogRecords\x18\r \x03(\x0b\x32\x17.whatsapp.CallLogRecord\x12\x41\n\x0f\x61iWaitListState\x18\x0e \x01(\x0e\x32(.whatsapp.HistorySync.BotAIWaitListState\x12\x43\n\x18phoneNumberToLidMappings\x18\x0f \x03(\x0b\x32!.whatsapp.PhoneNumberToLIDMapping\x12\x1a\n\x12\x63ompanionMetaNonce\x18\x10 \x01(\t\x12,\n$shareableChatIdentifierEncryptionKey\x18\x11 \x01(\x0c\x12#\n\x08\x61\x63\x63ounts\x18\x12 \x03(\x0b\x32\x11.whatsapp.Account\x12\x0f\n\x07nctSalt\x18\x13 \x01(\x0c\x12/\n\x0einlineContacts\x18\x14 \x03(\x0b\x32\x17.whatsapp.InlineContact\x12\x1e\n\x16inlineContactsProvided\x18\x15 \x01(\x08\"7\n\x12\x42otAIWaitListState\x12\x0f\n\x0bIN_WAITLIST\x10\x00\x12\x10\n\x0c\x41I_AVAILABLE\x10\x01\"\x8a\x01\n\x0fHistorySyncType\x12\x15\n\x11INITIAL_BOOTSTRAP\x10\x00\x12\x15\n\x11INITIAL_STATUS_V3\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\x12\n\n\x06RECENT\x10\x03\x12\r\n\tPUSH_NAME\x10\x04\x12\x15\n\x11NON_BLOCKING_DATA\x10\x05\x12\r\n\tON_DEMAND\x10\x06\"O\n\x0eHistorySyncMsg\x12)\n\x07message\x18\x01 \x01(\x0b\x32\x18.whatsapp.WebMessageInfo\x12\x12\n\nmsgOrderId\x18\x02 \x01(\x04\"\x99\x05\n\x16HydratedTemplateButton\x12\r\n\x05index\x18\x04 \x01(\r\x12U\n\x10quickReplyButton\x18\x01 \x01(\x0b\x32\x39.whatsapp.HydratedTemplateButton.HydratedQuickReplyButtonH\x00\x12G\n\turlButton\x18\x02 \x01(\x0b\x32\x32.whatsapp.HydratedTemplateButton.HydratedURLButtonH\x00\x12I\n\ncallButton\x18\x03 \x01(\x0b\x32\x33.whatsapp.HydratedTemplateButton.HydratedCallButtonH\x00\x1a>\n\x12HydratedCallButton\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x12\x13\n\x0bphoneNumber\x18\x02 \x01(\t\x1a;\n\x18HydratedQuickReplyButton\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t\x1a\xf5\x01\n\x11HydratedURLButton\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x19\n\x11\x63onsentedUsersUrl\x18\x03 \x01(\t\x12g\n\x13webviewPresentation\x18\x04 \x01(\x0e\x32J.whatsapp.HydratedTemplateButton.HydratedURLButton.WebviewPresentationType\":\n\x17WebviewPresentationType\x12\x08\n\x04\x46ULL\x10\x01\x12\x08\n\x04TALL\x10\x02\x12\x0b\n\x07\x43OMPACT\x10\x03\x42\x10\n\x0ehydratedButton\"A\n\x18IdentityKeyPairStructure\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\x12\n\nprivateKey\x18\x02 \x01(\x0c\"@\n\x19IdentityVerificationState\x12\x10\n\x08verified\x18\x01 \x01(\x08\x12\x11\n\tactionSeq\x18\x02 \x01(\x04\"\x97\x07\n\x16InThreadSurveyMetadata\x12\x16\n\x0etessaSessionId\x18\x01 \x01(\t\x12\x16\n\x0esimonSessionId\x18\x02 \x01(\t\x12\x15\n\rsimonSurveyId\x18\x03 \x01(\t\x12\x13\n\x0btessaRootId\x18\x04 \x01(\t\x12\x11\n\trequestId\x18\x05 \x01(\t\x12\x12\n\ntessaEvent\x18\x06 \x01(\t\x12\x1c\n\x14invitationHeaderText\x18\x07 \x01(\t\x12\x1a\n\x12invitationBodyText\x18\x08 \x01(\t\x12\x19\n\x11invitationCtaText\x18\t \x01(\t\x12\x18\n\x10invitationCtaUrl\x18\n \x01(\t\x12\x13\n\x0bsurveyTitle\x18\x0b \x01(\t\x12J\n\tquestions\x18\x0c \x03(\x0b\x32\x37.whatsapp.InThreadSurveyMetadata.InThreadSurveyQuestion\x12 \n\x18surveyContinueButtonText\x18\r \x01(\t\x12\x1e\n\x16surveySubmitButtonText\x18\x0e \x01(\t\x12\x1c\n\x14privacyStatementFull\x18\x0f \x01(\t\x12\x62\n\x15privacyStatementParts\x18\x10 \x03(\x0b\x32\x43.whatsapp.InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPart\x12\x19\n\x11\x66\x65\x65\x64\x62\x61\x63kToastText\x18\x11 \x01(\t\x12\x1a\n\x12startQuestionIndex\x18\x12 \x01(\x05\x1aY\n\x14InThreadSurveyOption\x12\x13\n\x0bstringValue\x18\x01 \x01(\t\x12\x14\n\x0cnumericValue\x18\x02 \x01(\r\x12\x16\n\x0etextTranslated\x18\x03 \x01(\t\x1a?\n\"InThreadSurveyPrivacyStatementPart\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x1a\x92\x01\n\x16InThreadSurveyQuestion\x12\x14\n\x0cquestionText\x18\x01 \x01(\t\x12\x12\n\nquestionId\x18\x02 \x01(\t\x12N\n\x0fquestionOptions\x18\x03 \x03(\x0b\x32\x35.whatsapp.InThreadSurveyMetadata.InThreadSurveyOption\"e\n\rInlineContact\x12\r\n\x05pnJid\x18\x01 \x01(\t\x12\x0e\n\x06lidJid\x18\x02 \x01(\t\x12\x10\n\x08\x66ullName\x18\x03 \x01(\t\x12\x11\n\tfirstName\x18\x04 \x01(\t\x12\x10\n\x08username\x18\x05 \x01(\t\"\x8f\x04\n\x15InteractiveAnnotation\x12(\n\x0fpolygonVertices\x18\x01 \x03(\x0b\x32\x0f.whatsapp.Point\x12\x1e\n\x16shouldSkipConfirmation\x18\x04 \x01(\x08\x12\x32\n\x0f\x65mbeddedContent\x18\x05 \x01(\x0b\x32\x19.whatsapp.EmbeddedContent\x12\x46\n\x0estatusLinkType\x18\x08 \x01(\x0e\x32..whatsapp.InteractiveAnnotation.StatusLinkType\x12&\n\x08location\x18\x02 \x01(\x0b\x32\x12.whatsapp.LocationH\x00\x12J\n\nnewsletter\x18\x03 \x01(\x0b\x32\x34.whatsapp.ContextInfo.ForwardedNewsletterMessageInfoH\x00\x12\x18\n\x0e\x65mbeddedAction\x18\x06 \x01(\x08H\x00\x12,\n\ttapAction\x18\x07 \x01(\x0b\x32\x17.whatsapp.TapLinkActionH\x00\"j\n\x0eStatusLinkType\x12\x1b\n\x17RASTERIZED_LINK_PREVIEW\x10\x01\x12\x1d\n\x19RASTERIZED_LINK_TRUNCATED\x10\x02\x12\x1c\n\x18RASTERIZED_LINK_FULL_URL\x10\x03\x42\x08\n\x06\x61\x63tion\"E\n$InteractiveMessageAdditionalMetadata\x12\x1d\n\x15isGalaxyFlowCompleted\x18\x01 \x01(\x08\"\xb7\x01\n\nKeepInChat\x12$\n\x08keepType\x18\x01 \x01(\x0e\x32\x12.whatsapp.KeepType\x12\x17\n\x0fserverTimestamp\x18\x02 \x01(\x03\x12!\n\x03key\x18\x03 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x11\n\tdeviceJid\x18\x04 \x01(\t\x12\x19\n\x11\x63lientTimestampMs\x18\x05 \x01(\x03\x12\x19\n\x11serverTimestampMs\x18\x06 \x01(\x03\"t\n\x12KeyExchangeMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\x12\x12\n\nratchetKey\x18\x03 \x01(\x0c\x12\x13\n\x0bidentityKey\x18\x04 \x01(\x0c\x12\x18\n\x10\x62\x61seKeySignature\x18\x05 \x01(\x0c\"\x13\n\x05KeyId\x12\n\n\x02id\x18\x01 \x01(\x0c\"?\n\x1eLIDMigrationMappingSyncMessage\x12\x1d\n\x15\x65ncodedMappingPayload\x18\x01 \x01(\x0c\"I\n\x13LIDMigrationMapping\x12\n\n\x02pn\x18\x01 \x02(\x04\x12\x13\n\x0b\x61ssignedLid\x18\x02 \x02(\x04\x12\x11\n\tlatestLid\x18\x03 \x01(\x04\"z\n\x1eLIDMigrationMappingSyncPayload\x12\x36\n\x0fpnToLidMappings\x18\x01 \x03(\x0b\x32\x1d.whatsapp.LIDMigrationMapping\x12 \n\x18\x63hatDbMigrationTimestamp\x18\x02 \x01(\x04\"\x8c\x03\n\x12LabyrinthWaCommand\x12\x38\n\x11\x63reateBackupInput\x18\x01 \x01(\x0b\x32\x1b.whatsapp.CreateBackupInputH\x00\x12<\n\x13\x65ncryptMessageInput\x18\x02 \x01(\x0b\x32\x1d.whatsapp.EncryptMessageInputH\x00\x12<\n\x13\x64\x65\x63ryptMessageInput\x18\x03 \x01(\x0b\x32\x1d.whatsapp.DecryptMessageInputH\x00\x12\x36\n\x10orfThreadIdInput\x18\x04 \x01(\x0b\x32\x1a.whatsapp.OrfThreadIdInputH\x00\x12@\n\x15\x64\x65riveMessageKeyInput\x18\x05 \x01(\x0b\x32\x1f.whatsapp.DeriveMessageKeyInputH\x00\x12\x36\n\x10rotateEpochInput\x18\x06 \x01(\x0b\x32\x1a.whatsapp.RotateEpochInputH\x00\x42\x0e\n\x0c\x63ommandInput\"\x8a\x01\n\rLegacyMessage\x12\x44\n\x14\x65ventResponseMessage\x18\x01 \x01(\x0b\x32&.whatsapp.Message.EventResponseMessage\x12\x33\n\x08pollVote\x18\x02 \x01(\x0b\x32!.whatsapp.Message.PollVoteMessage\"\xff\x01\n\x0cLimitSharing\x12\x16\n\x0esharingLimited\x18\x01 \x01(\x08\x12<\n\x07trigger\x18\x02 \x01(\x0e\x32\".whatsapp.LimitSharing.TriggerType:\x07UNKNOWN\x12$\n\x1climitSharingSettingTimestamp\x18\x03 \x01(\x03\x12\x15\n\rinitiatedByMe\x18\x04 \x01(\x08\"\\\n\x0bTriggerType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0c\x43HAT_SETTING\x10\x01\x12\x1b\n\x17\x42IZ_SUPPORTS_FB_HOSTING\x10\x02\x12\x11\n\rUNKNOWN_GROUP\x10\x03\"=\n\rLocalizedName\x12\n\n\x02lg\x18\x01 \x01(\t\x12\n\n\x02lc\x18\x02 \x01(\t\x12\x14\n\x0cverifiedName\x18\x03 \x01(\t\"K\n\x08Location\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\"\xb4\x06\n\x17MandrakeDecryptMekInput\x12\x14\n\x0c\x65ncryptedMek\x18\x01 \x02(\x0c\x12\x16\n\x0erecipientsHash\x18\x04 \x02(\x0c\x12\x16\n\x0erecipientEncSk\x18\x05 \x02(\x0c\x12\x1c\n\x14mekEncryptionVersion\x18\x06 \x01(\x04\x12)\n\x04\x63onf\x18\x07 \x01(\x0b\x32\x1b.whatsapp.MinosClientConfig\x12:\n\x0crecipientMmk\x18\x08 \x02(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x12\r\n\x05mekId\x18\t \x01(\x0c\x12\x41\n\x18recipientMembershipProof\x18\n \x01(\x0b\x32\x1f.whatsapp.MerkleMembershipProof\x12J\n\tmmkSender\x18\x02 \x01(\x0b\x32\x35.whatsapp.MandrakeDecryptMekInput.MmkSenderPublicDataH\x00\x12N\n\x0b\x65pochSender\x18\x03 \x01(\x0b\x32\x37.whatsapp.MandrakeDecryptMekInput.EpochSenderPublicDataH\x00\x12\x64\n\x16precomputedEpochSender\x18\x0b \x01(\x0b\x32\x42.whatsapp.MandrakeDecryptMekInput.PrecomputedEpochSenderPublicDataH\x00\x1aK\n\x15\x45pochSenderPublicData\x12\x32\n\x0f\x65pochPublicData\x18\x01 \x02(\x0b\x32\x19.whatsapp.EpochPublicData\x1aR\n\x13MmkSenderPublicData\x12;\n\rmmkPublicData\x18\x01 \x02(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x1a\x45\n PrecomputedEpochSenderPublicData\x12\x0e\n\x06\x61uthPk\x18\x01 \x02(\x0c\x12\x11\n\tepochHead\x18\x02 \x02(\x0c\x42\x12\n\x10senderPublicData\"t\n\x18MandrakeDecryptMekResult\x12\x36\n\x07success\x18\x01 \x01(\x0b\x32#.whatsapp.MandrakeDecryptMekSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"(\n\x19MandrakeDecryptMekSuccess\x12\x0b\n\x03mek\x18\x01 \x02(\x0c\"\xdd\x05\n\x17MandrakeEncryptMekInput\x12(\n\x03mek\x18\x01 \x02(\x0b\x32\x1b.whatsapp.MandrakeMekBundle\x12\x38\n\nrecipients\x18\x02 \x03(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x12)\n\x04\x63onf\x18\x05 \x01(\x0b\x32\x1b.whatsapp.MinosClientConfig\x12@\n\tmmkSender\x18\x03 \x01(\x0b\x32+.whatsapp.MandrakeEncryptMekInput.MmkSenderH\x00\x12\x44\n\x0b\x65pochSender\x18\x04 \x01(\x0b\x32-.whatsapp.MandrakeEncryptMekInput.EpochSenderH\x00\x12V\n\x14\x64\x65tachedDeviceSender\x18\x06 \x01(\x0b\x32\x36.whatsapp.MandrakeEncryptMekInput.DetachedDeviceSenderH\x00\x1a|\n\x14\x44\x65tachedDeviceSender\x12\x44\n\x18\x64\x65tachedDevicePublicData\x18\x01 \x02(\x0b\x32\".whatsapp.DetachedDevicePublicData\x12\x0e\n\x06\x61uthSk\x18\x02 \x02(\x0c\x12\x0e\n\x06\x61uthPk\x18\x03 \x02(\x0c\x1a\x61\n\x0b\x45pochSender\x12\x32\n\x0f\x65pochPublicData\x18\x01 \x02(\x0b\x32\x19.whatsapp.EpochPublicData\x12\x0e\n\x06\x61uthSk\x18\x02 \x02(\x0c\x12\x0e\n\x06\x61uthPk\x18\x03 \x02(\x0c\x1ah\n\tMmkSender\x12;\n\rmmkPublicData\x18\x01 \x02(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x12\x0e\n\x06\x61uthSk\x18\x02 \x02(\x0c\x12\x0e\n\x06\x61uthPk\x18\x03 \x02(\x0c\x42\x08\n\x06sender\"t\n\x18MandrakeEncryptMekResult\x12\x36\n\x07success\x18\x01 \x01(\x0b\x32#.whatsapp.MandrakeEncryptMekSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"\xd0\x02\n\x19MandrakeEncryptMekSuccess\x12Y\n\rdistributions\x18\x01 \x03(\x0b\x32\x42.whatsapp.MandrakeEncryptMekSuccess.MekDistributionSingleRecipient\x12\x16\n\x0erecipientsHash\x18\x02 \x02(\x0c\x12\x0f\n\x07version\x18\x03 \x02(\x04\x1a\xae\x01\n\x1eMekDistributionSingleRecipient\x12\x14\n\x0c\x65ncryptedMek\x18\x01 \x02(\x0c\x12\x33\n\x05toMmk\x18\x02 \x02(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x12\x41\n\x18recipientMembershipProof\x18\x03 \x01(\x0b\x32\x1f.whatsapp.MerkleMembershipProof\"H\n\x11MandrakeMekBundle\x12\x0b\n\x03key\x18\x01 \x02(\x0c\x12\r\n\x05mekId\x18\x02 \x02(\x0c\x12\x17\n\x0fmailboxHeadHash\x18\x03 \x02(\x0c\"\xa5\x02\n\x16MandrakeOpenEpochInput\x12\x10\n\x08userFbid\x18\x01 \x02(\t\x12\x13\n\x0b\x65pochNumber\x18\x02 \x02(\x04\x12\x15\n\rexportRootKey\x18\x03 \x02(\x0c\x12\x1d\n\x15previousExportRootKey\x18\x04 \x02(\x0c\x12\x1b\n\x13previousEpochNumber\x18\x05 \x02(\x04\x12\x19\n\x11previousEpochHead\x18\x06 \x02(\x0c\x12\x39\n\x0bpreviousMmk\x18\x07 \x01(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x12;\n\x0f\x64\x65tachedDevices\x18\x08 \x03(\x0b\x32\".whatsapp.DetachedDevicePublicData\"r\n\x17MandrakeOpenEpochResult\x12\x35\n\x07success\x18\x01 \x01(\x0b\x32\".whatsapp.MandrakeOpenEpochSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"\x9b\x01\n\x18MandrakeOpenEpochSuccess\x12\x34\n\x10minosSignedEpoch\x18\x01 \x02(\x0b\x32\x1a.whatsapp.MinosSignedEpoch\x12I\n\x15signedMmkDistribution\x18\x02 \x02(\x0b\x32*.whatsapp.SignedMmkDistributionFromMailbox\"\x9a\x01\n\x1dMandrakeOpenInitialEpochInput\x12\x10\n\x08userFbid\x18\x01 \x02(\t\x12\x13\n\x0b\x65pochNumber\x18\x02 \x02(\x04\x12\x15\n\rexportRootKey\x18\x03 \x02(\x0c\x12;\n\x0f\x64\x65tachedDevices\x18\x04 \x03(\x0b\x32\".whatsapp.DetachedDevicePublicData\"y\n\x1eMandrakeOpenInitialEpochResult\x12\x35\n\x07success\x18\x01 \x01(\x0b\x32\".whatsapp.MandrakeOpenEpochSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"\xb1\x01\n-MandrakeValidateNewMmkFromDetachedDeviceInput\x12\x36\n\rmmkFromDevice\x18\x01 \x02(\x0b\x32\x1f.whatsapp.MmkFromDetachedDevice\x12\x11\n\tsignature\x18\x02 \x02(\x0c\x12\x35\n\x07prevMmk\x18\x03 \x02(\x0b\x32$.whatsapp.MessagingMailboxPublicData\"\xdc\x01\n&MandrakeValidateNewMmkFromMailboxInput\x12\x34\n\x06newMmk\x18\x01 \x02(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x12\x11\n\tsignature\x18\x02 \x02(\x0c\x12\x35\n\x07prevMmk\x18\x03 \x01(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x12\x32\n\x0f\x65pochPublicData\x18\x04 \x02(\x0b\x32\x19.whatsapp.EpochPublicData\"Q\n\x1cMandrakeValidateNewMmkResult\x12\x0f\n\x05valid\x18\x01 \x01(\x08H\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"\x1e\n\tMediaData\x12\x11\n\tlocalPath\x18\x01 \x01(\t\"Y\n\x0fMediaDomainInfo\x12\x30\n\x0emediaKeyDomain\x18\x01 \x01(\x0e\x32\x18.whatsapp.MediaKeyDomain\x12\x14\n\x0c\x65\x32\x45\x65MediaKey\x18\x02 \x01(\x0c\"\xb9\x05\n\nMediaEntry\x12\x12\n\nfileSha256\x18\x01 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x02 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x03 \x01(\x0c\x12\x12\n\ndirectPath\x18\x04 \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x05 \x01(\x03\x12\x17\n\x0fserverMediaType\x18\x06 \x01(\t\x12\x13\n\x0buploadToken\x18\x07 \x01(\x0c\x12\x1a\n\x12validatedTimestamp\x18\x08 \x01(\x0c\x12\x0f\n\x07sidecar\x18\t \x01(\x0c\x12\x10\n\x08objectId\x18\n \x01(\t\x12\x0c\n\x04\x66\x62id\x18\x0b \x01(\t\x12I\n\x15\x64ownloadableThumbnail\x18\x0c \x01(\x0b\x32*.whatsapp.MediaEntry.DownloadableThumbnail\x12\x0e\n\x06handle\x18\r \x01(\t\x12\x10\n\x08\x66ilename\x18\x0e \x01(\t\x12K\n\x16progressiveJpegDetails\x18\x0f \x01(\x0b\x32+.whatsapp.MediaEntry.ProgressiveJpegDetails\x12\x0c\n\x04size\x18\x10 \x01(\x03\x12$\n\x1clastDownloadAttemptTimestamp\x18\x11 \x01(\x03\x1a\x95\x01\n\x15\x44ownloadableThumbnail\x12\x12\n\nfileSha256\x18\x01 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x02 \x01(\x0c\x12\x12\n\ndirectPath\x18\x03 \x01(\t\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x19\n\x11mediaKeyTimestamp\x18\x05 \x01(\x03\x12\x10\n\x08objectId\x18\x06 \x01(\t\x1a>\n\x16ProgressiveJpegDetails\x12\x13\n\x0bscanLengths\x18\x01 \x03(\r\x12\x0f\n\x07sidecar\x18\x02 \x01(\x0c\"W\n\x12MediaNotifyMessage\x12\x16\n\x0e\x65xpressPathUrl\x18\x01 \x01(\t\x12\x15\n\rfileEncSha256\x18\x02 \x01(\x0c\x12\x12\n\nfileLength\x18\x03 \x01(\x04\"\xe5\x01\n\x16MediaRetryNotification\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\x12\x12\n\ndirectPath\x18\x02 \x01(\t\x12;\n\x06result\x18\x03 \x01(\x0e\x32+.whatsapp.MediaRetryNotification.ResultType\x12\x15\n\rmessageSecret\x18\x04 \x01(\x0c\"Q\n\nResultType\x12\x11\n\rGENERAL_ERROR\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\r\n\tNOT_FOUND\x10\x02\x12\x14\n\x10\x44\x45\x43RYPTION_ERROR\x10\x03\";\n\tMekBundle\x12\x0b\n\x03key\x18\x01 \x02(\x0c\x12\r\n\x05mekId\x18\x02 \x02(\x0c\x12\x12\n\nrosterHash\x18\x03 \x02(\x0c\"4\n\x0bMemberLabel\x12\r\n\x05label\x18\x01 \x01(\t\x12\x16\n\x0elabelTimestamp\x18\x02 \x01(\x03\"t\n\x07Mention\x12\x33\n\x0bmentionType\x18\x01 \x01(\x0e\x32\x1e.whatsapp.MENTION_MENTION_TYPE\x12\x14\n\x0cmentionedJid\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\r\x12\x0e\n\x06length\x18\x04 \x01(\r\"\\\n\x15MerkleMembershipProof\x12\r\n\x05proof\x18\x01 \x02(\x0c\x12\x0c\n\x04root\x18\x02 \x02(\x0c\x12\x11\n\tleafIndex\x18\x03 \x02(\x04\x12\x13\n\x0btotalLeaves\x18\x04 \x02(\x04\"\xa3\x8d\x03\n\x07Message\x12\x14\n\x0c\x63onversation\x18\x01 \x01(\t\x12T\n\x1csenderKeyDistributionMessage\x18\x02 \x01(\x0b\x32..whatsapp.Message.SenderKeyDistributionMessage\x12\x34\n\x0cimageMessage\x18\x03 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessage\x12\x38\n\x0e\x63ontactMessage\x18\x04 \x01(\x0b\x32 .whatsapp.Message.ContactMessage\x12:\n\x0flocationMessage\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessage\x12\x42\n\x13\x65xtendedTextMessage\x18\x06 \x01(\x0b\x32%.whatsapp.Message.ExtendedTextMessage\x12:\n\x0f\x64ocumentMessage\x18\x07 \x01(\x0b\x32!.whatsapp.Message.DocumentMessage\x12\x34\n\x0c\x61udioMessage\x18\x08 \x01(\x0b\x32\x1e.whatsapp.Message.AudioMessage\x12\x34\n\x0cvideoMessage\x18\t \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessage\x12$\n\x04\x63\x61ll\x18\n \x01(\x0b\x32\x16.whatsapp.Message.Call\x12$\n\x04\x63hat\x18\x0b \x01(\x0b\x32\x16.whatsapp.Message.Chat\x12:\n\x0fprotocolMessage\x18\x0c \x01(\x0b\x32!.whatsapp.Message.ProtocolMessage\x12\x44\n\x14\x63ontactsArrayMessage\x18\r \x01(\x0b\x32&.whatsapp.Message.ContactsArrayMessage\x12J\n\x17highlyStructuredMessage\x18\x0e \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12\x62\n*fastRatchetKeySenderKeyDistributionMessage\x18\x0f \x01(\x0b\x32..whatsapp.Message.SenderKeyDistributionMessage\x12@\n\x12sendPaymentMessage\x18\x10 \x01(\x0b\x32$.whatsapp.Message.SendPaymentMessage\x12\x42\n\x13liveLocationMessage\x18\x12 \x01(\x0b\x32%.whatsapp.Message.LiveLocationMessage\x12\x46\n\x15requestPaymentMessage\x18\x16 \x01(\x0b\x32\'.whatsapp.Message.RequestPaymentMessage\x12T\n\x1c\x64\x65\x63linePaymentRequestMessage\x18\x17 \x01(\x0b\x32..whatsapp.Message.DeclinePaymentRequestMessage\x12R\n\x1b\x63\x61ncelPaymentRequestMessage\x18\x18 \x01(\x0b\x32-.whatsapp.Message.CancelPaymentRequestMessage\x12:\n\x0ftemplateMessage\x18\x19 \x01(\x0b\x32!.whatsapp.Message.TemplateMessage\x12\x38\n\x0estickerMessage\x18\x1a \x01(\x0b\x32 .whatsapp.Message.StickerMessage\x12@\n\x12groupInviteMessage\x18\x1c \x01(\x0b\x32$.whatsapp.Message.GroupInviteMessage\x12P\n\x1atemplateButtonReplyMessage\x18\x1d \x01(\x0b\x32,.whatsapp.Message.TemplateButtonReplyMessage\x12\x38\n\x0eproductMessage\x18\x1e \x01(\x0b\x32 .whatsapp.Message.ProductMessage\x12>\n\x11\x64\x65viceSentMessage\x18\x1f \x01(\x0b\x32#.whatsapp.Message.DeviceSentMessage\x12\x38\n\x12messageContextInfo\x18# \x01(\x0b\x32\x1c.whatsapp.MessageContextInfo\x12\x32\n\x0blistMessage\x18$ \x01(\x0b\x32\x1d.whatsapp.Message.ListMessage\x12=\n\x0fviewOnceMessage\x18% \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x34\n\x0corderMessage\x18& \x01(\x0b\x32\x1e.whatsapp.Message.OrderMessage\x12\x42\n\x13listResponseMessage\x18\' \x01(\x0b\x32%.whatsapp.Message.ListResponseMessage\x12>\n\x10\x65phemeralMessage\x18( \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x38\n\x0einvoiceMessage\x18) \x01(\x0b\x32 .whatsapp.Message.InvoiceMessage\x12\x38\n\x0e\x62uttonsMessage\x18* \x01(\x0b\x32 .whatsapp.Message.ButtonsMessage\x12H\n\x16\x62uttonsResponseMessage\x18+ \x01(\x0b\x32(.whatsapp.Message.ButtonsResponseMessage\x12\x44\n\x14paymentInviteMessage\x18, \x01(\x0b\x32&.whatsapp.Message.PaymentInviteMessage\x12@\n\x12interactiveMessage\x18- \x01(\x0b\x32$.whatsapp.Message.InteractiveMessage\x12:\n\x0freactionMessage\x18. \x01(\x0b\x32!.whatsapp.Message.ReactionMessage\x12\x46\n\x15stickerSyncRmrMessage\x18/ \x01(\x0b\x32\'.whatsapp.Message.StickerSyncRMRMessage\x12P\n\x1ainteractiveResponseMessage\x18\x30 \x01(\x0b\x32,.whatsapp.Message.InteractiveResponseMessage\x12\x42\n\x13pollCreationMessage\x18\x31 \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12>\n\x11pollUpdateMessage\x18\x32 \x01(\x0b\x32#.whatsapp.Message.PollUpdateMessage\x12>\n\x11keepInChatMessage\x18\x33 \x01(\x0b\x32#.whatsapp.Message.KeepInChatMessage\x12H\n\x1a\x64ocumentWithCaptionMessage\x18\x35 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12N\n\x19requestPhoneNumberMessage\x18\x36 \x01(\x0b\x32+.whatsapp.Message.RequestPhoneNumberMessage\x12?\n\x11viewOnceMessageV2\x18\x37 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12@\n\x12\x65ncReactionMessage\x18\x38 \x01(\x0b\x32$.whatsapp.Message.EncReactionMessage\x12;\n\reditedMessage\x18: \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12H\n\x1aviewOnceMessageV2Extension\x18; \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x44\n\x15pollCreationMessageV2\x18< \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12T\n\x1cscheduledCallCreationMessage\x18= \x01(\x0b\x32..whatsapp.Message.ScheduledCallCreationMessage\x12\x43\n\x15groupMentionedMessage\x18> \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x10pinInChatMessage\x18? \x01(\x0b\x32\".whatsapp.Message.PinInChatMessage\x12\x44\n\x15pollCreationMessageV3\x18@ \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12L\n\x18scheduledCallEditMessage\x18\x41 \x01(\x0b\x32*.whatsapp.Message.ScheduledCallEditMessage\x12\x32\n\nptvMessage\x18\x42 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessage\x12>\n\x10\x62otInvokeMessage\x18\x43 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x39\n\x0f\x63\x61llLogMesssage\x18\x45 \x01(\x0b\x32 .whatsapp.Message.CallLogMessage\x12\x44\n\x14messageHistoryBundle\x18\x46 \x01(\x0b\x32&.whatsapp.Message.MessageHistoryBundle\x12>\n\x11\x65ncCommentMessage\x18G \x01(\x0b\x32#.whatsapp.Message.EncCommentMessage\x12\x34\n\x0c\x62\x63\x61llMessage\x18H \x01(\x0b\x32\x1e.whatsapp.Message.BCallMessage\x12\x42\n\x14lottieStickerMessage\x18J \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x34\n\x0c\x65ventMessage\x18K \x01(\x0b\x32\x1e.whatsapp.Message.EventMessage\x12J\n\x17\x65ncEventResponseMessage\x18L \x01(\x0b\x32).whatsapp.Message.EncEventResponseMessage\x12\x38\n\x0e\x63ommentMessage\x18M \x01(\x0b\x32 .whatsapp.Message.CommentMessage\x12T\n\x1cnewsletterAdminInviteMessage\x18N \x01(\x0b\x32..whatsapp.Message.NewsletterAdminInviteMessage\x12@\n\x12placeholderMessage\x18P \x01(\x0b\x32$.whatsapp.Message.PlaceholderMessage\x12H\n\x16secretEncryptedMessage\x18R \x01(\x0b\x32(.whatsapp.Message.SecretEncryptedMessage\x12\x34\n\x0c\x61lbumMessage\x18S \x01(\x0b\x32\x1e.whatsapp.Message.AlbumMessage\x12=\n\x0f\x65ventCoverImage\x18U \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12@\n\x12stickerPackMessage\x18V \x01(\x0b\x32$.whatsapp.Message.StickerPackMessage\x12\x42\n\x14statusMentionMessage\x18W \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12N\n\x19pollResultSnapshotMessage\x18X \x01(\x0b\x32+.whatsapp.Message.PollResultSnapshotMessage\x12L\n\x1epollCreationOptionImageMessage\x18Z \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x44\n\x16\x61ssociatedChildMessage\x18[ \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12G\n\x19groupStatusMentionMessage\x18\\ \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x43\n\x15pollCreationMessageV4\x18] \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x0estatusAddYours\x18_ \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12@\n\x12groupStatusMessage\x18` \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x13richResponseMessage\x18\x61 \x01(\x0b\x32\x1f.whatsapp.AIRichResponseMessage\x12N\n\x19statusNotificationMessage\x18\x62 \x01(\x0b\x32+.whatsapp.Message.StatusNotificationMessage\x12\x41\n\x13limitSharingMessage\x18\x63 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x0e\x62otTaskMessage\x18\x64 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12=\n\x0fquestionMessage\x18\x65 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x44\n\x14messageHistoryNotice\x18\x66 \x01(\x0b\x32&.whatsapp.Message.MessageHistoryNotice\x12\x42\n\x14groupStatusMessageV2\x18g \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x41\n\x13\x62otForwardedMessage\x18h \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12R\n\x1bstatusQuestionAnswerMessage\x18i \x01(\x0b\x32-.whatsapp.Message.StatusQuestionAnswerMessage\x12\x42\n\x14questionReplyMessage\x18j \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12J\n\x17questionResponseMessage\x18k \x01(\x0b\x32).whatsapp.Message.QuestionResponseMessage\x12\x42\n\x13statusQuotedMessage\x18m \x01(\x0b\x32%.whatsapp.Message.StatusQuotedMessage\x12Z\n\x1fstatusStickerInteractionMessage\x18n \x01(\x0b\x32\x31.whatsapp.Message.StatusStickerInteractionMessage\x12\x44\n\x15pollCreationMessageV5\x18o \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12\\\n!newsletterFollowerInviteMessageV2\x18q \x01(\x0b\x32\x31.whatsapp.Message.NewsletterFollowerInviteMessage\x12P\n\x1bpollResultSnapshotMessageV3\x18s \x01(\x0b\x32+.whatsapp.Message.PollResultSnapshotMessage\x12K\n\x1dnewsletterAdminProfileMessage\x18t \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12M\n\x1fnewsletterAdminProfileMessageV2\x18u \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12<\n\x0espoilerMessage\x18v \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12\x44\n\x15pollCreationMessageV6\x18w \x01(\x0b\x32%.whatsapp.Message.PollCreationMessage\x12L\n\x18\x63onditionalRevealMessage\x18x \x01(\x0b\x32*.whatsapp.Message.ConditionalRevealMessage\x12\x44\n\x14pollAddOptionMessage\x18y \x01(\x0b\x32&.whatsapp.Message.PollAddOptionMessage\x12@\n\x12\x65ventInviteMessage\x18z \x01(\x0b\x32$.whatsapp.Message.EventInviteMessage\x12\x36\n\x11groupRootKeyShare\x18{ \x01(\x0b\x32\x1b.whatsapp.GroupRootKeyShare\x12H\n\x16paymentReminderMessage\x18| \x01(\x0b\x32(.whatsapp.Message.PaymentReminderMessage\x12\x42\n\x13splitPaymentMessage\x18} \x01(\x0b\x32%.whatsapp.Message.SplitPaymentMessage\x12Q\n#newsletterAdminProfileStatusMessage\x18~ \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x12R\n\x1brootSecretDistributeMessage\x18\x7f \x01(\x0b\x32-.whatsapp.Message.RootSecretDistributeMessage\x12O\n\x19splitPaymentUpdateMessage\x18\x80\x01 \x01(\x0b\x32+.whatsapp.Message.SplitPaymentUpdateMessage\x12\x35\n\x0cmusicMessage\x18\x81\x01 \x01(\x0b\x32\x1e.whatsapp.Message.MusicMessage\x12O\n\x19statusLinkPreviewMetadata\x18\x82\x01 \x01(\x0b\x32+.whatsapp.Message.StatusLinkPreviewMetadata\x12T\n%botPlatformRegistrationSuccessMessage\x18\x83\x01 \x01(\x0b\x32$.whatsapp.Message.FutureProofMessage\x1ar\n\x0c\x41lbumMessage\x12\x1a\n\x12\x65xpectedImageCount\x18\x02 \x01(\r\x12\x1a\n\x12\x65xpectedVideoCount\x18\x03 \x01(\r\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1aP\n\"AppStateFatalExceptionNotification\x12\x17\n\x0f\x63ollectionNames\x18\x01 \x03(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\x1a}\n\x0f\x41ppStateSyncKey\x12\x32\n\x05keyId\x18\x01 \x01(\x0b\x32#.whatsapp.Message.AppStateSyncKeyId\x12\x36\n\x07keyData\x18\x02 \x01(\x0b\x32%.whatsapp.Message.AppStateSyncKeyData\x1a|\n\x13\x41ppStateSyncKeyData\x12\x0f\n\x07keyData\x18\x01 \x01(\x0c\x12\x41\n\x0b\x66ingerprint\x18\x02 \x01(\x0b\x32,.whatsapp.Message.AppStateSyncKeyFingerprint\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\x1a\\\n\x1a\x41ppStateSyncKeyFingerprint\x12\r\n\x05rawId\x18\x01 \x01(\r\x12\x14\n\x0c\x63urrentIndex\x18\x02 \x01(\r\x12\x19\n\rdeviceIndexes\x18\x03 \x03(\rB\x02\x10\x01\x1a\"\n\x11\x41ppStateSyncKeyId\x12\r\n\x05keyId\x18\x01 \x01(\x0c\x1aM\n\x16\x41ppStateSyncKeyRequest\x12\x33\n\x06keyIds\x18\x01 \x03(\x0b\x32#.whatsapp.Message.AppStateSyncKeyId\x1aG\n\x14\x41ppStateSyncKeyShare\x12/\n\x04keys\x18\x01 \x03(\x0b\x32!.whatsapp.Message.AppStateSyncKey\x1a\xe9\x02\n\x0c\x41udioMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08mimetype\x18\x02 \x01(\t\x12\x12\n\nfileSha256\x18\x03 \x01(\x0c\x12\x12\n\nfileLength\x18\x04 \x01(\x04\x12\x0f\n\x07seconds\x18\x05 \x01(\r\x12\x0b\n\x03ptt\x18\x06 \x01(\x08\x12\x10\n\x08mediaKey\x18\x07 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x08 \x01(\x0c\x12\x12\n\ndirectPath\x18\t \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\n \x01(\x03\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x18\n\x10streamingSidecar\x18\x12 \x01(\x0c\x12\x10\n\x08waveform\x18\x13 \x01(\x0c\x12\x16\n\x0e\x62\x61\x63kgroundArgb\x18\x14 \x01(\x07\x12\x10\n\x08viewOnce\x18\x15 \x01(\x08\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x16 \x01(\t\x1a\xb2\x01\n\x0c\x42\x43\x61llMessage\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12;\n\tmediaType\x18\x02 \x01(\x0e\x32(.whatsapp.Message.BCallMessage.MediaType\x12\x11\n\tmasterKey\x18\x03 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x04 \x01(\t\".\n\tMediaType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x41UDIO\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\x9c\x01\n\x1b\x42otHistoryShareSyncMetadata\x12\x0e\n\x06\x62otJid\x18\x01 \x01(\t\x12#\n\x1bhistoryShareCutoffTimestamp\x18\x02 \x01(\x03\x12H\n\x14historyShareMessages\x18\x03 \x03(\x0b\x32*.whatsapp.Message.HistoryShareMessageEntry\x1a\xc4\x07\n\x0e\x42uttonsMessage\x12\x13\n\x0b\x63ontentText\x18\x06 \x01(\t\x12\x12\n\nfooterText\x18\x07 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x08 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x38\n\x07\x62uttons\x18\t \x03(\x0b\x32\'.whatsapp.Message.ButtonsMessage.Button\x12?\n\nheaderType\x18\n \x01(\x0e\x32+.whatsapp.Message.ButtonsMessage.HeaderType\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x12<\n\x0f\x64ocumentMessage\x18\x02 \x01(\x0b\x32!.whatsapp.Message.DocumentMessageH\x00\x12\x36\n\x0cimageMessage\x18\x03 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessageH\x00\x12\x36\n\x0cvideoMessage\x18\x04 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessageH\x00\x12<\n\x0flocationMessage\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessageH\x00\x1a\xf9\x02\n\x06\x42utton\x12\x10\n\x08\x62uttonId\x18\x01 \x01(\t\x12\x46\n\nbuttonText\x18\x02 \x01(\x0b\x32\x32.whatsapp.Message.ButtonsMessage.Button.ButtonText\x12:\n\x04type\x18\x03 \x01(\x0e\x32,.whatsapp.Message.ButtonsMessage.Button.Type\x12N\n\x0enativeFlowInfo\x18\x04 \x01(\x0b\x32\x36.whatsapp.Message.ButtonsMessage.Button.NativeFlowInfo\x1a!\n\nButtonText\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x1a\x32\n\x0eNativeFlowInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nparamsJson\x18\x02 \x01(\t\"2\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08RESPONSE\x10\x01\x12\x0f\n\x0bNATIVE_FLOW\x10\x02\"`\n\nHeaderType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x45MPTY\x10\x01\x12\x08\n\x04TEXT\x10\x02\x12\x0c\n\x08\x44OCUMENT\x10\x03\x12\t\n\x05IMAGE\x10\x04\x12\t\n\x05VIDEO\x10\x05\x12\x0c\n\x08LOCATION\x10\x06\x42\x08\n\x06header\x1a\xed\x01\n\x16\x42uttonsResponseMessage\x12\x18\n\x10selectedButtonId\x18\x01 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x03 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12;\n\x04type\x18\x04 \x01(\x0e\x32-.whatsapp.Message.ButtonsResponseMessage.Type\x12\x1d\n\x13selectedDisplayText\x18\x02 \x01(\tH\x00\"%\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0c\x44ISPLAY_TEXT\x10\x01\x42\n\n\x08response\x1a\xe3\x02\n\x04\x43\x61ll\x12\x0f\n\x07\x63\x61llKey\x18\x01 \x01(\x0c\x12\x18\n\x10\x63onversionSource\x18\x02 \x01(\t\x12\x16\n\x0e\x63onversionData\x18\x03 \x01(\x0c\x12\x1e\n\x16\x63onversionDelaySeconds\x18\x04 \x01(\r\x12\x13\n\x0b\x63twaSignals\x18\x05 \x01(\t\x12\x13\n\x0b\x63twaPayload\x18\x06 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x07 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12#\n\x1bnativeFlowCallButtonPayload\x18\x08 \x01(\t\x12\x17\n\x0f\x64\x65\x65plinkPayload\x18\t \x01(\t\x12\x38\n\x12messageContextInfo\x18\n \x01(\x0b\x32\x1c.whatsapp.MessageContextInfo\x12\x16\n\x0e\x63\x61llEntryPoint\x18\x0b \x01(\r\x12\x12\n\ncallReason\x18\x0c \x01(\t\x1a\xbb\x04\n\x0e\x43\x61llLogMessage\x12\x0f\n\x07isVideo\x18\x01 \x01(\x08\x12\x41\n\x0b\x63\x61llOutcome\x18\x02 \x01(\x0e\x32,.whatsapp.Message.CallLogMessage.CallOutcome\x12\x14\n\x0c\x64urationSecs\x18\x03 \x01(\x03\x12;\n\x08\x63\x61llType\x18\x04 \x01(\x0e\x32).whatsapp.Message.CallLogMessage.CallType\x12\x46\n\x0cparticipants\x18\x05 \x03(\x0b\x32\x30.whatsapp.Message.CallLogMessage.CallParticipant\x1a\x61\n\x0f\x43\x61llParticipant\x12\x0b\n\x03jid\x18\x01 \x01(\t\x12\x41\n\x0b\x63\x61llOutcome\x18\x02 \x01(\x0e\x32,.whatsapp.Message.CallLogMessage.CallOutcome\"\x99\x01\n\x0b\x43\x61llOutcome\x12\r\n\tCONNECTED\x10\x00\x12\n\n\x06MISSED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\x0c\n\x08REJECTED\x10\x03\x12\x16\n\x12\x41\x43\x43\x45PTED_ELSEWHERE\x10\x04\x12\x0b\n\x07ONGOING\x10\x05\x12\x13\n\x0fSILENCED_BY_DND\x10\x06\x12\x1b\n\x17SILENCED_UNKNOWN_CALLER\x10\x07\";\n\x08\x43\x61llType\x12\x0b\n\x07REGULAR\x10\x00\x12\x12\n\x0eSCHEDULED_CALL\x10\x01\x12\x0e\n\nVOICE_CHAT\x10\x02\x1a@\n\x1b\x43\x61ncelPaymentRequestMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a\'\n\x04\x43hat\x12\x13\n\x0b\x64isplayName\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t\x1a}\n\x18\x43hatCustomImageWallpaper\x12\x12\n\ndirectPath\x18\x01 \x01(\t\x12\x10\n\x08mediaKey\x18\x02 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x03 \x01(\x0c\x12\x12\n\nfileSha256\x18\x04 \x01(\x0c\x12\x10\n\x08\x64imLevel\x18\x05 \x01(\x02\x1a/\n\x14\x43hatDefaultWallpaper\x12\x17\n\x0fisDoodleEnabled\x18\x01 \x01(\x08\x1aY\n\x17\x43hatSolidColorWallpaper\x12\x12\n\ncolorLight\x18\x01 \x01(\t\x12\x11\n\tcolorDark\x18\x02 \x01(\t\x12\x17\n\x0fisDoodleEnabled\x18\x03 \x01(\x08\x1a\x41\n\x17\x43hatStockImageWallpaper\x12\x14\n\x0cstockImageId\x18\x01 \x01(\t\x12\x10\n\x08\x64imLevel\x18\x02 \x01(\x02\x1a\xef\x02\n\x10\x43hatThemeSetting\x12\x1a\n\x12settingTimestampMs\x18\x01 \x01(\x03\x12\x12\n\nclearTheme\x18\x02 \x01(\x08\x12\x15\n\rcolorSchemeId\x18\x03 \x01(\t\x12\x42\n\x10\x64\x65\x66\x61ultWallpaper\x18\n \x01(\x0b\x32&.whatsapp.Message.ChatDefaultWallpaperH\x00\x12?\n\nsolidColor\x18\x0b \x01(\x0b\x32).whatsapp.Message.ChatSolidColorWallpaperH\x00\x12?\n\nstockImage\x18\x0c \x01(\x0b\x32).whatsapp.Message.ChatStockImageWallpaperH\x00\x12\x41\n\x0b\x63ustomImage\x18\r \x01(\x0b\x32*.whatsapp.Message.ChatCustomImageWallpaperH\x00\x42\x0b\n\twallpaper\x1a\xad\x04\n!CloudAPIThreadControlNotification\x12Y\n\x06status\x18\x01 \x01(\x0e\x32I.whatsapp.Message.CloudAPIThreadControlNotification.CloudAPIThreadControl\x12%\n\x1dsenderNotificationTimestampMs\x18\x02 \x01(\x03\x12\x13\n\x0b\x63onsumerLid\x18\x03 \x01(\t\x12\x1b\n\x13\x63onsumerPhoneNumber\x18\x04 \x01(\t\x12y\n\x13notificationContent\x18\x05 \x01(\x0b\x32\\.whatsapp.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent\x12\"\n\x1ashouldSuppressNotification\x18\x06 \x01(\x08\x1a^\n(CloudAPIThreadControlNotificationContent\x12\x1f\n\x17handoffNotificationText\x18\x01 \x01(\t\x12\x11\n\textraJson\x18\x02 \x01(\t\"U\n\x15\x43loudAPIThreadControl\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0e\x43ONTROL_PASSED\x10\x01\x12\x11\n\rCONTROL_TAKEN\x10\x02\x12\x08\n\x04INFO\x10\x03\x1a\x64\n\x0e\x43ommentMessage\x12\"\n\x07message\x18\x01 \x01(\x0b\x32\x11.whatsapp.Message\x12.\n\x10targetMessageKey\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a\x85\x02\n\x18\x43onditionalRevealMessage\x12\x12\n\nencPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\x12m\n\x1c\x63onditionalRevealMessageType\x18\x03 \x01(\x0e\x32G.whatsapp.Message.ConditionalRevealMessage.ConditionalRevealMessageType\x12\x13\n\x0brevealKeyId\x18\x04 \x01(\t\"B\n\x1c\x43onditionalRevealMessageType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x15\n\x11SCHEDULED_MESSAGE\x10\x01\x1aw\n\x0e\x43ontactMessage\x12\x13\n\x0b\x64isplayName\x18\x01 \x01(\t\x12\r\n\x05vcard\x18\x10 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x15\n\risSelfContact\x18\x12 \x01(\x08\x1a\x8b\x01\n\x14\x43ontactsArrayMessage\x12\x13\n\x0b\x64isplayName\x18\x01 \x01(\t\x12\x32\n\x08\x63ontacts\x18\x02 \x03(\x0b\x32 .whatsapp.Message.ContactMessage\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\x41\n\x1c\x44\x65\x63linePaymentRequestMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a^\n\x11\x44\x65viceSentMessage\x12\x16\n\x0e\x64\x65stinationJid\x18\x01 \x01(\t\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\r\n\x05phash\x18\x03 \x01(\t\x1a\xed\x03\n\x0f\x44ocumentMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08mimetype\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x12\n\nfileSha256\x18\x04 \x01(\x0c\x12\x12\n\nfileLength\x18\x05 \x01(\x04\x12\x11\n\tpageCount\x18\x06 \x01(\r\x12\x10\n\x08mediaKey\x18\x07 \x01(\x0c\x12\x10\n\x08\x66ileName\x18\x08 \x01(\t\x12\x15\n\rfileEncSha256\x18\t \x01(\x0c\x12\x12\n\ndirectPath\x18\n \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x0b \x01(\x03\x12\x14\n\x0c\x63ontactVcard\x18\x0c \x01(\x08\x12\x1b\n\x13thumbnailDirectPath\x18\r \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x0e \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x0f \x01(\x0c\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x17\n\x0fthumbnailHeight\x18\x12 \x01(\r\x12\x16\n\x0ethumbnailWidth\x18\x13 \x01(\r\x12\x0f\n\x07\x63\x61ption\x18\x14 \x01(\t\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x15 \x01(\t\x1a\x66\n\x11\x45ncCommentMessage\x12.\n\x10targetMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nencPayload\x18\x02 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x03 \x01(\x0c\x1as\n\x17\x45ncEventResponseMessage\x12\x35\n\x17\x65ventCreationMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nencPayload\x18\x02 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x03 \x01(\x0c\x1ag\n\x12\x45ncReactionMessage\x12.\n\x10targetMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nencPayload\x18\x02 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x03 \x01(\x0c\x1a\xd7\x01\n\x12\x45ventInviteMessage\x12*\n\x0b\x63ontextInfo\x18\x01 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x0f\n\x07\x65ventId\x18\x02 \x01(\t\x12\x12\n\neventTitle\x18\x03 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x04 \x01(\x0c\x12\x11\n\tstartTime\x18\x05 \x01(\x03\x12\x0f\n\x07\x63\x61ption\x18\x06 \x01(\t\x12\x12\n\nisCanceled\x18\x07 \x01(\x08\x12\x0f\n\x07\x65ndTime\x18\x08 \x01(\x03\x12\x10\n\x08\x63\x61llLink\x18\t \x01(\t\x1a\xc0\x02\n\x0c\x45ventMessage\x12*\n\x0b\x63ontextInfo\x18\x01 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x12\n\nisCanceled\x18\x02 \x01(\x08\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x33\n\x08location\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessage\x12\x10\n\x08joinLink\x18\x06 \x01(\t\x12\x11\n\tstartTime\x18\x07 \x01(\x03\x12\x0f\n\x07\x65ndTime\x18\x08 \x01(\x03\x12\x1a\n\x12\x65xtraGuestsAllowed\x18\t \x01(\x08\x12\x16\n\x0eisScheduleCall\x18\n \x01(\x08\x12\x13\n\x0bhasReminder\x18\x0b \x01(\x08\x12\x19\n\x11reminderOffsetSec\x18\x0c \x01(\x03\x1a\xd7\x01\n\x14\x45ventResponseMessage\x12J\n\x08response\x18\x01 \x01(\x0e\x32\x38.whatsapp.Message.EventResponseMessage.EventResponseType\x12\x13\n\x0btimestampMs\x18\x02 \x01(\x03\x12\x17\n\x0f\x65xtraGuestCount\x18\x03 \x01(\x05\"E\n\x11\x45ventResponseType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05GOING\x10\x01\x12\r\n\tNOT_GOING\x10\x02\x12\t\n\x05MAYBE\x10\x03\x1a\xbf\x0c\n\x13\x45xtendedTextMessage\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x13\n\x0bmatchedText\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\r\n\x05title\x18\x06 \x01(\t\x12\x10\n\x08textArgb\x18\x07 \x01(\x07\x12\x16\n\x0e\x62\x61\x63kgroundArgb\x18\x08 \x01(\x07\x12<\n\x04\x66ont\x18\t \x01(\x0e\x32..whatsapp.Message.ExtendedTextMessage.FontType\x12\x46\n\x0bpreviewType\x18\n \x01(\x0e\x32\x31.whatsapp.Message.ExtendedTextMessage.PreviewType\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x17\n\x0f\x64oNotPlayInline\x18\x12 \x01(\x08\x12\x1b\n\x13thumbnailDirectPath\x18\x13 \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x14 \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x15 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x16 \x01(\x0c\x12\x19\n\x11mediaKeyTimestamp\x18\x17 \x01(\x03\x12\x17\n\x0fthumbnailHeight\x18\x18 \x01(\r\x12\x16\n\x0ethumbnailWidth\x18\x19 \x01(\r\x12V\n\x13inviteLinkGroupType\x18\x1a \x01(\x0e\x32\x39.whatsapp.Message.ExtendedTextMessage.InviteLinkGroupType\x12&\n\x1einviteLinkParentGroupSubjectV2\x18\x1b \x01(\t\x12(\n inviteLinkParentGroupThumbnailV2\x18\x1c \x01(\x0c\x12X\n\x15inviteLinkGroupTypeV2\x18\x1d \x01(\x0e\x32\x39.whatsapp.Message.ExtendedTextMessage.InviteLinkGroupType\x12\x10\n\x08viewOnce\x18\x1e \x01(\x08\x12\x13\n\x0bvideoHeight\x18\x1f \x01(\r\x12\x12\n\nvideoWidth\x18 \x01(\r\x12\x42\n\x12\x66\x61viconMmsMetadata\x18! \x01(\x0b\x32&.whatsapp.Message.MMSThumbnailMetadata\x12\x42\n\x13linkPreviewMetadata\x18\" \x01(\x0b\x32%.whatsapp.Message.LinkPreviewMetadata\x12\x42\n\x13paymentLinkMetadata\x18# \x01(\x0b\x32%.whatsapp.Message.PaymentLinkMetadata\x12\x34\n\x0c\x65ndCardTiles\x18$ \x03(\x0b\x32\x1e.whatsapp.Message.VideoEndCard\x12\x17\n\x0fvideoContentUrl\x18% \x01(\t\x12.\n\rmusicMetadata\x18& \x01(\x0b\x32\x17.whatsapp.EmbeddedMusic\x12J\n\x17paymentExtendedMetadata\x18\' \x01(\x0b\x32).whatsapp.Message.PaymentExtendedMetadata\"\xa4\x01\n\x08\x46ontType\x12\n\n\x06SYSTEM\x10\x00\x12\x0f\n\x0bSYSTEM_TEXT\x10\x01\x12\r\n\tFB_SCRIPT\x10\x02\x12\x0f\n\x0bSYSTEM_BOLD\x10\x06\x12\x19\n\x15MORNINGBREEZE_REGULAR\x10\x07\x12\x15\n\x11\x43\x41LISTOGA_REGULAR\x10\x08\x12\x12\n\x0e\x45XO2_EXTRABOLD\x10\t\x12\x15\n\x11\x43OURIERPRIME_BOLD\x10\n\"H\n\x13InviteLinkGroupType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\n\n\x06PARENT\x10\x01\x12\x07\n\x03SUB\x10\x02\x12\x0f\n\x0b\x44\x45\x46\x41ULT_SUB\x10\x03\"^\n\x0bPreviewType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05VIDEO\x10\x01\x12\x0f\n\x0bPLACEHOLDER\x10\x04\x12\t\n\x05IMAGE\x10\x05\x12\x11\n\rPAYMENT_LINKS\x10\x06\x12\x0b\n\x07PROFILE\x10\x07\x1aZ\n\x1d\x46ullHistorySyncOnDemandConfig\x12\x1c\n\x14historyFromTimestamp\x18\x01 \x01(\x04\x12\x1b\n\x13historyDurationDays\x18\x02 \x01(\r\x1an\n&FullHistorySyncOnDemandRequestMetadata\x12\x11\n\trequestId\x18\x01 \x01(\t\x12\x17\n\x0f\x62usinessProduct\x18\x02 \x01(\t\x12\x18\n\x10opaqueClientData\x18\x03 \x01(\x0c\x1a\x38\n\x12\x46utureProofMessage\x12\"\n\x07message\x18\x01 \x01(\x0b\x32\x11.whatsapp.Message\x1a\xa4\x02\n\x12GroupInviteMessage\x12\x10\n\x08groupJid\x18\x01 \x01(\t\x12\x12\n\ninviteCode\x18\x02 \x01(\t\x12\x18\n\x10inviteExpiration\x18\x03 \x01(\x03\x12\x11\n\tgroupName\x18\x04 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x05 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x06 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x07 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x41\n\tgroupType\x18\x08 \x01(\x0e\x32..whatsapp.Message.GroupInviteMessage.GroupType\"$\n\tGroupType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\n\n\x06PARENT\x10\x01\x1a\xc8\x0b\n\x17HighlyStructuredMessage\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0b\x65lementName\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t\x12\x12\n\nfallbackLg\x18\x04 \x01(\t\x12\x12\n\nfallbackLc\x18\x05 \x01(\t\x12\\\n\x11localizableParams\x18\x06 \x03(\x0b\x32\x41.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter\x12\x17\n\x0f\x64\x65terministicLg\x18\x07 \x01(\t\x12\x17\n\x0f\x64\x65terministicLc\x18\x08 \x01(\t\x12\x36\n\x0bhydratedHsm\x18\t \x01(\x0b\x32!.whatsapp.Message.TemplateMessage\x1a\x84\t\n\x17HSMLocalizableParameter\x12\x0f\n\x07\x64\x65\x66\x61ult\x18\x01 \x01(\t\x12\x61\n\x08\x63urrency\x18\x02 \x01(\x0b\x32M.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrencyH\x00\x12\x61\n\x08\x64\x61teTime\x18\x03 \x01(\x0b\x32M.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTimeH\x00\x1a\x37\n\x0bHSMCurrency\x12\x14\n\x0c\x63urrencyCode\x18\x01 \x01(\t\x12\x12\n\namount1000\x18\x02 \x01(\x03\x1a\xca\x06\n\x0bHSMDateTime\x12w\n\tcomponent\x18\x01 \x01(\x0b\x32\x62.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponentH\x00\x12w\n\tunixEpoch\x18\x02 \x01(\x0b\x32\x62.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpochH\x00\x1a\x8c\x04\n\x14HSMDateTimeComponent\x12\x83\x01\n\tdayOfWeek\x18\x01 \x01(\x0e\x32p.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType\x12\x0c\n\x04year\x18\x02 \x01(\r\x12\r\n\x05month\x18\x03 \x01(\r\x12\x12\n\ndayOfMonth\x18\x04 \x01(\r\x12\x0c\n\x04hour\x18\x05 \x01(\r\x12\x0e\n\x06minute\x18\x06 \x01(\r\x12\x81\x01\n\x08\x63\x61lendar\x18\x07 \x01(\x0e\x32o.whatsapp.Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType\".\n\x0c\x43\x61lendarType\x12\r\n\tGREGORIAN\x10\x01\x12\x0f\n\x0bSOLAR_HIJRI\x10\x02\"k\n\rDayOfWeekType\x12\n\n\x06MONDAY\x10\x01\x12\x0b\n\x07TUESDAY\x10\x02\x12\r\n\tWEDNESDAY\x10\x03\x12\x0c\n\x08THURSDAY\x10\x04\x12\n\n\x06\x46RIDAY\x10\x05\x12\x0c\n\x08SATURDAY\x10\x06\x12\n\n\x06SUNDAY\x10\x07\x1a)\n\x14HSMDateTimeUnixEpoch\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\x42\x0f\n\rdatetimeOneofB\x0c\n\nparamOneof\x1aH\n\x18HistoryShareMessageEntry\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\x12\x1a\n\x12messageSecretProof\x18\x02 \x01(\x0c\x1a?\n\x1eHistorySyncMessageAccessStatus\x12\x1d\n\x15\x63ompleteAccessGranted\x18\x01 \x01(\x08\x1a\xb3\x04\n\x17HistorySyncNotification\x12\x12\n\nfileSha256\x18\x01 \x01(\x0c\x12\x12\n\nfileLength\x18\x02 \x01(\x04\x12\x10\n\x08mediaKey\x18\x03 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x04 \x01(\x0c\x12\x12\n\ndirectPath\x18\x05 \x01(\t\x12\x33\n\x08syncType\x18\x06 \x01(\x0e\x32!.whatsapp.Message.HistorySyncType\x12\x12\n\nchunkOrder\x18\x07 \x01(\r\x12\x19\n\x11originalMessageId\x18\x08 \x01(\t\x12\x10\n\x08progress\x18\t \x01(\r\x12$\n\x1coldestMsgInChunkTimestampSec\x18\n \x01(\x03\x12)\n!initialHistBootstrapInlinePayload\x18\x0b \x01(\x0c\x12 \n\x18peerDataRequestSessionId\x18\x0c \x01(\t\x12h\n&fullHistorySyncOnDemandRequestMetadata\x18\r \x01(\x0b\x32\x38.whatsapp.Message.FullHistorySyncOnDemandRequestMetadata\x12\x11\n\tencHandle\x18\x0e \x01(\t\x12M\n\x13messageAccessStatus\x18\x0f \x01(\x0b\x32\x30.whatsapp.Message.HistorySyncMessageAccessStatus\x1a\x9c\x07\n\x0cImageMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08mimetype\x18\x02 \x01(\t\x12\x0f\n\x07\x63\x61ption\x18\x03 \x01(\t\x12\x12\n\nfileSha256\x18\x04 \x01(\x0c\x12\x12\n\nfileLength\x18\x05 \x01(\x04\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\r\n\x05width\x18\x07 \x01(\r\x12\x10\n\x08mediaKey\x18\x08 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\t \x01(\x0c\x12?\n\x16interactiveAnnotations\x18\n \x03(\x0b\x32\x1f.whatsapp.InteractiveAnnotation\x12\x12\n\ndirectPath\x18\x0b \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x0c \x01(\x03\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x18\n\x10\x66irstScanSidecar\x18\x12 \x01(\x0c\x12\x17\n\x0f\x66irstScanLength\x18\x13 \x01(\r\x12\x19\n\x11\x65xperimentGroupId\x18\x14 \x01(\r\x12\x14\n\x0cscansSidecar\x18\x15 \x01(\x0c\x12\x13\n\x0bscanLengths\x18\x16 \x03(\r\x12\x1c\n\x14midQualityFileSha256\x18\x17 \x01(\x0c\x12\x1f\n\x17midQualityFileEncSha256\x18\x18 \x01(\x0c\x12\x10\n\x08viewOnce\x18\x19 \x01(\x08\x12\x1b\n\x13thumbnailDirectPath\x18\x1a \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x1b \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x1c \x01(\x0c\x12\x11\n\tstaticUrl\x18\x1d \x01(\t\x12\x34\n\x0b\x61nnotations\x18\x1e \x03(\x0b\x32\x1f.whatsapp.InteractiveAnnotation\x12G\n\x0fimageSourceType\x18\x1f \x01(\x0e\x32..whatsapp.Message.ImageMessage.ImageSourceType\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18 \x01(\t\x12\r\n\x05qrUrl\x18\" \x01(\t\"`\n\x0fImageSourceType\x12\x0e\n\nUSER_IMAGE\x10\x00\x12\x10\n\x0c\x41I_GENERATED\x10\x01\x12\x0f\n\x0b\x41I_MODIFIED\x10\x02\x12\x1a\n\x16RASTERIZED_TEXT_STATUS\x10\x03\x1aM\n&InitialSecurityNotificationSettingSync\x12#\n\x1bsecurityNotificationEnabled\x18\x01 \x01(\x08\x1a\x80\x11\n\x12InteractiveMessage\x12;\n\x06header\x18\x01 \x01(\x0b\x32+.whatsapp.Message.InteractiveMessage.Header\x12\x37\n\x04\x62ody\x18\x02 \x01(\x0b\x32).whatsapp.Message.InteractiveMessage.Body\x12;\n\x06\x66ooter\x18\x03 \x01(\x0b\x32+.whatsapp.Message.InteractiveMessage.Footer\x12\x45\n\x0b\x62loksWidget\x18\x08 \x01(\x0b\x32\x30.whatsapp.Message.InteractiveMessage.BloksWidget\x12*\n\x0b\x63ontextInfo\x18\x0f \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x30\n\x0eurlTrackingMap\x18\x10 \x01(\x0b\x32\x18.whatsapp.UrlTrackingMap\x12Q\n\x15shopStorefrontMessage\x18\x04 \x01(\x0b\x32\x30.whatsapp.Message.InteractiveMessage.ShopMessageH\x00\x12S\n\x11\x63ollectionMessage\x18\x05 \x01(\x0b\x32\x36.whatsapp.Message.InteractiveMessage.CollectionMessageH\x00\x12S\n\x11nativeFlowMessage\x18\x06 \x01(\x0b\x32\x36.whatsapp.Message.InteractiveMessage.NativeFlowMessageH\x00\x12O\n\x0f\x63\x61rouselMessage\x18\x07 \x01(\x0b\x32\x34.whatsapp.Message.InteractiveMessage.CarouselMessageH\x00\x1aI\n\x0b\x42loksWidget\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x10\n\x08\x66\x61llback\x18\x04 \x01(\t\x1a\x14\n\x04\x42ody\x12\x0c\n\x04text\x18\x01 \x01(\t\x1a\x96\x02\n\x0f\x43\x61rouselMessage\x12\x33\n\x05\x63\x61rds\x18\x01 \x03(\x0b\x32$.whatsapp.Message.InteractiveMessage\x12\x19\n\x0emessageVersion\x18\x02 \x01(\x05:\x01\x31\x12n\n\x10\x63\x61rouselCardType\x18\x03 \x01(\x0e\x32\x45.whatsapp.Message.InteractiveMessage.CarouselMessage.CarouselCardType:\rHSCROLL_CARDS\"C\n\x10\x43\x61rouselCardType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rHSCROLL_CARDS\x10\x01\x12\x0f\n\x0b\x41LBUM_IMAGE\x10\x02\x1aJ\n\x11\x43ollectionMessage\x12\x0e\n\x06\x62izJid\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t\x12\x19\n\x0emessageVersion\x18\x03 \x01(\x05:\x01\x31\x1as\n\x06\x46ooter\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x1a\n\x12hasMediaAttachment\x18\x03 \x01(\x08\x12\x36\n\x0c\x61udioMessage\x18\x02 \x01(\x0b\x32\x1e.whatsapp.Message.AudioMessageH\x00\x42\x07\n\x05media\x1a\xd6\x03\n\x06Header\x12\r\n\x05title\x18\x01 \x01(\t\x12\x10\n\x08subtitle\x18\x02 \x01(\t\x12\x1a\n\x12hasMediaAttachment\x18\x05 \x01(\x08\x12\x45\n\x0b\x62loksWidget\x18\n \x01(\x0b\x32\x30.whatsapp.Message.InteractiveMessage.BloksWidget\x12<\n\x0f\x64ocumentMessage\x18\x03 \x01(\x0b\x32!.whatsapp.Message.DocumentMessageH\x00\x12\x36\n\x0cimageMessage\x18\x04 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessageH\x00\x12\x17\n\rjpegThumbnail\x18\x06 \x01(\x0cH\x00\x12\x36\n\x0cvideoMessage\x18\x07 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessageH\x00\x12<\n\x0flocationMessage\x18\x08 \x01(\x0b\x32!.whatsapp.Message.LocationMessageH\x00\x12:\n\x0eproductMessage\x18\t \x01(\x0b\x32 .whatsapp.Message.ProductMessageH\x00\x42\x07\n\x05media\x1a\xdf\x01\n\x11NativeFlowMessage\x12X\n\x07\x62uttons\x18\x01 \x03(\x0b\x32G.whatsapp.Message.InteractiveMessage.NativeFlowMessage.NativeFlowButton\x12\x19\n\x11messageParamsJson\x18\x02 \x01(\t\x12\x19\n\x0emessageVersion\x18\x03 \x01(\x05:\x01\x31\x1a:\n\x10NativeFlowButton\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x18\n\x10\x62uttonParamsJson\x18\x02 \x01(\t\x1a\xb7\x01\n\x0bShopMessage\x12\n\n\x02id\x18\x01 \x01(\t\x12I\n\x07surface\x18\x02 \x01(\x0e\x32\x38.whatsapp.Message.InteractiveMessage.ShopMessage.Surface\x12\x19\n\x0emessageVersion\x18\x03 \x01(\x05:\x01\x31\"6\n\x07Surface\x12\x13\n\x0fUNKNOWN_SURFACE\x10\x00\x12\x06\n\x02\x46\x42\x10\x01\x12\x06\n\x02IG\x10\x02\x12\x06\n\x02WA\x10\x03\x42\x14\n\x12interactiveMessage\x1a\xfa\x03\n\x1aInteractiveResponseMessage\x12?\n\x04\x62ody\x18\x01 \x01(\x0b\x32\x31.whatsapp.Message.InteractiveResponseMessage.Body\x12*\n\x0b\x63ontextInfo\x18\x0f \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12k\n\x19nativeFlowResponseMessage\x18\x02 \x01(\x0b\x32\x46.whatsapp.Message.InteractiveResponseMessage.NativeFlowResponseMessageH\x00\x1a\x90\x01\n\x04\x42ody\x12\x0c\n\x04text\x18\x01 \x01(\t\x12Q\n\x06\x66ormat\x18\x02 \x01(\x0e\x32\x38.whatsapp.Message.InteractiveResponseMessage.Body.Format:\x07\x44\x45\x46\x41ULT\"\'\n\x06\x46ormat\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x10\n\x0c\x45XTENSIONS_1\x10\x01\x1aQ\n\x19NativeFlowResponseMessage\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nparamsJson\x18\x02 \x01(\t\x12\x12\n\x07version\x18\x03 \x01(\x05:\x01\x31\x42\x1c\n\x1ainteractiveResponseMessage\x1a\xf7\x02\n\x0eInvoiceMessage\x12\x0c\n\x04note\x18\x01 \x01(\t\x12\r\n\x05token\x18\x02 \x01(\t\x12G\n\x0e\x61ttachmentType\x18\x03 \x01(\x0e\x32/.whatsapp.Message.InvoiceMessage.AttachmentType\x12\x1a\n\x12\x61ttachmentMimetype\x18\x04 \x01(\t\x12\x1a\n\x12\x61ttachmentMediaKey\x18\x05 \x01(\x0c\x12#\n\x1b\x61ttachmentMediaKeyTimestamp\x18\x06 \x01(\x03\x12\x1c\n\x14\x61ttachmentFileSha256\x18\x07 \x01(\x0c\x12\x1f\n\x17\x61ttachmentFileEncSha256\x18\x08 \x01(\x0c\x12\x1c\n\x14\x61ttachmentDirectPath\x18\t \x01(\t\x12\x1f\n\x17\x61ttachmentJpegThumbnail\x18\n \x01(\x0c\"$\n\x0e\x41ttachmentType\x12\t\n\x05IMAGE\x10\x00\x12\x07\n\x03PDF\x10\x01\x1aq\n\x11KeepInChatMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12$\n\x08keepType\x18\x02 \x01(\x0e\x32\x12.whatsapp.KeepType\x12\x13\n\x0btimestampMs\x18\x03 \x01(\x03\x1a\x87\x04\n\x13LinkPreviewMetadata\x12\x42\n\x13paymentLinkMetadata\x18\x01 \x01(\x0b\x32%.whatsapp.Message.PaymentLinkMetadata\x12\x32\n\x0burlMetadata\x18\x02 \x01(\x0b\x32\x1d.whatsapp.Message.URLMetadata\x12\x16\n\x0e\x66\x62\x45xperimentId\x18\x03 \x01(\r\x12\x19\n\x11linkMediaDuration\x18\x04 \x01(\r\x12V\n\x13socialMediaPostType\x18\x05 \x01(\x0e\x32\x39.whatsapp.Message.LinkPreviewMetadata.SocialMediaPostType\x12\x1c\n\x14linkInlineVideoMuted\x18\x06 \x01(\x08\x12\x17\n\x0fvideoContentUrl\x18\x07 \x01(\t\x12.\n\rmusicMetadata\x18\x08 \x01(\x0b\x32\x17.whatsapp.EmbeddedMusic\x12\x1b\n\x13videoContentCaption\x18\t \x01(\t\"i\n\x13SocialMediaPostType\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04REEL\x10\x01\x12\x0e\n\nLIVE_VIDEO\x10\x02\x12\x0e\n\nLONG_VIDEO\x10\x03\x12\x10\n\x0cSINGLE_IMAGE\x10\x04\x12\x0c\n\x08\x43\x41ROUSEL\x10\x05\x1a\xff\x06\n\x0bListMessage\x12\r\n\x05title\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x12\n\nbuttonText\x18\x03 \x01(\t\x12\x38\n\x08listType\x18\x04 \x01(\x0e\x32&.whatsapp.Message.ListMessage.ListType\x12\x37\n\x08sections\x18\x05 \x03(\x0b\x32%.whatsapp.Message.ListMessage.Section\x12\x46\n\x0fproductListInfo\x18\x06 \x01(\x0b\x32-.whatsapp.Message.ListMessage.ProductListInfo\x12\x12\n\nfooterText\x18\x07 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x08 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\x1c\n\x07Product\x12\x11\n\tproductId\x18\x01 \x01(\t\x1a\x42\n\x16ProductListHeaderImage\x12\x11\n\tproductId\x18\x01 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x02 \x01(\x0c\x1a\xbd\x01\n\x0fProductListInfo\x12\x45\n\x0fproductSections\x18\x01 \x03(\x0b\x32,.whatsapp.Message.ListMessage.ProductSection\x12I\n\x0bheaderImage\x18\x02 \x01(\x0b\x32\x34.whatsapp.Message.ListMessage.ProductListHeaderImage\x12\x18\n\x10\x62usinessOwnerJid\x18\x03 \x01(\t\x1aX\n\x0eProductSection\x12\r\n\x05title\x18\x01 \x01(\t\x12\x37\n\x08products\x18\x02 \x03(\x0b\x32%.whatsapp.Message.ListMessage.Product\x1a\x38\n\x03Row\x12\r\n\x05title\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\r\n\x05rowId\x18\x03 \x01(\t\x1aI\n\x07Section\x12\r\n\x05title\x18\x01 \x01(\t\x12/\n\x04rows\x18\x02 \x03(\x0b\x32!.whatsapp.Message.ListMessage.Row\"<\n\x08ListType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rSINGLE_SELECT\x10\x01\x12\x10\n\x0cPRODUCT_LIST\x10\x02\x1a\xd3\x02\n\x13ListResponseMessage\x12\r\n\x05title\x18\x01 \x01(\t\x12@\n\x08listType\x18\x02 \x01(\x0e\x32..whatsapp.Message.ListResponseMessage.ListType\x12R\n\x11singleSelectReply\x18\x03 \x01(\x0b\x32\x37.whatsapp.Message.ListResponseMessage.SingleSelectReply\x12*\n\x0b\x63ontextInfo\x18\x04 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x1a*\n\x11SingleSelectReply\x12\x15\n\rselectedRowId\x18\x01 \x01(\t\"*\n\x08ListType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rSINGLE_SELECT\x10\x01\x1a\xa1\x02\n\x13LiveLocationMessage\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x18\n\x10\x61\x63\x63uracyInMeters\x18\x03 \x01(\r\x12\x12\n\nspeedInMps\x18\x04 \x01(\x02\x12)\n!degreesClockwiseFromMagneticNorth\x18\x05 \x01(\r\x12\x0f\n\x07\x63\x61ption\x18\x06 \x01(\t\x12\x16\n\x0esequenceNumber\x18\x07 \x01(\x03\x12\x12\n\ntimeOffset\x18\x08 \x01(\r\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xad\x02\n\x0fLocationMessage\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x04 \x01(\t\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x0e\n\x06isLive\x18\x06 \x01(\x08\x12\x18\n\x10\x61\x63\x63uracyInMeters\x18\x07 \x01(\r\x12\x12\n\nspeedInMps\x18\x08 \x01(\x02\x12)\n!degreesClockwiseFromMagneticNorth\x18\t \x01(\r\x12\x0f\n\x07\x63omment\x18\x0b \x01(\t\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xc6\x01\n\x14MMSThumbnailMetadata\x12\x1b\n\x13thumbnailDirectPath\x18\x01 \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x02 \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x03 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x19\n\x11mediaKeyTimestamp\x18\x05 \x01(\x03\x12\x17\n\x0fthumbnailHeight\x18\x06 \x01(\r\x12\x16\n\x0ethumbnailWidth\x18\x07 \x01(\r\x1ao\n\x14MarkAsVerifiedAction\x12\x15\n\ruserJidString\x18\x01 \x01(\t\x12\x10\n\x08verified\x18\x02 \x01(\x08\x12\x1b\n\x13verifiedIdentityKey\x18\x03 \x01(\x0c\x12\x11\n\tactionSeq\x18\x04 \x01(\x04\x1a\x8a\x02\n\x14MessageHistoryBundle\x12\x10\n\x08mimetype\x18\x01 \x01(\t\x12\x12\n\nfileSha256\x18\x02 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x03 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x04 \x01(\x0c\x12\x12\n\ndirectPath\x18\x05 \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x06 \x01(\x03\x12*\n\x0b\x63ontextInfo\x18\x07 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12H\n\x16messageHistoryMetadata\x18\x08 \x01(\x0b\x32(.whatsapp.Message.MessageHistoryMetadata\x1a\xb5\x01\n\x16MessageHistoryMetadata\x12\x18\n\x10historyReceivers\x18\x01 \x03(\t\x12&\n\x1eoldestMessageTimestampInWindow\x18\x02 \x01(\x03\x12\x14\n\x0cmessageCount\x18\x03 \x01(\x03\x12\x1b\n\x13nonHistoryReceivers\x18\x04 \x03(\t\x12&\n\x1eoldestMessageTimestampInBundle\x18\x05 \x01(\x03\x1a\xe0\x01\n\x14MessageHistoryNotice\x12*\n\x0b\x63ontextInfo\x18\x01 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12H\n\x16messageHistoryMetadata\x18\x02 \x01(\x0b\x32(.whatsapp.Message.MessageHistoryMetadata\x12R\n\x1b\x62otHistoryShareSyncMetadata\x18\x03 \x01(\x0b\x32-.whatsapp.Message.BotHistoryShareSyncMetadata\x1a\xcb\x01\n\x0cMusicMessage\x12.\n\rembeddedMusic\x18\x01 \x01(\x0b\x32\x17.whatsapp.EmbeddedMusic\x12\x0f\n\x07songUri\x18\x02 \x01(\t\x12\x12\n\nartworkUri\x18\x03 \x01(\t\x12\r\n\x05style\x18\x04 \x01(\x05\x12*\n\x0b\x63ontextInfo\x18\x05 \x01(\x0b\x32\x15.whatsapp.ContextInfo\"+\n\x11MusicMessageStyle\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05VINYL\x10\x01\x1a\xbb\x01\n\x1cNewsletterAdminInviteMessage\x12\x15\n\rnewsletterJid\x18\x01 \x01(\t\x12\x16\n\x0enewsletterName\x18\x02 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x03 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x04 \x01(\t\x12\x18\n\x10inviteExpiration\x18\x05 \x01(\x03\x12*\n\x0b\x63ontextInfo\x18\x06 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xa4\x01\n\x1fNewsletterFollowerInviteMessage\x12\x15\n\rnewsletterJid\x18\x01 \x01(\t\x12\x16\n\x0enewsletterName\x18\x02 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x03 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x04 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x05 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xa0\x04\n\x0cOrderMessage\x12\x0f\n\x07orderId\x18\x01 \x01(\t\x12\x11\n\tthumbnail\x18\x02 \x01(\x0c\x12\x11\n\titemCount\x18\x03 \x01(\x05\x12:\n\x06status\x18\x04 \x01(\x0e\x32*.whatsapp.Message.OrderMessage.OrderStatus\x12<\n\x07surface\x18\x05 \x01(\x0e\x32+.whatsapp.Message.OrderMessage.OrderSurface\x12\x0f\n\x07message\x18\x06 \x01(\t\x12\x12\n\norderTitle\x18\x07 \x01(\t\x12\x11\n\tsellerJid\x18\x08 \x01(\t\x12\r\n\x05token\x18\t \x01(\t\x12\x17\n\x0ftotalAmount1000\x18\n \x01(\x03\x12\x19\n\x11totalCurrencyCode\x18\x0b \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x19\n\x0emessageVersion\x18\x0c \x01(\x05:\x01\x31\x12\x33\n\x15orderRequestMessageId\x18\r \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x13\n\x0b\x63\x61talogType\x18\x0f \x01(\t\"6\n\x0bOrderStatus\x12\x0b\n\x07INQUIRY\x10\x01\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x02\x12\x0c\n\x08\x44\x45\x43LINED\x10\x03\"\x1b\n\x0cOrderSurface\x12\x0b\n\x07\x43\x41TALOG\x10\x01\x1aT\n\x17PaymentExtendedMetadata\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x10\n\x08platform\x18\x02 \x01(\t\x12\x19\n\x11messageParamsJson\x18\x03 \x01(\t\x1a\xd8\x02\n\x14PaymentInviteMessage\x12G\n\x0bserviceType\x18\x01 \x01(\x0e\x32\x32.whatsapp.Message.PaymentInviteMessage.ServiceType\x12\x17\n\x0f\x65xpiryTimestamp\x18\x02 \x01(\x03\x12\x19\n\x11incentiveEligible\x18\x03 \x01(\x08\x12\x12\n\nreferralId\x18\x04 \x01(\t\x12\x45\n\ninviteType\x18\x05 \x01(\x0e\x32\x31.whatsapp.Message.PaymentInviteMessage.InviteType\"%\n\nInviteType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\n\n\x06MAPPER\x10\x01\"A\n\x0bServiceType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x46\x42PAY\x10\x01\x12\x08\n\x04NOVI\x10\x02\x12\x07\n\x03UPI\x10\x03\x12\x07\n\x03PIX\x10\x04\x1a\xf8\x03\n\x13PaymentLinkMetadata\x12G\n\x06\x62utton\x18\x01 \x01(\x0b\x32\x37.whatsapp.Message.PaymentLinkMetadata.PaymentLinkButton\x12G\n\x06header\x18\x02 \x01(\x0b\x32\x37.whatsapp.Message.PaymentLinkMetadata.PaymentLinkHeader\x12K\n\x08provider\x18\x03 \x01(\x0b\x32\x39.whatsapp.Message.PaymentLinkMetadata.PaymentLinkProvider\x1a(\n\x11PaymentLinkButton\x12\x13\n\x0b\x64isplayText\x18\x01 \x01(\t\x1a\xac\x01\n\x11PaymentLinkHeader\x12\x61\n\nheaderType\x18\x01 \x01(\x0e\x32M.whatsapp.Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType\"4\n\x15PaymentLinkHeaderType\x12\x10\n\x0cLINK_PREVIEW\x10\x00\x12\t\n\x05ORDER\x10\x01\x1a)\n\x13PaymentLinkProvider\x12\x12\n\nparamsJson\x18\x01 \x01(\t\x1a\xb6\x04\n\x16PaymentReminderMessage\x12\x12\n\nreminderId\x18\x01 \x01(\t\x12\x12\n\ninstanceId\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12M\n\tfrequency\x18\x04 \x01(\x0e\x32:.whatsapp.Message.PaymentReminderMessage.ReminderFrequency\x12G\n\x06status\x18\x05 \x01(\x0e\x32\x37.whatsapp.Message.PaymentReminderMessage.ReminderStatus\x12\x10\n\x08payeeVpa\x18\x06 \x01(\t\x12\x10\n\x08payeeJid\x18\x07 \x01(\t\x12\x10\n\x08payerJid\x18\x08 \x01(\t\x12\x1f\n\x06\x61mount\x18\t \x01(\x0b\x32\x0f.whatsapp.Money\"j\n\x11ReminderFrequency\x12\x1e\n\x1aREMINDER_FREQUENCY_UNKNOWN\x10\x00\x12\n\n\x06WEEKLY\x10\x01\x12\r\n\tBI_WEEKLY\x10\x02\x12\x0b\n\x07MONTHLY\x10\x03\x12\r\n\tQUARTERLY\x10\x04\"\x83\x01\n\x0eReminderStatus\x12\x1b\n\x17REMINDER_STATUS_UNKNOWN\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x12\x18\n\x14\x43\x41NCELLED_BY_CREATOR\x10\x02\x12\x17\n\x13STOPPED_BY_RECEIVER\x10\x03\x12\x0b\n\x07\x45XPIRED\x10\x04\x12\x08\n\x04PAID\x10\x05\x1a\xf8\x15\n\x1fPeerDataOperationRequestMessage\x12T\n\x1cpeerDataOperationRequestType\x18\x01 \x01(\x0e\x32..whatsapp.Message.PeerDataOperationRequestType\x12h\n\x16requestStickerReupload\x18\x02 \x03(\x0b\x32H.whatsapp.Message.PeerDataOperationRequestMessage.RequestStickerReupload\x12^\n\x11requestUrlPreview\x18\x03 \x03(\x0b\x32\x43.whatsapp.Message.PeerDataOperationRequestMessage.RequestUrlPreview\x12p\n\x1ahistorySyncOnDemandRequest\x18\x04 \x01(\x0b\x32L.whatsapp.Message.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest\x12z\n\x1fplaceholderMessageResendRequest\x18\x05 \x03(\x0b\x32Q.whatsapp.Message.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest\x12x\n\x1e\x66ullHistorySyncOnDemandRequest\x18\x06 \x01(\x0b\x32P.whatsapp.Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest\x12\x82\x01\n#syncdCollectionFatalRecoveryRequest\x18\x07 \x01(\x0b\x32U.whatsapp.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest\x12t\n\x1chistorySyncChunkRetryRequest\x18\x08 \x01(\x0b\x32N.whatsapp.Message.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest\x12\\\n\x10galaxyFlowAction\x18\t \x01(\x0b\x32\x42.whatsapp.Message.PeerDataOperationRequestMessage.GalaxyFlowAction\x12\x8a\x01\n\'companionCanonicalUserNonceFetchRequest\x18\n \x01(\x0b\x32Y.whatsapp.Message.PeerDataOperationRequestMessage.CompanionCanonicalUserNonceFetchRequest\x12\x88\x01\n&bizBroadcastInsightsContactListRequest\x18\x0b \x01(\x0b\x32X.whatsapp.Message.PeerDataOperationRequestMessage.BizBroadcastInsightsContactListRequest\x12\x80\x01\n\"bizBroadcastInsightsRefreshRequest\x18\x0c \x01(\x0b\x32T.whatsapp.Message.PeerDataOperationRequestMessage.BizBroadcastInsightsRefreshRequest\x1a<\n&BizBroadcastInsightsContactListRequest\x12\x12\n\ncampaignId\x18\x01 \x01(\t\x1a\x38\n\"BizBroadcastInsightsRefreshRequest\x12\x12\n\ncampaignId\x18\x01 \x01(\t\x1a\x46\n\'CompanionCanonicalUserNonceFetchRequest\x12\x1b\n\x13registrationTraceId\x18\x01 \x01(\t\x1a\x8f\x02\n\x1e\x46ullHistorySyncOnDemandRequest\x12Q\n\x0frequestMetadata\x18\x01 \x01(\x0b\x32\x38.whatsapp.Message.FullHistorySyncOnDemandRequestMetadata\x12\x42\n\x11historySyncConfig\x18\x02 \x01(\x0b\x32\'.whatsapp.DeviceProps.HistorySyncConfig\x12V\n\x1d\x66ullHistorySyncOnDemandConfig\x18\x03 \x01(\x0b\x32/.whatsapp.Message.FullHistorySyncOnDemandConfig\x1a\x92\x02\n\x10GalaxyFlowAction\x12\x65\n\x04type\x18\x01 \x01(\x0e\x32W.whatsapp.Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType\x12\x0e\n\x06\x66lowId\x18\x02 \x01(\t\x12\x10\n\x08stanzaId\x18\x03 \x01(\t\x12#\n\x1bgalaxyFlowDownloadRequestId\x18\x04 \x01(\t\x12\r\n\x05\x61gmId\x18\x05 \x01(\t\"A\n\x14GalaxyFlowActionType\x12\x11\n\rNOTIFY_LAUNCH\x10\x01\x12\x16\n\x12\x44OWNLOAD_RESPONSES\x10\x02\x1a\x9d\x01\n\x1cHistorySyncChunkRetryRequest\x12\x33\n\x08syncType\x18\x01 \x01(\x0e\x32!.whatsapp.Message.HistorySyncType\x12\x12\n\nchunkOrder\x18\x02 \x01(\r\x12\x1b\n\x13\x63hunkNotificationId\x18\x03 \x01(\t\x12\x17\n\x0fregenerateChunk\x18\x04 \x01(\x08\x1a\xc6\x01\n\x1aHistorySyncOnDemandRequest\x12\x0f\n\x07\x63hatJid\x18\x01 \x01(\t\x12\x13\n\x0boldestMsgId\x18\x02 \x01(\t\x12\x17\n\x0foldestMsgFromMe\x18\x03 \x01(\x08\x12\x18\n\x10onDemandMsgCount\x18\x04 \x01(\x05\x12\x1c\n\x14oldestMsgTimestampMs\x18\x05 \x01(\x03\x12\x12\n\naccountLid\x18\x06 \x01(\t\x12\x1d\n\x15supportInlineResponse\x18\x07 \x01(\x08\x1aK\n\x1fPlaceholderMessageResendRequest\x12(\n\nmessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x1a,\n\x16RequestStickerReupload\x12\x12\n\nfileSha256\x18\x01 \x01(\t\x1a<\n\x11RequestUrlPreview\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x1a\n\x12includeHqThumbnail\x18\x02 \x01(\x08\x1aP\n#SyncDCollectionFatalRecoveryRequest\x12\x16\n\x0e\x63ollectionName\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\x1a\x82\'\n\'PeerDataOperationRequestResponseMessage\x12T\n\x1cpeerDataOperationRequestType\x18\x01 \x01(\x0e\x32..whatsapp.Message.PeerDataOperationRequestType\x12\x10\n\x08stanzaId\x18\x02 \x01(\t\x12r\n\x17peerDataOperationResult\x18\x03 \x03(\x0b\x32Q.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult\x1a\xfa$\n\x17PeerDataOperationResult\x12\x46\n\x11mediaUploadResult\x18\x01 \x01(\x0e\x32+.whatsapp.MediaRetryNotification.ResultType\x12\x38\n\x0estickerMessage\x18\x02 \x01(\x0b\x32 .whatsapp.Message.StickerMessage\x12\x82\x01\n\x13linkPreviewResponse\x18\x03 \x01(\x0b\x32\x65.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse\x12\x9c\x01\n placeholderMessageResendResponse\x18\x04 \x01(\x0b\x32r.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse\x12\x93\x01\n\x1fwaffleNonceFetchRequestResponse\x18\x05 \x01(\x0b\x32j.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse\x12\xa8\x01\n&fullHistorySyncOnDemandRequestResponse\x18\x06 \x01(\x0b\x32x.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse\x12\xa1\x01\n&companionMetaNonceFetchRequestResponse\x18\x07 \x01(\x0b\x32q.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse\x12\xa0\x01\n\"syncdSnapshotFatalRecoveryResponse\x18\x08 \x01(\x0b\x32t.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse\x12\xb3\x01\n/companionCanonicalUserNonceFetchRequestResponse\x18\t \x01(\x0b\x32z.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionCanonicalUserNonceFetchResponse\x12\x96\x01\n\x1dhistorySyncChunkRetryResponse\x18\n \x01(\x0b\x32o.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse\x12\x88\x01\n\x16\x66lowResponsesCsvBundle\x18\x0b \x01(\x0b\x32h.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FlowResponsesCsvBundle\x12\xaa\x01\n\'bizBroadcastInsightsContactListResponse\x18\x0c \x01(\x0b\x32y.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactListResponse\x12\x88\x01\n\x16\x63ontactRefreshResponse\x18\r \x01(\x0b\x32h.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ContactRefreshResponse\x1a\xd9\x01\n\'BizBroadcastInsightsContactListResponse\x12\x12\n\ncampaignId\x18\x01 \x01(\t\x12\x13\n\x0btimestampMs\x18\x02 \x01(\x03\x12\x84\x01\n\x08\x63ontacts\x18\x03 \x03(\x0b\x32r.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactState\x1am\n BizBroadcastInsightsContactState\x12\x12\n\ncontactJid\x18\x01 \x01(\t\x12\x35\n\x05state\x18\x02 \x01(\x0e\x32&.whatsapp.Message.InsightDeliveryState\x1a_\n(CompanionCanonicalUserNonceFetchResponse\x12\r\n\x05nonce\x18\x01 \x01(\t\x12\x0e\n\x06waFbid\x18\x02 \x01(\t\x12\x14\n\x0c\x66orceRefresh\x18\x03 \x01(\x08\x1a\x30\n\x1f\x43ompanionMetaNonceFetchResponse\x12\r\n\x05nonce\x18\x01 \x01(\t\x1a\x85\x01\n\x16\x43ontactRefreshResponse\x12\x19\n\x11\x63overedRequestIds\x18\x01 \x03(\t\x12\x19\n\x11\x63ollectionVersion\x18\x02 \x01(\x04\x12\x19\n\x11primaryDurationMs\x18\x03 \x01(\x03\x12\x1a\n\x12uniqueContactCount\x18\x04 \x01(\r\x1a\xf1\x01\n\x16\x46lowResponsesCsvBundle\x12\x0e\n\x06\x66lowId\x18\x01 \x01(\t\x12#\n\x1bgalaxyFlowDownloadRequestId\x18\x02 \x01(\t\x12\x10\n\x08\x66ileName\x18\x03 \x01(\t\x12\x10\n\x08mimetype\x18\x04 \x01(\t\x12\x12\n\nfileSha256\x18\x05 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x06 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x07 \x01(\x0c\x12\x12\n\ndirectPath\x18\x08 \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\t \x01(\x03\x12\x12\n\nfileLength\x18\n \x01(\x04\x1a\x89\x02\n&FullHistorySyncOnDemandRequestResponse\x12Q\n\x0frequestMetadata\x18\x01 \x01(\x0b\x32\x38.whatsapp.Message.FullHistorySyncOnDemandRequestMetadata\x12\x8b\x01\n\x0cresponseCode\x18\x02 \x01(\x0e\x32u.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode\x1a\x9b\x02\n\x1dHistorySyncChunkRetryResponse\x12\x33\n\x08syncType\x18\x01 \x01(\x0e\x32!.whatsapp.Message.HistorySyncType\x12\x12\n\nchunkOrder\x18\x02 \x01(\r\x12\x11\n\trequestId\x18\x03 \x01(\t\x12\x89\x01\n\x0cresponseCode\x18\x04 \x01(\x0e\x32s.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode\x12\x12\n\ncanRecover\x18\x05 \x01(\x08\x1a\xf8\x05\n\x13LinkPreviewResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\r\n\x05title\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x11\n\tthumbData\x18\x04 \x01(\x0c\x12\x11\n\tmatchText\x18\x06 \x01(\t\x12\x13\n\x0bpreviewType\x18\x07 \x01(\t\x12\x9b\x01\n\x0bhqThumbnail\x18\x08 \x01(\x0b\x32\x85\x01.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail\x12\x9a\x01\n\x0fpreviewMetadata\x18\t \x01(\x0b\x32\x80\x01.whatsapp.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.PaymentLinkPreviewMetadata\x1a\xb6\x01\n\x1fLinkPreviewHighQualityThumbnail\x12\x12\n\ndirectPath\x18\x01 \x01(\t\x12\x11\n\tthumbHash\x18\x02 \x01(\t\x12\x14\n\x0c\x65ncThumbHash\x18\x03 \x01(\t\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x1b\n\x13mediaKeyTimestampMs\x18\x05 \x01(\x03\x12\x12\n\nthumbWidth\x18\x06 \x01(\x05\x12\x13\n\x0bthumbHeight\x18\x07 \x01(\x05\x1a\x80\x01\n\x1aPaymentLinkPreviewMetadata\x12\x1a\n\x12isBusinessVerified\x18\x01 \x01(\x08\x12\x14\n\x0cproviderName\x18\x02 \x01(\t\x12\x0e\n\x06\x61mount\x18\x03 \x01(\t\x12\x0e\n\x06offset\x18\x04 \x01(\t\x12\x10\n\x08\x63urrency\x18\x05 \x01(\t\x1a?\n PlaceholderMessageResendResponse\x12\x1b\n\x13webMessageInfoBytes\x18\x01 \x01(\x0c\x1aV\n\"SyncDSnapshotFatalRecoveryResponse\x12\x1a\n\x12\x63ollectionSnapshot\x18\x01 \x01(\x0c\x12\x14\n\x0cisCompressed\x18\x02 \x01(\x08\x1a<\n\x18WaffleNonceFetchResponse\x12\r\n\x05nonce\x18\x01 \x01(\t\x12\x11\n\twaEntFbid\x18\x02 \x01(\t\"\xa7\x02\n#FullHistorySyncOnDemandResponseCode\x12\x13\n\x0fREQUEST_SUCCESS\x10\x00\x12\x18\n\x14REQUEST_TIME_EXPIRED\x10\x01\x12\x1c\n\x18\x44\x45\x43LINED_SHARING_HISTORY\x10\x02\x12\x11\n\rGENERIC_ERROR\x10\x03\x12$\n ERROR_REQUEST_ON_NON_SMB_PRIMARY\x10\x04\x12%\n!ERROR_HOSTED_DEVICE_NOT_CONNECTED\x10\x05\x12*\n&ERROR_HOSTED_DEVICE_LOGIN_TIME_NOT_SET\x10\x06\x12\'\n#ERROR_MULTI_PROVIDER_NOT_CONFIGURED\x10\x07\"\x9e\x01\n!HistorySyncChunkRetryResponseCode\x12\x14\n\x10GENERATION_ERROR\x10\x01\x12\x12\n\x0e\x43HUNK_CONSUMED\x10\x02\x12\x0b\n\x07TIMEOUT\x10\x03\x12\x15\n\x11SESSION_EXHAUSTED\x10\x04\x12\x13\n\x0f\x43HUNK_EXHAUSTED\x10\x05\x12\x16\n\x12\x44UPLICATED_REQUEST\x10\x06\x1a\xc5\x01\n\x10PinInChatMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x35\n\x04type\x18\x02 \x01(\x0e\x32\'.whatsapp.Message.PinInChatMessage.Type\x12\x19\n\x11senderTimestampMs\x18\x03 \x01(\x03\"<\n\x04Type\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x0f\n\x0bPIN_FOR_ALL\x10\x01\x12\x11\n\rUNPIN_FOR_ALL\x10\x02\x1a\x84\x01\n\x12PlaceholderMessage\x12\x42\n\x04type\x18\x01 \x01(\x0e\x32\x34.whatsapp.Message.PlaceholderMessage.PlaceholderType\"*\n\x0fPlaceholderType\x12\x17\n\x13MASK_LINKED_DEVICES\x10\x00\x1a\xcc\x01\n\x14PollAddOptionMessage\x12\x34\n\x16pollCreationMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12?\n\taddOption\x18\x02 \x01(\x0b\x32,.whatsapp.Message.PollCreationMessage.Option\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.whatsapp.Message.PollUpdateMessageMetadata\x1a\xe5\x03\n\x13PollCreationMessage\x12\x0e\n\x06\x65ncKey\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12=\n\x07options\x18\x03 \x03(\x0b\x32,.whatsapp.Message.PollCreationMessage.Option\x12\x1e\n\x16selectableOptionsCount\x18\x04 \x01(\r\x12*\n\x0b\x63ontextInfo\x18\x05 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12:\n\x0fpollContentType\x18\x06 \x01(\x0e\x32!.whatsapp.Message.PollContentType\x12,\n\x08pollType\x18\x07 \x01(\x0e\x32\x1a.whatsapp.Message.PollType\x12\x43\n\rcorrectAnswer\x18\x08 \x01(\x0b\x32,.whatsapp.Message.PollCreationMessage.Option\x12\x0f\n\x07\x65ndTime\x18\t \x01(\x03\x12\x1b\n\x13hideParticipantName\x18\n \x01(\x08\x12\x16\n\x0e\x61llowAddOption\x18\x0b \x01(\x08\x1a\x30\n\x06Option\x12\x12\n\noptionName\x18\x01 \x01(\t\x12\x12\n\noptionHash\x18\x02 \x01(\t\x1a\x31\n\x0cPollEncValue\x12\x12\n\nencPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\x1a\x85\x02\n\x19PollResultSnapshotMessage\x12\x0c\n\x04name\x18\x01 \x01(\t\x12G\n\tpollVotes\x18\x02 \x03(\x0b\x32\x34.whatsapp.Message.PollResultSnapshotMessage.PollVote\x12*\n\x0b\x63ontextInfo\x18\x03 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12,\n\x08pollType\x18\x04 \x01(\x0e\x32\x1a.whatsapp.Message.PollType\x1a\x37\n\x08PollVote\x12\x12\n\noptionName\x18\x01 \x01(\t\x12\x17\n\x0foptionVoteCount\x18\x02 \x01(\x03\x1a\xd1\x01\n\x11PollUpdateMessage\x12\x34\n\x16pollCreationMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12,\n\x04vote\x18\x02 \x01(\x0b\x32\x1e.whatsapp.Message.PollEncValue\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32+.whatsapp.Message.PollUpdateMessageMetadata\x12\x19\n\x11senderTimestampMs\x18\x04 \x01(\x03\x1aK\n\x19PollUpdateMessageMetadata\x12\x14\n\x0cpollNameHash\x18\x01 \x01(\x0c\x12\x18\n\x10lastEditStanzaId\x18\x02 \x01(\t\x1a*\n\x0fPollVoteMessage\x12\x17\n\x0fselectedOptions\x18\x01 \x03(\x0c\x1a\x99\x05\n\x0eProductMessage\x12\x41\n\x07product\x18\x01 \x01(\x0b\x32\x30.whatsapp.Message.ProductMessage.ProductSnapshot\x12\x18\n\x10\x62usinessOwnerJid\x18\x02 \x01(\t\x12\x41\n\x07\x63\x61talog\x18\x04 \x01(\x0b\x32\x30.whatsapp.Message.ProductMessage.CatalogSnapshot\x12\x0c\n\x04\x62ody\x18\x05 \x01(\t\x12\x0e\n\x06\x66ooter\x18\x06 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1ak\n\x0f\x43\x61talogSnapshot\x12\x34\n\x0c\x63\x61talogImage\x18\x01 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessage\x12\r\n\x05title\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x1a\xaf\x02\n\x0fProductSnapshot\x12\x34\n\x0cproductImage\x18\x01 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessage\x12\x11\n\tproductId\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x14\n\x0c\x63urrencyCode\x18\x05 \x01(\t\x12\x17\n\x0fpriceAmount1000\x18\x06 \x01(\x03\x12\x12\n\nretailerId\x18\x07 \x01(\t\x12\x0b\n\x03url\x18\x08 \x01(\t\x12\x19\n\x11productImageCount\x18\t \x01(\r\x12\x14\n\x0c\x66irstImageId\x18\x0b \x01(\t\x12\x1b\n\x13salePriceAmount1000\x18\x0c \x01(\x03\x12\x11\n\tsignedUrl\x18\r \x01(\t\x1a\xc1\x15\n\x0fProtocolMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x34\n\x04type\x18\x02 \x01(\x0e\x32&.whatsapp.Message.ProtocolMessage.Type\x12\x1b\n\x13\x65phemeralExpiration\x18\x04 \x01(\r\x12!\n\x19\x65phemeralSettingTimestamp\x18\x05 \x01(\x03\x12J\n\x17historySyncNotification\x18\x06 \x01(\x0b\x32).whatsapp.Message.HistorySyncNotification\x12\x44\n\x14\x61ppStateSyncKeyShare\x18\x07 \x01(\x0b\x32&.whatsapp.Message.AppStateSyncKeyShare\x12H\n\x16\x61ppStateSyncKeyRequest\x18\x08 \x01(\x0b\x32(.whatsapp.Message.AppStateSyncKeyRequest\x12h\n&initialSecurityNotificationSettingSync\x18\t \x01(\x0b\x32\x38.whatsapp.Message.InitialSecurityNotificationSettingSync\x12`\n\"appStateFatalExceptionNotification\x18\n \x01(\x0b\x32\x34.whatsapp.Message.AppStateFatalExceptionNotification\x12\x34\n\x10\x64isappearingMode\x18\x0b \x01(\x0b\x32\x1a.whatsapp.DisappearingMode\x12(\n\reditedMessage\x18\x0e \x01(\x0b\x32\x11.whatsapp.Message\x12\x13\n\x0btimestampMs\x18\x0f \x01(\x03\x12Z\n\x1fpeerDataOperationRequestMessage\x18\x10 \x01(\x0b\x32\x31.whatsapp.Message.PeerDataOperationRequestMessage\x12j\n\'peerDataOperationRequestResponseMessage\x18\x11 \x01(\x0b\x32\x39.whatsapp.Message.PeerDataOperationRequestResponseMessage\x12\x38\n\x12\x62otFeedbackMessage\x18\x12 \x01(\x0b\x32\x1c.whatsapp.BotFeedbackMessage\x12\x12\n\ninvokerJid\x18\x13 \x01(\t\x12V\n\x1drequestWelcomeMessageMetadata\x18\x14 \x01(\x0b\x32/.whatsapp.Message.RequestWelcomeMessageMetadata\x12\x38\n\x12mediaNotifyMessage\x18\x15 \x01(\x0b\x32\x1c.whatsapp.MediaNotifyMessage\x12^\n!cloudApiThreadControlNotification\x18\x16 \x01(\x0b\x32\x33.whatsapp.Message.CloudAPIThreadControlNotification\x12P\n\x1elidMigrationMappingSyncMessage\x18\x17 \x01(\x0b\x32(.whatsapp.LIDMigrationMappingSyncMessage\x12,\n\x0climitSharing\x18\x18 \x01(\x0b\x32\x16.whatsapp.LimitSharing\x12\x15\n\raiPsiMetadata\x18\x19 \x01(\x0c\x12.\n\raiQueryFanout\x18\x1a \x01(\x0b\x32\x17.whatsapp.AIQueryFanout\x12*\n\x0bmemberLabel\x18\x1b \x01(\x0b\x32\x15.whatsapp.MemberLabel\x12\x44\n\x18\x61iMediaCollectionMessage\x18\x1c \x01(\x0b\x32\".whatsapp.AIMediaCollectionMessage\x12\x19\n\x11\x61\x66terReadDuration\x18\x1d \x01(\r\x12<\n\x10\x63hatThemeSetting\x18\x1e \x01(\x0b\x32\".whatsapp.Message.ChatThemeSetting\x12:\n\x13\x61iMetadataOperation\x18\x1f \x01(\x0b\x32\x1d.whatsapp.AIMetadataOperation\x12\x44\n\x14markAsVerifiedAction\x18 \x01(\x0b\x32&.whatsapp.Message.MarkAsVerifiedAction\x12.\n\rcoexStateSync\x18! \x01(\x0b\x32\x17.whatsapp.CoexStateSync\"\xab\x07\n\x04Type\x12\n\n\x06REVOKE\x10\x00\x12\x15\n\x11\x45PHEMERAL_SETTING\x10\x03\x12\x1b\n\x17\x45PHEMERAL_SYNC_RESPONSE\x10\x04\x12\x1d\n\x19HISTORY_SYNC_NOTIFICATION\x10\x05\x12\x1c\n\x18\x41PP_STATE_SYNC_KEY_SHARE\x10\x06\x12\x1e\n\x1a\x41PP_STATE_SYNC_KEY_REQUEST\x10\x07\x12\x1f\n\x1bMSG_FANOUT_BACKFILL_REQUEST\x10\x08\x12.\n*INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC\x10\t\x12*\n&APP_STATE_FATAL_EXCEPTION_NOTIFICATION\x10\n\x12\x16\n\x12SHARE_PHONE_NUMBER\x10\x0b\x12\x10\n\x0cMESSAGE_EDIT\x10\x0e\x12\'\n#PEER_DATA_OPERATION_REQUEST_MESSAGE\x10\x10\x12\x30\n,PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE\x10\x11\x12\x1b\n\x17REQUEST_WELCOME_MESSAGE\x10\x12\x12\x18\n\x14\x42OT_FEEDBACK_MESSAGE\x10\x13\x12\x18\n\x14MEDIA_NOTIFY_MESSAGE\x10\x14\x12)\n%CLOUD_API_THREAD_CONTROL_NOTIFICATION\x10\x15\x12\x1e\n\x1aLID_MIGRATION_MAPPING_SYNC\x10\x16\x12\x14\n\x10REMINDER_MESSAGE\x10\x17\x12\x1f\n\x1b\x42OT_MEMU_ONBOARDING_MESSAGE\x10\x18\x12\x1a\n\x16STATUS_MENTION_MESSAGE\x10\x19\x12\x1b\n\x17STOP_GENERATION_MESSAGE\x10\x1a\x12\x11\n\rLIMIT_SHARING\x10\x1b\x12\x13\n\x0f\x41I_PSI_METADATA\x10\x1c\x12\x13\n\x0f\x41I_QUERY_FANOUT\x10\x1d\x12\x1d\n\x19GROUP_MEMBER_LABEL_CHANGE\x10\x1e\x12\x1f\n\x1b\x41I_MEDIA_COLLECTION_MESSAGE\x10\x1f\x12\x16\n\x12MESSAGE_UNSCHEDULE\x10 \x12\x16\n\x12\x43HAT_THEME_SETTING\x10\"\x12\x19\n\x15\x41I_METADATA_OPERATION\x10#\x12\x1b\n\x17MARK_AS_VERIFIED_ACTION\x10$\x12\x13\n\x0f\x43OEX_STATE_SYNC\x10%\x1aJ\n\x17QuestionResponseMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x1ar\n\x0fReactionMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x13\n\x0bgroupingKey\x18\x03 \x01(\t\x12\x19\n\x11senderTimestampMs\x18\x04 \x01(\x03\x1a\xf0\x01\n\x15RequestPaymentMessage\x12&\n\x0bnoteMessage\x18\x04 \x01(\x0b\x32\x11.whatsapp.Message\x12\x1b\n\x13\x63urrencyCodeIso4217\x18\x01 \x01(\t\x12\x12\n\namount1000\x18\x02 \x01(\x04\x12\x13\n\x0brequestFrom\x18\x03 \x01(\t\x12\x17\n\x0f\x65xpiryTimestamp\x18\x05 \x01(\x03\x12\x1f\n\x06\x61mount\x18\x06 \x01(\x0b\x32\x0f.whatsapp.Money\x12/\n\nbackground\x18\x07 \x01(\x0b\x32\x1b.whatsapp.PaymentBackground\x1aG\n\x19RequestPhoneNumberMessage\x12*\n\x0b\x63ontextInfo\x18\x01 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xe9\x02\n\x1dRequestWelcomeMessageMetadata\x12V\n\x0elocalChatState\x18\x01 \x01(\x0e\x32>.whatsapp.Message.RequestWelcomeMessageMetadata.LocalChatState\x12V\n\x0ewelcomeTrigger\x18\x02 \x01(\x0e\x32>.whatsapp.Message.RequestWelcomeMessageMetadata.WelcomeTrigger\x12\x34\n\x10\x62otAgentMetadata\x18\x03 \x01(\x0b\x32\x1a.whatsapp.BotAgentMetadata\"*\n\x0eLocalChatState\x12\t\n\x05\x45MPTY\x10\x00\x12\r\n\tNON_EMPTY\x10\x01\"6\n\x0eWelcomeTrigger\x12\r\n\tCHAT_OPEN\x10\x00\x12\x15\n\x11\x43OMPANION_PAIRING\x10\x01\x1a.\n\x1bRootSecretDistributeMessage\x12\x0f\n\x07\x63hatJid\x18\x01 \x01(\t\x1a\xc5\x01\n\x1cScheduledCallCreationMessage\x12\x1c\n\x14scheduledTimestampMs\x18\x01 \x01(\x03\x12I\n\x08\x63\x61llType\x18\x02 \x01(\x0e\x32\x37.whatsapp.Message.ScheduledCallCreationMessage.CallType\x12\r\n\x05title\x18\x03 \x01(\t\"-\n\x08\x43\x61llType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05VOICE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x1a\xa9\x01\n\x18ScheduledCallEditMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x45\n\x08\x65\x64itType\x18\x02 \x01(\x0e\x32\x33.whatsapp.Message.ScheduledCallEditMessage.EditType\"#\n\x08\x45\x64itType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x43\x41NCEL\x10\x01\x1a\xc9\x02\n\x16SecretEncryptedMessage\x12.\n\x10targetMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nencPayload\x18\x02 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x03 \x01(\x0c\x12M\n\rsecretEncType\x18\x04 \x01(\x0e\x32\x36.whatsapp.Message.SecretEncryptedMessage.SecretEncType\x12\x13\n\x0bremoteKeyId\x18\x05 \x01(\t\"x\n\rSecretEncType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0e\n\nEVENT_EDIT\x10\x01\x12\x10\n\x0cMESSAGE_EDIT\x10\x02\x12\x14\n\x10MESSAGE_SCHEDULE\x10\x03\x12\r\n\tPOLL_EDIT\x10\x04\x12\x13\n\x0fPOLL_ADD_OPTION\x10\x05\x1a\xb7\x01\n\x12SendPaymentMessage\x12&\n\x0bnoteMessage\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12/\n\x11requestMessageKey\x18\x03 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12/\n\nbackground\x18\x04 \x01(\x0b\x32\x1b.whatsapp.PaymentBackground\x12\x17\n\x0ftransactionData\x18\x05 \x01(\t\x1a\\\n\x1cSenderKeyDistributionMessage\x12\x0f\n\x07groupId\x18\x01 \x01(\t\x12+\n#axolotlSenderKeyDistributionMessage\x18\x02 \x01(\x0c\x1a\xf9\x01\n\x13SplitPaymentMessage\x12\x0f\n\x07splitId\x18\x01 \x01(\t\x12$\n\x0btotalAmount\x18\x02 \x01(\x0b\x32\x0f.whatsapp.Money\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x14\n\x0crequesterJid\x18\x04 \x01(\t\x12?\n\x0cparticipants\x18\x05 \x03(\x0b\x32).whatsapp.Message.SplitPaymentParticipant\x12\x13\n\x0b\x63reatedAtMs\x18\x06 \x01(\x03\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x1a\xc2\x01\n\x17SplitPaymentParticipant\x12\x0b\n\x03jid\x18\x01 \x01(\t\x12\x1f\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x0f.whatsapp.Money\x12L\n\x06status\x18\x03 \x01(\x0e\x32<.whatsapp.Message.SplitPaymentParticipant.SplitPaymentStatus\"+\n\x12SplitPaymentStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x08\n\x04PAID\x10\x01\x1a\x44\n\x19SplitPaymentUpdateMessage\x12\x0f\n\x07splitId\x18\x01 \x01(\t\x12\x16\n\x0eparticipantJid\x18\x02 \x01(\t\x1a\x96\x01\n\x19StatusLinkPreviewMetadata\x12@\n\x05style\x18\x01 \x01(\x0e\x32\x31.whatsapp.Message.StatusLinkPreviewMetadata.Style\"7\n\x05Style\x12\x08\n\x04\x41UTO\x10\x00\x12\x0b\n\x07\x43OMPACT\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\x12\r\n\tIMMERSIVE\x10\x03\x1a\xe6\x02\n\x19StatusNotificationMessage\x12\x30\n\x12responseMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x30\n\x12originalMessageKey\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12P\n\x04type\x18\x03 \x01(\x0e\x32\x42.whatsapp.Message.StatusNotificationMessage.StatusNotificationType\"\x92\x01\n\x16StatusNotificationType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x14\n\x10STATUS_ADD_YOURS\x10\x01\x12\x12\n\x0eSTATUS_RESHARE\x10\x02\x12\"\n\x1eSTATUS_QUESTION_ANSWER_RESHARE\x10\x03\x12\x1d\n\x19STATUS_GROUP_STATUS_REPLY\x10\x04\x1aN\n\x1bStatusQuestionAnswerMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x1a\xe3\x01\n\x13StatusQuotedMessage\x12K\n\x04type\x18\x01 \x01(\x0e\x32=.whatsapp.Message.StatusQuotedMessage.StatusQuotedMessageType\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x11\n\tthumbnail\x18\x03 \x01(\x0c\x12.\n\x10originalStatusId\x18\x04 \x01(\x0b\x32\x14.whatsapp.MessageKey\".\n\x17StatusQuotedMessageType\x12\x13\n\x0fQUESTION_ANSWER\x10\x01\x1a\xdb\x01\n\x1fStatusStickerInteractionMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x12\n\nstickerKey\x18\x02 \x01(\t\x12Q\n\x04type\x18\x03 \x01(\x0e\x32\x43.whatsapp.Message.StatusStickerInteractionMessage.StatusStickerType\".\n\x11StatusStickerType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08REACTION\x10\x01\x1a\xe6\x03\n\x0eStickerMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\nfileSha256\x18\x02 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x03 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x10\n\x08mimetype\x18\x05 \x01(\t\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\r\n\x05width\x18\x07 \x01(\r\x12\x12\n\ndirectPath\x18\x08 \x01(\t\x12\x12\n\nfileLength\x18\t \x01(\x04\x12\x19\n\x11mediaKeyTimestamp\x18\n \x01(\x03\x12\x18\n\x10\x66irstFrameLength\x18\x0b \x01(\r\x12\x19\n\x11\x66irstFrameSidecar\x18\x0c \x01(\x0c\x12\x12\n\nisAnimated\x18\r \x01(\x08\x12\x14\n\x0cpngThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x15\n\rstickerSentTs\x18\x12 \x01(\x03\x12\x10\n\x08isAvatar\x18\x13 \x01(\x08\x12\x13\n\x0bisAiSticker\x18\x14 \x01(\x08\x12\x10\n\x08isLottie\x18\x15 \x01(\x08\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x16 \x01(\t\x12\x0f\n\x07premium\x18\x18 \x01(\x05\x12\x0e\n\x06\x65mojis\x18\x19 \x01(\t\x1a\xde\x06\n\x12StickerPackMessage\x12\x15\n\rstickerPackId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\tpublisher\x18\x03 \x01(\t\x12>\n\x08stickers\x18\x04 \x03(\x0b\x32,.whatsapp.Message.StickerPackMessage.Sticker\x12\x12\n\nfileLength\x18\x05 \x01(\x04\x12\x12\n\nfileSha256\x18\x06 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x07 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x08 \x01(\x0c\x12\x12\n\ndirectPath\x18\t \x01(\t\x12\x0f\n\x07\x63\x61ption\x18\n \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x0b \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x17\n\x0fpackDescription\x18\x0c \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\r \x01(\x03\x12\x18\n\x10trayIconFileName\x18\x0e \x01(\t\x12\x1b\n\x13thumbnailDirectPath\x18\x0f \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x10 \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x11 \x01(\x0c\x12\x17\n\x0fthumbnailHeight\x18\x12 \x01(\r\x12\x16\n\x0ethumbnailWidth\x18\x13 \x01(\r\x12\x15\n\rimageDataHash\x18\x14 \x01(\t\x12\x17\n\x0fstickerPackSize\x18\x15 \x01(\x04\x12Q\n\x11stickerPackOrigin\x18\x16 \x01(\x0e\x32\x36.whatsapp.Message.StickerPackMessage.StickerPackOrigin\x1a\x90\x01\n\x07Sticker\x12\x10\n\x08\x66ileName\x18\x01 \x01(\t\x12\x12\n\nisAnimated\x18\x02 \x01(\x08\x12\x0e\n\x06\x65mojis\x18\x03 \x03(\t\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x04 \x01(\t\x12\x10\n\x08isLottie\x18\x05 \x01(\x08\x12\x10\n\x08mimetype\x18\x06 \x01(\t\x12\x0f\n\x07premium\x18\x07 \x01(\x05\"G\n\x11StickerPackOrigin\x12\x0f\n\x0b\x46IRST_PARTY\x10\x00\x12\x0f\n\x0bTHIRD_PARTY\x10\x01\x12\x10\n\x0cUSER_CREATED\x10\x02\x1aV\n\x15StickerSyncRMRMessage\x12\x10\n\x08\x66ilehash\x18\x01 \x03(\t\x12\x11\n\trmrSource\x18\x02 \x01(\t\x12\x18\n\x10requestTimestamp\x18\x03 \x01(\x03\x1a\xb3\x01\n\x1aTemplateButtonReplyMessage\x12\x12\n\nselectedId\x18\x01 \x01(\t\x12\x1b\n\x13selectedDisplayText\x18\x02 \x01(\t\x12*\n\x0b\x63ontextInfo\x18\x03 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x15\n\rselectedIndex\x18\x04 \x01(\r\x12!\n\x19selectedCarouselCardIndex\x18\x05 \x01(\r\x1a\xf2\n\n\x0fTemplateMessage\x12*\n\x0b\x63ontextInfo\x18\x03 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12S\n\x10hydratedTemplate\x18\x04 \x01(\x0b\x32\x39.whatsapp.Message.TemplateMessage.HydratedFourRowTemplate\x12\x12\n\ntemplateId\x18\t \x01(\t\x12L\n\x0f\x66ourRowTemplate\x18\x01 \x01(\x0b\x32\x31.whatsapp.Message.TemplateMessage.FourRowTemplateH\x00\x12\\\n\x17hydratedFourRowTemplate\x18\x02 \x01(\x0b\x32\x39.whatsapp.Message.TemplateMessage.HydratedFourRowTemplateH\x00\x12J\n\x1ainteractiveMessageTemplate\x18\x05 \x01(\x0b\x32$.whatsapp.Message.InteractiveMessageH\x00\x1a\xf6\x03\n\x0f\x46ourRowTemplate\x12:\n\x07\x63ontent\x18\x06 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12\x39\n\x06\x66ooter\x18\x07 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12)\n\x07\x62uttons\x18\x08 \x03(\x0b\x32\x18.whatsapp.TemplateButton\x12<\n\x0f\x64ocumentMessage\x18\x01 \x01(\x0b\x32!.whatsapp.Message.DocumentMessageH\x00\x12L\n\x17highlyStructuredMessage\x18\x02 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessageH\x00\x12\x36\n\x0cimageMessage\x18\x03 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessageH\x00\x12\x36\n\x0cvideoMessage\x18\x04 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessageH\x00\x12<\n\x0flocationMessage\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessageH\x00\x42\x07\n\x05title\x1a\xce\x03\n\x17HydratedFourRowTemplate\x12\x1b\n\x13hydratedContentText\x18\x06 \x01(\t\x12\x1a\n\x12hydratedFooterText\x18\x07 \x01(\t\x12\x39\n\x0fhydratedButtons\x18\x08 \x03(\x0b\x32 .whatsapp.HydratedTemplateButton\x12\x12\n\ntemplateId\x18\t \x01(\t\x12\x19\n\x11maskLinkedDevices\x18\n \x01(\x08\x12<\n\x0f\x64ocumentMessage\x18\x01 \x01(\x0b\x32!.whatsapp.Message.DocumentMessageH\x00\x12\x1b\n\x11hydratedTitleText\x18\x02 \x01(\tH\x00\x12\x36\n\x0cimageMessage\x18\x03 \x01(\x0b\x32\x1e.whatsapp.Message.ImageMessageH\x00\x12\x36\n\x0cvideoMessage\x18\x04 \x01(\x0b\x32\x1e.whatsapp.Message.VideoMessageH\x00\x12<\n\x0flocationMessage\x18\x05 \x01(\x0b\x32!.whatsapp.Message.LocationMessageH\x00\x42\x07\n\x05titleB\x08\n\x06\x66ormat\x1a%\n\x0bURLMetadata\x12\x16\n\x0e\x66\x62\x45xperimentId\x18\x01 \x01(\r\x1ag\n\x0cVideoEndCard\x12\x10\n\x08username\x18\x01 \x02(\t\x12\x0f\n\x07\x63\x61ption\x18\x02 \x02(\t\x12\x19\n\x11thumbnailImageUrl\x18\x03 \x02(\t\x12\x19\n\x11profilePictureUrl\x18\x04 \x02(\t\x1a\x88\x08\n\x0cVideoMessage\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08mimetype\x18\x02 \x01(\t\x12\x12\n\nfileSha256\x18\x03 \x01(\x0c\x12\x12\n\nfileLength\x18\x04 \x01(\x04\x12\x0f\n\x07seconds\x18\x05 \x01(\r\x12\x10\n\x08mediaKey\x18\x06 \x01(\x0c\x12\x0f\n\x07\x63\x61ption\x18\x07 \x01(\t\x12\x13\n\x0bgifPlayback\x18\x08 \x01(\x08\x12\x0e\n\x06height\x18\t \x01(\r\x12\r\n\x05width\x18\n \x01(\r\x12\x15\n\rfileEncSha256\x18\x0b \x01(\x0c\x12?\n\x16interactiveAnnotations\x18\x0c \x03(\x0b\x32\x1f.whatsapp.InteractiveAnnotation\x12\x12\n\ndirectPath\x18\r \x01(\t\x12\x19\n\x11mediaKeyTimestamp\x18\x0e \x01(\x03\x12\x15\n\rjpegThumbnail\x18\x10 \x01(\x0c\x12*\n\x0b\x63ontextInfo\x18\x11 \x01(\x0b\x32\x15.whatsapp.ContextInfo\x12\x18\n\x10streamingSidecar\x18\x12 \x01(\x0c\x12\x42\n\x0egifAttribution\x18\x13 \x01(\x0e\x32*.whatsapp.Message.VideoMessage.Attribution\x12\x10\n\x08viewOnce\x18\x14 \x01(\x08\x12\x1b\n\x13thumbnailDirectPath\x18\x15 \x01(\t\x12\x17\n\x0fthumbnailSha256\x18\x16 \x01(\x0c\x12\x1a\n\x12thumbnailEncSha256\x18\x17 \x01(\x0c\x12\x11\n\tstaticUrl\x18\x18 \x01(\t\x12\x34\n\x0b\x61nnotations\x18\x19 \x03(\x0b\x32\x1f.whatsapp.InteractiveAnnotation\x12\x1a\n\x12\x61\x63\x63\x65ssibilityLabel\x18\x1a \x01(\t\x12\x31\n\x0fprocessedVideos\x18\x1b \x03(\x0b\x32\x18.whatsapp.ProcessedVideo\x12/\n\'externalShareFullVideoDurationInSeconds\x18\x1c \x01(\r\x12\'\n\x1fmotionPhotoPresentationOffsetMs\x18\x1d \x01(\x04\x12\x13\n\x0bmetadataUrl\x18\x1e \x01(\t\x12G\n\x0fvideoSourceType\x18\x1f \x01(\x0e\x32..whatsapp.Message.VideoMessage.VideoSourceType\"8\n\x0b\x41ttribution\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05GIPHY\x10\x01\x12\t\n\x05TENOR\x10\x02\x12\t\n\x05KLIPY\x10\x03\"3\n\x0fVideoSourceType\x12\x0e\n\nUSER_VIDEO\x10\x00\x12\x10\n\x0c\x41I_GENERATED\x10\x01\"\xb5\x01\n\x0fHistorySyncType\x12\x15\n\x11INITIAL_BOOTSTRAP\x10\x00\x12\x15\n\x11INITIAL_STATUS_V3\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\x12\n\n\x06RECENT\x10\x03\x12\r\n\tPUSH_NAME\x10\x04\x12\x15\n\x11NON_BLOCKING_DATA\x10\x05\x12\r\n\tON_DEMAND\x10\x06\x12\x0e\n\nNO_HISTORY\x10\x07\x12\x19\n\x15MESSAGE_ACCESS_STATUS\x10\x08\"Y\n\x14InsightDeliveryState\x12\x08\n\x04SENT\x10\x00\x12\r\n\tDELIVERED\x10\x01\x12\x08\n\x04READ\x10\x02\x12\x0b\n\x07REPLIED\x10\x03\x12\x11\n\rQUICK_REPLIED\x10\x04\"\x8e\x04\n\x1cPeerDataOperationRequestType\x12\x12\n\x0eUPLOAD_STICKER\x10\x00\x12!\n\x1dSEND_RECENT_STICKER_BOOTSTRAP\x10\x01\x12\x19\n\x15GENERATE_LINK_PREVIEW\x10\x02\x12\x1a\n\x16HISTORY_SYNC_ON_DEMAND\x10\x03\x12\x1e\n\x1aPLACEHOLDER_MESSAGE_RESEND\x10\x04\x12\x1e\n\x1aWAFFLE_LINKING_NONCE_FETCH\x10\x05\x12\x1f\n\x1b\x46ULL_HISTORY_SYNC_ON_DEMAND\x10\x06\x12\x1e\n\x1a\x43OMPANION_META_NONCE_FETCH\x10\x07\x12+\n\'COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY\x10\x08\x12(\n$COMPANION_CANONICAL_USER_NONCE_FETCH\x10\t\x12\x1c\n\x18HISTORY_SYNC_CHUNK_RETRY\x10\n\x12\x16\n\x12GALAXY_FLOW_ACTION\x10\x0b\x12,\n(BUSINESS_BROADCAST_INSIGHTS_DELIVERED_TO\x10\x0c\x12\'\n#BUSINESS_BROADCAST_INSIGHTS_REFRESH\x10\r\x12\x1b\n\x17\x43ONTACT_REFRESH_REQUEST\x10\x0e\"3\n\x0fPollContentType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04TEXT\x10\x01\x12\t\n\x05IMAGE\x10\x02\"\x1e\n\x08PollType\x12\x08\n\x04POLL\x10\x00\x12\x08\n\x04QUIZ\x10\x01\"\xed\x03\n\x0cMessageAddOn\x12\x41\n\x10messageAddOnType\x18\x01 \x01(\x0e\x32\'.whatsapp.MessageAddOn.MessageAddOnType\x12\'\n\x0cmessageAddOn\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\x19\n\x11senderTimestampMs\x18\x03 \x01(\x03\x12\x19\n\x11serverTimestampMs\x18\x04 \x01(\x03\x12\x38\n\x06status\x18\x05 \x01(\x0e\x32\x1f.whatsapp.WebMessageInfo.Status:\x07PENDING\x12;\n\x10\x61\x64\x64OnContextInfo\x18\x06 \x01(\x0b\x32!.whatsapp.MessageAddOnContextInfo\x12-\n\x0fmessageAddOnKey\x18\x07 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12.\n\rlegacyMessage\x18\x08 \x01(\x0b\x32\x17.whatsapp.LegacyMessage\"e\n\x10MessageAddOnType\x12\r\n\tUNDEFINED\x10\x00\x12\x0c\n\x08REACTION\x10\x01\x12\x12\n\x0e\x45VENT_RESPONSE\x10\x02\x12\x0f\n\x0bPOLL_UPDATE\x10\x03\x12\x0f\n\x0bPIN_IN_CHAT\x10\x04\"\x92\x01\n\x17MessageAddOnContextInfo\x12\"\n\x1amessageAddOnDurationInSecs\x18\x01 \x01(\r\x12S\n\x16messageAddOnExpiryType\x18\x02 \x01(\x0e\x32\x33.whatsapp.MessageContextInfo.MessageAddonExpiryType\"\x8c\x05\n\x12MessageAssociation\x12\x45\n\x0f\x61ssociationType\x18\x01 \x01(\x0e\x32,.whatsapp.MessageAssociation.AssociationType\x12.\n\x10parentMessageKey\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x14\n\x0cmessageIndex\x18\x03 \x01(\x05\"\xe8\x03\n\x0f\x41ssociationType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0f\n\x0bMEDIA_ALBUM\x10\x01\x12\x0e\n\nBOT_PLUGIN\x10\x02\x12\x15\n\x11\x45VENT_COVER_IMAGE\x10\x03\x12\x0f\n\x0bSTATUS_POLL\x10\x04\x12\x18\n\x14HD_VIDEO_DUAL_UPLOAD\x10\x05\x12\x1b\n\x17STATUS_EXTERNAL_RESHARE\x10\x06\x12\x0e\n\nMEDIA_POLL\x10\x07\x12\x14\n\x10STATUS_ADD_YOURS\x10\x08\x12\x17\n\x13STATUS_NOTIFICATION\x10\t\x12\x18\n\x14HD_IMAGE_DUAL_UPLOAD\x10\n\x12\x16\n\x12STICKER_ANNOTATION\x10\x0b\x12\x10\n\x0cMOTION_PHOTO\x10\x0c\x12\x16\n\x12STATUS_LINK_ACTION\x10\r\x12\x14\n\x10VIEW_ALL_REPLIES\x10\x0e\x12\x1f\n\x1bSTATUS_ADD_YOURS_AI_IMAGINE\x10\x0f\x12\x13\n\x0fSTATUS_QUESTION\x10\x10\x12\x1b\n\x17STATUS_ADD_YOURS_DIWALI\x10\x11\x12\x13\n\x0fSTATUS_REACTION\x10\x12\x12\x1a\n\x16HEVC_VIDEO_DUAL_UPLOAD\x10\x13\x12\x13\n\x0fPOLL_ADD_OPTION\x10\x14\"\xe9\x06\n\x12MessageContextInfo\x12\x38\n\x12\x64\x65viceListMetadata\x18\x01 \x01(\x0b\x32\x1c.whatsapp.DeviceListMetadata\x12!\n\x19\x64\x65viceListMetadataVersion\x18\x02 \x01(\x05\x12\x15\n\rmessageSecret\x18\x03 \x01(\x0c\x12\x14\n\x0cpaddingBytes\x18\x04 \x01(\x0c\x12\"\n\x1amessageAddOnDurationInSecs\x18\x05 \x01(\r\x12\x18\n\x10\x62otMessageSecret\x18\x06 \x01(\x0c\x12*\n\x0b\x62otMetadata\x18\x07 \x01(\x0b\x32\x15.whatsapp.BotMetadata\x12\x1d\n\x15reportingTokenVersion\x18\x08 \x01(\x05\x12S\n\x16messageAddOnExpiryType\x18\t \x01(\x0e\x32\x33.whatsapp.MessageContextInfo.MessageAddonExpiryType\x12\x38\n\x12messageAssociation\x18\n \x01(\x0b\x32\x1c.whatsapp.MessageAssociation\x12\x18\n\x10\x63\x61piCreatedGroup\x18\x0b \x01(\x08\x12\x16\n\x0esupportPayload\x18\x0c \x01(\t\x12,\n\x0climitSharing\x18\r \x01(\x0b\x32\x16.whatsapp.LimitSharing\x12.\n\x0elimitSharingV2\x18\x0e \x01(\x0b\x32\x16.whatsapp.LimitSharing\x12$\n\x08threadId\x18\x0f \x03(\x0b\x32\x12.whatsapp.ThreadID\x12:\n\x13weblinkRenderConfig\x18\x10 \x01(\x0e\x32\x1d.whatsapp.WebLinkRenderConfig\x12\x16\n\x0eteeBotMetadata\x18\x11 \x01(\x0c\x12\x42\n\x1c\x61\x63\x63ountEncryptionAttestation\x18\x12 \x01(\x0b\x32\x1c.whatsapp.NonE2EEAttestation\x12$\n\x1c\x61ssociatedPrimaryIdentityKey\x18\x13 \x01(\x0c\"=\n\x16MessageAddonExpiryType\x12\n\n\x06STATIC\x10\x01\x12\x17\n\x13\x44\x45PENDENT_ON_PARENT\x10\x02\"P\n\nMessageKey\x12\x11\n\tremoteJid\x18\x01 \x01(\t\x12\x0e\n\x06\x66romMe\x18\x02 \x01(\x08\x12\n\n\x02id\x18\x03 \x01(\t\x12\x13\n\x0bparticipant\x18\x04 \x01(\t\"J\n\x14MessageSecretMessage\x12\x0f\n\x07version\x18\x01 \x01(\x0f\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\x12\x12\n\nencPayload\x18\x03 \x01(\x0c\"{\n\x0bMessageText\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x14\n\x0cmentionedJid\x18\x02 \x03(\t\x12#\n\x08\x63ommands\x18\x03 \x03(\x0b\x32\x11.whatsapp.Command\x12#\n\x08mentions\x18\x04 \x03(\x0b\x32\x11.whatsapp.Mention\"\x8f\x01\n\x1aMessagingMailboxPublicData\x12\x11\n\tepochHead\x18\x01 \x02(\x0c\x12\x18\n\x10\x64\x65viceRosterHash\x18\x02 \x02(\x0c\x12\x16\n\x0esequenceNumber\x18\x03 \x02(\x04\x12\r\n\x05sigPk\x18\x04 \x02(\x0c\x12\r\n\x05\x65ncPk\x18\x05 \x02(\x0c\x12\x0e\n\x06\x61uthPk\x18\x06 \x02(\x0c\"e\n\x11MinosClientConfig\x12)\n!preferredMessageEncryptionVersion\x18\x01 \x02(\x05\x12%\n\x1dpreferredMekEncryptionVersion\x18\x02 \x02(\x05\"\xdf\x12\n\x0cMinosCommand\x12J\n\x15\x65ncryptAndSignMessage\x18\x01 \x01(\x0b\x32).whatsapp.MinosEncryptAndSignMessageInputH\x00\x12N\n\x17\x64\x65\x63ryptAndVerifyMessage\x18\x02 \x01(\x0b\x32+.whatsapp.MinosDecryptAndVerifyMessageInputH\x00\x12\x31\n\x0bgenerateMek\x18\x03 \x01(\x0b\x32\x1a.whatsapp.GenerateMekInputH\x00\x12\x45\n\x15generateMekRosterHash\x18\x04 \x01(\x0b\x32$.whatsapp.GenerateMekRosterHashInputH\x00\x12M\n\x19\x65ncryptMekForDistribution\x18\x05 \x01(\x0b\x32(.whatsapp.EncryptMekForDistributionInputH\x00\x12M\n\x19\x64\x65\x63ryptMekForDistribution\x18\x06 \x01(\x0b\x32(.whatsapp.DecryptMekForDistributionInputH\x00\x12u\n-encryptMeksForDistributionFromTransportSender\x18\x07 \x01(\x0b\x32<.whatsapp.EncryptMeksForDistributionFromTransportSenderInputH\x00\x12s\n,decryptMekForDistributionFromTransportSender\x18\x08 \x01(\x0b\x32;.whatsapp.DecryptMekForDistributionFromTransportSenderInputH\x00\x12U\n\x1dwrapTransportSigningPublicKey\x18\t \x01(\x0b\x32,.whatsapp.WrapTransportSigningPublicKeyInputH\x00\x12U\n\x1dwrapTransportSigningSecretKey\x18\n \x01(\x0b\x32,.whatsapp.WrapTransportSigningSecretKeyInputH\x00\x12Q\n\x1b\x64\x65riveMailboxSigningKeypair\x18\x0b \x01(\x0b\x32*.whatsapp.DeriveMailboxSigningKeypairInputH\x00\x12W\n\x1e\x64\x65riveMailboxEncryptionKeypair\x18\x0c \x01(\x0b\x32-.whatsapp.DeriveMailboxEncryptionKeypairInputH\x00\x12K\n\x18\x64\x65riveMailboxAuthKeypair\x18\r \x01(\x0b\x32\'.whatsapp.DeriveMailboxAuthKeypairInputH\x00\x12]\n!deriveAttachmentAccessTokenSecret\x18\x0e \x01(\x0b\x32\x30.whatsapp.DeriveAttachmentAccessTokenSecretInputH\x00\x12[\n deriveAttachmentPrimaryKeySecret\x18\x0f \x01(\x0b\x32/.whatsapp.DeriveAttachmentPrimaryKeySecretInputH\x00\x12\x45\n\x15minosOpenInitialEpoch\x18\x10 \x01(\x0b\x32$.whatsapp.MinosOpenInitialEpochInputH\x00\x12\x37\n\x0eminosOpenEpoch\x18\x11 \x01(\x0b\x32\x1d.whatsapp.MinosOpenEpochInputH\x00\x12?\n\x12minosValidateEpoch\x18\x12 \x01(\x0b\x32!.whatsapp.MinosValidateEpochInputH\x00\x12G\n\x16minosVerifySingleEpoch\x18\x13 \x01(\x0b\x32%.whatsapp.MinosVerifySingleEpochInputH\x00\x12Y\n\x1fminosThreadIdFromOneToOneThread\x18\x14 \x01(\x0b\x32..whatsapp.MinosThreadIdFromOneToOneThreadInputH\x00\x12S\n\x1cminosThreadIdFromActThreadId\x18\x15 \x01(\x0b\x32+.whatsapp.MinosThreadIdFromActThreadIdInputH\x00\x12=\n\x11mandrakeOpenEpoch\x18\x16 \x01(\x0b\x32 .whatsapp.MandrakeOpenEpochInputH\x00\x12?\n\x12mandrakeEncryptMek\x18\x17 \x01(\x0b\x32!.whatsapp.MandrakeEncryptMekInputH\x00\x12?\n\x12mandrakeDecryptMek\x18\x18 \x01(\x0b\x32!.whatsapp.MandrakeDecryptMekInputH\x00\x12K\n\x18mandrakeOpenInitialEpoch\x18\x19 \x01(\x0b\x32\'.whatsapp.MandrakeOpenInitialEpochInputH\x00\x12]\n!mandrakeValidateNewMmkFromMailbox\x18\x1b \x01(\x0b\x32\x30.whatsapp.MandrakeValidateNewMmkFromMailboxInputH\x00\x12k\n(mandrakeValidateNewMmkFromDetachedDevice\x18\x1c \x01(\x0b\x32\x37.whatsapp.MandrakeValidateNewMmkFromDetachedDeviceInputH\x00\x12W\n\x1e\x64\x65riveMessagingMailboxKeypairs\x18\x1d \x01(\x0b\x32-.whatsapp.DeriveMessagingMailboxKeypairsInputH\x00\x12O\n\x1a\x64\x65\x63ryptSelfMmkDistribution\x18\x1e \x01(\x0b\x32).whatsapp.DecryptSelfMmkDistributionInputH\x00\x42\x0e\n\x0c\x63ommandInput\"\x92\x02\n!MinosDecryptAndVerifyMessageInput\x12\x1a\n\x12transportSigningPk\x18\x01 \x02(\x0c\x12\x0b\n\x03mek\x18\x02 \x02(\x0c\x12\"\n\x1a\x65ncryptedMessageCiphertext\x18\x03 \x02(\x0c\x12!\n\x19\x65ncryptedMessageSignature\x18\x04 \x02(\x0c\x12\x30\n\x08metadata\x18\x05 \x02(\x0b\x32\x1e.whatsapp.MinosMessageMetadata\x12 \n\x18messageEncryptionVersion\x18\x06 \x01(\x05\x12)\n\x04\x63onf\x18\x07 \x01(\x0b\x32\x1b.whatsapp.MinosClientConfig\"\x88\x01\n\"MinosDecryptAndVerifyMessageResult\x12@\n\x07success\x18\x01 \x01(\x0b\x32-.whatsapp.MinosDecryptAndVerifyMessageSuccessH\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"8\n#MinosDecryptAndVerifyMessageSuccess\x12\x11\n\tplaintext\x18\x01 \x02(\x0c\"\xd6\x01\n\x1fMinosEncryptAndSignMessageInput\x12\x1a\n\x12transportSigningSk\x18\x01 \x02(\x0c\x12\x0b\n\x03mek\x18\x02 \x02(\x0c\x12\x11\n\tplaintext\x18\x03 \x02(\x0c\x12\x30\n\x08metadata\x18\x04 \x02(\x0b\x32\x1e.whatsapp.MinosMessageMetadata\x12\x1a\n\x12transportSigningPk\x18\x05 \x01(\x0c\x12)\n\x04\x63onf\x18\x06 \x01(\x0b\x32\x1b.whatsapp.MinosClientConfig\"Z\n MinosEncryptAndSignMessageResult\x12\x12\n\nciphertext\x18\x01 \x02(\x0c\x12\x11\n\tsignature\x18\x02 \x02(\x0c\x12\x0f\n\x07version\x18\x03 \x02(\x05\"]\n\x14MinosMessageMetadata\x12\r\n\x05mekId\x18\x01 \x02(\x0c\x12\x11\n\ttimestamp\x18\x02 \x02(\x04\x12\x11\n\tmessageId\x18\x03 \x02(\t\x12\x10\n\x08threadId\x18\x04 \x02(\x0c\"\xaa\x01\n\x13MinosOpenEpochInput\x12\x10\n\x08userFbid\x18\x01 \x02(\t\x12\x13\n\x0b\x65pochNumber\x18\x02 \x02(\x04\x12\x15\n\rexportRootKey\x18\x03 \x02(\x0c\x12\x1d\n\x15previousExportRootKey\x18\x04 \x02(\x0c\x12\x1b\n\x13previousEpochNumber\x18\x05 \x02(\x04\x12\x19\n\x11previousEpochHead\x18\x06 \x02(\x0c\"L\n\x14MinosOpenEpochResult\x12\x34\n\x10minosSignedEpoch\x18\x01 \x02(\x0b\x32\x1a.whatsapp.MinosSignedEpoch\"Z\n\x1aMinosOpenInitialEpochInput\x12\x10\n\x08userFbid\x18\x01 \x02(\t\x12\x13\n\x0b\x65pochNumber\x18\x02 \x02(\x04\x12\x15\n\rexportRootKey\x18\x03 \x02(\x0c\"S\n\x1bMinosOpenInitialEpochResult\x12\x34\n\x10minosSignedEpoch\x18\x01 \x02(\x0b\x32\x1a.whatsapp.MinosSignedEpoch\"\x88\x01\n\x10MinosSignedEpoch\x12\x32\n\x0f\x65pochPublicData\x18\x01 \x02(\x0b\x32\x19.whatsapp.EpochPublicData\x12-\n\nsignatures\x18\x02 \x02(\x0b\x32\x19.whatsapp.EpochSignatures\x12\x11\n\tepochHead\x18\x03 \x02(\x0c\"8\n!MinosThreadIdFromActThreadIdInput\x12\x13\n\x0b\x61\x63tThreadId\x18\x01 \x02(\t\"6\n\"MinosThreadIdFromActThreadIdResult\x12\x10\n\x08threadId\x18\x01 \x02(\x0c\"M\n$MinosThreadIdFromOneToOneThreadInput\x12\x13\n\x0b\x61\x63tThreadId\x18\x01 \x02(\t\x12\x10\n\x08selfFbid\x18\x02 \x02(\t\"9\n%MinosThreadIdFromOneToOneThreadResult\x12\x10\n\x08threadId\x18\x01 \x02(\x0c\"\xb8\x01\n\x17MinosValidateEpochInput\x12\x32\n\x0f\x65pochPublicData\x18\x01 \x02(\x0b\x32\x19.whatsapp.EpochPublicData\x12:\n\x17previousEpochPublicData\x18\x02 \x02(\x0b\x32\x19.whatsapp.EpochPublicData\x12-\n\nsignatures\x18\x03 \x02(\x0b\x32\x19.whatsapp.EpochSignatures\"M\n\x18MinosValidateEpochResult\x12\x0f\n\x05valid\x18\x01 \x01(\x08H\x00\x12\x16\n\x0c\x65rrorMessage\x18\x02 \x01(\tH\x00\x42\x08\n\x06result\"d\n\x1bMinosVerifySingleEpochInput\x12\x32\n\x0f\x65pochPublicData\x18\x01 \x02(\x0b\x32\x19.whatsapp.EpochPublicData\x12\x11\n\tsignature\x18\x02 \x02(\x0c\"-\n\x1cMinosVerifySingleEpochResult\x12\r\n\x05valid\x18\x01 \x02(\x08\"\x9f\x01\n\x0fMmkDistribution\x12\x44\n\x11toDetachedDevices\x18\x01 \x03(\x0b\x32).whatsapp.MmkDistributionToDetachedDevice\x12\x35\n\ttoMailbox\x18\x02 \x02(\x0b\x32\".whatsapp.MmkDistributionToMailbox\x12\x0f\n\x07version\x18\x03 \x02(\x04\"P\n\x1fMmkDistributionToDetachedDevice\x12\x14\n\x0c\x65ncryptedMmk\x18\x01 \x02(\x0c\x12\x17\n\x0frecipDeviceHash\x18\x02 \x02(\x0c\"N\n\x18MmkDistributionToMailbox\x12\x14\n\x0c\x65ncryptedMmk\x18\x01 \x02(\x0c\x12\x1c\n\x14recipMailboxHeadHash\x18\x02 \x02(\x0c\"\xc4\x01\n\x15MmkFromDetachedDevice\x12\x31\n\x03mmk\x18\x01 \x02(\x0b\x32$.whatsapp.MessagingMailboxPublicData\x12>\n\x12\x66romDetachedDevice\x18\x02 \x02(\x0b\x32\".whatsapp.DetachedDevicePublicData\x12\x38\n\x0fmembershipProof\x18\x03 \x02(\x0b\x32\x1f.whatsapp.MerkleMembershipProof\"<\n\x05Money\x12\r\n\x05value\x18\x01 \x01(\x03\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\x14\n\x0c\x63urrencyCode\x18\x03 \x01(\t\"\xa7\x10\n\rMsgOpaqueData\x12\x0c\n\x04\x62ody\x18\x01 \x01(\t\x12\x0f\n\x07\x63\x61ption\x18\x03 \x01(\t\x12\x0b\n\x03lng\x18\x05 \x01(\x01\x12\x0e\n\x06isLive\x18\x06 \x01(\x08\x12\x0b\n\x03lat\x18\x07 \x01(\x01\x12\x19\n\x11paymentAmount1000\x18\x08 \x01(\x05\x12\x1a\n\x12paymentNoteMsgBody\x18\t \x01(\t\x12\x13\n\x0bmatchedText\x18\x0b \x01(\t\x12\r\n\x05title\x18\x0c \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\r \x01(\t\x12\x19\n\x11\x66utureproofBuffer\x18\x0e \x01(\x0c\x12\x11\n\tclientUrl\x18\x0f \x01(\t\x12\x0b\n\x03loc\x18\x10 \x01(\t\x12\x10\n\x08pollName\x18\x11 \x01(\t\x12\x37\n\x0bpollOptions\x18\x12 \x03(\x0b\x32\".whatsapp.MsgOpaqueData.PollOption\x12\"\n\x1apollSelectableOptionsCount\x18\x14 \x01(\r\x12\x15\n\rmessageSecret\x18\x15 \x01(\x0c\x12\x1a\n\x12originalSelfAuthor\x18\x33 \x01(\t\x12\x19\n\x11senderTimestampMs\x18\x16 \x01(\x03\x12\x1b\n\x13pollUpdateParentKey\x18\x17 \x01(\t\x12+\n\x0b\x65ncPollVote\x18\x18 \x01(\x0b\x32\x16.whatsapp.PollEncValue\x12\x1d\n\x15isSentCagPollCreation\x18\x1c \x01(\x08\x12@\n\x0fpollContentType\x18* \x01(\x0e\x32\'.whatsapp.MsgOpaqueData.PollContentType\x12\x32\n\x08pollType\x18. \x01(\x0e\x32 .whatsapp.MsgOpaqueData.PollType\x12\x1a\n\x12\x63orrectOptionIndex\x18/ \x01(\x05\x12\x44\n\x11pollVotesSnapshot\x18) \x01(\x0b\x32).whatsapp.MsgOpaqueData.PollVotesSnapshot\x12#\n\x1b\x65ncReactionTargetMessageKey\x18\x19 \x01(\t\x12\x1d\n\x15\x65ncReactionEncPayload\x18\x1a \x01(\x0c\x12\x18\n\x10\x65ncReactionEncIv\x18\x1b \x01(\x0c\x12\x18\n\x10\x62otMessageSecret\x18\x1d \x01(\x0c\x12\x18\n\x10targetMessageKey\x18\x1e \x01(\t\x12\x12\n\nencPayload\x18\x1f \x01(\x0c\x12\r\n\x05\x65ncIv\x18 \x01(\x0c\x12\x11\n\teventName\x18! \x01(\t\x12\x17\n\x0fisEventCanceled\x18\" \x01(\x08\x12\x18\n\x10\x65ventDescription\x18# \x01(\t\x12\x15\n\reventJoinLink\x18$ \x01(\t\x12\x16\n\x0e\x65ventStartTime\x18% \x01(\x03\x12<\n\reventLocation\x18& \x01(\x0b\x32%.whatsapp.MsgOpaqueData.EventLocation\x12\x14\n\x0c\x65ventEndTime\x18( \x01(\x03\x12\x1c\n\x14\x65ventIsScheduledCall\x18, \x01(\x08\x12\x1f\n\x17\x65ventExtraGuestsAllowed\x18- \x01(\x08\x12\x1a\n\x12plainProtobufBytes\x18+ \x01(\x0c\x12\x1f\n\x17quarantineExtractedText\x18\x30 \x01(\t\x12\x13\n\x0bpollEndTime\x18\x31 \x01(\x03\x12\x1a\n\x12pollHideVoterNames\x18\x32 \x01(\x08\x12\x1a\n\x12pollAllowAddOption\x18\x34 \x01(\x08\x12\x1d\n\x15sharableEventInviteId\x18\x35 \x01(\t\x12 \n\x18sharableEventInviteTitle\x18\x36 \x01(\t\x12$\n\x1csharableEventInviteStartTime\x18\x37 \x01(\x03\x12\"\n\x1asharableEventInviteEndTime\x18\x38 \x01(\x03\x12\"\n\x1asharableEventInviteCaption\x18\x39 \x01(\t\x12%\n\x1dsharableEventInviteIsCanceled\x18: \x01(\x08\x12(\n sharableEventInviteJpegThumbnail\x18; \x01(\x0c\x12#\n\x1bsharableEventInviteCallLink\x18< \x01(\t\x1a\x85\x01\n\rEventLocation\x12\x17\n\x0f\x64\x65greesLatitude\x18\x01 \x01(\x01\x12\x18\n\x10\x64\x65greesLongitude\x18\x02 \x01(\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x04 \x01(\t\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x15\n\rjpegThumbnail\x18\x06 \x01(\x0c\x1a(\n\nPollOption\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04hash\x18\x02 \x01(\t\x1a_\n\x10PollVoteSnapshot\x12\x32\n\x06option\x18\x01 \x01(\x0b\x32\".whatsapp.MsgOpaqueData.PollOption\x12\x17\n\x0foptionVoteCount\x18\x02 \x01(\x05\x1aP\n\x11PollVotesSnapshot\x12;\n\tpollVotes\x18\x01 \x03(\x0b\x32(.whatsapp.MsgOpaqueData.PollVoteSnapshot\"3\n\x0fPollContentType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04TEXT\x10\x01\x12\t\n\x05IMAGE\x10\x02\"\x1e\n\x08PollType\x12\x08\n\x04POLL\x10\x00\x12\x08\n\x04QUIZ\x10\x01\"k\n\x10MsgRowOpaqueData\x12+\n\ncurrentMsg\x18\x01 \x01(\x0b\x32\x17.whatsapp.MsgOpaqueData\x12*\n\tquotedMsg\x18\x02 \x01(\x0b\x32\x17.whatsapp.MsgOpaqueData\"\x90\x01\n\x10NoiseCertificate\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x1aX\n\x07\x44\x65tails\x12\x0e\n\x06serial\x18\x01 \x01(\r\x12\x0e\n\x06issuer\x18\x02 \x01(\t\x12\x0f\n\x07\x65xpires\x18\x03 \x01(\x04\x12\x0f\n\x07subject\x18\x04 \x01(\t\x12\x0b\n\x03key\x18\x05 \x01(\x0c\"\x8b\x01\n\x12NonE2EEAttestation\x12=\n\x0b\x61\x63\x63ountType\x18\x01 \x01(\x0e\x32(.whatsapp.NonE2EEAttestation.AccountType\"6\n\x0b\x41\x63\x63ountType\x12\x08\n\x04\x45\x32\x45\x45\x10\x00\x12\x0f\n\x0bHYBRID_E2EE\x10\x01\x12\x0c\n\x08NON_E2EE\x10\x02\"\x8f\x01\n\x17NotificationMessageInfo\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\x18\n\x10messageTimestamp\x18\x03 \x01(\x04\x12\x13\n\x0bparticipant\x18\x04 \x01(\t\"\xa9\x01\n\x14NotificationSettings\x12\x16\n\x0emessageVibrate\x18\x01 \x01(\t\x12\x14\n\x0cmessagePopup\x18\x02 \x01(\t\x12\x14\n\x0cmessageLight\x18\x03 \x01(\t\x12 \n\x18lowPriorityNotifications\x18\x04 \x01(\x08\x12\x16\n\x0ereactionsMuted\x18\x05 \x01(\x08\x12\x13\n\x0b\x63\x61llVibrate\x18\x06 \x01(\t\"<\n\x10OrfThreadIdInput\x12\x16\n\x0eorfClientState\x18\x01 \x02(\x0c\x12\x10\n\x08threadId\x18\x02 \x02(\t\"7\n\x11OrfThreadIdOutput\x12\x13\n\x0borfThreadId\x18\x01 \x01(\x0c\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"]\n\x0ePairingRequest\x12\x1a\n\x12\x63ompanionPublicKey\x18\x01 \x01(\x0c\x12\x1c\n\x14\x63ompanionIdentityKey\x18\x02 \x01(\x0c\x12\x11\n\tadvSecret\x18\x03 \x01(\x0c\"\x95\x01\n\x0fPastParticipant\x12\x0f\n\x07userJid\x18\x01 \x01(\t\x12:\n\x0bleaveReason\x18\x02 \x01(\x0e\x32%.whatsapp.PastParticipant.LeaveReason\x12\x0f\n\x07leaveTs\x18\x03 \x01(\x04\"$\n\x0bLeaveReason\x12\x08\n\x04LEFT\x10\x00\x12\x0b\n\x07REMOVED\x10\x01\"Y\n\x10PastParticipants\x12\x10\n\x08groupJid\x18\x01 \x01(\t\x12\x33\n\x10pastParticipants\x18\x02 \x03(\x0b\x32\x19.whatsapp.PastParticipant\"\xd6\x03\n\x0ePatchDebugData\x12\x15\n\rcurrentLthash\x18\x01 \x01(\x0c\x12\x11\n\tnewLthash\x18\x02 \x01(\x0c\x12\x14\n\x0cpatchVersion\x18\x03 \x01(\x0c\x12\x16\n\x0e\x63ollectionName\x18\x04 \x01(\x0c\x12/\n\'firstFourBytesFromAHashOfSnapshotMacKey\x18\x05 \x01(\x0c\x12\x19\n\x11newLthashSubtract\x18\x06 \x01(\x0c\x12\x11\n\tnumberAdd\x18\x07 \x01(\x05\x12\x14\n\x0cnumberRemove\x18\x08 \x01(\x05\x12\x16\n\x0enumberOverride\x18\t \x01(\x05\x12\x39\n\x0esenderPlatform\x18\n \x01(\x0e\x32!.whatsapp.PatchDebugData.Platform\x12\x17\n\x0fisSenderPrimary\x18\x0b \x01(\x08\"\x8a\x01\n\x08Platform\x12\x0b\n\x07\x41NDROID\x10\x00\x12\x08\n\x04SMBA\x10\x01\x12\n\n\x06IPHONE\x10\x02\x12\x08\n\x04SMBI\x10\x03\x12\x07\n\x03WEB\x10\x04\x12\x07\n\x03UWP\x10\x05\x12\n\n\x06\x44\x41RWIN\x10\x06\x12\x08\n\x04IPAD\x10\x07\x12\n\n\x06WEAROS\x10\x08\x12\x08\n\x04WASG\x10\t\x12\t\n\x05WEARM\x10\n\x12\x08\n\x04\x43\x41PI\x10\x0b\"\xa9\x03\n\x11PaymentBackground\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nfileLength\x18\x02 \x01(\x04\x12\r\n\x05width\x18\x03 \x01(\r\x12\x0e\n\x06height\x18\x04 \x01(\r\x12\x10\n\x08mimetype\x18\x05 \x01(\t\x12\x17\n\x0fplaceholderArgb\x18\x06 \x01(\x07\x12\x10\n\x08textArgb\x18\x07 \x01(\x07\x12\x13\n\x0bsubtextArgb\x18\x08 \x01(\x07\x12\x38\n\tmediaData\x18\t \x01(\x0b\x32%.whatsapp.PaymentBackground.MediaData\x12.\n\x04type\x18\n \x01(\x0e\x32 .whatsapp.PaymentBackground.Type\x1aw\n\tMediaData\x12\x10\n\x08mediaKey\x18\x01 \x01(\x0c\x12\x19\n\x11mediaKeyTimestamp\x18\x02 \x01(\x03\x12\x12\n\nfileSha256\x18\x03 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x04 \x01(\x0c\x12\x12\n\ndirectPath\x18\x05 \x01(\t\" \n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\"\xe7\n\n\x0bPaymentInfo\x12:\n\x12\x63urrencyDeprecated\x18\x01 \x01(\x0e\x32\x1e.whatsapp.PaymentInfo.Currency\x12\x12\n\namount1000\x18\x02 \x01(\x04\x12\x13\n\x0breceiverJid\x18\x03 \x01(\t\x12,\n\x06status\x18\x04 \x01(\x0e\x32\x1c.whatsapp.PaymentInfo.Status\x12\x1c\n\x14transactionTimestamp\x18\x05 \x01(\x04\x12/\n\x11requestMessageKey\x18\x06 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x17\n\x0f\x65xpiryTimestamp\x18\x07 \x01(\x04\x12\x15\n\rfutureproofed\x18\x08 \x01(\x08\x12\x10\n\x08\x63urrency\x18\t \x01(\t\x12\x32\n\ttxnStatus\x18\n \x01(\x0e\x32\x1f.whatsapp.PaymentInfo.TxnStatus\x12\x19\n\x11useNoviFiatFormat\x18\x0b \x01(\x08\x12&\n\rprimaryAmount\x18\x0c \x01(\x0b\x32\x0f.whatsapp.Money\x12\'\n\x0e\x65xchangeAmount\x18\r \x01(\x0b\x32\x0f.whatsapp.Money\")\n\x08\x43urrency\x12\x14\n\x10UNKNOWN_CURRENCY\x10\x00\x12\x07\n\x03INR\x10\x01\"\xcc\x01\n\x06Status\x12\x12\n\x0eUNKNOWN_STATUS\x10\x00\x12\x0e\n\nPROCESSING\x10\x01\x12\x08\n\x04SENT\x10\x02\x12\x12\n\x0eNEED_TO_ACCEPT\x10\x03\x12\x0c\n\x08\x43OMPLETE\x10\x04\x12\x16\n\x12\x43OULD_NOT_COMPLETE\x10\x05\x12\x0c\n\x08REFUNDED\x10\x06\x12\x0b\n\x07\x45XPIRED\x10\x07\x12\x0c\n\x08REJECTED\x10\x08\x12\r\n\tCANCELLED\x10\t\x12\x15\n\x11WAITING_FOR_PAYER\x10\n\x12\x0b\n\x07WAITING\x10\x0b\"\x99\x05\n\tTxnStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rPENDING_SETUP\x10\x01\x12\x1a\n\x16PENDING_RECEIVER_SETUP\x10\x02\x12\x08\n\x04INIT\x10\x03\x12\x0b\n\x07SUCCESS\x10\x04\x12\r\n\tCOMPLETED\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06\x12\x0f\n\x0b\x46\x41ILED_RISK\x10\x07\x12\x15\n\x11\x46\x41ILED_PROCESSING\x10\x08\x12\x1e\n\x1a\x46\x41ILED_RECEIVER_PROCESSING\x10\t\x12\r\n\tFAILED_DA\x10\n\x12\x13\n\x0f\x46\x41ILED_DA_FINAL\x10\x0b\x12\x10\n\x0cREFUNDED_TXN\x10\x0c\x12\x11\n\rREFUND_FAILED\x10\r\x12\x1c\n\x18REFUND_FAILED_PROCESSING\x10\x0e\x12\x14\n\x10REFUND_FAILED_DA\x10\x0f\x12\x0f\n\x0b\x45XPIRED_TXN\x10\x10\x12\x11\n\rAUTH_CANCELED\x10\x11\x12!\n\x1d\x41UTH_CANCEL_FAILED_PROCESSING\x10\x12\x12\x16\n\x12\x41UTH_CANCEL_FAILED\x10\x13\x12\x10\n\x0c\x43OLLECT_INIT\x10\x14\x12\x13\n\x0f\x43OLLECT_SUCCESS\x10\x15\x12\x12\n\x0e\x43OLLECT_FAILED\x10\x16\x12\x17\n\x13\x43OLLECT_FAILED_RISK\x10\x17\x12\x14\n\x10\x43OLLECT_REJECTED\x10\x18\x12\x13\n\x0f\x43OLLECT_EXPIRED\x10\x19\x12\x14\n\x10\x43OLLECT_CANCELED\x10\x1a\x12\x16\n\x12\x43OLLECT_CANCELLING\x10\x1b\x12\r\n\tIN_REVIEW\x10\x1c\x12\x14\n\x10REVERSAL_SUCCESS\x10\x1d\x12\x14\n\x10REVERSAL_PENDING\x10\x1e\x12\x12\n\x0eREFUND_PENDING\x10\x1f\"8\n\x17PhoneNumberToLIDMapping\x12\r\n\x05pnJid\x18\x01 \x01(\t\x12\x0e\n\x06lidJid\x18\x02 \x01(\t\"E\n\x0bPhotoChange\x12\x10\n\x08oldPhoto\x18\x01 \x01(\x0c\x12\x10\n\x08newPhoto\x18\x02 \x01(\x0c\x12\x12\n\nnewPhotoId\x18\x03 \x01(\r\"\x8e\x02\n\tPinInChat\x12&\n\x04type\x18\x01 \x01(\x0e\x32\x18.whatsapp.PinInChat.Type\x12!\n\x03key\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x19\n\x11senderTimestampMs\x18\x03 \x01(\x03\x12\x19\n\x11serverTimestampMs\x18\x04 \x01(\x03\x12\x42\n\x17messageAddOnContextInfo\x18\x05 \x01(\x0b\x32!.whatsapp.MessageAddOnContextInfo\"<\n\x04Type\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x0f\n\x0bPIN_FOR_ALL\x10\x01\x12\x11\n\rUNPIN_FOR_ALL\x10\x02\"G\n\x05Point\x12\x13\n\x0bxDeprecated\x18\x01 \x01(\x05\x12\x13\n\x0byDeprecated\x18\x02 \x01(\x05\x12\t\n\x01x\x18\x03 \x01(\x01\x12\t\n\x01y\x18\x04 \x01(\x01\"\xd1\x01\n\x16PollAdditionalMetadata\x12\x17\n\x0fpollInvalidated\x18\x01 \x01(\x08\x12V\n\x13pollNameHashHistory\x18\x02 \x03(\x0b\x32\x39.whatsapp.PollAdditionalMetadata.PollNameHashHistoryEntry\x1a\x46\n\x18PollNameHashHistoryEntry\x12\x14\n\x0c\x65\x64itStanzaId\x18\x01 \x01(\t\x12\x14\n\x0cpollNameHash\x18\x02 \x01(\x0c\"1\n\x0cPollEncValue\x12\x12\n\nencPayload\x18\x01 \x01(\x0c\x12\r\n\x05\x65ncIv\x18\x02 \x01(\x0c\"\xf6\x01\n\nPollUpdate\x12\x32\n\x14pollUpdateMessageKey\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12/\n\x04vote\x18\x02 \x01(\x0b\x32!.whatsapp.Message.PollVoteMessage\x12\x19\n\x11senderTimestampMs\x18\x03 \x01(\x03\x12\x19\n\x11serverTimestampMs\x18\x04 \x01(\x03\x12\x0e\n\x06unread\x18\x05 \x01(\x08\x12=\n\x08metadata\x18\x06 \x01(\x0b\x32+.whatsapp.Message.PollUpdateMessageMetadata\"J\n\x15PreKeyRecordStructure\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x12\n\nprivateKey\x18\x03 \x01(\x0c\"\xbe\x01\n\x13PreKeySignalMessage\x12\x16\n\x0eregistrationId\x18\x05 \x01(\r\x12\x10\n\x08preKeyId\x18\x01 \x01(\r\x12\x16\n\x0esignedPreKeyId\x18\x06 \x01(\r\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\x12\x13\n\x0bidentityKey\x18\x03 \x01(\x0c\x12\x0f\n\x07message\x18\x04 \x01(\x0c\x12\x15\n\rkyberPreKeyId\x18\x07 \x01(\r\x12\x17\n\x0fkyberCiphertext\x18\x08 \x01(\x0c\".\n\x12PremiumMessageInfo\x12\x18\n\x10serverCampaignId\x18\x01 \x01(\t\"<\n\x18PrimaryEphemeralIdentity\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\r\n\x05nonce\x18\x02 \x01(\x0c\"\x85\x02\n\x0eProcessedVideo\x12\x12\n\ndirectPath\x18\x01 \x01(\t\x12\x12\n\nfileSha256\x18\x02 \x01(\x0c\x12\x0e\n\x06height\x18\x03 \x01(\r\x12\r\n\x05width\x18\x04 \x01(\r\x12\x12\n\nfileLength\x18\x05 \x01(\x04\x12\x0f\n\x07\x62itrate\x18\x06 \x01(\r\x12\x36\n\x07quality\x18\x07 \x01(\x0e\x32%.whatsapp.ProcessedVideo.VideoQuality\x12\x14\n\x0c\x63\x61pabilities\x18\x08 \x03(\t\"9\n\x0cVideoQuality\x12\r\n\tUNDEFINED\x10\x00\x12\x07\n\x03LOW\x10\x01\x12\x07\n\x03MID\x10\x02\x12\x08\n\x04HIGH\x10\x03\"h\n\x0fProloguePayload\x12\"\n\x1a\x63ompanionEphemeralIdentity\x18\x01 \x01(\x0c\x12\x31\n\ncommitment\x18\x02 \x01(\x0b\x32\x1d.whatsapp.CompanionCommitment\"(\n\x08Pushname\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08pushname\x18\x02 \x01(\t\"\xbc\x04\n\x02QP\x1a\xcf\x01\n\x06\x46ilter\x12\x12\n\nfilterName\x18\x01 \x02(\t\x12\x31\n\nparameters\x18\x02 \x03(\x0b\x32\x1d.whatsapp.QP.FilterParameters\x12/\n\x0c\x66ilterResult\x18\x03 \x01(\x0e\x32\x19.whatsapp.QP.FilterResult\x12M\n\x18\x63lientNotSupportedConfig\x18\x04 \x02(\x0e\x32+.whatsapp.QP.FilterClientNotSupportedConfig\x1a\x8d\x01\n\x0c\x46ilterClause\x12+\n\nclauseType\x18\x01 \x02(\x0e\x32\x17.whatsapp.QP.ClauseType\x12*\n\x07\x63lauses\x18\x02 \x03(\x0b\x32\x19.whatsapp.QP.FilterClause\x12$\n\x07\x66ilters\x18\x03 \x03(\x0b\x32\x13.whatsapp.QP.Filter\x1a.\n\x10\x46ilterParameters\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"&\n\nClauseType\x12\x07\n\x03\x41ND\x10\x01\x12\x06\n\x02OR\x10\x02\x12\x07\n\x03NOR\x10\x03\"J\n\x1e\x46ilterClientNotSupportedConfig\x12\x13\n\x0fPASS_BY_DEFAULT\x10\x01\x12\x13\n\x0f\x46\x41IL_BY_DEFAULT\x10\x02\"0\n\x0c\x46ilterResult\x12\x08\n\x04TRUE\x10\x01\x12\t\n\x05\x46\x41LSE\x10\x02\x12\x0b\n\x07UNKNOWN\x10\x03\"A\n\x12QuarantinedMessage\x12\x14\n\x0coriginalData\x18\x01 \x01(\x0c\x12\x15\n\rextractedText\x18\x02 \x01(\t\"{\n\x08Reaction\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x13\n\x0bgroupingKey\x18\x03 \x01(\t\x12\x19\n\x11senderTimestampMs\x18\x04 \x01(\x03\x12\x0e\n\x06unread\x18\x05 \x01(\x08\"2\n\x11RecentEmojiWeight\x12\r\n\x05\x65moji\x18\x01 \x01(\t\x12\x0e\n\x06weight\x18\x02 \x01(\x02\"{\n\x0fRecordStructure\x12\x32\n\x0e\x63urrentSession\x18\x01 \x01(\x0b\x32\x1a.whatsapp.SessionStructure\x12\x34\n\x10previousSessions\x18\x02 \x03(\x0b\x32\x1a.whatsapp.SessionStructure\"g\n\nReportable\x12\x15\n\nminVersion\x18\x01 \x01(\r:\x01\x31\x12\x12\n\nmaxVersion\x18\x02 \x01(\r\x12\x1f\n\x17notReportableMinVersion\x18\x03 \x01(\r\x12\r\n\x05never\x18\x04 \x01(\x08\"I\n\x12ReportingTokenInfo\x12\x14\n\x0creportingTag\x18\x01 \x01(\x0c\x12\x1d\n\x15reportingTagTimestamp\x18\x02 \x01(\x04\"\xb8\x01\n\x10RotateEpochInput\x12\x1b\n\x13\x63urrentEpochRootKey\x18\x01 \x02(\x0c\x12\x1a\n\x12\x63urrentEpochAnonId\x18\x02 \x02(\x0c\x12\x18\n\x10\x63urrentEpochFbid\x18\x03 \x02(\x04\x12\x1e\n\x16\x65pochStoragePrivateKey\x18\x04 \x02(\x0c\x12\x31\n\x07members\x18\x05 \x03(\x0b\x32 .whatsapp.RotateEpochMemberInput\"]\n\x15RotateEpochMemberEdge\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\x04\x12\x19\n\x11\x65ncryptedEpochKey\x18\x02 \x01(\x0c\x12\x17\n\x0f\x64\x65viceEpochHmac\x18\x03 \x01(\x0c\"b\n\x16RotateEpochMemberInput\x12\x10\n\x08\x64\x65viceId\x18\x01 \x02(\x04\x12\x1d\n\x15\x65pochStoragePublicKey\x18\x02 \x02(\x0c\x12\x17\n\x0f\x64\x65vicePublicKey\x18\x03 \x02(\x0c\"\x83\x02\n\x11RotateEpochOutput\x12\x17\n\x0fnewEpochRootKey\x18\x01 \x01(\x0c\x12\x16\n\x0enewEpochAnonId\x18\x02 \x01(\x04\x12\x14\n\x0cnewEpochFbid\x18\x08 \x01(\x04\x12\x13\n\x0b\x65pochAnonId\x18\x03 \x01(\x0c\x12,\n\x0c\x62\x61\x63kwardEdge\x18\x04 \x01(\x0b\x32\x16.whatsapp.BackwardEdge\x12\x34\n\x0bmemberEdges\x18\x05 \x03(\x0b\x32\x1f.whatsapp.RotateEpochMemberEdge\x12\x1f\n\x17\x65pochRootKeyFingerprint\x18\x06 \x01(\x0c\x12\r\n\x05\x65rror\x18\x07 \x01(\t\"\x89\x01\n\x0bRoutingInfo\x12\x10\n\x08regionId\x18\x01 \x03(\x05\x12\x11\n\tclusterId\x18\x02 \x03(\x05\x12\x12\n\x06taskId\x18\x03 \x01(\x05:\x02-1\x12\x14\n\x05\x64\x65\x62ug\x18\x04 \x01(\x08:\x05\x66\x61lse\x12\x15\n\x06tcpBbr\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x14\n\x0ctcpKeepalive\x18\x06 \x01(\x08\"Y\n\x18ScheduledMessageMetadata\x12\x13\n\x0brevealKeyId\x18\x01 \x01(\t\x12\x11\n\trevealKey\x18\x02 \x01(\x0c\x12\x15\n\rscheduledTime\x18\x03 \x01(\x04\"c\n\x1cSenderKeyDistributionMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\titeration\x18\x02 \x01(\r\x12\x10\n\x08\x63hainKey\x18\x03 \x01(\x0c\x12\x12\n\nsigningKey\x18\x04 \x01(\x0c\"E\n\x10SenderKeyMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\titeration\x18\x02 \x01(\r\x12\x12\n\nciphertext\x18\x03 \x01(\x0c\"V\n\x18SenderKeyRecordStructure\x12:\n\x0fsenderKeyStates\x18\x01 \x03(\x0b\x32!.whatsapp.SenderKeyStateStructure\"\xb2\x03\n\x17SenderKeyStateStructure\x12\x13\n\x0bsenderKeyId\x18\x01 \x01(\r\x12H\n\x0esenderChainKey\x18\x02 \x01(\x0b\x32\x30.whatsapp.SenderKeyStateStructure.SenderChainKey\x12L\n\x10senderSigningKey\x18\x03 \x01(\x0b\x32\x32.whatsapp.SenderKeyStateStructure.SenderSigningKey\x12M\n\x11senderMessageKeys\x18\x04 \x03(\x0b\x32\x32.whatsapp.SenderKeyStateStructure.SenderMessageKey\x1a\x31\n\x0eSenderChainKey\x12\x11\n\titeration\x18\x01 \x01(\r\x12\x0c\n\x04seed\x18\x02 \x01(\x0c\x1a\x33\n\x10SenderMessageKey\x12\x11\n\titeration\x18\x01 \x01(\r\x12\x0c\n\x04seed\x18\x02 \x01(\x0c\x1a\x33\n\x10SenderSigningKey\x12\x0e\n\x06public\x18\x01 \x01(\x0c\x12\x0f\n\x07private\x18\x02 \x01(\x0c\"&\n\x12ServerErrorReceipt\x12\x10\n\x08stanzaId\x18\x01 \x01(\t\"\xf7\x08\n\x10SessionStructure\x12\x16\n\x0esessionVersion\x18\x01 \x01(\r\x12\x1b\n\x13localIdentityPublic\x18\x02 \x01(\x0c\x12\x1c\n\x14remoteIdentityPublic\x18\x03 \x01(\x0c\x12\x0f\n\x07rootKey\x18\x04 \x01(\x0c\x12\x17\n\x0fpreviousCounter\x18\x05 \x01(\r\x12\x35\n\x0bsenderChain\x18\x06 \x01(\x0b\x32 .whatsapp.SessionStructure.Chain\x12\x38\n\x0ereceiverChains\x18\x07 \x03(\x0b\x32 .whatsapp.SessionStructure.Chain\x12I\n\x12pendingKeyExchange\x18\x08 \x01(\x0b\x32-.whatsapp.SessionStructure.PendingKeyExchange\x12?\n\rpendingPreKey\x18\t \x01(\x0b\x32(.whatsapp.SessionStructure.PendingPreKey\x12\x1c\n\x14remoteRegistrationId\x18\n \x01(\r\x12\x1b\n\x13localRegistrationId\x18\x0b \x01(\r\x12\x14\n\x0cneedsRefresh\x18\x0c \x01(\x08\x12\x14\n\x0c\x61liceBaseKey\x18\r \x01(\x0c\x1a\xb5\x02\n\x05\x43hain\x12\x18\n\x10senderRatchetKey\x18\x01 \x01(\x0c\x12\x1f\n\x17senderRatchetKeyPrivate\x18\x02 \x01(\x0c\x12;\n\x08\x63hainKey\x18\x03 \x01(\x0b\x32).whatsapp.SessionStructure.Chain.ChainKey\x12@\n\x0bmessageKeys\x18\x04 \x03(\x0b\x32+.whatsapp.SessionStructure.Chain.MessageKey\x1a&\n\x08\x43hainKey\x12\r\n\x05index\x18\x01 \x01(\r\x12\x0b\n\x03key\x18\x02 \x01(\x0c\x1aJ\n\nMessageKey\x12\r\n\x05index\x18\x01 \x01(\r\x12\x11\n\tcipherKey\x18\x02 \x01(\x0c\x12\x0e\n\x06macKey\x18\x03 \x01(\x0c\x12\n\n\x02iv\x18\x04 \x01(\x0c\x1a\xcd\x01\n\x12PendingKeyExchange\x12\x10\n\x08sequence\x18\x01 \x01(\r\x12\x14\n\x0clocalBaseKey\x18\x02 \x01(\x0c\x12\x1b\n\x13localBaseKeyPrivate\x18\x03 \x01(\x0c\x12\x17\n\x0flocalRatchetKey\x18\x04 \x01(\x0c\x12\x1e\n\x16localRatchetKeyPrivate\x18\x05 \x01(\x0c\x12\x18\n\x10localIdentityKey\x18\x07 \x01(\x0c\x12\x1f\n\x17localIdentityKeyPrivate\x18\x08 \x01(\x0c\x1az\n\rPendingPreKey\x12\x10\n\x08preKeyId\x18\x01 \x01(\r\x12\x16\n\x0esignedPreKeyId\x18\x03 \x01(\x05\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\x12\x15\n\rkyberPreKeyId\x18\x04 \x01(\r\x12\x17\n\x0fkyberCiphertext\x18\x05 \x01(\x0c\"\x88\x01\n\x1bSessionTransparencyMetadata\x12\x16\n\x0e\x64isclaimerText\x18\x01 \x01(\t\x12\r\n\x05hcaId\x18\x02 \x01(\t\x12\x42\n\x17sessionTransparencyType\x18\x03 \x01(\x0e\x32!.whatsapp.SessionTransparencyType\"a\n\rSignalMessage\x12\x12\n\nratchetKey\x18\x01 \x01(\x0c\x12\x0f\n\x07\x63ounter\x18\x02 \x01(\r\x12\x17\n\x0fpreviousCounter\x18\x03 \x01(\r\x12\x12\n\nciphertext\x18\x04 \x01(\x0c\"\xa4\x01\n SignedMmkDistributionFromMailbox\x12\x32\n\x0fmmkDistribution\x18\x01 \x02(\x0b\x32\x19.whatsapp.MmkDistribution\x12\x11\n\tsignature\x18\x02 \x02(\x0c\x12\x39\n\x0b\x66romMailbox\x18\x03 \x02(\x0b\x32$.whatsapp.MessagingMailboxPublicData\"v\n\x1bSignedPreKeyRecordStructure\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x12\n\nprivateKey\x18\x03 \x01(\x0c\x12\x11\n\tsignature\x18\x04 \x01(\x0c\x12\x11\n\ttimestamp\x18\x05 \x01(\x06\"\xa0\x0f\n\x11StatusAttribution\x12.\n\x04type\x18\x01 \x01(\x0e\x32 .whatsapp.StatusAttribution.Type\x12\x11\n\tactionUrl\x18\x02 \x01(\t\x12\x42\n\rstatusReshare\x18\x03 \x01(\x0b\x32).whatsapp.StatusAttribution.StatusReshareH\x00\x12\x42\n\rexternalShare\x18\x04 \x01(\x0b\x32).whatsapp.StatusAttribution.ExternalShareH\x00\x12\x32\n\x05music\x18\x05 \x01(\x0b\x32!.whatsapp.StatusAttribution.MusicH\x00\x12>\n\x0bgroupStatus\x18\x06 \x01(\x0b\x32\'.whatsapp.StatusAttribution.GroupStatusH\x00\x12\x42\n\rrlAttribution\x18\x07 \x01(\x0b\x32).whatsapp.StatusAttribution.RLAttributionH\x00\x12P\n\x14\x61iCreatedAttribution\x18\x08 \x01(\x0b\x32\x30.whatsapp.StatusAttribution.AiCreatedAttributionH\x00\x1a\x8a\x01\n\x14\x41iCreatedAttribution\x12G\n\x06source\x18\x01 \x01(\x0e\x32\x37.whatsapp.StatusAttribution.AiCreatedAttribution.Source\")\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0eSTATUS_MIMICRY\x10\x01\x1a\xe7\x02\n\rExternalShare\x12\x11\n\tactionUrl\x18\x01 \x01(\t\x12@\n\x06source\x18\x02 \x01(\x0e\x32\x30.whatsapp.StatusAttribution.ExternalShare.Source\x12\x10\n\x08\x64uration\x18\x03 \x01(\x05\x12\x19\n\x11\x61\x63tionFallbackUrl\x18\x04 \x01(\t\"\xd3\x01\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\r\n\tINSTAGRAM\x10\x01\x12\x0c\n\x08\x46\x41\x43\x45\x42OOK\x10\x02\x12\r\n\tMESSENGER\x10\x03\x12\x0b\n\x07SPOTIFY\x10\x04\x12\x0b\n\x07YOUTUBE\x10\x05\x12\r\n\tPINTEREST\x10\x06\x12\x0b\n\x07THREADS\x10\x07\x12\x0f\n\x0b\x41PPLE_MUSIC\x10\x08\x12\r\n\tSHARECHAT\x10\t\x12\x11\n\rGOOGLE_PHOTOS\x10\n\x12\x0e\n\nSOUNDCLOUD\x10\x0b\x12\n\n\x06SHAZAM\x10\x0c\x12\x0b\n\x07PICSART\x10\r\x1a \n\x0bGroupStatus\x12\x11\n\tauthorJid\x18\x01 \x01(\t\x1ay\n\x05Music\x12\x12\n\nauthorName\x18\x01 \x01(\t\x12\x0e\n\x06songId\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x0e\n\x06\x61uthor\x18\x04 \x01(\t\x12\x19\n\x11\x61rtistAttribution\x18\x05 \x01(\t\x12\x12\n\nisExplicit\x18\x06 \x01(\x08\x1a\xb2\x01\n\rRLAttribution\x12@\n\x06source\x18\x01 \x01(\x0e\x32\x30.whatsapp.StatusAttribution.RLAttribution.Source\"_\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x18\n\x14RAY_BAN_META_GLASSES\x10\x01\x12\x17\n\x13OAKLEY_META_GLASSES\x10\x02\x12\x15\n\x11HYPERNOVA_GLASSES\x10\x03\x1a\xe4\x02\n\rStatusReshare\x12@\n\x06source\x18\x01 \x01(\x0e\x32\x30.whatsapp.StatusAttribution.StatusReshare.Source\x12\x44\n\x08metadata\x18\x02 \x01(\x0b\x32\x32.whatsapp.StatusAttribution.StatusReshare.Metadata\x1ag\n\x08Metadata\x12\x10\n\x08\x64uration\x18\x01 \x01(\x05\x12\x12\n\nchannelJid\x18\x02 \x01(\t\x12\x18\n\x10\x63hannelMessageId\x18\x03 \x01(\x05\x12\x1b\n\x13hasMultipleReshares\x18\x04 \x01(\x08\"b\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x14\n\x10INTERNAL_RESHARE\x10\x01\x12\x13\n\x0fMENTION_RESHARE\x10\x02\x12\x13\n\x0f\x43HANNEL_RESHARE\x10\x03\x12\x0b\n\x07\x46ORWARD\x10\x04\"\xf2\x01\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07RESHARE\x10\x01\x12\x12\n\x0e\x45XTERNAL_SHARE\x10\x02\x12\t\n\x05MUSIC\x10\x03\x12\x12\n\x0eSTATUS_MENTION\x10\x04\x12\x10\n\x0cGROUP_STATUS\x10\x05\x12\x12\n\x0eRL_ATTRIBUTION\x10\x06\x12\x0e\n\nAI_CREATED\x10\x07\x12\x0b\n\x07LAYOUTS\x10\x08\x12\x15\n\x11NEWSLETTER_STATUS\x10\t\x12\x18\n\x14STATUS_CLOSE_SHARING\x10\n\x12\x14\n\x10PAID_PARTNERSHIP\x10\x0b\x12\x13\n\x0fUSERNAME_STATUS\x10\x0c\x42\x11\n\x0f\x61ttributionData\"?\n\x14StatusMentionMessage\x12\'\n\x0cquotedStatus\x18\x01 \x01(\x0b\x32\x11.whatsapp.Message\"D\n\tStatusPSA\x12\x12\n\ncampaignId\x18, \x02(\x04\x12#\n\x1b\x63\x61mpaignExpirationTimestamp\x18- \x01(\x04\"\x9d\x02\n\x0fStickerMetadata\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\nfileSha256\x18\x02 \x01(\x0c\x12\x15\n\rfileEncSha256\x18\x03 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x04 \x01(\x0c\x12\x10\n\x08mimetype\x18\x05 \x01(\t\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\r\n\x05width\x18\x07 \x01(\r\x12\x12\n\ndirectPath\x18\x08 \x01(\t\x12\x12\n\nfileLength\x18\t \x01(\x04\x12\x0e\n\x06weight\x18\n \x01(\x02\x12\x19\n\x11lastStickerSentTs\x18\x0b \x01(\x03\x12\x10\n\x08isLottie\x18\x0c \x01(\x08\x12\x11\n\timageHash\x18\r \x01(\t\x12\x17\n\x0fisAvatarSticker\x18\x0e \x01(\x08\"/\n\x0bSubProtocol\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\x0f\n\x07version\x18\x02 \x01(\x05\"k\n\x0eSyncActionData\x12\r\n\x05index\x18\x01 \x01(\x0c\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.whatsapp.SyncActionValue\x12\x0f\n\x07padding\x18\x03 \x01(\x0c\x12\x0f\n\x07version\x18\x04 \x01(\x05\"\xbe\x97\x01\n\x0fSyncActionValue\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\x12\x38\n\nstarAction\x18\x02 \x01(\x0b\x32$.whatsapp.SyncActionValue.StarAction\x12>\n\rcontactAction\x18\x03 \x01(\x0b\x32\'.whatsapp.SyncActionValue.ContactAction\x12\x38\n\nmuteAction\x18\x04 \x01(\x0b\x32$.whatsapp.SyncActionValue.MuteAction\x12\x36\n\tpinAction\x18\x05 \x01(\x0b\x32#.whatsapp.SyncActionValue.PinAction\x12\x42\n\x0fpushNameSetting\x18\x07 \x01(\x0b\x32).whatsapp.SyncActionValue.PushNameSetting\x12\x44\n\x10quickReplyAction\x18\x08 \x01(\x0b\x32*.whatsapp.SyncActionValue.QuickReplyAction\x12T\n\x18recentEmojiWeightsAction\x18\x0b \x01(\x0b\x32\x32.whatsapp.SyncActionValue.RecentEmojiWeightsAction\x12\x42\n\x0flabelEditAction\x18\x0e \x01(\x0b\x32).whatsapp.SyncActionValue.LabelEditAction\x12P\n\x16labelAssociationAction\x18\x0f \x01(\x0b\x32\x30.whatsapp.SyncActionValue.LabelAssociationAction\x12>\n\rlocaleSetting\x18\x10 \x01(\x0b\x32\'.whatsapp.SyncActionValue.LocaleSetting\x12\x46\n\x11\x61rchiveChatAction\x18\x11 \x01(\x0b\x32+.whatsapp.SyncActionValue.ArchiveChatAction\x12T\n\x18\x64\x65leteMessageForMeAction\x18\x12 \x01(\x0b\x32\x32.whatsapp.SyncActionValue.DeleteMessageForMeAction\x12>\n\rkeyExpiration\x18\x13 \x01(\x0b\x32\'.whatsapp.SyncActionValue.KeyExpiration\x12L\n\x14markChatAsReadAction\x18\x14 \x01(\x0b\x32..whatsapp.SyncActionValue.MarkChatAsReadAction\x12\x42\n\x0f\x63learChatAction\x18\x15 \x01(\x0b\x32).whatsapp.SyncActionValue.ClearChatAction\x12\x44\n\x10\x64\x65leteChatAction\x18\x16 \x01(\x0b\x32*.whatsapp.SyncActionValue.DeleteChatAction\x12N\n\x15unarchiveChatsSetting\x18\x17 \x01(\x0b\x32/.whatsapp.SyncActionValue.UnarchiveChatsSetting\x12@\n\x0eprimaryFeature\x18\x18 \x01(\x0b\x32(.whatsapp.SyncActionValue.PrimaryFeature\x12V\n\x19\x61ndroidUnsupportedActions\x18\x1a \x01(\x0b\x32\x33.whatsapp.SyncActionValue.AndroidUnsupportedActions\x12:\n\x0b\x61gentAction\x18\x1b \x01(\x0b\x32%.whatsapp.SyncActionValue.AgentAction\x12H\n\x12subscriptionAction\x18\x1c \x01(\x0b\x32,.whatsapp.SyncActionValue.SubscriptionAction\x12L\n\x14userStatusMuteAction\x18\x1d \x01(\x0b\x32..whatsapp.SyncActionValue.UserStatusMuteAction\x12\x44\n\x10timeFormatAction\x18\x1e \x01(\x0b\x32*.whatsapp.SyncActionValue.TimeFormatAction\x12\x36\n\tnuxAction\x18\x1f \x01(\x0b\x32#.whatsapp.SyncActionValue.NuxAction\x12L\n\x14primaryVersionAction\x18 \x01(\x0b\x32..whatsapp.SyncActionValue.PrimaryVersionAction\x12>\n\rstickerAction\x18! \x01(\x0b\x32\'.whatsapp.SyncActionValue.StickerAction\x12V\n\x19removeRecentStickerAction\x18\" \x01(\x0b\x32\x33.whatsapp.SyncActionValue.RemoveRecentStickerAction\x12\x46\n\x0e\x63hatAssignment\x18# \x01(\x0b\x32..whatsapp.SyncActionValue.ChatAssignmentAction\x12^\n\x1a\x63hatAssignmentOpenedStatus\x18$ \x01(\x0b\x32:.whatsapp.SyncActionValue.ChatAssignmentOpenedStatusAction\x12H\n\x12pnForLidChatAction\x18% \x01(\x0b\x32,.whatsapp.SyncActionValue.PnForLidChatAction\x12P\n\x16marketingMessageAction\x18& \x01(\x0b\x32\x30.whatsapp.SyncActionValue.MarketingMessageAction\x12\x62\n\x1fmarketingMessageBroadcastAction\x18\' \x01(\x0b\x32\x39.whatsapp.SyncActionValue.MarketingMessageBroadcastAction\x12N\n\x15\x65xternalWebBetaAction\x18( \x01(\x0b\x32/.whatsapp.SyncActionValue.ExternalWebBetaAction\x12Z\n\x1bprivacySettingRelayAllCalls\x18) \x01(\x0b\x32\x35.whatsapp.SyncActionValue.PrivacySettingRelayAllCalls\x12>\n\rcallLogAction\x18* \x01(\x0b\x32\'.whatsapp.SyncActionValue.CallLogAction\x12\x30\n\x06ugcBot\x18+ \x01(\x0b\x32 .whatsapp.SyncActionValue.UGCBot\x12\x44\n\rstatusPrivacy\x18, \x01(\x0b\x32-.whatsapp.SyncActionValue.StatusPrivacyAction\x12R\n\x17\x62otWelcomeRequestAction\x18- \x01(\x0b\x32\x31.whatsapp.SyncActionValue.BotWelcomeRequestAction\x12X\n\x17\x64\x65leteIndividualCallLog\x18. \x01(\x0b\x32\x37.whatsapp.SyncActionValue.DeleteIndividualCallLogAction\x12N\n\x15labelReorderingAction\x18/ \x01(\x0b\x32/.whatsapp.SyncActionValue.LabelReorderingAction\x12\x46\n\x11paymentInfoAction\x18\x30 \x01(\x0b\x32+.whatsapp.SyncActionValue.PaymentInfoAction\x12X\n\x1a\x63ustomPaymentMethodsAction\x18\x31 \x01(\x0b\x32\x34.whatsapp.SyncActionValue.CustomPaymentMethodsAction\x12@\n\x0elockChatAction\x18\x32 \x01(\x0b\x32(.whatsapp.SyncActionValue.LockChatAction\x12\x34\n\x10\x63hatLockSettings\x18\x33 \x01(\x0b\x32\x1a.whatsapp.ChatLockSettings\x12T\n\x18wamoUserIdentifierAction\x18\x34 \x01(\x0b\x32\x32.whatsapp.SyncActionValue.WamoUserIdentifierAction\x12r\n\'privacySettingDisableLinkPreviewsAction\x18\x35 \x01(\x0b\x32\x41.whatsapp.SyncActionValue.PrivacySettingDisableLinkPreviewsAction\x12\x38\n\x12\x64\x65viceCapabilities\x18\x36 \x01(\x0b\x32\x1c.whatsapp.DeviceCapabilities\x12@\n\x0enoteEditAction\x18\x37 \x01(\x0b\x32(.whatsapp.SyncActionValue.NoteEditAction\x12\x42\n\x0f\x66\x61voritesAction\x18\x38 \x01(\x0b\x32).whatsapp.SyncActionValue.FavoritesAction\x12\\\n\x1cmerchantPaymentPartnerAction\x18\x39 \x01(\x0b\x32\x36.whatsapp.SyncActionValue.MerchantPaymentPartnerAction\x12\\\n\x1cwaffleAccountLinkStateAction\x18: \x01(\x0b\x32\x36.whatsapp.SyncActionValue.WaffleAccountLinkStateAction\x12T\n\x15usernameChatStartMode\x18; \x01(\x0b\x32\x35.whatsapp.SyncActionValue.UsernameChatStartModeAction\x12\x66\n!notificationActivitySettingAction\x18< \x01(\x0b\x32;.whatsapp.SyncActionValue.NotificationActivitySettingAction\x12\x44\n\x10lidContactAction\x18= \x01(\x0b\x32*.whatsapp.SyncActionValue.LidContactAction\x12\x64\n ctwaPerCustomerDataSharingAction\x18> \x01(\x0b\x32:.whatsapp.SyncActionValue.CtwaPerCustomerDataSharingAction\x12\x44\n\x10paymentTosAction\x18? \x01(\x0b\x32*.whatsapp.SyncActionValue.PaymentTosAction\x12\x90\x01\n6privacySettingChannelsPersonalisedRecommendationAction\x18@ \x01(\x0b\x32P.whatsapp.SyncActionValue.PrivacySettingChannelsPersonalisedRecommendationAction\x12\\\n\x1c\x64\x65tectedOutcomesStatusAction\x18\x42 \x01(\x0b\x32\x36.whatsapp.SyncActionValue.DetectedOutcomesStatusAction\x12\\\n\x1cmaibaAiFeaturesControlAction\x18\x44 \x01(\x0b\x32\x36.whatsapp.SyncActionValue.MaibaAIFeaturesControlAction\x12Z\n\x1b\x62usinessBroadcastListAction\x18\x45 \x01(\x0b\x32\x35.whatsapp.SyncActionValue.BusinessBroadcastListAction\x12\x46\n\x11musicUserIdAction\x18\x46 \x01(\x0b\x32+.whatsapp.SyncActionValue.MusicUserIdAction\x12|\n,statusPostOptInNotificationPreferencesAction\x18G \x01(\x0b\x32\x46.whatsapp.SyncActionValue.StatusPostOptInNotificationPreferencesAction\x12J\n\x13\x61vatarUpdatedAction\x18H \x01(\x0b\x32-.whatsapp.SyncActionValue.AvatarUpdatedAction\x12`\n\x1eprivateProcessingSettingAction\x18J \x01(\x0b\x32\x38.whatsapp.SyncActionValue.PrivateProcessingSettingAction\x12`\n\x1enewsletterSavedInterestsAction\x18K \x01(\x0b\x32\x38.whatsapp.SyncActionValue.NewsletterSavedInterestsAction\x12L\n\x14\x61iThreadRenameAction\x18L \x01(\x0b\x32..whatsapp.SyncActionValue.AiThreadRenameAction\x12T\n\x18interactiveMessageAction\x18M \x01(\x0b\x32\x32.whatsapp.SyncActionValue.InteractiveMessageAction\x12H\n\x12settingsSyncAction\x18N \x01(\x0b\x32,.whatsapp.SyncActionValue.SettingsSyncAction\x12\x44\n\x10outContactAction\x18O \x01(\x0b\x32*.whatsapp.SyncActionValue.OutContactAction\x12\x46\n\x11nctSaltSyncAction\x18P \x01(\x0b\x32+.whatsapp.SyncActionValue.NctSaltSyncAction\x12\x62\n\x1f\x62usinessBroadcastCampaignAction\x18Q \x01(\x0b\x32\x39.whatsapp.SyncActionValue.BusinessBroadcastCampaignAction\x12\x62\n\x1f\x62usinessBroadcastInsightsAction\x18R \x01(\x0b\x32\x39.whatsapp.SyncActionValue.BusinessBroadcastInsightsAction\x12H\n\x12\x63ustomerDataAction\x18S \x01(\x0b\x32,.whatsapp.SyncActionValue.CustomerDataAction\x12V\n\x19subscriptionsSyncV2Action\x18T \x01(\x0b\x32\x33.whatsapp.SyncActionValue.SubscriptionsSyncV2Action\x12\x42\n\x0fthreadPinAction\x18U \x01(\x0b\x32).whatsapp.SyncActionValue.ThreadPinAction\x12\x62\n\x1f\x61utoOrganizeBusinessChatSetting\x18V \x01(\x0b\x32\x39.whatsapp.SyncActionValue.AutoOrganizeBusinessChatSetting\x12T\n\x18\x62izAiSettingsNudgeAction\x18W \x01(\x0b\x32\x32.whatsapp.SyncActionValue.BizAISettingsNudgeAction\x12J\n\x13\x63oexV2VersionAction\x18X \x01(\x0b\x32-.whatsapp.SyncActionValue.CoexV2VersionAction\x12L\n\x14wasaRootSecretAction\x18Y \x01(\x0b\x32..whatsapp.SyncActionValue.WASARootSecretAction\x12R\n\x17\x62ubbleLockMessageAction\x18Z \x01(\x0b\x32\x31.whatsapp.SyncActionValue.BubbleLockMessageAction\x12H\n\x12labelSublistAction\x18[ \x01(\x0b\x32,.whatsapp.SyncActionValue.LabelSublistAction\x12:\n\x14\x64\x65viceCapabilitiesV2\x18\\ \x01(\x0b\x32\x1c.whatsapp.DeviceCapabilities\x12V\n\x19\x63twaMessageReceivedAction\x18] \x01(\x0b\x32\x33.whatsapp.SyncActionValue.CtwaMessageReceivedAction\x1a@\n\x0b\x41gentAction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08\x64\x65viceId\x18\x02 \x01(\x05\x12\x11\n\tisDeleted\x18\x03 \x01(\x08\x1a(\n\x14\x41iThreadRenameAction\x12\x10\n\x08newTitle\x18\x01 \x01(\t\x1a,\n\x19\x41ndroidUnsupportedActions\x12\x0f\n\x07\x61llowed\x18\x01 \x01(\x08\x1am\n\x11\x41rchiveChatAction\x12\x10\n\x08\x61rchived\x18\x01 \x01(\x08\x12\x46\n\x0cmessageRange\x18\x02 \x01(\x0b\x32\x30.whatsapp.SyncActionValue.SyncActionMessageRange\x1a\x37\n\x1f\x41utoOrganizeBusinessChatSetting\x12\x14\n\x0c\x61utoOrganize\x18\x01 \x01(\x08\x1a\xe8\x01\n\x13\x41vatarUpdatedAction\x12P\n\teventType\x18\x01 \x01(\x0e\x32=.whatsapp.SyncActionValue.AvatarUpdatedAction.AvatarEventType\x12\x45\n\x14recentAvatarStickers\x18\x02 \x03(\x0b\x32\'.whatsapp.SyncActionValue.StickerAction\"8\n\x0f\x41vatarEventType\x12\x0b\n\x07UPDATED\x10\x00\x12\x0b\n\x07\x43REATED\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\x1a\xbc\x02\n\x18\x42izAISettingsNudgeAction\x12Z\n\x08\x63\x61tegory\x18\x01 \x01(\x0e\x32H.whatsapp.SyncActionValue.BizAISettingsNudgeAction.BizAISettingsCategory\x12\x0f\n\x07version\x18\x02 \x01(\x03\x12\x13\n\x0bupdatedAtMs\x18\x03 \x01(\x03\"\x9d\x01\n\x15\x42izAISettingsCategory\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0cINSTRUCTIONS\x10\x01\x12\x15\n\x11RESPONSE_SETTINGS\x10\x02\x12\x15\n\x11\x45XAMPLE_RESPONSES\x10\x03\x12\r\n\tKNOWLEDGE\x10\x04\x12\x0c\n\x08LEAD_GEN\x10\x05\x12\x1a\n\x16HANDOFF_REMOVAL_TIMING\x10\x06\x1a)\n\x17\x42otWelcomeRequestAction\x12\x0e\n\x06isSent\x18\x01 \x01(\x08\x1a\x39\n\x18\x42roadcastListParticipant\x12\x0e\n\x06lidJid\x18\x01 \x02(\t\x12\r\n\x05pnJid\x18\x02 \x01(\t\x1a)\n\x17\x42ubbleLockMessageAction\x12\x0e\n\x06locked\x18\x01 \x01(\x08\x1a\x35\n\"BusinessBroadcastAssociationAction\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x08\x1a\x8b\x02\n\x1f\x42usinessBroadcastCampaignAction\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\x05\x12\x0c\n\x04\x61\x64Id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\r\n\x05msgId\x18\x04 \x01(\t\x12\x14\n\x0c\x62roadcastJid\x18\x05 \x01(\t\x12\x15\n\rreservedQuota\x18\x06 \x01(\x05\x12\x1a\n\x12scheduledTimestamp\x18\x07 \x01(\x03\x12\x17\n\x0f\x63reateTimestamp\x18\x08 \x01(\x03\x12I\n\x06status\x18\t \x01(\x0e\x32\x39.whatsapp.SyncActionValue.BusinessBroadcastCampaignStatus\x1a\x93\x01\n\x1f\x42usinessBroadcastInsightsAction\x12\x16\n\x0erecipientCount\x18\x01 \x01(\x05\x12\x16\n\x0e\x64\x65liveredCount\x18\x02 \x01(\x05\x12\x11\n\treadCount\x18\x03 \x01(\x05\x12\x14\n\x0crepliedCount\x18\x04 \x01(\x05\x12\x17\n\x0fquickReplyCount\x18\x05 \x01(\x05\x1a\xd4\x01\n\x1b\x42usinessBroadcastListAction\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x08\x12H\n\x0cparticipants\x18\x02 \x03(\x0b\x32\x32.whatsapp.SyncActionValue.BroadcastListParticipant\x12\x10\n\x08listName\x18\x03 \x01(\t\x12\x10\n\x08labelIds\x18\x04 \x03(\t\x12\x1a\n\x12\x61udienceExpression\x18\x05 \x01(\t\x12\x1a\n\x12\x63ustomAudienceFbid\x18\x06 \x01(\t\x1a?\n\rCallLogAction\x12.\n\rcallLogRecord\x18\x01 \x01(\x0b\x32\x17.whatsapp.CallLogRecord\x1a-\n\x14\x43hatAssignmentAction\x12\x15\n\rdeviceAgentId\x18\x01 \x01(\t\x1a\x36\n ChatAssignmentOpenedStatusAction\x12\x12\n\nchatOpened\x18\x01 \x01(\x08\x1aY\n\x0f\x43learChatAction\x12\x46\n\x0cmessageRange\x18\x01 \x01(\x0b\x32\x30.whatsapp.SyncActionValue.SyncActionMessageRange\x1a&\n\x13\x43oexV2VersionAction\x12\x0f\n\x07version\x18\x01 \x01(\x04\x1a\x87\x01\n\rContactAction\x12\x10\n\x08\x66ullName\x18\x01 \x01(\t\x12\x11\n\tfirstName\x18\x02 \x01(\t\x12\x0e\n\x06lidJid\x18\x03 \x01(\t\x12 \n\x18saveOnPrimaryAddressbook\x18\x04 \x01(\x08\x12\r\n\x05pnJid\x18\x05 \x01(\t\x12\x10\n\x08username\x18\x06 \x01(\t\x1a:\n\x19\x43twaMessageReceivedAction\x12\x1d\n\x15isCtwaMessageReceived\x18\x01 \x01(\x08\x1aO\n CtwaPerCustomerDataSharingAction\x12+\n#isCtwaPerCustomerDataSharingEnabled\x18\x01 \x01(\x08\x1a\x93\x01\n\x13\x43ustomPaymentMethod\x12\x14\n\x0c\x63redentialId\x18\x01 \x02(\t\x12\x0f\n\x07\x63ountry\x18\x02 \x02(\t\x12\x0c\n\x04type\x18\x03 \x02(\t\x12G\n\x08metadata\x18\x04 \x03(\x0b\x32\x35.whatsapp.SyncActionValue.CustomPaymentMethodMetadata\x1a\x39\n\x1b\x43ustomPaymentMethodMetadata\x12\x0b\n\x03key\x18\x01 \x02(\t\x12\r\n\x05value\x18\x02 \x02(\t\x1ai\n\x1a\x43ustomPaymentMethodsAction\x12K\n\x14\x63ustomPaymentMethods\x18\x01 \x03(\x0b\x32-.whatsapp.SyncActionValue.CustomPaymentMethod\x1a\xed\x01\n\x12\x43ustomerDataAction\x12\x0f\n\x07\x63hatJid\x18\x01 \x01(\t\x12\x13\n\x0b\x63ontactType\x18\x02 \x01(\x05\x12\r\n\x05\x65mail\x18\x03 \x01(\t\x12\x17\n\x0f\x61ltPhoneNumbers\x18\x04 \x01(\t\x12\x10\n\x08\x62irthday\x18\x05 \x01(\x03\x12\x0f\n\x07\x61\x64\x64ress\x18\x06 \x01(\t\x12\x19\n\x11\x61\x63quisitionSource\x18\x07 \x01(\x05\x12\x11\n\tleadStage\x18\x08 \x01(\x05\x12\x11\n\tlastOrder\x18\t \x01(\x03\x12\x11\n\tcreatedAt\x18\n \x01(\x03\x12\x12\n\nmodifiedAt\x18\x0b \x01(\x03\x1aZ\n\x10\x44\x65leteChatAction\x12\x46\n\x0cmessageRange\x18\x01 \x01(\x0b\x32\x30.whatsapp.SyncActionValue.SyncActionMessageRange\x1a\x44\n\x1d\x44\x65leteIndividualCallLogAction\x12\x0f\n\x07peerJid\x18\x01 \x01(\t\x12\x12\n\nisIncoming\x18\x02 \x01(\x08\x1aI\n\x18\x44\x65leteMessageForMeAction\x12\x13\n\x0b\x64\x65leteMedia\x18\x01 \x01(\x08\x12\x18\n\x10messageTimestamp\x18\x02 \x01(\x03\x1a\x31\n\x1c\x44\x65tectedOutcomesStatusAction\x12\x11\n\tisEnabled\x18\x01 \x01(\x08\x1a(\n\x15\x45xternalWebBetaAction\x12\x0f\n\x07isOptIn\x18\x01 \x01(\x08\x1ap\n\x0f\x46\x61voritesAction\x12\x45\n\tfavorites\x18\x01 \x03(\x0b\x32\x32.whatsapp.SyncActionValue.FavoritesAction.Favorite\x1a\x16\n\x08\x46\x61vorite\x12\n\n\x02id\x18\x01 \x01(\t\x1a\xb9\x01\n\x18InteractiveMessageAction\x12]\n\x04type\x18\x01 \x02(\x0e\x32O.whatsapp.SyncActionValue.InteractiveMessageAction.InteractiveMessageActionMode\x12\r\n\x05\x61gmId\x18\x02 \x01(\t\"/\n\x1cInteractiveMessageActionMode\x12\x0f\n\x0b\x44ISABLE_CTA\x10\x01\x1a(\n\rKeyExpiration\x12\x17\n\x0f\x65xpiredKeyEpoch\x18\x01 \x01(\x05\x1a@\n\x16LabelAssociationAction\x12\x0f\n\x07labeled\x18\x01 \x01(\x08\x12\x15\n\rmodelMetaData\x18\x02 \x01(\t\x1a\x81\x04\n\x0fLabelEditAction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x63olor\x18\x02 \x01(\x05\x12\x14\n\x0cpredefinedId\x18\x03 \x01(\x05\x12\x0f\n\x07\x64\x65leted\x18\x04 \x01(\x08\x12\x12\n\norderIndex\x18\x05 \x01(\x05\x12\x10\n\x08isActive\x18\x06 \x01(\x08\x12@\n\x04type\x18\x07 \x01(\x0e\x32\x32.whatsapp.SyncActionValue.LabelEditAction.ListType\x12\x13\n\x0bisImmutable\x18\x08 \x01(\x08\x12\x15\n\rmuteEndTimeMs\x18\t \x01(\x03\"\x95\x02\n\x08ListType\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06UNREAD\x10\x01\x12\n\n\x06GROUPS\x10\x02\x12\r\n\tFAVORITES\x10\x03\x12\x0e\n\nPREDEFINED\x10\x04\x12\n\n\x06\x43USTOM\x10\x05\x12\r\n\tCOMMUNITY\x10\x06\x12\x13\n\x0fSERVER_ASSIGNED\x10\x07\x12\x0b\n\x07\x44RAFTED\x10\x08\x12\x0e\n\nAI_HANDOFF\x10\t\x12\x0c\n\x08\x43HANNELS\x10\n\x12\x11\n\rAI_RESPONDING\x10\x0b\x12\x0c\n\x08\x41RCHIVED\x10\x0c\x12\n\n\x06LOCKED\x10\r\x12\x0b\n\x07INVITES\x10\x0e\x12\x0f\n\x0bTHIRD_PARTY\x10\x0f\x12\x08\n\x04LEAD\x10\x10\x12\x18\n\x14MENTIONS_AND_REPLIES\x10\x11\x1a/\n\x15LabelReorderingAction\x12\x16\n\x0esortedLabelIds\x18\x01 \x03(\x05\x1a\'\n\x12LabelSublistAction\x12\x11\n\tsubListId\x18\x01 \x01(\x05\x1aI\n\x10LidContactAction\x12\x10\n\x08\x66ullName\x18\x01 \x01(\t\x12\x11\n\tfirstName\x18\x02 \x01(\t\x12\x10\n\x08username\x18\x03 \x01(\t\x1a\x1f\n\rLocaleSetting\x12\x0e\n\x06locale\x18\x01 \x01(\t\x1a \n\x0eLockChatAction\x12\x0e\n\x06locked\x18\x01 \x01(\x08\x1a\xed\x02\n\x1cMaibaAIFeaturesControlAction\x12\x64\n\x0f\x61iFeatureStatus\x18\x01 \x01(\x0e\x32K.whatsapp.SyncActionValue.MaibaAIFeaturesControlAction.MaibaAIFeatureStatus\x12\\\n\x0b\x61iReplyMode\x18\x02 \x01(\x0e\x32G.whatsapp.SyncActionValue.MaibaAIFeaturesControlAction.MaibaAIReplyMode\"K\n\x14MaibaAIFeatureStatus\x12\x0b\n\x07\x45NABLED\x10\x00\x12\x18\n\x14\x45NABLED_HAS_LEARNING\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\"<\n\x10MaibaAIReplyMode\x12\t\n\x05MUTED\x10\x00\x12\x0c\n\x08\x41I_AGENT\x10\x01\x12\x0f\n\x0bSUGGESTIONS\x10\x02\x1al\n\x14MarkChatAsReadAction\x12\x0c\n\x04read\x18\x01 \x01(\x08\x12\x46\n\x0cmessageRange\x18\x02 \x01(\x0b\x32\x30.whatsapp.SyncActionValue.SyncActionMessageRange\x1a\x93\x02\n\x16MarketingMessageAction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\\\n\x04type\x18\x03 \x01(\x0e\x32N.whatsapp.SyncActionValue.MarketingMessageAction.MarketingMessagePrototypeType\x12\x11\n\tcreatedAt\x18\x04 \x01(\x03\x12\x12\n\nlastSentAt\x18\x05 \x01(\x03\x12\x11\n\tisDeleted\x18\x06 \x01(\x08\x12\x0f\n\x07mediaId\x18\x07 \x01(\t\"1\n\x1dMarketingMessagePrototypeType\x12\x10\n\x0cPERSONALIZED\x10\x00\x1a\x37\n\x1fMarketingMessageBroadcastAction\x12\x14\n\x0crepliedCount\x18\x01 \x01(\x05\x1a\xcd\x01\n\x1cMerchantPaymentPartnerAction\x12M\n\x06status\x18\x01 \x02(\x0e\x32=.whatsapp.SyncActionValue.MerchantPaymentPartnerAction.Status\x12\x0f\n\x07\x63ountry\x18\x02 \x02(\t\x12\x13\n\x0bgatewayName\x18\x03 \x01(\t\x12\x14\n\x0c\x63redentialId\x18\x04 \x01(\t\"\"\n\x06Status\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08INACTIVE\x10\x01\x1a\xbb\x01\n\x11MusicUserIdAction\x12\x13\n\x0bmusicUserId\x18\x01 \x01(\t\x12Z\n\x11music_user_id_map\x18\x02 \x03(\x0b\x32?.whatsapp.SyncActionValue.MusicUserIdAction.MusicUserIdMapEntry\x1a\x35\n\x13MusicUserIdMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aq\n\nMuteAction\x12\r\n\x05muted\x18\x01 \x01(\x08\x12\x18\n\x10muteEndTimestamp\x18\x02 \x01(\x03\x12\x11\n\tautoMuted\x18\x03 \x01(\x08\x12\'\n\x1fmuteEveryoneMentionEndTimestamp\x18\x04 \x01(\x03\x1a!\n\x11NctSaltSyncAction\x12\x0c\n\x04salt\x18\x01 \x01(\x0c\x1a\x42\n\x1eNewsletterSavedInterestsAction\x12 \n\x18newsletterSavedInterests\x18\x01 \x01(\t\x1a\xd1\x01\n\x0eNoteEditAction\x12?\n\x04type\x18\x01 \x01(\x0e\x32\x31.whatsapp.SyncActionValue.NoteEditAction.NoteType\x12\x0f\n\x07\x63hatJid\x18\x02 \x01(\t\x12\x11\n\tcreatedAt\x18\x03 \x01(\x03\x12\x0f\n\x07\x64\x65leted\x18\x04 \x01(\x08\x12\x1b\n\x13unstructuredContent\x18\x05 \x01(\t\",\n\x08NoteType\x12\x10\n\x0cUNSTRUCTURED\x10\x01\x12\x0e\n\nSTRUCTURED\x10\x02\x1a\x94\x02\n!NotificationActivitySettingAction\x12|\n\x1bnotificationActivitySetting\x18\x01 \x01(\x0e\x32W.whatsapp.SyncActionValue.NotificationActivitySettingAction.NotificationActivitySetting\"q\n\x1bNotificationActivitySetting\x12\x18\n\x14\x44\x45\x46\x41ULT_ALL_MESSAGES\x10\x00\x12\x10\n\x0c\x41LL_MESSAGES\x10\x01\x12\x0e\n\nHIGHLIGHTS\x10\x02\x12\x16\n\x12\x44\x45\x46\x41ULT_HIGHLIGHTS\x10\x03\x1a!\n\tNuxAction\x12\x14\n\x0c\x61\x63knowledged\x18\x01 \x01(\x08\x1a\x37\n\x10OutContactAction\x12\x10\n\x08\x66ullName\x18\x01 \x01(\t\x12\x11\n\tfirstName\x18\x02 \x01(\t\x1a \n\x11PaymentInfoAction\x12\x0b\n\x03\x63pi\x18\x01 \x01(\t\x1a\xa1\x01\n\x10PaymentTosAction\x12O\n\rpaymentNotice\x18\x01 \x02(\x0e\x32\x38.whatsapp.SyncActionValue.PaymentTosAction.PaymentNotice\x12\x10\n\x08\x61\x63\x63\x65pted\x18\x02 \x02(\x08\"*\n\rPaymentNotice\x12\x19\n\x15\x42R_PAY_PRIVACY_POLICY\x10\x00\x1a\x1b\n\tPinAction\x12\x0e\n\x06pinned\x18\x01 \x01(\x08\x1a#\n\x12PnForLidChatAction\x12\r\n\x05pnJid\x18\x01 \x01(\t\x1a\x1f\n\x0ePrimaryFeature\x12\r\n\x05\x66lags\x18\x01 \x03(\t\x1a\'\n\x14PrimaryVersionAction\x12\x0f\n\x07version\x18\x01 \x01(\t\x1aP\n6PrivacySettingChannelsPersonalisedRecommendationAction\x12\x16\n\x0eisUserOptedOut\x18\x01 \x01(\x08\x1a\x45\n\'PrivacySettingDisableLinkPreviewsAction\x12\x1a\n\x12isPreviewsDisabled\x18\x01 \x01(\x08\x1a\x30\n\x1bPrivacySettingRelayAllCalls\x12\x11\n\tisEnabled\x18\x01 \x01(\x08\x1a\xd8\x01\n\x1ePrivateProcessingSettingAction\x12q\n\x17privateProcessingStatus\x18\x01 \x01(\x0e\x32P.whatsapp.SyncActionValue.PrivateProcessingSettingAction.PrivateProcessingStatus\"C\n\x17PrivateProcessingStatus\x12\r\n\tUNDEFINED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\x1a\x1f\n\x0fPushNameSetting\x12\x0c\n\x04name\x18\x01 \x01(\t\x1a\x83\x01\n\x10QuickReplyAction\x12\x10\n\x08shortcut\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x10\n\x08keywords\x18\x03 \x03(\t\x12\r\n\x05\x63ount\x18\x04 \x01(\x05\x12\x0f\n\x07\x64\x65leted\x18\x05 \x01(\x08\x12\x1a\n\x12\x61ssociatedLabelIds\x18\x06 \x03(\t\x1aH\n\x18RecentEmojiWeightsAction\x12,\n\x07weights\x18\x01 \x03(\x0b\x32\x1b.whatsapp.RecentEmojiWeight\x1a\x36\n\x19RemoveRecentStickerAction\x12\x19\n\x11lastStickerSentTs\x18\x01 \x01(\x03\x1a\xfb\x14\n\x12SettingsSyncAction\x12\x14\n\x0cstartAtLogin\x18\x01 \x01(\x08\x12\x16\n\x0eminimizeToTray\x18\x02 \x01(\x08\x12\x10\n\x08language\x18\x03 \x01(\t\x12\x1c\n\x14replaceTextWithEmoji\x18\x04 \x01(\x08\x12_\n\x1d\x62\x61nnerNotificationDisplayMode\x18\x05 \x01(\x0e\x32\x38.whatsapp.SyncActionValue.SettingsSyncAction.DisplayMode\x12_\n\x1dunreadCounterBadgeDisplayMode\x18\x06 \x01(\x0e\x32\x38.whatsapp.SyncActionValue.SettingsSyncAction.DisplayMode\x12%\n\x1disMessagesNotificationEnabled\x18\x07 \x01(\x08\x12\"\n\x1aisCallsNotificationEnabled\x18\x08 \x01(\x08\x12&\n\x1eisReactionsNotificationEnabled\x18\t \x01(\x08\x12,\n$isStatusReactionsNotificationEnabled\x18\n \x01(\x08\x12+\n#isTextPreviewForNotificationEnabled\x18\x0b \x01(\x08\x12!\n\x19\x64\x65\x66\x61ultNotificationToneId\x18\x0c \x01(\x05\x12&\n\x1egroupDefaultNotificationToneId\x18\r \x01(\x05\x12\x10\n\x08\x61ppTheme\x18\x0e \x01(\x05\x12\x13\n\x0bwallpaperId\x18\x0f \x01(\x05\x12 \n\x18isDoodleWallpaperEnabled\x18\x10 \x01(\x08\x12\x10\n\x08\x66ontSize\x18\x11 \x01(\x05\x12#\n\x1bisPhotosAutodownloadEnabled\x18\x12 \x01(\x08\x12#\n\x1bisAudiosAutodownloadEnabled\x18\x13 \x01(\x08\x12#\n\x1bisVideosAutodownloadEnabled\x18\x14 \x01(\x08\x12&\n\x1eisDocumentsAutodownloadEnabled\x18\x15 \x01(\x08\x12\x1b\n\x13\x64isableLinkPreviews\x18\x16 \x01(\x08\x12\x1a\n\x12notificationToneId\x18\x17 \x01(\x05\x12\\\n\x12mediaUploadQuality\x18\x18 \x01(\x0e\x32@.whatsapp.SyncActionValue.SettingsSyncAction.MediaQualitySetting\x12\x1b\n\x13isSpellCheckEnabled\x18\x19 \x01(\x08\x12\x1c\n\x14isEnterToSendEnabled\x18\x1a \x01(\x08\x12)\n!isGroupMessageNotificationEnabled\x18\x1b \x01(\x08\x12+\n#isGroupReactionsNotificationEnabled\x18\x1c \x01(\x08\x12#\n\x1bisStatusNotificationEnabled\x18\x1d \x01(\x08\x12 \n\x18statusNotificationToneId\x18\x1e \x01(\x05\x12*\n\"shouldPlaySoundForCallNotification\x18\x1f \x01(\x08\x12\x13\n\x0b\x63hatThemeId\x18 \x01(\t\x12\x15\n\rcolorSchemeId\x18! \x01(\t\x12\x1d\n\x15stockWallpaperImageId\x18\" \x01(\t\"Y\n\x0b\x44isplayMode\x12\x18\n\x14\x44ISPLAY_MODE_UNKNOWN\x10\x00\x12\n\n\x06\x41LWAYS\x10\x01\x12\t\n\x05NEVER\x10\x02\x12\x19\n\x15ONLY_WHEN_APP_IS_OPEN\x10\x03\"F\n\x13MediaQualitySetting\x12\x19\n\x15MEDIA_QUALITY_UNKNOWN\x10\x00\x12\x0c\n\x08STANDARD\x10\x01\x12\x06\n\x02HD\x10\x02\"\xda\x08\n\nSettingKey\x12\x17\n\x13SETTING_KEY_UNKNOWN\x10\x00\x12\x12\n\x0eSTART_AT_LOGIN\x10\x01\x12\x14\n\x10MINIMIZE_TO_TRAY\x10\x02\x12\x0c\n\x08LANGUAGE\x10\x03\x12\x1b\n\x17REPLACE_TEXT_WITH_EMOJI\x10\x04\x12$\n BANNER_NOTIFICATION_DISPLAY_MODE\x10\x05\x12%\n!UNREAD_COUNTER_BADGE_DISPLAY_MODE\x10\x06\x12$\n IS_MESSAGES_NOTIFICATION_ENABLED\x10\x07\x12!\n\x1dIS_CALLS_NOTIFICATION_ENABLED\x10\x08\x12%\n!IS_REACTIONS_NOTIFICATION_ENABLED\x10\t\x12,\n(IS_STATUS_REACTIONS_NOTIFICATION_ENABLED\x10\n\x12,\n(IS_TEXT_PREVIEW_FOR_NOTIFICATION_ENABLED\x10\x0b\x12 \n\x1c\x44\x45\x46\x41ULT_NOTIFICATION_TONE_ID\x10\x0c\x12&\n\"GROUP_DEFAULT_NOTIFICATION_TONE_ID\x10\r\x12\r\n\tAPP_THEME\x10\x0e\x12\x10\n\x0cWALLPAPER_ID\x10\x0f\x12\x1f\n\x1bIS_DOODLE_WALLPAPER_ENABLED\x10\x10\x12\r\n\tFONT_SIZE\x10\x11\x12\"\n\x1eIS_PHOTOS_AUTODOWNLOAD_ENABLED\x10\x12\x12\"\n\x1eIS_AUDIOS_AUTODOWNLOAD_ENABLED\x10\x13\x12\"\n\x1eIS_VIDEOS_AUTODOWNLOAD_ENABLED\x10\x14\x12%\n!IS_DOCUMENTS_AUTODOWNLOAD_ENABLED\x10\x15\x12\x19\n\x15\x44ISABLE_LINK_PREVIEWS\x10\x16\x12\x18\n\x14NOTIFICATION_TONE_ID\x10\x17\x12\x18\n\x14MEDIA_UPLOAD_QUALITY\x10\x18\x12\x1a\n\x16IS_SPELL_CHECK_ENABLED\x10\x19\x12\x1c\n\x18IS_ENTER_TO_SEND_ENABLED\x10\x1a\x12)\n%IS_GROUP_MESSAGE_NOTIFICATION_ENABLED\x10\x1b\x12+\n\'IS_GROUP_REACTIONS_NOTIFICATION_ENABLED\x10\x1c\x12\"\n\x1eIS_STATUS_NOTIFICATION_ENABLED\x10\x1d\x12\x1f\n\x1bSTATUS_NOTIFICATION_TONE_ID\x10\x1e\x12+\n\'SHOULD_PLAY_SOUND_FOR_CALL_NOTIFICATION\x10\x1f\x12\x11\n\rCHAT_THEME_ID\x10 \x12\x13\n\x0f\x43OLOR_SCHEME_ID\x10!\x12\x1c\n\x18STOCK_WALLPAPER_IMAGE_ID\x10\"\"R\n\x0fSettingPlatform\x12\x14\n\x10PLATFORM_UNKNOWN\x10\x00\x12\x07\n\x03WEB\x10\x01\x12\n\n\x06HYBRID\x10\x02\x12\x0b\n\x07WINDOWS\x10\x03\x12\x07\n\x03MAC\x10\x04\x1a\x1d\n\nStarAction\x12\x0f\n\x07starred\x18\x01 \x01(\x08\x1a?\n,StatusPostOptInNotificationPreferencesAction\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x1a\x8f\x04\n\x13StatusPrivacyAction\x12R\n\x04mode\x18\x01 \x01(\x0e\x32\x44.whatsapp.SyncActionValue.StatusPrivacyAction.StatusDistributionMode\x12\x0f\n\x07userJid\x18\x02 \x03(\t\x12\x11\n\tshareToFb\x18\x03 \x01(\x08\x12\x11\n\tshareToIg\x18\x04 \x01(\x08\x12M\n\x0b\x63ustomLists\x18\x05 \x03(\x0b\x32\x38.whatsapp.SyncActionValue.StatusPrivacyAction.CustomList\x12S\n\x05modes\x18\x06 \x03(\x0e\x32\x44.whatsapp.SyncActionValue.StatusPrivacyAction.StatusDistributionMode\x1a^\n\nCustomList\x12\x0e\n\x06listId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05\x65moji\x18\x03 \x01(\t\x12\x12\n\nisSelected\x18\x04 \x01(\x08\x12\x0f\n\x07userJid\x18\x05 \x03(\t\"i\n\x16StatusDistributionMode\x12\x0e\n\nALLOW_LIST\x10\x00\x12\r\n\tDENY_LIST\x10\x01\x12\x0c\n\x08\x43ONTACTS\x10\x02\x12\x11\n\rCLOSE_FRIENDS\x10\x03\x12\x0f\n\x0b\x43USTOM_LIST\x10\x04\x1a\x86\x02\n\rStickerAction\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x15\n\rfileEncSha256\x18\x02 \x01(\x0c\x12\x10\n\x08mediaKey\x18\x03 \x01(\x0c\x12\x10\n\x08mimetype\x18\x04 \x01(\t\x12\x0e\n\x06height\x18\x05 \x01(\r\x12\r\n\x05width\x18\x06 \x01(\r\x12\x12\n\ndirectPath\x18\x07 \x01(\t\x12\x12\n\nfileLength\x18\x08 \x01(\x04\x12\x12\n\nisFavorite\x18\t \x01(\x08\x12\x14\n\x0c\x64\x65viceIdHint\x18\n \x01(\r\x12\x10\n\x08isLottie\x18\x0b \x01(\x08\x12\x11\n\timageHash\x18\x0c \x01(\t\x12\x17\n\x0fisAvatarSticker\x18\r \x01(\x08\x1a[\n\x12SubscriptionAction\x12\x15\n\risDeactivated\x18\x01 \x01(\x08\x12\x16\n\x0eisAutoRenewing\x18\x02 \x01(\x08\x12\x16\n\x0e\x65xpirationDate\x18\x03 \x01(\x03\x1a\xc7\x03\n\x19SubscriptionsSyncV2Action\x12[\n\rsubscriptions\x18\x01 \x03(\x0b\x32\x44.whatsapp.SyncActionValue.SubscriptionsSyncV2Action.SubscriptionInfo\x12T\n\x0bpaidFeature\x18\x02 \x03(\x0b\x32?.whatsapp.SyncActionValue.SubscriptionsSyncV2Action.PaidFeature\x1aS\n\x0bPaidFeature\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\x12\r\n\x05limit\x18\x03 \x01(\x05\x12\x16\n\x0e\x65xpirationTime\x18\x04 \x01(\x03\x1a\xa1\x01\n\x10SubscriptionInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04tier\x18\x02 \x01(\x05\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x11\n\tstartTime\x18\x04 \x01(\x03\x12\x0f\n\x07\x65ndTime\x18\x05 \x01(\x03\x12\x19\n\x11isPlatformChanged\x18\x06 \x01(\x08\x12\x0e\n\x06source\x18\x07 \x01(\t\x12\x14\n\x0c\x63reationTime\x18\x08 \x01(\x03\x1aI\n\x11SyncActionMessage\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\x1a\x99\x01\n\x16SyncActionMessageRange\x12\x1c\n\x14lastMessageTimestamp\x18\x01 \x01(\x03\x12\"\n\x1alastSystemMessageTimestamp\x18\x02 \x01(\x03\x12=\n\x08messages\x18\x03 \x03(\x0b\x32+.whatsapp.SyncActionValue.SyncActionMessage\x1a!\n\x0fThreadPinAction\x12\x0e\n\x06pinned\x18\x01 \x01(\x08\x1a\x39\n\x10TimeFormatAction\x12%\n\x1disTwentyFourHourFormatEnabled\x18\x01 \x01(\x08\x1a\x1c\n\x06UGCBot\x12\x12\n\ndefinition\x18\x01 \x01(\x0c\x1a/\n\x15UnarchiveChatsSetting\x12\x16\n\x0eunarchiveChats\x18\x01 \x01(\x08\x1a%\n\x14UserStatusMuteAction\x12\r\n\x05muted\x18\x01 \x01(\x08\x1a\x9b\x01\n\x1bUsernameChatStartModeAction\x12Z\n\rchatStartMode\x18\x01 \x01(\x0e\x32\x43.whatsapp.SyncActionValue.UsernameChatStartModeAction.ChatStartMode\" \n\rChatStartMode\x12\x07\n\x03LID\x10\x01\x12\x06\n\x02PN\x10\x02\x1a\xa5\x02\n\x14WASARootSecretAction\x12O\n\x07secrets\x18\x01 \x03(\x0b\x32>.whatsapp.SyncActionValue.WASARootSecretAction.RootSecretEntry\x1a\xbb\x01\n\x0fRootSecretEntry\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nrootSecret\x18\x02 \x01(\x0c\x12\r\n\x05\x65poch\x18\x03 \x01(\x03\x12U\n\x06status\x18\x04 \x01(\x0e\x32\x45.whatsapp.SyncActionValue.WASARootSecretAction.RootSecretEntry.Status\"\"\n\x06Status\x12\x0c\n\x08INACTIVE\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x1a\xb4\x01\n\x1cWaffleAccountLinkStateAction\x12Z\n\tlinkState\x18\x02 \x01(\x0e\x32G.whatsapp.SyncActionValue.WaffleAccountLinkStateAction.AccountLinkState\"8\n\x10\x41\x63\x63ountLinkState\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\n\n\x06PAUSED\x10\x01\x12\x0c\n\x08UNLINKED\x10\x02\x1a.\n\x18WamoUserIdentifierAction\x12\x12\n\nidentifier\x18\x01 \x01(\t\"a\n\x1f\x42usinessBroadcastCampaignStatus\x12\t\n\x05\x44RAFT\x10\x01\x12\r\n\tSCHEDULED\x10\x02\x12\x0e\n\nPROCESSING\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\x08\n\x04SENT\x10\x05\"\x1a\n\nSyncdIndex\x12\x0c\n\x04\x62lob\x18\x01 \x01(\x0c\"\x98\x01\n\rSyncdMutation\x12\x39\n\toperation\x18\x01 \x01(\x0e\x32&.whatsapp.SyncdMutation.SyncdOperation\x12%\n\x06record\x18\x02 \x01(\x0b\x32\x15.whatsapp.SyncdRecord\"%\n\x0eSyncdOperation\x12\x07\n\x03SET\x10\x00\x12\n\n\x06REMOVE\x10\x01\"<\n\x0eSyncdMutations\x12*\n\tmutations\x18\x01 \x03(\x0b\x32\x17.whatsapp.SyncdMutation\"\xb8\x02\n\nSyncdPatch\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x16.whatsapp.SyncdVersion\x12*\n\tmutations\x18\x02 \x03(\x0b\x32\x17.whatsapp.SyncdMutation\x12:\n\x11\x65xternalMutations\x18\x03 \x01(\x0b\x32\x1f.whatsapp.ExternalBlobReference\x12\x13\n\x0bsnapshotMac\x18\x04 \x01(\x0c\x12\x10\n\x08patchMac\x18\x05 \x01(\x0c\x12\x1e\n\x05keyId\x18\x06 \x01(\x0b\x32\x0f.whatsapp.KeyId\x12$\n\x08\x65xitCode\x18\x07 \x01(\x0b\x32\x12.whatsapp.ExitCode\x12\x13\n\x0b\x64\x65viceIndex\x18\x08 \x01(\r\x12\x17\n\x0f\x63lientDebugData\x18\t \x01(\x0c\"[\n\x14SyncdPlainTextRecord\x12\'\n\x05value\x18\x01 \x01(\x0b\x32\x18.whatsapp.SyncActionData\x12\r\n\x05keyId\x18\x02 \x01(\x0c\x12\x0b\n\x03mac\x18\x03 \x01(\x0c\"w\n\x0bSyncdRecord\x12#\n\x05index\x18\x01 \x01(\x0b\x32\x14.whatsapp.SyncdIndex\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.whatsapp.SyncdValue\x12\x1e\n\x05keyId\x18\x03 \x01(\x0b\x32\x0f.whatsapp.KeyId\"\x8d\x01\n\rSyncdSnapshot\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x16.whatsapp.SyncdVersion\x12&\n\x07records\x18\x02 \x03(\x0b\x32\x15.whatsapp.SyncdRecord\x12\x0b\n\x03mac\x18\x03 \x01(\x0c\x12\x1e\n\x05keyId\x18\x04 \x01(\x0b\x32\x0f.whatsapp.KeyId\"\xab\x01\n\x15SyncdSnapshotRecovery\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x16.whatsapp.SyncdVersion\x12\x16\n\x0e\x63ollectionName\x18\x02 \x01(\t\x12\x37\n\x0fmutationRecords\x18\x03 \x03(\x0b\x32\x1e.whatsapp.SyncdPlainTextRecord\x12\x18\n\x10\x63ollectionLthash\x18\x04 \x01(\x0c\"\x1a\n\nSyncdValue\x12\x0c\n\x04\x62lob\x18\x01 \x01(\x0c\"\x1f\n\x0cSyncdVersion\x12\x0f\n\x07version\x18\x01 \x01(\x04\".\n\rTapLinkAction\x12\r\n\x05title\x18\x01 \x01(\t\x12\x0e\n\x06tapUrl\x18\x02 \x01(\t\"\xd9\x04\n\x0eTemplateButton\x12\r\n\x05index\x18\x04 \x01(\r\x12\x45\n\x10quickReplyButton\x18\x01 \x01(\x0b\x32).whatsapp.TemplateButton.QuickReplyButtonH\x00\x12\x37\n\turlButton\x18\x02 \x01(\x0b\x32\".whatsapp.TemplateButton.URLButtonH\x00\x12\x39\n\ncallButton\x18\x03 \x01(\x0b\x32#.whatsapp.TemplateButton.CallButtonH\x00\x1a\x8c\x01\n\nCallButton\x12>\n\x0b\x64isplayText\x18\x01 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12>\n\x0bphoneNumber\x18\x02 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x1a^\n\x10QuickReplyButton\x12>\n\x0b\x64isplayText\x18\x01 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12\n\n\x02id\x18\x02 \x01(\t\x1a\x83\x01\n\tURLButton\x12>\n\x0b\x64isplayText\x18\x01 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessage\x12\x36\n\x03url\x18\x02 \x01(\x0b\x32).whatsapp.Message.HighlyStructuredMessageB\x08\n\x06\x62utton\"\xa2\x01\n\x08ThreadID\x12\x31\n\nthreadType\x18\x01 \x01(\x0e\x32\x1d.whatsapp.ThreadID.ThreadType\x12\'\n\tthreadKey\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\":\n\nThreadType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0cVIEW_REPLIES\x10\x01\x12\r\n\tAI_THREAD\x10\x02\"\xc0\x01\n\x1eUnCountedAssociatedMessageList\x12*\n\x08messages\x18\x01 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\x12+\n\rparentMessage\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x45\n\x0f\x61ssociationType\x18\x03 \x01(\x0e\x32,.whatsapp.MessageAssociation.AssociationType\"\x99\x01\n.UnCountedAssociatedMessageListWithMessageBytes\x12:\n\x08messages\x18\x01 \x03(\x0b\x32(.whatsapp.WebMessageInfoWithMessageBytes\x12+\n\rparentMessage\x18\x02 \x01(\x0b\x32\x14.whatsapp.MessageKey\"\xd9\x01\n\x0eUrlTrackingMap\x12N\n\x16urlTrackingMapElements\x18\x01 \x03(\x0b\x32..whatsapp.UrlTrackingMap.UrlTrackingMapElement\x1aw\n\x15UrlTrackingMapElement\x12\x13\n\x0boriginalUrl\x18\x01 \x01(\t\x12\x1b\n\x13unconsentedUsersUrl\x18\x02 \x01(\t\x12\x19\n\x11\x63onsentedUsersUrl\x18\x03 \x01(\t\x12\x11\n\tcardIndex\x18\x04 \x01(\r\"\xdf\x03\n\x0cUserPassword\x12\x31\n\x08\x65ncoding\x18\x01 \x01(\x0e\x32\x1f.whatsapp.UserPassword.Encoding\x12\x37\n\x0btransformer\x18\x02 \x01(\x0e\x32\".whatsapp.UserPassword.Transformer\x12=\n\x0etransformerArg\x18\x03 \x03(\x0b\x32%.whatsapp.UserPassword.TransformerArg\x12\x17\n\x0ftransformedData\x18\x04 \x01(\x0c\x1a\x9a\x01\n\x0eTransformerArg\x12\x0b\n\x03key\x18\x01 \x01(\t\x12:\n\x05value\x18\x02 \x01(\x0b\x32+.whatsapp.UserPassword.TransformerArg.Value\x1a?\n\x05Value\x12\x10\n\x06\x61sBlob\x18\x01 \x01(\x0cH\x00\x12\x1b\n\x11\x61sUnsignedInteger\x18\x02 \x01(\rH\x00\x42\x07\n\x05value\"%\n\x08\x45ncoding\x12\x08\n\x04UTF8\x10\x00\x12\x0f\n\x0bUTF8_BROKEN\x10\x01\"G\n\x0bTransformer\x12\x08\n\x04NONE\x10\x00\x12\x16\n\x12PBKDF2_HMAC_SHA512\x10\x01\x12\x16\n\x12PBKDF2_HMAC_SHA384\x10\x02\"\x9e\x01\n\x0bUserReceipt\x12\x0f\n\x07userJid\x18\x01 \x02(\t\x12\x18\n\x10receiptTimestamp\x18\x02 \x01(\x03\x12\x15\n\rreadTimestamp\x18\x03 \x01(\x03\x12\x17\n\x0fplayedTimestamp\x18\x04 \x01(\x03\x12\x18\n\x10pendingDeviceJid\x18\x05 \x03(\t\x12\x1a\n\x12\x64\x65liveredDeviceJid\x18\x06 \x03(\t\"\xdc\x01\n\x17VerifiedNameCertificate\x12\x0f\n\x07\x64\x65tails\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x17\n\x0fserverSignature\x18\x03 \x01(\x0c\x1a\x83\x01\n\x07\x44\x65tails\x12\x0e\n\x06serial\x18\x01 \x01(\x04\x12\x0e\n\x06issuer\x18\x02 \x01(\t\x12\x14\n\x0cverifiedName\x18\x04 \x01(\t\x12/\n\x0elocalizedNames\x18\x08 \x03(\x0b\x32\x17.whatsapp.LocalizedName\x12\x11\n\tissueTime\x18\n \x01(\x04\"\xf7\x01\n\x13VirtualDeviceOutput\x12\x0c\n\x04vdId\x18\x01 \x02(\x0c\x12\x13\n\x0bvdPublicKey\x18\x02 \x02(\x0c\x12\x1f\n\x17vdEpochStoragePublicKey\x18\x03 \x02(\x0c\x12\"\n\x1avdEpochStoragePublicKeySig\x18\x04 \x02(\x0c\x12\x19\n\x11ocmfRotationToken\x18\x05 \x02(\x0c\x12\x17\n\x0f\x64\x65viceEpochHmac\x18\x06 \x02(\x0c\x12\x44\n\x15\x65ncryptedSecretValues\x18\x07 \x02(\x0b\x32%.whatsapp.EncryptedSecretValuesOutput\"G\n\x11WallpaperSettings\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0f\n\x07opacity\x18\x02 \x01(\r\x12\x0f\n\x07isGenAi\x18\x03 \x01(\x08\"\xe2\x13\n\x0bWebFeatures\x12\x31\n\rlabelsDisplay\x18\x01 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12:\n\x16voipIndividualOutgoing\x18\x02 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12,\n\x08groupsV3\x18\x03 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x32\n\x0egroupsV3Create\x18\x04 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x32\n\x0e\x63hangeNumberV2\x18\x05 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12:\n\x16queryStatusV3Thumbnail\x18\x06 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x31\n\rliveLocations\x18\x07 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12.\n\nqueryVname\x18\x08 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12:\n\x16voipIndividualIncoming\x18\t \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x35\n\x11quickRepliesQuery\x18\n \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12,\n\x08payments\x18\x0b \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10stickerPackQuery\x18\x0c \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x36\n\x12liveLocationsFinal\x18\r \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12.\n\nlabelsEdit\x18\x0e \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12/\n\x0bmediaUpload\x18\x0f \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12?\n\x1bmediaUploadRichQuickReplies\x18\x12 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12+\n\x07vnameV2\x18\x13 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10videoPlaybackUrl\x18\x14 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x31\n\rstatusRanking\x18\x15 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x37\n\x13voipIndividualVideo\x18\x16 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x36\n\x12thirdPartyStickers\x18\x17 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12>\n\x1a\x66requentlyForwardedSetting\x18\x18 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12:\n\x16groupsV4JoinPermission\x18\x19 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x32\n\x0erecentStickers\x18\x1a \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12+\n\x07\x63\x61talog\x18\x1b \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x33\n\x0fstarredStickers\x18\x1c \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x31\n\rvoipGroupCall\x18\x1d \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x33\n\x0ftemplateMessage\x18\x1e \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12@\n\x1ctemplateMessageInteractivity\x18\x1f \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x35\n\x11\x65phemeralMessages\x18 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x37\n\x13\x65\x32\x45NotificationSync\x18! \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10recentStickersV2\x18\" \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10recentStickersV3\x18$ \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12.\n\nuserNotice\x18% \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12+\n\x07support\x18\' \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x33\n\x0fgroupUiiCleanup\x18( \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12?\n\x1bgroupDogfoodingInternalOnly\x18) \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x30\n\x0csettingsSync\x18* \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12-\n\tarchiveV2\x18+ \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12>\n\x1a\x65phemeralAllowGroupMembers\x18, \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x38\n\x14\x65phemeral24HDuration\x18- \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x32\n\x0emdForceUpgrade\x18. \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12\x34\n\x10\x64isappearingMode\x18/ \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12<\n\x18\x65xternalMdOptInAvailable\x18\x30 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\x12<\n\x18noDeleteMessageTimeLimit\x18\x31 \x01(\x0e\x32\x1a.whatsapp.WebFeatures.Flag\"K\n\x04\x46lag\x12\x0f\n\x0bNOT_STARTED\x10\x00\x12\x11\n\rFORCE_UPGRADE\x10\x01\x12\x0f\n\x0b\x44\x45VELOPMENT\x10\x02\x12\x0e\n\nPRODUCTION\x10\x03\"\xccS\n\x0eWebMessageInfo\x12!\n\x03key\x18\x01 \x02(\x0b\x32\x14.whatsapp.MessageKey\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.whatsapp.Message\x12\x18\n\x10messageTimestamp\x18\x03 \x01(\x04\x12\x38\n\x06status\x18\x04 \x01(\x0e\x32\x1f.whatsapp.WebMessageInfo.Status:\x07PENDING\x12\x13\n\x0bparticipant\x18\x05 \x01(\t\x12\x1b\n\x13messageC2STimestamp\x18\x06 \x01(\x04\x12\x0e\n\x06ignore\x18\x10 \x01(\x08\x12\x0f\n\x07starred\x18\x11 \x01(\x08\x12\x11\n\tbroadcast\x18\x12 \x01(\x08\x12\x10\n\x08pushName\x18\x13 \x01(\t\x12\x1d\n\x15mediaCiphertextSha256\x18\x14 \x01(\x0c\x12\x11\n\tmulticast\x18\x15 \x01(\x08\x12\x0f\n\x07urlText\x18\x16 \x01(\x08\x12\x11\n\turlNumber\x18\x17 \x01(\x08\x12:\n\x0fmessageStubType\x18\x18 \x01(\x0e\x32!.whatsapp.WebMessageInfo.StubType\x12\x12\n\nclearMedia\x18\x19 \x01(\x08\x12\x1d\n\x15messageStubParameters\x18\x1a \x03(\t\x12\x10\n\x08\x64uration\x18\x1b \x01(\r\x12\x0e\n\x06labels\x18\x1c \x03(\t\x12*\n\x0bpaymentInfo\x18\x1d \x01(\x0b\x32\x15.whatsapp.PaymentInfo\x12@\n\x11\x66inalLiveLocation\x18\x1e \x01(\x0b\x32%.whatsapp.Message.LiveLocationMessage\x12\x30\n\x11quotedPaymentInfo\x18\x1f \x01(\x0b\x32\x15.whatsapp.PaymentInfo\x12\x1f\n\x17\x65phemeralStartTimestamp\x18 \x01(\x04\x12\x19\n\x11\x65phemeralDuration\x18! \x01(\r\x12\x18\n\x10\x65phemeralOffToOn\x18\" \x01(\x08\x12\x1a\n\x12\x65phemeralOutOfSync\x18# \x01(\x08\x12\x43\n\x10\x62izPrivacyStatus\x18$ \x01(\x0e\x32).whatsapp.WebMessageInfo.BizPrivacyStatus\x12\x17\n\x0fverifiedBizName\x18% \x01(\t\x12&\n\tmediaData\x18& \x01(\x0b\x32\x13.whatsapp.MediaData\x12*\n\x0bphotoChange\x18\' \x01(\x0b\x32\x15.whatsapp.PhotoChange\x12*\n\x0buserReceipt\x18( \x03(\x0b\x32\x15.whatsapp.UserReceipt\x12%\n\treactions\x18) \x03(\x0b\x32\x12.whatsapp.Reaction\x12.\n\x11quotedStickerData\x18* \x01(\x0b\x32\x13.whatsapp.MediaData\x12\x17\n\x0f\x66utureproofData\x18+ \x01(\x0c\x12&\n\tstatusPsa\x18, \x01(\x0b\x32\x13.whatsapp.StatusPSA\x12)\n\x0bpollUpdates\x18- \x03(\x0b\x32\x14.whatsapp.PollUpdate\x12@\n\x16pollAdditionalMetadata\x18. \x01(\x0b\x32 .whatsapp.PollAdditionalMetadata\x12\x0f\n\x07\x61gentId\x18/ \x01(\t\x12\x1b\n\x13statusAlreadyViewed\x18\x30 \x01(\x08\x12\x15\n\rmessageSecret\x18\x31 \x01(\x0c\x12(\n\nkeepInChat\x18\x32 \x01(\x0b\x32\x14.whatsapp.KeepInChat\x12\'\n\x1foriginalSelfAuthorUserJidString\x18\x33 \x01(\t\x12\x1e\n\x16revokeMessageTimestamp\x18\x34 \x01(\x04\x12&\n\tpinInChat\x18\x36 \x01(\x0b\x32\x13.whatsapp.PinInChat\x12\x38\n\x12premiumMessageInfo\x18\x37 \x01(\x0b\x32\x1c.whatsapp.PremiumMessageInfo\x12\x19\n\x11is1PBizBotMessage\x18\x38 \x01(\x08\x12\x1d\n\x15isGroupHistoryMessage\x18\x39 \x01(\x08\x12\x1c\n\x14\x62otMessageInvokerJid\x18: \x01(\t\x12\x32\n\x0f\x63ommentMetadata\x18; \x01(\x0b\x32\x19.whatsapp.CommentMetadata\x12/\n\x0e\x65ventResponses\x18= \x03(\x0b\x32\x17.whatsapp.EventResponse\x12\x38\n\x12reportingTokenInfo\x18> \x01(\x0b\x32\x1c.whatsapp.ReportingTokenInfo\x12\x1a\n\x12newsletterServerId\x18? \x01(\x04\x12\x42\n\x17\x65ventAdditionalMetadata\x18@ \x01(\x0b\x32!.whatsapp.EventAdditionalMetadata\x12\x1b\n\x13isMentionedInStatus\x18\x41 \x01(\x08\x12\x16\n\x0estatusMentions\x18\x42 \x03(\t\x12-\n\x0ftargetMessageId\x18\x43 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12-\n\rmessageAddOns\x18\x44 \x03(\x0b\x32\x16.whatsapp.MessageAddOn\x12@\n\x18statusMentionMessageInfo\x18\x45 \x01(\x0b\x32\x1e.whatsapp.StatusMentionMessage\x12\x1a\n\x12isSupportAiMessage\x18\x46 \x01(\x08\x12\x1c\n\x14statusMentionSources\x18G \x03(\t\x12.\n\x12supportAiCitations\x18H \x03(\x0b\x32\x12.whatsapp.Citation\x12\x13\n\x0b\x62otTargetId\x18I \x01(\t\x12V\n!groupHistoryIndividualMessageInfo\x18J \x01(\x0b\x32+.whatsapp.GroupHistoryIndividualMessageInfo\x12@\n\x16groupHistoryBundleInfo\x18K \x01(\x0b\x32 .whatsapp.GroupHistoryBundleInfo\x12\\\n$interactiveMessageAdditionalMetadata\x18L \x01(\x0b\x32..whatsapp.InteractiveMessageAdditionalMetadata\x12\x38\n\x12quarantinedMessage\x18M \x01(\x0b\x32\x1c.whatsapp.QuarantinedMessage\x12\x16\n\x0enonJidMentions\x18N \x01(\r\x12\x0e\n\x06hsmTag\x18O \x01(\t\x12$\n\x1c\x65phemeralExpirationTimestamp\x18P \x01(\x04\x12\x44\n\x18scheduledMessageMetadata\x18Q \x01(\x0b\x32\".whatsapp.ScheduledMessageMetadata\x12\x12\n\ndecisionId\x18R \x01(\t\x12\x17\n\x0f\x64\x65\x63isionSources\x18S \x03(\t\"=\n\x10\x42izPrivacyStatus\x12\x08\n\x04\x45\x32\x45\x45\x10\x00\x12\x06\n\x02\x46\x42\x10\x02\x12\x07\n\x03\x42SP\x10\x01\x12\x0e\n\nBSP_AND_FB\x10\x03\"X\n\x06Status\x12\t\n\x05\x45RROR\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\x0e\n\nSERVER_ACK\x10\x02\x12\x10\n\x0c\x44\x45LIVERY_ACK\x10\x03\x12\x08\n\x04READ\x10\x04\x12\n\n\x06PLAYED\x10\x05\"\xf9<\n\x08StubType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06REVOKE\x10\x01\x12\x0e\n\nCIPHERTEXT\x10\x02\x12\x0f\n\x0b\x46UTUREPROOF\x10\x03\x12\x1b\n\x17NON_VERIFIED_TRANSITION\x10\x04\x12\x19\n\x15UNVERIFIED_TRANSITION\x10\x05\x12\x17\n\x13VERIFIED_TRANSITION\x10\x06\x12\x18\n\x14VERIFIED_LOW_UNKNOWN\x10\x07\x12\x11\n\rVERIFIED_HIGH\x10\x08\x12\x1c\n\x18VERIFIED_INITIAL_UNKNOWN\x10\t\x12\x18\n\x14VERIFIED_INITIAL_LOW\x10\n\x12\x19\n\x15VERIFIED_INITIAL_HIGH\x10\x0b\x12#\n\x1fVERIFIED_TRANSITION_ANY_TO_NONE\x10\x0c\x12#\n\x1fVERIFIED_TRANSITION_ANY_TO_HIGH\x10\r\x12#\n\x1fVERIFIED_TRANSITION_HIGH_TO_LOW\x10\x0e\x12\'\n#VERIFIED_TRANSITION_HIGH_TO_UNKNOWN\x10\x0f\x12&\n\"VERIFIED_TRANSITION_UNKNOWN_TO_LOW\x10\x10\x12&\n\"VERIFIED_TRANSITION_LOW_TO_UNKNOWN\x10\x11\x12#\n\x1fVERIFIED_TRANSITION_NONE_TO_LOW\x10\x12\x12\'\n#VERIFIED_TRANSITION_NONE_TO_UNKNOWN\x10\x13\x12\x10\n\x0cGROUP_CREATE\x10\x14\x12\x18\n\x14GROUP_CHANGE_SUBJECT\x10\x15\x12\x15\n\x11GROUP_CHANGE_ICON\x10\x16\x12\x1c\n\x18GROUP_CHANGE_INVITE_LINK\x10\x17\x12\x1c\n\x18GROUP_CHANGE_DESCRIPTION\x10\x18\x12\x19\n\x15GROUP_CHANGE_RESTRICT\x10\x19\x12\x19\n\x15GROUP_CHANGE_ANNOUNCE\x10\x1a\x12\x19\n\x15GROUP_PARTICIPANT_ADD\x10\x1b\x12\x1c\n\x18GROUP_PARTICIPANT_REMOVE\x10\x1c\x12\x1d\n\x19GROUP_PARTICIPANT_PROMOTE\x10\x1d\x12\x1c\n\x18GROUP_PARTICIPANT_DEMOTE\x10\x1e\x12\x1c\n\x18GROUP_PARTICIPANT_INVITE\x10\x1f\x12\x1b\n\x17GROUP_PARTICIPANT_LEAVE\x10 \x12#\n\x1fGROUP_PARTICIPANT_CHANGE_NUMBER\x10!\x12\x14\n\x10\x42ROADCAST_CREATE\x10\"\x12\x11\n\rBROADCAST_ADD\x10#\x12\x14\n\x10\x42ROADCAST_REMOVE\x10$\x12\x18\n\x14GENERIC_NOTIFICATION\x10%\x12\x18\n\x14\x45\x32\x45_IDENTITY_CHANGED\x10&\x12\x11\n\rE2E_ENCRYPTED\x10\'\x12\x15\n\x11\x43\x41LL_MISSED_VOICE\x10(\x12\x15\n\x11\x43\x41LL_MISSED_VIDEO\x10)\x12\x1c\n\x18INDIVIDUAL_CHANGE_NUMBER\x10*\x12\x10\n\x0cGROUP_DELETE\x10+\x12&\n\"GROUP_ANNOUNCE_MODE_MESSAGE_BOUNCE\x10,\x12\x1b\n\x17\x43\x41LL_MISSED_GROUP_VOICE\x10-\x12\x1b\n\x17\x43\x41LL_MISSED_GROUP_VIDEO\x10.\x12\x16\n\x12PAYMENT_CIPHERTEXT\x10/\x12\x17\n\x13PAYMENT_FUTUREPROOF\x10\x30\x12,\n(PAYMENT_TRANSACTION_STATUS_UPDATE_FAILED\x10\x31\x12.\n*PAYMENT_TRANSACTION_STATUS_UPDATE_REFUNDED\x10\x32\x12\x33\n/PAYMENT_TRANSACTION_STATUS_UPDATE_REFUND_FAILED\x10\x33\x12\x35\n1PAYMENT_TRANSACTION_STATUS_RECEIVER_PENDING_SETUP\x10\x34\x12<\n8PAYMENT_TRANSACTION_STATUS_RECEIVER_SUCCESS_AFTER_HICCUP\x10\x35\x12)\n%PAYMENT_ACTION_ACCOUNT_SETUP_REMINDER\x10\x36\x12(\n$PAYMENT_ACTION_SEND_PAYMENT_REMINDER\x10\x37\x12*\n&PAYMENT_ACTION_SEND_PAYMENT_INVITATION\x10\x38\x12#\n\x1fPAYMENT_ACTION_REQUEST_DECLINED\x10\x39\x12\"\n\x1ePAYMENT_ACTION_REQUEST_EXPIRED\x10:\x12$\n PAYMENT_ACTION_REQUEST_CANCELLED\x10;\x12)\n%BIZ_VERIFIED_TRANSITION_TOP_TO_BOTTOM\x10<\x12)\n%BIZ_VERIFIED_TRANSITION_BOTTOM_TO_TOP\x10=\x12\x11\n\rBIZ_INTRO_TOP\x10>\x12\x14\n\x10\x42IZ_INTRO_BOTTOM\x10?\x12\x13\n\x0f\x42IZ_NAME_CHANGE\x10@\x12\x1c\n\x18\x42IZ_MOVE_TO_CONSUMER_APP\x10\x41\x12\x1e\n\x1a\x42IZ_TWO_TIER_MIGRATION_TOP\x10\x42\x12!\n\x1d\x42IZ_TWO_TIER_MIGRATION_BOTTOM\x10\x43\x12\r\n\tOVERSIZED\x10\x44\x12(\n$GROUP_CHANGE_NO_FREQUENTLY_FORWARDED\x10\x45\x12\x1c\n\x18GROUP_V4_ADD_INVITE_SENT\x10\x46\x12&\n\"GROUP_PARTICIPANT_ADD_REQUEST_JOIN\x10G\x12\x1c\n\x18\x43HANGE_EPHEMERAL_SETTING\x10H\x12\x16\n\x12\x45\x32\x45_DEVICE_CHANGED\x10I\x12\x0f\n\x0bVIEWED_ONCE\x10J\x12\x15\n\x11\x45\x32\x45_ENCRYPTED_NOW\x10K\x12\"\n\x1e\x42LUE_MSG_BSP_FB_TO_BSP_PREMISE\x10L\x12\x1e\n\x1a\x42LUE_MSG_BSP_FB_TO_SELF_FB\x10M\x12#\n\x1f\x42LUE_MSG_BSP_FB_TO_SELF_PREMISE\x10N\x12\x1e\n\x1a\x42LUE_MSG_BSP_FB_UNVERIFIED\x10O\x12\x37\n3BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED\x10P\x12\x1c\n\x18\x42LUE_MSG_BSP_FB_VERIFIED\x10Q\x12\x37\n3BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED\x10R\x12(\n$BLUE_MSG_BSP_PREMISE_TO_SELF_PREMISE\x10S\x12#\n\x1f\x42LUE_MSG_BSP_PREMISE_UNVERIFIED\x10T\x12<\n8BLUE_MSG_BSP_PREMISE_UNVERIFIED_TO_SELF_PREMISE_VERIFIED\x10U\x12!\n\x1d\x42LUE_MSG_BSP_PREMISE_VERIFIED\x10V\x12<\n8BLUE_MSG_BSP_PREMISE_VERIFIED_TO_SELF_PREMISE_UNVERIFIED\x10W\x12*\n&BLUE_MSG_CONSUMER_TO_BSP_FB_UNVERIFIED\x10X\x12/\n+BLUE_MSG_CONSUMER_TO_BSP_PREMISE_UNVERIFIED\x10Y\x12+\n\'BLUE_MSG_CONSUMER_TO_SELF_FB_UNVERIFIED\x10Z\x12\x30\n,BLUE_MSG_CONSUMER_TO_SELF_PREMISE_UNVERIFIED\x10[\x12#\n\x1f\x42LUE_MSG_SELF_FB_TO_BSP_PREMISE\x10\\\x12$\n BLUE_MSG_SELF_FB_TO_SELF_PREMISE\x10]\x12\x1f\n\x1b\x42LUE_MSG_SELF_FB_UNVERIFIED\x10^\x12\x38\n4BLUE_MSG_SELF_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED\x10_\x12\x1d\n\x19\x42LUE_MSG_SELF_FB_VERIFIED\x10`\x12\x38\n4BLUE_MSG_SELF_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED\x10\x61\x12(\n$BLUE_MSG_SELF_PREMISE_TO_BSP_PREMISE\x10\x62\x12$\n BLUE_MSG_SELF_PREMISE_UNVERIFIED\x10\x63\x12\"\n\x1e\x42LUE_MSG_SELF_PREMISE_VERIFIED\x10\x64\x12\x16\n\x12\x42LUE_MSG_TO_BSP_FB\x10\x65\x12\x18\n\x14\x42LUE_MSG_TO_CONSUMER\x10\x66\x12\x17\n\x13\x42LUE_MSG_TO_SELF_FB\x10g\x12*\n&BLUE_MSG_UNVERIFIED_TO_BSP_FB_VERIFIED\x10h\x12/\n+BLUE_MSG_UNVERIFIED_TO_BSP_PREMISE_VERIFIED\x10i\x12+\n\'BLUE_MSG_UNVERIFIED_TO_SELF_FB_VERIFIED\x10j\x12#\n\x1f\x42LUE_MSG_UNVERIFIED_TO_VERIFIED\x10k\x12*\n&BLUE_MSG_VERIFIED_TO_BSP_FB_UNVERIFIED\x10l\x12/\n+BLUE_MSG_VERIFIED_TO_BSP_PREMISE_UNVERIFIED\x10m\x12+\n\'BLUE_MSG_VERIFIED_TO_SELF_FB_UNVERIFIED\x10n\x12#\n\x1f\x42LUE_MSG_VERIFIED_TO_UNVERIFIED\x10o\x12\x36\n2BLUE_MSG_BSP_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED\x10p\x12\x32\n.BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_FB_VERIFIED\x10q\x12\x36\n2BLUE_MSG_BSP_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED\x10r\x12\x32\n.BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_FB_UNVERIFIED\x10s\x12\x37\n3BLUE_MSG_SELF_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED\x10t\x12\x37\n3BLUE_MSG_SELF_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED\x10u\x12\x1c\n\x18\x45\x32\x45_IDENTITY_UNAVAILABLE\x10v\x12\x12\n\x0eGROUP_CREATING\x10w\x12\x17\n\x13GROUP_CREATE_FAILED\x10x\x12\x11\n\rGROUP_BOUNCED\x10y\x12\x11\n\rBLOCK_CONTACT\x10z\x12!\n\x1d\x45PHEMERAL_SETTING_NOT_APPLIED\x10{\x12\x0f\n\x0bSYNC_FAILED\x10|\x12\x0b\n\x07SYNCING\x10}\x12\x1c\n\x18\x42IZ_PRIVACY_MODE_INIT_FB\x10~\x12\x1d\n\x19\x42IZ_PRIVACY_MODE_INIT_BSP\x10\x7f\x12\x1b\n\x16\x42IZ_PRIVACY_MODE_TO_FB\x10\x80\x01\x12\x1c\n\x17\x42IZ_PRIVACY_MODE_TO_BSP\x10\x81\x01\x12\x16\n\x11\x44ISAPPEARING_MODE\x10\x82\x01\x12\x1c\n\x17\x45\x32\x45_DEVICE_FETCH_FAILED\x10\x83\x01\x12\x11\n\x0c\x41\x44MIN_REVOKE\x10\x84\x01\x12$\n\x1fGROUP_INVITE_LINK_GROWTH_LOCKED\x10\x85\x01\x12 \n\x1b\x43OMMUNITY_LINK_PARENT_GROUP\x10\x86\x01\x12!\n\x1c\x43OMMUNITY_LINK_SIBLING_GROUP\x10\x87\x01\x12\x1d\n\x18\x43OMMUNITY_LINK_SUB_GROUP\x10\x88\x01\x12\"\n\x1d\x43OMMUNITY_UNLINK_PARENT_GROUP\x10\x89\x01\x12#\n\x1e\x43OMMUNITY_UNLINK_SIBLING_GROUP\x10\x8a\x01\x12\x1f\n\x1a\x43OMMUNITY_UNLINK_SUB_GROUP\x10\x8b\x01\x12\x1d\n\x18GROUP_PARTICIPANT_ACCEPT\x10\x8c\x01\x12(\n#GROUP_PARTICIPANT_LINKED_GROUP_JOIN\x10\x8d\x01\x12\x15\n\x10\x43OMMUNITY_CREATE\x10\x8e\x01\x12\x1b\n\x16\x45PHEMERAL_KEEP_IN_CHAT\x10\x8f\x01\x12+\n&GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST\x10\x90\x01\x12(\n#GROUP_MEMBERSHIP_JOIN_APPROVAL_MODE\x10\x91\x01\x12\"\n\x1dINTEGRITY_UNLINK_PARENT_GROUP\x10\x92\x01\x12\"\n\x1d\x43OMMUNITY_PARTICIPANT_PROMOTE\x10\x93\x01\x12!\n\x1c\x43OMMUNITY_PARTICIPANT_DEMOTE\x10\x94\x01\x12#\n\x1e\x43OMMUNITY_PARENT_GROUP_DELETED\x10\x95\x01\x12\x34\n/COMMUNITY_LINK_PARENT_GROUP_MEMBERSHIP_APPROVAL\x10\x96\x01\x12\x34\n/GROUP_PARTICIPANT_JOINED_GROUP_AND_PARENT_GROUP\x10\x97\x01\x12\x1a\n\x15MASKED_THREAD_CREATED\x10\x98\x01\x12\x1b\n\x16MASKED_THREAD_UNMASKED\x10\x99\x01\x12\x18\n\x13\x42IZ_CHAT_ASSIGNMENT\x10\x9a\x01\x12\r\n\x08\x43HAT_PSA\x10\x9b\x01\x12\x1f\n\x1a\x43HAT_POLL_CREATION_MESSAGE\x10\x9c\x01\x12\x1e\n\x19\x43\x41G_MASKED_THREAD_CREATED\x10\x9d\x01\x12+\n&COMMUNITY_PARENT_GROUP_SUBJECT_CHANGED\x10\x9e\x01\x12\x18\n\x13\x43\x41G_INVITE_AUTO_ADD\x10\x9f\x01\x12!\n\x1c\x42IZ_CHAT_ASSIGNMENT_UNASSIGN\x10\xa0\x01\x12\x1b\n\x16\x43\x41G_INVITE_AUTO_JOINED\x10\xa1\x01\x12!\n\x1cSCHEDULED_CALL_START_MESSAGE\x10\xa2\x01\x12\x1a\n\x15\x43OMMUNITY_INVITE_RICH\x10\xa3\x01\x12#\n\x1e\x43OMMUNITY_INVITE_AUTO_ADD_RICH\x10\xa4\x01\x12\x1a\n\x15SUB_GROUP_INVITE_RICH\x10\xa5\x01\x12#\n\x1eSUB_GROUP_PARTICIPANT_ADD_RICH\x10\xa6\x01\x12%\n COMMUNITY_LINK_PARENT_GROUP_RICH\x10\xa7\x01\x12#\n\x1e\x43OMMUNITY_PARTICIPANT_ADD_RICH\x10\xa8\x01\x12\"\n\x1dSILENCED_UNKNOWN_CALLER_AUDIO\x10\xa9\x01\x12\"\n\x1dSILENCED_UNKNOWN_CALLER_VIDEO\x10\xaa\x01\x12\x1a\n\x15GROUP_MEMBER_ADD_MODE\x10\xab\x01\x12\x39\n4GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST_NON_ADMIN_ADD\x10\xac\x01\x12!\n\x1c\x43OMMUNITY_CHANGE_DESCRIPTION\x10\xad\x01\x12\x12\n\rSENDER_INVITE\x10\xae\x01\x12\x14\n\x0fRECEIVER_INVITE\x10\xaf\x01\x12(\n#COMMUNITY_ALLOW_MEMBER_ADDED_GROUPS\x10\xb0\x01\x12\x1b\n\x16PINNED_MESSAGE_IN_CHAT\x10\xb1\x01\x12!\n\x1cPAYMENT_INVITE_SETUP_INVITER\x10\xb2\x01\x12.\n)PAYMENT_INVITE_SETUP_INVITEE_RECEIVE_ONLY\x10\xb3\x01\x12\x32\n-PAYMENT_INVITE_SETUP_INVITEE_SEND_AND_RECEIVE\x10\xb4\x01\x12\x1c\n\x17LINKED_GROUP_CALL_START\x10\xb5\x01\x12#\n\x1eREPORT_TO_ADMIN_ENABLED_STATUS\x10\xb6\x01\x12\x1a\n\x15\x45MPTY_SUBGROUP_CREATE\x10\xb7\x01\x12\x1a\n\x15SCHEDULED_CALL_CANCEL\x10\xb8\x01\x12+\n&SUBGROUP_ADMIN_TRIGGERED_AUTO_ADD_RICH\x10\xb9\x01\x12(\n#GROUP_CHANGE_RECENT_HISTORY_SHARING\x10\xba\x01\x12$\n\x1fPAID_MESSAGE_SERVER_CAMPAIGN_ID\x10\xbb\x01\x12\x18\n\x13GENERAL_CHAT_CREATE\x10\xbc\x01\x12\x15\n\x10GENERAL_CHAT_ADD\x10\xbd\x01\x12#\n\x1eGENERAL_CHAT_AUTO_ADD_DISABLED\x10\xbe\x01\x12 \n\x1bSUGGESTED_SUBGROUP_ANNOUNCE\x10\xbf\x01\x12!\n\x1c\x42IZ_BOT_1P_MESSAGING_ENABLED\x10\xc0\x01\x12\x14\n\x0f\x43HANGE_USERNAME\x10\xc1\x01\x12\x1f\n\x1a\x42IZ_COEX_PRIVACY_INIT_SELF\x10\xc2\x01\x12%\n BIZ_COEX_PRIVACY_TRANSITION_SELF\x10\xc3\x01\x12\x19\n\x14SUPPORT_AI_EDUCATION\x10\xc4\x01\x12!\n\x1c\x42IZ_BOT_3P_MESSAGING_ENABLED\x10\xc5\x01\x12\x1b\n\x16REMINDER_SETUP_MESSAGE\x10\xc6\x01\x12\x1a\n\x15REMINDER_SENT_MESSAGE\x10\xc7\x01\x12\x1c\n\x17REMINDER_CANCEL_MESSAGE\x10\xc8\x01\x12\x1a\n\x15\x42IZ_COEX_PRIVACY_INIT\x10\xc9\x01\x12 \n\x1b\x42IZ_COEX_PRIVACY_TRANSITION\x10\xca\x01\x12\x16\n\x11GROUP_DEACTIVATED\x10\xcb\x01\x12\'\n\"COMMUNITY_DEACTIVATE_SIBLING_GROUP\x10\xcc\x01\x12\x12\n\rEVENT_UPDATED\x10\xcd\x01\x12\x13\n\x0e\x45VENT_CANCELED\x10\xce\x01\x12\x1c\n\x17\x43OMMUNITY_OWNER_UPDATED\x10\xcf\x01\x12*\n%COMMUNITY_SUB_GROUP_VISIBILITY_HIDDEN\x10\xd0\x01\x12$\n\x1f\x43\x41PI_GROUP_NE2EE_SYSTEM_MESSAGE\x10\xd1\x01\x12\x13\n\x0eSTATUS_MENTION\x10\xd2\x01\x12!\n\x1cUSER_CONTROLS_SYSTEM_MESSAGE\x10\xd3\x01\x12\x1b\n\x16SUPPORT_SYSTEM_MESSAGE\x10\xd4\x01\x12\x0f\n\nCHANGE_LID\x10\xd5\x01\x12\x31\n,BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_IN_MESSAGE\x10\xd6\x01\x12\x32\n-BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_OUT_MESSAGE\x10\xd7\x01\x12\x19\n\x14\x43HANGE_LIMIT_SHARING\x10\xd8\x01\x12\x1b\n\x16GROUP_MEMBER_LINK_MODE\x10\xd9\x01\x12\x32\n-BIZ_AUTOMATICALLY_LABELED_CHAT_SYSTEM_MESSAGE\x10\xda\x01\x12\x30\n+PHONE_NUMBER_HIDING_CHAT_DEPRECATED_MESSAGE\x10\xdb\x01\x12\x18\n\x13QUARANTINED_MESSAGE\x10\xdc\x01\x12*\n%GROUP_MEMBER_SHARE_GROUP_HISTORY_MODE\x10\xdd\x01\x12\x19\n\x14GROUP_OPEN_BOT_ADDED\x10\xde\x01\x12\x18\n\x13GROUP_TEE_BOT_ADDED\x10\xdf\x01\x12\x11\n\x0c\x43ONTACT_INFO\x10\xe0\x01\x12\x1e\n\x19SCHEDULED_MESSAGE_CREATED\x10\xe1\x01\x12\x1a\n\x15IDENTITY_TRUST_MARKED\x10\xe2\x01\x12\x1c\n\x17IDENTITY_TRUST_UNMARKED\x10\xe3\x01\x12\x1b\n\x16IDENTITY_TRUST_REVOKED\x10\xe4\x01\x12\x1d\n\x18\x43TWA_CONSUMER_DISCLOSURE\x10\xe6\x01\"Y\n\x1eWebMessageInfoWithMessageBytes\x12!\n\x03key\x18\x01 \x01(\x0b\x32\x14.whatsapp.MessageKey\x12\x14\n\x0cmessageBytes\x18\x02 \x01(\x0c\"\x8c\x01\n\x14WebNotificationsInfo\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x13\n\x0bunreadChats\x18\x03 \x01(\r\x12\x1a\n\x12notifyMessageCount\x18\x04 \x01(\r\x12\x30\n\x0enotifyMessages\x18\x05 \x03(\x0b\x32\x18.whatsapp.WebMessageInfo\"6\n\"WrapTransportSigningPublicKeyInput\x12\x10\n\x08keyBytes\x18\x01 \x02(\x0c\":\n#WrapTransportSigningPublicKeyResult\x12\x13\n\x0bprefixedKey\x18\x01 \x02(\x0c\"6\n\"WrapTransportSigningSecretKeyInput\x12\x10\n\x08keyBytes\x18\x01 \x02(\x0c\":\n#WrapTransportSigningSecretKeyResult\x12\x13\n\x0bprefixedKey\x18\x01 \x02(\x0c*7\n\x11\x41\x44VEncryptionType\x12\x08\n\x04\x45\x32\x45\x45\x10\x00\x12\n\n\x06HOSTED\x10\x01\x12\x0c\n\x08NON_E2EE\x10\x02*b\n\x19\x41IRichResponseMessageType\x12!\n\x1d\x41I_RICH_RESPONSE_TYPE_UNKNOWN\x10\x00\x12\"\n\x1e\x41I_RICH_RESPONSE_TYPE_STANDARD\x10\x01*\xca\x02\n\x1c\x41IRichResponseSubMessageType\x12\x1c\n\x18\x41I_RICH_RESPONSE_UNKNOWN\x10\x00\x12\x1f\n\x1b\x41I_RICH_RESPONSE_GRID_IMAGE\x10\x01\x12\x19\n\x15\x41I_RICH_RESPONSE_TEXT\x10\x02\x12!\n\x1d\x41I_RICH_RESPONSE_INLINE_IMAGE\x10\x03\x12\x1a\n\x16\x41I_RICH_RESPONSE_TABLE\x10\x04\x12\x19\n\x15\x41I_RICH_RESPONSE_CODE\x10\x05\x12\x1c\n\x18\x41I_RICH_RESPONSE_DYNAMIC\x10\x06\x12\x18\n\x14\x41I_RICH_RESPONSE_MAP\x10\x07\x12\x1a\n\x16\x41I_RICH_RESPONSE_LATEX\x10\x08\x12\"\n\x1e\x41I_RICH_RESPONSE_CONTENT_ITEMS\x10\t*Z\n\x19\x41ISubscriptionRequestType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0e\n\nTHINK_HARD\x10\x01\x12\r\n\tIMAGE_GEN\x10\x02\x12\r\n\tVIDEO_GEN\x10\x03*\xa0\n\n\x14\x42otMetricsEntryPoint\x12\x19\n\x15UNDEFINED_ENTRY_POINT\x10\x00\x12\x0b\n\x07\x46\x41VICON\x10\x01\x12\x0c\n\x08\x43HATLIST\x10\x02\x12#\n\x1f\x41ISEARCH_NULL_STATE_PAPER_PLANE\x10\x03\x12\"\n\x1e\x41ISEARCH_NULL_STATE_SUGGESTION\x10\x04\x12\"\n\x1e\x41ISEARCH_TYPE_AHEAD_SUGGESTION\x10\x05\x12#\n\x1f\x41ISEARCH_TYPE_AHEAD_PAPER_PLANE\x10\x06\x12\'\n#AISEARCH_TYPE_AHEAD_RESULT_CHATLIST\x10\x07\x12\'\n#AISEARCH_TYPE_AHEAD_RESULT_MESSAGES\x10\x08\x12\x16\n\x12\x41IVOICE_SEARCH_BAR\x10\t\x12\x13\n\x0f\x41IVOICE_FAVICON\x10\n\x12\x0c\n\x08\x41ISTUDIO\x10\x0b\x12\x0c\n\x08\x44\x45\x45PLINK\x10\x0c\x12\x10\n\x0cNOTIFICATION\x10\r\x12\x1a\n\x16PROFILE_MESSAGE_BUTTON\x10\x0e\x12\x0b\n\x07\x46ORWARD\x10\x0f\x12\x10\n\x0c\x41PP_SHORTCUT\x10\x10\x12\r\n\tFF_FAMILY\x10\x11\x12\n\n\x06\x41I_TAB\x10\x12\x12\x0b\n\x07\x41I_HOME\x10\x13\x12\x19\n\x15\x41I_DEEPLINK_IMMERSIVE\x10\x14\x12\x0f\n\x0b\x41I_DEEPLINK\x10\x15\x12#\n\x1fMETA_AI_CHAT_SHORTCUT_AI_STUDIO\x10\x16\x12\x1f\n\x1bUGC_CHAT_SHORTCUT_AI_STUDIO\x10\x17\x12\x16\n\x12NEW_CHAT_AI_STUDIO\x10\x18\x12 \n\x1c\x41IVOICE_FAVICON_CALL_HISTORY\x10\x19\x12\x1c\n\x18\x41SK_META_AI_CONTEXT_MENU\x10\x1a\x12!\n\x1d\x41SK_META_AI_CONTEXT_MENU_1ON1\x10\x1b\x12\"\n\x1e\x41SK_META_AI_CONTEXT_MENU_GROUP\x10\x1c\x12\x17\n\x13INVOKE_META_AI_1ON1\x10\x1d\x12\x18\n\x14INVOKE_META_AI_GROUP\x10\x1e\x12\x13\n\x0fMETA_AI_FORWARD\x10\x1f\x12\x17\n\x13NEW_CHAT_AI_CONTACT\x10 \x12$\n MESSAGE_QUICK_ACTION_1_ON_1_CHAT\x10!\x12#\n\x1fMESSAGE_QUICK_ACTION_GROUP_CHAT\x10\"\x12\x1f\n\x1b\x41TTACHMENT_TRAY_1_ON_1_CHAT\x10#\x12\x1e\n\x1a\x41TTACHMENT_TRAY_GROUP_CHAT\x10$\x12!\n\x1d\x41SK_META_AI_MEDIA_VIEWER_1ON1\x10%\x12\"\n\x1e\x41SK_META_AI_MEDIA_VIEWER_GROUP\x10&\x12\x1c\n\x18MEDIA_PICKER_1_ON_1_CHAT\x10\'\x12\x1b\n\x17MEDIA_PICKER_GROUP_CHAT\x10(\x12!\n\x1d\x41SK_META_AI_NO_SEARCH_RESULTS\x10)\x12\x14\n\x10META_AI_SETTINGS\x10-\x12\x13\n\x0fWEB_INTRO_PANEL\x10.\x12\x16\n\x12WEB_NAVIGATION_BAR\x10/\x12\x10\n\x0cGROUP_MEMBER\x10\x36\x12\x13\n\x0f\x43HATLIST_SEARCH\x10\x37\x12\x11\n\rNEW_CHAT_LIST\x10\x38\x12\x10\n\x0c\x43ONTACTS_TAB\x10\x39*\xa2\x01\n\x1a\x42otMetricsThreadEntryPoint\x12\x11\n\rAI_TAB_THREAD\x10\x01\x12\x12\n\x0e\x41I_HOME_THREAD\x10\x02\x12 \n\x1c\x41I_DEEPLINK_IMMERSIVE_THREAD\x10\x03\x12\x16\n\x12\x41I_DEEPLINK_THREAD\x10\x04\x12#\n\x1f\x41SK_META_AI_CONTEXT_MENU_THREAD\x10\x05*\x92\x01\n\x10\x42otSessionSource\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nNULL_STATE\x10\x01\x12\r\n\tTYPEAHEAD\x10\x02\x12\x0e\n\nUSER_INPUT\x10\x03\x12\r\n\tEMU_FLASH\x10\x04\x12\x16\n\x12\x45MU_FLASH_FOLLOWUP\x10\x05\x12\t\n\x05VOICE\x10\x06\x12\x13\n\x0f\x41I_HOME_SESSION\x10\x07*H\n\x14\x43OMMAND_COMMAND_TYPE\x12\x0c\n\x08\x45VERYONE\x10\x01\x12\n\n\x06SILENT\x10\x02\x12\x06\n\x02\x41I\x10\x03\x12\x0e\n\nAI_IMAGINE\x10\x04*S\n/CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE\x12\t\n\x05SMALL\x10\x01\x12\n\n\x06MEDIUM\x10\x02\x12\t\n\x05LARGE\x10\x03*\x9f\x01\n1CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE\x12\x0e\n\nSANS_SERIF\x10\x00\x12\t\n\x05SERIF\x10\x01\x12\x13\n\x0fNORICAN_REGULAR\x10\x02\x12\x11\n\rBRYNDAN_WRITE\x10\x03\x12\x15\n\x11\x42\x45\x42\x41SNEUE_REGULAR\x10\x04\x12\x10\n\x0cOSWALD_HEAVY\x10\x05*\x8b\x01\n\x0e\x43ollectionName\x12\x1b\n\x17\x43OLLECTION_NAME_UNKNOWN\x10\x00\x12\x0b\n\x07REGULAR\x10\x01\x12\x0f\n\x0bREGULAR_LOW\x10\x02\x12\x10\n\x0cREGULAR_HIGH\x10\x03\x12\x12\n\x0e\x43RITICAL_BLOCK\x10\x04\x12\x18\n\x14\x43RITICAL_UNBLOCK_LOW\x10\x05*;\n(EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE\x12\x0f\n\x0bOPEN_NATIVE\x10\x0b*\xc9\x11\n.EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE\x12\x18\n\x0bUNSUPPORTED\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12\x1a\n\x16IG_STORY_PHOTO_MENTION\x10\x04\x12\x1e\n\x1aIG_SINGLE_IMAGE_POST_SHARE\x10\t\x12\x16\n\x12IG_MULTIPOST_SHARE\x10\n\x12\x1e\n\x1aIG_SINGLE_VIDEO_POST_SHARE\x10\x0b\x12\x18\n\x14IG_STORY_PHOTO_SHARE\x10\x0c\x12\x18\n\x14IG_STORY_VIDEO_SHARE\x10\r\x12\x12\n\x0eIG_CLIPS_SHARE\x10\x0e\x12\x11\n\rIG_IGTV_SHARE\x10\x0f\x12\x11\n\rIG_SHOP_SHARE\x10\x10\x12\x14\n\x10IG_PROFILE_SHARE\x10\x13\x12\"\n\x1eIG_STORY_PHOTO_HIGHLIGHT_SHARE\x10\x14\x12\"\n\x1eIG_STORY_VIDEO_HIGHLIGHT_SHARE\x10\x15\x12\x12\n\x0eIG_STORY_REPLY\x10\x16\x12\x15\n\x11IG_STORY_REACTION\x10\x17\x12\x1a\n\x16IG_STORY_VIDEO_MENTION\x10\x18\x12\x1c\n\x18IG_STORY_HIGHLIGHT_REPLY\x10\x19\x12\x1f\n\x1bIG_STORY_HIGHLIGHT_REACTION\x10\x1a\x12\x14\n\x10IG_EXTERNAL_LINK\x10\x1b\x12\x15\n\x11IG_RECEIVER_FETCH\x10\x1c\x12\x12\n\rFB_FEED_SHARE\x10\xe8\x07\x12\x13\n\x0e\x46\x42_STORY_REPLY\x10\xe9\x07\x12\x13\n\x0e\x46\x42_STORY_SHARE\x10\xea\x07\x12\x15\n\x10\x46\x42_STORY_MENTION\x10\xeb\x07\x12\x18\n\x13\x46\x42_FEED_VIDEO_SHARE\x10\xec\x07\x12\x1c\n\x17\x46\x42_GAMING_CUSTOM_UPDATE\x10\xed\x07\x12\x1c\n\x17\x46\x42_PRODUCER_STORY_REPLY\x10\xee\x07\x12\r\n\x08\x46\x42_EVENT\x10\xef\x07\x12\x1f\n\x1a\x46\x42_FEED_POST_PRIVATE_REPLY\x10\xf0\x07\x12\r\n\x08\x46\x42_SHORT\x10\xf1\x07\x12\x1d\n\x18\x46\x42_COMMENT_MENTION_SHARE\x10\xf2\x07\x12\x14\n\x0f\x46\x42_POST_MENTION\x10\xf3\x07\x12\x1e\n\x19\x46\x42_PROFILE_DIRECTORY_ITEM\x10\xf5\x07\x12 \n\x1b\x46\x42_FEED_POST_REACTION_REPLY\x10\xf6\x07\x12\x17\n\x12\x46\x42_QUICKSNAP_REPLY\x10\xf7\x07\x12\x1c\n\x17MSG_EXTERNAL_LINK_SHARE\x10\xd0\x0f\x12\x14\n\x0fMSG_P2P_PAYMENT\x10\xd1\x0f\x12\x19\n\x14MSG_LOCATION_SHARING\x10\xd2\x0f\x12\x1c\n\x17MSG_LOCATION_SHARING_V2\x10\xd3\x0f\x12,\n\'MSG_HIGHLIGHTS_TAB_FRIEND_UPDATES_REPLY\x10\xd4\x0f\x12)\n$MSG_HIGHLIGHTS_TAB_LOCAL_EVENT_REPLY\x10\xd5\x0f\x12\x17\n\x12MSG_RECEIVER_FETCH\x10\xd6\x0f\x12\x17\n\x12MSG_IG_MEDIA_SHARE\x10\xd7\x0f\x12&\n!MSG_GEN_AI_SEARCH_PLUGIN_RESPONSE\x10\xd8\x0f\x12\x13\n\x0eMSG_REELS_LIST\x10\xd9\x0f\x12\x10\n\x0bMSG_CONTACT\x10\xda\x0f\x12\x1b\n\x16MSG_THREADS_POST_SHARE\x10\xdb\x0f\x12\r\n\x08MSG_FILE\x10\xdc\x0f\x12\x17\n\x12MSG_AVATAR_DETAILS\x10\xdd\x0f\x12\x13\n\x0eMSG_AI_CONTACT\x10\xde\x0f\x12\x17\n\x12MSG_MEMORIES_SHARE\x10\xdf\x0f\x12\x1b\n\x16MSG_SHARED_ALBUM_REPLY\x10\xe0\x0f\x12\x15\n\x10MSG_SHARED_ALBUM\x10\xe1\x0f\x12\x18\n\x13MSG_OCCAMADILLO_XMA\x10\xe2\x0f\x12\x1c\n\x17MSG_GEN_AI_SUBSCRIPTION\x10\xe5\x0f\x12\x18\n\x13MSG_GEN_AI_REMINDER\x10\xe6\x0f\x12(\n#MSG_GEN_AI_MEMU_ONBOARDING_RESPONSE\x10\xe7\x0f\x12\x13\n\x0eMSG_NOTE_REPLY\x10\xe8\x0f\x12\x15\n\x10MSG_NOTE_MENTION\x10\xe9\x0f\x12\x12\n\rGEN_AI_ENTITY\x10\xea\x0f\x12\x18\n\x13MSG_OPG_P2P_PAYMENT\x10\xeb\x0f\x12\x19\n\x14GEN_AI_RICH_RESPONSE\x10\xec\x0f\x12\x16\n\x11MSG_MUSIC_STICKER\x10\xed\x0f\x12\x15\n\x10MSG_PHONE_NUMBER\x10\xee\x0f\x12\x16\n\x11\x41I_ACTIVITY_SHARE\x10\xef\x0f\x12\x14\n\x0fMSG_PRIVATE_XMA\x10\xf0\x0f\x12\x1c\n\x17MSG_SOCIAL_CUE_MEMORIES\x10\xf1\x0f\x12\x1e\n\x19MSG_MANUS_GROWTH_REFERRAL\x10\x8c\x10\x12\x14\n\x0fMSG_MOMENT_LINK\x10\x8d\x10\x12\x15\n\x10MSG_HORIZON_WEEL\x10\x8e\x10\x12\x15\n\x10MSG_MOMENT_ADDED\x10\x8f\x10\x12\x13\n\x0eRTC_AUDIO_CALL\x10\xb8\x17\x12\x13\n\x0eRTC_VIDEO_CALL\x10\xb9\x17\x12\x1a\n\x15RTC_MISSED_AUDIO_CALL\x10\xba\x17\x12\x1a\n\x15RTC_MISSED_VIDEO_CALL\x10\xbb\x17\x12\x19\n\x14RTC_GROUP_AUDIO_CALL\x10\xbc\x17\x12\x19\n\x14RTC_GROUP_VIDEO_CALL\x10\xbd\x17\x12 \n\x1bRTC_MISSED_GROUP_AUDIO_CALL\x10\xbe\x17\x12 \n\x1bRTC_MISSED_GROUP_VIDEO_CALL\x10\xbf\x17\x12\x1b\n\x16RTC_ONGOING_AUDIO_CALL\x10\xc0\x17\x12\x1b\n\x16RTC_ONGOING_VIDEO_CALL\x10\xc1\x17\x12 \n\x1bMSG_RECEIVER_FETCH_FALLBACK\x10\xd1\x17\x12\x1a\n\x15\x44\x41TACLASS_SENDER_COPY\x10\xa0\x1f*]\n+EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE\x12\x0f\n\x0bSENDER_COPY\x10\x00\x12\n\n\x06SERVER\x10\x01\x12\x11\n\rSIGNED_CLIENT\x10\x02*}\n(EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE\x12\n\n\x06SINGLE\x10\x00\x12\x0b\n\x07HSCROLL\x10\x01\x12\x0c\n\x08PORTRAIT\x10\x03\x12\x11\n\rSTANDARD_DXMA\x10\x0c\x12\r\n\tLIST_DXMA\x10\x0f\x12\x08\n\x04GRID\x10\x10*H\n\x15\x46UTURE_PROOF_BEHAVIOR\x12\x0f\n\x0bPLACEHOLDER\x10\x00\x12\x12\n\x0eNO_PLACEHOLDER\x10\x01\x12\n\n\x06IGNORE\x10\x02*@\n\x08KeepType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x10\n\x0cKEEP_FOR_ALL\x10\x01\x12\x15\n\x11UNDO_KEEP_FOR_ALL\x10\x02*#\n\x14MENTION_MENTION_TYPE\x12\x0b\n\x07PROFILE\x10\x00*h\n\x0eMediaKeyDomain\x12\x1c\n\x18MEDIA_KEY_DOMAIN_UNKNOWN\x10\x00\x12\x19\n\x15MEDIA_KEY_DOMAIN_E2EE\x10\x01\x12\x1d\n\x19MEDIA_KEY_DOMAIN_NON_E2EE\x10\x02*/\n\x0fMediaVisibility\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x07\n\x03OFF\x10\x01\x12\x06\n\x02ON\x10\x02*\xe3\x14\n\rMutationProps\x12\x0f\n\x0bSTAR_ACTION\x10\x02\x12\x12\n\x0e\x43ONTACT_ACTION\x10\x03\x12\x0f\n\x0bMUTE_ACTION\x10\x04\x12\x0e\n\nPIN_ACTION\x10\x05\x12!\n\x1dSECURITY_NOTIFICATION_SETTING\x10\x06\x12\x15\n\x11PUSH_NAME_SETTING\x10\x07\x12\x16\n\x12QUICK_REPLY_ACTION\x10\x08\x12\x1f\n\x1bRECENT_EMOJI_WEIGHTS_ACTION\x10\x0b\x12\x18\n\x14LABEL_MESSAGE_ACTION\x10\r\x12\x15\n\x11LABEL_EDIT_ACTION\x10\x0e\x12\x1c\n\x18LABEL_ASSOCIATION_ACTION\x10\x0f\x12\x12\n\x0eLOCALE_SETTING\x10\x10\x12\x17\n\x13\x41RCHIVE_CHAT_ACTION\x10\x11\x12 \n\x1c\x44\x45LETE_MESSAGE_FOR_ME_ACTION\x10\x12\x12\x12\n\x0eKEY_EXPIRATION\x10\x13\x12\x1c\n\x18MARK_CHAT_AS_READ_ACTION\x10\x14\x12\x15\n\x11\x43LEAR_CHAT_ACTION\x10\x15\x12\x16\n\x12\x44\x45LETE_CHAT_ACTION\x10\x16\x12\x1b\n\x17UNARCHIVE_CHATS_SETTING\x10\x17\x12\x13\n\x0fPRIMARY_FEATURE\x10\x18\x12\x1f\n\x1b\x41NDROID_UNSUPPORTED_ACTIONS\x10\x1a\x12\x10\n\x0c\x41GENT_ACTION\x10\x1b\x12\x17\n\x13SUBSCRIPTION_ACTION\x10\x1c\x12\x1b\n\x17USER_STATUS_MUTE_ACTION\x10\x1d\x12\x16\n\x12TIME_FORMAT_ACTION\x10\x1e\x12\x0e\n\nNUX_ACTION\x10\x1f\x12\x1a\n\x16PRIMARY_VERSION_ACTION\x10 \x12\x12\n\x0eSTICKER_ACTION\x10!\x12 \n\x1cREMOVE_RECENT_STICKER_ACTION\x10\"\x12\x13\n\x0f\x43HAT_ASSIGNMENT\x10#\x12!\n\x1d\x43HAT_ASSIGNMENT_OPENED_STATUS\x10$\x12\x1a\n\x16PN_FOR_LID_CHAT_ACTION\x10%\x12\x1c\n\x18MARKETING_MESSAGE_ACTION\x10&\x12&\n\"MARKETING_MESSAGE_BROADCAST_ACTION\x10\'\x12\x1c\n\x18\x45XTERNAL_WEB_BETA_ACTION\x10(\x12#\n\x1fPRIVACY_SETTING_RELAY_ALL_CALLS\x10)\x12\x13\n\x0f\x43\x41LL_LOG_ACTION\x10*\x12\x0b\n\x07UGC_BOT\x10+\x12\x12\n\x0eSTATUS_PRIVACY\x10,\x12\x1e\n\x1a\x42OT_WELCOME_REQUEST_ACTION\x10-\x12\x1e\n\x1a\x44\x45LETE_INDIVIDUAL_CALL_LOG\x10.\x12\x1b\n\x17LABEL_REORDERING_ACTION\x10/\x12\x17\n\x13PAYMENT_INFO_ACTION\x10\x30\x12!\n\x1d\x43USTOM_PAYMENT_METHODS_ACTION\x10\x31\x12\x14\n\x10LOCK_CHAT_ACTION\x10\x32\x12\x16\n\x12\x43HAT_LOCK_SETTINGS\x10\x33\x12\x1f\n\x1bWAMO_USER_IDENTIFIER_ACTION\x10\x34\x12\x30\n,PRIVACY_SETTING_DISABLE_LINK_PREVIEWS_ACTION\x10\x35\x12\x17\n\x13\x44\x45VICE_CAPABILITIES\x10\x36\x12\x14\n\x10NOTE_EDIT_ACTION\x10\x37\x12\x14\n\x10\x46\x41VORITES_ACTION\x10\x38\x12#\n\x1fMERCHANT_PAYMENT_PARTNER_ACTION\x10\x39\x12$\n WAFFLE_ACCOUNT_LINK_STATE_ACTION\x10:\x12\x1c\n\x18USERNAME_CHAT_START_MODE\x10;\x12(\n$NOTIFICATION_ACTIVITY_SETTING_ACTION\x10<\x12\x16\n\x12LID_CONTACT_ACTION\x10=\x12)\n%CTWA_PER_CUSTOMER_DATA_SHARING_ACTION\x10>\x12\x16\n\x12PAYMENT_TOS_ACTION\x10?\x12?\n;PRIVACY_SETTING_CHANNELS_PERSONALISED_RECOMMENDATION_ACTION\x10@\x12)\n%BUSINESS_BROADCAST_ASSOCIATION_ACTION\x10\x41\x12#\n\x1f\x44\x45TECTED_OUTCOMES_STATUS_ACTION\x10\x42\x12$\n MAIBA_AI_FEATURES_CONTROL_ACTION\x10\x44\x12\"\n\x1e\x42USINESS_BROADCAST_LIST_ACTION\x10\x45\x12\x18\n\x14MUSIC_USER_ID_ACTION\x10\x46\x12\x36\n2STATUS_POST_OPT_IN_NOTIFICATION_PREFERENCES_ACTION\x10G\x12\x19\n\x15\x41VATAR_UPDATED_ACTION\x10H\x12\x16\n\x12GALAXY_FLOW_ACTION\x10I\x12%\n!PRIVATE_PROCESSING_SETTING_ACTION\x10J\x12%\n!NEWSLETTER_SAVED_INTERESTS_ACTION\x10K\x12\x1b\n\x17\x41I_THREAD_RENAME_ACTION\x10L\x12\x1e\n\x1aINTERACTIVE_MESSAGE_ACTION\x10M\x12\x18\n\x14SETTINGS_SYNC_ACTION\x10N\x12\x16\n\x12OUT_CONTACT_ACTION\x10O\x12\x18\n\x14NCT_SALT_SYNC_ACTION\x10P\x12&\n\"BUSINESS_BROADCAST_CAMPAIGN_ACTION\x10Q\x12&\n\"BUSINESS_BROADCAST_INSIGHTS_ACTION\x10R\x12\x18\n\x14\x43USTOMER_DATA_ACTION\x10S\x12 \n\x1cSUBSCRIPTIONS_SYNC_V2_ACTION\x10T\x12\x15\n\x11THREAD_PIN_ACTION\x10U\x12\'\n#AUTO_ORGANIZE_BUSINESS_CHAT_SETTING\x10V\x12 \n\x1c\x42IZ_AI_SETTINGS_NUDGE_ACTION\x10W\x12\x1a\n\x16\x43OEX_V2_VERSION_ACTION\x10X\x12\x1b\n\x17WASA_ROOT_SECRET_ACTION\x10Y\x12\x1e\n\x1a\x42UBBLE_LOCK_MESSAGE_ACTION\x10Z\x12\x18\n\x14LABEL_SUBLIST_ACTION\x10[\x12\x1a\n\x16\x44\x45VICE_CAPABILITIES_V2\x10\\\x12 \n\x1c\x43TWA_MESSAGE_RECEIVED_ACTION\x10]\x12\x11\n\x0cSHARE_OWN_PN\x10\x91N\x12\x1e\n\x19\x42USINESS_BROADCAST_ACTION\x10\x92N\x12\x1c\n\x17\x41I_THREAD_DELETE_ACTION\x10\x93N*E\n\x14PrivacySystemMessage\x12\x0c\n\x08\x45\x32\x45\x45_MSG\x10\x01\x12\x0e\n\nNE2EE_SELF\x10\x02\x12\x0f\n\x0bNE2EE_OTHER\x10\x03*H\n\x17SessionTransparencyType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x1b\n\x17NY_AI_SAFETY_DISCLAIMER\x10\x01*.\n\x13WebLinkRenderConfig\x12\x0b\n\x07WEBVIEW\x10\x00\x12\n\n\x06SYSTEM\x10\x01') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'waproto.whatsapp_pb2', _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'whatsapp_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: DESCRIPTOR._loaded_options = None _globals['_ADVKEYINDEXLIST'].fields_by_name['validIndexes']._loaded_options = None @@ -45,1648 +45,1948 @@ _globals['_MESSAGE_APPSTATESYNCKEYFINGERPRINT'].fields_by_name['deviceIndexes']._serialized_options = b'\020\001' _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION_MUSICUSERIDMAPENTRY']._loaded_options = None _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION_MUSICUSERIDMAPENTRY']._serialized_options = b'8\001' - _globals['_ADVENCRYPTIONTYPE']._serialized_start=158805 - _globals['_ADVENCRYPTIONTYPE']._serialized_end=158860 - _globals['_AIRICHRESPONSEMESSAGETYPE']._serialized_start=158862 - _globals['_AIRICHRESPONSEMESSAGETYPE']._serialized_end=158960 - _globals['_AIRICHRESPONSESUBMESSAGETYPE']._serialized_start=158963 - _globals['_AIRICHRESPONSESUBMESSAGETYPE']._serialized_end=159293 - _globals['_AISUBSCRIPTIONREQUESTTYPE']._serialized_start=159295 - _globals['_AISUBSCRIPTIONREQUESTTYPE']._serialized_end=159385 - _globals['_BOTMETRICSENTRYPOINT']._serialized_start=159388 - _globals['_BOTMETRICSENTRYPOINT']._serialized_end=160682 - _globals['_BOTMETRICSTHREADENTRYPOINT']._serialized_start=160685 - _globals['_BOTMETRICSTHREADENTRYPOINT']._serialized_end=160847 - _globals['_BOTSESSIONSOURCE']._serialized_start=160850 - _globals['_BOTSESSIONSOURCE']._serialized_end=160996 - _globals['_COMMAND_COMMAND_TYPE']._serialized_start=160998 - _globals['_COMMAND_COMMAND_TYPE']._serialized_end=161070 - _globals['_CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE']._serialized_start=161072 - _globals['_CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE']._serialized_end=161155 - _globals['_CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE']._serialized_start=161158 - _globals['_CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE']._serialized_end=161317 - _globals['_COLLECTIONNAME']._serialized_start=161320 - _globals['_COLLECTIONNAME']._serialized_end=161459 - _globals['_FUTURE_PROOF_BEHAVIOR']._serialized_start=161461 - _globals['_FUTURE_PROOF_BEHAVIOR']._serialized_end=161533 - _globals['_KEEPTYPE']._serialized_start=161535 - _globals['_KEEPTYPE']._serialized_end=161599 - _globals['_MENTION_MENTION_TYPE']._serialized_start=161601 - _globals['_MENTION_MENTION_TYPE']._serialized_end=161636 - _globals['_MEDIAKEYDOMAIN']._serialized_start=161638 - _globals['_MEDIAKEYDOMAIN']._serialized_end=161742 - _globals['_MEDIAVISIBILITY']._serialized_start=161744 - _globals['_MEDIAVISIBILITY']._serialized_end=161791 - _globals['_MUTATIONPROPS']._serialized_start=161794 - _globals['_MUTATIONPROPS']._serialized_end=164276 - _globals['_PRIVACYSYSTEMMESSAGE']._serialized_start=164278 - _globals['_PRIVACYSYSTEMMESSAGE']._serialized_end=164347 - _globals['_SESSIONTRANSPARENCYTYPE']._serialized_start=164349 - _globals['_SESSIONTRANSPARENCYTYPE']._serialized_end=164421 - _globals['_WEBLINKRENDERCONFIG']._serialized_start=164423 - _globals['_WEBLINKRENDERCONFIG']._serialized_end=164469 - _globals['_ADVDEVICEIDENTITY']._serialized_start=37 - _globals['_ADVDEVICEIDENTITY']._serialized_end=207 - _globals['_ADVKEYINDEXLIST']._serialized_start=210 - _globals['_ADVKEYINDEXLIST']._serialized_end=359 - _globals['_ADVSIGNEDDEVICEIDENTITY']._serialized_start=361 - _globals['_ADVSIGNEDDEVICEIDENTITY']._serialized_end=483 - _globals['_ADVSIGNEDDEVICEIDENTITYHMAC']._serialized_start=485 - _globals['_ADVSIGNEDDEVICEIDENTITYHMAC']._serialized_end=595 - _globals['_ADVSIGNEDKEYINDEXLIST']._serialized_start=597 - _globals['_ADVSIGNEDKEYINDEXLIST']._serialized_end=692 - _globals['_AIHOMESTATE']._serialized_start=695 - _globals['_AIHOMESTATE']._serialized_end=1227 - _globals['_AIHOMESTATE_AIHOMEOPTION']._serialized_start=862 - _globals['_AIHOMESTATE_AIHOMEOPTION']._serialized_end=1227 - _globals['_AIHOMESTATE_AIHOMEOPTION_AIHOMEACTIONTYPE']._serialized_start=1101 - _globals['_AIHOMESTATE_AIHOMEOPTION_AIHOMEACTIONTYPE']._serialized_end=1227 - _globals['_AIMEDIACOLLECTIONMESSAGE']._serialized_start=1229 - _globals['_AIMEDIACOLLECTIONMESSAGE']._serialized_end=1331 - _globals['_AIMEDIACOLLECTIONMETADATA']._serialized_start=1333 - _globals['_AIMEDIACOLLECTIONMETADATA']._serialized_end=1408 - _globals['_AIMETADATAOPERATION']._serialized_start=1410 - _globals['_AIMETADATAOPERATION']._serialized_end=1487 - _globals['_AIQUERYFANOUT']._serialized_start=1489 - _globals['_AIQUERYFANOUT']._serialized_end=1601 - _globals['_AIREGENERATEMETADATA']._serialized_start=1603 - _globals['_AIREGENERATEMETADATA']._serialized_end=1696 - _globals['_AIRICHRESPONSECODEMETADATA']._serialized_start=1699 - _globals['_AIRICHRESPONSECODEMETADATA']._serialized_end=2276 - _globals['_AIRICHRESPONSECODEMETADATA_AIRICHRESPONSECODEBLOCK']._serialized_start=1834 - _globals['_AIRICHRESPONSECODEMETADATA_AIRICHRESPONSECODEBLOCK']._serialized_end=1973 - _globals['_AIRICHRESPONSECODEMETADATA_AIRICHRESPONSECODEHIGHLIGHTTYPE']._serialized_start=1976 - _globals['_AIRICHRESPONSECODEMETADATA_AIRICHRESPONSECODEHIGHLIGHTTYPE']._serialized_end=2276 - _globals['_AIRICHRESPONSECONTENTITEMSMETADATA']._serialized_start=2279 - _globals['_AIRICHRESPONSECONTENTITEMSMETADATA']._serialized_end=2800 - _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_AIRICHRESPONSECONTENTITEMMETADATA']._serialized_start=2500 - _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_AIRICHRESPONSECONTENTITEMMETADATA']._serialized_end=2653 - _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_AIRICHRESPONSEREELITEM']._serialized_start=2655 - _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_AIRICHRESPONSEREELITEM']._serialized_end=2758 - _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_CONTENTTYPE']._serialized_start=2760 - _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_CONTENTTYPE']._serialized_end=2800 - _globals['_AIRICHRESPONSEDYNAMICMETADATA']._serialized_start=2803 - _globals['_AIRICHRESPONSEDYNAMICMETADATA']._serialized_end=3160 - _globals['_AIRICHRESPONSEDYNAMICMETADATA_AIRICHRESPONSEDYNAMICMETADATATYPE']._serialized_start=2975 - _globals['_AIRICHRESPONSEDYNAMICMETADATA_AIRICHRESPONSEDYNAMICMETADATATYPE']._serialized_end=3160 - _globals['_AIRICHRESPONSEGRIDIMAGEMETADATA']._serialized_start=3163 - _globals['_AIRICHRESPONSEGRIDIMAGEMETADATA']._serialized_end=3305 - _globals['_AIRICHRESPONSEIMAGEURL']._serialized_start=3307 - _globals['_AIRICHRESPONSEIMAGEURL']._serialized_end=3400 - _globals['_AIRICHRESPONSEINLINEIMAGEMETADATA']._serialized_start=3403 - _globals['_AIRICHRESPONSEINLINEIMAGEMETADATA']._serialized_end=3808 - _globals['_AIRICHRESPONSEINLINEIMAGEMETADATA_AIRICHRESPONSEIMAGEALIGNMENT']._serialized_start=3625 - _globals['_AIRICHRESPONSEINLINEIMAGEMETADATA_AIRICHRESPONSEIMAGEALIGNMENT']._serialized_end=3808 - _globals['_AIRICHRESPONSELATEXMETADATA']._serialized_start=3811 - _globals['_AIRICHRESPONSELATEXMETADATA']._serialized_end=4179 - _globals['_AIRICHRESPONSELATEXMETADATA_AIRICHRESPONSELATEXEXPRESSION']._serialized_start=3947 - _globals['_AIRICHRESPONSELATEXMETADATA_AIRICHRESPONSELATEXEXPRESSION']._serialized_end=4179 - _globals['_AIRICHRESPONSEMAPMETADATA']._serialized_start=4182 - _globals['_AIRICHRESPONSEMAPMETADATA']._serialized_end=4536 - _globals['_AIRICHRESPONSEMAPMETADATA_AIRICHRESPONSEMAPANNOTATION']._serialized_start=4415 - _globals['_AIRICHRESPONSEMAPMETADATA_AIRICHRESPONSEMAPANNOTATION']._serialized_end=4536 - _globals['_AIRICHRESPONSEMESSAGE']._serialized_start=4539 - _globals['_AIRICHRESPONSEMESSAGE']._serialized_end=4787 - _globals['_AIRICHRESPONSESUBMESSAGE']._serialized_start=4790 - _globals['_AIRICHRESPONSESUBMESSAGE']._serialized_end=5420 - _globals['_AIRICHRESPONSETABLEMETADATA']._serialized_start=5423 - _globals['_AIRICHRESPONSETABLEMETADATA']._serialized_end=5603 - _globals['_AIRICHRESPONSETABLEMETADATA_AIRICHRESPONSETABLEROW']._serialized_start=5545 - _globals['_AIRICHRESPONSETABLEMETADATA_AIRICHRESPONSETABLEROW']._serialized_end=5603 - _globals['_AIRICHRESPONSEUNIFIEDRESPONSE']._serialized_start=5605 - _globals['_AIRICHRESPONSEUNIFIEDRESPONSE']._serialized_end=5650 - _globals['_AISUBSCRIPTIONUPSELLMETADATA']._serialized_start=5652 - _globals['_AISUBSCRIPTIONUPSELLMETADATA']._serialized_end=5740 - _globals['_AITHREADINFO']._serialized_start=5743 - _globals['_AITHREADINFO']._serialized_end=6108 - _globals['_AITHREADINFO_AITHREADCLIENTINFO']._serialized_start=5886 - _globals['_AITHREADINFO_AITHREADCLIENTINFO']._serialized_end=6071 - _globals['_AITHREADINFO_AITHREADCLIENTINFO_AITHREADTYPE']._serialized_start=6001 - _globals['_AITHREADINFO_AITHREADCLIENTINFO_AITHREADTYPE']._serialized_end=6071 - _globals['_AITHREADINFO_AITHREADSERVERINFO']._serialized_start=6073 - _globals['_AITHREADINFO_AITHREADSERVERINFO']._serialized_end=6108 - _globals['_ACCOUNT']._serialized_start=6110 - _globals['_ACCOUNT']._serialized_end=6198 - _globals['_ACCOUNTLINKINGOPAQUEDATA']._serialized_start=6200 - _globals['_ACCOUNTLINKINGOPAQUEDATA']._serialized_end=6303 - _globals['_ACTIONLINK']._serialized_start=6305 - _globals['_ACTIONLINK']._serialized_end=6351 - _globals['_AUTODOWNLOADSETTINGS']._serialized_start=6353 - _globals['_AUTODOWNLOADSETTINGS']._serialized_end=6472 - _globals['_AVATARUSERSETTINGS']._serialized_start=6474 - _globals['_AVATARUSERSETTINGS']._serialized_end=6526 - _globals['_BIZACCOUNTLINKINFO']._serialized_start=6529 - _globals['_BIZACCOUNTLINKINFO']._serialized_end=6835 - _globals['_BIZACCOUNTLINKINFO_ACCOUNTTYPE']._serialized_start=6757 - _globals['_BIZACCOUNTLINKINFO_ACCOUNTTYPE']._serialized_end=6786 - _globals['_BIZACCOUNTLINKINFO_HOSTSTORAGETYPE']._serialized_start=6788 - _globals['_BIZACCOUNTLINKINFO_HOSTSTORAGETYPE']._serialized_end=6835 - _globals['_BIZACCOUNTPAYLOAD']._serialized_start=6837 - _globals['_BIZACCOUNTPAYLOAD']._serialized_end=6935 - _globals['_BIZIDENTITYINFO']._serialized_start=6938 - _globals['_BIZIDENTITYINFO']._serialized_end=7424 - _globals['_BIZIDENTITYINFO_ACTUALACTORSTYPE']._serialized_start=7284 - _globals['_BIZIDENTITYINFO_ACTUALACTORSTYPE']._serialized_end=7321 - _globals['_BIZIDENTITYINFO_HOSTSTORAGETYPE']._serialized_start=6788 - _globals['_BIZIDENTITYINFO_HOSTSTORAGETYPE']._serialized_end=6835 - _globals['_BIZIDENTITYINFO_VERIFIEDLEVELVALUE']._serialized_start=7372 - _globals['_BIZIDENTITYINFO_VERIFIEDLEVELVALUE']._serialized_end=7424 - _globals['_BOTAGECOLLECTIONMETADATA']._serialized_start=7427 - _globals['_BOTAGECOLLECTIONMETADATA']._serialized_end=7658 - _globals['_BOTAGECOLLECTIONMETADATA_AGECOLLECTIONTYPE']._serialized_start=7611 - _globals['_BOTAGECOLLECTIONMETADATA_AGECOLLECTIONTYPE']._serialized_end=7658 - _globals['_BOTAGENTDEEPLINKMETADATA']._serialized_start=7660 - _globals['_BOTAGENTDEEPLINKMETADATA']._serialized_end=7701 - _globals['_BOTAGENTMETADATA']._serialized_start=7703 - _globals['_BOTAGENTMETADATA']._serialized_end=7783 - _globals['_BOTCAPABILITYMETADATA']._serialized_start=7786 - _globals['_BOTCAPABILITYMETADATA']._serialized_end=10099 - _globals['_BOTCAPABILITYMETADATA_BOTCAPABILITYTYPE']._serialized_start=7885 - _globals['_BOTCAPABILITYMETADATA_BOTCAPABILITYTYPE']._serialized_end=10099 - _globals['_BOTCOMMANDMETADATA']._serialized_start=10101 - _globals['_BOTCOMMANDMETADATA']._serialized_end=10193 - _globals['_BOTDOCUMENTMESSAGEMETADATA']._serialized_start=10196 - _globals['_BOTDOCUMENTMESSAGEMETADATA']._serialized_end=10364 - _globals['_BOTDOCUMENTMESSAGEMETADATA_DOCUMENTPLUGINTYPE']._serialized_start=10303 - _globals['_BOTDOCUMENTMESSAGEMETADATA_DOCUMENTPLUGINTYPE']._serialized_end=10364 - _globals['_BOTFEEDBACKMESSAGE']._serialized_start=10367 - _globals['_BOTFEEDBACKMESSAGE']._serialized_end=13701 - _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA']._serialized_start=10700 - _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA']._serialized_end=12521 - _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYANALYTICSDATA']._serialized_start=11144 - _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYANALYTICSDATA']._serialized_end=11247 - _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA']._serialized_start=11250 - _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA']._serialized_end=12521 - _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYABANDONEVENTDATA']._serialized_start=12149 - _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYABANDONEVENTDATA']._serialized_end=12217 - _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCTACLICKEVENTDATA']._serialized_start=12219 - _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCTACLICKEVENTDATA']._serialized_end=12311 - _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCTAIMPRESSIONEVENTDATA']._serialized_start=12313 - _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCTAIMPRESSIONEVENTDATA']._serialized_end=12378 - _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCARDIMPRESSIONEVENTDATA']._serialized_start=12380 - _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCARDIMPRESSIONEVENTDATA']._serialized_end=12421 - _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYRESPONSEEVENTDATA']._serialized_start=12423 - _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYRESPONSEEVENTDATA']._serialized_end=12521 - _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKIND']._serialized_start=12524 - _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKIND']._serialized_end=13123 - _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKINDMULTIPLENEGATIVE']._serialized_start=13126 - _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKINDMULTIPLENEGATIVE']._serialized_end=13585 - _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKINDMULTIPLEPOSITIVE']._serialized_start=13587 - _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKINDMULTIPLEPOSITIVE']._serialized_end=13664 - _globals['_BOTFEEDBACKMESSAGE_REPORTKIND']._serialized_start=13666 - _globals['_BOTFEEDBACKMESSAGE_REPORTKIND']._serialized_end=13701 - _globals['_BOTGROUPMETADATA']._serialized_start=13703 - _globals['_BOTGROUPMETADATA']._serialized_end=13790 - _globals['_BOTGROUPPARTICIPANTMETADATA']._serialized_start=13792 - _globals['_BOTGROUPPARTICIPANTMETADATA']._serialized_end=13838 - _globals['_BOTIMAGINEMETADATA']._serialized_start=13841 - _globals['_BOTIMAGINEMETADATA']._serialized_end=14017 - _globals['_BOTIMAGINEMETADATA_IMAGINETYPE']._serialized_start=13947 - _globals['_BOTIMAGINEMETADATA_IMAGINETYPE']._serialized_end=14017 - _globals['_BOTINFRASTRUCTUREDIAGNOSTICS']._serialized_start=14020 - _globals['_BOTINFRASTRUCTUREDIAGNOSTICS']._serialized_end=14196 - _globals['_BOTINFRASTRUCTUREDIAGNOSTICS_BOTBACKEND']._serialized_start=14162 - _globals['_BOTINFRASTRUCTUREDIAGNOSTICS_BOTBACKEND']._serialized_end=14196 - _globals['_BOTLINKEDACCOUNT']._serialized_start=14199 - _globals['_BOTLINKEDACCOUNT']._serialized_end=14336 - _globals['_BOTLINKEDACCOUNT_BOTLINKEDACCOUNTTYPE']._serialized_start=14282 - _globals['_BOTLINKEDACCOUNT_BOTLINKEDACCOUNTTYPE']._serialized_end=14336 - _globals['_BOTLINKEDACCOUNTSMETADATA']._serialized_start=14338 - _globals['_BOTLINKEDACCOUNTSMETADATA']._serialized_end=14454 - _globals['_BOTMEDIAMETADATA']._serialized_start=14457 - _globals['_BOTMEDIAMETADATA']._serialized_end=14722 - _globals['_BOTMEDIAMETADATA_ORIENTATIONTYPE']._serialized_start=14672 - _globals['_BOTMEDIAMETADATA_ORIENTATIONTYPE']._serialized_end=14722 - _globals['_BOTMEMORYFACT']._serialized_start=14724 - _globals['_BOTMEMORYFACT']._serialized_end=14769 - _globals['_BOTMEMORYMETADATA']._serialized_start=14772 - _globals['_BOTMEMORYMETADATA']._serialized_end=14903 - _globals['_BOTMEMUMETADATA']._serialized_start=14905 - _globals['_BOTMEMUMETADATA']._serialized_end=14970 - _globals['_BOTMESSAGEORIGIN']._serialized_start=14973 - _globals['_BOTMESSAGEORIGIN']._serialized_end=15120 - _globals['_BOTMESSAGEORIGIN_BOTMESSAGEORIGINTYPE']._serialized_start=15056 - _globals['_BOTMESSAGEORIGIN_BOTMESSAGEORIGINTYPE']._serialized_end=15120 - _globals['_BOTMESSAGEORIGINMETADATA']._serialized_start=15122 - _globals['_BOTMESSAGEORIGINMETADATA']._serialized_end=15193 - _globals['_BOTMESSAGESHARINGINFO']._serialized_start=15195 - _globals['_BOTMESSAGESHARINGINFO']._serialized_end=15301 - _globals['_BOTMETADATA']._serialized_start=15304 - _globals['_BOTMETADATA']._serialized_end=17708 - _globals['_BOTMETRICSMETADATA']._serialized_start=17711 - _globals['_BOTMETRICSMETADATA']._serialized_end=17877 - _globals['_BOTMODESELECTIONMETADATA']._serialized_start=17880 - _globals['_BOTMODESELECTIONMETADATA']._serialized_end=18062 - _globals['_BOTMODESELECTIONMETADATA_BOTUSERSELECTIONMODE']._serialized_start=18001 - _globals['_BOTMODESELECTIONMETADATA_BOTUSERSELECTIONMODE']._serialized_end=18062 - _globals['_BOTMODELMETADATA']._serialized_start=18065 - _globals['_BOTMODELMETADATA']._serialized_end=18394 - _globals['_BOTMODELMETADATA_MODELTYPE']._serialized_start=18244 - _globals['_BOTMODELMETADATA_MODELTYPE']._serialized_end=18313 - _globals['_BOTMODELMETADATA_PREMIUMMODELSTATUS']._serialized_start=18315 - _globals['_BOTMODELMETADATA_PREMIUMMODELSTATUS']._serialized_end=18394 - _globals['_BOTPLUGINMETADATA']._serialized_start=18397 - _globals['_BOTPLUGINMETADATA']._serialized_end=19022 - _globals['_BOTPLUGINMETADATA_PLUGINTYPE']._serialized_start=18901 - _globals['_BOTPLUGINMETADATA_PLUGINTYPE']._serialized_end=18956 - _globals['_BOTPLUGINMETADATA_SEARCHPROVIDER']._serialized_start=18958 - _globals['_BOTPLUGINMETADATA_SEARCHPROVIDER']._serialized_end=19022 - _globals['_BOTPROGRESSINDICATORMETADATA']._serialized_start=19025 - _globals['_BOTPROGRESSINDICATORMETADATA']._serialized_end=20514 - _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA']._serialized_start=19207 - _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA']._serialized_end=20514 - _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCEMETADATA']._serialized_start=19657 - _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCEMETADATA']._serialized_end=19850 - _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCESMETADATA']._serialized_start=19853 - _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCESMETADATA']._serialized_end=20156 - _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCESMETADATA_BOTPLANNINGSEARCHSOURCEPROVIDER']._serialized_start=20077 - _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCESMETADATA_BOTPLANNINGSEARCHSOURCEPROVIDER']._serialized_end=20156 - _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSTEPSECTIONMETADATA']._serialized_start=20159 - _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSTEPSECTIONMETADATA']._serialized_end=20355 - _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTSEARCHSOURCEPROVIDER']._serialized_start=20357 - _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTSEARCHSOURCEPROVIDER']._serialized_end=20437 - _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_PLANNINGSTEPSTATUS']._serialized_start=20439 - _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_PLANNINGSTEPSTATUS']._serialized_end=20514 - _globals['_BOTPROMOTIONMESSAGEMETADATA']._serialized_start=20517 - _globals['_BOTPROMOTIONMESSAGEMETADATA']._serialized_end=20714 - _globals['_BOTPROMOTIONMESSAGEMETADATA_BOTPROMOTIONTYPE']._serialized_start=20648 - _globals['_BOTPROMOTIONMESSAGEMETADATA_BOTPROMOTIONTYPE']._serialized_end=20714 - _globals['_BOTPROMPTSUGGESTION']._serialized_start=20716 - _globals['_BOTPROMPTSUGGESTION']._serialized_end=20771 - _globals['_BOTPROMPTSUGGESTIONS']._serialized_start=20773 - _globals['_BOTPROMPTSUGGESTIONS']._serialized_end=20847 - _globals['_BOTPTTPROMPTMETADATA']._serialized_start=20849 - _globals['_BOTPTTPROMPTMETADATA']._serialized_end=20891 - _globals['_BOTQUOTAMETADATA']._serialized_start=20894 - _globals['_BOTQUOTAMETADATA']._serialized_end=21228 - _globals['_BOTQUOTAMETADATA_BOTFEATUREQUOTAMETADATA']._serialized_start=21000 - _globals['_BOTQUOTAMETADATA_BOTFEATUREQUOTAMETADATA']._serialized_end=21228 - _globals['_BOTQUOTAMETADATA_BOTFEATUREQUOTAMETADATA_BOTFEATURETYPE']._serialized_start=21168 - _globals['_BOTQUOTAMETADATA_BOTFEATUREQUOTAMETADATA_BOTFEATURETYPE']._serialized_end=21228 - _globals['_BOTREMINDERMETADATA']._serialized_start=21231 - _globals['_BOTREMINDERMETADATA']._serialized_end=21622 - _globals['_BOTREMINDERMETADATA_REMINDERACTION']._serialized_start=21477 - _globals['_BOTREMINDERMETADATA_REMINDERACTION']._serialized_end=21541 - _globals['_BOTREMINDERMETADATA_REMINDERFREQUENCY']._serialized_start=21543 - _globals['_BOTREMINDERMETADATA_REMINDERFREQUENCY']._serialized_end=21622 - _globals['_BOTRENDERINGCONFIGMETADATA']._serialized_start=21624 - _globals['_BOTRENDERINGCONFIGMETADATA']._serialized_end=21701 - _globals['_BOTRENDERINGMETADATA']._serialized_start=21704 - _globals['_BOTRENDERINGMETADATA']._serialized_end=21837 - _globals['_BOTRENDERINGMETADATA_KEYWORD']._serialized_start=21786 - _globals['_BOTRENDERINGMETADATA_KEYWORD']._serialized_end=21837 - _globals['_BOTRESOLVEDTOOLCALLMETADATA']._serialized_start=21839 - _globals['_BOTRESOLVEDTOOLCALLMETADATA']._serialized_end=21922 - _globals['_BOTSESSIONMETADATA']._serialized_start=21924 - _globals['_BOTSESSIONMETADATA']._serialized_end=22014 - _globals['_BOTSIGNATUREVERIFICATIONMETADATA']._serialized_start=22016 - _globals['_BOTSIGNATUREVERIFICATIONMETADATA']._serialized_end=22114 - _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF']._serialized_start=22117 - _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF']._serialized_end=22393 - _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF_BOTSIGNATUREUSECASE']._serialized_start=22304 - _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF_BOTSIGNATUREUSECASE']._serialized_end=22393 - _globals['_BOTSOURCESMETADATA']._serialized_start=22396 - _globals['_BOTSOURCESMETADATA']._serialized_end=22790 - _globals['_BOTSOURCESMETADATA_BOTSOURCEITEM']._serialized_start=22480 - _globals['_BOTSOURCESMETADATA_BOTSOURCEITEM']._serialized_end=22790 - _globals['_BOTSOURCESMETADATA_BOTSOURCEITEM_SOURCEPROVIDER']._serialized_start=22715 - _globals['_BOTSOURCESMETADATA_BOTSOURCEITEM_SOURCEPROVIDER']._serialized_end=22790 - _globals['_BOTSUGGESTEDPROMPTMETADATA']._serialized_start=22793 - _globals['_BOTSUGGESTEDPROMPTMETADATA']._serialized_end=22961 - _globals['_BOTUNIFIEDRESPONSEMUTATION']._serialized_start=22964 - _globals['_BOTUNIFIEDRESPONSEMUTATION']._serialized_end=23379 - _globals['_BOTUNIFIEDRESPONSEMUTATION_MEDIADETAILSMETADATA']._serialized_start=23166 - _globals['_BOTUNIFIEDRESPONSEMUTATION_MEDIADETAILSMETADATA']._serialized_end=23300 - _globals['_BOTUNIFIEDRESPONSEMUTATION_SIDEBYSIDEMETADATA']._serialized_start=23302 - _globals['_BOTUNIFIEDRESPONSEMUTATION_SIDEBYSIDEMETADATA']._serialized_end=23379 - _globals['_CALLLOGRECORD']._serialized_start=23382 - _globals['_CALLLOGRECORD']._serialized_end=24252 - _globals['_CALLLOGRECORD_PARTICIPANTINFO']._serialized_start=23851 - _globals['_CALLLOGRECORD_PARTICIPANTINFO']._serialized_end=23941 - _globals['_CALLLOGRECORD_CALLRESULT']._serialized_start=23944 - _globals['_CALLLOGRECORD_CALLRESULT']._serialized_end=24119 - _globals['_CALLLOGRECORD_CALLTYPE']._serialized_start=24121 - _globals['_CALLLOGRECORD_CALLTYPE']._serialized_end=24180 - _globals['_CALLLOGRECORD_SILENCEREASON']._serialized_start=24182 - _globals['_CALLLOGRECORD_SILENCEREASON']._serialized_end=24252 - _globals['_CERTCHAIN']._serialized_start=24255 - _globals['_CERTCHAIN']._serialized_end=24534 - _globals['_CERTCHAIN_NOISECERTIFICATE']._serialized_start=24381 - _globals['_CERTCHAIN_NOISECERTIFICATE']._serialized_end=24534 - _globals['_CERTCHAIN_NOISECERTIFICATE_DETAILS']._serialized_start=24437 - _globals['_CERTCHAIN_NOISECERTIFICATE_DETAILS']._serialized_end=24534 - _globals['_CHATLOCKSETTINGS']._serialized_start=24536 - _globals['_CHATLOCKSETTINGS']._serialized_end=24623 - _globals['_CHATROWOPAQUEDATA']._serialized_start=24626 - _globals['_CHATROWOPAQUEDATA']._serialized_end=25483 - _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE']._serialized_start=24712 - _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE']._serialized_end=25483 - _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTDATA']._serialized_start=24952 - _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTDATA']._serialized_end=25389 - _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTDATA_CONTEXTINFOEXTERNALADREPLYINFOMEDIATYPE']._serialized_start=25316 - _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTDATA_CONTEXTINFOEXTERNALADREPLYINFOMEDIATYPE']._serialized_end=25389 - _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTLINKDATA']._serialized_start=25391 - _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTLINKDATA']._serialized_end=25483 - _globals['_CITATION']._serialized_start=25485 - _globals['_CITATION']._serialized_end=25561 - _globals['_CLIENTPAIRINGPROPS']._serialized_start=25564 - _globals['_CLIENTPAIRINGPROPS']._serialized_end=25751 - _globals['_CLIENTPAYLOAD']._serialized_start=25754 - _globals['_CLIENTPAYLOAD']._serialized_end=30283 - _globals['_CLIENTPAYLOAD_DNSSOURCE']._serialized_start=26940 - _globals['_CLIENTPAYLOAD_DNSSOURCE']._serialized_end=27180 - _globals['_CLIENTPAYLOAD_DNSSOURCE_DNSRESOLUTIONMETHOD']._serialized_start=27047 - _globals['_CLIENTPAYLOAD_DNSSOURCE_DNSRESOLUTIONMETHOD']._serialized_end=27180 - _globals['_CLIENTPAYLOAD_DEVICEPAIRINGREGISTRATIONDATA']._serialized_start=27183 - _globals['_CLIENTPAYLOAD_DEVICEPAIRINGREGISTRATIONDATA']._serialized_end=27357 - _globals['_CLIENTPAYLOAD_INTEROPDATA']._serialized_start=27359 - _globals['_CLIENTPAYLOAD_INTEROPDATA']._serialized_end=27434 - _globals['_CLIENTPAYLOAD_USERAGENT']._serialized_start=27437 - _globals['_CLIENTPAYLOAD_USERAGENT']._serialized_end=28930 - _globals['_CLIENTPAYLOAD_USERAGENT_APPVERSION']._serialized_start=28060 - _globals['_CLIENTPAYLOAD_USERAGENT_APPVERSION']._serialized_end=28163 - _globals['_CLIENTPAYLOAD_USERAGENT_DEVICETYPE']._serialized_start=28165 - _globals['_CLIENTPAYLOAD_USERAGENT_DEVICETYPE']._serialized_end=28235 - _globals['_CLIENTPAYLOAD_USERAGENT_DISTRIBUTIONCHANNEL']._serialized_start=28237 - _globals['_CLIENTPAYLOAD_USERAGENT_DISTRIBUTIONCHANNEL']._serialized_end=28315 - _globals['_CLIENTPAYLOAD_USERAGENT_PLATFORM']._serialized_start=28318 - _globals['_CLIENTPAYLOAD_USERAGENT_PLATFORM']._serialized_end=28867 - _globals['_CLIENTPAYLOAD_USERAGENT_RELEASECHANNEL']._serialized_start=28869 - _globals['_CLIENTPAYLOAD_USERAGENT_RELEASECHANNEL']._serialized_end=28930 - _globals['_CLIENTPAYLOAD_WEBINFO']._serialized_start=28933 - _globals['_CLIENTPAYLOAD_WEBINFO']._serialized_end=29578 - _globals['_CLIENTPAYLOAD_WEBINFO_WEBDPAYLOAD']._serialized_start=29159 - _globals['_CLIENTPAYLOAD_WEBINFO_WEBDPAYLOAD']._serialized_end=29474 - _globals['_CLIENTPAYLOAD_WEBINFO_WEBSUBPLATFORM']._serialized_start=29476 - _globals['_CLIENTPAYLOAD_WEBINFO_WEBSUBPLATFORM']._serialized_end=29578 - _globals['_CLIENTPAYLOAD_ACCOUNTTYPE']._serialized_start=29580 - _globals['_CLIENTPAYLOAD_ACCOUNTTYPE']._serialized_end=29617 - _globals['_CLIENTPAYLOAD_CONNECTREASON']._serialized_start=29620 - _globals['_CLIENTPAYLOAD_CONNECTREASON']._serialized_end=29754 - _globals['_CLIENTPAYLOAD_CONNECTTYPE']._serialized_start=29757 - _globals['_CLIENTPAYLOAD_CONNECTTYPE']._serialized_end=30061 - _globals['_CLIENTPAYLOAD_IOSAPPEXTENSION']._serialized_start=30063 - _globals['_CLIENTPAYLOAD_IOSAPPEXTENSION']._serialized_end=30147 - _globals['_CLIENTPAYLOAD_PRODUCT']._serialized_start=30149 - _globals['_CLIENTPAYLOAD_PRODUCT']._serialized_end=30236 - _globals['_CLIENTPAYLOAD_TRAFFICANONYMIZATION']._serialized_start=30238 - _globals['_CLIENTPAYLOAD_TRAFFICANONYMIZATION']._serialized_end=30283 - _globals['_COMBINEDFINGERPRINT']._serialized_start=30286 - _globals['_COMBINEDFINGERPRINT']._serialized_end=30431 - _globals['_COMMAND']._serialized_start=30433 - _globals['_COMMAND']._serialized_end=30552 - _globals['_COMMENTMETADATA']._serialized_start=30554 - _globals['_COMMENTMETADATA']._serialized_end=30639 - _globals['_COMPANIONCOMMITMENT']._serialized_start=30641 - _globals['_COMPANIONCOMMITMENT']._serialized_end=30676 - _globals['_COMPANIONEPHEMERALIDENTITY']._serialized_start=30678 - _globals['_COMPANIONEPHEMERALIDENTITY']._serialized_end=30794 - _globals['_CONFIG']._serialized_start=30797 - _globals['_CONFIG']._serialized_end=30929 - _globals['_CONFIG_FIELDENTRY']._serialized_start=30868 - _globals['_CONFIG_FIELDENTRY']._serialized_end=30929 - _globals['_CONSUMERAPPLICATION']._serialized_start=30932 - _globals['_CONSUMERAPPLICATION']._serialized_end=36034 - _globals['_CONSUMERAPPLICATION_APPLICATIONDATA']._serialized_start=31069 - _globals['_CONSUMERAPPLICATION_APPLICATIONDATA']._serialized_end=31171 - _globals['_CONSUMERAPPLICATION_AUDIOMESSAGE']._serialized_start=31173 - _globals['_CONSUMERAPPLICATION_AUDIOMESSAGE']._serialized_end=31238 - _globals['_CONSUMERAPPLICATION_CONTACTMESSAGE']._serialized_start=31240 - _globals['_CONSUMERAPPLICATION_CONTACTMESSAGE']._serialized_end=31296 - _globals['_CONSUMERAPPLICATION_CONTACTSARRAYMESSAGE']._serialized_start=31298 - _globals['_CONSUMERAPPLICATION_CONTACTSARRAYMESSAGE']._serialized_end=31405 - _globals['_CONSUMERAPPLICATION_CONTENT']._serialized_start=31408 - _globals['_CONSUMERAPPLICATION_CONTENT']._serialized_end=32749 - _globals['_CONSUMERAPPLICATION_DOCUMENTMESSAGE']._serialized_start=32751 - _globals['_CONSUMERAPPLICATION_DOCUMENTMESSAGE']._serialized_end=32827 - _globals['_CONSUMERAPPLICATION_EDITMESSAGE']._serialized_start=32829 - _globals['_CONSUMERAPPLICATION_EDITMESSAGE']._serialized_end=32938 - _globals['_CONSUMERAPPLICATION_EXTENDEDTEXTMESSAGE']._serialized_start=32941 - _globals['_CONSUMERAPPLICATION_EXTENDEDTEXTMESSAGE']._serialized_end=33228 - _globals['_CONSUMERAPPLICATION_GROUPINVITEMESSAGE']._serialized_start=33231 - _globals['_CONSUMERAPPLICATION_GROUPINVITEMESSAGE']._serialized_end=33397 - _globals['_CONSUMERAPPLICATION_IMAGEMESSAGE']._serialized_start=33399 - _globals['_CONSUMERAPPLICATION_IMAGEMESSAGE']._serialized_end=33491 - _globals['_CONSUMERAPPLICATION_INTERACTIVEANNOTATION']._serialized_start=33494 - _globals['_CONSUMERAPPLICATION_INTERACTIVEANNOTATION']._serialized_end=33649 - _globals['_CONSUMERAPPLICATION_LIVELOCATIONMESSAGE']._serialized_start=33652 - _globals['_CONSUMERAPPLICATION_LIVELOCATIONMESSAGE']._serialized_end=33904 - _globals['_CONSUMERAPPLICATION_LOCATION']._serialized_start=33906 - _globals['_CONSUMERAPPLICATION_LOCATION']._serialized_end=33981 - _globals['_CONSUMERAPPLICATION_LOCATIONMESSAGE']._serialized_start=33983 - _globals['_CONSUMERAPPLICATION_LOCATIONMESSAGE']._serialized_end=34075 - _globals['_CONSUMERAPPLICATION_MEDIAPAYLOAD']._serialized_start=34077 - _globals['_CONSUMERAPPLICATION_MEDIAPAYLOAD']._serialized_end=34132 - _globals['_CONSUMERAPPLICATION_METADATA']._serialized_start=34134 - _globals['_CONSUMERAPPLICATION_METADATA']._serialized_end=34228 - _globals['_CONSUMERAPPLICATION_OPTION']._serialized_start=34230 - _globals['_CONSUMERAPPLICATION_OPTION']._serialized_end=34258 - _globals['_CONSUMERAPPLICATION_PAYLOAD']._serialized_start=34261 - _globals['_CONSUMERAPPLICATION_PAYLOAD']._serialized_end=34542 - _globals['_CONSUMERAPPLICATION_POINT']._serialized_start=34544 - _globals['_CONSUMERAPPLICATION_POINT']._serialized_end=34573 - _globals['_CONSUMERAPPLICATION_POLLADDOPTIONMESSAGE']._serialized_start=34575 - _globals['_CONSUMERAPPLICATION_POLLADDOPTIONMESSAGE']._serialized_end=34655 - _globals['_CONSUMERAPPLICATION_POLLCREATIONMESSAGE']._serialized_start=34658 - _globals['_CONSUMERAPPLICATION_POLLCREATIONMESSAGE']._serialized_end=34796 - _globals['_CONSUMERAPPLICATION_POLLENCVALUE']._serialized_start=34798 - _globals['_CONSUMERAPPLICATION_POLLENCVALUE']._serialized_end=34847 - _globals['_CONSUMERAPPLICATION_POLLUPDATEMESSAGE']._serialized_start=34850 - _globals['_CONSUMERAPPLICATION_POLLUPDATEMESSAGE']._serialized_end=35044 - _globals['_CONSUMERAPPLICATION_POLLVOTEMESSAGE']._serialized_start=35046 - _globals['_CONSUMERAPPLICATION_POLLVOTEMESSAGE']._serialized_end=35115 - _globals['_CONSUMERAPPLICATION_REACTIONMESSAGE']._serialized_start=35118 - _globals['_CONSUMERAPPLICATION_REACTIONMESSAGE']._serialized_end=35286 - _globals['_CONSUMERAPPLICATION_REVOKEMESSAGE']._serialized_start=35288 - _globals['_CONSUMERAPPLICATION_REVOKEMESSAGE']._serialized_end=35338 - _globals['_CONSUMERAPPLICATION_SIGNAL']._serialized_start=35340 - _globals['_CONSUMERAPPLICATION_SIGNAL']._serialized_end=35348 - _globals['_CONSUMERAPPLICATION_STATUSTEXTMESAGE']._serialized_start=35351 - _globals['_CONSUMERAPPLICATION_STATUSTEXTMESAGE']._serialized_end=35551 - _globals['_CONSUMERAPPLICATION_STICKERMESSAGE']._serialized_start=35553 - _globals['_CONSUMERAPPLICATION_STICKERMESSAGE']._serialized_end=35609 - _globals['_CONSUMERAPPLICATION_SUBPROTOCOLPAYLOAD']._serialized_start=35611 - _globals['_CONSUMERAPPLICATION_SUBPROTOCOLPAYLOAD']._serialized_end=35685 - _globals['_CONSUMERAPPLICATION_VIDEOMESSAGE']._serialized_start=35687 - _globals['_CONSUMERAPPLICATION_VIDEOMESSAGE']._serialized_end=35779 - _globals['_CONSUMERAPPLICATION_VIEWONCEMESSAGE']._serialized_start=35782 - _globals['_CONSUMERAPPLICATION_VIEWONCEMESSAGE']._serialized_end=35954 - _globals['_CONSUMERAPPLICATION_CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE']._serialized_start=35956 - _globals['_CONSUMERAPPLICATION_CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE']._serialized_end=36034 - _globals['_CONTEXTINFO']._serialized_start=36037 - _globals['_CONTEXTINFO']._serialized_end=42793 - _globals['_CONTEXTINFO_ADREPLYINFO']._serialized_start=38726 - _globals['_CONTEXTINFO_ADREPLYINFO']._serialized_end=38912 - _globals['_CONTEXTINFO_ADREPLYINFO_MEDIATYPE']._serialized_start=38869 - _globals['_CONTEXTINFO_ADREPLYINFO_MEDIATYPE']._serialized_end=38912 - _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS']._serialized_start=38915 - _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS']._serialized_end=39740 - _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_PILL']._serialized_start=39205 - _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_PILL']._serialized_end=39305 - _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_SIGNEDPAYLOAD']._serialized_start=39307 - _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_SIGNEDPAYLOAD']._serialized_end=39412 - _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_ENTRYPOINT']._serialized_start=39415 - _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_ENTRYPOINT']._serialized_end=39556 - _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_PILLTYPE']._serialized_start=39559 - _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_PILLTYPE']._serialized_end=39740 - _globals['_CONTEXTINFO_BUSINESSMESSAGEFORWARDINFO']._serialized_start=39742 - _globals['_CONTEXTINFO_BUSINESSMESSAGEFORWARDINFO']._serialized_end=39796 - _globals['_CONTEXTINFO_DATASHARINGCONTEXT']._serialized_start=39799 - _globals['_CONTEXTINFO_DATASHARINGCONTEXT']._serialized_end=40223 - _globals['_CONTEXTINFO_DATASHARINGCONTEXT_PARAMETERS']._serialized_start=39986 - _globals['_CONTEXTINFO_DATASHARINGCONTEXT_PARAMETERS']._serialized_end=40138 - _globals['_CONTEXTINFO_DATASHARINGCONTEXT_DATASHARINGFLAGS']._serialized_start=40140 - _globals['_CONTEXTINFO_DATASHARINGCONTEXT_DATASHARINGFLAGS']._serialized_end=40223 - _globals['_CONTEXTINFO_EXTERNALADREPLYINFO']._serialized_start=40226 - _globals['_CONTEXTINFO_EXTERNALADREPLYINFO']._serialized_end=41208 - _globals['_CONTEXTINFO_EXTERNALADREPLYINFO_ADTYPE']._serialized_start=41135 - _globals['_CONTEXTINFO_EXTERNALADREPLYINFO_ADTYPE']._serialized_end=41163 - _globals['_CONTEXTINFO_EXTERNALADREPLYINFO_MEDIATYPE']._serialized_start=38869 - _globals['_CONTEXTINFO_EXTERNALADREPLYINFO_MEDIATYPE']._serialized_end=38912 - _globals['_CONTEXTINFO_FEATUREELIGIBILITIES']._serialized_start=41211 - _globals['_CONTEXTINFO_FEATUREELIGIBILITIES']._serialized_end=41365 - _globals['_CONTEXTINFO_FORWARDEDNEWSLETTERMESSAGEINFO']._serialized_start=41368 - _globals['_CONTEXTINFO_FORWARDEDNEWSLETTERMESSAGEINFO']._serialized_end=41666 - _globals['_CONTEXTINFO_FORWARDEDNEWSLETTERMESSAGEINFO_CONTENTTYPE']._serialized_start=41609 - _globals['_CONTEXTINFO_FORWARDEDNEWSLETTERMESSAGEINFO_CONTENTTYPE']._serialized_end=41666 - _globals['_CONTEXTINFO_PARTIALLYSELECTEDCONTENT']._serialized_start=41668 - _globals['_CONTEXTINFO_PARTIALLYSELECTEDCONTENT']._serialized_end=41708 - _globals['_CONTEXTINFO_QUESTIONREPLYQUOTEDMESSAGE']._serialized_start=41711 - _globals['_CONTEXTINFO_QUESTIONREPLYQUOTEDMESSAGE']._serialized_end=41851 - _globals['_CONTEXTINFO_STATUSAUDIENCEMETADATA']._serialized_start=41854 - _globals['_CONTEXTINFO_STATUSAUDIENCEMETADATA']._serialized_end=42044 - _globals['_CONTEXTINFO_STATUSAUDIENCEMETADATA_AUDIENCETYPE']._serialized_start=41998 - _globals['_CONTEXTINFO_STATUSAUDIENCEMETADATA_AUDIENCETYPE']._serialized_end=42044 - _globals['_CONTEXTINFO_UTMINFO']._serialized_start=42046 - _globals['_CONTEXTINFO_UTMINFO']._serialized_end=42095 - _globals['_CONTEXTINFO_CROSSAPPSOURCE']._serialized_start=42097 - _globals['_CONTEXTINFO_CROSSAPPSOURCE']._serialized_end=42206 - _globals['_CONTEXTINFO_FORWARDORIGIN']._serialized_start=42208 - _globals['_CONTEXTINFO_FORWARDORIGIN']._serialized_end=42294 - _globals['_CONTEXTINFO_PAIREDMEDIATYPE']._serialized_start=42297 - _globals['_CONTEXTINFO_PAIREDMEDIATYPE']._serialized_end=42512 - _globals['_CONTEXTINFO_QUOTEDTYPE']._serialized_start=42514 - _globals['_CONTEXTINFO_QUOTEDTYPE']._serialized_end=42550 - _globals['_CONTEXTINFO_STATUSATTRIBUTIONTYPE']._serialized_start=42553 - _globals['_CONTEXTINFO_STATUSATTRIBUTIONTYPE']._serialized_end=42699 - _globals['_CONTEXTINFO_STATUSSOURCETYPE']._serialized_start=42701 - _globals['_CONTEXTINFO_STATUSSOURCETYPE']._serialized_end=42793 - _globals['_CONVERSATION']._serialized_start=42796 - _globals['_CONVERSATION']._serialized_end=44942 - _globals['_CONVERSATION_ENDOFHISTORYTRANSFERTYPE']._serialized_start=44586 - _globals['_CONVERSATION_ENDOFHISTORYTRANSFERTYPE']._serialized_end=44842 - _globals['_CONVERSATION_GROUPAPPEALSTATUS']._serialized_start=44844 - _globals['_CONVERSATION_GROUPAPPEALSTATUS']._serialized_end=44942 - _globals['_DEVICECAPABILITIES']._serialized_start=44945 - _globals['_DEVICECAPABILITIES']._serialized_end=45937 - _globals['_DEVICECAPABILITIES_AITHREAD']._serialized_start=45408 - _globals['_DEVICECAPABILITIES_AITHREAD']._serialized_end=45539 - _globals['_DEVICECAPABILITIES_AITHREAD_SUPPORTLEVEL']._serialized_start=45494 - _globals['_DEVICECAPABILITIES_AITHREAD_SUPPORTLEVEL']._serialized_end=45539 - _globals['_DEVICECAPABILITIES_BUSINESSBROADCAST']._serialized_start=45542 - _globals['_DEVICECAPABILITIES_BUSINESSBROADCAST']._serialized_end=45703 - _globals['_DEVICECAPABILITIES_LIDMIGRATION']._serialized_start=45705 - _globals['_DEVICECAPABILITIES_LIDMIGRATION']._serialized_end=45753 - _globals['_DEVICECAPABILITIES_USERHASAVATAR']._serialized_start=45755 - _globals['_DEVICECAPABILITIES_USERHASAVATAR']._serialized_end=45793 - _globals['_DEVICECAPABILITIES_CHATLOCKSUPPORTLEVEL']._serialized_start=45795 - _globals['_DEVICECAPABILITIES_CHATLOCKSUPPORTLEVEL']._serialized_end=45850 - _globals['_DEVICECAPABILITIES_MEMBERNAMETAGPRIMARYSUPPORT']._serialized_start=45852 - _globals['_DEVICECAPABILITIES_MEMBERNAMETAGPRIMARYSUPPORT']._serialized_end=45937 - _globals['_DEVICECONSISTENCYCODEMESSAGE']._serialized_start=45939 - _globals['_DEVICECONSISTENCYCODEMESSAGE']._serialized_end=46008 - _globals['_DEVICELISTMETADATA']._serialized_start=46011 - _globals['_DEVICELISTMETADATA']._serialized_end=46310 - _globals['_DEVICEPROPS']._serialized_start=46313 - _globals['_DEVICEPROPS']._serialized_end=47802 - _globals['_DEVICEPROPS_APPVERSION']._serialized_start=28060 - _globals['_DEVICEPROPS_APPVERSION']._serialized_end=28163 - _globals['_DEVICEPROPS_HISTORYSYNCCONFIG']._serialized_start=46648 - _globals['_DEVICEPROPS_HISTORYSYNCCONFIG']._serialized_end=47448 - _globals['_DEVICEPROPS_PLATFORMTYPE']._serialized_start=47451 - _globals['_DEVICEPROPS_PLATFORMTYPE']._serialized_end=47802 - _globals['_DISAPPEARINGMODE']._serialized_start=47805 - _globals['_DISAPPEARINGMODE']._serialized_end=48220 - _globals['_DISAPPEARINGMODE_INITIATOR']._serialized_start=47986 - _globals['_DISAPPEARINGMODE_INITIATOR']._serialized_end=48091 - _globals['_DISAPPEARINGMODE_TRIGGER']._serialized_start=48093 - _globals['_DISAPPEARINGMODE_TRIGGER']._serialized_end=48220 - _globals['_EMBEDDEDCONTENT']._serialized_start=48223 - _globals['_EMBEDDEDCONTENT']._serialized_end=48355 - _globals['_EMBEDDEDMESSAGE']._serialized_start=48357 - _globals['_EMBEDDEDMESSAGE']._serialized_end=48428 - _globals['_EMBEDDEDMUSIC']._serialized_start=48431 - _globals['_EMBEDDEDMUSIC']._serialized_end=48794 - _globals['_ENCRYPTEDPAIRINGREQUEST']._serialized_start=48796 - _globals['_ENCRYPTEDPAIRINGREQUEST']._serialized_end=48859 - _globals['_EPHEMERALSETTING']._serialized_start=48861 - _globals['_EPHEMERALSETTING']._serialized_end=48916 - _globals['_EVENTADDITIONALMETADATA']._serialized_start=48918 - _globals['_EVENTADDITIONALMETADATA']._serialized_end=48960 - _globals['_EVENTRESPONSE']._serialized_start=48963 - _globals['_EVENTRESPONSE']._serialized_end=49140 - _globals['_EXITCODE']._serialized_start=49142 - _globals['_EXITCODE']._serialized_end=49180 - _globals['_EXTERNALBLOBREFERENCE']._serialized_start=49183 - _globals['_EXTERNALBLOBREFERENCE']._serialized_end=49326 - _globals['_FIELD']._serialized_start=49329 - _globals['_FIELD']._serialized_end=49543 - _globals['_FIELD_SUBFIELDENTRY']._serialized_start=49479 - _globals['_FIELD_SUBFIELDENTRY']._serialized_end=49543 - _globals['_FINGERPRINTDATA']._serialized_start=49546 - _globals['_FINGERPRINTDATA']._serialized_end=49777 - _globals['_FINGERPRINTDATA_HOSTEDSTATE']._serialized_start=49742 - _globals['_FINGERPRINTDATA_HOSTEDSTATE']._serialized_end=49777 - _globals['_FORWARDEDAIBOTMESSAGEINFO']._serialized_start=49779 - _globals['_FORWARDEDAIBOTMESSAGEINFO']._serialized_end=49860 - _globals['_GLOBALSETTINGS']._serialized_start=49863 - _globals['_GLOBALSETTINGS']._serialized_end=50796 - _globals['_GROUPHISTORY']._serialized_start=50799 - _globals['_GROUPHISTORY']._serialized_end=51052 - _globals['_GROUPHISTORYBUNDLEINFO']._serialized_start=51055 - _globals['_GROUPHISTORYBUNDLEINFO']._serialized_end=51365 - _globals['_GROUPHISTORYBUNDLEINFO_PROCESSSTATE']._serialized_start=51231 - _globals['_GROUPHISTORYBUNDLEINFO_PROCESSSTATE']._serialized_end=51365 - _globals['_GROUPHISTORYINDIVIDUALMESSAGEINFO']._serialized_start=51367 - _globals['_GROUPHISTORYINDIVIDUALMESSAGEINFO']._serialized_end=51488 - _globals['_GROUPHISTORYWITHMESSAGEBYTES']._serialized_start=51491 - _globals['_GROUPHISTORYWITHMESSAGEBYTES']._serialized_end=51824 - _globals['_GROUPMENTION']._serialized_start=51826 - _globals['_GROUPMENTION']._serialized_end=51880 - _globals['_GROUPPARTICIPANT']._serialized_start=51883 - _globals['_GROUPPARTICIPANT']._serialized_end=52057 - _globals['_GROUPPARTICIPANT_RANK']._serialized_start=52011 - _globals['_GROUPPARTICIPANT_RANK']._serialized_end=52057 - _globals['_GROUPROOTKEYSHARE']._serialized_start=52059 - _globals['_GROUPROOTKEYSHARE']._serialized_end=52126 - _globals['_GROUPROOTKEYSHAREENTRY']._serialized_start=52128 - _globals['_GROUPROOTKEYSHAREENTRY']._serialized_end=52244 - _globals['_HANDSHAKEMESSAGE']._serialized_start=52247 - _globals['_HANDSHAKEMESSAGE']._serialized_end=53157 - _globals['_HANDSHAKEMESSAGE_CLIENTFINISH']._serialized_start=52452 - _globals['_HANDSHAKEMESSAGE_CLIENTFINISH']._serialized_end=52573 - _globals['_HANDSHAKEMESSAGE_CLIENTHELLO']._serialized_start=52576 - _globals['_HANDSHAKEMESSAGE_CLIENTHELLO']._serialized_end=52859 - _globals['_HANDSHAKEMESSAGE_SERVERHELLO']._serialized_start=52862 - _globals['_HANDSHAKEMESSAGE_SERVERHELLO']._serialized_end=53001 - _globals['_HANDSHAKEMESSAGE_HANDSHAKEPQMODE']._serialized_start=53004 - _globals['_HANDSHAKEMESSAGE_HANDSHAKEPQMODE']._serialized_end=53157 - _globals['_HATCHMETADATASYNC']._serialized_start=53159 - _globals['_HATCHMETADATASYNC']._serialized_end=53232 - _globals['_HISTORYSYNC']._serialized_start=53235 - _globals['_HISTORYSYNC']._serialized_end=54289 - _globals['_HISTORYSYNC_BOTAIWAITLISTSTATE']._serialized_start=54093 - _globals['_HISTORYSYNC_BOTAIWAITLISTSTATE']._serialized_end=54148 - _globals['_HISTORYSYNC_HISTORYSYNCTYPE']._serialized_start=54151 - _globals['_HISTORYSYNC_HISTORYSYNCTYPE']._serialized_end=54289 - _globals['_HISTORYSYNCMSG']._serialized_start=54291 - _globals['_HISTORYSYNCMSG']._serialized_end=54370 - _globals['_HYDRATEDTEMPLATEBUTTON']._serialized_start=54373 - _globals['_HYDRATEDTEMPLATEBUTTON']._serialized_end=55038 - _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDCALLBUTTON']._serialized_start=54649 - _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDCALLBUTTON']._serialized_end=54711 - _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDQUICKREPLYBUTTON']._serialized_start=54713 - _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDQUICKREPLYBUTTON']._serialized_end=54772 - _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDURLBUTTON']._serialized_start=54775 - _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDURLBUTTON']._serialized_end=55020 - _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDURLBUTTON_WEBVIEWPRESENTATIONTYPE']._serialized_start=54962 - _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDURLBUTTON_WEBVIEWPRESENTATIONTYPE']._serialized_end=55020 - _globals['_IDENTITYKEYPAIRSTRUCTURE']._serialized_start=55040 - _globals['_IDENTITYKEYPAIRSTRUCTURE']._serialized_end=55105 - _globals['_INTHREADSURVEYMETADATA']._serialized_start=55108 - _globals['_INTHREADSURVEYMETADATA']._serialized_end=56027 - _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYOPTION']._serialized_start=55724 - _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYOPTION']._serialized_end=55813 - _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYPRIVACYSTATEMENTPART']._serialized_start=55815 - _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYPRIVACYSTATEMENTPART']._serialized_end=55878 - _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYQUESTION']._serialized_start=55881 - _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYQUESTION']._serialized_end=56027 - _globals['_INLINECONTACT']._serialized_start=56029 - _globals['_INLINECONTACT']._serialized_end=56130 - _globals['_INTERACTIVEANNOTATION']._serialized_start=56133 - _globals['_INTERACTIVEANNOTATION']._serialized_end=56660 - _globals['_INTERACTIVEANNOTATION_STATUSLINKTYPE']._serialized_start=56544 - _globals['_INTERACTIVEANNOTATION_STATUSLINKTYPE']._serialized_end=56650 - _globals['_INTERACTIVEMESSAGEADDITIONALMETADATA']._serialized_start=56662 - _globals['_INTERACTIVEMESSAGEADDITIONALMETADATA']._serialized_end=56731 - _globals['_KEEPINCHAT']._serialized_start=56734 - _globals['_KEEPINCHAT']._serialized_end=56917 - _globals['_KEYEXCHANGEMESSAGE']._serialized_start=56919 - _globals['_KEYEXCHANGEMESSAGE']._serialized_end=57035 - _globals['_KEYID']._serialized_start=57037 - _globals['_KEYID']._serialized_end=57056 - _globals['_LIDMIGRATIONMAPPING']._serialized_start=57058 - _globals['_LIDMIGRATIONMAPPING']._serialized_end=57131 - _globals['_LIDMIGRATIONMAPPINGSYNCMESSAGE']._serialized_start=57133 - _globals['_LIDMIGRATIONMAPPINGSYNCMESSAGE']._serialized_end=57196 - _globals['_LIDMIGRATIONMAPPINGSYNCPAYLOAD']._serialized_start=57198 - _globals['_LIDMIGRATIONMAPPINGSYNCPAYLOAD']._serialized_end=57320 - _globals['_LEGACYMESSAGE']._serialized_start=57323 - _globals['_LEGACYMESSAGE']._serialized_end=57461 - _globals['_LIMITSHARING']._serialized_start=57464 - _globals['_LIMITSHARING']._serialized_end=57710 - _globals['_LIMITSHARING_TRIGGERTYPE']._serialized_start=57618 - _globals['_LIMITSHARING_TRIGGERTYPE']._serialized_end=57710 - _globals['_LOCALIZEDNAME']._serialized_start=57712 - _globals['_LOCALIZEDNAME']._serialized_end=57773 - _globals['_LOCATION']._serialized_start=33906 - _globals['_LOCATION']._serialized_end=33981 - _globals['_MEDIADATA']._serialized_start=57852 - _globals['_MEDIADATA']._serialized_end=57882 - _globals['_MEDIADOMAININFO']._serialized_start=57884 - _globals['_MEDIADOMAININFO']._serialized_end=57973 - _globals['_MEDIAENTRY']._serialized_start=57976 - _globals['_MEDIAENTRY']._serialized_end=58673 - _globals['_MEDIAENTRY_DOWNLOADABLETHUMBNAIL']._serialized_start=58460 - _globals['_MEDIAENTRY_DOWNLOADABLETHUMBNAIL']._serialized_end=58609 - _globals['_MEDIAENTRY_PROGRESSIVEJPEGDETAILS']._serialized_start=58611 - _globals['_MEDIAENTRY_PROGRESSIVEJPEGDETAILS']._serialized_end=58673 - _globals['_MEDIANOTIFYMESSAGE']._serialized_start=58675 - _globals['_MEDIANOTIFYMESSAGE']._serialized_end=58762 - _globals['_MEDIARETRYNOTIFICATION']._serialized_start=58765 - _globals['_MEDIARETRYNOTIFICATION']._serialized_end=58994 - _globals['_MEDIARETRYNOTIFICATION_RESULTTYPE']._serialized_start=58913 - _globals['_MEDIARETRYNOTIFICATION_RESULTTYPE']._serialized_end=58994 - _globals['_MEMBERLABEL']._serialized_start=58996 - _globals['_MEMBERLABEL']._serialized_end=59048 - _globals['_MENTION']._serialized_start=59050 - _globals['_MENTION']._serialized_end=59166 - _globals['_MESSAGE']._serialized_start=59170 - _globals['_MESSAGE']._serialized_end=108257 - _globals['_MESSAGE_ALBUMMESSAGE']._serialized_start=66427 - _globals['_MESSAGE_ALBUMMESSAGE']._serialized_end=66541 - _globals['_MESSAGE_APPSTATEFATALEXCEPTIONNOTIFICATION']._serialized_start=66543 - _globals['_MESSAGE_APPSTATEFATALEXCEPTIONNOTIFICATION']._serialized_end=66623 - _globals['_MESSAGE_APPSTATESYNCKEY']._serialized_start=66625 - _globals['_MESSAGE_APPSTATESYNCKEY']._serialized_end=66750 - _globals['_MESSAGE_APPSTATESYNCKEYDATA']._serialized_start=66752 - _globals['_MESSAGE_APPSTATESYNCKEYDATA']._serialized_end=66876 - _globals['_MESSAGE_APPSTATESYNCKEYFINGERPRINT']._serialized_start=66878 - _globals['_MESSAGE_APPSTATESYNCKEYFINGERPRINT']._serialized_end=66970 - _globals['_MESSAGE_APPSTATESYNCKEYID']._serialized_start=66972 - _globals['_MESSAGE_APPSTATESYNCKEYID']._serialized_end=67006 - _globals['_MESSAGE_APPSTATESYNCKEYREQUEST']._serialized_start=67008 - _globals['_MESSAGE_APPSTATESYNCKEYREQUEST']._serialized_end=67085 - _globals['_MESSAGE_APPSTATESYNCKEYSHARE']._serialized_start=67087 - _globals['_MESSAGE_APPSTATESYNCKEYSHARE']._serialized_end=67158 - _globals['_MESSAGE_AUDIOMESSAGE']._serialized_start=67161 - _globals['_MESSAGE_AUDIOMESSAGE']._serialized_end=67522 - _globals['_MESSAGE_BCALLMESSAGE']._serialized_start=67525 - _globals['_MESSAGE_BCALLMESSAGE']._serialized_end=67703 - _globals['_MESSAGE_BCALLMESSAGE_MEDIATYPE']._serialized_start=67657 - _globals['_MESSAGE_BCALLMESSAGE_MEDIATYPE']._serialized_end=67703 - _globals['_MESSAGE_BUTTONSMESSAGE']._serialized_start=67706 - _globals['_MESSAGE_BUTTONSMESSAGE']._serialized_end=68670 - _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON']._serialized_start=68185 - _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON']._serialized_end=68562 - _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_BUTTONTEXT']._serialized_start=68425 - _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_BUTTONTEXT']._serialized_end=68458 - _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_NATIVEFLOWINFO']._serialized_start=68460 - _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_NATIVEFLOWINFO']._serialized_end=68510 - _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_TYPE']._serialized_start=68512 - _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_TYPE']._serialized_end=68562 - _globals['_MESSAGE_BUTTONSMESSAGE_HEADERTYPE']._serialized_start=68564 - _globals['_MESSAGE_BUTTONSMESSAGE_HEADERTYPE']._serialized_end=68660 - _globals['_MESSAGE_BUTTONSRESPONSEMESSAGE']._serialized_start=68673 - _globals['_MESSAGE_BUTTONSRESPONSEMESSAGE']._serialized_end=68910 - _globals['_MESSAGE_BUTTONSRESPONSEMESSAGE_TYPE']._serialized_start=68861 - _globals['_MESSAGE_BUTTONSRESPONSEMESSAGE_TYPE']._serialized_end=68898 - _globals['_MESSAGE_CALL']._serialized_start=68913 - _globals['_MESSAGE_CALL']._serialized_end=69248 - _globals['_MESSAGE_CALLLOGMESSAGE']._serialized_start=69251 - _globals['_MESSAGE_CALLLOGMESSAGE']._serialized_end=69822 - _globals['_MESSAGE_CALLLOGMESSAGE_CALLPARTICIPANT']._serialized_start=69508 - _globals['_MESSAGE_CALLLOGMESSAGE_CALLPARTICIPANT']._serialized_end=69605 - _globals['_MESSAGE_CALLLOGMESSAGE_CALLOUTCOME']._serialized_start=69608 - _globals['_MESSAGE_CALLLOGMESSAGE_CALLOUTCOME']._serialized_end=69761 - _globals['_MESSAGE_CALLLOGMESSAGE_CALLTYPE']._serialized_start=24121 - _globals['_MESSAGE_CALLLOGMESSAGE_CALLTYPE']._serialized_end=24180 - _globals['_MESSAGE_CANCELPAYMENTREQUESTMESSAGE']._serialized_start=69824 - _globals['_MESSAGE_CANCELPAYMENTREQUESTMESSAGE']._serialized_end=69888 - _globals['_MESSAGE_CHAT']._serialized_start=69890 - _globals['_MESSAGE_CHAT']._serialized_end=69929 - _globals['_MESSAGE_CHATCUSTOMIMAGEWALLPAPER']._serialized_start=69931 - _globals['_MESSAGE_CHATCUSTOMIMAGEWALLPAPER']._serialized_end=70056 - _globals['_MESSAGE_CHATDEFAULTWALLPAPER']._serialized_start=70058 - _globals['_MESSAGE_CHATDEFAULTWALLPAPER']._serialized_end=70105 - _globals['_MESSAGE_CHATSOLIDCOLORWALLPAPER']._serialized_start=70107 - _globals['_MESSAGE_CHATSOLIDCOLORWALLPAPER']._serialized_end=70196 - _globals['_MESSAGE_CHATSTOCKIMAGEWALLPAPER']._serialized_start=70198 - _globals['_MESSAGE_CHATSTOCKIMAGEWALLPAPER']._serialized_end=70263 - _globals['_MESSAGE_CHATTHEMESETTING']._serialized_start=70266 - _globals['_MESSAGE_CHATTHEMESETTING']._serialized_end=70633 - _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION']._serialized_start=70636 - _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION']._serialized_end=71193 - _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION_CLOUDAPITHREADCONTROLNOTIFICATIONCONTENT']._serialized_start=71012 - _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION_CLOUDAPITHREADCONTROLNOTIFICATIONCONTENT']._serialized_end=71106 - _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION_CLOUDAPITHREADCONTROL']._serialized_start=71108 - _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION_CLOUDAPITHREADCONTROL']._serialized_end=71193 - _globals['_MESSAGE_COMMENTMESSAGE']._serialized_start=71195 - _globals['_MESSAGE_COMMENTMESSAGE']._serialized_end=71295 - _globals['_MESSAGE_CONDITIONALREVEALMESSAGE']._serialized_start=71298 - _globals['_MESSAGE_CONDITIONALREVEALMESSAGE']._serialized_end=71559 - _globals['_MESSAGE_CONDITIONALREVEALMESSAGE_CONDITIONALREVEALMESSAGETYPE']._serialized_start=71493 - _globals['_MESSAGE_CONDITIONALREVEALMESSAGE_CONDITIONALREVEALMESSAGETYPE']._serialized_end=71559 - _globals['_MESSAGE_CONTACTMESSAGE']._serialized_start=71561 - _globals['_MESSAGE_CONTACTMESSAGE']._serialized_end=71680 - _globals['_MESSAGE_CONTACTSARRAYMESSAGE']._serialized_start=71683 - _globals['_MESSAGE_CONTACTSARRAYMESSAGE']._serialized_end=71822 - _globals['_MESSAGE_DECLINEPAYMENTREQUESTMESSAGE']._serialized_start=71824 - _globals['_MESSAGE_DECLINEPAYMENTREQUESTMESSAGE']._serialized_end=71889 - _globals['_MESSAGE_DEVICESENTMESSAGE']._serialized_start=71891 - _globals['_MESSAGE_DEVICESENTMESSAGE']._serialized_end=71985 - _globals['_MESSAGE_DOCUMENTMESSAGE']._serialized_start=71988 - _globals['_MESSAGE_DOCUMENTMESSAGE']._serialized_end=72481 - _globals['_MESSAGE_ENCCOMMENTMESSAGE']._serialized_start=72483 - _globals['_MESSAGE_ENCCOMMENTMESSAGE']._serialized_end=72585 - _globals['_MESSAGE_ENCEVENTRESPONSEMESSAGE']._serialized_start=72587 - _globals['_MESSAGE_ENCEVENTRESPONSEMESSAGE']._serialized_end=72702 - _globals['_MESSAGE_ENCREACTIONMESSAGE']._serialized_start=72704 - _globals['_MESSAGE_ENCREACTIONMESSAGE']._serialized_end=72807 - _globals['_MESSAGE_EVENTINVITEMESSAGE']._serialized_start=72810 - _globals['_MESSAGE_EVENTINVITEMESSAGE']._serialized_end=73025 - _globals['_MESSAGE_EVENTMESSAGE']._serialized_start=73028 - _globals['_MESSAGE_EVENTMESSAGE']._serialized_end=73348 - _globals['_MESSAGE_EVENTRESPONSEMESSAGE']._serialized_start=73351 - _globals['_MESSAGE_EVENTRESPONSEMESSAGE']._serialized_end=73566 - _globals['_MESSAGE_EVENTRESPONSEMESSAGE_EVENTRESPONSETYPE']._serialized_start=73497 - _globals['_MESSAGE_EVENTRESPONSEMESSAGE_EVENTRESPONSETYPE']._serialized_end=73566 - _globals['_MESSAGE_EXTENDEDTEXTMESSAGE']._serialized_start=73569 - _globals['_MESSAGE_EXTENDEDTEXTMESSAGE']._serialized_end=75168 - _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_FONTTYPE']._serialized_start=74834 - _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_FONTTYPE']._serialized_end=74998 - _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_INVITELINKGROUPTYPE']._serialized_start=75000 - _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_INVITELINKGROUPTYPE']._serialized_end=75072 - _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_PREVIEWTYPE']._serialized_start=75074 - _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_PREVIEWTYPE']._serialized_end=75168 - _globals['_MESSAGE_FULLHISTORYSYNCONDEMANDCONFIG']._serialized_start=75170 - _globals['_MESSAGE_FULLHISTORYSYNCONDEMANDCONFIG']._serialized_end=75260 - _globals['_MESSAGE_FULLHISTORYSYNCONDEMANDREQUESTMETADATA']._serialized_start=75262 - _globals['_MESSAGE_FULLHISTORYSYNCONDEMANDREQUESTMETADATA']._serialized_end=75372 - _globals['_MESSAGE_FUTUREPROOFMESSAGE']._serialized_start=75374 - _globals['_MESSAGE_FUTUREPROOFMESSAGE']._serialized_end=75430 - _globals['_MESSAGE_GROUPINVITEMESSAGE']._serialized_start=75433 - _globals['_MESSAGE_GROUPINVITEMESSAGE']._serialized_end=75725 - _globals['_MESSAGE_GROUPINVITEMESSAGE_GROUPTYPE']._serialized_start=75689 - _globals['_MESSAGE_GROUPINVITEMESSAGE_GROUPTYPE']._serialized_end=75725 - _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE']._serialized_start=75728 - _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE']._serialized_end=77208 - _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER']._serialized_start=76052 - _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER']._serialized_end=77208 - _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMCURRENCY']._serialized_start=76294 - _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMCURRENCY']._serialized_end=76349 - _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME']._serialized_start=76352 - _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME']._serialized_end=77194 - _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT']._serialized_start=76610 - _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT']._serialized_end=77134 - _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT_CALENDARTYPE']._serialized_start=76979 - _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT_CALENDARTYPE']._serialized_end=77025 - _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT_DAYOFWEEKTYPE']._serialized_start=77027 - _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT_DAYOFWEEKTYPE']._serialized_end=77134 - _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMEUNIXEPOCH']._serialized_start=77136 - _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMEUNIXEPOCH']._serialized_end=77177 - _globals['_MESSAGE_HISTORYSYNCMESSAGEACCESSSTATUS']._serialized_start=77210 - _globals['_MESSAGE_HISTORYSYNCMESSAGEACCESSSTATUS']._serialized_end=77273 - _globals['_MESSAGE_HISTORYSYNCNOTIFICATION']._serialized_start=77276 - _globals['_MESSAGE_HISTORYSYNCNOTIFICATION']._serialized_end=77839 - _globals['_MESSAGE_IMAGEMESSAGE']._serialized_start=77842 - _globals['_MESSAGE_IMAGEMESSAGE']._serialized_end=78766 - _globals['_MESSAGE_IMAGEMESSAGE_IMAGESOURCETYPE']._serialized_start=78670 - _globals['_MESSAGE_IMAGEMESSAGE_IMAGESOURCETYPE']._serialized_end=78766 - _globals['_MESSAGE_INITIALSECURITYNOTIFICATIONSETTINGSYNC']._serialized_start=78768 - _globals['_MESSAGE_INITIALSECURITYNOTIFICATIONSETTINGSYNC']._serialized_end=78845 - _globals['_MESSAGE_INTERACTIVEMESSAGE']._serialized_start=78848 - _globals['_MESSAGE_INTERACTIVEMESSAGE']._serialized_end=80997 - _globals['_MESSAGE_INTERACTIVEMESSAGE_BLOKSWIDGET']._serialized_start=79548 - _globals['_MESSAGE_INTERACTIVEMESSAGE_BLOKSWIDGET']._serialized_end=79621 - _globals['_MESSAGE_INTERACTIVEMESSAGE_BODY']._serialized_start=79623 - _globals['_MESSAGE_INTERACTIVEMESSAGE_BODY']._serialized_end=79643 - _globals['_MESSAGE_INTERACTIVEMESSAGE_CAROUSELMESSAGE']._serialized_start=79646 - _globals['_MESSAGE_INTERACTIVEMESSAGE_CAROUSELMESSAGE']._serialized_end=79906 - _globals['_MESSAGE_INTERACTIVEMESSAGE_CAROUSELMESSAGE_CAROUSELCARDTYPE']._serialized_start=79839 - _globals['_MESSAGE_INTERACTIVEMESSAGE_CAROUSELMESSAGE_CAROUSELCARDTYPE']._serialized_end=79906 - _globals['_MESSAGE_INTERACTIVEMESSAGE_COLLECTIONMESSAGE']._serialized_start=79908 - _globals['_MESSAGE_INTERACTIVEMESSAGE_COLLECTIONMESSAGE']._serialized_end=79979 - _globals['_MESSAGE_INTERACTIVEMESSAGE_FOOTER']._serialized_start=79981 - _globals['_MESSAGE_INTERACTIVEMESSAGE_FOOTER']._serialized_end=80096 - _globals['_MESSAGE_INTERACTIVEMESSAGE_HEADER']._serialized_start=80099 - _globals['_MESSAGE_INTERACTIVEMESSAGE_HEADER']._serialized_end=80569 - _globals['_MESSAGE_INTERACTIVEMESSAGE_NATIVEFLOWMESSAGE']._serialized_start=80572 - _globals['_MESSAGE_INTERACTIVEMESSAGE_NATIVEFLOWMESSAGE']._serialized_end=80792 - _globals['_MESSAGE_INTERACTIVEMESSAGE_NATIVEFLOWMESSAGE_NATIVEFLOWBUTTON']._serialized_start=80734 - _globals['_MESSAGE_INTERACTIVEMESSAGE_NATIVEFLOWMESSAGE_NATIVEFLOWBUTTON']._serialized_end=80792 - _globals['_MESSAGE_INTERACTIVEMESSAGE_SHOPMESSAGE']._serialized_start=80795 - _globals['_MESSAGE_INTERACTIVEMESSAGE_SHOPMESSAGE']._serialized_end=80975 - _globals['_MESSAGE_INTERACTIVEMESSAGE_SHOPMESSAGE_SURFACE']._serialized_start=80921 - _globals['_MESSAGE_INTERACTIVEMESSAGE_SHOPMESSAGE_SURFACE']._serialized_end=80975 - _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE']._serialized_start=81000 - _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE']._serialized_end=81494 - _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_BODY']._serialized_start=81249 - _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_BODY']._serialized_end=81384 - _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_BODY_FORMAT']._serialized_start=81345 - _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_BODY_FORMAT']._serialized_end=81384 - _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_NATIVEFLOWRESPONSEMESSAGE']._serialized_start=81386 - _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_NATIVEFLOWRESPONSEMESSAGE']._serialized_end=81464 - _globals['_MESSAGE_INVOICEMESSAGE']._serialized_start=81497 - _globals['_MESSAGE_INVOICEMESSAGE']._serialized_end=81872 - _globals['_MESSAGE_INVOICEMESSAGE_ATTACHMENTTYPE']._serialized_start=81836 - _globals['_MESSAGE_INVOICEMESSAGE_ATTACHMENTTYPE']._serialized_end=81872 - _globals['_MESSAGE_KEEPINCHATMESSAGE']._serialized_start=81874 - _globals['_MESSAGE_KEEPINCHATMESSAGE']._serialized_end=81987 - _globals['_MESSAGE_LINKPREVIEWMETADATA']._serialized_start=81990 - _globals['_MESSAGE_LINKPREVIEWMETADATA']._serialized_end=82509 - _globals['_MESSAGE_LINKPREVIEWMETADATA_SOCIALMEDIAPOSTTYPE']._serialized_start=82404 - _globals['_MESSAGE_LINKPREVIEWMETADATA_SOCIALMEDIAPOSTTYPE']._serialized_end=82509 - _globals['_MESSAGE_LISTMESSAGE']._serialized_start=82512 - _globals['_MESSAGE_LISTMESSAGE']._serialized_end=83407 - _globals['_MESSAGE_LISTMESSAGE_PRODUCT']._serialized_start=82834 - _globals['_MESSAGE_LISTMESSAGE_PRODUCT']._serialized_end=82862 - _globals['_MESSAGE_LISTMESSAGE_PRODUCTLISTHEADERIMAGE']._serialized_start=82864 - _globals['_MESSAGE_LISTMESSAGE_PRODUCTLISTHEADERIMAGE']._serialized_end=82930 - _globals['_MESSAGE_LISTMESSAGE_PRODUCTLISTINFO']._serialized_start=82933 - _globals['_MESSAGE_LISTMESSAGE_PRODUCTLISTINFO']._serialized_end=83122 - _globals['_MESSAGE_LISTMESSAGE_PRODUCTSECTION']._serialized_start=83124 - _globals['_MESSAGE_LISTMESSAGE_PRODUCTSECTION']._serialized_end=83212 - _globals['_MESSAGE_LISTMESSAGE_ROW']._serialized_start=83214 - _globals['_MESSAGE_LISTMESSAGE_ROW']._serialized_end=83270 - _globals['_MESSAGE_LISTMESSAGE_SECTION']._serialized_start=83272 - _globals['_MESSAGE_LISTMESSAGE_SECTION']._serialized_end=83345 - _globals['_MESSAGE_LISTMESSAGE_LISTTYPE']._serialized_start=83347 - _globals['_MESSAGE_LISTMESSAGE_LISTTYPE']._serialized_end=83407 - _globals['_MESSAGE_LISTRESPONSEMESSAGE']._serialized_start=83410 - _globals['_MESSAGE_LISTRESPONSEMESSAGE']._serialized_end=83749 - _globals['_MESSAGE_LISTRESPONSEMESSAGE_SINGLESELECTREPLY']._serialized_start=83663 - _globals['_MESSAGE_LISTRESPONSEMESSAGE_SINGLESELECTREPLY']._serialized_end=83705 - _globals['_MESSAGE_LISTRESPONSEMESSAGE_LISTTYPE']._serialized_start=83347 - _globals['_MESSAGE_LISTRESPONSEMESSAGE_LISTTYPE']._serialized_end=83389 - _globals['_MESSAGE_LIVELOCATIONMESSAGE']._serialized_start=83752 - _globals['_MESSAGE_LIVELOCATIONMESSAGE']._serialized_end=84041 - _globals['_MESSAGE_LOCATIONMESSAGE']._serialized_start=84044 - _globals['_MESSAGE_LOCATIONMESSAGE']._serialized_end=84345 - _globals['_MESSAGE_MMSTHUMBNAILMETADATA']._serialized_start=84348 - _globals['_MESSAGE_MMSTHUMBNAILMETADATA']._serialized_end=84546 - _globals['_MESSAGE_MESSAGEHISTORYBUNDLE']._serialized_start=84549 - _globals['_MESSAGE_MESSAGEHISTORYBUNDLE']._serialized_end=84815 - _globals['_MESSAGE_MESSAGEHISTORYMETADATA']._serialized_start=84818 - _globals['_MESSAGE_MESSAGEHISTORYMETADATA']._serialized_end=84999 - _globals['_MESSAGE_MESSAGEHISTORYNOTICE']._serialized_start=85002 - _globals['_MESSAGE_MESSAGEHISTORYNOTICE']._serialized_end=85142 - _globals['_MESSAGE_NEWSLETTERADMININVITEMESSAGE']._serialized_start=85145 - _globals['_MESSAGE_NEWSLETTERADMININVITEMESSAGE']._serialized_end=85332 - _globals['_MESSAGE_NEWSLETTERFOLLOWERINVITEMESSAGE']._serialized_start=85335 - _globals['_MESSAGE_NEWSLETTERFOLLOWERINVITEMESSAGE']._serialized_end=85499 - _globals['_MESSAGE_ORDERMESSAGE']._serialized_start=85502 - _globals['_MESSAGE_ORDERMESSAGE']._serialized_end=86043 - _globals['_MESSAGE_ORDERMESSAGE_ORDERSTATUS']._serialized_start=85960 - _globals['_MESSAGE_ORDERMESSAGE_ORDERSTATUS']._serialized_end=86014 - _globals['_MESSAGE_ORDERMESSAGE_ORDERSURFACE']._serialized_start=86016 - _globals['_MESSAGE_ORDERMESSAGE_ORDERSURFACE']._serialized_end=86043 - _globals['_MESSAGE_PAYMENTEXTENDEDMETADATA']._serialized_start=86045 - _globals['_MESSAGE_PAYMENTEXTENDEDMETADATA']._serialized_end=86102 - _globals['_MESSAGE_PAYMENTINVITEMESSAGE']._serialized_start=86105 - _globals['_MESSAGE_PAYMENTINVITEMESSAGE']._serialized_end=86440 - _globals['_MESSAGE_PAYMENTINVITEMESSAGE_INVITETYPE']._serialized_start=86345 - _globals['_MESSAGE_PAYMENTINVITEMESSAGE_INVITETYPE']._serialized_end=86382 - _globals['_MESSAGE_PAYMENTINVITEMESSAGE_SERVICETYPE']._serialized_start=86384 - _globals['_MESSAGE_PAYMENTINVITEMESSAGE_SERVICETYPE']._serialized_end=86440 - _globals['_MESSAGE_PAYMENTLINKMETADATA']._serialized_start=86443 - _globals['_MESSAGE_PAYMENTLINKMETADATA']._serialized_end=86947 - _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKBUTTON']._serialized_start=86689 - _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKBUTTON']._serialized_end=86729 - _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKHEADER']._serialized_start=86732 - _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKHEADER']._serialized_end=86904 - _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKHEADER_PAYMENTLINKHEADERTYPE']._serialized_start=86852 - _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKHEADER_PAYMENTLINKHEADERTYPE']._serialized_end=86904 - _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKPROVIDER']._serialized_start=86906 - _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKPROVIDER']._serialized_end=86947 - _globals['_MESSAGE_PAYMENTREMINDERMESSAGE']._serialized_start=86950 - _globals['_MESSAGE_PAYMENTREMINDERMESSAGE']._serialized_end=87516 - _globals['_MESSAGE_PAYMENTREMINDERMESSAGE_REMINDERFREQUENCY']._serialized_start=87276 - _globals['_MESSAGE_PAYMENTREMINDERMESSAGE_REMINDERFREQUENCY']._serialized_end=87382 - _globals['_MESSAGE_PAYMENTREMINDERMESSAGE_REMINDERSTATUS']._serialized_start=87385 - _globals['_MESSAGE_PAYMENTREMINDERMESSAGE_REMINDERSTATUS']._serialized_end=87516 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE']._serialized_start=87519 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE']._serialized_end=90327 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_BIZBROADCASTINSIGHTSCONTACTLISTREQUEST']._serialized_start=88958 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_BIZBROADCASTINSIGHTSCONTACTLISTREQUEST']._serialized_end=89018 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_BIZBROADCASTINSIGHTSREFRESHREQUEST']._serialized_start=89020 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_BIZBROADCASTINSIGHTSREFRESHREQUEST']._serialized_end=89076 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_COMPANIONCANONICALUSERNONCEFETCHREQUEST']._serialized_start=89078 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_COMPANIONCANONICALUSERNONCEFETCHREQUEST']._serialized_end=89148 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_FULLHISTORYSYNCONDEMANDREQUEST']._serialized_start=89151 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_FULLHISTORYSYNCONDEMANDREQUEST']._serialized_end=89422 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_GALAXYFLOWACTION']._serialized_start=89425 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_GALAXYFLOWACTION']._serialized_end=89699 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_GALAXYFLOWACTION_GALAXYFLOWACTIONTYPE']._serialized_start=89634 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_GALAXYFLOWACTION_GALAXYFLOWACTIONTYPE']._serialized_end=89699 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_HISTORYSYNCCHUNKRETRYREQUEST']._serialized_start=89702 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_HISTORYSYNCCHUNKRETRYREQUEST']._serialized_end=89859 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_HISTORYSYNCONDEMANDREQUEST']._serialized_start=89862 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_HISTORYSYNCONDEMANDREQUEST']._serialized_end=90060 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_PLACEHOLDERMESSAGERESENDREQUEST']._serialized_start=90062 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_PLACEHOLDERMESSAGERESENDREQUEST']._serialized_end=90137 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_REQUESTSTICKERREUPLOAD']._serialized_start=90139 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_REQUESTSTICKERREUPLOAD']._serialized_end=90183 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_REQUESTURLPREVIEW']._serialized_start=90185 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_REQUESTURLPREVIEW']._serialized_end=90245 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_SYNCDCOLLECTIONFATALRECOVERYREQUEST']._serialized_start=90247 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_SYNCDCOLLECTIONFATALRECOVERYREQUEST']._serialized_end=90327 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE']._serialized_start=90330 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE']._serialized_end=95049 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT']._serialized_start=90594 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT']._serialized_end=95049 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_BIZBROADCASTINSIGHTSCONTACTLISTRESPONSE']._serialized_start=92339 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_BIZBROADCASTINSIGHTSCONTACTLISTRESPONSE']._serialized_end=92556 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_BIZBROADCASTINSIGHTSCONTACTSTATE']._serialized_start=92558 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_BIZBROADCASTINSIGHTSCONTACTSTATE']._serialized_end=92667 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_COMPANIONCANONICALUSERNONCEFETCHRESPONSE']._serialized_start=92669 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_COMPANIONCANONICALUSERNONCEFETCHRESPONSE']._serialized_end=92764 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_COMPANIONMETANONCEFETCHRESPONSE']._serialized_start=92766 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_COMPANIONMETANONCEFETCHRESPONSE']._serialized_end=92814 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FLOWRESPONSESCSVBUNDLE']._serialized_start=92817 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FLOWRESPONSESCSVBUNDLE']._serialized_end=93058 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FULLHISTORYSYNCONDEMANDREQUESTRESPONSE']._serialized_start=93061 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FULLHISTORYSYNCONDEMANDREQUESTRESPONSE']._serialized_end=93326 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_HISTORYSYNCCHUNKRETRYRESPONSE']._serialized_start=93329 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_HISTORYSYNCCHUNKRETRYRESPONSE']._serialized_end=93612 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE']._serialized_start=93615 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE']._serialized_end=94375 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE_LINKPREVIEWHIGHQUALITYTHUMBNAIL']._serialized_start=94062 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE_LINKPREVIEWHIGHQUALITYTHUMBNAIL']._serialized_end=94244 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE_PAYMENTLINKPREVIEWMETADATA']._serialized_start=94247 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE_PAYMENTLINKPREVIEWMETADATA']._serialized_end=94375 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_PLACEHOLDERMESSAGERESENDRESPONSE']._serialized_start=94377 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_PLACEHOLDERMESSAGERESENDRESPONSE']._serialized_end=94440 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_SYNCDSNAPSHOTFATALRECOVERYRESPONSE']._serialized_start=94442 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_SYNCDSNAPSHOTFATALRECOVERYRESPONSE']._serialized_end=94528 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_WAFFLENONCEFETCHRESPONSE']._serialized_start=94530 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_WAFFLENONCEFETCHRESPONSE']._serialized_end=94590 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FULLHISTORYSYNCONDEMANDRESPONSECODE']._serialized_start=94593 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FULLHISTORYSYNCONDEMANDRESPONSECODE']._serialized_end=94888 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_HISTORYSYNCCHUNKRETRYRESPONSECODE']._serialized_start=94891 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_HISTORYSYNCCHUNKRETRYRESPONSECODE']._serialized_end=95049 - _globals['_MESSAGE_PININCHATMESSAGE']._serialized_start=95052 - _globals['_MESSAGE_PININCHATMESSAGE']._serialized_end=95249 - _globals['_MESSAGE_PININCHATMESSAGE_TYPE']._serialized_start=95189 - _globals['_MESSAGE_PININCHATMESSAGE_TYPE']._serialized_end=95249 - _globals['_MESSAGE_PLACEHOLDERMESSAGE']._serialized_start=95252 - _globals['_MESSAGE_PLACEHOLDERMESSAGE']._serialized_end=95384 - _globals['_MESSAGE_PLACEHOLDERMESSAGE_PLACEHOLDERTYPE']._serialized_start=95342 - _globals['_MESSAGE_PLACEHOLDERMESSAGE_PLACEHOLDERTYPE']._serialized_end=95384 - _globals['_MESSAGE_POLLADDOPTIONMESSAGE']._serialized_start=95387 - _globals['_MESSAGE_POLLADDOPTIONMESSAGE']._serialized_end=95591 - _globals['_MESSAGE_POLLCREATIONMESSAGE']._serialized_start=95594 - _globals['_MESSAGE_POLLCREATIONMESSAGE']._serialized_end=96079 - _globals['_MESSAGE_POLLCREATIONMESSAGE_OPTION']._serialized_start=96031 - _globals['_MESSAGE_POLLCREATIONMESSAGE_OPTION']._serialized_end=96079 - _globals['_MESSAGE_POLLENCVALUE']._serialized_start=34798 - _globals['_MESSAGE_POLLENCVALUE']._serialized_end=34847 - _globals['_MESSAGE_POLLRESULTSNAPSHOTMESSAGE']._serialized_start=96133 - _globals['_MESSAGE_POLLRESULTSNAPSHOTMESSAGE']._serialized_end=96394 - _globals['_MESSAGE_POLLRESULTSNAPSHOTMESSAGE_POLLVOTE']._serialized_start=96339 - _globals['_MESSAGE_POLLRESULTSNAPSHOTMESSAGE_POLLVOTE']._serialized_end=96394 - _globals['_MESSAGE_POLLUPDATEMESSAGE']._serialized_start=96397 - _globals['_MESSAGE_POLLUPDATEMESSAGE']._serialized_end=96606 - _globals['_MESSAGE_POLLUPDATEMESSAGEMETADATA']._serialized_start=96608 - _globals['_MESSAGE_POLLUPDATEMESSAGEMETADATA']._serialized_end=96683 - _globals['_MESSAGE_POLLVOTEMESSAGE']._serialized_start=35046 - _globals['_MESSAGE_POLLVOTEMESSAGE']._serialized_end=35088 - _globals['_MESSAGE_PRODUCTMESSAGE']._serialized_start=96730 - _globals['_MESSAGE_PRODUCTMESSAGE']._serialized_end=97395 - _globals['_MESSAGE_PRODUCTMESSAGE_CATALOGSNAPSHOT']._serialized_start=96982 - _globals['_MESSAGE_PRODUCTMESSAGE_CATALOGSNAPSHOT']._serialized_end=97089 - _globals['_MESSAGE_PRODUCTMESSAGE_PRODUCTSNAPSHOT']._serialized_start=97092 - _globals['_MESSAGE_PRODUCTMESSAGE_PRODUCTSNAPSHOT']._serialized_end=97395 - _globals['_MESSAGE_PROTOCOLMESSAGE']._serialized_start=97398 - _globals['_MESSAGE_PROTOCOLMESSAGE']._serialized_end=99983 - _globals['_MESSAGE_PROTOCOLMESSAGE_TYPE']._serialized_start=99094 - _globals['_MESSAGE_PROTOCOLMESSAGE_TYPE']._serialized_end=99983 - _globals['_MESSAGE_QUESTIONRESPONSEMESSAGE']._serialized_start=99985 - _globals['_MESSAGE_QUESTIONRESPONSEMESSAGE']._serialized_end=100059 - _globals['_MESSAGE_REACTIONMESSAGE']._serialized_start=35118 - _globals['_MESSAGE_REACTIONMESSAGE']._serialized_end=35232 - _globals['_MESSAGE_REQUESTPAYMENTMESSAGE']._serialized_start=100178 - _globals['_MESSAGE_REQUESTPAYMENTMESSAGE']._serialized_end=100418 - _globals['_MESSAGE_REQUESTPHONENUMBERMESSAGE']._serialized_start=100420 - _globals['_MESSAGE_REQUESTPHONENUMBERMESSAGE']._serialized_end=100491 - _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA']._serialized_start=100494 - _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA']._serialized_end=100855 - _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA_LOCALCHATSTATE']._serialized_start=100757 - _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA_LOCALCHATSTATE']._serialized_end=100799 - _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA_WELCOMETRIGGER']._serialized_start=100801 - _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA_WELCOMETRIGGER']._serialized_end=100855 - _globals['_MESSAGE_ROOTSECRETDISTRIBUTEMESSAGE']._serialized_start=100857 - _globals['_MESSAGE_ROOTSECRETDISTRIBUTEMESSAGE']._serialized_end=100903 - _globals['_MESSAGE_SCHEDULEDCALLCREATIONMESSAGE']._serialized_start=100906 - _globals['_MESSAGE_SCHEDULEDCALLCREATIONMESSAGE']._serialized_end=101103 - _globals['_MESSAGE_SCHEDULEDCALLCREATIONMESSAGE_CALLTYPE']._serialized_start=101058 - _globals['_MESSAGE_SCHEDULEDCALLCREATIONMESSAGE_CALLTYPE']._serialized_end=101103 - _globals['_MESSAGE_SCHEDULEDCALLEDITMESSAGE']._serialized_start=101106 - _globals['_MESSAGE_SCHEDULEDCALLEDITMESSAGE']._serialized_end=101275 - _globals['_MESSAGE_SCHEDULEDCALLEDITMESSAGE_EDITTYPE']._serialized_start=101240 - _globals['_MESSAGE_SCHEDULEDCALLEDITMESSAGE_EDITTYPE']._serialized_end=101275 - _globals['_MESSAGE_SECRETENCRYPTEDMESSAGE']._serialized_start=101278 - _globals['_MESSAGE_SECRETENCRYPTEDMESSAGE']._serialized_end=101607 - _globals['_MESSAGE_SECRETENCRYPTEDMESSAGE_SECRETENCTYPE']._serialized_start=101487 - _globals['_MESSAGE_SECRETENCRYPTEDMESSAGE_SECRETENCTYPE']._serialized_end=101607 - _globals['_MESSAGE_SENDPAYMENTMESSAGE']._serialized_start=101610 - _globals['_MESSAGE_SENDPAYMENTMESSAGE']._serialized_end=101793 - _globals['_MESSAGE_SENDERKEYDISTRIBUTIONMESSAGE']._serialized_start=101795 - _globals['_MESSAGE_SENDERKEYDISTRIBUTIONMESSAGE']._serialized_end=101887 - _globals['_MESSAGE_SPLITPAYMENTMESSAGE']._serialized_start=101890 - _globals['_MESSAGE_SPLITPAYMENTMESSAGE']._serialized_end=102139 - _globals['_MESSAGE_SPLITPAYMENTPARTICIPANT']._serialized_start=102142 - _globals['_MESSAGE_SPLITPAYMENTPARTICIPANT']._serialized_end=102336 - _globals['_MESSAGE_SPLITPAYMENTPARTICIPANT_SPLITPAYMENTSTATUS']._serialized_start=102293 - _globals['_MESSAGE_SPLITPAYMENTPARTICIPANT_SPLITPAYMENTSTATUS']._serialized_end=102336 - _globals['_MESSAGE_STATUSNOTIFICATIONMESSAGE']._serialized_start=102339 - _globals['_MESSAGE_STATUSNOTIFICATIONMESSAGE']._serialized_end=102665 - _globals['_MESSAGE_STATUSNOTIFICATIONMESSAGE_STATUSNOTIFICATIONTYPE']._serialized_start=102550 - _globals['_MESSAGE_STATUSNOTIFICATIONMESSAGE_STATUSNOTIFICATIONTYPE']._serialized_end=102665 - _globals['_MESSAGE_STATUSQUESTIONANSWERMESSAGE']._serialized_start=102667 - _globals['_MESSAGE_STATUSQUESTIONANSWERMESSAGE']._serialized_end=102745 - _globals['_MESSAGE_STATUSQUOTEDMESSAGE']._serialized_start=102748 - _globals['_MESSAGE_STATUSQUOTEDMESSAGE']._serialized_end=102975 - _globals['_MESSAGE_STATUSQUOTEDMESSAGE_STATUSQUOTEDMESSAGETYPE']._serialized_start=102929 - _globals['_MESSAGE_STATUSQUOTEDMESSAGE_STATUSQUOTEDMESSAGETYPE']._serialized_end=102975 - _globals['_MESSAGE_STATUSSTICKERINTERACTIONMESSAGE']._serialized_start=102978 - _globals['_MESSAGE_STATUSSTICKERINTERACTIONMESSAGE']._serialized_end=103197 - _globals['_MESSAGE_STATUSSTICKERINTERACTIONMESSAGE_STATUSSTICKERTYPE']._serialized_start=103151 - _globals['_MESSAGE_STATUSSTICKERINTERACTIONMESSAGE_STATUSSTICKERTYPE']._serialized_end=103197 - _globals['_MESSAGE_STICKERMESSAGE']._serialized_start=103200 - _globals['_MESSAGE_STICKERMESSAGE']._serialized_end=103686 - _globals['_MESSAGE_STICKERPACKMESSAGE']._serialized_start=103689 - _globals['_MESSAGE_STICKERPACKMESSAGE']._serialized_end=104551 - _globals['_MESSAGE_STICKERPACKMESSAGE_STICKER']._serialized_start=104334 - _globals['_MESSAGE_STICKERPACKMESSAGE_STICKER']._serialized_end=104478 - _globals['_MESSAGE_STICKERPACKMESSAGE_STICKERPACKORIGIN']._serialized_start=104480 - _globals['_MESSAGE_STICKERPACKMESSAGE_STICKERPACKORIGIN']._serialized_end=104551 - _globals['_MESSAGE_STICKERSYNCRMRMESSAGE']._serialized_start=104553 - _globals['_MESSAGE_STICKERSYNCRMRMESSAGE']._serialized_end=104639 - _globals['_MESSAGE_TEMPLATEBUTTONREPLYMESSAGE']._serialized_start=104642 - _globals['_MESSAGE_TEMPLATEBUTTONREPLYMESSAGE']._serialized_end=104821 - _globals['_MESSAGE_TEMPLATEMESSAGE']._serialized_start=104824 - _globals['_MESSAGE_TEMPLATEMESSAGE']._serialized_end=106218 - _globals['_MESSAGE_TEMPLATEMESSAGE_FOURROWTEMPLATE']._serialized_start=105241 - _globals['_MESSAGE_TEMPLATEMESSAGE_FOURROWTEMPLATE']._serialized_end=105743 - _globals['_MESSAGE_TEMPLATEMESSAGE_HYDRATEDFOURROWTEMPLATE']._serialized_start=105746 - _globals['_MESSAGE_TEMPLATEMESSAGE_HYDRATEDFOURROWTEMPLATE']._serialized_end=106208 - _globals['_MESSAGE_URLMETADATA']._serialized_start=106220 - _globals['_MESSAGE_URLMETADATA']._serialized_end=106257 - _globals['_MESSAGE_VIDEOENDCARD']._serialized_start=106259 - _globals['_MESSAGE_VIDEOENDCARD']._serialized_end=106362 - _globals['_MESSAGE_VIDEOMESSAGE']._serialized_start=106365 - _globals['_MESSAGE_VIDEOMESSAGE']._serialized_end=107397 - _globals['_MESSAGE_VIDEOMESSAGE_ATTRIBUTION']._serialized_start=107288 - _globals['_MESSAGE_VIDEOMESSAGE_ATTRIBUTION']._serialized_end=107344 - _globals['_MESSAGE_VIDEOMESSAGE_VIDEOSOURCETYPE']._serialized_start=107346 - _globals['_MESSAGE_VIDEOMESSAGE_VIDEOSOURCETYPE']._serialized_end=107397 - _globals['_MESSAGE_HISTORYSYNCTYPE']._serialized_start=107400 - _globals['_MESSAGE_HISTORYSYNCTYPE']._serialized_end=107581 - _globals['_MESSAGE_INSIGHTDELIVERYSTATE']._serialized_start=107583 - _globals['_MESSAGE_INSIGHTDELIVERYSTATE']._serialized_end=107672 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTTYPE']._serialized_start=107675 - _globals['_MESSAGE_PEERDATAOPERATIONREQUESTTYPE']._serialized_end=108172 - _globals['_MESSAGE_POLLCONTENTTYPE']._serialized_start=108174 - _globals['_MESSAGE_POLLCONTENTTYPE']._serialized_end=108225 - _globals['_MESSAGE_POLLTYPE']._serialized_start=108227 - _globals['_MESSAGE_POLLTYPE']._serialized_end=108257 - _globals['_MESSAGEADDON']._serialized_start=108260 - _globals['_MESSAGEADDON']._serialized_end=108744 - _globals['_MESSAGEADDON_MESSAGEADDONTYPE']._serialized_start=108643 - _globals['_MESSAGEADDON_MESSAGEADDONTYPE']._serialized_end=108744 - _globals['_MESSAGEADDONCONTEXTINFO']._serialized_start=108747 - _globals['_MESSAGEADDONCONTEXTINFO']._serialized_end=108893 - _globals['_MESSAGEASSOCIATION']._serialized_start=108896 - _globals['_MESSAGEASSOCIATION']._serialized_end=109548 - _globals['_MESSAGEASSOCIATION_ASSOCIATIONTYPE']._serialized_start=109060 - _globals['_MESSAGEASSOCIATION_ASSOCIATIONTYPE']._serialized_end=109548 - _globals['_MESSAGECONTEXTINFO']._serialized_start=109551 - _globals['_MESSAGECONTEXTINFO']._serialized_end=110318 - _globals['_MESSAGECONTEXTINFO_MESSAGEADDONEXPIRYTYPE']._serialized_start=110257 - _globals['_MESSAGECONTEXTINFO_MESSAGEADDONEXPIRYTYPE']._serialized_end=110318 - _globals['_MESSAGEKEY']._serialized_start=110320 - _globals['_MESSAGEKEY']._serialized_end=110400 - _globals['_MESSAGESECRETMESSAGE']._serialized_start=110402 - _globals['_MESSAGESECRETMESSAGE']._serialized_end=110476 - _globals['_MESSAGETEXT']._serialized_start=110478 - _globals['_MESSAGETEXT']._serialized_end=110601 - _globals['_MONEY']._serialized_start=110603 - _globals['_MONEY']._serialized_end=110663 - _globals['_MSGOPAQUEDATA']._serialized_start=110666 - _globals['_MSGOPAQUEDATA']._serialized_end=112753 - _globals['_MSGOPAQUEDATA_EVENTLOCATION']._serialized_start=112314 - _globals['_MSGOPAQUEDATA_EVENTLOCATION']._serialized_end=112447 - _globals['_MSGOPAQUEDATA_POLLOPTION']._serialized_start=112449 - _globals['_MSGOPAQUEDATA_POLLOPTION']._serialized_end=112489 - _globals['_MSGOPAQUEDATA_POLLVOTESNAPSHOT']._serialized_start=112491 - _globals['_MSGOPAQUEDATA_POLLVOTESNAPSHOT']._serialized_end=112586 - _globals['_MSGOPAQUEDATA_POLLVOTESSNAPSHOT']._serialized_start=112588 - _globals['_MSGOPAQUEDATA_POLLVOTESSNAPSHOT']._serialized_end=112668 - _globals['_MSGOPAQUEDATA_POLLCONTENTTYPE']._serialized_start=108174 - _globals['_MSGOPAQUEDATA_POLLCONTENTTYPE']._serialized_end=108225 - _globals['_MSGOPAQUEDATA_POLLTYPE']._serialized_start=108227 - _globals['_MSGOPAQUEDATA_POLLTYPE']._serialized_end=108257 - _globals['_MSGROWOPAQUEDATA']._serialized_start=112755 - _globals['_MSGROWOPAQUEDATA']._serialized_end=112862 - _globals['_NOISECERTIFICATE']._serialized_start=112865 - _globals['_NOISECERTIFICATE']._serialized_end=113009 - _globals['_NOISECERTIFICATE_DETAILS']._serialized_start=112921 - _globals['_NOISECERTIFICATE_DETAILS']._serialized_end=113009 - _globals['_NOTIFICATIONMESSAGEINFO']._serialized_start=113012 - _globals['_NOTIFICATIONMESSAGEINFO']._serialized_end=113155 - _globals['_NOTIFICATIONSETTINGS']._serialized_start=113158 - _globals['_NOTIFICATIONSETTINGS']._serialized_end=113327 - _globals['_PAIRINGREQUEST']._serialized_start=113329 - _globals['_PAIRINGREQUEST']._serialized_end=113422 - _globals['_PASTPARTICIPANT']._serialized_start=113425 - _globals['_PASTPARTICIPANT']._serialized_end=113574 - _globals['_PASTPARTICIPANT_LEAVEREASON']._serialized_start=113538 - _globals['_PASTPARTICIPANT_LEAVEREASON']._serialized_end=113574 - _globals['_PASTPARTICIPANTS']._serialized_start=113576 - _globals['_PASTPARTICIPANTS']._serialized_end=113665 - _globals['_PATCHDEBUGDATA']._serialized_start=113668 - _globals['_PATCHDEBUGDATA']._serialized_end=114138 - _globals['_PATCHDEBUGDATA_PLATFORM']._serialized_start=114000 - _globals['_PATCHDEBUGDATA_PLATFORM']._serialized_end=114138 - _globals['_PAYMENTBACKGROUND']._serialized_start=114141 - _globals['_PAYMENTBACKGROUND']._serialized_end=114566 - _globals['_PAYMENTBACKGROUND_MEDIADATA']._serialized_start=114413 - _globals['_PAYMENTBACKGROUND_MEDIADATA']._serialized_end=114532 - _globals['_PAYMENTBACKGROUND_TYPE']._serialized_start=114534 - _globals['_PAYMENTBACKGROUND_TYPE']._serialized_end=114566 - _globals['_PAYMENTINFO']._serialized_start=114569 - _globals['_PAYMENTINFO']._serialized_end=115952 - _globals['_PAYMENTINFO_CURRENCY']._serialized_start=115036 - _globals['_PAYMENTINFO_CURRENCY']._serialized_end=115077 - _globals['_PAYMENTINFO_STATUS']._serialized_start=115080 - _globals['_PAYMENTINFO_STATUS']._serialized_end=115284 - _globals['_PAYMENTINFO_TXNSTATUS']._serialized_start=115287 - _globals['_PAYMENTINFO_TXNSTATUS']._serialized_end=115952 - _globals['_PHONENUMBERTOLIDMAPPING']._serialized_start=115954 - _globals['_PHONENUMBERTOLIDMAPPING']._serialized_end=116010 - _globals['_PHOTOCHANGE']._serialized_start=116012 - _globals['_PHOTOCHANGE']._serialized_end=116081 - _globals['_PININCHAT']._serialized_start=116084 - _globals['_PININCHAT']._serialized_end=116354 - _globals['_PININCHAT_TYPE']._serialized_start=95189 - _globals['_PININCHAT_TYPE']._serialized_end=95249 - _globals['_POINT']._serialized_start=116356 - _globals['_POINT']._serialized_end=116427 - _globals['_POLLADDITIONALMETADATA']._serialized_start=116430 - _globals['_POLLADDITIONALMETADATA']._serialized_end=116639 - _globals['_POLLADDITIONALMETADATA_POLLNAMEHASHHISTORYENTRY']._serialized_start=116569 - _globals['_POLLADDITIONALMETADATA_POLLNAMEHASHHISTORYENTRY']._serialized_end=116639 - _globals['_POLLENCVALUE']._serialized_start=34798 - _globals['_POLLENCVALUE']._serialized_end=34847 - _globals['_POLLUPDATE']._serialized_start=116693 - _globals['_POLLUPDATE']._serialized_end=116939 - _globals['_PREKEYRECORDSTRUCTURE']._serialized_start=116941 - _globals['_PREKEYRECORDSTRUCTURE']._serialized_end=117015 - _globals['_PREKEYSIGNALMESSAGE']._serialized_start=117018 - _globals['_PREKEYSIGNALMESSAGE']._serialized_end=117160 - _globals['_PREMIUMMESSAGEINFO']._serialized_start=117162 - _globals['_PREMIUMMESSAGEINFO']._serialized_end=117208 - _globals['_PRIMARYEPHEMERALIDENTITY']._serialized_start=117210 - _globals['_PRIMARYEPHEMERALIDENTITY']._serialized_end=117270 - _globals['_PROCESSEDVIDEO']._serialized_start=117273 - _globals['_PROCESSEDVIDEO']._serialized_end=117534 - _globals['_PROCESSEDVIDEO_VIDEOQUALITY']._serialized_start=117477 - _globals['_PROCESSEDVIDEO_VIDEOQUALITY']._serialized_end=117534 - _globals['_PROLOGUEPAYLOAD']._serialized_start=117536 - _globals['_PROLOGUEPAYLOAD']._serialized_end=117640 - _globals['_PUSHNAME']._serialized_start=117642 - _globals['_PUSHNAME']._serialized_end=117682 - _globals['_QP']._serialized_start=117685 - _globals['_QP']._serialized_end=118257 - _globals['_QP_FILTER']._serialized_start=117692 - _globals['_QP_FILTER']._serialized_end=117899 - _globals['_QP_FILTERCLAUSE']._serialized_start=117902 - _globals['_QP_FILTERCLAUSE']._serialized_end=118043 - _globals['_QP_FILTERPARAMETERS']._serialized_start=118045 - _globals['_QP_FILTERPARAMETERS']._serialized_end=118091 - _globals['_QP_CLAUSETYPE']._serialized_start=118093 - _globals['_QP_CLAUSETYPE']._serialized_end=118131 - _globals['_QP_FILTERCLIENTNOTSUPPORTEDCONFIG']._serialized_start=118133 - _globals['_QP_FILTERCLIENTNOTSUPPORTEDCONFIG']._serialized_end=118207 - _globals['_QP_FILTERRESULT']._serialized_start=118209 - _globals['_QP_FILTERRESULT']._serialized_end=118257 - _globals['_QUARANTINEDMESSAGE']._serialized_start=118259 - _globals['_QUARANTINEDMESSAGE']._serialized_end=118324 - _globals['_REACTION']._serialized_start=118326 - _globals['_REACTION']._serialized_end=118449 - _globals['_RECENTEMOJIWEIGHT']._serialized_start=118451 - _globals['_RECENTEMOJIWEIGHT']._serialized_end=118501 - _globals['_RECORDSTRUCTURE']._serialized_start=118503 - _globals['_RECORDSTRUCTURE']._serialized_end=118626 - _globals['_REPORTABLE']._serialized_start=118628 - _globals['_REPORTABLE']._serialized_end=118728 - _globals['_REPORTINGTOKENINFO']._serialized_start=118730 - _globals['_REPORTINGTOKENINFO']._serialized_end=118772 - _globals['_ROUTINGINFO']._serialized_start=118774 - _globals['_ROUTINGINFO']._serialized_end=118893 - _globals['_SCHEDULEDMESSAGEMETADATA']._serialized_start=118895 - _globals['_SCHEDULEDMESSAGEMETADATA']._serialized_end=118984 - _globals['_SENDERKEYDISTRIBUTIONMESSAGE']._serialized_start=118986 - _globals['_SENDERKEYDISTRIBUTIONMESSAGE']._serialized_end=119085 - _globals['_SENDERKEYMESSAGE']._serialized_start=119087 - _globals['_SENDERKEYMESSAGE']._serialized_end=119156 - _globals['_SENDERKEYRECORDSTRUCTURE']._serialized_start=119158 - _globals['_SENDERKEYRECORDSTRUCTURE']._serialized_end=119244 - _globals['_SENDERKEYSTATESTRUCTURE']._serialized_start=119247 - _globals['_SENDERKEYSTATESTRUCTURE']._serialized_end=119681 - _globals['_SENDERKEYSTATESTRUCTURE_SENDERCHAINKEY']._serialized_start=119526 - _globals['_SENDERKEYSTATESTRUCTURE_SENDERCHAINKEY']._serialized_end=119575 - _globals['_SENDERKEYSTATESTRUCTURE_SENDERMESSAGEKEY']._serialized_start=119577 - _globals['_SENDERKEYSTATESTRUCTURE_SENDERMESSAGEKEY']._serialized_end=119628 - _globals['_SENDERKEYSTATESTRUCTURE_SENDERSIGNINGKEY']._serialized_start=119630 - _globals['_SENDERKEYSTATESTRUCTURE_SENDERSIGNINGKEY']._serialized_end=119681 - _globals['_SERVERERRORRECEIPT']._serialized_start=119683 - _globals['_SERVERERRORRECEIPT']._serialized_end=119721 - _globals['_SESSIONSTRUCTURE']._serialized_start=119724 - _globals['_SESSIONSTRUCTURE']._serialized_end=120819 - _globals['_SESSIONSTRUCTURE_CHAIN']._serialized_start=120226 - _globals['_SESSIONSTRUCTURE_CHAIN']._serialized_end=120535 - _globals['_SESSIONSTRUCTURE_CHAIN_CHAINKEY']._serialized_start=120421 - _globals['_SESSIONSTRUCTURE_CHAIN_CHAINKEY']._serialized_end=120459 - _globals['_SESSIONSTRUCTURE_CHAIN_MESSAGEKEY']._serialized_start=120461 - _globals['_SESSIONSTRUCTURE_CHAIN_MESSAGEKEY']._serialized_end=120535 - _globals['_SESSIONSTRUCTURE_PENDINGKEYEXCHANGE']._serialized_start=120538 - _globals['_SESSIONSTRUCTURE_PENDINGKEYEXCHANGE']._serialized_end=120743 - _globals['_SESSIONSTRUCTURE_PENDINGPREKEY']._serialized_start=120745 - _globals['_SESSIONSTRUCTURE_PENDINGPREKEY']._serialized_end=120819 - _globals['_SESSIONTRANSPARENCYMETADATA']._serialized_start=120822 - _globals['_SESSIONTRANSPARENCYMETADATA']._serialized_end=120958 - _globals['_SIGNALMESSAGE']._serialized_start=120960 - _globals['_SIGNALMESSAGE']._serialized_end=121057 - _globals['_SIGNEDPREKEYRECORDSTRUCTURE']._serialized_start=121059 - _globals['_SIGNEDPREKEYRECORDSTRUCTURE']._serialized_end=121177 - _globals['_STATUSATTRIBUTION']._serialized_start=121180 - _globals['_STATUSATTRIBUTION']._serialized_end=123098 - _globals['_STATUSATTRIBUTION_AICREATEDATTRIBUTION']._serialized_start=121671 - _globals['_STATUSATTRIBUTION_AICREATEDATTRIBUTION']._serialized_end=121809 - _globals['_STATUSATTRIBUTION_AICREATEDATTRIBUTION_SOURCE']._serialized_start=121768 - _globals['_STATUSATTRIBUTION_AICREATEDATTRIBUTION_SOURCE']._serialized_end=121809 - _globals['_STATUSATTRIBUTION_EXTERNALSHARE']._serialized_start=121812 - _globals['_STATUSATTRIBUTION_EXTERNALSHARE']._serialized_end=122158 - _globals['_STATUSATTRIBUTION_EXTERNALSHARE_SOURCE']._serialized_start=121960 - _globals['_STATUSATTRIBUTION_EXTERNALSHARE_SOURCE']._serialized_end=122158 - _globals['_STATUSATTRIBUTION_GROUPSTATUS']._serialized_start=122160 - _globals['_STATUSATTRIBUTION_GROUPSTATUS']._serialized_end=122192 - _globals['_STATUSATTRIBUTION_MUSIC']._serialized_start=122194 - _globals['_STATUSATTRIBUTION_MUSIC']._serialized_end=122315 - _globals['_STATUSATTRIBUTION_RLATTRIBUTION']._serialized_start=122318 - _globals['_STATUSATTRIBUTION_RLATTRIBUTION']._serialized_end=122496 - _globals['_STATUSATTRIBUTION_RLATTRIBUTION_SOURCE']._serialized_start=122401 - _globals['_STATUSATTRIBUTION_RLATTRIBUTION_SOURCE']._serialized_end=122496 - _globals['_STATUSATTRIBUTION_STATUSRESHARE']._serialized_start=122499 - _globals['_STATUSATTRIBUTION_STATUSRESHARE']._serialized_end=122855 - _globals['_STATUSATTRIBUTION_STATUSRESHARE_METADATA']._serialized_start=122652 - _globals['_STATUSATTRIBUTION_STATUSRESHARE_METADATA']._serialized_end=122755 - _globals['_STATUSATTRIBUTION_STATUSRESHARE_SOURCE']._serialized_start=122757 - _globals['_STATUSATTRIBUTION_STATUSRESHARE_SOURCE']._serialized_end=122855 - _globals['_STATUSATTRIBUTION_TYPE']._serialized_start=122858 - _globals['_STATUSATTRIBUTION_TYPE']._serialized_end=123079 - _globals['_STATUSMENTIONMESSAGE']._serialized_start=123100 - _globals['_STATUSMENTIONMESSAGE']._serialized_end=123163 - _globals['_STATUSPSA']._serialized_start=123165 - _globals['_STATUSPSA']._serialized_end=123233 - _globals['_STICKERMETADATA']._serialized_start=123236 - _globals['_STICKERMETADATA']._serialized_end=123521 - _globals['_SUBPROTOCOL']._serialized_start=123523 - _globals['_SUBPROTOCOL']._serialized_end=123570 - _globals['_SYNCACTIONDATA']._serialized_start=123572 - _globals['_SYNCACTIONDATA']._serialized_end=123679 - _globals['_SYNCACTIONVALUE']._serialized_start=123683 - _globals['_SYNCACTIONVALUE']._serialized_end=141980 - _globals['_SYNCACTIONVALUE_AGENTACTION']._serialized_start=129858 - _globals['_SYNCACTIONVALUE_AGENTACTION']._serialized_end=129922 - _globals['_SYNCACTIONVALUE_AITHREADRENAMEACTION']._serialized_start=129924 - _globals['_SYNCACTIONVALUE_AITHREADRENAMEACTION']._serialized_end=129964 - _globals['_SYNCACTIONVALUE_ANDROIDUNSUPPORTEDACTIONS']._serialized_start=129966 - _globals['_SYNCACTIONVALUE_ANDROIDUNSUPPORTEDACTIONS']._serialized_end=130010 - _globals['_SYNCACTIONVALUE_ARCHIVECHATACTION']._serialized_start=130012 - _globals['_SYNCACTIONVALUE_ARCHIVECHATACTION']._serialized_end=130121 - _globals['_SYNCACTIONVALUE_AUTOORGANIZEBUSINESSCHATSETTING']._serialized_start=130123 - _globals['_SYNCACTIONVALUE_AUTOORGANIZEBUSINESSCHATSETTING']._serialized_end=130178 - _globals['_SYNCACTIONVALUE_AVATARUPDATEDACTION']._serialized_start=130181 - _globals['_SYNCACTIONVALUE_AVATARUPDATEDACTION']._serialized_end=130413 - _globals['_SYNCACTIONVALUE_AVATARUPDATEDACTION_AVATAREVENTTYPE']._serialized_start=130357 - _globals['_SYNCACTIONVALUE_AVATARUPDATEDACTION_AVATAREVENTTYPE']._serialized_end=130413 - _globals['_SYNCACTIONVALUE_BIZAISETTINGSNUDGEACTION']._serialized_start=130416 - _globals['_SYNCACTIONVALUE_BIZAISETTINGSNUDGEACTION']._serialized_end=130704 - _globals['_SYNCACTIONVALUE_BIZAISETTINGSNUDGEACTION_BIZAISETTINGSCATEGORY']._serialized_start=130575 - _globals['_SYNCACTIONVALUE_BIZAISETTINGSNUDGEACTION_BIZAISETTINGSCATEGORY']._serialized_end=130704 - _globals['_SYNCACTIONVALUE_BOTWELCOMEREQUESTACTION']._serialized_start=130706 - _globals['_SYNCACTIONVALUE_BOTWELCOMEREQUESTACTION']._serialized_end=130747 - _globals['_SYNCACTIONVALUE_BROADCASTLISTPARTICIPANT']._serialized_start=130749 - _globals['_SYNCACTIONVALUE_BROADCASTLISTPARTICIPANT']._serialized_end=130806 - _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTASSOCIATIONACTION']._serialized_start=130808 - _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTASSOCIATIONACTION']._serialized_end=130861 - _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTCAMPAIGNACTION']._serialized_start=130864 - _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTCAMPAIGNACTION']._serialized_end=131131 - _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTINSIGHTSACTION']._serialized_start=131134 - _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTINSIGHTSACTION']._serialized_end=131281 - _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTLISTACTION']._serialized_start=131284 - _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTLISTACTION']._serialized_end=131468 - _globals['_SYNCACTIONVALUE_CALLLOGACTION']._serialized_start=131470 - _globals['_SYNCACTIONVALUE_CALLLOGACTION']._serialized_end=131533 - _globals['_SYNCACTIONVALUE_CHATASSIGNMENTACTION']._serialized_start=131535 - _globals['_SYNCACTIONVALUE_CHATASSIGNMENTACTION']._serialized_end=131580 - _globals['_SYNCACTIONVALUE_CHATASSIGNMENTOPENEDSTATUSACTION']._serialized_start=131582 - _globals['_SYNCACTIONVALUE_CHATASSIGNMENTOPENEDSTATUSACTION']._serialized_end=131636 - _globals['_SYNCACTIONVALUE_CLEARCHATACTION']._serialized_start=131638 - _globals['_SYNCACTIONVALUE_CLEARCHATACTION']._serialized_end=131727 - _globals['_SYNCACTIONVALUE_CONTACTACTION']._serialized_start=131730 - _globals['_SYNCACTIONVALUE_CONTACTACTION']._serialized_end=131865 - _globals['_SYNCACTIONVALUE_CTWAPERCUSTOMERDATASHARINGACTION']._serialized_start=131867 - _globals['_SYNCACTIONVALUE_CTWAPERCUSTOMERDATASHARINGACTION']._serialized_end=131946 - _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHOD']._serialized_start=131949 - _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHOD']._serialized_end=132096 - _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHODMETADATA']._serialized_start=132098 - _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHODMETADATA']._serialized_end=132155 - _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHODSACTION']._serialized_start=132157 - _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHODSACTION']._serialized_end=132262 - _globals['_SYNCACTIONVALUE_CUSTOMERDATAACTION']._serialized_start=132265 - _globals['_SYNCACTIONVALUE_CUSTOMERDATAACTION']._serialized_end=132502 - _globals['_SYNCACTIONVALUE_DELETECHATACTION']._serialized_start=132504 - _globals['_SYNCACTIONVALUE_DELETECHATACTION']._serialized_end=132594 - _globals['_SYNCACTIONVALUE_DELETEINDIVIDUALCALLLOGACTION']._serialized_start=132596 - _globals['_SYNCACTIONVALUE_DELETEINDIVIDUALCALLLOGACTION']._serialized_end=132664 - _globals['_SYNCACTIONVALUE_DELETEMESSAGEFORMEACTION']._serialized_start=132666 - _globals['_SYNCACTIONVALUE_DELETEMESSAGEFORMEACTION']._serialized_end=132739 - _globals['_SYNCACTIONVALUE_DETECTEDOUTCOMESSTATUSACTION']._serialized_start=132741 - _globals['_SYNCACTIONVALUE_DETECTEDOUTCOMESSTATUSACTION']._serialized_end=132790 - _globals['_SYNCACTIONVALUE_EXTERNALWEBBETAACTION']._serialized_start=132792 - _globals['_SYNCACTIONVALUE_EXTERNALWEBBETAACTION']._serialized_end=132832 - _globals['_SYNCACTIONVALUE_FAVORITESACTION']._serialized_start=132834 - _globals['_SYNCACTIONVALUE_FAVORITESACTION']._serialized_end=132946 - _globals['_SYNCACTIONVALUE_FAVORITESACTION_FAVORITE']._serialized_start=132924 - _globals['_SYNCACTIONVALUE_FAVORITESACTION_FAVORITE']._serialized_end=132946 - _globals['_SYNCACTIONVALUE_INTERACTIVEMESSAGEACTION']._serialized_start=132949 - _globals['_SYNCACTIONVALUE_INTERACTIVEMESSAGEACTION']._serialized_end=133134 - _globals['_SYNCACTIONVALUE_INTERACTIVEMESSAGEACTION_INTERACTIVEMESSAGEACTIONMODE']._serialized_start=133087 - _globals['_SYNCACTIONVALUE_INTERACTIVEMESSAGEACTION_INTERACTIVEMESSAGEACTIONMODE']._serialized_end=133134 - _globals['_SYNCACTIONVALUE_KEYEXPIRATION']._serialized_start=133136 - _globals['_SYNCACTIONVALUE_KEYEXPIRATION']._serialized_end=133176 - _globals['_SYNCACTIONVALUE_LABELASSOCIATIONACTION']._serialized_start=133178 - _globals['_SYNCACTIONVALUE_LABELASSOCIATIONACTION']._serialized_end=133242 - _globals['_SYNCACTIONVALUE_LABELEDITACTION']._serialized_start=133245 - _globals['_SYNCACTIONVALUE_LABELEDITACTION']._serialized_end=133722 - _globals['_SYNCACTIONVALUE_LABELEDITACTION_LISTTYPE']._serialized_start=133481 - _globals['_SYNCACTIONVALUE_LABELEDITACTION_LISTTYPE']._serialized_end=133722 - _globals['_SYNCACTIONVALUE_LABELREORDERINGACTION']._serialized_start=133724 - _globals['_SYNCACTIONVALUE_LABELREORDERINGACTION']._serialized_end=133771 - _globals['_SYNCACTIONVALUE_LIDCONTACTACTION']._serialized_start=133773 - _globals['_SYNCACTIONVALUE_LIDCONTACTACTION']._serialized_end=133846 - _globals['_SYNCACTIONVALUE_LOCALESETTING']._serialized_start=133848 - _globals['_SYNCACTIONVALUE_LOCALESETTING']._serialized_end=133879 - _globals['_SYNCACTIONVALUE_LOCKCHATACTION']._serialized_start=133881 - _globals['_SYNCACTIONVALUE_LOCKCHATACTION']._serialized_end=133913 - _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION']._serialized_start=133916 - _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION']._serialized_end=134281 - _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION_MAIBAAIFEATURESTATUS']._serialized_start=134144 - _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION_MAIBAAIFEATURESTATUS']._serialized_end=134219 - _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION_MAIBAAIREPLYMODE']._serialized_start=134221 - _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION_MAIBAAIREPLYMODE']._serialized_end=134281 - _globals['_SYNCACTIONVALUE_MARKCHATASREADACTION']._serialized_start=134283 - _globals['_SYNCACTIONVALUE_MARKCHATASREADACTION']._serialized_end=134391 - _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEACTION']._serialized_start=134394 - _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEACTION']._serialized_end=134669 - _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEACTION_MARKETINGMESSAGEPROTOTYPETYPE']._serialized_start=134620 - _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEACTION_MARKETINGMESSAGEPROTOTYPETYPE']._serialized_end=134669 - _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEBROADCASTACTION']._serialized_start=134671 - _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEBROADCASTACTION']._serialized_end=134726 - _globals['_SYNCACTIONVALUE_MERCHANTPAYMENTPARTNERACTION']._serialized_start=134729 - _globals['_SYNCACTIONVALUE_MERCHANTPAYMENTPARTNERACTION']._serialized_end=134934 - _globals['_SYNCACTIONVALUE_MERCHANTPAYMENTPARTNERACTION_STATUS']._serialized_start=134900 - _globals['_SYNCACTIONVALUE_MERCHANTPAYMENTPARTNERACTION_STATUS']._serialized_end=134934 - _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION']._serialized_start=134937 - _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION']._serialized_end=135124 - _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION_MUSICUSERIDMAPENTRY']._serialized_start=135071 - _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION_MUSICUSERIDMAPENTRY']._serialized_end=135124 - _globals['_SYNCACTIONVALUE_MUTEACTION']._serialized_start=135126 - _globals['_SYNCACTIONVALUE_MUTEACTION']._serialized_end=135239 - _globals['_SYNCACTIONVALUE_NCTSALTSYNCACTION']._serialized_start=135241 - _globals['_SYNCACTIONVALUE_NCTSALTSYNCACTION']._serialized_end=135274 - _globals['_SYNCACTIONVALUE_NEWSLETTERSAVEDINTERESTSACTION']._serialized_start=135276 - _globals['_SYNCACTIONVALUE_NEWSLETTERSAVEDINTERESTSACTION']._serialized_end=135342 - _globals['_SYNCACTIONVALUE_NOTEEDITACTION']._serialized_start=135345 - _globals['_SYNCACTIONVALUE_NOTEEDITACTION']._serialized_end=135554 - _globals['_SYNCACTIONVALUE_NOTEEDITACTION_NOTETYPE']._serialized_start=135510 - _globals['_SYNCACTIONVALUE_NOTEEDITACTION_NOTETYPE']._serialized_end=135554 - _globals['_SYNCACTIONVALUE_NOTIFICATIONACTIVITYSETTINGACTION']._serialized_start=135557 - _globals['_SYNCACTIONVALUE_NOTIFICATIONACTIVITYSETTINGACTION']._serialized_end=135833 - _globals['_SYNCACTIONVALUE_NOTIFICATIONACTIVITYSETTINGACTION_NOTIFICATIONACTIVITYSETTING']._serialized_start=135720 - _globals['_SYNCACTIONVALUE_NOTIFICATIONACTIVITYSETTINGACTION_NOTIFICATIONACTIVITYSETTING']._serialized_end=135833 - _globals['_SYNCACTIONVALUE_NUXACTION']._serialized_start=135835 - _globals['_SYNCACTIONVALUE_NUXACTION']._serialized_end=135868 - _globals['_SYNCACTIONVALUE_OUTCONTACTACTION']._serialized_start=135870 - _globals['_SYNCACTIONVALUE_OUTCONTACTACTION']._serialized_end=135925 - _globals['_SYNCACTIONVALUE_PAYMENTINFOACTION']._serialized_start=135927 - _globals['_SYNCACTIONVALUE_PAYMENTINFOACTION']._serialized_end=135959 - _globals['_SYNCACTIONVALUE_PAYMENTTOSACTION']._serialized_start=135962 - _globals['_SYNCACTIONVALUE_PAYMENTTOSACTION']._serialized_end=136123 - _globals['_SYNCACTIONVALUE_PAYMENTTOSACTION_PAYMENTNOTICE']._serialized_start=136081 - _globals['_SYNCACTIONVALUE_PAYMENTTOSACTION_PAYMENTNOTICE']._serialized_end=136123 - _globals['_SYNCACTIONVALUE_PINACTION']._serialized_start=136125 - _globals['_SYNCACTIONVALUE_PINACTION']._serialized_end=136152 - _globals['_SYNCACTIONVALUE_PNFORLIDCHATACTION']._serialized_start=136154 - _globals['_SYNCACTIONVALUE_PNFORLIDCHATACTION']._serialized_end=136189 - _globals['_SYNCACTIONVALUE_PRIMARYFEATURE']._serialized_start=136191 - _globals['_SYNCACTIONVALUE_PRIMARYFEATURE']._serialized_end=136222 - _globals['_SYNCACTIONVALUE_PRIMARYVERSIONACTION']._serialized_start=136224 - _globals['_SYNCACTIONVALUE_PRIMARYVERSIONACTION']._serialized_end=136263 - _globals['_SYNCACTIONVALUE_PRIVACYSETTINGCHANNELSPERSONALISEDRECOMMENDATIONACTION']._serialized_start=136265 - _globals['_SYNCACTIONVALUE_PRIVACYSETTINGCHANNELSPERSONALISEDRECOMMENDATIONACTION']._serialized_end=136345 - _globals['_SYNCACTIONVALUE_PRIVACYSETTINGDISABLELINKPREVIEWSACTION']._serialized_start=136347 - _globals['_SYNCACTIONVALUE_PRIVACYSETTINGDISABLELINKPREVIEWSACTION']._serialized_end=136416 - _globals['_SYNCACTIONVALUE_PRIVACYSETTINGRELAYALLCALLS']._serialized_start=136418 - _globals['_SYNCACTIONVALUE_PRIVACYSETTINGRELAYALLCALLS']._serialized_end=136466 - _globals['_SYNCACTIONVALUE_PRIVATEPROCESSINGSETTINGACTION']._serialized_start=136469 - _globals['_SYNCACTIONVALUE_PRIVATEPROCESSINGSETTINGACTION']._serialized_end=136685 - _globals['_SYNCACTIONVALUE_PRIVATEPROCESSINGSETTINGACTION_PRIVATEPROCESSINGSTATUS']._serialized_start=136618 - _globals['_SYNCACTIONVALUE_PRIVATEPROCESSINGSETTINGACTION_PRIVATEPROCESSINGSTATUS']._serialized_end=136685 - _globals['_SYNCACTIONVALUE_PUSHNAMESETTING']._serialized_start=136687 - _globals['_SYNCACTIONVALUE_PUSHNAMESETTING']._serialized_end=136718 - _globals['_SYNCACTIONVALUE_QUICKREPLYACTION']._serialized_start=136721 - _globals['_SYNCACTIONVALUE_QUICKREPLYACTION']._serialized_end=136852 - _globals['_SYNCACTIONVALUE_RECENTEMOJIWEIGHTSACTION']._serialized_start=136854 - _globals['_SYNCACTIONVALUE_RECENTEMOJIWEIGHTSACTION']._serialized_end=136926 - _globals['_SYNCACTIONVALUE_REMOVERECENTSTICKERACTION']._serialized_start=136928 - _globals['_SYNCACTIONVALUE_REMOVERECENTSTICKERACTION']._serialized_end=136982 - _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION']._serialized_start=136985 - _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION']._serialized_end=139607 - _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_DISPLAYMODE']._serialized_start=138275 - _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_DISPLAYMODE']._serialized_end=138364 - _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_MEDIAQUALITYSETTING']._serialized_start=138366 - _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_MEDIAQUALITYSETTING']._serialized_end=138436 - _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_SETTINGKEY']._serialized_start=138439 - _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_SETTINGKEY']._serialized_end=139523 - _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_SETTINGPLATFORM']._serialized_start=139525 - _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_SETTINGPLATFORM']._serialized_end=139607 - _globals['_SYNCACTIONVALUE_STARACTION']._serialized_start=139609 - _globals['_SYNCACTIONVALUE_STARACTION']._serialized_end=139638 - _globals['_SYNCACTIONVALUE_STATUSPOSTOPTINNOTIFICATIONPREFERENCESACTION']._serialized_start=139640 - _globals['_SYNCACTIONVALUE_STATUSPOSTOPTINNOTIFICATIONPREFERENCESACTION']._serialized_end=139703 - _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION']._serialized_start=139706 - _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION']._serialized_end=140233 - _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION_CUSTOMLIST']._serialized_start=140032 - _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION_CUSTOMLIST']._serialized_end=140126 - _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION_STATUSDISTRIBUTIONMODE']._serialized_start=140128 - _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION_STATUSDISTRIBUTIONMODE']._serialized_end=140233 - _globals['_SYNCACTIONVALUE_STICKERACTION']._serialized_start=140236 - _globals['_SYNCACTIONVALUE_STICKERACTION']._serialized_end=140498 - _globals['_SYNCACTIONVALUE_SUBSCRIPTIONACTION']._serialized_start=140500 - _globals['_SYNCACTIONVALUE_SUBSCRIPTIONACTION']._serialized_end=140591 - _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION']._serialized_start=140594 - _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION']._serialized_end=141049 - _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION_PAIDFEATURE']._serialized_start=140802 - _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION_PAIDFEATURE']._serialized_end=140885 - _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION_SUBSCRIPTIONINFO']._serialized_start=140888 - _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION_SUBSCRIPTIONINFO']._serialized_end=141049 - _globals['_SYNCACTIONVALUE_SYNCACTIONMESSAGE']._serialized_start=141051 - _globals['_SYNCACTIONVALUE_SYNCACTIONMESSAGE']._serialized_end=141124 - _globals['_SYNCACTIONVALUE_SYNCACTIONMESSAGERANGE']._serialized_start=141127 - _globals['_SYNCACTIONVALUE_SYNCACTIONMESSAGERANGE']._serialized_end=141280 - _globals['_SYNCACTIONVALUE_THREADPINACTION']._serialized_start=141282 - _globals['_SYNCACTIONVALUE_THREADPINACTION']._serialized_end=141315 - _globals['_SYNCACTIONVALUE_TIMEFORMATACTION']._serialized_start=141317 - _globals['_SYNCACTIONVALUE_TIMEFORMATACTION']._serialized_end=141374 - _globals['_SYNCACTIONVALUE_UGCBOT']._serialized_start=141376 - _globals['_SYNCACTIONVALUE_UGCBOT']._serialized_end=141404 - _globals['_SYNCACTIONVALUE_UNARCHIVECHATSSETTING']._serialized_start=141406 - _globals['_SYNCACTIONVALUE_UNARCHIVECHATSSETTING']._serialized_end=141453 - _globals['_SYNCACTIONVALUE_USERSTATUSMUTEACTION']._serialized_start=141455 - _globals['_SYNCACTIONVALUE_USERSTATUSMUTEACTION']._serialized_end=141492 - _globals['_SYNCACTIONVALUE_USERNAMECHATSTARTMODEACTION']._serialized_start=141495 - _globals['_SYNCACTIONVALUE_USERNAMECHATSTARTMODEACTION']._serialized_end=141650 - _globals['_SYNCACTIONVALUE_USERNAMECHATSTARTMODEACTION_CHATSTARTMODE']._serialized_start=141618 - _globals['_SYNCACTIONVALUE_USERNAMECHATSTARTMODEACTION_CHATSTARTMODE']._serialized_end=141650 - _globals['_SYNCACTIONVALUE_WAFFLEACCOUNTLINKSTATEACTION']._serialized_start=141653 - _globals['_SYNCACTIONVALUE_WAFFLEACCOUNTLINKSTATEACTION']._serialized_end=141833 - _globals['_SYNCACTIONVALUE_WAFFLEACCOUNTLINKSTATEACTION_ACCOUNTLINKSTATE']._serialized_start=141777 - _globals['_SYNCACTIONVALUE_WAFFLEACCOUNTLINKSTATEACTION_ACCOUNTLINKSTATE']._serialized_end=141833 - _globals['_SYNCACTIONVALUE_WAMOUSERIDENTIFIERACTION']._serialized_start=141835 - _globals['_SYNCACTIONVALUE_WAMOUSERIDENTIFIERACTION']._serialized_end=141881 - _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTCAMPAIGNSTATUS']._serialized_start=141883 - _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTCAMPAIGNSTATUS']._serialized_end=141980 - _globals['_SYNCDINDEX']._serialized_start=141982 - _globals['_SYNCDINDEX']._serialized_end=142008 - _globals['_SYNCDMUTATION']._serialized_start=142011 - _globals['_SYNCDMUTATION']._serialized_end=142163 - _globals['_SYNCDMUTATION_SYNCDOPERATION']._serialized_start=142126 - _globals['_SYNCDMUTATION_SYNCDOPERATION']._serialized_end=142163 - _globals['_SYNCDMUTATIONS']._serialized_start=142165 - _globals['_SYNCDMUTATIONS']._serialized_end=142225 - _globals['_SYNCDPATCH']._serialized_start=142228 - _globals['_SYNCDPATCH']._serialized_end=142540 - _globals['_SYNCDPLAINTEXTRECORD']._serialized_start=142542 - _globals['_SYNCDPLAINTEXTRECORD']._serialized_end=142633 - _globals['_SYNCDRECORD']._serialized_start=142635 - _globals['_SYNCDRECORD']._serialized_end=142754 - _globals['_SYNCDSNAPSHOT']._serialized_start=142757 - _globals['_SYNCDSNAPSHOT']._serialized_end=142898 - _globals['_SYNCDSNAPSHOTRECOVERY']._serialized_start=142901 - _globals['_SYNCDSNAPSHOTRECOVERY']._serialized_end=143072 - _globals['_SYNCDVALUE']._serialized_start=143074 - _globals['_SYNCDVALUE']._serialized_end=143100 - _globals['_SYNCDVERSION']._serialized_start=143102 - _globals['_SYNCDVERSION']._serialized_end=143133 - _globals['_TAPLINKACTION']._serialized_start=143135 - _globals['_TAPLINKACTION']._serialized_end=143181 - _globals['_TEMPLATEBUTTON']._serialized_start=143184 - _globals['_TEMPLATEBUTTON']._serialized_end=143785 - _globals['_TEMPLATEBUTTON_CALLBUTTON']._serialized_start=143405 - _globals['_TEMPLATEBUTTON_CALLBUTTON']._serialized_end=143545 - _globals['_TEMPLATEBUTTON_QUICKREPLYBUTTON']._serialized_start=143547 - _globals['_TEMPLATEBUTTON_QUICKREPLYBUTTON']._serialized_end=143641 - _globals['_TEMPLATEBUTTON_URLBUTTON']._serialized_start=143644 - _globals['_TEMPLATEBUTTON_URLBUTTON']._serialized_end=143775 - _globals['_THREADID']._serialized_start=143788 - _globals['_THREADID']._serialized_end=143950 - _globals['_THREADID_THREADTYPE']._serialized_start=143892 - _globals['_THREADID_THREADTYPE']._serialized_end=143950 - _globals['_UNCOUNTEDASSOCIATEDMESSAGELIST']._serialized_start=143953 - _globals['_UNCOUNTEDASSOCIATEDMESSAGELIST']._serialized_end=144145 - _globals['_UNCOUNTEDASSOCIATEDMESSAGELISTWITHMESSAGEBYTES']._serialized_start=144148 - _globals['_UNCOUNTEDASSOCIATEDMESSAGELISTWITHMESSAGEBYTES']._serialized_end=144301 - _globals['_URLTRACKINGMAP']._serialized_start=144304 - _globals['_URLTRACKINGMAP']._serialized_end=144521 - _globals['_URLTRACKINGMAP_URLTRACKINGMAPELEMENT']._serialized_start=144402 - _globals['_URLTRACKINGMAP_URLTRACKINGMAPELEMENT']._serialized_end=144521 - _globals['_USERPASSWORD']._serialized_start=144524 - _globals['_USERPASSWORD']._serialized_end=145003 - _globals['_USERPASSWORD_TRANSFORMERARG']._serialized_start=144737 - _globals['_USERPASSWORD_TRANSFORMERARG']._serialized_end=144891 - _globals['_USERPASSWORD_TRANSFORMERARG_VALUE']._serialized_start=144828 - _globals['_USERPASSWORD_TRANSFORMERARG_VALUE']._serialized_end=144891 - _globals['_USERPASSWORD_ENCODING']._serialized_start=144893 - _globals['_USERPASSWORD_ENCODING']._serialized_end=144930 - _globals['_USERPASSWORD_TRANSFORMER']._serialized_start=144932 - _globals['_USERPASSWORD_TRANSFORMER']._serialized_end=145003 - _globals['_USERRECEIPT']._serialized_start=145006 - _globals['_USERRECEIPT']._serialized_end=145164 - _globals['_VERIFIEDNAMECERTIFICATE']._serialized_start=145167 - _globals['_VERIFIEDNAMECERTIFICATE']._serialized_end=145387 - _globals['_VERIFIEDNAMECERTIFICATE_DETAILS']._serialized_start=145256 - _globals['_VERIFIEDNAMECERTIFICATE_DETAILS']._serialized_end=145387 - _globals['_WALLPAPERSETTINGS']._serialized_start=145389 - _globals['_WALLPAPERSETTINGS']._serialized_end=145460 - _globals['_WEBFEATURES']._serialized_start=145463 - _globals['_WEBFEATURES']._serialized_end=147993 - _globals['_WEBFEATURES_FLAG']._serialized_start=147918 - _globals['_WEBFEATURES_FLAG']._serialized_end=147993 - _globals['_WEBMESSAGEINFO']._serialized_start=147996 - _globals['_WEBMESSAGEINFO']._serialized_end=158569 - _globals['_WEBMESSAGEINFO_BIZPRIVACYSTATUS']._serialized_start=150732 - _globals['_WEBMESSAGEINFO_BIZPRIVACYSTATUS']._serialized_end=150793 - _globals['_WEBMESSAGEINFO_STATUS']._serialized_start=150795 - _globals['_WEBMESSAGEINFO_STATUS']._serialized_end=150883 - _globals['_WEBMESSAGEINFO_STUBTYPE']._serialized_start=150886 - _globals['_WEBMESSAGEINFO_STUBTYPE']._serialized_end=158569 - _globals['_WEBMESSAGEINFOWITHMESSAGEBYTES']._serialized_start=158571 - _globals['_WEBMESSAGEINFOWITHMESSAGEBYTES']._serialized_end=158660 - _globals['_WEBNOTIFICATIONSINFO']._serialized_start=158663 - _globals['_WEBNOTIFICATIONSINFO']._serialized_end=158803 + _globals['_ADVENCRYPTIONTYPE']._serialized_start=182859 + _globals['_ADVENCRYPTIONTYPE']._serialized_end=182914 + _globals['_AIRICHRESPONSEMESSAGETYPE']._serialized_start=182916 + _globals['_AIRICHRESPONSEMESSAGETYPE']._serialized_end=183014 + _globals['_AIRICHRESPONSESUBMESSAGETYPE']._serialized_start=183017 + _globals['_AIRICHRESPONSESUBMESSAGETYPE']._serialized_end=183347 + _globals['_AISUBSCRIPTIONREQUESTTYPE']._serialized_start=183349 + _globals['_AISUBSCRIPTIONREQUESTTYPE']._serialized_end=183439 + _globals['_BOTMETRICSENTRYPOINT']._serialized_start=183442 + _globals['_BOTMETRICSENTRYPOINT']._serialized_end=184754 + _globals['_BOTMETRICSTHREADENTRYPOINT']._serialized_start=184757 + _globals['_BOTMETRICSTHREADENTRYPOINT']._serialized_end=184919 + _globals['_BOTSESSIONSOURCE']._serialized_start=184922 + _globals['_BOTSESSIONSOURCE']._serialized_end=185068 + _globals['_COMMAND_COMMAND_TYPE']._serialized_start=185070 + _globals['_COMMAND_COMMAND_TYPE']._serialized_end=185142 + _globals['_CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE']._serialized_start=185144 + _globals['_CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE']._serialized_end=185227 + _globals['_CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE']._serialized_start=185230 + _globals['_CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE']._serialized_end=185389 + _globals['_COLLECTIONNAME']._serialized_start=185392 + _globals['_COLLECTIONNAME']._serialized_end=185531 + _globals['_EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE']._serialized_start=185533 + _globals['_EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE']._serialized_end=185592 + _globals['_EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE']._serialized_start=185595 + _globals['_EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE']._serialized_end=187844 + _globals['_EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE']._serialized_start=187846 + _globals['_EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE']._serialized_end=187939 + _globals['_EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE']._serialized_start=187941 + _globals['_EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE']._serialized_end=188066 + _globals['_FUTURE_PROOF_BEHAVIOR']._serialized_start=188068 + _globals['_FUTURE_PROOF_BEHAVIOR']._serialized_end=188140 + _globals['_KEEPTYPE']._serialized_start=188142 + _globals['_KEEPTYPE']._serialized_end=188206 + _globals['_MENTION_MENTION_TYPE']._serialized_start=188208 + _globals['_MENTION_MENTION_TYPE']._serialized_end=188243 + _globals['_MEDIAKEYDOMAIN']._serialized_start=188245 + _globals['_MEDIAKEYDOMAIN']._serialized_end=188349 + _globals['_MEDIAVISIBILITY']._serialized_start=188351 + _globals['_MEDIAVISIBILITY']._serialized_end=188398 + _globals['_MUTATIONPROPS']._serialized_start=188401 + _globals['_MUTATIONPROPS']._serialized_end=191060 + _globals['_PRIVACYSYSTEMMESSAGE']._serialized_start=191062 + _globals['_PRIVACYSYSTEMMESSAGE']._serialized_end=191131 + _globals['_SESSIONTRANSPARENCYTYPE']._serialized_start=191133 + _globals['_SESSIONTRANSPARENCYTYPE']._serialized_end=191205 + _globals['_WEBLINKRENDERCONFIG']._serialized_start=191207 + _globals['_WEBLINKRENDERCONFIG']._serialized_end=191253 + _globals['_ADVDEVICEIDENTITY']._serialized_start=29 + _globals['_ADVDEVICEIDENTITY']._serialized_end=211 + _globals['_ADVKEYINDEXLIST']._serialized_start=214 + _globals['_ADVKEYINDEXLIST']._serialized_end=369 + _globals['_ADVSIGNEDDEVICEIDENTITY']._serialized_start=371 + _globals['_ADVSIGNEDDEVICEIDENTITY']._serialized_end=493 + _globals['_ADVSIGNEDDEVICEIDENTITYHMAC']._serialized_start=495 + _globals['_ADVSIGNEDDEVICEIDENTITYHMAC']._serialized_end=611 + _globals['_ADVSIGNEDKEYINDEXLIST']._serialized_start=613 + _globals['_ADVSIGNEDKEYINDEXLIST']._serialized_end=708 + _globals['_AIHOMESTATE']._serialized_start=711 + _globals['_AIHOMESTATE']._serialized_end=1243 + _globals['_AIHOMESTATE_AIHOMEOPTION']._serialized_start=878 + _globals['_AIHOMESTATE_AIHOMEOPTION']._serialized_end=1243 + _globals['_AIHOMESTATE_AIHOMEOPTION_AIHOMEACTIONTYPE']._serialized_start=1117 + _globals['_AIHOMESTATE_AIHOMEOPTION_AIHOMEACTIONTYPE']._serialized_end=1243 + _globals['_AIMEDIACOLLECTIONMESSAGE']._serialized_start=1245 + _globals['_AIMEDIACOLLECTIONMESSAGE']._serialized_end=1347 + _globals['_AIMEDIACOLLECTIONMETADATA']._serialized_start=1349 + _globals['_AIMEDIACOLLECTIONMETADATA']._serialized_end=1424 + _globals['_AIMETADATAOPERATION']._serialized_start=1426 + _globals['_AIMETADATAOPERATION']._serialized_end=1503 + _globals['_AIPROVENANCE']._serialized_start=1506 + _globals['_AIPROVENANCE']._serialized_end=1693 + _globals['_AIPROVENANCE_METADATA']._serialized_start=1632 + _globals['_AIPROVENANCE_METADATA']._serialized_end=1693 + _globals['_AIQUERYFANOUT']._serialized_start=1695 + _globals['_AIQUERYFANOUT']._serialized_end=1807 + _globals['_AIREGENERATEMETADATA']._serialized_start=1809 + _globals['_AIREGENERATEMETADATA']._serialized_end=1902 + _globals['_AIRICHRESPONSECODEMETADATA']._serialized_start=1905 + _globals['_AIRICHRESPONSECODEMETADATA']._serialized_end=2482 + _globals['_AIRICHRESPONSECODEMETADATA_AIRICHRESPONSECODEBLOCK']._serialized_start=2040 + _globals['_AIRICHRESPONSECODEMETADATA_AIRICHRESPONSECODEBLOCK']._serialized_end=2179 + _globals['_AIRICHRESPONSECODEMETADATA_AIRICHRESPONSECODEHIGHLIGHTTYPE']._serialized_start=2182 + _globals['_AIRICHRESPONSECODEMETADATA_AIRICHRESPONSECODEHIGHLIGHTTYPE']._serialized_end=2482 + _globals['_AIRICHRESPONSECONTENTITEMSMETADATA']._serialized_start=2485 + _globals['_AIRICHRESPONSECONTENTITEMSMETADATA']._serialized_end=3006 + _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_AIRICHRESPONSECONTENTITEMMETADATA']._serialized_start=2706 + _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_AIRICHRESPONSECONTENTITEMMETADATA']._serialized_end=2859 + _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_AIRICHRESPONSEREELITEM']._serialized_start=2861 + _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_AIRICHRESPONSEREELITEM']._serialized_end=2964 + _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_CONTENTTYPE']._serialized_start=2966 + _globals['_AIRICHRESPONSECONTENTITEMSMETADATA_CONTENTTYPE']._serialized_end=3006 + _globals['_AIRICHRESPONSEDYNAMICMETADATA']._serialized_start=3009 + _globals['_AIRICHRESPONSEDYNAMICMETADATA']._serialized_end=3366 + _globals['_AIRICHRESPONSEDYNAMICMETADATA_AIRICHRESPONSEDYNAMICMETADATATYPE']._serialized_start=3181 + _globals['_AIRICHRESPONSEDYNAMICMETADATA_AIRICHRESPONSEDYNAMICMETADATATYPE']._serialized_end=3366 + _globals['_AIRICHRESPONSEGRIDIMAGEMETADATA']._serialized_start=3369 + _globals['_AIRICHRESPONSEGRIDIMAGEMETADATA']._serialized_end=3511 + _globals['_AIRICHRESPONSEIMAGEURL']._serialized_start=3513 + _globals['_AIRICHRESPONSEIMAGEURL']._serialized_end=3606 + _globals['_AIRICHRESPONSEINLINEIMAGEMETADATA']._serialized_start=3609 + _globals['_AIRICHRESPONSEINLINEIMAGEMETADATA']._serialized_end=4014 + _globals['_AIRICHRESPONSEINLINEIMAGEMETADATA_AIRICHRESPONSEIMAGEALIGNMENT']._serialized_start=3831 + _globals['_AIRICHRESPONSEINLINEIMAGEMETADATA_AIRICHRESPONSEIMAGEALIGNMENT']._serialized_end=4014 + _globals['_AIRICHRESPONSELATEXMETADATA']._serialized_start=4017 + _globals['_AIRICHRESPONSELATEXMETADATA']._serialized_end=4385 + _globals['_AIRICHRESPONSELATEXMETADATA_AIRICHRESPONSELATEXEXPRESSION']._serialized_start=4153 + _globals['_AIRICHRESPONSELATEXMETADATA_AIRICHRESPONSELATEXEXPRESSION']._serialized_end=4385 + _globals['_AIRICHRESPONSEMAPMETADATA']._serialized_start=4388 + _globals['_AIRICHRESPONSEMAPMETADATA']._serialized_end=4742 + _globals['_AIRICHRESPONSEMAPMETADATA_AIRICHRESPONSEMAPANNOTATION']._serialized_start=4621 + _globals['_AIRICHRESPONSEMAPMETADATA_AIRICHRESPONSEMAPANNOTATION']._serialized_end=4742 + _globals['_AIRICHRESPONSEMESSAGE']._serialized_start=4745 + _globals['_AIRICHRESPONSEMESSAGE']._serialized_end=4993 + _globals['_AIRICHRESPONSESUBMESSAGE']._serialized_start=4996 + _globals['_AIRICHRESPONSESUBMESSAGE']._serialized_end=5626 + _globals['_AIRICHRESPONSETABLEMETADATA']._serialized_start=5629 + _globals['_AIRICHRESPONSETABLEMETADATA']._serialized_end=5809 + _globals['_AIRICHRESPONSETABLEMETADATA_AIRICHRESPONSETABLEROW']._serialized_start=5751 + _globals['_AIRICHRESPONSETABLEMETADATA_AIRICHRESPONSETABLEROW']._serialized_end=5809 + _globals['_AIRICHRESPONSEUNIFIEDRESPONSE']._serialized_start=5811 + _globals['_AIRICHRESPONSEUNIFIEDRESPONSE']._serialized_end=5856 + _globals['_AISUBSCRIPTIONUPSELLMETADATA']._serialized_start=5858 + _globals['_AISUBSCRIPTIONUPSELLMETADATA']._serialized_end=5946 + _globals['_AITHREADINFO']._serialized_start=5949 + _globals['_AITHREADINFO']._serialized_end=6314 + _globals['_AITHREADINFO_AITHREADCLIENTINFO']._serialized_start=6092 + _globals['_AITHREADINFO_AITHREADCLIENTINFO']._serialized_end=6277 + _globals['_AITHREADINFO_AITHREADCLIENTINFO_AITHREADTYPE']._serialized_start=6207 + _globals['_AITHREADINFO_AITHREADCLIENTINFO_AITHREADTYPE']._serialized_end=6277 + _globals['_AITHREADINFO_AITHREADSERVERINFO']._serialized_start=6279 + _globals['_AITHREADINFO_AITHREADSERVERINFO']._serialized_end=6314 + _globals['_ACCOUNT']._serialized_start=6316 + _globals['_ACCOUNT']._serialized_end=6404 + _globals['_ACCOUNTLINKINGOPAQUEDATA']._serialized_start=6406 + _globals['_ACCOUNTLINKINGOPAQUEDATA']._serialized_end=6509 + _globals['_ACTIONLINK']._serialized_start=6511 + _globals['_ACTIONLINK']._serialized_end=6557 + _globals['_AUTODOWNLOADSETTINGS']._serialized_start=6559 + _globals['_AUTODOWNLOADSETTINGS']._serialized_end=6678 + _globals['_AVATARUSERSETTINGS']._serialized_start=6680 + _globals['_AVATARUSERSETTINGS']._serialized_end=6732 + _globals['_BACKWARDEDGE']._serialized_start=6734 + _globals['_BACKWARDEDGE']._serialized_end=6854 + _globals['_BIZACCOUNTLINKINFO']._serialized_start=6857 + _globals['_BIZACCOUNTLINKINFO']._serialized_end=7163 + _globals['_BIZACCOUNTLINKINFO_ACCOUNTTYPE']._serialized_start=7085 + _globals['_BIZACCOUNTLINKINFO_ACCOUNTTYPE']._serialized_end=7114 + _globals['_BIZACCOUNTLINKINFO_HOSTSTORAGETYPE']._serialized_start=7116 + _globals['_BIZACCOUNTLINKINFO_HOSTSTORAGETYPE']._serialized_end=7163 + _globals['_BIZACCOUNTPAYLOAD']._serialized_start=7165 + _globals['_BIZACCOUNTPAYLOAD']._serialized_end=7263 + _globals['_BIZIDENTITYINFO']._serialized_start=7266 + _globals['_BIZIDENTITYINFO']._serialized_end=7752 + _globals['_BIZIDENTITYINFO_ACTUALACTORSTYPE']._serialized_start=7612 + _globals['_BIZIDENTITYINFO_ACTUALACTORSTYPE']._serialized_end=7649 + _globals['_BIZIDENTITYINFO_HOSTSTORAGETYPE']._serialized_start=7116 + _globals['_BIZIDENTITYINFO_HOSTSTORAGETYPE']._serialized_end=7163 + _globals['_BIZIDENTITYINFO_VERIFIEDLEVELVALUE']._serialized_start=7700 + _globals['_BIZIDENTITYINFO_VERIFIEDLEVELVALUE']._serialized_end=7752 + _globals['_BOTAGECOLLECTIONMETADATA']._serialized_start=7755 + _globals['_BOTAGECOLLECTIONMETADATA']._serialized_end=7986 + _globals['_BOTAGECOLLECTIONMETADATA_AGECOLLECTIONTYPE']._serialized_start=7939 + _globals['_BOTAGECOLLECTIONMETADATA_AGECOLLECTIONTYPE']._serialized_end=7986 + _globals['_BOTAGENTDEEPLINKMETADATA']._serialized_start=7988 + _globals['_BOTAGENTDEEPLINKMETADATA']._serialized_end=8054 + _globals['_BOTAGENTMETADATA']._serialized_start=8056 + _globals['_BOTAGENTMETADATA']._serialized_end=8136 + _globals['_BOTCAPABILITYMETADATA']._serialized_start=8139 + _globals['_BOTCAPABILITYMETADATA']._serialized_end=10618 + _globals['_BOTCAPABILITYMETADATA_BOTCAPABILITYTYPE']._serialized_start=8238 + _globals['_BOTCAPABILITYMETADATA_BOTCAPABILITYTYPE']._serialized_end=10618 + _globals['_BOTCOMMANDMETADATA']._serialized_start=10620 + _globals['_BOTCOMMANDMETADATA']._serialized_end=10712 + _globals['_BOTDOCUMENTMESSAGEMETADATA']._serialized_start=10715 + _globals['_BOTDOCUMENTMESSAGEMETADATA']._serialized_end=10883 + _globals['_BOTDOCUMENTMESSAGEMETADATA_DOCUMENTPLUGINTYPE']._serialized_start=10822 + _globals['_BOTDOCUMENTMESSAGEMETADATA_DOCUMENTPLUGINTYPE']._serialized_end=10883 + _globals['_BOTFEEDBACKMESSAGE']._serialized_start=10886 + _globals['_BOTFEEDBACKMESSAGE']._serialized_end=14220 + _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA']._serialized_start=11219 + _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA']._serialized_end=13040 + _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYANALYTICSDATA']._serialized_start=11663 + _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYANALYTICSDATA']._serialized_end=11766 + _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA']._serialized_start=11769 + _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA']._serialized_end=13040 + _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYABANDONEVENTDATA']._serialized_start=12668 + _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYABANDONEVENTDATA']._serialized_end=12736 + _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCTACLICKEVENTDATA']._serialized_start=12738 + _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCTACLICKEVENTDATA']._serialized_end=12830 + _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCTAIMPRESSIONEVENTDATA']._serialized_start=12832 + _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCTAIMPRESSIONEVENTDATA']._serialized_end=12897 + _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCARDIMPRESSIONEVENTDATA']._serialized_start=12899 + _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYCARDIMPRESSIONEVENTDATA']._serialized_end=12940 + _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYRESPONSEEVENTDATA']._serialized_start=12942 + _globals['_BOTFEEDBACKMESSAGE_SIDEBYSIDESURVEYMETADATA_SIDEBYSIDESURVEYMETAAIANALYTICSDATA_SIDEBYSIDESURVEYRESPONSEEVENTDATA']._serialized_end=13040 + _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKIND']._serialized_start=13043 + _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKIND']._serialized_end=13642 + _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKINDMULTIPLENEGATIVE']._serialized_start=13645 + _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKINDMULTIPLENEGATIVE']._serialized_end=14104 + _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKINDMULTIPLEPOSITIVE']._serialized_start=14106 + _globals['_BOTFEEDBACKMESSAGE_BOTFEEDBACKKINDMULTIPLEPOSITIVE']._serialized_end=14183 + _globals['_BOTFEEDBACKMESSAGE_REPORTKIND']._serialized_start=14185 + _globals['_BOTFEEDBACKMESSAGE_REPORTKIND']._serialized_end=14220 + _globals['_BOTGROUPMETADATA']._serialized_start=14222 + _globals['_BOTGROUPMETADATA']._serialized_end=14309 + _globals['_BOTGROUPPARTICIPANTMETADATA']._serialized_start=14311 + _globals['_BOTGROUPPARTICIPANTMETADATA']._serialized_end=14357 + _globals['_BOTHISTORYSHAREMETADATA']._serialized_start=14359 + _globals['_BOTHISTORYSHAREMETADATA']._serialized_end=14453 + _globals['_BOTIMAGINEMETADATA']._serialized_start=14456 + _globals['_BOTIMAGINEMETADATA']._serialized_end=14632 + _globals['_BOTIMAGINEMETADATA_IMAGINETYPE']._serialized_start=14562 + _globals['_BOTIMAGINEMETADATA_IMAGINETYPE']._serialized_end=14632 + _globals['_BOTINFRASTRUCTUREDIAGNOSTICS']._serialized_start=14635 + _globals['_BOTINFRASTRUCTUREDIAGNOSTICS']._serialized_end=14811 + _globals['_BOTINFRASTRUCTUREDIAGNOSTICS_BOTBACKEND']._serialized_start=14777 + _globals['_BOTINFRASTRUCTUREDIAGNOSTICS_BOTBACKEND']._serialized_end=14811 + _globals['_BOTLINKEDACCOUNT']._serialized_start=14814 + _globals['_BOTLINKEDACCOUNT']._serialized_end=14951 + _globals['_BOTLINKEDACCOUNT_BOTLINKEDACCOUNTTYPE']._serialized_start=14897 + _globals['_BOTLINKEDACCOUNT_BOTLINKEDACCOUNTTYPE']._serialized_end=14951 + _globals['_BOTLINKEDACCOUNTSMETADATA']._serialized_start=14953 + _globals['_BOTLINKEDACCOUNTSMETADATA']._serialized_end=15069 + _globals['_BOTMEDIAMETADATA']._serialized_start=15072 + _globals['_BOTMEDIAMETADATA']._serialized_end=15337 + _globals['_BOTMEDIAMETADATA_ORIENTATIONTYPE']._serialized_start=15287 + _globals['_BOTMEDIAMETADATA_ORIENTATIONTYPE']._serialized_end=15337 + _globals['_BOTMEMORYFACT']._serialized_start=15339 + _globals['_BOTMEMORYFACT']._serialized_end=15384 + _globals['_BOTMEMORYMETADATA']._serialized_start=15387 + _globals['_BOTMEMORYMETADATA']._serialized_end=15518 + _globals['_BOTMEMUMETADATA']._serialized_start=15520 + _globals['_BOTMEMUMETADATA']._serialized_end=15585 + _globals['_BOTMESSAGEORIGIN']._serialized_start=15588 + _globals['_BOTMESSAGEORIGIN']._serialized_end=15735 + _globals['_BOTMESSAGEORIGIN_BOTMESSAGEORIGINTYPE']._serialized_start=15671 + _globals['_BOTMESSAGEORIGIN_BOTMESSAGEORIGINTYPE']._serialized_end=15735 + _globals['_BOTMESSAGEORIGINMETADATA']._serialized_start=15737 + _globals['_BOTMESSAGEORIGINMETADATA']._serialized_end=15808 + _globals['_BOTMESSAGESHARINGINFO']._serialized_start=15810 + _globals['_BOTMESSAGESHARINGINFO']._serialized_end=15916 + _globals['_BOTMETADATA']._serialized_start=15919 + _globals['_BOTMETADATA']._serialized_end=18391 + _globals['_BOTMETRICSMETADATA']._serialized_start=18394 + _globals['_BOTMETRICSMETADATA']._serialized_end=18560 + _globals['_BOTMODESELECTIONMETADATA']._serialized_start=18563 + _globals['_BOTMODESELECTIONMETADATA']._serialized_end=18745 + _globals['_BOTMODESELECTIONMETADATA_BOTUSERSELECTIONMODE']._serialized_start=18684 + _globals['_BOTMODESELECTIONMETADATA_BOTUSERSELECTIONMODE']._serialized_end=18745 + _globals['_BOTMODELMETADATA']._serialized_start=18748 + _globals['_BOTMODELMETADATA']._serialized_end=19077 + _globals['_BOTMODELMETADATA_MODELTYPE']._serialized_start=18927 + _globals['_BOTMODELMETADATA_MODELTYPE']._serialized_end=18996 + _globals['_BOTMODELMETADATA_PREMIUMMODELSTATUS']._serialized_start=18998 + _globals['_BOTMODELMETADATA_PREMIUMMODELSTATUS']._serialized_end=19077 + _globals['_BOTPLUGINMETADATA']._serialized_start=19080 + _globals['_BOTPLUGINMETADATA']._serialized_end=19705 + _globals['_BOTPLUGINMETADATA_PLUGINTYPE']._serialized_start=19584 + _globals['_BOTPLUGINMETADATA_PLUGINTYPE']._serialized_end=19639 + _globals['_BOTPLUGINMETADATA_SEARCHPROVIDER']._serialized_start=19641 + _globals['_BOTPLUGINMETADATA_SEARCHPROVIDER']._serialized_end=19705 + _globals['_BOTPROGRESSINDICATORMETADATA']._serialized_start=19708 + _globals['_BOTPROGRESSINDICATORMETADATA']._serialized_end=21197 + _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA']._serialized_start=19890 + _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA']._serialized_end=21197 + _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCEMETADATA']._serialized_start=20340 + _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCEMETADATA']._serialized_end=20533 + _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCESMETADATA']._serialized_start=20536 + _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCESMETADATA']._serialized_end=20839 + _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCESMETADATA_BOTPLANNINGSEARCHSOURCEPROVIDER']._serialized_start=20760 + _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSEARCHSOURCESMETADATA_BOTPLANNINGSEARCHSOURCEPROVIDER']._serialized_end=20839 + _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSTEPSECTIONMETADATA']._serialized_start=20842 + _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTPLANNINGSTEPSECTIONMETADATA']._serialized_end=21038 + _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTSEARCHSOURCEPROVIDER']._serialized_start=21040 + _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_BOTSEARCHSOURCEPROVIDER']._serialized_end=21120 + _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_PLANNINGSTEPSTATUS']._serialized_start=21122 + _globals['_BOTPROGRESSINDICATORMETADATA_BOTPLANNINGSTEPMETADATA_PLANNINGSTEPSTATUS']._serialized_end=21197 + _globals['_BOTPROMOTIONMESSAGEMETADATA']._serialized_start=21200 + _globals['_BOTPROMOTIONMESSAGEMETADATA']._serialized_end=21397 + _globals['_BOTPROMOTIONMESSAGEMETADATA_BOTPROMOTIONTYPE']._serialized_start=21331 + _globals['_BOTPROMOTIONMESSAGEMETADATA_BOTPROMOTIONTYPE']._serialized_end=21397 + _globals['_BOTPROMPTSUGGESTION']._serialized_start=21399 + _globals['_BOTPROMPTSUGGESTION']._serialized_end=21454 + _globals['_BOTPROMPTSUGGESTIONS']._serialized_start=21456 + _globals['_BOTPROMPTSUGGESTIONS']._serialized_end=21530 + _globals['_BOTPTTPROMPTMETADATA']._serialized_start=21532 + _globals['_BOTPTTPROMPTMETADATA']._serialized_end=21574 + _globals['_BOTQUOTAMETADATA']._serialized_start=21577 + _globals['_BOTQUOTAMETADATA']._serialized_end=21911 + _globals['_BOTQUOTAMETADATA_BOTFEATUREQUOTAMETADATA']._serialized_start=21683 + _globals['_BOTQUOTAMETADATA_BOTFEATUREQUOTAMETADATA']._serialized_end=21911 + _globals['_BOTQUOTAMETADATA_BOTFEATUREQUOTAMETADATA_BOTFEATURETYPE']._serialized_start=21851 + _globals['_BOTQUOTAMETADATA_BOTFEATUREQUOTAMETADATA_BOTFEATURETYPE']._serialized_end=21911 + _globals['_BOTREMINDERMETADATA']._serialized_start=21914 + _globals['_BOTREMINDERMETADATA']._serialized_end=22305 + _globals['_BOTREMINDERMETADATA_REMINDERACTION']._serialized_start=22160 + _globals['_BOTREMINDERMETADATA_REMINDERACTION']._serialized_end=22224 + _globals['_BOTREMINDERMETADATA_REMINDERFREQUENCY']._serialized_start=22226 + _globals['_BOTREMINDERMETADATA_REMINDERFREQUENCY']._serialized_end=22305 + _globals['_BOTRENDERINGCONFIGMETADATA']._serialized_start=22307 + _globals['_BOTRENDERINGCONFIGMETADATA']._serialized_end=22384 + _globals['_BOTRENDERINGMETADATA']._serialized_start=22387 + _globals['_BOTRENDERINGMETADATA']._serialized_end=22520 + _globals['_BOTRENDERINGMETADATA_KEYWORD']._serialized_start=22469 + _globals['_BOTRENDERINGMETADATA_KEYWORD']._serialized_end=22520 + _globals['_BOTRESOLVEDTOOLCALLMETADATA']._serialized_start=22522 + _globals['_BOTRESOLVEDTOOLCALLMETADATA']._serialized_end=22605 + _globals['_BOTSESSIONMETADATA']._serialized_start=22607 + _globals['_BOTSESSIONMETADATA']._serialized_end=22697 + _globals['_BOTSIGNATUREVERIFICATIONMETADATA']._serialized_start=22699 + _globals['_BOTSIGNATUREVERIFICATIONMETADATA']._serialized_end=22797 + _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF']._serialized_start=22800 + _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF']._serialized_end=23319 + _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF_CERTIFICATESKI']._serialized_start=23079 + _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF_CERTIFICATESKI']._serialized_end=23193 + _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF_BOTSIGNATUREUSECASE']._serialized_start=23195 + _globals['_BOTSIGNATUREVERIFICATIONUSECASEPROOF_BOTSIGNATUREUSECASE']._serialized_end=23319 + _globals['_BOTSOURCESMETADATA']._serialized_start=23322 + _globals['_BOTSOURCESMETADATA']._serialized_end=23716 + _globals['_BOTSOURCESMETADATA_BOTSOURCEITEM']._serialized_start=23406 + _globals['_BOTSOURCESMETADATA_BOTSOURCEITEM']._serialized_end=23716 + _globals['_BOTSOURCESMETADATA_BOTSOURCEITEM_SOURCEPROVIDER']._serialized_start=23641 + _globals['_BOTSOURCESMETADATA_BOTSOURCEITEM_SOURCEPROVIDER']._serialized_end=23716 + _globals['_BOTSUGGESTEDPROMPTMETADATA']._serialized_start=23719 + _globals['_BOTSUGGESTEDPROMPTMETADATA']._serialized_end=23887 + _globals['_BOTUNIFIEDRESPONSEMUTATION']._serialized_start=23890 + _globals['_BOTUNIFIEDRESPONSEMUTATION']._serialized_end=24305 + _globals['_BOTUNIFIEDRESPONSEMUTATION_MEDIADETAILSMETADATA']._serialized_start=24092 + _globals['_BOTUNIFIEDRESPONSEMUTATION_MEDIADETAILSMETADATA']._serialized_end=24226 + _globals['_BOTUNIFIEDRESPONSEMUTATION_SIDEBYSIDEMETADATA']._serialized_start=24228 + _globals['_BOTUNIFIEDRESPONSEMUTATION_SIDEBYSIDEMETADATA']._serialized_end=24305 + _globals['_CALLLOGRECORD']._serialized_start=24308 + _globals['_CALLLOGRECORD']._serialized_end=25178 + _globals['_CALLLOGRECORD_PARTICIPANTINFO']._serialized_start=24777 + _globals['_CALLLOGRECORD_PARTICIPANTINFO']._serialized_end=24867 + _globals['_CALLLOGRECORD_CALLRESULT']._serialized_start=24870 + _globals['_CALLLOGRECORD_CALLRESULT']._serialized_end=25045 + _globals['_CALLLOGRECORD_CALLTYPE']._serialized_start=25047 + _globals['_CALLLOGRECORD_CALLTYPE']._serialized_end=25106 + _globals['_CALLLOGRECORD_SILENCEREASON']._serialized_start=25108 + _globals['_CALLLOGRECORD_SILENCEREASON']._serialized_end=25178 + _globals['_CERTCHAIN']._serialized_start=25181 + _globals['_CERTCHAIN']._serialized_end=25460 + _globals['_CERTCHAIN_NOISECERTIFICATE']._serialized_start=25307 + _globals['_CERTCHAIN_NOISECERTIFICATE']._serialized_end=25460 + _globals['_CERTCHAIN_NOISECERTIFICATE_DETAILS']._serialized_start=25363 + _globals['_CERTCHAIN_NOISECERTIFICATE_DETAILS']._serialized_end=25460 + _globals['_CHATLOCKSETTINGS']._serialized_start=25462 + _globals['_CHATLOCKSETTINGS']._serialized_end=25549 + _globals['_CHATROWOPAQUEDATA']._serialized_start=25552 + _globals['_CHATROWOPAQUEDATA']._serialized_end=26409 + _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE']._serialized_start=25638 + _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE']._serialized_end=26409 + _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTDATA']._serialized_start=25878 + _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTDATA']._serialized_end=26315 + _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTDATA_CONTEXTINFOEXTERNALADREPLYINFOMEDIATYPE']._serialized_start=26242 + _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTDATA_CONTEXTINFOEXTERNALADREPLYINFOMEDIATYPE']._serialized_end=26315 + _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTLINKDATA']._serialized_start=26317 + _globals['_CHATROWOPAQUEDATA_DRAFTMESSAGE_CTWACONTEXTLINKDATA']._serialized_end=26409 + _globals['_CITATION']._serialized_start=26411 + _globals['_CITATION']._serialized_end=26487 + _globals['_CLIENTPAIRINGPROPS']._serialized_start=26490 + _globals['_CLIENTPAIRINGPROPS']._serialized_end=26677 + _globals['_CLIENTPAYLOAD']._serialized_start=26680 + _globals['_CLIENTPAYLOAD']._serialized_end=31219 + _globals['_CLIENTPAYLOAD_DNSSOURCE']._serialized_start=27866 + _globals['_CLIENTPAYLOAD_DNSSOURCE']._serialized_end=28106 + _globals['_CLIENTPAYLOAD_DNSSOURCE_DNSRESOLUTIONMETHOD']._serialized_start=27973 + _globals['_CLIENTPAYLOAD_DNSSOURCE_DNSRESOLUTIONMETHOD']._serialized_end=28106 + _globals['_CLIENTPAYLOAD_DEVICEPAIRINGREGISTRATIONDATA']._serialized_start=28109 + _globals['_CLIENTPAYLOAD_DEVICEPAIRINGREGISTRATIONDATA']._serialized_end=28283 + _globals['_CLIENTPAYLOAD_INTEROPDATA']._serialized_start=28285 + _globals['_CLIENTPAYLOAD_INTEROPDATA']._serialized_end=28360 + _globals['_CLIENTPAYLOAD_USERAGENT']._serialized_start=28363 + _globals['_CLIENTPAYLOAD_USERAGENT']._serialized_end=29866 + _globals['_CLIENTPAYLOAD_USERAGENT_APPVERSION']._serialized_start=28986 + _globals['_CLIENTPAYLOAD_USERAGENT_APPVERSION']._serialized_end=29089 + _globals['_CLIENTPAYLOAD_USERAGENT_DEVICETYPE']._serialized_start=29091 + _globals['_CLIENTPAYLOAD_USERAGENT_DEVICETYPE']._serialized_end=29161 + _globals['_CLIENTPAYLOAD_USERAGENT_DISTRIBUTIONCHANNEL']._serialized_start=29163 + _globals['_CLIENTPAYLOAD_USERAGENT_DISTRIBUTIONCHANNEL']._serialized_end=29241 + _globals['_CLIENTPAYLOAD_USERAGENT_PLATFORM']._serialized_start=29244 + _globals['_CLIENTPAYLOAD_USERAGENT_PLATFORM']._serialized_end=29803 + _globals['_CLIENTPAYLOAD_USERAGENT_RELEASECHANNEL']._serialized_start=29805 + _globals['_CLIENTPAYLOAD_USERAGENT_RELEASECHANNEL']._serialized_end=29866 + _globals['_CLIENTPAYLOAD_WEBINFO']._serialized_start=29869 + _globals['_CLIENTPAYLOAD_WEBINFO']._serialized_end=30514 + _globals['_CLIENTPAYLOAD_WEBINFO_WEBDPAYLOAD']._serialized_start=30095 + _globals['_CLIENTPAYLOAD_WEBINFO_WEBDPAYLOAD']._serialized_end=30410 + _globals['_CLIENTPAYLOAD_WEBINFO_WEBSUBPLATFORM']._serialized_start=30412 + _globals['_CLIENTPAYLOAD_WEBINFO_WEBSUBPLATFORM']._serialized_end=30514 + _globals['_CLIENTPAYLOAD_ACCOUNTTYPE']._serialized_start=30516 + _globals['_CLIENTPAYLOAD_ACCOUNTTYPE']._serialized_end=30553 + _globals['_CLIENTPAYLOAD_CONNECTREASON']._serialized_start=30556 + _globals['_CLIENTPAYLOAD_CONNECTREASON']._serialized_end=30690 + _globals['_CLIENTPAYLOAD_CONNECTTYPE']._serialized_start=30693 + _globals['_CLIENTPAYLOAD_CONNECTTYPE']._serialized_end=30997 + _globals['_CLIENTPAYLOAD_IOSAPPEXTENSION']._serialized_start=30999 + _globals['_CLIENTPAYLOAD_IOSAPPEXTENSION']._serialized_end=31083 + _globals['_CLIENTPAYLOAD_PRODUCT']._serialized_start=31085 + _globals['_CLIENTPAYLOAD_PRODUCT']._serialized_end=31172 + _globals['_CLIENTPAYLOAD_TRAFFICANONYMIZATION']._serialized_start=31174 + _globals['_CLIENTPAYLOAD_TRAFFICANONYMIZATION']._serialized_end=31219 + _globals['_COEXSTATESYNC']._serialized_start=31222 + _globals['_COEXSTATESYNC']._serialized_end=31575 + _globals['_COEXSTATESYNC_COLLECTIONMUTATIONS']._serialized_start=31313 + _globals['_COEXSTATESYNC_COLLECTIONMUTATIONS']._serialized_end=31407 + _globals['_COEXSTATESYNC_MUTATION']._serialized_start=31410 + _globals['_COEXSTATESYNC_MUTATION']._serialized_end=31575 + _globals['_COMBINEDFINGERPRINT']._serialized_start=31578 + _globals['_COMBINEDFINGERPRINT']._serialized_end=31723 + _globals['_COMMAND']._serialized_start=31725 + _globals['_COMMAND']._serialized_end=31844 + _globals['_COMMENTMETADATA']._serialized_start=31846 + _globals['_COMMENTMETADATA']._serialized_end=31931 + _globals['_COMPANIONCOMMITMENT']._serialized_start=31933 + _globals['_COMPANIONCOMMITMENT']._serialized_end=31968 + _globals['_COMPANIONEPHEMERALIDENTITY']._serialized_start=31970 + _globals['_COMPANIONEPHEMERALIDENTITY']._serialized_end=32086 + _globals['_CONFIG']._serialized_start=32089 + _globals['_CONFIG']._serialized_end=32221 + _globals['_CONFIG_FIELDENTRY']._serialized_start=32160 + _globals['_CONFIG_FIELDENTRY']._serialized_end=32221 + _globals['_CONSUMERAPPLICATION']._serialized_start=32224 + _globals['_CONSUMERAPPLICATION']._serialized_end=37326 + _globals['_CONSUMERAPPLICATION_APPLICATIONDATA']._serialized_start=32361 + _globals['_CONSUMERAPPLICATION_APPLICATIONDATA']._serialized_end=32463 + _globals['_CONSUMERAPPLICATION_AUDIOMESSAGE']._serialized_start=32465 + _globals['_CONSUMERAPPLICATION_AUDIOMESSAGE']._serialized_end=32530 + _globals['_CONSUMERAPPLICATION_CONTACTMESSAGE']._serialized_start=32532 + _globals['_CONSUMERAPPLICATION_CONTACTMESSAGE']._serialized_end=32588 + _globals['_CONSUMERAPPLICATION_CONTACTSARRAYMESSAGE']._serialized_start=32590 + _globals['_CONSUMERAPPLICATION_CONTACTSARRAYMESSAGE']._serialized_end=32697 + _globals['_CONSUMERAPPLICATION_CONTENT']._serialized_start=32700 + _globals['_CONSUMERAPPLICATION_CONTENT']._serialized_end=34041 + _globals['_CONSUMERAPPLICATION_DOCUMENTMESSAGE']._serialized_start=34043 + _globals['_CONSUMERAPPLICATION_DOCUMENTMESSAGE']._serialized_end=34119 + _globals['_CONSUMERAPPLICATION_EDITMESSAGE']._serialized_start=34121 + _globals['_CONSUMERAPPLICATION_EDITMESSAGE']._serialized_end=34230 + _globals['_CONSUMERAPPLICATION_EXTENDEDTEXTMESSAGE']._serialized_start=34233 + _globals['_CONSUMERAPPLICATION_EXTENDEDTEXTMESSAGE']._serialized_end=34520 + _globals['_CONSUMERAPPLICATION_GROUPINVITEMESSAGE']._serialized_start=34523 + _globals['_CONSUMERAPPLICATION_GROUPINVITEMESSAGE']._serialized_end=34689 + _globals['_CONSUMERAPPLICATION_IMAGEMESSAGE']._serialized_start=34691 + _globals['_CONSUMERAPPLICATION_IMAGEMESSAGE']._serialized_end=34783 + _globals['_CONSUMERAPPLICATION_INTERACTIVEANNOTATION']._serialized_start=34786 + _globals['_CONSUMERAPPLICATION_INTERACTIVEANNOTATION']._serialized_end=34941 + _globals['_CONSUMERAPPLICATION_LIVELOCATIONMESSAGE']._serialized_start=34944 + _globals['_CONSUMERAPPLICATION_LIVELOCATIONMESSAGE']._serialized_end=35196 + _globals['_CONSUMERAPPLICATION_LOCATION']._serialized_start=35198 + _globals['_CONSUMERAPPLICATION_LOCATION']._serialized_end=35273 + _globals['_CONSUMERAPPLICATION_LOCATIONMESSAGE']._serialized_start=35275 + _globals['_CONSUMERAPPLICATION_LOCATIONMESSAGE']._serialized_end=35367 + _globals['_CONSUMERAPPLICATION_MEDIAPAYLOAD']._serialized_start=35369 + _globals['_CONSUMERAPPLICATION_MEDIAPAYLOAD']._serialized_end=35424 + _globals['_CONSUMERAPPLICATION_METADATA']._serialized_start=35426 + _globals['_CONSUMERAPPLICATION_METADATA']._serialized_end=35520 + _globals['_CONSUMERAPPLICATION_OPTION']._serialized_start=35522 + _globals['_CONSUMERAPPLICATION_OPTION']._serialized_end=35550 + _globals['_CONSUMERAPPLICATION_PAYLOAD']._serialized_start=35553 + _globals['_CONSUMERAPPLICATION_PAYLOAD']._serialized_end=35834 + _globals['_CONSUMERAPPLICATION_POINT']._serialized_start=35836 + _globals['_CONSUMERAPPLICATION_POINT']._serialized_end=35865 + _globals['_CONSUMERAPPLICATION_POLLADDOPTIONMESSAGE']._serialized_start=35867 + _globals['_CONSUMERAPPLICATION_POLLADDOPTIONMESSAGE']._serialized_end=35947 + _globals['_CONSUMERAPPLICATION_POLLCREATIONMESSAGE']._serialized_start=35950 + _globals['_CONSUMERAPPLICATION_POLLCREATIONMESSAGE']._serialized_end=36088 + _globals['_CONSUMERAPPLICATION_POLLENCVALUE']._serialized_start=36090 + _globals['_CONSUMERAPPLICATION_POLLENCVALUE']._serialized_end=36139 + _globals['_CONSUMERAPPLICATION_POLLUPDATEMESSAGE']._serialized_start=36142 + _globals['_CONSUMERAPPLICATION_POLLUPDATEMESSAGE']._serialized_end=36336 + _globals['_CONSUMERAPPLICATION_POLLVOTEMESSAGE']._serialized_start=36338 + _globals['_CONSUMERAPPLICATION_POLLVOTEMESSAGE']._serialized_end=36407 + _globals['_CONSUMERAPPLICATION_REACTIONMESSAGE']._serialized_start=36410 + _globals['_CONSUMERAPPLICATION_REACTIONMESSAGE']._serialized_end=36578 + _globals['_CONSUMERAPPLICATION_REVOKEMESSAGE']._serialized_start=36580 + _globals['_CONSUMERAPPLICATION_REVOKEMESSAGE']._serialized_end=36630 + _globals['_CONSUMERAPPLICATION_SIGNAL']._serialized_start=36632 + _globals['_CONSUMERAPPLICATION_SIGNAL']._serialized_end=36640 + _globals['_CONSUMERAPPLICATION_STATUSTEXTMESAGE']._serialized_start=36643 + _globals['_CONSUMERAPPLICATION_STATUSTEXTMESAGE']._serialized_end=36843 + _globals['_CONSUMERAPPLICATION_STICKERMESSAGE']._serialized_start=36845 + _globals['_CONSUMERAPPLICATION_STICKERMESSAGE']._serialized_end=36901 + _globals['_CONSUMERAPPLICATION_SUBPROTOCOLPAYLOAD']._serialized_start=36903 + _globals['_CONSUMERAPPLICATION_SUBPROTOCOLPAYLOAD']._serialized_end=36977 + _globals['_CONSUMERAPPLICATION_VIDEOMESSAGE']._serialized_start=36979 + _globals['_CONSUMERAPPLICATION_VIDEOMESSAGE']._serialized_end=37071 + _globals['_CONSUMERAPPLICATION_VIEWONCEMESSAGE']._serialized_start=37074 + _globals['_CONSUMERAPPLICATION_VIEWONCEMESSAGE']._serialized_end=37246 + _globals['_CONSUMERAPPLICATION_CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE']._serialized_start=37248 + _globals['_CONSUMERAPPLICATION_CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE']._serialized_end=37326 + _globals['_CONTEXTINFO']._serialized_start=37329 + _globals['_CONTEXTINFO']._serialized_end=44537 + _globals['_CONTEXTINFO_ADREPLYINFO']._serialized_start=40136 + _globals['_CONTEXTINFO_ADREPLYINFO']._serialized_end=40322 + _globals['_CONTEXTINFO_ADREPLYINFO_MEDIATYPE']._serialized_start=40279 + _globals['_CONTEXTINFO_ADREPLYINFO_MEDIATYPE']._serialized_end=40322 + _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS']._serialized_start=40325 + _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS']._serialized_end=41413 + _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_PILL']._serialized_start=40736 + _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_PILL']._serialized_end=40836 + _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_SIGNEDPAYLOAD']._serialized_start=40838 + _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_SIGNEDPAYLOAD']._serialized_end=40943 + _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_UNAUTHENTICATEDBUSINESSMETADATA']._serialized_start=40946 + _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_UNAUTHENTICATEDBUSINESSMETADATA']._serialized_end=41085 + _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_ENTRYPOINT']._serialized_start=41088 + _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_ENTRYPOINT']._serialized_end=41229 + _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_PILLTYPE']._serialized_start=41232 + _globals['_CONTEXTINFO_BUSINESSINTERACTIONPILLS_PILLTYPE']._serialized_end=41413 + _globals['_CONTEXTINFO_BUSINESSMESSAGEFORWARDINFO']._serialized_start=41415 + _globals['_CONTEXTINFO_BUSINESSMESSAGEFORWARDINFO']._serialized_end=41469 + _globals['_CONTEXTINFO_DATASHARINGCONTEXT']._serialized_start=41472 + _globals['_CONTEXTINFO_DATASHARINGCONTEXT']._serialized_end=41896 + _globals['_CONTEXTINFO_DATASHARINGCONTEXT_PARAMETERS']._serialized_start=41659 + _globals['_CONTEXTINFO_DATASHARINGCONTEXT_PARAMETERS']._serialized_end=41811 + _globals['_CONTEXTINFO_DATASHARINGCONTEXT_DATASHARINGFLAGS']._serialized_start=41813 + _globals['_CONTEXTINFO_DATASHARINGCONTEXT_DATASHARINGFLAGS']._serialized_end=41896 + _globals['_CONTEXTINFO_EXTERNALADREPLYINFO']._serialized_start=41899 + _globals['_CONTEXTINFO_EXTERNALADREPLYINFO']._serialized_end=42881 + _globals['_CONTEXTINFO_EXTERNALADREPLYINFO_ADTYPE']._serialized_start=42808 + _globals['_CONTEXTINFO_EXTERNALADREPLYINFO_ADTYPE']._serialized_end=42836 + _globals['_CONTEXTINFO_EXTERNALADREPLYINFO_MEDIATYPE']._serialized_start=40279 + _globals['_CONTEXTINFO_EXTERNALADREPLYINFO_MEDIATYPE']._serialized_end=40322 + _globals['_CONTEXTINFO_FEATUREELIGIBILITIES']._serialized_start=42884 + _globals['_CONTEXTINFO_FEATUREELIGIBILITIES']._serialized_end=43073 + _globals['_CONTEXTINFO_FORWARDEDNEWSLETTERMESSAGEINFO']._serialized_start=43076 + _globals['_CONTEXTINFO_FORWARDEDNEWSLETTERMESSAGEINFO']._serialized_end=43374 + _globals['_CONTEXTINFO_FORWARDEDNEWSLETTERMESSAGEINFO_CONTENTTYPE']._serialized_start=43317 + _globals['_CONTEXTINFO_FORWARDEDNEWSLETTERMESSAGEINFO_CONTENTTYPE']._serialized_end=43374 + _globals['_CONTEXTINFO_INSTAGRAMTHREADLINK']._serialized_start=43376 + _globals['_CONTEXTINFO_INSTAGRAMTHREADLINK']._serialized_end=43410 + _globals['_CONTEXTINFO_PARTIALLYSELECTEDCONTENT']._serialized_start=43412 + _globals['_CONTEXTINFO_PARTIALLYSELECTEDCONTENT']._serialized_end=43452 + _globals['_CONTEXTINFO_QUESTIONREPLYQUOTEDMESSAGE']._serialized_start=43455 + _globals['_CONTEXTINFO_QUESTIONREPLYQUOTEDMESSAGE']._serialized_end=43595 + _globals['_CONTEXTINFO_STATUSAUDIENCEMETADATA']._serialized_start=43598 + _globals['_CONTEXTINFO_STATUSAUDIENCEMETADATA']._serialized_end=43788 + _globals['_CONTEXTINFO_STATUSAUDIENCEMETADATA_AUDIENCETYPE']._serialized_start=43742 + _globals['_CONTEXTINFO_STATUSAUDIENCEMETADATA_AUDIENCETYPE']._serialized_end=43788 + _globals['_CONTEXTINFO_UTMINFO']._serialized_start=43790 + _globals['_CONTEXTINFO_UTMINFO']._serialized_end=43839 + _globals['_CONTEXTINFO_CROSSAPPSOURCE']._serialized_start=43841 + _globals['_CONTEXTINFO_CROSSAPPSOURCE']._serialized_end=43950 + _globals['_CONTEXTINFO_FORWARDORIGIN']._serialized_start=43952 + _globals['_CONTEXTINFO_FORWARDORIGIN']._serialized_end=44038 + _globals['_CONTEXTINFO_PAIREDMEDIATYPE']._serialized_start=44041 + _globals['_CONTEXTINFO_PAIREDMEDIATYPE']._serialized_end=44256 + _globals['_CONTEXTINFO_QUOTEDTYPE']._serialized_start=44258 + _globals['_CONTEXTINFO_QUOTEDTYPE']._serialized_end=44294 + _globals['_CONTEXTINFO_STATUSATTRIBUTIONTYPE']._serialized_start=44297 + _globals['_CONTEXTINFO_STATUSATTRIBUTIONTYPE']._serialized_end=44443 + _globals['_CONTEXTINFO_STATUSSOURCETYPE']._serialized_start=44445 + _globals['_CONTEXTINFO_STATUSSOURCETYPE']._serialized_end=44537 + _globals['_CONVERSATION']._serialized_start=44540 + _globals['_CONVERSATION']._serialized_end=46753 + _globals['_CONVERSATION_ENDOFHISTORYTRANSFERTYPE']._serialized_start=46397 + _globals['_CONVERSATION_ENDOFHISTORYTRANSFERTYPE']._serialized_end=46653 + _globals['_CONVERSATION_GROUPAPPEALSTATUS']._serialized_start=46655 + _globals['_CONVERSATION_GROUPAPPEALSTATUS']._serialized_end=46753 + _globals['_CREATEBACKUPINPUT']._serialized_start=46755 + _globals['_CREATEBACKUPINPUT']._serialized_end=46812 + _globals['_CREATEBACKUPOUTPUT']._serialized_start=46815 + _globals['_CREATEBACKUPOUTPUT']._serialized_end=47008 + _globals['_DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDERINPUT']._serialized_start=47011 + _globals['_DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDERINPUT']._serialized_end=47483 + _globals['_DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDERINPUT_TRANSPORTSENDERMEKDISTRIBUTIONSINGLERECIPIENT']._serialized_start=47317 + _globals['_DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDERINPUT_TRANSPORTSENDERMEKDISTRIBUTIONSINGLERECIPIENT']._serialized_end=47483 + _globals['_DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDERRESULT']._serialized_start=47486 + _globals['_DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDERRESULT']._serialized_end=47654 + _globals['_DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDERSUCCESS']._serialized_start=47656 + _globals['_DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDERSUCCESS']._serialized_end=47722 + _globals['_DECRYPTMEKFORDISTRIBUTIONINPUT']._serialized_start=47725 + _globals['_DECRYPTMEKFORDISTRIBUTIONINPUT']._serialized_end=47968 + _globals['_DECRYPTMEKFORDISTRIBUTIONRESULT']._serialized_start=47971 + _globals['_DECRYPTMEKFORDISTRIBUTIONRESULT']._serialized_end=48101 + _globals['_DECRYPTMEKFORDISTRIBUTIONSUCCESS']._serialized_start=48103 + _globals['_DECRYPTMEKFORDISTRIBUTIONSUCCESS']._serialized_end=48150 + _globals['_DECRYPTMESSAGEINPUT']._serialized_start=48153 + _globals['_DECRYPTMESSAGEINPUT']._serialized_end=48282 + _globals['_DECRYPTMESSAGEOUTPUT']._serialized_start=48284 + _globals['_DECRYPTMESSAGEOUTPUT']._serialized_end=48347 + _globals['_DECRYPTSELFMMKDISTRIBUTIONINPUT']._serialized_start=48349 + _globals['_DECRYPTSELFMMKDISTRIBUTIONINPUT']._serialized_end=48452 + _globals['_DECRYPTSELFMMKDISTRIBUTIONRESULT']._serialized_start=48455 + _globals['_DECRYPTSELFMMKDISTRIBUTIONRESULT']._serialized_end=48587 + _globals['_DECRYPTSELFMMKDISTRIBUTIONSUCCESS']._serialized_start=48589 + _globals['_DECRYPTSELFMMKDISTRIBUTIONSUCCESS']._serialized_end=48641 + _globals['_DERIVEATTACHMENTACCESSTOKENSECRETINPUT']._serialized_start=48643 + _globals['_DERIVEATTACHMENTACCESSTOKENSECRETINPUT']._serialized_end=48701 + _globals['_DERIVEATTACHMENTACCESSTOKENSECRETRESULT']._serialized_start=48703 + _globals['_DERIVEATTACHMENTACCESSTOKENSECRETRESULT']._serialized_end=48781 + _globals['_DERIVEATTACHMENTPRIMARYKEYSECRETINPUT']._serialized_start=48783 + _globals['_DERIVEATTACHMENTPRIMARYKEYSECRETINPUT']._serialized_end=48840 + _globals['_DERIVEATTACHMENTPRIMARYKEYSECRETRESULT']._serialized_start=48842 + _globals['_DERIVEATTACHMENTPRIMARYKEYSECRETRESULT']._serialized_end=48918 + _globals['_DERIVEMAILBOXAUTHKEYPAIRINPUT']._serialized_start=48920 + _globals['_DERIVEMAILBOXAUTHKEYPAIRINPUT']._serialized_end=48995 + _globals['_DERIVEMAILBOXAUTHKEYPAIRRESULT']._serialized_start=48997 + _globals['_DERIVEMAILBOXAUTHKEYPAIRRESULT']._serialized_end=49090 + _globals['_DERIVEMAILBOXENCRYPTIONKEYPAIRINPUT']._serialized_start=49092 + _globals['_DERIVEMAILBOXENCRYPTIONKEYPAIRINPUT']._serialized_end=49173 + _globals['_DERIVEMAILBOXENCRYPTIONKEYPAIRRESULT']._serialized_start=49175 + _globals['_DERIVEMAILBOXENCRYPTIONKEYPAIRRESULT']._serialized_end=49286 + _globals['_DERIVEMAILBOXSIGNINGKEYPAIRINPUT']._serialized_start=49288 + _globals['_DERIVEMAILBOXSIGNINGKEYPAIRINPUT']._serialized_end=49366 + _globals['_DERIVEMAILBOXSIGNINGKEYPAIRRESULT']._serialized_start=49369 + _globals['_DERIVEMAILBOXSIGNINGKEYPAIRRESULT']._serialized_end=49503 + _globals['_DERIVEMAILBOXSIGNINGKEYPAIRSUCCESS']._serialized_start=49505 + _globals['_DERIVEMAILBOXSIGNINGKEYPAIRSUCCESS']._serialized_end=49608 + _globals['_DERIVEMESSAGEKEYINPUT']._serialized_start=49610 + _globals['_DERIVEMESSAGEKEYINPUT']._serialized_end=49694 + _globals['_DERIVEMESSAGEKEYOUTPUT']._serialized_start=49696 + _globals['_DERIVEMESSAGEKEYOUTPUT']._serialized_end=49755 + _globals['_DERIVEMESSAGINGMAILBOXKEYPAIRSINPUT']._serialized_start=49757 + _globals['_DERIVEMESSAGINGMAILBOXKEYPAIRSINPUT']._serialized_end=49811 + _globals['_DERIVEMESSAGINGMAILBOXKEYPAIRSRESULT']._serialized_start=49814 + _globals['_DERIVEMESSAGINGMAILBOXKEYPAIRSRESULT']._serialized_end=49954 + _globals['_DERIVEMESSAGINGMAILBOXKEYPAIRSSUCCESS']._serialized_start=49956 + _globals['_DERIVEMESSAGINGMAILBOXKEYPAIRSSUCCESS']._serialized_end=50057 + _globals['_DETACHEDDEVICEPUBLICDATA']._serialized_start=50059 + _globals['_DETACHEDDEVICEPUBLICDATA']._serialized_end=50182 + _globals['_DEVICECAPABILITIES']._serialized_start=50185 + _globals['_DEVICECAPABILITIES']._serialized_end=51547 + _globals['_DEVICECAPABILITIES_AIFBIDMIGRATION']._serialized_start=50862 + _globals['_DEVICECAPABILITIES_AIFBIDMIGRATION']._serialized_end=50913 + _globals['_DEVICECAPABILITIES_AITHREAD']._serialized_start=50916 + _globals['_DEVICECAPABILITIES_AITHREAD']._serialized_end=51047 + _globals['_DEVICECAPABILITIES_AITHREAD_SUPPORTLEVEL']._serialized_start=51002 + _globals['_DEVICECAPABILITIES_AITHREAD_SUPPORTLEVEL']._serialized_end=51047 + _globals['_DEVICECAPABILITIES_BIZAISETTINGSSYNC']._serialized_start=51049 + _globals['_DEVICECAPABILITIES_BIZAISETTINGSSYNC']._serialized_end=51105 + _globals['_DEVICECAPABILITIES_BUSINESSBROADCAST']._serialized_start=51108 + _globals['_DEVICECAPABILITIES_BUSINESSBROADCAST']._serialized_end=51269 + _globals['_DEVICECAPABILITIES_CONTACTREFRESH']._serialized_start=51271 + _globals['_DEVICECAPABILITIES_CONTACTREFRESH']._serialized_end=51313 + _globals['_DEVICECAPABILITIES_LIDMIGRATION']._serialized_start=51315 + _globals['_DEVICECAPABILITIES_LIDMIGRATION']._serialized_end=51363 + _globals['_DEVICECAPABILITIES_USERHASAVATAR']._serialized_start=51365 + _globals['_DEVICECAPABILITIES_USERHASAVATAR']._serialized_end=51403 + _globals['_DEVICECAPABILITIES_CHATLOCKSUPPORTLEVEL']._serialized_start=51405 + _globals['_DEVICECAPABILITIES_CHATLOCKSUPPORTLEVEL']._serialized_end=51460 + _globals['_DEVICECAPABILITIES_MEMBERNAMETAGPRIMARYSUPPORT']._serialized_start=51462 + _globals['_DEVICECAPABILITIES_MEMBERNAMETAGPRIMARYSUPPORT']._serialized_end=51547 + _globals['_DEVICECONSISTENCYCODEMESSAGE']._serialized_start=51549 + _globals['_DEVICECONSISTENCYCODEMESSAGE']._serialized_end=51618 + _globals['_DEVICELISTMETADATA']._serialized_start=51621 + _globals['_DEVICELISTMETADATA']._serialized_end=51932 + _globals['_DEVICEOUTPUT']._serialized_start=51935 + _globals['_DEVICEOUTPUT']._serialized_end=52245 + _globals['_DEVICEPROPS']._serialized_start=52248 + _globals['_DEVICEPROPS']._serialized_end=53774 + _globals['_DEVICEPROPS_APPVERSION']._serialized_start=28986 + _globals['_DEVICEPROPS_APPVERSION']._serialized_end=29089 + _globals['_DEVICEPROPS_HISTORYSYNCCONFIG']._serialized_start=52583 + _globals['_DEVICEPROPS_HISTORYSYNCCONFIG']._serialized_end=53410 + _globals['_DEVICEPROPS_PLATFORMTYPE']._serialized_start=53413 + _globals['_DEVICEPROPS_PLATFORMTYPE']._serialized_end=53774 + _globals['_DISAPPEARINGMODE']._serialized_start=53777 + _globals['_DISAPPEARINGMODE']._serialized_end=54192 + _globals['_DISAPPEARINGMODE_INITIATOR']._serialized_start=53958 + _globals['_DISAPPEARINGMODE_INITIATOR']._serialized_end=54063 + _globals['_DISAPPEARINGMODE_TRIGGER']._serialized_start=54065 + _globals['_DISAPPEARINGMODE_TRIGGER']._serialized_end=54192 + _globals['_EMBEDDEDCONTENT']._serialized_start=54195 + _globals['_EMBEDDEDCONTENT']._serialized_end=54327 + _globals['_EMBEDDEDMESSAGE']._serialized_start=54329 + _globals['_EMBEDDEDMESSAGE']._serialized_end=54400 + _globals['_EMBEDDEDMUSIC']._serialized_start=54403 + _globals['_EMBEDDEDMUSIC']._serialized_end=54766 + _globals['_ENCRYPTMEKFORDISTRIBUTIONINPUT']._serialized_start=54769 + _globals['_ENCRYPTMEKFORDISTRIBUTIONINPUT']._serialized_end=55063 + _globals['_ENCRYPTMEKFORDISTRIBUTIONINPUT_MAILBOXAUTHKP']._serialized_start=55024 + _globals['_ENCRYPTMEKFORDISTRIBUTIONINPUT_MAILBOXAUTHKP']._serialized_end=55063 + _globals['_ENCRYPTMEKFORDISTRIBUTIONRESULT']._serialized_start=55065 + _globals['_ENCRYPTMEKFORDISTRIBUTIONRESULT']._serialized_end=55135 + _globals['_ENCRYPTMEKSFORDISTRIBUTIONFROMTRANSPORTSENDERINPUT']._serialized_start=55138 + _globals['_ENCRYPTMEKSFORDISTRIBUTIONFROMTRANSPORTSENDERINPUT']._serialized_end=55490 + _globals['_ENCRYPTMEKSFORDISTRIBUTIONFROMTRANSPORTSENDERINPUT_TRANSPORTSIGNINGKP']._serialized_start=55446 + _globals['_ENCRYPTMEKSFORDISTRIBUTIONFROMTRANSPORTSENDERINPUT_TRANSPORTSIGNINGKP']._serialized_end=55490 + _globals['_ENCRYPTMEKSFORDISTRIBUTIONFROMTRANSPORTSENDERRESULT']._serialized_start=55493 + _globals['_ENCRYPTMEKSFORDISTRIBUTIONFROMTRANSPORTSENDERRESULT']._serialized_end=55655 + _globals['_ENCRYPTMESSAGEINPUT']._serialized_start=55658 + _globals['_ENCRYPTMESSAGEINPUT']._serialized_end=55917 + _globals['_ENCRYPTMESSAGEOUTPUT']._serialized_start=55920 + _globals['_ENCRYPTMESSAGEOUTPUT']._serialized_end=56078 + _globals['_ENCRYPTEDPAIRINGREQUEST']._serialized_start=56080 + _globals['_ENCRYPTEDPAIRINGREQUEST']._serialized_end=56143 + _globals['_ENCRYPTEDSECRETVALUESOUTPUT']._serialized_start=56146 + _globals['_ENCRYPTEDSECRETVALUESOUTPUT']._serialized_end=56465 + _globals['_EPHEMERALSETTING']._serialized_start=56467 + _globals['_EPHEMERALSETTING']._serialized_end=56522 + _globals['_EPOCH0OUTPUT']._serialized_start=56525 + _globals['_EPOCH0OUTPUT']._serialized_end=56708 + _globals['_EPOCHPUBLICDATA']._serialized_start=56711 + _globals['_EPOCHPUBLICDATA']._serialized_end=56872 + _globals['_EPOCHSIGNATURES']._serialized_start=56874 + _globals['_EPOCHSIGNATURES']._serialized_end=56937 + _globals['_EVENTADDITIONALMETADATA']._serialized_start=56939 + _globals['_EVENTADDITIONALMETADATA']._serialized_end=56981 + _globals['_EVENTRESPONSE']._serialized_start=56984 + _globals['_EVENTRESPONSE']._serialized_end=57161 + _globals['_EXITCODE']._serialized_start=57163 + _globals['_EXITCODE']._serialized_end=57201 + _globals['_EXTENDEDCONTENTMESSAGE']._serialized_start=57204 + _globals['_EXTENDEDCONTENTMESSAGE']._serialized_end=58683 + _globals['_EXTENDEDCONTENTMESSAGE_CTA']._serialized_start=58318 + _globals['_EXTENDEDCONTENTMESSAGE_CTA']._serialized_end=58492 + _globals['_EXTENDEDCONTENTMESSAGE_EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH']._serialized_start=58495 + _globals['_EXTENDEDCONTENTMESSAGE_EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH']._serialized_end=58683 + _globals['_EXTERNALBLOBREFERENCE']._serialized_start=58686 + _globals['_EXTERNALBLOBREFERENCE']._serialized_end=58829 + _globals['_FIELD']._serialized_start=58832 + _globals['_FIELD']._serialized_end=59049 + _globals['_FIELD_SUBFIELDENTRY']._serialized_start=58985 + _globals['_FIELD_SUBFIELDENTRY']._serialized_end=59049 + _globals['_FINGERPRINTDATA']._serialized_start=59052 + _globals['_FINGERPRINTDATA']._serialized_end=59283 + _globals['_FINGERPRINTDATA_HOSTEDSTATE']._serialized_start=59248 + _globals['_FINGERPRINTDATA_HOSTEDSTATE']._serialized_end=59283 + _globals['_FORWARDEDAIBOTMESSAGEINFO']._serialized_start=59285 + _globals['_FORWARDEDAIBOTMESSAGEINFO']._serialized_end=59366 + _globals['_GENERATEMEKINPUT']._serialized_start=59368 + _globals['_GENERATEMEKINPUT']._serialized_end=59406 + _globals['_GENERATEMEKRESULT']._serialized_start=59408 + _globals['_GENERATEMEKRESULT']._serialized_end=59461 + _globals['_GENERATEMEKROSTERHASHINPUT']._serialized_start=59463 + _globals['_GENERATEMEKROSTERHASHINPUT']._serialized_end=59511 + _globals['_GENERATEMEKROSTERHASHRESULT']._serialized_start=59513 + _globals['_GENERATEMEKROSTERHASHRESULT']._serialized_end=59562 + _globals['_GLOBALSETTINGS']._serialized_start=59565 + _globals['_GLOBALSETTINGS']._serialized_end=60498 + _globals['_GROUPHISTORY']._serialized_start=60501 + _globals['_GROUPHISTORY']._serialized_end=60754 + _globals['_GROUPHISTORYBUNDLEINFO']._serialized_start=60757 + _globals['_GROUPHISTORYBUNDLEINFO']._serialized_end=61067 + _globals['_GROUPHISTORYBUNDLEINFO_PROCESSSTATE']._serialized_start=60933 + _globals['_GROUPHISTORYBUNDLEINFO_PROCESSSTATE']._serialized_end=61067 + _globals['_GROUPHISTORYINDIVIDUALMESSAGEINFO']._serialized_start=61069 + _globals['_GROUPHISTORYINDIVIDUALMESSAGEINFO']._serialized_end=61190 + _globals['_GROUPHISTORYWITHMESSAGEBYTES']._serialized_start=61193 + _globals['_GROUPHISTORYWITHMESSAGEBYTES']._serialized_end=61526 + _globals['_GROUPMENTION']._serialized_start=61528 + _globals['_GROUPMENTION']._serialized_end=61582 + _globals['_GROUPPARTICIPANT']._serialized_start=61585 + _globals['_GROUPPARTICIPANT']._serialized_end=61759 + _globals['_GROUPPARTICIPANT_RANK']._serialized_start=61713 + _globals['_GROUPPARTICIPANT_RANK']._serialized_end=61759 + _globals['_GROUPROOTKEYSHARE']._serialized_start=61761 + _globals['_GROUPROOTKEYSHARE']._serialized_end=61828 + _globals['_GROUPROOTKEYSHAREENTRY']._serialized_start=61830 + _globals['_GROUPROOTKEYSHAREENTRY']._serialized_end=61946 + _globals['_HANDSHAKEMESSAGE']._serialized_start=61949 + _globals['_HANDSHAKEMESSAGE']._serialized_end=62874 + _globals['_HANDSHAKEMESSAGE_CLIENTFINISH']._serialized_start=62154 + _globals['_HANDSHAKEMESSAGE_CLIENTFINISH']._serialized_end=62275 + _globals['_HANDSHAKEMESSAGE_CLIENTHELLO']._serialized_start=62278 + _globals['_HANDSHAKEMESSAGE_CLIENTHELLO']._serialized_end=62561 + _globals['_HANDSHAKEMESSAGE_SERVERHELLO']._serialized_start=62564 + _globals['_HANDSHAKEMESSAGE_SERVERHELLO']._serialized_end=62703 + _globals['_HANDSHAKEMESSAGE_HANDSHAKEPQMODE']._serialized_start=62706 + _globals['_HANDSHAKEMESSAGE_HANDSHAKEPQMODE']._serialized_end=62874 + _globals['_HATCHMETADATASYNC']._serialized_start=62876 + _globals['_HATCHMETADATASYNC']._serialized_end=62949 + _globals['_HISTORYSYNC']._serialized_start=62952 + _globals['_HISTORYSYNC']._serialized_end=64006 + _globals['_HISTORYSYNC_BOTAIWAITLISTSTATE']._serialized_start=63810 + _globals['_HISTORYSYNC_BOTAIWAITLISTSTATE']._serialized_end=63865 + _globals['_HISTORYSYNC_HISTORYSYNCTYPE']._serialized_start=63868 + _globals['_HISTORYSYNC_HISTORYSYNCTYPE']._serialized_end=64006 + _globals['_HISTORYSYNCMSG']._serialized_start=64008 + _globals['_HISTORYSYNCMSG']._serialized_end=64087 + _globals['_HYDRATEDTEMPLATEBUTTON']._serialized_start=64090 + _globals['_HYDRATEDTEMPLATEBUTTON']._serialized_end=64755 + _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDCALLBUTTON']._serialized_start=64366 + _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDCALLBUTTON']._serialized_end=64428 + _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDQUICKREPLYBUTTON']._serialized_start=64430 + _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDQUICKREPLYBUTTON']._serialized_end=64489 + _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDURLBUTTON']._serialized_start=64492 + _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDURLBUTTON']._serialized_end=64737 + _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDURLBUTTON_WEBVIEWPRESENTATIONTYPE']._serialized_start=64679 + _globals['_HYDRATEDTEMPLATEBUTTON_HYDRATEDURLBUTTON_WEBVIEWPRESENTATIONTYPE']._serialized_end=64737 + _globals['_IDENTITYKEYPAIRSTRUCTURE']._serialized_start=64757 + _globals['_IDENTITYKEYPAIRSTRUCTURE']._serialized_end=64822 + _globals['_IDENTITYVERIFICATIONSTATE']._serialized_start=64824 + _globals['_IDENTITYVERIFICATIONSTATE']._serialized_end=64888 + _globals['_INTHREADSURVEYMETADATA']._serialized_start=64891 + _globals['_INTHREADSURVEYMETADATA']._serialized_end=65810 + _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYOPTION']._serialized_start=65507 + _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYOPTION']._serialized_end=65596 + _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYPRIVACYSTATEMENTPART']._serialized_start=65598 + _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYPRIVACYSTATEMENTPART']._serialized_end=65661 + _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYQUESTION']._serialized_start=65664 + _globals['_INTHREADSURVEYMETADATA_INTHREADSURVEYQUESTION']._serialized_end=65810 + _globals['_INLINECONTACT']._serialized_start=65812 + _globals['_INLINECONTACT']._serialized_end=65913 + _globals['_INTERACTIVEANNOTATION']._serialized_start=65916 + _globals['_INTERACTIVEANNOTATION']._serialized_end=66443 + _globals['_INTERACTIVEANNOTATION_STATUSLINKTYPE']._serialized_start=66327 + _globals['_INTERACTIVEANNOTATION_STATUSLINKTYPE']._serialized_end=66433 + _globals['_INTERACTIVEMESSAGEADDITIONALMETADATA']._serialized_start=66445 + _globals['_INTERACTIVEMESSAGEADDITIONALMETADATA']._serialized_end=66514 + _globals['_KEEPINCHAT']._serialized_start=66517 + _globals['_KEEPINCHAT']._serialized_end=66700 + _globals['_KEYEXCHANGEMESSAGE']._serialized_start=66702 + _globals['_KEYEXCHANGEMESSAGE']._serialized_end=66818 + _globals['_KEYID']._serialized_start=66820 + _globals['_KEYID']._serialized_end=66839 + _globals['_LIDMIGRATIONMAPPINGSYNCMESSAGE']._serialized_start=66841 + _globals['_LIDMIGRATIONMAPPINGSYNCMESSAGE']._serialized_end=66904 + _globals['_LIDMIGRATIONMAPPING']._serialized_start=66906 + _globals['_LIDMIGRATIONMAPPING']._serialized_end=66979 + _globals['_LIDMIGRATIONMAPPINGSYNCPAYLOAD']._serialized_start=66981 + _globals['_LIDMIGRATIONMAPPINGSYNCPAYLOAD']._serialized_end=67103 + _globals['_LABYRINTHWACOMMAND']._serialized_start=67106 + _globals['_LABYRINTHWACOMMAND']._serialized_end=67502 + _globals['_LEGACYMESSAGE']._serialized_start=67505 + _globals['_LEGACYMESSAGE']._serialized_end=67643 + _globals['_LIMITSHARING']._serialized_start=67646 + _globals['_LIMITSHARING']._serialized_end=67901 + _globals['_LIMITSHARING_TRIGGERTYPE']._serialized_start=67809 + _globals['_LIMITSHARING_TRIGGERTYPE']._serialized_end=67901 + _globals['_LOCALIZEDNAME']._serialized_start=67903 + _globals['_LOCALIZEDNAME']._serialized_end=67964 + _globals['_LOCATION']._serialized_start=35198 + _globals['_LOCATION']._serialized_end=35273 + _globals['_MANDRAKEDECRYPTMEKINPUT']._serialized_start=68044 + _globals['_MANDRAKEDECRYPTMEKINPUT']._serialized_end=68864 + _globals['_MANDRAKEDECRYPTMEKINPUT_EPOCHSENDERPUBLICDATA']._serialized_start=68614 + _globals['_MANDRAKEDECRYPTMEKINPUT_EPOCHSENDERPUBLICDATA']._serialized_end=68689 + _globals['_MANDRAKEDECRYPTMEKINPUT_MMKSENDERPUBLICDATA']._serialized_start=68691 + _globals['_MANDRAKEDECRYPTMEKINPUT_MMKSENDERPUBLICDATA']._serialized_end=68773 + _globals['_MANDRAKEDECRYPTMEKINPUT_PRECOMPUTEDEPOCHSENDERPUBLICDATA']._serialized_start=68775 + _globals['_MANDRAKEDECRYPTMEKINPUT_PRECOMPUTEDEPOCHSENDERPUBLICDATA']._serialized_end=68844 + _globals['_MANDRAKEDECRYPTMEKRESULT']._serialized_start=68866 + _globals['_MANDRAKEDECRYPTMEKRESULT']._serialized_end=68982 + _globals['_MANDRAKEDECRYPTMEKSUCCESS']._serialized_start=68984 + _globals['_MANDRAKEDECRYPTMEKSUCCESS']._serialized_end=69024 + _globals['_MANDRAKEENCRYPTMEKINPUT']._serialized_start=69027 + _globals['_MANDRAKEENCRYPTMEKINPUT']._serialized_end=69760 + _globals['_MANDRAKEENCRYPTMEKINPUT_DETACHEDDEVICESENDER']._serialized_start=69421 + _globals['_MANDRAKEENCRYPTMEKINPUT_DETACHEDDEVICESENDER']._serialized_end=69545 + _globals['_MANDRAKEENCRYPTMEKINPUT_EPOCHSENDER']._serialized_start=69547 + _globals['_MANDRAKEENCRYPTMEKINPUT_EPOCHSENDER']._serialized_end=69644 + _globals['_MANDRAKEENCRYPTMEKINPUT_MMKSENDER']._serialized_start=69646 + _globals['_MANDRAKEENCRYPTMEKINPUT_MMKSENDER']._serialized_end=69750 + _globals['_MANDRAKEENCRYPTMEKRESULT']._serialized_start=69762 + _globals['_MANDRAKEENCRYPTMEKRESULT']._serialized_end=69878 + _globals['_MANDRAKEENCRYPTMEKSUCCESS']._serialized_start=69881 + _globals['_MANDRAKEENCRYPTMEKSUCCESS']._serialized_end=70217 + _globals['_MANDRAKEENCRYPTMEKSUCCESS_MEKDISTRIBUTIONSINGLERECIPIENT']._serialized_start=70043 + _globals['_MANDRAKEENCRYPTMEKSUCCESS_MEKDISTRIBUTIONSINGLERECIPIENT']._serialized_end=70217 + _globals['_MANDRAKEMEKBUNDLE']._serialized_start=70219 + _globals['_MANDRAKEMEKBUNDLE']._serialized_end=70291 + _globals['_MANDRAKEOPENEPOCHINPUT']._serialized_start=70294 + _globals['_MANDRAKEOPENEPOCHINPUT']._serialized_end=70587 + _globals['_MANDRAKEOPENEPOCHRESULT']._serialized_start=70589 + _globals['_MANDRAKEOPENEPOCHRESULT']._serialized_end=70703 + _globals['_MANDRAKEOPENEPOCHSUCCESS']._serialized_start=70706 + _globals['_MANDRAKEOPENEPOCHSUCCESS']._serialized_end=70861 + _globals['_MANDRAKEOPENINITIALEPOCHINPUT']._serialized_start=70864 + _globals['_MANDRAKEOPENINITIALEPOCHINPUT']._serialized_end=71018 + _globals['_MANDRAKEOPENINITIALEPOCHRESULT']._serialized_start=71020 + _globals['_MANDRAKEOPENINITIALEPOCHRESULT']._serialized_end=71141 + _globals['_MANDRAKEVALIDATENEWMMKFROMDETACHEDDEVICEINPUT']._serialized_start=71144 + _globals['_MANDRAKEVALIDATENEWMMKFROMDETACHEDDEVICEINPUT']._serialized_end=71321 + _globals['_MANDRAKEVALIDATENEWMMKFROMMAILBOXINPUT']._serialized_start=71324 + _globals['_MANDRAKEVALIDATENEWMMKFROMMAILBOXINPUT']._serialized_end=71544 + _globals['_MANDRAKEVALIDATENEWMMKRESULT']._serialized_start=71546 + _globals['_MANDRAKEVALIDATENEWMMKRESULT']._serialized_end=71627 + _globals['_MEDIADATA']._serialized_start=71629 + _globals['_MEDIADATA']._serialized_end=71659 + _globals['_MEDIADOMAININFO']._serialized_start=71661 + _globals['_MEDIADOMAININFO']._serialized_end=71750 + _globals['_MEDIAENTRY']._serialized_start=71753 + _globals['_MEDIAENTRY']._serialized_end=72450 + _globals['_MEDIAENTRY_DOWNLOADABLETHUMBNAIL']._serialized_start=72237 + _globals['_MEDIAENTRY_DOWNLOADABLETHUMBNAIL']._serialized_end=72386 + _globals['_MEDIAENTRY_PROGRESSIVEJPEGDETAILS']._serialized_start=72388 + _globals['_MEDIAENTRY_PROGRESSIVEJPEGDETAILS']._serialized_end=72450 + _globals['_MEDIANOTIFYMESSAGE']._serialized_start=72452 + _globals['_MEDIANOTIFYMESSAGE']._serialized_end=72539 + _globals['_MEDIARETRYNOTIFICATION']._serialized_start=72542 + _globals['_MEDIARETRYNOTIFICATION']._serialized_end=72771 + _globals['_MEDIARETRYNOTIFICATION_RESULTTYPE']._serialized_start=72690 + _globals['_MEDIARETRYNOTIFICATION_RESULTTYPE']._serialized_end=72771 + _globals['_MEKBUNDLE']._serialized_start=72773 + _globals['_MEKBUNDLE']._serialized_end=72832 + _globals['_MEMBERLABEL']._serialized_start=72834 + _globals['_MEMBERLABEL']._serialized_end=72886 + _globals['_MENTION']._serialized_start=72888 + _globals['_MENTION']._serialized_end=73004 + _globals['_MERKLEMEMBERSHIPPROOF']._serialized_start=73006 + _globals['_MERKLEMEMBERSHIPPROOF']._serialized_end=73098 + _globals['_MESSAGE']._serialized_start=73102 + _globals['_MESSAGE']._serialized_end=123953 + _globals['_MESSAGE_ALBUMMESSAGE']._serialized_start=80662 + _globals['_MESSAGE_ALBUMMESSAGE']._serialized_end=80776 + _globals['_MESSAGE_APPSTATEFATALEXCEPTIONNOTIFICATION']._serialized_start=80778 + _globals['_MESSAGE_APPSTATEFATALEXCEPTIONNOTIFICATION']._serialized_end=80858 + _globals['_MESSAGE_APPSTATESYNCKEY']._serialized_start=80860 + _globals['_MESSAGE_APPSTATESYNCKEY']._serialized_end=80985 + _globals['_MESSAGE_APPSTATESYNCKEYDATA']._serialized_start=80987 + _globals['_MESSAGE_APPSTATESYNCKEYDATA']._serialized_end=81111 + _globals['_MESSAGE_APPSTATESYNCKEYFINGERPRINT']._serialized_start=81113 + _globals['_MESSAGE_APPSTATESYNCKEYFINGERPRINT']._serialized_end=81205 + _globals['_MESSAGE_APPSTATESYNCKEYID']._serialized_start=81207 + _globals['_MESSAGE_APPSTATESYNCKEYID']._serialized_end=81241 + _globals['_MESSAGE_APPSTATESYNCKEYREQUEST']._serialized_start=81243 + _globals['_MESSAGE_APPSTATESYNCKEYREQUEST']._serialized_end=81320 + _globals['_MESSAGE_APPSTATESYNCKEYSHARE']._serialized_start=81322 + _globals['_MESSAGE_APPSTATESYNCKEYSHARE']._serialized_end=81393 + _globals['_MESSAGE_AUDIOMESSAGE']._serialized_start=81396 + _globals['_MESSAGE_AUDIOMESSAGE']._serialized_end=81757 + _globals['_MESSAGE_BCALLMESSAGE']._serialized_start=81760 + _globals['_MESSAGE_BCALLMESSAGE']._serialized_end=81938 + _globals['_MESSAGE_BCALLMESSAGE_MEDIATYPE']._serialized_start=81892 + _globals['_MESSAGE_BCALLMESSAGE_MEDIATYPE']._serialized_end=81938 + _globals['_MESSAGE_BOTHISTORYSHARESYNCMETADATA']._serialized_start=81941 + _globals['_MESSAGE_BOTHISTORYSHARESYNCMETADATA']._serialized_end=82097 + _globals['_MESSAGE_BUTTONSMESSAGE']._serialized_start=82100 + _globals['_MESSAGE_BUTTONSMESSAGE']._serialized_end=83064 + _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON']._serialized_start=82579 + _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON']._serialized_end=82956 + _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_BUTTONTEXT']._serialized_start=82819 + _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_BUTTONTEXT']._serialized_end=82852 + _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_NATIVEFLOWINFO']._serialized_start=82854 + _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_NATIVEFLOWINFO']._serialized_end=82904 + _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_TYPE']._serialized_start=82906 + _globals['_MESSAGE_BUTTONSMESSAGE_BUTTON_TYPE']._serialized_end=82956 + _globals['_MESSAGE_BUTTONSMESSAGE_HEADERTYPE']._serialized_start=82958 + _globals['_MESSAGE_BUTTONSMESSAGE_HEADERTYPE']._serialized_end=83054 + _globals['_MESSAGE_BUTTONSRESPONSEMESSAGE']._serialized_start=83067 + _globals['_MESSAGE_BUTTONSRESPONSEMESSAGE']._serialized_end=83304 + _globals['_MESSAGE_BUTTONSRESPONSEMESSAGE_TYPE']._serialized_start=83255 + _globals['_MESSAGE_BUTTONSRESPONSEMESSAGE_TYPE']._serialized_end=83292 + _globals['_MESSAGE_CALL']._serialized_start=83307 + _globals['_MESSAGE_CALL']._serialized_end=83662 + _globals['_MESSAGE_CALLLOGMESSAGE']._serialized_start=83665 + _globals['_MESSAGE_CALLLOGMESSAGE']._serialized_end=84236 + _globals['_MESSAGE_CALLLOGMESSAGE_CALLPARTICIPANT']._serialized_start=83922 + _globals['_MESSAGE_CALLLOGMESSAGE_CALLPARTICIPANT']._serialized_end=84019 + _globals['_MESSAGE_CALLLOGMESSAGE_CALLOUTCOME']._serialized_start=84022 + _globals['_MESSAGE_CALLLOGMESSAGE_CALLOUTCOME']._serialized_end=84175 + _globals['_MESSAGE_CALLLOGMESSAGE_CALLTYPE']._serialized_start=25047 + _globals['_MESSAGE_CALLLOGMESSAGE_CALLTYPE']._serialized_end=25106 + _globals['_MESSAGE_CANCELPAYMENTREQUESTMESSAGE']._serialized_start=84238 + _globals['_MESSAGE_CANCELPAYMENTREQUESTMESSAGE']._serialized_end=84302 + _globals['_MESSAGE_CHAT']._serialized_start=84304 + _globals['_MESSAGE_CHAT']._serialized_end=84343 + _globals['_MESSAGE_CHATCUSTOMIMAGEWALLPAPER']._serialized_start=84345 + _globals['_MESSAGE_CHATCUSTOMIMAGEWALLPAPER']._serialized_end=84470 + _globals['_MESSAGE_CHATDEFAULTWALLPAPER']._serialized_start=84472 + _globals['_MESSAGE_CHATDEFAULTWALLPAPER']._serialized_end=84519 + _globals['_MESSAGE_CHATSOLIDCOLORWALLPAPER']._serialized_start=84521 + _globals['_MESSAGE_CHATSOLIDCOLORWALLPAPER']._serialized_end=84610 + _globals['_MESSAGE_CHATSTOCKIMAGEWALLPAPER']._serialized_start=84612 + _globals['_MESSAGE_CHATSTOCKIMAGEWALLPAPER']._serialized_end=84677 + _globals['_MESSAGE_CHATTHEMESETTING']._serialized_start=84680 + _globals['_MESSAGE_CHATTHEMESETTING']._serialized_end=85047 + _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION']._serialized_start=85050 + _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION']._serialized_end=85607 + _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION_CLOUDAPITHREADCONTROLNOTIFICATIONCONTENT']._serialized_start=85426 + _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION_CLOUDAPITHREADCONTROLNOTIFICATIONCONTENT']._serialized_end=85520 + _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION_CLOUDAPITHREADCONTROL']._serialized_start=85522 + _globals['_MESSAGE_CLOUDAPITHREADCONTROLNOTIFICATION_CLOUDAPITHREADCONTROL']._serialized_end=85607 + _globals['_MESSAGE_COMMENTMESSAGE']._serialized_start=85609 + _globals['_MESSAGE_COMMENTMESSAGE']._serialized_end=85709 + _globals['_MESSAGE_CONDITIONALREVEALMESSAGE']._serialized_start=85712 + _globals['_MESSAGE_CONDITIONALREVEALMESSAGE']._serialized_end=85973 + _globals['_MESSAGE_CONDITIONALREVEALMESSAGE_CONDITIONALREVEALMESSAGETYPE']._serialized_start=85907 + _globals['_MESSAGE_CONDITIONALREVEALMESSAGE_CONDITIONALREVEALMESSAGETYPE']._serialized_end=85973 + _globals['_MESSAGE_CONTACTMESSAGE']._serialized_start=85975 + _globals['_MESSAGE_CONTACTMESSAGE']._serialized_end=86094 + _globals['_MESSAGE_CONTACTSARRAYMESSAGE']._serialized_start=86097 + _globals['_MESSAGE_CONTACTSARRAYMESSAGE']._serialized_end=86236 + _globals['_MESSAGE_DECLINEPAYMENTREQUESTMESSAGE']._serialized_start=86238 + _globals['_MESSAGE_DECLINEPAYMENTREQUESTMESSAGE']._serialized_end=86303 + _globals['_MESSAGE_DEVICESENTMESSAGE']._serialized_start=86305 + _globals['_MESSAGE_DEVICESENTMESSAGE']._serialized_end=86399 + _globals['_MESSAGE_DOCUMENTMESSAGE']._serialized_start=86402 + _globals['_MESSAGE_DOCUMENTMESSAGE']._serialized_end=86895 + _globals['_MESSAGE_ENCCOMMENTMESSAGE']._serialized_start=86897 + _globals['_MESSAGE_ENCCOMMENTMESSAGE']._serialized_end=86999 + _globals['_MESSAGE_ENCEVENTRESPONSEMESSAGE']._serialized_start=87001 + _globals['_MESSAGE_ENCEVENTRESPONSEMESSAGE']._serialized_end=87116 + _globals['_MESSAGE_ENCREACTIONMESSAGE']._serialized_start=87118 + _globals['_MESSAGE_ENCREACTIONMESSAGE']._serialized_end=87221 + _globals['_MESSAGE_EVENTINVITEMESSAGE']._serialized_start=87224 + _globals['_MESSAGE_EVENTINVITEMESSAGE']._serialized_end=87439 + _globals['_MESSAGE_EVENTMESSAGE']._serialized_start=87442 + _globals['_MESSAGE_EVENTMESSAGE']._serialized_end=87762 + _globals['_MESSAGE_EVENTRESPONSEMESSAGE']._serialized_start=87765 + _globals['_MESSAGE_EVENTRESPONSEMESSAGE']._serialized_end=87980 + _globals['_MESSAGE_EVENTRESPONSEMESSAGE_EVENTRESPONSETYPE']._serialized_start=87911 + _globals['_MESSAGE_EVENTRESPONSEMESSAGE_EVENTRESPONSETYPE']._serialized_end=87980 + _globals['_MESSAGE_EXTENDEDTEXTMESSAGE']._serialized_start=87983 + _globals['_MESSAGE_EXTENDEDTEXTMESSAGE']._serialized_end=89582 + _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_FONTTYPE']._serialized_start=89248 + _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_FONTTYPE']._serialized_end=89412 + _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_INVITELINKGROUPTYPE']._serialized_start=89414 + _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_INVITELINKGROUPTYPE']._serialized_end=89486 + _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_PREVIEWTYPE']._serialized_start=89488 + _globals['_MESSAGE_EXTENDEDTEXTMESSAGE_PREVIEWTYPE']._serialized_end=89582 + _globals['_MESSAGE_FULLHISTORYSYNCONDEMANDCONFIG']._serialized_start=89584 + _globals['_MESSAGE_FULLHISTORYSYNCONDEMANDCONFIG']._serialized_end=89674 + _globals['_MESSAGE_FULLHISTORYSYNCONDEMANDREQUESTMETADATA']._serialized_start=89676 + _globals['_MESSAGE_FULLHISTORYSYNCONDEMANDREQUESTMETADATA']._serialized_end=89786 + _globals['_MESSAGE_FUTUREPROOFMESSAGE']._serialized_start=89788 + _globals['_MESSAGE_FUTUREPROOFMESSAGE']._serialized_end=89844 + _globals['_MESSAGE_GROUPINVITEMESSAGE']._serialized_start=89847 + _globals['_MESSAGE_GROUPINVITEMESSAGE']._serialized_end=90139 + _globals['_MESSAGE_GROUPINVITEMESSAGE_GROUPTYPE']._serialized_start=90103 + _globals['_MESSAGE_GROUPINVITEMESSAGE_GROUPTYPE']._serialized_end=90139 + _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE']._serialized_start=90142 + _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE']._serialized_end=91622 + _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER']._serialized_start=90466 + _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER']._serialized_end=91622 + _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMCURRENCY']._serialized_start=90708 + _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMCURRENCY']._serialized_end=90763 + _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME']._serialized_start=90766 + _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME']._serialized_end=91608 + _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT']._serialized_start=91024 + _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT']._serialized_end=91548 + _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT_CALENDARTYPE']._serialized_start=91393 + _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT_CALENDARTYPE']._serialized_end=91439 + _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT_DAYOFWEEKTYPE']._serialized_start=91441 + _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMECOMPONENT_DAYOFWEEKTYPE']._serialized_end=91548 + _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMEUNIXEPOCH']._serialized_start=91550 + _globals['_MESSAGE_HIGHLYSTRUCTUREDMESSAGE_HSMLOCALIZABLEPARAMETER_HSMDATETIME_HSMDATETIMEUNIXEPOCH']._serialized_end=91591 + _globals['_MESSAGE_HISTORYSHAREMESSAGEENTRY']._serialized_start=91624 + _globals['_MESSAGE_HISTORYSHAREMESSAGEENTRY']._serialized_end=91696 + _globals['_MESSAGE_HISTORYSYNCMESSAGEACCESSSTATUS']._serialized_start=91698 + _globals['_MESSAGE_HISTORYSYNCMESSAGEACCESSSTATUS']._serialized_end=91761 + _globals['_MESSAGE_HISTORYSYNCNOTIFICATION']._serialized_start=91764 + _globals['_MESSAGE_HISTORYSYNCNOTIFICATION']._serialized_end=92327 + _globals['_MESSAGE_IMAGEMESSAGE']._serialized_start=92330 + _globals['_MESSAGE_IMAGEMESSAGE']._serialized_end=93254 + _globals['_MESSAGE_IMAGEMESSAGE_IMAGESOURCETYPE']._serialized_start=93158 + _globals['_MESSAGE_IMAGEMESSAGE_IMAGESOURCETYPE']._serialized_end=93254 + _globals['_MESSAGE_INITIALSECURITYNOTIFICATIONSETTINGSYNC']._serialized_start=93256 + _globals['_MESSAGE_INITIALSECURITYNOTIFICATIONSETTINGSYNC']._serialized_end=93333 + _globals['_MESSAGE_INTERACTIVEMESSAGE']._serialized_start=93336 + _globals['_MESSAGE_INTERACTIVEMESSAGE']._serialized_end=95512 + _globals['_MESSAGE_INTERACTIVEMESSAGE_BLOKSWIDGET']._serialized_start=94036 + _globals['_MESSAGE_INTERACTIVEMESSAGE_BLOKSWIDGET']._serialized_end=94109 + _globals['_MESSAGE_INTERACTIVEMESSAGE_BODY']._serialized_start=94111 + _globals['_MESSAGE_INTERACTIVEMESSAGE_BODY']._serialized_end=94131 + _globals['_MESSAGE_INTERACTIVEMESSAGE_CAROUSELMESSAGE']._serialized_start=94134 + _globals['_MESSAGE_INTERACTIVEMESSAGE_CAROUSELMESSAGE']._serialized_end=94412 + _globals['_MESSAGE_INTERACTIVEMESSAGE_CAROUSELMESSAGE_CAROUSELCARDTYPE']._serialized_start=94345 + _globals['_MESSAGE_INTERACTIVEMESSAGE_CAROUSELMESSAGE_CAROUSELCARDTYPE']._serialized_end=94412 + _globals['_MESSAGE_INTERACTIVEMESSAGE_COLLECTIONMESSAGE']._serialized_start=94414 + _globals['_MESSAGE_INTERACTIVEMESSAGE_COLLECTIONMESSAGE']._serialized_end=94488 + _globals['_MESSAGE_INTERACTIVEMESSAGE_FOOTER']._serialized_start=94490 + _globals['_MESSAGE_INTERACTIVEMESSAGE_FOOTER']._serialized_end=94605 + _globals['_MESSAGE_INTERACTIVEMESSAGE_HEADER']._serialized_start=94608 + _globals['_MESSAGE_INTERACTIVEMESSAGE_HEADER']._serialized_end=95078 + _globals['_MESSAGE_INTERACTIVEMESSAGE_NATIVEFLOWMESSAGE']._serialized_start=95081 + _globals['_MESSAGE_INTERACTIVEMESSAGE_NATIVEFLOWMESSAGE']._serialized_end=95304 + _globals['_MESSAGE_INTERACTIVEMESSAGE_NATIVEFLOWMESSAGE_NATIVEFLOWBUTTON']._serialized_start=95246 + _globals['_MESSAGE_INTERACTIVEMESSAGE_NATIVEFLOWMESSAGE_NATIVEFLOWBUTTON']._serialized_end=95304 + _globals['_MESSAGE_INTERACTIVEMESSAGE_SHOPMESSAGE']._serialized_start=95307 + _globals['_MESSAGE_INTERACTIVEMESSAGE_SHOPMESSAGE']._serialized_end=95490 + _globals['_MESSAGE_INTERACTIVEMESSAGE_SHOPMESSAGE_SURFACE']._serialized_start=95436 + _globals['_MESSAGE_INTERACTIVEMESSAGE_SHOPMESSAGE_SURFACE']._serialized_end=95490 + _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE']._serialized_start=95515 + _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE']._serialized_end=96021 + _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_BODY']._serialized_start=95764 + _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_BODY']._serialized_end=95908 + _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_BODY_FORMAT']._serialized_start=95869 + _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_BODY_FORMAT']._serialized_end=95908 + _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_NATIVEFLOWRESPONSEMESSAGE']._serialized_start=95910 + _globals['_MESSAGE_INTERACTIVERESPONSEMESSAGE_NATIVEFLOWRESPONSEMESSAGE']._serialized_end=95991 + _globals['_MESSAGE_INVOICEMESSAGE']._serialized_start=96024 + _globals['_MESSAGE_INVOICEMESSAGE']._serialized_end=96399 + _globals['_MESSAGE_INVOICEMESSAGE_ATTACHMENTTYPE']._serialized_start=96363 + _globals['_MESSAGE_INVOICEMESSAGE_ATTACHMENTTYPE']._serialized_end=96399 + _globals['_MESSAGE_KEEPINCHATMESSAGE']._serialized_start=96401 + _globals['_MESSAGE_KEEPINCHATMESSAGE']._serialized_end=96514 + _globals['_MESSAGE_LINKPREVIEWMETADATA']._serialized_start=96517 + _globals['_MESSAGE_LINKPREVIEWMETADATA']._serialized_end=97036 + _globals['_MESSAGE_LINKPREVIEWMETADATA_SOCIALMEDIAPOSTTYPE']._serialized_start=96931 + _globals['_MESSAGE_LINKPREVIEWMETADATA_SOCIALMEDIAPOSTTYPE']._serialized_end=97036 + _globals['_MESSAGE_LISTMESSAGE']._serialized_start=97039 + _globals['_MESSAGE_LISTMESSAGE']._serialized_end=97934 + _globals['_MESSAGE_LISTMESSAGE_PRODUCT']._serialized_start=97361 + _globals['_MESSAGE_LISTMESSAGE_PRODUCT']._serialized_end=97389 + _globals['_MESSAGE_LISTMESSAGE_PRODUCTLISTHEADERIMAGE']._serialized_start=97391 + _globals['_MESSAGE_LISTMESSAGE_PRODUCTLISTHEADERIMAGE']._serialized_end=97457 + _globals['_MESSAGE_LISTMESSAGE_PRODUCTLISTINFO']._serialized_start=97460 + _globals['_MESSAGE_LISTMESSAGE_PRODUCTLISTINFO']._serialized_end=97649 + _globals['_MESSAGE_LISTMESSAGE_PRODUCTSECTION']._serialized_start=97651 + _globals['_MESSAGE_LISTMESSAGE_PRODUCTSECTION']._serialized_end=97739 + _globals['_MESSAGE_LISTMESSAGE_ROW']._serialized_start=97741 + _globals['_MESSAGE_LISTMESSAGE_ROW']._serialized_end=97797 + _globals['_MESSAGE_LISTMESSAGE_SECTION']._serialized_start=97799 + _globals['_MESSAGE_LISTMESSAGE_SECTION']._serialized_end=97872 + _globals['_MESSAGE_LISTMESSAGE_LISTTYPE']._serialized_start=97874 + _globals['_MESSAGE_LISTMESSAGE_LISTTYPE']._serialized_end=97934 + _globals['_MESSAGE_LISTRESPONSEMESSAGE']._serialized_start=97937 + _globals['_MESSAGE_LISTRESPONSEMESSAGE']._serialized_end=98276 + _globals['_MESSAGE_LISTRESPONSEMESSAGE_SINGLESELECTREPLY']._serialized_start=98190 + _globals['_MESSAGE_LISTRESPONSEMESSAGE_SINGLESELECTREPLY']._serialized_end=98232 + _globals['_MESSAGE_LISTRESPONSEMESSAGE_LISTTYPE']._serialized_start=97874 + _globals['_MESSAGE_LISTRESPONSEMESSAGE_LISTTYPE']._serialized_end=97916 + _globals['_MESSAGE_LIVELOCATIONMESSAGE']._serialized_start=98279 + _globals['_MESSAGE_LIVELOCATIONMESSAGE']._serialized_end=98568 + _globals['_MESSAGE_LOCATIONMESSAGE']._serialized_start=98571 + _globals['_MESSAGE_LOCATIONMESSAGE']._serialized_end=98872 + _globals['_MESSAGE_MMSTHUMBNAILMETADATA']._serialized_start=98875 + _globals['_MESSAGE_MMSTHUMBNAILMETADATA']._serialized_end=99073 + _globals['_MESSAGE_MARKASVERIFIEDACTION']._serialized_start=99075 + _globals['_MESSAGE_MARKASVERIFIEDACTION']._serialized_end=99186 + _globals['_MESSAGE_MESSAGEHISTORYBUNDLE']._serialized_start=99189 + _globals['_MESSAGE_MESSAGEHISTORYBUNDLE']._serialized_end=99455 + _globals['_MESSAGE_MESSAGEHISTORYMETADATA']._serialized_start=99458 + _globals['_MESSAGE_MESSAGEHISTORYMETADATA']._serialized_end=99639 + _globals['_MESSAGE_MESSAGEHISTORYNOTICE']._serialized_start=99642 + _globals['_MESSAGE_MESSAGEHISTORYNOTICE']._serialized_end=99866 + _globals['_MESSAGE_MUSICMESSAGE']._serialized_start=99869 + _globals['_MESSAGE_MUSICMESSAGE']._serialized_end=100072 + _globals['_MESSAGE_MUSICMESSAGE_MUSICMESSAGESTYLE']._serialized_start=100029 + _globals['_MESSAGE_MUSICMESSAGE_MUSICMESSAGESTYLE']._serialized_end=100072 + _globals['_MESSAGE_NEWSLETTERADMININVITEMESSAGE']._serialized_start=100075 + _globals['_MESSAGE_NEWSLETTERADMININVITEMESSAGE']._serialized_end=100262 + _globals['_MESSAGE_NEWSLETTERFOLLOWERINVITEMESSAGE']._serialized_start=100265 + _globals['_MESSAGE_NEWSLETTERFOLLOWERINVITEMESSAGE']._serialized_end=100429 + _globals['_MESSAGE_ORDERMESSAGE']._serialized_start=100432 + _globals['_MESSAGE_ORDERMESSAGE']._serialized_end=100976 + _globals['_MESSAGE_ORDERMESSAGE_ORDERSTATUS']._serialized_start=100893 + _globals['_MESSAGE_ORDERMESSAGE_ORDERSTATUS']._serialized_end=100947 + _globals['_MESSAGE_ORDERMESSAGE_ORDERSURFACE']._serialized_start=100949 + _globals['_MESSAGE_ORDERMESSAGE_ORDERSURFACE']._serialized_end=100976 + _globals['_MESSAGE_PAYMENTEXTENDEDMETADATA']._serialized_start=100978 + _globals['_MESSAGE_PAYMENTEXTENDEDMETADATA']._serialized_end=101062 + _globals['_MESSAGE_PAYMENTINVITEMESSAGE']._serialized_start=101065 + _globals['_MESSAGE_PAYMENTINVITEMESSAGE']._serialized_end=101409 + _globals['_MESSAGE_PAYMENTINVITEMESSAGE_INVITETYPE']._serialized_start=101305 + _globals['_MESSAGE_PAYMENTINVITEMESSAGE_INVITETYPE']._serialized_end=101342 + _globals['_MESSAGE_PAYMENTINVITEMESSAGE_SERVICETYPE']._serialized_start=101344 + _globals['_MESSAGE_PAYMENTINVITEMESSAGE_SERVICETYPE']._serialized_end=101409 + _globals['_MESSAGE_PAYMENTLINKMETADATA']._serialized_start=101412 + _globals['_MESSAGE_PAYMENTLINKMETADATA']._serialized_end=101916 + _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKBUTTON']._serialized_start=101658 + _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKBUTTON']._serialized_end=101698 + _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKHEADER']._serialized_start=101701 + _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKHEADER']._serialized_end=101873 + _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKHEADER_PAYMENTLINKHEADERTYPE']._serialized_start=101821 + _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKHEADER_PAYMENTLINKHEADERTYPE']._serialized_end=101873 + _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKPROVIDER']._serialized_start=101875 + _globals['_MESSAGE_PAYMENTLINKMETADATA_PAYMENTLINKPROVIDER']._serialized_end=101916 + _globals['_MESSAGE_PAYMENTREMINDERMESSAGE']._serialized_start=101919 + _globals['_MESSAGE_PAYMENTREMINDERMESSAGE']._serialized_end=102485 + _globals['_MESSAGE_PAYMENTREMINDERMESSAGE_REMINDERFREQUENCY']._serialized_start=102245 + _globals['_MESSAGE_PAYMENTREMINDERMESSAGE_REMINDERFREQUENCY']._serialized_end=102351 + _globals['_MESSAGE_PAYMENTREMINDERMESSAGE_REMINDERSTATUS']._serialized_start=102354 + _globals['_MESSAGE_PAYMENTREMINDERMESSAGE_REMINDERSTATUS']._serialized_end=102485 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE']._serialized_start=102488 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE']._serialized_end=105296 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_BIZBROADCASTINSIGHTSCONTACTLISTREQUEST']._serialized_start=103927 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_BIZBROADCASTINSIGHTSCONTACTLISTREQUEST']._serialized_end=103987 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_BIZBROADCASTINSIGHTSREFRESHREQUEST']._serialized_start=103989 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_BIZBROADCASTINSIGHTSREFRESHREQUEST']._serialized_end=104045 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_COMPANIONCANONICALUSERNONCEFETCHREQUEST']._serialized_start=104047 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_COMPANIONCANONICALUSERNONCEFETCHREQUEST']._serialized_end=104117 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_FULLHISTORYSYNCONDEMANDREQUEST']._serialized_start=104120 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_FULLHISTORYSYNCONDEMANDREQUEST']._serialized_end=104391 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_GALAXYFLOWACTION']._serialized_start=104394 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_GALAXYFLOWACTION']._serialized_end=104668 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_GALAXYFLOWACTION_GALAXYFLOWACTIONTYPE']._serialized_start=104603 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_GALAXYFLOWACTION_GALAXYFLOWACTIONTYPE']._serialized_end=104668 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_HISTORYSYNCCHUNKRETRYREQUEST']._serialized_start=104671 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_HISTORYSYNCCHUNKRETRYREQUEST']._serialized_end=104828 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_HISTORYSYNCONDEMANDREQUEST']._serialized_start=104831 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_HISTORYSYNCONDEMANDREQUEST']._serialized_end=105029 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_PLACEHOLDERMESSAGERESENDREQUEST']._serialized_start=105031 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_PLACEHOLDERMESSAGERESENDREQUEST']._serialized_end=105106 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_REQUESTSTICKERREUPLOAD']._serialized_start=105108 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_REQUESTSTICKERREUPLOAD']._serialized_end=105152 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_REQUESTURLPREVIEW']._serialized_start=105154 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_REQUESTURLPREVIEW']._serialized_end=105214 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_SYNCDCOLLECTIONFATALRECOVERYREQUEST']._serialized_start=105216 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTMESSAGE_SYNCDCOLLECTIONFATALRECOVERYREQUEST']._serialized_end=105296 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE']._serialized_start=105299 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE']._serialized_end=110293 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT']._serialized_start=105563 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT']._serialized_end=110293 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_BIZBROADCASTINSIGHTSCONTACTLISTRESPONSE']._serialized_start=107447 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_BIZBROADCASTINSIGHTSCONTACTLISTRESPONSE']._serialized_end=107664 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_BIZBROADCASTINSIGHTSCONTACTSTATE']._serialized_start=107666 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_BIZBROADCASTINSIGHTSCONTACTSTATE']._serialized_end=107775 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_COMPANIONCANONICALUSERNONCEFETCHRESPONSE']._serialized_start=107777 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_COMPANIONCANONICALUSERNONCEFETCHRESPONSE']._serialized_end=107872 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_COMPANIONMETANONCEFETCHRESPONSE']._serialized_start=107874 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_COMPANIONMETANONCEFETCHRESPONSE']._serialized_end=107922 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_CONTACTREFRESHRESPONSE']._serialized_start=107925 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_CONTACTREFRESHRESPONSE']._serialized_end=108058 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FLOWRESPONSESCSVBUNDLE']._serialized_start=108061 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FLOWRESPONSESCSVBUNDLE']._serialized_end=108302 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FULLHISTORYSYNCONDEMANDREQUESTRESPONSE']._serialized_start=108305 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FULLHISTORYSYNCONDEMANDREQUESTRESPONSE']._serialized_end=108570 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_HISTORYSYNCCHUNKRETRYRESPONSE']._serialized_start=108573 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_HISTORYSYNCCHUNKRETRYRESPONSE']._serialized_end=108856 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE']._serialized_start=108859 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE']._serialized_end=109619 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE_LINKPREVIEWHIGHQUALITYTHUMBNAIL']._serialized_start=109306 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE_LINKPREVIEWHIGHQUALITYTHUMBNAIL']._serialized_end=109488 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE_PAYMENTLINKPREVIEWMETADATA']._serialized_start=109491 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_LINKPREVIEWRESPONSE_PAYMENTLINKPREVIEWMETADATA']._serialized_end=109619 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_PLACEHOLDERMESSAGERESENDRESPONSE']._serialized_start=109621 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_PLACEHOLDERMESSAGERESENDRESPONSE']._serialized_end=109684 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_SYNCDSNAPSHOTFATALRECOVERYRESPONSE']._serialized_start=109686 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_SYNCDSNAPSHOTFATALRECOVERYRESPONSE']._serialized_end=109772 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_WAFFLENONCEFETCHRESPONSE']._serialized_start=109774 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_WAFFLENONCEFETCHRESPONSE']._serialized_end=109834 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FULLHISTORYSYNCONDEMANDRESPONSECODE']._serialized_start=109837 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_FULLHISTORYSYNCONDEMANDRESPONSECODE']._serialized_end=110132 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_HISTORYSYNCCHUNKRETRYRESPONSECODE']._serialized_start=110135 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_PEERDATAOPERATIONRESULT_HISTORYSYNCCHUNKRETRYRESPONSECODE']._serialized_end=110293 + _globals['_MESSAGE_PININCHATMESSAGE']._serialized_start=110296 + _globals['_MESSAGE_PININCHATMESSAGE']._serialized_end=110493 + _globals['_MESSAGE_PININCHATMESSAGE_TYPE']._serialized_start=110433 + _globals['_MESSAGE_PININCHATMESSAGE_TYPE']._serialized_end=110493 + _globals['_MESSAGE_PLACEHOLDERMESSAGE']._serialized_start=110496 + _globals['_MESSAGE_PLACEHOLDERMESSAGE']._serialized_end=110628 + _globals['_MESSAGE_PLACEHOLDERMESSAGE_PLACEHOLDERTYPE']._serialized_start=110586 + _globals['_MESSAGE_PLACEHOLDERMESSAGE_PLACEHOLDERTYPE']._serialized_end=110628 + _globals['_MESSAGE_POLLADDOPTIONMESSAGE']._serialized_start=110631 + _globals['_MESSAGE_POLLADDOPTIONMESSAGE']._serialized_end=110835 + _globals['_MESSAGE_POLLCREATIONMESSAGE']._serialized_start=110838 + _globals['_MESSAGE_POLLCREATIONMESSAGE']._serialized_end=111323 + _globals['_MESSAGE_POLLCREATIONMESSAGE_OPTION']._serialized_start=111275 + _globals['_MESSAGE_POLLCREATIONMESSAGE_OPTION']._serialized_end=111323 + _globals['_MESSAGE_POLLENCVALUE']._serialized_start=36090 + _globals['_MESSAGE_POLLENCVALUE']._serialized_end=36139 + _globals['_MESSAGE_POLLRESULTSNAPSHOTMESSAGE']._serialized_start=111377 + _globals['_MESSAGE_POLLRESULTSNAPSHOTMESSAGE']._serialized_end=111638 + _globals['_MESSAGE_POLLRESULTSNAPSHOTMESSAGE_POLLVOTE']._serialized_start=111583 + _globals['_MESSAGE_POLLRESULTSNAPSHOTMESSAGE_POLLVOTE']._serialized_end=111638 + _globals['_MESSAGE_POLLUPDATEMESSAGE']._serialized_start=111641 + _globals['_MESSAGE_POLLUPDATEMESSAGE']._serialized_end=111850 + _globals['_MESSAGE_POLLUPDATEMESSAGEMETADATA']._serialized_start=111852 + _globals['_MESSAGE_POLLUPDATEMESSAGEMETADATA']._serialized_end=111927 + _globals['_MESSAGE_POLLVOTEMESSAGE']._serialized_start=36338 + _globals['_MESSAGE_POLLVOTEMESSAGE']._serialized_end=36380 + _globals['_MESSAGE_PRODUCTMESSAGE']._serialized_start=111974 + _globals['_MESSAGE_PRODUCTMESSAGE']._serialized_end=112639 + _globals['_MESSAGE_PRODUCTMESSAGE_CATALOGSNAPSHOT']._serialized_start=112226 + _globals['_MESSAGE_PRODUCTMESSAGE_CATALOGSNAPSHOT']._serialized_end=112333 + _globals['_MESSAGE_PRODUCTMESSAGE_PRODUCTSNAPSHOT']._serialized_start=112336 + _globals['_MESSAGE_PRODUCTMESSAGE_PRODUCTSNAPSHOT']._serialized_end=112639 + _globals['_MESSAGE_PROTOCOLMESSAGE']._serialized_start=112642 + _globals['_MESSAGE_PROTOCOLMESSAGE']._serialized_end=115395 + _globals['_MESSAGE_PROTOCOLMESSAGE_TYPE']._serialized_start=114456 + _globals['_MESSAGE_PROTOCOLMESSAGE_TYPE']._serialized_end=115395 + _globals['_MESSAGE_QUESTIONRESPONSEMESSAGE']._serialized_start=115397 + _globals['_MESSAGE_QUESTIONRESPONSEMESSAGE']._serialized_end=115471 + _globals['_MESSAGE_REACTIONMESSAGE']._serialized_start=36410 + _globals['_MESSAGE_REACTIONMESSAGE']._serialized_end=36524 + _globals['_MESSAGE_REQUESTPAYMENTMESSAGE']._serialized_start=115590 + _globals['_MESSAGE_REQUESTPAYMENTMESSAGE']._serialized_end=115830 + _globals['_MESSAGE_REQUESTPHONENUMBERMESSAGE']._serialized_start=115832 + _globals['_MESSAGE_REQUESTPHONENUMBERMESSAGE']._serialized_end=115903 + _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA']._serialized_start=115906 + _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA']._serialized_end=116267 + _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA_LOCALCHATSTATE']._serialized_start=116169 + _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA_LOCALCHATSTATE']._serialized_end=116211 + _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA_WELCOMETRIGGER']._serialized_start=116213 + _globals['_MESSAGE_REQUESTWELCOMEMESSAGEMETADATA_WELCOMETRIGGER']._serialized_end=116267 + _globals['_MESSAGE_ROOTSECRETDISTRIBUTEMESSAGE']._serialized_start=116269 + _globals['_MESSAGE_ROOTSECRETDISTRIBUTEMESSAGE']._serialized_end=116315 + _globals['_MESSAGE_SCHEDULEDCALLCREATIONMESSAGE']._serialized_start=116318 + _globals['_MESSAGE_SCHEDULEDCALLCREATIONMESSAGE']._serialized_end=116515 + _globals['_MESSAGE_SCHEDULEDCALLCREATIONMESSAGE_CALLTYPE']._serialized_start=116470 + _globals['_MESSAGE_SCHEDULEDCALLCREATIONMESSAGE_CALLTYPE']._serialized_end=116515 + _globals['_MESSAGE_SCHEDULEDCALLEDITMESSAGE']._serialized_start=116518 + _globals['_MESSAGE_SCHEDULEDCALLEDITMESSAGE']._serialized_end=116687 + _globals['_MESSAGE_SCHEDULEDCALLEDITMESSAGE_EDITTYPE']._serialized_start=116652 + _globals['_MESSAGE_SCHEDULEDCALLEDITMESSAGE_EDITTYPE']._serialized_end=116687 + _globals['_MESSAGE_SECRETENCRYPTEDMESSAGE']._serialized_start=116690 + _globals['_MESSAGE_SECRETENCRYPTEDMESSAGE']._serialized_end=117019 + _globals['_MESSAGE_SECRETENCRYPTEDMESSAGE_SECRETENCTYPE']._serialized_start=116899 + _globals['_MESSAGE_SECRETENCRYPTEDMESSAGE_SECRETENCTYPE']._serialized_end=117019 + _globals['_MESSAGE_SENDPAYMENTMESSAGE']._serialized_start=117022 + _globals['_MESSAGE_SENDPAYMENTMESSAGE']._serialized_end=117205 + _globals['_MESSAGE_SENDERKEYDISTRIBUTIONMESSAGE']._serialized_start=117207 + _globals['_MESSAGE_SENDERKEYDISTRIBUTIONMESSAGE']._serialized_end=117299 + _globals['_MESSAGE_SPLITPAYMENTMESSAGE']._serialized_start=117302 + _globals['_MESSAGE_SPLITPAYMENTMESSAGE']._serialized_end=117551 + _globals['_MESSAGE_SPLITPAYMENTPARTICIPANT']._serialized_start=117554 + _globals['_MESSAGE_SPLITPAYMENTPARTICIPANT']._serialized_end=117748 + _globals['_MESSAGE_SPLITPAYMENTPARTICIPANT_SPLITPAYMENTSTATUS']._serialized_start=117705 + _globals['_MESSAGE_SPLITPAYMENTPARTICIPANT_SPLITPAYMENTSTATUS']._serialized_end=117748 + _globals['_MESSAGE_SPLITPAYMENTUPDATEMESSAGE']._serialized_start=117750 + _globals['_MESSAGE_SPLITPAYMENTUPDATEMESSAGE']._serialized_end=117818 + _globals['_MESSAGE_STATUSLINKPREVIEWMETADATA']._serialized_start=117821 + _globals['_MESSAGE_STATUSLINKPREVIEWMETADATA']._serialized_end=117971 + _globals['_MESSAGE_STATUSLINKPREVIEWMETADATA_STYLE']._serialized_start=117916 + _globals['_MESSAGE_STATUSLINKPREVIEWMETADATA_STYLE']._serialized_end=117971 + _globals['_MESSAGE_STATUSNOTIFICATIONMESSAGE']._serialized_start=117974 + _globals['_MESSAGE_STATUSNOTIFICATIONMESSAGE']._serialized_end=118332 + _globals['_MESSAGE_STATUSNOTIFICATIONMESSAGE_STATUSNOTIFICATIONTYPE']._serialized_start=118186 + _globals['_MESSAGE_STATUSNOTIFICATIONMESSAGE_STATUSNOTIFICATIONTYPE']._serialized_end=118332 + _globals['_MESSAGE_STATUSQUESTIONANSWERMESSAGE']._serialized_start=118334 + _globals['_MESSAGE_STATUSQUESTIONANSWERMESSAGE']._serialized_end=118412 + _globals['_MESSAGE_STATUSQUOTEDMESSAGE']._serialized_start=118415 + _globals['_MESSAGE_STATUSQUOTEDMESSAGE']._serialized_end=118642 + _globals['_MESSAGE_STATUSQUOTEDMESSAGE_STATUSQUOTEDMESSAGETYPE']._serialized_start=118596 + _globals['_MESSAGE_STATUSQUOTEDMESSAGE_STATUSQUOTEDMESSAGETYPE']._serialized_end=118642 + _globals['_MESSAGE_STATUSSTICKERINTERACTIONMESSAGE']._serialized_start=118645 + _globals['_MESSAGE_STATUSSTICKERINTERACTIONMESSAGE']._serialized_end=118864 + _globals['_MESSAGE_STATUSSTICKERINTERACTIONMESSAGE_STATUSSTICKERTYPE']._serialized_start=118818 + _globals['_MESSAGE_STATUSSTICKERINTERACTIONMESSAGE_STATUSSTICKERTYPE']._serialized_end=118864 + _globals['_MESSAGE_STICKERMESSAGE']._serialized_start=118867 + _globals['_MESSAGE_STICKERMESSAGE']._serialized_end=119353 + _globals['_MESSAGE_STICKERPACKMESSAGE']._serialized_start=119356 + _globals['_MESSAGE_STICKERPACKMESSAGE']._serialized_end=120218 + _globals['_MESSAGE_STICKERPACKMESSAGE_STICKER']._serialized_start=120001 + _globals['_MESSAGE_STICKERPACKMESSAGE_STICKER']._serialized_end=120145 + _globals['_MESSAGE_STICKERPACKMESSAGE_STICKERPACKORIGIN']._serialized_start=120147 + _globals['_MESSAGE_STICKERPACKMESSAGE_STICKERPACKORIGIN']._serialized_end=120218 + _globals['_MESSAGE_STICKERSYNCRMRMESSAGE']._serialized_start=120220 + _globals['_MESSAGE_STICKERSYNCRMRMESSAGE']._serialized_end=120306 + _globals['_MESSAGE_TEMPLATEBUTTONREPLYMESSAGE']._serialized_start=120309 + _globals['_MESSAGE_TEMPLATEBUTTONREPLYMESSAGE']._serialized_end=120488 + _globals['_MESSAGE_TEMPLATEMESSAGE']._serialized_start=120491 + _globals['_MESSAGE_TEMPLATEMESSAGE']._serialized_end=121885 + _globals['_MESSAGE_TEMPLATEMESSAGE_FOURROWTEMPLATE']._serialized_start=120908 + _globals['_MESSAGE_TEMPLATEMESSAGE_FOURROWTEMPLATE']._serialized_end=121410 + _globals['_MESSAGE_TEMPLATEMESSAGE_HYDRATEDFOURROWTEMPLATE']._serialized_start=121413 + _globals['_MESSAGE_TEMPLATEMESSAGE_HYDRATEDFOURROWTEMPLATE']._serialized_end=121875 + _globals['_MESSAGE_URLMETADATA']._serialized_start=121887 + _globals['_MESSAGE_URLMETADATA']._serialized_end=121924 + _globals['_MESSAGE_VIDEOENDCARD']._serialized_start=121926 + _globals['_MESSAGE_VIDEOENDCARD']._serialized_end=122029 + _globals['_MESSAGE_VIDEOMESSAGE']._serialized_start=122032 + _globals['_MESSAGE_VIDEOMESSAGE']._serialized_end=123064 + _globals['_MESSAGE_VIDEOMESSAGE_ATTRIBUTION']._serialized_start=122955 + _globals['_MESSAGE_VIDEOMESSAGE_ATTRIBUTION']._serialized_end=123011 + _globals['_MESSAGE_VIDEOMESSAGE_VIDEOSOURCETYPE']._serialized_start=123013 + _globals['_MESSAGE_VIDEOMESSAGE_VIDEOSOURCETYPE']._serialized_end=123064 + _globals['_MESSAGE_HISTORYSYNCTYPE']._serialized_start=123067 + _globals['_MESSAGE_HISTORYSYNCTYPE']._serialized_end=123248 + _globals['_MESSAGE_INSIGHTDELIVERYSTATE']._serialized_start=123250 + _globals['_MESSAGE_INSIGHTDELIVERYSTATE']._serialized_end=123339 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTTYPE']._serialized_start=123342 + _globals['_MESSAGE_PEERDATAOPERATIONREQUESTTYPE']._serialized_end=123868 + _globals['_MESSAGE_POLLCONTENTTYPE']._serialized_start=123870 + _globals['_MESSAGE_POLLCONTENTTYPE']._serialized_end=123921 + _globals['_MESSAGE_POLLTYPE']._serialized_start=123923 + _globals['_MESSAGE_POLLTYPE']._serialized_end=123953 + _globals['_MESSAGEADDON']._serialized_start=123956 + _globals['_MESSAGEADDON']._serialized_end=124449 + _globals['_MESSAGEADDON_MESSAGEADDONTYPE']._serialized_start=124348 + _globals['_MESSAGEADDON_MESSAGEADDONTYPE']._serialized_end=124449 + _globals['_MESSAGEADDONCONTEXTINFO']._serialized_start=124452 + _globals['_MESSAGEADDONCONTEXTINFO']._serialized_end=124598 + _globals['_MESSAGEASSOCIATION']._serialized_start=124601 + _globals['_MESSAGEASSOCIATION']._serialized_end=125253 + _globals['_MESSAGEASSOCIATION_ASSOCIATIONTYPE']._serialized_start=124765 + _globals['_MESSAGEASSOCIATION_ASSOCIATIONTYPE']._serialized_end=125253 + _globals['_MESSAGECONTEXTINFO']._serialized_start=125256 + _globals['_MESSAGECONTEXTINFO']._serialized_end=126129 + _globals['_MESSAGECONTEXTINFO_MESSAGEADDONEXPIRYTYPE']._serialized_start=126068 + _globals['_MESSAGECONTEXTINFO_MESSAGEADDONEXPIRYTYPE']._serialized_end=126129 + _globals['_MESSAGEKEY']._serialized_start=126131 + _globals['_MESSAGEKEY']._serialized_end=126211 + _globals['_MESSAGESECRETMESSAGE']._serialized_start=126213 + _globals['_MESSAGESECRETMESSAGE']._serialized_end=126287 + _globals['_MESSAGETEXT']._serialized_start=126289 + _globals['_MESSAGETEXT']._serialized_end=126412 + _globals['_MESSAGINGMAILBOXPUBLICDATA']._serialized_start=126415 + _globals['_MESSAGINGMAILBOXPUBLICDATA']._serialized_end=126558 + _globals['_MINOSCLIENTCONFIG']._serialized_start=126560 + _globals['_MINOSCLIENTCONFIG']._serialized_end=126661 + _globals['_MINOSCOMMAND']._serialized_start=126664 + _globals['_MINOSCOMMAND']._serialized_end=129063 + _globals['_MINOSDECRYPTANDVERIFYMESSAGEINPUT']._serialized_start=129066 + _globals['_MINOSDECRYPTANDVERIFYMESSAGEINPUT']._serialized_end=129340 + _globals['_MINOSDECRYPTANDVERIFYMESSAGERESULT']._serialized_start=129343 + _globals['_MINOSDECRYPTANDVERIFYMESSAGERESULT']._serialized_end=129479 + _globals['_MINOSDECRYPTANDVERIFYMESSAGESUCCESS']._serialized_start=129481 + _globals['_MINOSDECRYPTANDVERIFYMESSAGESUCCESS']._serialized_end=129537 + _globals['_MINOSENCRYPTANDSIGNMESSAGEINPUT']._serialized_start=129540 + _globals['_MINOSENCRYPTANDSIGNMESSAGEINPUT']._serialized_end=129754 + _globals['_MINOSENCRYPTANDSIGNMESSAGERESULT']._serialized_start=129756 + _globals['_MINOSENCRYPTANDSIGNMESSAGERESULT']._serialized_end=129846 + _globals['_MINOSMESSAGEMETADATA']._serialized_start=129848 + _globals['_MINOSMESSAGEMETADATA']._serialized_end=129941 + _globals['_MINOSOPENEPOCHINPUT']._serialized_start=129944 + _globals['_MINOSOPENEPOCHINPUT']._serialized_end=130114 + _globals['_MINOSOPENEPOCHRESULT']._serialized_start=130116 + _globals['_MINOSOPENEPOCHRESULT']._serialized_end=130192 + _globals['_MINOSOPENINITIALEPOCHINPUT']._serialized_start=130194 + _globals['_MINOSOPENINITIALEPOCHINPUT']._serialized_end=130284 + _globals['_MINOSOPENINITIALEPOCHRESULT']._serialized_start=130286 + _globals['_MINOSOPENINITIALEPOCHRESULT']._serialized_end=130369 + _globals['_MINOSSIGNEDEPOCH']._serialized_start=130372 + _globals['_MINOSSIGNEDEPOCH']._serialized_end=130508 + _globals['_MINOSTHREADIDFROMACTTHREADIDINPUT']._serialized_start=130510 + _globals['_MINOSTHREADIDFROMACTTHREADIDINPUT']._serialized_end=130566 + _globals['_MINOSTHREADIDFROMACTTHREADIDRESULT']._serialized_start=130568 + _globals['_MINOSTHREADIDFROMACTTHREADIDRESULT']._serialized_end=130622 + _globals['_MINOSTHREADIDFROMONETOONETHREADINPUT']._serialized_start=130624 + _globals['_MINOSTHREADIDFROMONETOONETHREADINPUT']._serialized_end=130701 + _globals['_MINOSTHREADIDFROMONETOONETHREADRESULT']._serialized_start=130703 + _globals['_MINOSTHREADIDFROMONETOONETHREADRESULT']._serialized_end=130760 + _globals['_MINOSVALIDATEEPOCHINPUT']._serialized_start=130763 + _globals['_MINOSVALIDATEEPOCHINPUT']._serialized_end=130947 + _globals['_MINOSVALIDATEEPOCHRESULT']._serialized_start=130949 + _globals['_MINOSVALIDATEEPOCHRESULT']._serialized_end=131026 + _globals['_MINOSVERIFYSINGLEEPOCHINPUT']._serialized_start=131028 + _globals['_MINOSVERIFYSINGLEEPOCHINPUT']._serialized_end=131128 + _globals['_MINOSVERIFYSINGLEEPOCHRESULT']._serialized_start=131130 + _globals['_MINOSVERIFYSINGLEEPOCHRESULT']._serialized_end=131175 + _globals['_MMKDISTRIBUTION']._serialized_start=131178 + _globals['_MMKDISTRIBUTION']._serialized_end=131337 + _globals['_MMKDISTRIBUTIONTODETACHEDDEVICE']._serialized_start=131339 + _globals['_MMKDISTRIBUTIONTODETACHEDDEVICE']._serialized_end=131419 + _globals['_MMKDISTRIBUTIONTOMAILBOX']._serialized_start=131421 + _globals['_MMKDISTRIBUTIONTOMAILBOX']._serialized_end=131499 + _globals['_MMKFROMDETACHEDDEVICE']._serialized_start=131502 + _globals['_MMKFROMDETACHEDDEVICE']._serialized_end=131698 + _globals['_MONEY']._serialized_start=131700 + _globals['_MONEY']._serialized_end=131760 + _globals['_MSGOPAQUEDATA']._serialized_start=131763 + _globals['_MSGOPAQUEDATA']._serialized_end=133850 + _globals['_MSGOPAQUEDATA_EVENTLOCATION']._serialized_start=133411 + _globals['_MSGOPAQUEDATA_EVENTLOCATION']._serialized_end=133544 + _globals['_MSGOPAQUEDATA_POLLOPTION']._serialized_start=133546 + _globals['_MSGOPAQUEDATA_POLLOPTION']._serialized_end=133586 + _globals['_MSGOPAQUEDATA_POLLVOTESNAPSHOT']._serialized_start=133588 + _globals['_MSGOPAQUEDATA_POLLVOTESNAPSHOT']._serialized_end=133683 + _globals['_MSGOPAQUEDATA_POLLVOTESSNAPSHOT']._serialized_start=133685 + _globals['_MSGOPAQUEDATA_POLLVOTESSNAPSHOT']._serialized_end=133765 + _globals['_MSGOPAQUEDATA_POLLCONTENTTYPE']._serialized_start=123870 + _globals['_MSGOPAQUEDATA_POLLCONTENTTYPE']._serialized_end=123921 + _globals['_MSGOPAQUEDATA_POLLTYPE']._serialized_start=123923 + _globals['_MSGOPAQUEDATA_POLLTYPE']._serialized_end=123953 + _globals['_MSGROWOPAQUEDATA']._serialized_start=133852 + _globals['_MSGROWOPAQUEDATA']._serialized_end=133959 + _globals['_NOISECERTIFICATE']._serialized_start=133962 + _globals['_NOISECERTIFICATE']._serialized_end=134106 + _globals['_NOISECERTIFICATE_DETAILS']._serialized_start=134018 + _globals['_NOISECERTIFICATE_DETAILS']._serialized_end=134106 + _globals['_NONE2EEATTESTATION']._serialized_start=134109 + _globals['_NONE2EEATTESTATION']._serialized_end=134248 + _globals['_NONE2EEATTESTATION_ACCOUNTTYPE']._serialized_start=134194 + _globals['_NONE2EEATTESTATION_ACCOUNTTYPE']._serialized_end=134248 + _globals['_NOTIFICATIONMESSAGEINFO']._serialized_start=134251 + _globals['_NOTIFICATIONMESSAGEINFO']._serialized_end=134394 + _globals['_NOTIFICATIONSETTINGS']._serialized_start=134397 + _globals['_NOTIFICATIONSETTINGS']._serialized_end=134566 + _globals['_ORFTHREADIDINPUT']._serialized_start=134568 + _globals['_ORFTHREADIDINPUT']._serialized_end=134628 + _globals['_ORFTHREADIDOUTPUT']._serialized_start=134630 + _globals['_ORFTHREADIDOUTPUT']._serialized_end=134685 + _globals['_PAIRINGREQUEST']._serialized_start=134687 + _globals['_PAIRINGREQUEST']._serialized_end=134780 + _globals['_PASTPARTICIPANT']._serialized_start=134783 + _globals['_PASTPARTICIPANT']._serialized_end=134932 + _globals['_PASTPARTICIPANT_LEAVEREASON']._serialized_start=134896 + _globals['_PASTPARTICIPANT_LEAVEREASON']._serialized_end=134932 + _globals['_PASTPARTICIPANTS']._serialized_start=134934 + _globals['_PASTPARTICIPANTS']._serialized_end=135023 + _globals['_PATCHDEBUGDATA']._serialized_start=135026 + _globals['_PATCHDEBUGDATA']._serialized_end=135496 + _globals['_PATCHDEBUGDATA_PLATFORM']._serialized_start=135358 + _globals['_PATCHDEBUGDATA_PLATFORM']._serialized_end=135496 + _globals['_PAYMENTBACKGROUND']._serialized_start=135499 + _globals['_PAYMENTBACKGROUND']._serialized_end=135924 + _globals['_PAYMENTBACKGROUND_MEDIADATA']._serialized_start=135771 + _globals['_PAYMENTBACKGROUND_MEDIADATA']._serialized_end=135890 + _globals['_PAYMENTBACKGROUND_TYPE']._serialized_start=135892 + _globals['_PAYMENTBACKGROUND_TYPE']._serialized_end=135924 + _globals['_PAYMENTINFO']._serialized_start=135927 + _globals['_PAYMENTINFO']._serialized_end=137310 + _globals['_PAYMENTINFO_CURRENCY']._serialized_start=136394 + _globals['_PAYMENTINFO_CURRENCY']._serialized_end=136435 + _globals['_PAYMENTINFO_STATUS']._serialized_start=136438 + _globals['_PAYMENTINFO_STATUS']._serialized_end=136642 + _globals['_PAYMENTINFO_TXNSTATUS']._serialized_start=136645 + _globals['_PAYMENTINFO_TXNSTATUS']._serialized_end=137310 + _globals['_PHONENUMBERTOLIDMAPPING']._serialized_start=137312 + _globals['_PHONENUMBERTOLIDMAPPING']._serialized_end=137368 + _globals['_PHOTOCHANGE']._serialized_start=137370 + _globals['_PHOTOCHANGE']._serialized_end=137439 + _globals['_PININCHAT']._serialized_start=137442 + _globals['_PININCHAT']._serialized_end=137712 + _globals['_PININCHAT_TYPE']._serialized_start=110433 + _globals['_PININCHAT_TYPE']._serialized_end=110493 + _globals['_POINT']._serialized_start=137714 + _globals['_POINT']._serialized_end=137785 + _globals['_POLLADDITIONALMETADATA']._serialized_start=137788 + _globals['_POLLADDITIONALMETADATA']._serialized_end=137997 + _globals['_POLLADDITIONALMETADATA_POLLNAMEHASHHISTORYENTRY']._serialized_start=137927 + _globals['_POLLADDITIONALMETADATA_POLLNAMEHASHHISTORYENTRY']._serialized_end=137997 + _globals['_POLLENCVALUE']._serialized_start=36090 + _globals['_POLLENCVALUE']._serialized_end=36139 + _globals['_POLLUPDATE']._serialized_start=138051 + _globals['_POLLUPDATE']._serialized_end=138297 + _globals['_PREKEYRECORDSTRUCTURE']._serialized_start=138299 + _globals['_PREKEYRECORDSTRUCTURE']._serialized_end=138373 + _globals['_PREKEYSIGNALMESSAGE']._serialized_start=138376 + _globals['_PREKEYSIGNALMESSAGE']._serialized_end=138566 + _globals['_PREMIUMMESSAGEINFO']._serialized_start=138568 + _globals['_PREMIUMMESSAGEINFO']._serialized_end=138614 + _globals['_PRIMARYEPHEMERALIDENTITY']._serialized_start=138616 + _globals['_PRIMARYEPHEMERALIDENTITY']._serialized_end=138676 + _globals['_PROCESSEDVIDEO']._serialized_start=138679 + _globals['_PROCESSEDVIDEO']._serialized_end=138940 + _globals['_PROCESSEDVIDEO_VIDEOQUALITY']._serialized_start=138883 + _globals['_PROCESSEDVIDEO_VIDEOQUALITY']._serialized_end=138940 + _globals['_PROLOGUEPAYLOAD']._serialized_start=138942 + _globals['_PROLOGUEPAYLOAD']._serialized_end=139046 + _globals['_PUSHNAME']._serialized_start=139048 + _globals['_PUSHNAME']._serialized_end=139088 + _globals['_QP']._serialized_start=139091 + _globals['_QP']._serialized_end=139663 + _globals['_QP_FILTER']._serialized_start=139098 + _globals['_QP_FILTER']._serialized_end=139305 + _globals['_QP_FILTERCLAUSE']._serialized_start=139308 + _globals['_QP_FILTERCLAUSE']._serialized_end=139449 + _globals['_QP_FILTERPARAMETERS']._serialized_start=139451 + _globals['_QP_FILTERPARAMETERS']._serialized_end=139497 + _globals['_QP_CLAUSETYPE']._serialized_start=139499 + _globals['_QP_CLAUSETYPE']._serialized_end=139537 + _globals['_QP_FILTERCLIENTNOTSUPPORTEDCONFIG']._serialized_start=139539 + _globals['_QP_FILTERCLIENTNOTSUPPORTEDCONFIG']._serialized_end=139613 + _globals['_QP_FILTERRESULT']._serialized_start=139615 + _globals['_QP_FILTERRESULT']._serialized_end=139663 + _globals['_QUARANTINEDMESSAGE']._serialized_start=139665 + _globals['_QUARANTINEDMESSAGE']._serialized_end=139730 + _globals['_REACTION']._serialized_start=139732 + _globals['_REACTION']._serialized_end=139855 + _globals['_RECENTEMOJIWEIGHT']._serialized_start=139857 + _globals['_RECENTEMOJIWEIGHT']._serialized_end=139907 + _globals['_RECORDSTRUCTURE']._serialized_start=139909 + _globals['_RECORDSTRUCTURE']._serialized_end=140032 + _globals['_REPORTABLE']._serialized_start=140034 + _globals['_REPORTABLE']._serialized_end=140137 + _globals['_REPORTINGTOKENINFO']._serialized_start=140139 + _globals['_REPORTINGTOKENINFO']._serialized_end=140212 + _globals['_ROTATEEPOCHINPUT']._serialized_start=140215 + _globals['_ROTATEEPOCHINPUT']._serialized_end=140399 + _globals['_ROTATEEPOCHMEMBEREDGE']._serialized_start=140401 + _globals['_ROTATEEPOCHMEMBEREDGE']._serialized_end=140494 + _globals['_ROTATEEPOCHMEMBERINPUT']._serialized_start=140496 + _globals['_ROTATEEPOCHMEMBERINPUT']._serialized_end=140594 + _globals['_ROTATEEPOCHOUTPUT']._serialized_start=140597 + _globals['_ROTATEEPOCHOUTPUT']._serialized_end=140856 + _globals['_ROUTINGINFO']._serialized_start=140859 + _globals['_ROUTINGINFO']._serialized_end=140996 + _globals['_SCHEDULEDMESSAGEMETADATA']._serialized_start=140998 + _globals['_SCHEDULEDMESSAGEMETADATA']._serialized_end=141087 + _globals['_SENDERKEYDISTRIBUTIONMESSAGE']._serialized_start=141089 + _globals['_SENDERKEYDISTRIBUTIONMESSAGE']._serialized_end=141188 + _globals['_SENDERKEYMESSAGE']._serialized_start=141190 + _globals['_SENDERKEYMESSAGE']._serialized_end=141259 + _globals['_SENDERKEYRECORDSTRUCTURE']._serialized_start=141261 + _globals['_SENDERKEYRECORDSTRUCTURE']._serialized_end=141347 + _globals['_SENDERKEYSTATESTRUCTURE']._serialized_start=141350 + _globals['_SENDERKEYSTATESTRUCTURE']._serialized_end=141784 + _globals['_SENDERKEYSTATESTRUCTURE_SENDERCHAINKEY']._serialized_start=141629 + _globals['_SENDERKEYSTATESTRUCTURE_SENDERCHAINKEY']._serialized_end=141678 + _globals['_SENDERKEYSTATESTRUCTURE_SENDERMESSAGEKEY']._serialized_start=141680 + _globals['_SENDERKEYSTATESTRUCTURE_SENDERMESSAGEKEY']._serialized_end=141731 + _globals['_SENDERKEYSTATESTRUCTURE_SENDERSIGNINGKEY']._serialized_start=141733 + _globals['_SENDERKEYSTATESTRUCTURE_SENDERSIGNINGKEY']._serialized_end=141784 + _globals['_SERVERERRORRECEIPT']._serialized_start=141786 + _globals['_SERVERERRORRECEIPT']._serialized_end=141824 + _globals['_SESSIONSTRUCTURE']._serialized_start=141827 + _globals['_SESSIONSTRUCTURE']._serialized_end=142970 + _globals['_SESSIONSTRUCTURE_CHAIN']._serialized_start=142329 + _globals['_SESSIONSTRUCTURE_CHAIN']._serialized_end=142638 + _globals['_SESSIONSTRUCTURE_CHAIN_CHAINKEY']._serialized_start=142524 + _globals['_SESSIONSTRUCTURE_CHAIN_CHAINKEY']._serialized_end=142562 + _globals['_SESSIONSTRUCTURE_CHAIN_MESSAGEKEY']._serialized_start=142564 + _globals['_SESSIONSTRUCTURE_CHAIN_MESSAGEKEY']._serialized_end=142638 + _globals['_SESSIONSTRUCTURE_PENDINGKEYEXCHANGE']._serialized_start=142641 + _globals['_SESSIONSTRUCTURE_PENDINGKEYEXCHANGE']._serialized_end=142846 + _globals['_SESSIONSTRUCTURE_PENDINGPREKEY']._serialized_start=142848 + _globals['_SESSIONSTRUCTURE_PENDINGPREKEY']._serialized_end=142970 + _globals['_SESSIONTRANSPARENCYMETADATA']._serialized_start=142973 + _globals['_SESSIONTRANSPARENCYMETADATA']._serialized_end=143109 + _globals['_SIGNALMESSAGE']._serialized_start=143111 + _globals['_SIGNALMESSAGE']._serialized_end=143208 + _globals['_SIGNEDMMKDISTRIBUTIONFROMMAILBOX']._serialized_start=143211 + _globals['_SIGNEDMMKDISTRIBUTIONFROMMAILBOX']._serialized_end=143375 + _globals['_SIGNEDPREKEYRECORDSTRUCTURE']._serialized_start=143377 + _globals['_SIGNEDPREKEYRECORDSTRUCTURE']._serialized_end=143495 + _globals['_STATUSATTRIBUTION']._serialized_start=143498 + _globals['_STATUSATTRIBUTION']._serialized_end=145450 + _globals['_STATUSATTRIBUTION_AICREATEDATTRIBUTION']._serialized_start=143989 + _globals['_STATUSATTRIBUTION_AICREATEDATTRIBUTION']._serialized_end=144127 + _globals['_STATUSATTRIBUTION_AICREATEDATTRIBUTION_SOURCE']._serialized_start=144086 + _globals['_STATUSATTRIBUTION_AICREATEDATTRIBUTION_SOURCE']._serialized_end=144127 + _globals['_STATUSATTRIBUTION_EXTERNALSHARE']._serialized_start=144130 + _globals['_STATUSATTRIBUTION_EXTERNALSHARE']._serialized_end=144489 + _globals['_STATUSATTRIBUTION_EXTERNALSHARE_SOURCE']._serialized_start=144278 + _globals['_STATUSATTRIBUTION_EXTERNALSHARE_SOURCE']._serialized_end=144489 + _globals['_STATUSATTRIBUTION_GROUPSTATUS']._serialized_start=144491 + _globals['_STATUSATTRIBUTION_GROUPSTATUS']._serialized_end=144523 + _globals['_STATUSATTRIBUTION_MUSIC']._serialized_start=144525 + _globals['_STATUSATTRIBUTION_MUSIC']._serialized_end=144646 + _globals['_STATUSATTRIBUTION_RLATTRIBUTION']._serialized_start=144649 + _globals['_STATUSATTRIBUTION_RLATTRIBUTION']._serialized_end=144827 + _globals['_STATUSATTRIBUTION_RLATTRIBUTION_SOURCE']._serialized_start=144732 + _globals['_STATUSATTRIBUTION_RLATTRIBUTION_SOURCE']._serialized_end=144827 + _globals['_STATUSATTRIBUTION_STATUSRESHARE']._serialized_start=144830 + _globals['_STATUSATTRIBUTION_STATUSRESHARE']._serialized_end=145186 + _globals['_STATUSATTRIBUTION_STATUSRESHARE_METADATA']._serialized_start=144983 + _globals['_STATUSATTRIBUTION_STATUSRESHARE_METADATA']._serialized_end=145086 + _globals['_STATUSATTRIBUTION_STATUSRESHARE_SOURCE']._serialized_start=145088 + _globals['_STATUSATTRIBUTION_STATUSRESHARE_SOURCE']._serialized_end=145186 + _globals['_STATUSATTRIBUTION_TYPE']._serialized_start=145189 + _globals['_STATUSATTRIBUTION_TYPE']._serialized_end=145431 + _globals['_STATUSMENTIONMESSAGE']._serialized_start=145452 + _globals['_STATUSMENTIONMESSAGE']._serialized_end=145515 + _globals['_STATUSPSA']._serialized_start=145517 + _globals['_STATUSPSA']._serialized_end=145585 + _globals['_STICKERMETADATA']._serialized_start=145588 + _globals['_STICKERMETADATA']._serialized_end=145873 + _globals['_SUBPROTOCOL']._serialized_start=145875 + _globals['_SUBPROTOCOL']._serialized_end=145922 + _globals['_SYNCACTIONDATA']._serialized_start=145924 + _globals['_SYNCACTIONDATA']._serialized_end=146031 + _globals['_SYNCACTIONVALUE']._serialized_start=146035 + _globals['_SYNCACTIONVALUE']._serialized_end=165425 + _globals['_SYNCACTIONVALUE_AGENTACTION']._serialized_start=152670 + _globals['_SYNCACTIONVALUE_AGENTACTION']._serialized_end=152734 + _globals['_SYNCACTIONVALUE_AITHREADRENAMEACTION']._serialized_start=152736 + _globals['_SYNCACTIONVALUE_AITHREADRENAMEACTION']._serialized_end=152776 + _globals['_SYNCACTIONVALUE_ANDROIDUNSUPPORTEDACTIONS']._serialized_start=152778 + _globals['_SYNCACTIONVALUE_ANDROIDUNSUPPORTEDACTIONS']._serialized_end=152822 + _globals['_SYNCACTIONVALUE_ARCHIVECHATACTION']._serialized_start=152824 + _globals['_SYNCACTIONVALUE_ARCHIVECHATACTION']._serialized_end=152933 + _globals['_SYNCACTIONVALUE_AUTOORGANIZEBUSINESSCHATSETTING']._serialized_start=152935 + _globals['_SYNCACTIONVALUE_AUTOORGANIZEBUSINESSCHATSETTING']._serialized_end=152990 + _globals['_SYNCACTIONVALUE_AVATARUPDATEDACTION']._serialized_start=152993 + _globals['_SYNCACTIONVALUE_AVATARUPDATEDACTION']._serialized_end=153225 + _globals['_SYNCACTIONVALUE_AVATARUPDATEDACTION_AVATAREVENTTYPE']._serialized_start=153169 + _globals['_SYNCACTIONVALUE_AVATARUPDATEDACTION_AVATAREVENTTYPE']._serialized_end=153225 + _globals['_SYNCACTIONVALUE_BIZAISETTINGSNUDGEACTION']._serialized_start=153228 + _globals['_SYNCACTIONVALUE_BIZAISETTINGSNUDGEACTION']._serialized_end=153544 + _globals['_SYNCACTIONVALUE_BIZAISETTINGSNUDGEACTION_BIZAISETTINGSCATEGORY']._serialized_start=153387 + _globals['_SYNCACTIONVALUE_BIZAISETTINGSNUDGEACTION_BIZAISETTINGSCATEGORY']._serialized_end=153544 + _globals['_SYNCACTIONVALUE_BOTWELCOMEREQUESTACTION']._serialized_start=153546 + _globals['_SYNCACTIONVALUE_BOTWELCOMEREQUESTACTION']._serialized_end=153587 + _globals['_SYNCACTIONVALUE_BROADCASTLISTPARTICIPANT']._serialized_start=153589 + _globals['_SYNCACTIONVALUE_BROADCASTLISTPARTICIPANT']._serialized_end=153646 + _globals['_SYNCACTIONVALUE_BUBBLELOCKMESSAGEACTION']._serialized_start=153648 + _globals['_SYNCACTIONVALUE_BUBBLELOCKMESSAGEACTION']._serialized_end=153689 + _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTASSOCIATIONACTION']._serialized_start=153691 + _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTASSOCIATIONACTION']._serialized_end=153744 + _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTCAMPAIGNACTION']._serialized_start=153747 + _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTCAMPAIGNACTION']._serialized_end=154014 + _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTINSIGHTSACTION']._serialized_start=154017 + _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTINSIGHTSACTION']._serialized_end=154164 + _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTLISTACTION']._serialized_start=154167 + _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTLISTACTION']._serialized_end=154379 + _globals['_SYNCACTIONVALUE_CALLLOGACTION']._serialized_start=154381 + _globals['_SYNCACTIONVALUE_CALLLOGACTION']._serialized_end=154444 + _globals['_SYNCACTIONVALUE_CHATASSIGNMENTACTION']._serialized_start=154446 + _globals['_SYNCACTIONVALUE_CHATASSIGNMENTACTION']._serialized_end=154491 + _globals['_SYNCACTIONVALUE_CHATASSIGNMENTOPENEDSTATUSACTION']._serialized_start=154493 + _globals['_SYNCACTIONVALUE_CHATASSIGNMENTOPENEDSTATUSACTION']._serialized_end=154547 + _globals['_SYNCACTIONVALUE_CLEARCHATACTION']._serialized_start=154549 + _globals['_SYNCACTIONVALUE_CLEARCHATACTION']._serialized_end=154638 + _globals['_SYNCACTIONVALUE_COEXV2VERSIONACTION']._serialized_start=154640 + _globals['_SYNCACTIONVALUE_COEXV2VERSIONACTION']._serialized_end=154678 + _globals['_SYNCACTIONVALUE_CONTACTACTION']._serialized_start=154681 + _globals['_SYNCACTIONVALUE_CONTACTACTION']._serialized_end=154816 + _globals['_SYNCACTIONVALUE_CTWAMESSAGERECEIVEDACTION']._serialized_start=154818 + _globals['_SYNCACTIONVALUE_CTWAMESSAGERECEIVEDACTION']._serialized_end=154876 + _globals['_SYNCACTIONVALUE_CTWAPERCUSTOMERDATASHARINGACTION']._serialized_start=154878 + _globals['_SYNCACTIONVALUE_CTWAPERCUSTOMERDATASHARINGACTION']._serialized_end=154957 + _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHOD']._serialized_start=154960 + _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHOD']._serialized_end=155107 + _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHODMETADATA']._serialized_start=155109 + _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHODMETADATA']._serialized_end=155166 + _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHODSACTION']._serialized_start=155168 + _globals['_SYNCACTIONVALUE_CUSTOMPAYMENTMETHODSACTION']._serialized_end=155273 + _globals['_SYNCACTIONVALUE_CUSTOMERDATAACTION']._serialized_start=155276 + _globals['_SYNCACTIONVALUE_CUSTOMERDATAACTION']._serialized_end=155513 + _globals['_SYNCACTIONVALUE_DELETECHATACTION']._serialized_start=155515 + _globals['_SYNCACTIONVALUE_DELETECHATACTION']._serialized_end=155605 + _globals['_SYNCACTIONVALUE_DELETEINDIVIDUALCALLLOGACTION']._serialized_start=155607 + _globals['_SYNCACTIONVALUE_DELETEINDIVIDUALCALLLOGACTION']._serialized_end=155675 + _globals['_SYNCACTIONVALUE_DELETEMESSAGEFORMEACTION']._serialized_start=155677 + _globals['_SYNCACTIONVALUE_DELETEMESSAGEFORMEACTION']._serialized_end=155750 + _globals['_SYNCACTIONVALUE_DETECTEDOUTCOMESSTATUSACTION']._serialized_start=155752 + _globals['_SYNCACTIONVALUE_DETECTEDOUTCOMESSTATUSACTION']._serialized_end=155801 + _globals['_SYNCACTIONVALUE_EXTERNALWEBBETAACTION']._serialized_start=155803 + _globals['_SYNCACTIONVALUE_EXTERNALWEBBETAACTION']._serialized_end=155843 + _globals['_SYNCACTIONVALUE_FAVORITESACTION']._serialized_start=155845 + _globals['_SYNCACTIONVALUE_FAVORITESACTION']._serialized_end=155957 + _globals['_SYNCACTIONVALUE_FAVORITESACTION_FAVORITE']._serialized_start=155935 + _globals['_SYNCACTIONVALUE_FAVORITESACTION_FAVORITE']._serialized_end=155957 + _globals['_SYNCACTIONVALUE_INTERACTIVEMESSAGEACTION']._serialized_start=155960 + _globals['_SYNCACTIONVALUE_INTERACTIVEMESSAGEACTION']._serialized_end=156145 + _globals['_SYNCACTIONVALUE_INTERACTIVEMESSAGEACTION_INTERACTIVEMESSAGEACTIONMODE']._serialized_start=156098 + _globals['_SYNCACTIONVALUE_INTERACTIVEMESSAGEACTION_INTERACTIVEMESSAGEACTIONMODE']._serialized_end=156145 + _globals['_SYNCACTIONVALUE_KEYEXPIRATION']._serialized_start=156147 + _globals['_SYNCACTIONVALUE_KEYEXPIRATION']._serialized_end=156187 + _globals['_SYNCACTIONVALUE_LABELASSOCIATIONACTION']._serialized_start=156189 + _globals['_SYNCACTIONVALUE_LABELASSOCIATIONACTION']._serialized_end=156253 + _globals['_SYNCACTIONVALUE_LABELEDITACTION']._serialized_start=156256 + _globals['_SYNCACTIONVALUE_LABELEDITACTION']._serialized_end=156769 + _globals['_SYNCACTIONVALUE_LABELEDITACTION_LISTTYPE']._serialized_start=156492 + _globals['_SYNCACTIONVALUE_LABELEDITACTION_LISTTYPE']._serialized_end=156769 + _globals['_SYNCACTIONVALUE_LABELREORDERINGACTION']._serialized_start=156771 + _globals['_SYNCACTIONVALUE_LABELREORDERINGACTION']._serialized_end=156818 + _globals['_SYNCACTIONVALUE_LABELSUBLISTACTION']._serialized_start=156820 + _globals['_SYNCACTIONVALUE_LABELSUBLISTACTION']._serialized_end=156859 + _globals['_SYNCACTIONVALUE_LIDCONTACTACTION']._serialized_start=156861 + _globals['_SYNCACTIONVALUE_LIDCONTACTACTION']._serialized_end=156934 + _globals['_SYNCACTIONVALUE_LOCALESETTING']._serialized_start=156936 + _globals['_SYNCACTIONVALUE_LOCALESETTING']._serialized_end=156967 + _globals['_SYNCACTIONVALUE_LOCKCHATACTION']._serialized_start=156969 + _globals['_SYNCACTIONVALUE_LOCKCHATACTION']._serialized_end=157001 + _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION']._serialized_start=157004 + _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION']._serialized_end=157369 + _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION_MAIBAAIFEATURESTATUS']._serialized_start=157232 + _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION_MAIBAAIFEATURESTATUS']._serialized_end=157307 + _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION_MAIBAAIREPLYMODE']._serialized_start=157309 + _globals['_SYNCACTIONVALUE_MAIBAAIFEATURESCONTROLACTION_MAIBAAIREPLYMODE']._serialized_end=157369 + _globals['_SYNCACTIONVALUE_MARKCHATASREADACTION']._serialized_start=157371 + _globals['_SYNCACTIONVALUE_MARKCHATASREADACTION']._serialized_end=157479 + _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEACTION']._serialized_start=157482 + _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEACTION']._serialized_end=157757 + _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEACTION_MARKETINGMESSAGEPROTOTYPETYPE']._serialized_start=157708 + _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEACTION_MARKETINGMESSAGEPROTOTYPETYPE']._serialized_end=157757 + _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEBROADCASTACTION']._serialized_start=157759 + _globals['_SYNCACTIONVALUE_MARKETINGMESSAGEBROADCASTACTION']._serialized_end=157814 + _globals['_SYNCACTIONVALUE_MERCHANTPAYMENTPARTNERACTION']._serialized_start=157817 + _globals['_SYNCACTIONVALUE_MERCHANTPAYMENTPARTNERACTION']._serialized_end=158022 + _globals['_SYNCACTIONVALUE_MERCHANTPAYMENTPARTNERACTION_STATUS']._serialized_start=157988 + _globals['_SYNCACTIONVALUE_MERCHANTPAYMENTPARTNERACTION_STATUS']._serialized_end=158022 + _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION']._serialized_start=158025 + _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION']._serialized_end=158212 + _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION_MUSICUSERIDMAPENTRY']._serialized_start=158159 + _globals['_SYNCACTIONVALUE_MUSICUSERIDACTION_MUSICUSERIDMAPENTRY']._serialized_end=158212 + _globals['_SYNCACTIONVALUE_MUTEACTION']._serialized_start=158214 + _globals['_SYNCACTIONVALUE_MUTEACTION']._serialized_end=158327 + _globals['_SYNCACTIONVALUE_NCTSALTSYNCACTION']._serialized_start=158329 + _globals['_SYNCACTIONVALUE_NCTSALTSYNCACTION']._serialized_end=158362 + _globals['_SYNCACTIONVALUE_NEWSLETTERSAVEDINTERESTSACTION']._serialized_start=158364 + _globals['_SYNCACTIONVALUE_NEWSLETTERSAVEDINTERESTSACTION']._serialized_end=158430 + _globals['_SYNCACTIONVALUE_NOTEEDITACTION']._serialized_start=158433 + _globals['_SYNCACTIONVALUE_NOTEEDITACTION']._serialized_end=158642 + _globals['_SYNCACTIONVALUE_NOTEEDITACTION_NOTETYPE']._serialized_start=158598 + _globals['_SYNCACTIONVALUE_NOTEEDITACTION_NOTETYPE']._serialized_end=158642 + _globals['_SYNCACTIONVALUE_NOTIFICATIONACTIVITYSETTINGACTION']._serialized_start=158645 + _globals['_SYNCACTIONVALUE_NOTIFICATIONACTIVITYSETTINGACTION']._serialized_end=158921 + _globals['_SYNCACTIONVALUE_NOTIFICATIONACTIVITYSETTINGACTION_NOTIFICATIONACTIVITYSETTING']._serialized_start=158808 + _globals['_SYNCACTIONVALUE_NOTIFICATIONACTIVITYSETTINGACTION_NOTIFICATIONACTIVITYSETTING']._serialized_end=158921 + _globals['_SYNCACTIONVALUE_NUXACTION']._serialized_start=158923 + _globals['_SYNCACTIONVALUE_NUXACTION']._serialized_end=158956 + _globals['_SYNCACTIONVALUE_OUTCONTACTACTION']._serialized_start=158958 + _globals['_SYNCACTIONVALUE_OUTCONTACTACTION']._serialized_end=159013 + _globals['_SYNCACTIONVALUE_PAYMENTINFOACTION']._serialized_start=159015 + _globals['_SYNCACTIONVALUE_PAYMENTINFOACTION']._serialized_end=159047 + _globals['_SYNCACTIONVALUE_PAYMENTTOSACTION']._serialized_start=159050 + _globals['_SYNCACTIONVALUE_PAYMENTTOSACTION']._serialized_end=159211 + _globals['_SYNCACTIONVALUE_PAYMENTTOSACTION_PAYMENTNOTICE']._serialized_start=159169 + _globals['_SYNCACTIONVALUE_PAYMENTTOSACTION_PAYMENTNOTICE']._serialized_end=159211 + _globals['_SYNCACTIONVALUE_PINACTION']._serialized_start=159213 + _globals['_SYNCACTIONVALUE_PINACTION']._serialized_end=159240 + _globals['_SYNCACTIONVALUE_PNFORLIDCHATACTION']._serialized_start=159242 + _globals['_SYNCACTIONVALUE_PNFORLIDCHATACTION']._serialized_end=159277 + _globals['_SYNCACTIONVALUE_PRIMARYFEATURE']._serialized_start=159279 + _globals['_SYNCACTIONVALUE_PRIMARYFEATURE']._serialized_end=159310 + _globals['_SYNCACTIONVALUE_PRIMARYVERSIONACTION']._serialized_start=159312 + _globals['_SYNCACTIONVALUE_PRIMARYVERSIONACTION']._serialized_end=159351 + _globals['_SYNCACTIONVALUE_PRIVACYSETTINGCHANNELSPERSONALISEDRECOMMENDATIONACTION']._serialized_start=159353 + _globals['_SYNCACTIONVALUE_PRIVACYSETTINGCHANNELSPERSONALISEDRECOMMENDATIONACTION']._serialized_end=159433 + _globals['_SYNCACTIONVALUE_PRIVACYSETTINGDISABLELINKPREVIEWSACTION']._serialized_start=159435 + _globals['_SYNCACTIONVALUE_PRIVACYSETTINGDISABLELINKPREVIEWSACTION']._serialized_end=159504 + _globals['_SYNCACTIONVALUE_PRIVACYSETTINGRELAYALLCALLS']._serialized_start=159506 + _globals['_SYNCACTIONVALUE_PRIVACYSETTINGRELAYALLCALLS']._serialized_end=159554 + _globals['_SYNCACTIONVALUE_PRIVATEPROCESSINGSETTINGACTION']._serialized_start=159557 + _globals['_SYNCACTIONVALUE_PRIVATEPROCESSINGSETTINGACTION']._serialized_end=159773 + _globals['_SYNCACTIONVALUE_PRIVATEPROCESSINGSETTINGACTION_PRIVATEPROCESSINGSTATUS']._serialized_start=159706 + _globals['_SYNCACTIONVALUE_PRIVATEPROCESSINGSETTINGACTION_PRIVATEPROCESSINGSTATUS']._serialized_end=159773 + _globals['_SYNCACTIONVALUE_PUSHNAMESETTING']._serialized_start=159775 + _globals['_SYNCACTIONVALUE_PUSHNAMESETTING']._serialized_end=159806 + _globals['_SYNCACTIONVALUE_QUICKREPLYACTION']._serialized_start=159809 + _globals['_SYNCACTIONVALUE_QUICKREPLYACTION']._serialized_end=159940 + _globals['_SYNCACTIONVALUE_RECENTEMOJIWEIGHTSACTION']._serialized_start=159942 + _globals['_SYNCACTIONVALUE_RECENTEMOJIWEIGHTSACTION']._serialized_end=160014 + _globals['_SYNCACTIONVALUE_REMOVERECENTSTICKERACTION']._serialized_start=160016 + _globals['_SYNCACTIONVALUE_REMOVERECENTSTICKERACTION']._serialized_end=160070 + _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION']._serialized_start=160073 + _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION']._serialized_end=162756 + _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_DISPLAYMODE']._serialized_start=161394 + _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_DISPLAYMODE']._serialized_end=161483 + _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_MEDIAQUALITYSETTING']._serialized_start=161485 + _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_MEDIAQUALITYSETTING']._serialized_end=161555 + _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_SETTINGKEY']._serialized_start=161558 + _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_SETTINGKEY']._serialized_end=162672 + _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_SETTINGPLATFORM']._serialized_start=162674 + _globals['_SYNCACTIONVALUE_SETTINGSSYNCACTION_SETTINGPLATFORM']._serialized_end=162756 + _globals['_SYNCACTIONVALUE_STARACTION']._serialized_start=162758 + _globals['_SYNCACTIONVALUE_STARACTION']._serialized_end=162787 + _globals['_SYNCACTIONVALUE_STATUSPOSTOPTINNOTIFICATIONPREFERENCESACTION']._serialized_start=162789 + _globals['_SYNCACTIONVALUE_STATUSPOSTOPTINNOTIFICATIONPREFERENCESACTION']._serialized_end=162852 + _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION']._serialized_start=162855 + _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION']._serialized_end=163382 + _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION_CUSTOMLIST']._serialized_start=163181 + _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION_CUSTOMLIST']._serialized_end=163275 + _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION_STATUSDISTRIBUTIONMODE']._serialized_start=163277 + _globals['_SYNCACTIONVALUE_STATUSPRIVACYACTION_STATUSDISTRIBUTIONMODE']._serialized_end=163382 + _globals['_SYNCACTIONVALUE_STICKERACTION']._serialized_start=163385 + _globals['_SYNCACTIONVALUE_STICKERACTION']._serialized_end=163647 + _globals['_SYNCACTIONVALUE_SUBSCRIPTIONACTION']._serialized_start=163649 + _globals['_SYNCACTIONVALUE_SUBSCRIPTIONACTION']._serialized_end=163740 + _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION']._serialized_start=163743 + _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION']._serialized_end=164198 + _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION_PAIDFEATURE']._serialized_start=163951 + _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION_PAIDFEATURE']._serialized_end=164034 + _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION_SUBSCRIPTIONINFO']._serialized_start=164037 + _globals['_SYNCACTIONVALUE_SUBSCRIPTIONSSYNCV2ACTION_SUBSCRIPTIONINFO']._serialized_end=164198 + _globals['_SYNCACTIONVALUE_SYNCACTIONMESSAGE']._serialized_start=164200 + _globals['_SYNCACTIONVALUE_SYNCACTIONMESSAGE']._serialized_end=164273 + _globals['_SYNCACTIONVALUE_SYNCACTIONMESSAGERANGE']._serialized_start=164276 + _globals['_SYNCACTIONVALUE_SYNCACTIONMESSAGERANGE']._serialized_end=164429 + _globals['_SYNCACTIONVALUE_THREADPINACTION']._serialized_start=164431 + _globals['_SYNCACTIONVALUE_THREADPINACTION']._serialized_end=164464 + _globals['_SYNCACTIONVALUE_TIMEFORMATACTION']._serialized_start=164466 + _globals['_SYNCACTIONVALUE_TIMEFORMATACTION']._serialized_end=164523 + _globals['_SYNCACTIONVALUE_UGCBOT']._serialized_start=164525 + _globals['_SYNCACTIONVALUE_UGCBOT']._serialized_end=164553 + _globals['_SYNCACTIONVALUE_UNARCHIVECHATSSETTING']._serialized_start=164555 + _globals['_SYNCACTIONVALUE_UNARCHIVECHATSSETTING']._serialized_end=164602 + _globals['_SYNCACTIONVALUE_USERSTATUSMUTEACTION']._serialized_start=164604 + _globals['_SYNCACTIONVALUE_USERSTATUSMUTEACTION']._serialized_end=164641 + _globals['_SYNCACTIONVALUE_USERNAMECHATSTARTMODEACTION']._serialized_start=164644 + _globals['_SYNCACTIONVALUE_USERNAMECHATSTARTMODEACTION']._serialized_end=164799 + _globals['_SYNCACTIONVALUE_USERNAMECHATSTARTMODEACTION_CHATSTARTMODE']._serialized_start=164767 + _globals['_SYNCACTIONVALUE_USERNAMECHATSTARTMODEACTION_CHATSTARTMODE']._serialized_end=164799 + _globals['_SYNCACTIONVALUE_WASAROOTSECRETACTION']._serialized_start=164802 + _globals['_SYNCACTIONVALUE_WASAROOTSECRETACTION']._serialized_end=165095 + _globals['_SYNCACTIONVALUE_WASAROOTSECRETACTION_ROOTSECRETENTRY']._serialized_start=164908 + _globals['_SYNCACTIONVALUE_WASAROOTSECRETACTION_ROOTSECRETENTRY']._serialized_end=165095 + _globals['_SYNCACTIONVALUE_WASAROOTSECRETACTION_ROOTSECRETENTRY_STATUS']._serialized_start=165061 + _globals['_SYNCACTIONVALUE_WASAROOTSECRETACTION_ROOTSECRETENTRY_STATUS']._serialized_end=165095 + _globals['_SYNCACTIONVALUE_WAFFLEACCOUNTLINKSTATEACTION']._serialized_start=165098 + _globals['_SYNCACTIONVALUE_WAFFLEACCOUNTLINKSTATEACTION']._serialized_end=165278 + _globals['_SYNCACTIONVALUE_WAFFLEACCOUNTLINKSTATEACTION_ACCOUNTLINKSTATE']._serialized_start=165222 + _globals['_SYNCACTIONVALUE_WAFFLEACCOUNTLINKSTATEACTION_ACCOUNTLINKSTATE']._serialized_end=165278 + _globals['_SYNCACTIONVALUE_WAMOUSERIDENTIFIERACTION']._serialized_start=165280 + _globals['_SYNCACTIONVALUE_WAMOUSERIDENTIFIERACTION']._serialized_end=165326 + _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTCAMPAIGNSTATUS']._serialized_start=165328 + _globals['_SYNCACTIONVALUE_BUSINESSBROADCASTCAMPAIGNSTATUS']._serialized_end=165425 + _globals['_SYNCDINDEX']._serialized_start=165427 + _globals['_SYNCDINDEX']._serialized_end=165453 + _globals['_SYNCDMUTATION']._serialized_start=165456 + _globals['_SYNCDMUTATION']._serialized_end=165608 + _globals['_SYNCDMUTATION_SYNCDOPERATION']._serialized_start=165571 + _globals['_SYNCDMUTATION_SYNCDOPERATION']._serialized_end=165608 + _globals['_SYNCDMUTATIONS']._serialized_start=165610 + _globals['_SYNCDMUTATIONS']._serialized_end=165670 + _globals['_SYNCDPATCH']._serialized_start=165673 + _globals['_SYNCDPATCH']._serialized_end=165985 + _globals['_SYNCDPLAINTEXTRECORD']._serialized_start=165987 + _globals['_SYNCDPLAINTEXTRECORD']._serialized_end=166078 + _globals['_SYNCDRECORD']._serialized_start=166080 + _globals['_SYNCDRECORD']._serialized_end=166199 + _globals['_SYNCDSNAPSHOT']._serialized_start=166202 + _globals['_SYNCDSNAPSHOT']._serialized_end=166343 + _globals['_SYNCDSNAPSHOTRECOVERY']._serialized_start=166346 + _globals['_SYNCDSNAPSHOTRECOVERY']._serialized_end=166517 + _globals['_SYNCDVALUE']._serialized_start=166519 + _globals['_SYNCDVALUE']._serialized_end=166545 + _globals['_SYNCDVERSION']._serialized_start=166547 + _globals['_SYNCDVERSION']._serialized_end=166578 + _globals['_TAPLINKACTION']._serialized_start=166580 + _globals['_TAPLINKACTION']._serialized_end=166626 + _globals['_TEMPLATEBUTTON']._serialized_start=166629 + _globals['_TEMPLATEBUTTON']._serialized_end=167230 + _globals['_TEMPLATEBUTTON_CALLBUTTON']._serialized_start=166850 + _globals['_TEMPLATEBUTTON_CALLBUTTON']._serialized_end=166990 + _globals['_TEMPLATEBUTTON_QUICKREPLYBUTTON']._serialized_start=166992 + _globals['_TEMPLATEBUTTON_QUICKREPLYBUTTON']._serialized_end=167086 + _globals['_TEMPLATEBUTTON_URLBUTTON']._serialized_start=167089 + _globals['_TEMPLATEBUTTON_URLBUTTON']._serialized_end=167220 + _globals['_THREADID']._serialized_start=167233 + _globals['_THREADID']._serialized_end=167395 + _globals['_THREADID_THREADTYPE']._serialized_start=167337 + _globals['_THREADID_THREADTYPE']._serialized_end=167395 + _globals['_UNCOUNTEDASSOCIATEDMESSAGELIST']._serialized_start=167398 + _globals['_UNCOUNTEDASSOCIATEDMESSAGELIST']._serialized_end=167590 + _globals['_UNCOUNTEDASSOCIATEDMESSAGELISTWITHMESSAGEBYTES']._serialized_start=167593 + _globals['_UNCOUNTEDASSOCIATEDMESSAGELISTWITHMESSAGEBYTES']._serialized_end=167746 + _globals['_URLTRACKINGMAP']._serialized_start=167749 + _globals['_URLTRACKINGMAP']._serialized_end=167966 + _globals['_URLTRACKINGMAP_URLTRACKINGMAPELEMENT']._serialized_start=167847 + _globals['_URLTRACKINGMAP_URLTRACKINGMAPELEMENT']._serialized_end=167966 + _globals['_USERPASSWORD']._serialized_start=167969 + _globals['_USERPASSWORD']._serialized_end=168448 + _globals['_USERPASSWORD_TRANSFORMERARG']._serialized_start=168182 + _globals['_USERPASSWORD_TRANSFORMERARG']._serialized_end=168336 + _globals['_USERPASSWORD_TRANSFORMERARG_VALUE']._serialized_start=168273 + _globals['_USERPASSWORD_TRANSFORMERARG_VALUE']._serialized_end=168336 + _globals['_USERPASSWORD_ENCODING']._serialized_start=168338 + _globals['_USERPASSWORD_ENCODING']._serialized_end=168375 + _globals['_USERPASSWORD_TRANSFORMER']._serialized_start=168377 + _globals['_USERPASSWORD_TRANSFORMER']._serialized_end=168448 + _globals['_USERRECEIPT']._serialized_start=168451 + _globals['_USERRECEIPT']._serialized_end=168609 + _globals['_VERIFIEDNAMECERTIFICATE']._serialized_start=168612 + _globals['_VERIFIEDNAMECERTIFICATE']._serialized_end=168832 + _globals['_VERIFIEDNAMECERTIFICATE_DETAILS']._serialized_start=168701 + _globals['_VERIFIEDNAMECERTIFICATE_DETAILS']._serialized_end=168832 + _globals['_VIRTUALDEVICEOUTPUT']._serialized_start=168835 + _globals['_VIRTUALDEVICEOUTPUT']._serialized_end=169082 + _globals['_WALLPAPERSETTINGS']._serialized_start=169084 + _globals['_WALLPAPERSETTINGS']._serialized_end=169155 + _globals['_WEBFEATURES']._serialized_start=169158 + _globals['_WEBFEATURES']._serialized_end=171688 + _globals['_WEBFEATURES_FLAG']._serialized_start=171613 + _globals['_WEBFEATURES_FLAG']._serialized_end=171688 + _globals['_WEBMESSAGEINFO']._serialized_start=171691 + _globals['_WEBMESSAGEINFO']._serialized_end=182391 + _globals['_WEBMESSAGEINFO_BIZPRIVACYSTATUS']._serialized_start=174436 + _globals['_WEBMESSAGEINFO_BIZPRIVACYSTATUS']._serialized_end=174497 + _globals['_WEBMESSAGEINFO_STATUS']._serialized_start=174499 + _globals['_WEBMESSAGEINFO_STATUS']._serialized_end=174587 + _globals['_WEBMESSAGEINFO_STUBTYPE']._serialized_start=174590 + _globals['_WEBMESSAGEINFO_STUBTYPE']._serialized_end=182391 + _globals['_WEBMESSAGEINFOWITHMESSAGEBYTES']._serialized_start=182393 + _globals['_WEBMESSAGEINFOWITHMESSAGEBYTES']._serialized_end=182482 + _globals['_WEBNOTIFICATIONSINFO']._serialized_start=182485 + _globals['_WEBNOTIFICATIONSINFO']._serialized_end=182625 + _globals['_WRAPTRANSPORTSIGNINGPUBLICKEYINPUT']._serialized_start=182627 + _globals['_WRAPTRANSPORTSIGNINGPUBLICKEYINPUT']._serialized_end=182681 + _globals['_WRAPTRANSPORTSIGNINGPUBLICKEYRESULT']._serialized_start=182683 + _globals['_WRAPTRANSPORTSIGNINGPUBLICKEYRESULT']._serialized_end=182741 + _globals['_WRAPTRANSPORTSIGNINGSECRETKEYINPUT']._serialized_start=182743 + _globals['_WRAPTRANSPORTSIGNINGSECRETKEYINPUT']._serialized_end=182797 + _globals['_WRAPTRANSPORTSIGNINGSECRETKEYRESULT']._serialized_start=182799 + _globals['_WRAPTRANSPORTSIGNINGSECRETKEYRESULT']._serialized_end=182857 # @@protoc_insertion_point(module_scope) diff --git a/python/tryx/waproto/whatsapp_pb2.pyi b/python/tryx/waproto/whatsapp_pb2.pyi index 7638688..41273d8 100644 --- a/python/tryx/waproto/whatsapp_pb2.pyi +++ b/python/tryx/waproto/whatsapp_pb2.pyi @@ -155,6 +155,7 @@ class _BotMetricsEntryPointEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_ GROUP_MEMBER: _BotMetricsEntryPoint.ValueType # 54 CHATLIST_SEARCH: _BotMetricsEntryPoint.ValueType # 55 NEW_CHAT_LIST: _BotMetricsEntryPoint.ValueType # 56 + CONTACTS_TAB: _BotMetricsEntryPoint.ValueType # 57 class BotMetricsEntryPoint(_BotMetricsEntryPoint, metaclass=_BotMetricsEntryPointEnumTypeWrapper): ... @@ -206,6 +207,7 @@ WEB_NAVIGATION_BAR: BotMetricsEntryPoint.ValueType # 47 GROUP_MEMBER: BotMetricsEntryPoint.ValueType # 54 CHATLIST_SEARCH: BotMetricsEntryPoint.ValueType # 55 NEW_CHAT_LIST: BotMetricsEntryPoint.ValueType # 56 +CONTACTS_TAB: BotMetricsEntryPoint.ValueType # 57 Global___BotMetricsEntryPoint: _TypeAlias = BotMetricsEntryPoint # noqa: Y015 class _BotMetricsThreadEntryPoint: @@ -338,6 +340,236 @@ CRITICAL_BLOCK: CollectionName.ValueType # 4 CRITICAL_UNBLOCK_LOW: CollectionName.ValueType # 5 Global___CollectionName: _TypeAlias = CollectionName # noqa: Y015 +class _EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + +class _EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPEEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + OPEN_NATIVE: _EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE.ValueType # 11 + +class EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE(_EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE, metaclass=_EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPEEnumTypeWrapper): ... + +OPEN_NATIVE: EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE.ValueType # 11 +Global___EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE: _TypeAlias = EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE # noqa: Y015 + +class _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + +class _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPEEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNSUPPORTED: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # -1 + IG_STORY_PHOTO_MENTION: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 4 + IG_SINGLE_IMAGE_POST_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 9 + IG_MULTIPOST_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 10 + IG_SINGLE_VIDEO_POST_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 11 + IG_STORY_PHOTO_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 12 + IG_STORY_VIDEO_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 13 + IG_CLIPS_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 14 + IG_IGTV_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 15 + IG_SHOP_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 16 + IG_PROFILE_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 19 + IG_STORY_PHOTO_HIGHLIGHT_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 20 + IG_STORY_VIDEO_HIGHLIGHT_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 21 + IG_STORY_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 22 + IG_STORY_REACTION: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 23 + IG_STORY_VIDEO_MENTION: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 24 + IG_STORY_HIGHLIGHT_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 25 + IG_STORY_HIGHLIGHT_REACTION: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 26 + IG_EXTERNAL_LINK: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 27 + IG_RECEIVER_FETCH: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 28 + FB_FEED_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1000 + FB_STORY_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1001 + FB_STORY_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1002 + FB_STORY_MENTION: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1003 + FB_FEED_VIDEO_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1004 + FB_GAMING_CUSTOM_UPDATE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1005 + FB_PRODUCER_STORY_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1006 + FB_EVENT: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1007 + FB_FEED_POST_PRIVATE_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1008 + FB_SHORT: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1009 + FB_COMMENT_MENTION_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1010 + FB_POST_MENTION: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1011 + FB_PROFILE_DIRECTORY_ITEM: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1013 + FB_FEED_POST_REACTION_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1014 + FB_QUICKSNAP_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1015 + MSG_EXTERNAL_LINK_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2000 + MSG_P2P_PAYMENT: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2001 + MSG_LOCATION_SHARING: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2002 + MSG_LOCATION_SHARING_V2: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2003 + MSG_HIGHLIGHTS_TAB_FRIEND_UPDATES_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2004 + MSG_HIGHLIGHTS_TAB_LOCAL_EVENT_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2005 + MSG_RECEIVER_FETCH: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2006 + MSG_IG_MEDIA_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2007 + MSG_GEN_AI_SEARCH_PLUGIN_RESPONSE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2008 + MSG_REELS_LIST: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2009 + MSG_CONTACT: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2010 + MSG_THREADS_POST_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2011 + MSG_FILE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2012 + MSG_AVATAR_DETAILS: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2013 + MSG_AI_CONTACT: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2014 + MSG_MEMORIES_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2015 + MSG_SHARED_ALBUM_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2016 + MSG_SHARED_ALBUM: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2017 + MSG_OCCAMADILLO_XMA: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2018 + MSG_GEN_AI_SUBSCRIPTION: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2021 + MSG_GEN_AI_REMINDER: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2022 + MSG_GEN_AI_MEMU_ONBOARDING_RESPONSE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2023 + MSG_NOTE_REPLY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2024 + MSG_NOTE_MENTION: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2025 + GEN_AI_ENTITY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2026 + MSG_OPG_P2P_PAYMENT: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2027 + GEN_AI_RICH_RESPONSE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2028 + MSG_MUSIC_STICKER: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2029 + MSG_PHONE_NUMBER: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2030 + AI_ACTIVITY_SHARE: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2031 + MSG_PRIVATE_XMA: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2032 + MSG_SOCIAL_CUE_MEMORIES: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2033 + MSG_MANUS_GROWTH_REFERRAL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2060 + MSG_MOMENT_LINK: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2061 + MSG_HORIZON_WEEL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2062 + MSG_MOMENT_ADDED: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2063 + RTC_AUDIO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3000 + RTC_VIDEO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3001 + RTC_MISSED_AUDIO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3002 + RTC_MISSED_VIDEO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3003 + RTC_GROUP_AUDIO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3004 + RTC_GROUP_VIDEO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3005 + RTC_MISSED_GROUP_AUDIO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3006 + RTC_MISSED_GROUP_VIDEO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3007 + RTC_ONGOING_AUDIO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3008 + RTC_ONGOING_VIDEO_CALL: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3009 + MSG_RECEIVER_FETCH_FALLBACK: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3025 + DATACLASS_SENDER_COPY: _EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 4000 + +class EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE(_EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE, metaclass=_EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPEEnumTypeWrapper): ... + +UNSUPPORTED: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # -1 +IG_STORY_PHOTO_MENTION: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 4 +IG_SINGLE_IMAGE_POST_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 9 +IG_MULTIPOST_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 10 +IG_SINGLE_VIDEO_POST_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 11 +IG_STORY_PHOTO_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 12 +IG_STORY_VIDEO_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 13 +IG_CLIPS_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 14 +IG_IGTV_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 15 +IG_SHOP_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 16 +IG_PROFILE_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 19 +IG_STORY_PHOTO_HIGHLIGHT_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 20 +IG_STORY_VIDEO_HIGHLIGHT_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 21 +IG_STORY_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 22 +IG_STORY_REACTION: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 23 +IG_STORY_VIDEO_MENTION: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 24 +IG_STORY_HIGHLIGHT_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 25 +IG_STORY_HIGHLIGHT_REACTION: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 26 +IG_EXTERNAL_LINK: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 27 +IG_RECEIVER_FETCH: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 28 +FB_FEED_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1000 +FB_STORY_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1001 +FB_STORY_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1002 +FB_STORY_MENTION: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1003 +FB_FEED_VIDEO_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1004 +FB_GAMING_CUSTOM_UPDATE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1005 +FB_PRODUCER_STORY_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1006 +FB_EVENT: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1007 +FB_FEED_POST_PRIVATE_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1008 +FB_SHORT: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1009 +FB_COMMENT_MENTION_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1010 +FB_POST_MENTION: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1011 +FB_PROFILE_DIRECTORY_ITEM: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1013 +FB_FEED_POST_REACTION_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1014 +FB_QUICKSNAP_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 1015 +MSG_EXTERNAL_LINK_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2000 +MSG_P2P_PAYMENT: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2001 +MSG_LOCATION_SHARING: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2002 +MSG_LOCATION_SHARING_V2: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2003 +MSG_HIGHLIGHTS_TAB_FRIEND_UPDATES_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2004 +MSG_HIGHLIGHTS_TAB_LOCAL_EVENT_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2005 +MSG_RECEIVER_FETCH: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2006 +MSG_IG_MEDIA_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2007 +MSG_GEN_AI_SEARCH_PLUGIN_RESPONSE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2008 +MSG_REELS_LIST: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2009 +MSG_CONTACT: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2010 +MSG_THREADS_POST_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2011 +MSG_FILE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2012 +MSG_AVATAR_DETAILS: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2013 +MSG_AI_CONTACT: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2014 +MSG_MEMORIES_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2015 +MSG_SHARED_ALBUM_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2016 +MSG_SHARED_ALBUM: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2017 +MSG_OCCAMADILLO_XMA: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2018 +MSG_GEN_AI_SUBSCRIPTION: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2021 +MSG_GEN_AI_REMINDER: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2022 +MSG_GEN_AI_MEMU_ONBOARDING_RESPONSE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2023 +MSG_NOTE_REPLY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2024 +MSG_NOTE_MENTION: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2025 +GEN_AI_ENTITY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2026 +MSG_OPG_P2P_PAYMENT: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2027 +GEN_AI_RICH_RESPONSE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2028 +MSG_MUSIC_STICKER: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2029 +MSG_PHONE_NUMBER: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2030 +AI_ACTIVITY_SHARE: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2031 +MSG_PRIVATE_XMA: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2032 +MSG_SOCIAL_CUE_MEMORIES: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2033 +MSG_MANUS_GROWTH_REFERRAL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2060 +MSG_MOMENT_LINK: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2061 +MSG_HORIZON_WEEL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2062 +MSG_MOMENT_ADDED: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 2063 +RTC_AUDIO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3000 +RTC_VIDEO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3001 +RTC_MISSED_AUDIO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3002 +RTC_MISSED_VIDEO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3003 +RTC_GROUP_AUDIO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3004 +RTC_GROUP_VIDEO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3005 +RTC_MISSED_GROUP_AUDIO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3006 +RTC_MISSED_GROUP_VIDEO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3007 +RTC_ONGOING_AUDIO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3008 +RTC_ONGOING_VIDEO_CALL: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3009 +MSG_RECEIVER_FETCH_FALLBACK: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 3025 +DATACLASS_SENDER_COPY: EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType # 4000 +Global___EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE: _TypeAlias = EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE # noqa: Y015 + +class _EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + +class _EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPEEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + SENDER_COPY: _EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType # 0 + SERVER: _EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType # 1 + SIGNED_CLIENT: _EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType # 2 + +class EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE(_EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE, metaclass=_EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPEEnumTypeWrapper): ... + +SENDER_COPY: EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType # 0 +SERVER: EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType # 1 +SIGNED_CLIENT: EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType # 2 +Global___EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE: _TypeAlias = EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE # noqa: Y015 + +class _EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + +class _EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPEEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + SINGLE: _EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 0 + HSCROLL: _EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 1 + PORTRAIT: _EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 3 + STANDARD_DXMA: _EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 12 + LIST_DXMA: _EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 15 + GRID: _EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 16 + +class EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE(_EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE, metaclass=_EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPEEnumTypeWrapper): ... + +SINGLE: EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 0 +HSCROLL: EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 1 +PORTRAIT: EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 3 +STANDARD_DXMA: EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 12 +LIST_DXMA: EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 15 +GRID: EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType # 16 +Global___EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE: _TypeAlias = EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE # noqa: Y015 + class _FUTURE_PROOF_BEHAVIOR: ValueType = _typing.NewType("ValueType", _builtins.int) V: _TypeAlias = ValueType # noqa: Y015 @@ -506,6 +738,12 @@ class _MutationPropsEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_Mutatio THREAD_PIN_ACTION: _MutationProps.ValueType # 85 AUTO_ORGANIZE_BUSINESS_CHAT_SETTING: _MutationProps.ValueType # 86 BIZ_AI_SETTINGS_NUDGE_ACTION: _MutationProps.ValueType # 87 + COEX_V2_VERSION_ACTION: _MutationProps.ValueType # 88 + WASA_ROOT_SECRET_ACTION: _MutationProps.ValueType # 89 + BUBBLE_LOCK_MESSAGE_ACTION: _MutationProps.ValueType # 90 + LABEL_SUBLIST_ACTION: _MutationProps.ValueType # 91 + DEVICE_CAPABILITIES_V2: _MutationProps.ValueType # 92 + CTWA_MESSAGE_RECEIVED_ACTION: _MutationProps.ValueType # 93 SHARE_OWN_PN: _MutationProps.ValueType # 10001 BUSINESS_BROADCAST_ACTION: _MutationProps.ValueType # 10002 AI_THREAD_DELETE_ACTION: _MutationProps.ValueType # 10003 @@ -593,6 +831,12 @@ SUBSCRIPTIONS_SYNC_V2_ACTION: MutationProps.ValueType # 84 THREAD_PIN_ACTION: MutationProps.ValueType # 85 AUTO_ORGANIZE_BUSINESS_CHAT_SETTING: MutationProps.ValueType # 86 BIZ_AI_SETTINGS_NUDGE_ACTION: MutationProps.ValueType # 87 +COEX_V2_VERSION_ACTION: MutationProps.ValueType # 88 +WASA_ROOT_SECRET_ACTION: MutationProps.ValueType # 89 +BUBBLE_LOCK_MESSAGE_ACTION: MutationProps.ValueType # 90 +LABEL_SUBLIST_ACTION: MutationProps.ValueType # 91 +DEVICE_CAPABILITIES_V2: MutationProps.ValueType # 92 +CTWA_MESSAGE_RECEIVED_ACTION: MutationProps.ValueType # 93 SHARE_OWN_PN: MutationProps.ValueType # 10001 BUSINESS_BROADCAST_ACTION: MutationProps.ValueType # 10002 AI_THREAD_DELETE_ACTION: MutationProps.ValueType # 10003 @@ -647,7 +891,7 @@ Global___WebLinkRenderConfig: _TypeAlias = WebLinkRenderConfig # noqa: Y015 @_typing.final class ADVDeviceIdentity(_message.Message): - """/ WhatsApp Version: 2.3000.1040878135""" + """/ WhatsApp Version: 2.3000.1045368834""" DESCRIPTOR: _descriptor.Descriptor @@ -931,6 +1175,48 @@ class AIMetadataOperation(_message.Message): Global___AIMetadataOperation: _TypeAlias = AIMetadataOperation # noqa: Y015 +@_typing.final +class AIProvenance(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class Metadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + CREATEDWITHGENAI_FIELD_NUMBER: _builtins.int + EDITEDWITHGENAI_FIELD_NUMBER: _builtins.int + createdWithGenAi: _builtins.bool + editedWithGenAi: _builtins.bool + def __init__( + self, + *, + createdWithGenAi: _builtins.bool | None = ..., + editedWithGenAi: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["createdWithGenAi", b"createdWithGenAi", "editedWithGenAi", b"editedWithGenAi"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["createdWithGenAi", b"createdWithGenAi", "editedWithGenAi", b"editedWithGenAi"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + C2PAMETADATA_FIELD_NUMBER: _builtins.int + IPTCMETADATA_FIELD_NUMBER: _builtins.int + @_builtins.property + def c2PaMetadata(self) -> Global___AIProvenance.Metadata: ... + @_builtins.property + def iptcMetadata(self) -> Global___AIProvenance.Metadata: ... + def __init__( + self, + *, + c2PaMetadata: Global___AIProvenance.Metadata | None = ..., + iptcMetadata: Global___AIProvenance.Metadata | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["c2PaMetadata", b"c2PaMetadata", "iptcMetadata", b"iptcMetadata"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["c2PaMetadata", b"c2PaMetadata", "iptcMetadata", b"iptcMetadata"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___AIProvenance: _TypeAlias = AIProvenance # noqa: Y015 + @_typing.final class AIQueryFanout(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -1070,13 +1356,13 @@ class AIRichResponseContentItemsMetadata(_message.Message): *, reelItem: Global___AIRichResponseContentItemsMetadata.AIRichResponseReelItem | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["aIRichResponseContentItem", b"aIRichResponseContentItem", "reelItem", b"reelItem"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["aiRichResponseContentItem", b"aiRichResponseContentItem", "reelItem", b"reelItem"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["aIRichResponseContentItem", b"aIRichResponseContentItem", "reelItem", b"reelItem"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["aiRichResponseContentItem", b"aiRichResponseContentItem", "reelItem", b"reelItem"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_aIRichResponseContentItem: _TypeAlias = _typing.Literal["reelItem"] # noqa: Y015 - _WhichOneofArgType_aIRichResponseContentItem: _TypeAlias = _typing.Literal["aIRichResponseContentItem", b"aIRichResponseContentItem"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_aIRichResponseContentItem) -> _WhichOneofReturnType_aIRichResponseContentItem | None: ... + _WhichOneofReturnType_aiRichResponseContentItem: _TypeAlias = _typing.Literal["reelItem"] # noqa: Y015 + _WhichOneofArgType_aiRichResponseContentItem: _TypeAlias = _typing.Literal["aiRichResponseContentItem", b"aiRichResponseContentItem"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_aiRichResponseContentItem) -> _WhichOneofReturnType_aiRichResponseContentItem | None: ... @_typing.final class AIRichResponseReelItem(_message.Message): @@ -1736,6 +2022,30 @@ class AvatarUserSettings(_message.Message): Global___AvatarUserSettings: _TypeAlias = AvatarUserSettings # noqa: Y015 +@_typing.final +class BackwardEdge(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + ENCRYPTEDPREVEPOCHANONID_FIELD_NUMBER: _builtins.int + ENCRYPTEDPREVEPOCHROOTKEY_FIELD_NUMBER: _builtins.int + PREVEPOCHROOTKEYFINGERPRINT_FIELD_NUMBER: _builtins.int + encryptedPrevEpochAnonId: _builtins.bytes + encryptedPrevEpochRootKey: _builtins.bytes + prevEpochRootKeyFingerprint: _builtins.bytes + def __init__( + self, + *, + encryptedPrevEpochAnonId: _builtins.bytes | None = ..., + encryptedPrevEpochRootKey: _builtins.bytes | None = ..., + prevEpochRootKeyFingerprint: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedPrevEpochAnonId", b"encryptedPrevEpochAnonId", "encryptedPrevEpochRootKey", b"encryptedPrevEpochRootKey", "prevEpochRootKeyFingerprint", b"prevEpochRootKeyFingerprint"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedPrevEpochAnonId", b"encryptedPrevEpochAnonId", "encryptedPrevEpochRootKey", b"encryptedPrevEpochRootKey", "prevEpochRootKeyFingerprint", b"prevEpochRootKeyFingerprint"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___BackwardEdge: _TypeAlias = BackwardEdge # noqa: Y015 + @_typing.final class BizAccountLinkInfo(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -1935,15 +2245,18 @@ class BotAgentDeepLinkMetadata(_message.Message): DESCRIPTOR: _descriptor.Descriptor TOKEN_FIELD_NUMBER: _builtins.int + CLIENTPUBLICKEY_FIELD_NUMBER: _builtins.int token: _builtins.str + clientPublicKey: _builtins.bytes def __init__( self, *, token: _builtins.str | None = ..., + clientPublicKey: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["token", b"token"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["clientPublicKey", b"clientPublicKey", "token", b"token"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["token", b"token"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["clientPublicKey", b"clientPublicKey", "token", b"token"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... Global___BotAgentDeepLinkMetadata: _TypeAlias = BotAgentDeepLinkMetadata # noqa: Y015 @@ -2043,6 +2356,10 @@ class BotCapabilityMetadata(_message.Message): UNIFIED_RESPONSE_MARKDOWN_LINKS_ENABLED: BotCapabilityMetadata._BotCapabilityType.ValueType # 63 AI_RICH_RESPONSE_MAPS_V2_ENABLED: BotCapabilityMetadata._BotCapabilityType.ValueType # 64 AI_SUBSCRIPTION_METERING_ENABLED: BotCapabilityMetadata._BotCapabilityType.ValueType # 65 + RICH_RESPONSE_SPORTS_WIDGET_ENABLED: BotCapabilityMetadata._BotCapabilityType.ValueType # 66 + AI_RICH_RESPONSE_ARTIFACTS_ENABLED: BotCapabilityMetadata._BotCapabilityType.ValueType # 67 + AI_RICH_RESPONSE_EMAIL_CALENDAR_ENABLED: BotCapabilityMetadata._BotCapabilityType.ValueType # 68 + AI_RICH_RESPONSE_REMINDERS_ENABLED: BotCapabilityMetadata._BotCapabilityType.ValueType # 69 class BotCapabilityType(_BotCapabilityType, metaclass=_BotCapabilityTypeEnumTypeWrapper): ... UNKNOWN: BotCapabilityMetadata.BotCapabilityType.ValueType # 0 @@ -2111,6 +2428,10 @@ class BotCapabilityMetadata(_message.Message): UNIFIED_RESPONSE_MARKDOWN_LINKS_ENABLED: BotCapabilityMetadata.BotCapabilityType.ValueType # 63 AI_RICH_RESPONSE_MAPS_V2_ENABLED: BotCapabilityMetadata.BotCapabilityType.ValueType # 64 AI_SUBSCRIPTION_METERING_ENABLED: BotCapabilityMetadata.BotCapabilityType.ValueType # 65 + RICH_RESPONSE_SPORTS_WIDGET_ENABLED: BotCapabilityMetadata.BotCapabilityType.ValueType # 66 + AI_RICH_RESPONSE_ARTIFACTS_ENABLED: BotCapabilityMetadata.BotCapabilityType.ValueType # 67 + AI_RICH_RESPONSE_EMAIL_CALENDAR_ENABLED: BotCapabilityMetadata.BotCapabilityType.ValueType # 68 + AI_RICH_RESPONSE_REMINDERS_ENABLED: BotCapabilityMetadata.BotCapabilityType.ValueType # 69 CAPABILITIES_FIELD_NUMBER: _builtins.int @_builtins.property @@ -2530,6 +2851,23 @@ class BotGroupParticipantMetadata(_message.Message): Global___BotGroupParticipantMetadata: _TypeAlias = BotGroupParticipantMetadata # noqa: Y015 +@_typing.final +class BotHistoryShareMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + PARTICIPANTSMETADATA_FIELD_NUMBER: _builtins.int + @_builtins.property + def participantsMetadata(self) -> _containers.RepeatedCompositeFieldContainer[Global___BotGroupParticipantMetadata]: ... + def __init__( + self, + *, + participantsMetadata: _abc.Iterable[Global___BotGroupParticipantMetadata] | None = ..., + ) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["participantsMetadata", b"participantsMetadata"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___BotHistoryShareMetadata: _TypeAlias = BotHistoryShareMetadata # noqa: Y015 + @_typing.final class BotImagineMetadata(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -2889,6 +3227,7 @@ class BotMetadata(_message.Message): RESOLVEDTOOLCALLMETADATA_FIELD_NUMBER: _builtins.int SUBSCRIPTIONUPSELLMETADATA_FIELD_NUMBER: _builtins.int PTTPROMPTMETADATA_FIELD_NUMBER: _builtins.int + BOTHISTORYSHAREMETADATA_FIELD_NUMBER: _builtins.int INTERNALMETADATA_FIELD_NUMBER: _builtins.int personaId: _builtins.str invokerJid: _builtins.str @@ -2966,6 +3305,8 @@ class BotMetadata(_message.Message): def subscriptionUpsellMetadata(self) -> Global___AISubscriptionUpsellMetadata: ... @_builtins.property def pttPromptMetadata(self) -> Global___BotPttPromptMetadata: ... + @_builtins.property + def botHistoryShareMetadata(self) -> Global___BotHistoryShareMetadata: ... def __init__( self, *, @@ -3010,11 +3351,12 @@ class BotMetadata(_message.Message): resolvedToolCallMetadata: Global___BotResolvedToolCallMetadata | None = ..., subscriptionUpsellMetadata: Global___AISubscriptionUpsellMetadata | None = ..., pttPromptMetadata: Global___BotPttPromptMetadata | None = ..., + botHistoryShareMetadata: Global___BotHistoryShareMetadata | None = ..., internalMetadata: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["aiConversationContext", b"aiConversationContext", "aiMediaCollectionMetadata", b"aiMediaCollectionMetadata", "botAgeCollectionMetadata", b"botAgeCollectionMetadata", "botDocumentMessageMetadata", b"botDocumentMessageMetadata", "botGroupMetadata", b"botGroupMetadata", "botInfrastructureDiagnostics", b"botInfrastructureDiagnostics", "botLinkedAccountsMetadata", b"botLinkedAccountsMetadata", "botMessageOriginMetadata", b"botMessageOriginMetadata", "botMetricsMetadata", b"botMetricsMetadata", "botModeSelectionMetadata", b"botModeSelectionMetadata", "botPromotionMessageMetadata", b"botPromotionMessageMetadata", "botQuotaMetadata", b"botQuotaMetadata", "botRenderingConfigMetadata", b"botRenderingConfigMetadata", "botResponseId", b"botResponseId", "botThreadInfo", b"botThreadInfo", "capabilityMetadata", b"capabilityMetadata", "commandMetadata", b"commandMetadata", "conversationStarterPromptId", b"conversationStarterPromptId", "imagineMetadata", b"imagineMetadata", "inThreadSurveyMetadata", b"inThreadSurveyMetadata", "internalMetadata", b"internalMetadata", "invokerJid", b"invokerJid", "memoryMetadata", b"memoryMetadata", "memuMetadata", b"memuMetadata", "messageDisclaimerText", b"messageDisclaimerText", "modelMetadata", b"modelMetadata", "personaId", b"personaId", "pluginMetadata", b"pluginMetadata", "progressIndicatorMetadata", b"progressIndicatorMetadata", "pttPromptMetadata", b"pttPromptMetadata", "regenerateMetadata", b"regenerateMetadata", "reminderMetadata", b"reminderMetadata", "renderingMetadata", b"renderingMetadata", "resolvedToolCallMetadata", b"resolvedToolCallMetadata", "richResponseSourcesMetadata", b"richResponseSourcesMetadata", "sessionMetadata", b"sessionMetadata", "sessionTransparencyMetadata", b"sessionTransparencyMetadata", "subscriptionUpsellMetadata", b"subscriptionUpsellMetadata", "suggestedPromptMetadata", b"suggestedPromptMetadata", "timezone", b"timezone", "unifiedResponseMutation", b"unifiedResponseMutation", "verificationMetadata", b"verificationMetadata"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["aiConversationContext", b"aiConversationContext", "aiMediaCollectionMetadata", b"aiMediaCollectionMetadata", "botAgeCollectionMetadata", b"botAgeCollectionMetadata", "botDocumentMessageMetadata", b"botDocumentMessageMetadata", "botGroupMetadata", b"botGroupMetadata", "botHistoryShareMetadata", b"botHistoryShareMetadata", "botInfrastructureDiagnostics", b"botInfrastructureDiagnostics", "botLinkedAccountsMetadata", b"botLinkedAccountsMetadata", "botMessageOriginMetadata", b"botMessageOriginMetadata", "botMetricsMetadata", b"botMetricsMetadata", "botModeSelectionMetadata", b"botModeSelectionMetadata", "botPromotionMessageMetadata", b"botPromotionMessageMetadata", "botQuotaMetadata", b"botQuotaMetadata", "botRenderingConfigMetadata", b"botRenderingConfigMetadata", "botResponseId", b"botResponseId", "botThreadInfo", b"botThreadInfo", "capabilityMetadata", b"capabilityMetadata", "commandMetadata", b"commandMetadata", "conversationStarterPromptId", b"conversationStarterPromptId", "imagineMetadata", b"imagineMetadata", "inThreadSurveyMetadata", b"inThreadSurveyMetadata", "internalMetadata", b"internalMetadata", "invokerJid", b"invokerJid", "memoryMetadata", b"memoryMetadata", "memuMetadata", b"memuMetadata", "messageDisclaimerText", b"messageDisclaimerText", "modelMetadata", b"modelMetadata", "personaId", b"personaId", "pluginMetadata", b"pluginMetadata", "progressIndicatorMetadata", b"progressIndicatorMetadata", "pttPromptMetadata", b"pttPromptMetadata", "regenerateMetadata", b"regenerateMetadata", "reminderMetadata", b"reminderMetadata", "renderingMetadata", b"renderingMetadata", "resolvedToolCallMetadata", b"resolvedToolCallMetadata", "richResponseSourcesMetadata", b"richResponseSourcesMetadata", "sessionMetadata", b"sessionMetadata", "sessionTransparencyMetadata", b"sessionTransparencyMetadata", "subscriptionUpsellMetadata", b"subscriptionUpsellMetadata", "suggestedPromptMetadata", b"suggestedPromptMetadata", "timezone", b"timezone", "unifiedResponseMutation", b"unifiedResponseMutation", "verificationMetadata", b"verificationMetadata"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["aiConversationContext", b"aiConversationContext", "aiMediaCollectionMetadata", b"aiMediaCollectionMetadata", "botAgeCollectionMetadata", b"botAgeCollectionMetadata", "botDocumentMessageMetadata", b"botDocumentMessageMetadata", "botGroupMetadata", b"botGroupMetadata", "botInfrastructureDiagnostics", b"botInfrastructureDiagnostics", "botLinkedAccountsMetadata", b"botLinkedAccountsMetadata", "botMessageOriginMetadata", b"botMessageOriginMetadata", "botMetricsMetadata", b"botMetricsMetadata", "botModeSelectionMetadata", b"botModeSelectionMetadata", "botPromotionMessageMetadata", b"botPromotionMessageMetadata", "botQuotaMetadata", b"botQuotaMetadata", "botRenderingConfigMetadata", b"botRenderingConfigMetadata", "botResponseId", b"botResponseId", "botThreadInfo", b"botThreadInfo", "capabilityMetadata", b"capabilityMetadata", "commandMetadata", b"commandMetadata", "conversationStarterPromptId", b"conversationStarterPromptId", "imagineMetadata", b"imagineMetadata", "inThreadSurveyMetadata", b"inThreadSurveyMetadata", "internalMetadata", b"internalMetadata", "invokerJid", b"invokerJid", "memoryMetadata", b"memoryMetadata", "memuMetadata", b"memuMetadata", "messageDisclaimerText", b"messageDisclaimerText", "modelMetadata", b"modelMetadata", "personaId", b"personaId", "pluginMetadata", b"pluginMetadata", "progressIndicatorMetadata", b"progressIndicatorMetadata", "pttPromptMetadata", b"pttPromptMetadata", "regenerateMetadata", b"regenerateMetadata", "reminderMetadata", b"reminderMetadata", "renderingMetadata", b"renderingMetadata", "resolvedToolCallMetadata", b"resolvedToolCallMetadata", "richResponseSourcesMetadata", b"richResponseSourcesMetadata", "sessionMetadata", b"sessionMetadata", "sessionTransparencyMetadata", b"sessionTransparencyMetadata", "subscriptionUpsellMetadata", b"subscriptionUpsellMetadata", "suggestedPromptMetadata", b"suggestedPromptMetadata", "timezone", b"timezone", "unifiedResponseMutation", b"unifiedResponseMutation", "verificationMetadata", b"verificationMetadata"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["aiConversationContext", b"aiConversationContext", "aiMediaCollectionMetadata", b"aiMediaCollectionMetadata", "botAgeCollectionMetadata", b"botAgeCollectionMetadata", "botDocumentMessageMetadata", b"botDocumentMessageMetadata", "botGroupMetadata", b"botGroupMetadata", "botHistoryShareMetadata", b"botHistoryShareMetadata", "botInfrastructureDiagnostics", b"botInfrastructureDiagnostics", "botLinkedAccountsMetadata", b"botLinkedAccountsMetadata", "botMessageOriginMetadata", b"botMessageOriginMetadata", "botMetricsMetadata", b"botMetricsMetadata", "botModeSelectionMetadata", b"botModeSelectionMetadata", "botPromotionMessageMetadata", b"botPromotionMessageMetadata", "botQuotaMetadata", b"botQuotaMetadata", "botRenderingConfigMetadata", b"botRenderingConfigMetadata", "botResponseId", b"botResponseId", "botThreadInfo", b"botThreadInfo", "capabilityMetadata", b"capabilityMetadata", "commandMetadata", b"commandMetadata", "conversationStarterPromptId", b"conversationStarterPromptId", "imagineMetadata", b"imagineMetadata", "inThreadSurveyMetadata", b"inThreadSurveyMetadata", "internalMetadata", b"internalMetadata", "invokerJid", b"invokerJid", "memoryMetadata", b"memoryMetadata", "memuMetadata", b"memuMetadata", "messageDisclaimerText", b"messageDisclaimerText", "modelMetadata", b"modelMetadata", "personaId", b"personaId", "pluginMetadata", b"pluginMetadata", "progressIndicatorMetadata", b"progressIndicatorMetadata", "pttPromptMetadata", b"pttPromptMetadata", "regenerateMetadata", b"regenerateMetadata", "reminderMetadata", b"reminderMetadata", "renderingMetadata", b"renderingMetadata", "resolvedToolCallMetadata", b"resolvedToolCallMetadata", "richResponseSourcesMetadata", b"richResponseSourcesMetadata", "sessionMetadata", b"sessionMetadata", "sessionTransparencyMetadata", b"sessionTransparencyMetadata", "subscriptionUpsellMetadata", b"subscriptionUpsellMetadata", "suggestedPromptMetadata", b"suggestedPromptMetadata", "timezone", b"timezone", "unifiedResponseMutation", b"unifiedResponseMutation", "verificationMetadata", b"verificationMetadata"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... Global___BotMetadata: _TypeAlias = BotMetadata # noqa: Y015 @@ -3739,22 +4081,48 @@ class BotSignatureVerificationUseCaseProof(_message.Message): WA_BOT_MSG: BotSignatureVerificationUseCaseProof._BotSignatureUseCase.ValueType # 1 WA_TEE_BOT_MSG: BotSignatureVerificationUseCaseProof._BotSignatureUseCase.ValueType # 2 P2P_PILLS: BotSignatureVerificationUseCaseProof._BotSignatureUseCase.ValueType # 3 + WA_WAFFLE: BotSignatureVerificationUseCaseProof._BotSignatureUseCase.ValueType # 4 + WA_FEATURE_PKI: BotSignatureVerificationUseCaseProof._BotSignatureUseCase.ValueType # 5 class BotSignatureUseCase(_BotSignatureUseCase, metaclass=_BotSignatureUseCaseEnumTypeWrapper): ... UNSPECIFIED: BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType # 0 WA_BOT_MSG: BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType # 1 WA_TEE_BOT_MSG: BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType # 2 P2P_PILLS: BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType # 3 + WA_WAFFLE: BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType # 4 + WA_FEATURE_PKI: BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType # 5 + + @_typing.final + class CertificateSKI(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + USECASE_FIELD_NUMBER: _builtins.int + SKI_FIELD_NUMBER: _builtins.int + useCase: Global___BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType + ski: _builtins.bytes + def __init__( + self, + *, + useCase: Global___BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType | None = ..., + ski: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["ski", b"ski", "useCase", b"useCase"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["ski", b"ski", "useCase", b"useCase"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... VERSION_FIELD_NUMBER: _builtins.int USECASE_FIELD_NUMBER: _builtins.int SIGNATURE_FIELD_NUMBER: _builtins.int CERTIFICATECHAIN_FIELD_NUMBER: _builtins.int + CERTIFICATECHAINSKI_FIELD_NUMBER: _builtins.int version: _builtins.int useCase: Global___BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType signature: _builtins.bytes @_builtins.property def certificateChain(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... + @_builtins.property + def certificateChainSki(self) -> _containers.RepeatedCompositeFieldContainer[Global___BotSignatureVerificationUseCaseProof.CertificateSKI]: ... def __init__( self, *, @@ -3762,10 +4130,11 @@ class BotSignatureVerificationUseCaseProof(_message.Message): useCase: Global___BotSignatureVerificationUseCaseProof.BotSignatureUseCase.ValueType | None = ..., signature: _builtins.bytes | None = ..., certificateChain: _abc.Iterable[_builtins.bytes] | None = ..., + certificateChainSki: _abc.Iterable[Global___BotSignatureVerificationUseCaseProof.CertificateSKI] | None = ..., ) -> None: ... _HasFieldArgType: _TypeAlias = _typing.Literal["signature", b"signature", "useCase", b"useCase", "version", b"version"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["certificateChain", b"certificateChain", "signature", b"signature", "useCase", b"useCase", "version", b"version"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["certificateChain", b"certificateChain", "certificateChainSki", b"certificateChainSki", "signature", b"signature", "useCase", b"useCase", "version", b"version"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... Global___BotSignatureVerificationUseCaseProof: _TypeAlias = BotSignatureVerificationUseCaseProof # noqa: Y015 @@ -4678,6 +5047,7 @@ class ClientPayload(_message.Message): SMART_GLASSES: ClientPayload.UserAgent._Platform.ValueType # 35 BLUE_VR: ClientPayload.UserAgent._Platform.ValueType # 36 AR_WRIST: ClientPayload.UserAgent._Platform.ValueType # 37 + WAIL: ClientPayload.UserAgent._Platform.ValueType # 38 class Platform(_Platform, metaclass=_PlatformEnumTypeWrapper): ... ANDROID: ClientPayload.UserAgent.Platform.ValueType # 0 @@ -4718,6 +5088,7 @@ class ClientPayload(_message.Message): SMART_GLASSES: ClientPayload.UserAgent.Platform.ValueType # 35 BLUE_VR: ClientPayload.UserAgent.Platform.ValueType # 36 AR_WRIST: ClientPayload.UserAgent.Platform.ValueType # 37 + WAIL: ClientPayload.UserAgent.Platform.ValueType # 38 class _ReleaseChannel: ValueType = _typing.NewType("ValueType", _builtins.int) @@ -5050,6 +5421,70 @@ class ClientPayload(_message.Message): Global___ClientPayload: _TypeAlias = ClientPayload # noqa: Y015 +@_typing.final +class CoexStateSync(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class CollectionMutations(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + COLLECTION_FIELD_NUMBER: _builtins.int + MUTATIONS_FIELD_NUMBER: _builtins.int + collection: _builtins.str + @_builtins.property + def mutations(self) -> _containers.RepeatedCompositeFieldContainer[Global___CoexStateSync.Mutation]: ... + def __init__( + self, + *, + collection: _builtins.str | None = ..., + mutations: _abc.Iterable[Global___CoexStateSync.Mutation] | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["collection", b"collection"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["collection", b"collection", "mutations", b"mutations"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class Mutation(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + INDEX_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + DIRTYVERSION_FIELD_NUMBER: _builtins.int + OPERATION_FIELD_NUMBER: _builtins.int + dirtyVersion: _builtins.int + operation: Global___SyncdMutation.SyncdOperation.ValueType + @_builtins.property + def index(self) -> Global___SyncdIndex: ... + @_builtins.property + def value(self) -> Global___SyncdValue: ... + def __init__( + self, + *, + index: Global___SyncdIndex | None = ..., + value: Global___SyncdValue | None = ..., + dirtyVersion: _builtins.int | None = ..., + operation: Global___SyncdMutation.SyncdOperation.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["dirtyVersion", b"dirtyVersion", "index", b"index", "operation", b"operation", "value", b"value"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["dirtyVersion", b"dirtyVersion", "index", b"index", "operation", b"operation", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + COLLECTIONMUTATIONS_FIELD_NUMBER: _builtins.int + @_builtins.property + def collectionMutations(self) -> _containers.RepeatedCompositeFieldContainer[Global___CoexStateSync.CollectionMutations]: ... + def __init__( + self, + *, + collectionMutations: _abc.Iterable[Global___CoexStateSync.CollectionMutations] | None = ..., + ) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["collectionMutations", b"collectionMutations"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___CoexStateSync: _TypeAlias = CoexStateSync # noqa: Y015 + @_typing.final class CombinedFingerprint(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -6270,11 +6705,37 @@ class ContextInfo(_message.Message): _ClearFieldArgType: _TypeAlias = _typing.Literal["pills", b"pills", "verifiedName", b"verifiedName"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class UnauthenticatedBusinessMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + BUSINESSNAME_FIELD_NUMBER: _builtins.int + BUSINESSCATEGORY_FIELD_NUMBER: _builtins.int + BUSINESSISOPEN_FIELD_NUMBER: _builtins.int + BUSINESSISOPENSNAPSHOTMS_FIELD_NUMBER: _builtins.int + businessName: _builtins.str + businessCategory: _builtins.str + businessIsOpen: _builtins.bool + businessIsOpenSnapshotMs: _builtins.int + def __init__( + self, + *, + businessName: _builtins.str | None = ..., + businessCategory: _builtins.str | None = ..., + businessIsOpen: _builtins.bool | None = ..., + businessIsOpenSnapshotMs: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["businessCategory", b"businessCategory", "businessIsOpen", b"businessIsOpen", "businessIsOpenSnapshotMs", b"businessIsOpenSnapshotMs", "businessName", b"businessName"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["businessCategory", b"businessCategory", "businessIsOpen", b"businessIsOpen", "businessIsOpenSnapshotMs", b"businessIsOpenSnapshotMs", "businessName", b"businessName"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + BUSINESSJID_FIELD_NUMBER: _builtins.int PILLS_FIELD_NUMBER: _builtins.int ENTRYPOINT_FIELD_NUMBER: _builtins.int SIGNEDPAYLOAD_FIELD_NUMBER: _builtins.int SIGNATUREENVELOPE_FIELD_NUMBER: _builtins.int + UNAUTHENTICATEDBUSINESSMETADATA_FIELD_NUMBER: _builtins.int businessJid: _builtins.str entryPoint: Global___ContextInfo.BusinessInteractionPills.EntryPoint.ValueType signedPayload: _builtins.bytes @@ -6282,6 +6743,8 @@ class ContextInfo(_message.Message): def pills(self) -> _containers.RepeatedCompositeFieldContainer[Global___ContextInfo.BusinessInteractionPills.Pill]: ... @_builtins.property def signatureEnvelope(self) -> Global___BotSignatureVerificationMetadata: ... + @_builtins.property + def unauthenticatedBusinessMetadata(self) -> Global___ContextInfo.BusinessInteractionPills.UnauthenticatedBusinessMetadata: ... def __init__( self, *, @@ -6290,10 +6753,11 @@ class ContextInfo(_message.Message): entryPoint: Global___ContextInfo.BusinessInteractionPills.EntryPoint.ValueType | None = ..., signedPayload: _builtins.bytes | None = ..., signatureEnvelope: Global___BotSignatureVerificationMetadata | None = ..., + unauthenticatedBusinessMetadata: Global___ContextInfo.BusinessInteractionPills.UnauthenticatedBusinessMetadata | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["businessJid", b"businessJid", "entryPoint", b"entryPoint", "signatureEnvelope", b"signatureEnvelope", "signedPayload", b"signedPayload"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["businessJid", b"businessJid", "entryPoint", b"entryPoint", "signatureEnvelope", b"signatureEnvelope", "signedPayload", b"signedPayload", "unauthenticatedBusinessMetadata", b"unauthenticatedBusinessMetadata"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["businessJid", b"businessJid", "entryPoint", b"entryPoint", "pills", b"pills", "signatureEnvelope", b"signatureEnvelope", "signedPayload", b"signedPayload"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["businessJid", b"businessJid", "entryPoint", b"entryPoint", "pills", b"pills", "signatureEnvelope", b"signatureEnvelope", "signedPayload", b"signedPayload", "unauthenticatedBusinessMetadata", b"unauthenticatedBusinessMetadata"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final @@ -6591,6 +7055,22 @@ class ContextInfo(_message.Message): _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityText", b"accessibilityText", "contentType", b"contentType", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName", "profileName", b"profileName", "serverMessageId", b"serverMessageId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class InstagramThreadLink(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + URL_FIELD_NUMBER: _builtins.int + url: _builtins.str + def __init__( + self, + *, + url: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["url", b"url"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["url", b"url"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final class PartiallySelectedContent(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -6747,6 +7227,8 @@ class ContextInfo(_message.Message): CROSSAPPSOURCE_FIELD_NUMBER: _builtins.int BUSINESSINTERACTIONPILLS_FIELD_NUMBER: _builtins.int POSTERSTATUSID_FIELD_NUMBER: _builtins.int + INSTAGRAMTHREADLINK_FIELD_NUMBER: _builtins.int + AIPROVENANCE_FIELD_NUMBER: _builtins.int stanzaId: _builtins.str participant: _builtins.str remoteJid: _builtins.str @@ -6832,6 +7314,10 @@ class ContextInfo(_message.Message): def partiallySelectedContent(self) -> Global___ContextInfo.PartiallySelectedContent: ... @_builtins.property def businessInteractionPills(self) -> Global___ContextInfo.BusinessInteractionPills: ... + @_builtins.property + def instagramThreadLink(self) -> Global___ContextInfo.InstagramThreadLink: ... + @_builtins.property + def aiProvenance(self) -> Global___AIProvenance: ... def __init__( self, *, @@ -6897,10 +7383,12 @@ class ContextInfo(_message.Message): crossAppSource: Global___ContextInfo.CrossAppSource.ValueType | None = ..., businessInteractionPills: Global___ContextInfo.BusinessInteractionPills | None = ..., posterStatusId: _builtins.str | None = ..., + instagramThreadLink: Global___ContextInfo.InstagramThreadLink | None = ..., + aiProvenance: Global___AIProvenance | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["actionLink", b"actionLink", "afterReadDuration", b"afterReadDuration", "alwaysShowAdAttribution", b"alwaysShowAdAttribution", "botMessageSharingInfo", b"botMessageSharingInfo", "businessInteractionPills", b"businessInteractionPills", "businessMessageForwardInfo", b"businessMessageForwardInfo", "conversionData", b"conversionData", "conversionDelaySeconds", b"conversionDelaySeconds", "conversionSource", b"conversionSource", "crossAppSource", b"crossAppSource", "ctwaPayload", b"ctwaPayload", "ctwaSignals", b"ctwaSignals", "dataSharingContext", b"dataSharingContext", "disappearingMode", b"disappearingMode", "entryPointConversionApp", b"entryPointConversionApp", "entryPointConversionDelaySeconds", b"entryPointConversionDelaySeconds", "entryPointConversionExternalMedium", b"entryPointConversionExternalMedium", "entryPointConversionExternalSource", b"entryPointConversionExternalSource", "entryPointConversionSource", b"entryPointConversionSource", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "ephemeralSharedSecret", b"ephemeralSharedSecret", "expiration", b"expiration", "externalAdReply", b"externalAdReply", "featureEligibilities", b"featureEligibilities", "forwardOrigin", b"forwardOrigin", "forwardedAiBotMessageInfo", b"forwardedAiBotMessageInfo", "forwardedNewsletterMessageInfo", b"forwardedNewsletterMessageInfo", "forwardingScore", b"forwardingScore", "groupSubject", b"groupSubject", "isForwarded", b"isForwarded", "isGroupStatus", b"isGroupStatus", "isQuestion", b"isQuestion", "isSampled", b"isSampled", "isSpoiler", b"isSpoiler", "mediaDomainInfo", b"mediaDomainInfo", "memberLabel", b"memberLabel", "nonJidMentions", b"nonJidMentions", "pairedMediaType", b"pairedMediaType", "parentGroupJid", b"parentGroupJid", "partiallySelectedContent", b"partiallySelectedContent", "participant", b"participant", "placeholderKey", b"placeholderKey", "posterStatusId", b"posterStatusId", "questionReplyQuotedMessage", b"questionReplyQuotedMessage", "quotedAd", b"quotedAd", "quotedMessage", b"quotedMessage", "quotedType", b"quotedType", "rankingVersion", b"rankingVersion", "remoteJid", b"remoteJid", "smbClientCampaignId", b"smbClientCampaignId", "smbServerCampaignId", b"smbServerCampaignId", "stanzaId", b"stanzaId", "statusAttributionType", b"statusAttributionType", "statusAudienceMetadata", b"statusAudienceMetadata", "statusSourceType", b"statusSourceType", "trustBannerAction", b"trustBannerAction", "trustBannerType", b"trustBannerType", "urlTrackingMap", b"urlTrackingMap", "utm", b"utm"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["actionLink", b"actionLink", "afterReadDuration", b"afterReadDuration", "aiProvenance", b"aiProvenance", "alwaysShowAdAttribution", b"alwaysShowAdAttribution", "botMessageSharingInfo", b"botMessageSharingInfo", "businessInteractionPills", b"businessInteractionPills", "businessMessageForwardInfo", b"businessMessageForwardInfo", "conversionData", b"conversionData", "conversionDelaySeconds", b"conversionDelaySeconds", "conversionSource", b"conversionSource", "crossAppSource", b"crossAppSource", "ctwaPayload", b"ctwaPayload", "ctwaSignals", b"ctwaSignals", "dataSharingContext", b"dataSharingContext", "disappearingMode", b"disappearingMode", "entryPointConversionApp", b"entryPointConversionApp", "entryPointConversionDelaySeconds", b"entryPointConversionDelaySeconds", "entryPointConversionExternalMedium", b"entryPointConversionExternalMedium", "entryPointConversionExternalSource", b"entryPointConversionExternalSource", "entryPointConversionSource", b"entryPointConversionSource", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "ephemeralSharedSecret", b"ephemeralSharedSecret", "expiration", b"expiration", "externalAdReply", b"externalAdReply", "featureEligibilities", b"featureEligibilities", "forwardOrigin", b"forwardOrigin", "forwardedAiBotMessageInfo", b"forwardedAiBotMessageInfo", "forwardedNewsletterMessageInfo", b"forwardedNewsletterMessageInfo", "forwardingScore", b"forwardingScore", "groupSubject", b"groupSubject", "instagramThreadLink", b"instagramThreadLink", "isForwarded", b"isForwarded", "isGroupStatus", b"isGroupStatus", "isQuestion", b"isQuestion", "isSampled", b"isSampled", "isSpoiler", b"isSpoiler", "mediaDomainInfo", b"mediaDomainInfo", "memberLabel", b"memberLabel", "nonJidMentions", b"nonJidMentions", "pairedMediaType", b"pairedMediaType", "parentGroupJid", b"parentGroupJid", "partiallySelectedContent", b"partiallySelectedContent", "participant", b"participant", "placeholderKey", b"placeholderKey", "posterStatusId", b"posterStatusId", "questionReplyQuotedMessage", b"questionReplyQuotedMessage", "quotedAd", b"quotedAd", "quotedMessage", b"quotedMessage", "quotedType", b"quotedType", "rankingVersion", b"rankingVersion", "remoteJid", b"remoteJid", "smbClientCampaignId", b"smbClientCampaignId", "smbServerCampaignId", b"smbServerCampaignId", "stanzaId", b"stanzaId", "statusAttributionType", b"statusAttributionType", "statusAudienceMetadata", b"statusAudienceMetadata", "statusSourceType", b"statusSourceType", "trustBannerAction", b"trustBannerAction", "trustBannerType", b"trustBannerType", "urlTrackingMap", b"urlTrackingMap", "utm", b"utm"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["actionLink", b"actionLink", "afterReadDuration", b"afterReadDuration", "alwaysShowAdAttribution", b"alwaysShowAdAttribution", "botMessageSharingInfo", b"botMessageSharingInfo", "businessInteractionPills", b"businessInteractionPills", "businessMessageForwardInfo", b"businessMessageForwardInfo", "conversionData", b"conversionData", "conversionDelaySeconds", b"conversionDelaySeconds", "conversionSource", b"conversionSource", "crossAppSource", b"crossAppSource", "ctwaPayload", b"ctwaPayload", "ctwaSignals", b"ctwaSignals", "dataSharingContext", b"dataSharingContext", "disappearingMode", b"disappearingMode", "entryPointConversionApp", b"entryPointConversionApp", "entryPointConversionDelaySeconds", b"entryPointConversionDelaySeconds", "entryPointConversionExternalMedium", b"entryPointConversionExternalMedium", "entryPointConversionExternalSource", b"entryPointConversionExternalSource", "entryPointConversionSource", b"entryPointConversionSource", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "ephemeralSharedSecret", b"ephemeralSharedSecret", "expiration", b"expiration", "externalAdReply", b"externalAdReply", "featureEligibilities", b"featureEligibilities", "forwardOrigin", b"forwardOrigin", "forwardedAiBotMessageInfo", b"forwardedAiBotMessageInfo", "forwardedNewsletterMessageInfo", b"forwardedNewsletterMessageInfo", "forwardingScore", b"forwardingScore", "groupMentions", b"groupMentions", "groupSubject", b"groupSubject", "isForwarded", b"isForwarded", "isGroupStatus", b"isGroupStatus", "isQuestion", b"isQuestion", "isSampled", b"isSampled", "isSpoiler", b"isSpoiler", "mediaDomainInfo", b"mediaDomainInfo", "memberLabel", b"memberLabel", "mentionedJid", b"mentionedJid", "nonJidMentions", b"nonJidMentions", "pairedMediaType", b"pairedMediaType", "parentGroupJid", b"parentGroupJid", "partiallySelectedContent", b"partiallySelectedContent", "participant", b"participant", "placeholderKey", b"placeholderKey", "posterStatusId", b"posterStatusId", "questionReplyQuotedMessage", b"questionReplyQuotedMessage", "quotedAd", b"quotedAd", "quotedMessage", b"quotedMessage", "quotedType", b"quotedType", "rankingVersion", b"rankingVersion", "remoteJid", b"remoteJid", "smbClientCampaignId", b"smbClientCampaignId", "smbServerCampaignId", b"smbServerCampaignId", "stanzaId", b"stanzaId", "statusAttributionType", b"statusAttributionType", "statusAttributions", b"statusAttributions", "statusAudienceMetadata", b"statusAudienceMetadata", "statusSourceType", b"statusSourceType", "trustBannerAction", b"trustBannerAction", "trustBannerType", b"trustBannerType", "urlTrackingMap", b"urlTrackingMap", "utm", b"utm"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["actionLink", b"actionLink", "afterReadDuration", b"afterReadDuration", "aiProvenance", b"aiProvenance", "alwaysShowAdAttribution", b"alwaysShowAdAttribution", "botMessageSharingInfo", b"botMessageSharingInfo", "businessInteractionPills", b"businessInteractionPills", "businessMessageForwardInfo", b"businessMessageForwardInfo", "conversionData", b"conversionData", "conversionDelaySeconds", b"conversionDelaySeconds", "conversionSource", b"conversionSource", "crossAppSource", b"crossAppSource", "ctwaPayload", b"ctwaPayload", "ctwaSignals", b"ctwaSignals", "dataSharingContext", b"dataSharingContext", "disappearingMode", b"disappearingMode", "entryPointConversionApp", b"entryPointConversionApp", "entryPointConversionDelaySeconds", b"entryPointConversionDelaySeconds", "entryPointConversionExternalMedium", b"entryPointConversionExternalMedium", "entryPointConversionExternalSource", b"entryPointConversionExternalSource", "entryPointConversionSource", b"entryPointConversionSource", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "ephemeralSharedSecret", b"ephemeralSharedSecret", "expiration", b"expiration", "externalAdReply", b"externalAdReply", "featureEligibilities", b"featureEligibilities", "forwardOrigin", b"forwardOrigin", "forwardedAiBotMessageInfo", b"forwardedAiBotMessageInfo", "forwardedNewsletterMessageInfo", b"forwardedNewsletterMessageInfo", "forwardingScore", b"forwardingScore", "groupMentions", b"groupMentions", "groupSubject", b"groupSubject", "instagramThreadLink", b"instagramThreadLink", "isForwarded", b"isForwarded", "isGroupStatus", b"isGroupStatus", "isQuestion", b"isQuestion", "isSampled", b"isSampled", "isSpoiler", b"isSpoiler", "mediaDomainInfo", b"mediaDomainInfo", "memberLabel", b"memberLabel", "mentionedJid", b"mentionedJid", "nonJidMentions", b"nonJidMentions", "pairedMediaType", b"pairedMediaType", "parentGroupJid", b"parentGroupJid", "partiallySelectedContent", b"partiallySelectedContent", "participant", b"participant", "placeholderKey", b"placeholderKey", "posterStatusId", b"posterStatusId", "questionReplyQuotedMessage", b"questionReplyQuotedMessage", "quotedAd", b"quotedAd", "quotedMessage", b"quotedMessage", "quotedType", b"quotedType", "rankingVersion", b"rankingVersion", "remoteJid", b"remoteJid", "smbClientCampaignId", b"smbClientCampaignId", "smbServerCampaignId", b"smbServerCampaignId", "stanzaId", b"stanzaId", "statusAttributionType", b"statusAttributionType", "statusAttributions", b"statusAttributions", "statusAudienceMetadata", b"statusAudienceMetadata", "statusSourceType", b"statusSourceType", "trustBannerAction", b"trustBannerAction", "trustBannerType", b"trustBannerType", "urlTrackingMap", b"urlTrackingMap", "utm", b"utm"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... Global___ContextInfo: _TypeAlias = ContextInfo # noqa: Y015 @@ -7005,6 +7493,7 @@ class Conversation(_message.Message): APPEALUPDATETIME_FIELD_NUMBER: _builtins.int AUTHAGENTPARENTCOMPANYNAME_FIELD_NUMBER: _builtins.int AUTHAGENTOBAPHONENUMBER_FIELD_NUMBER: _builtins.int + IDENTITYVERIFICATION_FIELD_NUMBER: _builtins.int id: _builtins.str newJid: _builtins.str oldJid: _builtins.str @@ -7071,6 +7560,8 @@ class Conversation(_message.Message): def participant(self) -> _containers.RepeatedCompositeFieldContainer[Global___GroupParticipant]: ... @_builtins.property def wallpaper(self) -> Global___WallpaperSettings: ... + @_builtins.property + def identityVerification(self) -> Global___IdentityVerificationState: ... def __init__( self, *, @@ -7136,8420 +7627,10803 @@ class Conversation(_message.Message): appealUpdateTime: _builtins.int | None = ..., authAgentParentCompanyName: _builtins.str | None = ..., authAgentObaPhoneNumber: _builtins.str | None = ..., + identityVerification: Global___IdentityVerificationState | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["accountLid", b"accountLid", "afterReadDuration", b"afterReadDuration", "appealStatus", b"appealStatus", "appealUpdateTime", b"appealUpdateTime", "archived", b"archived", "authAgentObaPhoneNumber", b"authAgentObaPhoneNumber", "authAgentParentCompanyName", b"authAgentParentCompanyName", "capiCreatedGroup", b"capiCreatedGroup", "commentsCount", b"commentsCount", "contactPrimaryIdentityKey", b"contactPrimaryIdentityKey", "conversationTimestamp", b"conversationTimestamp", "createdAt", b"createdAt", "createdBy", b"createdBy", "description", b"description", "disappearingMode", b"disappearingMode", "displayName", b"displayName", "endOfHistoryTransfer", b"endOfHistoryTransfer", "endOfHistoryTransferType", b"endOfHistoryTransferType", "ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "id", b"id", "isDefaultSubgroup", b"isDefaultSubgroup", "isMarketingMessageThread", b"isMarketingMessageThread", "isParentGroup", b"isParentGroup", "isSenderNewAccount", b"isSenderNewAccount", "isSenderSuspicious", b"isSenderSuspicious", "lastMsgTimestamp", b"lastMsgTimestamp", "lidJid", b"lidJid", "lidOriginType", b"lidOriginType", "limitSharing", b"limitSharing", "limitSharingInitiatedByMe", b"limitSharingInitiatedByMe", "limitSharingSettingTimestamp", b"limitSharingSettingTimestamp", "limitSharingTrigger", b"limitSharingTrigger", "locked", b"locked", "maibaAiThreadEnabled", b"maibaAiThreadEnabled", "markedAsUnread", b"markedAsUnread", "mediaVisibility", b"mediaVisibility", "muteEndTime", b"muteEndTime", "name", b"name", "newJid", b"newJid", "notSpam", b"notSpam", "oldJid", b"oldJid", "pHash", b"pHash", "parentGroupId", b"parentGroupId", "pinned", b"pinned", "pnJid", b"pnJid", "pnhDuplicateLidThread", b"pnhDuplicateLidThread", "readOnly", b"readOnly", "shareOwnPn", b"shareOwnPn", "support", b"support", "suspended", b"suspended", "systemMessageToInsert", b"systemMessageToInsert", "tcToken", b"tcToken", "tcTokenSenderTimestamp", b"tcTokenSenderTimestamp", "tcTokenTimestamp", b"tcTokenTimestamp", "terminated", b"terminated", "unreadCount", b"unreadCount", "unreadMentionCount", b"unreadMentionCount", "username", b"username", "wallpaper", b"wallpaper"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["accountLid", b"accountLid", "afterReadDuration", b"afterReadDuration", "appealStatus", b"appealStatus", "appealUpdateTime", b"appealUpdateTime", "archived", b"archived", "authAgentObaPhoneNumber", b"authAgentObaPhoneNumber", "authAgentParentCompanyName", b"authAgentParentCompanyName", "capiCreatedGroup", b"capiCreatedGroup", "commentsCount", b"commentsCount", "contactPrimaryIdentityKey", b"contactPrimaryIdentityKey", "conversationTimestamp", b"conversationTimestamp", "createdAt", b"createdAt", "createdBy", b"createdBy", "description", b"description", "disappearingMode", b"disappearingMode", "displayName", b"displayName", "endOfHistoryTransfer", b"endOfHistoryTransfer", "endOfHistoryTransferType", b"endOfHistoryTransferType", "ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "id", b"id", "identityVerification", b"identityVerification", "isDefaultSubgroup", b"isDefaultSubgroup", "isMarketingMessageThread", b"isMarketingMessageThread", "isParentGroup", b"isParentGroup", "isSenderNewAccount", b"isSenderNewAccount", "isSenderSuspicious", b"isSenderSuspicious", "lastMsgTimestamp", b"lastMsgTimestamp", "lidJid", b"lidJid", "lidOriginType", b"lidOriginType", "limitSharing", b"limitSharing", "limitSharingInitiatedByMe", b"limitSharingInitiatedByMe", "limitSharingSettingTimestamp", b"limitSharingSettingTimestamp", "limitSharingTrigger", b"limitSharingTrigger", "locked", b"locked", "maibaAiThreadEnabled", b"maibaAiThreadEnabled", "markedAsUnread", b"markedAsUnread", "mediaVisibility", b"mediaVisibility", "muteEndTime", b"muteEndTime", "name", b"name", "newJid", b"newJid", "notSpam", b"notSpam", "oldJid", b"oldJid", "pHash", b"pHash", "parentGroupId", b"parentGroupId", "pinned", b"pinned", "pnJid", b"pnJid", "pnhDuplicateLidThread", b"pnhDuplicateLidThread", "readOnly", b"readOnly", "shareOwnPn", b"shareOwnPn", "support", b"support", "suspended", b"suspended", "systemMessageToInsert", b"systemMessageToInsert", "tcToken", b"tcToken", "tcTokenSenderTimestamp", b"tcTokenSenderTimestamp", "tcTokenTimestamp", b"tcTokenTimestamp", "terminated", b"terminated", "unreadCount", b"unreadCount", "unreadMentionCount", b"unreadMentionCount", "username", b"username", "wallpaper", b"wallpaper"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["accountLid", b"accountLid", "afterReadDuration", b"afterReadDuration", "appealStatus", b"appealStatus", "appealUpdateTime", b"appealUpdateTime", "archived", b"archived", "authAgentObaPhoneNumber", b"authAgentObaPhoneNumber", "authAgentParentCompanyName", b"authAgentParentCompanyName", "capiCreatedGroup", b"capiCreatedGroup", "commentsCount", b"commentsCount", "contactPrimaryIdentityKey", b"contactPrimaryIdentityKey", "conversationTimestamp", b"conversationTimestamp", "createdAt", b"createdAt", "createdBy", b"createdBy", "description", b"description", "disappearingMode", b"disappearingMode", "displayName", b"displayName", "endOfHistoryTransfer", b"endOfHistoryTransfer", "endOfHistoryTransferType", b"endOfHistoryTransferType", "ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "id", b"id", "isDefaultSubgroup", b"isDefaultSubgroup", "isMarketingMessageThread", b"isMarketingMessageThread", "isParentGroup", b"isParentGroup", "isSenderNewAccount", b"isSenderNewAccount", "isSenderSuspicious", b"isSenderSuspicious", "lastMsgTimestamp", b"lastMsgTimestamp", "lidJid", b"lidJid", "lidOriginType", b"lidOriginType", "limitSharing", b"limitSharing", "limitSharingInitiatedByMe", b"limitSharingInitiatedByMe", "limitSharingSettingTimestamp", b"limitSharingSettingTimestamp", "limitSharingTrigger", b"limitSharingTrigger", "locked", b"locked", "maibaAiThreadEnabled", b"maibaAiThreadEnabled", "markedAsUnread", b"markedAsUnread", "mediaVisibility", b"mediaVisibility", "messages", b"messages", "muteEndTime", b"muteEndTime", "name", b"name", "newJid", b"newJid", "notSpam", b"notSpam", "oldJid", b"oldJid", "pHash", b"pHash", "parentGroupId", b"parentGroupId", "participant", b"participant", "pinned", b"pinned", "pnJid", b"pnJid", "pnhDuplicateLidThread", b"pnhDuplicateLidThread", "readOnly", b"readOnly", "shareOwnPn", b"shareOwnPn", "support", b"support", "suspended", b"suspended", "systemMessageToInsert", b"systemMessageToInsert", "tcToken", b"tcToken", "tcTokenSenderTimestamp", b"tcTokenSenderTimestamp", "tcTokenTimestamp", b"tcTokenTimestamp", "terminated", b"terminated", "unreadCount", b"unreadCount", "unreadMentionCount", b"unreadMentionCount", "username", b"username", "wallpaper", b"wallpaper"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["accountLid", b"accountLid", "afterReadDuration", b"afterReadDuration", "appealStatus", b"appealStatus", "appealUpdateTime", b"appealUpdateTime", "archived", b"archived", "authAgentObaPhoneNumber", b"authAgentObaPhoneNumber", "authAgentParentCompanyName", b"authAgentParentCompanyName", "capiCreatedGroup", b"capiCreatedGroup", "commentsCount", b"commentsCount", "contactPrimaryIdentityKey", b"contactPrimaryIdentityKey", "conversationTimestamp", b"conversationTimestamp", "createdAt", b"createdAt", "createdBy", b"createdBy", "description", b"description", "disappearingMode", b"disappearingMode", "displayName", b"displayName", "endOfHistoryTransfer", b"endOfHistoryTransfer", "endOfHistoryTransferType", b"endOfHistoryTransferType", "ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "id", b"id", "identityVerification", b"identityVerification", "isDefaultSubgroup", b"isDefaultSubgroup", "isMarketingMessageThread", b"isMarketingMessageThread", "isParentGroup", b"isParentGroup", "isSenderNewAccount", b"isSenderNewAccount", "isSenderSuspicious", b"isSenderSuspicious", "lastMsgTimestamp", b"lastMsgTimestamp", "lidJid", b"lidJid", "lidOriginType", b"lidOriginType", "limitSharing", b"limitSharing", "limitSharingInitiatedByMe", b"limitSharingInitiatedByMe", "limitSharingSettingTimestamp", b"limitSharingSettingTimestamp", "limitSharingTrigger", b"limitSharingTrigger", "locked", b"locked", "maibaAiThreadEnabled", b"maibaAiThreadEnabled", "markedAsUnread", b"markedAsUnread", "mediaVisibility", b"mediaVisibility", "messages", b"messages", "muteEndTime", b"muteEndTime", "name", b"name", "newJid", b"newJid", "notSpam", b"notSpam", "oldJid", b"oldJid", "pHash", b"pHash", "parentGroupId", b"parentGroupId", "participant", b"participant", "pinned", b"pinned", "pnJid", b"pnJid", "pnhDuplicateLidThread", b"pnhDuplicateLidThread", "readOnly", b"readOnly", "shareOwnPn", b"shareOwnPn", "support", b"support", "suspended", b"suspended", "systemMessageToInsert", b"systemMessageToInsert", "tcToken", b"tcToken", "tcTokenSenderTimestamp", b"tcTokenSenderTimestamp", "tcTokenTimestamp", b"tcTokenTimestamp", "terminated", b"terminated", "unreadCount", b"unreadCount", "unreadMentionCount", b"unreadMentionCount", "username", b"username", "wallpaper", b"wallpaper"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... Global___Conversation: _TypeAlias = Conversation # noqa: Y015 @_typing.final -class DeviceCapabilities(_message.Message): +class CreateBackupInput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _ChatLockSupportLevel: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + RECOVERYCODE_FIELD_NUMBER: _builtins.int + USERID_FIELD_NUMBER: _builtins.int + recoveryCode: _builtins.str + userId: _builtins.int + def __init__( + self, + *, + recoveryCode: _builtins.str | None = ..., + userId: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["recoveryCode", b"recoveryCode", "userId", b"userId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["recoveryCode", b"recoveryCode", "userId", b"userId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _ChatLockSupportLevelEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DeviceCapabilities._ChatLockSupportLevel.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - NONE: DeviceCapabilities._ChatLockSupportLevel.ValueType # 0 - MINIMAL: DeviceCapabilities._ChatLockSupportLevel.ValueType # 1 - FULL: DeviceCapabilities._ChatLockSupportLevel.ValueType # 2 +Global___CreateBackupInput: _TypeAlias = CreateBackupInput # noqa: Y015 - class ChatLockSupportLevel(_ChatLockSupportLevel, metaclass=_ChatLockSupportLevelEnumTypeWrapper): ... - NONE: DeviceCapabilities.ChatLockSupportLevel.ValueType # 0 - MINIMAL: DeviceCapabilities.ChatLockSupportLevel.ValueType # 1 - FULL: DeviceCapabilities.ChatLockSupportLevel.ValueType # 2 +@_typing.final +class CreateBackupOutput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _MemberNameTagPrimarySupport: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + DEVICE_FIELD_NUMBER: _builtins.int + VIRTUALDEVICE_FIELD_NUMBER: _builtins.int + EPOCH0_FIELD_NUMBER: _builtins.int + MAILBOXROOTKEY_FIELD_NUMBER: _builtins.int + ERROR_FIELD_NUMBER: _builtins.int + mailboxRootKey: _builtins.bytes + error: _builtins.str + @_builtins.property + def device(self) -> Global___DeviceOutput: ... + @_builtins.property + def virtualDevice(self) -> Global___VirtualDeviceOutput: ... + @_builtins.property + def epoch0(self) -> Global___Epoch0Output: ... + def __init__( + self, + *, + device: Global___DeviceOutput | None = ..., + virtualDevice: Global___VirtualDeviceOutput | None = ..., + epoch0: Global___Epoch0Output | None = ..., + mailboxRootKey: _builtins.bytes | None = ..., + error: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["device", b"device", "epoch0", b"epoch0", "error", b"error", "mailboxRootKey", b"mailboxRootKey", "virtualDevice", b"virtualDevice"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["device", b"device", "epoch0", b"epoch0", "error", b"error", "mailboxRootKey", b"mailboxRootKey", "virtualDevice", b"virtualDevice"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _MemberNameTagPrimarySupportEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DeviceCapabilities._MemberNameTagPrimarySupport.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - DISABLED: DeviceCapabilities._MemberNameTagPrimarySupport.ValueType # 0 - RECEIVER_ENABLED: DeviceCapabilities._MemberNameTagPrimarySupport.ValueType # 1 - SENDER_ENABLED: DeviceCapabilities._MemberNameTagPrimarySupport.ValueType # 2 +Global___CreateBackupOutput: _TypeAlias = CreateBackupOutput # noqa: Y015 - class MemberNameTagPrimarySupport(_MemberNameTagPrimarySupport, metaclass=_MemberNameTagPrimarySupportEnumTypeWrapper): ... - DISABLED: DeviceCapabilities.MemberNameTagPrimarySupport.ValueType # 0 - RECEIVER_ENABLED: DeviceCapabilities.MemberNameTagPrimarySupport.ValueType # 1 - SENDER_ENABLED: DeviceCapabilities.MemberNameTagPrimarySupport.ValueType # 2 +@_typing.final +class DecryptMekForDistributionFromTransportSenderInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor @_typing.final - class AiThread(_message.Message): + class TransportSenderMEKDistributionSingleRecipient(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _SupportLevel: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _SupportLevelEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DeviceCapabilities.AiThread._SupportLevel.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - NONE: DeviceCapabilities.AiThread._SupportLevel.ValueType # 0 - INFRA: DeviceCapabilities.AiThread._SupportLevel.ValueType # 1 - FULL: DeviceCapabilities.AiThread._SupportLevel.ValueType # 2 - - class SupportLevel(_SupportLevel, metaclass=_SupportLevelEnumTypeWrapper): ... - NONE: DeviceCapabilities.AiThread.SupportLevel.ValueType # 0 - INFRA: DeviceCapabilities.AiThread.SupportLevel.ValueType # 1 - FULL: DeviceCapabilities.AiThread.SupportLevel.ValueType # 2 - - SUPPORTLEVEL_FIELD_NUMBER: _builtins.int - supportLevel: Global___DeviceCapabilities.AiThread.SupportLevel.ValueType + ENCRYPTEDMEK_FIELD_NUMBER: _builtins.int + EPHEMERALENCRYPTIONPK_FIELD_NUMBER: _builtins.int + SIGNINGPK_FIELD_NUMBER: _builtins.int + SIGNATURE_FIELD_NUMBER: _builtins.int + RECIPIENTEPOCHHEAD_FIELD_NUMBER: _builtins.int + encryptedMek: _builtins.bytes + ephemeralEncryptionPk: _builtins.bytes + signingPk: _builtins.bytes + signature: _builtins.bytes + recipientEpochHead: _builtins.bytes def __init__( self, *, - supportLevel: Global___DeviceCapabilities.AiThread.SupportLevel.ValueType | None = ..., + encryptedMek: _builtins.bytes | None = ..., + ephemeralEncryptionPk: _builtins.bytes | None = ..., + signingPk: _builtins.bytes | None = ..., + signature: _builtins.bytes | None = ..., + recipientEpochHead: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["supportLevel", b"supportLevel"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedMek", b"encryptedMek", "ephemeralEncryptionPk", b"ephemeralEncryptionPk", "recipientEpochHead", b"recipientEpochHead", "signature", b"signature", "signingPk", b"signingPk"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["supportLevel", b"supportLevel"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedMek", b"encryptedMek", "ephemeralEncryptionPk", b"ephemeralEncryptionPk", "recipientEpochHead", b"recipientEpochHead", "signature", b"signature", "signingPk", b"signingPk"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class BusinessBroadcast(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + MEKDISTRIBUTION_FIELD_NUMBER: _builtins.int + MEKID_FIELD_NUMBER: _builtins.int + ROSTERHASH_FIELD_NUMBER: _builtins.int + RECIPIENTENCSK_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + CONF_FIELD_NUMBER: _builtins.int + mekId: _builtins.bytes + rosterHash: _builtins.bytes + recipientEncSk: _builtins.bytes + version: _builtins.int + @_builtins.property + def mekDistribution(self) -> Global___DecryptMekForDistributionFromTransportSenderInput.TransportSenderMEKDistributionSingleRecipient: ... + @_builtins.property + def conf(self) -> Global___MinosClientConfig: ... + def __init__( + self, + *, + mekDistribution: Global___DecryptMekForDistributionFromTransportSenderInput.TransportSenderMEKDistributionSingleRecipient | None = ..., + mekId: _builtins.bytes | None = ..., + rosterHash: _builtins.bytes | None = ..., + recipientEncSk: _builtins.bytes | None = ..., + version: _builtins.int | None = ..., + conf: Global___MinosClientConfig | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "mekDistribution", b"mekDistribution", "mekId", b"mekId", "recipientEncSk", b"recipientEncSk", "rosterHash", b"rosterHash", "version", b"version"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "mekDistribution", b"mekDistribution", "mekId", b"mekId", "recipientEncSk", b"recipientEncSk", "rosterHash", b"rosterHash", "version", b"version"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - IMPORTLISTENABLED_FIELD_NUMBER: _builtins.int - COMPANIONSUPPORTENABLED_FIELD_NUMBER: _builtins.int - CAMPAIGNSYNCENABLED_FIELD_NUMBER: _builtins.int - INSIGHTSSYNCENABLED_FIELD_NUMBER: _builtins.int - RECIPIENTLIMIT_FIELD_NUMBER: _builtins.int - importListEnabled: _builtins.bool - companionSupportEnabled: _builtins.bool - campaignSyncEnabled: _builtins.bool - insightsSyncEnabled: _builtins.bool - recipientLimit: _builtins.int - def __init__( - self, - *, - importListEnabled: _builtins.bool | None = ..., - companionSupportEnabled: _builtins.bool | None = ..., - campaignSyncEnabled: _builtins.bool | None = ..., - insightsSyncEnabled: _builtins.bool | None = ..., - recipientLimit: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["campaignSyncEnabled", b"campaignSyncEnabled", "companionSupportEnabled", b"companionSupportEnabled", "importListEnabled", b"importListEnabled", "insightsSyncEnabled", b"insightsSyncEnabled", "recipientLimit", b"recipientLimit"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["campaignSyncEnabled", b"campaignSyncEnabled", "companionSupportEnabled", b"companionSupportEnabled", "importListEnabled", b"importListEnabled", "insightsSyncEnabled", b"insightsSyncEnabled", "recipientLimit", b"recipientLimit"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___DecryptMekForDistributionFromTransportSenderInput: _TypeAlias = DecryptMekForDistributionFromTransportSenderInput # noqa: Y015 - @_typing.final - class LIDMigration(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +@_typing.final +class DecryptMekForDistributionFromTransportSenderResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - CHATDBMIGRATIONTIMESTAMP_FIELD_NUMBER: _builtins.int - chatDbMigrationTimestamp: _builtins.int - def __init__( - self, - *, - chatDbMigrationTimestamp: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + SUCCESS_FIELD_NUMBER: _builtins.int + ERRORMESSAGE_FIELD_NUMBER: _builtins.int + errorMessage: _builtins.str + @_builtins.property + def success(self) -> Global___DecryptMekForDistributionFromTransportSenderSuccess: ... + def __init__( + self, + *, + success: Global___DecryptMekForDistributionFromTransportSenderSuccess | None = ..., + errorMessage: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015 + _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ... - @_typing.final - class UserHasAvatar(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +Global___DecryptMekForDistributionFromTransportSenderResult: _TypeAlias = DecryptMekForDistributionFromTransportSenderResult # noqa: Y015 - USERHASAVATAR_FIELD_NUMBER: _builtins.int - userHasAvatar: _builtins.bool - def __init__( - self, - *, - userHasAvatar: _builtins.bool | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["userHasAvatar", b"userHasAvatar"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["userHasAvatar", b"userHasAvatar"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +@_typing.final +class DecryptMekForDistributionFromTransportSenderSuccess(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - CHATLOCKSUPPORTLEVEL_FIELD_NUMBER: _builtins.int - LIDMIGRATION_FIELD_NUMBER: _builtins.int - BUSINESSBROADCAST_FIELD_NUMBER: _builtins.int - USERHASAVATAR_FIELD_NUMBER: _builtins.int - MEMBERNAMETAGPRIMARYSUPPORT_FIELD_NUMBER: _builtins.int - AITHREAD_FIELD_NUMBER: _builtins.int - chatLockSupportLevel: Global___DeviceCapabilities.ChatLockSupportLevel.ValueType - memberNameTagPrimarySupport: Global___DeviceCapabilities.MemberNameTagPrimarySupport.ValueType - @_builtins.property - def lidMigration(self) -> Global___DeviceCapabilities.LIDMigration: ... - @_builtins.property - def businessBroadcast(self) -> Global___DeviceCapabilities.BusinessBroadcast: ... + MEK_FIELD_NUMBER: _builtins.int + mek: _builtins.bytes + def __init__( + self, + *, + mek: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["mek", b"mek"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["mek", b"mek"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___DecryptMekForDistributionFromTransportSenderSuccess: _TypeAlias = DecryptMekForDistributionFromTransportSenderSuccess # noqa: Y015 + +@_typing.final +class DecryptMekForDistributionInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + TOMAILBOXSK_FIELD_NUMBER: _builtins.int + FROMPK_FIELD_NUMBER: _builtins.int + MEKID_FIELD_NUMBER: _builtins.int + SENDEREPOCHHEAD_FIELD_NUMBER: _builtins.int + ROSTERHASH_FIELD_NUMBER: _builtins.int + CIPHERTEXT_FIELD_NUMBER: _builtins.int + TOEPOCHHEAD_FIELD_NUMBER: _builtins.int + MEKENCRYPTIONVERSION_FIELD_NUMBER: _builtins.int + CONF_FIELD_NUMBER: _builtins.int + toMailboxSk: _builtins.bytes + fromPk: _builtins.bytes + mekId: _builtins.bytes + senderEpochHead: _builtins.bytes + rosterHash: _builtins.bytes + ciphertext: _builtins.bytes + toEpochHead: _builtins.bytes + mekEncryptionVersion: _builtins.int @_builtins.property - def userHasAvatar(self) -> Global___DeviceCapabilities.UserHasAvatar: ... + def conf(self) -> Global___MinosClientConfig: ... + def __init__( + self, + *, + toMailboxSk: _builtins.bytes | None = ..., + fromPk: _builtins.bytes | None = ..., + mekId: _builtins.bytes | None = ..., + senderEpochHead: _builtins.bytes | None = ..., + rosterHash: _builtins.bytes | None = ..., + ciphertext: _builtins.bytes | None = ..., + toEpochHead: _builtins.bytes | None = ..., + mekEncryptionVersion: _builtins.int | None = ..., + conf: Global___MinosClientConfig | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "conf", b"conf", "fromPk", b"fromPk", "mekEncryptionVersion", b"mekEncryptionVersion", "mekId", b"mekId", "rosterHash", b"rosterHash", "senderEpochHead", b"senderEpochHead", "toEpochHead", b"toEpochHead", "toMailboxSk", b"toMailboxSk"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "conf", b"conf", "fromPk", b"fromPk", "mekEncryptionVersion", b"mekEncryptionVersion", "mekId", b"mekId", "rosterHash", b"rosterHash", "senderEpochHead", b"senderEpochHead", "toEpochHead", b"toEpochHead", "toMailboxSk", b"toMailboxSk"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___DecryptMekForDistributionInput: _TypeAlias = DecryptMekForDistributionInput # noqa: Y015 + +@_typing.final +class DecryptMekForDistributionResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + SUCCESS_FIELD_NUMBER: _builtins.int + ERRORMESSAGE_FIELD_NUMBER: _builtins.int + errorMessage: _builtins.str @_builtins.property - def aiThread(self) -> Global___DeviceCapabilities.AiThread: ... + def success(self) -> Global___DecryptMekForDistributionSuccess: ... def __init__( self, *, - chatLockSupportLevel: Global___DeviceCapabilities.ChatLockSupportLevel.ValueType | None = ..., - lidMigration: Global___DeviceCapabilities.LIDMigration | None = ..., - businessBroadcast: Global___DeviceCapabilities.BusinessBroadcast | None = ..., - userHasAvatar: Global___DeviceCapabilities.UserHasAvatar | None = ..., - memberNameTagPrimarySupport: Global___DeviceCapabilities.MemberNameTagPrimarySupport.ValueType | None = ..., - aiThread: Global___DeviceCapabilities.AiThread | None = ..., + success: Global___DecryptMekForDistributionSuccess | None = ..., + errorMessage: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["aiThread", b"aiThread", "businessBroadcast", b"businessBroadcast", "chatLockSupportLevel", b"chatLockSupportLevel", "lidMigration", b"lidMigration", "memberNameTagPrimarySupport", b"memberNameTagPrimarySupport", "userHasAvatar", b"userHasAvatar"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["aiThread", b"aiThread", "businessBroadcast", b"businessBroadcast", "chatLockSupportLevel", b"chatLockSupportLevel", "lidMigration", b"lidMigration", "memberNameTagPrimarySupport", b"memberNameTagPrimarySupport", "userHasAvatar", b"userHasAvatar"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015 + _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ... -Global___DeviceCapabilities: _TypeAlias = DeviceCapabilities # noqa: Y015 +Global___DecryptMekForDistributionResult: _TypeAlias = DecryptMekForDistributionResult # noqa: Y015 @_typing.final -class DeviceConsistencyCodeMessage(_message.Message): +class DecryptMekForDistributionSuccess(_message.Message): DESCRIPTOR: _descriptor.Descriptor - GENERATION_FIELD_NUMBER: _builtins.int - SIGNATURE_FIELD_NUMBER: _builtins.int - generation: _builtins.int - signature: _builtins.bytes + MEK_FIELD_NUMBER: _builtins.int + mek: _builtins.bytes def __init__( self, *, - generation: _builtins.int | None = ..., - signature: _builtins.bytes | None = ..., + mek: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["generation", b"generation", "signature", b"signature"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["mek", b"mek"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["generation", b"generation", "signature", b"signature"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["mek", b"mek"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___DeviceConsistencyCodeMessage: _TypeAlias = DeviceConsistencyCodeMessage # noqa: Y015 +Global___DecryptMekForDistributionSuccess: _TypeAlias = DecryptMekForDistributionSuccess # noqa: Y015 @_typing.final -class DeviceListMetadata(_message.Message): +class DecryptMessageInput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - SENDERKEYHASH_FIELD_NUMBER: _builtins.int - SENDERTIMESTAMP_FIELD_NUMBER: _builtins.int - SENDERKEYINDEXES_FIELD_NUMBER: _builtins.int - SENDERACCOUNTTYPE_FIELD_NUMBER: _builtins.int - RECEIVERACCOUNTTYPE_FIELD_NUMBER: _builtins.int - RECIPIENTKEYHASH_FIELD_NUMBER: _builtins.int - RECIPIENTTIMESTAMP_FIELD_NUMBER: _builtins.int - RECIPIENTKEYINDEXES_FIELD_NUMBER: _builtins.int - senderKeyHash: _builtins.bytes - senderTimestamp: _builtins.int - senderAccountType: Global___ADVEncryptionType.ValueType - receiverAccountType: Global___ADVEncryptionType.ValueType - recipientKeyHash: _builtins.bytes - recipientTimestamp: _builtins.int - @_builtins.property - def senderKeyIndexes(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... - @_builtins.property - def recipientKeyIndexes(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... + EPOCHROOTKEY_FIELD_NUMBER: _builtins.int + EPOCHANONID_FIELD_NUMBER: _builtins.int + THREADID_FIELD_NUMBER: _builtins.int + ENCRYPTIONVERSION_FIELD_NUMBER: _builtins.int + CIPHERTEXT_FIELD_NUMBER: _builtins.int + epochRootKey: _builtins.bytes + epochAnonId: _builtins.bytes + threadId: _builtins.str + encryptionVersion: _builtins.int + ciphertext: _builtins.bytes def __init__( self, *, - senderKeyHash: _builtins.bytes | None = ..., - senderTimestamp: _builtins.int | None = ..., - senderKeyIndexes: _abc.Iterable[_builtins.int] | None = ..., - senderAccountType: Global___ADVEncryptionType.ValueType | None = ..., - receiverAccountType: Global___ADVEncryptionType.ValueType | None = ..., - recipientKeyHash: _builtins.bytes | None = ..., - recipientTimestamp: _builtins.int | None = ..., - recipientKeyIndexes: _abc.Iterable[_builtins.int] | None = ..., + epochRootKey: _builtins.bytes | None = ..., + epochAnonId: _builtins.bytes | None = ..., + threadId: _builtins.str | None = ..., + encryptionVersion: _builtins.int | None = ..., + ciphertext: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["receiverAccountType", b"receiverAccountType", "recipientKeyHash", b"recipientKeyHash", "recipientTimestamp", b"recipientTimestamp", "senderAccountType", b"senderAccountType", "senderKeyHash", b"senderKeyHash", "senderTimestamp", b"senderTimestamp"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "encryptionVersion", b"encryptionVersion", "epochAnonId", b"epochAnonId", "epochRootKey", b"epochRootKey", "threadId", b"threadId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["receiverAccountType", b"receiverAccountType", "recipientKeyHash", b"recipientKeyHash", "recipientKeyIndexes", b"recipientKeyIndexes", "recipientTimestamp", b"recipientTimestamp", "senderAccountType", b"senderAccountType", "senderKeyHash", b"senderKeyHash", "senderKeyIndexes", b"senderKeyIndexes", "senderTimestamp", b"senderTimestamp"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "encryptionVersion", b"encryptionVersion", "epochAnonId", b"epochAnonId", "epochRootKey", b"epochRootKey", "threadId", b"threadId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___DeviceListMetadata: _TypeAlias = DeviceListMetadata # noqa: Y015 +Global___DecryptMessageInput: _TypeAlias = DecryptMessageInput # noqa: Y015 @_typing.final -class DeviceProps(_message.Message): +class DecryptMessageOutput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _PlatformType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + PLAINTEXTPAYLOAD_FIELD_NUMBER: _builtins.int + ERROR_FIELD_NUMBER: _builtins.int + plaintextPayload: _builtins.bytes + error: _builtins.str + def __init__( + self, + *, + plaintextPayload: _builtins.bytes | None = ..., + error: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["error", b"error", "plaintextPayload", b"plaintextPayload"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["error", b"error", "plaintextPayload", b"plaintextPayload"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _PlatformTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DeviceProps._PlatformType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: DeviceProps._PlatformType.ValueType # 0 - CHROME: DeviceProps._PlatformType.ValueType # 1 - FIREFOX: DeviceProps._PlatformType.ValueType # 2 - IE: DeviceProps._PlatformType.ValueType # 3 - OPERA: DeviceProps._PlatformType.ValueType # 4 - SAFARI: DeviceProps._PlatformType.ValueType # 5 - EDGE: DeviceProps._PlatformType.ValueType # 6 - DESKTOP: DeviceProps._PlatformType.ValueType # 7 - IPAD: DeviceProps._PlatformType.ValueType # 8 - ANDROID_TABLET: DeviceProps._PlatformType.ValueType # 9 - OHANA: DeviceProps._PlatformType.ValueType # 10 - ALOHA: DeviceProps._PlatformType.ValueType # 11 - CATALINA: DeviceProps._PlatformType.ValueType # 12 - TCL_TV: DeviceProps._PlatformType.ValueType # 13 - IOS_PHONE: DeviceProps._PlatformType.ValueType # 14 - IOS_CATALYST: DeviceProps._PlatformType.ValueType # 15 - ANDROID_PHONE: DeviceProps._PlatformType.ValueType # 16 - ANDROID_AMBIGUOUS: DeviceProps._PlatformType.ValueType # 17 - WEAR_OS: DeviceProps._PlatformType.ValueType # 18 - AR_WRIST: DeviceProps._PlatformType.ValueType # 19 - AR_DEVICE: DeviceProps._PlatformType.ValueType # 20 - UWP: DeviceProps._PlatformType.ValueType # 21 - VR: DeviceProps._PlatformType.ValueType # 22 - CLOUD_API: DeviceProps._PlatformType.ValueType # 23 - SMARTGLASSES: DeviceProps._PlatformType.ValueType # 24 +Global___DecryptMessageOutput: _TypeAlias = DecryptMessageOutput # noqa: Y015 - class PlatformType(_PlatformType, metaclass=_PlatformTypeEnumTypeWrapper): ... - UNKNOWN: DeviceProps.PlatformType.ValueType # 0 - CHROME: DeviceProps.PlatformType.ValueType # 1 - FIREFOX: DeviceProps.PlatformType.ValueType # 2 - IE: DeviceProps.PlatformType.ValueType # 3 - OPERA: DeviceProps.PlatformType.ValueType # 4 - SAFARI: DeviceProps.PlatformType.ValueType # 5 - EDGE: DeviceProps.PlatformType.ValueType # 6 - DESKTOP: DeviceProps.PlatformType.ValueType # 7 - IPAD: DeviceProps.PlatformType.ValueType # 8 - ANDROID_TABLET: DeviceProps.PlatformType.ValueType # 9 - OHANA: DeviceProps.PlatformType.ValueType # 10 - ALOHA: DeviceProps.PlatformType.ValueType # 11 - CATALINA: DeviceProps.PlatformType.ValueType # 12 - TCL_TV: DeviceProps.PlatformType.ValueType # 13 - IOS_PHONE: DeviceProps.PlatformType.ValueType # 14 - IOS_CATALYST: DeviceProps.PlatformType.ValueType # 15 - ANDROID_PHONE: DeviceProps.PlatformType.ValueType # 16 - ANDROID_AMBIGUOUS: DeviceProps.PlatformType.ValueType # 17 - WEAR_OS: DeviceProps.PlatformType.ValueType # 18 - AR_WRIST: DeviceProps.PlatformType.ValueType # 19 - AR_DEVICE: DeviceProps.PlatformType.ValueType # 20 - UWP: DeviceProps.PlatformType.ValueType # 21 - VR: DeviceProps.PlatformType.ValueType # 22 - CLOUD_API: DeviceProps.PlatformType.ValueType # 23 - SMARTGLASSES: DeviceProps.PlatformType.ValueType # 24 +@_typing.final +class DecryptSelfMmkDistributionInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class AppVersion(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + ENCRYPTEDMMK_FIELD_NUMBER: _builtins.int + EXPORTROOTKEY_FIELD_NUMBER: _builtins.int + MAILBOXHEADHASH_FIELD_NUMBER: _builtins.int + encryptedMmk: _builtins.bytes + exportRootKey: _builtins.bytes + mailboxHeadHash: _builtins.bytes + def __init__( + self, + *, + encryptedMmk: _builtins.bytes | None = ..., + exportRootKey: _builtins.bytes | None = ..., + mailboxHeadHash: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedMmk", b"encryptedMmk", "exportRootKey", b"exportRootKey", "mailboxHeadHash", b"mailboxHeadHash"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedMmk", b"encryptedMmk", "exportRootKey", b"exportRootKey", "mailboxHeadHash", b"mailboxHeadHash"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - PRIMARY_FIELD_NUMBER: _builtins.int - SECONDARY_FIELD_NUMBER: _builtins.int - TERTIARY_FIELD_NUMBER: _builtins.int - QUATERNARY_FIELD_NUMBER: _builtins.int - QUINARY_FIELD_NUMBER: _builtins.int - primary: _builtins.int - secondary: _builtins.int - tertiary: _builtins.int - quaternary: _builtins.int - quinary: _builtins.int - def __init__( - self, - *, - primary: _builtins.int | None = ..., - secondary: _builtins.int | None = ..., - tertiary: _builtins.int | None = ..., - quaternary: _builtins.int | None = ..., - quinary: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["primary", b"primary", "quaternary", b"quaternary", "quinary", b"quinary", "secondary", b"secondary", "tertiary", b"tertiary"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["primary", b"primary", "quaternary", b"quaternary", "quinary", b"quinary", "secondary", b"secondary", "tertiary", b"tertiary"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___DecryptSelfMmkDistributionInput: _TypeAlias = DecryptSelfMmkDistributionInput # noqa: Y015 - @_typing.final - class HistorySyncConfig(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +@_typing.final +class DecryptSelfMmkDistributionResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - FULLSYNCDAYSLIMIT_FIELD_NUMBER: _builtins.int - FULLSYNCSIZEMBLIMIT_FIELD_NUMBER: _builtins.int - STORAGEQUOTAMB_FIELD_NUMBER: _builtins.int - INLINEINITIALPAYLOADINE2EEMSG_FIELD_NUMBER: _builtins.int - RECENTSYNCDAYSLIMIT_FIELD_NUMBER: _builtins.int - SUPPORTCALLLOGHISTORY_FIELD_NUMBER: _builtins.int - SUPPORTBOTUSERAGENTCHATHISTORY_FIELD_NUMBER: _builtins.int - SUPPORTCAGREACTIONSANDPOLLS_FIELD_NUMBER: _builtins.int - SUPPORTBIZHOSTEDMSG_FIELD_NUMBER: _builtins.int - SUPPORTRECENTSYNCCHUNKMESSAGECOUNTTUNING_FIELD_NUMBER: _builtins.int - SUPPORTHOSTEDGROUPMSG_FIELD_NUMBER: _builtins.int - SUPPORTFBIDBOTCHATHISTORY_FIELD_NUMBER: _builtins.int - SUPPORTADDONHISTORYSYNCMIGRATION_FIELD_NUMBER: _builtins.int - SUPPORTMESSAGEASSOCIATION_FIELD_NUMBER: _builtins.int - SUPPORTGROUPHISTORY_FIELD_NUMBER: _builtins.int - ONDEMANDREADY_FIELD_NUMBER: _builtins.int - SUPPORTGUESTCHAT_FIELD_NUMBER: _builtins.int - COMPLETEONDEMANDREADY_FIELD_NUMBER: _builtins.int - THUMBNAILSYNCDAYSLIMIT_FIELD_NUMBER: _builtins.int - INITIALSYNCMAXMESSAGESPERCHAT_FIELD_NUMBER: _builtins.int - SUPPORTMANUSHISTORY_FIELD_NUMBER: _builtins.int - SUPPORTHATCHHISTORY_FIELD_NUMBER: _builtins.int - SUPPORTEDBOTCHANNELFBIDS_FIELD_NUMBER: _builtins.int - SUPPORTINLINECONTACTS_FIELD_NUMBER: _builtins.int - fullSyncDaysLimit: _builtins.int - fullSyncSizeMbLimit: _builtins.int - storageQuotaMb: _builtins.int - inlineInitialPayloadInE2EeMsg: _builtins.bool - recentSyncDaysLimit: _builtins.int - supportCallLogHistory: _builtins.bool - supportBotUserAgentChatHistory: _builtins.bool - supportCagReactionsAndPolls: _builtins.bool - supportBizHostedMsg: _builtins.bool - supportRecentSyncChunkMessageCountTuning: _builtins.bool - supportHostedGroupMsg: _builtins.bool - supportFbidBotChatHistory: _builtins.bool - supportAddOnHistorySyncMigration: _builtins.bool - supportMessageAssociation: _builtins.bool - supportGroupHistory: _builtins.bool - onDemandReady: _builtins.bool - supportGuestChat: _builtins.bool - completeOnDemandReady: _builtins.bool - thumbnailSyncDaysLimit: _builtins.int - initialSyncMaxMessagesPerChat: _builtins.int - supportManusHistory: _builtins.bool - supportHatchHistory: _builtins.bool - supportInlineContacts: _builtins.bool - @_builtins.property - def supportedBotChannelFbids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__( - self, - *, - fullSyncDaysLimit: _builtins.int | None = ..., - fullSyncSizeMbLimit: _builtins.int | None = ..., - storageQuotaMb: _builtins.int | None = ..., - inlineInitialPayloadInE2EeMsg: _builtins.bool | None = ..., - recentSyncDaysLimit: _builtins.int | None = ..., - supportCallLogHistory: _builtins.bool | None = ..., - supportBotUserAgentChatHistory: _builtins.bool | None = ..., - supportCagReactionsAndPolls: _builtins.bool | None = ..., - supportBizHostedMsg: _builtins.bool | None = ..., - supportRecentSyncChunkMessageCountTuning: _builtins.bool | None = ..., - supportHostedGroupMsg: _builtins.bool | None = ..., - supportFbidBotChatHistory: _builtins.bool | None = ..., - supportAddOnHistorySyncMigration: _builtins.bool | None = ..., - supportMessageAssociation: _builtins.bool | None = ..., - supportGroupHistory: _builtins.bool | None = ..., - onDemandReady: _builtins.bool | None = ..., - supportGuestChat: _builtins.bool | None = ..., - completeOnDemandReady: _builtins.bool | None = ..., - thumbnailSyncDaysLimit: _builtins.int | None = ..., - initialSyncMaxMessagesPerChat: _builtins.int | None = ..., - supportManusHistory: _builtins.bool | None = ..., - supportHatchHistory: _builtins.bool | None = ..., - supportedBotChannelFbids: _abc.Iterable[_builtins.str] | None = ..., - supportInlineContacts: _builtins.bool | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["completeOnDemandReady", b"completeOnDemandReady", "fullSyncDaysLimit", b"fullSyncDaysLimit", "fullSyncSizeMbLimit", b"fullSyncSizeMbLimit", "initialSyncMaxMessagesPerChat", b"initialSyncMaxMessagesPerChat", "inlineInitialPayloadInE2EeMsg", b"inlineInitialPayloadInE2EeMsg", "onDemandReady", b"onDemandReady", "recentSyncDaysLimit", b"recentSyncDaysLimit", "storageQuotaMb", b"storageQuotaMb", "supportAddOnHistorySyncMigration", b"supportAddOnHistorySyncMigration", "supportBizHostedMsg", b"supportBizHostedMsg", "supportBotUserAgentChatHistory", b"supportBotUserAgentChatHistory", "supportCagReactionsAndPolls", b"supportCagReactionsAndPolls", "supportCallLogHistory", b"supportCallLogHistory", "supportFbidBotChatHistory", b"supportFbidBotChatHistory", "supportGroupHistory", b"supportGroupHistory", "supportGuestChat", b"supportGuestChat", "supportHatchHistory", b"supportHatchHistory", "supportHostedGroupMsg", b"supportHostedGroupMsg", "supportInlineContacts", b"supportInlineContacts", "supportManusHistory", b"supportManusHistory", "supportMessageAssociation", b"supportMessageAssociation", "supportRecentSyncChunkMessageCountTuning", b"supportRecentSyncChunkMessageCountTuning", "thumbnailSyncDaysLimit", b"thumbnailSyncDaysLimit"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["completeOnDemandReady", b"completeOnDemandReady", "fullSyncDaysLimit", b"fullSyncDaysLimit", "fullSyncSizeMbLimit", b"fullSyncSizeMbLimit", "initialSyncMaxMessagesPerChat", b"initialSyncMaxMessagesPerChat", "inlineInitialPayloadInE2EeMsg", b"inlineInitialPayloadInE2EeMsg", "onDemandReady", b"onDemandReady", "recentSyncDaysLimit", b"recentSyncDaysLimit", "storageQuotaMb", b"storageQuotaMb", "supportAddOnHistorySyncMigration", b"supportAddOnHistorySyncMigration", "supportBizHostedMsg", b"supportBizHostedMsg", "supportBotUserAgentChatHistory", b"supportBotUserAgentChatHistory", "supportCagReactionsAndPolls", b"supportCagReactionsAndPolls", "supportCallLogHistory", b"supportCallLogHistory", "supportFbidBotChatHistory", b"supportFbidBotChatHistory", "supportGroupHistory", b"supportGroupHistory", "supportGuestChat", b"supportGuestChat", "supportHatchHistory", b"supportHatchHistory", "supportHostedGroupMsg", b"supportHostedGroupMsg", "supportInlineContacts", b"supportInlineContacts", "supportManusHistory", b"supportManusHistory", "supportMessageAssociation", b"supportMessageAssociation", "supportRecentSyncChunkMessageCountTuning", b"supportRecentSyncChunkMessageCountTuning", "supportedBotChannelFbids", b"supportedBotChannelFbids", "thumbnailSyncDaysLimit", b"thumbnailSyncDaysLimit"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - OS_FIELD_NUMBER: _builtins.int - VERSION_FIELD_NUMBER: _builtins.int - PLATFORMTYPE_FIELD_NUMBER: _builtins.int - REQUIREFULLSYNC_FIELD_NUMBER: _builtins.int - HISTORYSYNCCONFIG_FIELD_NUMBER: _builtins.int - os: _builtins.str - platformType: Global___DeviceProps.PlatformType.ValueType - requireFullSync: _builtins.bool + SUCCESS_FIELD_NUMBER: _builtins.int + ERRORMESSAGE_FIELD_NUMBER: _builtins.int + errorMessage: _builtins.str @_builtins.property - def version(self) -> Global___DeviceProps.AppVersion: ... - @_builtins.property - def historySyncConfig(self) -> Global___DeviceProps.HistorySyncConfig: ... + def success(self) -> Global___DecryptSelfMmkDistributionSuccess: ... def __init__( self, *, - os: _builtins.str | None = ..., - version: Global___DeviceProps.AppVersion | None = ..., - platformType: Global___DeviceProps.PlatformType.ValueType | None = ..., - requireFullSync: _builtins.bool | None = ..., - historySyncConfig: Global___DeviceProps.HistorySyncConfig | None = ..., + success: Global___DecryptSelfMmkDistributionSuccess | None = ..., + errorMessage: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["historySyncConfig", b"historySyncConfig", "os", b"os", "platformType", b"platformType", "requireFullSync", b"requireFullSync", "version", b"version"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["historySyncConfig", b"historySyncConfig", "os", b"os", "platformType", b"platformType", "requireFullSync", b"requireFullSync", "version", b"version"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015 + _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ... -Global___DeviceProps: _TypeAlias = DeviceProps # noqa: Y015 +Global___DecryptSelfMmkDistributionResult: _TypeAlias = DecryptSelfMmkDistributionResult # noqa: Y015 @_typing.final -class DisappearingMode(_message.Message): +class DecryptSelfMmkDistributionSuccess(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _Initiator: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _InitiatorEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DisappearingMode._Initiator.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - CHANGED_IN_CHAT: DisappearingMode._Initiator.ValueType # 0 - INITIATED_BY_ME: DisappearingMode._Initiator.ValueType # 1 - INITIATED_BY_OTHER: DisappearingMode._Initiator.ValueType # 2 - BIZ_UPGRADE_FB_HOSTING: DisappearingMode._Initiator.ValueType # 3 - - class Initiator(_Initiator, metaclass=_InitiatorEnumTypeWrapper): ... - CHANGED_IN_CHAT: DisappearingMode.Initiator.ValueType # 0 - INITIATED_BY_ME: DisappearingMode.Initiator.ValueType # 1 - INITIATED_BY_OTHER: DisappearingMode.Initiator.ValueType # 2 - BIZ_UPGRADE_FB_HOSTING: DisappearingMode.Initiator.ValueType # 3 - - class _Trigger: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _TriggerEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DisappearingMode._Trigger.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: DisappearingMode._Trigger.ValueType # 0 - CHAT_SETTING: DisappearingMode._Trigger.ValueType # 1 - ACCOUNT_SETTING: DisappearingMode._Trigger.ValueType # 2 - BULK_CHANGE: DisappearingMode._Trigger.ValueType # 3 - BIZ_SUPPORTS_FB_HOSTING: DisappearingMode._Trigger.ValueType # 4 - UNKNOWN_GROUPS: DisappearingMode._Trigger.ValueType # 5 - - class Trigger(_Trigger, metaclass=_TriggerEnumTypeWrapper): ... - UNKNOWN: DisappearingMode.Trigger.ValueType # 0 - CHAT_SETTING: DisappearingMode.Trigger.ValueType # 1 - ACCOUNT_SETTING: DisappearingMode.Trigger.ValueType # 2 - BULK_CHANGE: DisappearingMode.Trigger.ValueType # 3 - BIZ_SUPPORTS_FB_HOSTING: DisappearingMode.Trigger.ValueType # 4 - UNKNOWN_GROUPS: DisappearingMode.Trigger.ValueType # 5 - - INITIATOR_FIELD_NUMBER: _builtins.int - TRIGGER_FIELD_NUMBER: _builtins.int - INITIATORDEVICEJID_FIELD_NUMBER: _builtins.int - INITIATEDBYME_FIELD_NUMBER: _builtins.int - initiator: Global___DisappearingMode.Initiator.ValueType - trigger: Global___DisappearingMode.Trigger.ValueType - initiatorDeviceJid: _builtins.str - initiatedByMe: _builtins.bool + MMKSEED_FIELD_NUMBER: _builtins.int + mmkSeed: _builtins.bytes def __init__( self, *, - initiator: Global___DisappearingMode.Initiator.ValueType | None = ..., - trigger: Global___DisappearingMode.Trigger.ValueType | None = ..., - initiatorDeviceJid: _builtins.str | None = ..., - initiatedByMe: _builtins.bool | None = ..., + mmkSeed: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["initiatedByMe", b"initiatedByMe", "initiator", b"initiator", "initiatorDeviceJid", b"initiatorDeviceJid", "trigger", b"trigger"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["mmkSeed", b"mmkSeed"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["initiatedByMe", b"initiatedByMe", "initiator", b"initiator", "initiatorDeviceJid", b"initiatorDeviceJid", "trigger", b"trigger"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["mmkSeed", b"mmkSeed"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___DisappearingMode: _TypeAlias = DisappearingMode # noqa: Y015 +Global___DecryptSelfMmkDistributionSuccess: _TypeAlias = DecryptSelfMmkDistributionSuccess # noqa: Y015 @_typing.final -class EmbeddedContent(_message.Message): +class DeriveAttachmentAccessTokenSecretInput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - EMBEDDEDMESSAGE_FIELD_NUMBER: _builtins.int - EMBEDDEDMUSIC_FIELD_NUMBER: _builtins.int - @_builtins.property - def embeddedMessage(self) -> Global___EmbeddedMessage: ... - @_builtins.property - def embeddedMusic(self) -> Global___EmbeddedMusic: ... + MEDIAKEY_FIELD_NUMBER: _builtins.int + mediaKey: _builtins.bytes def __init__( self, *, - embeddedMessage: Global___EmbeddedMessage | None = ..., - embeddedMusic: Global___EmbeddedMusic | None = ..., + mediaKey: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["content", b"content", "embeddedMessage", b"embeddedMessage", "embeddedMusic", b"embeddedMusic"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["mediaKey", b"mediaKey"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["content", b"content", "embeddedMessage", b"embeddedMessage", "embeddedMusic", b"embeddedMusic"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["mediaKey", b"mediaKey"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_content: _TypeAlias = _typing.Literal["embeddedMessage", "embeddedMusic"] # noqa: Y015 - _WhichOneofArgType_content: _TypeAlias = _typing.Literal["content", b"content"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_content) -> _WhichOneofReturnType_content | None: ... -Global___EmbeddedContent: _TypeAlias = EmbeddedContent # noqa: Y015 +Global___DeriveAttachmentAccessTokenSecretInput: _TypeAlias = DeriveAttachmentAccessTokenSecretInput # noqa: Y015 @_typing.final -class EmbeddedMessage(_message.Message): +class DeriveAttachmentAccessTokenSecretResult(_message.Message): DESCRIPTOR: _descriptor.Descriptor - STANZAID_FIELD_NUMBER: _builtins.int - MESSAGE_FIELD_NUMBER: _builtins.int - stanzaId: _builtins.str - @_builtins.property - def message(self) -> Global___Message: ... + ATTACHMENTACCESSTOKENSECRET_FIELD_NUMBER: _builtins.int + attachmentAccessTokenSecret: _builtins.bytes def __init__( self, *, - stanzaId: _builtins.str | None = ..., - message: Global___Message | None = ..., + attachmentAccessTokenSecret: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "stanzaId", b"stanzaId"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["attachmentAccessTokenSecret", b"attachmentAccessTokenSecret"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "stanzaId", b"stanzaId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["attachmentAccessTokenSecret", b"attachmentAccessTokenSecret"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___EmbeddedMessage: _TypeAlias = EmbeddedMessage # noqa: Y015 +Global___DeriveAttachmentAccessTokenSecretResult: _TypeAlias = DeriveAttachmentAccessTokenSecretResult # noqa: Y015 @_typing.final -class EmbeddedMusic(_message.Message): +class DeriveAttachmentPrimaryKeySecretInput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - MUSICCONTENTMEDIAID_FIELD_NUMBER: _builtins.int - SONGID_FIELD_NUMBER: _builtins.int - AUTHOR_FIELD_NUMBER: _builtins.int - TITLE_FIELD_NUMBER: _builtins.int - ARTWORKDIRECTPATH_FIELD_NUMBER: _builtins.int - ARTWORKSHA256_FIELD_NUMBER: _builtins.int - ARTWORKENCSHA256_FIELD_NUMBER: _builtins.int - ARTISTATTRIBUTION_FIELD_NUMBER: _builtins.int - COUNTRYBLOCKLIST_FIELD_NUMBER: _builtins.int - ISEXPLICIT_FIELD_NUMBER: _builtins.int - ARTWORKMEDIAKEY_FIELD_NUMBER: _builtins.int - MUSICSONGSTARTTIMEINMS_FIELD_NUMBER: _builtins.int - DERIVEDCONTENTSTARTTIMEINMS_FIELD_NUMBER: _builtins.int - OVERLAPDURATIONINMS_FIELD_NUMBER: _builtins.int - musicContentMediaId: _builtins.str - songId: _builtins.str - author: _builtins.str - title: _builtins.str - artworkDirectPath: _builtins.str - artworkSha256: _builtins.bytes - artworkEncSha256: _builtins.bytes - artistAttribution: _builtins.str - countryBlocklist: _builtins.bytes - isExplicit: _builtins.bool - artworkMediaKey: _builtins.bytes - musicSongStartTimeInMs: _builtins.int - derivedContentStartTimeInMs: _builtins.int - overlapDurationInMs: _builtins.int + MEDIAKEY_FIELD_NUMBER: _builtins.int + mediaKey: _builtins.bytes def __init__( self, *, - musicContentMediaId: _builtins.str | None = ..., - songId: _builtins.str | None = ..., - author: _builtins.str | None = ..., - title: _builtins.str | None = ..., - artworkDirectPath: _builtins.str | None = ..., - artworkSha256: _builtins.bytes | None = ..., - artworkEncSha256: _builtins.bytes | None = ..., - artistAttribution: _builtins.str | None = ..., - countryBlocklist: _builtins.bytes | None = ..., - isExplicit: _builtins.bool | None = ..., - artworkMediaKey: _builtins.bytes | None = ..., - musicSongStartTimeInMs: _builtins.int | None = ..., - derivedContentStartTimeInMs: _builtins.int | None = ..., - overlapDurationInMs: _builtins.int | None = ..., + mediaKey: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["artistAttribution", b"artistAttribution", "artworkDirectPath", b"artworkDirectPath", "artworkEncSha256", b"artworkEncSha256", "artworkMediaKey", b"artworkMediaKey", "artworkSha256", b"artworkSha256", "author", b"author", "countryBlocklist", b"countryBlocklist", "derivedContentStartTimeInMs", b"derivedContentStartTimeInMs", "isExplicit", b"isExplicit", "musicContentMediaId", b"musicContentMediaId", "musicSongStartTimeInMs", b"musicSongStartTimeInMs", "overlapDurationInMs", b"overlapDurationInMs", "songId", b"songId", "title", b"title"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["mediaKey", b"mediaKey"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["artistAttribution", b"artistAttribution", "artworkDirectPath", b"artworkDirectPath", "artworkEncSha256", b"artworkEncSha256", "artworkMediaKey", b"artworkMediaKey", "artworkSha256", b"artworkSha256", "author", b"author", "countryBlocklist", b"countryBlocklist", "derivedContentStartTimeInMs", b"derivedContentStartTimeInMs", "isExplicit", b"isExplicit", "musicContentMediaId", b"musicContentMediaId", "musicSongStartTimeInMs", b"musicSongStartTimeInMs", "overlapDurationInMs", b"overlapDurationInMs", "songId", b"songId", "title", b"title"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["mediaKey", b"mediaKey"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___EmbeddedMusic: _TypeAlias = EmbeddedMusic # noqa: Y015 +Global___DeriveAttachmentPrimaryKeySecretInput: _TypeAlias = DeriveAttachmentPrimaryKeySecretInput # noqa: Y015 @_typing.final -class EncryptedPairingRequest(_message.Message): +class DeriveAttachmentPrimaryKeySecretResult(_message.Message): DESCRIPTOR: _descriptor.Descriptor - ENCRYPTEDPAYLOAD_FIELD_NUMBER: _builtins.int - IV_FIELD_NUMBER: _builtins.int - encryptedPayload: _builtins.bytes - iv: _builtins.bytes + ATTACHMENTPRIMARYKEYSECRET_FIELD_NUMBER: _builtins.int + attachmentPrimaryKeySecret: _builtins.bytes def __init__( self, *, - encryptedPayload: _builtins.bytes | None = ..., - iv: _builtins.bytes | None = ..., + attachmentPrimaryKeySecret: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedPayload", b"encryptedPayload", "iv", b"iv"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["attachmentPrimaryKeySecret", b"attachmentPrimaryKeySecret"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedPayload", b"encryptedPayload", "iv", b"iv"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["attachmentPrimaryKeySecret", b"attachmentPrimaryKeySecret"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___EncryptedPairingRequest: _TypeAlias = EncryptedPairingRequest # noqa: Y015 +Global___DeriveAttachmentPrimaryKeySecretResult: _TypeAlias = DeriveAttachmentPrimaryKeySecretResult # noqa: Y015 @_typing.final -class EphemeralSetting(_message.Message): +class DeriveMailboxAuthKeypairInput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - DURATION_FIELD_NUMBER: _builtins.int - TIMESTAMP_FIELD_NUMBER: _builtins.int - duration: _builtins.int - timestamp: _builtins.int + EXPORTROOTKEY_FIELD_NUMBER: _builtins.int + EPOCHNUMBER_FIELD_NUMBER: _builtins.int + exportRootKey: _builtins.bytes + epochNumber: _builtins.int def __init__( self, *, - duration: _builtins.int | None = ..., - timestamp: _builtins.int | None = ..., + exportRootKey: _builtins.bytes | None = ..., + epochNumber: _builtins.int | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["duration", b"duration", "timestamp", b"timestamp"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["duration", b"duration", "timestamp", b"timestamp"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___EphemeralSetting: _TypeAlias = EphemeralSetting # noqa: Y015 +Global___DeriveMailboxAuthKeypairInput: _TypeAlias = DeriveMailboxAuthKeypairInput # noqa: Y015 @_typing.final -class EventAdditionalMetadata(_message.Message): +class DeriveMailboxAuthKeypairResult(_message.Message): DESCRIPTOR: _descriptor.Descriptor - ISSTALE_FIELD_NUMBER: _builtins.int - isStale: _builtins.bool + MAILBOXAUTHPUBLICKEY_FIELD_NUMBER: _builtins.int + MAILBOXAUTHPRIVATEKEY_FIELD_NUMBER: _builtins.int + mailboxAuthPublicKey: _builtins.bytes + mailboxAuthPrivateKey: _builtins.bytes def __init__( self, *, - isStale: _builtins.bool | None = ..., + mailboxAuthPublicKey: _builtins.bytes | None = ..., + mailboxAuthPrivateKey: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["isStale", b"isStale"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["mailboxAuthPrivateKey", b"mailboxAuthPrivateKey", "mailboxAuthPublicKey", b"mailboxAuthPublicKey"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["isStale", b"isStale"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["mailboxAuthPrivateKey", b"mailboxAuthPrivateKey", "mailboxAuthPublicKey", b"mailboxAuthPublicKey"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___EventAdditionalMetadata: _TypeAlias = EventAdditionalMetadata # noqa: Y015 +Global___DeriveMailboxAuthKeypairResult: _TypeAlias = DeriveMailboxAuthKeypairResult # noqa: Y015 @_typing.final -class EventResponse(_message.Message): +class DeriveMailboxEncryptionKeypairInput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - EVENTRESPONSEMESSAGEKEY_FIELD_NUMBER: _builtins.int - TIMESTAMPMS_FIELD_NUMBER: _builtins.int - EVENTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int - UNREAD_FIELD_NUMBER: _builtins.int - timestampMs: _builtins.int - unread: _builtins.bool - @_builtins.property - def eventResponseMessageKey(self) -> Global___MessageKey: ... - @_builtins.property - def eventResponseMessage(self) -> Global___Message.EventResponseMessage: ... + EXPORTROOTKEY_FIELD_NUMBER: _builtins.int + EPOCHNUMBER_FIELD_NUMBER: _builtins.int + exportRootKey: _builtins.bytes + epochNumber: _builtins.int def __init__( self, *, - eventResponseMessageKey: Global___MessageKey | None = ..., - timestampMs: _builtins.int | None = ..., - eventResponseMessage: Global___Message.EventResponseMessage | None = ..., - unread: _builtins.bool | None = ..., + exportRootKey: _builtins.bytes | None = ..., + epochNumber: _builtins.int | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["eventResponseMessage", b"eventResponseMessage", "eventResponseMessageKey", b"eventResponseMessageKey", "timestampMs", b"timestampMs", "unread", b"unread"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["eventResponseMessage", b"eventResponseMessage", "eventResponseMessageKey", b"eventResponseMessageKey", "timestampMs", b"timestampMs", "unread", b"unread"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___EventResponse: _TypeAlias = EventResponse # noqa: Y015 +Global___DeriveMailboxEncryptionKeypairInput: _TypeAlias = DeriveMailboxEncryptionKeypairInput # noqa: Y015 @_typing.final -class ExitCode(_message.Message): +class DeriveMailboxEncryptionKeypairResult(_message.Message): DESCRIPTOR: _descriptor.Descriptor - CODE_FIELD_NUMBER: _builtins.int - TEXT_FIELD_NUMBER: _builtins.int - code: _builtins.int - text: _builtins.str + MAILBOXENCRYPTIONPUBLICKEY_FIELD_NUMBER: _builtins.int + MAILBOXENCRYPTIONPRIVATEKEY_FIELD_NUMBER: _builtins.int + mailboxEncryptionPublicKey: _builtins.bytes + mailboxEncryptionPrivateKey: _builtins.bytes def __init__( self, *, - code: _builtins.int | None = ..., - text: _builtins.str | None = ..., + mailboxEncryptionPublicKey: _builtins.bytes | None = ..., + mailboxEncryptionPrivateKey: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["code", b"code", "text", b"text"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["mailboxEncryptionPrivateKey", b"mailboxEncryptionPrivateKey", "mailboxEncryptionPublicKey", b"mailboxEncryptionPublicKey"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["code", b"code", "text", b"text"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["mailboxEncryptionPrivateKey", b"mailboxEncryptionPrivateKey", "mailboxEncryptionPublicKey", b"mailboxEncryptionPublicKey"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___ExitCode: _TypeAlias = ExitCode # noqa: Y015 +Global___DeriveMailboxEncryptionKeypairResult: _TypeAlias = DeriveMailboxEncryptionKeypairResult # noqa: Y015 @_typing.final -class ExternalBlobReference(_message.Message): +class DeriveMailboxSigningKeypairInput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - MEDIAKEY_FIELD_NUMBER: _builtins.int - DIRECTPATH_FIELD_NUMBER: _builtins.int - HANDLE_FIELD_NUMBER: _builtins.int - FILESIZEBYTES_FIELD_NUMBER: _builtins.int - FILESHA256_FIELD_NUMBER: _builtins.int - FILEENCSHA256_FIELD_NUMBER: _builtins.int - mediaKey: _builtins.bytes - directPath: _builtins.str - handle: _builtins.str - fileSizeBytes: _builtins.int - fileSha256: _builtins.bytes - fileEncSha256: _builtins.bytes + EXPORTROOTKEY_FIELD_NUMBER: _builtins.int + EPOCHNUMBER_FIELD_NUMBER: _builtins.int + exportRootKey: _builtins.bytes + epochNumber: _builtins.int def __init__( self, *, - mediaKey: _builtins.bytes | None = ..., - directPath: _builtins.str | None = ..., - handle: _builtins.str | None = ..., - fileSizeBytes: _builtins.int | None = ..., - fileSha256: _builtins.bytes | None = ..., - fileEncSha256: _builtins.bytes | None = ..., + exportRootKey: _builtins.bytes | None = ..., + epochNumber: _builtins.int | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "fileSizeBytes", b"fileSizeBytes", "handle", b"handle", "mediaKey", b"mediaKey"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "fileSizeBytes", b"fileSizeBytes", "handle", b"handle", "mediaKey", b"mediaKey"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___ExternalBlobReference: _TypeAlias = ExternalBlobReference # noqa: Y015 +Global___DeriveMailboxSigningKeypairInput: _TypeAlias = DeriveMailboxSigningKeypairInput # noqa: Y015 @_typing.final -class Field(_message.Message): +class DeriveMailboxSigningKeypairResult(_message.Message): DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class SubfieldEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.int - @_builtins.property - def value(self) -> Global___Field: ... - def __init__( - self, - *, - key: _builtins.int | None = ..., - value: Global___Field | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - MINVERSION_FIELD_NUMBER: _builtins.int - MAXVERSION_FIELD_NUMBER: _builtins.int - NOTREPORTABLEMINVERSION_FIELD_NUMBER: _builtins.int - ISMESSAGE_FIELD_NUMBER: _builtins.int - SUBFIELD_FIELD_NUMBER: _builtins.int - minVersion: _builtins.int - maxVersion: _builtins.int - notReportableMinVersion: _builtins.int - isMessage: _builtins.bool + SUCCESS_FIELD_NUMBER: _builtins.int + ERRORMESSAGE_FIELD_NUMBER: _builtins.int + errorMessage: _builtins.str @_builtins.property - def subfield(self) -> _containers.MessageMap[_builtins.int, Global___Field]: ... + def success(self) -> Global___DeriveMailboxSigningKeypairSuccess: ... def __init__( self, *, - minVersion: _builtins.int | None = ..., - maxVersion: _builtins.int | None = ..., - notReportableMinVersion: _builtins.int | None = ..., - isMessage: _builtins.bool | None = ..., - subfield: _abc.Mapping[_builtins.int, Global___Field] | None = ..., + success: Global___DeriveMailboxSigningKeypairSuccess | None = ..., + errorMessage: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["isMessage", b"isMessage", "maxVersion", b"maxVersion", "minVersion", b"minVersion", "notReportableMinVersion", b"notReportableMinVersion"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["isMessage", b"isMessage", "maxVersion", b"maxVersion", "minVersion", b"minVersion", "notReportableMinVersion", b"notReportableMinVersion", "subfield", b"subfield"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015 + _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ... -Global___Field: _TypeAlias = Field # noqa: Y015 +Global___DeriveMailboxSigningKeypairResult: _TypeAlias = DeriveMailboxSigningKeypairResult # noqa: Y015 @_typing.final -class FingerprintData(_message.Message): +class DeriveMailboxSigningKeypairSuccess(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _HostedState: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _HostedStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[FingerprintData._HostedState.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - E2EE: FingerprintData._HostedState.ValueType # 0 - HOSTED: FingerprintData._HostedState.ValueType # 1 - - class HostedState(_HostedState, metaclass=_HostedStateEnumTypeWrapper): ... - E2EE: FingerprintData.HostedState.ValueType # 0 - HOSTED: FingerprintData.HostedState.ValueType # 1 - - PUBLICKEY_FIELD_NUMBER: _builtins.int - PNIDENTIFIER_FIELD_NUMBER: _builtins.int - LIDIDENTIFIER_FIELD_NUMBER: _builtins.int - USERNAMEIDENTIFIER_FIELD_NUMBER: _builtins.int - HOSTEDSTATE_FIELD_NUMBER: _builtins.int - HASHEDPUBLICKEY_FIELD_NUMBER: _builtins.int - publicKey: _builtins.bytes - pnIdentifier: _builtins.bytes - lidIdentifier: _builtins.bytes - usernameIdentifier: _builtins.bytes - hostedState: Global___FingerprintData.HostedState.ValueType - hashedPublicKey: _builtins.bytes + MAILBOXSIGNINGPUBLICKEY_FIELD_NUMBER: _builtins.int + MAILBOXSIGNINGPRIVATEKEY_FIELD_NUMBER: _builtins.int + mailboxSigningPublicKey: _builtins.bytes + mailboxSigningPrivateKey: _builtins.bytes def __init__( self, *, - publicKey: _builtins.bytes | None = ..., - pnIdentifier: _builtins.bytes | None = ..., - lidIdentifier: _builtins.bytes | None = ..., - usernameIdentifier: _builtins.bytes | None = ..., - hostedState: Global___FingerprintData.HostedState.ValueType | None = ..., - hashedPublicKey: _builtins.bytes | None = ..., + mailboxSigningPublicKey: _builtins.bytes | None = ..., + mailboxSigningPrivateKey: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["hashedPublicKey", b"hashedPublicKey", "hostedState", b"hostedState", "lidIdentifier", b"lidIdentifier", "pnIdentifier", b"pnIdentifier", "publicKey", b"publicKey", "usernameIdentifier", b"usernameIdentifier"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["mailboxSigningPrivateKey", b"mailboxSigningPrivateKey", "mailboxSigningPublicKey", b"mailboxSigningPublicKey"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["hashedPublicKey", b"hashedPublicKey", "hostedState", b"hostedState", "lidIdentifier", b"lidIdentifier", "pnIdentifier", b"pnIdentifier", "publicKey", b"publicKey", "usernameIdentifier", b"usernameIdentifier"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["mailboxSigningPrivateKey", b"mailboxSigningPrivateKey", "mailboxSigningPublicKey", b"mailboxSigningPublicKey"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___FingerprintData: _TypeAlias = FingerprintData # noqa: Y015 +Global___DeriveMailboxSigningKeypairSuccess: _TypeAlias = DeriveMailboxSigningKeypairSuccess # noqa: Y015 @_typing.final -class ForwardedAIBotMessageInfo(_message.Message): +class DeriveMessageKeyInput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - BOTNAME_FIELD_NUMBER: _builtins.int - BOTJID_FIELD_NUMBER: _builtins.int - CREATORNAME_FIELD_NUMBER: _builtins.int - botName: _builtins.str - botJid: _builtins.str - creatorName: _builtins.str + EPOCHROOTKEY_FIELD_NUMBER: _builtins.int + EPOCHANONID_FIELD_NUMBER: _builtins.int + THREADID_FIELD_NUMBER: _builtins.int + epochRootKey: _builtins.bytes + epochAnonId: _builtins.bytes + threadId: _builtins.str def __init__( self, *, - botName: _builtins.str | None = ..., - botJid: _builtins.str | None = ..., - creatorName: _builtins.str | None = ..., + epochRootKey: _builtins.bytes | None = ..., + epochAnonId: _builtins.bytes | None = ..., + threadId: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["botJid", b"botJid", "botName", b"botName", "creatorName", b"creatorName"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["epochAnonId", b"epochAnonId", "epochRootKey", b"epochRootKey", "threadId", b"threadId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["botJid", b"botJid", "botName", b"botName", "creatorName", b"creatorName"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["epochAnonId", b"epochAnonId", "epochRootKey", b"epochRootKey", "threadId", b"threadId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___ForwardedAIBotMessageInfo: _TypeAlias = ForwardedAIBotMessageInfo # noqa: Y015 +Global___DeriveMessageKeyInput: _TypeAlias = DeriveMessageKeyInput # noqa: Y015 @_typing.final -class GlobalSettings(_message.Message): +class DeriveMessageKeyOutput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - LIGHTTHEMEWALLPAPER_FIELD_NUMBER: _builtins.int - MEDIAVISIBILITY_FIELD_NUMBER: _builtins.int - DARKTHEMEWALLPAPER_FIELD_NUMBER: _builtins.int - AUTODOWNLOADWIFI_FIELD_NUMBER: _builtins.int - AUTODOWNLOADCELLULAR_FIELD_NUMBER: _builtins.int - AUTODOWNLOADROAMING_FIELD_NUMBER: _builtins.int - SHOWINDIVIDUALNOTIFICATIONSPREVIEW_FIELD_NUMBER: _builtins.int - SHOWGROUPNOTIFICATIONSPREVIEW_FIELD_NUMBER: _builtins.int - DISAPPEARINGMODEDURATION_FIELD_NUMBER: _builtins.int - DISAPPEARINGMODETIMESTAMP_FIELD_NUMBER: _builtins.int - AVATARUSERSETTINGS_FIELD_NUMBER: _builtins.int - FONTSIZE_FIELD_NUMBER: _builtins.int - SECURITYNOTIFICATIONS_FIELD_NUMBER: _builtins.int - AUTOUNARCHIVECHATS_FIELD_NUMBER: _builtins.int - VIDEOQUALITYMODE_FIELD_NUMBER: _builtins.int - PHOTOQUALITYMODE_FIELD_NUMBER: _builtins.int - INDIVIDUALNOTIFICATIONSETTINGS_FIELD_NUMBER: _builtins.int - GROUPNOTIFICATIONSETTINGS_FIELD_NUMBER: _builtins.int - CHATLOCKSETTINGS_FIELD_NUMBER: _builtins.int - CHATDBLIDMIGRATIONTIMESTAMP_FIELD_NUMBER: _builtins.int - mediaVisibility: Global___MediaVisibility.ValueType - showIndividualNotificationsPreview: _builtins.bool - showGroupNotificationsPreview: _builtins.bool - disappearingModeDuration: _builtins.int - disappearingModeTimestamp: _builtins.int - fontSize: _builtins.int - securityNotifications: _builtins.bool - autoUnarchiveChats: _builtins.bool - videoQualityMode: _builtins.int - photoQualityMode: _builtins.int - chatDbLidMigrationTimestamp: _builtins.int - @_builtins.property - def lightThemeWallpaper(self) -> Global___WallpaperSettings: ... - @_builtins.property - def darkThemeWallpaper(self) -> Global___WallpaperSettings: ... - @_builtins.property - def autoDownloadWiFi(self) -> Global___AutoDownloadSettings: ... - @_builtins.property - def autoDownloadCellular(self) -> Global___AutoDownloadSettings: ... - @_builtins.property - def autoDownloadRoaming(self) -> Global___AutoDownloadSettings: ... - @_builtins.property - def avatarUserSettings(self) -> Global___AvatarUserSettings: ... - @_builtins.property - def individualNotificationSettings(self) -> Global___NotificationSettings: ... - @_builtins.property - def groupNotificationSettings(self) -> Global___NotificationSettings: ... - @_builtins.property - def chatLockSettings(self) -> Global___ChatLockSettings: ... + MESSAGEKEY_FIELD_NUMBER: _builtins.int + ERROR_FIELD_NUMBER: _builtins.int + messageKey: _builtins.bytes + error: _builtins.str def __init__( self, *, - lightThemeWallpaper: Global___WallpaperSettings | None = ..., - mediaVisibility: Global___MediaVisibility.ValueType | None = ..., - darkThemeWallpaper: Global___WallpaperSettings | None = ..., - autoDownloadWiFi: Global___AutoDownloadSettings | None = ..., - autoDownloadCellular: Global___AutoDownloadSettings | None = ..., - autoDownloadRoaming: Global___AutoDownloadSettings | None = ..., - showIndividualNotificationsPreview: _builtins.bool | None = ..., - showGroupNotificationsPreview: _builtins.bool | None = ..., - disappearingModeDuration: _builtins.int | None = ..., - disappearingModeTimestamp: _builtins.int | None = ..., - avatarUserSettings: Global___AvatarUserSettings | None = ..., - fontSize: _builtins.int | None = ..., - securityNotifications: _builtins.bool | None = ..., - autoUnarchiveChats: _builtins.bool | None = ..., - videoQualityMode: _builtins.int | None = ..., - photoQualityMode: _builtins.int | None = ..., - individualNotificationSettings: Global___NotificationSettings | None = ..., - groupNotificationSettings: Global___NotificationSettings | None = ..., - chatLockSettings: Global___ChatLockSettings | None = ..., - chatDbLidMigrationTimestamp: _builtins.int | None = ..., + messageKey: _builtins.bytes | None = ..., + error: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["autoDownloadCellular", b"autoDownloadCellular", "autoDownloadRoaming", b"autoDownloadRoaming", "autoDownloadWiFi", b"autoDownloadWiFi", "autoUnarchiveChats", b"autoUnarchiveChats", "avatarUserSettings", b"avatarUserSettings", "chatDbLidMigrationTimestamp", b"chatDbLidMigrationTimestamp", "chatLockSettings", b"chatLockSettings", "darkThemeWallpaper", b"darkThemeWallpaper", "disappearingModeDuration", b"disappearingModeDuration", "disappearingModeTimestamp", b"disappearingModeTimestamp", "fontSize", b"fontSize", "groupNotificationSettings", b"groupNotificationSettings", "individualNotificationSettings", b"individualNotificationSettings", "lightThemeWallpaper", b"lightThemeWallpaper", "mediaVisibility", b"mediaVisibility", "photoQualityMode", b"photoQualityMode", "securityNotifications", b"securityNotifications", "showGroupNotificationsPreview", b"showGroupNotificationsPreview", "showIndividualNotificationsPreview", b"showIndividualNotificationsPreview", "videoQualityMode", b"videoQualityMode"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["error", b"error", "messageKey", b"messageKey"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["autoDownloadCellular", b"autoDownloadCellular", "autoDownloadRoaming", b"autoDownloadRoaming", "autoDownloadWiFi", b"autoDownloadWiFi", "autoUnarchiveChats", b"autoUnarchiveChats", "avatarUserSettings", b"avatarUserSettings", "chatDbLidMigrationTimestamp", b"chatDbLidMigrationTimestamp", "chatLockSettings", b"chatLockSettings", "darkThemeWallpaper", b"darkThemeWallpaper", "disappearingModeDuration", b"disappearingModeDuration", "disappearingModeTimestamp", b"disappearingModeTimestamp", "fontSize", b"fontSize", "groupNotificationSettings", b"groupNotificationSettings", "individualNotificationSettings", b"individualNotificationSettings", "lightThemeWallpaper", b"lightThemeWallpaper", "mediaVisibility", b"mediaVisibility", "photoQualityMode", b"photoQualityMode", "securityNotifications", b"securityNotifications", "showGroupNotificationsPreview", b"showGroupNotificationsPreview", "showIndividualNotificationsPreview", b"showIndividualNotificationsPreview", "videoQualityMode", b"videoQualityMode"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["error", b"error", "messageKey", b"messageKey"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___GlobalSettings: _TypeAlias = GlobalSettings # noqa: Y015 +Global___DeriveMessageKeyOutput: _TypeAlias = DeriveMessageKeyOutput # noqa: Y015 @_typing.final -class GroupHistory(_message.Message): +class DeriveMessagingMailboxKeypairsInput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - MESSAGES_FIELD_NUMBER: _builtins.int - UNCOUNTEDASSOCIATEDMESSAGELISTS_FIELD_NUMBER: _builtins.int - COMMENTMESSAGES_FIELD_NUMBER: _builtins.int - OUTOFWINDOWPINNEDMESSAGES_FIELD_NUMBER: _builtins.int - @_builtins.property - def messages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfo]: ... - @_builtins.property - def uncountedAssociatedMessageLists(self) -> _containers.RepeatedCompositeFieldContainer[Global___UnCountedAssociatedMessageList]: ... - @_builtins.property - def commentMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfo]: ... - @_builtins.property - def outOfWindowPinnedMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfo]: ... + MMKSEED_FIELD_NUMBER: _builtins.int + mmkSeed: _builtins.bytes def __init__( self, *, - messages: _abc.Iterable[Global___WebMessageInfo] | None = ..., - uncountedAssociatedMessageLists: _abc.Iterable[Global___UnCountedAssociatedMessageList] | None = ..., - commentMessages: _abc.Iterable[Global___WebMessageInfo] | None = ..., - outOfWindowPinnedMessages: _abc.Iterable[Global___WebMessageInfo] | None = ..., + mmkSeed: _builtins.bytes | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commentMessages", b"commentMessages", "messages", b"messages", "outOfWindowPinnedMessages", b"outOfWindowPinnedMessages", "uncountedAssociatedMessageLists", b"uncountedAssociatedMessageLists"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["mmkSeed", b"mmkSeed"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["mmkSeed", b"mmkSeed"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___GroupHistory: _TypeAlias = GroupHistory # noqa: Y015 +Global___DeriveMessagingMailboxKeypairsInput: _TypeAlias = DeriveMessagingMailboxKeypairsInput # noqa: Y015 @_typing.final -class GroupHistoryBundleInfo(_message.Message): +class DeriveMessagingMailboxKeypairsResult(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _ProcessState: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _ProcessStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[GroupHistoryBundleInfo._ProcessState.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - NOT_INJECTED: GroupHistoryBundleInfo._ProcessState.ValueType # 0 - INJECTED: GroupHistoryBundleInfo._ProcessState.ValueType # 1 - INJECTED_PARTIAL: GroupHistoryBundleInfo._ProcessState.ValueType # 2 - INJECTION_FAILED: GroupHistoryBundleInfo._ProcessState.ValueType # 3 - INJECTION_FAILED_NO_RETRY: GroupHistoryBundleInfo._ProcessState.ValueType # 4 - DEDUPED: GroupHistoryBundleInfo._ProcessState.ValueType # 5 - - class ProcessState(_ProcessState, metaclass=_ProcessStateEnumTypeWrapper): ... - NOT_INJECTED: GroupHistoryBundleInfo.ProcessState.ValueType # 0 - INJECTED: GroupHistoryBundleInfo.ProcessState.ValueType # 1 - INJECTED_PARTIAL: GroupHistoryBundleInfo.ProcessState.ValueType # 2 - INJECTION_FAILED: GroupHistoryBundleInfo.ProcessState.ValueType # 3 - INJECTION_FAILED_NO_RETRY: GroupHistoryBundleInfo.ProcessState.ValueType # 4 - DEDUPED: GroupHistoryBundleInfo.ProcessState.ValueType # 5 - - DEPRECATEDMESSAGEHISTORYBUNDLE_FIELD_NUMBER: _builtins.int - PROCESSSTATE_FIELD_NUMBER: _builtins.int - processState: Global___GroupHistoryBundleInfo.ProcessState.ValueType + SUCCESS_FIELD_NUMBER: _builtins.int + ERRORMESSAGE_FIELD_NUMBER: _builtins.int + errorMessage: _builtins.str @_builtins.property - def deprecatedMessageHistoryBundle(self) -> Global___Message.MessageHistoryBundle: ... + def success(self) -> Global___DeriveMessagingMailboxKeypairsSuccess: ... def __init__( self, *, - deprecatedMessageHistoryBundle: Global___Message.MessageHistoryBundle | None = ..., - processState: Global___GroupHistoryBundleInfo.ProcessState.ValueType | None = ..., + success: Global___DeriveMessagingMailboxKeypairsSuccess | None = ..., + errorMessage: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["deprecatedMessageHistoryBundle", b"deprecatedMessageHistoryBundle", "processState", b"processState"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["deprecatedMessageHistoryBundle", b"deprecatedMessageHistoryBundle", "processState", b"processState"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015 + _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ... -Global___GroupHistoryBundleInfo: _TypeAlias = GroupHistoryBundleInfo # noqa: Y015 +Global___DeriveMessagingMailboxKeypairsResult: _TypeAlias = DeriveMessagingMailboxKeypairsResult # noqa: Y015 @_typing.final -class GroupHistoryIndividualMessageInfo(_message.Message): +class DeriveMessagingMailboxKeypairsSuccess(_message.Message): DESCRIPTOR: _descriptor.Descriptor - BUNDLEMESSAGEKEY_FIELD_NUMBER: _builtins.int - EDITEDAFTERRECEIVEDASHISTORY_FIELD_NUMBER: _builtins.int - editedAfterReceivedAsHistory: _builtins.bool - @_builtins.property - def bundleMessageKey(self) -> Global___MessageKey: ... + ENCSK_FIELD_NUMBER: _builtins.int + ENCPK_FIELD_NUMBER: _builtins.int + AUTHSK_FIELD_NUMBER: _builtins.int + AUTHPK_FIELD_NUMBER: _builtins.int + encSk: _builtins.bytes + encPk: _builtins.bytes + authSk: _builtins.bytes + authPk: _builtins.bytes def __init__( self, *, - bundleMessageKey: Global___MessageKey | None = ..., - editedAfterReceivedAsHistory: _builtins.bool | None = ..., + encSk: _builtins.bytes | None = ..., + encPk: _builtins.bytes | None = ..., + authSk: _builtins.bytes | None = ..., + authPk: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["bundleMessageKey", b"bundleMessageKey", "editedAfterReceivedAsHistory", b"editedAfterReceivedAsHistory"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "authSk", b"authSk", "encPk", b"encPk", "encSk", b"encSk"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["bundleMessageKey", b"bundleMessageKey", "editedAfterReceivedAsHistory", b"editedAfterReceivedAsHistory"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "authSk", b"authSk", "encPk", b"encPk", "encSk", b"encSk"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___GroupHistoryIndividualMessageInfo: _TypeAlias = GroupHistoryIndividualMessageInfo # noqa: Y015 +Global___DeriveMessagingMailboxKeypairsSuccess: _TypeAlias = DeriveMessagingMailboxKeypairsSuccess # noqa: Y015 @_typing.final -class GroupHistoryWithMessageBytes(_message.Message): +class DetachedDevicePublicData(_message.Message): DESCRIPTOR: _descriptor.Descriptor - MESSAGES_FIELD_NUMBER: _builtins.int - UNCOUNTEDASSOCIATEDMESSAGELISTS_FIELD_NUMBER: _builtins.int - COMMENTMESSAGES_FIELD_NUMBER: _builtins.int - OUTOFWINDOWPINNEDMESSAGES_FIELD_NUMBER: _builtins.int - @_builtins.property - def messages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfoWithMessageBytes]: ... - @_builtins.property - def uncountedAssociatedMessageLists(self) -> _containers.RepeatedCompositeFieldContainer[Global___UnCountedAssociatedMessageListWithMessageBytes]: ... - @_builtins.property - def commentMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfoWithMessageBytes]: ... - @_builtins.property - def outOfWindowPinnedMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfoWithMessageBytes]: ... - def __init__( - self, - *, - messages: _abc.Iterable[Global___WebMessageInfoWithMessageBytes] | None = ..., - uncountedAssociatedMessageLists: _abc.Iterable[Global___UnCountedAssociatedMessageListWithMessageBytes] | None = ..., - commentMessages: _abc.Iterable[Global___WebMessageInfoWithMessageBytes] | None = ..., - outOfWindowPinnedMessages: _abc.Iterable[Global___WebMessageInfoWithMessageBytes] | None = ..., - ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commentMessages", b"commentMessages", "messages", b"messages", "outOfWindowPinnedMessages", b"outOfWindowPinnedMessages", "uncountedAssociatedMessageLists", b"uncountedAssociatedMessageLists"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___GroupHistoryWithMessageBytes: _TypeAlias = GroupHistoryWithMessageBytes # noqa: Y015 - -@_typing.final -class GroupMention(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - GROUPJID_FIELD_NUMBER: _builtins.int - GROUPSUBJECT_FIELD_NUMBER: _builtins.int - groupJid: _builtins.str - groupSubject: _builtins.str + DEVICEID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + SIGPK_FIELD_NUMBER: _builtins.int + AUTHPK_FIELD_NUMBER: _builtins.int + ENCPK_FIELD_NUMBER: _builtins.int + SIGNATURE_FIELD_NUMBER: _builtins.int + deviceId: _builtins.int + name: _builtins.bytes + sigPk: _builtins.bytes + authPk: _builtins.bytes + encPk: _builtins.bytes + signature: _builtins.bytes def __init__( self, *, - groupJid: _builtins.str | None = ..., - groupSubject: _builtins.str | None = ..., + deviceId: _builtins.int | None = ..., + name: _builtins.bytes | None = ..., + sigPk: _builtins.bytes | None = ..., + authPk: _builtins.bytes | None = ..., + encPk: _builtins.bytes | None = ..., + signature: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["groupJid", b"groupJid", "groupSubject", b"groupSubject"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "deviceId", b"deviceId", "encPk", b"encPk", "name", b"name", "sigPk", b"sigPk", "signature", b"signature"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["groupJid", b"groupJid", "groupSubject", b"groupSubject"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "deviceId", b"deviceId", "encPk", b"encPk", "name", b"name", "sigPk", b"sigPk", "signature", b"signature"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___GroupMention: _TypeAlias = GroupMention # noqa: Y015 +Global___DetachedDevicePublicData: _TypeAlias = DetachedDevicePublicData # noqa: Y015 @_typing.final -class GroupParticipant(_message.Message): +class DeviceCapabilities(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _Rank: + class _ChatLockSupportLevel: ValueType = _typing.NewType("ValueType", _builtins.int) V: _TypeAlias = ValueType # noqa: Y015 - class _RankEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[GroupParticipant._Rank.ValueType], _builtins.type): + class _ChatLockSupportLevelEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DeviceCapabilities._ChatLockSupportLevel.ValueType], _builtins.type): DESCRIPTOR: _descriptor.EnumDescriptor - REGULAR: GroupParticipant._Rank.ValueType # 0 - ADMIN: GroupParticipant._Rank.ValueType # 1 - SUPERADMIN: GroupParticipant._Rank.ValueType # 2 - - class Rank(_Rank, metaclass=_RankEnumTypeWrapper): ... - REGULAR: GroupParticipant.Rank.ValueType # 0 - ADMIN: GroupParticipant.Rank.ValueType # 1 - SUPERADMIN: GroupParticipant.Rank.ValueType # 2 - - USERJID_FIELD_NUMBER: _builtins.int - RANK_FIELD_NUMBER: _builtins.int - MEMBERLABEL_FIELD_NUMBER: _builtins.int - userJid: _builtins.str - rank: Global___GroupParticipant.Rank.ValueType - @_builtins.property - def memberLabel(self) -> Global___MemberLabel: ... - def __init__( - self, - *, - userJid: _builtins.str | None = ..., - rank: Global___GroupParticipant.Rank.ValueType | None = ..., - memberLabel: Global___MemberLabel | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["memberLabel", b"memberLabel", "rank", b"rank", "userJid", b"userJid"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["memberLabel", b"memberLabel", "rank", b"rank", "userJid", b"userJid"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___GroupParticipant: _TypeAlias = GroupParticipant # noqa: Y015 - -@_typing.final -class GroupRootKeyShare(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - KEYS_FIELD_NUMBER: _builtins.int - @_builtins.property - def keys(self) -> _containers.RepeatedCompositeFieldContainer[Global___GroupRootKeyShareEntry]: ... - def __init__( - self, - *, - keys: _abc.Iterable[Global___GroupRootKeyShareEntry] | None = ..., - ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["keys", b"keys"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___GroupRootKeyShare: _TypeAlias = GroupRootKeyShare # noqa: Y015 - -@_typing.final -class GroupRootKeyShareEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - GROUPROOTKEY_FIELD_NUMBER: _builtins.int - KEYID_FIELD_NUMBER: _builtins.int - EXPIRYTIMESTAMPMS_FIELD_NUMBER: _builtins.int - CREATEDTIMESTAMPMS_FIELD_NUMBER: _builtins.int - groupRootKey: _builtins.bytes - keyId: _builtins.str - expiryTimestampMs: _builtins.int - createdTimestampMs: _builtins.int - def __init__( - self, - *, - groupRootKey: _builtins.bytes | None = ..., - keyId: _builtins.str | None = ..., - expiryTimestampMs: _builtins.int | None = ..., - createdTimestampMs: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["createdTimestampMs", b"createdTimestampMs", "expiryTimestampMs", b"expiryTimestampMs", "groupRootKey", b"groupRootKey", "keyId", b"keyId"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["createdTimestampMs", b"createdTimestampMs", "expiryTimestampMs", b"expiryTimestampMs", "groupRootKey", b"groupRootKey", "keyId", b"keyId"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___GroupRootKeyShareEntry: _TypeAlias = GroupRootKeyShareEntry # noqa: Y015 + NONE: DeviceCapabilities._ChatLockSupportLevel.ValueType # 0 + MINIMAL: DeviceCapabilities._ChatLockSupportLevel.ValueType # 1 + FULL: DeviceCapabilities._ChatLockSupportLevel.ValueType # 2 -@_typing.final -class HandshakeMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class ChatLockSupportLevel(_ChatLockSupportLevel, metaclass=_ChatLockSupportLevelEnumTypeWrapper): ... + NONE: DeviceCapabilities.ChatLockSupportLevel.ValueType # 0 + MINIMAL: DeviceCapabilities.ChatLockSupportLevel.ValueType # 1 + FULL: DeviceCapabilities.ChatLockSupportLevel.ValueType # 2 - class _HandshakePqMode: + class _MemberNameTagPrimarySupport: ValueType = _typing.NewType("ValueType", _builtins.int) V: _TypeAlias = ValueType # noqa: Y015 - class _HandshakePqModeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[HandshakeMessage._HandshakePqMode.ValueType], _builtins.type): + class _MemberNameTagPrimarySupportEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DeviceCapabilities._MemberNameTagPrimarySupport.ValueType], _builtins.type): DESCRIPTOR: _descriptor.EnumDescriptor - HANDSHAKE_PQ_MODE_UNKNOWN: HandshakeMessage._HandshakePqMode.ValueType # 0 - XXKEM: HandshakeMessage._HandshakePqMode.ValueType # 1 - XXKEM_FS: HandshakeMessage._HandshakePqMode.ValueType # 2 - WA_CLASSICAL: HandshakeMessage._HandshakePqMode.ValueType # 3 - WA_PQ: HandshakeMessage._HandshakePqMode.ValueType # 4 - IKKEM: HandshakeMessage._HandshakePqMode.ValueType # 5 - IKKEM_FS: HandshakeMessage._HandshakePqMode.ValueType # 6 - XXKEM_2: HandshakeMessage._HandshakePqMode.ValueType # 7 - IKKEM_2: HandshakeMessage._HandshakePqMode.ValueType # 8 + DISABLED: DeviceCapabilities._MemberNameTagPrimarySupport.ValueType # 0 + RECEIVER_ENABLED: DeviceCapabilities._MemberNameTagPrimarySupport.ValueType # 1 + SENDER_ENABLED: DeviceCapabilities._MemberNameTagPrimarySupport.ValueType # 2 - class HandshakePqMode(_HandshakePqMode, metaclass=_HandshakePqModeEnumTypeWrapper): ... - HANDSHAKE_PQ_MODE_UNKNOWN: HandshakeMessage.HandshakePqMode.ValueType # 0 - XXKEM: HandshakeMessage.HandshakePqMode.ValueType # 1 - XXKEM_FS: HandshakeMessage.HandshakePqMode.ValueType # 2 - WA_CLASSICAL: HandshakeMessage.HandshakePqMode.ValueType # 3 - WA_PQ: HandshakeMessage.HandshakePqMode.ValueType # 4 - IKKEM: HandshakeMessage.HandshakePqMode.ValueType # 5 - IKKEM_FS: HandshakeMessage.HandshakePqMode.ValueType # 6 - XXKEM_2: HandshakeMessage.HandshakePqMode.ValueType # 7 - IKKEM_2: HandshakeMessage.HandshakePqMode.ValueType # 8 + class MemberNameTagPrimarySupport(_MemberNameTagPrimarySupport, metaclass=_MemberNameTagPrimarySupportEnumTypeWrapper): ... + DISABLED: DeviceCapabilities.MemberNameTagPrimarySupport.ValueType # 0 + RECEIVER_ENABLED: DeviceCapabilities.MemberNameTagPrimarySupport.ValueType # 1 + SENDER_ENABLED: DeviceCapabilities.MemberNameTagPrimarySupport.ValueType # 2 @_typing.final - class ClientFinish(_message.Message): + class AiFbidMigration(_message.Message): DESCRIPTOR: _descriptor.Descriptor - STATIC_FIELD_NUMBER: _builtins.int - PAYLOAD_FIELD_NUMBER: _builtins.int - EXTENDEDCIPHERTEXT_FIELD_NUMBER: _builtins.int - PADDEDBYTES_FIELD_NUMBER: _builtins.int - SIMULATEXXKEMFS_FIELD_NUMBER: _builtins.int - static: _builtins.bytes - payload: _builtins.bytes - extendedCiphertext: _builtins.bytes - paddedBytes: _builtins.bytes - simulateXxkemFs: _builtins.bool + CHATDBMIGRATIONTIMESTAMP_FIELD_NUMBER: _builtins.int + chatDbMigrationTimestamp: _builtins.int def __init__( self, *, - static: _builtins.bytes | None = ..., - payload: _builtins.bytes | None = ..., - extendedCiphertext: _builtins.bytes | None = ..., - paddedBytes: _builtins.bytes | None = ..., - simulateXxkemFs: _builtins.bool | None = ..., + chatDbMigrationTimestamp: _builtins.int | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["extendedCiphertext", b"extendedCiphertext", "paddedBytes", b"paddedBytes", "payload", b"payload", "simulateXxkemFs", b"simulateXxkemFs", "static", b"static"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["extendedCiphertext", b"extendedCiphertext", "paddedBytes", b"paddedBytes", "payload", b"payload", "simulateXxkemFs", b"simulateXxkemFs", "static", b"static"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class ClientHello(_message.Message): + class AiThread(_message.Message): DESCRIPTOR: _descriptor.Descriptor - EPHEMERAL_FIELD_NUMBER: _builtins.int - STATIC_FIELD_NUMBER: _builtins.int - PAYLOAD_FIELD_NUMBER: _builtins.int - USEEXTENDED_FIELD_NUMBER: _builtins.int - EXTENDEDCIPHERTEXT_FIELD_NUMBER: _builtins.int - PADDEDBYTES_FIELD_NUMBER: _builtins.int - SENDSERVERHELLOPADDEDBYTES_FIELD_NUMBER: _builtins.int - SIMULATEXXKEMFS_FIELD_NUMBER: _builtins.int - PQMODE_FIELD_NUMBER: _builtins.int - EXTENDEDEPHEMERAL_FIELD_NUMBER: _builtins.int - ephemeral: _builtins.bytes - static: _builtins.bytes - payload: _builtins.bytes - useExtended: _builtins.bool - extendedCiphertext: _builtins.bytes - paddedBytes: _builtins.bytes - sendServerHelloPaddedBytes: _builtins.bool - simulateXxkemFs: _builtins.bool - pqMode: Global___HandshakeMessage.HandshakePqMode.ValueType - extendedEphemeral: _builtins.bytes + class _SupportLevel: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _SupportLevelEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DeviceCapabilities.AiThread._SupportLevel.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + NONE: DeviceCapabilities.AiThread._SupportLevel.ValueType # 0 + INFRA: DeviceCapabilities.AiThread._SupportLevel.ValueType # 1 + FULL: DeviceCapabilities.AiThread._SupportLevel.ValueType # 2 + + class SupportLevel(_SupportLevel, metaclass=_SupportLevelEnumTypeWrapper): ... + NONE: DeviceCapabilities.AiThread.SupportLevel.ValueType # 0 + INFRA: DeviceCapabilities.AiThread.SupportLevel.ValueType # 1 + FULL: DeviceCapabilities.AiThread.SupportLevel.ValueType # 2 + + SUPPORTLEVEL_FIELD_NUMBER: _builtins.int + supportLevel: Global___DeviceCapabilities.AiThread.SupportLevel.ValueType def __init__( self, *, - ephemeral: _builtins.bytes | None = ..., - static: _builtins.bytes | None = ..., - payload: _builtins.bytes | None = ..., - useExtended: _builtins.bool | None = ..., - extendedCiphertext: _builtins.bytes | None = ..., - paddedBytes: _builtins.bytes | None = ..., - sendServerHelloPaddedBytes: _builtins.bool | None = ..., - simulateXxkemFs: _builtins.bool | None = ..., - pqMode: Global___HandshakeMessage.HandshakePqMode.ValueType | None = ..., - extendedEphemeral: _builtins.bytes | None = ..., + supportLevel: Global___DeviceCapabilities.AiThread.SupportLevel.ValueType | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["ephemeral", b"ephemeral", "extendedCiphertext", b"extendedCiphertext", "extendedEphemeral", b"extendedEphemeral", "paddedBytes", b"paddedBytes", "payload", b"payload", "pqMode", b"pqMode", "sendServerHelloPaddedBytes", b"sendServerHelloPaddedBytes", "simulateXxkemFs", b"simulateXxkemFs", "static", b"static", "useExtended", b"useExtended"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["supportLevel", b"supportLevel"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["ephemeral", b"ephemeral", "extendedCiphertext", b"extendedCiphertext", "extendedEphemeral", b"extendedEphemeral", "paddedBytes", b"paddedBytes", "payload", b"payload", "pqMode", b"pqMode", "sendServerHelloPaddedBytes", b"sendServerHelloPaddedBytes", "simulateXxkemFs", b"simulateXxkemFs", "static", b"static", "useExtended", b"useExtended"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["supportLevel", b"supportLevel"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class ServerHello(_message.Message): + class BizAiSettingsSync(_message.Message): DESCRIPTOR: _descriptor.Descriptor - EPHEMERAL_FIELD_NUMBER: _builtins.int - STATIC_FIELD_NUMBER: _builtins.int - PAYLOAD_FIELD_NUMBER: _builtins.int - EXTENDEDSTATIC_FIELD_NUMBER: _builtins.int - PADDINGBYTES_FIELD_NUMBER: _builtins.int - EXTENDEDCIPHERTEXT_FIELD_NUMBER: _builtins.int - ephemeral: _builtins.bytes - static: _builtins.bytes - payload: _builtins.bytes - extendedStatic: _builtins.bytes - paddingBytes: _builtins.bytes - extendedCiphertext: _builtins.bytes + HANDOFFREMOVALTIMINGENABLED_FIELD_NUMBER: _builtins.int + handoffRemovalTimingEnabled: _builtins.bool def __init__( self, *, - ephemeral: _builtins.bytes | None = ..., - static: _builtins.bytes | None = ..., - payload: _builtins.bytes | None = ..., - extendedStatic: _builtins.bytes | None = ..., - paddingBytes: _builtins.bytes | None = ..., - extendedCiphertext: _builtins.bytes | None = ..., + handoffRemovalTimingEnabled: _builtins.bool | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["ephemeral", b"ephemeral", "extendedCiphertext", b"extendedCiphertext", "extendedStatic", b"extendedStatic", "paddingBytes", b"paddingBytes", "payload", b"payload", "static", b"static"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["handoffRemovalTimingEnabled", b"handoffRemovalTimingEnabled"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["ephemeral", b"ephemeral", "extendedCiphertext", b"extendedCiphertext", "extendedStatic", b"extendedStatic", "paddingBytes", b"paddingBytes", "payload", b"payload", "static", b"static"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["handoffRemovalTimingEnabled", b"handoffRemovalTimingEnabled"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - CLIENTHELLO_FIELD_NUMBER: _builtins.int - SERVERHELLO_FIELD_NUMBER: _builtins.int - CLIENTFINISH_FIELD_NUMBER: _builtins.int - @_builtins.property - def clientHello(self) -> Global___HandshakeMessage.ClientHello: ... - @_builtins.property - def serverHello(self) -> Global___HandshakeMessage.ServerHello: ... - @_builtins.property - def clientFinish(self) -> Global___HandshakeMessage.ClientFinish: ... - def __init__( - self, - *, - clientHello: Global___HandshakeMessage.ClientHello | None = ..., - serverHello: Global___HandshakeMessage.ServerHello | None = ..., - clientFinish: Global___HandshakeMessage.ClientFinish | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["clientFinish", b"clientFinish", "clientHello", b"clientHello", "serverHello", b"serverHello"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["clientFinish", b"clientFinish", "clientHello", b"clientHello", "serverHello", b"serverHello"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___HandshakeMessage: _TypeAlias = HandshakeMessage # noqa: Y015 - -@_typing.final -class HatchMetadataSync(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - DATA_FIELD_NUMBER: _builtins.int - TIMESTAMPMS_FIELD_NUMBER: _builtins.int - REQUESTID_FIELD_NUMBER: _builtins.int - data: _builtins.bytes - timestampMs: _builtins.int - requestId: _builtins.str - def __init__( - self, - *, - data: _builtins.bytes | None = ..., - timestampMs: _builtins.int | None = ..., - requestId: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "requestId", b"requestId", "timestampMs", b"timestampMs"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "requestId", b"requestId", "timestampMs", b"timestampMs"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___HatchMetadataSync: _TypeAlias = HatchMetadataSync # noqa: Y015 + @_typing.final + class BusinessBroadcast(_message.Message): + DESCRIPTOR: _descriptor.Descriptor -@_typing.final -class HistorySync(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + IMPORTLISTENABLED_FIELD_NUMBER: _builtins.int + COMPANIONSUPPORTENABLED_FIELD_NUMBER: _builtins.int + CAMPAIGNSYNCENABLED_FIELD_NUMBER: _builtins.int + INSIGHTSSYNCENABLED_FIELD_NUMBER: _builtins.int + RECIPIENTLIMIT_FIELD_NUMBER: _builtins.int + importListEnabled: _builtins.bool + companionSupportEnabled: _builtins.bool + campaignSyncEnabled: _builtins.bool + insightsSyncEnabled: _builtins.bool + recipientLimit: _builtins.int + def __init__( + self, + *, + importListEnabled: _builtins.bool | None = ..., + companionSupportEnabled: _builtins.bool | None = ..., + campaignSyncEnabled: _builtins.bool | None = ..., + insightsSyncEnabled: _builtins.bool | None = ..., + recipientLimit: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["campaignSyncEnabled", b"campaignSyncEnabled", "companionSupportEnabled", b"companionSupportEnabled", "importListEnabled", b"importListEnabled", "insightsSyncEnabled", b"insightsSyncEnabled", "recipientLimit", b"recipientLimit"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["campaignSyncEnabled", b"campaignSyncEnabled", "companionSupportEnabled", b"companionSupportEnabled", "importListEnabled", b"importListEnabled", "insightsSyncEnabled", b"insightsSyncEnabled", "recipientLimit", b"recipientLimit"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _BotAIWaitListState: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + @_typing.final + class ContactRefresh(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _BotAIWaitListStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[HistorySync._BotAIWaitListState.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - IN_WAITLIST: HistorySync._BotAIWaitListState.ValueType # 0 - AI_AVAILABLE: HistorySync._BotAIWaitListState.ValueType # 1 + REFRESHSUPPORTED_FIELD_NUMBER: _builtins.int + refreshSupported: _builtins.bool + def __init__( + self, + *, + refreshSupported: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["refreshSupported", b"refreshSupported"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["refreshSupported", b"refreshSupported"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class BotAIWaitListState(_BotAIWaitListState, metaclass=_BotAIWaitListStateEnumTypeWrapper): ... - IN_WAITLIST: HistorySync.BotAIWaitListState.ValueType # 0 - AI_AVAILABLE: HistorySync.BotAIWaitListState.ValueType # 1 + @_typing.final + class LIDMigration(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _HistorySyncType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + CHATDBMIGRATIONTIMESTAMP_FIELD_NUMBER: _builtins.int + chatDbMigrationTimestamp: _builtins.int + def __init__( + self, + *, + chatDbMigrationTimestamp: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _HistorySyncTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[HistorySync._HistorySyncType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - INITIAL_BOOTSTRAP: HistorySync._HistorySyncType.ValueType # 0 - INITIAL_STATUS_V3: HistorySync._HistorySyncType.ValueType # 1 - FULL: HistorySync._HistorySyncType.ValueType # 2 - RECENT: HistorySync._HistorySyncType.ValueType # 3 - PUSH_NAME: HistorySync._HistorySyncType.ValueType # 4 - NON_BLOCKING_DATA: HistorySync._HistorySyncType.ValueType # 5 - ON_DEMAND: HistorySync._HistorySyncType.ValueType # 6 + @_typing.final + class UserHasAvatar(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class HistorySyncType(_HistorySyncType, metaclass=_HistorySyncTypeEnumTypeWrapper): ... - INITIAL_BOOTSTRAP: HistorySync.HistorySyncType.ValueType # 0 - INITIAL_STATUS_V3: HistorySync.HistorySyncType.ValueType # 1 - FULL: HistorySync.HistorySyncType.ValueType # 2 - RECENT: HistorySync.HistorySyncType.ValueType # 3 - PUSH_NAME: HistorySync.HistorySyncType.ValueType # 4 - NON_BLOCKING_DATA: HistorySync.HistorySyncType.ValueType # 5 - ON_DEMAND: HistorySync.HistorySyncType.ValueType # 6 + USERHASAVATAR_FIELD_NUMBER: _builtins.int + userHasAvatar: _builtins.bool + def __init__( + self, + *, + userHasAvatar: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["userHasAvatar", b"userHasAvatar"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["userHasAvatar", b"userHasAvatar"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - SYNCTYPE_FIELD_NUMBER: _builtins.int - CONVERSATIONS_FIELD_NUMBER: _builtins.int - STATUSV3MESSAGES_FIELD_NUMBER: _builtins.int - CHUNKORDER_FIELD_NUMBER: _builtins.int - PROGRESS_FIELD_NUMBER: _builtins.int - PUSHNAMES_FIELD_NUMBER: _builtins.int - GLOBALSETTINGS_FIELD_NUMBER: _builtins.int - THREADIDUSERSECRET_FIELD_NUMBER: _builtins.int - THREADDSTIMEFRAMEOFFSET_FIELD_NUMBER: _builtins.int - RECENTSTICKERS_FIELD_NUMBER: _builtins.int - PASTPARTICIPANTS_FIELD_NUMBER: _builtins.int - CALLLOGRECORDS_FIELD_NUMBER: _builtins.int - AIWAITLISTSTATE_FIELD_NUMBER: _builtins.int - PHONENUMBERTOLIDMAPPINGS_FIELD_NUMBER: _builtins.int - COMPANIONMETANONCE_FIELD_NUMBER: _builtins.int - SHAREABLECHATIDENTIFIERENCRYPTIONKEY_FIELD_NUMBER: _builtins.int - ACCOUNTS_FIELD_NUMBER: _builtins.int - NCTSALT_FIELD_NUMBER: _builtins.int - INLINECONTACTS_FIELD_NUMBER: _builtins.int - INLINECONTACTSPROVIDED_FIELD_NUMBER: _builtins.int - syncType: Global___HistorySync.HistorySyncType.ValueType - chunkOrder: _builtins.int - progress: _builtins.int - threadIdUserSecret: _builtins.bytes - threadDsTimeframeOffset: _builtins.int - aiWaitListState: Global___HistorySync.BotAIWaitListState.ValueType - companionMetaNonce: _builtins.str - shareableChatIdentifierEncryptionKey: _builtins.bytes - nctSalt: _builtins.bytes - inlineContactsProvided: _builtins.bool - @_builtins.property - def conversations(self) -> _containers.RepeatedCompositeFieldContainer[Global___Conversation]: ... - @_builtins.property - def statusV3Messages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfo]: ... - @_builtins.property - def pushnames(self) -> _containers.RepeatedCompositeFieldContainer[Global___Pushname]: ... + CHATLOCKSUPPORTLEVEL_FIELD_NUMBER: _builtins.int + LIDMIGRATION_FIELD_NUMBER: _builtins.int + BUSINESSBROADCAST_FIELD_NUMBER: _builtins.int + USERHASAVATAR_FIELD_NUMBER: _builtins.int + MEMBERNAMETAGPRIMARYSUPPORT_FIELD_NUMBER: _builtins.int + AITHREAD_FIELD_NUMBER: _builtins.int + AIFBIDMIGRATION_FIELD_NUMBER: _builtins.int + BIZAISETTINGSSYNC_FIELD_NUMBER: _builtins.int + CONTACTREFRESH_FIELD_NUMBER: _builtins.int + chatLockSupportLevel: Global___DeviceCapabilities.ChatLockSupportLevel.ValueType + memberNameTagPrimarySupport: Global___DeviceCapabilities.MemberNameTagPrimarySupport.ValueType @_builtins.property - def globalSettings(self) -> Global___GlobalSettings: ... + def lidMigration(self) -> Global___DeviceCapabilities.LIDMigration: ... @_builtins.property - def recentStickers(self) -> _containers.RepeatedCompositeFieldContainer[Global___StickerMetadata]: ... + def businessBroadcast(self) -> Global___DeviceCapabilities.BusinessBroadcast: ... @_builtins.property - def pastParticipants(self) -> _containers.RepeatedCompositeFieldContainer[Global___PastParticipants]: ... + def userHasAvatar(self) -> Global___DeviceCapabilities.UserHasAvatar: ... @_builtins.property - def callLogRecords(self) -> _containers.RepeatedCompositeFieldContainer[Global___CallLogRecord]: ... + def aiThread(self) -> Global___DeviceCapabilities.AiThread: ... @_builtins.property - def phoneNumberToLidMappings(self) -> _containers.RepeatedCompositeFieldContainer[Global___PhoneNumberToLIDMapping]: ... + def aiFbidMigration(self) -> Global___DeviceCapabilities.AiFbidMigration: ... @_builtins.property - def accounts(self) -> _containers.RepeatedCompositeFieldContainer[Global___Account]: ... + def bizAiSettingsSync(self) -> Global___DeviceCapabilities.BizAiSettingsSync: ... @_builtins.property - def inlineContacts(self) -> _containers.RepeatedCompositeFieldContainer[Global___InlineContact]: ... + def contactRefresh(self) -> Global___DeviceCapabilities.ContactRefresh: ... def __init__( self, *, - syncType: Global___HistorySync.HistorySyncType.ValueType | None = ..., - conversations: _abc.Iterable[Global___Conversation] | None = ..., - statusV3Messages: _abc.Iterable[Global___WebMessageInfo] | None = ..., - chunkOrder: _builtins.int | None = ..., - progress: _builtins.int | None = ..., - pushnames: _abc.Iterable[Global___Pushname] | None = ..., - globalSettings: Global___GlobalSettings | None = ..., - threadIdUserSecret: _builtins.bytes | None = ..., - threadDsTimeframeOffset: _builtins.int | None = ..., - recentStickers: _abc.Iterable[Global___StickerMetadata] | None = ..., - pastParticipants: _abc.Iterable[Global___PastParticipants] | None = ..., - callLogRecords: _abc.Iterable[Global___CallLogRecord] | None = ..., - aiWaitListState: Global___HistorySync.BotAIWaitListState.ValueType | None = ..., - phoneNumberToLidMappings: _abc.Iterable[Global___PhoneNumberToLIDMapping] | None = ..., - companionMetaNonce: _builtins.str | None = ..., - shareableChatIdentifierEncryptionKey: _builtins.bytes | None = ..., - accounts: _abc.Iterable[Global___Account] | None = ..., - nctSalt: _builtins.bytes | None = ..., - inlineContacts: _abc.Iterable[Global___InlineContact] | None = ..., - inlineContactsProvided: _builtins.bool | None = ..., + chatLockSupportLevel: Global___DeviceCapabilities.ChatLockSupportLevel.ValueType | None = ..., + lidMigration: Global___DeviceCapabilities.LIDMigration | None = ..., + businessBroadcast: Global___DeviceCapabilities.BusinessBroadcast | None = ..., + userHasAvatar: Global___DeviceCapabilities.UserHasAvatar | None = ..., + memberNameTagPrimarySupport: Global___DeviceCapabilities.MemberNameTagPrimarySupport.ValueType | None = ..., + aiThread: Global___DeviceCapabilities.AiThread | None = ..., + aiFbidMigration: Global___DeviceCapabilities.AiFbidMigration | None = ..., + bizAiSettingsSync: Global___DeviceCapabilities.BizAiSettingsSync | None = ..., + contactRefresh: Global___DeviceCapabilities.ContactRefresh | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["aiWaitListState", b"aiWaitListState", "chunkOrder", b"chunkOrder", "companionMetaNonce", b"companionMetaNonce", "globalSettings", b"globalSettings", "inlineContactsProvided", b"inlineContactsProvided", "nctSalt", b"nctSalt", "progress", b"progress", "shareableChatIdentifierEncryptionKey", b"shareableChatIdentifierEncryptionKey", "syncType", b"syncType", "threadDsTimeframeOffset", b"threadDsTimeframeOffset", "threadIdUserSecret", b"threadIdUserSecret"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["aiFbidMigration", b"aiFbidMigration", "aiThread", b"aiThread", "bizAiSettingsSync", b"bizAiSettingsSync", "businessBroadcast", b"businessBroadcast", "chatLockSupportLevel", b"chatLockSupportLevel", "contactRefresh", b"contactRefresh", "lidMigration", b"lidMigration", "memberNameTagPrimarySupport", b"memberNameTagPrimarySupport", "userHasAvatar", b"userHasAvatar"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["accounts", b"accounts", "aiWaitListState", b"aiWaitListState", "callLogRecords", b"callLogRecords", "chunkOrder", b"chunkOrder", "companionMetaNonce", b"companionMetaNonce", "conversations", b"conversations", "globalSettings", b"globalSettings", "inlineContacts", b"inlineContacts", "inlineContactsProvided", b"inlineContactsProvided", "nctSalt", b"nctSalt", "pastParticipants", b"pastParticipants", "phoneNumberToLidMappings", b"phoneNumberToLidMappings", "progress", b"progress", "pushnames", b"pushnames", "recentStickers", b"recentStickers", "shareableChatIdentifierEncryptionKey", b"shareableChatIdentifierEncryptionKey", "statusV3Messages", b"statusV3Messages", "syncType", b"syncType", "threadDsTimeframeOffset", b"threadDsTimeframeOffset", "threadIdUserSecret", b"threadIdUserSecret"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["aiFbidMigration", b"aiFbidMigration", "aiThread", b"aiThread", "bizAiSettingsSync", b"bizAiSettingsSync", "businessBroadcast", b"businessBroadcast", "chatLockSupportLevel", b"chatLockSupportLevel", "contactRefresh", b"contactRefresh", "lidMigration", b"lidMigration", "memberNameTagPrimarySupport", b"memberNameTagPrimarySupport", "userHasAvatar", b"userHasAvatar"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___HistorySync: _TypeAlias = HistorySync # noqa: Y015 +Global___DeviceCapabilities: _TypeAlias = DeviceCapabilities # noqa: Y015 @_typing.final -class HistorySyncMsg(_message.Message): +class DeviceConsistencyCodeMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - MESSAGE_FIELD_NUMBER: _builtins.int - MSGORDERID_FIELD_NUMBER: _builtins.int - msgOrderId: _builtins.int - @_builtins.property - def message(self) -> Global___WebMessageInfo: ... + GENERATION_FIELD_NUMBER: _builtins.int + SIGNATURE_FIELD_NUMBER: _builtins.int + generation: _builtins.int + signature: _builtins.bytes def __init__( self, *, - message: Global___WebMessageInfo | None = ..., - msgOrderId: _builtins.int | None = ..., + generation: _builtins.int | None = ..., + signature: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "msgOrderId", b"msgOrderId"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["generation", b"generation", "signature", b"signature"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "msgOrderId", b"msgOrderId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["generation", b"generation", "signature", b"signature"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___HistorySyncMsg: _TypeAlias = HistorySyncMsg # noqa: Y015 +Global___DeviceConsistencyCodeMessage: _TypeAlias = DeviceConsistencyCodeMessage # noqa: Y015 @_typing.final -class HydratedTemplateButton(_message.Message): +class DeviceListMetadata(_message.Message): DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class HydratedCallButton(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - DISPLAYTEXT_FIELD_NUMBER: _builtins.int - PHONENUMBER_FIELD_NUMBER: _builtins.int - displayText: _builtins.str - phoneNumber: _builtins.str - def __init__( - self, - *, - displayText: _builtins.str | None = ..., - phoneNumber: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText", "phoneNumber", b"phoneNumber"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText", "phoneNumber", b"phoneNumber"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class HydratedQuickReplyButton(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - DISPLAYTEXT_FIELD_NUMBER: _builtins.int - ID_FIELD_NUMBER: _builtins.int - displayText: _builtins.str - id: _builtins.str - def __init__( - self, - *, - displayText: _builtins.str | None = ..., - id: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText", "id", b"id"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText", "id", b"id"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class HydratedURLButton(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - class _WebviewPresentationType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _WebviewPresentationTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[HydratedTemplateButton.HydratedURLButton._WebviewPresentationType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - FULL: HydratedTemplateButton.HydratedURLButton._WebviewPresentationType.ValueType # 1 - TALL: HydratedTemplateButton.HydratedURLButton._WebviewPresentationType.ValueType # 2 - COMPACT: HydratedTemplateButton.HydratedURLButton._WebviewPresentationType.ValueType # 3 - - class WebviewPresentationType(_WebviewPresentationType, metaclass=_WebviewPresentationTypeEnumTypeWrapper): ... - FULL: HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType # 1 - TALL: HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType # 2 - COMPACT: HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType # 3 - - DISPLAYTEXT_FIELD_NUMBER: _builtins.int - URL_FIELD_NUMBER: _builtins.int - CONSENTEDUSERSURL_FIELD_NUMBER: _builtins.int - WEBVIEWPRESENTATION_FIELD_NUMBER: _builtins.int - displayText: _builtins.str - url: _builtins.str - consentedUsersUrl: _builtins.str - webviewPresentation: Global___HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType - def __init__( - self, - *, - displayText: _builtins.str | None = ..., - url: _builtins.str | None = ..., - consentedUsersUrl: _builtins.str | None = ..., - webviewPresentation: Global___HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["consentedUsersUrl", b"consentedUsersUrl", "displayText", b"displayText", "url", b"url", "webviewPresentation", b"webviewPresentation"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["consentedUsersUrl", b"consentedUsersUrl", "displayText", b"displayText", "url", b"url", "webviewPresentation", b"webviewPresentation"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - INDEX_FIELD_NUMBER: _builtins.int - QUICKREPLYBUTTON_FIELD_NUMBER: _builtins.int - URLBUTTON_FIELD_NUMBER: _builtins.int - CALLBUTTON_FIELD_NUMBER: _builtins.int - index: _builtins.int - @_builtins.property - def quickReplyButton(self) -> Global___HydratedTemplateButton.HydratedQuickReplyButton: ... + SENDERKEYHASH_FIELD_NUMBER: _builtins.int + SENDERTIMESTAMP_FIELD_NUMBER: _builtins.int + SENDERKEYINDEXES_FIELD_NUMBER: _builtins.int + SENDERACCOUNTTYPE_FIELD_NUMBER: _builtins.int + RECEIVERACCOUNTTYPE_FIELD_NUMBER: _builtins.int + RECIPIENTKEYHASH_FIELD_NUMBER: _builtins.int + RECIPIENTTIMESTAMP_FIELD_NUMBER: _builtins.int + RECIPIENTKEYINDEXES_FIELD_NUMBER: _builtins.int + senderKeyHash: _builtins.bytes + senderTimestamp: _builtins.int + senderAccountType: Global___ADVEncryptionType.ValueType + receiverAccountType: Global___ADVEncryptionType.ValueType + recipientKeyHash: _builtins.bytes + recipientTimestamp: _builtins.int @_builtins.property - def urlButton(self) -> Global___HydratedTemplateButton.HydratedURLButton: ... + def senderKeyIndexes(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... @_builtins.property - def callButton(self) -> Global___HydratedTemplateButton.HydratedCallButton: ... + def recipientKeyIndexes(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... def __init__( self, *, - index: _builtins.int | None = ..., - quickReplyButton: Global___HydratedTemplateButton.HydratedQuickReplyButton | None = ..., - urlButton: Global___HydratedTemplateButton.HydratedURLButton | None = ..., - callButton: Global___HydratedTemplateButton.HydratedCallButton | None = ..., + senderKeyHash: _builtins.bytes | None = ..., + senderTimestamp: _builtins.int | None = ..., + senderKeyIndexes: _abc.Iterable[_builtins.int] | None = ..., + senderAccountType: Global___ADVEncryptionType.ValueType | None = ..., + receiverAccountType: Global___ADVEncryptionType.ValueType | None = ..., + recipientKeyHash: _builtins.bytes | None = ..., + recipientTimestamp: _builtins.int | None = ..., + recipientKeyIndexes: _abc.Iterable[_builtins.int] | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["callButton", b"callButton", "hydratedButton", b"hydratedButton", "index", b"index", "quickReplyButton", b"quickReplyButton", "urlButton", b"urlButton"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["receiverAccountType", b"receiverAccountType", "recipientKeyHash", b"recipientKeyHash", "recipientTimestamp", b"recipientTimestamp", "senderAccountType", b"senderAccountType", "senderKeyHash", b"senderKeyHash", "senderTimestamp", b"senderTimestamp"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["callButton", b"callButton", "hydratedButton", b"hydratedButton", "index", b"index", "quickReplyButton", b"quickReplyButton", "urlButton", b"urlButton"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["receiverAccountType", b"receiverAccountType", "recipientKeyHash", b"recipientKeyHash", "recipientKeyIndexes", b"recipientKeyIndexes", "recipientTimestamp", b"recipientTimestamp", "senderAccountType", b"senderAccountType", "senderKeyHash", b"senderKeyHash", "senderKeyIndexes", b"senderKeyIndexes", "senderTimestamp", b"senderTimestamp"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_hydratedButton: _TypeAlias = _typing.Literal["quickReplyButton", "urlButton", "callButton"] # noqa: Y015 - _WhichOneofArgType_hydratedButton: _TypeAlias = _typing.Literal["hydratedButton", b"hydratedButton"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_hydratedButton) -> _WhichOneofReturnType_hydratedButton | None: ... -Global___HydratedTemplateButton: _TypeAlias = HydratedTemplateButton # noqa: Y015 +Global___DeviceListMetadata: _TypeAlias = DeviceListMetadata # noqa: Y015 @_typing.final -class IdentityKeyPairStructure(_message.Message): +class DeviceOutput(_message.Message): DESCRIPTOR: _descriptor.Descriptor PUBLICKEY_FIELD_NUMBER: _builtins.int - PRIVATEKEY_FIELD_NUMBER: _builtins.int + EPOCHAUTHPUBLICKEY_FIELD_NUMBER: _builtins.int + EPOCHAUTHPUBLICKEYSIG_FIELD_NUMBER: _builtins.int + EPOCHSTORAGEPUBLICKEY_FIELD_NUMBER: _builtins.int + EPOCHSTORAGEPUBLICKEYSIG_FIELD_NUMBER: _builtins.int + SUPPORTEDENCRYPTIONVERSIONS_FIELD_NUMBER: _builtins.int + ENCRYPTIONVERSIONSIGNATURE_FIELD_NUMBER: _builtins.int + CLIENTVERSION_FIELD_NUMBER: _builtins.int + OCMFCLIENTSTATE_FIELD_NUMBER: _builtins.int + EPOCHSTORAGEPRIVATEKEY_FIELD_NUMBER: _builtins.int publicKey: _builtins.bytes - privateKey: _builtins.bytes + epochAuthPublicKey: _builtins.bytes + epochAuthPublicKeySig: _builtins.bytes + epochStoragePublicKey: _builtins.bytes + epochStoragePublicKeySig: _builtins.bytes + encryptionVersionSignature: _builtins.bytes + clientVersion: _builtins.int + ocmfClientState: _builtins.bytes + epochStoragePrivateKey: _builtins.bytes + @_builtins.property + def supportedEncryptionVersions(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... def __init__( self, *, publicKey: _builtins.bytes | None = ..., - privateKey: _builtins.bytes | None = ..., + epochAuthPublicKey: _builtins.bytes | None = ..., + epochAuthPublicKeySig: _builtins.bytes | None = ..., + epochStoragePublicKey: _builtins.bytes | None = ..., + epochStoragePublicKeySig: _builtins.bytes | None = ..., + supportedEncryptionVersions: _abc.Iterable[_builtins.int] | None = ..., + encryptionVersionSignature: _builtins.bytes | None = ..., + clientVersion: _builtins.int | None = ..., + ocmfClientState: _builtins.bytes | None = ..., + epochStoragePrivateKey: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["privateKey", b"privateKey", "publicKey", b"publicKey"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["clientVersion", b"clientVersion", "encryptionVersionSignature", b"encryptionVersionSignature", "epochAuthPublicKey", b"epochAuthPublicKey", "epochAuthPublicKeySig", b"epochAuthPublicKeySig", "epochStoragePrivateKey", b"epochStoragePrivateKey", "epochStoragePublicKey", b"epochStoragePublicKey", "epochStoragePublicKeySig", b"epochStoragePublicKeySig", "ocmfClientState", b"ocmfClientState", "publicKey", b"publicKey"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["privateKey", b"privateKey", "publicKey", b"publicKey"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["clientVersion", b"clientVersion", "encryptionVersionSignature", b"encryptionVersionSignature", "epochAuthPublicKey", b"epochAuthPublicKey", "epochAuthPublicKeySig", b"epochAuthPublicKeySig", "epochStoragePrivateKey", b"epochStoragePrivateKey", "epochStoragePublicKey", b"epochStoragePublicKey", "epochStoragePublicKeySig", b"epochStoragePublicKeySig", "ocmfClientState", b"ocmfClientState", "publicKey", b"publicKey", "supportedEncryptionVersions", b"supportedEncryptionVersions"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___IdentityKeyPairStructure: _TypeAlias = IdentityKeyPairStructure # noqa: Y015 +Global___DeviceOutput: _TypeAlias = DeviceOutput # noqa: Y015 @_typing.final -class InThreadSurveyMetadata(_message.Message): +class DeviceProps(_message.Message): DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class InThreadSurveyOption(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class _PlatformType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - STRINGVALUE_FIELD_NUMBER: _builtins.int - NUMERICVALUE_FIELD_NUMBER: _builtins.int - TEXTTRANSLATED_FIELD_NUMBER: _builtins.int - stringValue: _builtins.str - numericValue: _builtins.int - textTranslated: _builtins.str - def __init__( - self, - *, - stringValue: _builtins.str | None = ..., - numericValue: _builtins.int | None = ..., - textTranslated: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["numericValue", b"numericValue", "stringValue", b"stringValue", "textTranslated", b"textTranslated"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["numericValue", b"numericValue", "stringValue", b"stringValue", "textTranslated", b"textTranslated"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class _PlatformTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DeviceProps._PlatformType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: DeviceProps._PlatformType.ValueType # 0 + CHROME: DeviceProps._PlatformType.ValueType # 1 + FIREFOX: DeviceProps._PlatformType.ValueType # 2 + IE: DeviceProps._PlatformType.ValueType # 3 + OPERA: DeviceProps._PlatformType.ValueType # 4 + SAFARI: DeviceProps._PlatformType.ValueType # 5 + EDGE: DeviceProps._PlatformType.ValueType # 6 + DESKTOP: DeviceProps._PlatformType.ValueType # 7 + IPAD: DeviceProps._PlatformType.ValueType # 8 + ANDROID_TABLET: DeviceProps._PlatformType.ValueType # 9 + OHANA: DeviceProps._PlatformType.ValueType # 10 + ALOHA: DeviceProps._PlatformType.ValueType # 11 + CATALINA: DeviceProps._PlatformType.ValueType # 12 + TCL_TV: DeviceProps._PlatformType.ValueType # 13 + IOS_PHONE: DeviceProps._PlatformType.ValueType # 14 + IOS_CATALYST: DeviceProps._PlatformType.ValueType # 15 + ANDROID_PHONE: DeviceProps._PlatformType.ValueType # 16 + ANDROID_AMBIGUOUS: DeviceProps._PlatformType.ValueType # 17 + WEAR_OS: DeviceProps._PlatformType.ValueType # 18 + AR_WRIST: DeviceProps._PlatformType.ValueType # 19 + AR_DEVICE: DeviceProps._PlatformType.ValueType # 20 + UWP: DeviceProps._PlatformType.ValueType # 21 + VR: DeviceProps._PlatformType.ValueType # 22 + CLOUD_API: DeviceProps._PlatformType.ValueType # 23 + SMARTGLASSES: DeviceProps._PlatformType.ValueType # 24 + WAIL: DeviceProps._PlatformType.ValueType # 25 + + class PlatformType(_PlatformType, metaclass=_PlatformTypeEnumTypeWrapper): ... + UNKNOWN: DeviceProps.PlatformType.ValueType # 0 + CHROME: DeviceProps.PlatformType.ValueType # 1 + FIREFOX: DeviceProps.PlatformType.ValueType # 2 + IE: DeviceProps.PlatformType.ValueType # 3 + OPERA: DeviceProps.PlatformType.ValueType # 4 + SAFARI: DeviceProps.PlatformType.ValueType # 5 + EDGE: DeviceProps.PlatformType.ValueType # 6 + DESKTOP: DeviceProps.PlatformType.ValueType # 7 + IPAD: DeviceProps.PlatformType.ValueType # 8 + ANDROID_TABLET: DeviceProps.PlatformType.ValueType # 9 + OHANA: DeviceProps.PlatformType.ValueType # 10 + ALOHA: DeviceProps.PlatformType.ValueType # 11 + CATALINA: DeviceProps.PlatformType.ValueType # 12 + TCL_TV: DeviceProps.PlatformType.ValueType # 13 + IOS_PHONE: DeviceProps.PlatformType.ValueType # 14 + IOS_CATALYST: DeviceProps.PlatformType.ValueType # 15 + ANDROID_PHONE: DeviceProps.PlatformType.ValueType # 16 + ANDROID_AMBIGUOUS: DeviceProps.PlatformType.ValueType # 17 + WEAR_OS: DeviceProps.PlatformType.ValueType # 18 + AR_WRIST: DeviceProps.PlatformType.ValueType # 19 + AR_DEVICE: DeviceProps.PlatformType.ValueType # 20 + UWP: DeviceProps.PlatformType.ValueType # 21 + VR: DeviceProps.PlatformType.ValueType # 22 + CLOUD_API: DeviceProps.PlatformType.ValueType # 23 + SMARTGLASSES: DeviceProps.PlatformType.ValueType # 24 + WAIL: DeviceProps.PlatformType.ValueType # 25 @_typing.final - class InThreadSurveyPrivacyStatementPart(_message.Message): + class AppVersion(_message.Message): DESCRIPTOR: _descriptor.Descriptor - TEXT_FIELD_NUMBER: _builtins.int - URL_FIELD_NUMBER: _builtins.int - text: _builtins.str - url: _builtins.str + PRIMARY_FIELD_NUMBER: _builtins.int + SECONDARY_FIELD_NUMBER: _builtins.int + TERTIARY_FIELD_NUMBER: _builtins.int + QUATERNARY_FIELD_NUMBER: _builtins.int + QUINARY_FIELD_NUMBER: _builtins.int + primary: _builtins.int + secondary: _builtins.int + tertiary: _builtins.int + quaternary: _builtins.int + quinary: _builtins.int def __init__( self, *, - text: _builtins.str | None = ..., - url: _builtins.str | None = ..., + primary: _builtins.int | None = ..., + secondary: _builtins.int | None = ..., + tertiary: _builtins.int | None = ..., + quaternary: _builtins.int | None = ..., + quinary: _builtins.int | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["text", b"text", "url", b"url"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["primary", b"primary", "quaternary", b"quaternary", "quinary", b"quinary", "secondary", b"secondary", "tertiary", b"tertiary"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["text", b"text", "url", b"url"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["primary", b"primary", "quaternary", b"quaternary", "quinary", b"quinary", "secondary", b"secondary", "tertiary", b"tertiary"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class InThreadSurveyQuestion(_message.Message): + class HistorySyncConfig(_message.Message): DESCRIPTOR: _descriptor.Descriptor - QUESTIONTEXT_FIELD_NUMBER: _builtins.int - QUESTIONID_FIELD_NUMBER: _builtins.int - QUESTIONOPTIONS_FIELD_NUMBER: _builtins.int - questionText: _builtins.str - questionId: _builtins.str - @_builtins.property - def questionOptions(self) -> _containers.RepeatedCompositeFieldContainer[Global___InThreadSurveyMetadata.InThreadSurveyOption]: ... - def __init__( - self, - *, - questionText: _builtins.str | None = ..., - questionId: _builtins.str | None = ..., - questionOptions: _abc.Iterable[Global___InThreadSurveyMetadata.InThreadSurveyOption] | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["questionId", b"questionId", "questionText", b"questionText"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["questionId", b"questionId", "questionOptions", b"questionOptions", "questionText", b"questionText"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - TESSASESSIONID_FIELD_NUMBER: _builtins.int - SIMONSESSIONID_FIELD_NUMBER: _builtins.int - SIMONSURVEYID_FIELD_NUMBER: _builtins.int - TESSAROOTID_FIELD_NUMBER: _builtins.int - REQUESTID_FIELD_NUMBER: _builtins.int - TESSAEVENT_FIELD_NUMBER: _builtins.int - INVITATIONHEADERTEXT_FIELD_NUMBER: _builtins.int - INVITATIONBODYTEXT_FIELD_NUMBER: _builtins.int - INVITATIONCTATEXT_FIELD_NUMBER: _builtins.int - INVITATIONCTAURL_FIELD_NUMBER: _builtins.int - SURVEYTITLE_FIELD_NUMBER: _builtins.int - QUESTIONS_FIELD_NUMBER: _builtins.int - SURVEYCONTINUEBUTTONTEXT_FIELD_NUMBER: _builtins.int - SURVEYSUBMITBUTTONTEXT_FIELD_NUMBER: _builtins.int - PRIVACYSTATEMENTFULL_FIELD_NUMBER: _builtins.int - PRIVACYSTATEMENTPARTS_FIELD_NUMBER: _builtins.int - FEEDBACKTOASTTEXT_FIELD_NUMBER: _builtins.int - STARTQUESTIONINDEX_FIELD_NUMBER: _builtins.int - tessaSessionId: _builtins.str - simonSessionId: _builtins.str - simonSurveyId: _builtins.str - tessaRootId: _builtins.str - requestId: _builtins.str - tessaEvent: _builtins.str - invitationHeaderText: _builtins.str - invitationBodyText: _builtins.str - invitationCtaText: _builtins.str - invitationCtaUrl: _builtins.str - surveyTitle: _builtins.str - surveyContinueButtonText: _builtins.str - surveySubmitButtonText: _builtins.str - privacyStatementFull: _builtins.str - feedbackToastText: _builtins.str - startQuestionIndex: _builtins.int + FULLSYNCDAYSLIMIT_FIELD_NUMBER: _builtins.int + FULLSYNCSIZEMBLIMIT_FIELD_NUMBER: _builtins.int + STORAGEQUOTAMB_FIELD_NUMBER: _builtins.int + INLINEINITIALPAYLOADINE2EEMSG_FIELD_NUMBER: _builtins.int + RECENTSYNCDAYSLIMIT_FIELD_NUMBER: _builtins.int + SUPPORTCALLLOGHISTORY_FIELD_NUMBER: _builtins.int + SUPPORTBOTUSERAGENTCHATHISTORY_FIELD_NUMBER: _builtins.int + SUPPORTCAGREACTIONSANDPOLLS_FIELD_NUMBER: _builtins.int + SUPPORTBIZHOSTEDMSG_FIELD_NUMBER: _builtins.int + SUPPORTRECENTSYNCCHUNKMESSAGECOUNTTUNING_FIELD_NUMBER: _builtins.int + SUPPORTHOSTEDGROUPMSG_FIELD_NUMBER: _builtins.int + SUPPORTFBIDBOTCHATHISTORY_FIELD_NUMBER: _builtins.int + SUPPORTADDONHISTORYSYNCMIGRATION_FIELD_NUMBER: _builtins.int + SUPPORTMESSAGEASSOCIATION_FIELD_NUMBER: _builtins.int + SUPPORTGROUPHISTORY_FIELD_NUMBER: _builtins.int + ONDEMANDREADY_FIELD_NUMBER: _builtins.int + SUPPORTGUESTCHAT_FIELD_NUMBER: _builtins.int + COMPLETEONDEMANDREADY_FIELD_NUMBER: _builtins.int + THUMBNAILSYNCDAYSLIMIT_FIELD_NUMBER: _builtins.int + INITIALSYNCMAXMESSAGESPERCHAT_FIELD_NUMBER: _builtins.int + SUPPORTMANUSHISTORY_FIELD_NUMBER: _builtins.int + SUPPORTHATCHHISTORY_FIELD_NUMBER: _builtins.int + SUPPORTEDBOTCHANNELFBIDS_FIELD_NUMBER: _builtins.int + SUPPORTINLINECONTACTS_FIELD_NUMBER: _builtins.int + SUPPORTNEWSLETTER_FIELD_NUMBER: _builtins.int + fullSyncDaysLimit: _builtins.int + fullSyncSizeMbLimit: _builtins.int + storageQuotaMb: _builtins.int + inlineInitialPayloadInE2EeMsg: _builtins.bool + recentSyncDaysLimit: _builtins.int + supportCallLogHistory: _builtins.bool + supportBotUserAgentChatHistory: _builtins.bool + supportCagReactionsAndPolls: _builtins.bool + supportBizHostedMsg: _builtins.bool + supportRecentSyncChunkMessageCountTuning: _builtins.bool + supportHostedGroupMsg: _builtins.bool + supportFbidBotChatHistory: _builtins.bool + supportAddOnHistorySyncMigration: _builtins.bool + supportMessageAssociation: _builtins.bool + supportGroupHistory: _builtins.bool + onDemandReady: _builtins.bool + supportGuestChat: _builtins.bool + completeOnDemandReady: _builtins.bool + thumbnailSyncDaysLimit: _builtins.int + initialSyncMaxMessagesPerChat: _builtins.int + supportManusHistory: _builtins.bool + supportHatchHistory: _builtins.bool + supportInlineContacts: _builtins.bool + supportNewsletter: _builtins.bool + @_builtins.property + def supportedBotChannelFbids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + def __init__( + self, + *, + fullSyncDaysLimit: _builtins.int | None = ..., + fullSyncSizeMbLimit: _builtins.int | None = ..., + storageQuotaMb: _builtins.int | None = ..., + inlineInitialPayloadInE2EeMsg: _builtins.bool | None = ..., + recentSyncDaysLimit: _builtins.int | None = ..., + supportCallLogHistory: _builtins.bool | None = ..., + supportBotUserAgentChatHistory: _builtins.bool | None = ..., + supportCagReactionsAndPolls: _builtins.bool | None = ..., + supportBizHostedMsg: _builtins.bool | None = ..., + supportRecentSyncChunkMessageCountTuning: _builtins.bool | None = ..., + supportHostedGroupMsg: _builtins.bool | None = ..., + supportFbidBotChatHistory: _builtins.bool | None = ..., + supportAddOnHistorySyncMigration: _builtins.bool | None = ..., + supportMessageAssociation: _builtins.bool | None = ..., + supportGroupHistory: _builtins.bool | None = ..., + onDemandReady: _builtins.bool | None = ..., + supportGuestChat: _builtins.bool | None = ..., + completeOnDemandReady: _builtins.bool | None = ..., + thumbnailSyncDaysLimit: _builtins.int | None = ..., + initialSyncMaxMessagesPerChat: _builtins.int | None = ..., + supportManusHistory: _builtins.bool | None = ..., + supportHatchHistory: _builtins.bool | None = ..., + supportedBotChannelFbids: _abc.Iterable[_builtins.str] | None = ..., + supportInlineContacts: _builtins.bool | None = ..., + supportNewsletter: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["completeOnDemandReady", b"completeOnDemandReady", "fullSyncDaysLimit", b"fullSyncDaysLimit", "fullSyncSizeMbLimit", b"fullSyncSizeMbLimit", "initialSyncMaxMessagesPerChat", b"initialSyncMaxMessagesPerChat", "inlineInitialPayloadInE2EeMsg", b"inlineInitialPayloadInE2EeMsg", "onDemandReady", b"onDemandReady", "recentSyncDaysLimit", b"recentSyncDaysLimit", "storageQuotaMb", b"storageQuotaMb", "supportAddOnHistorySyncMigration", b"supportAddOnHistorySyncMigration", "supportBizHostedMsg", b"supportBizHostedMsg", "supportBotUserAgentChatHistory", b"supportBotUserAgentChatHistory", "supportCagReactionsAndPolls", b"supportCagReactionsAndPolls", "supportCallLogHistory", b"supportCallLogHistory", "supportFbidBotChatHistory", b"supportFbidBotChatHistory", "supportGroupHistory", b"supportGroupHistory", "supportGuestChat", b"supportGuestChat", "supportHatchHistory", b"supportHatchHistory", "supportHostedGroupMsg", b"supportHostedGroupMsg", "supportInlineContacts", b"supportInlineContacts", "supportManusHistory", b"supportManusHistory", "supportMessageAssociation", b"supportMessageAssociation", "supportNewsletter", b"supportNewsletter", "supportRecentSyncChunkMessageCountTuning", b"supportRecentSyncChunkMessageCountTuning", "thumbnailSyncDaysLimit", b"thumbnailSyncDaysLimit"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["completeOnDemandReady", b"completeOnDemandReady", "fullSyncDaysLimit", b"fullSyncDaysLimit", "fullSyncSizeMbLimit", b"fullSyncSizeMbLimit", "initialSyncMaxMessagesPerChat", b"initialSyncMaxMessagesPerChat", "inlineInitialPayloadInE2EeMsg", b"inlineInitialPayloadInE2EeMsg", "onDemandReady", b"onDemandReady", "recentSyncDaysLimit", b"recentSyncDaysLimit", "storageQuotaMb", b"storageQuotaMb", "supportAddOnHistorySyncMigration", b"supportAddOnHistorySyncMigration", "supportBizHostedMsg", b"supportBizHostedMsg", "supportBotUserAgentChatHistory", b"supportBotUserAgentChatHistory", "supportCagReactionsAndPolls", b"supportCagReactionsAndPolls", "supportCallLogHistory", b"supportCallLogHistory", "supportFbidBotChatHistory", b"supportFbidBotChatHistory", "supportGroupHistory", b"supportGroupHistory", "supportGuestChat", b"supportGuestChat", "supportHatchHistory", b"supportHatchHistory", "supportHostedGroupMsg", b"supportHostedGroupMsg", "supportInlineContacts", b"supportInlineContacts", "supportManusHistory", b"supportManusHistory", "supportMessageAssociation", b"supportMessageAssociation", "supportNewsletter", b"supportNewsletter", "supportRecentSyncChunkMessageCountTuning", b"supportRecentSyncChunkMessageCountTuning", "supportedBotChannelFbids", b"supportedBotChannelFbids", "thumbnailSyncDaysLimit", b"thumbnailSyncDaysLimit"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + OS_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + PLATFORMTYPE_FIELD_NUMBER: _builtins.int + REQUIREFULLSYNC_FIELD_NUMBER: _builtins.int + HISTORYSYNCCONFIG_FIELD_NUMBER: _builtins.int + os: _builtins.str + platformType: Global___DeviceProps.PlatformType.ValueType + requireFullSync: _builtins.bool @_builtins.property - def questions(self) -> _containers.RepeatedCompositeFieldContainer[Global___InThreadSurveyMetadata.InThreadSurveyQuestion]: ... + def version(self) -> Global___DeviceProps.AppVersion: ... @_builtins.property - def privacyStatementParts(self) -> _containers.RepeatedCompositeFieldContainer[Global___InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPart]: ... + def historySyncConfig(self) -> Global___DeviceProps.HistorySyncConfig: ... def __init__( self, *, - tessaSessionId: _builtins.str | None = ..., - simonSessionId: _builtins.str | None = ..., - simonSurveyId: _builtins.str | None = ..., - tessaRootId: _builtins.str | None = ..., - requestId: _builtins.str | None = ..., - tessaEvent: _builtins.str | None = ..., - invitationHeaderText: _builtins.str | None = ..., - invitationBodyText: _builtins.str | None = ..., - invitationCtaText: _builtins.str | None = ..., - invitationCtaUrl: _builtins.str | None = ..., - surveyTitle: _builtins.str | None = ..., - questions: _abc.Iterable[Global___InThreadSurveyMetadata.InThreadSurveyQuestion] | None = ..., - surveyContinueButtonText: _builtins.str | None = ..., - surveySubmitButtonText: _builtins.str | None = ..., - privacyStatementFull: _builtins.str | None = ..., - privacyStatementParts: _abc.Iterable[Global___InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPart] | None = ..., - feedbackToastText: _builtins.str | None = ..., - startQuestionIndex: _builtins.int | None = ..., + os: _builtins.str | None = ..., + version: Global___DeviceProps.AppVersion | None = ..., + platformType: Global___DeviceProps.PlatformType.ValueType | None = ..., + requireFullSync: _builtins.bool | None = ..., + historySyncConfig: Global___DeviceProps.HistorySyncConfig | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["feedbackToastText", b"feedbackToastText", "invitationBodyText", b"invitationBodyText", "invitationCtaText", b"invitationCtaText", "invitationCtaUrl", b"invitationCtaUrl", "invitationHeaderText", b"invitationHeaderText", "privacyStatementFull", b"privacyStatementFull", "requestId", b"requestId", "simonSessionId", b"simonSessionId", "simonSurveyId", b"simonSurveyId", "startQuestionIndex", b"startQuestionIndex", "surveyContinueButtonText", b"surveyContinueButtonText", "surveySubmitButtonText", b"surveySubmitButtonText", "surveyTitle", b"surveyTitle", "tessaEvent", b"tessaEvent", "tessaRootId", b"tessaRootId", "tessaSessionId", b"tessaSessionId"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["historySyncConfig", b"historySyncConfig", "os", b"os", "platformType", b"platformType", "requireFullSync", b"requireFullSync", "version", b"version"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["feedbackToastText", b"feedbackToastText", "invitationBodyText", b"invitationBodyText", "invitationCtaText", b"invitationCtaText", "invitationCtaUrl", b"invitationCtaUrl", "invitationHeaderText", b"invitationHeaderText", "privacyStatementFull", b"privacyStatementFull", "privacyStatementParts", b"privacyStatementParts", "questions", b"questions", "requestId", b"requestId", "simonSessionId", b"simonSessionId", "simonSurveyId", b"simonSurveyId", "startQuestionIndex", b"startQuestionIndex", "surveyContinueButtonText", b"surveyContinueButtonText", "surveySubmitButtonText", b"surveySubmitButtonText", "surveyTitle", b"surveyTitle", "tessaEvent", b"tessaEvent", "tessaRootId", b"tessaRootId", "tessaSessionId", b"tessaSessionId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["historySyncConfig", b"historySyncConfig", "os", b"os", "platformType", b"platformType", "requireFullSync", b"requireFullSync", "version", b"version"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___InThreadSurveyMetadata: _TypeAlias = InThreadSurveyMetadata # noqa: Y015 +Global___DeviceProps: _TypeAlias = DeviceProps # noqa: Y015 @_typing.final -class InlineContact(_message.Message): +class DisappearingMode(_message.Message): DESCRIPTOR: _descriptor.Descriptor - PNJID_FIELD_NUMBER: _builtins.int - LIDJID_FIELD_NUMBER: _builtins.int - FULLNAME_FIELD_NUMBER: _builtins.int - FIRSTNAME_FIELD_NUMBER: _builtins.int - USERNAME_FIELD_NUMBER: _builtins.int - pnJid: _builtins.str - lidJid: _builtins.str - fullName: _builtins.str - firstName: _builtins.str - username: _builtins.str - def __init__( - self, - *, - pnJid: _builtins.str | None = ..., - lidJid: _builtins.str | None = ..., - fullName: _builtins.str | None = ..., - firstName: _builtins.str | None = ..., - username: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["firstName", b"firstName", "fullName", b"fullName", "lidJid", b"lidJid", "pnJid", b"pnJid", "username", b"username"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["firstName", b"firstName", "fullName", b"fullName", "lidJid", b"lidJid", "pnJid", b"pnJid", "username", b"username"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class _Initiator: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 -Global___InlineContact: _TypeAlias = InlineContact # noqa: Y015 + class _InitiatorEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DisappearingMode._Initiator.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + CHANGED_IN_CHAT: DisappearingMode._Initiator.ValueType # 0 + INITIATED_BY_ME: DisappearingMode._Initiator.ValueType # 1 + INITIATED_BY_OTHER: DisappearingMode._Initiator.ValueType # 2 + BIZ_UPGRADE_FB_HOSTING: DisappearingMode._Initiator.ValueType # 3 -@_typing.final -class InteractiveAnnotation(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class Initiator(_Initiator, metaclass=_InitiatorEnumTypeWrapper): ... + CHANGED_IN_CHAT: DisappearingMode.Initiator.ValueType # 0 + INITIATED_BY_ME: DisappearingMode.Initiator.ValueType # 1 + INITIATED_BY_OTHER: DisappearingMode.Initiator.ValueType # 2 + BIZ_UPGRADE_FB_HOSTING: DisappearingMode.Initiator.ValueType # 3 - class _StatusLinkType: + class _Trigger: ValueType = _typing.NewType("ValueType", _builtins.int) V: _TypeAlias = ValueType # noqa: Y015 - class _StatusLinkTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[InteractiveAnnotation._StatusLinkType.ValueType], _builtins.type): + class _TriggerEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DisappearingMode._Trigger.ValueType], _builtins.type): DESCRIPTOR: _descriptor.EnumDescriptor - RASTERIZED_LINK_PREVIEW: InteractiveAnnotation._StatusLinkType.ValueType # 1 - RASTERIZED_LINK_TRUNCATED: InteractiveAnnotation._StatusLinkType.ValueType # 2 - RASTERIZED_LINK_FULL_URL: InteractiveAnnotation._StatusLinkType.ValueType # 3 + UNKNOWN: DisappearingMode._Trigger.ValueType # 0 + CHAT_SETTING: DisappearingMode._Trigger.ValueType # 1 + ACCOUNT_SETTING: DisappearingMode._Trigger.ValueType # 2 + BULK_CHANGE: DisappearingMode._Trigger.ValueType # 3 + BIZ_SUPPORTS_FB_HOSTING: DisappearingMode._Trigger.ValueType # 4 + UNKNOWN_GROUPS: DisappearingMode._Trigger.ValueType # 5 - class StatusLinkType(_StatusLinkType, metaclass=_StatusLinkTypeEnumTypeWrapper): ... - RASTERIZED_LINK_PREVIEW: InteractiveAnnotation.StatusLinkType.ValueType # 1 - RASTERIZED_LINK_TRUNCATED: InteractiveAnnotation.StatusLinkType.ValueType # 2 - RASTERIZED_LINK_FULL_URL: InteractiveAnnotation.StatusLinkType.ValueType # 3 + class Trigger(_Trigger, metaclass=_TriggerEnumTypeWrapper): ... + UNKNOWN: DisappearingMode.Trigger.ValueType # 0 + CHAT_SETTING: DisappearingMode.Trigger.ValueType # 1 + ACCOUNT_SETTING: DisappearingMode.Trigger.ValueType # 2 + BULK_CHANGE: DisappearingMode.Trigger.ValueType # 3 + BIZ_SUPPORTS_FB_HOSTING: DisappearingMode.Trigger.ValueType # 4 + UNKNOWN_GROUPS: DisappearingMode.Trigger.ValueType # 5 - POLYGONVERTICES_FIELD_NUMBER: _builtins.int - SHOULDSKIPCONFIRMATION_FIELD_NUMBER: _builtins.int - EMBEDDEDCONTENT_FIELD_NUMBER: _builtins.int - STATUSLINKTYPE_FIELD_NUMBER: _builtins.int - LOCATION_FIELD_NUMBER: _builtins.int - NEWSLETTER_FIELD_NUMBER: _builtins.int - EMBEDDEDACTION_FIELD_NUMBER: _builtins.int - TAPACTION_FIELD_NUMBER: _builtins.int - shouldSkipConfirmation: _builtins.bool - statusLinkType: Global___InteractiveAnnotation.StatusLinkType.ValueType - embeddedAction: _builtins.bool - @_builtins.property - def polygonVertices(self) -> _containers.RepeatedCompositeFieldContainer[Global___Point]: ... - @_builtins.property - def embeddedContent(self) -> Global___EmbeddedContent: ... - @_builtins.property - def location(self) -> Global___Location: ... - @_builtins.property - def newsletter(self) -> Global___ContextInfo.ForwardedNewsletterMessageInfo: ... - @_builtins.property - def tapAction(self) -> Global___TapLinkAction: ... + INITIATOR_FIELD_NUMBER: _builtins.int + TRIGGER_FIELD_NUMBER: _builtins.int + INITIATORDEVICEJID_FIELD_NUMBER: _builtins.int + INITIATEDBYME_FIELD_NUMBER: _builtins.int + initiator: Global___DisappearingMode.Initiator.ValueType + trigger: Global___DisappearingMode.Trigger.ValueType + initiatorDeviceJid: _builtins.str + initiatedByMe: _builtins.bool def __init__( self, *, - polygonVertices: _abc.Iterable[Global___Point] | None = ..., - shouldSkipConfirmation: _builtins.bool | None = ..., - embeddedContent: Global___EmbeddedContent | None = ..., - statusLinkType: Global___InteractiveAnnotation.StatusLinkType.ValueType | None = ..., - location: Global___Location | None = ..., - newsletter: Global___ContextInfo.ForwardedNewsletterMessageInfo | None = ..., - embeddedAction: _builtins.bool | None = ..., - tapAction: Global___TapLinkAction | None = ..., + initiator: Global___DisappearingMode.Initiator.ValueType | None = ..., + trigger: Global___DisappearingMode.Trigger.ValueType | None = ..., + initiatorDeviceJid: _builtins.str | None = ..., + initiatedByMe: _builtins.bool | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["action", b"action", "embeddedAction", b"embeddedAction", "embeddedContent", b"embeddedContent", "location", b"location", "newsletter", b"newsletter", "shouldSkipConfirmation", b"shouldSkipConfirmation", "statusLinkType", b"statusLinkType", "tapAction", b"tapAction"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["initiatedByMe", b"initiatedByMe", "initiator", b"initiator", "initiatorDeviceJid", b"initiatorDeviceJid", "trigger", b"trigger"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["action", b"action", "embeddedAction", b"embeddedAction", "embeddedContent", b"embeddedContent", "location", b"location", "newsletter", b"newsletter", "polygonVertices", b"polygonVertices", "shouldSkipConfirmation", b"shouldSkipConfirmation", "statusLinkType", b"statusLinkType", "tapAction", b"tapAction"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["initiatedByMe", b"initiatedByMe", "initiator", b"initiator", "initiatorDeviceJid", b"initiatorDeviceJid", "trigger", b"trigger"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_action: _TypeAlias = _typing.Literal["location", "newsletter", "embeddedAction", "tapAction"] # noqa: Y015 - _WhichOneofArgType_action: _TypeAlias = _typing.Literal["action", b"action"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_action) -> _WhichOneofReturnType_action | None: ... -Global___InteractiveAnnotation: _TypeAlias = InteractiveAnnotation # noqa: Y015 +Global___DisappearingMode: _TypeAlias = DisappearingMode # noqa: Y015 @_typing.final -class InteractiveMessageAdditionalMetadata(_message.Message): +class EmbeddedContent(_message.Message): DESCRIPTOR: _descriptor.Descriptor - ISGALAXYFLOWCOMPLETED_FIELD_NUMBER: _builtins.int - isGalaxyFlowCompleted: _builtins.bool + EMBEDDEDMESSAGE_FIELD_NUMBER: _builtins.int + EMBEDDEDMUSIC_FIELD_NUMBER: _builtins.int + @_builtins.property + def embeddedMessage(self) -> Global___EmbeddedMessage: ... + @_builtins.property + def embeddedMusic(self) -> Global___EmbeddedMusic: ... def __init__( self, *, - isGalaxyFlowCompleted: _builtins.bool | None = ..., + embeddedMessage: Global___EmbeddedMessage | None = ..., + embeddedMusic: Global___EmbeddedMusic | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["isGalaxyFlowCompleted", b"isGalaxyFlowCompleted"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["content", b"content", "embeddedMessage", b"embeddedMessage", "embeddedMusic", b"embeddedMusic"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["isGalaxyFlowCompleted", b"isGalaxyFlowCompleted"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["content", b"content", "embeddedMessage", b"embeddedMessage", "embeddedMusic", b"embeddedMusic"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_content: _TypeAlias = _typing.Literal["embeddedMessage", "embeddedMusic"] # noqa: Y015 + _WhichOneofArgType_content: _TypeAlias = _typing.Literal["content", b"content"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_content) -> _WhichOneofReturnType_content | None: ... -Global___InteractiveMessageAdditionalMetadata: _TypeAlias = InteractiveMessageAdditionalMetadata # noqa: Y015 +Global___EmbeddedContent: _TypeAlias = EmbeddedContent # noqa: Y015 @_typing.final -class KeepInChat(_message.Message): +class EmbeddedMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - KEEPTYPE_FIELD_NUMBER: _builtins.int - SERVERTIMESTAMP_FIELD_NUMBER: _builtins.int - KEY_FIELD_NUMBER: _builtins.int - DEVICEJID_FIELD_NUMBER: _builtins.int - CLIENTTIMESTAMPMS_FIELD_NUMBER: _builtins.int - SERVERTIMESTAMPMS_FIELD_NUMBER: _builtins.int - keepType: Global___KeepType.ValueType - serverTimestamp: _builtins.int - deviceJid: _builtins.str - clientTimestampMs: _builtins.int - serverTimestampMs: _builtins.int + STANZAID_FIELD_NUMBER: _builtins.int + MESSAGE_FIELD_NUMBER: _builtins.int + stanzaId: _builtins.str @_builtins.property - def key(self) -> Global___MessageKey: ... + def message(self) -> Global___Message: ... def __init__( self, *, - keepType: Global___KeepType.ValueType | None = ..., - serverTimestamp: _builtins.int | None = ..., - key: Global___MessageKey | None = ..., - deviceJid: _builtins.str | None = ..., - clientTimestampMs: _builtins.int | None = ..., - serverTimestampMs: _builtins.int | None = ..., + stanzaId: _builtins.str | None = ..., + message: Global___Message | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["clientTimestampMs", b"clientTimestampMs", "deviceJid", b"deviceJid", "keepType", b"keepType", "key", b"key", "serverTimestamp", b"serverTimestamp", "serverTimestampMs", b"serverTimestampMs"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "stanzaId", b"stanzaId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["clientTimestampMs", b"clientTimestampMs", "deviceJid", b"deviceJid", "keepType", b"keepType", "key", b"key", "serverTimestamp", b"serverTimestamp", "serverTimestampMs", b"serverTimestampMs"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "stanzaId", b"stanzaId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___KeepInChat: _TypeAlias = KeepInChat # noqa: Y015 +Global___EmbeddedMessage: _TypeAlias = EmbeddedMessage # noqa: Y015 @_typing.final -class KeyExchangeMessage(_message.Message): +class EmbeddedMusic(_message.Message): DESCRIPTOR: _descriptor.Descriptor - ID_FIELD_NUMBER: _builtins.int - BASEKEY_FIELD_NUMBER: _builtins.int - RATCHETKEY_FIELD_NUMBER: _builtins.int - IDENTITYKEY_FIELD_NUMBER: _builtins.int - BASEKEYSIGNATURE_FIELD_NUMBER: _builtins.int - id: _builtins.int - baseKey: _builtins.bytes - ratchetKey: _builtins.bytes - identityKey: _builtins.bytes - baseKeySignature: _builtins.bytes + MUSICCONTENTMEDIAID_FIELD_NUMBER: _builtins.int + SONGID_FIELD_NUMBER: _builtins.int + AUTHOR_FIELD_NUMBER: _builtins.int + TITLE_FIELD_NUMBER: _builtins.int + ARTWORKDIRECTPATH_FIELD_NUMBER: _builtins.int + ARTWORKSHA256_FIELD_NUMBER: _builtins.int + ARTWORKENCSHA256_FIELD_NUMBER: _builtins.int + ARTISTATTRIBUTION_FIELD_NUMBER: _builtins.int + COUNTRYBLOCKLIST_FIELD_NUMBER: _builtins.int + ISEXPLICIT_FIELD_NUMBER: _builtins.int + ARTWORKMEDIAKEY_FIELD_NUMBER: _builtins.int + MUSICSONGSTARTTIMEINMS_FIELD_NUMBER: _builtins.int + DERIVEDCONTENTSTARTTIMEINMS_FIELD_NUMBER: _builtins.int + OVERLAPDURATIONINMS_FIELD_NUMBER: _builtins.int + musicContentMediaId: _builtins.str + songId: _builtins.str + author: _builtins.str + title: _builtins.str + artworkDirectPath: _builtins.str + artworkSha256: _builtins.bytes + artworkEncSha256: _builtins.bytes + artistAttribution: _builtins.str + countryBlocklist: _builtins.bytes + isExplicit: _builtins.bool + artworkMediaKey: _builtins.bytes + musicSongStartTimeInMs: _builtins.int + derivedContentStartTimeInMs: _builtins.int + overlapDurationInMs: _builtins.int def __init__( self, *, - id: _builtins.int | None = ..., - baseKey: _builtins.bytes | None = ..., - ratchetKey: _builtins.bytes | None = ..., - identityKey: _builtins.bytes | None = ..., - baseKeySignature: _builtins.bytes | None = ..., + musicContentMediaId: _builtins.str | None = ..., + songId: _builtins.str | None = ..., + author: _builtins.str | None = ..., + title: _builtins.str | None = ..., + artworkDirectPath: _builtins.str | None = ..., + artworkSha256: _builtins.bytes | None = ..., + artworkEncSha256: _builtins.bytes | None = ..., + artistAttribution: _builtins.str | None = ..., + countryBlocklist: _builtins.bytes | None = ..., + isExplicit: _builtins.bool | None = ..., + artworkMediaKey: _builtins.bytes | None = ..., + musicSongStartTimeInMs: _builtins.int | None = ..., + derivedContentStartTimeInMs: _builtins.int | None = ..., + overlapDurationInMs: _builtins.int | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "baseKeySignature", b"baseKeySignature", "id", b"id", "identityKey", b"identityKey", "ratchetKey", b"ratchetKey"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["artistAttribution", b"artistAttribution", "artworkDirectPath", b"artworkDirectPath", "artworkEncSha256", b"artworkEncSha256", "artworkMediaKey", b"artworkMediaKey", "artworkSha256", b"artworkSha256", "author", b"author", "countryBlocklist", b"countryBlocklist", "derivedContentStartTimeInMs", b"derivedContentStartTimeInMs", "isExplicit", b"isExplicit", "musicContentMediaId", b"musicContentMediaId", "musicSongStartTimeInMs", b"musicSongStartTimeInMs", "overlapDurationInMs", b"overlapDurationInMs", "songId", b"songId", "title", b"title"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "baseKeySignature", b"baseKeySignature", "id", b"id", "identityKey", b"identityKey", "ratchetKey", b"ratchetKey"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["artistAttribution", b"artistAttribution", "artworkDirectPath", b"artworkDirectPath", "artworkEncSha256", b"artworkEncSha256", "artworkMediaKey", b"artworkMediaKey", "artworkSha256", b"artworkSha256", "author", b"author", "countryBlocklist", b"countryBlocklist", "derivedContentStartTimeInMs", b"derivedContentStartTimeInMs", "isExplicit", b"isExplicit", "musicContentMediaId", b"musicContentMediaId", "musicSongStartTimeInMs", b"musicSongStartTimeInMs", "overlapDurationInMs", b"overlapDurationInMs", "songId", b"songId", "title", b"title"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___KeyExchangeMessage: _TypeAlias = KeyExchangeMessage # noqa: Y015 +Global___EmbeddedMusic: _TypeAlias = EmbeddedMusic # noqa: Y015 @_typing.final -class KeyId(_message.Message): +class EncryptMekForDistributionInput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - ID_FIELD_NUMBER: _builtins.int - id: _builtins.bytes + @_typing.final + class MailboxAuthKP(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + SK_FIELD_NUMBER: _builtins.int + PK_FIELD_NUMBER: _builtins.int + sk: _builtins.bytes + pk: _builtins.bytes + def __init__( + self, + *, + sk: _builtins.bytes | None = ..., + pk: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pk", b"pk", "sk", b"sk"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["pk", b"pk", "sk", b"sk"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + SENDEREPOCHHEAD_FIELD_NUMBER: _builtins.int + TOMAILBOXPK_FIELD_NUMBER: _builtins.int + FROMKEYPAIR_FIELD_NUMBER: _builtins.int + MEK_FIELD_NUMBER: _builtins.int + TOEPOCHHEAD_FIELD_NUMBER: _builtins.int + CONF_FIELD_NUMBER: _builtins.int + senderEpochHead: _builtins.bytes + toMailboxPk: _builtins.bytes + toEpochHead: _builtins.bytes + @_builtins.property + def fromKeypair(self) -> Global___EncryptMekForDistributionInput.MailboxAuthKP: ... + @_builtins.property + def mek(self) -> Global___MekBundle: ... + @_builtins.property + def conf(self) -> Global___MinosClientConfig: ... def __init__( self, *, - id: _builtins.bytes | None = ..., + senderEpochHead: _builtins.bytes | None = ..., + toMailboxPk: _builtins.bytes | None = ..., + fromKeypair: Global___EncryptMekForDistributionInput.MailboxAuthKP | None = ..., + mek: Global___MekBundle | None = ..., + toEpochHead: _builtins.bytes | None = ..., + conf: Global___MinosClientConfig | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["id", b"id"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "fromKeypair", b"fromKeypair", "mek", b"mek", "senderEpochHead", b"senderEpochHead", "toEpochHead", b"toEpochHead", "toMailboxPk", b"toMailboxPk"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["id", b"id"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "fromKeypair", b"fromKeypair", "mek", b"mek", "senderEpochHead", b"senderEpochHead", "toEpochHead", b"toEpochHead", "toMailboxPk", b"toMailboxPk"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___KeyId: _TypeAlias = KeyId # noqa: Y015 +Global___EncryptMekForDistributionInput: _TypeAlias = EncryptMekForDistributionInput # noqa: Y015 @_typing.final -class LIDMigrationMapping(_message.Message): +class EncryptMekForDistributionResult(_message.Message): DESCRIPTOR: _descriptor.Descriptor - PN_FIELD_NUMBER: _builtins.int - ASSIGNEDLID_FIELD_NUMBER: _builtins.int - LATESTLID_FIELD_NUMBER: _builtins.int - pn: _builtins.int - assignedLid: _builtins.int - latestLid: _builtins.int + CIPHERTEXT_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + ciphertext: _builtins.bytes + version: _builtins.int def __init__( self, *, - pn: _builtins.int | None = ..., - assignedLid: _builtins.int | None = ..., - latestLid: _builtins.int | None = ..., + ciphertext: _builtins.bytes | None = ..., + version: _builtins.int | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["assignedLid", b"assignedLid", "latestLid", b"latestLid", "pn", b"pn"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "version", b"version"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["assignedLid", b"assignedLid", "latestLid", b"latestLid", "pn", b"pn"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "version", b"version"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___LIDMigrationMapping: _TypeAlias = LIDMigrationMapping # noqa: Y015 +Global___EncryptMekForDistributionResult: _TypeAlias = EncryptMekForDistributionResult # noqa: Y015 @_typing.final -class LIDMigrationMappingSyncMessage(_message.Message): +class EncryptMeksForDistributionFromTransportSenderInput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - ENCODEDMAPPINGPAYLOAD_FIELD_NUMBER: _builtins.int - encodedMappingPayload: _builtins.bytes + @_typing.final + class TransportSigningKP(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + SK_FIELD_NUMBER: _builtins.int + PK_FIELD_NUMBER: _builtins.int + sk: _builtins.bytes + pk: _builtins.bytes + def __init__( + self, + *, + sk: _builtins.bytes | None = ..., + pk: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pk", b"pk", "sk", b"sk"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["pk", b"pk", "sk", b"sk"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + MEK_FIELD_NUMBER: _builtins.int + TRANSPORTSIGNINGKP_FIELD_NUMBER: _builtins.int + RECIPIENTMAILBOXENCRYPTIONPKS_FIELD_NUMBER: _builtins.int + RECIPIENTEPOCHHEADS_FIELD_NUMBER: _builtins.int + CONF_FIELD_NUMBER: _builtins.int + @_builtins.property + def mek(self) -> Global___MekBundle: ... + @_builtins.property + def transportSigningKp(self) -> Global___EncryptMeksForDistributionFromTransportSenderInput.TransportSigningKP: ... + @_builtins.property + def recipientMailboxEncryptionPks(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... + @_builtins.property + def recipientEpochHeads(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... + @_builtins.property + def conf(self) -> Global___MinosClientConfig: ... def __init__( self, *, - encodedMappingPayload: _builtins.bytes | None = ..., + mek: Global___MekBundle | None = ..., + transportSigningKp: Global___EncryptMeksForDistributionFromTransportSenderInput.TransportSigningKP | None = ..., + recipientMailboxEncryptionPks: _abc.Iterable[_builtins.bytes] | None = ..., + recipientEpochHeads: _abc.Iterable[_builtins.bytes] | None = ..., + conf: Global___MinosClientConfig | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["encodedMappingPayload", b"encodedMappingPayload"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "mek", b"mek", "transportSigningKp", b"transportSigningKp"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["encodedMappingPayload", b"encodedMappingPayload"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "mek", b"mek", "recipientEpochHeads", b"recipientEpochHeads", "recipientMailboxEncryptionPks", b"recipientMailboxEncryptionPks", "transportSigningKp", b"transportSigningKp"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___LIDMigrationMappingSyncMessage: _TypeAlias = LIDMigrationMappingSyncMessage # noqa: Y015 +Global___EncryptMeksForDistributionFromTransportSenderInput: _TypeAlias = EncryptMeksForDistributionFromTransportSenderInput # noqa: Y015 @_typing.final -class LIDMigrationMappingSyncPayload(_message.Message): +class EncryptMeksForDistributionFromTransportSenderResult(_message.Message): DESCRIPTOR: _descriptor.Descriptor - PNTOLIDMAPPINGS_FIELD_NUMBER: _builtins.int - CHATDBMIGRATIONTIMESTAMP_FIELD_NUMBER: _builtins.int - chatDbMigrationTimestamp: _builtins.int + ENCRYPTEDMEKS_FIELD_NUMBER: _builtins.int + EPHEMERALENCRYPTIONPK_FIELD_NUMBER: _builtins.int + SIGNINGPK_FIELD_NUMBER: _builtins.int + SIGNATURE_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + ephemeralEncryptionPk: _builtins.bytes + signingPk: _builtins.bytes + signature: _builtins.bytes + version: _builtins.int @_builtins.property - def pnToLidMappings(self) -> _containers.RepeatedCompositeFieldContainer[Global___LIDMigrationMapping]: ... + def encryptedMeks(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... def __init__( self, *, - pnToLidMappings: _abc.Iterable[Global___LIDMigrationMapping] | None = ..., - chatDbMigrationTimestamp: _builtins.int | None = ..., + encryptedMeks: _abc.Iterable[_builtins.bytes] | None = ..., + ephemeralEncryptionPk: _builtins.bytes | None = ..., + signingPk: _builtins.bytes | None = ..., + signature: _builtins.bytes | None = ..., + version: _builtins.int | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["ephemeralEncryptionPk", b"ephemeralEncryptionPk", "signature", b"signature", "signingPk", b"signingPk", "version", b"version"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp", "pnToLidMappings", b"pnToLidMappings"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedMeks", b"encryptedMeks", "ephemeralEncryptionPk", b"ephemeralEncryptionPk", "signature", b"signature", "signingPk", b"signingPk", "version", b"version"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___LIDMigrationMappingSyncPayload: _TypeAlias = LIDMigrationMappingSyncPayload # noqa: Y015 +Global___EncryptMeksForDistributionFromTransportSenderResult: _TypeAlias = EncryptMeksForDistributionFromTransportSenderResult # noqa: Y015 @_typing.final -class LegacyMessage(_message.Message): +class EncryptMessageInput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - EVENTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int - POLLVOTE_FIELD_NUMBER: _builtins.int - @_builtins.property - def eventResponseMessage(self) -> Global___Message.EventResponseMessage: ... - @_builtins.property - def pollVote(self) -> Global___Message.PollVoteMessage: ... + EPOCHROOTKEY_FIELD_NUMBER: _builtins.int + MAILBOXROOTKEY_FIELD_NUMBER: _builtins.int + ORFCLIENTSTATE_FIELD_NUMBER: _builtins.int + EPOCHANONID_FIELD_NUMBER: _builtins.int + EPOCHID_FIELD_NUMBER: _builtins.int + THREADID_FIELD_NUMBER: _builtins.int + WACANONICALUSERFBID_FIELD_NUMBER: _builtins.int + TIMESTAMPMS_FIELD_NUMBER: _builtins.int + BACKUPID_FIELD_NUMBER: _builtins.int + PLAINTEXTPAYLOAD_FIELD_NUMBER: _builtins.int + STANZAID_FIELD_NUMBER: _builtins.int + epochRootKey: _builtins.bytes + mailboxRootKey: _builtins.bytes + orfClientState: _builtins.bytes + epochAnonId: _builtins.bytes + epochId: _builtins.int + threadId: _builtins.str + waCanonicalUserFbid: _builtins.int + timestampMs: _builtins.int + backupId: _builtins.int + plaintextPayload: _builtins.bytes + stanzaId: _builtins.str def __init__( self, *, - eventResponseMessage: Global___Message.EventResponseMessage | None = ..., - pollVote: Global___Message.PollVoteMessage | None = ..., + epochRootKey: _builtins.bytes | None = ..., + mailboxRootKey: _builtins.bytes | None = ..., + orfClientState: _builtins.bytes | None = ..., + epochAnonId: _builtins.bytes | None = ..., + epochId: _builtins.int | None = ..., + threadId: _builtins.str | None = ..., + waCanonicalUserFbid: _builtins.int | None = ..., + timestampMs: _builtins.int | None = ..., + backupId: _builtins.int | None = ..., + plaintextPayload: _builtins.bytes | None = ..., + stanzaId: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["eventResponseMessage", b"eventResponseMessage", "pollVote", b"pollVote"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["backupId", b"backupId", "epochAnonId", b"epochAnonId", "epochId", b"epochId", "epochRootKey", b"epochRootKey", "mailboxRootKey", b"mailboxRootKey", "orfClientState", b"orfClientState", "plaintextPayload", b"plaintextPayload", "stanzaId", b"stanzaId", "threadId", b"threadId", "timestampMs", b"timestampMs", "waCanonicalUserFbid", b"waCanonicalUserFbid"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["eventResponseMessage", b"eventResponseMessage", "pollVote", b"pollVote"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["backupId", b"backupId", "epochAnonId", b"epochAnonId", "epochId", b"epochId", "epochRootKey", b"epochRootKey", "mailboxRootKey", b"mailboxRootKey", "orfClientState", b"orfClientState", "plaintextPayload", b"plaintextPayload", "stanzaId", b"stanzaId", "threadId", b"threadId", "timestampMs", b"timestampMs", "waCanonicalUserFbid", b"waCanonicalUserFbid"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___LegacyMessage: _TypeAlias = LegacyMessage # noqa: Y015 +Global___EncryptMessageInput: _TypeAlias = EncryptMessageInput # noqa: Y015 @_typing.final -class LimitSharing(_message.Message): +class EncryptMessageOutput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _TriggerType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _TriggerTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[LimitSharing._TriggerType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: LimitSharing._TriggerType.ValueType # 0 - CHAT_SETTING: LimitSharing._TriggerType.ValueType # 1 - BIZ_SUPPORTS_FB_HOSTING: LimitSharing._TriggerType.ValueType # 2 - UNKNOWN_GROUP: LimitSharing._TriggerType.ValueType # 3 - - class TriggerType(_TriggerType, metaclass=_TriggerTypeEnumTypeWrapper): ... - UNKNOWN: LimitSharing.TriggerType.ValueType # 0 - CHAT_SETTING: LimitSharing.TriggerType.ValueType # 1 - BIZ_SUPPORTS_FB_HOSTING: LimitSharing.TriggerType.ValueType # 2 - UNKNOWN_GROUP: LimitSharing.TriggerType.ValueType # 3 - - SHARINGLIMITED_FIELD_NUMBER: _builtins.int - TRIGGER_FIELD_NUMBER: _builtins.int - LIMITSHARINGSETTINGTIMESTAMP_FIELD_NUMBER: _builtins.int - INITIATEDBYME_FIELD_NUMBER: _builtins.int - sharingLimited: _builtins.bool - trigger: Global___LimitSharing.TriggerType.ValueType - limitSharingSettingTimestamp: _builtins.int - initiatedByMe: _builtins.bool + ENCRYPTEDPROTOBUF_FIELD_NUMBER: _builtins.int + ORFTHREADID_FIELD_NUMBER: _builtins.int + VALUESECRETREF_FIELD_NUMBER: _builtins.int + OFFLINETHREADINGID_FIELD_NUMBER: _builtins.int + TIMESTAMPMS_FIELD_NUMBER: _builtins.int + ERROR_FIELD_NUMBER: _builtins.int + encryptedProtobuf: _builtins.bytes + orfThreadId: _builtins.bytes + valueSecretRef: _builtins.str + offlineThreadingId: _builtins.int + timestampMs: _builtins.int + error: _builtins.str def __init__( self, *, - sharingLimited: _builtins.bool | None = ..., - trigger: Global___LimitSharing.TriggerType.ValueType | None = ..., - limitSharingSettingTimestamp: _builtins.int | None = ..., - initiatedByMe: _builtins.bool | None = ..., + encryptedProtobuf: _builtins.bytes | None = ..., + orfThreadId: _builtins.bytes | None = ..., + valueSecretRef: _builtins.str | None = ..., + offlineThreadingId: _builtins.int | None = ..., + timestampMs: _builtins.int | None = ..., + error: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["initiatedByMe", b"initiatedByMe", "limitSharingSettingTimestamp", b"limitSharingSettingTimestamp", "sharingLimited", b"sharingLimited", "trigger", b"trigger"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedProtobuf", b"encryptedProtobuf", "error", b"error", "offlineThreadingId", b"offlineThreadingId", "orfThreadId", b"orfThreadId", "timestampMs", b"timestampMs", "valueSecretRef", b"valueSecretRef"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["initiatedByMe", b"initiatedByMe", "limitSharingSettingTimestamp", b"limitSharingSettingTimestamp", "sharingLimited", b"sharingLimited", "trigger", b"trigger"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedProtobuf", b"encryptedProtobuf", "error", b"error", "offlineThreadingId", b"offlineThreadingId", "orfThreadId", b"orfThreadId", "timestampMs", b"timestampMs", "valueSecretRef", b"valueSecretRef"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___LimitSharing: _TypeAlias = LimitSharing # noqa: Y015 +Global___EncryptMessageOutput: _TypeAlias = EncryptMessageOutput # noqa: Y015 @_typing.final -class LocalizedName(_message.Message): +class EncryptedPairingRequest(_message.Message): DESCRIPTOR: _descriptor.Descriptor - LG_FIELD_NUMBER: _builtins.int - LC_FIELD_NUMBER: _builtins.int - VERIFIEDNAME_FIELD_NUMBER: _builtins.int - lg: _builtins.str - lc: _builtins.str - verifiedName: _builtins.str + ENCRYPTEDPAYLOAD_FIELD_NUMBER: _builtins.int + IV_FIELD_NUMBER: _builtins.int + encryptedPayload: _builtins.bytes + iv: _builtins.bytes def __init__( self, *, - lg: _builtins.str | None = ..., - lc: _builtins.str | None = ..., - verifiedName: _builtins.str | None = ..., + encryptedPayload: _builtins.bytes | None = ..., + iv: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["lc", b"lc", "lg", b"lg", "verifiedName", b"verifiedName"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedPayload", b"encryptedPayload", "iv", b"iv"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["lc", b"lc", "lg", b"lg", "verifiedName", b"verifiedName"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedPayload", b"encryptedPayload", "iv", b"iv"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___LocalizedName: _TypeAlias = LocalizedName # noqa: Y015 +Global___EncryptedPairingRequest: _TypeAlias = EncryptedPairingRequest # noqa: Y015 @_typing.final -class Location(_message.Message): +class EncryptedSecretValuesOutput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - DEGREESLATITUDE_FIELD_NUMBER: _builtins.int - DEGREESLONGITUDE_FIELD_NUMBER: _builtins.int - NAME_FIELD_NUMBER: _builtins.int - degreesLatitude: _builtins.float - degreesLongitude: _builtins.float - name: _builtins.str + ENCRYPTEDDEVICEPRIVATEKEY_FIELD_NUMBER: _builtins.int + ENCRYPTEDOBLIVIOUSVALIDATIONTOKENBLOB_FIELD_NUMBER: _builtins.int + ENCRYPTEDEPOCHSTORAGEPRIVATEKEY_FIELD_NUMBER: _builtins.int + ENCRYPTEDOCMFCLIENTSTATE_FIELD_NUMBER: _builtins.int + ENCRYPTEDORFCLIENTSTATEV2_FIELD_NUMBER: _builtins.int + ENCRYPTEDMAILBOXROOTKEYBLOB_FIELD_NUMBER: _builtins.int + ENCRYPTEDEPOCHANONID_FIELD_NUMBER: _builtins.int + ENCRYPTEDEPOCHROOTKEY_FIELD_NUMBER: _builtins.int + encryptedDevicePrivateKey: _builtins.bytes + encryptedObliviousValidationTokenBlob: _builtins.bytes + encryptedEpochStoragePrivateKey: _builtins.bytes + encryptedOcmfClientState: _builtins.bytes + encryptedOrfClientStateV2: _builtins.bytes + encryptedMailboxRootKeyBlob: _builtins.bytes + encryptedEpochAnonId: _builtins.bytes + encryptedEpochRootKey: _builtins.bytes def __init__( self, *, - degreesLatitude: _builtins.float | None = ..., - degreesLongitude: _builtins.float | None = ..., - name: _builtins.str | None = ..., + encryptedDevicePrivateKey: _builtins.bytes | None = ..., + encryptedObliviousValidationTokenBlob: _builtins.bytes | None = ..., + encryptedEpochStoragePrivateKey: _builtins.bytes | None = ..., + encryptedOcmfClientState: _builtins.bytes | None = ..., + encryptedOrfClientStateV2: _builtins.bytes | None = ..., + encryptedMailboxRootKeyBlob: _builtins.bytes | None = ..., + encryptedEpochAnonId: _builtins.bytes | None = ..., + encryptedEpochRootKey: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "name", b"name"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedDevicePrivateKey", b"encryptedDevicePrivateKey", "encryptedEpochAnonId", b"encryptedEpochAnonId", "encryptedEpochRootKey", b"encryptedEpochRootKey", "encryptedEpochStoragePrivateKey", b"encryptedEpochStoragePrivateKey", "encryptedMailboxRootKeyBlob", b"encryptedMailboxRootKeyBlob", "encryptedObliviousValidationTokenBlob", b"encryptedObliviousValidationTokenBlob", "encryptedOcmfClientState", b"encryptedOcmfClientState", "encryptedOrfClientStateV2", b"encryptedOrfClientStateV2"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "name", b"name"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedDevicePrivateKey", b"encryptedDevicePrivateKey", "encryptedEpochAnonId", b"encryptedEpochAnonId", "encryptedEpochRootKey", b"encryptedEpochRootKey", "encryptedEpochStoragePrivateKey", b"encryptedEpochStoragePrivateKey", "encryptedMailboxRootKeyBlob", b"encryptedMailboxRootKeyBlob", "encryptedObliviousValidationTokenBlob", b"encryptedObliviousValidationTokenBlob", "encryptedOcmfClientState", b"encryptedOcmfClientState", "encryptedOrfClientStateV2", b"encryptedOrfClientStateV2"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___Location: _TypeAlias = Location # noqa: Y015 +Global___EncryptedSecretValuesOutput: _TypeAlias = EncryptedSecretValuesOutput # noqa: Y015 @_typing.final -class MediaData(_message.Message): +class EphemeralSetting(_message.Message): DESCRIPTOR: _descriptor.Descriptor - LOCALPATH_FIELD_NUMBER: _builtins.int - localPath: _builtins.str + DURATION_FIELD_NUMBER: _builtins.int + TIMESTAMP_FIELD_NUMBER: _builtins.int + duration: _builtins.int + timestamp: _builtins.int def __init__( self, *, - localPath: _builtins.str | None = ..., + duration: _builtins.int | None = ..., + timestamp: _builtins.int | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["localPath", b"localPath"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["duration", b"duration", "timestamp", b"timestamp"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["localPath", b"localPath"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["duration", b"duration", "timestamp", b"timestamp"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___MediaData: _TypeAlias = MediaData # noqa: Y015 +Global___EphemeralSetting: _TypeAlias = EphemeralSetting # noqa: Y015 @_typing.final -class MediaDomainInfo(_message.Message): +class Epoch0Output(_message.Message): DESCRIPTOR: _descriptor.Descriptor - MEDIAKEYDOMAIN_FIELD_NUMBER: _builtins.int - E2EEMEDIAKEY_FIELD_NUMBER: _builtins.int - mediaKeyDomain: Global___MediaKeyDomain.ValueType - e2EeMediaKey: _builtins.bytes + EPOCHFBID_FIELD_NUMBER: _builtins.int + EPOCHANONID_FIELD_NUMBER: _builtins.int + EPOCHDATA_FIELD_NUMBER: _builtins.int + WRAPPEDROOTKEYFORSELF_FIELD_NUMBER: _builtins.int + EPOCHSIGNATURE_FIELD_NUMBER: _builtins.int + EPOCHROOTKEYFINGERPRINT_FIELD_NUMBER: _builtins.int + EPOCHROOTKEY_FIELD_NUMBER: _builtins.int + epochFbid: _builtins.int + epochAnonId: _builtins.bytes + epochData: _builtins.bytes + wrappedRootKeyForSelf: _builtins.bytes + epochSignature: _builtins.bytes + epochRootKeyFingerprint: _builtins.bytes + epochRootKey: _builtins.bytes def __init__( self, *, - mediaKeyDomain: Global___MediaKeyDomain.ValueType | None = ..., - e2EeMediaKey: _builtins.bytes | None = ..., + epochFbid: _builtins.int | None = ..., + epochAnonId: _builtins.bytes | None = ..., + epochData: _builtins.bytes | None = ..., + wrappedRootKeyForSelf: _builtins.bytes | None = ..., + epochSignature: _builtins.bytes | None = ..., + epochRootKeyFingerprint: _builtins.bytes | None = ..., + epochRootKey: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["e2EeMediaKey", b"e2EeMediaKey", "mediaKeyDomain", b"mediaKeyDomain"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["epochAnonId", b"epochAnonId", "epochData", b"epochData", "epochFbid", b"epochFbid", "epochRootKey", b"epochRootKey", "epochRootKeyFingerprint", b"epochRootKeyFingerprint", "epochSignature", b"epochSignature", "wrappedRootKeyForSelf", b"wrappedRootKeyForSelf"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["e2EeMediaKey", b"e2EeMediaKey", "mediaKeyDomain", b"mediaKeyDomain"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["epochAnonId", b"epochAnonId", "epochData", b"epochData", "epochFbid", b"epochFbid", "epochRootKey", b"epochRootKey", "epochRootKeyFingerprint", b"epochRootKeyFingerprint", "epochSignature", b"epochSignature", "wrappedRootKeyForSelf", b"wrappedRootKeyForSelf"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___MediaDomainInfo: _TypeAlias = MediaDomainInfo # noqa: Y015 +Global___Epoch0Output: _TypeAlias = Epoch0Output # noqa: Y015 @_typing.final -class MediaEntry(_message.Message): +class EpochPublicData(_message.Message): DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class DownloadableThumbnail(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - FILESHA256_FIELD_NUMBER: _builtins.int - FILEENCSHA256_FIELD_NUMBER: _builtins.int - DIRECTPATH_FIELD_NUMBER: _builtins.int - MEDIAKEY_FIELD_NUMBER: _builtins.int - MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int - OBJECTID_FIELD_NUMBER: _builtins.int - fileSha256: _builtins.bytes - fileEncSha256: _builtins.bytes - directPath: _builtins.str - mediaKey: _builtins.bytes - mediaKeyTimestamp: _builtins.int - objectId: _builtins.str - def __init__( - self, - *, - fileSha256: _builtins.bytes | None = ..., - fileEncSha256: _builtins.bytes | None = ..., - directPath: _builtins.str | None = ..., - mediaKey: _builtins.bytes | None = ..., - mediaKeyTimestamp: _builtins.int | None = ..., - objectId: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "objectId", b"objectId"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "objectId", b"objectId"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class ProgressiveJpegDetails(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - SCANLENGTHS_FIELD_NUMBER: _builtins.int - SIDECAR_FIELD_NUMBER: _builtins.int - sidecar: _builtins.bytes - @_builtins.property - def scanLengths(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... - def __init__( - self, - *, - scanLengths: _abc.Iterable[_builtins.int] | None = ..., - sidecar: _builtins.bytes | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["sidecar", b"sidecar"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["scanLengths", b"scanLengths", "sidecar", b"sidecar"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - FILESHA256_FIELD_NUMBER: _builtins.int - MEDIAKEY_FIELD_NUMBER: _builtins.int - FILEENCSHA256_FIELD_NUMBER: _builtins.int - DIRECTPATH_FIELD_NUMBER: _builtins.int - MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int - SERVERMEDIATYPE_FIELD_NUMBER: _builtins.int - UPLOADTOKEN_FIELD_NUMBER: _builtins.int - VALIDATEDTIMESTAMP_FIELD_NUMBER: _builtins.int - SIDECAR_FIELD_NUMBER: _builtins.int - OBJECTID_FIELD_NUMBER: _builtins.int - FBID_FIELD_NUMBER: _builtins.int - DOWNLOADABLETHUMBNAIL_FIELD_NUMBER: _builtins.int - HANDLE_FIELD_NUMBER: _builtins.int - FILENAME_FIELD_NUMBER: _builtins.int - PROGRESSIVEJPEGDETAILS_FIELD_NUMBER: _builtins.int - SIZE_FIELD_NUMBER: _builtins.int - LASTDOWNLOADATTEMPTTIMESTAMP_FIELD_NUMBER: _builtins.int - fileSha256: _builtins.bytes - mediaKey: _builtins.bytes - fileEncSha256: _builtins.bytes - directPath: _builtins.str - mediaKeyTimestamp: _builtins.int - serverMediaType: _builtins.str - uploadToken: _builtins.bytes - validatedTimestamp: _builtins.bytes - sidecar: _builtins.bytes - objectId: _builtins.str - fbid: _builtins.str - handle: _builtins.str - filename: _builtins.str - size: _builtins.int - lastDownloadAttemptTimestamp: _builtins.int - @_builtins.property - def downloadableThumbnail(self) -> Global___MediaEntry.DownloadableThumbnail: ... - @_builtins.property - def progressiveJpegDetails(self) -> Global___MediaEntry.ProgressiveJpegDetails: ... + EPOCHNUMBER_FIELD_NUMBER: _builtins.int + USERFBID_FIELD_NUMBER: _builtins.int + MAILBOXSIGNINGPK_FIELD_NUMBER: _builtins.int + MAILBOXENCRYPTIONPK_FIELD_NUMBER: _builtins.int + MAILBOXAUTHPK_FIELD_NUMBER: _builtins.int + PREVIOUSEPOCHHEAD_FIELD_NUMBER: _builtins.int + epochNumber: _builtins.int + userFbid: _builtins.str + mailboxSigningPk: _builtins.bytes + mailboxEncryptionPk: _builtins.bytes + mailboxAuthPk: _builtins.bytes + previousEpochHead: _builtins.bytes def __init__( self, *, - fileSha256: _builtins.bytes | None = ..., - mediaKey: _builtins.bytes | None = ..., - fileEncSha256: _builtins.bytes | None = ..., - directPath: _builtins.str | None = ..., - mediaKeyTimestamp: _builtins.int | None = ..., - serverMediaType: _builtins.str | None = ..., - uploadToken: _builtins.bytes | None = ..., - validatedTimestamp: _builtins.bytes | None = ..., - sidecar: _builtins.bytes | None = ..., - objectId: _builtins.str | None = ..., - fbid: _builtins.str | None = ..., - downloadableThumbnail: Global___MediaEntry.DownloadableThumbnail | None = ..., - handle: _builtins.str | None = ..., - filename: _builtins.str | None = ..., - progressiveJpegDetails: Global___MediaEntry.ProgressiveJpegDetails | None = ..., - size: _builtins.int | None = ..., - lastDownloadAttemptTimestamp: _builtins.int | None = ..., + epochNumber: _builtins.int | None = ..., + userFbid: _builtins.str | None = ..., + mailboxSigningPk: _builtins.bytes | None = ..., + mailboxEncryptionPk: _builtins.bytes | None = ..., + mailboxAuthPk: _builtins.bytes | None = ..., + previousEpochHead: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "downloadableThumbnail", b"downloadableThumbnail", "fbid", b"fbid", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "filename", b"filename", "handle", b"handle", "lastDownloadAttemptTimestamp", b"lastDownloadAttemptTimestamp", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "objectId", b"objectId", "progressiveJpegDetails", b"progressiveJpegDetails", "serverMediaType", b"serverMediaType", "sidecar", b"sidecar", "size", b"size", "uploadToken", b"uploadToken", "validatedTimestamp", b"validatedTimestamp"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "mailboxAuthPk", b"mailboxAuthPk", "mailboxEncryptionPk", b"mailboxEncryptionPk", "mailboxSigningPk", b"mailboxSigningPk", "previousEpochHead", b"previousEpochHead", "userFbid", b"userFbid"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "downloadableThumbnail", b"downloadableThumbnail", "fbid", b"fbid", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "filename", b"filename", "handle", b"handle", "lastDownloadAttemptTimestamp", b"lastDownloadAttemptTimestamp", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "objectId", b"objectId", "progressiveJpegDetails", b"progressiveJpegDetails", "serverMediaType", b"serverMediaType", "sidecar", b"sidecar", "size", b"size", "uploadToken", b"uploadToken", "validatedTimestamp", b"validatedTimestamp"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "mailboxAuthPk", b"mailboxAuthPk", "mailboxEncryptionPk", b"mailboxEncryptionPk", "mailboxSigningPk", b"mailboxSigningPk", "previousEpochHead", b"previousEpochHead", "userFbid", b"userFbid"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___MediaEntry: _TypeAlias = MediaEntry # noqa: Y015 +Global___EpochPublicData: _TypeAlias = EpochPublicData # noqa: Y015 @_typing.final -class MediaNotifyMessage(_message.Message): +class EpochSignatures(_message.Message): DESCRIPTOR: _descriptor.Descriptor - EXPRESSPATHURL_FIELD_NUMBER: _builtins.int - FILEENCSHA256_FIELD_NUMBER: _builtins.int - FILELENGTH_FIELD_NUMBER: _builtins.int - expressPathUrl: _builtins.str - fileEncSha256: _builtins.bytes - fileLength: _builtins.int + SELFSIGNATURE_FIELD_NUMBER: _builtins.int + PREVSIGNATURE_FIELD_NUMBER: _builtins.int + selfSignature: _builtins.bytes + prevSignature: _builtins.bytes def __init__( self, *, - expressPathUrl: _builtins.str | None = ..., - fileEncSha256: _builtins.bytes | None = ..., - fileLength: _builtins.int | None = ..., + selfSignature: _builtins.bytes | None = ..., + prevSignature: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["expressPathUrl", b"expressPathUrl", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["prevSignature", b"prevSignature", "selfSignature", b"selfSignature"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["expressPathUrl", b"expressPathUrl", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["prevSignature", b"prevSignature", "selfSignature", b"selfSignature"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___MediaNotifyMessage: _TypeAlias = MediaNotifyMessage # noqa: Y015 +Global___EpochSignatures: _TypeAlias = EpochSignatures # noqa: Y015 @_typing.final -class MediaRetryNotification(_message.Message): +class EventAdditionalMetadata(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _ResultType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _ResultTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MediaRetryNotification._ResultType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - GENERAL_ERROR: MediaRetryNotification._ResultType.ValueType # 0 - SUCCESS: MediaRetryNotification._ResultType.ValueType # 1 - NOT_FOUND: MediaRetryNotification._ResultType.ValueType # 2 - DECRYPTION_ERROR: MediaRetryNotification._ResultType.ValueType # 3 - - class ResultType(_ResultType, metaclass=_ResultTypeEnumTypeWrapper): ... - GENERAL_ERROR: MediaRetryNotification.ResultType.ValueType # 0 - SUCCESS: MediaRetryNotification.ResultType.ValueType # 1 - NOT_FOUND: MediaRetryNotification.ResultType.ValueType # 2 - DECRYPTION_ERROR: MediaRetryNotification.ResultType.ValueType # 3 - - STANZAID_FIELD_NUMBER: _builtins.int - DIRECTPATH_FIELD_NUMBER: _builtins.int - RESULT_FIELD_NUMBER: _builtins.int - MESSAGESECRET_FIELD_NUMBER: _builtins.int - stanzaId: _builtins.str - directPath: _builtins.str - result: Global___MediaRetryNotification.ResultType.ValueType - messageSecret: _builtins.bytes + ISSTALE_FIELD_NUMBER: _builtins.int + isStale: _builtins.bool def __init__( self, *, - stanzaId: _builtins.str | None = ..., - directPath: _builtins.str | None = ..., - result: Global___MediaRetryNotification.ResultType.ValueType | None = ..., - messageSecret: _builtins.bytes | None = ..., + isStale: _builtins.bool | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "messageSecret", b"messageSecret", "result", b"result", "stanzaId", b"stanzaId"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["isStale", b"isStale"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "messageSecret", b"messageSecret", "result", b"result", "stanzaId", b"stanzaId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["isStale", b"isStale"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___MediaRetryNotification: _TypeAlias = MediaRetryNotification # noqa: Y015 +Global___EventAdditionalMetadata: _TypeAlias = EventAdditionalMetadata # noqa: Y015 @_typing.final -class MemberLabel(_message.Message): +class EventResponse(_message.Message): DESCRIPTOR: _descriptor.Descriptor - LABEL_FIELD_NUMBER: _builtins.int - LABELTIMESTAMP_FIELD_NUMBER: _builtins.int - label: _builtins.str - labelTimestamp: _builtins.int + EVENTRESPONSEMESSAGEKEY_FIELD_NUMBER: _builtins.int + TIMESTAMPMS_FIELD_NUMBER: _builtins.int + EVENTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int + UNREAD_FIELD_NUMBER: _builtins.int + timestampMs: _builtins.int + unread: _builtins.bool + @_builtins.property + def eventResponseMessageKey(self) -> Global___MessageKey: ... + @_builtins.property + def eventResponseMessage(self) -> Global___Message.EventResponseMessage: ... def __init__( self, *, - label: _builtins.str | None = ..., - labelTimestamp: _builtins.int | None = ..., + eventResponseMessageKey: Global___MessageKey | None = ..., + timestampMs: _builtins.int | None = ..., + eventResponseMessage: Global___Message.EventResponseMessage | None = ..., + unread: _builtins.bool | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["label", b"label", "labelTimestamp", b"labelTimestamp"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["eventResponseMessage", b"eventResponseMessage", "eventResponseMessageKey", b"eventResponseMessageKey", "timestampMs", b"timestampMs", "unread", b"unread"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["label", b"label", "labelTimestamp", b"labelTimestamp"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["eventResponseMessage", b"eventResponseMessage", "eventResponseMessageKey", b"eventResponseMessageKey", "timestampMs", b"timestampMs", "unread", b"unread"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___MemberLabel: _TypeAlias = MemberLabel # noqa: Y015 +Global___EventResponse: _TypeAlias = EventResponse # noqa: Y015 @_typing.final -class Mention(_message.Message): +class ExitCode(_message.Message): DESCRIPTOR: _descriptor.Descriptor - MENTIONTYPE_FIELD_NUMBER: _builtins.int - MENTIONEDJID_FIELD_NUMBER: _builtins.int - OFFSET_FIELD_NUMBER: _builtins.int - LENGTH_FIELD_NUMBER: _builtins.int - mentionType: Global___MENTION_MENTION_TYPE.ValueType - mentionedJid: _builtins.str - offset: _builtins.int - length: _builtins.int + CODE_FIELD_NUMBER: _builtins.int + TEXT_FIELD_NUMBER: _builtins.int + code: _builtins.int + text: _builtins.str def __init__( self, *, - mentionType: Global___MENTION_MENTION_TYPE.ValueType | None = ..., - mentionedJid: _builtins.str | None = ..., - offset: _builtins.int | None = ..., - length: _builtins.int | None = ..., + code: _builtins.int | None = ..., + text: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["length", b"length", "mentionType", b"mentionType", "mentionedJid", b"mentionedJid", "offset", b"offset"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["code", b"code", "text", b"text"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["length", b"length", "mentionType", b"mentionType", "mentionedJid", b"mentionedJid", "offset", b"offset"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["code", b"code", "text", b"text"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___Mention: _TypeAlias = Mention # noqa: Y015 +Global___ExitCode: _TypeAlias = ExitCode # noqa: Y015 @_typing.final -class Message(_message.Message): +class ExtendedContentMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _HistorySyncType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _HistorySyncTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._HistorySyncType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - INITIAL_BOOTSTRAP: Message._HistorySyncType.ValueType # 0 - INITIAL_STATUS_V3: Message._HistorySyncType.ValueType # 1 - FULL: Message._HistorySyncType.ValueType # 2 - RECENT: Message._HistorySyncType.ValueType # 3 - PUSH_NAME: Message._HistorySyncType.ValueType # 4 - NON_BLOCKING_DATA: Message._HistorySyncType.ValueType # 5 - ON_DEMAND: Message._HistorySyncType.ValueType # 6 - NO_HISTORY: Message._HistorySyncType.ValueType # 7 - MESSAGE_ACCESS_STATUS: Message._HistorySyncType.ValueType # 8 - - class HistorySyncType(_HistorySyncType, metaclass=_HistorySyncTypeEnumTypeWrapper): ... - INITIAL_BOOTSTRAP: Message.HistorySyncType.ValueType # 0 - INITIAL_STATUS_V3: Message.HistorySyncType.ValueType # 1 - FULL: Message.HistorySyncType.ValueType # 2 - RECENT: Message.HistorySyncType.ValueType # 3 - PUSH_NAME: Message.HistorySyncType.ValueType # 4 - NON_BLOCKING_DATA: Message.HistorySyncType.ValueType # 5 - ON_DEMAND: Message.HistorySyncType.ValueType # 6 - NO_HISTORY: Message.HistorySyncType.ValueType # 7 - MESSAGE_ACCESS_STATUS: Message.HistorySyncType.ValueType # 8 - - class _InsightDeliveryState: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _InsightDeliveryStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._InsightDeliveryState.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - SENT: Message._InsightDeliveryState.ValueType # 0 - DELIVERED: Message._InsightDeliveryState.ValueType # 1 - READ: Message._InsightDeliveryState.ValueType # 2 - REPLIED: Message._InsightDeliveryState.ValueType # 3 - QUICK_REPLIED: Message._InsightDeliveryState.ValueType # 4 - - class InsightDeliveryState(_InsightDeliveryState, metaclass=_InsightDeliveryStateEnumTypeWrapper): ... - SENT: Message.InsightDeliveryState.ValueType # 0 - DELIVERED: Message.InsightDeliveryState.ValueType # 1 - READ: Message.InsightDeliveryState.ValueType # 2 - REPLIED: Message.InsightDeliveryState.ValueType # 3 - QUICK_REPLIED: Message.InsightDeliveryState.ValueType # 4 - - class _PeerDataOperationRequestType: + class _EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH: ValueType = _typing.NewType("ValueType", _builtins.int) V: _TypeAlias = ValueType # noqa: Y015 - class _PeerDataOperationRequestTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._PeerDataOperationRequestType.ValueType], _builtins.type): + class _EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPHEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType], _builtins.type): DESCRIPTOR: _descriptor.EnumDescriptor - UPLOAD_STICKER: Message._PeerDataOperationRequestType.ValueType # 0 - SEND_RECENT_STICKER_BOOTSTRAP: Message._PeerDataOperationRequestType.ValueType # 1 - GENERATE_LINK_PREVIEW: Message._PeerDataOperationRequestType.ValueType # 2 - HISTORY_SYNC_ON_DEMAND: Message._PeerDataOperationRequestType.ValueType # 3 - PLACEHOLDER_MESSAGE_RESEND: Message._PeerDataOperationRequestType.ValueType # 4 - WAFFLE_LINKING_NONCE_FETCH: Message._PeerDataOperationRequestType.ValueType # 5 - FULL_HISTORY_SYNC_ON_DEMAND: Message._PeerDataOperationRequestType.ValueType # 6 - COMPANION_META_NONCE_FETCH: Message._PeerDataOperationRequestType.ValueType # 7 - COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY: Message._PeerDataOperationRequestType.ValueType # 8 - COMPANION_CANONICAL_USER_NONCE_FETCH: Message._PeerDataOperationRequestType.ValueType # 9 - HISTORY_SYNC_CHUNK_RETRY: Message._PeerDataOperationRequestType.ValueType # 10 - GALAXY_FLOW_ACTION: Message._PeerDataOperationRequestType.ValueType # 11 - BUSINESS_BROADCAST_INSIGHTS_DELIVERED_TO: Message._PeerDataOperationRequestType.ValueType # 12 - BUSINESS_BROADCAST_INSIGHTS_REFRESH: Message._PeerDataOperationRequestType.ValueType # 13 - - class PeerDataOperationRequestType(_PeerDataOperationRequestType, metaclass=_PeerDataOperationRequestTypeEnumTypeWrapper): ... - UPLOAD_STICKER: Message.PeerDataOperationRequestType.ValueType # 0 - SEND_RECENT_STICKER_BOOTSTRAP: Message.PeerDataOperationRequestType.ValueType # 1 - GENERATE_LINK_PREVIEW: Message.PeerDataOperationRequestType.ValueType # 2 - HISTORY_SYNC_ON_DEMAND: Message.PeerDataOperationRequestType.ValueType # 3 - PLACEHOLDER_MESSAGE_RESEND: Message.PeerDataOperationRequestType.ValueType # 4 - WAFFLE_LINKING_NONCE_FETCH: Message.PeerDataOperationRequestType.ValueType # 5 - FULL_HISTORY_SYNC_ON_DEMAND: Message.PeerDataOperationRequestType.ValueType # 6 - COMPANION_META_NONCE_FETCH: Message.PeerDataOperationRequestType.ValueType # 7 - COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY: Message.PeerDataOperationRequestType.ValueType # 8 - COMPANION_CANONICAL_USER_NONCE_FETCH: Message.PeerDataOperationRequestType.ValueType # 9 - HISTORY_SYNC_CHUNK_RETRY: Message.PeerDataOperationRequestType.ValueType # 10 - GALAXY_FLOW_ACTION: Message.PeerDataOperationRequestType.ValueType # 11 - BUSINESS_BROADCAST_INSIGHTS_DELIVERED_TO: Message.PeerDataOperationRequestType.ValueType # 12 - BUSINESS_BROADCAST_INSIGHTS_REFRESH: Message.PeerDataOperationRequestType.ValueType # 13 - - class _PollContentType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + INFO: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 0 + EYE_OFF: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 1 + NEWS_OFF: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 2 + WARNING: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 3 + PRIVATE: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 4 + NONE: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 5 + MEDIA_LABEL: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 6 + POST_COVER: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 7 + POST_LABEL: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 8 + WARNING_SCREENS: ExtendedContentMessage._EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 9 + + class EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH(_EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH, metaclass=_EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPHEnumTypeWrapper): ... + INFO: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 0 + EYE_OFF: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 1 + NEWS_OFF: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 2 + WARNING: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 3 + PRIVATE: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 4 + NONE: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 5 + MEDIA_LABEL: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 6 + POST_COVER: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 7 + POST_LABEL: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 8 + WARNING_SCREENS: ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType # 9 + + @_typing.final + class CTA(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + BUTTONTYPE_FIELD_NUMBER: _builtins.int + TITLE_FIELD_NUMBER: _builtins.int + ACTIONURL_FIELD_NUMBER: _builtins.int + NATIVEURL_FIELD_NUMBER: _builtins.int + CTATYPE_FIELD_NUMBER: _builtins.int + ACTIONCONTENTBLOB_FIELD_NUMBER: _builtins.int + buttonType: Global___EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE.ValueType + title: _builtins.str + actionUrl: _builtins.str + nativeUrl: _builtins.str + ctaType: _builtins.str + actionContentBlob: _builtins.str + def __init__( + self, + *, + buttonType: Global___EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE.ValueType | None = ..., + title: _builtins.str | None = ..., + actionUrl: _builtins.str | None = ..., + nativeUrl: _builtins.str | None = ..., + ctaType: _builtins.str | None = ..., + actionContentBlob: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["actionContentBlob", b"actionContentBlob", "actionUrl", b"actionUrl", "buttonType", b"buttonType", "ctaType", b"ctaType", "nativeUrl", b"nativeUrl", "title", b"title"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["actionContentBlob", b"actionContentBlob", "actionUrl", b"actionUrl", "buttonType", b"buttonType", "ctaType", b"ctaType", "nativeUrl", b"nativeUrl", "title", b"title"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + ASSOCIATEDMESSAGE_FIELD_NUMBER: _builtins.int + TARGETTYPE_FIELD_NUMBER: _builtins.int + TARGETUSERNAME_FIELD_NUMBER: _builtins.int + TARGETID_FIELD_NUMBER: _builtins.int + TARGETEXPIRINGATSEC_FIELD_NUMBER: _builtins.int + XMALAYOUTTYPE_FIELD_NUMBER: _builtins.int + CTAS_FIELD_NUMBER: _builtins.int + PREVIEWS_FIELD_NUMBER: _builtins.int + TITLETEXT_FIELD_NUMBER: _builtins.int + SUBTITLETEXT_FIELD_NUMBER: _builtins.int + MAXTITLENUMOFLINES_FIELD_NUMBER: _builtins.int + MAXSUBTITLENUMOFLINES_FIELD_NUMBER: _builtins.int + FAVICON_FIELD_NUMBER: _builtins.int + HEADERIMAGE_FIELD_NUMBER: _builtins.int + HEADERTITLE_FIELD_NUMBER: _builtins.int + OVERLAYICONGLYPH_FIELD_NUMBER: _builtins.int + OVERLAYTITLE_FIELD_NUMBER: _builtins.int + OVERLAYDESCRIPTION_FIELD_NUMBER: _builtins.int + SENTWITHMESSAGEID_FIELD_NUMBER: _builtins.int + MESSAGETEXT_FIELD_NUMBER: _builtins.int + HEADERSUBTITLE_FIELD_NUMBER: _builtins.int + XMADATACLASS_FIELD_NUMBER: _builtins.int + CONTENTREF_FIELD_NUMBER: _builtins.int + MENTIONEDJID_FIELD_NUMBER: _builtins.int + COMMANDS_FIELD_NUMBER: _builtins.int + MENTIONS_FIELD_NUMBER: _builtins.int + XMADATACLASSTYPE_FIELD_NUMBER: _builtins.int + SIGNEDXMADATACLASSVALIDATION_FIELD_NUMBER: _builtins.int + FEATURESHAREDSESSIONID_FIELD_NUMBER: _builtins.int + targetType: Global___EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType + targetUsername: _builtins.str + targetId: _builtins.str + targetExpiringAtSec: _builtins.int + xmaLayoutType: Global___EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType + titleText: _builtins.str + subtitleText: _builtins.str + maxTitleNumOfLines: _builtins.int + maxSubtitleNumOfLines: _builtins.int + headerTitle: _builtins.str + overlayIconGlyph: Global___ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType + overlayTitle: _builtins.str + overlayDescription: _builtins.str + sentWithMessageId: _builtins.str + messageText: _builtins.str + headerSubtitle: _builtins.str + xmaDataclass: _builtins.str + contentRef: _builtins.str + xmaDataclassType: Global___EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType + signedXmaDataclassValidation: _builtins.str + featureSharedSessionId: _builtins.str + @_builtins.property + def associatedMessage(self) -> Global___SubProtocol: ... + @_builtins.property + def ctas(self) -> _containers.RepeatedCompositeFieldContainer[Global___ExtendedContentMessage.CTA]: ... + @_builtins.property + def previews(self) -> _containers.RepeatedCompositeFieldContainer[Global___SubProtocol]: ... + @_builtins.property + def favicon(self) -> Global___SubProtocol: ... + @_builtins.property + def headerImage(self) -> Global___SubProtocol: ... + @_builtins.property + def mentionedJid(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + @_builtins.property + def commands(self) -> _containers.RepeatedCompositeFieldContainer[Global___Command]: ... + @_builtins.property + def mentions(self) -> _containers.RepeatedCompositeFieldContainer[Global___Mention]: ... + def __init__( + self, + *, + associatedMessage: Global___SubProtocol | None = ..., + targetType: Global___EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE.ValueType | None = ..., + targetUsername: _builtins.str | None = ..., + targetId: _builtins.str | None = ..., + targetExpiringAtSec: _builtins.int | None = ..., + xmaLayoutType: Global___EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE.ValueType | None = ..., + ctas: _abc.Iterable[Global___ExtendedContentMessage.CTA] | None = ..., + previews: _abc.Iterable[Global___SubProtocol] | None = ..., + titleText: _builtins.str | None = ..., + subtitleText: _builtins.str | None = ..., + maxTitleNumOfLines: _builtins.int | None = ..., + maxSubtitleNumOfLines: _builtins.int | None = ..., + favicon: Global___SubProtocol | None = ..., + headerImage: Global___SubProtocol | None = ..., + headerTitle: _builtins.str | None = ..., + overlayIconGlyph: Global___ExtendedContentMessage.EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH.ValueType | None = ..., + overlayTitle: _builtins.str | None = ..., + overlayDescription: _builtins.str | None = ..., + sentWithMessageId: _builtins.str | None = ..., + messageText: _builtins.str | None = ..., + headerSubtitle: _builtins.str | None = ..., + xmaDataclass: _builtins.str | None = ..., + contentRef: _builtins.str | None = ..., + mentionedJid: _abc.Iterable[_builtins.str] | None = ..., + commands: _abc.Iterable[Global___Command] | None = ..., + mentions: _abc.Iterable[Global___Mention] | None = ..., + xmaDataclassType: Global___EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE.ValueType | None = ..., + signedXmaDataclassValidation: _builtins.str | None = ..., + featureSharedSessionId: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["associatedMessage", b"associatedMessage", "contentRef", b"contentRef", "favicon", b"favicon", "featureSharedSessionId", b"featureSharedSessionId", "headerImage", b"headerImage", "headerSubtitle", b"headerSubtitle", "headerTitle", b"headerTitle", "maxSubtitleNumOfLines", b"maxSubtitleNumOfLines", "maxTitleNumOfLines", b"maxTitleNumOfLines", "messageText", b"messageText", "overlayDescription", b"overlayDescription", "overlayIconGlyph", b"overlayIconGlyph", "overlayTitle", b"overlayTitle", "sentWithMessageId", b"sentWithMessageId", "signedXmaDataclassValidation", b"signedXmaDataclassValidation", "subtitleText", b"subtitleText", "targetExpiringAtSec", b"targetExpiringAtSec", "targetId", b"targetId", "targetType", b"targetType", "targetUsername", b"targetUsername", "titleText", b"titleText", "xmaDataclass", b"xmaDataclass", "xmaDataclassType", b"xmaDataclassType", "xmaLayoutType", b"xmaLayoutType"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["associatedMessage", b"associatedMessage", "commands", b"commands", "contentRef", b"contentRef", "ctas", b"ctas", "favicon", b"favicon", "featureSharedSessionId", b"featureSharedSessionId", "headerImage", b"headerImage", "headerSubtitle", b"headerSubtitle", "headerTitle", b"headerTitle", "maxSubtitleNumOfLines", b"maxSubtitleNumOfLines", "maxTitleNumOfLines", b"maxTitleNumOfLines", "mentionedJid", b"mentionedJid", "mentions", b"mentions", "messageText", b"messageText", "overlayDescription", b"overlayDescription", "overlayIconGlyph", b"overlayIconGlyph", "overlayTitle", b"overlayTitle", "previews", b"previews", "sentWithMessageId", b"sentWithMessageId", "signedXmaDataclassValidation", b"signedXmaDataclassValidation", "subtitleText", b"subtitleText", "targetExpiringAtSec", b"targetExpiringAtSec", "targetId", b"targetId", "targetType", b"targetType", "targetUsername", b"targetUsername", "titleText", b"titleText", "xmaDataclass", b"xmaDataclass", "xmaDataclassType", b"xmaDataclassType", "xmaLayoutType", b"xmaLayoutType"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _PollContentTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._PollContentType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message._PollContentType.ValueType # 0 - TEXT: Message._PollContentType.ValueType # 1 - IMAGE: Message._PollContentType.ValueType # 2 +Global___ExtendedContentMessage: _TypeAlias = ExtendedContentMessage # noqa: Y015 - class PollContentType(_PollContentType, metaclass=_PollContentTypeEnumTypeWrapper): ... - UNKNOWN: Message.PollContentType.ValueType # 0 - TEXT: Message.PollContentType.ValueType # 1 - IMAGE: Message.PollContentType.ValueType # 2 +@_typing.final +class ExternalBlobReference(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _PollType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + MEDIAKEY_FIELD_NUMBER: _builtins.int + DIRECTPATH_FIELD_NUMBER: _builtins.int + HANDLE_FIELD_NUMBER: _builtins.int + FILESIZEBYTES_FIELD_NUMBER: _builtins.int + FILESHA256_FIELD_NUMBER: _builtins.int + FILEENCSHA256_FIELD_NUMBER: _builtins.int + mediaKey: _builtins.bytes + directPath: _builtins.str + handle: _builtins.str + fileSizeBytes: _builtins.int + fileSha256: _builtins.bytes + fileEncSha256: _builtins.bytes + def __init__( + self, + *, + mediaKey: _builtins.bytes | None = ..., + directPath: _builtins.str | None = ..., + handle: _builtins.str | None = ..., + fileSizeBytes: _builtins.int | None = ..., + fileSha256: _builtins.bytes | None = ..., + fileEncSha256: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "fileSizeBytes", b"fileSizeBytes", "handle", b"handle", "mediaKey", b"mediaKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "fileSizeBytes", b"fileSizeBytes", "handle", b"handle", "mediaKey", b"mediaKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _PollTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._PollType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - POLL: Message._PollType.ValueType # 0 - QUIZ: Message._PollType.ValueType # 1 +Global___ExternalBlobReference: _TypeAlias = ExternalBlobReference # noqa: Y015 - class PollType(_PollType, metaclass=_PollTypeEnumTypeWrapper): ... - POLL: Message.PollType.ValueType # 0 - QUIZ: Message.PollType.ValueType # 1 +@_typing.final +class Field(_message.Message): + DESCRIPTOR: _descriptor.Descriptor @_typing.final - class AlbumMessage(_message.Message): + class SubfieldEntry(_message.Message): DESCRIPTOR: _descriptor.Descriptor - EXPECTEDIMAGECOUNT_FIELD_NUMBER: _builtins.int - EXPECTEDVIDEOCOUNT_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - expectedImageCount: _builtins.int - expectedVideoCount: _builtins.int + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.int @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... + def value(self) -> Global___Field: ... def __init__( self, *, - expectedImageCount: _builtins.int | None = ..., - expectedVideoCount: _builtins.int | None = ..., - contextInfo: Global___ContextInfo | None = ..., + key: _builtins.int | None = ..., + value: Global___Field | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "expectedImageCount", b"expectedImageCount", "expectedVideoCount", b"expectedVideoCount"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "expectedImageCount", b"expectedImageCount", "expectedVideoCount", b"expectedVideoCount"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class AppStateFatalExceptionNotification(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + MINVERSION_FIELD_NUMBER: _builtins.int + MAXVERSION_FIELD_NUMBER: _builtins.int + NOTREPORTABLEMINVERSION_FIELD_NUMBER: _builtins.int + ISMESSAGE_FIELD_NUMBER: _builtins.int + SUBFIELD_FIELD_NUMBER: _builtins.int + minVersion: _builtins.int + maxVersion: _builtins.int + notReportableMinVersion: _builtins.int + isMessage: _builtins.bool + @_builtins.property + def subfield(self) -> _containers.MessageMap[_builtins.int, Global___Field]: ... + def __init__( + self, + *, + minVersion: _builtins.int | None = ..., + maxVersion: _builtins.int | None = ..., + notReportableMinVersion: _builtins.int | None = ..., + isMessage: _builtins.bool | None = ..., + subfield: _abc.Mapping[_builtins.int, Global___Field] | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["isMessage", b"isMessage", "maxVersion", b"maxVersion", "minVersion", b"minVersion", "notReportableMinVersion", b"notReportableMinVersion"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["isMessage", b"isMessage", "maxVersion", b"maxVersion", "minVersion", b"minVersion", "notReportableMinVersion", b"notReportableMinVersion", "subfield", b"subfield"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - COLLECTIONNAMES_FIELD_NUMBER: _builtins.int - TIMESTAMP_FIELD_NUMBER: _builtins.int - timestamp: _builtins.int - @_builtins.property - def collectionNames(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__( - self, - *, - collectionNames: _abc.Iterable[_builtins.str] | None = ..., - timestamp: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["timestamp", b"timestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["collectionNames", b"collectionNames", "timestamp", b"timestamp"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class AppStateSyncKey(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +Global___Field: _TypeAlias = Field # noqa: Y015 - KEYID_FIELD_NUMBER: _builtins.int - KEYDATA_FIELD_NUMBER: _builtins.int - @_builtins.property - def keyId(self) -> Global___Message.AppStateSyncKeyId: ... - @_builtins.property - def keyData(self) -> Global___Message.AppStateSyncKeyData: ... - def __init__( - self, - *, - keyId: Global___Message.AppStateSyncKeyId | None = ..., - keyData: Global___Message.AppStateSyncKeyData | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["keyData", b"keyData", "keyId", b"keyId"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["keyData", b"keyData", "keyId", b"keyId"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +@_typing.final +class FingerprintData(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class AppStateSyncKeyData(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class _HostedState: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - KEYDATA_FIELD_NUMBER: _builtins.int - FINGERPRINT_FIELD_NUMBER: _builtins.int - TIMESTAMP_FIELD_NUMBER: _builtins.int - keyData: _builtins.bytes - timestamp: _builtins.int - @_builtins.property - def fingerprint(self) -> Global___Message.AppStateSyncKeyFingerprint: ... - def __init__( - self, - *, - keyData: _builtins.bytes | None = ..., - fingerprint: Global___Message.AppStateSyncKeyFingerprint | None = ..., - timestamp: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["fingerprint", b"fingerprint", "keyData", b"keyData", "timestamp", b"timestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["fingerprint", b"fingerprint", "keyData", b"keyData", "timestamp", b"timestamp"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class _HostedStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[FingerprintData._HostedState.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + E2EE: FingerprintData._HostedState.ValueType # 0 + HOSTED: FingerprintData._HostedState.ValueType # 1 - @_typing.final - class AppStateSyncKeyFingerprint(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class HostedState(_HostedState, metaclass=_HostedStateEnumTypeWrapper): ... + E2EE: FingerprintData.HostedState.ValueType # 0 + HOSTED: FingerprintData.HostedState.ValueType # 1 - RAWID_FIELD_NUMBER: _builtins.int - CURRENTINDEX_FIELD_NUMBER: _builtins.int - DEVICEINDEXES_FIELD_NUMBER: _builtins.int - rawId: _builtins.int - currentIndex: _builtins.int - @_builtins.property - def deviceIndexes(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... - def __init__( - self, - *, - rawId: _builtins.int | None = ..., - currentIndex: _builtins.int | None = ..., - deviceIndexes: _abc.Iterable[_builtins.int] | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["currentIndex", b"currentIndex", "rawId", b"rawId"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["currentIndex", b"currentIndex", "deviceIndexes", b"deviceIndexes", "rawId", b"rawId"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + PUBLICKEY_FIELD_NUMBER: _builtins.int + PNIDENTIFIER_FIELD_NUMBER: _builtins.int + LIDIDENTIFIER_FIELD_NUMBER: _builtins.int + USERNAMEIDENTIFIER_FIELD_NUMBER: _builtins.int + HOSTEDSTATE_FIELD_NUMBER: _builtins.int + HASHEDPUBLICKEY_FIELD_NUMBER: _builtins.int + publicKey: _builtins.bytes + pnIdentifier: _builtins.bytes + lidIdentifier: _builtins.bytes + usernameIdentifier: _builtins.bytes + hostedState: Global___FingerprintData.HostedState.ValueType + hashedPublicKey: _builtins.bytes + def __init__( + self, + *, + publicKey: _builtins.bytes | None = ..., + pnIdentifier: _builtins.bytes | None = ..., + lidIdentifier: _builtins.bytes | None = ..., + usernameIdentifier: _builtins.bytes | None = ..., + hostedState: Global___FingerprintData.HostedState.ValueType | None = ..., + hashedPublicKey: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["hashedPublicKey", b"hashedPublicKey", "hostedState", b"hostedState", "lidIdentifier", b"lidIdentifier", "pnIdentifier", b"pnIdentifier", "publicKey", b"publicKey", "usernameIdentifier", b"usernameIdentifier"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["hashedPublicKey", b"hashedPublicKey", "hostedState", b"hostedState", "lidIdentifier", b"lidIdentifier", "pnIdentifier", b"pnIdentifier", "publicKey", b"publicKey", "usernameIdentifier", b"usernameIdentifier"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class AppStateSyncKeyId(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +Global___FingerprintData: _TypeAlias = FingerprintData # noqa: Y015 - KEYID_FIELD_NUMBER: _builtins.int - keyId: _builtins.bytes - def __init__( - self, - *, - keyId: _builtins.bytes | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["keyId", b"keyId"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["keyId", b"keyId"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +@_typing.final +class ForwardedAIBotMessageInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class AppStateSyncKeyRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + BOTNAME_FIELD_NUMBER: _builtins.int + BOTJID_FIELD_NUMBER: _builtins.int + CREATORNAME_FIELD_NUMBER: _builtins.int + botName: _builtins.str + botJid: _builtins.str + creatorName: _builtins.str + def __init__( + self, + *, + botName: _builtins.str | None = ..., + botJid: _builtins.str | None = ..., + creatorName: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["botJid", b"botJid", "botName", b"botName", "creatorName", b"creatorName"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["botJid", b"botJid", "botName", b"botName", "creatorName", b"creatorName"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - KEYIDS_FIELD_NUMBER: _builtins.int - @_builtins.property - def keyIds(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.AppStateSyncKeyId]: ... - def __init__( - self, - *, - keyIds: _abc.Iterable[Global___Message.AppStateSyncKeyId] | None = ..., - ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["keyIds", b"keyIds"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___ForwardedAIBotMessageInfo: _TypeAlias = ForwardedAIBotMessageInfo # noqa: Y015 - @_typing.final - class AppStateSyncKeyShare(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +@_typing.final +class GenerateMekInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEYS_FIELD_NUMBER: _builtins.int - @_builtins.property - def keys(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.AppStateSyncKey]: ... - def __init__( - self, - *, - keys: _abc.Iterable[Global___Message.AppStateSyncKey] | None = ..., - ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["keys", b"keys"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + EPOCHHEADS_FIELD_NUMBER: _builtins.int + @_builtins.property + def epochHeads(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... + def __init__( + self, + *, + epochHeads: _abc.Iterable[_builtins.bytes] | None = ..., + ) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["epochHeads", b"epochHeads"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class AudioMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +Global___GenerateMekInput: _TypeAlias = GenerateMekInput # noqa: Y015 - URL_FIELD_NUMBER: _builtins.int - MIMETYPE_FIELD_NUMBER: _builtins.int - FILESHA256_FIELD_NUMBER: _builtins.int - FILELENGTH_FIELD_NUMBER: _builtins.int - SECONDS_FIELD_NUMBER: _builtins.int - PTT_FIELD_NUMBER: _builtins.int - MEDIAKEY_FIELD_NUMBER: _builtins.int - FILEENCSHA256_FIELD_NUMBER: _builtins.int - DIRECTPATH_FIELD_NUMBER: _builtins.int - MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - STREAMINGSIDECAR_FIELD_NUMBER: _builtins.int - WAVEFORM_FIELD_NUMBER: _builtins.int - BACKGROUNDARGB_FIELD_NUMBER: _builtins.int - VIEWONCE_FIELD_NUMBER: _builtins.int - ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int - url: _builtins.str - mimetype: _builtins.str - fileSha256: _builtins.bytes - fileLength: _builtins.int - seconds: _builtins.int - ptt: _builtins.bool - mediaKey: _builtins.bytes - fileEncSha256: _builtins.bytes - directPath: _builtins.str - mediaKeyTimestamp: _builtins.int - streamingSidecar: _builtins.bytes - waveform: _builtins.bytes - backgroundArgb: _builtins.int - viewOnce: _builtins.bool - accessibilityLabel: _builtins.str - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - def __init__( - self, - *, - url: _builtins.str | None = ..., - mimetype: _builtins.str | None = ..., - fileSha256: _builtins.bytes | None = ..., - fileLength: _builtins.int | None = ..., - seconds: _builtins.int | None = ..., - ptt: _builtins.bool | None = ..., - mediaKey: _builtins.bytes | None = ..., - fileEncSha256: _builtins.bytes | None = ..., - directPath: _builtins.str | None = ..., - mediaKeyTimestamp: _builtins.int | None = ..., - contextInfo: Global___ContextInfo | None = ..., - streamingSidecar: _builtins.bytes | None = ..., - waveform: _builtins.bytes | None = ..., - backgroundArgb: _builtins.int | None = ..., - viewOnce: _builtins.bool | None = ..., - accessibilityLabel: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "backgroundArgb", b"backgroundArgb", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "ptt", b"ptt", "seconds", b"seconds", "streamingSidecar", b"streamingSidecar", "url", b"url", "viewOnce", b"viewOnce", "waveform", b"waveform"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "backgroundArgb", b"backgroundArgb", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "ptt", b"ptt", "seconds", b"seconds", "streamingSidecar", b"streamingSidecar", "url", b"url", "viewOnce", b"viewOnce", "waveform", b"waveform"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +@_typing.final +class GenerateMekResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class BCallMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + MEK_FIELD_NUMBER: _builtins.int + @_builtins.property + def mek(self) -> Global___MekBundle: ... + def __init__( + self, + *, + mek: Global___MekBundle | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["mek", b"mek"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["mek", b"mek"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _MediaType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 +Global___GenerateMekResult: _TypeAlias = GenerateMekResult # noqa: Y015 - class _MediaTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.BCallMessage._MediaType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message.BCallMessage._MediaType.ValueType # 0 - AUDIO: Message.BCallMessage._MediaType.ValueType # 1 - VIDEO: Message.BCallMessage._MediaType.ValueType # 2 +@_typing.final +class GenerateMekRosterHashInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class MediaType(_MediaType, metaclass=_MediaTypeEnumTypeWrapper): ... - UNKNOWN: Message.BCallMessage.MediaType.ValueType # 0 - AUDIO: Message.BCallMessage.MediaType.ValueType # 1 - VIDEO: Message.BCallMessage.MediaType.ValueType # 2 + EPOCHHEADS_FIELD_NUMBER: _builtins.int + @_builtins.property + def epochHeads(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... + def __init__( + self, + *, + epochHeads: _abc.Iterable[_builtins.bytes] | None = ..., + ) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["epochHeads", b"epochHeads"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - SESSIONID_FIELD_NUMBER: _builtins.int - MEDIATYPE_FIELD_NUMBER: _builtins.int - MASTERKEY_FIELD_NUMBER: _builtins.int - CAPTION_FIELD_NUMBER: _builtins.int - sessionId: _builtins.str - mediaType: Global___Message.BCallMessage.MediaType.ValueType - masterKey: _builtins.bytes - caption: _builtins.str - def __init__( - self, - *, - sessionId: _builtins.str | None = ..., - mediaType: Global___Message.BCallMessage.MediaType.ValueType | None = ..., - masterKey: _builtins.bytes | None = ..., - caption: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "masterKey", b"masterKey", "mediaType", b"mediaType", "sessionId", b"sessionId"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "masterKey", b"masterKey", "mediaType", b"mediaType", "sessionId", b"sessionId"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___GenerateMekRosterHashInput: _TypeAlias = GenerateMekRosterHashInput # noqa: Y015 - @_typing.final - class ButtonsMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +@_typing.final +class GenerateMekRosterHashResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _HeaderType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + ROSTERHASH_FIELD_NUMBER: _builtins.int + rosterHash: _builtins.bytes + def __init__( + self, + *, + rosterHash: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["rosterHash", b"rosterHash"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["rosterHash", b"rosterHash"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _HeaderTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ButtonsMessage._HeaderType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message.ButtonsMessage._HeaderType.ValueType # 0 - EMPTY: Message.ButtonsMessage._HeaderType.ValueType # 1 - TEXT: Message.ButtonsMessage._HeaderType.ValueType # 2 - DOCUMENT: Message.ButtonsMessage._HeaderType.ValueType # 3 - IMAGE: Message.ButtonsMessage._HeaderType.ValueType # 4 - VIDEO: Message.ButtonsMessage._HeaderType.ValueType # 5 - LOCATION: Message.ButtonsMessage._HeaderType.ValueType # 6 +Global___GenerateMekRosterHashResult: _TypeAlias = GenerateMekRosterHashResult # noqa: Y015 - class HeaderType(_HeaderType, metaclass=_HeaderTypeEnumTypeWrapper): ... - UNKNOWN: Message.ButtonsMessage.HeaderType.ValueType # 0 - EMPTY: Message.ButtonsMessage.HeaderType.ValueType # 1 - TEXT: Message.ButtonsMessage.HeaderType.ValueType # 2 - DOCUMENT: Message.ButtonsMessage.HeaderType.ValueType # 3 - IMAGE: Message.ButtonsMessage.HeaderType.ValueType # 4 - VIDEO: Message.ButtonsMessage.HeaderType.ValueType # 5 - LOCATION: Message.ButtonsMessage.HeaderType.ValueType # 6 +@_typing.final +class GlobalSettings(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class Button(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + LIGHTTHEMEWALLPAPER_FIELD_NUMBER: _builtins.int + MEDIAVISIBILITY_FIELD_NUMBER: _builtins.int + DARKTHEMEWALLPAPER_FIELD_NUMBER: _builtins.int + AUTODOWNLOADWIFI_FIELD_NUMBER: _builtins.int + AUTODOWNLOADCELLULAR_FIELD_NUMBER: _builtins.int + AUTODOWNLOADROAMING_FIELD_NUMBER: _builtins.int + SHOWINDIVIDUALNOTIFICATIONSPREVIEW_FIELD_NUMBER: _builtins.int + SHOWGROUPNOTIFICATIONSPREVIEW_FIELD_NUMBER: _builtins.int + DISAPPEARINGMODEDURATION_FIELD_NUMBER: _builtins.int + DISAPPEARINGMODETIMESTAMP_FIELD_NUMBER: _builtins.int + AVATARUSERSETTINGS_FIELD_NUMBER: _builtins.int + FONTSIZE_FIELD_NUMBER: _builtins.int + SECURITYNOTIFICATIONS_FIELD_NUMBER: _builtins.int + AUTOUNARCHIVECHATS_FIELD_NUMBER: _builtins.int + VIDEOQUALITYMODE_FIELD_NUMBER: _builtins.int + PHOTOQUALITYMODE_FIELD_NUMBER: _builtins.int + INDIVIDUALNOTIFICATIONSETTINGS_FIELD_NUMBER: _builtins.int + GROUPNOTIFICATIONSETTINGS_FIELD_NUMBER: _builtins.int + CHATLOCKSETTINGS_FIELD_NUMBER: _builtins.int + CHATDBLIDMIGRATIONTIMESTAMP_FIELD_NUMBER: _builtins.int + mediaVisibility: Global___MediaVisibility.ValueType + showIndividualNotificationsPreview: _builtins.bool + showGroupNotificationsPreview: _builtins.bool + disappearingModeDuration: _builtins.int + disappearingModeTimestamp: _builtins.int + fontSize: _builtins.int + securityNotifications: _builtins.bool + autoUnarchiveChats: _builtins.bool + videoQualityMode: _builtins.int + photoQualityMode: _builtins.int + chatDbLidMigrationTimestamp: _builtins.int + @_builtins.property + def lightThemeWallpaper(self) -> Global___WallpaperSettings: ... + @_builtins.property + def darkThemeWallpaper(self) -> Global___WallpaperSettings: ... + @_builtins.property + def autoDownloadWiFi(self) -> Global___AutoDownloadSettings: ... + @_builtins.property + def autoDownloadCellular(self) -> Global___AutoDownloadSettings: ... + @_builtins.property + def autoDownloadRoaming(self) -> Global___AutoDownloadSettings: ... + @_builtins.property + def avatarUserSettings(self) -> Global___AvatarUserSettings: ... + @_builtins.property + def individualNotificationSettings(self) -> Global___NotificationSettings: ... + @_builtins.property + def groupNotificationSettings(self) -> Global___NotificationSettings: ... + @_builtins.property + def chatLockSettings(self) -> Global___ChatLockSettings: ... + def __init__( + self, + *, + lightThemeWallpaper: Global___WallpaperSettings | None = ..., + mediaVisibility: Global___MediaVisibility.ValueType | None = ..., + darkThemeWallpaper: Global___WallpaperSettings | None = ..., + autoDownloadWiFi: Global___AutoDownloadSettings | None = ..., + autoDownloadCellular: Global___AutoDownloadSettings | None = ..., + autoDownloadRoaming: Global___AutoDownloadSettings | None = ..., + showIndividualNotificationsPreview: _builtins.bool | None = ..., + showGroupNotificationsPreview: _builtins.bool | None = ..., + disappearingModeDuration: _builtins.int | None = ..., + disappearingModeTimestamp: _builtins.int | None = ..., + avatarUserSettings: Global___AvatarUserSettings | None = ..., + fontSize: _builtins.int | None = ..., + securityNotifications: _builtins.bool | None = ..., + autoUnarchiveChats: _builtins.bool | None = ..., + videoQualityMode: _builtins.int | None = ..., + photoQualityMode: _builtins.int | None = ..., + individualNotificationSettings: Global___NotificationSettings | None = ..., + groupNotificationSettings: Global___NotificationSettings | None = ..., + chatLockSettings: Global___ChatLockSettings | None = ..., + chatDbLidMigrationTimestamp: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["autoDownloadCellular", b"autoDownloadCellular", "autoDownloadRoaming", b"autoDownloadRoaming", "autoDownloadWiFi", b"autoDownloadWiFi", "autoUnarchiveChats", b"autoUnarchiveChats", "avatarUserSettings", b"avatarUserSettings", "chatDbLidMigrationTimestamp", b"chatDbLidMigrationTimestamp", "chatLockSettings", b"chatLockSettings", "darkThemeWallpaper", b"darkThemeWallpaper", "disappearingModeDuration", b"disappearingModeDuration", "disappearingModeTimestamp", b"disappearingModeTimestamp", "fontSize", b"fontSize", "groupNotificationSettings", b"groupNotificationSettings", "individualNotificationSettings", b"individualNotificationSettings", "lightThemeWallpaper", b"lightThemeWallpaper", "mediaVisibility", b"mediaVisibility", "photoQualityMode", b"photoQualityMode", "securityNotifications", b"securityNotifications", "showGroupNotificationsPreview", b"showGroupNotificationsPreview", "showIndividualNotificationsPreview", b"showIndividualNotificationsPreview", "videoQualityMode", b"videoQualityMode"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["autoDownloadCellular", b"autoDownloadCellular", "autoDownloadRoaming", b"autoDownloadRoaming", "autoDownloadWiFi", b"autoDownloadWiFi", "autoUnarchiveChats", b"autoUnarchiveChats", "avatarUserSettings", b"avatarUserSettings", "chatDbLidMigrationTimestamp", b"chatDbLidMigrationTimestamp", "chatLockSettings", b"chatLockSettings", "darkThemeWallpaper", b"darkThemeWallpaper", "disappearingModeDuration", b"disappearingModeDuration", "disappearingModeTimestamp", b"disappearingModeTimestamp", "fontSize", b"fontSize", "groupNotificationSettings", b"groupNotificationSettings", "individualNotificationSettings", b"individualNotificationSettings", "lightThemeWallpaper", b"lightThemeWallpaper", "mediaVisibility", b"mediaVisibility", "photoQualityMode", b"photoQualityMode", "securityNotifications", b"securityNotifications", "showGroupNotificationsPreview", b"showGroupNotificationsPreview", "showIndividualNotificationsPreview", b"showIndividualNotificationsPreview", "videoQualityMode", b"videoQualityMode"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _Type: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 +Global___GlobalSettings: _TypeAlias = GlobalSettings # noqa: Y015 - class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ButtonsMessage.Button._Type.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message.ButtonsMessage.Button._Type.ValueType # 0 - RESPONSE: Message.ButtonsMessage.Button._Type.ValueType # 1 - NATIVE_FLOW: Message.ButtonsMessage.Button._Type.ValueType # 2 +@_typing.final +class GroupHistory(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class Type(_Type, metaclass=_TypeEnumTypeWrapper): ... - UNKNOWN: Message.ButtonsMessage.Button.Type.ValueType # 0 - RESPONSE: Message.ButtonsMessage.Button.Type.ValueType # 1 - NATIVE_FLOW: Message.ButtonsMessage.Button.Type.ValueType # 2 + MESSAGES_FIELD_NUMBER: _builtins.int + UNCOUNTEDASSOCIATEDMESSAGELISTS_FIELD_NUMBER: _builtins.int + COMMENTMESSAGES_FIELD_NUMBER: _builtins.int + OUTOFWINDOWPINNEDMESSAGES_FIELD_NUMBER: _builtins.int + @_builtins.property + def messages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfo]: ... + @_builtins.property + def uncountedAssociatedMessageLists(self) -> _containers.RepeatedCompositeFieldContainer[Global___UnCountedAssociatedMessageList]: ... + @_builtins.property + def commentMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfo]: ... + @_builtins.property + def outOfWindowPinnedMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfo]: ... + def __init__( + self, + *, + messages: _abc.Iterable[Global___WebMessageInfo] | None = ..., + uncountedAssociatedMessageLists: _abc.Iterable[Global___UnCountedAssociatedMessageList] | None = ..., + commentMessages: _abc.Iterable[Global___WebMessageInfo] | None = ..., + outOfWindowPinnedMessages: _abc.Iterable[Global___WebMessageInfo] | None = ..., + ) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commentMessages", b"commentMessages", "messages", b"messages", "outOfWindowPinnedMessages", b"outOfWindowPinnedMessages", "uncountedAssociatedMessageLists", b"uncountedAssociatedMessageLists"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class ButtonText(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +Global___GroupHistory: _TypeAlias = GroupHistory # noqa: Y015 - DISPLAYTEXT_FIELD_NUMBER: _builtins.int - displayText: _builtins.str - def __init__( - self, - *, - displayText: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +@_typing.final +class GroupHistoryBundleInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class NativeFlowInfo(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class _ProcessState: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - NAME_FIELD_NUMBER: _builtins.int - PARAMSJSON_FIELD_NUMBER: _builtins.int - name: _builtins.str - paramsJson: _builtins.str - def __init__( - self, - *, - name: _builtins.str | None = ..., - paramsJson: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "paramsJson", b"paramsJson"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "paramsJson", b"paramsJson"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class _ProcessStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[GroupHistoryBundleInfo._ProcessState.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + NOT_INJECTED: GroupHistoryBundleInfo._ProcessState.ValueType # 0 + INJECTED: GroupHistoryBundleInfo._ProcessState.ValueType # 1 + INJECTED_PARTIAL: GroupHistoryBundleInfo._ProcessState.ValueType # 2 + INJECTION_FAILED: GroupHistoryBundleInfo._ProcessState.ValueType # 3 + INJECTION_FAILED_NO_RETRY: GroupHistoryBundleInfo._ProcessState.ValueType # 4 + DEDUPED: GroupHistoryBundleInfo._ProcessState.ValueType # 5 - BUTTONID_FIELD_NUMBER: _builtins.int - BUTTONTEXT_FIELD_NUMBER: _builtins.int - TYPE_FIELD_NUMBER: _builtins.int - NATIVEFLOWINFO_FIELD_NUMBER: _builtins.int - buttonId: _builtins.str - type: Global___Message.ButtonsMessage.Button.Type.ValueType - @_builtins.property - def buttonText(self) -> Global___Message.ButtonsMessage.Button.ButtonText: ... - @_builtins.property - def nativeFlowInfo(self) -> Global___Message.ButtonsMessage.Button.NativeFlowInfo: ... - def __init__( - self, - *, - buttonId: _builtins.str | None = ..., - buttonText: Global___Message.ButtonsMessage.Button.ButtonText | None = ..., - type: Global___Message.ButtonsMessage.Button.Type.ValueType | None = ..., - nativeFlowInfo: Global___Message.ButtonsMessage.Button.NativeFlowInfo | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["buttonId", b"buttonId", "buttonText", b"buttonText", "nativeFlowInfo", b"nativeFlowInfo", "type", b"type"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["buttonId", b"buttonId", "buttonText", b"buttonText", "nativeFlowInfo", b"nativeFlowInfo", "type", b"type"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class ProcessState(_ProcessState, metaclass=_ProcessStateEnumTypeWrapper): ... + NOT_INJECTED: GroupHistoryBundleInfo.ProcessState.ValueType # 0 + INJECTED: GroupHistoryBundleInfo.ProcessState.ValueType # 1 + INJECTED_PARTIAL: GroupHistoryBundleInfo.ProcessState.ValueType # 2 + INJECTION_FAILED: GroupHistoryBundleInfo.ProcessState.ValueType # 3 + INJECTION_FAILED_NO_RETRY: GroupHistoryBundleInfo.ProcessState.ValueType # 4 + DEDUPED: GroupHistoryBundleInfo.ProcessState.ValueType # 5 - CONTENTTEXT_FIELD_NUMBER: _builtins.int - FOOTERTEXT_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - BUTTONS_FIELD_NUMBER: _builtins.int - HEADERTYPE_FIELD_NUMBER: _builtins.int - TEXT_FIELD_NUMBER: _builtins.int - DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int - IMAGEMESSAGE_FIELD_NUMBER: _builtins.int - VIDEOMESSAGE_FIELD_NUMBER: _builtins.int - LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int - contentText: _builtins.str - footerText: _builtins.str - headerType: Global___Message.ButtonsMessage.HeaderType.ValueType - text: _builtins.str - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - @_builtins.property - def buttons(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ButtonsMessage.Button]: ... - @_builtins.property - def documentMessage(self) -> Global___Message.DocumentMessage: ... - @_builtins.property - def imageMessage(self) -> Global___Message.ImageMessage: ... - @_builtins.property - def videoMessage(self) -> Global___Message.VideoMessage: ... - @_builtins.property - def locationMessage(self) -> Global___Message.LocationMessage: ... - def __init__( - self, - *, - contentText: _builtins.str | None = ..., - footerText: _builtins.str | None = ..., - contextInfo: Global___ContextInfo | None = ..., - buttons: _abc.Iterable[Global___Message.ButtonsMessage.Button] | None = ..., - headerType: Global___Message.ButtonsMessage.HeaderType.ValueType | None = ..., - text: _builtins.str | None = ..., - documentMessage: Global___Message.DocumentMessage | None = ..., - imageMessage: Global___Message.ImageMessage | None = ..., - videoMessage: Global___Message.VideoMessage | None = ..., - locationMessage: Global___Message.LocationMessage | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["contentText", b"contentText", "contextInfo", b"contextInfo", "documentMessage", b"documentMessage", "footerText", b"footerText", "header", b"header", "headerType", b"headerType", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "text", b"text", "videoMessage", b"videoMessage"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["buttons", b"buttons", "contentText", b"contentText", "contextInfo", b"contextInfo", "documentMessage", b"documentMessage", "footerText", b"footerText", "header", b"header", "headerType", b"headerType", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "text", b"text", "videoMessage", b"videoMessage"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_header: _TypeAlias = _typing.Literal["text", "documentMessage", "imageMessage", "videoMessage", "locationMessage"] # noqa: Y015 - _WhichOneofArgType_header: _TypeAlias = _typing.Literal["header", b"header"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_header) -> _WhichOneofReturnType_header | None: ... - - @_typing.final - class ButtonsResponseMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + DEPRECATEDMESSAGEHISTORYBUNDLE_FIELD_NUMBER: _builtins.int + PROCESSSTATE_FIELD_NUMBER: _builtins.int + processState: Global___GroupHistoryBundleInfo.ProcessState.ValueType + @_builtins.property + def deprecatedMessageHistoryBundle(self) -> Global___Message.MessageHistoryBundle: ... + def __init__( + self, + *, + deprecatedMessageHistoryBundle: Global___Message.MessageHistoryBundle | None = ..., + processState: Global___GroupHistoryBundleInfo.ProcessState.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["deprecatedMessageHistoryBundle", b"deprecatedMessageHistoryBundle", "processState", b"processState"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["deprecatedMessageHistoryBundle", b"deprecatedMessageHistoryBundle", "processState", b"processState"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _Type: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 +Global___GroupHistoryBundleInfo: _TypeAlias = GroupHistoryBundleInfo # noqa: Y015 - class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ButtonsResponseMessage._Type.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message.ButtonsResponseMessage._Type.ValueType # 0 - DISPLAY_TEXT: Message.ButtonsResponseMessage._Type.ValueType # 1 +@_typing.final +class GroupHistoryIndividualMessageInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class Type(_Type, metaclass=_TypeEnumTypeWrapper): ... - UNKNOWN: Message.ButtonsResponseMessage.Type.ValueType # 0 - DISPLAY_TEXT: Message.ButtonsResponseMessage.Type.ValueType # 1 + BUNDLEMESSAGEKEY_FIELD_NUMBER: _builtins.int + EDITEDAFTERRECEIVEDASHISTORY_FIELD_NUMBER: _builtins.int + editedAfterReceivedAsHistory: _builtins.bool + @_builtins.property + def bundleMessageKey(self) -> Global___MessageKey: ... + def __init__( + self, + *, + bundleMessageKey: Global___MessageKey | None = ..., + editedAfterReceivedAsHistory: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["bundleMessageKey", b"bundleMessageKey", "editedAfterReceivedAsHistory", b"editedAfterReceivedAsHistory"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["bundleMessageKey", b"bundleMessageKey", "editedAfterReceivedAsHistory", b"editedAfterReceivedAsHistory"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - SELECTEDBUTTONID_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - TYPE_FIELD_NUMBER: _builtins.int - SELECTEDDISPLAYTEXT_FIELD_NUMBER: _builtins.int - selectedButtonId: _builtins.str - type: Global___Message.ButtonsResponseMessage.Type.ValueType - selectedDisplayText: _builtins.str - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - def __init__( - self, - *, - selectedButtonId: _builtins.str | None = ..., - contextInfo: Global___ContextInfo | None = ..., - type: Global___Message.ButtonsResponseMessage.Type.ValueType | None = ..., - selectedDisplayText: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "response", b"response", "selectedButtonId", b"selectedButtonId", "selectedDisplayText", b"selectedDisplayText", "type", b"type"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "response", b"response", "selectedButtonId", b"selectedButtonId", "selectedDisplayText", b"selectedDisplayText", "type", b"type"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_response: _TypeAlias = _typing.Literal["selectedDisplayText"] # noqa: Y015 - _WhichOneofArgType_response: _TypeAlias = _typing.Literal["response", b"response"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_response) -> _WhichOneofReturnType_response | None: ... +Global___GroupHistoryIndividualMessageInfo: _TypeAlias = GroupHistoryIndividualMessageInfo # noqa: Y015 - @_typing.final - class Call(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +@_typing.final +class GroupHistoryWithMessageBytes(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - CALLKEY_FIELD_NUMBER: _builtins.int - CONVERSIONSOURCE_FIELD_NUMBER: _builtins.int - CONVERSIONDATA_FIELD_NUMBER: _builtins.int - CONVERSIONDELAYSECONDS_FIELD_NUMBER: _builtins.int - CTWASIGNALS_FIELD_NUMBER: _builtins.int - CTWAPAYLOAD_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - NATIVEFLOWCALLBUTTONPAYLOAD_FIELD_NUMBER: _builtins.int - DEEPLINKPAYLOAD_FIELD_NUMBER: _builtins.int - MESSAGECONTEXTINFO_FIELD_NUMBER: _builtins.int - CALLENTRYPOINT_FIELD_NUMBER: _builtins.int - callKey: _builtins.bytes - conversionSource: _builtins.str - conversionData: _builtins.bytes - conversionDelaySeconds: _builtins.int - ctwaSignals: _builtins.str - ctwaPayload: _builtins.bytes - nativeFlowCallButtonPayload: _builtins.str - deeplinkPayload: _builtins.str - callEntryPoint: _builtins.int - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - @_builtins.property - def messageContextInfo(self) -> Global___MessageContextInfo: ... - def __init__( - self, - *, - callKey: _builtins.bytes | None = ..., - conversionSource: _builtins.str | None = ..., - conversionData: _builtins.bytes | None = ..., - conversionDelaySeconds: _builtins.int | None = ..., - ctwaSignals: _builtins.str | None = ..., - ctwaPayload: _builtins.bytes | None = ..., - contextInfo: Global___ContextInfo | None = ..., - nativeFlowCallButtonPayload: _builtins.str | None = ..., - deeplinkPayload: _builtins.str | None = ..., - messageContextInfo: Global___MessageContextInfo | None = ..., - callEntryPoint: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["callEntryPoint", b"callEntryPoint", "callKey", b"callKey", "contextInfo", b"contextInfo", "conversionData", b"conversionData", "conversionDelaySeconds", b"conversionDelaySeconds", "conversionSource", b"conversionSource", "ctwaPayload", b"ctwaPayload", "ctwaSignals", b"ctwaSignals", "deeplinkPayload", b"deeplinkPayload", "messageContextInfo", b"messageContextInfo", "nativeFlowCallButtonPayload", b"nativeFlowCallButtonPayload"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["callEntryPoint", b"callEntryPoint", "callKey", b"callKey", "contextInfo", b"contextInfo", "conversionData", b"conversionData", "conversionDelaySeconds", b"conversionDelaySeconds", "conversionSource", b"conversionSource", "ctwaPayload", b"ctwaPayload", "ctwaSignals", b"ctwaSignals", "deeplinkPayload", b"deeplinkPayload", "messageContextInfo", b"messageContextInfo", "nativeFlowCallButtonPayload", b"nativeFlowCallButtonPayload"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + MESSAGES_FIELD_NUMBER: _builtins.int + UNCOUNTEDASSOCIATEDMESSAGELISTS_FIELD_NUMBER: _builtins.int + COMMENTMESSAGES_FIELD_NUMBER: _builtins.int + OUTOFWINDOWPINNEDMESSAGES_FIELD_NUMBER: _builtins.int + @_builtins.property + def messages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfoWithMessageBytes]: ... + @_builtins.property + def uncountedAssociatedMessageLists(self) -> _containers.RepeatedCompositeFieldContainer[Global___UnCountedAssociatedMessageListWithMessageBytes]: ... + @_builtins.property + def commentMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfoWithMessageBytes]: ... + @_builtins.property + def outOfWindowPinnedMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfoWithMessageBytes]: ... + def __init__( + self, + *, + messages: _abc.Iterable[Global___WebMessageInfoWithMessageBytes] | None = ..., + uncountedAssociatedMessageLists: _abc.Iterable[Global___UnCountedAssociatedMessageListWithMessageBytes] | None = ..., + commentMessages: _abc.Iterable[Global___WebMessageInfoWithMessageBytes] | None = ..., + outOfWindowPinnedMessages: _abc.Iterable[Global___WebMessageInfoWithMessageBytes] | None = ..., + ) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commentMessages", b"commentMessages", "messages", b"messages", "outOfWindowPinnedMessages", b"outOfWindowPinnedMessages", "uncountedAssociatedMessageLists", b"uncountedAssociatedMessageLists"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class CallLogMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +Global___GroupHistoryWithMessageBytes: _TypeAlias = GroupHistoryWithMessageBytes # noqa: Y015 - class _CallOutcome: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 +@_typing.final +class GroupMention(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _CallOutcomeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.CallLogMessage._CallOutcome.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - CONNECTED: Message.CallLogMessage._CallOutcome.ValueType # 0 - MISSED: Message.CallLogMessage._CallOutcome.ValueType # 1 - FAILED: Message.CallLogMessage._CallOutcome.ValueType # 2 - REJECTED: Message.CallLogMessage._CallOutcome.ValueType # 3 - ACCEPTED_ELSEWHERE: Message.CallLogMessage._CallOutcome.ValueType # 4 - ONGOING: Message.CallLogMessage._CallOutcome.ValueType # 5 - SILENCED_BY_DND: Message.CallLogMessage._CallOutcome.ValueType # 6 - SILENCED_UNKNOWN_CALLER: Message.CallLogMessage._CallOutcome.ValueType # 7 + GROUPJID_FIELD_NUMBER: _builtins.int + GROUPSUBJECT_FIELD_NUMBER: _builtins.int + groupJid: _builtins.str + groupSubject: _builtins.str + def __init__( + self, + *, + groupJid: _builtins.str | None = ..., + groupSubject: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["groupJid", b"groupJid", "groupSubject", b"groupSubject"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["groupJid", b"groupJid", "groupSubject", b"groupSubject"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class CallOutcome(_CallOutcome, metaclass=_CallOutcomeEnumTypeWrapper): ... - CONNECTED: Message.CallLogMessage.CallOutcome.ValueType # 0 - MISSED: Message.CallLogMessage.CallOutcome.ValueType # 1 - FAILED: Message.CallLogMessage.CallOutcome.ValueType # 2 - REJECTED: Message.CallLogMessage.CallOutcome.ValueType # 3 - ACCEPTED_ELSEWHERE: Message.CallLogMessage.CallOutcome.ValueType # 4 - ONGOING: Message.CallLogMessage.CallOutcome.ValueType # 5 - SILENCED_BY_DND: Message.CallLogMessage.CallOutcome.ValueType # 6 - SILENCED_UNKNOWN_CALLER: Message.CallLogMessage.CallOutcome.ValueType # 7 +Global___GroupMention: _TypeAlias = GroupMention # noqa: Y015 - class _CallType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 +@_typing.final +class GroupParticipant(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _CallTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.CallLogMessage._CallType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - REGULAR: Message.CallLogMessage._CallType.ValueType # 0 - SCHEDULED_CALL: Message.CallLogMessage._CallType.ValueType # 1 - VOICE_CHAT: Message.CallLogMessage._CallType.ValueType # 2 + class _Rank: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - class CallType(_CallType, metaclass=_CallTypeEnumTypeWrapper): ... - REGULAR: Message.CallLogMessage.CallType.ValueType # 0 - SCHEDULED_CALL: Message.CallLogMessage.CallType.ValueType # 1 - VOICE_CHAT: Message.CallLogMessage.CallType.ValueType # 2 + class _RankEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[GroupParticipant._Rank.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + REGULAR: GroupParticipant._Rank.ValueType # 0 + ADMIN: GroupParticipant._Rank.ValueType # 1 + SUPERADMIN: GroupParticipant._Rank.ValueType # 2 - @_typing.final - class CallParticipant(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class Rank(_Rank, metaclass=_RankEnumTypeWrapper): ... + REGULAR: GroupParticipant.Rank.ValueType # 0 + ADMIN: GroupParticipant.Rank.ValueType # 1 + SUPERADMIN: GroupParticipant.Rank.ValueType # 2 - JID_FIELD_NUMBER: _builtins.int - CALLOUTCOME_FIELD_NUMBER: _builtins.int - jid: _builtins.str - callOutcome: Global___Message.CallLogMessage.CallOutcome.ValueType - def __init__( - self, - *, - jid: _builtins.str | None = ..., - callOutcome: Global___Message.CallLogMessage.CallOutcome.ValueType | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["callOutcome", b"callOutcome", "jid", b"jid"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["callOutcome", b"callOutcome", "jid", b"jid"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + USERJID_FIELD_NUMBER: _builtins.int + RANK_FIELD_NUMBER: _builtins.int + MEMBERLABEL_FIELD_NUMBER: _builtins.int + userJid: _builtins.str + rank: Global___GroupParticipant.Rank.ValueType + @_builtins.property + def memberLabel(self) -> Global___MemberLabel: ... + def __init__( + self, + *, + userJid: _builtins.str | None = ..., + rank: Global___GroupParticipant.Rank.ValueType | None = ..., + memberLabel: Global___MemberLabel | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["memberLabel", b"memberLabel", "rank", b"rank", "userJid", b"userJid"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["memberLabel", b"memberLabel", "rank", b"rank", "userJid", b"userJid"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - ISVIDEO_FIELD_NUMBER: _builtins.int - CALLOUTCOME_FIELD_NUMBER: _builtins.int - DURATIONSECS_FIELD_NUMBER: _builtins.int - CALLTYPE_FIELD_NUMBER: _builtins.int - PARTICIPANTS_FIELD_NUMBER: _builtins.int - isVideo: _builtins.bool - callOutcome: Global___Message.CallLogMessage.CallOutcome.ValueType - durationSecs: _builtins.int - callType: Global___Message.CallLogMessage.CallType.ValueType - @_builtins.property - def participants(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.CallLogMessage.CallParticipant]: ... - def __init__( - self, - *, - isVideo: _builtins.bool | None = ..., - callOutcome: Global___Message.CallLogMessage.CallOutcome.ValueType | None = ..., - durationSecs: _builtins.int | None = ..., - callType: Global___Message.CallLogMessage.CallType.ValueType | None = ..., - participants: _abc.Iterable[Global___Message.CallLogMessage.CallParticipant] | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["callOutcome", b"callOutcome", "callType", b"callType", "durationSecs", b"durationSecs", "isVideo", b"isVideo"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["callOutcome", b"callOutcome", "callType", b"callType", "durationSecs", b"durationSecs", "isVideo", b"isVideo", "participants", b"participants"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___GroupParticipant: _TypeAlias = GroupParticipant # noqa: Y015 - @_typing.final - class CancelPaymentRequestMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +@_typing.final +class GroupRootKeyShare(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - @_builtins.property - def key(self) -> Global___MessageKey: ... - def __init__( - self, - *, - key: Global___MessageKey | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + KEYS_FIELD_NUMBER: _builtins.int + @_builtins.property + def keys(self) -> _containers.RepeatedCompositeFieldContainer[Global___GroupRootKeyShareEntry]: ... + def __init__( + self, + *, + keys: _abc.Iterable[Global___GroupRootKeyShareEntry] | None = ..., + ) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["keys", b"keys"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___GroupRootKeyShare: _TypeAlias = GroupRootKeyShare # noqa: Y015 + +@_typing.final +class GroupRootKeyShareEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + GROUPROOTKEY_FIELD_NUMBER: _builtins.int + KEYID_FIELD_NUMBER: _builtins.int + EXPIRYTIMESTAMPMS_FIELD_NUMBER: _builtins.int + CREATEDTIMESTAMPMS_FIELD_NUMBER: _builtins.int + groupRootKey: _builtins.bytes + keyId: _builtins.str + expiryTimestampMs: _builtins.int + createdTimestampMs: _builtins.int + def __init__( + self, + *, + groupRootKey: _builtins.bytes | None = ..., + keyId: _builtins.str | None = ..., + expiryTimestampMs: _builtins.int | None = ..., + createdTimestampMs: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["createdTimestampMs", b"createdTimestampMs", "expiryTimestampMs", b"expiryTimestampMs", "groupRootKey", b"groupRootKey", "keyId", b"keyId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["createdTimestampMs", b"createdTimestampMs", "expiryTimestampMs", b"expiryTimestampMs", "groupRootKey", b"groupRootKey", "keyId", b"keyId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___GroupRootKeyShareEntry: _TypeAlias = GroupRootKeyShareEntry # noqa: Y015 + +@_typing.final +class HandshakeMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _HandshakePqMode: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _HandshakePqModeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[HandshakeMessage._HandshakePqMode.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + HANDSHAKE_PQ_MODE_UNKNOWN: HandshakeMessage._HandshakePqMode.ValueType # 0 + XXKEM: HandshakeMessage._HandshakePqMode.ValueType # 1 + XXKEM_FS: HandshakeMessage._HandshakePqMode.ValueType # 2 + XXKEM_EPH: HandshakeMessage._HandshakePqMode.ValueType # 9 + WA_CLASSICAL: HandshakeMessage._HandshakePqMode.ValueType # 3 + WA_PQ: HandshakeMessage._HandshakePqMode.ValueType # 4 + IKKEM: HandshakeMessage._HandshakePqMode.ValueType # 5 + IKKEM_FS: HandshakeMessage._HandshakePqMode.ValueType # 6 + XXKEM_2: HandshakeMessage._HandshakePqMode.ValueType # 7 + IKKEM_2: HandshakeMessage._HandshakePqMode.ValueType # 8 + + class HandshakePqMode(_HandshakePqMode, metaclass=_HandshakePqModeEnumTypeWrapper): ... + HANDSHAKE_PQ_MODE_UNKNOWN: HandshakeMessage.HandshakePqMode.ValueType # 0 + XXKEM: HandshakeMessage.HandshakePqMode.ValueType # 1 + XXKEM_FS: HandshakeMessage.HandshakePqMode.ValueType # 2 + XXKEM_EPH: HandshakeMessage.HandshakePqMode.ValueType # 9 + WA_CLASSICAL: HandshakeMessage.HandshakePqMode.ValueType # 3 + WA_PQ: HandshakeMessage.HandshakePqMode.ValueType # 4 + IKKEM: HandshakeMessage.HandshakePqMode.ValueType # 5 + IKKEM_FS: HandshakeMessage.HandshakePqMode.ValueType # 6 + XXKEM_2: HandshakeMessage.HandshakePqMode.ValueType # 7 + IKKEM_2: HandshakeMessage.HandshakePqMode.ValueType # 8 @_typing.final - class Chat(_message.Message): + class ClientFinish(_message.Message): DESCRIPTOR: _descriptor.Descriptor - DISPLAYNAME_FIELD_NUMBER: _builtins.int - ID_FIELD_NUMBER: _builtins.int - displayName: _builtins.str - id: _builtins.str + STATIC_FIELD_NUMBER: _builtins.int + PAYLOAD_FIELD_NUMBER: _builtins.int + EXTENDEDCIPHERTEXT_FIELD_NUMBER: _builtins.int + PADDEDBYTES_FIELD_NUMBER: _builtins.int + SIMULATEXXKEMFS_FIELD_NUMBER: _builtins.int + static: _builtins.bytes + payload: _builtins.bytes + extendedCiphertext: _builtins.bytes + paddedBytes: _builtins.bytes + simulateXxkemFs: _builtins.bool def __init__( self, *, - displayName: _builtins.str | None = ..., - id: _builtins.str | None = ..., + static: _builtins.bytes | None = ..., + payload: _builtins.bytes | None = ..., + extendedCiphertext: _builtins.bytes | None = ..., + paddedBytes: _builtins.bytes | None = ..., + simulateXxkemFs: _builtins.bool | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["displayName", b"displayName", "id", b"id"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["extendedCiphertext", b"extendedCiphertext", "paddedBytes", b"paddedBytes", "payload", b"payload", "simulateXxkemFs", b"simulateXxkemFs", "static", b"static"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["displayName", b"displayName", "id", b"id"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["extendedCiphertext", b"extendedCiphertext", "paddedBytes", b"paddedBytes", "payload", b"payload", "simulateXxkemFs", b"simulateXxkemFs", "static", b"static"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class ChatCustomImageWallpaper(_message.Message): + class ClientHello(_message.Message): DESCRIPTOR: _descriptor.Descriptor - DIRECTPATH_FIELD_NUMBER: _builtins.int - MEDIAKEY_FIELD_NUMBER: _builtins.int - FILEENCSHA256_FIELD_NUMBER: _builtins.int - FILESHA256_FIELD_NUMBER: _builtins.int - DIMLEVEL_FIELD_NUMBER: _builtins.int - directPath: _builtins.str - mediaKey: _builtins.bytes - fileEncSha256: _builtins.bytes - fileSha256: _builtins.bytes - dimLevel: _builtins.float + EPHEMERAL_FIELD_NUMBER: _builtins.int + STATIC_FIELD_NUMBER: _builtins.int + PAYLOAD_FIELD_NUMBER: _builtins.int + USEEXTENDED_FIELD_NUMBER: _builtins.int + EXTENDEDCIPHERTEXT_FIELD_NUMBER: _builtins.int + PADDEDBYTES_FIELD_NUMBER: _builtins.int + SENDSERVERHELLOPADDEDBYTES_FIELD_NUMBER: _builtins.int + SIMULATEXXKEMFS_FIELD_NUMBER: _builtins.int + PQMODE_FIELD_NUMBER: _builtins.int + EXTENDEDEPHEMERAL_FIELD_NUMBER: _builtins.int + ephemeral: _builtins.bytes + static: _builtins.bytes + payload: _builtins.bytes + useExtended: _builtins.bool + extendedCiphertext: _builtins.bytes + paddedBytes: _builtins.bytes + sendServerHelloPaddedBytes: _builtins.bool + simulateXxkemFs: _builtins.bool + pqMode: Global___HandshakeMessage.HandshakePqMode.ValueType + extendedEphemeral: _builtins.bytes def __init__( self, *, - directPath: _builtins.str | None = ..., - mediaKey: _builtins.bytes | None = ..., - fileEncSha256: _builtins.bytes | None = ..., - fileSha256: _builtins.bytes | None = ..., - dimLevel: _builtins.float | None = ..., + ephemeral: _builtins.bytes | None = ..., + static: _builtins.bytes | None = ..., + payload: _builtins.bytes | None = ..., + useExtended: _builtins.bool | None = ..., + extendedCiphertext: _builtins.bytes | None = ..., + paddedBytes: _builtins.bytes | None = ..., + sendServerHelloPaddedBytes: _builtins.bool | None = ..., + simulateXxkemFs: _builtins.bool | None = ..., + pqMode: Global___HandshakeMessage.HandshakePqMode.ValueType | None = ..., + extendedEphemeral: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["dimLevel", b"dimLevel", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["ephemeral", b"ephemeral", "extendedCiphertext", b"extendedCiphertext", "extendedEphemeral", b"extendedEphemeral", "paddedBytes", b"paddedBytes", "payload", b"payload", "pqMode", b"pqMode", "sendServerHelloPaddedBytes", b"sendServerHelloPaddedBytes", "simulateXxkemFs", b"simulateXxkemFs", "static", b"static", "useExtended", b"useExtended"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["dimLevel", b"dimLevel", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["ephemeral", b"ephemeral", "extendedCiphertext", b"extendedCiphertext", "extendedEphemeral", b"extendedEphemeral", "paddedBytes", b"paddedBytes", "payload", b"payload", "pqMode", b"pqMode", "sendServerHelloPaddedBytes", b"sendServerHelloPaddedBytes", "simulateXxkemFs", b"simulateXxkemFs", "static", b"static", "useExtended", b"useExtended"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class ChatDefaultWallpaper(_message.Message): + class ServerHello(_message.Message): DESCRIPTOR: _descriptor.Descriptor - ISDOODLEENABLED_FIELD_NUMBER: _builtins.int - isDoodleEnabled: _builtins.bool + EPHEMERAL_FIELD_NUMBER: _builtins.int + STATIC_FIELD_NUMBER: _builtins.int + PAYLOAD_FIELD_NUMBER: _builtins.int + EXTENDEDSTATIC_FIELD_NUMBER: _builtins.int + PADDINGBYTES_FIELD_NUMBER: _builtins.int + EXTENDEDCIPHERTEXT_FIELD_NUMBER: _builtins.int + ephemeral: _builtins.bytes + static: _builtins.bytes + payload: _builtins.bytes + extendedStatic: _builtins.bytes + paddingBytes: _builtins.bytes + extendedCiphertext: _builtins.bytes def __init__( self, *, - isDoodleEnabled: _builtins.bool | None = ..., + ephemeral: _builtins.bytes | None = ..., + static: _builtins.bytes | None = ..., + payload: _builtins.bytes | None = ..., + extendedStatic: _builtins.bytes | None = ..., + paddingBytes: _builtins.bytes | None = ..., + extendedCiphertext: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["isDoodleEnabled", b"isDoodleEnabled"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["ephemeral", b"ephemeral", "extendedCiphertext", b"extendedCiphertext", "extendedStatic", b"extendedStatic", "paddingBytes", b"paddingBytes", "payload", b"payload", "static", b"static"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["isDoodleEnabled", b"isDoodleEnabled"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["ephemeral", b"ephemeral", "extendedCiphertext", b"extendedCiphertext", "extendedStatic", b"extendedStatic", "paddingBytes", b"paddingBytes", "payload", b"payload", "static", b"static"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + CLIENTHELLO_FIELD_NUMBER: _builtins.int + SERVERHELLO_FIELD_NUMBER: _builtins.int + CLIENTFINISH_FIELD_NUMBER: _builtins.int + @_builtins.property + def clientHello(self) -> Global___HandshakeMessage.ClientHello: ... + @_builtins.property + def serverHello(self) -> Global___HandshakeMessage.ServerHello: ... + @_builtins.property + def clientFinish(self) -> Global___HandshakeMessage.ClientFinish: ... + def __init__( + self, + *, + clientHello: Global___HandshakeMessage.ClientHello | None = ..., + serverHello: Global___HandshakeMessage.ServerHello | None = ..., + clientFinish: Global___HandshakeMessage.ClientFinish | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["clientFinish", b"clientFinish", "clientHello", b"clientHello", "serverHello", b"serverHello"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["clientFinish", b"clientFinish", "clientHello", b"clientHello", "serverHello", b"serverHello"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___HandshakeMessage: _TypeAlias = HandshakeMessage # noqa: Y015 + +@_typing.final +class HatchMetadataSync(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + DATA_FIELD_NUMBER: _builtins.int + TIMESTAMPMS_FIELD_NUMBER: _builtins.int + REQUESTID_FIELD_NUMBER: _builtins.int + data: _builtins.bytes + timestampMs: _builtins.int + requestId: _builtins.str + def __init__( + self, + *, + data: _builtins.bytes | None = ..., + timestampMs: _builtins.int | None = ..., + requestId: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "requestId", b"requestId", "timestampMs", b"timestampMs"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "requestId", b"requestId", "timestampMs", b"timestampMs"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___HatchMetadataSync: _TypeAlias = HatchMetadataSync # noqa: Y015 + +@_typing.final +class HistorySync(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _BotAIWaitListState: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _BotAIWaitListStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[HistorySync._BotAIWaitListState.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + IN_WAITLIST: HistorySync._BotAIWaitListState.ValueType # 0 + AI_AVAILABLE: HistorySync._BotAIWaitListState.ValueType # 1 + + class BotAIWaitListState(_BotAIWaitListState, metaclass=_BotAIWaitListStateEnumTypeWrapper): ... + IN_WAITLIST: HistorySync.BotAIWaitListState.ValueType # 0 + AI_AVAILABLE: HistorySync.BotAIWaitListState.ValueType # 1 + + class _HistorySyncType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _HistorySyncTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[HistorySync._HistorySyncType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + INITIAL_BOOTSTRAP: HistorySync._HistorySyncType.ValueType # 0 + INITIAL_STATUS_V3: HistorySync._HistorySyncType.ValueType # 1 + FULL: HistorySync._HistorySyncType.ValueType # 2 + RECENT: HistorySync._HistorySyncType.ValueType # 3 + PUSH_NAME: HistorySync._HistorySyncType.ValueType # 4 + NON_BLOCKING_DATA: HistorySync._HistorySyncType.ValueType # 5 + ON_DEMAND: HistorySync._HistorySyncType.ValueType # 6 + + class HistorySyncType(_HistorySyncType, metaclass=_HistorySyncTypeEnumTypeWrapper): ... + INITIAL_BOOTSTRAP: HistorySync.HistorySyncType.ValueType # 0 + INITIAL_STATUS_V3: HistorySync.HistorySyncType.ValueType # 1 + FULL: HistorySync.HistorySyncType.ValueType # 2 + RECENT: HistorySync.HistorySyncType.ValueType # 3 + PUSH_NAME: HistorySync.HistorySyncType.ValueType # 4 + NON_BLOCKING_DATA: HistorySync.HistorySyncType.ValueType # 5 + ON_DEMAND: HistorySync.HistorySyncType.ValueType # 6 + + SYNCTYPE_FIELD_NUMBER: _builtins.int + CONVERSATIONS_FIELD_NUMBER: _builtins.int + STATUSV3MESSAGES_FIELD_NUMBER: _builtins.int + CHUNKORDER_FIELD_NUMBER: _builtins.int + PROGRESS_FIELD_NUMBER: _builtins.int + PUSHNAMES_FIELD_NUMBER: _builtins.int + GLOBALSETTINGS_FIELD_NUMBER: _builtins.int + THREADIDUSERSECRET_FIELD_NUMBER: _builtins.int + THREADDSTIMEFRAMEOFFSET_FIELD_NUMBER: _builtins.int + RECENTSTICKERS_FIELD_NUMBER: _builtins.int + PASTPARTICIPANTS_FIELD_NUMBER: _builtins.int + CALLLOGRECORDS_FIELD_NUMBER: _builtins.int + AIWAITLISTSTATE_FIELD_NUMBER: _builtins.int + PHONENUMBERTOLIDMAPPINGS_FIELD_NUMBER: _builtins.int + COMPANIONMETANONCE_FIELD_NUMBER: _builtins.int + SHAREABLECHATIDENTIFIERENCRYPTIONKEY_FIELD_NUMBER: _builtins.int + ACCOUNTS_FIELD_NUMBER: _builtins.int + NCTSALT_FIELD_NUMBER: _builtins.int + INLINECONTACTS_FIELD_NUMBER: _builtins.int + INLINECONTACTSPROVIDED_FIELD_NUMBER: _builtins.int + syncType: Global___HistorySync.HistorySyncType.ValueType + chunkOrder: _builtins.int + progress: _builtins.int + threadIdUserSecret: _builtins.bytes + threadDsTimeframeOffset: _builtins.int + aiWaitListState: Global___HistorySync.BotAIWaitListState.ValueType + companionMetaNonce: _builtins.str + shareableChatIdentifierEncryptionKey: _builtins.bytes + nctSalt: _builtins.bytes + inlineContactsProvided: _builtins.bool + @_builtins.property + def conversations(self) -> _containers.RepeatedCompositeFieldContainer[Global___Conversation]: ... + @_builtins.property + def statusV3Messages(self) -> _containers.RepeatedCompositeFieldContainer[Global___WebMessageInfo]: ... + @_builtins.property + def pushnames(self) -> _containers.RepeatedCompositeFieldContainer[Global___Pushname]: ... + @_builtins.property + def globalSettings(self) -> Global___GlobalSettings: ... + @_builtins.property + def recentStickers(self) -> _containers.RepeatedCompositeFieldContainer[Global___StickerMetadata]: ... + @_builtins.property + def pastParticipants(self) -> _containers.RepeatedCompositeFieldContainer[Global___PastParticipants]: ... + @_builtins.property + def callLogRecords(self) -> _containers.RepeatedCompositeFieldContainer[Global___CallLogRecord]: ... + @_builtins.property + def phoneNumberToLidMappings(self) -> _containers.RepeatedCompositeFieldContainer[Global___PhoneNumberToLIDMapping]: ... + @_builtins.property + def accounts(self) -> _containers.RepeatedCompositeFieldContainer[Global___Account]: ... + @_builtins.property + def inlineContacts(self) -> _containers.RepeatedCompositeFieldContainer[Global___InlineContact]: ... + def __init__( + self, + *, + syncType: Global___HistorySync.HistorySyncType.ValueType | None = ..., + conversations: _abc.Iterable[Global___Conversation] | None = ..., + statusV3Messages: _abc.Iterable[Global___WebMessageInfo] | None = ..., + chunkOrder: _builtins.int | None = ..., + progress: _builtins.int | None = ..., + pushnames: _abc.Iterable[Global___Pushname] | None = ..., + globalSettings: Global___GlobalSettings | None = ..., + threadIdUserSecret: _builtins.bytes | None = ..., + threadDsTimeframeOffset: _builtins.int | None = ..., + recentStickers: _abc.Iterable[Global___StickerMetadata] | None = ..., + pastParticipants: _abc.Iterable[Global___PastParticipants] | None = ..., + callLogRecords: _abc.Iterable[Global___CallLogRecord] | None = ..., + aiWaitListState: Global___HistorySync.BotAIWaitListState.ValueType | None = ..., + phoneNumberToLidMappings: _abc.Iterable[Global___PhoneNumberToLIDMapping] | None = ..., + companionMetaNonce: _builtins.str | None = ..., + shareableChatIdentifierEncryptionKey: _builtins.bytes | None = ..., + accounts: _abc.Iterable[Global___Account] | None = ..., + nctSalt: _builtins.bytes | None = ..., + inlineContacts: _abc.Iterable[Global___InlineContact] | None = ..., + inlineContactsProvided: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["aiWaitListState", b"aiWaitListState", "chunkOrder", b"chunkOrder", "companionMetaNonce", b"companionMetaNonce", "globalSettings", b"globalSettings", "inlineContactsProvided", b"inlineContactsProvided", "nctSalt", b"nctSalt", "progress", b"progress", "shareableChatIdentifierEncryptionKey", b"shareableChatIdentifierEncryptionKey", "syncType", b"syncType", "threadDsTimeframeOffset", b"threadDsTimeframeOffset", "threadIdUserSecret", b"threadIdUserSecret"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["accounts", b"accounts", "aiWaitListState", b"aiWaitListState", "callLogRecords", b"callLogRecords", "chunkOrder", b"chunkOrder", "companionMetaNonce", b"companionMetaNonce", "conversations", b"conversations", "globalSettings", b"globalSettings", "inlineContacts", b"inlineContacts", "inlineContactsProvided", b"inlineContactsProvided", "nctSalt", b"nctSalt", "pastParticipants", b"pastParticipants", "phoneNumberToLidMappings", b"phoneNumberToLidMappings", "progress", b"progress", "pushnames", b"pushnames", "recentStickers", b"recentStickers", "shareableChatIdentifierEncryptionKey", b"shareableChatIdentifierEncryptionKey", "statusV3Messages", b"statusV3Messages", "syncType", b"syncType", "threadDsTimeframeOffset", b"threadDsTimeframeOffset", "threadIdUserSecret", b"threadIdUserSecret"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___HistorySync: _TypeAlias = HistorySync # noqa: Y015 + +@_typing.final +class HistorySyncMsg(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + MESSAGE_FIELD_NUMBER: _builtins.int + MSGORDERID_FIELD_NUMBER: _builtins.int + msgOrderId: _builtins.int + @_builtins.property + def message(self) -> Global___WebMessageInfo: ... + def __init__( + self, + *, + message: Global___WebMessageInfo | None = ..., + msgOrderId: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "msgOrderId", b"msgOrderId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "msgOrderId", b"msgOrderId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___HistorySyncMsg: _TypeAlias = HistorySyncMsg # noqa: Y015 + +@_typing.final +class HydratedTemplateButton(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + @_typing.final - class ChatSolidColorWallpaper(_message.Message): + class HydratedCallButton(_message.Message): DESCRIPTOR: _descriptor.Descriptor - COLORLIGHT_FIELD_NUMBER: _builtins.int - COLORDARK_FIELD_NUMBER: _builtins.int - ISDOODLEENABLED_FIELD_NUMBER: _builtins.int - colorLight: _builtins.str - colorDark: _builtins.str - isDoodleEnabled: _builtins.bool + DISPLAYTEXT_FIELD_NUMBER: _builtins.int + PHONENUMBER_FIELD_NUMBER: _builtins.int + displayText: _builtins.str + phoneNumber: _builtins.str def __init__( self, *, - colorLight: _builtins.str | None = ..., - colorDark: _builtins.str | None = ..., - isDoodleEnabled: _builtins.bool | None = ..., + displayText: _builtins.str | None = ..., + phoneNumber: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["colorDark", b"colorDark", "colorLight", b"colorLight", "isDoodleEnabled", b"isDoodleEnabled"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText", "phoneNumber", b"phoneNumber"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["colorDark", b"colorDark", "colorLight", b"colorLight", "isDoodleEnabled", b"isDoodleEnabled"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText", "phoneNumber", b"phoneNumber"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class ChatStockImageWallpaper(_message.Message): + class HydratedQuickReplyButton(_message.Message): DESCRIPTOR: _descriptor.Descriptor - STOCKIMAGEID_FIELD_NUMBER: _builtins.int - DIMLEVEL_FIELD_NUMBER: _builtins.int - stockImageId: _builtins.str - dimLevel: _builtins.float + DISPLAYTEXT_FIELD_NUMBER: _builtins.int + ID_FIELD_NUMBER: _builtins.int + displayText: _builtins.str + id: _builtins.str def __init__( self, *, - stockImageId: _builtins.str | None = ..., - dimLevel: _builtins.float | None = ..., + displayText: _builtins.str | None = ..., + id: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["dimLevel", b"dimLevel", "stockImageId", b"stockImageId"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText", "id", b"id"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["dimLevel", b"dimLevel", "stockImageId", b"stockImageId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText", "id", b"id"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class ChatThemeSetting(_message.Message): + class HydratedURLButton(_message.Message): DESCRIPTOR: _descriptor.Descriptor - SETTINGTIMESTAMPMS_FIELD_NUMBER: _builtins.int - CLEARTHEME_FIELD_NUMBER: _builtins.int - COLORSCHEMEID_FIELD_NUMBER: _builtins.int - DEFAULTWALLPAPER_FIELD_NUMBER: _builtins.int - SOLIDCOLOR_FIELD_NUMBER: _builtins.int - STOCKIMAGE_FIELD_NUMBER: _builtins.int - CUSTOMIMAGE_FIELD_NUMBER: _builtins.int - settingTimestampMs: _builtins.int - clearTheme: _builtins.bool - colorSchemeId: _builtins.str - @_builtins.property - def defaultWallpaper(self) -> Global___Message.ChatDefaultWallpaper: ... - @_builtins.property - def solidColor(self) -> Global___Message.ChatSolidColorWallpaper: ... - @_builtins.property - def stockImage(self) -> Global___Message.ChatStockImageWallpaper: ... - @_builtins.property - def customImage(self) -> Global___Message.ChatCustomImageWallpaper: ... - def __init__( - self, - *, - settingTimestampMs: _builtins.int | None = ..., - clearTheme: _builtins.bool | None = ..., - colorSchemeId: _builtins.str | None = ..., - defaultWallpaper: Global___Message.ChatDefaultWallpaper | None = ..., - solidColor: Global___Message.ChatSolidColorWallpaper | None = ..., - stockImage: Global___Message.ChatStockImageWallpaper | None = ..., - customImage: Global___Message.ChatCustomImageWallpaper | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["clearTheme", b"clearTheme", "colorSchemeId", b"colorSchemeId", "customImage", b"customImage", "defaultWallpaper", b"defaultWallpaper", "settingTimestampMs", b"settingTimestampMs", "solidColor", b"solidColor", "stockImage", b"stockImage", "wallpaper", b"wallpaper"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["clearTheme", b"clearTheme", "colorSchemeId", b"colorSchemeId", "customImage", b"customImage", "defaultWallpaper", b"defaultWallpaper", "settingTimestampMs", b"settingTimestampMs", "solidColor", b"solidColor", "stockImage", b"stockImage", "wallpaper", b"wallpaper"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_wallpaper: _TypeAlias = _typing.Literal["defaultWallpaper", "solidColor", "stockImage", "customImage"] # noqa: Y015 - _WhichOneofArgType_wallpaper: _TypeAlias = _typing.Literal["wallpaper", b"wallpaper"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_wallpaper) -> _WhichOneofReturnType_wallpaper | None: ... - - @_typing.final - class CloudAPIThreadControlNotification(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - class _CloudAPIThreadControl: + class _WebviewPresentationType: ValueType = _typing.NewType("ValueType", _builtins.int) V: _TypeAlias = ValueType # noqa: Y015 - class _CloudAPIThreadControlEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType], _builtins.type): + class _WebviewPresentationTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[HydratedTemplateButton.HydratedURLButton._WebviewPresentationType.ValueType], _builtins.type): DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType # 0 - CONTROL_PASSED: Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType # 1 - CONTROL_TAKEN: Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType # 2 - INFO: Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType # 3 - - class CloudAPIThreadControl(_CloudAPIThreadControl, metaclass=_CloudAPIThreadControlEnumTypeWrapper): ... - UNKNOWN: Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType # 0 - CONTROL_PASSED: Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType # 1 - CONTROL_TAKEN: Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType # 2 - INFO: Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType # 3 - - @_typing.final - class CloudAPIThreadControlNotificationContent(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + FULL: HydratedTemplateButton.HydratedURLButton._WebviewPresentationType.ValueType # 1 + TALL: HydratedTemplateButton.HydratedURLButton._WebviewPresentationType.ValueType # 2 + COMPACT: HydratedTemplateButton.HydratedURLButton._WebviewPresentationType.ValueType # 3 - HANDOFFNOTIFICATIONTEXT_FIELD_NUMBER: _builtins.int - EXTRAJSON_FIELD_NUMBER: _builtins.int - handoffNotificationText: _builtins.str - extraJson: _builtins.str - def __init__( - self, - *, - handoffNotificationText: _builtins.str | None = ..., - extraJson: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["extraJson", b"extraJson", "handoffNotificationText", b"handoffNotificationText"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["extraJson", b"extraJson", "handoffNotificationText", b"handoffNotificationText"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class WebviewPresentationType(_WebviewPresentationType, metaclass=_WebviewPresentationTypeEnumTypeWrapper): ... + FULL: HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType # 1 + TALL: HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType # 2 + COMPACT: HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType # 3 - STATUS_FIELD_NUMBER: _builtins.int - SENDERNOTIFICATIONTIMESTAMPMS_FIELD_NUMBER: _builtins.int - CONSUMERLID_FIELD_NUMBER: _builtins.int - CONSUMERPHONENUMBER_FIELD_NUMBER: _builtins.int - NOTIFICATIONCONTENT_FIELD_NUMBER: _builtins.int - SHOULDSUPPRESSNOTIFICATION_FIELD_NUMBER: _builtins.int - status: Global___Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType - senderNotificationTimestampMs: _builtins.int - consumerLid: _builtins.str - consumerPhoneNumber: _builtins.str - shouldSuppressNotification: _builtins.bool - @_builtins.property - def notificationContent(self) -> Global___Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent: ... + DISPLAYTEXT_FIELD_NUMBER: _builtins.int + URL_FIELD_NUMBER: _builtins.int + CONSENTEDUSERSURL_FIELD_NUMBER: _builtins.int + WEBVIEWPRESENTATION_FIELD_NUMBER: _builtins.int + displayText: _builtins.str + url: _builtins.str + consentedUsersUrl: _builtins.str + webviewPresentation: Global___HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType def __init__( self, *, - status: Global___Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType | None = ..., - senderNotificationTimestampMs: _builtins.int | None = ..., - consumerLid: _builtins.str | None = ..., - consumerPhoneNumber: _builtins.str | None = ..., - notificationContent: Global___Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent | None = ..., - shouldSuppressNotification: _builtins.bool | None = ..., + displayText: _builtins.str | None = ..., + url: _builtins.str | None = ..., + consentedUsersUrl: _builtins.str | None = ..., + webviewPresentation: Global___HydratedTemplateButton.HydratedURLButton.WebviewPresentationType.ValueType | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["consumerLid", b"consumerLid", "consumerPhoneNumber", b"consumerPhoneNumber", "notificationContent", b"notificationContent", "senderNotificationTimestampMs", b"senderNotificationTimestampMs", "shouldSuppressNotification", b"shouldSuppressNotification", "status", b"status"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["consentedUsersUrl", b"consentedUsersUrl", "displayText", b"displayText", "url", b"url", "webviewPresentation", b"webviewPresentation"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["consumerLid", b"consumerLid", "consumerPhoneNumber", b"consumerPhoneNumber", "notificationContent", b"notificationContent", "senderNotificationTimestampMs", b"senderNotificationTimestampMs", "shouldSuppressNotification", b"shouldSuppressNotification", "status", b"status"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["consentedUsersUrl", b"consentedUsersUrl", "displayText", b"displayText", "url", b"url", "webviewPresentation", b"webviewPresentation"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + INDEX_FIELD_NUMBER: _builtins.int + QUICKREPLYBUTTON_FIELD_NUMBER: _builtins.int + URLBUTTON_FIELD_NUMBER: _builtins.int + CALLBUTTON_FIELD_NUMBER: _builtins.int + index: _builtins.int + @_builtins.property + def quickReplyButton(self) -> Global___HydratedTemplateButton.HydratedQuickReplyButton: ... + @_builtins.property + def urlButton(self) -> Global___HydratedTemplateButton.HydratedURLButton: ... + @_builtins.property + def callButton(self) -> Global___HydratedTemplateButton.HydratedCallButton: ... + def __init__( + self, + *, + index: _builtins.int | None = ..., + quickReplyButton: Global___HydratedTemplateButton.HydratedQuickReplyButton | None = ..., + urlButton: Global___HydratedTemplateButton.HydratedURLButton | None = ..., + callButton: Global___HydratedTemplateButton.HydratedCallButton | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["callButton", b"callButton", "hydratedButton", b"hydratedButton", "index", b"index", "quickReplyButton", b"quickReplyButton", "urlButton", b"urlButton"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["callButton", b"callButton", "hydratedButton", b"hydratedButton", "index", b"index", "quickReplyButton", b"quickReplyButton", "urlButton", b"urlButton"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_hydratedButton: _TypeAlias = _typing.Literal["quickReplyButton", "urlButton", "callButton"] # noqa: Y015 + _WhichOneofArgType_hydratedButton: _TypeAlias = _typing.Literal["hydratedButton", b"hydratedButton"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_hydratedButton) -> _WhichOneofReturnType_hydratedButton | None: ... + +Global___HydratedTemplateButton: _TypeAlias = HydratedTemplateButton # noqa: Y015 + +@_typing.final +class IdentityKeyPairStructure(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + PUBLICKEY_FIELD_NUMBER: _builtins.int + PRIVATEKEY_FIELD_NUMBER: _builtins.int + publicKey: _builtins.bytes + privateKey: _builtins.bytes + def __init__( + self, + *, + publicKey: _builtins.bytes | None = ..., + privateKey: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["privateKey", b"privateKey", "publicKey", b"publicKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["privateKey", b"privateKey", "publicKey", b"publicKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___IdentityKeyPairStructure: _TypeAlias = IdentityKeyPairStructure # noqa: Y015 + +@_typing.final +class IdentityVerificationState(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + VERIFIED_FIELD_NUMBER: _builtins.int + ACTIONSEQ_FIELD_NUMBER: _builtins.int + verified: _builtins.bool + actionSeq: _builtins.int + def __init__( + self, + *, + verified: _builtins.bool | None = ..., + actionSeq: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["actionSeq", b"actionSeq", "verified", b"verified"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["actionSeq", b"actionSeq", "verified", b"verified"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___IdentityVerificationState: _TypeAlias = IdentityVerificationState # noqa: Y015 + +@_typing.final +class InThreadSurveyMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + @_typing.final - class CommentMessage(_message.Message): + class InThreadSurveyOption(_message.Message): DESCRIPTOR: _descriptor.Descriptor - MESSAGE_FIELD_NUMBER: _builtins.int - TARGETMESSAGEKEY_FIELD_NUMBER: _builtins.int - @_builtins.property - def message(self) -> Global___Message: ... - @_builtins.property - def targetMessageKey(self) -> Global___MessageKey: ... + STRINGVALUE_FIELD_NUMBER: _builtins.int + NUMERICVALUE_FIELD_NUMBER: _builtins.int + TEXTTRANSLATED_FIELD_NUMBER: _builtins.int + stringValue: _builtins.str + numericValue: _builtins.int + textTranslated: _builtins.str def __init__( self, *, - message: Global___Message | None = ..., - targetMessageKey: Global___MessageKey | None = ..., + stringValue: _builtins.str | None = ..., + numericValue: _builtins.int | None = ..., + textTranslated: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "targetMessageKey", b"targetMessageKey"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["numericValue", b"numericValue", "stringValue", b"stringValue", "textTranslated", b"textTranslated"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "targetMessageKey", b"targetMessageKey"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["numericValue", b"numericValue", "stringValue", b"stringValue", "textTranslated", b"textTranslated"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class ConditionalRevealMessage(_message.Message): + class InThreadSurveyPrivacyStatementPart(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _ConditionalRevealMessageType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _ConditionalRevealMessageTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ConditionalRevealMessage._ConditionalRevealMessageType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message.ConditionalRevealMessage._ConditionalRevealMessageType.ValueType # 0 - SCHEDULED_MESSAGE: Message.ConditionalRevealMessage._ConditionalRevealMessageType.ValueType # 1 - - class ConditionalRevealMessageType(_ConditionalRevealMessageType, metaclass=_ConditionalRevealMessageTypeEnumTypeWrapper): ... - UNKNOWN: Message.ConditionalRevealMessage.ConditionalRevealMessageType.ValueType # 0 - SCHEDULED_MESSAGE: Message.ConditionalRevealMessage.ConditionalRevealMessageType.ValueType # 1 - - ENCPAYLOAD_FIELD_NUMBER: _builtins.int - ENCIV_FIELD_NUMBER: _builtins.int - CONDITIONALREVEALMESSAGETYPE_FIELD_NUMBER: _builtins.int - REVEALKEYID_FIELD_NUMBER: _builtins.int - encPayload: _builtins.bytes - encIv: _builtins.bytes - conditionalRevealMessageType: Global___Message.ConditionalRevealMessage.ConditionalRevealMessageType.ValueType - revealKeyId: _builtins.str + TEXT_FIELD_NUMBER: _builtins.int + URL_FIELD_NUMBER: _builtins.int + text: _builtins.str + url: _builtins.str def __init__( self, *, - encPayload: _builtins.bytes | None = ..., - encIv: _builtins.bytes | None = ..., - conditionalRevealMessageType: Global___Message.ConditionalRevealMessage.ConditionalRevealMessageType.ValueType | None = ..., - revealKeyId: _builtins.str | None = ..., + text: _builtins.str | None = ..., + url: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["conditionalRevealMessageType", b"conditionalRevealMessageType", "encIv", b"encIv", "encPayload", b"encPayload", "revealKeyId", b"revealKeyId"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["text", b"text", "url", b"url"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["conditionalRevealMessageType", b"conditionalRevealMessageType", "encIv", b"encIv", "encPayload", b"encPayload", "revealKeyId", b"revealKeyId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["text", b"text", "url", b"url"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class ContactMessage(_message.Message): + class InThreadSurveyQuestion(_message.Message): DESCRIPTOR: _descriptor.Descriptor - DISPLAYNAME_FIELD_NUMBER: _builtins.int - VCARD_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - ISSELFCONTACT_FIELD_NUMBER: _builtins.int - displayName: _builtins.str - vcard: _builtins.str - isSelfContact: _builtins.bool + QUESTIONTEXT_FIELD_NUMBER: _builtins.int + QUESTIONID_FIELD_NUMBER: _builtins.int + QUESTIONOPTIONS_FIELD_NUMBER: _builtins.int + questionText: _builtins.str + questionId: _builtins.str @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... + def questionOptions(self) -> _containers.RepeatedCompositeFieldContainer[Global___InThreadSurveyMetadata.InThreadSurveyOption]: ... def __init__( self, *, - displayName: _builtins.str | None = ..., - vcard: _builtins.str | None = ..., - contextInfo: Global___ContextInfo | None = ..., - isSelfContact: _builtins.bool | None = ..., + questionText: _builtins.str | None = ..., + questionId: _builtins.str | None = ..., + questionOptions: _abc.Iterable[Global___InThreadSurveyMetadata.InThreadSurveyOption] | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "displayName", b"displayName", "isSelfContact", b"isSelfContact", "vcard", b"vcard"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["questionId", b"questionId", "questionText", b"questionText"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "displayName", b"displayName", "isSelfContact", b"isSelfContact", "vcard", b"vcard"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["questionId", b"questionId", "questionOptions", b"questionOptions", "questionText", b"questionText"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class ContactsArrayMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - DISPLAYNAME_FIELD_NUMBER: _builtins.int - CONTACTS_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - displayName: _builtins.str - @_builtins.property - def contacts(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ContactMessage]: ... - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - def __init__( - self, - *, - displayName: _builtins.str | None = ..., - contacts: _abc.Iterable[Global___Message.ContactMessage] | None = ..., - contextInfo: Global___ContextInfo | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "displayName", b"displayName"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["contacts", b"contacts", "contextInfo", b"contextInfo", "displayName", b"displayName"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + TESSASESSIONID_FIELD_NUMBER: _builtins.int + SIMONSESSIONID_FIELD_NUMBER: _builtins.int + SIMONSURVEYID_FIELD_NUMBER: _builtins.int + TESSAROOTID_FIELD_NUMBER: _builtins.int + REQUESTID_FIELD_NUMBER: _builtins.int + TESSAEVENT_FIELD_NUMBER: _builtins.int + INVITATIONHEADERTEXT_FIELD_NUMBER: _builtins.int + INVITATIONBODYTEXT_FIELD_NUMBER: _builtins.int + INVITATIONCTATEXT_FIELD_NUMBER: _builtins.int + INVITATIONCTAURL_FIELD_NUMBER: _builtins.int + SURVEYTITLE_FIELD_NUMBER: _builtins.int + QUESTIONS_FIELD_NUMBER: _builtins.int + SURVEYCONTINUEBUTTONTEXT_FIELD_NUMBER: _builtins.int + SURVEYSUBMITBUTTONTEXT_FIELD_NUMBER: _builtins.int + PRIVACYSTATEMENTFULL_FIELD_NUMBER: _builtins.int + PRIVACYSTATEMENTPARTS_FIELD_NUMBER: _builtins.int + FEEDBACKTOASTTEXT_FIELD_NUMBER: _builtins.int + STARTQUESTIONINDEX_FIELD_NUMBER: _builtins.int + tessaSessionId: _builtins.str + simonSessionId: _builtins.str + simonSurveyId: _builtins.str + tessaRootId: _builtins.str + requestId: _builtins.str + tessaEvent: _builtins.str + invitationHeaderText: _builtins.str + invitationBodyText: _builtins.str + invitationCtaText: _builtins.str + invitationCtaUrl: _builtins.str + surveyTitle: _builtins.str + surveyContinueButtonText: _builtins.str + surveySubmitButtonText: _builtins.str + privacyStatementFull: _builtins.str + feedbackToastText: _builtins.str + startQuestionIndex: _builtins.int + @_builtins.property + def questions(self) -> _containers.RepeatedCompositeFieldContainer[Global___InThreadSurveyMetadata.InThreadSurveyQuestion]: ... + @_builtins.property + def privacyStatementParts(self) -> _containers.RepeatedCompositeFieldContainer[Global___InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPart]: ... + def __init__( + self, + *, + tessaSessionId: _builtins.str | None = ..., + simonSessionId: _builtins.str | None = ..., + simonSurveyId: _builtins.str | None = ..., + tessaRootId: _builtins.str | None = ..., + requestId: _builtins.str | None = ..., + tessaEvent: _builtins.str | None = ..., + invitationHeaderText: _builtins.str | None = ..., + invitationBodyText: _builtins.str | None = ..., + invitationCtaText: _builtins.str | None = ..., + invitationCtaUrl: _builtins.str | None = ..., + surveyTitle: _builtins.str | None = ..., + questions: _abc.Iterable[Global___InThreadSurveyMetadata.InThreadSurveyQuestion] | None = ..., + surveyContinueButtonText: _builtins.str | None = ..., + surveySubmitButtonText: _builtins.str | None = ..., + privacyStatementFull: _builtins.str | None = ..., + privacyStatementParts: _abc.Iterable[Global___InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPart] | None = ..., + feedbackToastText: _builtins.str | None = ..., + startQuestionIndex: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["feedbackToastText", b"feedbackToastText", "invitationBodyText", b"invitationBodyText", "invitationCtaText", b"invitationCtaText", "invitationCtaUrl", b"invitationCtaUrl", "invitationHeaderText", b"invitationHeaderText", "privacyStatementFull", b"privacyStatementFull", "requestId", b"requestId", "simonSessionId", b"simonSessionId", "simonSurveyId", b"simonSurveyId", "startQuestionIndex", b"startQuestionIndex", "surveyContinueButtonText", b"surveyContinueButtonText", "surveySubmitButtonText", b"surveySubmitButtonText", "surveyTitle", b"surveyTitle", "tessaEvent", b"tessaEvent", "tessaRootId", b"tessaRootId", "tessaSessionId", b"tessaSessionId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["feedbackToastText", b"feedbackToastText", "invitationBodyText", b"invitationBodyText", "invitationCtaText", b"invitationCtaText", "invitationCtaUrl", b"invitationCtaUrl", "invitationHeaderText", b"invitationHeaderText", "privacyStatementFull", b"privacyStatementFull", "privacyStatementParts", b"privacyStatementParts", "questions", b"questions", "requestId", b"requestId", "simonSessionId", b"simonSessionId", "simonSurveyId", b"simonSurveyId", "startQuestionIndex", b"startQuestionIndex", "surveyContinueButtonText", b"surveyContinueButtonText", "surveySubmitButtonText", b"surveySubmitButtonText", "surveyTitle", b"surveyTitle", "tessaEvent", b"tessaEvent", "tessaRootId", b"tessaRootId", "tessaSessionId", b"tessaSessionId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class DeclinePaymentRequestMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +Global___InThreadSurveyMetadata: _TypeAlias = InThreadSurveyMetadata # noqa: Y015 - KEY_FIELD_NUMBER: _builtins.int - @_builtins.property - def key(self) -> Global___MessageKey: ... - def __init__( - self, - *, - key: Global___MessageKey | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +@_typing.final +class InlineContact(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class DeviceSentMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + PNJID_FIELD_NUMBER: _builtins.int + LIDJID_FIELD_NUMBER: _builtins.int + FULLNAME_FIELD_NUMBER: _builtins.int + FIRSTNAME_FIELD_NUMBER: _builtins.int + USERNAME_FIELD_NUMBER: _builtins.int + pnJid: _builtins.str + lidJid: _builtins.str + fullName: _builtins.str + firstName: _builtins.str + username: _builtins.str + def __init__( + self, + *, + pnJid: _builtins.str | None = ..., + lidJid: _builtins.str | None = ..., + fullName: _builtins.str | None = ..., + firstName: _builtins.str | None = ..., + username: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["firstName", b"firstName", "fullName", b"fullName", "lidJid", b"lidJid", "pnJid", b"pnJid", "username", b"username"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["firstName", b"firstName", "fullName", b"fullName", "lidJid", b"lidJid", "pnJid", b"pnJid", "username", b"username"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - DESTINATIONJID_FIELD_NUMBER: _builtins.int - MESSAGE_FIELD_NUMBER: _builtins.int - PHASH_FIELD_NUMBER: _builtins.int - destinationJid: _builtins.str - phash: _builtins.str - @_builtins.property - def message(self) -> Global___Message: ... - def __init__( - self, - *, - destinationJid: _builtins.str | None = ..., - message: Global___Message | None = ..., - phash: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["destinationJid", b"destinationJid", "message", b"message", "phash", b"phash"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["destinationJid", b"destinationJid", "message", b"message", "phash", b"phash"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___InlineContact: _TypeAlias = InlineContact # noqa: Y015 - @_typing.final - class DocumentMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +@_typing.final +class InteractiveAnnotation(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - URL_FIELD_NUMBER: _builtins.int - MIMETYPE_FIELD_NUMBER: _builtins.int - TITLE_FIELD_NUMBER: _builtins.int - FILESHA256_FIELD_NUMBER: _builtins.int - FILELENGTH_FIELD_NUMBER: _builtins.int - PAGECOUNT_FIELD_NUMBER: _builtins.int - MEDIAKEY_FIELD_NUMBER: _builtins.int - FILENAME_FIELD_NUMBER: _builtins.int - FILEENCSHA256_FIELD_NUMBER: _builtins.int - DIRECTPATH_FIELD_NUMBER: _builtins.int - MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int - CONTACTVCARD_FIELD_NUMBER: _builtins.int - THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int - THUMBNAILSHA256_FIELD_NUMBER: _builtins.int - THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int - JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - THUMBNAILHEIGHT_FIELD_NUMBER: _builtins.int - THUMBNAILWIDTH_FIELD_NUMBER: _builtins.int - CAPTION_FIELD_NUMBER: _builtins.int - ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int - url: _builtins.str - mimetype: _builtins.str - title: _builtins.str - fileSha256: _builtins.bytes - fileLength: _builtins.int - pageCount: _builtins.int - mediaKey: _builtins.bytes - fileName: _builtins.str - fileEncSha256: _builtins.bytes - directPath: _builtins.str - mediaKeyTimestamp: _builtins.int - contactVcard: _builtins.bool - thumbnailDirectPath: _builtins.str - thumbnailSha256: _builtins.bytes - thumbnailEncSha256: _builtins.bytes - jpegThumbnail: _builtins.bytes - thumbnailHeight: _builtins.int - thumbnailWidth: _builtins.int - caption: _builtins.str - accessibilityLabel: _builtins.str - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - def __init__( - self, - *, - url: _builtins.str | None = ..., - mimetype: _builtins.str | None = ..., - title: _builtins.str | None = ..., - fileSha256: _builtins.bytes | None = ..., - fileLength: _builtins.int | None = ..., - pageCount: _builtins.int | None = ..., - mediaKey: _builtins.bytes | None = ..., - fileName: _builtins.str | None = ..., - fileEncSha256: _builtins.bytes | None = ..., - directPath: _builtins.str | None = ..., - mediaKeyTimestamp: _builtins.int | None = ..., - contactVcard: _builtins.bool | None = ..., - thumbnailDirectPath: _builtins.str | None = ..., - thumbnailSha256: _builtins.bytes | None = ..., - thumbnailEncSha256: _builtins.bytes | None = ..., - jpegThumbnail: _builtins.bytes | None = ..., - contextInfo: Global___ContextInfo | None = ..., - thumbnailHeight: _builtins.int | None = ..., - thumbnailWidth: _builtins.int | None = ..., - caption: _builtins.str | None = ..., - accessibilityLabel: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "caption", b"caption", "contactVcard", b"contactVcard", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileName", b"fileName", "fileSha256", b"fileSha256", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "pageCount", b"pageCount", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "title", b"title", "url", b"url"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "caption", b"caption", "contactVcard", b"contactVcard", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileName", b"fileName", "fileSha256", b"fileSha256", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "pageCount", b"pageCount", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "title", b"title", "url", b"url"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class _StatusLinkType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - @_typing.final - class EncCommentMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class _StatusLinkTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[InteractiveAnnotation._StatusLinkType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + RASTERIZED_LINK_PREVIEW: InteractiveAnnotation._StatusLinkType.ValueType # 1 + RASTERIZED_LINK_TRUNCATED: InteractiveAnnotation._StatusLinkType.ValueType # 2 + RASTERIZED_LINK_FULL_URL: InteractiveAnnotation._StatusLinkType.ValueType # 3 - TARGETMESSAGEKEY_FIELD_NUMBER: _builtins.int - ENCPAYLOAD_FIELD_NUMBER: _builtins.int - ENCIV_FIELD_NUMBER: _builtins.int - encPayload: _builtins.bytes - encIv: _builtins.bytes - @_builtins.property - def targetMessageKey(self) -> Global___MessageKey: ... - def __init__( - self, - *, - targetMessageKey: Global___MessageKey | None = ..., - encPayload: _builtins.bytes | None = ..., - encIv: _builtins.bytes | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "targetMessageKey", b"targetMessageKey"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "targetMessageKey", b"targetMessageKey"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class StatusLinkType(_StatusLinkType, metaclass=_StatusLinkTypeEnumTypeWrapper): ... + RASTERIZED_LINK_PREVIEW: InteractiveAnnotation.StatusLinkType.ValueType # 1 + RASTERIZED_LINK_TRUNCATED: InteractiveAnnotation.StatusLinkType.ValueType # 2 + RASTERIZED_LINK_FULL_URL: InteractiveAnnotation.StatusLinkType.ValueType # 3 - @_typing.final - class EncEventResponseMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + POLYGONVERTICES_FIELD_NUMBER: _builtins.int + SHOULDSKIPCONFIRMATION_FIELD_NUMBER: _builtins.int + EMBEDDEDCONTENT_FIELD_NUMBER: _builtins.int + STATUSLINKTYPE_FIELD_NUMBER: _builtins.int + LOCATION_FIELD_NUMBER: _builtins.int + NEWSLETTER_FIELD_NUMBER: _builtins.int + EMBEDDEDACTION_FIELD_NUMBER: _builtins.int + TAPACTION_FIELD_NUMBER: _builtins.int + shouldSkipConfirmation: _builtins.bool + statusLinkType: Global___InteractiveAnnotation.StatusLinkType.ValueType + embeddedAction: _builtins.bool + @_builtins.property + def polygonVertices(self) -> _containers.RepeatedCompositeFieldContainer[Global___Point]: ... + @_builtins.property + def embeddedContent(self) -> Global___EmbeddedContent: ... + @_builtins.property + def location(self) -> Global___Location: ... + @_builtins.property + def newsletter(self) -> Global___ContextInfo.ForwardedNewsletterMessageInfo: ... + @_builtins.property + def tapAction(self) -> Global___TapLinkAction: ... + def __init__( + self, + *, + polygonVertices: _abc.Iterable[Global___Point] | None = ..., + shouldSkipConfirmation: _builtins.bool | None = ..., + embeddedContent: Global___EmbeddedContent | None = ..., + statusLinkType: Global___InteractiveAnnotation.StatusLinkType.ValueType | None = ..., + location: Global___Location | None = ..., + newsletter: Global___ContextInfo.ForwardedNewsletterMessageInfo | None = ..., + embeddedAction: _builtins.bool | None = ..., + tapAction: Global___TapLinkAction | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["action", b"action", "embeddedAction", b"embeddedAction", "embeddedContent", b"embeddedContent", "location", b"location", "newsletter", b"newsletter", "shouldSkipConfirmation", b"shouldSkipConfirmation", "statusLinkType", b"statusLinkType", "tapAction", b"tapAction"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["action", b"action", "embeddedAction", b"embeddedAction", "embeddedContent", b"embeddedContent", "location", b"location", "newsletter", b"newsletter", "polygonVertices", b"polygonVertices", "shouldSkipConfirmation", b"shouldSkipConfirmation", "statusLinkType", b"statusLinkType", "tapAction", b"tapAction"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_action: _TypeAlias = _typing.Literal["location", "newsletter", "embeddedAction", "tapAction"] # noqa: Y015 + _WhichOneofArgType_action: _TypeAlias = _typing.Literal["action", b"action"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_action) -> _WhichOneofReturnType_action | None: ... - EVENTCREATIONMESSAGEKEY_FIELD_NUMBER: _builtins.int - ENCPAYLOAD_FIELD_NUMBER: _builtins.int - ENCIV_FIELD_NUMBER: _builtins.int - encPayload: _builtins.bytes - encIv: _builtins.bytes - @_builtins.property - def eventCreationMessageKey(self) -> Global___MessageKey: ... - def __init__( - self, - *, - eventCreationMessageKey: Global___MessageKey | None = ..., - encPayload: _builtins.bytes | None = ..., - encIv: _builtins.bytes | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "eventCreationMessageKey", b"eventCreationMessageKey"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "eventCreationMessageKey", b"eventCreationMessageKey"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___InteractiveAnnotation: _TypeAlias = InteractiveAnnotation # noqa: Y015 - @_typing.final - class EncReactionMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +@_typing.final +class InteractiveMessageAdditionalMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - TARGETMESSAGEKEY_FIELD_NUMBER: _builtins.int - ENCPAYLOAD_FIELD_NUMBER: _builtins.int - ENCIV_FIELD_NUMBER: _builtins.int - encPayload: _builtins.bytes - encIv: _builtins.bytes - @_builtins.property - def targetMessageKey(self) -> Global___MessageKey: ... - def __init__( - self, - *, - targetMessageKey: Global___MessageKey | None = ..., - encPayload: _builtins.bytes | None = ..., - encIv: _builtins.bytes | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "targetMessageKey", b"targetMessageKey"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "targetMessageKey", b"targetMessageKey"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + ISGALAXYFLOWCOMPLETED_FIELD_NUMBER: _builtins.int + isGalaxyFlowCompleted: _builtins.bool + def __init__( + self, + *, + isGalaxyFlowCompleted: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["isGalaxyFlowCompleted", b"isGalaxyFlowCompleted"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["isGalaxyFlowCompleted", b"isGalaxyFlowCompleted"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class EventInviteMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +Global___InteractiveMessageAdditionalMetadata: _TypeAlias = InteractiveMessageAdditionalMetadata # noqa: Y015 - CONTEXTINFO_FIELD_NUMBER: _builtins.int - EVENTID_FIELD_NUMBER: _builtins.int - EVENTTITLE_FIELD_NUMBER: _builtins.int - JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int - STARTTIME_FIELD_NUMBER: _builtins.int - CAPTION_FIELD_NUMBER: _builtins.int - ISCANCELED_FIELD_NUMBER: _builtins.int - ENDTIME_FIELD_NUMBER: _builtins.int - CALLLINK_FIELD_NUMBER: _builtins.int - eventId: _builtins.str - eventTitle: _builtins.str - jpegThumbnail: _builtins.bytes - startTime: _builtins.int - caption: _builtins.str - isCanceled: _builtins.bool - endTime: _builtins.int - callLink: _builtins.str - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - def __init__( - self, - *, - contextInfo: Global___ContextInfo | None = ..., - eventId: _builtins.str | None = ..., - eventTitle: _builtins.str | None = ..., - jpegThumbnail: _builtins.bytes | None = ..., - startTime: _builtins.int | None = ..., - caption: _builtins.str | None = ..., - isCanceled: _builtins.bool | None = ..., - endTime: _builtins.int | None = ..., - callLink: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["callLink", b"callLink", "caption", b"caption", "contextInfo", b"contextInfo", "endTime", b"endTime", "eventId", b"eventId", "eventTitle", b"eventTitle", "isCanceled", b"isCanceled", "jpegThumbnail", b"jpegThumbnail", "startTime", b"startTime"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["callLink", b"callLink", "caption", b"caption", "contextInfo", b"contextInfo", "endTime", b"endTime", "eventId", b"eventId", "eventTitle", b"eventTitle", "isCanceled", b"isCanceled", "jpegThumbnail", b"jpegThumbnail", "startTime", b"startTime"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +@_typing.final +class KeepInChat(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class EventMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + KEEPTYPE_FIELD_NUMBER: _builtins.int + SERVERTIMESTAMP_FIELD_NUMBER: _builtins.int + KEY_FIELD_NUMBER: _builtins.int + DEVICEJID_FIELD_NUMBER: _builtins.int + CLIENTTIMESTAMPMS_FIELD_NUMBER: _builtins.int + SERVERTIMESTAMPMS_FIELD_NUMBER: _builtins.int + keepType: Global___KeepType.ValueType + serverTimestamp: _builtins.int + deviceJid: _builtins.str + clientTimestampMs: _builtins.int + serverTimestampMs: _builtins.int + @_builtins.property + def key(self) -> Global___MessageKey: ... + def __init__( + self, + *, + keepType: Global___KeepType.ValueType | None = ..., + serverTimestamp: _builtins.int | None = ..., + key: Global___MessageKey | None = ..., + deviceJid: _builtins.str | None = ..., + clientTimestampMs: _builtins.int | None = ..., + serverTimestampMs: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["clientTimestampMs", b"clientTimestampMs", "deviceJid", b"deviceJid", "keepType", b"keepType", "key", b"key", "serverTimestamp", b"serverTimestamp", "serverTimestampMs", b"serverTimestampMs"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["clientTimestampMs", b"clientTimestampMs", "deviceJid", b"deviceJid", "keepType", b"keepType", "key", b"key", "serverTimestamp", b"serverTimestamp", "serverTimestampMs", b"serverTimestampMs"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - CONTEXTINFO_FIELD_NUMBER: _builtins.int - ISCANCELED_FIELD_NUMBER: _builtins.int - NAME_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - LOCATION_FIELD_NUMBER: _builtins.int - JOINLINK_FIELD_NUMBER: _builtins.int - STARTTIME_FIELD_NUMBER: _builtins.int - ENDTIME_FIELD_NUMBER: _builtins.int - EXTRAGUESTSALLOWED_FIELD_NUMBER: _builtins.int - ISSCHEDULECALL_FIELD_NUMBER: _builtins.int - HASREMINDER_FIELD_NUMBER: _builtins.int - REMINDEROFFSETSEC_FIELD_NUMBER: _builtins.int - isCanceled: _builtins.bool - name: _builtins.str - description: _builtins.str - joinLink: _builtins.str - startTime: _builtins.int - endTime: _builtins.int - extraGuestsAllowed: _builtins.bool - isScheduleCall: _builtins.bool - hasReminder: _builtins.bool - reminderOffsetSec: _builtins.int - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - @_builtins.property - def location(self) -> Global___Message.LocationMessage: ... - def __init__( - self, - *, - contextInfo: Global___ContextInfo | None = ..., - isCanceled: _builtins.bool | None = ..., - name: _builtins.str | None = ..., - description: _builtins.str | None = ..., - location: Global___Message.LocationMessage | None = ..., - joinLink: _builtins.str | None = ..., - startTime: _builtins.int | None = ..., - endTime: _builtins.int | None = ..., - extraGuestsAllowed: _builtins.bool | None = ..., - isScheduleCall: _builtins.bool | None = ..., - hasReminder: _builtins.bool | None = ..., - reminderOffsetSec: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "description", b"description", "endTime", b"endTime", "extraGuestsAllowed", b"extraGuestsAllowed", "hasReminder", b"hasReminder", "isCanceled", b"isCanceled", "isScheduleCall", b"isScheduleCall", "joinLink", b"joinLink", "location", b"location", "name", b"name", "reminderOffsetSec", b"reminderOffsetSec", "startTime", b"startTime"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "description", b"description", "endTime", b"endTime", "extraGuestsAllowed", b"extraGuestsAllowed", "hasReminder", b"hasReminder", "isCanceled", b"isCanceled", "isScheduleCall", b"isScheduleCall", "joinLink", b"joinLink", "location", b"location", "name", b"name", "reminderOffsetSec", b"reminderOffsetSec", "startTime", b"startTime"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___KeepInChat: _TypeAlias = KeepInChat # noqa: Y015 - @_typing.final - class EventResponseMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +@_typing.final +class KeyExchangeMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _EventResponseType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + ID_FIELD_NUMBER: _builtins.int + BASEKEY_FIELD_NUMBER: _builtins.int + RATCHETKEY_FIELD_NUMBER: _builtins.int + IDENTITYKEY_FIELD_NUMBER: _builtins.int + BASEKEYSIGNATURE_FIELD_NUMBER: _builtins.int + id: _builtins.int + baseKey: _builtins.bytes + ratchetKey: _builtins.bytes + identityKey: _builtins.bytes + baseKeySignature: _builtins.bytes + def __init__( + self, + *, + id: _builtins.int | None = ..., + baseKey: _builtins.bytes | None = ..., + ratchetKey: _builtins.bytes | None = ..., + identityKey: _builtins.bytes | None = ..., + baseKeySignature: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "baseKeySignature", b"baseKeySignature", "id", b"id", "identityKey", b"identityKey", "ratchetKey", b"ratchetKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "baseKeySignature", b"baseKeySignature", "id", b"id", "identityKey", b"identityKey", "ratchetKey", b"ratchetKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _EventResponseTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.EventResponseMessage._EventResponseType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message.EventResponseMessage._EventResponseType.ValueType # 0 - GOING: Message.EventResponseMessage._EventResponseType.ValueType # 1 - NOT_GOING: Message.EventResponseMessage._EventResponseType.ValueType # 2 - MAYBE: Message.EventResponseMessage._EventResponseType.ValueType # 3 +Global___KeyExchangeMessage: _TypeAlias = KeyExchangeMessage # noqa: Y015 - class EventResponseType(_EventResponseType, metaclass=_EventResponseTypeEnumTypeWrapper): ... - UNKNOWN: Message.EventResponseMessage.EventResponseType.ValueType # 0 - GOING: Message.EventResponseMessage.EventResponseType.ValueType # 1 - NOT_GOING: Message.EventResponseMessage.EventResponseType.ValueType # 2 - MAYBE: Message.EventResponseMessage.EventResponseType.ValueType # 3 +@_typing.final +class KeyId(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - RESPONSE_FIELD_NUMBER: _builtins.int - TIMESTAMPMS_FIELD_NUMBER: _builtins.int - EXTRAGUESTCOUNT_FIELD_NUMBER: _builtins.int - response: Global___Message.EventResponseMessage.EventResponseType.ValueType - timestampMs: _builtins.int - extraGuestCount: _builtins.int - def __init__( - self, - *, - response: Global___Message.EventResponseMessage.EventResponseType.ValueType | None = ..., - timestampMs: _builtins.int | None = ..., - extraGuestCount: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["extraGuestCount", b"extraGuestCount", "response", b"response", "timestampMs", b"timestampMs"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["extraGuestCount", b"extraGuestCount", "response", b"response", "timestampMs", b"timestampMs"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + ID_FIELD_NUMBER: _builtins.int + id: _builtins.bytes + def __init__( + self, + *, + id: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["id", b"id"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["id", b"id"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class ExtendedTextMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +Global___KeyId: _TypeAlias = KeyId # noqa: Y015 - class _FontType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 +@_typing.final +class LIDMigrationMappingSyncMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _FontTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ExtendedTextMessage._FontType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - SYSTEM: Message.ExtendedTextMessage._FontType.ValueType # 0 - SYSTEM_TEXT: Message.ExtendedTextMessage._FontType.ValueType # 1 - FB_SCRIPT: Message.ExtendedTextMessage._FontType.ValueType # 2 - SYSTEM_BOLD: Message.ExtendedTextMessage._FontType.ValueType # 6 - MORNINGBREEZE_REGULAR: Message.ExtendedTextMessage._FontType.ValueType # 7 - CALISTOGA_REGULAR: Message.ExtendedTextMessage._FontType.ValueType # 8 - EXO2_EXTRABOLD: Message.ExtendedTextMessage._FontType.ValueType # 9 - COURIERPRIME_BOLD: Message.ExtendedTextMessage._FontType.ValueType # 10 + ENCODEDMAPPINGPAYLOAD_FIELD_NUMBER: _builtins.int + encodedMappingPayload: _builtins.bytes + def __init__( + self, + *, + encodedMappingPayload: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["encodedMappingPayload", b"encodedMappingPayload"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["encodedMappingPayload", b"encodedMappingPayload"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class FontType(_FontType, metaclass=_FontTypeEnumTypeWrapper): ... - SYSTEM: Message.ExtendedTextMessage.FontType.ValueType # 0 - SYSTEM_TEXT: Message.ExtendedTextMessage.FontType.ValueType # 1 - FB_SCRIPT: Message.ExtendedTextMessage.FontType.ValueType # 2 - SYSTEM_BOLD: Message.ExtendedTextMessage.FontType.ValueType # 6 - MORNINGBREEZE_REGULAR: Message.ExtendedTextMessage.FontType.ValueType # 7 - CALISTOGA_REGULAR: Message.ExtendedTextMessage.FontType.ValueType # 8 - EXO2_EXTRABOLD: Message.ExtendedTextMessage.FontType.ValueType # 9 - COURIERPRIME_BOLD: Message.ExtendedTextMessage.FontType.ValueType # 10 +Global___LIDMigrationMappingSyncMessage: _TypeAlias = LIDMigrationMappingSyncMessage # noqa: Y015 - class _InviteLinkGroupType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 +@_typing.final +class LIDMigrationMapping(_message.Message): + """Retained locally: WA dropped these from the public JS bundle, but the wire + still carries them as the protobuf-encoded `encodedMappingPayload` above. + """ - class _InviteLinkGroupTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ExtendedTextMessage._InviteLinkGroupType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - DEFAULT: Message.ExtendedTextMessage._InviteLinkGroupType.ValueType # 0 - PARENT: Message.ExtendedTextMessage._InviteLinkGroupType.ValueType # 1 - SUB: Message.ExtendedTextMessage._InviteLinkGroupType.ValueType # 2 - DEFAULT_SUB: Message.ExtendedTextMessage._InviteLinkGroupType.ValueType # 3 + DESCRIPTOR: _descriptor.Descriptor - class InviteLinkGroupType(_InviteLinkGroupType, metaclass=_InviteLinkGroupTypeEnumTypeWrapper): ... - DEFAULT: Message.ExtendedTextMessage.InviteLinkGroupType.ValueType # 0 - PARENT: Message.ExtendedTextMessage.InviteLinkGroupType.ValueType # 1 - SUB: Message.ExtendedTextMessage.InviteLinkGroupType.ValueType # 2 - DEFAULT_SUB: Message.ExtendedTextMessage.InviteLinkGroupType.ValueType # 3 + PN_FIELD_NUMBER: _builtins.int + ASSIGNEDLID_FIELD_NUMBER: _builtins.int + LATESTLID_FIELD_NUMBER: _builtins.int + pn: _builtins.int + assignedLid: _builtins.int + latestLid: _builtins.int + def __init__( + self, + *, + pn: _builtins.int | None = ..., + assignedLid: _builtins.int | None = ..., + latestLid: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["assignedLid", b"assignedLid", "latestLid", b"latestLid", "pn", b"pn"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["assignedLid", b"assignedLid", "latestLid", b"latestLid", "pn", b"pn"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _PreviewType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 +Global___LIDMigrationMapping: _TypeAlias = LIDMigrationMapping # noqa: Y015 - class _PreviewTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ExtendedTextMessage._PreviewType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - NONE: Message.ExtendedTextMessage._PreviewType.ValueType # 0 - VIDEO: Message.ExtendedTextMessage._PreviewType.ValueType # 1 - PLACEHOLDER: Message.ExtendedTextMessage._PreviewType.ValueType # 4 - IMAGE: Message.ExtendedTextMessage._PreviewType.ValueType # 5 - PAYMENT_LINKS: Message.ExtendedTextMessage._PreviewType.ValueType # 6 - PROFILE: Message.ExtendedTextMessage._PreviewType.ValueType # 7 +@_typing.final +class LIDMigrationMappingSyncPayload(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class PreviewType(_PreviewType, metaclass=_PreviewTypeEnumTypeWrapper): ... - NONE: Message.ExtendedTextMessage.PreviewType.ValueType # 0 - VIDEO: Message.ExtendedTextMessage.PreviewType.ValueType # 1 - PLACEHOLDER: Message.ExtendedTextMessage.PreviewType.ValueType # 4 - IMAGE: Message.ExtendedTextMessage.PreviewType.ValueType # 5 - PAYMENT_LINKS: Message.ExtendedTextMessage.PreviewType.ValueType # 6 - PROFILE: Message.ExtendedTextMessage.PreviewType.ValueType # 7 + PNTOLIDMAPPINGS_FIELD_NUMBER: _builtins.int + CHATDBMIGRATIONTIMESTAMP_FIELD_NUMBER: _builtins.int + chatDbMigrationTimestamp: _builtins.int + @_builtins.property + def pnToLidMappings(self) -> _containers.RepeatedCompositeFieldContainer[Global___LIDMigrationMapping]: ... + def __init__( + self, + *, + pnToLidMappings: _abc.Iterable[Global___LIDMigrationMapping] | None = ..., + chatDbMigrationTimestamp: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["chatDbMigrationTimestamp", b"chatDbMigrationTimestamp", "pnToLidMappings", b"pnToLidMappings"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - TEXT_FIELD_NUMBER: _builtins.int - MATCHEDTEXT_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - TITLE_FIELD_NUMBER: _builtins.int - TEXTARGB_FIELD_NUMBER: _builtins.int - BACKGROUNDARGB_FIELD_NUMBER: _builtins.int - FONT_FIELD_NUMBER: _builtins.int - PREVIEWTYPE_FIELD_NUMBER: _builtins.int - JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - DONOTPLAYINLINE_FIELD_NUMBER: _builtins.int - THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int - THUMBNAILSHA256_FIELD_NUMBER: _builtins.int - THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int - MEDIAKEY_FIELD_NUMBER: _builtins.int - MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int - THUMBNAILHEIGHT_FIELD_NUMBER: _builtins.int - THUMBNAILWIDTH_FIELD_NUMBER: _builtins.int - INVITELINKGROUPTYPE_FIELD_NUMBER: _builtins.int - INVITELINKPARENTGROUPSUBJECTV2_FIELD_NUMBER: _builtins.int - INVITELINKPARENTGROUPTHUMBNAILV2_FIELD_NUMBER: _builtins.int - INVITELINKGROUPTYPEV2_FIELD_NUMBER: _builtins.int - VIEWONCE_FIELD_NUMBER: _builtins.int - VIDEOHEIGHT_FIELD_NUMBER: _builtins.int - VIDEOWIDTH_FIELD_NUMBER: _builtins.int - FAVICONMMSMETADATA_FIELD_NUMBER: _builtins.int - LINKPREVIEWMETADATA_FIELD_NUMBER: _builtins.int - PAYMENTLINKMETADATA_FIELD_NUMBER: _builtins.int - ENDCARDTILES_FIELD_NUMBER: _builtins.int - VIDEOCONTENTURL_FIELD_NUMBER: _builtins.int - MUSICMETADATA_FIELD_NUMBER: _builtins.int - PAYMENTEXTENDEDMETADATA_FIELD_NUMBER: _builtins.int - text: _builtins.str - matchedText: _builtins.str - description: _builtins.str - title: _builtins.str - textArgb: _builtins.int - backgroundArgb: _builtins.int - font: Global___Message.ExtendedTextMessage.FontType.ValueType - previewType: Global___Message.ExtendedTextMessage.PreviewType.ValueType - jpegThumbnail: _builtins.bytes - doNotPlayInline: _builtins.bool - thumbnailDirectPath: _builtins.str - thumbnailSha256: _builtins.bytes - thumbnailEncSha256: _builtins.bytes - mediaKey: _builtins.bytes - mediaKeyTimestamp: _builtins.int - thumbnailHeight: _builtins.int - thumbnailWidth: _builtins.int - inviteLinkGroupType: Global___Message.ExtendedTextMessage.InviteLinkGroupType.ValueType - inviteLinkParentGroupSubjectV2: _builtins.str - inviteLinkParentGroupThumbnailV2: _builtins.bytes - inviteLinkGroupTypeV2: Global___Message.ExtendedTextMessage.InviteLinkGroupType.ValueType - viewOnce: _builtins.bool - videoHeight: _builtins.int - videoWidth: _builtins.int - videoContentUrl: _builtins.str - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - @_builtins.property - def faviconMMSMetadata(self) -> Global___Message.MMSThumbnailMetadata: ... - @_builtins.property - def linkPreviewMetadata(self) -> Global___Message.LinkPreviewMetadata: ... - @_builtins.property - def paymentLinkMetadata(self) -> Global___Message.PaymentLinkMetadata: ... - @_builtins.property - def endCardTiles(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.VideoEndCard]: ... - @_builtins.property - def musicMetadata(self) -> Global___EmbeddedMusic: ... - @_builtins.property - def paymentExtendedMetadata(self) -> Global___Message.PaymentExtendedMetadata: ... - def __init__( - self, - *, - text: _builtins.str | None = ..., - matchedText: _builtins.str | None = ..., - description: _builtins.str | None = ..., - title: _builtins.str | None = ..., - textArgb: _builtins.int | None = ..., - backgroundArgb: _builtins.int | None = ..., - font: Global___Message.ExtendedTextMessage.FontType.ValueType | None = ..., - previewType: Global___Message.ExtendedTextMessage.PreviewType.ValueType | None = ..., - jpegThumbnail: _builtins.bytes | None = ..., - contextInfo: Global___ContextInfo | None = ..., - doNotPlayInline: _builtins.bool | None = ..., - thumbnailDirectPath: _builtins.str | None = ..., - thumbnailSha256: _builtins.bytes | None = ..., - thumbnailEncSha256: _builtins.bytes | None = ..., - mediaKey: _builtins.bytes | None = ..., - mediaKeyTimestamp: _builtins.int | None = ..., - thumbnailHeight: _builtins.int | None = ..., - thumbnailWidth: _builtins.int | None = ..., - inviteLinkGroupType: Global___Message.ExtendedTextMessage.InviteLinkGroupType.ValueType | None = ..., - inviteLinkParentGroupSubjectV2: _builtins.str | None = ..., - inviteLinkParentGroupThumbnailV2: _builtins.bytes | None = ..., - inviteLinkGroupTypeV2: Global___Message.ExtendedTextMessage.InviteLinkGroupType.ValueType | None = ..., - viewOnce: _builtins.bool | None = ..., - videoHeight: _builtins.int | None = ..., - videoWidth: _builtins.int | None = ..., - faviconMMSMetadata: Global___Message.MMSThumbnailMetadata | None = ..., - linkPreviewMetadata: Global___Message.LinkPreviewMetadata | None = ..., - paymentLinkMetadata: Global___Message.PaymentLinkMetadata | None = ..., - endCardTiles: _abc.Iterable[Global___Message.VideoEndCard] | None = ..., - videoContentUrl: _builtins.str | None = ..., - musicMetadata: Global___EmbeddedMusic | None = ..., - paymentExtendedMetadata: Global___Message.PaymentExtendedMetadata | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["backgroundArgb", b"backgroundArgb", "contextInfo", b"contextInfo", "description", b"description", "doNotPlayInline", b"doNotPlayInline", "faviconMMSMetadata", b"faviconMMSMetadata", "font", b"font", "inviteLinkGroupType", b"inviteLinkGroupType", "inviteLinkGroupTypeV2", b"inviteLinkGroupTypeV2", "inviteLinkParentGroupSubjectV2", b"inviteLinkParentGroupSubjectV2", "inviteLinkParentGroupThumbnailV2", b"inviteLinkParentGroupThumbnailV2", "jpegThumbnail", b"jpegThumbnail", "linkPreviewMetadata", b"linkPreviewMetadata", "matchedText", b"matchedText", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "musicMetadata", b"musicMetadata", "paymentExtendedMetadata", b"paymentExtendedMetadata", "paymentLinkMetadata", b"paymentLinkMetadata", "previewType", b"previewType", "text", b"text", "textArgb", b"textArgb", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "title", b"title", "videoContentUrl", b"videoContentUrl", "videoHeight", b"videoHeight", "videoWidth", b"videoWidth", "viewOnce", b"viewOnce"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["backgroundArgb", b"backgroundArgb", "contextInfo", b"contextInfo", "description", b"description", "doNotPlayInline", b"doNotPlayInline", "endCardTiles", b"endCardTiles", "faviconMMSMetadata", b"faviconMMSMetadata", "font", b"font", "inviteLinkGroupType", b"inviteLinkGroupType", "inviteLinkGroupTypeV2", b"inviteLinkGroupTypeV2", "inviteLinkParentGroupSubjectV2", b"inviteLinkParentGroupSubjectV2", "inviteLinkParentGroupThumbnailV2", b"inviteLinkParentGroupThumbnailV2", "jpegThumbnail", b"jpegThumbnail", "linkPreviewMetadata", b"linkPreviewMetadata", "matchedText", b"matchedText", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "musicMetadata", b"musicMetadata", "paymentExtendedMetadata", b"paymentExtendedMetadata", "paymentLinkMetadata", b"paymentLinkMetadata", "previewType", b"previewType", "text", b"text", "textArgb", b"textArgb", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "title", b"title", "videoContentUrl", b"videoContentUrl", "videoHeight", b"videoHeight", "videoWidth", b"videoWidth", "viewOnce", b"viewOnce"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___LIDMigrationMappingSyncPayload: _TypeAlias = LIDMigrationMappingSyncPayload # noqa: Y015 - @_typing.final - class FullHistorySyncOnDemandConfig(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +@_typing.final +class LabyrinthWaCommand(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - HISTORYFROMTIMESTAMP_FIELD_NUMBER: _builtins.int - HISTORYDURATIONDAYS_FIELD_NUMBER: _builtins.int - historyFromTimestamp: _builtins.int - historyDurationDays: _builtins.int + CREATEBACKUPINPUT_FIELD_NUMBER: _builtins.int + ENCRYPTMESSAGEINPUT_FIELD_NUMBER: _builtins.int + DECRYPTMESSAGEINPUT_FIELD_NUMBER: _builtins.int + ORFTHREADIDINPUT_FIELD_NUMBER: _builtins.int + DERIVEMESSAGEKEYINPUT_FIELD_NUMBER: _builtins.int + ROTATEEPOCHINPUT_FIELD_NUMBER: _builtins.int + @_builtins.property + def createBackupInput(self) -> Global___CreateBackupInput: ... + @_builtins.property + def encryptMessageInput(self) -> Global___EncryptMessageInput: ... + @_builtins.property + def decryptMessageInput(self) -> Global___DecryptMessageInput: ... + @_builtins.property + def orfThreadIdInput(self) -> Global___OrfThreadIdInput: ... + @_builtins.property + def deriveMessageKeyInput(self) -> Global___DeriveMessageKeyInput: ... + @_builtins.property + def rotateEpochInput(self) -> Global___RotateEpochInput: ... + def __init__( + self, + *, + createBackupInput: Global___CreateBackupInput | None = ..., + encryptMessageInput: Global___EncryptMessageInput | None = ..., + decryptMessageInput: Global___DecryptMessageInput | None = ..., + orfThreadIdInput: Global___OrfThreadIdInput | None = ..., + deriveMessageKeyInput: Global___DeriveMessageKeyInput | None = ..., + rotateEpochInput: Global___RotateEpochInput | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["commandInput", b"commandInput", "createBackupInput", b"createBackupInput", "decryptMessageInput", b"decryptMessageInput", "deriveMessageKeyInput", b"deriveMessageKeyInput", "encryptMessageInput", b"encryptMessageInput", "orfThreadIdInput", b"orfThreadIdInput", "rotateEpochInput", b"rotateEpochInput"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commandInput", b"commandInput", "createBackupInput", b"createBackupInput", "decryptMessageInput", b"decryptMessageInput", "deriveMessageKeyInput", b"deriveMessageKeyInput", "encryptMessageInput", b"encryptMessageInput", "orfThreadIdInput", b"orfThreadIdInput", "rotateEpochInput", b"rotateEpochInput"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_commandInput: _TypeAlias = _typing.Literal["createBackupInput", "encryptMessageInput", "decryptMessageInput", "orfThreadIdInput", "deriveMessageKeyInput", "rotateEpochInput"] # noqa: Y015 + _WhichOneofArgType_commandInput: _TypeAlias = _typing.Literal["commandInput", b"commandInput"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_commandInput) -> _WhichOneofReturnType_commandInput | None: ... + +Global___LabyrinthWaCommand: _TypeAlias = LabyrinthWaCommand # noqa: Y015 + +@_typing.final +class LegacyMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + EVENTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int + POLLVOTE_FIELD_NUMBER: _builtins.int + @_builtins.property + def eventResponseMessage(self) -> Global___Message.EventResponseMessage: ... + @_builtins.property + def pollVote(self) -> Global___Message.PollVoteMessage: ... + def __init__( + self, + *, + eventResponseMessage: Global___Message.EventResponseMessage | None = ..., + pollVote: Global___Message.PollVoteMessage | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["eventResponseMessage", b"eventResponseMessage", "pollVote", b"pollVote"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["eventResponseMessage", b"eventResponseMessage", "pollVote", b"pollVote"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___LegacyMessage: _TypeAlias = LegacyMessage # noqa: Y015 + +@_typing.final +class LimitSharing(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _TriggerType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _TriggerTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[LimitSharing._TriggerType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: LimitSharing._TriggerType.ValueType # 0 + CHAT_SETTING: LimitSharing._TriggerType.ValueType # 1 + BIZ_SUPPORTS_FB_HOSTING: LimitSharing._TriggerType.ValueType # 2 + UNKNOWN_GROUP: LimitSharing._TriggerType.ValueType # 3 + + class TriggerType(_TriggerType, metaclass=_TriggerTypeEnumTypeWrapper): ... + UNKNOWN: LimitSharing.TriggerType.ValueType # 0 + CHAT_SETTING: LimitSharing.TriggerType.ValueType # 1 + BIZ_SUPPORTS_FB_HOSTING: LimitSharing.TriggerType.ValueType # 2 + UNKNOWN_GROUP: LimitSharing.TriggerType.ValueType # 3 + + SHARINGLIMITED_FIELD_NUMBER: _builtins.int + TRIGGER_FIELD_NUMBER: _builtins.int + LIMITSHARINGSETTINGTIMESTAMP_FIELD_NUMBER: _builtins.int + INITIATEDBYME_FIELD_NUMBER: _builtins.int + sharingLimited: _builtins.bool + trigger: Global___LimitSharing.TriggerType.ValueType + limitSharingSettingTimestamp: _builtins.int + initiatedByMe: _builtins.bool + def __init__( + self, + *, + sharingLimited: _builtins.bool | None = ..., + trigger: Global___LimitSharing.TriggerType.ValueType | None = ..., + limitSharingSettingTimestamp: _builtins.int | None = ..., + initiatedByMe: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["initiatedByMe", b"initiatedByMe", "limitSharingSettingTimestamp", b"limitSharingSettingTimestamp", "sharingLimited", b"sharingLimited", "trigger", b"trigger"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["initiatedByMe", b"initiatedByMe", "limitSharingSettingTimestamp", b"limitSharingSettingTimestamp", "sharingLimited", b"sharingLimited", "trigger", b"trigger"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___LimitSharing: _TypeAlias = LimitSharing # noqa: Y015 + +@_typing.final +class LocalizedName(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + LG_FIELD_NUMBER: _builtins.int + LC_FIELD_NUMBER: _builtins.int + VERIFIEDNAME_FIELD_NUMBER: _builtins.int + lg: _builtins.str + lc: _builtins.str + verifiedName: _builtins.str + def __init__( + self, + *, + lg: _builtins.str | None = ..., + lc: _builtins.str | None = ..., + verifiedName: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["lc", b"lc", "lg", b"lg", "verifiedName", b"verifiedName"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["lc", b"lc", "lg", b"lg", "verifiedName", b"verifiedName"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___LocalizedName: _TypeAlias = LocalizedName # noqa: Y015 + +@_typing.final +class Location(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + DEGREESLATITUDE_FIELD_NUMBER: _builtins.int + DEGREESLONGITUDE_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + degreesLatitude: _builtins.float + degreesLongitude: _builtins.float + name: _builtins.str + def __init__( + self, + *, + degreesLatitude: _builtins.float | None = ..., + degreesLongitude: _builtins.float | None = ..., + name: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "name", b"name"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "name", b"name"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Location: _TypeAlias = Location # noqa: Y015 + +@_typing.final +class MandrakeDecryptMekInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class EpochSenderPublicData(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + EPOCHPUBLICDATA_FIELD_NUMBER: _builtins.int + @_builtins.property + def epochPublicData(self) -> Global___EpochPublicData: ... def __init__( self, *, - historyFromTimestamp: _builtins.int | None = ..., - historyDurationDays: _builtins.int | None = ..., + epochPublicData: Global___EpochPublicData | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["historyDurationDays", b"historyDurationDays", "historyFromTimestamp", b"historyFromTimestamp"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["epochPublicData", b"epochPublicData"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["historyDurationDays", b"historyDurationDays", "historyFromTimestamp", b"historyFromTimestamp"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["epochPublicData", b"epochPublicData"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class FullHistorySyncOnDemandRequestMetadata(_message.Message): + class MmkSenderPublicData(_message.Message): DESCRIPTOR: _descriptor.Descriptor - REQUESTID_FIELD_NUMBER: _builtins.int - BUSINESSPRODUCT_FIELD_NUMBER: _builtins.int - OPAQUECLIENTDATA_FIELD_NUMBER: _builtins.int - requestId: _builtins.str - businessProduct: _builtins.str - opaqueClientData: _builtins.bytes + MMKPUBLICDATA_FIELD_NUMBER: _builtins.int + @_builtins.property + def mmkPublicData(self) -> Global___MessagingMailboxPublicData: ... def __init__( self, *, - requestId: _builtins.str | None = ..., - businessProduct: _builtins.str | None = ..., - opaqueClientData: _builtins.bytes | None = ..., + mmkPublicData: Global___MessagingMailboxPublicData | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["businessProduct", b"businessProduct", "opaqueClientData", b"opaqueClientData", "requestId", b"requestId"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["mmkPublicData", b"mmkPublicData"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["businessProduct", b"businessProduct", "opaqueClientData", b"opaqueClientData", "requestId", b"requestId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["mmkPublicData", b"mmkPublicData"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class FutureProofMessage(_message.Message): + class PrecomputedEpochSenderPublicData(_message.Message): DESCRIPTOR: _descriptor.Descriptor - MESSAGE_FIELD_NUMBER: _builtins.int - @_builtins.property - def message(self) -> Global___Message: ... + AUTHPK_FIELD_NUMBER: _builtins.int + EPOCHHEAD_FIELD_NUMBER: _builtins.int + authPk: _builtins.bytes + epochHead: _builtins.bytes def __init__( self, *, - message: Global___Message | None = ..., + authPk: _builtins.bytes | None = ..., + epochHead: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["message", b"message"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "epochHead", b"epochHead"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "epochHead", b"epochHead"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class GroupInviteMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + ENCRYPTEDMEK_FIELD_NUMBER: _builtins.int + RECIPIENTSHASH_FIELD_NUMBER: _builtins.int + RECIPIENTENCSK_FIELD_NUMBER: _builtins.int + MEKENCRYPTIONVERSION_FIELD_NUMBER: _builtins.int + CONF_FIELD_NUMBER: _builtins.int + RECIPIENTMMK_FIELD_NUMBER: _builtins.int + MEKID_FIELD_NUMBER: _builtins.int + RECIPIENTMEMBERSHIPPROOF_FIELD_NUMBER: _builtins.int + MMKSENDER_FIELD_NUMBER: _builtins.int + EPOCHSENDER_FIELD_NUMBER: _builtins.int + PRECOMPUTEDEPOCHSENDER_FIELD_NUMBER: _builtins.int + encryptedMek: _builtins.bytes + recipientsHash: _builtins.bytes + recipientEncSk: _builtins.bytes + mekEncryptionVersion: _builtins.int + mekId: _builtins.bytes + @_builtins.property + def conf(self) -> Global___MinosClientConfig: ... + @_builtins.property + def recipientMmk(self) -> Global___MessagingMailboxPublicData: ... + @_builtins.property + def recipientMembershipProof(self) -> Global___MerkleMembershipProof: ... + @_builtins.property + def mmkSender(self) -> Global___MandrakeDecryptMekInput.MmkSenderPublicData: ... + @_builtins.property + def epochSender(self) -> Global___MandrakeDecryptMekInput.EpochSenderPublicData: ... + @_builtins.property + def precomputedEpochSender(self) -> Global___MandrakeDecryptMekInput.PrecomputedEpochSenderPublicData: ... + def __init__( + self, + *, + encryptedMek: _builtins.bytes | None = ..., + recipientsHash: _builtins.bytes | None = ..., + recipientEncSk: _builtins.bytes | None = ..., + mekEncryptionVersion: _builtins.int | None = ..., + conf: Global___MinosClientConfig | None = ..., + recipientMmk: Global___MessagingMailboxPublicData | None = ..., + mekId: _builtins.bytes | None = ..., + recipientMembershipProof: Global___MerkleMembershipProof | None = ..., + mmkSender: Global___MandrakeDecryptMekInput.MmkSenderPublicData | None = ..., + epochSender: Global___MandrakeDecryptMekInput.EpochSenderPublicData | None = ..., + precomputedEpochSender: Global___MandrakeDecryptMekInput.PrecomputedEpochSenderPublicData | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "encryptedMek", b"encryptedMek", "epochSender", b"epochSender", "mekEncryptionVersion", b"mekEncryptionVersion", "mekId", b"mekId", "mmkSender", b"mmkSender", "precomputedEpochSender", b"precomputedEpochSender", "recipientEncSk", b"recipientEncSk", "recipientMembershipProof", b"recipientMembershipProof", "recipientMmk", b"recipientMmk", "recipientsHash", b"recipientsHash", "senderPublicData", b"senderPublicData"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "encryptedMek", b"encryptedMek", "epochSender", b"epochSender", "mekEncryptionVersion", b"mekEncryptionVersion", "mekId", b"mekId", "mmkSender", b"mmkSender", "precomputedEpochSender", b"precomputedEpochSender", "recipientEncSk", b"recipientEncSk", "recipientMembershipProof", b"recipientMembershipProof", "recipientMmk", b"recipientMmk", "recipientsHash", b"recipientsHash", "senderPublicData", b"senderPublicData"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_senderPublicData: _TypeAlias = _typing.Literal["mmkSender", "epochSender", "precomputedEpochSender"] # noqa: Y015 + _WhichOneofArgType_senderPublicData: _TypeAlias = _typing.Literal["senderPublicData", b"senderPublicData"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_senderPublicData) -> _WhichOneofReturnType_senderPublicData | None: ... - class _GroupType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 +Global___MandrakeDecryptMekInput: _TypeAlias = MandrakeDecryptMekInput # noqa: Y015 - class _GroupTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.GroupInviteMessage._GroupType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - DEFAULT: Message.GroupInviteMessage._GroupType.ValueType # 0 - PARENT: Message.GroupInviteMessage._GroupType.ValueType # 1 +@_typing.final +class MandrakeDecryptMekResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class GroupType(_GroupType, metaclass=_GroupTypeEnumTypeWrapper): ... - DEFAULT: Message.GroupInviteMessage.GroupType.ValueType # 0 - PARENT: Message.GroupInviteMessage.GroupType.ValueType # 1 + SUCCESS_FIELD_NUMBER: _builtins.int + ERRORMESSAGE_FIELD_NUMBER: _builtins.int + errorMessage: _builtins.str + @_builtins.property + def success(self) -> Global___MandrakeDecryptMekSuccess: ... + def __init__( + self, + *, + success: Global___MandrakeDecryptMekSuccess | None = ..., + errorMessage: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015 + _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ... - GROUPJID_FIELD_NUMBER: _builtins.int - INVITECODE_FIELD_NUMBER: _builtins.int - INVITEEXPIRATION_FIELD_NUMBER: _builtins.int - GROUPNAME_FIELD_NUMBER: _builtins.int - JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int - CAPTION_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - GROUPTYPE_FIELD_NUMBER: _builtins.int - groupJid: _builtins.str - inviteCode: _builtins.str - inviteExpiration: _builtins.int - groupName: _builtins.str - jpegThumbnail: _builtins.bytes - caption: _builtins.str - groupType: Global___Message.GroupInviteMessage.GroupType.ValueType +Global___MandrakeDecryptMekResult: _TypeAlias = MandrakeDecryptMekResult # noqa: Y015 + +@_typing.final +class MandrakeDecryptMekSuccess(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + MEK_FIELD_NUMBER: _builtins.int + mek: _builtins.bytes + def __init__( + self, + *, + mek: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["mek", b"mek"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["mek", b"mek"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MandrakeDecryptMekSuccess: _TypeAlias = MandrakeDecryptMekSuccess # noqa: Y015 + +@_typing.final +class MandrakeEncryptMekInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class DetachedDeviceSender(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + DETACHEDDEVICEPUBLICDATA_FIELD_NUMBER: _builtins.int + AUTHSK_FIELD_NUMBER: _builtins.int + AUTHPK_FIELD_NUMBER: _builtins.int + authSk: _builtins.bytes + authPk: _builtins.bytes @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... + def detachedDevicePublicData(self) -> Global___DetachedDevicePublicData: ... def __init__( self, *, - groupJid: _builtins.str | None = ..., - inviteCode: _builtins.str | None = ..., - inviteExpiration: _builtins.int | None = ..., - groupName: _builtins.str | None = ..., - jpegThumbnail: _builtins.bytes | None = ..., - caption: _builtins.str | None = ..., - contextInfo: Global___ContextInfo | None = ..., - groupType: Global___Message.GroupInviteMessage.GroupType.ValueType | None = ..., + detachedDevicePublicData: Global___DetachedDevicePublicData | None = ..., + authSk: _builtins.bytes | None = ..., + authPk: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "groupJid", b"groupJid", "groupName", b"groupName", "groupType", b"groupType", "inviteCode", b"inviteCode", "inviteExpiration", b"inviteExpiration", "jpegThumbnail", b"jpegThumbnail"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "authSk", b"authSk", "detachedDevicePublicData", b"detachedDevicePublicData"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "groupJid", b"groupJid", "groupName", b"groupName", "groupType", b"groupType", "inviteCode", b"inviteCode", "inviteExpiration", b"inviteExpiration", "jpegThumbnail", b"jpegThumbnail"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "authSk", b"authSk", "detachedDevicePublicData", b"detachedDevicePublicData"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class HighlyStructuredMessage(_message.Message): + class EpochSender(_message.Message): DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class HSMLocalizableParameter(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + EPOCHPUBLICDATA_FIELD_NUMBER: _builtins.int + AUTHSK_FIELD_NUMBER: _builtins.int + AUTHPK_FIELD_NUMBER: _builtins.int + authSk: _builtins.bytes + authPk: _builtins.bytes + @_builtins.property + def epochPublicData(self) -> Global___EpochPublicData: ... + def __init__( + self, + *, + epochPublicData: Global___EpochPublicData | None = ..., + authSk: _builtins.bytes | None = ..., + authPk: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "authSk", b"authSk", "epochPublicData", b"epochPublicData"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "authSk", b"authSk", "epochPublicData", b"epochPublicData"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class HSMCurrency(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - CURRENCYCODE_FIELD_NUMBER: _builtins.int - AMOUNT1000_FIELD_NUMBER: _builtins.int - currencyCode: _builtins.str - amount1000: _builtins.int - def __init__( - self, - *, - currencyCode: _builtins.str | None = ..., - amount1000: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["amount1000", b"amount1000", "currencyCode", b"currencyCode"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["amount1000", b"amount1000", "currencyCode", b"currencyCode"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class HSMDateTime(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - @_typing.final - class HSMDateTimeComponent(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - class _CalendarType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _CalendarTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._CalendarType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - GREGORIAN: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._CalendarType.ValueType # 1 - SOLAR_HIJRI: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._CalendarType.ValueType # 2 - - class CalendarType(_CalendarType, metaclass=_CalendarTypeEnumTypeWrapper): ... - GREGORIAN: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType.ValueType # 1 - SOLAR_HIJRI: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType.ValueType # 2 + @_typing.final + class MmkSender(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _DayOfWeekType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + MMKPUBLICDATA_FIELD_NUMBER: _builtins.int + AUTHSK_FIELD_NUMBER: _builtins.int + AUTHPK_FIELD_NUMBER: _builtins.int + authSk: _builtins.bytes + authPk: _builtins.bytes + @_builtins.property + def mmkPublicData(self) -> Global___MessagingMailboxPublicData: ... + def __init__( + self, + *, + mmkPublicData: Global___MessagingMailboxPublicData | None = ..., + authSk: _builtins.bytes | None = ..., + authPk: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "authSk", b"authSk", "mmkPublicData", b"mmkPublicData"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "authSk", b"authSk", "mmkPublicData", b"mmkPublicData"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _DayOfWeekTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - MONDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 1 - TUESDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 2 - WEDNESDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 3 - THURSDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 4 - FRIDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 5 - SATURDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 6 - SUNDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 7 + MEK_FIELD_NUMBER: _builtins.int + RECIPIENTS_FIELD_NUMBER: _builtins.int + CONF_FIELD_NUMBER: _builtins.int + MMKSENDER_FIELD_NUMBER: _builtins.int + EPOCHSENDER_FIELD_NUMBER: _builtins.int + DETACHEDDEVICESENDER_FIELD_NUMBER: _builtins.int + @_builtins.property + def mek(self) -> Global___MandrakeMekBundle: ... + @_builtins.property + def recipients(self) -> _containers.RepeatedCompositeFieldContainer[Global___MessagingMailboxPublicData]: ... + @_builtins.property + def conf(self) -> Global___MinosClientConfig: ... + @_builtins.property + def mmkSender(self) -> Global___MandrakeEncryptMekInput.MmkSender: ... + @_builtins.property + def epochSender(self) -> Global___MandrakeEncryptMekInput.EpochSender: ... + @_builtins.property + def detachedDeviceSender(self) -> Global___MandrakeEncryptMekInput.DetachedDeviceSender: ... + def __init__( + self, + *, + mek: Global___MandrakeMekBundle | None = ..., + recipients: _abc.Iterable[Global___MessagingMailboxPublicData] | None = ..., + conf: Global___MinosClientConfig | None = ..., + mmkSender: Global___MandrakeEncryptMekInput.MmkSender | None = ..., + epochSender: Global___MandrakeEncryptMekInput.EpochSender | None = ..., + detachedDeviceSender: Global___MandrakeEncryptMekInput.DetachedDeviceSender | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "detachedDeviceSender", b"detachedDeviceSender", "epochSender", b"epochSender", "mek", b"mek", "mmkSender", b"mmkSender", "sender", b"sender"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "detachedDeviceSender", b"detachedDeviceSender", "epochSender", b"epochSender", "mek", b"mek", "mmkSender", b"mmkSender", "recipients", b"recipients", "sender", b"sender"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_sender: _TypeAlias = _typing.Literal["mmkSender", "epochSender", "detachedDeviceSender"] # noqa: Y015 + _WhichOneofArgType_sender: _TypeAlias = _typing.Literal["sender", b"sender"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_sender) -> _WhichOneofReturnType_sender | None: ... - class DayOfWeekType(_DayOfWeekType, metaclass=_DayOfWeekTypeEnumTypeWrapper): ... - MONDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 1 - TUESDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 2 - WEDNESDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 3 - THURSDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 4 - FRIDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 5 - SATURDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 6 - SUNDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 7 +Global___MandrakeEncryptMekInput: _TypeAlias = MandrakeEncryptMekInput # noqa: Y015 - DAYOFWEEK_FIELD_NUMBER: _builtins.int - YEAR_FIELD_NUMBER: _builtins.int - MONTH_FIELD_NUMBER: _builtins.int - DAYOFMONTH_FIELD_NUMBER: _builtins.int - HOUR_FIELD_NUMBER: _builtins.int - MINUTE_FIELD_NUMBER: _builtins.int - CALENDAR_FIELD_NUMBER: _builtins.int - dayOfWeek: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType - year: _builtins.int - month: _builtins.int - dayOfMonth: _builtins.int - hour: _builtins.int - minute: _builtins.int - calendar: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType.ValueType - def __init__( - self, - *, - dayOfWeek: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType | None = ..., - year: _builtins.int | None = ..., - month: _builtins.int | None = ..., - dayOfMonth: _builtins.int | None = ..., - hour: _builtins.int | None = ..., - minute: _builtins.int | None = ..., - calendar: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType.ValueType | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["calendar", b"calendar", "dayOfMonth", b"dayOfMonth", "dayOfWeek", b"dayOfWeek", "hour", b"hour", "minute", b"minute", "month", b"month", "year", b"year"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["calendar", b"calendar", "dayOfMonth", b"dayOfMonth", "dayOfWeek", b"dayOfWeek", "hour", b"hour", "minute", b"minute", "month", b"month", "year", b"year"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +@_typing.final +class MandrakeEncryptMekResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class HSMDateTimeUnixEpoch(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + SUCCESS_FIELD_NUMBER: _builtins.int + ERRORMESSAGE_FIELD_NUMBER: _builtins.int + errorMessage: _builtins.str + @_builtins.property + def success(self) -> Global___MandrakeEncryptMekSuccess: ... + def __init__( + self, + *, + success: Global___MandrakeEncryptMekSuccess | None = ..., + errorMessage: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015 + _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ... - TIMESTAMP_FIELD_NUMBER: _builtins.int - timestamp: _builtins.int - def __init__( - self, - *, - timestamp: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["timestamp", b"timestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["timestamp", b"timestamp"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___MandrakeEncryptMekResult: _TypeAlias = MandrakeEncryptMekResult # noqa: Y015 - COMPONENT_FIELD_NUMBER: _builtins.int - UNIXEPOCH_FIELD_NUMBER: _builtins.int - @_builtins.property - def component(self) -> Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent: ... - @_builtins.property - def unixEpoch(self) -> Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch: ... - def __init__( - self, - *, - component: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent | None = ..., - unixEpoch: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["component", b"component", "datetimeOneof", b"datetimeOneof", "unixEpoch", b"unixEpoch"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["component", b"component", "datetimeOneof", b"datetimeOneof", "unixEpoch", b"unixEpoch"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_datetimeOneof: _TypeAlias = _typing.Literal["component", "unixEpoch"] # noqa: Y015 - _WhichOneofArgType_datetimeOneof: _TypeAlias = _typing.Literal["datetimeOneof", b"datetimeOneof"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_datetimeOneof) -> _WhichOneofReturnType_datetimeOneof | None: ... +@_typing.final +class MandrakeEncryptMekSuccess(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - DEFAULT_FIELD_NUMBER: _builtins.int - CURRENCY_FIELD_NUMBER: _builtins.int - DATETIME_FIELD_NUMBER: _builtins.int - default: _builtins.str - @_builtins.property - def currency(self) -> Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency: ... - @_builtins.property - def dateTime(self) -> Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime: ... - def __init__( - self, - *, - default: _builtins.str | None = ..., - currency: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency | None = ..., - dateTime: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["currency", b"currency", "dateTime", b"dateTime", "default", b"default", "paramOneof", b"paramOneof"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["currency", b"currency", "dateTime", b"dateTime", "default", b"default", "paramOneof", b"paramOneof"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_paramOneof: _TypeAlias = _typing.Literal["currency", "dateTime"] # noqa: Y015 - _WhichOneofArgType_paramOneof: _TypeAlias = _typing.Literal["paramOneof", b"paramOneof"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_paramOneof) -> _WhichOneofReturnType_paramOneof | None: ... + @_typing.final + class MekDistributionSingleRecipient(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAMESPACE_FIELD_NUMBER: _builtins.int - ELEMENTNAME_FIELD_NUMBER: _builtins.int - PARAMS_FIELD_NUMBER: _builtins.int - FALLBACKLG_FIELD_NUMBER: _builtins.int - FALLBACKLC_FIELD_NUMBER: _builtins.int - LOCALIZABLEPARAMS_FIELD_NUMBER: _builtins.int - DETERMINISTICLG_FIELD_NUMBER: _builtins.int - DETERMINISTICLC_FIELD_NUMBER: _builtins.int - HYDRATEDHSM_FIELD_NUMBER: _builtins.int - namespace: _builtins.str - elementName: _builtins.str - fallbackLg: _builtins.str - fallbackLc: _builtins.str - deterministicLg: _builtins.str - deterministicLc: _builtins.str - @_builtins.property - def params(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + ENCRYPTEDMEK_FIELD_NUMBER: _builtins.int + TOMMK_FIELD_NUMBER: _builtins.int + RECIPIENTMEMBERSHIPPROOF_FIELD_NUMBER: _builtins.int + encryptedMek: _builtins.bytes @_builtins.property - def localizableParams(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.HighlyStructuredMessage.HSMLocalizableParameter]: ... + def toMmk(self) -> Global___MessagingMailboxPublicData: ... @_builtins.property - def hydratedHsm(self) -> Global___Message.TemplateMessage: ... + def recipientMembershipProof(self) -> Global___MerkleMembershipProof: ... def __init__( self, *, - namespace: _builtins.str | None = ..., - elementName: _builtins.str | None = ..., - params: _abc.Iterable[_builtins.str] | None = ..., - fallbackLg: _builtins.str | None = ..., - fallbackLc: _builtins.str | None = ..., - localizableParams: _abc.Iterable[Global___Message.HighlyStructuredMessage.HSMLocalizableParameter] | None = ..., - deterministicLg: _builtins.str | None = ..., - deterministicLc: _builtins.str | None = ..., - hydratedHsm: Global___Message.TemplateMessage | None = ..., + encryptedMek: _builtins.bytes | None = ..., + toMmk: Global___MessagingMailboxPublicData | None = ..., + recipientMembershipProof: Global___MerkleMembershipProof | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["deterministicLc", b"deterministicLc", "deterministicLg", b"deterministicLg", "elementName", b"elementName", "fallbackLc", b"fallbackLc", "fallbackLg", b"fallbackLg", "hydratedHsm", b"hydratedHsm", "namespace", b"namespace"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedMek", b"encryptedMek", "recipientMembershipProof", b"recipientMembershipProof", "toMmk", b"toMmk"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["deterministicLc", b"deterministicLc", "deterministicLg", b"deterministicLg", "elementName", b"elementName", "fallbackLc", b"fallbackLc", "fallbackLg", b"fallbackLg", "hydratedHsm", b"hydratedHsm", "localizableParams", b"localizableParams", "namespace", b"namespace", "params", b"params"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedMek", b"encryptedMek", "recipientMembershipProof", b"recipientMembershipProof", "toMmk", b"toMmk"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class HistorySyncMessageAccessStatus(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + DISTRIBUTIONS_FIELD_NUMBER: _builtins.int + RECIPIENTSHASH_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + recipientsHash: _builtins.bytes + version: _builtins.int + @_builtins.property + def distributions(self) -> _containers.RepeatedCompositeFieldContainer[Global___MandrakeEncryptMekSuccess.MekDistributionSingleRecipient]: ... + def __init__( + self, + *, + distributions: _abc.Iterable[Global___MandrakeEncryptMekSuccess.MekDistributionSingleRecipient] | None = ..., + recipientsHash: _builtins.bytes | None = ..., + version: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["recipientsHash", b"recipientsHash", "version", b"version"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["distributions", b"distributions", "recipientsHash", b"recipientsHash", "version", b"version"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - COMPLETEACCESSGRANTED_FIELD_NUMBER: _builtins.int - completeAccessGranted: _builtins.bool - def __init__( - self, - *, - completeAccessGranted: _builtins.bool | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["completeAccessGranted", b"completeAccessGranted"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["completeAccessGranted", b"completeAccessGranted"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___MandrakeEncryptMekSuccess: _TypeAlias = MandrakeEncryptMekSuccess # noqa: Y015 - @_typing.final - class HistorySyncNotification(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +@_typing.final +class MandrakeMekBundle(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - FILESHA256_FIELD_NUMBER: _builtins.int - FILELENGTH_FIELD_NUMBER: _builtins.int - MEDIAKEY_FIELD_NUMBER: _builtins.int - FILEENCSHA256_FIELD_NUMBER: _builtins.int - DIRECTPATH_FIELD_NUMBER: _builtins.int - SYNCTYPE_FIELD_NUMBER: _builtins.int - CHUNKORDER_FIELD_NUMBER: _builtins.int - ORIGINALMESSAGEID_FIELD_NUMBER: _builtins.int - PROGRESS_FIELD_NUMBER: _builtins.int - OLDESTMSGINCHUNKTIMESTAMPSEC_FIELD_NUMBER: _builtins.int - INITIALHISTBOOTSTRAPINLINEPAYLOAD_FIELD_NUMBER: _builtins.int - PEERDATAREQUESTSESSIONID_FIELD_NUMBER: _builtins.int - FULLHISTORYSYNCONDEMANDREQUESTMETADATA_FIELD_NUMBER: _builtins.int - ENCHANDLE_FIELD_NUMBER: _builtins.int - MESSAGEACCESSSTATUS_FIELD_NUMBER: _builtins.int - fileSha256: _builtins.bytes - fileLength: _builtins.int - mediaKey: _builtins.bytes - fileEncSha256: _builtins.bytes - directPath: _builtins.str - syncType: Global___Message.HistorySyncType.ValueType - chunkOrder: _builtins.int - originalMessageId: _builtins.str - progress: _builtins.int - oldestMsgInChunkTimestampSec: _builtins.int - initialHistBootstrapInlinePayload: _builtins.bytes - peerDataRequestSessionId: _builtins.str - encHandle: _builtins.str - @_builtins.property - def fullHistorySyncOnDemandRequestMetadata(self) -> Global___Message.FullHistorySyncOnDemandRequestMetadata: ... - @_builtins.property - def messageAccessStatus(self) -> Global___Message.HistorySyncMessageAccessStatus: ... - def __init__( - self, - *, - fileSha256: _builtins.bytes | None = ..., - fileLength: _builtins.int | None = ..., - mediaKey: _builtins.bytes | None = ..., - fileEncSha256: _builtins.bytes | None = ..., - directPath: _builtins.str | None = ..., - syncType: Global___Message.HistorySyncType.ValueType | None = ..., - chunkOrder: _builtins.int | None = ..., - originalMessageId: _builtins.str | None = ..., - progress: _builtins.int | None = ..., - oldestMsgInChunkTimestampSec: _builtins.int | None = ..., - initialHistBootstrapInlinePayload: _builtins.bytes | None = ..., - peerDataRequestSessionId: _builtins.str | None = ..., - fullHistorySyncOnDemandRequestMetadata: Global___Message.FullHistorySyncOnDemandRequestMetadata | None = ..., - encHandle: _builtins.str | None = ..., - messageAccessStatus: Global___Message.HistorySyncMessageAccessStatus | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["chunkOrder", b"chunkOrder", "directPath", b"directPath", "encHandle", b"encHandle", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "fullHistorySyncOnDemandRequestMetadata", b"fullHistorySyncOnDemandRequestMetadata", "initialHistBootstrapInlinePayload", b"initialHistBootstrapInlinePayload", "mediaKey", b"mediaKey", "messageAccessStatus", b"messageAccessStatus", "oldestMsgInChunkTimestampSec", b"oldestMsgInChunkTimestampSec", "originalMessageId", b"originalMessageId", "peerDataRequestSessionId", b"peerDataRequestSessionId", "progress", b"progress", "syncType", b"syncType"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["chunkOrder", b"chunkOrder", "directPath", b"directPath", "encHandle", b"encHandle", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "fullHistorySyncOnDemandRequestMetadata", b"fullHistorySyncOnDemandRequestMetadata", "initialHistBootstrapInlinePayload", b"initialHistBootstrapInlinePayload", "mediaKey", b"mediaKey", "messageAccessStatus", b"messageAccessStatus", "oldestMsgInChunkTimestampSec", b"oldestMsgInChunkTimestampSec", "originalMessageId", b"originalMessageId", "peerDataRequestSessionId", b"peerDataRequestSessionId", "progress", b"progress", "syncType", b"syncType"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + KEY_FIELD_NUMBER: _builtins.int + MEKID_FIELD_NUMBER: _builtins.int + MAILBOXHEADHASH_FIELD_NUMBER: _builtins.int + key: _builtins.bytes + mekId: _builtins.bytes + mailboxHeadHash: _builtins.bytes + def __init__( + self, + *, + key: _builtins.bytes | None = ..., + mekId: _builtins.bytes | None = ..., + mailboxHeadHash: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "mailboxHeadHash", b"mailboxHeadHash", "mekId", b"mekId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "mailboxHeadHash", b"mailboxHeadHash", "mekId", b"mekId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class ImageMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +Global___MandrakeMekBundle: _TypeAlias = MandrakeMekBundle # noqa: Y015 - class _ImageSourceType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 +@_typing.final +class MandrakeOpenEpochInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _ImageSourceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ImageMessage._ImageSourceType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - USER_IMAGE: Message.ImageMessage._ImageSourceType.ValueType # 0 - AI_GENERATED: Message.ImageMessage._ImageSourceType.ValueType # 1 - AI_MODIFIED: Message.ImageMessage._ImageSourceType.ValueType # 2 - RASTERIZED_TEXT_STATUS: Message.ImageMessage._ImageSourceType.ValueType # 3 + USERFBID_FIELD_NUMBER: _builtins.int + EPOCHNUMBER_FIELD_NUMBER: _builtins.int + EXPORTROOTKEY_FIELD_NUMBER: _builtins.int + PREVIOUSEXPORTROOTKEY_FIELD_NUMBER: _builtins.int + PREVIOUSEPOCHNUMBER_FIELD_NUMBER: _builtins.int + PREVIOUSEPOCHHEAD_FIELD_NUMBER: _builtins.int + PREVIOUSMMK_FIELD_NUMBER: _builtins.int + DETACHEDDEVICES_FIELD_NUMBER: _builtins.int + userFbid: _builtins.str + epochNumber: _builtins.int + exportRootKey: _builtins.bytes + previousExportRootKey: _builtins.bytes + previousEpochNumber: _builtins.int + previousEpochHead: _builtins.bytes + @_builtins.property + def previousMmk(self) -> Global___MessagingMailboxPublicData: ... + @_builtins.property + def detachedDevices(self) -> _containers.RepeatedCompositeFieldContainer[Global___DetachedDevicePublicData]: ... + def __init__( + self, + *, + userFbid: _builtins.str | None = ..., + epochNumber: _builtins.int | None = ..., + exportRootKey: _builtins.bytes | None = ..., + previousExportRootKey: _builtins.bytes | None = ..., + previousEpochNumber: _builtins.int | None = ..., + previousEpochHead: _builtins.bytes | None = ..., + previousMmk: Global___MessagingMailboxPublicData | None = ..., + detachedDevices: _abc.Iterable[Global___DetachedDevicePublicData] | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey", "previousEpochHead", b"previousEpochHead", "previousEpochNumber", b"previousEpochNumber", "previousExportRootKey", b"previousExportRootKey", "previousMmk", b"previousMmk", "userFbid", b"userFbid"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["detachedDevices", b"detachedDevices", "epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey", "previousEpochHead", b"previousEpochHead", "previousEpochNumber", b"previousEpochNumber", "previousExportRootKey", b"previousExportRootKey", "previousMmk", b"previousMmk", "userFbid", b"userFbid"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class ImageSourceType(_ImageSourceType, metaclass=_ImageSourceTypeEnumTypeWrapper): ... - USER_IMAGE: Message.ImageMessage.ImageSourceType.ValueType # 0 - AI_GENERATED: Message.ImageMessage.ImageSourceType.ValueType # 1 - AI_MODIFIED: Message.ImageMessage.ImageSourceType.ValueType # 2 - RASTERIZED_TEXT_STATUS: Message.ImageMessage.ImageSourceType.ValueType # 3 +Global___MandrakeOpenEpochInput: _TypeAlias = MandrakeOpenEpochInput # noqa: Y015 - URL_FIELD_NUMBER: _builtins.int - MIMETYPE_FIELD_NUMBER: _builtins.int - CAPTION_FIELD_NUMBER: _builtins.int - FILESHA256_FIELD_NUMBER: _builtins.int - FILELENGTH_FIELD_NUMBER: _builtins.int - HEIGHT_FIELD_NUMBER: _builtins.int - WIDTH_FIELD_NUMBER: _builtins.int - MEDIAKEY_FIELD_NUMBER: _builtins.int - FILEENCSHA256_FIELD_NUMBER: _builtins.int - INTERACTIVEANNOTATIONS_FIELD_NUMBER: _builtins.int - DIRECTPATH_FIELD_NUMBER: _builtins.int - MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int - JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - FIRSTSCANSIDECAR_FIELD_NUMBER: _builtins.int - FIRSTSCANLENGTH_FIELD_NUMBER: _builtins.int - EXPERIMENTGROUPID_FIELD_NUMBER: _builtins.int - SCANSSIDECAR_FIELD_NUMBER: _builtins.int - SCANLENGTHS_FIELD_NUMBER: _builtins.int - MIDQUALITYFILESHA256_FIELD_NUMBER: _builtins.int - MIDQUALITYFILEENCSHA256_FIELD_NUMBER: _builtins.int - VIEWONCE_FIELD_NUMBER: _builtins.int - THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int - THUMBNAILSHA256_FIELD_NUMBER: _builtins.int - THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int - STATICURL_FIELD_NUMBER: _builtins.int - ANNOTATIONS_FIELD_NUMBER: _builtins.int - IMAGESOURCETYPE_FIELD_NUMBER: _builtins.int - ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int - QRURL_FIELD_NUMBER: _builtins.int - url: _builtins.str - mimetype: _builtins.str - caption: _builtins.str - fileSha256: _builtins.bytes - fileLength: _builtins.int - height: _builtins.int - width: _builtins.int - mediaKey: _builtins.bytes - fileEncSha256: _builtins.bytes - directPath: _builtins.str - mediaKeyTimestamp: _builtins.int - jpegThumbnail: _builtins.bytes - firstScanSidecar: _builtins.bytes - firstScanLength: _builtins.int - experimentGroupId: _builtins.int - scansSidecar: _builtins.bytes - midQualityFileSha256: _builtins.bytes - midQualityFileEncSha256: _builtins.bytes - viewOnce: _builtins.bool - thumbnailDirectPath: _builtins.str - thumbnailSha256: _builtins.bytes - thumbnailEncSha256: _builtins.bytes - staticUrl: _builtins.str - imageSourceType: Global___Message.ImageMessage.ImageSourceType.ValueType - accessibilityLabel: _builtins.str - qrUrl: _builtins.str - @_builtins.property - def interactiveAnnotations(self) -> _containers.RepeatedCompositeFieldContainer[Global___InteractiveAnnotation]: ... - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - @_builtins.property - def scanLengths(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... - @_builtins.property - def annotations(self) -> _containers.RepeatedCompositeFieldContainer[Global___InteractiveAnnotation]: ... - def __init__( - self, - *, - url: _builtins.str | None = ..., - mimetype: _builtins.str | None = ..., - caption: _builtins.str | None = ..., - fileSha256: _builtins.bytes | None = ..., - fileLength: _builtins.int | None = ..., - height: _builtins.int | None = ..., - width: _builtins.int | None = ..., - mediaKey: _builtins.bytes | None = ..., - fileEncSha256: _builtins.bytes | None = ..., - interactiveAnnotations: _abc.Iterable[Global___InteractiveAnnotation] | None = ..., - directPath: _builtins.str | None = ..., - mediaKeyTimestamp: _builtins.int | None = ..., - jpegThumbnail: _builtins.bytes | None = ..., - contextInfo: Global___ContextInfo | None = ..., - firstScanSidecar: _builtins.bytes | None = ..., - firstScanLength: _builtins.int | None = ..., - experimentGroupId: _builtins.int | None = ..., - scansSidecar: _builtins.bytes | None = ..., - scanLengths: _abc.Iterable[_builtins.int] | None = ..., - midQualityFileSha256: _builtins.bytes | None = ..., - midQualityFileEncSha256: _builtins.bytes | None = ..., - viewOnce: _builtins.bool | None = ..., - thumbnailDirectPath: _builtins.str | None = ..., - thumbnailSha256: _builtins.bytes | None = ..., - thumbnailEncSha256: _builtins.bytes | None = ..., - staticUrl: _builtins.str | None = ..., - annotations: _abc.Iterable[Global___InteractiveAnnotation] | None = ..., - imageSourceType: Global___Message.ImageMessage.ImageSourceType.ValueType | None = ..., - accessibilityLabel: _builtins.str | None = ..., - qrUrl: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "experimentGroupId", b"experimentGroupId", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "firstScanLength", b"firstScanLength", "firstScanSidecar", b"firstScanSidecar", "height", b"height", "imageSourceType", b"imageSourceType", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "midQualityFileEncSha256", b"midQualityFileEncSha256", "midQualityFileSha256", b"midQualityFileSha256", "mimetype", b"mimetype", "qrUrl", b"qrUrl", "scansSidecar", b"scansSidecar", "staticUrl", b"staticUrl", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailSha256", b"thumbnailSha256", "url", b"url", "viewOnce", b"viewOnce", "width", b"width"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "annotations", b"annotations", "caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "experimentGroupId", b"experimentGroupId", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "firstScanLength", b"firstScanLength", "firstScanSidecar", b"firstScanSidecar", "height", b"height", "imageSourceType", b"imageSourceType", "interactiveAnnotations", b"interactiveAnnotations", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "midQualityFileEncSha256", b"midQualityFileEncSha256", "midQualityFileSha256", b"midQualityFileSha256", "mimetype", b"mimetype", "qrUrl", b"qrUrl", "scanLengths", b"scanLengths", "scansSidecar", b"scansSidecar", "staticUrl", b"staticUrl", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailSha256", b"thumbnailSha256", "url", b"url", "viewOnce", b"viewOnce", "width", b"width"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +@_typing.final +class MandrakeOpenEpochResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class InitialSecurityNotificationSettingSync(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + SUCCESS_FIELD_NUMBER: _builtins.int + ERRORMESSAGE_FIELD_NUMBER: _builtins.int + errorMessage: _builtins.str + @_builtins.property + def success(self) -> Global___MandrakeOpenEpochSuccess: ... + def __init__( + self, + *, + success: Global___MandrakeOpenEpochSuccess | None = ..., + errorMessage: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015 + _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ... - SECURITYNOTIFICATIONENABLED_FIELD_NUMBER: _builtins.int - securityNotificationEnabled: _builtins.bool - def __init__( - self, - *, - securityNotificationEnabled: _builtins.bool | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["securityNotificationEnabled", b"securityNotificationEnabled"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["securityNotificationEnabled", b"securityNotificationEnabled"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___MandrakeOpenEpochResult: _TypeAlias = MandrakeOpenEpochResult # noqa: Y015 - @_typing.final - class InteractiveMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +@_typing.final +class MandrakeOpenEpochSuccess(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class BloksWidget(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + MINOSSIGNEDEPOCH_FIELD_NUMBER: _builtins.int + SIGNEDMMKDISTRIBUTION_FIELD_NUMBER: _builtins.int + @_builtins.property + def minosSignedEpoch(self) -> Global___MinosSignedEpoch: ... + @_builtins.property + def signedMmkDistribution(self) -> Global___SignedMmkDistributionFromMailbox: ... + def __init__( + self, + *, + minosSignedEpoch: Global___MinosSignedEpoch | None = ..., + signedMmkDistribution: Global___SignedMmkDistributionFromMailbox | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["minosSignedEpoch", b"minosSignedEpoch", "signedMmkDistribution", b"signedMmkDistribution"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["minosSignedEpoch", b"minosSignedEpoch", "signedMmkDistribution", b"signedMmkDistribution"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - UUID_FIELD_NUMBER: _builtins.int - DATA_FIELD_NUMBER: _builtins.int - TYPE_FIELD_NUMBER: _builtins.int - FALLBACK_FIELD_NUMBER: _builtins.int - uuid: _builtins.str - data: _builtins.str - type: _builtins.str - fallback: _builtins.str - def __init__( - self, - *, - uuid: _builtins.str | None = ..., - data: _builtins.str | None = ..., - type: _builtins.str | None = ..., - fallback: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "fallback", b"fallback", "type", b"type", "uuid", b"uuid"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "fallback", b"fallback", "type", b"type", "uuid", b"uuid"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___MandrakeOpenEpochSuccess: _TypeAlias = MandrakeOpenEpochSuccess # noqa: Y015 - @_typing.final - class Body(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +@_typing.final +class MandrakeOpenInitialEpochInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - TEXT_FIELD_NUMBER: _builtins.int - text: _builtins.str - def __init__( - self, - *, - text: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["text", b"text"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["text", b"text"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + USERFBID_FIELD_NUMBER: _builtins.int + EPOCHNUMBER_FIELD_NUMBER: _builtins.int + EXPORTROOTKEY_FIELD_NUMBER: _builtins.int + DETACHEDDEVICES_FIELD_NUMBER: _builtins.int + userFbid: _builtins.str + epochNumber: _builtins.int + exportRootKey: _builtins.bytes + @_builtins.property + def detachedDevices(self) -> _containers.RepeatedCompositeFieldContainer[Global___DetachedDevicePublicData]: ... + def __init__( + self, + *, + userFbid: _builtins.str | None = ..., + epochNumber: _builtins.int | None = ..., + exportRootKey: _builtins.bytes | None = ..., + detachedDevices: _abc.Iterable[Global___DetachedDevicePublicData] | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey", "userFbid", b"userFbid"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["detachedDevices", b"detachedDevices", "epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey", "userFbid", b"userFbid"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class CarouselMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +Global___MandrakeOpenInitialEpochInput: _TypeAlias = MandrakeOpenInitialEpochInput # noqa: Y015 - class _CarouselCardType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 +@_typing.final +class MandrakeOpenInitialEpochResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _CarouselCardTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.InteractiveMessage.CarouselMessage._CarouselCardType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message.InteractiveMessage.CarouselMessage._CarouselCardType.ValueType # 0 - HSCROLL_CARDS: Message.InteractiveMessage.CarouselMessage._CarouselCardType.ValueType # 1 - ALBUM_IMAGE: Message.InteractiveMessage.CarouselMessage._CarouselCardType.ValueType # 2 + SUCCESS_FIELD_NUMBER: _builtins.int + ERRORMESSAGE_FIELD_NUMBER: _builtins.int + errorMessage: _builtins.str + @_builtins.property + def success(self) -> Global___MandrakeOpenEpochSuccess: ... + def __init__( + self, + *, + success: Global___MandrakeOpenEpochSuccess | None = ..., + errorMessage: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015 + _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ... - class CarouselCardType(_CarouselCardType, metaclass=_CarouselCardTypeEnumTypeWrapper): ... - UNKNOWN: Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType # 0 - HSCROLL_CARDS: Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType # 1 - ALBUM_IMAGE: Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType # 2 +Global___MandrakeOpenInitialEpochResult: _TypeAlias = MandrakeOpenInitialEpochResult # noqa: Y015 - CARDS_FIELD_NUMBER: _builtins.int - MESSAGEVERSION_FIELD_NUMBER: _builtins.int - CAROUSELCARDTYPE_FIELD_NUMBER: _builtins.int - messageVersion: _builtins.int - carouselCardType: Global___Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType - @_builtins.property - def cards(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.InteractiveMessage]: ... - def __init__( - self, - *, - cards: _abc.Iterable[Global___Message.InteractiveMessage] | None = ..., - messageVersion: _builtins.int | None = ..., - carouselCardType: Global___Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["carouselCardType", b"carouselCardType", "messageVersion", b"messageVersion"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["cards", b"cards", "carouselCardType", b"carouselCardType", "messageVersion", b"messageVersion"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +@_typing.final +class MandrakeValidateNewMmkFromDetachedDeviceInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class CollectionMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + MMKFROMDEVICE_FIELD_NUMBER: _builtins.int + SIGNATURE_FIELD_NUMBER: _builtins.int + PREVMMK_FIELD_NUMBER: _builtins.int + signature: _builtins.bytes + @_builtins.property + def mmkFromDevice(self) -> Global___MmkFromDetachedDevice: ... + @_builtins.property + def prevMmk(self) -> Global___MessagingMailboxPublicData: ... + def __init__( + self, + *, + mmkFromDevice: Global___MmkFromDetachedDevice | None = ..., + signature: _builtins.bytes | None = ..., + prevMmk: Global___MessagingMailboxPublicData | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["mmkFromDevice", b"mmkFromDevice", "prevMmk", b"prevMmk", "signature", b"signature"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["mmkFromDevice", b"mmkFromDevice", "prevMmk", b"prevMmk", "signature", b"signature"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - BIZJID_FIELD_NUMBER: _builtins.int - ID_FIELD_NUMBER: _builtins.int - MESSAGEVERSION_FIELD_NUMBER: _builtins.int - bizJid: _builtins.str - id: _builtins.str - messageVersion: _builtins.int - def __init__( - self, - *, - bizJid: _builtins.str | None = ..., - id: _builtins.str | None = ..., - messageVersion: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["bizJid", b"bizJid", "id", b"id", "messageVersion", b"messageVersion"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["bizJid", b"bizJid", "id", b"id", "messageVersion", b"messageVersion"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___MandrakeValidateNewMmkFromDetachedDeviceInput: _TypeAlias = MandrakeValidateNewMmkFromDetachedDeviceInput # noqa: Y015 - @_typing.final - class Footer(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +@_typing.final +class MandrakeValidateNewMmkFromMailboxInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - TEXT_FIELD_NUMBER: _builtins.int - HASMEDIAATTACHMENT_FIELD_NUMBER: _builtins.int - AUDIOMESSAGE_FIELD_NUMBER: _builtins.int - text: _builtins.str - hasMediaAttachment: _builtins.bool - @_builtins.property - def audioMessage(self) -> Global___Message.AudioMessage: ... - def __init__( - self, - *, - text: _builtins.str | None = ..., - hasMediaAttachment: _builtins.bool | None = ..., - audioMessage: Global___Message.AudioMessage | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["audioMessage", b"audioMessage", "hasMediaAttachment", b"hasMediaAttachment", "media", b"media", "text", b"text"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["audioMessage", b"audioMessage", "hasMediaAttachment", b"hasMediaAttachment", "media", b"media", "text", b"text"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_media: _TypeAlias = _typing.Literal["audioMessage"] # noqa: Y015 - _WhichOneofArgType_media: _TypeAlias = _typing.Literal["media", b"media"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_media) -> _WhichOneofReturnType_media | None: ... + NEWMMK_FIELD_NUMBER: _builtins.int + SIGNATURE_FIELD_NUMBER: _builtins.int + PREVMMK_FIELD_NUMBER: _builtins.int + EPOCHPUBLICDATA_FIELD_NUMBER: _builtins.int + signature: _builtins.bytes + @_builtins.property + def newMmk(self) -> Global___MessagingMailboxPublicData: ... + @_builtins.property + def prevMmk(self) -> Global___MessagingMailboxPublicData: ... + @_builtins.property + def epochPublicData(self) -> Global___EpochPublicData: ... + def __init__( + self, + *, + newMmk: Global___MessagingMailboxPublicData | None = ..., + signature: _builtins.bytes | None = ..., + prevMmk: Global___MessagingMailboxPublicData | None = ..., + epochPublicData: Global___EpochPublicData | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["epochPublicData", b"epochPublicData", "newMmk", b"newMmk", "prevMmk", b"prevMmk", "signature", b"signature"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["epochPublicData", b"epochPublicData", "newMmk", b"newMmk", "prevMmk", b"prevMmk", "signature", b"signature"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class Header(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +Global___MandrakeValidateNewMmkFromMailboxInput: _TypeAlias = MandrakeValidateNewMmkFromMailboxInput # noqa: Y015 - TITLE_FIELD_NUMBER: _builtins.int - SUBTITLE_FIELD_NUMBER: _builtins.int - HASMEDIAATTACHMENT_FIELD_NUMBER: _builtins.int - BLOKSWIDGET_FIELD_NUMBER: _builtins.int - DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int - IMAGEMESSAGE_FIELD_NUMBER: _builtins.int - JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int - VIDEOMESSAGE_FIELD_NUMBER: _builtins.int - LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int - PRODUCTMESSAGE_FIELD_NUMBER: _builtins.int - title: _builtins.str - subtitle: _builtins.str - hasMediaAttachment: _builtins.bool - jpegThumbnail: _builtins.bytes - @_builtins.property - def bloksWidget(self) -> Global___Message.InteractiveMessage.BloksWidget: ... - @_builtins.property - def documentMessage(self) -> Global___Message.DocumentMessage: ... - @_builtins.property - def imageMessage(self) -> Global___Message.ImageMessage: ... - @_builtins.property - def videoMessage(self) -> Global___Message.VideoMessage: ... - @_builtins.property - def locationMessage(self) -> Global___Message.LocationMessage: ... - @_builtins.property - def productMessage(self) -> Global___Message.ProductMessage: ... - def __init__( - self, - *, - title: _builtins.str | None = ..., - subtitle: _builtins.str | None = ..., - hasMediaAttachment: _builtins.bool | None = ..., - bloksWidget: Global___Message.InteractiveMessage.BloksWidget | None = ..., - documentMessage: Global___Message.DocumentMessage | None = ..., - imageMessage: Global___Message.ImageMessage | None = ..., - jpegThumbnail: _builtins.bytes | None = ..., - videoMessage: Global___Message.VideoMessage | None = ..., - locationMessage: Global___Message.LocationMessage | None = ..., - productMessage: Global___Message.ProductMessage | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["bloksWidget", b"bloksWidget", "documentMessage", b"documentMessage", "hasMediaAttachment", b"hasMediaAttachment", "imageMessage", b"imageMessage", "jpegThumbnail", b"jpegThumbnail", "locationMessage", b"locationMessage", "media", b"media", "productMessage", b"productMessage", "subtitle", b"subtitle", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["bloksWidget", b"bloksWidget", "documentMessage", b"documentMessage", "hasMediaAttachment", b"hasMediaAttachment", "imageMessage", b"imageMessage", "jpegThumbnail", b"jpegThumbnail", "locationMessage", b"locationMessage", "media", b"media", "productMessage", b"productMessage", "subtitle", b"subtitle", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_media: _TypeAlias = _typing.Literal["documentMessage", "imageMessage", "jpegThumbnail", "videoMessage", "locationMessage", "productMessage"] # noqa: Y015 - _WhichOneofArgType_media: _TypeAlias = _typing.Literal["media", b"media"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_media) -> _WhichOneofReturnType_media | None: ... +@_typing.final +class MandrakeValidateNewMmkResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class NativeFlowMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + VALID_FIELD_NUMBER: _builtins.int + ERRORMESSAGE_FIELD_NUMBER: _builtins.int + valid: _builtins.bool + errorMessage: _builtins.str + def __init__( + self, + *, + valid: _builtins.bool | None = ..., + errorMessage: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "valid", b"valid"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "valid", b"valid"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["valid", "errorMessage"] # noqa: Y015 + _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ... - @_typing.final - class NativeFlowButton(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +Global___MandrakeValidateNewMmkResult: _TypeAlias = MandrakeValidateNewMmkResult # noqa: Y015 - NAME_FIELD_NUMBER: _builtins.int - BUTTONPARAMSJSON_FIELD_NUMBER: _builtins.int - name: _builtins.str - buttonParamsJson: _builtins.str - def __init__( - self, - *, - name: _builtins.str | None = ..., - buttonParamsJson: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["buttonParamsJson", b"buttonParamsJson", "name", b"name"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["buttonParamsJson", b"buttonParamsJson", "name", b"name"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +@_typing.final +class MediaData(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - BUTTONS_FIELD_NUMBER: _builtins.int - MESSAGEPARAMSJSON_FIELD_NUMBER: _builtins.int - MESSAGEVERSION_FIELD_NUMBER: _builtins.int - messageParamsJson: _builtins.str - messageVersion: _builtins.int - @_builtins.property - def buttons(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.InteractiveMessage.NativeFlowMessage.NativeFlowButton]: ... - def __init__( - self, - *, - buttons: _abc.Iterable[Global___Message.InteractiveMessage.NativeFlowMessage.NativeFlowButton] | None = ..., - messageParamsJson: _builtins.str | None = ..., - messageVersion: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["messageParamsJson", b"messageParamsJson", "messageVersion", b"messageVersion"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["buttons", b"buttons", "messageParamsJson", b"messageParamsJson", "messageVersion", b"messageVersion"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + LOCALPATH_FIELD_NUMBER: _builtins.int + localPath: _builtins.str + def __init__( + self, + *, + localPath: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["localPath", b"localPath"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["localPath", b"localPath"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class ShopMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +Global___MediaData: _TypeAlias = MediaData # noqa: Y015 - class _Surface: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 +@_typing.final +class MediaDomainInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _SurfaceEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.InteractiveMessage.ShopMessage._Surface.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN_SURFACE: Message.InteractiveMessage.ShopMessage._Surface.ValueType # 0 - FB: Message.InteractiveMessage.ShopMessage._Surface.ValueType # 1 - IG: Message.InteractiveMessage.ShopMessage._Surface.ValueType # 2 - WA: Message.InteractiveMessage.ShopMessage._Surface.ValueType # 3 + MEDIAKEYDOMAIN_FIELD_NUMBER: _builtins.int + E2EEMEDIAKEY_FIELD_NUMBER: _builtins.int + mediaKeyDomain: Global___MediaKeyDomain.ValueType + e2EeMediaKey: _builtins.bytes + def __init__( + self, + *, + mediaKeyDomain: Global___MediaKeyDomain.ValueType | None = ..., + e2EeMediaKey: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["e2EeMediaKey", b"e2EeMediaKey", "mediaKeyDomain", b"mediaKeyDomain"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["e2EeMediaKey", b"e2EeMediaKey", "mediaKeyDomain", b"mediaKeyDomain"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class Surface(_Surface, metaclass=_SurfaceEnumTypeWrapper): ... - UNKNOWN_SURFACE: Message.InteractiveMessage.ShopMessage.Surface.ValueType # 0 - FB: Message.InteractiveMessage.ShopMessage.Surface.ValueType # 1 - IG: Message.InteractiveMessage.ShopMessage.Surface.ValueType # 2 - WA: Message.InteractiveMessage.ShopMessage.Surface.ValueType # 3 +Global___MediaDomainInfo: _TypeAlias = MediaDomainInfo # noqa: Y015 - ID_FIELD_NUMBER: _builtins.int - SURFACE_FIELD_NUMBER: _builtins.int - MESSAGEVERSION_FIELD_NUMBER: _builtins.int - id: _builtins.str - surface: Global___Message.InteractiveMessage.ShopMessage.Surface.ValueType - messageVersion: _builtins.int - def __init__( - self, - *, - id: _builtins.str | None = ..., - surface: Global___Message.InteractiveMessage.ShopMessage.Surface.ValueType | None = ..., - messageVersion: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["id", b"id", "messageVersion", b"messageVersion", "surface", b"surface"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["id", b"id", "messageVersion", b"messageVersion", "surface", b"surface"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - HEADER_FIELD_NUMBER: _builtins.int - BODY_FIELD_NUMBER: _builtins.int - FOOTER_FIELD_NUMBER: _builtins.int - BLOKSWIDGET_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - URLTRACKINGMAP_FIELD_NUMBER: _builtins.int - SHOPSTOREFRONTMESSAGE_FIELD_NUMBER: _builtins.int - COLLECTIONMESSAGE_FIELD_NUMBER: _builtins.int - NATIVEFLOWMESSAGE_FIELD_NUMBER: _builtins.int - CAROUSELMESSAGE_FIELD_NUMBER: _builtins.int - @_builtins.property - def header(self) -> Global___Message.InteractiveMessage.Header: ... - @_builtins.property - def body(self) -> Global___Message.InteractiveMessage.Body: ... - @_builtins.property - def footer(self) -> Global___Message.InteractiveMessage.Footer: ... - @_builtins.property - def bloksWidget(self) -> Global___Message.InteractiveMessage.BloksWidget: ... - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - @_builtins.property - def urlTrackingMap(self) -> Global___UrlTrackingMap: ... - @_builtins.property - def shopStorefrontMessage(self) -> Global___Message.InteractiveMessage.ShopMessage: ... - @_builtins.property - def collectionMessage(self) -> Global___Message.InteractiveMessage.CollectionMessage: ... - @_builtins.property - def nativeFlowMessage(self) -> Global___Message.InteractiveMessage.NativeFlowMessage: ... - @_builtins.property - def carouselMessage(self) -> Global___Message.InteractiveMessage.CarouselMessage: ... - def __init__( - self, - *, - header: Global___Message.InteractiveMessage.Header | None = ..., - body: Global___Message.InteractiveMessage.Body | None = ..., - footer: Global___Message.InteractiveMessage.Footer | None = ..., - bloksWidget: Global___Message.InteractiveMessage.BloksWidget | None = ..., - contextInfo: Global___ContextInfo | None = ..., - urlTrackingMap: Global___UrlTrackingMap | None = ..., - shopStorefrontMessage: Global___Message.InteractiveMessage.ShopMessage | None = ..., - collectionMessage: Global___Message.InteractiveMessage.CollectionMessage | None = ..., - nativeFlowMessage: Global___Message.InteractiveMessage.NativeFlowMessage | None = ..., - carouselMessage: Global___Message.InteractiveMessage.CarouselMessage | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["bloksWidget", b"bloksWidget", "body", b"body", "carouselMessage", b"carouselMessage", "collectionMessage", b"collectionMessage", "contextInfo", b"contextInfo", "footer", b"footer", "header", b"header", "interactiveMessage", b"interactiveMessage", "nativeFlowMessage", b"nativeFlowMessage", "shopStorefrontMessage", b"shopStorefrontMessage", "urlTrackingMap", b"urlTrackingMap"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["bloksWidget", b"bloksWidget", "body", b"body", "carouselMessage", b"carouselMessage", "collectionMessage", b"collectionMessage", "contextInfo", b"contextInfo", "footer", b"footer", "header", b"header", "interactiveMessage", b"interactiveMessage", "nativeFlowMessage", b"nativeFlowMessage", "shopStorefrontMessage", b"shopStorefrontMessage", "urlTrackingMap", b"urlTrackingMap"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_interactiveMessage: _TypeAlias = _typing.Literal["shopStorefrontMessage", "collectionMessage", "nativeFlowMessage", "carouselMessage"] # noqa: Y015 - _WhichOneofArgType_interactiveMessage: _TypeAlias = _typing.Literal["interactiveMessage", b"interactiveMessage"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_interactiveMessage) -> _WhichOneofReturnType_interactiveMessage | None: ... - - @_typing.final - class InteractiveResponseMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - @_typing.final - class Body(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - class _Format: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _FormatEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.InteractiveResponseMessage.Body._Format.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - DEFAULT: Message.InteractiveResponseMessage.Body._Format.ValueType # 0 - EXTENSIONS_1: Message.InteractiveResponseMessage.Body._Format.ValueType # 1 - - class Format(_Format, metaclass=_FormatEnumTypeWrapper): ... - DEFAULT: Message.InteractiveResponseMessage.Body.Format.ValueType # 0 - EXTENSIONS_1: Message.InteractiveResponseMessage.Body.Format.ValueType # 1 - - TEXT_FIELD_NUMBER: _builtins.int - FORMAT_FIELD_NUMBER: _builtins.int - text: _builtins.str - format: Global___Message.InteractiveResponseMessage.Body.Format.ValueType - def __init__( - self, - *, - text: _builtins.str | None = ..., - format: Global___Message.InteractiveResponseMessage.Body.Format.ValueType | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["format", b"format", "text", b"text"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["format", b"format", "text", b"text"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class NativeFlowResponseMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - NAME_FIELD_NUMBER: _builtins.int - PARAMSJSON_FIELD_NUMBER: _builtins.int - VERSION_FIELD_NUMBER: _builtins.int - name: _builtins.str - paramsJson: _builtins.str - version: _builtins.int - def __init__( - self, - *, - name: _builtins.str | None = ..., - paramsJson: _builtins.str | None = ..., - version: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "paramsJson", b"paramsJson", "version", b"version"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "paramsJson", b"paramsJson", "version", b"version"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - BODY_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - NATIVEFLOWRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int - @_builtins.property - def body(self) -> Global___Message.InteractiveResponseMessage.Body: ... - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - @_builtins.property - def nativeFlowResponseMessage(self) -> Global___Message.InteractiveResponseMessage.NativeFlowResponseMessage: ... - def __init__( - self, - *, - body: Global___Message.InteractiveResponseMessage.Body | None = ..., - contextInfo: Global___ContextInfo | None = ..., - nativeFlowResponseMessage: Global___Message.InteractiveResponseMessage.NativeFlowResponseMessage | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "contextInfo", b"contextInfo", "interactiveResponseMessage", b"interactiveResponseMessage", "nativeFlowResponseMessage", b"nativeFlowResponseMessage"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "contextInfo", b"contextInfo", "interactiveResponseMessage", b"interactiveResponseMessage", "nativeFlowResponseMessage", b"nativeFlowResponseMessage"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_interactiveResponseMessage: _TypeAlias = _typing.Literal["nativeFlowResponseMessage"] # noqa: Y015 - _WhichOneofArgType_interactiveResponseMessage: _TypeAlias = _typing.Literal["interactiveResponseMessage", b"interactiveResponseMessage"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_interactiveResponseMessage) -> _WhichOneofReturnType_interactiveResponseMessage | None: ... +@_typing.final +class MediaEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor @_typing.final - class InvoiceMessage(_message.Message): + class DownloadableThumbnail(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _AttachmentType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _AttachmentTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.InvoiceMessage._AttachmentType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - IMAGE: Message.InvoiceMessage._AttachmentType.ValueType # 0 - PDF: Message.InvoiceMessage._AttachmentType.ValueType # 1 - - class AttachmentType(_AttachmentType, metaclass=_AttachmentTypeEnumTypeWrapper): ... - IMAGE: Message.InvoiceMessage.AttachmentType.ValueType # 0 - PDF: Message.InvoiceMessage.AttachmentType.ValueType # 1 - - NOTE_FIELD_NUMBER: _builtins.int - TOKEN_FIELD_NUMBER: _builtins.int - ATTACHMENTTYPE_FIELD_NUMBER: _builtins.int - ATTACHMENTMIMETYPE_FIELD_NUMBER: _builtins.int - ATTACHMENTMEDIAKEY_FIELD_NUMBER: _builtins.int - ATTACHMENTMEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int - ATTACHMENTFILESHA256_FIELD_NUMBER: _builtins.int - ATTACHMENTFILEENCSHA256_FIELD_NUMBER: _builtins.int - ATTACHMENTDIRECTPATH_FIELD_NUMBER: _builtins.int - ATTACHMENTJPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int - note: _builtins.str - token: _builtins.str - attachmentType: Global___Message.InvoiceMessage.AttachmentType.ValueType - attachmentMimetype: _builtins.str - attachmentMediaKey: _builtins.bytes - attachmentMediaKeyTimestamp: _builtins.int - attachmentFileSha256: _builtins.bytes - attachmentFileEncSha256: _builtins.bytes - attachmentDirectPath: _builtins.str - attachmentJpegThumbnail: _builtins.bytes + FILESHA256_FIELD_NUMBER: _builtins.int + FILEENCSHA256_FIELD_NUMBER: _builtins.int + DIRECTPATH_FIELD_NUMBER: _builtins.int + MEDIAKEY_FIELD_NUMBER: _builtins.int + MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int + OBJECTID_FIELD_NUMBER: _builtins.int + fileSha256: _builtins.bytes + fileEncSha256: _builtins.bytes + directPath: _builtins.str + mediaKey: _builtins.bytes + mediaKeyTimestamp: _builtins.int + objectId: _builtins.str def __init__( self, *, - note: _builtins.str | None = ..., - token: _builtins.str | None = ..., - attachmentType: Global___Message.InvoiceMessage.AttachmentType.ValueType | None = ..., - attachmentMimetype: _builtins.str | None = ..., - attachmentMediaKey: _builtins.bytes | None = ..., - attachmentMediaKeyTimestamp: _builtins.int | None = ..., - attachmentFileSha256: _builtins.bytes | None = ..., - attachmentFileEncSha256: _builtins.bytes | None = ..., - attachmentDirectPath: _builtins.str | None = ..., - attachmentJpegThumbnail: _builtins.bytes | None = ..., + fileSha256: _builtins.bytes | None = ..., + fileEncSha256: _builtins.bytes | None = ..., + directPath: _builtins.str | None = ..., + mediaKey: _builtins.bytes | None = ..., + mediaKeyTimestamp: _builtins.int | None = ..., + objectId: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["attachmentDirectPath", b"attachmentDirectPath", "attachmentFileEncSha256", b"attachmentFileEncSha256", "attachmentFileSha256", b"attachmentFileSha256", "attachmentJpegThumbnail", b"attachmentJpegThumbnail", "attachmentMediaKey", b"attachmentMediaKey", "attachmentMediaKeyTimestamp", b"attachmentMediaKeyTimestamp", "attachmentMimetype", b"attachmentMimetype", "attachmentType", b"attachmentType", "note", b"note", "token", b"token"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "objectId", b"objectId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["attachmentDirectPath", b"attachmentDirectPath", "attachmentFileEncSha256", b"attachmentFileEncSha256", "attachmentFileSha256", b"attachmentFileSha256", "attachmentJpegThumbnail", b"attachmentJpegThumbnail", "attachmentMediaKey", b"attachmentMediaKey", "attachmentMediaKeyTimestamp", b"attachmentMediaKeyTimestamp", "attachmentMimetype", b"attachmentMimetype", "attachmentType", b"attachmentType", "note", b"note", "token", b"token"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "objectId", b"objectId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class KeepInChatMessage(_message.Message): + class ProgressiveJpegDetails(_message.Message): DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - KEEPTYPE_FIELD_NUMBER: _builtins.int - TIMESTAMPMS_FIELD_NUMBER: _builtins.int - keepType: Global___KeepType.ValueType - timestampMs: _builtins.int + SCANLENGTHS_FIELD_NUMBER: _builtins.int + SIDECAR_FIELD_NUMBER: _builtins.int + sidecar: _builtins.bytes @_builtins.property - def key(self) -> Global___MessageKey: ... + def scanLengths(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... def __init__( self, *, - key: Global___MessageKey | None = ..., - keepType: Global___KeepType.ValueType | None = ..., - timestampMs: _builtins.int | None = ..., + scanLengths: _abc.Iterable[_builtins.int] | None = ..., + sidecar: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["keepType", b"keepType", "key", b"key", "timestampMs", b"timestampMs"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["sidecar", b"sidecar"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["keepType", b"keepType", "key", b"key", "timestampMs", b"timestampMs"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["scanLengths", b"scanLengths", "sidecar", b"sidecar"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class LinkPreviewMetadata(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - class _SocialMediaPostType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _SocialMediaPostTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.LinkPreviewMetadata._SocialMediaPostType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - NONE: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 0 - REEL: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 1 - LIVE_VIDEO: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 2 - LONG_VIDEO: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 3 - SINGLE_IMAGE: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 4 - CAROUSEL: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 5 - - class SocialMediaPostType(_SocialMediaPostType, metaclass=_SocialMediaPostTypeEnumTypeWrapper): ... - NONE: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 0 - REEL: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 1 - LIVE_VIDEO: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 2 - LONG_VIDEO: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 3 - SINGLE_IMAGE: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 4 - CAROUSEL: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 5 + FILESHA256_FIELD_NUMBER: _builtins.int + MEDIAKEY_FIELD_NUMBER: _builtins.int + FILEENCSHA256_FIELD_NUMBER: _builtins.int + DIRECTPATH_FIELD_NUMBER: _builtins.int + MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int + SERVERMEDIATYPE_FIELD_NUMBER: _builtins.int + UPLOADTOKEN_FIELD_NUMBER: _builtins.int + VALIDATEDTIMESTAMP_FIELD_NUMBER: _builtins.int + SIDECAR_FIELD_NUMBER: _builtins.int + OBJECTID_FIELD_NUMBER: _builtins.int + FBID_FIELD_NUMBER: _builtins.int + DOWNLOADABLETHUMBNAIL_FIELD_NUMBER: _builtins.int + HANDLE_FIELD_NUMBER: _builtins.int + FILENAME_FIELD_NUMBER: _builtins.int + PROGRESSIVEJPEGDETAILS_FIELD_NUMBER: _builtins.int + SIZE_FIELD_NUMBER: _builtins.int + LASTDOWNLOADATTEMPTTIMESTAMP_FIELD_NUMBER: _builtins.int + fileSha256: _builtins.bytes + mediaKey: _builtins.bytes + fileEncSha256: _builtins.bytes + directPath: _builtins.str + mediaKeyTimestamp: _builtins.int + serverMediaType: _builtins.str + uploadToken: _builtins.bytes + validatedTimestamp: _builtins.bytes + sidecar: _builtins.bytes + objectId: _builtins.str + fbid: _builtins.str + handle: _builtins.str + filename: _builtins.str + size: _builtins.int + lastDownloadAttemptTimestamp: _builtins.int + @_builtins.property + def downloadableThumbnail(self) -> Global___MediaEntry.DownloadableThumbnail: ... + @_builtins.property + def progressiveJpegDetails(self) -> Global___MediaEntry.ProgressiveJpegDetails: ... + def __init__( + self, + *, + fileSha256: _builtins.bytes | None = ..., + mediaKey: _builtins.bytes | None = ..., + fileEncSha256: _builtins.bytes | None = ..., + directPath: _builtins.str | None = ..., + mediaKeyTimestamp: _builtins.int | None = ..., + serverMediaType: _builtins.str | None = ..., + uploadToken: _builtins.bytes | None = ..., + validatedTimestamp: _builtins.bytes | None = ..., + sidecar: _builtins.bytes | None = ..., + objectId: _builtins.str | None = ..., + fbid: _builtins.str | None = ..., + downloadableThumbnail: Global___MediaEntry.DownloadableThumbnail | None = ..., + handle: _builtins.str | None = ..., + filename: _builtins.str | None = ..., + progressiveJpegDetails: Global___MediaEntry.ProgressiveJpegDetails | None = ..., + size: _builtins.int | None = ..., + lastDownloadAttemptTimestamp: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "downloadableThumbnail", b"downloadableThumbnail", "fbid", b"fbid", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "filename", b"filename", "handle", b"handle", "lastDownloadAttemptTimestamp", b"lastDownloadAttemptTimestamp", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "objectId", b"objectId", "progressiveJpegDetails", b"progressiveJpegDetails", "serverMediaType", b"serverMediaType", "sidecar", b"sidecar", "size", b"size", "uploadToken", b"uploadToken", "validatedTimestamp", b"validatedTimestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "downloadableThumbnail", b"downloadableThumbnail", "fbid", b"fbid", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "filename", b"filename", "handle", b"handle", "lastDownloadAttemptTimestamp", b"lastDownloadAttemptTimestamp", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "objectId", b"objectId", "progressiveJpegDetails", b"progressiveJpegDetails", "serverMediaType", b"serverMediaType", "sidecar", b"sidecar", "size", b"size", "uploadToken", b"uploadToken", "validatedTimestamp", b"validatedTimestamp"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - PAYMENTLINKMETADATA_FIELD_NUMBER: _builtins.int - URLMETADATA_FIELD_NUMBER: _builtins.int - FBEXPERIMENTID_FIELD_NUMBER: _builtins.int - LINKMEDIADURATION_FIELD_NUMBER: _builtins.int - SOCIALMEDIAPOSTTYPE_FIELD_NUMBER: _builtins.int - LINKINLINEVIDEOMUTED_FIELD_NUMBER: _builtins.int - VIDEOCONTENTURL_FIELD_NUMBER: _builtins.int - MUSICMETADATA_FIELD_NUMBER: _builtins.int - VIDEOCONTENTCAPTION_FIELD_NUMBER: _builtins.int - fbExperimentId: _builtins.int - linkMediaDuration: _builtins.int - socialMediaPostType: Global___Message.LinkPreviewMetadata.SocialMediaPostType.ValueType - linkInlineVideoMuted: _builtins.bool - videoContentUrl: _builtins.str - videoContentCaption: _builtins.str - @_builtins.property - def paymentLinkMetadata(self) -> Global___Message.PaymentLinkMetadata: ... - @_builtins.property - def urlMetadata(self) -> Global___Message.URLMetadata: ... - @_builtins.property - def musicMetadata(self) -> Global___EmbeddedMusic: ... - def __init__( - self, - *, - paymentLinkMetadata: Global___Message.PaymentLinkMetadata | None = ..., - urlMetadata: Global___Message.URLMetadata | None = ..., - fbExperimentId: _builtins.int | None = ..., - linkMediaDuration: _builtins.int | None = ..., - socialMediaPostType: Global___Message.LinkPreviewMetadata.SocialMediaPostType.ValueType | None = ..., - linkInlineVideoMuted: _builtins.bool | None = ..., - videoContentUrl: _builtins.str | None = ..., - musicMetadata: Global___EmbeddedMusic | None = ..., - videoContentCaption: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["fbExperimentId", b"fbExperimentId", "linkInlineVideoMuted", b"linkInlineVideoMuted", "linkMediaDuration", b"linkMediaDuration", "musicMetadata", b"musicMetadata", "paymentLinkMetadata", b"paymentLinkMetadata", "socialMediaPostType", b"socialMediaPostType", "urlMetadata", b"urlMetadata", "videoContentCaption", b"videoContentCaption", "videoContentUrl", b"videoContentUrl"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["fbExperimentId", b"fbExperimentId", "linkInlineVideoMuted", b"linkInlineVideoMuted", "linkMediaDuration", b"linkMediaDuration", "musicMetadata", b"musicMetadata", "paymentLinkMetadata", b"paymentLinkMetadata", "socialMediaPostType", b"socialMediaPostType", "urlMetadata", b"urlMetadata", "videoContentCaption", b"videoContentCaption", "videoContentUrl", b"videoContentUrl"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___MediaEntry: _TypeAlias = MediaEntry # noqa: Y015 - @_typing.final - class ListMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +@_typing.final +class MediaNotifyMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _ListType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + EXPRESSPATHURL_FIELD_NUMBER: _builtins.int + FILEENCSHA256_FIELD_NUMBER: _builtins.int + FILELENGTH_FIELD_NUMBER: _builtins.int + expressPathUrl: _builtins.str + fileEncSha256: _builtins.bytes + fileLength: _builtins.int + def __init__( + self, + *, + expressPathUrl: _builtins.str | None = ..., + fileEncSha256: _builtins.bytes | None = ..., + fileLength: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["expressPathUrl", b"expressPathUrl", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["expressPathUrl", b"expressPathUrl", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _ListTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ListMessage._ListType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message.ListMessage._ListType.ValueType # 0 - SINGLE_SELECT: Message.ListMessage._ListType.ValueType # 1 - PRODUCT_LIST: Message.ListMessage._ListType.ValueType # 2 +Global___MediaNotifyMessage: _TypeAlias = MediaNotifyMessage # noqa: Y015 - class ListType(_ListType, metaclass=_ListTypeEnumTypeWrapper): ... - UNKNOWN: Message.ListMessage.ListType.ValueType # 0 - SINGLE_SELECT: Message.ListMessage.ListType.ValueType # 1 - PRODUCT_LIST: Message.ListMessage.ListType.ValueType # 2 +@_typing.final +class MediaRetryNotification(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class Product(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class _ResultType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - PRODUCTID_FIELD_NUMBER: _builtins.int - productId: _builtins.str - def __init__( - self, - *, - productId: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["productId", b"productId"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["productId", b"productId"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class _ResultTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MediaRetryNotification._ResultType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + GENERAL_ERROR: MediaRetryNotification._ResultType.ValueType # 0 + SUCCESS: MediaRetryNotification._ResultType.ValueType # 1 + NOT_FOUND: MediaRetryNotification._ResultType.ValueType # 2 + DECRYPTION_ERROR: MediaRetryNotification._ResultType.ValueType # 3 - @_typing.final - class ProductListHeaderImage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class ResultType(_ResultType, metaclass=_ResultTypeEnumTypeWrapper): ... + GENERAL_ERROR: MediaRetryNotification.ResultType.ValueType # 0 + SUCCESS: MediaRetryNotification.ResultType.ValueType # 1 + NOT_FOUND: MediaRetryNotification.ResultType.ValueType # 2 + DECRYPTION_ERROR: MediaRetryNotification.ResultType.ValueType # 3 - PRODUCTID_FIELD_NUMBER: _builtins.int - JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int - productId: _builtins.str - jpegThumbnail: _builtins.bytes - def __init__( - self, - *, - productId: _builtins.str | None = ..., - jpegThumbnail: _builtins.bytes | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["jpegThumbnail", b"jpegThumbnail", "productId", b"productId"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["jpegThumbnail", b"jpegThumbnail", "productId", b"productId"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + STANZAID_FIELD_NUMBER: _builtins.int + DIRECTPATH_FIELD_NUMBER: _builtins.int + RESULT_FIELD_NUMBER: _builtins.int + MESSAGESECRET_FIELD_NUMBER: _builtins.int + stanzaId: _builtins.str + directPath: _builtins.str + result: Global___MediaRetryNotification.ResultType.ValueType + messageSecret: _builtins.bytes + def __init__( + self, + *, + stanzaId: _builtins.str | None = ..., + directPath: _builtins.str | None = ..., + result: Global___MediaRetryNotification.ResultType.ValueType | None = ..., + messageSecret: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "messageSecret", b"messageSecret", "result", b"result", "stanzaId", b"stanzaId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "messageSecret", b"messageSecret", "result", b"result", "stanzaId", b"stanzaId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class ProductListInfo(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +Global___MediaRetryNotification: _TypeAlias = MediaRetryNotification # noqa: Y015 - PRODUCTSECTIONS_FIELD_NUMBER: _builtins.int - HEADERIMAGE_FIELD_NUMBER: _builtins.int - BUSINESSOWNERJID_FIELD_NUMBER: _builtins.int - businessOwnerJid: _builtins.str - @_builtins.property - def productSections(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ListMessage.ProductSection]: ... - @_builtins.property - def headerImage(self) -> Global___Message.ListMessage.ProductListHeaderImage: ... - def __init__( - self, - *, - productSections: _abc.Iterable[Global___Message.ListMessage.ProductSection] | None = ..., - headerImage: Global___Message.ListMessage.ProductListHeaderImage | None = ..., - businessOwnerJid: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["businessOwnerJid", b"businessOwnerJid", "headerImage", b"headerImage"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["businessOwnerJid", b"businessOwnerJid", "headerImage", b"headerImage", "productSections", b"productSections"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +@_typing.final +class MekBundle(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class ProductSection(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + MEKID_FIELD_NUMBER: _builtins.int + ROSTERHASH_FIELD_NUMBER: _builtins.int + key: _builtins.bytes + mekId: _builtins.bytes + rosterHash: _builtins.bytes + def __init__( + self, + *, + key: _builtins.bytes | None = ..., + mekId: _builtins.bytes | None = ..., + rosterHash: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "mekId", b"mekId", "rosterHash", b"rosterHash"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "mekId", b"mekId", "rosterHash", b"rosterHash"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - TITLE_FIELD_NUMBER: _builtins.int - PRODUCTS_FIELD_NUMBER: _builtins.int - title: _builtins.str - @_builtins.property - def products(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ListMessage.Product]: ... - def __init__( - self, - *, - title: _builtins.str | None = ..., - products: _abc.Iterable[Global___Message.ListMessage.Product] | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["title", b"title"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["products", b"products", "title", b"title"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___MekBundle: _TypeAlias = MekBundle # noqa: Y015 - @_typing.final - class Row(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +@_typing.final +class MemberLabel(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - TITLE_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - ROWID_FIELD_NUMBER: _builtins.int - title: _builtins.str - description: _builtins.str - rowId: _builtins.str - def __init__( - self, - *, - title: _builtins.str | None = ..., - description: _builtins.str | None = ..., - rowId: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "rowId", b"rowId", "title", b"title"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "rowId", b"rowId", "title", b"title"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + LABEL_FIELD_NUMBER: _builtins.int + LABELTIMESTAMP_FIELD_NUMBER: _builtins.int + label: _builtins.str + labelTimestamp: _builtins.int + def __init__( + self, + *, + label: _builtins.str | None = ..., + labelTimestamp: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["label", b"label", "labelTimestamp", b"labelTimestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["label", b"label", "labelTimestamp", b"labelTimestamp"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class Section(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +Global___MemberLabel: _TypeAlias = MemberLabel # noqa: Y015 - TITLE_FIELD_NUMBER: _builtins.int - ROWS_FIELD_NUMBER: _builtins.int - title: _builtins.str - @_builtins.property - def rows(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ListMessage.Row]: ... - def __init__( - self, - *, - title: _builtins.str | None = ..., - rows: _abc.Iterable[Global___Message.ListMessage.Row] | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["title", b"title"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["rows", b"rows", "title", b"title"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +@_typing.final +class Mention(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - TITLE_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - BUTTONTEXT_FIELD_NUMBER: _builtins.int - LISTTYPE_FIELD_NUMBER: _builtins.int - SECTIONS_FIELD_NUMBER: _builtins.int - PRODUCTLISTINFO_FIELD_NUMBER: _builtins.int - FOOTERTEXT_FIELD_NUMBER: _builtins.int + MENTIONTYPE_FIELD_NUMBER: _builtins.int + MENTIONEDJID_FIELD_NUMBER: _builtins.int + OFFSET_FIELD_NUMBER: _builtins.int + LENGTH_FIELD_NUMBER: _builtins.int + mentionType: Global___MENTION_MENTION_TYPE.ValueType + mentionedJid: _builtins.str + offset: _builtins.int + length: _builtins.int + def __init__( + self, + *, + mentionType: Global___MENTION_MENTION_TYPE.ValueType | None = ..., + mentionedJid: _builtins.str | None = ..., + offset: _builtins.int | None = ..., + length: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["length", b"length", "mentionType", b"mentionType", "mentionedJid", b"mentionedJid", "offset", b"offset"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["length", b"length", "mentionType", b"mentionType", "mentionedJid", b"mentionedJid", "offset", b"offset"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Mention: _TypeAlias = Mention # noqa: Y015 + +@_typing.final +class MerkleMembershipProof(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + PROOF_FIELD_NUMBER: _builtins.int + ROOT_FIELD_NUMBER: _builtins.int + LEAFINDEX_FIELD_NUMBER: _builtins.int + TOTALLEAVES_FIELD_NUMBER: _builtins.int + proof: _builtins.bytes + root: _builtins.bytes + leafIndex: _builtins.int + totalLeaves: _builtins.int + def __init__( + self, + *, + proof: _builtins.bytes | None = ..., + root: _builtins.bytes | None = ..., + leafIndex: _builtins.int | None = ..., + totalLeaves: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["leafIndex", b"leafIndex", "proof", b"proof", "root", b"root", "totalLeaves", b"totalLeaves"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["leafIndex", b"leafIndex", "proof", b"proof", "root", b"root", "totalLeaves", b"totalLeaves"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MerkleMembershipProof: _TypeAlias = MerkleMembershipProof # noqa: Y015 + +@_typing.final +class Message(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _HistorySyncType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _HistorySyncTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._HistorySyncType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + INITIAL_BOOTSTRAP: Message._HistorySyncType.ValueType # 0 + INITIAL_STATUS_V3: Message._HistorySyncType.ValueType # 1 + FULL: Message._HistorySyncType.ValueType # 2 + RECENT: Message._HistorySyncType.ValueType # 3 + PUSH_NAME: Message._HistorySyncType.ValueType # 4 + NON_BLOCKING_DATA: Message._HistorySyncType.ValueType # 5 + ON_DEMAND: Message._HistorySyncType.ValueType # 6 + NO_HISTORY: Message._HistorySyncType.ValueType # 7 + MESSAGE_ACCESS_STATUS: Message._HistorySyncType.ValueType # 8 + + class HistorySyncType(_HistorySyncType, metaclass=_HistorySyncTypeEnumTypeWrapper): ... + INITIAL_BOOTSTRAP: Message.HistorySyncType.ValueType # 0 + INITIAL_STATUS_V3: Message.HistorySyncType.ValueType # 1 + FULL: Message.HistorySyncType.ValueType # 2 + RECENT: Message.HistorySyncType.ValueType # 3 + PUSH_NAME: Message.HistorySyncType.ValueType # 4 + NON_BLOCKING_DATA: Message.HistorySyncType.ValueType # 5 + ON_DEMAND: Message.HistorySyncType.ValueType # 6 + NO_HISTORY: Message.HistorySyncType.ValueType # 7 + MESSAGE_ACCESS_STATUS: Message.HistorySyncType.ValueType # 8 + + class _InsightDeliveryState: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _InsightDeliveryStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._InsightDeliveryState.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + SENT: Message._InsightDeliveryState.ValueType # 0 + DELIVERED: Message._InsightDeliveryState.ValueType # 1 + READ: Message._InsightDeliveryState.ValueType # 2 + REPLIED: Message._InsightDeliveryState.ValueType # 3 + QUICK_REPLIED: Message._InsightDeliveryState.ValueType # 4 + + class InsightDeliveryState(_InsightDeliveryState, metaclass=_InsightDeliveryStateEnumTypeWrapper): ... + SENT: Message.InsightDeliveryState.ValueType # 0 + DELIVERED: Message.InsightDeliveryState.ValueType # 1 + READ: Message.InsightDeliveryState.ValueType # 2 + REPLIED: Message.InsightDeliveryState.ValueType # 3 + QUICK_REPLIED: Message.InsightDeliveryState.ValueType # 4 + + class _PeerDataOperationRequestType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _PeerDataOperationRequestTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._PeerDataOperationRequestType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UPLOAD_STICKER: Message._PeerDataOperationRequestType.ValueType # 0 + SEND_RECENT_STICKER_BOOTSTRAP: Message._PeerDataOperationRequestType.ValueType # 1 + GENERATE_LINK_PREVIEW: Message._PeerDataOperationRequestType.ValueType # 2 + HISTORY_SYNC_ON_DEMAND: Message._PeerDataOperationRequestType.ValueType # 3 + PLACEHOLDER_MESSAGE_RESEND: Message._PeerDataOperationRequestType.ValueType # 4 + WAFFLE_LINKING_NONCE_FETCH: Message._PeerDataOperationRequestType.ValueType # 5 + FULL_HISTORY_SYNC_ON_DEMAND: Message._PeerDataOperationRequestType.ValueType # 6 + COMPANION_META_NONCE_FETCH: Message._PeerDataOperationRequestType.ValueType # 7 + COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY: Message._PeerDataOperationRequestType.ValueType # 8 + COMPANION_CANONICAL_USER_NONCE_FETCH: Message._PeerDataOperationRequestType.ValueType # 9 + HISTORY_SYNC_CHUNK_RETRY: Message._PeerDataOperationRequestType.ValueType # 10 + GALAXY_FLOW_ACTION: Message._PeerDataOperationRequestType.ValueType # 11 + BUSINESS_BROADCAST_INSIGHTS_DELIVERED_TO: Message._PeerDataOperationRequestType.ValueType # 12 + BUSINESS_BROADCAST_INSIGHTS_REFRESH: Message._PeerDataOperationRequestType.ValueType # 13 + CONTACT_REFRESH_REQUEST: Message._PeerDataOperationRequestType.ValueType # 14 + + class PeerDataOperationRequestType(_PeerDataOperationRequestType, metaclass=_PeerDataOperationRequestTypeEnumTypeWrapper): ... + UPLOAD_STICKER: Message.PeerDataOperationRequestType.ValueType # 0 + SEND_RECENT_STICKER_BOOTSTRAP: Message.PeerDataOperationRequestType.ValueType # 1 + GENERATE_LINK_PREVIEW: Message.PeerDataOperationRequestType.ValueType # 2 + HISTORY_SYNC_ON_DEMAND: Message.PeerDataOperationRequestType.ValueType # 3 + PLACEHOLDER_MESSAGE_RESEND: Message.PeerDataOperationRequestType.ValueType # 4 + WAFFLE_LINKING_NONCE_FETCH: Message.PeerDataOperationRequestType.ValueType # 5 + FULL_HISTORY_SYNC_ON_DEMAND: Message.PeerDataOperationRequestType.ValueType # 6 + COMPANION_META_NONCE_FETCH: Message.PeerDataOperationRequestType.ValueType # 7 + COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY: Message.PeerDataOperationRequestType.ValueType # 8 + COMPANION_CANONICAL_USER_NONCE_FETCH: Message.PeerDataOperationRequestType.ValueType # 9 + HISTORY_SYNC_CHUNK_RETRY: Message.PeerDataOperationRequestType.ValueType # 10 + GALAXY_FLOW_ACTION: Message.PeerDataOperationRequestType.ValueType # 11 + BUSINESS_BROADCAST_INSIGHTS_DELIVERED_TO: Message.PeerDataOperationRequestType.ValueType # 12 + BUSINESS_BROADCAST_INSIGHTS_REFRESH: Message.PeerDataOperationRequestType.ValueType # 13 + CONTACT_REFRESH_REQUEST: Message.PeerDataOperationRequestType.ValueType # 14 + + class _PollContentType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _PollContentTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._PollContentType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: Message._PollContentType.ValueType # 0 + TEXT: Message._PollContentType.ValueType # 1 + IMAGE: Message._PollContentType.ValueType # 2 + + class PollContentType(_PollContentType, metaclass=_PollContentTypeEnumTypeWrapper): ... + UNKNOWN: Message.PollContentType.ValueType # 0 + TEXT: Message.PollContentType.ValueType # 1 + IMAGE: Message.PollContentType.ValueType # 2 + + class _PollType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _PollTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message._PollType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + POLL: Message._PollType.ValueType # 0 + QUIZ: Message._PollType.ValueType # 1 + + class PollType(_PollType, metaclass=_PollTypeEnumTypeWrapper): ... + POLL: Message.PollType.ValueType # 0 + QUIZ: Message.PollType.ValueType # 1 + + @_typing.final + class AlbumMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + EXPECTEDIMAGECOUNT_FIELD_NUMBER: _builtins.int + EXPECTEDVIDEOCOUNT_FIELD_NUMBER: _builtins.int CONTEXTINFO_FIELD_NUMBER: _builtins.int - title: _builtins.str - description: _builtins.str - buttonText: _builtins.str - listType: Global___Message.ListMessage.ListType.ValueType - footerText: _builtins.str - @_builtins.property - def sections(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ListMessage.Section]: ... - @_builtins.property - def productListInfo(self) -> Global___Message.ListMessage.ProductListInfo: ... + expectedImageCount: _builtins.int + expectedVideoCount: _builtins.int @_builtins.property def contextInfo(self) -> Global___ContextInfo: ... def __init__( self, *, - title: _builtins.str | None = ..., - description: _builtins.str | None = ..., - buttonText: _builtins.str | None = ..., - listType: Global___Message.ListMessage.ListType.ValueType | None = ..., - sections: _abc.Iterable[Global___Message.ListMessage.Section] | None = ..., - productListInfo: Global___Message.ListMessage.ProductListInfo | None = ..., - footerText: _builtins.str | None = ..., + expectedImageCount: _builtins.int | None = ..., + expectedVideoCount: _builtins.int | None = ..., contextInfo: Global___ContextInfo | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["buttonText", b"buttonText", "contextInfo", b"contextInfo", "description", b"description", "footerText", b"footerText", "listType", b"listType", "productListInfo", b"productListInfo", "title", b"title"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "expectedImageCount", b"expectedImageCount", "expectedVideoCount", b"expectedVideoCount"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["buttonText", b"buttonText", "contextInfo", b"contextInfo", "description", b"description", "footerText", b"footerText", "listType", b"listType", "productListInfo", b"productListInfo", "sections", b"sections", "title", b"title"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "expectedImageCount", b"expectedImageCount", "expectedVideoCount", b"expectedVideoCount"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class ListResponseMessage(_message.Message): + class AppStateFatalExceptionNotification(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _ListType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _ListTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ListResponseMessage._ListType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message.ListResponseMessage._ListType.ValueType # 0 - SINGLE_SELECT: Message.ListResponseMessage._ListType.ValueType # 1 - - class ListType(_ListType, metaclass=_ListTypeEnumTypeWrapper): ... - UNKNOWN: Message.ListResponseMessage.ListType.ValueType # 0 - SINGLE_SELECT: Message.ListResponseMessage.ListType.ValueType # 1 - - @_typing.final - class SingleSelectReply(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + COLLECTIONNAMES_FIELD_NUMBER: _builtins.int + TIMESTAMP_FIELD_NUMBER: _builtins.int + timestamp: _builtins.int + @_builtins.property + def collectionNames(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + def __init__( + self, + *, + collectionNames: _abc.Iterable[_builtins.str] | None = ..., + timestamp: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["timestamp", b"timestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["collectionNames", b"collectionNames", "timestamp", b"timestamp"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - SELECTEDROWID_FIELD_NUMBER: _builtins.int - selectedRowId: _builtins.str - def __init__( - self, - *, - selectedRowId: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["selectedRowId", b"selectedRowId"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["selectedRowId", b"selectedRowId"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class AppStateSyncKey(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - TITLE_FIELD_NUMBER: _builtins.int - LISTTYPE_FIELD_NUMBER: _builtins.int - SINGLESELECTREPLY_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - title: _builtins.str - listType: Global___Message.ListResponseMessage.ListType.ValueType - description: _builtins.str + KEYID_FIELD_NUMBER: _builtins.int + KEYDATA_FIELD_NUMBER: _builtins.int @_builtins.property - def singleSelectReply(self) -> Global___Message.ListResponseMessage.SingleSelectReply: ... + def keyId(self) -> Global___Message.AppStateSyncKeyId: ... @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... + def keyData(self) -> Global___Message.AppStateSyncKeyData: ... def __init__( self, *, - title: _builtins.str | None = ..., - listType: Global___Message.ListResponseMessage.ListType.ValueType | None = ..., - singleSelectReply: Global___Message.ListResponseMessage.SingleSelectReply | None = ..., - contextInfo: Global___ContextInfo | None = ..., - description: _builtins.str | None = ..., + keyId: Global___Message.AppStateSyncKeyId | None = ..., + keyData: Global___Message.AppStateSyncKeyData | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "description", b"description", "listType", b"listType", "singleSelectReply", b"singleSelectReply", "title", b"title"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["keyData", b"keyData", "keyId", b"keyId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "description", b"description", "listType", b"listType", "singleSelectReply", b"singleSelectReply", "title", b"title"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["keyData", b"keyData", "keyId", b"keyId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class LiveLocationMessage(_message.Message): + class AppStateSyncKeyData(_message.Message): DESCRIPTOR: _descriptor.Descriptor - DEGREESLATITUDE_FIELD_NUMBER: _builtins.int - DEGREESLONGITUDE_FIELD_NUMBER: _builtins.int - ACCURACYINMETERS_FIELD_NUMBER: _builtins.int - SPEEDINMPS_FIELD_NUMBER: _builtins.int - DEGREESCLOCKWISEFROMMAGNETICNORTH_FIELD_NUMBER: _builtins.int - CAPTION_FIELD_NUMBER: _builtins.int - SEQUENCENUMBER_FIELD_NUMBER: _builtins.int - TIMEOFFSET_FIELD_NUMBER: _builtins.int - JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - degreesLatitude: _builtins.float - degreesLongitude: _builtins.float - accuracyInMeters: _builtins.int - speedInMps: _builtins.float - degreesClockwiseFromMagneticNorth: _builtins.int - caption: _builtins.str - sequenceNumber: _builtins.int - timeOffset: _builtins.int - jpegThumbnail: _builtins.bytes + KEYDATA_FIELD_NUMBER: _builtins.int + FINGERPRINT_FIELD_NUMBER: _builtins.int + TIMESTAMP_FIELD_NUMBER: _builtins.int + keyData: _builtins.bytes + timestamp: _builtins.int @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... + def fingerprint(self) -> Global___Message.AppStateSyncKeyFingerprint: ... def __init__( self, *, - degreesLatitude: _builtins.float | None = ..., - degreesLongitude: _builtins.float | None = ..., - accuracyInMeters: _builtins.int | None = ..., - speedInMps: _builtins.float | None = ..., - degreesClockwiseFromMagneticNorth: _builtins.int | None = ..., - caption: _builtins.str | None = ..., - sequenceNumber: _builtins.int | None = ..., - timeOffset: _builtins.int | None = ..., - jpegThumbnail: _builtins.bytes | None = ..., - contextInfo: Global___ContextInfo | None = ..., + keyData: _builtins.bytes | None = ..., + fingerprint: Global___Message.AppStateSyncKeyFingerprint | None = ..., + timestamp: _builtins.int | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["accuracyInMeters", b"accuracyInMeters", "caption", b"caption", "contextInfo", b"contextInfo", "degreesClockwiseFromMagneticNorth", b"degreesClockwiseFromMagneticNorth", "degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "jpegThumbnail", b"jpegThumbnail", "sequenceNumber", b"sequenceNumber", "speedInMps", b"speedInMps", "timeOffset", b"timeOffset"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["fingerprint", b"fingerprint", "keyData", b"keyData", "timestamp", b"timestamp"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["accuracyInMeters", b"accuracyInMeters", "caption", b"caption", "contextInfo", b"contextInfo", "degreesClockwiseFromMagneticNorth", b"degreesClockwiseFromMagneticNorth", "degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "jpegThumbnail", b"jpegThumbnail", "sequenceNumber", b"sequenceNumber", "speedInMps", b"speedInMps", "timeOffset", b"timeOffset"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["fingerprint", b"fingerprint", "keyData", b"keyData", "timestamp", b"timestamp"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class LocationMessage(_message.Message): + class AppStateSyncKeyFingerprint(_message.Message): DESCRIPTOR: _descriptor.Descriptor - DEGREESLATITUDE_FIELD_NUMBER: _builtins.int - DEGREESLONGITUDE_FIELD_NUMBER: _builtins.int - NAME_FIELD_NUMBER: _builtins.int - ADDRESS_FIELD_NUMBER: _builtins.int - URL_FIELD_NUMBER: _builtins.int - ISLIVE_FIELD_NUMBER: _builtins.int - ACCURACYINMETERS_FIELD_NUMBER: _builtins.int - SPEEDINMPS_FIELD_NUMBER: _builtins.int - DEGREESCLOCKWISEFROMMAGNETICNORTH_FIELD_NUMBER: _builtins.int - COMMENT_FIELD_NUMBER: _builtins.int - JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - degreesLatitude: _builtins.float - degreesLongitude: _builtins.float - name: _builtins.str - address: _builtins.str - url: _builtins.str - isLive: _builtins.bool - accuracyInMeters: _builtins.int - speedInMps: _builtins.float - degreesClockwiseFromMagneticNorth: _builtins.int - comment: _builtins.str - jpegThumbnail: _builtins.bytes + RAWID_FIELD_NUMBER: _builtins.int + CURRENTINDEX_FIELD_NUMBER: _builtins.int + DEVICEINDEXES_FIELD_NUMBER: _builtins.int + rawId: _builtins.int + currentIndex: _builtins.int @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... + def deviceIndexes(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... def __init__( self, *, - degreesLatitude: _builtins.float | None = ..., - degreesLongitude: _builtins.float | None = ..., - name: _builtins.str | None = ..., - address: _builtins.str | None = ..., - url: _builtins.str | None = ..., - isLive: _builtins.bool | None = ..., - accuracyInMeters: _builtins.int | None = ..., - speedInMps: _builtins.float | None = ..., - degreesClockwiseFromMagneticNorth: _builtins.int | None = ..., - comment: _builtins.str | None = ..., - jpegThumbnail: _builtins.bytes | None = ..., - contextInfo: Global___ContextInfo | None = ..., + rawId: _builtins.int | None = ..., + currentIndex: _builtins.int | None = ..., + deviceIndexes: _abc.Iterable[_builtins.int] | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["accuracyInMeters", b"accuracyInMeters", "address", b"address", "comment", b"comment", "contextInfo", b"contextInfo", "degreesClockwiseFromMagneticNorth", b"degreesClockwiseFromMagneticNorth", "degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "isLive", b"isLive", "jpegThumbnail", b"jpegThumbnail", "name", b"name", "speedInMps", b"speedInMps", "url", b"url"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["currentIndex", b"currentIndex", "rawId", b"rawId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["accuracyInMeters", b"accuracyInMeters", "address", b"address", "comment", b"comment", "contextInfo", b"contextInfo", "degreesClockwiseFromMagneticNorth", b"degreesClockwiseFromMagneticNorth", "degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "isLive", b"isLive", "jpegThumbnail", b"jpegThumbnail", "name", b"name", "speedInMps", b"speedInMps", "url", b"url"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["currentIndex", b"currentIndex", "deviceIndexes", b"deviceIndexes", "rawId", b"rawId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class MMSThumbnailMetadata(_message.Message): + class AppStateSyncKeyId(_message.Message): DESCRIPTOR: _descriptor.Descriptor - THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int - THUMBNAILSHA256_FIELD_NUMBER: _builtins.int - THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int - MEDIAKEY_FIELD_NUMBER: _builtins.int - MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int - THUMBNAILHEIGHT_FIELD_NUMBER: _builtins.int - THUMBNAILWIDTH_FIELD_NUMBER: _builtins.int - thumbnailDirectPath: _builtins.str - thumbnailSha256: _builtins.bytes - thumbnailEncSha256: _builtins.bytes - mediaKey: _builtins.bytes - mediaKeyTimestamp: _builtins.int - thumbnailHeight: _builtins.int - thumbnailWidth: _builtins.int + KEYID_FIELD_NUMBER: _builtins.int + keyId: _builtins.bytes def __init__( self, *, - thumbnailDirectPath: _builtins.str | None = ..., - thumbnailSha256: _builtins.bytes | None = ..., - thumbnailEncSha256: _builtins.bytes | None = ..., - mediaKey: _builtins.bytes | None = ..., - mediaKeyTimestamp: _builtins.int | None = ..., - thumbnailHeight: _builtins.int | None = ..., - thumbnailWidth: _builtins.int | None = ..., + keyId: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["keyId", b"keyId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["keyId", b"keyId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class MessageHistoryBundle(_message.Message): + class AppStateSyncKeyRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + KEYIDS_FIELD_NUMBER: _builtins.int + @_builtins.property + def keyIds(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.AppStateSyncKeyId]: ... + def __init__( + self, + *, + keyIds: _abc.Iterable[Global___Message.AppStateSyncKeyId] | None = ..., + ) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["keyIds", b"keyIds"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class AppStateSyncKeyShare(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + KEYS_FIELD_NUMBER: _builtins.int + @_builtins.property + def keys(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.AppStateSyncKey]: ... + def __init__( + self, + *, + keys: _abc.Iterable[Global___Message.AppStateSyncKey] | None = ..., + ) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["keys", b"keys"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class AudioMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor + URL_FIELD_NUMBER: _builtins.int MIMETYPE_FIELD_NUMBER: _builtins.int FILESHA256_FIELD_NUMBER: _builtins.int + FILELENGTH_FIELD_NUMBER: _builtins.int + SECONDS_FIELD_NUMBER: _builtins.int + PTT_FIELD_NUMBER: _builtins.int MEDIAKEY_FIELD_NUMBER: _builtins.int FILEENCSHA256_FIELD_NUMBER: _builtins.int DIRECTPATH_FIELD_NUMBER: _builtins.int MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int CONTEXTINFO_FIELD_NUMBER: _builtins.int - MESSAGEHISTORYMETADATA_FIELD_NUMBER: _builtins.int + STREAMINGSIDECAR_FIELD_NUMBER: _builtins.int + WAVEFORM_FIELD_NUMBER: _builtins.int + BACKGROUNDARGB_FIELD_NUMBER: _builtins.int + VIEWONCE_FIELD_NUMBER: _builtins.int + ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int + url: _builtins.str mimetype: _builtins.str fileSha256: _builtins.bytes + fileLength: _builtins.int + seconds: _builtins.int + ptt: _builtins.bool mediaKey: _builtins.bytes fileEncSha256: _builtins.bytes directPath: _builtins.str mediaKeyTimestamp: _builtins.int + streamingSidecar: _builtins.bytes + waveform: _builtins.bytes + backgroundArgb: _builtins.int + viewOnce: _builtins.bool + accessibilityLabel: _builtins.str @_builtins.property def contextInfo(self) -> Global___ContextInfo: ... - @_builtins.property - def messageHistoryMetadata(self) -> Global___Message.MessageHistoryMetadata: ... def __init__( self, *, + url: _builtins.str | None = ..., mimetype: _builtins.str | None = ..., fileSha256: _builtins.bytes | None = ..., + fileLength: _builtins.int | None = ..., + seconds: _builtins.int | None = ..., + ptt: _builtins.bool | None = ..., mediaKey: _builtins.bytes | None = ..., fileEncSha256: _builtins.bytes | None = ..., directPath: _builtins.str | None = ..., mediaKeyTimestamp: _builtins.int | None = ..., contextInfo: Global___ContextInfo | None = ..., - messageHistoryMetadata: Global___Message.MessageHistoryMetadata | None = ..., + streamingSidecar: _builtins.bytes | None = ..., + waveform: _builtins.bytes | None = ..., + backgroundArgb: _builtins.int | None = ..., + viewOnce: _builtins.bool | None = ..., + accessibilityLabel: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "messageHistoryMetadata", b"messageHistoryMetadata", "mimetype", b"mimetype"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "backgroundArgb", b"backgroundArgb", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "ptt", b"ptt", "seconds", b"seconds", "streamingSidecar", b"streamingSidecar", "url", b"url", "viewOnce", b"viewOnce", "waveform", b"waveform"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "messageHistoryMetadata", b"messageHistoryMetadata", "mimetype", b"mimetype"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "backgroundArgb", b"backgroundArgb", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "ptt", b"ptt", "seconds", b"seconds", "streamingSidecar", b"streamingSidecar", "url", b"url", "viewOnce", b"viewOnce", "waveform", b"waveform"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class MessageHistoryMetadata(_message.Message): + class BCallMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - HISTORYRECEIVERS_FIELD_NUMBER: _builtins.int - OLDESTMESSAGETIMESTAMPINWINDOW_FIELD_NUMBER: _builtins.int - MESSAGECOUNT_FIELD_NUMBER: _builtins.int - NONHISTORYRECEIVERS_FIELD_NUMBER: _builtins.int - OLDESTMESSAGETIMESTAMPINBUNDLE_FIELD_NUMBER: _builtins.int - oldestMessageTimestampInWindow: _builtins.int - messageCount: _builtins.int - oldestMessageTimestampInBundle: _builtins.int - @_builtins.property - def historyReceivers(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @_builtins.property - def nonHistoryReceivers(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + class _MediaType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _MediaTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.BCallMessage._MediaType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: Message.BCallMessage._MediaType.ValueType # 0 + AUDIO: Message.BCallMessage._MediaType.ValueType # 1 + VIDEO: Message.BCallMessage._MediaType.ValueType # 2 + + class MediaType(_MediaType, metaclass=_MediaTypeEnumTypeWrapper): ... + UNKNOWN: Message.BCallMessage.MediaType.ValueType # 0 + AUDIO: Message.BCallMessage.MediaType.ValueType # 1 + VIDEO: Message.BCallMessage.MediaType.ValueType # 2 + + SESSIONID_FIELD_NUMBER: _builtins.int + MEDIATYPE_FIELD_NUMBER: _builtins.int + MASTERKEY_FIELD_NUMBER: _builtins.int + CAPTION_FIELD_NUMBER: _builtins.int + sessionId: _builtins.str + mediaType: Global___Message.BCallMessage.MediaType.ValueType + masterKey: _builtins.bytes + caption: _builtins.str def __init__( self, *, - historyReceivers: _abc.Iterable[_builtins.str] | None = ..., - oldestMessageTimestampInWindow: _builtins.int | None = ..., - messageCount: _builtins.int | None = ..., - nonHistoryReceivers: _abc.Iterable[_builtins.str] | None = ..., - oldestMessageTimestampInBundle: _builtins.int | None = ..., + sessionId: _builtins.str | None = ..., + mediaType: Global___Message.BCallMessage.MediaType.ValueType | None = ..., + masterKey: _builtins.bytes | None = ..., + caption: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["messageCount", b"messageCount", "oldestMessageTimestampInBundle", b"oldestMessageTimestampInBundle", "oldestMessageTimestampInWindow", b"oldestMessageTimestampInWindow"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "masterKey", b"masterKey", "mediaType", b"mediaType", "sessionId", b"sessionId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["historyReceivers", b"historyReceivers", "messageCount", b"messageCount", "nonHistoryReceivers", b"nonHistoryReceivers", "oldestMessageTimestampInBundle", b"oldestMessageTimestampInBundle", "oldestMessageTimestampInWindow", b"oldestMessageTimestampInWindow"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "masterKey", b"masterKey", "mediaType", b"mediaType", "sessionId", b"sessionId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class MessageHistoryNotice(_message.Message): + class BotHistoryShareSyncMetadata(_message.Message): DESCRIPTOR: _descriptor.Descriptor - CONTEXTINFO_FIELD_NUMBER: _builtins.int - MESSAGEHISTORYMETADATA_FIELD_NUMBER: _builtins.int + BOTJID_FIELD_NUMBER: _builtins.int + HISTORYSHARECUTOFFTIMESTAMP_FIELD_NUMBER: _builtins.int + HISTORYSHAREMESSAGES_FIELD_NUMBER: _builtins.int + botJid: _builtins.str + historyShareCutoffTimestamp: _builtins.int @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - @_builtins.property - def messageHistoryMetadata(self) -> Global___Message.MessageHistoryMetadata: ... + def historyShareMessages(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.HistoryShareMessageEntry]: ... def __init__( self, *, - contextInfo: Global___ContextInfo | None = ..., - messageHistoryMetadata: Global___Message.MessageHistoryMetadata | None = ..., + botJid: _builtins.str | None = ..., + historyShareCutoffTimestamp: _builtins.int | None = ..., + historyShareMessages: _abc.Iterable[Global___Message.HistoryShareMessageEntry] | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "messageHistoryMetadata", b"messageHistoryMetadata"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["botJid", b"botJid", "historyShareCutoffTimestamp", b"historyShareCutoffTimestamp"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "messageHistoryMetadata", b"messageHistoryMetadata"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["botJid", b"botJid", "historyShareCutoffTimestamp", b"historyShareCutoffTimestamp", "historyShareMessages", b"historyShareMessages"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class NewsletterAdminInviteMessage(_message.Message): + class ButtonsMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - NEWSLETTERJID_FIELD_NUMBER: _builtins.int - NEWSLETTERNAME_FIELD_NUMBER: _builtins.int - JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int - CAPTION_FIELD_NUMBER: _builtins.int - INVITEEXPIRATION_FIELD_NUMBER: _builtins.int + class _HeaderType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _HeaderTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ButtonsMessage._HeaderType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: Message.ButtonsMessage._HeaderType.ValueType # 0 + EMPTY: Message.ButtonsMessage._HeaderType.ValueType # 1 + TEXT: Message.ButtonsMessage._HeaderType.ValueType # 2 + DOCUMENT: Message.ButtonsMessage._HeaderType.ValueType # 3 + IMAGE: Message.ButtonsMessage._HeaderType.ValueType # 4 + VIDEO: Message.ButtonsMessage._HeaderType.ValueType # 5 + LOCATION: Message.ButtonsMessage._HeaderType.ValueType # 6 + + class HeaderType(_HeaderType, metaclass=_HeaderTypeEnumTypeWrapper): ... + UNKNOWN: Message.ButtonsMessage.HeaderType.ValueType # 0 + EMPTY: Message.ButtonsMessage.HeaderType.ValueType # 1 + TEXT: Message.ButtonsMessage.HeaderType.ValueType # 2 + DOCUMENT: Message.ButtonsMessage.HeaderType.ValueType # 3 + IMAGE: Message.ButtonsMessage.HeaderType.ValueType # 4 + VIDEO: Message.ButtonsMessage.HeaderType.ValueType # 5 + LOCATION: Message.ButtonsMessage.HeaderType.ValueType # 6 + + @_typing.final + class Button(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _Type: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ButtonsMessage.Button._Type.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: Message.ButtonsMessage.Button._Type.ValueType # 0 + RESPONSE: Message.ButtonsMessage.Button._Type.ValueType # 1 + NATIVE_FLOW: Message.ButtonsMessage.Button._Type.ValueType # 2 + + class Type(_Type, metaclass=_TypeEnumTypeWrapper): ... + UNKNOWN: Message.ButtonsMessage.Button.Type.ValueType # 0 + RESPONSE: Message.ButtonsMessage.Button.Type.ValueType # 1 + NATIVE_FLOW: Message.ButtonsMessage.Button.Type.ValueType # 2 + + @_typing.final + class ButtonText(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + DISPLAYTEXT_FIELD_NUMBER: _builtins.int + displayText: _builtins.str + def __init__( + self, + *, + displayText: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class NativeFlowInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + NAME_FIELD_NUMBER: _builtins.int + PARAMSJSON_FIELD_NUMBER: _builtins.int + name: _builtins.str + paramsJson: _builtins.str + def __init__( + self, + *, + name: _builtins.str | None = ..., + paramsJson: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "paramsJson", b"paramsJson"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "paramsJson", b"paramsJson"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + BUTTONID_FIELD_NUMBER: _builtins.int + BUTTONTEXT_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + NATIVEFLOWINFO_FIELD_NUMBER: _builtins.int + buttonId: _builtins.str + type: Global___Message.ButtonsMessage.Button.Type.ValueType + @_builtins.property + def buttonText(self) -> Global___Message.ButtonsMessage.Button.ButtonText: ... + @_builtins.property + def nativeFlowInfo(self) -> Global___Message.ButtonsMessage.Button.NativeFlowInfo: ... + def __init__( + self, + *, + buttonId: _builtins.str | None = ..., + buttonText: Global___Message.ButtonsMessage.Button.ButtonText | None = ..., + type: Global___Message.ButtonsMessage.Button.Type.ValueType | None = ..., + nativeFlowInfo: Global___Message.ButtonsMessage.Button.NativeFlowInfo | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["buttonId", b"buttonId", "buttonText", b"buttonText", "nativeFlowInfo", b"nativeFlowInfo", "type", b"type"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["buttonId", b"buttonId", "buttonText", b"buttonText", "nativeFlowInfo", b"nativeFlowInfo", "type", b"type"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + CONTENTTEXT_FIELD_NUMBER: _builtins.int + FOOTERTEXT_FIELD_NUMBER: _builtins.int CONTEXTINFO_FIELD_NUMBER: _builtins.int - newsletterJid: _builtins.str - newsletterName: _builtins.str - jpegThumbnail: _builtins.bytes - caption: _builtins.str - inviteExpiration: _builtins.int + BUTTONS_FIELD_NUMBER: _builtins.int + HEADERTYPE_FIELD_NUMBER: _builtins.int + TEXT_FIELD_NUMBER: _builtins.int + DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int + IMAGEMESSAGE_FIELD_NUMBER: _builtins.int + VIDEOMESSAGE_FIELD_NUMBER: _builtins.int + LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int + contentText: _builtins.str + footerText: _builtins.str + headerType: Global___Message.ButtonsMessage.HeaderType.ValueType + text: _builtins.str @_builtins.property def contextInfo(self) -> Global___ContextInfo: ... + @_builtins.property + def buttons(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ButtonsMessage.Button]: ... + @_builtins.property + def documentMessage(self) -> Global___Message.DocumentMessage: ... + @_builtins.property + def imageMessage(self) -> Global___Message.ImageMessage: ... + @_builtins.property + def videoMessage(self) -> Global___Message.VideoMessage: ... + @_builtins.property + def locationMessage(self) -> Global___Message.LocationMessage: ... def __init__( self, *, - newsletterJid: _builtins.str | None = ..., - newsletterName: _builtins.str | None = ..., - jpegThumbnail: _builtins.bytes | None = ..., - caption: _builtins.str | None = ..., - inviteExpiration: _builtins.int | None = ..., + contentText: _builtins.str | None = ..., + footerText: _builtins.str | None = ..., contextInfo: Global___ContextInfo | None = ..., + buttons: _abc.Iterable[Global___Message.ButtonsMessage.Button] | None = ..., + headerType: Global___Message.ButtonsMessage.HeaderType.ValueType | None = ..., + text: _builtins.str | None = ..., + documentMessage: Global___Message.DocumentMessage | None = ..., + imageMessage: Global___Message.ImageMessage | None = ..., + videoMessage: Global___Message.VideoMessage | None = ..., + locationMessage: Global___Message.LocationMessage | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "inviteExpiration", b"inviteExpiration", "jpegThumbnail", b"jpegThumbnail", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["contentText", b"contentText", "contextInfo", b"contextInfo", "documentMessage", b"documentMessage", "footerText", b"footerText", "header", b"header", "headerType", b"headerType", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "text", b"text", "videoMessage", b"videoMessage"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "inviteExpiration", b"inviteExpiration", "jpegThumbnail", b"jpegThumbnail", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["buttons", b"buttons", "contentText", b"contentText", "contextInfo", b"contextInfo", "documentMessage", b"documentMessage", "footerText", b"footerText", "header", b"header", "headerType", b"headerType", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "text", b"text", "videoMessage", b"videoMessage"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_header: _TypeAlias = _typing.Literal["text", "documentMessage", "imageMessage", "videoMessage", "locationMessage"] # noqa: Y015 + _WhichOneofArgType_header: _TypeAlias = _typing.Literal["header", b"header"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_header) -> _WhichOneofReturnType_header | None: ... @_typing.final - class NewsletterFollowerInviteMessage(_message.Message): + class ButtonsResponseMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - NEWSLETTERJID_FIELD_NUMBER: _builtins.int - NEWSLETTERNAME_FIELD_NUMBER: _builtins.int - JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int - CAPTION_FIELD_NUMBER: _builtins.int + class _Type: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ButtonsResponseMessage._Type.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: Message.ButtonsResponseMessage._Type.ValueType # 0 + DISPLAY_TEXT: Message.ButtonsResponseMessage._Type.ValueType # 1 + + class Type(_Type, metaclass=_TypeEnumTypeWrapper): ... + UNKNOWN: Message.ButtonsResponseMessage.Type.ValueType # 0 + DISPLAY_TEXT: Message.ButtonsResponseMessage.Type.ValueType # 1 + + SELECTEDBUTTONID_FIELD_NUMBER: _builtins.int CONTEXTINFO_FIELD_NUMBER: _builtins.int - newsletterJid: _builtins.str - newsletterName: _builtins.str - jpegThumbnail: _builtins.bytes - caption: _builtins.str + TYPE_FIELD_NUMBER: _builtins.int + SELECTEDDISPLAYTEXT_FIELD_NUMBER: _builtins.int + selectedButtonId: _builtins.str + type: Global___Message.ButtonsResponseMessage.Type.ValueType + selectedDisplayText: _builtins.str @_builtins.property def contextInfo(self) -> Global___ContextInfo: ... def __init__( self, *, - newsletterJid: _builtins.str | None = ..., - newsletterName: _builtins.str | None = ..., - jpegThumbnail: _builtins.bytes | None = ..., - caption: _builtins.str | None = ..., + selectedButtonId: _builtins.str | None = ..., contextInfo: Global___ContextInfo | None = ..., + type: Global___Message.ButtonsResponseMessage.Type.ValueType | None = ..., + selectedDisplayText: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "jpegThumbnail", b"jpegThumbnail", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "response", b"response", "selectedButtonId", b"selectedButtonId", "selectedDisplayText", b"selectedDisplayText", "type", b"type"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "jpegThumbnail", b"jpegThumbnail", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "response", b"response", "selectedButtonId", b"selectedButtonId", "selectedDisplayText", b"selectedDisplayText", "type", b"type"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_response: _TypeAlias = _typing.Literal["selectedDisplayText"] # noqa: Y015 + _WhichOneofArgType_response: _TypeAlias = _typing.Literal["response", b"response"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_response) -> _WhichOneofReturnType_response | None: ... @_typing.final - class OrderMessage(_message.Message): + class Call(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _OrderStatus: + CALLKEY_FIELD_NUMBER: _builtins.int + CONVERSIONSOURCE_FIELD_NUMBER: _builtins.int + CONVERSIONDATA_FIELD_NUMBER: _builtins.int + CONVERSIONDELAYSECONDS_FIELD_NUMBER: _builtins.int + CTWASIGNALS_FIELD_NUMBER: _builtins.int + CTWAPAYLOAD_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + NATIVEFLOWCALLBUTTONPAYLOAD_FIELD_NUMBER: _builtins.int + DEEPLINKPAYLOAD_FIELD_NUMBER: _builtins.int + MESSAGECONTEXTINFO_FIELD_NUMBER: _builtins.int + CALLENTRYPOINT_FIELD_NUMBER: _builtins.int + CALLREASON_FIELD_NUMBER: _builtins.int + callKey: _builtins.bytes + conversionSource: _builtins.str + conversionData: _builtins.bytes + conversionDelaySeconds: _builtins.int + ctwaSignals: _builtins.str + ctwaPayload: _builtins.bytes + nativeFlowCallButtonPayload: _builtins.str + deeplinkPayload: _builtins.str + callEntryPoint: _builtins.int + callReason: _builtins.str + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + @_builtins.property + def messageContextInfo(self) -> Global___MessageContextInfo: ... + def __init__( + self, + *, + callKey: _builtins.bytes | None = ..., + conversionSource: _builtins.str | None = ..., + conversionData: _builtins.bytes | None = ..., + conversionDelaySeconds: _builtins.int | None = ..., + ctwaSignals: _builtins.str | None = ..., + ctwaPayload: _builtins.bytes | None = ..., + contextInfo: Global___ContextInfo | None = ..., + nativeFlowCallButtonPayload: _builtins.str | None = ..., + deeplinkPayload: _builtins.str | None = ..., + messageContextInfo: Global___MessageContextInfo | None = ..., + callEntryPoint: _builtins.int | None = ..., + callReason: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["callEntryPoint", b"callEntryPoint", "callKey", b"callKey", "callReason", b"callReason", "contextInfo", b"contextInfo", "conversionData", b"conversionData", "conversionDelaySeconds", b"conversionDelaySeconds", "conversionSource", b"conversionSource", "ctwaPayload", b"ctwaPayload", "ctwaSignals", b"ctwaSignals", "deeplinkPayload", b"deeplinkPayload", "messageContextInfo", b"messageContextInfo", "nativeFlowCallButtonPayload", b"nativeFlowCallButtonPayload"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["callEntryPoint", b"callEntryPoint", "callKey", b"callKey", "callReason", b"callReason", "contextInfo", b"contextInfo", "conversionData", b"conversionData", "conversionDelaySeconds", b"conversionDelaySeconds", "conversionSource", b"conversionSource", "ctwaPayload", b"ctwaPayload", "ctwaSignals", b"ctwaSignals", "deeplinkPayload", b"deeplinkPayload", "messageContextInfo", b"messageContextInfo", "nativeFlowCallButtonPayload", b"nativeFlowCallButtonPayload"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class CallLogMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _CallOutcome: ValueType = _typing.NewType("ValueType", _builtins.int) V: _TypeAlias = ValueType # noqa: Y015 - class _OrderStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.OrderMessage._OrderStatus.ValueType], _builtins.type): + class _CallOutcomeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.CallLogMessage._CallOutcome.ValueType], _builtins.type): DESCRIPTOR: _descriptor.EnumDescriptor - INQUIRY: Message.OrderMessage._OrderStatus.ValueType # 1 - ACCEPTED: Message.OrderMessage._OrderStatus.ValueType # 2 - DECLINED: Message.OrderMessage._OrderStatus.ValueType # 3 + CONNECTED: Message.CallLogMessage._CallOutcome.ValueType # 0 + MISSED: Message.CallLogMessage._CallOutcome.ValueType # 1 + FAILED: Message.CallLogMessage._CallOutcome.ValueType # 2 + REJECTED: Message.CallLogMessage._CallOutcome.ValueType # 3 + ACCEPTED_ELSEWHERE: Message.CallLogMessage._CallOutcome.ValueType # 4 + ONGOING: Message.CallLogMessage._CallOutcome.ValueType # 5 + SILENCED_BY_DND: Message.CallLogMessage._CallOutcome.ValueType # 6 + SILENCED_UNKNOWN_CALLER: Message.CallLogMessage._CallOutcome.ValueType # 7 - class OrderStatus(_OrderStatus, metaclass=_OrderStatusEnumTypeWrapper): ... - INQUIRY: Message.OrderMessage.OrderStatus.ValueType # 1 - ACCEPTED: Message.OrderMessage.OrderStatus.ValueType # 2 - DECLINED: Message.OrderMessage.OrderStatus.ValueType # 3 + class CallOutcome(_CallOutcome, metaclass=_CallOutcomeEnumTypeWrapper): ... + CONNECTED: Message.CallLogMessage.CallOutcome.ValueType # 0 + MISSED: Message.CallLogMessage.CallOutcome.ValueType # 1 + FAILED: Message.CallLogMessage.CallOutcome.ValueType # 2 + REJECTED: Message.CallLogMessage.CallOutcome.ValueType # 3 + ACCEPTED_ELSEWHERE: Message.CallLogMessage.CallOutcome.ValueType # 4 + ONGOING: Message.CallLogMessage.CallOutcome.ValueType # 5 + SILENCED_BY_DND: Message.CallLogMessage.CallOutcome.ValueType # 6 + SILENCED_UNKNOWN_CALLER: Message.CallLogMessage.CallOutcome.ValueType # 7 - class _OrderSurface: + class _CallType: ValueType = _typing.NewType("ValueType", _builtins.int) V: _TypeAlias = ValueType # noqa: Y015 - class _OrderSurfaceEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.OrderMessage._OrderSurface.ValueType], _builtins.type): + class _CallTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.CallLogMessage._CallType.ValueType], _builtins.type): DESCRIPTOR: _descriptor.EnumDescriptor - CATALOG: Message.OrderMessage._OrderSurface.ValueType # 1 + REGULAR: Message.CallLogMessage._CallType.ValueType # 0 + SCHEDULED_CALL: Message.CallLogMessage._CallType.ValueType # 1 + VOICE_CHAT: Message.CallLogMessage._CallType.ValueType # 2 - class OrderSurface(_OrderSurface, metaclass=_OrderSurfaceEnumTypeWrapper): ... - CATALOG: Message.OrderMessage.OrderSurface.ValueType # 1 + class CallType(_CallType, metaclass=_CallTypeEnumTypeWrapper): ... + REGULAR: Message.CallLogMessage.CallType.ValueType # 0 + SCHEDULED_CALL: Message.CallLogMessage.CallType.ValueType # 1 + VOICE_CHAT: Message.CallLogMessage.CallType.ValueType # 2 - ORDERID_FIELD_NUMBER: _builtins.int - THUMBNAIL_FIELD_NUMBER: _builtins.int - ITEMCOUNT_FIELD_NUMBER: _builtins.int - STATUS_FIELD_NUMBER: _builtins.int - SURFACE_FIELD_NUMBER: _builtins.int - MESSAGE_FIELD_NUMBER: _builtins.int - ORDERTITLE_FIELD_NUMBER: _builtins.int - SELLERJID_FIELD_NUMBER: _builtins.int - TOKEN_FIELD_NUMBER: _builtins.int - TOTALAMOUNT1000_FIELD_NUMBER: _builtins.int - TOTALCURRENCYCODE_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - MESSAGEVERSION_FIELD_NUMBER: _builtins.int - ORDERREQUESTMESSAGEID_FIELD_NUMBER: _builtins.int - CATALOGTYPE_FIELD_NUMBER: _builtins.int - orderId: _builtins.str - thumbnail: _builtins.bytes - itemCount: _builtins.int - status: Global___Message.OrderMessage.OrderStatus.ValueType - surface: Global___Message.OrderMessage.OrderSurface.ValueType - message: _builtins.str - orderTitle: _builtins.str - sellerJid: _builtins.str - token: _builtins.str - totalAmount1000: _builtins.int - totalCurrencyCode: _builtins.str - messageVersion: _builtins.int - catalogType: _builtins.str - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... + @_typing.final + class CallParticipant(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + JID_FIELD_NUMBER: _builtins.int + CALLOUTCOME_FIELD_NUMBER: _builtins.int + jid: _builtins.str + callOutcome: Global___Message.CallLogMessage.CallOutcome.ValueType + def __init__( + self, + *, + jid: _builtins.str | None = ..., + callOutcome: Global___Message.CallLogMessage.CallOutcome.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["callOutcome", b"callOutcome", "jid", b"jid"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["callOutcome", b"callOutcome", "jid", b"jid"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + ISVIDEO_FIELD_NUMBER: _builtins.int + CALLOUTCOME_FIELD_NUMBER: _builtins.int + DURATIONSECS_FIELD_NUMBER: _builtins.int + CALLTYPE_FIELD_NUMBER: _builtins.int + PARTICIPANTS_FIELD_NUMBER: _builtins.int + isVideo: _builtins.bool + callOutcome: Global___Message.CallLogMessage.CallOutcome.ValueType + durationSecs: _builtins.int + callType: Global___Message.CallLogMessage.CallType.ValueType @_builtins.property - def orderRequestMessageId(self) -> Global___MessageKey: ... + def participants(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.CallLogMessage.CallParticipant]: ... def __init__( self, *, - orderId: _builtins.str | None = ..., - thumbnail: _builtins.bytes | None = ..., - itemCount: _builtins.int | None = ..., - status: Global___Message.OrderMessage.OrderStatus.ValueType | None = ..., - surface: Global___Message.OrderMessage.OrderSurface.ValueType | None = ..., - message: _builtins.str | None = ..., - orderTitle: _builtins.str | None = ..., - sellerJid: _builtins.str | None = ..., - token: _builtins.str | None = ..., - totalAmount1000: _builtins.int | None = ..., - totalCurrencyCode: _builtins.str | None = ..., - contextInfo: Global___ContextInfo | None = ..., - messageVersion: _builtins.int | None = ..., - orderRequestMessageId: Global___MessageKey | None = ..., - catalogType: _builtins.str | None = ..., + isVideo: _builtins.bool | None = ..., + callOutcome: Global___Message.CallLogMessage.CallOutcome.ValueType | None = ..., + durationSecs: _builtins.int | None = ..., + callType: Global___Message.CallLogMessage.CallType.ValueType | None = ..., + participants: _abc.Iterable[Global___Message.CallLogMessage.CallParticipant] | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["catalogType", b"catalogType", "contextInfo", b"contextInfo", "itemCount", b"itemCount", "message", b"message", "messageVersion", b"messageVersion", "orderId", b"orderId", "orderRequestMessageId", b"orderRequestMessageId", "orderTitle", b"orderTitle", "sellerJid", b"sellerJid", "status", b"status", "surface", b"surface", "thumbnail", b"thumbnail", "token", b"token", "totalAmount1000", b"totalAmount1000", "totalCurrencyCode", b"totalCurrencyCode"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["callOutcome", b"callOutcome", "callType", b"callType", "durationSecs", b"durationSecs", "isVideo", b"isVideo"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["catalogType", b"catalogType", "contextInfo", b"contextInfo", "itemCount", b"itemCount", "message", b"message", "messageVersion", b"messageVersion", "orderId", b"orderId", "orderRequestMessageId", b"orderRequestMessageId", "orderTitle", b"orderTitle", "sellerJid", b"sellerJid", "status", b"status", "surface", b"surface", "thumbnail", b"thumbnail", "token", b"token", "totalAmount1000", b"totalAmount1000", "totalCurrencyCode", b"totalCurrencyCode"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["callOutcome", b"callOutcome", "callType", b"callType", "durationSecs", b"durationSecs", "isVideo", b"isVideo", "participants", b"participants"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class PaymentExtendedMetadata(_message.Message): + class CancelPaymentRequestMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - TYPE_FIELD_NUMBER: _builtins.int - PLATFORM_FIELD_NUMBER: _builtins.int - type: _builtins.int - platform: _builtins.str + KEY_FIELD_NUMBER: _builtins.int + @_builtins.property + def key(self) -> Global___MessageKey: ... def __init__( self, *, - type: _builtins.int | None = ..., - platform: _builtins.str | None = ..., + key: Global___MessageKey | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["platform", b"platform", "type", b"type"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["platform", b"platform", "type", b"type"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class PaymentInviteMessage(_message.Message): + class Chat(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _InviteType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _InviteTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentInviteMessage._InviteType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - DEFAULT: Message.PaymentInviteMessage._InviteType.ValueType # 0 - MAPPER: Message.PaymentInviteMessage._InviteType.ValueType # 1 - - class InviteType(_InviteType, metaclass=_InviteTypeEnumTypeWrapper): ... - DEFAULT: Message.PaymentInviteMessage.InviteType.ValueType # 0 - MAPPER: Message.PaymentInviteMessage.InviteType.ValueType # 1 - - class _ServiceType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _ServiceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentInviteMessage._ServiceType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message.PaymentInviteMessage._ServiceType.ValueType # 0 - FBPAY: Message.PaymentInviteMessage._ServiceType.ValueType # 1 - NOVI: Message.PaymentInviteMessage._ServiceType.ValueType # 2 - UPI: Message.PaymentInviteMessage._ServiceType.ValueType # 3 - - class ServiceType(_ServiceType, metaclass=_ServiceTypeEnumTypeWrapper): ... - UNKNOWN: Message.PaymentInviteMessage.ServiceType.ValueType # 0 - FBPAY: Message.PaymentInviteMessage.ServiceType.ValueType # 1 - NOVI: Message.PaymentInviteMessage.ServiceType.ValueType # 2 - UPI: Message.PaymentInviteMessage.ServiceType.ValueType # 3 - - SERVICETYPE_FIELD_NUMBER: _builtins.int - EXPIRYTIMESTAMP_FIELD_NUMBER: _builtins.int - INCENTIVEELIGIBLE_FIELD_NUMBER: _builtins.int - REFERRALID_FIELD_NUMBER: _builtins.int - INVITETYPE_FIELD_NUMBER: _builtins.int - serviceType: Global___Message.PaymentInviteMessage.ServiceType.ValueType - expiryTimestamp: _builtins.int - incentiveEligible: _builtins.bool - referralId: _builtins.str - inviteType: Global___Message.PaymentInviteMessage.InviteType.ValueType + DISPLAYNAME_FIELD_NUMBER: _builtins.int + ID_FIELD_NUMBER: _builtins.int + displayName: _builtins.str + id: _builtins.str def __init__( self, *, - serviceType: Global___Message.PaymentInviteMessage.ServiceType.ValueType | None = ..., - expiryTimestamp: _builtins.int | None = ..., - incentiveEligible: _builtins.bool | None = ..., - referralId: _builtins.str | None = ..., - inviteType: Global___Message.PaymentInviteMessage.InviteType.ValueType | None = ..., + displayName: _builtins.str | None = ..., + id: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["expiryTimestamp", b"expiryTimestamp", "incentiveEligible", b"incentiveEligible", "inviteType", b"inviteType", "referralId", b"referralId", "serviceType", b"serviceType"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["displayName", b"displayName", "id", b"id"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["expiryTimestamp", b"expiryTimestamp", "incentiveEligible", b"incentiveEligible", "inviteType", b"inviteType", "referralId", b"referralId", "serviceType", b"serviceType"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["displayName", b"displayName", "id", b"id"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class PaymentLinkMetadata(_message.Message): + class ChatCustomImageWallpaper(_message.Message): DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class PaymentLinkButton(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - DISPLAYTEXT_FIELD_NUMBER: _builtins.int - displayText: _builtins.str - def __init__( - self, - *, - displayText: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + DIRECTPATH_FIELD_NUMBER: _builtins.int + MEDIAKEY_FIELD_NUMBER: _builtins.int + FILEENCSHA256_FIELD_NUMBER: _builtins.int + FILESHA256_FIELD_NUMBER: _builtins.int + DIMLEVEL_FIELD_NUMBER: _builtins.int + directPath: _builtins.str + mediaKey: _builtins.bytes + fileEncSha256: _builtins.bytes + fileSha256: _builtins.bytes + dimLevel: _builtins.float + def __init__( + self, + *, + directPath: _builtins.str | None = ..., + mediaKey: _builtins.bytes | None = ..., + fileEncSha256: _builtins.bytes | None = ..., + fileSha256: _builtins.bytes | None = ..., + dimLevel: _builtins.float | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["dimLevel", b"dimLevel", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["dimLevel", b"dimLevel", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class PaymentLinkHeader(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + @_typing.final + class ChatDefaultWallpaper(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _PaymentLinkHeaderType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + ISDOODLEENABLED_FIELD_NUMBER: _builtins.int + isDoodleEnabled: _builtins.bool + def __init__( + self, + *, + isDoodleEnabled: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["isDoodleEnabled", b"isDoodleEnabled"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["isDoodleEnabled", b"isDoodleEnabled"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _PaymentLinkHeaderTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentLinkMetadata.PaymentLinkHeader._PaymentLinkHeaderType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - LINK_PREVIEW: Message.PaymentLinkMetadata.PaymentLinkHeader._PaymentLinkHeaderType.ValueType # 0 - ORDER: Message.PaymentLinkMetadata.PaymentLinkHeader._PaymentLinkHeaderType.ValueType # 1 + @_typing.final + class ChatSolidColorWallpaper(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class PaymentLinkHeaderType(_PaymentLinkHeaderType, metaclass=_PaymentLinkHeaderTypeEnumTypeWrapper): ... - LINK_PREVIEW: Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType.ValueType # 0 - ORDER: Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType.ValueType # 1 + COLORLIGHT_FIELD_NUMBER: _builtins.int + COLORDARK_FIELD_NUMBER: _builtins.int + ISDOODLEENABLED_FIELD_NUMBER: _builtins.int + colorLight: _builtins.str + colorDark: _builtins.str + isDoodleEnabled: _builtins.bool + def __init__( + self, + *, + colorLight: _builtins.str | None = ..., + colorDark: _builtins.str | None = ..., + isDoodleEnabled: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["colorDark", b"colorDark", "colorLight", b"colorLight", "isDoodleEnabled", b"isDoodleEnabled"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["colorDark", b"colorDark", "colorLight", b"colorLight", "isDoodleEnabled", b"isDoodleEnabled"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - HEADERTYPE_FIELD_NUMBER: _builtins.int - headerType: Global___Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType.ValueType - def __init__( - self, - *, - headerType: Global___Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType.ValueType | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["headerType", b"headerType"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["headerType", b"headerType"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class ChatStockImageWallpaper(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class PaymentLinkProvider(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + STOCKIMAGEID_FIELD_NUMBER: _builtins.int + DIMLEVEL_FIELD_NUMBER: _builtins.int + stockImageId: _builtins.str + dimLevel: _builtins.float + def __init__( + self, + *, + stockImageId: _builtins.str | None = ..., + dimLevel: _builtins.float | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["dimLevel", b"dimLevel", "stockImageId", b"stockImageId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["dimLevel", b"dimLevel", "stockImageId", b"stockImageId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - PARAMSJSON_FIELD_NUMBER: _builtins.int - paramsJson: _builtins.str - def __init__( - self, - *, - paramsJson: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["paramsJson", b"paramsJson"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["paramsJson", b"paramsJson"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class ChatThemeSetting(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - BUTTON_FIELD_NUMBER: _builtins.int - HEADER_FIELD_NUMBER: _builtins.int - PROVIDER_FIELD_NUMBER: _builtins.int + SETTINGTIMESTAMPMS_FIELD_NUMBER: _builtins.int + CLEARTHEME_FIELD_NUMBER: _builtins.int + COLORSCHEMEID_FIELD_NUMBER: _builtins.int + DEFAULTWALLPAPER_FIELD_NUMBER: _builtins.int + SOLIDCOLOR_FIELD_NUMBER: _builtins.int + STOCKIMAGE_FIELD_NUMBER: _builtins.int + CUSTOMIMAGE_FIELD_NUMBER: _builtins.int + settingTimestampMs: _builtins.int + clearTheme: _builtins.bool + colorSchemeId: _builtins.str @_builtins.property - def button(self) -> Global___Message.PaymentLinkMetadata.PaymentLinkButton: ... + def defaultWallpaper(self) -> Global___Message.ChatDefaultWallpaper: ... @_builtins.property - def header(self) -> Global___Message.PaymentLinkMetadata.PaymentLinkHeader: ... + def solidColor(self) -> Global___Message.ChatSolidColorWallpaper: ... @_builtins.property - def provider(self) -> Global___Message.PaymentLinkMetadata.PaymentLinkProvider: ... + def stockImage(self) -> Global___Message.ChatStockImageWallpaper: ... + @_builtins.property + def customImage(self) -> Global___Message.ChatCustomImageWallpaper: ... def __init__( self, *, - button: Global___Message.PaymentLinkMetadata.PaymentLinkButton | None = ..., - header: Global___Message.PaymentLinkMetadata.PaymentLinkHeader | None = ..., - provider: Global___Message.PaymentLinkMetadata.PaymentLinkProvider | None = ..., + settingTimestampMs: _builtins.int | None = ..., + clearTheme: _builtins.bool | None = ..., + colorSchemeId: _builtins.str | None = ..., + defaultWallpaper: Global___Message.ChatDefaultWallpaper | None = ..., + solidColor: Global___Message.ChatSolidColorWallpaper | None = ..., + stockImage: Global___Message.ChatStockImageWallpaper | None = ..., + customImage: Global___Message.ChatCustomImageWallpaper | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["button", b"button", "header", b"header", "provider", b"provider"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["clearTheme", b"clearTheme", "colorSchemeId", b"colorSchemeId", "customImage", b"customImage", "defaultWallpaper", b"defaultWallpaper", "settingTimestampMs", b"settingTimestampMs", "solidColor", b"solidColor", "stockImage", b"stockImage", "wallpaper", b"wallpaper"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["button", b"button", "header", b"header", "provider", b"provider"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["clearTheme", b"clearTheme", "colorSchemeId", b"colorSchemeId", "customImage", b"customImage", "defaultWallpaper", b"defaultWallpaper", "settingTimestampMs", b"settingTimestampMs", "solidColor", b"solidColor", "stockImage", b"stockImage", "wallpaper", b"wallpaper"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_wallpaper: _TypeAlias = _typing.Literal["defaultWallpaper", "solidColor", "stockImage", "customImage"] # noqa: Y015 + _WhichOneofArgType_wallpaper: _TypeAlias = _typing.Literal["wallpaper", b"wallpaper"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_wallpaper) -> _WhichOneofReturnType_wallpaper | None: ... @_typing.final - class PaymentReminderMessage(_message.Message): + class CloudAPIThreadControlNotification(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _ReminderFrequency: + class _CloudAPIThreadControl: ValueType = _typing.NewType("ValueType", _builtins.int) V: _TypeAlias = ValueType # noqa: Y015 - class _ReminderFrequencyEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentReminderMessage._ReminderFrequency.ValueType], _builtins.type): + class _CloudAPIThreadControlEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType], _builtins.type): DESCRIPTOR: _descriptor.EnumDescriptor - REMINDER_FREQUENCY_UNKNOWN: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 0 - WEEKLY: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 1 - BI_WEEKLY: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 2 - MONTHLY: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 3 - QUARTERLY: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 4 - - class ReminderFrequency(_ReminderFrequency, metaclass=_ReminderFrequencyEnumTypeWrapper): ... - REMINDER_FREQUENCY_UNKNOWN: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 0 - WEEKLY: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 1 - BI_WEEKLY: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 2 - MONTHLY: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 3 - QUARTERLY: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 4 + UNKNOWN: Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType # 0 + CONTROL_PASSED: Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType # 1 + CONTROL_TAKEN: Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType # 2 + INFO: Message.CloudAPIThreadControlNotification._CloudAPIThreadControl.ValueType # 3 - class _ReminderStatus: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + class CloudAPIThreadControl(_CloudAPIThreadControl, metaclass=_CloudAPIThreadControlEnumTypeWrapper): ... + UNKNOWN: Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType # 0 + CONTROL_PASSED: Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType # 1 + CONTROL_TAKEN: Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType # 2 + INFO: Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType # 3 - class _ReminderStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentReminderMessage._ReminderStatus.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - REMINDER_STATUS_UNKNOWN: Message.PaymentReminderMessage._ReminderStatus.ValueType # 0 - ACTIVE: Message.PaymentReminderMessage._ReminderStatus.ValueType # 1 - CANCELLED_BY_CREATOR: Message.PaymentReminderMessage._ReminderStatus.ValueType # 2 - STOPPED_BY_RECEIVER: Message.PaymentReminderMessage._ReminderStatus.ValueType # 3 - EXPIRED: Message.PaymentReminderMessage._ReminderStatus.ValueType # 4 - PAID: Message.PaymentReminderMessage._ReminderStatus.ValueType # 5 + @_typing.final + class CloudAPIThreadControlNotificationContent(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class ReminderStatus(_ReminderStatus, metaclass=_ReminderStatusEnumTypeWrapper): ... - REMINDER_STATUS_UNKNOWN: Message.PaymentReminderMessage.ReminderStatus.ValueType # 0 - ACTIVE: Message.PaymentReminderMessage.ReminderStatus.ValueType # 1 - CANCELLED_BY_CREATOR: Message.PaymentReminderMessage.ReminderStatus.ValueType # 2 - STOPPED_BY_RECEIVER: Message.PaymentReminderMessage.ReminderStatus.ValueType # 3 - EXPIRED: Message.PaymentReminderMessage.ReminderStatus.ValueType # 4 - PAID: Message.PaymentReminderMessage.ReminderStatus.ValueType # 5 + HANDOFFNOTIFICATIONTEXT_FIELD_NUMBER: _builtins.int + EXTRAJSON_FIELD_NUMBER: _builtins.int + handoffNotificationText: _builtins.str + extraJson: _builtins.str + def __init__( + self, + *, + handoffNotificationText: _builtins.str | None = ..., + extraJson: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["extraJson", b"extraJson", "handoffNotificationText", b"handoffNotificationText"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["extraJson", b"extraJson", "handoffNotificationText", b"handoffNotificationText"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - REMINDERID_FIELD_NUMBER: _builtins.int - INSTANCEID_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - FREQUENCY_FIELD_NUMBER: _builtins.int STATUS_FIELD_NUMBER: _builtins.int - PAYEEVPA_FIELD_NUMBER: _builtins.int - PAYEEJID_FIELD_NUMBER: _builtins.int - PAYERJID_FIELD_NUMBER: _builtins.int - AMOUNT_FIELD_NUMBER: _builtins.int - reminderId: _builtins.str - instanceId: _builtins.str - description: _builtins.str - frequency: Global___Message.PaymentReminderMessage.ReminderFrequency.ValueType - status: Global___Message.PaymentReminderMessage.ReminderStatus.ValueType - payeeVpa: _builtins.str - payeeJid: _builtins.str - payerJid: _builtins.str + SENDERNOTIFICATIONTIMESTAMPMS_FIELD_NUMBER: _builtins.int + CONSUMERLID_FIELD_NUMBER: _builtins.int + CONSUMERPHONENUMBER_FIELD_NUMBER: _builtins.int + NOTIFICATIONCONTENT_FIELD_NUMBER: _builtins.int + SHOULDSUPPRESSNOTIFICATION_FIELD_NUMBER: _builtins.int + status: Global___Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType + senderNotificationTimestampMs: _builtins.int + consumerLid: _builtins.str + consumerPhoneNumber: _builtins.str + shouldSuppressNotification: _builtins.bool @_builtins.property - def amount(self) -> Global___Money: ... + def notificationContent(self) -> Global___Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent: ... def __init__( self, *, - reminderId: _builtins.str | None = ..., - instanceId: _builtins.str | None = ..., - description: _builtins.str | None = ..., - frequency: Global___Message.PaymentReminderMessage.ReminderFrequency.ValueType | None = ..., - status: Global___Message.PaymentReminderMessage.ReminderStatus.ValueType | None = ..., - payeeVpa: _builtins.str | None = ..., - payeeJid: _builtins.str | None = ..., - payerJid: _builtins.str | None = ..., - amount: Global___Money | None = ..., + status: Global___Message.CloudAPIThreadControlNotification.CloudAPIThreadControl.ValueType | None = ..., + senderNotificationTimestampMs: _builtins.int | None = ..., + consumerLid: _builtins.str | None = ..., + consumerPhoneNumber: _builtins.str | None = ..., + notificationContent: Global___Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent | None = ..., + shouldSuppressNotification: _builtins.bool | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "description", b"description", "frequency", b"frequency", "instanceId", b"instanceId", "payeeJid", b"payeeJid", "payeeVpa", b"payeeVpa", "payerJid", b"payerJid", "reminderId", b"reminderId", "status", b"status"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["consumerLid", b"consumerLid", "consumerPhoneNumber", b"consumerPhoneNumber", "notificationContent", b"notificationContent", "senderNotificationTimestampMs", b"senderNotificationTimestampMs", "shouldSuppressNotification", b"shouldSuppressNotification", "status", b"status"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "description", b"description", "frequency", b"frequency", "instanceId", b"instanceId", "payeeJid", b"payeeJid", "payeeVpa", b"payeeVpa", "payerJid", b"payerJid", "reminderId", b"reminderId", "status", b"status"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["consumerLid", b"consumerLid", "consumerPhoneNumber", b"consumerPhoneNumber", "notificationContent", b"notificationContent", "senderNotificationTimestampMs", b"senderNotificationTimestampMs", "shouldSuppressNotification", b"shouldSuppressNotification", "status", b"status"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class PeerDataOperationRequestMessage(_message.Message): + class CommentMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class BizBroadcastInsightsContactListRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + MESSAGE_FIELD_NUMBER: _builtins.int + TARGETMESSAGEKEY_FIELD_NUMBER: _builtins.int + @_builtins.property + def message(self) -> Global___Message: ... + @_builtins.property + def targetMessageKey(self) -> Global___MessageKey: ... + def __init__( + self, + *, + message: Global___Message | None = ..., + targetMessageKey: Global___MessageKey | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "targetMessageKey", b"targetMessageKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "targetMessageKey", b"targetMessageKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - CAMPAIGNID_FIELD_NUMBER: _builtins.int - campaignId: _builtins.str - def __init__( - self, - *, - campaignId: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class ConditionalRevealMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class BizBroadcastInsightsRefreshRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class _ConditionalRevealMessageType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - CAMPAIGNID_FIELD_NUMBER: _builtins.int - campaignId: _builtins.str - def __init__( - self, - *, - campaignId: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class _ConditionalRevealMessageTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ConditionalRevealMessage._ConditionalRevealMessageType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: Message.ConditionalRevealMessage._ConditionalRevealMessageType.ValueType # 0 + SCHEDULED_MESSAGE: Message.ConditionalRevealMessage._ConditionalRevealMessageType.ValueType # 1 - @_typing.final - class CompanionCanonicalUserNonceFetchRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class ConditionalRevealMessageType(_ConditionalRevealMessageType, metaclass=_ConditionalRevealMessageTypeEnumTypeWrapper): ... + UNKNOWN: Message.ConditionalRevealMessage.ConditionalRevealMessageType.ValueType # 0 + SCHEDULED_MESSAGE: Message.ConditionalRevealMessage.ConditionalRevealMessageType.ValueType # 1 - REGISTRATIONTRACEID_FIELD_NUMBER: _builtins.int - registrationTraceId: _builtins.str - def __init__( - self, - *, - registrationTraceId: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["registrationTraceId", b"registrationTraceId"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["registrationTraceId", b"registrationTraceId"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + ENCPAYLOAD_FIELD_NUMBER: _builtins.int + ENCIV_FIELD_NUMBER: _builtins.int + CONDITIONALREVEALMESSAGETYPE_FIELD_NUMBER: _builtins.int + REVEALKEYID_FIELD_NUMBER: _builtins.int + encPayload: _builtins.bytes + encIv: _builtins.bytes + conditionalRevealMessageType: Global___Message.ConditionalRevealMessage.ConditionalRevealMessageType.ValueType + revealKeyId: _builtins.str + def __init__( + self, + *, + encPayload: _builtins.bytes | None = ..., + encIv: _builtins.bytes | None = ..., + conditionalRevealMessageType: Global___Message.ConditionalRevealMessage.ConditionalRevealMessageType.ValueType | None = ..., + revealKeyId: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["conditionalRevealMessageType", b"conditionalRevealMessageType", "encIv", b"encIv", "encPayload", b"encPayload", "revealKeyId", b"revealKeyId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["conditionalRevealMessageType", b"conditionalRevealMessageType", "encIv", b"encIv", "encPayload", b"encPayload", "revealKeyId", b"revealKeyId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class FullHistorySyncOnDemandRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + @_typing.final + class ContactMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - REQUESTMETADATA_FIELD_NUMBER: _builtins.int - HISTORYSYNCCONFIG_FIELD_NUMBER: _builtins.int - FULLHISTORYSYNCONDEMANDCONFIG_FIELD_NUMBER: _builtins.int - @_builtins.property - def requestMetadata(self) -> Global___Message.FullHistorySyncOnDemandRequestMetadata: ... - @_builtins.property - def historySyncConfig(self) -> Global___DeviceProps.HistorySyncConfig: ... - @_builtins.property - def fullHistorySyncOnDemandConfig(self) -> Global___Message.FullHistorySyncOnDemandConfig: ... - def __init__( - self, - *, - requestMetadata: Global___Message.FullHistorySyncOnDemandRequestMetadata | None = ..., - historySyncConfig: Global___DeviceProps.HistorySyncConfig | None = ..., - fullHistorySyncOnDemandConfig: Global___Message.FullHistorySyncOnDemandConfig | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["fullHistorySyncOnDemandConfig", b"fullHistorySyncOnDemandConfig", "historySyncConfig", b"historySyncConfig", "requestMetadata", b"requestMetadata"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["fullHistorySyncOnDemandConfig", b"fullHistorySyncOnDemandConfig", "historySyncConfig", b"historySyncConfig", "requestMetadata", b"requestMetadata"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + DISPLAYNAME_FIELD_NUMBER: _builtins.int + VCARD_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + ISSELFCONTACT_FIELD_NUMBER: _builtins.int + displayName: _builtins.str + vcard: _builtins.str + isSelfContact: _builtins.bool + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + def __init__( + self, + *, + displayName: _builtins.str | None = ..., + vcard: _builtins.str | None = ..., + contextInfo: Global___ContextInfo | None = ..., + isSelfContact: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "displayName", b"displayName", "isSelfContact", b"isSelfContact", "vcard", b"vcard"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "displayName", b"displayName", "isSelfContact", b"isSelfContact", "vcard", b"vcard"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class GalaxyFlowAction(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + @_typing.final + class ContactsArrayMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _GalaxyFlowActionType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + DISPLAYNAME_FIELD_NUMBER: _builtins.int + CONTACTS_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + displayName: _builtins.str + @_builtins.property + def contacts(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ContactMessage]: ... + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + def __init__( + self, + *, + displayName: _builtins.str | None = ..., + contacts: _abc.Iterable[Global___Message.ContactMessage] | None = ..., + contextInfo: Global___ContextInfo | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "displayName", b"displayName"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["contacts", b"contacts", "contextInfo", b"contextInfo", "displayName", b"displayName"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _GalaxyFlowActionTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PeerDataOperationRequestMessage.GalaxyFlowAction._GalaxyFlowActionType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - NOTIFY_LAUNCH: Message.PeerDataOperationRequestMessage.GalaxyFlowAction._GalaxyFlowActionType.ValueType # 1 - DOWNLOAD_RESPONSES: Message.PeerDataOperationRequestMessage.GalaxyFlowAction._GalaxyFlowActionType.ValueType # 2 + @_typing.final + class DeclinePaymentRequestMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class GalaxyFlowActionType(_GalaxyFlowActionType, metaclass=_GalaxyFlowActionTypeEnumTypeWrapper): ... - NOTIFY_LAUNCH: Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType.ValueType # 1 - DOWNLOAD_RESPONSES: Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType.ValueType # 2 + KEY_FIELD_NUMBER: _builtins.int + @_builtins.property + def key(self) -> Global___MessageKey: ... + def __init__( + self, + *, + key: Global___MessageKey | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - TYPE_FIELD_NUMBER: _builtins.int - FLOWID_FIELD_NUMBER: _builtins.int - STANZAID_FIELD_NUMBER: _builtins.int - GALAXYFLOWDOWNLOADREQUESTID_FIELD_NUMBER: _builtins.int - AGMID_FIELD_NUMBER: _builtins.int - type: Global___Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType.ValueType - flowId: _builtins.str - stanzaId: _builtins.str - galaxyFlowDownloadRequestId: _builtins.str - agmId: _builtins.str - def __init__( - self, - *, - type: Global___Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType.ValueType | None = ..., - flowId: _builtins.str | None = ..., - stanzaId: _builtins.str | None = ..., - galaxyFlowDownloadRequestId: _builtins.str | None = ..., - agmId: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["agmId", b"agmId", "flowId", b"flowId", "galaxyFlowDownloadRequestId", b"galaxyFlowDownloadRequestId", "stanzaId", b"stanzaId", "type", b"type"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["agmId", b"agmId", "flowId", b"flowId", "galaxyFlowDownloadRequestId", b"galaxyFlowDownloadRequestId", "stanzaId", b"stanzaId", "type", b"type"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class DeviceSentMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class HistorySyncChunkRetryRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + DESTINATIONJID_FIELD_NUMBER: _builtins.int + MESSAGE_FIELD_NUMBER: _builtins.int + PHASH_FIELD_NUMBER: _builtins.int + destinationJid: _builtins.str + phash: _builtins.str + @_builtins.property + def message(self) -> Global___Message: ... + def __init__( + self, + *, + destinationJid: _builtins.str | None = ..., + message: Global___Message | None = ..., + phash: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["destinationJid", b"destinationJid", "message", b"message", "phash", b"phash"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["destinationJid", b"destinationJid", "message", b"message", "phash", b"phash"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - SYNCTYPE_FIELD_NUMBER: _builtins.int - CHUNKORDER_FIELD_NUMBER: _builtins.int - CHUNKNOTIFICATIONID_FIELD_NUMBER: _builtins.int - REGENERATECHUNK_FIELD_NUMBER: _builtins.int - syncType: Global___Message.HistorySyncType.ValueType - chunkOrder: _builtins.int - chunkNotificationId: _builtins.str - regenerateChunk: _builtins.bool - def __init__( - self, - *, - syncType: Global___Message.HistorySyncType.ValueType | None = ..., - chunkOrder: _builtins.int | None = ..., - chunkNotificationId: _builtins.str | None = ..., - regenerateChunk: _builtins.bool | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["chunkNotificationId", b"chunkNotificationId", "chunkOrder", b"chunkOrder", "regenerateChunk", b"regenerateChunk", "syncType", b"syncType"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["chunkNotificationId", b"chunkNotificationId", "chunkOrder", b"chunkOrder", "regenerateChunk", b"regenerateChunk", "syncType", b"syncType"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class HistorySyncOnDemandRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - CHATJID_FIELD_NUMBER: _builtins.int - OLDESTMSGID_FIELD_NUMBER: _builtins.int - OLDESTMSGFROMME_FIELD_NUMBER: _builtins.int - ONDEMANDMSGCOUNT_FIELD_NUMBER: _builtins.int - OLDESTMSGTIMESTAMPMS_FIELD_NUMBER: _builtins.int - ACCOUNTLID_FIELD_NUMBER: _builtins.int - SUPPORTINLINERESPONSE_FIELD_NUMBER: _builtins.int - chatJid: _builtins.str - oldestMsgId: _builtins.str - oldestMsgFromMe: _builtins.bool - onDemandMsgCount: _builtins.int - oldestMsgTimestampMs: _builtins.int - accountLid: _builtins.str - supportInlineResponse: _builtins.bool - def __init__( - self, - *, - chatJid: _builtins.str | None = ..., - oldestMsgId: _builtins.str | None = ..., - oldestMsgFromMe: _builtins.bool | None = ..., - onDemandMsgCount: _builtins.int | None = ..., - oldestMsgTimestampMs: _builtins.int | None = ..., - accountLid: _builtins.str | None = ..., - supportInlineResponse: _builtins.bool | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["accountLid", b"accountLid", "chatJid", b"chatJid", "oldestMsgFromMe", b"oldestMsgFromMe", "oldestMsgId", b"oldestMsgId", "oldestMsgTimestampMs", b"oldestMsgTimestampMs", "onDemandMsgCount", b"onDemandMsgCount", "supportInlineResponse", b"supportInlineResponse"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["accountLid", b"accountLid", "chatJid", b"chatJid", "oldestMsgFromMe", b"oldestMsgFromMe", "oldestMsgId", b"oldestMsgId", "oldestMsgTimestampMs", b"oldestMsgTimestampMs", "onDemandMsgCount", b"onDemandMsgCount", "supportInlineResponse", b"supportInlineResponse"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class PlaceholderMessageResendRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - MESSAGEKEY_FIELD_NUMBER: _builtins.int - @_builtins.property - def messageKey(self) -> Global___MessageKey: ... - def __init__( - self, - *, - messageKey: Global___MessageKey | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["messageKey", b"messageKey"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["messageKey", b"messageKey"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class RequestStickerReupload(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - FILESHA256_FIELD_NUMBER: _builtins.int - fileSha256: _builtins.str - def __init__( - self, - *, - fileSha256: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["fileSha256", b"fileSha256"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["fileSha256", b"fileSha256"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class RequestUrlPreview(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - URL_FIELD_NUMBER: _builtins.int - INCLUDEHQTHUMBNAIL_FIELD_NUMBER: _builtins.int - url: _builtins.str - includeHqThumbnail: _builtins.bool - def __init__( - self, - *, - url: _builtins.str | None = ..., - includeHqThumbnail: _builtins.bool | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["includeHqThumbnail", b"includeHqThumbnail", "url", b"url"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["includeHqThumbnail", b"includeHqThumbnail", "url", b"url"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class SyncDCollectionFatalRecoveryRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - COLLECTIONNAME_FIELD_NUMBER: _builtins.int - TIMESTAMP_FIELD_NUMBER: _builtins.int - collectionName: _builtins.str - timestamp: _builtins.int - def __init__( - self, - *, - collectionName: _builtins.str | None = ..., - timestamp: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["collectionName", b"collectionName", "timestamp", b"timestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["collectionName", b"collectionName", "timestamp", b"timestamp"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class DocumentMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - PEERDATAOPERATIONREQUESTTYPE_FIELD_NUMBER: _builtins.int - REQUESTSTICKERREUPLOAD_FIELD_NUMBER: _builtins.int - REQUESTURLPREVIEW_FIELD_NUMBER: _builtins.int - HISTORYSYNCONDEMANDREQUEST_FIELD_NUMBER: _builtins.int - PLACEHOLDERMESSAGERESENDREQUEST_FIELD_NUMBER: _builtins.int - FULLHISTORYSYNCONDEMANDREQUEST_FIELD_NUMBER: _builtins.int - SYNCDCOLLECTIONFATALRECOVERYREQUEST_FIELD_NUMBER: _builtins.int - HISTORYSYNCCHUNKRETRYREQUEST_FIELD_NUMBER: _builtins.int - GALAXYFLOWACTION_FIELD_NUMBER: _builtins.int - COMPANIONCANONICALUSERNONCEFETCHREQUEST_FIELD_NUMBER: _builtins.int - BIZBROADCASTINSIGHTSCONTACTLISTREQUEST_FIELD_NUMBER: _builtins.int - BIZBROADCASTINSIGHTSREFRESHREQUEST_FIELD_NUMBER: _builtins.int - peerDataOperationRequestType: Global___Message.PeerDataOperationRequestType.ValueType - @_builtins.property - def requestStickerReupload(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestMessage.RequestStickerReupload]: ... - @_builtins.property - def requestUrlPreview(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestMessage.RequestUrlPreview]: ... - @_builtins.property - def historySyncOnDemandRequest(self) -> Global___Message.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest: ... - @_builtins.property - def placeholderMessageResendRequest(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest]: ... - @_builtins.property - def fullHistorySyncOnDemandRequest(self) -> Global___Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest: ... - @_builtins.property - def syncdCollectionFatalRecoveryRequest(self) -> Global___Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest: ... - @_builtins.property - def historySyncChunkRetryRequest(self) -> Global___Message.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest: ... - @_builtins.property - def galaxyFlowAction(self) -> Global___Message.PeerDataOperationRequestMessage.GalaxyFlowAction: ... - @_builtins.property - def companionCanonicalUserNonceFetchRequest(self) -> Global___Message.PeerDataOperationRequestMessage.CompanionCanonicalUserNonceFetchRequest: ... - @_builtins.property - def bizBroadcastInsightsContactListRequest(self) -> Global___Message.PeerDataOperationRequestMessage.BizBroadcastInsightsContactListRequest: ... + URL_FIELD_NUMBER: _builtins.int + MIMETYPE_FIELD_NUMBER: _builtins.int + TITLE_FIELD_NUMBER: _builtins.int + FILESHA256_FIELD_NUMBER: _builtins.int + FILELENGTH_FIELD_NUMBER: _builtins.int + PAGECOUNT_FIELD_NUMBER: _builtins.int + MEDIAKEY_FIELD_NUMBER: _builtins.int + FILENAME_FIELD_NUMBER: _builtins.int + FILEENCSHA256_FIELD_NUMBER: _builtins.int + DIRECTPATH_FIELD_NUMBER: _builtins.int + MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int + CONTACTVCARD_FIELD_NUMBER: _builtins.int + THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int + THUMBNAILSHA256_FIELD_NUMBER: _builtins.int + THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int + JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + THUMBNAILHEIGHT_FIELD_NUMBER: _builtins.int + THUMBNAILWIDTH_FIELD_NUMBER: _builtins.int + CAPTION_FIELD_NUMBER: _builtins.int + ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int + url: _builtins.str + mimetype: _builtins.str + title: _builtins.str + fileSha256: _builtins.bytes + fileLength: _builtins.int + pageCount: _builtins.int + mediaKey: _builtins.bytes + fileName: _builtins.str + fileEncSha256: _builtins.bytes + directPath: _builtins.str + mediaKeyTimestamp: _builtins.int + contactVcard: _builtins.bool + thumbnailDirectPath: _builtins.str + thumbnailSha256: _builtins.bytes + thumbnailEncSha256: _builtins.bytes + jpegThumbnail: _builtins.bytes + thumbnailHeight: _builtins.int + thumbnailWidth: _builtins.int + caption: _builtins.str + accessibilityLabel: _builtins.str @_builtins.property - def bizBroadcastInsightsRefreshRequest(self) -> Global___Message.PeerDataOperationRequestMessage.BizBroadcastInsightsRefreshRequest: ... + def contextInfo(self) -> Global___ContextInfo: ... def __init__( self, *, - peerDataOperationRequestType: Global___Message.PeerDataOperationRequestType.ValueType | None = ..., - requestStickerReupload: _abc.Iterable[Global___Message.PeerDataOperationRequestMessage.RequestStickerReupload] | None = ..., - requestUrlPreview: _abc.Iterable[Global___Message.PeerDataOperationRequestMessage.RequestUrlPreview] | None = ..., - historySyncOnDemandRequest: Global___Message.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest | None = ..., - placeholderMessageResendRequest: _abc.Iterable[Global___Message.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest] | None = ..., - fullHistorySyncOnDemandRequest: Global___Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest | None = ..., - syncdCollectionFatalRecoveryRequest: Global___Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest | None = ..., - historySyncChunkRetryRequest: Global___Message.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest | None = ..., - galaxyFlowAction: Global___Message.PeerDataOperationRequestMessage.GalaxyFlowAction | None = ..., - companionCanonicalUserNonceFetchRequest: Global___Message.PeerDataOperationRequestMessage.CompanionCanonicalUserNonceFetchRequest | None = ..., - bizBroadcastInsightsContactListRequest: Global___Message.PeerDataOperationRequestMessage.BizBroadcastInsightsContactListRequest | None = ..., - bizBroadcastInsightsRefreshRequest: Global___Message.PeerDataOperationRequestMessage.BizBroadcastInsightsRefreshRequest | None = ..., + url: _builtins.str | None = ..., + mimetype: _builtins.str | None = ..., + title: _builtins.str | None = ..., + fileSha256: _builtins.bytes | None = ..., + fileLength: _builtins.int | None = ..., + pageCount: _builtins.int | None = ..., + mediaKey: _builtins.bytes | None = ..., + fileName: _builtins.str | None = ..., + fileEncSha256: _builtins.bytes | None = ..., + directPath: _builtins.str | None = ..., + mediaKeyTimestamp: _builtins.int | None = ..., + contactVcard: _builtins.bool | None = ..., + thumbnailDirectPath: _builtins.str | None = ..., + thumbnailSha256: _builtins.bytes | None = ..., + thumbnailEncSha256: _builtins.bytes | None = ..., + jpegThumbnail: _builtins.bytes | None = ..., + contextInfo: Global___ContextInfo | None = ..., + thumbnailHeight: _builtins.int | None = ..., + thumbnailWidth: _builtins.int | None = ..., + caption: _builtins.str | None = ..., + accessibilityLabel: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["bizBroadcastInsightsContactListRequest", b"bizBroadcastInsightsContactListRequest", "bizBroadcastInsightsRefreshRequest", b"bizBroadcastInsightsRefreshRequest", "companionCanonicalUserNonceFetchRequest", b"companionCanonicalUserNonceFetchRequest", "fullHistorySyncOnDemandRequest", b"fullHistorySyncOnDemandRequest", "galaxyFlowAction", b"galaxyFlowAction", "historySyncChunkRetryRequest", b"historySyncChunkRetryRequest", "historySyncOnDemandRequest", b"historySyncOnDemandRequest", "peerDataOperationRequestType", b"peerDataOperationRequestType", "syncdCollectionFatalRecoveryRequest", b"syncdCollectionFatalRecoveryRequest"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "caption", b"caption", "contactVcard", b"contactVcard", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileName", b"fileName", "fileSha256", b"fileSha256", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "pageCount", b"pageCount", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "title", b"title", "url", b"url"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["bizBroadcastInsightsContactListRequest", b"bizBroadcastInsightsContactListRequest", "bizBroadcastInsightsRefreshRequest", b"bizBroadcastInsightsRefreshRequest", "companionCanonicalUserNonceFetchRequest", b"companionCanonicalUserNonceFetchRequest", "fullHistorySyncOnDemandRequest", b"fullHistorySyncOnDemandRequest", "galaxyFlowAction", b"galaxyFlowAction", "historySyncChunkRetryRequest", b"historySyncChunkRetryRequest", "historySyncOnDemandRequest", b"historySyncOnDemandRequest", "peerDataOperationRequestType", b"peerDataOperationRequestType", "placeholderMessageResendRequest", b"placeholderMessageResendRequest", "requestStickerReupload", b"requestStickerReupload", "requestUrlPreview", b"requestUrlPreview", "syncdCollectionFatalRecoveryRequest", b"syncdCollectionFatalRecoveryRequest"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "caption", b"caption", "contactVcard", b"contactVcard", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileName", b"fileName", "fileSha256", b"fileSha256", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "pageCount", b"pageCount", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "title", b"title", "url", b"url"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class PeerDataOperationRequestResponseMessage(_message.Message): + class EncCommentMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class PeerDataOperationResult(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - class _FullHistorySyncOnDemandResponseCode: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _FullHistorySyncOnDemandResponseCodeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - REQUEST_SUCCESS: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 0 - REQUEST_TIME_EXPIRED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 1 - DECLINED_SHARING_HISTORY: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 2 - GENERIC_ERROR: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 3 - ERROR_REQUEST_ON_NON_SMB_PRIMARY: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 4 - ERROR_HOSTED_DEVICE_NOT_CONNECTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 5 - ERROR_HOSTED_DEVICE_LOGIN_TIME_NOT_SET: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 6 - ERROR_MULTI_PROVIDER_NOT_CONFIGURED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 7 + TARGETMESSAGEKEY_FIELD_NUMBER: _builtins.int + ENCPAYLOAD_FIELD_NUMBER: _builtins.int + ENCIV_FIELD_NUMBER: _builtins.int + encPayload: _builtins.bytes + encIv: _builtins.bytes + @_builtins.property + def targetMessageKey(self) -> Global___MessageKey: ... + def __init__( + self, + *, + targetMessageKey: Global___MessageKey | None = ..., + encPayload: _builtins.bytes | None = ..., + encIv: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "targetMessageKey", b"targetMessageKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "targetMessageKey", b"targetMessageKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class FullHistorySyncOnDemandResponseCode(_FullHistorySyncOnDemandResponseCode, metaclass=_FullHistorySyncOnDemandResponseCodeEnumTypeWrapper): ... - REQUEST_SUCCESS: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 0 - REQUEST_TIME_EXPIRED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 1 - DECLINED_SHARING_HISTORY: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 2 - GENERIC_ERROR: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 3 - ERROR_REQUEST_ON_NON_SMB_PRIMARY: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 4 - ERROR_HOSTED_DEVICE_NOT_CONNECTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 5 - ERROR_HOSTED_DEVICE_LOGIN_TIME_NOT_SET: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 6 - ERROR_MULTI_PROVIDER_NOT_CONFIGURED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 7 + @_typing.final + class EncEventResponseMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _HistorySyncChunkRetryResponseCode: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + EVENTCREATIONMESSAGEKEY_FIELD_NUMBER: _builtins.int + ENCPAYLOAD_FIELD_NUMBER: _builtins.int + ENCIV_FIELD_NUMBER: _builtins.int + encPayload: _builtins.bytes + encIv: _builtins.bytes + @_builtins.property + def eventCreationMessageKey(self) -> Global___MessageKey: ... + def __init__( + self, + *, + eventCreationMessageKey: Global___MessageKey | None = ..., + encPayload: _builtins.bytes | None = ..., + encIv: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "eventCreationMessageKey", b"eventCreationMessageKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "eventCreationMessageKey", b"eventCreationMessageKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _HistorySyncChunkRetryResponseCodeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - GENERATION_ERROR: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 1 - CHUNK_CONSUMED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 2 - TIMEOUT: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 3 - SESSION_EXHAUSTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 4 - CHUNK_EXHAUSTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 5 - DUPLICATED_REQUEST: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 6 + @_typing.final + class EncReactionMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class HistorySyncChunkRetryResponseCode(_HistorySyncChunkRetryResponseCode, metaclass=_HistorySyncChunkRetryResponseCodeEnumTypeWrapper): ... - GENERATION_ERROR: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 1 - CHUNK_CONSUMED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 2 - TIMEOUT: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 3 - SESSION_EXHAUSTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 4 - CHUNK_EXHAUSTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 5 - DUPLICATED_REQUEST: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 6 + TARGETMESSAGEKEY_FIELD_NUMBER: _builtins.int + ENCPAYLOAD_FIELD_NUMBER: _builtins.int + ENCIV_FIELD_NUMBER: _builtins.int + encPayload: _builtins.bytes + encIv: _builtins.bytes + @_builtins.property + def targetMessageKey(self) -> Global___MessageKey: ... + def __init__( + self, + *, + targetMessageKey: Global___MessageKey | None = ..., + encPayload: _builtins.bytes | None = ..., + encIv: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "targetMessageKey", b"targetMessageKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "targetMessageKey", b"targetMessageKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class BizBroadcastInsightsContactListResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + @_typing.final + class EventInviteMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - CAMPAIGNID_FIELD_NUMBER: _builtins.int - TIMESTAMPMS_FIELD_NUMBER: _builtins.int - CONTACTS_FIELD_NUMBER: _builtins.int - campaignId: _builtins.str - timestampMs: _builtins.int - @_builtins.property - def contacts(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactState]: ... - def __init__( - self, - *, - campaignId: _builtins.str | None = ..., - timestampMs: _builtins.int | None = ..., - contacts: _abc.Iterable[Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactState] | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId", "timestampMs", b"timestampMs"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId", "contacts", b"contacts", "timestampMs", b"timestampMs"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + CONTEXTINFO_FIELD_NUMBER: _builtins.int + EVENTID_FIELD_NUMBER: _builtins.int + EVENTTITLE_FIELD_NUMBER: _builtins.int + JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int + STARTTIME_FIELD_NUMBER: _builtins.int + CAPTION_FIELD_NUMBER: _builtins.int + ISCANCELED_FIELD_NUMBER: _builtins.int + ENDTIME_FIELD_NUMBER: _builtins.int + CALLLINK_FIELD_NUMBER: _builtins.int + eventId: _builtins.str + eventTitle: _builtins.str + jpegThumbnail: _builtins.bytes + startTime: _builtins.int + caption: _builtins.str + isCanceled: _builtins.bool + endTime: _builtins.int + callLink: _builtins.str + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + def __init__( + self, + *, + contextInfo: Global___ContextInfo | None = ..., + eventId: _builtins.str | None = ..., + eventTitle: _builtins.str | None = ..., + jpegThumbnail: _builtins.bytes | None = ..., + startTime: _builtins.int | None = ..., + caption: _builtins.str | None = ..., + isCanceled: _builtins.bool | None = ..., + endTime: _builtins.int | None = ..., + callLink: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["callLink", b"callLink", "caption", b"caption", "contextInfo", b"contextInfo", "endTime", b"endTime", "eventId", b"eventId", "eventTitle", b"eventTitle", "isCanceled", b"isCanceled", "jpegThumbnail", b"jpegThumbnail", "startTime", b"startTime"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["callLink", b"callLink", "caption", b"caption", "contextInfo", b"contextInfo", "endTime", b"endTime", "eventId", b"eventId", "eventTitle", b"eventTitle", "isCanceled", b"isCanceled", "jpegThumbnail", b"jpegThumbnail", "startTime", b"startTime"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class BizBroadcastInsightsContactState(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + @_typing.final + class EventMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - CONTACTJID_FIELD_NUMBER: _builtins.int - STATE_FIELD_NUMBER: _builtins.int - contactJid: _builtins.str - state: Global___Message.InsightDeliveryState.ValueType - def __init__( - self, - *, - contactJid: _builtins.str | None = ..., - state: Global___Message.InsightDeliveryState.ValueType | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["contactJid", b"contactJid", "state", b"state"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["contactJid", b"contactJid", "state", b"state"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + CONTEXTINFO_FIELD_NUMBER: _builtins.int + ISCANCELED_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + LOCATION_FIELD_NUMBER: _builtins.int + JOINLINK_FIELD_NUMBER: _builtins.int + STARTTIME_FIELD_NUMBER: _builtins.int + ENDTIME_FIELD_NUMBER: _builtins.int + EXTRAGUESTSALLOWED_FIELD_NUMBER: _builtins.int + ISSCHEDULECALL_FIELD_NUMBER: _builtins.int + HASREMINDER_FIELD_NUMBER: _builtins.int + REMINDEROFFSETSEC_FIELD_NUMBER: _builtins.int + isCanceled: _builtins.bool + name: _builtins.str + description: _builtins.str + joinLink: _builtins.str + startTime: _builtins.int + endTime: _builtins.int + extraGuestsAllowed: _builtins.bool + isScheduleCall: _builtins.bool + hasReminder: _builtins.bool + reminderOffsetSec: _builtins.int + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + @_builtins.property + def location(self) -> Global___Message.LocationMessage: ... + def __init__( + self, + *, + contextInfo: Global___ContextInfo | None = ..., + isCanceled: _builtins.bool | None = ..., + name: _builtins.str | None = ..., + description: _builtins.str | None = ..., + location: Global___Message.LocationMessage | None = ..., + joinLink: _builtins.str | None = ..., + startTime: _builtins.int | None = ..., + endTime: _builtins.int | None = ..., + extraGuestsAllowed: _builtins.bool | None = ..., + isScheduleCall: _builtins.bool | None = ..., + hasReminder: _builtins.bool | None = ..., + reminderOffsetSec: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "description", b"description", "endTime", b"endTime", "extraGuestsAllowed", b"extraGuestsAllowed", "hasReminder", b"hasReminder", "isCanceled", b"isCanceled", "isScheduleCall", b"isScheduleCall", "joinLink", b"joinLink", "location", b"location", "name", b"name", "reminderOffsetSec", b"reminderOffsetSec", "startTime", b"startTime"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "description", b"description", "endTime", b"endTime", "extraGuestsAllowed", b"extraGuestsAllowed", "hasReminder", b"hasReminder", "isCanceled", b"isCanceled", "isScheduleCall", b"isScheduleCall", "joinLink", b"joinLink", "location", b"location", "name", b"name", "reminderOffsetSec", b"reminderOffsetSec", "startTime", b"startTime"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class CompanionCanonicalUserNonceFetchResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + @_typing.final + class EventResponseMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NONCE_FIELD_NUMBER: _builtins.int - WAFBID_FIELD_NUMBER: _builtins.int - FORCEREFRESH_FIELD_NUMBER: _builtins.int - nonce: _builtins.str - waFbid: _builtins.str - forceRefresh: _builtins.bool - def __init__( - self, - *, - nonce: _builtins.str | None = ..., - waFbid: _builtins.str | None = ..., - forceRefresh: _builtins.bool | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["forceRefresh", b"forceRefresh", "nonce", b"nonce", "waFbid", b"waFbid"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["forceRefresh", b"forceRefresh", "nonce", b"nonce", "waFbid", b"waFbid"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class _EventResponseType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - @_typing.final - class CompanionMetaNonceFetchResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class _EventResponseTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.EventResponseMessage._EventResponseType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: Message.EventResponseMessage._EventResponseType.ValueType # 0 + GOING: Message.EventResponseMessage._EventResponseType.ValueType # 1 + NOT_GOING: Message.EventResponseMessage._EventResponseType.ValueType # 2 + MAYBE: Message.EventResponseMessage._EventResponseType.ValueType # 3 - NONCE_FIELD_NUMBER: _builtins.int - nonce: _builtins.str - def __init__( - self, - *, - nonce: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["nonce", b"nonce"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["nonce", b"nonce"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class EventResponseType(_EventResponseType, metaclass=_EventResponseTypeEnumTypeWrapper): ... + UNKNOWN: Message.EventResponseMessage.EventResponseType.ValueType # 0 + GOING: Message.EventResponseMessage.EventResponseType.ValueType # 1 + NOT_GOING: Message.EventResponseMessage.EventResponseType.ValueType # 2 + MAYBE: Message.EventResponseMessage.EventResponseType.ValueType # 3 - @_typing.final - class FlowResponsesCsvBundle(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + RESPONSE_FIELD_NUMBER: _builtins.int + TIMESTAMPMS_FIELD_NUMBER: _builtins.int + EXTRAGUESTCOUNT_FIELD_NUMBER: _builtins.int + response: Global___Message.EventResponseMessage.EventResponseType.ValueType + timestampMs: _builtins.int + extraGuestCount: _builtins.int + def __init__( + self, + *, + response: Global___Message.EventResponseMessage.EventResponseType.ValueType | None = ..., + timestampMs: _builtins.int | None = ..., + extraGuestCount: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["extraGuestCount", b"extraGuestCount", "response", b"response", "timestampMs", b"timestampMs"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["extraGuestCount", b"extraGuestCount", "response", b"response", "timestampMs", b"timestampMs"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - FLOWID_FIELD_NUMBER: _builtins.int - GALAXYFLOWDOWNLOADREQUESTID_FIELD_NUMBER: _builtins.int - FILENAME_FIELD_NUMBER: _builtins.int - MIMETYPE_FIELD_NUMBER: _builtins.int - FILESHA256_FIELD_NUMBER: _builtins.int - MEDIAKEY_FIELD_NUMBER: _builtins.int - FILEENCSHA256_FIELD_NUMBER: _builtins.int - DIRECTPATH_FIELD_NUMBER: _builtins.int - MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int - FILELENGTH_FIELD_NUMBER: _builtins.int - flowId: _builtins.str - galaxyFlowDownloadRequestId: _builtins.str - fileName: _builtins.str - mimetype: _builtins.str - fileSha256: _builtins.bytes - mediaKey: _builtins.bytes - fileEncSha256: _builtins.bytes - directPath: _builtins.str - mediaKeyTimestamp: _builtins.int - fileLength: _builtins.int - def __init__( - self, - *, - flowId: _builtins.str | None = ..., - galaxyFlowDownloadRequestId: _builtins.str | None = ..., - fileName: _builtins.str | None = ..., - mimetype: _builtins.str | None = ..., - fileSha256: _builtins.bytes | None = ..., - mediaKey: _builtins.bytes | None = ..., - fileEncSha256: _builtins.bytes | None = ..., - directPath: _builtins.str | None = ..., - mediaKeyTimestamp: _builtins.int | None = ..., - fileLength: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileName", b"fileName", "fileSha256", b"fileSha256", "flowId", b"flowId", "galaxyFlowDownloadRequestId", b"galaxyFlowDownloadRequestId", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileName", b"fileName", "fileSha256", b"fileSha256", "flowId", b"flowId", "galaxyFlowDownloadRequestId", b"galaxyFlowDownloadRequestId", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class ExtendedTextMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class FullHistorySyncOnDemandRequestResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class _FontType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - REQUESTMETADATA_FIELD_NUMBER: _builtins.int - RESPONSECODE_FIELD_NUMBER: _builtins.int - responseCode: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType - @_builtins.property - def requestMetadata(self) -> Global___Message.FullHistorySyncOnDemandRequestMetadata: ... - def __init__( - self, - *, - requestMetadata: Global___Message.FullHistorySyncOnDemandRequestMetadata | None = ..., - responseCode: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["requestMetadata", b"requestMetadata", "responseCode", b"responseCode"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["requestMetadata", b"requestMetadata", "responseCode", b"responseCode"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class _FontTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ExtendedTextMessage._FontType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + SYSTEM: Message.ExtendedTextMessage._FontType.ValueType # 0 + SYSTEM_TEXT: Message.ExtendedTextMessage._FontType.ValueType # 1 + FB_SCRIPT: Message.ExtendedTextMessage._FontType.ValueType # 2 + SYSTEM_BOLD: Message.ExtendedTextMessage._FontType.ValueType # 6 + MORNINGBREEZE_REGULAR: Message.ExtendedTextMessage._FontType.ValueType # 7 + CALISTOGA_REGULAR: Message.ExtendedTextMessage._FontType.ValueType # 8 + EXO2_EXTRABOLD: Message.ExtendedTextMessage._FontType.ValueType # 9 + COURIERPRIME_BOLD: Message.ExtendedTextMessage._FontType.ValueType # 10 - @_typing.final - class HistorySyncChunkRetryResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class FontType(_FontType, metaclass=_FontTypeEnumTypeWrapper): ... + SYSTEM: Message.ExtendedTextMessage.FontType.ValueType # 0 + SYSTEM_TEXT: Message.ExtendedTextMessage.FontType.ValueType # 1 + FB_SCRIPT: Message.ExtendedTextMessage.FontType.ValueType # 2 + SYSTEM_BOLD: Message.ExtendedTextMessage.FontType.ValueType # 6 + MORNINGBREEZE_REGULAR: Message.ExtendedTextMessage.FontType.ValueType # 7 + CALISTOGA_REGULAR: Message.ExtendedTextMessage.FontType.ValueType # 8 + EXO2_EXTRABOLD: Message.ExtendedTextMessage.FontType.ValueType # 9 + COURIERPRIME_BOLD: Message.ExtendedTextMessage.FontType.ValueType # 10 - SYNCTYPE_FIELD_NUMBER: _builtins.int - CHUNKORDER_FIELD_NUMBER: _builtins.int - REQUESTID_FIELD_NUMBER: _builtins.int - RESPONSECODE_FIELD_NUMBER: _builtins.int - CANRECOVER_FIELD_NUMBER: _builtins.int - syncType: Global___Message.HistorySyncType.ValueType - chunkOrder: _builtins.int - requestId: _builtins.str - responseCode: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType - canRecover: _builtins.bool - def __init__( - self, - *, - syncType: Global___Message.HistorySyncType.ValueType | None = ..., - chunkOrder: _builtins.int | None = ..., - requestId: _builtins.str | None = ..., - responseCode: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType | None = ..., - canRecover: _builtins.bool | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["canRecover", b"canRecover", "chunkOrder", b"chunkOrder", "requestId", b"requestId", "responseCode", b"responseCode", "syncType", b"syncType"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["canRecover", b"canRecover", "chunkOrder", b"chunkOrder", "requestId", b"requestId", "responseCode", b"responseCode", "syncType", b"syncType"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class _InviteLinkGroupType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - @_typing.final - class LinkPreviewResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class _InviteLinkGroupTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ExtendedTextMessage._InviteLinkGroupType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + DEFAULT: Message.ExtendedTextMessage._InviteLinkGroupType.ValueType # 0 + PARENT: Message.ExtendedTextMessage._InviteLinkGroupType.ValueType # 1 + SUB: Message.ExtendedTextMessage._InviteLinkGroupType.ValueType # 2 + DEFAULT_SUB: Message.ExtendedTextMessage._InviteLinkGroupType.ValueType # 3 - @_typing.final - class LinkPreviewHighQualityThumbnail(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class InviteLinkGroupType(_InviteLinkGroupType, metaclass=_InviteLinkGroupTypeEnumTypeWrapper): ... + DEFAULT: Message.ExtendedTextMessage.InviteLinkGroupType.ValueType # 0 + PARENT: Message.ExtendedTextMessage.InviteLinkGroupType.ValueType # 1 + SUB: Message.ExtendedTextMessage.InviteLinkGroupType.ValueType # 2 + DEFAULT_SUB: Message.ExtendedTextMessage.InviteLinkGroupType.ValueType # 3 - DIRECTPATH_FIELD_NUMBER: _builtins.int - THUMBHASH_FIELD_NUMBER: _builtins.int - ENCTHUMBHASH_FIELD_NUMBER: _builtins.int - MEDIAKEY_FIELD_NUMBER: _builtins.int - MEDIAKEYTIMESTAMPMS_FIELD_NUMBER: _builtins.int - THUMBWIDTH_FIELD_NUMBER: _builtins.int - THUMBHEIGHT_FIELD_NUMBER: _builtins.int - directPath: _builtins.str - thumbHash: _builtins.str - encThumbHash: _builtins.str - mediaKey: _builtins.bytes - mediaKeyTimestampMs: _builtins.int - thumbWidth: _builtins.int - thumbHeight: _builtins.int - def __init__( - self, - *, - directPath: _builtins.str | None = ..., - thumbHash: _builtins.str | None = ..., - encThumbHash: _builtins.str | None = ..., - mediaKey: _builtins.bytes | None = ..., - mediaKeyTimestampMs: _builtins.int | None = ..., - thumbWidth: _builtins.int | None = ..., - thumbHeight: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "encThumbHash", b"encThumbHash", "mediaKey", b"mediaKey", "mediaKeyTimestampMs", b"mediaKeyTimestampMs", "thumbHash", b"thumbHash", "thumbHeight", b"thumbHeight", "thumbWidth", b"thumbWidth"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "encThumbHash", b"encThumbHash", "mediaKey", b"mediaKey", "mediaKeyTimestampMs", b"mediaKeyTimestampMs", "thumbHash", b"thumbHash", "thumbHeight", b"thumbHeight", "thumbWidth", b"thumbWidth"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class _PreviewType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - @_typing.final - class PaymentLinkPreviewMetadata(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class _PreviewTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ExtendedTextMessage._PreviewType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + NONE: Message.ExtendedTextMessage._PreviewType.ValueType # 0 + VIDEO: Message.ExtendedTextMessage._PreviewType.ValueType # 1 + PLACEHOLDER: Message.ExtendedTextMessage._PreviewType.ValueType # 4 + IMAGE: Message.ExtendedTextMessage._PreviewType.ValueType # 5 + PAYMENT_LINKS: Message.ExtendedTextMessage._PreviewType.ValueType # 6 + PROFILE: Message.ExtendedTextMessage._PreviewType.ValueType # 7 - ISBUSINESSVERIFIED_FIELD_NUMBER: _builtins.int - PROVIDERNAME_FIELD_NUMBER: _builtins.int - AMOUNT_FIELD_NUMBER: _builtins.int - OFFSET_FIELD_NUMBER: _builtins.int - CURRENCY_FIELD_NUMBER: _builtins.int - isBusinessVerified: _builtins.bool - providerName: _builtins.str - amount: _builtins.str - offset: _builtins.str - currency: _builtins.str - def __init__( - self, - *, - isBusinessVerified: _builtins.bool | None = ..., - providerName: _builtins.str | None = ..., - amount: _builtins.str | None = ..., - offset: _builtins.str | None = ..., - currency: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "currency", b"currency", "isBusinessVerified", b"isBusinessVerified", "offset", b"offset", "providerName", b"providerName"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "currency", b"currency", "isBusinessVerified", b"isBusinessVerified", "offset", b"offset", "providerName", b"providerName"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class PreviewType(_PreviewType, metaclass=_PreviewTypeEnumTypeWrapper): ... + NONE: Message.ExtendedTextMessage.PreviewType.ValueType # 0 + VIDEO: Message.ExtendedTextMessage.PreviewType.ValueType # 1 + PLACEHOLDER: Message.ExtendedTextMessage.PreviewType.ValueType # 4 + IMAGE: Message.ExtendedTextMessage.PreviewType.ValueType # 5 + PAYMENT_LINKS: Message.ExtendedTextMessage.PreviewType.ValueType # 6 + PROFILE: Message.ExtendedTextMessage.PreviewType.ValueType # 7 - URL_FIELD_NUMBER: _builtins.int - TITLE_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - THUMBDATA_FIELD_NUMBER: _builtins.int - MATCHTEXT_FIELD_NUMBER: _builtins.int - PREVIEWTYPE_FIELD_NUMBER: _builtins.int - HQTHUMBNAIL_FIELD_NUMBER: _builtins.int - PREVIEWMETADATA_FIELD_NUMBER: _builtins.int - url: _builtins.str - title: _builtins.str - description: _builtins.str - thumbData: _builtins.bytes - matchText: _builtins.str - previewType: _builtins.str - @_builtins.property - def hqThumbnail(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail: ... - @_builtins.property - def previewMetadata(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.PaymentLinkPreviewMetadata: ... - def __init__( - self, - *, - url: _builtins.str | None = ..., - title: _builtins.str | None = ..., - description: _builtins.str | None = ..., - thumbData: _builtins.bytes | None = ..., - matchText: _builtins.str | None = ..., - previewType: _builtins.str | None = ..., - hqThumbnail: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail | None = ..., - previewMetadata: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.PaymentLinkPreviewMetadata | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "hqThumbnail", b"hqThumbnail", "matchText", b"matchText", "previewMetadata", b"previewMetadata", "previewType", b"previewType", "thumbData", b"thumbData", "title", b"title", "url", b"url"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "hqThumbnail", b"hqThumbnail", "matchText", b"matchText", "previewMetadata", b"previewMetadata", "previewType", b"previewType", "thumbData", b"thumbData", "title", b"title", "url", b"url"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class PlaceholderMessageResendResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - WEBMESSAGEINFOBYTES_FIELD_NUMBER: _builtins.int - webMessageInfoBytes: _builtins.bytes - def __init__( - self, - *, - webMessageInfoBytes: _builtins.bytes | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["webMessageInfoBytes", b"webMessageInfoBytes"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["webMessageInfoBytes", b"webMessageInfoBytes"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class SyncDSnapshotFatalRecoveryResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - COLLECTIONSNAPSHOT_FIELD_NUMBER: _builtins.int - ISCOMPRESSED_FIELD_NUMBER: _builtins.int - collectionSnapshot: _builtins.bytes - isCompressed: _builtins.bool - def __init__( - self, - *, - collectionSnapshot: _builtins.bytes | None = ..., - isCompressed: _builtins.bool | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["collectionSnapshot", b"collectionSnapshot", "isCompressed", b"isCompressed"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["collectionSnapshot", b"collectionSnapshot", "isCompressed", b"isCompressed"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class WaffleNonceFetchResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - NONCE_FIELD_NUMBER: _builtins.int - WAENTFBID_FIELD_NUMBER: _builtins.int - nonce: _builtins.str - waEntFbid: _builtins.str - def __init__( - self, - *, - nonce: _builtins.str | None = ..., - waEntFbid: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["nonce", b"nonce", "waEntFbid", b"waEntFbid"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["nonce", b"nonce", "waEntFbid", b"waEntFbid"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - MEDIAUPLOADRESULT_FIELD_NUMBER: _builtins.int - STICKERMESSAGE_FIELD_NUMBER: _builtins.int - LINKPREVIEWRESPONSE_FIELD_NUMBER: _builtins.int - PLACEHOLDERMESSAGERESENDRESPONSE_FIELD_NUMBER: _builtins.int - WAFFLENONCEFETCHREQUESTRESPONSE_FIELD_NUMBER: _builtins.int - FULLHISTORYSYNCONDEMANDREQUESTRESPONSE_FIELD_NUMBER: _builtins.int - COMPANIONMETANONCEFETCHREQUESTRESPONSE_FIELD_NUMBER: _builtins.int - SYNCDSNAPSHOTFATALRECOVERYRESPONSE_FIELD_NUMBER: _builtins.int - COMPANIONCANONICALUSERNONCEFETCHREQUESTRESPONSE_FIELD_NUMBER: _builtins.int - HISTORYSYNCCHUNKRETRYRESPONSE_FIELD_NUMBER: _builtins.int - FLOWRESPONSESCSVBUNDLE_FIELD_NUMBER: _builtins.int - BIZBROADCASTINSIGHTSCONTACTLISTRESPONSE_FIELD_NUMBER: _builtins.int - mediaUploadResult: Global___MediaRetryNotification.ResultType.ValueType - @_builtins.property - def stickerMessage(self) -> Global___Message.StickerMessage: ... - @_builtins.property - def linkPreviewResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse: ... - @_builtins.property - def placeholderMessageResendResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse: ... - @_builtins.property - def waffleNonceFetchRequestResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse: ... - @_builtins.property - def fullHistorySyncOnDemandRequestResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse: ... - @_builtins.property - def companionMetaNonceFetchRequestResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse: ... - @_builtins.property - def syncdSnapshotFatalRecoveryResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse: ... - @_builtins.property - def companionCanonicalUserNonceFetchRequestResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionCanonicalUserNonceFetchResponse: ... - @_builtins.property - def historySyncChunkRetryResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse: ... - @_builtins.property - def flowResponsesCsvBundle(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FlowResponsesCsvBundle: ... - @_builtins.property - def bizBroadcastInsightsContactListResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactListResponse: ... - def __init__( - self, - *, - mediaUploadResult: Global___MediaRetryNotification.ResultType.ValueType | None = ..., - stickerMessage: Global___Message.StickerMessage | None = ..., - linkPreviewResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse | None = ..., - placeholderMessageResendResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse | None = ..., - waffleNonceFetchRequestResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse | None = ..., - fullHistorySyncOnDemandRequestResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse | None = ..., - companionMetaNonceFetchRequestResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse | None = ..., - syncdSnapshotFatalRecoveryResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse | None = ..., - companionCanonicalUserNonceFetchRequestResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionCanonicalUserNonceFetchResponse | None = ..., - historySyncChunkRetryResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse | None = ..., - flowResponsesCsvBundle: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FlowResponsesCsvBundle | None = ..., - bizBroadcastInsightsContactListResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactListResponse | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["bizBroadcastInsightsContactListResponse", b"bizBroadcastInsightsContactListResponse", "companionCanonicalUserNonceFetchRequestResponse", b"companionCanonicalUserNonceFetchRequestResponse", "companionMetaNonceFetchRequestResponse", b"companionMetaNonceFetchRequestResponse", "flowResponsesCsvBundle", b"flowResponsesCsvBundle", "fullHistorySyncOnDemandRequestResponse", b"fullHistorySyncOnDemandRequestResponse", "historySyncChunkRetryResponse", b"historySyncChunkRetryResponse", "linkPreviewResponse", b"linkPreviewResponse", "mediaUploadResult", b"mediaUploadResult", "placeholderMessageResendResponse", b"placeholderMessageResendResponse", "stickerMessage", b"stickerMessage", "syncdSnapshotFatalRecoveryResponse", b"syncdSnapshotFatalRecoveryResponse", "waffleNonceFetchRequestResponse", b"waffleNonceFetchRequestResponse"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["bizBroadcastInsightsContactListResponse", b"bizBroadcastInsightsContactListResponse", "companionCanonicalUserNonceFetchRequestResponse", b"companionCanonicalUserNonceFetchRequestResponse", "companionMetaNonceFetchRequestResponse", b"companionMetaNonceFetchRequestResponse", "flowResponsesCsvBundle", b"flowResponsesCsvBundle", "fullHistorySyncOnDemandRequestResponse", b"fullHistorySyncOnDemandRequestResponse", "historySyncChunkRetryResponse", b"historySyncChunkRetryResponse", "linkPreviewResponse", b"linkPreviewResponse", "mediaUploadResult", b"mediaUploadResult", "placeholderMessageResendResponse", b"placeholderMessageResendResponse", "stickerMessage", b"stickerMessage", "syncdSnapshotFatalRecoveryResponse", b"syncdSnapshotFatalRecoveryResponse", "waffleNonceFetchRequestResponse", b"waffleNonceFetchRequestResponse"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - PEERDATAOPERATIONREQUESTTYPE_FIELD_NUMBER: _builtins.int - STANZAID_FIELD_NUMBER: _builtins.int - PEERDATAOPERATIONRESULT_FIELD_NUMBER: _builtins.int - peerDataOperationRequestType: Global___Message.PeerDataOperationRequestType.ValueType - stanzaId: _builtins.str + TEXT_FIELD_NUMBER: _builtins.int + MATCHEDTEXT_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + TITLE_FIELD_NUMBER: _builtins.int + TEXTARGB_FIELD_NUMBER: _builtins.int + BACKGROUNDARGB_FIELD_NUMBER: _builtins.int + FONT_FIELD_NUMBER: _builtins.int + PREVIEWTYPE_FIELD_NUMBER: _builtins.int + JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + DONOTPLAYINLINE_FIELD_NUMBER: _builtins.int + THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int + THUMBNAILSHA256_FIELD_NUMBER: _builtins.int + THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int + MEDIAKEY_FIELD_NUMBER: _builtins.int + MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int + THUMBNAILHEIGHT_FIELD_NUMBER: _builtins.int + THUMBNAILWIDTH_FIELD_NUMBER: _builtins.int + INVITELINKGROUPTYPE_FIELD_NUMBER: _builtins.int + INVITELINKPARENTGROUPSUBJECTV2_FIELD_NUMBER: _builtins.int + INVITELINKPARENTGROUPTHUMBNAILV2_FIELD_NUMBER: _builtins.int + INVITELINKGROUPTYPEV2_FIELD_NUMBER: _builtins.int + VIEWONCE_FIELD_NUMBER: _builtins.int + VIDEOHEIGHT_FIELD_NUMBER: _builtins.int + VIDEOWIDTH_FIELD_NUMBER: _builtins.int + FAVICONMMSMETADATA_FIELD_NUMBER: _builtins.int + LINKPREVIEWMETADATA_FIELD_NUMBER: _builtins.int + PAYMENTLINKMETADATA_FIELD_NUMBER: _builtins.int + ENDCARDTILES_FIELD_NUMBER: _builtins.int + VIDEOCONTENTURL_FIELD_NUMBER: _builtins.int + MUSICMETADATA_FIELD_NUMBER: _builtins.int + PAYMENTEXTENDEDMETADATA_FIELD_NUMBER: _builtins.int + text: _builtins.str + matchedText: _builtins.str + description: _builtins.str + title: _builtins.str + textArgb: _builtins.int + backgroundArgb: _builtins.int + font: Global___Message.ExtendedTextMessage.FontType.ValueType + previewType: Global___Message.ExtendedTextMessage.PreviewType.ValueType + jpegThumbnail: _builtins.bytes + doNotPlayInline: _builtins.bool + thumbnailDirectPath: _builtins.str + thumbnailSha256: _builtins.bytes + thumbnailEncSha256: _builtins.bytes + mediaKey: _builtins.bytes + mediaKeyTimestamp: _builtins.int + thumbnailHeight: _builtins.int + thumbnailWidth: _builtins.int + inviteLinkGroupType: Global___Message.ExtendedTextMessage.InviteLinkGroupType.ValueType + inviteLinkParentGroupSubjectV2: _builtins.str + inviteLinkParentGroupThumbnailV2: _builtins.bytes + inviteLinkGroupTypeV2: Global___Message.ExtendedTextMessage.InviteLinkGroupType.ValueType + viewOnce: _builtins.bool + videoHeight: _builtins.int + videoWidth: _builtins.int + videoContentUrl: _builtins.str @_builtins.property - def peerDataOperationResult(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult]: ... + def contextInfo(self) -> Global___ContextInfo: ... + @_builtins.property + def faviconMmsMetadata(self) -> Global___Message.MMSThumbnailMetadata: ... + @_builtins.property + def linkPreviewMetadata(self) -> Global___Message.LinkPreviewMetadata: ... + @_builtins.property + def paymentLinkMetadata(self) -> Global___Message.PaymentLinkMetadata: ... + @_builtins.property + def endCardTiles(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.VideoEndCard]: ... + @_builtins.property + def musicMetadata(self) -> Global___EmbeddedMusic: ... + @_builtins.property + def paymentExtendedMetadata(self) -> Global___Message.PaymentExtendedMetadata: ... def __init__( self, *, - peerDataOperationRequestType: Global___Message.PeerDataOperationRequestType.ValueType | None = ..., - stanzaId: _builtins.str | None = ..., - peerDataOperationResult: _abc.Iterable[Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult] | None = ..., + text: _builtins.str | None = ..., + matchedText: _builtins.str | None = ..., + description: _builtins.str | None = ..., + title: _builtins.str | None = ..., + textArgb: _builtins.int | None = ..., + backgroundArgb: _builtins.int | None = ..., + font: Global___Message.ExtendedTextMessage.FontType.ValueType | None = ..., + previewType: Global___Message.ExtendedTextMessage.PreviewType.ValueType | None = ..., + jpegThumbnail: _builtins.bytes | None = ..., + contextInfo: Global___ContextInfo | None = ..., + doNotPlayInline: _builtins.bool | None = ..., + thumbnailDirectPath: _builtins.str | None = ..., + thumbnailSha256: _builtins.bytes | None = ..., + thumbnailEncSha256: _builtins.bytes | None = ..., + mediaKey: _builtins.bytes | None = ..., + mediaKeyTimestamp: _builtins.int | None = ..., + thumbnailHeight: _builtins.int | None = ..., + thumbnailWidth: _builtins.int | None = ..., + inviteLinkGroupType: Global___Message.ExtendedTextMessage.InviteLinkGroupType.ValueType | None = ..., + inviteLinkParentGroupSubjectV2: _builtins.str | None = ..., + inviteLinkParentGroupThumbnailV2: _builtins.bytes | None = ..., + inviteLinkGroupTypeV2: Global___Message.ExtendedTextMessage.InviteLinkGroupType.ValueType | None = ..., + viewOnce: _builtins.bool | None = ..., + videoHeight: _builtins.int | None = ..., + videoWidth: _builtins.int | None = ..., + faviconMmsMetadata: Global___Message.MMSThumbnailMetadata | None = ..., + linkPreviewMetadata: Global___Message.LinkPreviewMetadata | None = ..., + paymentLinkMetadata: Global___Message.PaymentLinkMetadata | None = ..., + endCardTiles: _abc.Iterable[Global___Message.VideoEndCard] | None = ..., + videoContentUrl: _builtins.str | None = ..., + musicMetadata: Global___EmbeddedMusic | None = ..., + paymentExtendedMetadata: Global___Message.PaymentExtendedMetadata | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["peerDataOperationRequestType", b"peerDataOperationRequestType", "stanzaId", b"stanzaId"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["backgroundArgb", b"backgroundArgb", "contextInfo", b"contextInfo", "description", b"description", "doNotPlayInline", b"doNotPlayInline", "faviconMmsMetadata", b"faviconMmsMetadata", "font", b"font", "inviteLinkGroupType", b"inviteLinkGroupType", "inviteLinkGroupTypeV2", b"inviteLinkGroupTypeV2", "inviteLinkParentGroupSubjectV2", b"inviteLinkParentGroupSubjectV2", "inviteLinkParentGroupThumbnailV2", b"inviteLinkParentGroupThumbnailV2", "jpegThumbnail", b"jpegThumbnail", "linkPreviewMetadata", b"linkPreviewMetadata", "matchedText", b"matchedText", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "musicMetadata", b"musicMetadata", "paymentExtendedMetadata", b"paymentExtendedMetadata", "paymentLinkMetadata", b"paymentLinkMetadata", "previewType", b"previewType", "text", b"text", "textArgb", b"textArgb", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "title", b"title", "videoContentUrl", b"videoContentUrl", "videoHeight", b"videoHeight", "videoWidth", b"videoWidth", "viewOnce", b"viewOnce"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["peerDataOperationRequestType", b"peerDataOperationRequestType", "peerDataOperationResult", b"peerDataOperationResult", "stanzaId", b"stanzaId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["backgroundArgb", b"backgroundArgb", "contextInfo", b"contextInfo", "description", b"description", "doNotPlayInline", b"doNotPlayInline", "endCardTiles", b"endCardTiles", "faviconMmsMetadata", b"faviconMmsMetadata", "font", b"font", "inviteLinkGroupType", b"inviteLinkGroupType", "inviteLinkGroupTypeV2", b"inviteLinkGroupTypeV2", "inviteLinkParentGroupSubjectV2", b"inviteLinkParentGroupSubjectV2", "inviteLinkParentGroupThumbnailV2", b"inviteLinkParentGroupThumbnailV2", "jpegThumbnail", b"jpegThumbnail", "linkPreviewMetadata", b"linkPreviewMetadata", "matchedText", b"matchedText", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "musicMetadata", b"musicMetadata", "paymentExtendedMetadata", b"paymentExtendedMetadata", "paymentLinkMetadata", b"paymentLinkMetadata", "previewType", b"previewType", "text", b"text", "textArgb", b"textArgb", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "title", b"title", "videoContentUrl", b"videoContentUrl", "videoHeight", b"videoHeight", "videoWidth", b"videoWidth", "viewOnce", b"viewOnce"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class PinInChatMessage(_message.Message): + class FullHistorySyncOnDemandConfig(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _Type: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PinInChatMessage._Type.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN_TYPE: Message.PinInChatMessage._Type.ValueType # 0 - PIN_FOR_ALL: Message.PinInChatMessage._Type.ValueType # 1 - UNPIN_FOR_ALL: Message.PinInChatMessage._Type.ValueType # 2 - - class Type(_Type, metaclass=_TypeEnumTypeWrapper): ... - UNKNOWN_TYPE: Message.PinInChatMessage.Type.ValueType # 0 - PIN_FOR_ALL: Message.PinInChatMessage.Type.ValueType # 1 - UNPIN_FOR_ALL: Message.PinInChatMessage.Type.ValueType # 2 - - KEY_FIELD_NUMBER: _builtins.int - TYPE_FIELD_NUMBER: _builtins.int - SENDERTIMESTAMPMS_FIELD_NUMBER: _builtins.int - type: Global___Message.PinInChatMessage.Type.ValueType - senderTimestampMs: _builtins.int - @_builtins.property - def key(self) -> Global___MessageKey: ... + HISTORYFROMTIMESTAMP_FIELD_NUMBER: _builtins.int + HISTORYDURATIONDAYS_FIELD_NUMBER: _builtins.int + historyFromTimestamp: _builtins.int + historyDurationDays: _builtins.int def __init__( self, *, - key: Global___MessageKey | None = ..., - type: Global___Message.PinInChatMessage.Type.ValueType | None = ..., - senderTimestampMs: _builtins.int | None = ..., + historyFromTimestamp: _builtins.int | None = ..., + historyDurationDays: _builtins.int | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "senderTimestampMs", b"senderTimestampMs", "type", b"type"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["historyDurationDays", b"historyDurationDays", "historyFromTimestamp", b"historyFromTimestamp"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "senderTimestampMs", b"senderTimestampMs", "type", b"type"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["historyDurationDays", b"historyDurationDays", "historyFromTimestamp", b"historyFromTimestamp"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class PlaceholderMessage(_message.Message): + class FullHistorySyncOnDemandRequestMetadata(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _PlaceholderType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _PlaceholderTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PlaceholderMessage._PlaceholderType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - MASK_LINKED_DEVICES: Message.PlaceholderMessage._PlaceholderType.ValueType # 0 - - class PlaceholderType(_PlaceholderType, metaclass=_PlaceholderTypeEnumTypeWrapper): ... - MASK_LINKED_DEVICES: Message.PlaceholderMessage.PlaceholderType.ValueType # 0 - - TYPE_FIELD_NUMBER: _builtins.int - type: Global___Message.PlaceholderMessage.PlaceholderType.ValueType + REQUESTID_FIELD_NUMBER: _builtins.int + BUSINESSPRODUCT_FIELD_NUMBER: _builtins.int + OPAQUECLIENTDATA_FIELD_NUMBER: _builtins.int + requestId: _builtins.str + businessProduct: _builtins.str + opaqueClientData: _builtins.bytes def __init__( self, *, - type: Global___Message.PlaceholderMessage.PlaceholderType.ValueType | None = ..., + requestId: _builtins.str | None = ..., + businessProduct: _builtins.str | None = ..., + opaqueClientData: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["type", b"type"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["businessProduct", b"businessProduct", "opaqueClientData", b"opaqueClientData", "requestId", b"requestId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["type", b"type"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["businessProduct", b"businessProduct", "opaqueClientData", b"opaqueClientData", "requestId", b"requestId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class PollAddOptionMessage(_message.Message): + class FutureProofMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - POLLCREATIONMESSAGEKEY_FIELD_NUMBER: _builtins.int - ADDOPTION_FIELD_NUMBER: _builtins.int - METADATA_FIELD_NUMBER: _builtins.int - @_builtins.property - def pollCreationMessageKey(self) -> Global___MessageKey: ... - @_builtins.property - def addOption(self) -> Global___Message.PollCreationMessage.Option: ... + MESSAGE_FIELD_NUMBER: _builtins.int @_builtins.property - def metadata(self) -> Global___Message.PollUpdateMessageMetadata: ... + def message(self) -> Global___Message: ... def __init__( self, *, - pollCreationMessageKey: Global___MessageKey | None = ..., - addOption: Global___Message.PollCreationMessage.Option | None = ..., - metadata: Global___Message.PollUpdateMessageMetadata | None = ..., + message: Global___Message | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["addOption", b"addOption", "metadata", b"metadata", "pollCreationMessageKey", b"pollCreationMessageKey"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["message", b"message"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["addOption", b"addOption", "metadata", b"metadata", "pollCreationMessageKey", b"pollCreationMessageKey"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class PollCreationMessage(_message.Message): + class GroupInviteMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class Option(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class _GroupType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - OPTIONNAME_FIELD_NUMBER: _builtins.int - OPTIONHASH_FIELD_NUMBER: _builtins.int - optionName: _builtins.str - optionHash: _builtins.str - def __init__( - self, - *, - optionName: _builtins.str | None = ..., - optionHash: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["optionHash", b"optionHash", "optionName", b"optionName"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["optionHash", b"optionHash", "optionName", b"optionName"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class _GroupTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.GroupInviteMessage._GroupType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + DEFAULT: Message.GroupInviteMessage._GroupType.ValueType # 0 + PARENT: Message.GroupInviteMessage._GroupType.ValueType # 1 - ENCKEY_FIELD_NUMBER: _builtins.int - NAME_FIELD_NUMBER: _builtins.int - OPTIONS_FIELD_NUMBER: _builtins.int - SELECTABLEOPTIONSCOUNT_FIELD_NUMBER: _builtins.int + class GroupType(_GroupType, metaclass=_GroupTypeEnumTypeWrapper): ... + DEFAULT: Message.GroupInviteMessage.GroupType.ValueType # 0 + PARENT: Message.GroupInviteMessage.GroupType.ValueType # 1 + + GROUPJID_FIELD_NUMBER: _builtins.int + INVITECODE_FIELD_NUMBER: _builtins.int + INVITEEXPIRATION_FIELD_NUMBER: _builtins.int + GROUPNAME_FIELD_NUMBER: _builtins.int + JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int + CAPTION_FIELD_NUMBER: _builtins.int CONTEXTINFO_FIELD_NUMBER: _builtins.int - POLLCONTENTTYPE_FIELD_NUMBER: _builtins.int - POLLTYPE_FIELD_NUMBER: _builtins.int - CORRECTANSWER_FIELD_NUMBER: _builtins.int - ENDTIME_FIELD_NUMBER: _builtins.int - HIDEPARTICIPANTNAME_FIELD_NUMBER: _builtins.int - ALLOWADDOPTION_FIELD_NUMBER: _builtins.int - encKey: _builtins.bytes - name: _builtins.str - selectableOptionsCount: _builtins.int - pollContentType: Global___Message.PollContentType.ValueType - pollType: Global___Message.PollType.ValueType - endTime: _builtins.int - hideParticipantName: _builtins.bool - allowAddOption: _builtins.bool - @_builtins.property - def options(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PollCreationMessage.Option]: ... + GROUPTYPE_FIELD_NUMBER: _builtins.int + groupJid: _builtins.str + inviteCode: _builtins.str + inviteExpiration: _builtins.int + groupName: _builtins.str + jpegThumbnail: _builtins.bytes + caption: _builtins.str + groupType: Global___Message.GroupInviteMessage.GroupType.ValueType @_builtins.property def contextInfo(self) -> Global___ContextInfo: ... - @_builtins.property - def correctAnswer(self) -> Global___Message.PollCreationMessage.Option: ... def __init__( self, *, - encKey: _builtins.bytes | None = ..., - name: _builtins.str | None = ..., - options: _abc.Iterable[Global___Message.PollCreationMessage.Option] | None = ..., - selectableOptionsCount: _builtins.int | None = ..., + groupJid: _builtins.str | None = ..., + inviteCode: _builtins.str | None = ..., + inviteExpiration: _builtins.int | None = ..., + groupName: _builtins.str | None = ..., + jpegThumbnail: _builtins.bytes | None = ..., + caption: _builtins.str | None = ..., contextInfo: Global___ContextInfo | None = ..., - pollContentType: Global___Message.PollContentType.ValueType | None = ..., - pollType: Global___Message.PollType.ValueType | None = ..., - correctAnswer: Global___Message.PollCreationMessage.Option | None = ..., - endTime: _builtins.int | None = ..., - hideParticipantName: _builtins.bool | None = ..., - allowAddOption: _builtins.bool | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["allowAddOption", b"allowAddOption", "contextInfo", b"contextInfo", "correctAnswer", b"correctAnswer", "encKey", b"encKey", "endTime", b"endTime", "hideParticipantName", b"hideParticipantName", "name", b"name", "pollContentType", b"pollContentType", "pollType", b"pollType", "selectableOptionsCount", b"selectableOptionsCount"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allowAddOption", b"allowAddOption", "contextInfo", b"contextInfo", "correctAnswer", b"correctAnswer", "encKey", b"encKey", "endTime", b"endTime", "hideParticipantName", b"hideParticipantName", "name", b"name", "options", b"options", "pollContentType", b"pollContentType", "pollType", b"pollType", "selectableOptionsCount", b"selectableOptionsCount"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class PollEncValue(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - ENCPAYLOAD_FIELD_NUMBER: _builtins.int - ENCIV_FIELD_NUMBER: _builtins.int - encPayload: _builtins.bytes - encIv: _builtins.bytes - def __init__( - self, - *, - encPayload: _builtins.bytes | None = ..., - encIv: _builtins.bytes | None = ..., + groupType: Global___Message.GroupInviteMessage.GroupType.ValueType | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "groupJid", b"groupJid", "groupName", b"groupName", "groupType", b"groupType", "inviteCode", b"inviteCode", "inviteExpiration", b"inviteExpiration", "jpegThumbnail", b"jpegThumbnail"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "groupJid", b"groupJid", "groupName", b"groupName", "groupType", b"groupType", "inviteCode", b"inviteCode", "inviteExpiration", b"inviteExpiration", "jpegThumbnail", b"jpegThumbnail"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class PollResultSnapshotMessage(_message.Message): + class HighlyStructuredMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor @_typing.final - class PollVote(_message.Message): + class HSMLocalizableParameter(_message.Message): DESCRIPTOR: _descriptor.Descriptor - OPTIONNAME_FIELD_NUMBER: _builtins.int - OPTIONVOTECOUNT_FIELD_NUMBER: _builtins.int - optionName: _builtins.str - optionVoteCount: _builtins.int - def __init__( - self, - *, - optionName: _builtins.str | None = ..., - optionVoteCount: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["optionName", b"optionName", "optionVoteCount", b"optionVoteCount"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["optionName", b"optionName", "optionVoteCount", b"optionVoteCount"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class HSMCurrency(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - POLLVOTES_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - POLLTYPE_FIELD_NUMBER: _builtins.int - name: _builtins.str - pollType: Global___Message.PollType.ValueType - @_builtins.property - def pollVotes(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PollResultSnapshotMessage.PollVote]: ... - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - def __init__( - self, - *, - name: _builtins.str | None = ..., - pollVotes: _abc.Iterable[Global___Message.PollResultSnapshotMessage.PollVote] | None = ..., - contextInfo: Global___ContextInfo | None = ..., - pollType: Global___Message.PollType.ValueType | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "name", b"name", "pollType", b"pollType"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "name", b"name", "pollType", b"pollType", "pollVotes", b"pollVotes"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + CURRENCYCODE_FIELD_NUMBER: _builtins.int + AMOUNT1000_FIELD_NUMBER: _builtins.int + currencyCode: _builtins.str + amount1000: _builtins.int + def __init__( + self, + *, + currencyCode: _builtins.str | None = ..., + amount1000: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["amount1000", b"amount1000", "currencyCode", b"currencyCode"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["amount1000", b"amount1000", "currencyCode", b"currencyCode"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class PollUpdateMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + @_typing.final + class HSMDateTime(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - POLLCREATIONMESSAGEKEY_FIELD_NUMBER: _builtins.int - VOTE_FIELD_NUMBER: _builtins.int - METADATA_FIELD_NUMBER: _builtins.int - SENDERTIMESTAMPMS_FIELD_NUMBER: _builtins.int - senderTimestampMs: _builtins.int - @_builtins.property - def pollCreationMessageKey(self) -> Global___MessageKey: ... - @_builtins.property - def vote(self) -> Global___Message.PollEncValue: ... - @_builtins.property - def metadata(self) -> Global___Message.PollUpdateMessageMetadata: ... - def __init__( - self, - *, - pollCreationMessageKey: Global___MessageKey | None = ..., - vote: Global___Message.PollEncValue | None = ..., - metadata: Global___Message.PollUpdateMessageMetadata | None = ..., - senderTimestampMs: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "pollCreationMessageKey", b"pollCreationMessageKey", "senderTimestampMs", b"senderTimestampMs", "vote", b"vote"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "pollCreationMessageKey", b"pollCreationMessageKey", "senderTimestampMs", b"senderTimestampMs", "vote", b"vote"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class HSMDateTimeComponent(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class PollUpdateMessageMetadata(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class _CalendarType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - POLLNAMEHASH_FIELD_NUMBER: _builtins.int - LASTEDITSTANZAID_FIELD_NUMBER: _builtins.int - pollNameHash: _builtins.bytes - lastEditStanzaId: _builtins.str - def __init__( - self, - *, - pollNameHash: _builtins.bytes | None = ..., - lastEditStanzaId: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["lastEditStanzaId", b"lastEditStanzaId", "pollNameHash", b"pollNameHash"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["lastEditStanzaId", b"lastEditStanzaId", "pollNameHash", b"pollNameHash"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class _CalendarTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._CalendarType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + GREGORIAN: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._CalendarType.ValueType # 1 + SOLAR_HIJRI: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._CalendarType.ValueType # 2 - @_typing.final - class PollVoteMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class CalendarType(_CalendarType, metaclass=_CalendarTypeEnumTypeWrapper): ... + GREGORIAN: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType.ValueType # 1 + SOLAR_HIJRI: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType.ValueType # 2 - SELECTEDOPTIONS_FIELD_NUMBER: _builtins.int - @_builtins.property - def selectedOptions(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... - def __init__( - self, - *, - selectedOptions: _abc.Iterable[_builtins.bytes] | None = ..., - ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["selectedOptions", b"selectedOptions"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class _DayOfWeekType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - @_typing.final - class ProductMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class _DayOfWeekTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + MONDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 1 + TUESDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 2 + WEDNESDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 3 + THURSDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 4 + FRIDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 5 + SATURDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 6 + SUNDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent._DayOfWeekType.ValueType # 7 - @_typing.final - class CatalogSnapshot(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class DayOfWeekType(_DayOfWeekType, metaclass=_DayOfWeekTypeEnumTypeWrapper): ... + MONDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 1 + TUESDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 2 + WEDNESDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 3 + THURSDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 4 + FRIDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 5 + SATURDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 6 + SUNDAY: Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType # 7 - CATALOGIMAGE_FIELD_NUMBER: _builtins.int - TITLE_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - title: _builtins.str - description: _builtins.str - @_builtins.property - def catalogImage(self) -> Global___Message.ImageMessage: ... - def __init__( - self, - *, - catalogImage: Global___Message.ImageMessage | None = ..., - title: _builtins.str | None = ..., - description: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["catalogImage", b"catalogImage", "description", b"description", "title", b"title"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["catalogImage", b"catalogImage", "description", b"description", "title", b"title"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + DAYOFWEEK_FIELD_NUMBER: _builtins.int + YEAR_FIELD_NUMBER: _builtins.int + MONTH_FIELD_NUMBER: _builtins.int + DAYOFMONTH_FIELD_NUMBER: _builtins.int + HOUR_FIELD_NUMBER: _builtins.int + MINUTE_FIELD_NUMBER: _builtins.int + CALENDAR_FIELD_NUMBER: _builtins.int + dayOfWeek: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType + year: _builtins.int + month: _builtins.int + dayOfMonth: _builtins.int + hour: _builtins.int + minute: _builtins.int + calendar: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType.ValueType + def __init__( + self, + *, + dayOfWeek: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType.ValueType | None = ..., + year: _builtins.int | None = ..., + month: _builtins.int | None = ..., + dayOfMonth: _builtins.int | None = ..., + hour: _builtins.int | None = ..., + minute: _builtins.int | None = ..., + calendar: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["calendar", b"calendar", "dayOfMonth", b"dayOfMonth", "dayOfWeek", b"dayOfWeek", "hour", b"hour", "minute", b"minute", "month", b"month", "year", b"year"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["calendar", b"calendar", "dayOfMonth", b"dayOfMonth", "dayOfWeek", b"dayOfWeek", "hour", b"hour", "minute", b"minute", "month", b"month", "year", b"year"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class ProductSnapshot(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + @_typing.final + class HSMDateTimeUnixEpoch(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - PRODUCTIMAGE_FIELD_NUMBER: _builtins.int - PRODUCTID_FIELD_NUMBER: _builtins.int - TITLE_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - CURRENCYCODE_FIELD_NUMBER: _builtins.int - PRICEAMOUNT1000_FIELD_NUMBER: _builtins.int - RETAILERID_FIELD_NUMBER: _builtins.int - URL_FIELD_NUMBER: _builtins.int - PRODUCTIMAGECOUNT_FIELD_NUMBER: _builtins.int - FIRSTIMAGEID_FIELD_NUMBER: _builtins.int - SALEPRICEAMOUNT1000_FIELD_NUMBER: _builtins.int - SIGNEDURL_FIELD_NUMBER: _builtins.int - productId: _builtins.str - title: _builtins.str - description: _builtins.str - currencyCode: _builtins.str - priceAmount1000: _builtins.int - retailerId: _builtins.str - url: _builtins.str - productImageCount: _builtins.int - firstImageId: _builtins.str - salePriceAmount1000: _builtins.int - signedUrl: _builtins.str + TIMESTAMP_FIELD_NUMBER: _builtins.int + timestamp: _builtins.int + def __init__( + self, + *, + timestamp: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["timestamp", b"timestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["timestamp", b"timestamp"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + COMPONENT_FIELD_NUMBER: _builtins.int + UNIXEPOCH_FIELD_NUMBER: _builtins.int + @_builtins.property + def component(self) -> Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent: ... + @_builtins.property + def unixEpoch(self) -> Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch: ... + def __init__( + self, + *, + component: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent | None = ..., + unixEpoch: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["component", b"component", "datetimeOneof", b"datetimeOneof", "unixEpoch", b"unixEpoch"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["component", b"component", "datetimeOneof", b"datetimeOneof", "unixEpoch", b"unixEpoch"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_datetimeOneof: _TypeAlias = _typing.Literal["component", "unixEpoch"] # noqa: Y015 + _WhichOneofArgType_datetimeOneof: _TypeAlias = _typing.Literal["datetimeOneof", b"datetimeOneof"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_datetimeOneof) -> _WhichOneofReturnType_datetimeOneof | None: ... + + DEFAULT_FIELD_NUMBER: _builtins.int + CURRENCY_FIELD_NUMBER: _builtins.int + DATETIME_FIELD_NUMBER: _builtins.int + default: _builtins.str @_builtins.property - def productImage(self) -> Global___Message.ImageMessage: ... + def currency(self) -> Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency: ... + @_builtins.property + def dateTime(self) -> Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime: ... def __init__( self, *, - productImage: Global___Message.ImageMessage | None = ..., - productId: _builtins.str | None = ..., - title: _builtins.str | None = ..., - description: _builtins.str | None = ..., - currencyCode: _builtins.str | None = ..., - priceAmount1000: _builtins.int | None = ..., - retailerId: _builtins.str | None = ..., - url: _builtins.str | None = ..., - productImageCount: _builtins.int | None = ..., - firstImageId: _builtins.str | None = ..., - salePriceAmount1000: _builtins.int | None = ..., - signedUrl: _builtins.str | None = ..., + default: _builtins.str | None = ..., + currency: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency | None = ..., + dateTime: Global___Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["currencyCode", b"currencyCode", "description", b"description", "firstImageId", b"firstImageId", "priceAmount1000", b"priceAmount1000", "productId", b"productId", "productImage", b"productImage", "productImageCount", b"productImageCount", "retailerId", b"retailerId", "salePriceAmount1000", b"salePriceAmount1000", "signedUrl", b"signedUrl", "title", b"title", "url", b"url"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["currency", b"currency", "dateTime", b"dateTime", "default", b"default", "paramOneof", b"paramOneof"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["currencyCode", b"currencyCode", "description", b"description", "firstImageId", b"firstImageId", "priceAmount1000", b"priceAmount1000", "productId", b"productId", "productImage", b"productImage", "productImageCount", b"productImageCount", "retailerId", b"retailerId", "salePriceAmount1000", b"salePriceAmount1000", "signedUrl", b"signedUrl", "title", b"title", "url", b"url"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["currency", b"currency", "dateTime", b"dateTime", "default", b"default", "paramOneof", b"paramOneof"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_paramOneof: _TypeAlias = _typing.Literal["currency", "dateTime"] # noqa: Y015 + _WhichOneofArgType_paramOneof: _TypeAlias = _typing.Literal["paramOneof", b"paramOneof"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_paramOneof) -> _WhichOneofReturnType_paramOneof | None: ... - PRODUCT_FIELD_NUMBER: _builtins.int - BUSINESSOWNERJID_FIELD_NUMBER: _builtins.int - CATALOG_FIELD_NUMBER: _builtins.int - BODY_FIELD_NUMBER: _builtins.int - FOOTER_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - businessOwnerJid: _builtins.str - body: _builtins.str - footer: _builtins.str + NAMESPACE_FIELD_NUMBER: _builtins.int + ELEMENTNAME_FIELD_NUMBER: _builtins.int + PARAMS_FIELD_NUMBER: _builtins.int + FALLBACKLG_FIELD_NUMBER: _builtins.int + FALLBACKLC_FIELD_NUMBER: _builtins.int + LOCALIZABLEPARAMS_FIELD_NUMBER: _builtins.int + DETERMINISTICLG_FIELD_NUMBER: _builtins.int + DETERMINISTICLC_FIELD_NUMBER: _builtins.int + HYDRATEDHSM_FIELD_NUMBER: _builtins.int + namespace: _builtins.str + elementName: _builtins.str + fallbackLg: _builtins.str + fallbackLc: _builtins.str + deterministicLg: _builtins.str + deterministicLc: _builtins.str @_builtins.property - def product(self) -> Global___Message.ProductMessage.ProductSnapshot: ... + def params(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... @_builtins.property - def catalog(self) -> Global___Message.ProductMessage.CatalogSnapshot: ... + def localizableParams(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.HighlyStructuredMessage.HSMLocalizableParameter]: ... @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... + def hydratedHsm(self) -> Global___Message.TemplateMessage: ... def __init__( self, *, - product: Global___Message.ProductMessage.ProductSnapshot | None = ..., - businessOwnerJid: _builtins.str | None = ..., - catalog: Global___Message.ProductMessage.CatalogSnapshot | None = ..., - body: _builtins.str | None = ..., - footer: _builtins.str | None = ..., - contextInfo: Global___ContextInfo | None = ..., + namespace: _builtins.str | None = ..., + elementName: _builtins.str | None = ..., + params: _abc.Iterable[_builtins.str] | None = ..., + fallbackLg: _builtins.str | None = ..., + fallbackLc: _builtins.str | None = ..., + localizableParams: _abc.Iterable[Global___Message.HighlyStructuredMessage.HSMLocalizableParameter] | None = ..., + deterministicLg: _builtins.str | None = ..., + deterministicLc: _builtins.str | None = ..., + hydratedHsm: Global___Message.TemplateMessage | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "businessOwnerJid", b"businessOwnerJid", "catalog", b"catalog", "contextInfo", b"contextInfo", "footer", b"footer", "product", b"product"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["deterministicLc", b"deterministicLc", "deterministicLg", b"deterministicLg", "elementName", b"elementName", "fallbackLc", b"fallbackLc", "fallbackLg", b"fallbackLg", "hydratedHsm", b"hydratedHsm", "namespace", b"namespace"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "businessOwnerJid", b"businessOwnerJid", "catalog", b"catalog", "contextInfo", b"contextInfo", "footer", b"footer", "product", b"product"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["deterministicLc", b"deterministicLc", "deterministicLg", b"deterministicLg", "elementName", b"elementName", "fallbackLc", b"fallbackLc", "fallbackLg", b"fallbackLg", "hydratedHsm", b"hydratedHsm", "localizableParams", b"localizableParams", "namespace", b"namespace", "params", b"params"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class ProtocolMessage(_message.Message): + class HistoryShareMessageEntry(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _Type: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ProtocolMessage._Type.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - REVOKE: Message.ProtocolMessage._Type.ValueType # 0 - EPHEMERAL_SETTING: Message.ProtocolMessage._Type.ValueType # 3 - EPHEMERAL_SYNC_RESPONSE: Message.ProtocolMessage._Type.ValueType # 4 - HISTORY_SYNC_NOTIFICATION: Message.ProtocolMessage._Type.ValueType # 5 - APP_STATE_SYNC_KEY_SHARE: Message.ProtocolMessage._Type.ValueType # 6 - APP_STATE_SYNC_KEY_REQUEST: Message.ProtocolMessage._Type.ValueType # 7 - MSG_FANOUT_BACKFILL_REQUEST: Message.ProtocolMessage._Type.ValueType # 8 - INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC: Message.ProtocolMessage._Type.ValueType # 9 - APP_STATE_FATAL_EXCEPTION_NOTIFICATION: Message.ProtocolMessage._Type.ValueType # 10 - SHARE_PHONE_NUMBER: Message.ProtocolMessage._Type.ValueType # 11 - MESSAGE_EDIT: Message.ProtocolMessage._Type.ValueType # 14 - PEER_DATA_OPERATION_REQUEST_MESSAGE: Message.ProtocolMessage._Type.ValueType # 16 - PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE: Message.ProtocolMessage._Type.ValueType # 17 - REQUEST_WELCOME_MESSAGE: Message.ProtocolMessage._Type.ValueType # 18 - BOT_FEEDBACK_MESSAGE: Message.ProtocolMessage._Type.ValueType # 19 - MEDIA_NOTIFY_MESSAGE: Message.ProtocolMessage._Type.ValueType # 20 - CLOUD_API_THREAD_CONTROL_NOTIFICATION: Message.ProtocolMessage._Type.ValueType # 21 - LID_MIGRATION_MAPPING_SYNC: Message.ProtocolMessage._Type.ValueType # 22 - REMINDER_MESSAGE: Message.ProtocolMessage._Type.ValueType # 23 - BOT_MEMU_ONBOARDING_MESSAGE: Message.ProtocolMessage._Type.ValueType # 24 - STATUS_MENTION_MESSAGE: Message.ProtocolMessage._Type.ValueType # 25 - STOP_GENERATION_MESSAGE: Message.ProtocolMessage._Type.ValueType # 26 - LIMIT_SHARING: Message.ProtocolMessage._Type.ValueType # 27 - AI_PSI_METADATA: Message.ProtocolMessage._Type.ValueType # 28 - AI_QUERY_FANOUT: Message.ProtocolMessage._Type.ValueType # 29 - GROUP_MEMBER_LABEL_CHANGE: Message.ProtocolMessage._Type.ValueType # 30 - AI_MEDIA_COLLECTION_MESSAGE: Message.ProtocolMessage._Type.ValueType # 31 - MESSAGE_UNSCHEDULE: Message.ProtocolMessage._Type.ValueType # 32 - CHAT_THEME_SETTING: Message.ProtocolMessage._Type.ValueType # 34 - AI_METADATA_OPERATION: Message.ProtocolMessage._Type.ValueType # 35 - - class Type(_Type, metaclass=_TypeEnumTypeWrapper): ... - REVOKE: Message.ProtocolMessage.Type.ValueType # 0 - EPHEMERAL_SETTING: Message.ProtocolMessage.Type.ValueType # 3 - EPHEMERAL_SYNC_RESPONSE: Message.ProtocolMessage.Type.ValueType # 4 - HISTORY_SYNC_NOTIFICATION: Message.ProtocolMessage.Type.ValueType # 5 - APP_STATE_SYNC_KEY_SHARE: Message.ProtocolMessage.Type.ValueType # 6 - APP_STATE_SYNC_KEY_REQUEST: Message.ProtocolMessage.Type.ValueType # 7 - MSG_FANOUT_BACKFILL_REQUEST: Message.ProtocolMessage.Type.ValueType # 8 - INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC: Message.ProtocolMessage.Type.ValueType # 9 - APP_STATE_FATAL_EXCEPTION_NOTIFICATION: Message.ProtocolMessage.Type.ValueType # 10 - SHARE_PHONE_NUMBER: Message.ProtocolMessage.Type.ValueType # 11 - MESSAGE_EDIT: Message.ProtocolMessage.Type.ValueType # 14 - PEER_DATA_OPERATION_REQUEST_MESSAGE: Message.ProtocolMessage.Type.ValueType # 16 - PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE: Message.ProtocolMessage.Type.ValueType # 17 - REQUEST_WELCOME_MESSAGE: Message.ProtocolMessage.Type.ValueType # 18 - BOT_FEEDBACK_MESSAGE: Message.ProtocolMessage.Type.ValueType # 19 - MEDIA_NOTIFY_MESSAGE: Message.ProtocolMessage.Type.ValueType # 20 - CLOUD_API_THREAD_CONTROL_NOTIFICATION: Message.ProtocolMessage.Type.ValueType # 21 - LID_MIGRATION_MAPPING_SYNC: Message.ProtocolMessage.Type.ValueType # 22 - REMINDER_MESSAGE: Message.ProtocolMessage.Type.ValueType # 23 - BOT_MEMU_ONBOARDING_MESSAGE: Message.ProtocolMessage.Type.ValueType # 24 - STATUS_MENTION_MESSAGE: Message.ProtocolMessage.Type.ValueType # 25 - STOP_GENERATION_MESSAGE: Message.ProtocolMessage.Type.ValueType # 26 - LIMIT_SHARING: Message.ProtocolMessage.Type.ValueType # 27 - AI_PSI_METADATA: Message.ProtocolMessage.Type.ValueType # 28 - AI_QUERY_FANOUT: Message.ProtocolMessage.Type.ValueType # 29 - GROUP_MEMBER_LABEL_CHANGE: Message.ProtocolMessage.Type.ValueType # 30 - AI_MEDIA_COLLECTION_MESSAGE: Message.ProtocolMessage.Type.ValueType # 31 - MESSAGE_UNSCHEDULE: Message.ProtocolMessage.Type.ValueType # 32 - CHAT_THEME_SETTING: Message.ProtocolMessage.Type.ValueType # 34 - AI_METADATA_OPERATION: Message.ProtocolMessage.Type.ValueType # 35 - - KEY_FIELD_NUMBER: _builtins.int - TYPE_FIELD_NUMBER: _builtins.int - EPHEMERALEXPIRATION_FIELD_NUMBER: _builtins.int - EPHEMERALSETTINGTIMESTAMP_FIELD_NUMBER: _builtins.int - HISTORYSYNCNOTIFICATION_FIELD_NUMBER: _builtins.int - APPSTATESYNCKEYSHARE_FIELD_NUMBER: _builtins.int - APPSTATESYNCKEYREQUEST_FIELD_NUMBER: _builtins.int - INITIALSECURITYNOTIFICATIONSETTINGSYNC_FIELD_NUMBER: _builtins.int - APPSTATEFATALEXCEPTIONNOTIFICATION_FIELD_NUMBER: _builtins.int - DISAPPEARINGMODE_FIELD_NUMBER: _builtins.int - EDITEDMESSAGE_FIELD_NUMBER: _builtins.int - TIMESTAMPMS_FIELD_NUMBER: _builtins.int - PEERDATAOPERATIONREQUESTMESSAGE_FIELD_NUMBER: _builtins.int - PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int - BOTFEEDBACKMESSAGE_FIELD_NUMBER: _builtins.int - INVOKERJID_FIELD_NUMBER: _builtins.int - REQUESTWELCOMEMESSAGEMETADATA_FIELD_NUMBER: _builtins.int - MEDIANOTIFYMESSAGE_FIELD_NUMBER: _builtins.int - CLOUDAPITHREADCONTROLNOTIFICATION_FIELD_NUMBER: _builtins.int - LIDMIGRATIONMAPPINGSYNCMESSAGE_FIELD_NUMBER: _builtins.int - LIMITSHARING_FIELD_NUMBER: _builtins.int - AIPSIMETADATA_FIELD_NUMBER: _builtins.int - AIQUERYFANOUT_FIELD_NUMBER: _builtins.int - MEMBERLABEL_FIELD_NUMBER: _builtins.int - AIMEDIACOLLECTIONMESSAGE_FIELD_NUMBER: _builtins.int - AFTERREADDURATION_FIELD_NUMBER: _builtins.int - CHATTHEMESETTING_FIELD_NUMBER: _builtins.int - AIMETADATAOPERATION_FIELD_NUMBER: _builtins.int - type: Global___Message.ProtocolMessage.Type.ValueType - ephemeralExpiration: _builtins.int - ephemeralSettingTimestamp: _builtins.int - timestampMs: _builtins.int - invokerJid: _builtins.str - aiPsiMetadata: _builtins.bytes - afterReadDuration: _builtins.int - @_builtins.property - def key(self) -> Global___MessageKey: ... - @_builtins.property - def historySyncNotification(self) -> Global___Message.HistorySyncNotification: ... - @_builtins.property - def appStateSyncKeyShare(self) -> Global___Message.AppStateSyncKeyShare: ... - @_builtins.property - def appStateSyncKeyRequest(self) -> Global___Message.AppStateSyncKeyRequest: ... - @_builtins.property - def initialSecurityNotificationSettingSync(self) -> Global___Message.InitialSecurityNotificationSettingSync: ... - @_builtins.property - def appStateFatalExceptionNotification(self) -> Global___Message.AppStateFatalExceptionNotification: ... - @_builtins.property - def disappearingMode(self) -> Global___DisappearingMode: ... - @_builtins.property - def editedMessage(self) -> Global___Message: ... - @_builtins.property - def peerDataOperationRequestMessage(self) -> Global___Message.PeerDataOperationRequestMessage: ... - @_builtins.property - def peerDataOperationRequestResponseMessage(self) -> Global___Message.PeerDataOperationRequestResponseMessage: ... - @_builtins.property - def botFeedbackMessage(self) -> Global___BotFeedbackMessage: ... - @_builtins.property - def requestWelcomeMessageMetadata(self) -> Global___Message.RequestWelcomeMessageMetadata: ... - @_builtins.property - def mediaNotifyMessage(self) -> Global___MediaNotifyMessage: ... - @_builtins.property - def cloudApiThreadControlNotification(self) -> Global___Message.CloudAPIThreadControlNotification: ... - @_builtins.property - def lidMigrationMappingSyncMessage(self) -> Global___LIDMigrationMappingSyncMessage: ... - @_builtins.property - def limitSharing(self) -> Global___LimitSharing: ... - @_builtins.property - def aiQueryFanout(self) -> Global___AIQueryFanout: ... - @_builtins.property - def memberLabel(self) -> Global___MemberLabel: ... - @_builtins.property - def aiMediaCollectionMessage(self) -> Global___AIMediaCollectionMessage: ... - @_builtins.property - def chatThemeSetting(self) -> Global___Message.ChatThemeSetting: ... - @_builtins.property - def aiMetadataOperation(self) -> Global___AIMetadataOperation: ... + STANZAID_FIELD_NUMBER: _builtins.int + MESSAGESECRETPROOF_FIELD_NUMBER: _builtins.int + stanzaId: _builtins.str + messageSecretProof: _builtins.bytes def __init__( self, *, - key: Global___MessageKey | None = ..., - type: Global___Message.ProtocolMessage.Type.ValueType | None = ..., - ephemeralExpiration: _builtins.int | None = ..., - ephemeralSettingTimestamp: _builtins.int | None = ..., - historySyncNotification: Global___Message.HistorySyncNotification | None = ..., - appStateSyncKeyShare: Global___Message.AppStateSyncKeyShare | None = ..., - appStateSyncKeyRequest: Global___Message.AppStateSyncKeyRequest | None = ..., - initialSecurityNotificationSettingSync: Global___Message.InitialSecurityNotificationSettingSync | None = ..., - appStateFatalExceptionNotification: Global___Message.AppStateFatalExceptionNotification | None = ..., - disappearingMode: Global___DisappearingMode | None = ..., - editedMessage: Global___Message | None = ..., - timestampMs: _builtins.int | None = ..., - peerDataOperationRequestMessage: Global___Message.PeerDataOperationRequestMessage | None = ..., - peerDataOperationRequestResponseMessage: Global___Message.PeerDataOperationRequestResponseMessage | None = ..., - botFeedbackMessage: Global___BotFeedbackMessage | None = ..., - invokerJid: _builtins.str | None = ..., - requestWelcomeMessageMetadata: Global___Message.RequestWelcomeMessageMetadata | None = ..., - mediaNotifyMessage: Global___MediaNotifyMessage | None = ..., - cloudApiThreadControlNotification: Global___Message.CloudAPIThreadControlNotification | None = ..., - lidMigrationMappingSyncMessage: Global___LIDMigrationMappingSyncMessage | None = ..., - limitSharing: Global___LimitSharing | None = ..., - aiPsiMetadata: _builtins.bytes | None = ..., - aiQueryFanout: Global___AIQueryFanout | None = ..., - memberLabel: Global___MemberLabel | None = ..., - aiMediaCollectionMessage: Global___AIMediaCollectionMessage | None = ..., - afterReadDuration: _builtins.int | None = ..., - chatThemeSetting: Global___Message.ChatThemeSetting | None = ..., - aiMetadataOperation: Global___AIMetadataOperation | None = ..., + stanzaId: _builtins.str | None = ..., + messageSecretProof: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["afterReadDuration", b"afterReadDuration", "aiMediaCollectionMessage", b"aiMediaCollectionMessage", "aiMetadataOperation", b"aiMetadataOperation", "aiPsiMetadata", b"aiPsiMetadata", "aiQueryFanout", b"aiQueryFanout", "appStateFatalExceptionNotification", b"appStateFatalExceptionNotification", "appStateSyncKeyRequest", b"appStateSyncKeyRequest", "appStateSyncKeyShare", b"appStateSyncKeyShare", "botFeedbackMessage", b"botFeedbackMessage", "chatThemeSetting", b"chatThemeSetting", "cloudApiThreadControlNotification", b"cloudApiThreadControlNotification", "disappearingMode", b"disappearingMode", "editedMessage", b"editedMessage", "ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "historySyncNotification", b"historySyncNotification", "initialSecurityNotificationSettingSync", b"initialSecurityNotificationSettingSync", "invokerJid", b"invokerJid", "key", b"key", "lidMigrationMappingSyncMessage", b"lidMigrationMappingSyncMessage", "limitSharing", b"limitSharing", "mediaNotifyMessage", b"mediaNotifyMessage", "memberLabel", b"memberLabel", "peerDataOperationRequestMessage", b"peerDataOperationRequestMessage", "peerDataOperationRequestResponseMessage", b"peerDataOperationRequestResponseMessage", "requestWelcomeMessageMetadata", b"requestWelcomeMessageMetadata", "timestampMs", b"timestampMs", "type", b"type"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["messageSecretProof", b"messageSecretProof", "stanzaId", b"stanzaId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["afterReadDuration", b"afterReadDuration", "aiMediaCollectionMessage", b"aiMediaCollectionMessage", "aiMetadataOperation", b"aiMetadataOperation", "aiPsiMetadata", b"aiPsiMetadata", "aiQueryFanout", b"aiQueryFanout", "appStateFatalExceptionNotification", b"appStateFatalExceptionNotification", "appStateSyncKeyRequest", b"appStateSyncKeyRequest", "appStateSyncKeyShare", b"appStateSyncKeyShare", "botFeedbackMessage", b"botFeedbackMessage", "chatThemeSetting", b"chatThemeSetting", "cloudApiThreadControlNotification", b"cloudApiThreadControlNotification", "disappearingMode", b"disappearingMode", "editedMessage", b"editedMessage", "ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "historySyncNotification", b"historySyncNotification", "initialSecurityNotificationSettingSync", b"initialSecurityNotificationSettingSync", "invokerJid", b"invokerJid", "key", b"key", "lidMigrationMappingSyncMessage", b"lidMigrationMappingSyncMessage", "limitSharing", b"limitSharing", "mediaNotifyMessage", b"mediaNotifyMessage", "memberLabel", b"memberLabel", "peerDataOperationRequestMessage", b"peerDataOperationRequestMessage", "peerDataOperationRequestResponseMessage", b"peerDataOperationRequestResponseMessage", "requestWelcomeMessageMetadata", b"requestWelcomeMessageMetadata", "timestampMs", b"timestampMs", "type", b"type"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["messageSecretProof", b"messageSecretProof", "stanzaId", b"stanzaId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class QuestionResponseMessage(_message.Message): + class HistorySyncMessageAccessStatus(_message.Message): DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - TEXT_FIELD_NUMBER: _builtins.int - text: _builtins.str - @_builtins.property - def key(self) -> Global___MessageKey: ... + COMPLETEACCESSGRANTED_FIELD_NUMBER: _builtins.int + completeAccessGranted: _builtins.bool def __init__( self, *, - key: Global___MessageKey | None = ..., - text: _builtins.str | None = ..., + completeAccessGranted: _builtins.bool | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "text", b"text"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["completeAccessGranted", b"completeAccessGranted"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "text", b"text"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["completeAccessGranted", b"completeAccessGranted"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class ReactionMessage(_message.Message): + class HistorySyncNotification(_message.Message): DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - TEXT_FIELD_NUMBER: _builtins.int - GROUPINGKEY_FIELD_NUMBER: _builtins.int - SENDERTIMESTAMPMS_FIELD_NUMBER: _builtins.int - text: _builtins.str - groupingKey: _builtins.str - senderTimestampMs: _builtins.int + FILESHA256_FIELD_NUMBER: _builtins.int + FILELENGTH_FIELD_NUMBER: _builtins.int + MEDIAKEY_FIELD_NUMBER: _builtins.int + FILEENCSHA256_FIELD_NUMBER: _builtins.int + DIRECTPATH_FIELD_NUMBER: _builtins.int + SYNCTYPE_FIELD_NUMBER: _builtins.int + CHUNKORDER_FIELD_NUMBER: _builtins.int + ORIGINALMESSAGEID_FIELD_NUMBER: _builtins.int + PROGRESS_FIELD_NUMBER: _builtins.int + OLDESTMSGINCHUNKTIMESTAMPSEC_FIELD_NUMBER: _builtins.int + INITIALHISTBOOTSTRAPINLINEPAYLOAD_FIELD_NUMBER: _builtins.int + PEERDATAREQUESTSESSIONID_FIELD_NUMBER: _builtins.int + FULLHISTORYSYNCONDEMANDREQUESTMETADATA_FIELD_NUMBER: _builtins.int + ENCHANDLE_FIELD_NUMBER: _builtins.int + MESSAGEACCESSSTATUS_FIELD_NUMBER: _builtins.int + fileSha256: _builtins.bytes + fileLength: _builtins.int + mediaKey: _builtins.bytes + fileEncSha256: _builtins.bytes + directPath: _builtins.str + syncType: Global___Message.HistorySyncType.ValueType + chunkOrder: _builtins.int + originalMessageId: _builtins.str + progress: _builtins.int + oldestMsgInChunkTimestampSec: _builtins.int + initialHistBootstrapInlinePayload: _builtins.bytes + peerDataRequestSessionId: _builtins.str + encHandle: _builtins.str @_builtins.property - def key(self) -> Global___MessageKey: ... + def fullHistorySyncOnDemandRequestMetadata(self) -> Global___Message.FullHistorySyncOnDemandRequestMetadata: ... + @_builtins.property + def messageAccessStatus(self) -> Global___Message.HistorySyncMessageAccessStatus: ... def __init__( self, *, - key: Global___MessageKey | None = ..., - text: _builtins.str | None = ..., - groupingKey: _builtins.str | None = ..., - senderTimestampMs: _builtins.int | None = ..., + fileSha256: _builtins.bytes | None = ..., + fileLength: _builtins.int | None = ..., + mediaKey: _builtins.bytes | None = ..., + fileEncSha256: _builtins.bytes | None = ..., + directPath: _builtins.str | None = ..., + syncType: Global___Message.HistorySyncType.ValueType | None = ..., + chunkOrder: _builtins.int | None = ..., + originalMessageId: _builtins.str | None = ..., + progress: _builtins.int | None = ..., + oldestMsgInChunkTimestampSec: _builtins.int | None = ..., + initialHistBootstrapInlinePayload: _builtins.bytes | None = ..., + peerDataRequestSessionId: _builtins.str | None = ..., + fullHistorySyncOnDemandRequestMetadata: Global___Message.FullHistorySyncOnDemandRequestMetadata | None = ..., + encHandle: _builtins.str | None = ..., + messageAccessStatus: Global___Message.HistorySyncMessageAccessStatus | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["groupingKey", b"groupingKey", "key", b"key", "senderTimestampMs", b"senderTimestampMs", "text", b"text"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["chunkOrder", b"chunkOrder", "directPath", b"directPath", "encHandle", b"encHandle", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "fullHistorySyncOnDemandRequestMetadata", b"fullHistorySyncOnDemandRequestMetadata", "initialHistBootstrapInlinePayload", b"initialHistBootstrapInlinePayload", "mediaKey", b"mediaKey", "messageAccessStatus", b"messageAccessStatus", "oldestMsgInChunkTimestampSec", b"oldestMsgInChunkTimestampSec", "originalMessageId", b"originalMessageId", "peerDataRequestSessionId", b"peerDataRequestSessionId", "progress", b"progress", "syncType", b"syncType"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["groupingKey", b"groupingKey", "key", b"key", "senderTimestampMs", b"senderTimestampMs", "text", b"text"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["chunkOrder", b"chunkOrder", "directPath", b"directPath", "encHandle", b"encHandle", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "fullHistorySyncOnDemandRequestMetadata", b"fullHistorySyncOnDemandRequestMetadata", "initialHistBootstrapInlinePayload", b"initialHistBootstrapInlinePayload", "mediaKey", b"mediaKey", "messageAccessStatus", b"messageAccessStatus", "oldestMsgInChunkTimestampSec", b"oldestMsgInChunkTimestampSec", "originalMessageId", b"originalMessageId", "peerDataRequestSessionId", b"peerDataRequestSessionId", "progress", b"progress", "syncType", b"syncType"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class RequestPaymentMessage(_message.Message): + class ImageMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - NOTEMESSAGE_FIELD_NUMBER: _builtins.int - CURRENCYCODEISO4217_FIELD_NUMBER: _builtins.int - AMOUNT1000_FIELD_NUMBER: _builtins.int - REQUESTFROM_FIELD_NUMBER: _builtins.int - EXPIRYTIMESTAMP_FIELD_NUMBER: _builtins.int - AMOUNT_FIELD_NUMBER: _builtins.int - BACKGROUND_FIELD_NUMBER: _builtins.int - currencyCodeIso4217: _builtins.str - amount1000: _builtins.int - requestFrom: _builtins.str - expiryTimestamp: _builtins.int - @_builtins.property - def noteMessage(self) -> Global___Message: ... - @_builtins.property - def amount(self) -> Global___Money: ... - @_builtins.property - def background(self) -> Global___PaymentBackground: ... - def __init__( - self, - *, - noteMessage: Global___Message | None = ..., - currencyCodeIso4217: _builtins.str | None = ..., - amount1000: _builtins.int | None = ..., - requestFrom: _builtins.str | None = ..., - expiryTimestamp: _builtins.int | None = ..., - amount: Global___Money | None = ..., - background: Global___PaymentBackground | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "amount1000", b"amount1000", "background", b"background", "currencyCodeIso4217", b"currencyCodeIso4217", "expiryTimestamp", b"expiryTimestamp", "noteMessage", b"noteMessage", "requestFrom", b"requestFrom"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "amount1000", b"amount1000", "background", b"background", "currencyCodeIso4217", b"currencyCodeIso4217", "expiryTimestamp", b"expiryTimestamp", "noteMessage", b"noteMessage", "requestFrom", b"requestFrom"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + class _ImageSourceType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - @_typing.final - class RequestPhoneNumberMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class _ImageSourceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ImageMessage._ImageSourceType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + USER_IMAGE: Message.ImageMessage._ImageSourceType.ValueType # 0 + AI_GENERATED: Message.ImageMessage._ImageSourceType.ValueType # 1 + AI_MODIFIED: Message.ImageMessage._ImageSourceType.ValueType # 2 + RASTERIZED_TEXT_STATUS: Message.ImageMessage._ImageSourceType.ValueType # 3 + + class ImageSourceType(_ImageSourceType, metaclass=_ImageSourceTypeEnumTypeWrapper): ... + USER_IMAGE: Message.ImageMessage.ImageSourceType.ValueType # 0 + AI_GENERATED: Message.ImageMessage.ImageSourceType.ValueType # 1 + AI_MODIFIED: Message.ImageMessage.ImageSourceType.ValueType # 2 + RASTERIZED_TEXT_STATUS: Message.ImageMessage.ImageSourceType.ValueType # 3 + URL_FIELD_NUMBER: _builtins.int + MIMETYPE_FIELD_NUMBER: _builtins.int + CAPTION_FIELD_NUMBER: _builtins.int + FILESHA256_FIELD_NUMBER: _builtins.int + FILELENGTH_FIELD_NUMBER: _builtins.int + HEIGHT_FIELD_NUMBER: _builtins.int + WIDTH_FIELD_NUMBER: _builtins.int + MEDIAKEY_FIELD_NUMBER: _builtins.int + FILEENCSHA256_FIELD_NUMBER: _builtins.int + INTERACTIVEANNOTATIONS_FIELD_NUMBER: _builtins.int + DIRECTPATH_FIELD_NUMBER: _builtins.int + MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int + JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int CONTEXTINFO_FIELD_NUMBER: _builtins.int + FIRSTSCANSIDECAR_FIELD_NUMBER: _builtins.int + FIRSTSCANLENGTH_FIELD_NUMBER: _builtins.int + EXPERIMENTGROUPID_FIELD_NUMBER: _builtins.int + SCANSSIDECAR_FIELD_NUMBER: _builtins.int + SCANLENGTHS_FIELD_NUMBER: _builtins.int + MIDQUALITYFILESHA256_FIELD_NUMBER: _builtins.int + MIDQUALITYFILEENCSHA256_FIELD_NUMBER: _builtins.int + VIEWONCE_FIELD_NUMBER: _builtins.int + THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int + THUMBNAILSHA256_FIELD_NUMBER: _builtins.int + THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int + STATICURL_FIELD_NUMBER: _builtins.int + ANNOTATIONS_FIELD_NUMBER: _builtins.int + IMAGESOURCETYPE_FIELD_NUMBER: _builtins.int + ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int + QRURL_FIELD_NUMBER: _builtins.int + url: _builtins.str + mimetype: _builtins.str + caption: _builtins.str + fileSha256: _builtins.bytes + fileLength: _builtins.int + height: _builtins.int + width: _builtins.int + mediaKey: _builtins.bytes + fileEncSha256: _builtins.bytes + directPath: _builtins.str + mediaKeyTimestamp: _builtins.int + jpegThumbnail: _builtins.bytes + firstScanSidecar: _builtins.bytes + firstScanLength: _builtins.int + experimentGroupId: _builtins.int + scansSidecar: _builtins.bytes + midQualityFileSha256: _builtins.bytes + midQualityFileEncSha256: _builtins.bytes + viewOnce: _builtins.bool + thumbnailDirectPath: _builtins.str + thumbnailSha256: _builtins.bytes + thumbnailEncSha256: _builtins.bytes + staticUrl: _builtins.str + imageSourceType: Global___Message.ImageMessage.ImageSourceType.ValueType + accessibilityLabel: _builtins.str + qrUrl: _builtins.str + @_builtins.property + def interactiveAnnotations(self) -> _containers.RepeatedCompositeFieldContainer[Global___InteractiveAnnotation]: ... @_builtins.property def contextInfo(self) -> Global___ContextInfo: ... + @_builtins.property + def scanLengths(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... + @_builtins.property + def annotations(self) -> _containers.RepeatedCompositeFieldContainer[Global___InteractiveAnnotation]: ... def __init__( self, *, + url: _builtins.str | None = ..., + mimetype: _builtins.str | None = ..., + caption: _builtins.str | None = ..., + fileSha256: _builtins.bytes | None = ..., + fileLength: _builtins.int | None = ..., + height: _builtins.int | None = ..., + width: _builtins.int | None = ..., + mediaKey: _builtins.bytes | None = ..., + fileEncSha256: _builtins.bytes | None = ..., + interactiveAnnotations: _abc.Iterable[Global___InteractiveAnnotation] | None = ..., + directPath: _builtins.str | None = ..., + mediaKeyTimestamp: _builtins.int | None = ..., + jpegThumbnail: _builtins.bytes | None = ..., contextInfo: Global___ContextInfo | None = ..., + firstScanSidecar: _builtins.bytes | None = ..., + firstScanLength: _builtins.int | None = ..., + experimentGroupId: _builtins.int | None = ..., + scansSidecar: _builtins.bytes | None = ..., + scanLengths: _abc.Iterable[_builtins.int] | None = ..., + midQualityFileSha256: _builtins.bytes | None = ..., + midQualityFileEncSha256: _builtins.bytes | None = ..., + viewOnce: _builtins.bool | None = ..., + thumbnailDirectPath: _builtins.str | None = ..., + thumbnailSha256: _builtins.bytes | None = ..., + thumbnailEncSha256: _builtins.bytes | None = ..., + staticUrl: _builtins.str | None = ..., + annotations: _abc.Iterable[Global___InteractiveAnnotation] | None = ..., + imageSourceType: Global___Message.ImageMessage.ImageSourceType.ValueType | None = ..., + accessibilityLabel: _builtins.str | None = ..., + qrUrl: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "experimentGroupId", b"experimentGroupId", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "firstScanLength", b"firstScanLength", "firstScanSidecar", b"firstScanSidecar", "height", b"height", "imageSourceType", b"imageSourceType", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "midQualityFileEncSha256", b"midQualityFileEncSha256", "midQualityFileSha256", b"midQualityFileSha256", "mimetype", b"mimetype", "qrUrl", b"qrUrl", "scansSidecar", b"scansSidecar", "staticUrl", b"staticUrl", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailSha256", b"thumbnailSha256", "url", b"url", "viewOnce", b"viewOnce", "width", b"width"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "annotations", b"annotations", "caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "experimentGroupId", b"experimentGroupId", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "firstScanLength", b"firstScanLength", "firstScanSidecar", b"firstScanSidecar", "height", b"height", "imageSourceType", b"imageSourceType", "interactiveAnnotations", b"interactiveAnnotations", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "midQualityFileEncSha256", b"midQualityFileEncSha256", "midQualityFileSha256", b"midQualityFileSha256", "mimetype", b"mimetype", "qrUrl", b"qrUrl", "scanLengths", b"scanLengths", "scansSidecar", b"scansSidecar", "staticUrl", b"staticUrl", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailSha256", b"thumbnailSha256", "url", b"url", "viewOnce", b"viewOnce", "width", b"width"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class RequestWelcomeMessageMetadata(_message.Message): + class InitialSecurityNotificationSettingSync(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _LocalChatState: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _LocalChatStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.RequestWelcomeMessageMetadata._LocalChatState.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - EMPTY: Message.RequestWelcomeMessageMetadata._LocalChatState.ValueType # 0 - NON_EMPTY: Message.RequestWelcomeMessageMetadata._LocalChatState.ValueType # 1 - - class LocalChatState(_LocalChatState, metaclass=_LocalChatStateEnumTypeWrapper): ... - EMPTY: Message.RequestWelcomeMessageMetadata.LocalChatState.ValueType # 0 - NON_EMPTY: Message.RequestWelcomeMessageMetadata.LocalChatState.ValueType # 1 - - class _WelcomeTrigger: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _WelcomeTriggerEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.RequestWelcomeMessageMetadata._WelcomeTrigger.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - CHAT_OPEN: Message.RequestWelcomeMessageMetadata._WelcomeTrigger.ValueType # 0 - COMPANION_PAIRING: Message.RequestWelcomeMessageMetadata._WelcomeTrigger.ValueType # 1 - - class WelcomeTrigger(_WelcomeTrigger, metaclass=_WelcomeTriggerEnumTypeWrapper): ... - CHAT_OPEN: Message.RequestWelcomeMessageMetadata.WelcomeTrigger.ValueType # 0 - COMPANION_PAIRING: Message.RequestWelcomeMessageMetadata.WelcomeTrigger.ValueType # 1 - - LOCALCHATSTATE_FIELD_NUMBER: _builtins.int - WELCOMETRIGGER_FIELD_NUMBER: _builtins.int - BOTAGENTMETADATA_FIELD_NUMBER: _builtins.int - localChatState: Global___Message.RequestWelcomeMessageMetadata.LocalChatState.ValueType - welcomeTrigger: Global___Message.RequestWelcomeMessageMetadata.WelcomeTrigger.ValueType - @_builtins.property - def botAgentMetadata(self) -> Global___BotAgentMetadata: ... + SECURITYNOTIFICATIONENABLED_FIELD_NUMBER: _builtins.int + securityNotificationEnabled: _builtins.bool def __init__( self, *, - localChatState: Global___Message.RequestWelcomeMessageMetadata.LocalChatState.ValueType | None = ..., - welcomeTrigger: Global___Message.RequestWelcomeMessageMetadata.WelcomeTrigger.ValueType | None = ..., - botAgentMetadata: Global___BotAgentMetadata | None = ..., + securityNotificationEnabled: _builtins.bool | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["botAgentMetadata", b"botAgentMetadata", "localChatState", b"localChatState", "welcomeTrigger", b"welcomeTrigger"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["securityNotificationEnabled", b"securityNotificationEnabled"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["botAgentMetadata", b"botAgentMetadata", "localChatState", b"localChatState", "welcomeTrigger", b"welcomeTrigger"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["securityNotificationEnabled", b"securityNotificationEnabled"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class RootSecretDistributeMessage(_message.Message): + class InteractiveMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - CHATJID_FIELD_NUMBER: _builtins.int - chatJid: _builtins.str - def __init__( - self, - *, - chatJid: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["chatJid", b"chatJid"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["chatJid", b"chatJid"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class BloksWidget(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class ScheduledCallCreationMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + UUID_FIELD_NUMBER: _builtins.int + DATA_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + FALLBACK_FIELD_NUMBER: _builtins.int + uuid: _builtins.str + data: _builtins.str + type: _builtins.str + fallback: _builtins.str + def __init__( + self, + *, + uuid: _builtins.str | None = ..., + data: _builtins.str | None = ..., + type: _builtins.str | None = ..., + fallback: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "fallback", b"fallback", "type", b"type", "uuid", b"uuid"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "fallback", b"fallback", "type", b"type", "uuid", b"uuid"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _CallType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + @_typing.final + class Body(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _CallTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ScheduledCallCreationMessage._CallType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message.ScheduledCallCreationMessage._CallType.ValueType # 0 - VOICE: Message.ScheduledCallCreationMessage._CallType.ValueType # 1 - VIDEO: Message.ScheduledCallCreationMessage._CallType.ValueType # 2 + TEXT_FIELD_NUMBER: _builtins.int + text: _builtins.str + def __init__( + self, + *, + text: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["text", b"text"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["text", b"text"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class CallType(_CallType, metaclass=_CallTypeEnumTypeWrapper): ... - UNKNOWN: Message.ScheduledCallCreationMessage.CallType.ValueType # 0 - VOICE: Message.ScheduledCallCreationMessage.CallType.ValueType # 1 - VIDEO: Message.ScheduledCallCreationMessage.CallType.ValueType # 2 + @_typing.final + class CarouselMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - SCHEDULEDTIMESTAMPMS_FIELD_NUMBER: _builtins.int - CALLTYPE_FIELD_NUMBER: _builtins.int - TITLE_FIELD_NUMBER: _builtins.int - scheduledTimestampMs: _builtins.int - callType: Global___Message.ScheduledCallCreationMessage.CallType.ValueType - title: _builtins.str - def __init__( - self, - *, - scheduledTimestampMs: _builtins.int | None = ..., - callType: Global___Message.ScheduledCallCreationMessage.CallType.ValueType | None = ..., - title: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["callType", b"callType", "scheduledTimestampMs", b"scheduledTimestampMs", "title", b"title"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["callType", b"callType", "scheduledTimestampMs", b"scheduledTimestampMs", "title", b"title"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class ScheduledCallEditMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - class _EditType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + class _CarouselCardType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - class _EditTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ScheduledCallEditMessage._EditType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message.ScheduledCallEditMessage._EditType.ValueType # 0 - CANCEL: Message.ScheduledCallEditMessage._EditType.ValueType # 1 + class _CarouselCardTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.InteractiveMessage.CarouselMessage._CarouselCardType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: Message.InteractiveMessage.CarouselMessage._CarouselCardType.ValueType # 0 + HSCROLL_CARDS: Message.InteractiveMessage.CarouselMessage._CarouselCardType.ValueType # 1 + ALBUM_IMAGE: Message.InteractiveMessage.CarouselMessage._CarouselCardType.ValueType # 2 - class EditType(_EditType, metaclass=_EditTypeEnumTypeWrapper): ... - UNKNOWN: Message.ScheduledCallEditMessage.EditType.ValueType # 0 - CANCEL: Message.ScheduledCallEditMessage.EditType.ValueType # 1 + class CarouselCardType(_CarouselCardType, metaclass=_CarouselCardTypeEnumTypeWrapper): ... + UNKNOWN: Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType # 0 + HSCROLL_CARDS: Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType # 1 + ALBUM_IMAGE: Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType # 2 - KEY_FIELD_NUMBER: _builtins.int - EDITTYPE_FIELD_NUMBER: _builtins.int - editType: Global___Message.ScheduledCallEditMessage.EditType.ValueType - @_builtins.property - def key(self) -> Global___MessageKey: ... - def __init__( - self, - *, - key: Global___MessageKey | None = ..., - editType: Global___Message.ScheduledCallEditMessage.EditType.ValueType | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["editType", b"editType", "key", b"key"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["editType", b"editType", "key", b"key"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + CARDS_FIELD_NUMBER: _builtins.int + MESSAGEVERSION_FIELD_NUMBER: _builtins.int + CAROUSELCARDTYPE_FIELD_NUMBER: _builtins.int + messageVersion: _builtins.int + carouselCardType: Global___Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType + @_builtins.property + def cards(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.InteractiveMessage]: ... + def __init__( + self, + *, + cards: _abc.Iterable[Global___Message.InteractiveMessage] | None = ..., + messageVersion: _builtins.int | None = ..., + carouselCardType: Global___Message.InteractiveMessage.CarouselMessage.CarouselCardType.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["carouselCardType", b"carouselCardType", "messageVersion", b"messageVersion"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["cards", b"cards", "carouselCardType", b"carouselCardType", "messageVersion", b"messageVersion"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class SecretEncryptedMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + @_typing.final + class CollectionMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _SecretEncType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + BIZJID_FIELD_NUMBER: _builtins.int + ID_FIELD_NUMBER: _builtins.int + MESSAGEVERSION_FIELD_NUMBER: _builtins.int + bizJid: _builtins.str + id: _builtins.str + messageVersion: _builtins.int + def __init__( + self, + *, + bizJid: _builtins.str | None = ..., + id: _builtins.str | None = ..., + messageVersion: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["bizJid", b"bizJid", "id", b"id", "messageVersion", b"messageVersion"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["bizJid", b"bizJid", "id", b"id", "messageVersion", b"messageVersion"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _SecretEncTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.SecretEncryptedMessage._SecretEncType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message.SecretEncryptedMessage._SecretEncType.ValueType # 0 - EVENT_EDIT: Message.SecretEncryptedMessage._SecretEncType.ValueType # 1 - MESSAGE_EDIT: Message.SecretEncryptedMessage._SecretEncType.ValueType # 2 - MESSAGE_SCHEDULE: Message.SecretEncryptedMessage._SecretEncType.ValueType # 3 - POLL_EDIT: Message.SecretEncryptedMessage._SecretEncType.ValueType # 4 - POLL_ADD_OPTION: Message.SecretEncryptedMessage._SecretEncType.ValueType # 5 + @_typing.final + class Footer(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class SecretEncType(_SecretEncType, metaclass=_SecretEncTypeEnumTypeWrapper): ... - UNKNOWN: Message.SecretEncryptedMessage.SecretEncType.ValueType # 0 - EVENT_EDIT: Message.SecretEncryptedMessage.SecretEncType.ValueType # 1 - MESSAGE_EDIT: Message.SecretEncryptedMessage.SecretEncType.ValueType # 2 - MESSAGE_SCHEDULE: Message.SecretEncryptedMessage.SecretEncType.ValueType # 3 - POLL_EDIT: Message.SecretEncryptedMessage.SecretEncType.ValueType # 4 - POLL_ADD_OPTION: Message.SecretEncryptedMessage.SecretEncType.ValueType # 5 + TEXT_FIELD_NUMBER: _builtins.int + HASMEDIAATTACHMENT_FIELD_NUMBER: _builtins.int + AUDIOMESSAGE_FIELD_NUMBER: _builtins.int + text: _builtins.str + hasMediaAttachment: _builtins.bool + @_builtins.property + def audioMessage(self) -> Global___Message.AudioMessage: ... + def __init__( + self, + *, + text: _builtins.str | None = ..., + hasMediaAttachment: _builtins.bool | None = ..., + audioMessage: Global___Message.AudioMessage | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["audioMessage", b"audioMessage", "hasMediaAttachment", b"hasMediaAttachment", "media", b"media", "text", b"text"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["audioMessage", b"audioMessage", "hasMediaAttachment", b"hasMediaAttachment", "media", b"media", "text", b"text"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_media: _TypeAlias = _typing.Literal["audioMessage"] # noqa: Y015 + _WhichOneofArgType_media: _TypeAlias = _typing.Literal["media", b"media"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_media) -> _WhichOneofReturnType_media | None: ... - TARGETMESSAGEKEY_FIELD_NUMBER: _builtins.int - ENCPAYLOAD_FIELD_NUMBER: _builtins.int - ENCIV_FIELD_NUMBER: _builtins.int - SECRETENCTYPE_FIELD_NUMBER: _builtins.int - REMOTEKEYID_FIELD_NUMBER: _builtins.int - encPayload: _builtins.bytes - encIv: _builtins.bytes - secretEncType: Global___Message.SecretEncryptedMessage.SecretEncType.ValueType - remoteKeyId: _builtins.str - @_builtins.property - def targetMessageKey(self) -> Global___MessageKey: ... - def __init__( - self, - *, - targetMessageKey: Global___MessageKey | None = ..., - encPayload: _builtins.bytes | None = ..., - encIv: _builtins.bytes | None = ..., - secretEncType: Global___Message.SecretEncryptedMessage.SecretEncType.ValueType | None = ..., - remoteKeyId: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "remoteKeyId", b"remoteKeyId", "secretEncType", b"secretEncType", "targetMessageKey", b"targetMessageKey"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "remoteKeyId", b"remoteKeyId", "secretEncType", b"secretEncType", "targetMessageKey", b"targetMessageKey"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class Header(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class SendPaymentMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + TITLE_FIELD_NUMBER: _builtins.int + SUBTITLE_FIELD_NUMBER: _builtins.int + HASMEDIAATTACHMENT_FIELD_NUMBER: _builtins.int + BLOKSWIDGET_FIELD_NUMBER: _builtins.int + DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int + IMAGEMESSAGE_FIELD_NUMBER: _builtins.int + JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int + VIDEOMESSAGE_FIELD_NUMBER: _builtins.int + LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int + PRODUCTMESSAGE_FIELD_NUMBER: _builtins.int + title: _builtins.str + subtitle: _builtins.str + hasMediaAttachment: _builtins.bool + jpegThumbnail: _builtins.bytes + @_builtins.property + def bloksWidget(self) -> Global___Message.InteractiveMessage.BloksWidget: ... + @_builtins.property + def documentMessage(self) -> Global___Message.DocumentMessage: ... + @_builtins.property + def imageMessage(self) -> Global___Message.ImageMessage: ... + @_builtins.property + def videoMessage(self) -> Global___Message.VideoMessage: ... + @_builtins.property + def locationMessage(self) -> Global___Message.LocationMessage: ... + @_builtins.property + def productMessage(self) -> Global___Message.ProductMessage: ... + def __init__( + self, + *, + title: _builtins.str | None = ..., + subtitle: _builtins.str | None = ..., + hasMediaAttachment: _builtins.bool | None = ..., + bloksWidget: Global___Message.InteractiveMessage.BloksWidget | None = ..., + documentMessage: Global___Message.DocumentMessage | None = ..., + imageMessage: Global___Message.ImageMessage | None = ..., + jpegThumbnail: _builtins.bytes | None = ..., + videoMessage: Global___Message.VideoMessage | None = ..., + locationMessage: Global___Message.LocationMessage | None = ..., + productMessage: Global___Message.ProductMessage | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["bloksWidget", b"bloksWidget", "documentMessage", b"documentMessage", "hasMediaAttachment", b"hasMediaAttachment", "imageMessage", b"imageMessage", "jpegThumbnail", b"jpegThumbnail", "locationMessage", b"locationMessage", "media", b"media", "productMessage", b"productMessage", "subtitle", b"subtitle", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["bloksWidget", b"bloksWidget", "documentMessage", b"documentMessage", "hasMediaAttachment", b"hasMediaAttachment", "imageMessage", b"imageMessage", "jpegThumbnail", b"jpegThumbnail", "locationMessage", b"locationMessage", "media", b"media", "productMessage", b"productMessage", "subtitle", b"subtitle", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_media: _TypeAlias = _typing.Literal["documentMessage", "imageMessage", "jpegThumbnail", "videoMessage", "locationMessage", "productMessage"] # noqa: Y015 + _WhichOneofArgType_media: _TypeAlias = _typing.Literal["media", b"media"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_media) -> _WhichOneofReturnType_media | None: ... - NOTEMESSAGE_FIELD_NUMBER: _builtins.int - REQUESTMESSAGEKEY_FIELD_NUMBER: _builtins.int - BACKGROUND_FIELD_NUMBER: _builtins.int - TRANSACTIONDATA_FIELD_NUMBER: _builtins.int - transactionData: _builtins.str - @_builtins.property - def noteMessage(self) -> Global___Message: ... - @_builtins.property - def requestMessageKey(self) -> Global___MessageKey: ... - @_builtins.property - def background(self) -> Global___PaymentBackground: ... - def __init__( - self, - *, - noteMessage: Global___Message | None = ..., - requestMessageKey: Global___MessageKey | None = ..., - background: Global___PaymentBackground | None = ..., - transactionData: _builtins.str | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["background", b"background", "noteMessage", b"noteMessage", "requestMessageKey", b"requestMessageKey", "transactionData", b"transactionData"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["background", b"background", "noteMessage", b"noteMessage", "requestMessageKey", b"requestMessageKey", "transactionData", b"transactionData"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class NativeFlowMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class SenderKeyDistributionMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + @_typing.final + class NativeFlowButton(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - GROUPID_FIELD_NUMBER: _builtins.int - AXOLOTLSENDERKEYDISTRIBUTIONMESSAGE_FIELD_NUMBER: _builtins.int - groupId: _builtins.str - axolotlSenderKeyDistributionMessage: _builtins.bytes - def __init__( - self, - *, - groupId: _builtins.str | None = ..., - axolotlSenderKeyDistributionMessage: _builtins.bytes | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["axolotlSenderKeyDistributionMessage", b"axolotlSenderKeyDistributionMessage", "groupId", b"groupId"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["axolotlSenderKeyDistributionMessage", b"axolotlSenderKeyDistributionMessage", "groupId", b"groupId"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + NAME_FIELD_NUMBER: _builtins.int + BUTTONPARAMSJSON_FIELD_NUMBER: _builtins.int + name: _builtins.str + buttonParamsJson: _builtins.str + def __init__( + self, + *, + name: _builtins.str | None = ..., + buttonParamsJson: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["buttonParamsJson", b"buttonParamsJson", "name", b"name"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["buttonParamsJson", b"buttonParamsJson", "name", b"name"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @_typing.final - class SplitPaymentMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + BUTTONS_FIELD_NUMBER: _builtins.int + MESSAGEPARAMSJSON_FIELD_NUMBER: _builtins.int + MESSAGEVERSION_FIELD_NUMBER: _builtins.int + messageParamsJson: _builtins.str + messageVersion: _builtins.int + @_builtins.property + def buttons(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.InteractiveMessage.NativeFlowMessage.NativeFlowButton]: ... + def __init__( + self, + *, + buttons: _abc.Iterable[Global___Message.InteractiveMessage.NativeFlowMessage.NativeFlowButton] | None = ..., + messageParamsJson: _builtins.str | None = ..., + messageVersion: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["messageParamsJson", b"messageParamsJson", "messageVersion", b"messageVersion"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["buttons", b"buttons", "messageParamsJson", b"messageParamsJson", "messageVersion", b"messageVersion"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - SPLITID_FIELD_NUMBER: _builtins.int - TOTALAMOUNT_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - REQUESTERJID_FIELD_NUMBER: _builtins.int - PARTICIPANTS_FIELD_NUMBER: _builtins.int - CREATEDATMS_FIELD_NUMBER: _builtins.int + @_typing.final + class ShopMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _Surface: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _SurfaceEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.InteractiveMessage.ShopMessage._Surface.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN_SURFACE: Message.InteractiveMessage.ShopMessage._Surface.ValueType # 0 + FB: Message.InteractiveMessage.ShopMessage._Surface.ValueType # 1 + IG: Message.InteractiveMessage.ShopMessage._Surface.ValueType # 2 + WA: Message.InteractiveMessage.ShopMessage._Surface.ValueType # 3 + + class Surface(_Surface, metaclass=_SurfaceEnumTypeWrapper): ... + UNKNOWN_SURFACE: Message.InteractiveMessage.ShopMessage.Surface.ValueType # 0 + FB: Message.InteractiveMessage.ShopMessage.Surface.ValueType # 1 + IG: Message.InteractiveMessage.ShopMessage.Surface.ValueType # 2 + WA: Message.InteractiveMessage.ShopMessage.Surface.ValueType # 3 + + ID_FIELD_NUMBER: _builtins.int + SURFACE_FIELD_NUMBER: _builtins.int + MESSAGEVERSION_FIELD_NUMBER: _builtins.int + id: _builtins.str + surface: Global___Message.InteractiveMessage.ShopMessage.Surface.ValueType + messageVersion: _builtins.int + def __init__( + self, + *, + id: _builtins.str | None = ..., + surface: Global___Message.InteractiveMessage.ShopMessage.Surface.ValueType | None = ..., + messageVersion: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["id", b"id", "messageVersion", b"messageVersion", "surface", b"surface"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["id", b"id", "messageVersion", b"messageVersion", "surface", b"surface"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + HEADER_FIELD_NUMBER: _builtins.int + BODY_FIELD_NUMBER: _builtins.int + FOOTER_FIELD_NUMBER: _builtins.int + BLOKSWIDGET_FIELD_NUMBER: _builtins.int CONTEXTINFO_FIELD_NUMBER: _builtins.int - splitId: _builtins.str - description: _builtins.str - requesterJid: _builtins.str - createdAtMs: _builtins.int + URLTRACKINGMAP_FIELD_NUMBER: _builtins.int + SHOPSTOREFRONTMESSAGE_FIELD_NUMBER: _builtins.int + COLLECTIONMESSAGE_FIELD_NUMBER: _builtins.int + NATIVEFLOWMESSAGE_FIELD_NUMBER: _builtins.int + CAROUSELMESSAGE_FIELD_NUMBER: _builtins.int @_builtins.property - def totalAmount(self) -> Global___Money: ... + def header(self) -> Global___Message.InteractiveMessage.Header: ... @_builtins.property - def participants(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.SplitPaymentParticipant]: ... + def body(self) -> Global___Message.InteractiveMessage.Body: ... + @_builtins.property + def footer(self) -> Global___Message.InteractiveMessage.Footer: ... + @_builtins.property + def bloksWidget(self) -> Global___Message.InteractiveMessage.BloksWidget: ... @_builtins.property def contextInfo(self) -> Global___ContextInfo: ... + @_builtins.property + def urlTrackingMap(self) -> Global___UrlTrackingMap: ... + @_builtins.property + def shopStorefrontMessage(self) -> Global___Message.InteractiveMessage.ShopMessage: ... + @_builtins.property + def collectionMessage(self) -> Global___Message.InteractiveMessage.CollectionMessage: ... + @_builtins.property + def nativeFlowMessage(self) -> Global___Message.InteractiveMessage.NativeFlowMessage: ... + @_builtins.property + def carouselMessage(self) -> Global___Message.InteractiveMessage.CarouselMessage: ... def __init__( self, *, - splitId: _builtins.str | None = ..., - totalAmount: Global___Money | None = ..., - description: _builtins.str | None = ..., - requesterJid: _builtins.str | None = ..., - participants: _abc.Iterable[Global___Message.SplitPaymentParticipant] | None = ..., - createdAtMs: _builtins.int | None = ..., + header: Global___Message.InteractiveMessage.Header | None = ..., + body: Global___Message.InteractiveMessage.Body | None = ..., + footer: Global___Message.InteractiveMessage.Footer | None = ..., + bloksWidget: Global___Message.InteractiveMessage.BloksWidget | None = ..., contextInfo: Global___ContextInfo | None = ..., + urlTrackingMap: Global___UrlTrackingMap | None = ..., + shopStorefrontMessage: Global___Message.InteractiveMessage.ShopMessage | None = ..., + collectionMessage: Global___Message.InteractiveMessage.CollectionMessage | None = ..., + nativeFlowMessage: Global___Message.InteractiveMessage.NativeFlowMessage | None = ..., + carouselMessage: Global___Message.InteractiveMessage.CarouselMessage | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "createdAtMs", b"createdAtMs", "description", b"description", "requesterJid", b"requesterJid", "splitId", b"splitId", "totalAmount", b"totalAmount"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["bloksWidget", b"bloksWidget", "body", b"body", "carouselMessage", b"carouselMessage", "collectionMessage", b"collectionMessage", "contextInfo", b"contextInfo", "footer", b"footer", "header", b"header", "interactiveMessage", b"interactiveMessage", "nativeFlowMessage", b"nativeFlowMessage", "shopStorefrontMessage", b"shopStorefrontMessage", "urlTrackingMap", b"urlTrackingMap"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "createdAtMs", b"createdAtMs", "description", b"description", "participants", b"participants", "requesterJid", b"requesterJid", "splitId", b"splitId", "totalAmount", b"totalAmount"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["bloksWidget", b"bloksWidget", "body", b"body", "carouselMessage", b"carouselMessage", "collectionMessage", b"collectionMessage", "contextInfo", b"contextInfo", "footer", b"footer", "header", b"header", "interactiveMessage", b"interactiveMessage", "nativeFlowMessage", b"nativeFlowMessage", "shopStorefrontMessage", b"shopStorefrontMessage", "urlTrackingMap", b"urlTrackingMap"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_interactiveMessage: _TypeAlias = _typing.Literal["shopStorefrontMessage", "collectionMessage", "nativeFlowMessage", "carouselMessage"] # noqa: Y015 + _WhichOneofArgType_interactiveMessage: _TypeAlias = _typing.Literal["interactiveMessage", b"interactiveMessage"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_interactiveMessage) -> _WhichOneofReturnType_interactiveMessage | None: ... @_typing.final - class SplitPaymentParticipant(_message.Message): + class InteractiveResponseMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _SplitPaymentStatus: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + @_typing.final + class Body(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class _SplitPaymentStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.SplitPaymentParticipant._SplitPaymentStatus.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - PENDING: Message.SplitPaymentParticipant._SplitPaymentStatus.ValueType # 0 - PAID: Message.SplitPaymentParticipant._SplitPaymentStatus.ValueType # 1 + class _Format: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - class SplitPaymentStatus(_SplitPaymentStatus, metaclass=_SplitPaymentStatusEnumTypeWrapper): ... - PENDING: Message.SplitPaymentParticipant.SplitPaymentStatus.ValueType # 0 - PAID: Message.SplitPaymentParticipant.SplitPaymentStatus.ValueType # 1 + class _FormatEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.InteractiveResponseMessage.Body._Format.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + DEFAULT: Message.InteractiveResponseMessage.Body._Format.ValueType # 0 + EXTENSIONS_1: Message.InteractiveResponseMessage.Body._Format.ValueType # 1 - JID_FIELD_NUMBER: _builtins.int - AMOUNT_FIELD_NUMBER: _builtins.int - STATUS_FIELD_NUMBER: _builtins.int - jid: _builtins.str - status: Global___Message.SplitPaymentParticipant.SplitPaymentStatus.ValueType + class Format(_Format, metaclass=_FormatEnumTypeWrapper): ... + DEFAULT: Message.InteractiveResponseMessage.Body.Format.ValueType # 0 + EXTENSIONS_1: Message.InteractiveResponseMessage.Body.Format.ValueType # 1 + + TEXT_FIELD_NUMBER: _builtins.int + FORMAT_FIELD_NUMBER: _builtins.int + text: _builtins.str + format: Global___Message.InteractiveResponseMessage.Body.Format.ValueType + def __init__( + self, + *, + text: _builtins.str | None = ..., + format: Global___Message.InteractiveResponseMessage.Body.Format.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["format", b"format", "text", b"text"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["format", b"format", "text", b"text"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class NativeFlowResponseMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + NAME_FIELD_NUMBER: _builtins.int + PARAMSJSON_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + name: _builtins.str + paramsJson: _builtins.str + version: _builtins.int + def __init__( + self, + *, + name: _builtins.str | None = ..., + paramsJson: _builtins.str | None = ..., + version: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "paramsJson", b"paramsJson", "version", b"version"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "paramsJson", b"paramsJson", "version", b"version"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + BODY_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + NATIVEFLOWRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int @_builtins.property - def amount(self) -> Global___Money: ... + def body(self) -> Global___Message.InteractiveResponseMessage.Body: ... + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + @_builtins.property + def nativeFlowResponseMessage(self) -> Global___Message.InteractiveResponseMessage.NativeFlowResponseMessage: ... def __init__( self, *, - jid: _builtins.str | None = ..., - amount: Global___Money | None = ..., - status: Global___Message.SplitPaymentParticipant.SplitPaymentStatus.ValueType | None = ..., + body: Global___Message.InteractiveResponseMessage.Body | None = ..., + contextInfo: Global___ContextInfo | None = ..., + nativeFlowResponseMessage: Global___Message.InteractiveResponseMessage.NativeFlowResponseMessage | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "jid", b"jid", "status", b"status"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "contextInfo", b"contextInfo", "interactiveResponseMessage", b"interactiveResponseMessage", "nativeFlowResponseMessage", b"nativeFlowResponseMessage"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "jid", b"jid", "status", b"status"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "contextInfo", b"contextInfo", "interactiveResponseMessage", b"interactiveResponseMessage", "nativeFlowResponseMessage", b"nativeFlowResponseMessage"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_interactiveResponseMessage: _TypeAlias = _typing.Literal["nativeFlowResponseMessage"] # noqa: Y015 + _WhichOneofArgType_interactiveResponseMessage: _TypeAlias = _typing.Literal["interactiveResponseMessage", b"interactiveResponseMessage"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_interactiveResponseMessage) -> _WhichOneofReturnType_interactiveResponseMessage | None: ... @_typing.final - class StatusNotificationMessage(_message.Message): + class InvoiceMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _StatusNotificationType: + class _AttachmentType: ValueType = _typing.NewType("ValueType", _builtins.int) V: _TypeAlias = ValueType # noqa: Y015 - class _StatusNotificationTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StatusNotificationMessage._StatusNotificationType.ValueType], _builtins.type): + class _AttachmentTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.InvoiceMessage._AttachmentType.ValueType], _builtins.type): DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 0 - STATUS_ADD_YOURS: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 1 - STATUS_RESHARE: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 2 - STATUS_QUESTION_ANSWER_RESHARE: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 3 + IMAGE: Message.InvoiceMessage._AttachmentType.ValueType # 0 + PDF: Message.InvoiceMessage._AttachmentType.ValueType # 1 - class StatusNotificationType(_StatusNotificationType, metaclass=_StatusNotificationTypeEnumTypeWrapper): ... - UNKNOWN: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 0 - STATUS_ADD_YOURS: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 1 - STATUS_RESHARE: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 2 - STATUS_QUESTION_ANSWER_RESHARE: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 3 + class AttachmentType(_AttachmentType, metaclass=_AttachmentTypeEnumTypeWrapper): ... + IMAGE: Message.InvoiceMessage.AttachmentType.ValueType # 0 + PDF: Message.InvoiceMessage.AttachmentType.ValueType # 1 - RESPONSEMESSAGEKEY_FIELD_NUMBER: _builtins.int - ORIGINALMESSAGEKEY_FIELD_NUMBER: _builtins.int - TYPE_FIELD_NUMBER: _builtins.int - type: Global___Message.StatusNotificationMessage.StatusNotificationType.ValueType - @_builtins.property - def responseMessageKey(self) -> Global___MessageKey: ... - @_builtins.property - def originalMessageKey(self) -> Global___MessageKey: ... + NOTE_FIELD_NUMBER: _builtins.int + TOKEN_FIELD_NUMBER: _builtins.int + ATTACHMENTTYPE_FIELD_NUMBER: _builtins.int + ATTACHMENTMIMETYPE_FIELD_NUMBER: _builtins.int + ATTACHMENTMEDIAKEY_FIELD_NUMBER: _builtins.int + ATTACHMENTMEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int + ATTACHMENTFILESHA256_FIELD_NUMBER: _builtins.int + ATTACHMENTFILEENCSHA256_FIELD_NUMBER: _builtins.int + ATTACHMENTDIRECTPATH_FIELD_NUMBER: _builtins.int + ATTACHMENTJPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int + note: _builtins.str + token: _builtins.str + attachmentType: Global___Message.InvoiceMessage.AttachmentType.ValueType + attachmentMimetype: _builtins.str + attachmentMediaKey: _builtins.bytes + attachmentMediaKeyTimestamp: _builtins.int + attachmentFileSha256: _builtins.bytes + attachmentFileEncSha256: _builtins.bytes + attachmentDirectPath: _builtins.str + attachmentJpegThumbnail: _builtins.bytes def __init__( self, *, - responseMessageKey: Global___MessageKey | None = ..., - originalMessageKey: Global___MessageKey | None = ..., - type: Global___Message.StatusNotificationMessage.StatusNotificationType.ValueType | None = ..., + note: _builtins.str | None = ..., + token: _builtins.str | None = ..., + attachmentType: Global___Message.InvoiceMessage.AttachmentType.ValueType | None = ..., + attachmentMimetype: _builtins.str | None = ..., + attachmentMediaKey: _builtins.bytes | None = ..., + attachmentMediaKeyTimestamp: _builtins.int | None = ..., + attachmentFileSha256: _builtins.bytes | None = ..., + attachmentFileEncSha256: _builtins.bytes | None = ..., + attachmentDirectPath: _builtins.str | None = ..., + attachmentJpegThumbnail: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["originalMessageKey", b"originalMessageKey", "responseMessageKey", b"responseMessageKey", "type", b"type"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["attachmentDirectPath", b"attachmentDirectPath", "attachmentFileEncSha256", b"attachmentFileEncSha256", "attachmentFileSha256", b"attachmentFileSha256", "attachmentJpegThumbnail", b"attachmentJpegThumbnail", "attachmentMediaKey", b"attachmentMediaKey", "attachmentMediaKeyTimestamp", b"attachmentMediaKeyTimestamp", "attachmentMimetype", b"attachmentMimetype", "attachmentType", b"attachmentType", "note", b"note", "token", b"token"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["originalMessageKey", b"originalMessageKey", "responseMessageKey", b"responseMessageKey", "type", b"type"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["attachmentDirectPath", b"attachmentDirectPath", "attachmentFileEncSha256", b"attachmentFileEncSha256", "attachmentFileSha256", b"attachmentFileSha256", "attachmentJpegThumbnail", b"attachmentJpegThumbnail", "attachmentMediaKey", b"attachmentMediaKey", "attachmentMediaKeyTimestamp", b"attachmentMediaKeyTimestamp", "attachmentMimetype", b"attachmentMimetype", "attachmentType", b"attachmentType", "note", b"note", "token", b"token"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class StatusQuestionAnswerMessage(_message.Message): + class KeepInChatMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor KEY_FIELD_NUMBER: _builtins.int - TEXT_FIELD_NUMBER: _builtins.int - text: _builtins.str + KEEPTYPE_FIELD_NUMBER: _builtins.int + TIMESTAMPMS_FIELD_NUMBER: _builtins.int + keepType: Global___KeepType.ValueType + timestampMs: _builtins.int @_builtins.property def key(self) -> Global___MessageKey: ... def __init__( self, *, key: Global___MessageKey | None = ..., - text: _builtins.str | None = ..., + keepType: Global___KeepType.ValueType | None = ..., + timestampMs: _builtins.int | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "text", b"text"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["keepType", b"keepType", "key", b"key", "timestampMs", b"timestampMs"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "text", b"text"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["keepType", b"keepType", "key", b"key", "timestampMs", b"timestampMs"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class StatusQuotedMessage(_message.Message): + class LinkPreviewMetadata(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _StatusQuotedMessageType: + class _SocialMediaPostType: ValueType = _typing.NewType("ValueType", _builtins.int) V: _TypeAlias = ValueType # noqa: Y015 - class _StatusQuotedMessageTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StatusQuotedMessage._StatusQuotedMessageType.ValueType], _builtins.type): + class _SocialMediaPostTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.LinkPreviewMetadata._SocialMediaPostType.ValueType], _builtins.type): DESCRIPTOR: _descriptor.EnumDescriptor - QUESTION_ANSWER: Message.StatusQuotedMessage._StatusQuotedMessageType.ValueType # 1 + NONE: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 0 + REEL: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 1 + LIVE_VIDEO: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 2 + LONG_VIDEO: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 3 + SINGLE_IMAGE: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 4 + CAROUSEL: Message.LinkPreviewMetadata._SocialMediaPostType.ValueType # 5 - class StatusQuotedMessageType(_StatusQuotedMessageType, metaclass=_StatusQuotedMessageTypeEnumTypeWrapper): ... - QUESTION_ANSWER: Message.StatusQuotedMessage.StatusQuotedMessageType.ValueType # 1 + class SocialMediaPostType(_SocialMediaPostType, metaclass=_SocialMediaPostTypeEnumTypeWrapper): ... + NONE: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 0 + REEL: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 1 + LIVE_VIDEO: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 2 + LONG_VIDEO: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 3 + SINGLE_IMAGE: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 4 + CAROUSEL: Message.LinkPreviewMetadata.SocialMediaPostType.ValueType # 5 - TYPE_FIELD_NUMBER: _builtins.int - TEXT_FIELD_NUMBER: _builtins.int - THUMBNAIL_FIELD_NUMBER: _builtins.int - ORIGINALSTATUSID_FIELD_NUMBER: _builtins.int - type: Global___Message.StatusQuotedMessage.StatusQuotedMessageType.ValueType - text: _builtins.str - thumbnail: _builtins.bytes + PAYMENTLINKMETADATA_FIELD_NUMBER: _builtins.int + URLMETADATA_FIELD_NUMBER: _builtins.int + FBEXPERIMENTID_FIELD_NUMBER: _builtins.int + LINKMEDIADURATION_FIELD_NUMBER: _builtins.int + SOCIALMEDIAPOSTTYPE_FIELD_NUMBER: _builtins.int + LINKINLINEVIDEOMUTED_FIELD_NUMBER: _builtins.int + VIDEOCONTENTURL_FIELD_NUMBER: _builtins.int + MUSICMETADATA_FIELD_NUMBER: _builtins.int + VIDEOCONTENTCAPTION_FIELD_NUMBER: _builtins.int + fbExperimentId: _builtins.int + linkMediaDuration: _builtins.int + socialMediaPostType: Global___Message.LinkPreviewMetadata.SocialMediaPostType.ValueType + linkInlineVideoMuted: _builtins.bool + videoContentUrl: _builtins.str + videoContentCaption: _builtins.str @_builtins.property - def originalStatusId(self) -> Global___MessageKey: ... - def __init__( - self, - *, - type: Global___Message.StatusQuotedMessage.StatusQuotedMessageType.ValueType | None = ..., - text: _builtins.str | None = ..., - thumbnail: _builtins.bytes | None = ..., - originalStatusId: Global___MessageKey | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["originalStatusId", b"originalStatusId", "text", b"text", "thumbnail", b"thumbnail", "type", b"type"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["originalStatusId", b"originalStatusId", "text", b"text", "thumbnail", b"thumbnail", "type", b"type"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class StatusStickerInteractionMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - class _StatusStickerType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _StatusStickerTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StatusStickerInteractionMessage._StatusStickerType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: Message.StatusStickerInteractionMessage._StatusStickerType.ValueType # 0 - REACTION: Message.StatusStickerInteractionMessage._StatusStickerType.ValueType # 1 - - class StatusStickerType(_StatusStickerType, metaclass=_StatusStickerTypeEnumTypeWrapper): ... - UNKNOWN: Message.StatusStickerInteractionMessage.StatusStickerType.ValueType # 0 - REACTION: Message.StatusStickerInteractionMessage.StatusStickerType.ValueType # 1 - - KEY_FIELD_NUMBER: _builtins.int - STICKERKEY_FIELD_NUMBER: _builtins.int - TYPE_FIELD_NUMBER: _builtins.int - stickerKey: _builtins.str - type: Global___Message.StatusStickerInteractionMessage.StatusStickerType.ValueType + def paymentLinkMetadata(self) -> Global___Message.PaymentLinkMetadata: ... @_builtins.property - def key(self) -> Global___MessageKey: ... - def __init__( - self, - *, - key: Global___MessageKey | None = ..., - stickerKey: _builtins.str | None = ..., - type: Global___Message.StatusStickerInteractionMessage.StatusStickerType.ValueType | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "stickerKey", b"stickerKey", "type", b"type"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "stickerKey", b"stickerKey", "type", b"type"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class StickerMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - URL_FIELD_NUMBER: _builtins.int - FILESHA256_FIELD_NUMBER: _builtins.int - FILEENCSHA256_FIELD_NUMBER: _builtins.int - MEDIAKEY_FIELD_NUMBER: _builtins.int - MIMETYPE_FIELD_NUMBER: _builtins.int - HEIGHT_FIELD_NUMBER: _builtins.int - WIDTH_FIELD_NUMBER: _builtins.int - DIRECTPATH_FIELD_NUMBER: _builtins.int - FILELENGTH_FIELD_NUMBER: _builtins.int - MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int - FIRSTFRAMELENGTH_FIELD_NUMBER: _builtins.int - FIRSTFRAMESIDECAR_FIELD_NUMBER: _builtins.int - ISANIMATED_FIELD_NUMBER: _builtins.int - PNGTHUMBNAIL_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - STICKERSENTTS_FIELD_NUMBER: _builtins.int - ISAVATAR_FIELD_NUMBER: _builtins.int - ISAISTICKER_FIELD_NUMBER: _builtins.int - ISLOTTIE_FIELD_NUMBER: _builtins.int - ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int - PREMIUM_FIELD_NUMBER: _builtins.int - EMOJIS_FIELD_NUMBER: _builtins.int - url: _builtins.str - fileSha256: _builtins.bytes - fileEncSha256: _builtins.bytes - mediaKey: _builtins.bytes - mimetype: _builtins.str - height: _builtins.int - width: _builtins.int - directPath: _builtins.str - fileLength: _builtins.int - mediaKeyTimestamp: _builtins.int - firstFrameLength: _builtins.int - firstFrameSidecar: _builtins.bytes - isAnimated: _builtins.bool - pngThumbnail: _builtins.bytes - stickerSentTs: _builtins.int - isAvatar: _builtins.bool - isAiSticker: _builtins.bool - isLottie: _builtins.bool - accessibilityLabel: _builtins.str - premium: _builtins.int - emojis: _builtins.str + def urlMetadata(self) -> Global___Message.URLMetadata: ... @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... + def musicMetadata(self) -> Global___EmbeddedMusic: ... def __init__( self, *, - url: _builtins.str | None = ..., - fileSha256: _builtins.bytes | None = ..., - fileEncSha256: _builtins.bytes | None = ..., - mediaKey: _builtins.bytes | None = ..., - mimetype: _builtins.str | None = ..., - height: _builtins.int | None = ..., - width: _builtins.int | None = ..., - directPath: _builtins.str | None = ..., - fileLength: _builtins.int | None = ..., - mediaKeyTimestamp: _builtins.int | None = ..., - firstFrameLength: _builtins.int | None = ..., - firstFrameSidecar: _builtins.bytes | None = ..., - isAnimated: _builtins.bool | None = ..., - pngThumbnail: _builtins.bytes | None = ..., - contextInfo: Global___ContextInfo | None = ..., - stickerSentTs: _builtins.int | None = ..., - isAvatar: _builtins.bool | None = ..., - isAiSticker: _builtins.bool | None = ..., - isLottie: _builtins.bool | None = ..., - accessibilityLabel: _builtins.str | None = ..., - premium: _builtins.int | None = ..., - emojis: _builtins.str | None = ..., + paymentLinkMetadata: Global___Message.PaymentLinkMetadata | None = ..., + urlMetadata: Global___Message.URLMetadata | None = ..., + fbExperimentId: _builtins.int | None = ..., + linkMediaDuration: _builtins.int | None = ..., + socialMediaPostType: Global___Message.LinkPreviewMetadata.SocialMediaPostType.ValueType | None = ..., + linkInlineVideoMuted: _builtins.bool | None = ..., + videoContentUrl: _builtins.str | None = ..., + musicMetadata: Global___EmbeddedMusic | None = ..., + videoContentCaption: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "contextInfo", b"contextInfo", "directPath", b"directPath", "emojis", b"emojis", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "firstFrameLength", b"firstFrameLength", "firstFrameSidecar", b"firstFrameSidecar", "height", b"height", "isAiSticker", b"isAiSticker", "isAnimated", b"isAnimated", "isAvatar", b"isAvatar", "isLottie", b"isLottie", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "pngThumbnail", b"pngThumbnail", "premium", b"premium", "stickerSentTs", b"stickerSentTs", "url", b"url", "width", b"width"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["fbExperimentId", b"fbExperimentId", "linkInlineVideoMuted", b"linkInlineVideoMuted", "linkMediaDuration", b"linkMediaDuration", "musicMetadata", b"musicMetadata", "paymentLinkMetadata", b"paymentLinkMetadata", "socialMediaPostType", b"socialMediaPostType", "urlMetadata", b"urlMetadata", "videoContentCaption", b"videoContentCaption", "videoContentUrl", b"videoContentUrl"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "contextInfo", b"contextInfo", "directPath", b"directPath", "emojis", b"emojis", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "firstFrameLength", b"firstFrameLength", "firstFrameSidecar", b"firstFrameSidecar", "height", b"height", "isAiSticker", b"isAiSticker", "isAnimated", b"isAnimated", "isAvatar", b"isAvatar", "isLottie", b"isLottie", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "pngThumbnail", b"pngThumbnail", "premium", b"premium", "stickerSentTs", b"stickerSentTs", "url", b"url", "width", b"width"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["fbExperimentId", b"fbExperimentId", "linkInlineVideoMuted", b"linkInlineVideoMuted", "linkMediaDuration", b"linkMediaDuration", "musicMetadata", b"musicMetadata", "paymentLinkMetadata", b"paymentLinkMetadata", "socialMediaPostType", b"socialMediaPostType", "urlMetadata", b"urlMetadata", "videoContentCaption", b"videoContentCaption", "videoContentUrl", b"videoContentUrl"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class StickerPackMessage(_message.Message): + class ListMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _StickerPackOrigin: + class _ListType: ValueType = _typing.NewType("ValueType", _builtins.int) V: _TypeAlias = ValueType # noqa: Y015 - class _StickerPackOriginEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StickerPackMessage._StickerPackOrigin.ValueType], _builtins.type): + class _ListTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ListMessage._ListType.ValueType], _builtins.type): DESCRIPTOR: _descriptor.EnumDescriptor - FIRST_PARTY: Message.StickerPackMessage._StickerPackOrigin.ValueType # 0 - THIRD_PARTY: Message.StickerPackMessage._StickerPackOrigin.ValueType # 1 - USER_CREATED: Message.StickerPackMessage._StickerPackOrigin.ValueType # 2 + UNKNOWN: Message.ListMessage._ListType.ValueType # 0 + SINGLE_SELECT: Message.ListMessage._ListType.ValueType # 1 + PRODUCT_LIST: Message.ListMessage._ListType.ValueType # 2 - class StickerPackOrigin(_StickerPackOrigin, metaclass=_StickerPackOriginEnumTypeWrapper): ... - FIRST_PARTY: Message.StickerPackMessage.StickerPackOrigin.ValueType # 0 - THIRD_PARTY: Message.StickerPackMessage.StickerPackOrigin.ValueType # 1 - USER_CREATED: Message.StickerPackMessage.StickerPackOrigin.ValueType # 2 + class ListType(_ListType, metaclass=_ListTypeEnumTypeWrapper): ... + UNKNOWN: Message.ListMessage.ListType.ValueType # 0 + SINGLE_SELECT: Message.ListMessage.ListType.ValueType # 1 + PRODUCT_LIST: Message.ListMessage.ListType.ValueType # 2 @_typing.final - class Sticker(_message.Message): + class Product(_message.Message): DESCRIPTOR: _descriptor.Descriptor - FILENAME_FIELD_NUMBER: _builtins.int - ISANIMATED_FIELD_NUMBER: _builtins.int - EMOJIS_FIELD_NUMBER: _builtins.int - ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int - ISLOTTIE_FIELD_NUMBER: _builtins.int - MIMETYPE_FIELD_NUMBER: _builtins.int - PREMIUM_FIELD_NUMBER: _builtins.int - fileName: _builtins.str - isAnimated: _builtins.bool - accessibilityLabel: _builtins.str - isLottie: _builtins.bool - mimetype: _builtins.str - premium: _builtins.int - @_builtins.property - def emojis(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + PRODUCTID_FIELD_NUMBER: _builtins.int + productId: _builtins.str def __init__( self, *, - fileName: _builtins.str | None = ..., - isAnimated: _builtins.bool | None = ..., - emojis: _abc.Iterable[_builtins.str] | None = ..., - accessibilityLabel: _builtins.str | None = ..., - isLottie: _builtins.bool | None = ..., - mimetype: _builtins.str | None = ..., - premium: _builtins.int | None = ..., + productId: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "fileName", b"fileName", "isAnimated", b"isAnimated", "isLottie", b"isLottie", "mimetype", b"mimetype", "premium", b"premium"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["productId", b"productId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "emojis", b"emojis", "fileName", b"fileName", "isAnimated", b"isAnimated", "isLottie", b"isLottie", "mimetype", b"mimetype", "premium", b"premium"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["productId", b"productId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - STICKERPACKID_FIELD_NUMBER: _builtins.int - NAME_FIELD_NUMBER: _builtins.int - PUBLISHER_FIELD_NUMBER: _builtins.int - STICKERS_FIELD_NUMBER: _builtins.int - FILELENGTH_FIELD_NUMBER: _builtins.int - FILESHA256_FIELD_NUMBER: _builtins.int - FILEENCSHA256_FIELD_NUMBER: _builtins.int - MEDIAKEY_FIELD_NUMBER: _builtins.int - DIRECTPATH_FIELD_NUMBER: _builtins.int - CAPTION_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - PACKDESCRIPTION_FIELD_NUMBER: _builtins.int - MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int - TRAYICONFILENAME_FIELD_NUMBER: _builtins.int - THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int - THUMBNAILSHA256_FIELD_NUMBER: _builtins.int - THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int - THUMBNAILHEIGHT_FIELD_NUMBER: _builtins.int - THUMBNAILWIDTH_FIELD_NUMBER: _builtins.int - IMAGEDATAHASH_FIELD_NUMBER: _builtins.int - STICKERPACKSIZE_FIELD_NUMBER: _builtins.int - STICKERPACKORIGIN_FIELD_NUMBER: _builtins.int - stickerPackId: _builtins.str - name: _builtins.str - publisher: _builtins.str - fileLength: _builtins.int - fileSha256: _builtins.bytes - fileEncSha256: _builtins.bytes - mediaKey: _builtins.bytes - directPath: _builtins.str - caption: _builtins.str - packDescription: _builtins.str - mediaKeyTimestamp: _builtins.int - trayIconFileName: _builtins.str - thumbnailDirectPath: _builtins.str - thumbnailSha256: _builtins.bytes - thumbnailEncSha256: _builtins.bytes - thumbnailHeight: _builtins.int - thumbnailWidth: _builtins.int - imageDataHash: _builtins.str - stickerPackSize: _builtins.int - stickerPackOrigin: Global___Message.StickerPackMessage.StickerPackOrigin.ValueType - @_builtins.property - def stickers(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.StickerPackMessage.Sticker]: ... - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - def __init__( - self, - *, - stickerPackId: _builtins.str | None = ..., - name: _builtins.str | None = ..., - publisher: _builtins.str | None = ..., - stickers: _abc.Iterable[Global___Message.StickerPackMessage.Sticker] | None = ..., - fileLength: _builtins.int | None = ..., - fileSha256: _builtins.bytes | None = ..., - fileEncSha256: _builtins.bytes | None = ..., - mediaKey: _builtins.bytes | None = ..., - directPath: _builtins.str | None = ..., - caption: _builtins.str | None = ..., - contextInfo: Global___ContextInfo | None = ..., - packDescription: _builtins.str | None = ..., - mediaKeyTimestamp: _builtins.int | None = ..., - trayIconFileName: _builtins.str | None = ..., - thumbnailDirectPath: _builtins.str | None = ..., - thumbnailSha256: _builtins.bytes | None = ..., - thumbnailEncSha256: _builtins.bytes | None = ..., - thumbnailHeight: _builtins.int | None = ..., - thumbnailWidth: _builtins.int | None = ..., - imageDataHash: _builtins.str | None = ..., - stickerPackSize: _builtins.int | None = ..., - stickerPackOrigin: Global___Message.StickerPackMessage.StickerPackOrigin.ValueType | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "imageDataHash", b"imageDataHash", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "name", b"name", "packDescription", b"packDescription", "publisher", b"publisher", "stickerPackId", b"stickerPackId", "stickerPackOrigin", b"stickerPackOrigin", "stickerPackSize", b"stickerPackSize", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "trayIconFileName", b"trayIconFileName"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "imageDataHash", b"imageDataHash", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "name", b"name", "packDescription", b"packDescription", "publisher", b"publisher", "stickerPackId", b"stickerPackId", "stickerPackOrigin", b"stickerPackOrigin", "stickerPackSize", b"stickerPackSize", "stickers", b"stickers", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "trayIconFileName", b"trayIconFileName"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class StickerSyncRMRMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - FILEHASH_FIELD_NUMBER: _builtins.int - RMRSOURCE_FIELD_NUMBER: _builtins.int - REQUESTTIMESTAMP_FIELD_NUMBER: _builtins.int - rmrSource: _builtins.str - requestTimestamp: _builtins.int - @_builtins.property - def filehash(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__( - self, - *, - filehash: _abc.Iterable[_builtins.str] | None = ..., - rmrSource: _builtins.str | None = ..., - requestTimestamp: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["requestTimestamp", b"requestTimestamp", "rmrSource", b"rmrSource"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["filehash", b"filehash", "requestTimestamp", b"requestTimestamp", "rmrSource", b"rmrSource"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class TemplateButtonReplyMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - SELECTEDID_FIELD_NUMBER: _builtins.int - SELECTEDDISPLAYTEXT_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - SELECTEDINDEX_FIELD_NUMBER: _builtins.int - SELECTEDCAROUSELCARDINDEX_FIELD_NUMBER: _builtins.int - selectedId: _builtins.str - selectedDisplayText: _builtins.str - selectedIndex: _builtins.int - selectedCarouselCardIndex: _builtins.int - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - def __init__( - self, - *, - selectedId: _builtins.str | None = ..., - selectedDisplayText: _builtins.str | None = ..., - contextInfo: Global___ContextInfo | None = ..., - selectedIndex: _builtins.int | None = ..., - selectedCarouselCardIndex: _builtins.int | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "selectedCarouselCardIndex", b"selectedCarouselCardIndex", "selectedDisplayText", b"selectedDisplayText", "selectedId", b"selectedId", "selectedIndex", b"selectedIndex"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "selectedCarouselCardIndex", b"selectedCarouselCardIndex", "selectedDisplayText", b"selectedDisplayText", "selectedId", b"selectedId", "selectedIndex", b"selectedIndex"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class ProductListHeaderImage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @_typing.final - class TemplateMessage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + PRODUCTID_FIELD_NUMBER: _builtins.int + JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int + productId: _builtins.str + jpegThumbnail: _builtins.bytes + def __init__( + self, + *, + productId: _builtins.str | None = ..., + jpegThumbnail: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["jpegThumbnail", b"jpegThumbnail", "productId", b"productId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["jpegThumbnail", b"jpegThumbnail", "productId", b"productId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class FourRowTemplate(_message.Message): + class ProductListInfo(_message.Message): DESCRIPTOR: _descriptor.Descriptor - CONTENT_FIELD_NUMBER: _builtins.int - FOOTER_FIELD_NUMBER: _builtins.int - BUTTONS_FIELD_NUMBER: _builtins.int - DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int - HIGHLYSTRUCTUREDMESSAGE_FIELD_NUMBER: _builtins.int - IMAGEMESSAGE_FIELD_NUMBER: _builtins.int - VIDEOMESSAGE_FIELD_NUMBER: _builtins.int - LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int - @_builtins.property - def content(self) -> Global___Message.HighlyStructuredMessage: ... - @_builtins.property - def footer(self) -> Global___Message.HighlyStructuredMessage: ... - @_builtins.property - def buttons(self) -> _containers.RepeatedCompositeFieldContainer[Global___TemplateButton]: ... - @_builtins.property - def documentMessage(self) -> Global___Message.DocumentMessage: ... - @_builtins.property - def highlyStructuredMessage(self) -> Global___Message.HighlyStructuredMessage: ... - @_builtins.property - def imageMessage(self) -> Global___Message.ImageMessage: ... + PRODUCTSECTIONS_FIELD_NUMBER: _builtins.int + HEADERIMAGE_FIELD_NUMBER: _builtins.int + BUSINESSOWNERJID_FIELD_NUMBER: _builtins.int + businessOwnerJid: _builtins.str @_builtins.property - def videoMessage(self) -> Global___Message.VideoMessage: ... + def productSections(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ListMessage.ProductSection]: ... @_builtins.property - def locationMessage(self) -> Global___Message.LocationMessage: ... + def headerImage(self) -> Global___Message.ListMessage.ProductListHeaderImage: ... def __init__( self, *, - content: Global___Message.HighlyStructuredMessage | None = ..., - footer: Global___Message.HighlyStructuredMessage | None = ..., - buttons: _abc.Iterable[Global___TemplateButton] | None = ..., - documentMessage: Global___Message.DocumentMessage | None = ..., - highlyStructuredMessage: Global___Message.HighlyStructuredMessage | None = ..., - imageMessage: Global___Message.ImageMessage | None = ..., - videoMessage: Global___Message.VideoMessage | None = ..., - locationMessage: Global___Message.LocationMessage | None = ..., + productSections: _abc.Iterable[Global___Message.ListMessage.ProductSection] | None = ..., + headerImage: Global___Message.ListMessage.ProductListHeaderImage | None = ..., + businessOwnerJid: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["content", b"content", "documentMessage", b"documentMessage", "footer", b"footer", "highlyStructuredMessage", b"highlyStructuredMessage", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["businessOwnerJid", b"businessOwnerJid", "headerImage", b"headerImage"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["buttons", b"buttons", "content", b"content", "documentMessage", b"documentMessage", "footer", b"footer", "highlyStructuredMessage", b"highlyStructuredMessage", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["businessOwnerJid", b"businessOwnerJid", "headerImage", b"headerImage", "productSections", b"productSections"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_title: _TypeAlias = _typing.Literal["documentMessage", "highlyStructuredMessage", "imageMessage", "videoMessage", "locationMessage"] # noqa: Y015 - _WhichOneofArgType_title: _TypeAlias = _typing.Literal["title", b"title"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_title) -> _WhichOneofReturnType_title | None: ... @_typing.final - class HydratedFourRowTemplate(_message.Message): + class ProductSection(_message.Message): DESCRIPTOR: _descriptor.Descriptor - HYDRATEDCONTENTTEXT_FIELD_NUMBER: _builtins.int - HYDRATEDFOOTERTEXT_FIELD_NUMBER: _builtins.int - HYDRATEDBUTTONS_FIELD_NUMBER: _builtins.int - TEMPLATEID_FIELD_NUMBER: _builtins.int - MASKLINKEDDEVICES_FIELD_NUMBER: _builtins.int - DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int - HYDRATEDTITLETEXT_FIELD_NUMBER: _builtins.int - IMAGEMESSAGE_FIELD_NUMBER: _builtins.int - VIDEOMESSAGE_FIELD_NUMBER: _builtins.int - LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int - hydratedContentText: _builtins.str - hydratedFooterText: _builtins.str - templateId: _builtins.str - maskLinkedDevices: _builtins.bool - hydratedTitleText: _builtins.str - @_builtins.property - def hydratedButtons(self) -> _containers.RepeatedCompositeFieldContainer[Global___HydratedTemplateButton]: ... - @_builtins.property - def documentMessage(self) -> Global___Message.DocumentMessage: ... - @_builtins.property - def imageMessage(self) -> Global___Message.ImageMessage: ... - @_builtins.property - def videoMessage(self) -> Global___Message.VideoMessage: ... + TITLE_FIELD_NUMBER: _builtins.int + PRODUCTS_FIELD_NUMBER: _builtins.int + title: _builtins.str @_builtins.property - def locationMessage(self) -> Global___Message.LocationMessage: ... + def products(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ListMessage.Product]: ... def __init__( self, *, - hydratedContentText: _builtins.str | None = ..., - hydratedFooterText: _builtins.str | None = ..., - hydratedButtons: _abc.Iterable[Global___HydratedTemplateButton] | None = ..., - templateId: _builtins.str | None = ..., - maskLinkedDevices: _builtins.bool | None = ..., - documentMessage: Global___Message.DocumentMessage | None = ..., - hydratedTitleText: _builtins.str | None = ..., - imageMessage: Global___Message.ImageMessage | None = ..., - videoMessage: Global___Message.VideoMessage | None = ..., - locationMessage: Global___Message.LocationMessage | None = ..., + title: _builtins.str | None = ..., + products: _abc.Iterable[Global___Message.ListMessage.Product] | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["documentMessage", b"documentMessage", "hydratedContentText", b"hydratedContentText", "hydratedFooterText", b"hydratedFooterText", "hydratedTitleText", b"hydratedTitleText", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "maskLinkedDevices", b"maskLinkedDevices", "templateId", b"templateId", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["title", b"title"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["documentMessage", b"documentMessage", "hydratedButtons", b"hydratedButtons", "hydratedContentText", b"hydratedContentText", "hydratedFooterText", b"hydratedFooterText", "hydratedTitleText", b"hydratedTitleText", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "maskLinkedDevices", b"maskLinkedDevices", "templateId", b"templateId", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["products", b"products", "title", b"title"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class Row(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + TITLE_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + ROWID_FIELD_NUMBER: _builtins.int + title: _builtins.str + description: _builtins.str + rowId: _builtins.str + def __init__( + self, + *, + title: _builtins.str | None = ..., + description: _builtins.str | None = ..., + rowId: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "rowId", b"rowId", "title", b"title"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "rowId", b"rowId", "title", b"title"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class Section(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + TITLE_FIELD_NUMBER: _builtins.int + ROWS_FIELD_NUMBER: _builtins.int + title: _builtins.str + @_builtins.property + def rows(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ListMessage.Row]: ... + def __init__( + self, + *, + title: _builtins.str | None = ..., + rows: _abc.Iterable[Global___Message.ListMessage.Row] | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["title", b"title"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["rows", b"rows", "title", b"title"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_title: _TypeAlias = _typing.Literal["documentMessage", "hydratedTitleText", "imageMessage", "videoMessage", "locationMessage"] # noqa: Y015 - _WhichOneofArgType_title: _TypeAlias = _typing.Literal["title", b"title"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_title) -> _WhichOneofReturnType_title | None: ... + TITLE_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + BUTTONTEXT_FIELD_NUMBER: _builtins.int + LISTTYPE_FIELD_NUMBER: _builtins.int + SECTIONS_FIELD_NUMBER: _builtins.int + PRODUCTLISTINFO_FIELD_NUMBER: _builtins.int + FOOTERTEXT_FIELD_NUMBER: _builtins.int CONTEXTINFO_FIELD_NUMBER: _builtins.int - HYDRATEDTEMPLATE_FIELD_NUMBER: _builtins.int - TEMPLATEID_FIELD_NUMBER: _builtins.int - FOURROWTEMPLATE_FIELD_NUMBER: _builtins.int - HYDRATEDFOURROWTEMPLATE_FIELD_NUMBER: _builtins.int - INTERACTIVEMESSAGETEMPLATE_FIELD_NUMBER: _builtins.int - templateId: _builtins.str - @_builtins.property - def contextInfo(self) -> Global___ContextInfo: ... - @_builtins.property - def hydratedTemplate(self) -> Global___Message.TemplateMessage.HydratedFourRowTemplate: ... + title: _builtins.str + description: _builtins.str + buttonText: _builtins.str + listType: Global___Message.ListMessage.ListType.ValueType + footerText: _builtins.str @_builtins.property - def fourRowTemplate(self) -> Global___Message.TemplateMessage.FourRowTemplate: ... + def sections(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.ListMessage.Section]: ... @_builtins.property - def hydratedFourRowTemplate(self) -> Global___Message.TemplateMessage.HydratedFourRowTemplate: ... + def productListInfo(self) -> Global___Message.ListMessage.ProductListInfo: ... @_builtins.property - def interactiveMessageTemplate(self) -> Global___Message.InteractiveMessage: ... + def contextInfo(self) -> Global___ContextInfo: ... def __init__( self, *, + title: _builtins.str | None = ..., + description: _builtins.str | None = ..., + buttonText: _builtins.str | None = ..., + listType: Global___Message.ListMessage.ListType.ValueType | None = ..., + sections: _abc.Iterable[Global___Message.ListMessage.Section] | None = ..., + productListInfo: Global___Message.ListMessage.ProductListInfo | None = ..., + footerText: _builtins.str | None = ..., contextInfo: Global___ContextInfo | None = ..., - hydratedTemplate: Global___Message.TemplateMessage.HydratedFourRowTemplate | None = ..., - templateId: _builtins.str | None = ..., - fourRowTemplate: Global___Message.TemplateMessage.FourRowTemplate | None = ..., - hydratedFourRowTemplate: Global___Message.TemplateMessage.HydratedFourRowTemplate | None = ..., - interactiveMessageTemplate: Global___Message.InteractiveMessage | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "format", b"format", "fourRowTemplate", b"fourRowTemplate", "hydratedFourRowTemplate", b"hydratedFourRowTemplate", "hydratedTemplate", b"hydratedTemplate", "interactiveMessageTemplate", b"interactiveMessageTemplate", "templateId", b"templateId"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["buttonText", b"buttonText", "contextInfo", b"contextInfo", "description", b"description", "footerText", b"footerText", "listType", b"listType", "productListInfo", b"productListInfo", "title", b"title"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "format", b"format", "fourRowTemplate", b"fourRowTemplate", "hydratedFourRowTemplate", b"hydratedFourRowTemplate", "hydratedTemplate", b"hydratedTemplate", "interactiveMessageTemplate", b"interactiveMessageTemplate", "templateId", b"templateId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["buttonText", b"buttonText", "contextInfo", b"contextInfo", "description", b"description", "footerText", b"footerText", "listType", b"listType", "productListInfo", b"productListInfo", "sections", b"sections", "title", b"title"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_format: _TypeAlias = _typing.Literal["fourRowTemplate", "hydratedFourRowTemplate", "interactiveMessageTemplate"] # noqa: Y015 - _WhichOneofArgType_format: _TypeAlias = _typing.Literal["format", b"format"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_format) -> _WhichOneofReturnType_format | None: ... @_typing.final - class URLMetadata(_message.Message): + class ListResponseMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - FBEXPERIMENTID_FIELD_NUMBER: _builtins.int - fbExperimentId: _builtins.int + class _ListType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _ListTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ListResponseMessage._ListType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: Message.ListResponseMessage._ListType.ValueType # 0 + SINGLE_SELECT: Message.ListResponseMessage._ListType.ValueType # 1 + + class ListType(_ListType, metaclass=_ListTypeEnumTypeWrapper): ... + UNKNOWN: Message.ListResponseMessage.ListType.ValueType # 0 + SINGLE_SELECT: Message.ListResponseMessage.ListType.ValueType # 1 + + @_typing.final + class SingleSelectReply(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + SELECTEDROWID_FIELD_NUMBER: _builtins.int + selectedRowId: _builtins.str + def __init__( + self, + *, + selectedRowId: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["selectedRowId", b"selectedRowId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["selectedRowId", b"selectedRowId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + TITLE_FIELD_NUMBER: _builtins.int + LISTTYPE_FIELD_NUMBER: _builtins.int + SINGLESELECTREPLY_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + title: _builtins.str + listType: Global___Message.ListResponseMessage.ListType.ValueType + description: _builtins.str + @_builtins.property + def singleSelectReply(self) -> Global___Message.ListResponseMessage.SingleSelectReply: ... + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... def __init__( self, *, - fbExperimentId: _builtins.int | None = ..., + title: _builtins.str | None = ..., + listType: Global___Message.ListResponseMessage.ListType.ValueType | None = ..., + singleSelectReply: Global___Message.ListResponseMessage.SingleSelectReply | None = ..., + contextInfo: Global___ContextInfo | None = ..., + description: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["fbExperimentId", b"fbExperimentId"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "description", b"description", "listType", b"listType", "singleSelectReply", b"singleSelectReply", "title", b"title"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["fbExperimentId", b"fbExperimentId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "description", b"description", "listType", b"listType", "singleSelectReply", b"singleSelectReply", "title", b"title"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class VideoEndCard(_message.Message): + class LiveLocationMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - USERNAME_FIELD_NUMBER: _builtins.int + DEGREESLATITUDE_FIELD_NUMBER: _builtins.int + DEGREESLONGITUDE_FIELD_NUMBER: _builtins.int + ACCURACYINMETERS_FIELD_NUMBER: _builtins.int + SPEEDINMPS_FIELD_NUMBER: _builtins.int + DEGREESCLOCKWISEFROMMAGNETICNORTH_FIELD_NUMBER: _builtins.int CAPTION_FIELD_NUMBER: _builtins.int - THUMBNAILIMAGEURL_FIELD_NUMBER: _builtins.int - PROFILEPICTUREURL_FIELD_NUMBER: _builtins.int - username: _builtins.str + SEQUENCENUMBER_FIELD_NUMBER: _builtins.int + TIMEOFFSET_FIELD_NUMBER: _builtins.int + JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + degreesLatitude: _builtins.float + degreesLongitude: _builtins.float + accuracyInMeters: _builtins.int + speedInMps: _builtins.float + degreesClockwiseFromMagneticNorth: _builtins.int caption: _builtins.str - thumbnailImageUrl: _builtins.str - profilePictureUrl: _builtins.str + sequenceNumber: _builtins.int + timeOffset: _builtins.int + jpegThumbnail: _builtins.bytes + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... def __init__( self, *, - username: _builtins.str | None = ..., + degreesLatitude: _builtins.float | None = ..., + degreesLongitude: _builtins.float | None = ..., + accuracyInMeters: _builtins.int | None = ..., + speedInMps: _builtins.float | None = ..., + degreesClockwiseFromMagneticNorth: _builtins.int | None = ..., caption: _builtins.str | None = ..., - thumbnailImageUrl: _builtins.str | None = ..., - profilePictureUrl: _builtins.str | None = ..., + sequenceNumber: _builtins.int | None = ..., + timeOffset: _builtins.int | None = ..., + jpegThumbnail: _builtins.bytes | None = ..., + contextInfo: Global___ContextInfo | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "profilePictureUrl", b"profilePictureUrl", "thumbnailImageUrl", b"thumbnailImageUrl", "username", b"username"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["accuracyInMeters", b"accuracyInMeters", "caption", b"caption", "contextInfo", b"contextInfo", "degreesClockwiseFromMagneticNorth", b"degreesClockwiseFromMagneticNorth", "degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "jpegThumbnail", b"jpegThumbnail", "sequenceNumber", b"sequenceNumber", "speedInMps", b"speedInMps", "timeOffset", b"timeOffset"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "profilePictureUrl", b"profilePictureUrl", "thumbnailImageUrl", b"thumbnailImageUrl", "username", b"username"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["accuracyInMeters", b"accuracyInMeters", "caption", b"caption", "contextInfo", b"contextInfo", "degreesClockwiseFromMagneticNorth", b"degreesClockwiseFromMagneticNorth", "degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "jpegThumbnail", b"jpegThumbnail", "sequenceNumber", b"sequenceNumber", "speedInMps", b"speedInMps", "timeOffset", b"timeOffset"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final - class VideoMessage(_message.Message): + class LocationMessage(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _Attribution: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _AttributionEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.VideoMessage._Attribution.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - NONE: Message.VideoMessage._Attribution.ValueType # 0 - GIPHY: Message.VideoMessage._Attribution.ValueType # 1 - TENOR: Message.VideoMessage._Attribution.ValueType # 2 - KLIPY: Message.VideoMessage._Attribution.ValueType # 3 - - class Attribution(_Attribution, metaclass=_AttributionEnumTypeWrapper): ... - NONE: Message.VideoMessage.Attribution.ValueType # 0 - GIPHY: Message.VideoMessage.Attribution.ValueType # 1 - TENOR: Message.VideoMessage.Attribution.ValueType # 2 - KLIPY: Message.VideoMessage.Attribution.ValueType # 3 - - class _VideoSourceType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 - - class _VideoSourceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.VideoMessage._VideoSourceType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - USER_VIDEO: Message.VideoMessage._VideoSourceType.ValueType # 0 - AI_GENERATED: Message.VideoMessage._VideoSourceType.ValueType # 1 - - class VideoSourceType(_VideoSourceType, metaclass=_VideoSourceTypeEnumTypeWrapper): ... - USER_VIDEO: Message.VideoMessage.VideoSourceType.ValueType # 0 - AI_GENERATED: Message.VideoMessage.VideoSourceType.ValueType # 1 - + DEGREESLATITUDE_FIELD_NUMBER: _builtins.int + DEGREESLONGITUDE_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + ADDRESS_FIELD_NUMBER: _builtins.int URL_FIELD_NUMBER: _builtins.int - MIMETYPE_FIELD_NUMBER: _builtins.int - FILESHA256_FIELD_NUMBER: _builtins.int - FILELENGTH_FIELD_NUMBER: _builtins.int - SECONDS_FIELD_NUMBER: _builtins.int - MEDIAKEY_FIELD_NUMBER: _builtins.int - CAPTION_FIELD_NUMBER: _builtins.int - GIFPLAYBACK_FIELD_NUMBER: _builtins.int - HEIGHT_FIELD_NUMBER: _builtins.int - WIDTH_FIELD_NUMBER: _builtins.int - FILEENCSHA256_FIELD_NUMBER: _builtins.int - INTERACTIVEANNOTATIONS_FIELD_NUMBER: _builtins.int - DIRECTPATH_FIELD_NUMBER: _builtins.int - MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int - JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int - CONTEXTINFO_FIELD_NUMBER: _builtins.int - STREAMINGSIDECAR_FIELD_NUMBER: _builtins.int - GIFATTRIBUTION_FIELD_NUMBER: _builtins.int - VIEWONCE_FIELD_NUMBER: _builtins.int + ISLIVE_FIELD_NUMBER: _builtins.int + ACCURACYINMETERS_FIELD_NUMBER: _builtins.int + SPEEDINMPS_FIELD_NUMBER: _builtins.int + DEGREESCLOCKWISEFROMMAGNETICNORTH_FIELD_NUMBER: _builtins.int + COMMENT_FIELD_NUMBER: _builtins.int + JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + degreesLatitude: _builtins.float + degreesLongitude: _builtins.float + name: _builtins.str + address: _builtins.str + url: _builtins.str + isLive: _builtins.bool + accuracyInMeters: _builtins.int + speedInMps: _builtins.float + degreesClockwiseFromMagneticNorth: _builtins.int + comment: _builtins.str + jpegThumbnail: _builtins.bytes + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + def __init__( + self, + *, + degreesLatitude: _builtins.float | None = ..., + degreesLongitude: _builtins.float | None = ..., + name: _builtins.str | None = ..., + address: _builtins.str | None = ..., + url: _builtins.str | None = ..., + isLive: _builtins.bool | None = ..., + accuracyInMeters: _builtins.int | None = ..., + speedInMps: _builtins.float | None = ..., + degreesClockwiseFromMagneticNorth: _builtins.int | None = ..., + comment: _builtins.str | None = ..., + jpegThumbnail: _builtins.bytes | None = ..., + contextInfo: Global___ContextInfo | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["accuracyInMeters", b"accuracyInMeters", "address", b"address", "comment", b"comment", "contextInfo", b"contextInfo", "degreesClockwiseFromMagneticNorth", b"degreesClockwiseFromMagneticNorth", "degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "isLive", b"isLive", "jpegThumbnail", b"jpegThumbnail", "name", b"name", "speedInMps", b"speedInMps", "url", b"url"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["accuracyInMeters", b"accuracyInMeters", "address", b"address", "comment", b"comment", "contextInfo", b"contextInfo", "degreesClockwiseFromMagneticNorth", b"degreesClockwiseFromMagneticNorth", "degreesLatitude", b"degreesLatitude", "degreesLongitude", b"degreesLongitude", "isLive", b"isLive", "jpegThumbnail", b"jpegThumbnail", "name", b"name", "speedInMps", b"speedInMps", "url", b"url"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class MMSThumbnailMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int THUMBNAILSHA256_FIELD_NUMBER: _builtins.int THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int - STATICURL_FIELD_NUMBER: _builtins.int - ANNOTATIONS_FIELD_NUMBER: _builtins.int - ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int - PROCESSEDVIDEOS_FIELD_NUMBER: _builtins.int - EXTERNALSHAREFULLVIDEODURATIONINSECONDS_FIELD_NUMBER: _builtins.int - MOTIONPHOTOPRESENTATIONOFFSETMS_FIELD_NUMBER: _builtins.int - METADATAURL_FIELD_NUMBER: _builtins.int - VIDEOSOURCETYPE_FIELD_NUMBER: _builtins.int - url: _builtins.str + MEDIAKEY_FIELD_NUMBER: _builtins.int + MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int + THUMBNAILHEIGHT_FIELD_NUMBER: _builtins.int + THUMBNAILWIDTH_FIELD_NUMBER: _builtins.int + thumbnailDirectPath: _builtins.str + thumbnailSha256: _builtins.bytes + thumbnailEncSha256: _builtins.bytes + mediaKey: _builtins.bytes + mediaKeyTimestamp: _builtins.int + thumbnailHeight: _builtins.int + thumbnailWidth: _builtins.int + def __init__( + self, + *, + thumbnailDirectPath: _builtins.str | None = ..., + thumbnailSha256: _builtins.bytes | None = ..., + thumbnailEncSha256: _builtins.bytes | None = ..., + mediaKey: _builtins.bytes | None = ..., + mediaKeyTimestamp: _builtins.int | None = ..., + thumbnailHeight: _builtins.int | None = ..., + thumbnailWidth: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class MarkAsVerifiedAction(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + USERJIDSTRING_FIELD_NUMBER: _builtins.int + VERIFIED_FIELD_NUMBER: _builtins.int + VERIFIEDIDENTITYKEY_FIELD_NUMBER: _builtins.int + ACTIONSEQ_FIELD_NUMBER: _builtins.int + userJidString: _builtins.str + verified: _builtins.bool + verifiedIdentityKey: _builtins.bytes + actionSeq: _builtins.int + def __init__( + self, + *, + userJidString: _builtins.str | None = ..., + verified: _builtins.bool | None = ..., + verifiedIdentityKey: _builtins.bytes | None = ..., + actionSeq: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["actionSeq", b"actionSeq", "userJidString", b"userJidString", "verified", b"verified", "verifiedIdentityKey", b"verifiedIdentityKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["actionSeq", b"actionSeq", "userJidString", b"userJidString", "verified", b"verified", "verifiedIdentityKey", b"verifiedIdentityKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class MessageHistoryBundle(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + MIMETYPE_FIELD_NUMBER: _builtins.int + FILESHA256_FIELD_NUMBER: _builtins.int + MEDIAKEY_FIELD_NUMBER: _builtins.int + FILEENCSHA256_FIELD_NUMBER: _builtins.int + DIRECTPATH_FIELD_NUMBER: _builtins.int + MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + MESSAGEHISTORYMETADATA_FIELD_NUMBER: _builtins.int mimetype: _builtins.str fileSha256: _builtins.bytes - fileLength: _builtins.int - seconds: _builtins.int mediaKey: _builtins.bytes - caption: _builtins.str - gifPlayback: _builtins.bool - height: _builtins.int - width: _builtins.int fileEncSha256: _builtins.bytes directPath: _builtins.str mediaKeyTimestamp: _builtins.int - jpegThumbnail: _builtins.bytes - streamingSidecar: _builtins.bytes - gifAttribution: Global___Message.VideoMessage.Attribution.ValueType - viewOnce: _builtins.bool - thumbnailDirectPath: _builtins.str - thumbnailSha256: _builtins.bytes - thumbnailEncSha256: _builtins.bytes - staticUrl: _builtins.str - accessibilityLabel: _builtins.str - externalShareFullVideoDurationInSeconds: _builtins.int - motionPhotoPresentationOffsetMs: _builtins.int - metadataUrl: _builtins.str - videoSourceType: Global___Message.VideoMessage.VideoSourceType.ValueType - @_builtins.property - def interactiveAnnotations(self) -> _containers.RepeatedCompositeFieldContainer[Global___InteractiveAnnotation]: ... @_builtins.property def contextInfo(self) -> Global___ContextInfo: ... @_builtins.property - def annotations(self) -> _containers.RepeatedCompositeFieldContainer[Global___InteractiveAnnotation]: ... - @_builtins.property - def processedVideos(self) -> _containers.RepeatedCompositeFieldContainer[Global___ProcessedVideo]: ... + def messageHistoryMetadata(self) -> Global___Message.MessageHistoryMetadata: ... def __init__( self, *, - url: _builtins.str | None = ..., mimetype: _builtins.str | None = ..., fileSha256: _builtins.bytes | None = ..., - fileLength: _builtins.int | None = ..., - seconds: _builtins.int | None = ..., mediaKey: _builtins.bytes | None = ..., - caption: _builtins.str | None = ..., - gifPlayback: _builtins.bool | None = ..., - height: _builtins.int | None = ..., - width: _builtins.int | None = ..., fileEncSha256: _builtins.bytes | None = ..., - interactiveAnnotations: _abc.Iterable[Global___InteractiveAnnotation] | None = ..., directPath: _builtins.str | None = ..., mediaKeyTimestamp: _builtins.int | None = ..., - jpegThumbnail: _builtins.bytes | None = ..., contextInfo: Global___ContextInfo | None = ..., - streamingSidecar: _builtins.bytes | None = ..., - gifAttribution: Global___Message.VideoMessage.Attribution.ValueType | None = ..., - viewOnce: _builtins.bool | None = ..., - thumbnailDirectPath: _builtins.str | None = ..., - thumbnailSha256: _builtins.bytes | None = ..., - thumbnailEncSha256: _builtins.bytes | None = ..., - staticUrl: _builtins.str | None = ..., - annotations: _abc.Iterable[Global___InteractiveAnnotation] | None = ..., - accessibilityLabel: _builtins.str | None = ..., - processedVideos: _abc.Iterable[Global___ProcessedVideo] | None = ..., - externalShareFullVideoDurationInSeconds: _builtins.int | None = ..., - motionPhotoPresentationOffsetMs: _builtins.int | None = ..., - metadataUrl: _builtins.str | None = ..., - videoSourceType: Global___Message.VideoMessage.VideoSourceType.ValueType | None = ..., + messageHistoryMetadata: Global___Message.MessageHistoryMetadata | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "externalShareFullVideoDurationInSeconds", b"externalShareFullVideoDurationInSeconds", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "gifAttribution", b"gifAttribution", "gifPlayback", b"gifPlayback", "height", b"height", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "metadataUrl", b"metadataUrl", "mimetype", b"mimetype", "motionPhotoPresentationOffsetMs", b"motionPhotoPresentationOffsetMs", "seconds", b"seconds", "staticUrl", b"staticUrl", "streamingSidecar", b"streamingSidecar", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailSha256", b"thumbnailSha256", "url", b"url", "videoSourceType", b"videoSourceType", "viewOnce", b"viewOnce", "width", b"width"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "messageHistoryMetadata", b"messageHistoryMetadata", "mimetype", b"mimetype"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "annotations", b"annotations", "caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "externalShareFullVideoDurationInSeconds", b"externalShareFullVideoDurationInSeconds", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "gifAttribution", b"gifAttribution", "gifPlayback", b"gifPlayback", "height", b"height", "interactiveAnnotations", b"interactiveAnnotations", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "metadataUrl", b"metadataUrl", "mimetype", b"mimetype", "motionPhotoPresentationOffsetMs", b"motionPhotoPresentationOffsetMs", "processedVideos", b"processedVideos", "seconds", b"seconds", "staticUrl", b"staticUrl", "streamingSidecar", b"streamingSidecar", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailSha256", b"thumbnailSha256", "url", b"url", "videoSourceType", b"videoSourceType", "viewOnce", b"viewOnce", "width", b"width"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileSha256", b"fileSha256", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "messageHistoryMetadata", b"messageHistoryMetadata", "mimetype", b"mimetype"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - CONVERSATION_FIELD_NUMBER: _builtins.int - SENDERKEYDISTRIBUTIONMESSAGE_FIELD_NUMBER: _builtins.int - IMAGEMESSAGE_FIELD_NUMBER: _builtins.int - CONTACTMESSAGE_FIELD_NUMBER: _builtins.int - LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int - EXTENDEDTEXTMESSAGE_FIELD_NUMBER: _builtins.int - DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int - AUDIOMESSAGE_FIELD_NUMBER: _builtins.int - VIDEOMESSAGE_FIELD_NUMBER: _builtins.int - CALL_FIELD_NUMBER: _builtins.int - CHAT_FIELD_NUMBER: _builtins.int - PROTOCOLMESSAGE_FIELD_NUMBER: _builtins.int - CONTACTSARRAYMESSAGE_FIELD_NUMBER: _builtins.int - HIGHLYSTRUCTUREDMESSAGE_FIELD_NUMBER: _builtins.int - FASTRATCHETKEYSENDERKEYDISTRIBUTIONMESSAGE_FIELD_NUMBER: _builtins.int - SENDPAYMENTMESSAGE_FIELD_NUMBER: _builtins.int - LIVELOCATIONMESSAGE_FIELD_NUMBER: _builtins.int - REQUESTPAYMENTMESSAGE_FIELD_NUMBER: _builtins.int - DECLINEPAYMENTREQUESTMESSAGE_FIELD_NUMBER: _builtins.int - CANCELPAYMENTREQUESTMESSAGE_FIELD_NUMBER: _builtins.int - TEMPLATEMESSAGE_FIELD_NUMBER: _builtins.int - STICKERMESSAGE_FIELD_NUMBER: _builtins.int - GROUPINVITEMESSAGE_FIELD_NUMBER: _builtins.int - TEMPLATEBUTTONREPLYMESSAGE_FIELD_NUMBER: _builtins.int - PRODUCTMESSAGE_FIELD_NUMBER: _builtins.int - DEVICESENTMESSAGE_FIELD_NUMBER: _builtins.int - MESSAGECONTEXTINFO_FIELD_NUMBER: _builtins.int - LISTMESSAGE_FIELD_NUMBER: _builtins.int - VIEWONCEMESSAGE_FIELD_NUMBER: _builtins.int - ORDERMESSAGE_FIELD_NUMBER: _builtins.int - LISTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int - EPHEMERALMESSAGE_FIELD_NUMBER: _builtins.int - INVOICEMESSAGE_FIELD_NUMBER: _builtins.int - BUTTONSMESSAGE_FIELD_NUMBER: _builtins.int - BUTTONSRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int - PAYMENTINVITEMESSAGE_FIELD_NUMBER: _builtins.int - INTERACTIVEMESSAGE_FIELD_NUMBER: _builtins.int - REACTIONMESSAGE_FIELD_NUMBER: _builtins.int - STICKERSYNCRMRMESSAGE_FIELD_NUMBER: _builtins.int - INTERACTIVERESPONSEMESSAGE_FIELD_NUMBER: _builtins.int - POLLCREATIONMESSAGE_FIELD_NUMBER: _builtins.int - POLLUPDATEMESSAGE_FIELD_NUMBER: _builtins.int - KEEPINCHATMESSAGE_FIELD_NUMBER: _builtins.int - DOCUMENTWITHCAPTIONMESSAGE_FIELD_NUMBER: _builtins.int - REQUESTPHONENUMBERMESSAGE_FIELD_NUMBER: _builtins.int - VIEWONCEMESSAGEV2_FIELD_NUMBER: _builtins.int - ENCREACTIONMESSAGE_FIELD_NUMBER: _builtins.int - EDITEDMESSAGE_FIELD_NUMBER: _builtins.int - VIEWONCEMESSAGEV2EXTENSION_FIELD_NUMBER: _builtins.int - POLLCREATIONMESSAGEV2_FIELD_NUMBER: _builtins.int - SCHEDULEDCALLCREATIONMESSAGE_FIELD_NUMBER: _builtins.int - GROUPMENTIONEDMESSAGE_FIELD_NUMBER: _builtins.int - PININCHATMESSAGE_FIELD_NUMBER: _builtins.int - POLLCREATIONMESSAGEV3_FIELD_NUMBER: _builtins.int - SCHEDULEDCALLEDITMESSAGE_FIELD_NUMBER: _builtins.int - PTVMESSAGE_FIELD_NUMBER: _builtins.int - BOTINVOKEMESSAGE_FIELD_NUMBER: _builtins.int - CALLLOGMESSSAGE_FIELD_NUMBER: _builtins.int - MESSAGEHISTORYBUNDLE_FIELD_NUMBER: _builtins.int - ENCCOMMENTMESSAGE_FIELD_NUMBER: _builtins.int - BCALLMESSAGE_FIELD_NUMBER: _builtins.int - LOTTIESTICKERMESSAGE_FIELD_NUMBER: _builtins.int - EVENTMESSAGE_FIELD_NUMBER: _builtins.int - ENCEVENTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int - COMMENTMESSAGE_FIELD_NUMBER: _builtins.int - NEWSLETTERADMININVITEMESSAGE_FIELD_NUMBER: _builtins.int - PLACEHOLDERMESSAGE_FIELD_NUMBER: _builtins.int - SECRETENCRYPTEDMESSAGE_FIELD_NUMBER: _builtins.int - ALBUMMESSAGE_FIELD_NUMBER: _builtins.int - EVENTCOVERIMAGE_FIELD_NUMBER: _builtins.int - STICKERPACKMESSAGE_FIELD_NUMBER: _builtins.int - STATUSMENTIONMESSAGE_FIELD_NUMBER: _builtins.int - POLLRESULTSNAPSHOTMESSAGE_FIELD_NUMBER: _builtins.int - POLLCREATIONOPTIONIMAGEMESSAGE_FIELD_NUMBER: _builtins.int - ASSOCIATEDCHILDMESSAGE_FIELD_NUMBER: _builtins.int - GROUPSTATUSMENTIONMESSAGE_FIELD_NUMBER: _builtins.int - POLLCREATIONMESSAGEV4_FIELD_NUMBER: _builtins.int - STATUSADDYOURS_FIELD_NUMBER: _builtins.int - GROUPSTATUSMESSAGE_FIELD_NUMBER: _builtins.int - RICHRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int - STATUSNOTIFICATIONMESSAGE_FIELD_NUMBER: _builtins.int - LIMITSHARINGMESSAGE_FIELD_NUMBER: _builtins.int - BOTTASKMESSAGE_FIELD_NUMBER: _builtins.int - QUESTIONMESSAGE_FIELD_NUMBER: _builtins.int - MESSAGEHISTORYNOTICE_FIELD_NUMBER: _builtins.int - GROUPSTATUSMESSAGEV2_FIELD_NUMBER: _builtins.int - BOTFORWARDEDMESSAGE_FIELD_NUMBER: _builtins.int - STATUSQUESTIONANSWERMESSAGE_FIELD_NUMBER: _builtins.int - QUESTIONREPLYMESSAGE_FIELD_NUMBER: _builtins.int - QUESTIONRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int - STATUSQUOTEDMESSAGE_FIELD_NUMBER: _builtins.int - STATUSSTICKERINTERACTIONMESSAGE_FIELD_NUMBER: _builtins.int - POLLCREATIONMESSAGEV5_FIELD_NUMBER: _builtins.int - NEWSLETTERFOLLOWERINVITEMESSAGEV2_FIELD_NUMBER: _builtins.int - POLLRESULTSNAPSHOTMESSAGEV3_FIELD_NUMBER: _builtins.int - NEWSLETTERADMINPROFILEMESSAGE_FIELD_NUMBER: _builtins.int - NEWSLETTERADMINPROFILEMESSAGEV2_FIELD_NUMBER: _builtins.int + @_typing.final + class MessageHistoryMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + HISTORYRECEIVERS_FIELD_NUMBER: _builtins.int + OLDESTMESSAGETIMESTAMPINWINDOW_FIELD_NUMBER: _builtins.int + MESSAGECOUNT_FIELD_NUMBER: _builtins.int + NONHISTORYRECEIVERS_FIELD_NUMBER: _builtins.int + OLDESTMESSAGETIMESTAMPINBUNDLE_FIELD_NUMBER: _builtins.int + oldestMessageTimestampInWindow: _builtins.int + messageCount: _builtins.int + oldestMessageTimestampInBundle: _builtins.int + @_builtins.property + def historyReceivers(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + @_builtins.property + def nonHistoryReceivers(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + def __init__( + self, + *, + historyReceivers: _abc.Iterable[_builtins.str] | None = ..., + oldestMessageTimestampInWindow: _builtins.int | None = ..., + messageCount: _builtins.int | None = ..., + nonHistoryReceivers: _abc.Iterable[_builtins.str] | None = ..., + oldestMessageTimestampInBundle: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["messageCount", b"messageCount", "oldestMessageTimestampInBundle", b"oldestMessageTimestampInBundle", "oldestMessageTimestampInWindow", b"oldestMessageTimestampInWindow"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["historyReceivers", b"historyReceivers", "messageCount", b"messageCount", "nonHistoryReceivers", b"nonHistoryReceivers", "oldestMessageTimestampInBundle", b"oldestMessageTimestampInBundle", "oldestMessageTimestampInWindow", b"oldestMessageTimestampInWindow"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class MessageHistoryNotice(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + CONTEXTINFO_FIELD_NUMBER: _builtins.int + MESSAGEHISTORYMETADATA_FIELD_NUMBER: _builtins.int + BOTHISTORYSHARESYNCMETADATA_FIELD_NUMBER: _builtins.int + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + @_builtins.property + def messageHistoryMetadata(self) -> Global___Message.MessageHistoryMetadata: ... + @_builtins.property + def botHistoryShareSyncMetadata(self) -> Global___Message.BotHistoryShareSyncMetadata: ... + def __init__( + self, + *, + contextInfo: Global___ContextInfo | None = ..., + messageHistoryMetadata: Global___Message.MessageHistoryMetadata | None = ..., + botHistoryShareSyncMetadata: Global___Message.BotHistoryShareSyncMetadata | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["botHistoryShareSyncMetadata", b"botHistoryShareSyncMetadata", "contextInfo", b"contextInfo", "messageHistoryMetadata", b"messageHistoryMetadata"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["botHistoryShareSyncMetadata", b"botHistoryShareSyncMetadata", "contextInfo", b"contextInfo", "messageHistoryMetadata", b"messageHistoryMetadata"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class MusicMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _MusicMessageStyle: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _MusicMessageStyleEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.MusicMessage._MusicMessageStyle.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: Message.MusicMessage._MusicMessageStyle.ValueType # 0 + VINYL: Message.MusicMessage._MusicMessageStyle.ValueType # 1 + + class MusicMessageStyle(_MusicMessageStyle, metaclass=_MusicMessageStyleEnumTypeWrapper): ... + UNKNOWN: Message.MusicMessage.MusicMessageStyle.ValueType # 0 + VINYL: Message.MusicMessage.MusicMessageStyle.ValueType # 1 + + EMBEDDEDMUSIC_FIELD_NUMBER: _builtins.int + SONGURI_FIELD_NUMBER: _builtins.int + ARTWORKURI_FIELD_NUMBER: _builtins.int + STYLE_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + songUri: _builtins.str + artworkUri: _builtins.str + style: _builtins.int + @_builtins.property + def embeddedMusic(self) -> Global___EmbeddedMusic: ... + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + def __init__( + self, + *, + embeddedMusic: Global___EmbeddedMusic | None = ..., + songUri: _builtins.str | None = ..., + artworkUri: _builtins.str | None = ..., + style: _builtins.int | None = ..., + contextInfo: Global___ContextInfo | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["artworkUri", b"artworkUri", "contextInfo", b"contextInfo", "embeddedMusic", b"embeddedMusic", "songUri", b"songUri", "style", b"style"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["artworkUri", b"artworkUri", "contextInfo", b"contextInfo", "embeddedMusic", b"embeddedMusic", "songUri", b"songUri", "style", b"style"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class NewsletterAdminInviteMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + NEWSLETTERJID_FIELD_NUMBER: _builtins.int + NEWSLETTERNAME_FIELD_NUMBER: _builtins.int + JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int + CAPTION_FIELD_NUMBER: _builtins.int + INVITEEXPIRATION_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + newsletterJid: _builtins.str + newsletterName: _builtins.str + jpegThumbnail: _builtins.bytes + caption: _builtins.str + inviteExpiration: _builtins.int + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + def __init__( + self, + *, + newsletterJid: _builtins.str | None = ..., + newsletterName: _builtins.str | None = ..., + jpegThumbnail: _builtins.bytes | None = ..., + caption: _builtins.str | None = ..., + inviteExpiration: _builtins.int | None = ..., + contextInfo: Global___ContextInfo | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "inviteExpiration", b"inviteExpiration", "jpegThumbnail", b"jpegThumbnail", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "inviteExpiration", b"inviteExpiration", "jpegThumbnail", b"jpegThumbnail", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class NewsletterFollowerInviteMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + NEWSLETTERJID_FIELD_NUMBER: _builtins.int + NEWSLETTERNAME_FIELD_NUMBER: _builtins.int + JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int + CAPTION_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + newsletterJid: _builtins.str + newsletterName: _builtins.str + jpegThumbnail: _builtins.bytes + caption: _builtins.str + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + def __init__( + self, + *, + newsletterJid: _builtins.str | None = ..., + newsletterName: _builtins.str | None = ..., + jpegThumbnail: _builtins.bytes | None = ..., + caption: _builtins.str | None = ..., + contextInfo: Global___ContextInfo | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "jpegThumbnail", b"jpegThumbnail", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "jpegThumbnail", b"jpegThumbnail", "newsletterJid", b"newsletterJid", "newsletterName", b"newsletterName"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class OrderMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _OrderStatus: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _OrderStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.OrderMessage._OrderStatus.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + INQUIRY: Message.OrderMessage._OrderStatus.ValueType # 1 + ACCEPTED: Message.OrderMessage._OrderStatus.ValueType # 2 + DECLINED: Message.OrderMessage._OrderStatus.ValueType # 3 + + class OrderStatus(_OrderStatus, metaclass=_OrderStatusEnumTypeWrapper): ... + INQUIRY: Message.OrderMessage.OrderStatus.ValueType # 1 + ACCEPTED: Message.OrderMessage.OrderStatus.ValueType # 2 + DECLINED: Message.OrderMessage.OrderStatus.ValueType # 3 + + class _OrderSurface: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _OrderSurfaceEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.OrderMessage._OrderSurface.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + CATALOG: Message.OrderMessage._OrderSurface.ValueType # 1 + + class OrderSurface(_OrderSurface, metaclass=_OrderSurfaceEnumTypeWrapper): ... + CATALOG: Message.OrderMessage.OrderSurface.ValueType # 1 + + ORDERID_FIELD_NUMBER: _builtins.int + THUMBNAIL_FIELD_NUMBER: _builtins.int + ITEMCOUNT_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + SURFACE_FIELD_NUMBER: _builtins.int + MESSAGE_FIELD_NUMBER: _builtins.int + ORDERTITLE_FIELD_NUMBER: _builtins.int + SELLERJID_FIELD_NUMBER: _builtins.int + TOKEN_FIELD_NUMBER: _builtins.int + TOTALAMOUNT1000_FIELD_NUMBER: _builtins.int + TOTALCURRENCYCODE_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + MESSAGEVERSION_FIELD_NUMBER: _builtins.int + ORDERREQUESTMESSAGEID_FIELD_NUMBER: _builtins.int + CATALOGTYPE_FIELD_NUMBER: _builtins.int + orderId: _builtins.str + thumbnail: _builtins.bytes + itemCount: _builtins.int + status: Global___Message.OrderMessage.OrderStatus.ValueType + surface: Global___Message.OrderMessage.OrderSurface.ValueType + message: _builtins.str + orderTitle: _builtins.str + sellerJid: _builtins.str + token: _builtins.str + totalAmount1000: _builtins.int + totalCurrencyCode: _builtins.str + messageVersion: _builtins.int + catalogType: _builtins.str + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + @_builtins.property + def orderRequestMessageId(self) -> Global___MessageKey: ... + def __init__( + self, + *, + orderId: _builtins.str | None = ..., + thumbnail: _builtins.bytes | None = ..., + itemCount: _builtins.int | None = ..., + status: Global___Message.OrderMessage.OrderStatus.ValueType | None = ..., + surface: Global___Message.OrderMessage.OrderSurface.ValueType | None = ..., + message: _builtins.str | None = ..., + orderTitle: _builtins.str | None = ..., + sellerJid: _builtins.str | None = ..., + token: _builtins.str | None = ..., + totalAmount1000: _builtins.int | None = ..., + totalCurrencyCode: _builtins.str | None = ..., + contextInfo: Global___ContextInfo | None = ..., + messageVersion: _builtins.int | None = ..., + orderRequestMessageId: Global___MessageKey | None = ..., + catalogType: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["catalogType", b"catalogType", "contextInfo", b"contextInfo", "itemCount", b"itemCount", "message", b"message", "messageVersion", b"messageVersion", "orderId", b"orderId", "orderRequestMessageId", b"orderRequestMessageId", "orderTitle", b"orderTitle", "sellerJid", b"sellerJid", "status", b"status", "surface", b"surface", "thumbnail", b"thumbnail", "token", b"token", "totalAmount1000", b"totalAmount1000", "totalCurrencyCode", b"totalCurrencyCode"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["catalogType", b"catalogType", "contextInfo", b"contextInfo", "itemCount", b"itemCount", "message", b"message", "messageVersion", b"messageVersion", "orderId", b"orderId", "orderRequestMessageId", b"orderRequestMessageId", "orderTitle", b"orderTitle", "sellerJid", b"sellerJid", "status", b"status", "surface", b"surface", "thumbnail", b"thumbnail", "token", b"token", "totalAmount1000", b"totalAmount1000", "totalCurrencyCode", b"totalCurrencyCode"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PaymentExtendedMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + TYPE_FIELD_NUMBER: _builtins.int + PLATFORM_FIELD_NUMBER: _builtins.int + MESSAGEPARAMSJSON_FIELD_NUMBER: _builtins.int + type: _builtins.int + platform: _builtins.str + messageParamsJson: _builtins.str + def __init__( + self, + *, + type: _builtins.int | None = ..., + platform: _builtins.str | None = ..., + messageParamsJson: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["messageParamsJson", b"messageParamsJson", "platform", b"platform", "type", b"type"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["messageParamsJson", b"messageParamsJson", "platform", b"platform", "type", b"type"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PaymentInviteMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _InviteType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _InviteTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentInviteMessage._InviteType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + DEFAULT: Message.PaymentInviteMessage._InviteType.ValueType # 0 + MAPPER: Message.PaymentInviteMessage._InviteType.ValueType # 1 + + class InviteType(_InviteType, metaclass=_InviteTypeEnumTypeWrapper): ... + DEFAULT: Message.PaymentInviteMessage.InviteType.ValueType # 0 + MAPPER: Message.PaymentInviteMessage.InviteType.ValueType # 1 + + class _ServiceType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _ServiceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentInviteMessage._ServiceType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: Message.PaymentInviteMessage._ServiceType.ValueType # 0 + FBPAY: Message.PaymentInviteMessage._ServiceType.ValueType # 1 + NOVI: Message.PaymentInviteMessage._ServiceType.ValueType # 2 + UPI: Message.PaymentInviteMessage._ServiceType.ValueType # 3 + PIX: Message.PaymentInviteMessage._ServiceType.ValueType # 4 + + class ServiceType(_ServiceType, metaclass=_ServiceTypeEnumTypeWrapper): ... + UNKNOWN: Message.PaymentInviteMessage.ServiceType.ValueType # 0 + FBPAY: Message.PaymentInviteMessage.ServiceType.ValueType # 1 + NOVI: Message.PaymentInviteMessage.ServiceType.ValueType # 2 + UPI: Message.PaymentInviteMessage.ServiceType.ValueType # 3 + PIX: Message.PaymentInviteMessage.ServiceType.ValueType # 4 + + SERVICETYPE_FIELD_NUMBER: _builtins.int + EXPIRYTIMESTAMP_FIELD_NUMBER: _builtins.int + INCENTIVEELIGIBLE_FIELD_NUMBER: _builtins.int + REFERRALID_FIELD_NUMBER: _builtins.int + INVITETYPE_FIELD_NUMBER: _builtins.int + serviceType: Global___Message.PaymentInviteMessage.ServiceType.ValueType + expiryTimestamp: _builtins.int + incentiveEligible: _builtins.bool + referralId: _builtins.str + inviteType: Global___Message.PaymentInviteMessage.InviteType.ValueType + def __init__( + self, + *, + serviceType: Global___Message.PaymentInviteMessage.ServiceType.ValueType | None = ..., + expiryTimestamp: _builtins.int | None = ..., + incentiveEligible: _builtins.bool | None = ..., + referralId: _builtins.str | None = ..., + inviteType: Global___Message.PaymentInviteMessage.InviteType.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["expiryTimestamp", b"expiryTimestamp", "incentiveEligible", b"incentiveEligible", "inviteType", b"inviteType", "referralId", b"referralId", "serviceType", b"serviceType"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["expiryTimestamp", b"expiryTimestamp", "incentiveEligible", b"incentiveEligible", "inviteType", b"inviteType", "referralId", b"referralId", "serviceType", b"serviceType"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PaymentLinkMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class PaymentLinkButton(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + DISPLAYTEXT_FIELD_NUMBER: _builtins.int + displayText: _builtins.str + def __init__( + self, + *, + displayText: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["displayText", b"displayText"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PaymentLinkHeader(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _PaymentLinkHeaderType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _PaymentLinkHeaderTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentLinkMetadata.PaymentLinkHeader._PaymentLinkHeaderType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + LINK_PREVIEW: Message.PaymentLinkMetadata.PaymentLinkHeader._PaymentLinkHeaderType.ValueType # 0 + ORDER: Message.PaymentLinkMetadata.PaymentLinkHeader._PaymentLinkHeaderType.ValueType # 1 + + class PaymentLinkHeaderType(_PaymentLinkHeaderType, metaclass=_PaymentLinkHeaderTypeEnumTypeWrapper): ... + LINK_PREVIEW: Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType.ValueType # 0 + ORDER: Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType.ValueType # 1 + + HEADERTYPE_FIELD_NUMBER: _builtins.int + headerType: Global___Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType.ValueType + def __init__( + self, + *, + headerType: Global___Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["headerType", b"headerType"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["headerType", b"headerType"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PaymentLinkProvider(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + PARAMSJSON_FIELD_NUMBER: _builtins.int + paramsJson: _builtins.str + def __init__( + self, + *, + paramsJson: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["paramsJson", b"paramsJson"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["paramsJson", b"paramsJson"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + BUTTON_FIELD_NUMBER: _builtins.int + HEADER_FIELD_NUMBER: _builtins.int + PROVIDER_FIELD_NUMBER: _builtins.int + @_builtins.property + def button(self) -> Global___Message.PaymentLinkMetadata.PaymentLinkButton: ... + @_builtins.property + def header(self) -> Global___Message.PaymentLinkMetadata.PaymentLinkHeader: ... + @_builtins.property + def provider(self) -> Global___Message.PaymentLinkMetadata.PaymentLinkProvider: ... + def __init__( + self, + *, + button: Global___Message.PaymentLinkMetadata.PaymentLinkButton | None = ..., + header: Global___Message.PaymentLinkMetadata.PaymentLinkHeader | None = ..., + provider: Global___Message.PaymentLinkMetadata.PaymentLinkProvider | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["button", b"button", "header", b"header", "provider", b"provider"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["button", b"button", "header", b"header", "provider", b"provider"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PaymentReminderMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _ReminderFrequency: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _ReminderFrequencyEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentReminderMessage._ReminderFrequency.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + REMINDER_FREQUENCY_UNKNOWN: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 0 + WEEKLY: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 1 + BI_WEEKLY: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 2 + MONTHLY: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 3 + QUARTERLY: Message.PaymentReminderMessage._ReminderFrequency.ValueType # 4 + + class ReminderFrequency(_ReminderFrequency, metaclass=_ReminderFrequencyEnumTypeWrapper): ... + REMINDER_FREQUENCY_UNKNOWN: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 0 + WEEKLY: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 1 + BI_WEEKLY: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 2 + MONTHLY: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 3 + QUARTERLY: Message.PaymentReminderMessage.ReminderFrequency.ValueType # 4 + + class _ReminderStatus: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _ReminderStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PaymentReminderMessage._ReminderStatus.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + REMINDER_STATUS_UNKNOWN: Message.PaymentReminderMessage._ReminderStatus.ValueType # 0 + ACTIVE: Message.PaymentReminderMessage._ReminderStatus.ValueType # 1 + CANCELLED_BY_CREATOR: Message.PaymentReminderMessage._ReminderStatus.ValueType # 2 + STOPPED_BY_RECEIVER: Message.PaymentReminderMessage._ReminderStatus.ValueType # 3 + EXPIRED: Message.PaymentReminderMessage._ReminderStatus.ValueType # 4 + PAID: Message.PaymentReminderMessage._ReminderStatus.ValueType # 5 + + class ReminderStatus(_ReminderStatus, metaclass=_ReminderStatusEnumTypeWrapper): ... + REMINDER_STATUS_UNKNOWN: Message.PaymentReminderMessage.ReminderStatus.ValueType # 0 + ACTIVE: Message.PaymentReminderMessage.ReminderStatus.ValueType # 1 + CANCELLED_BY_CREATOR: Message.PaymentReminderMessage.ReminderStatus.ValueType # 2 + STOPPED_BY_RECEIVER: Message.PaymentReminderMessage.ReminderStatus.ValueType # 3 + EXPIRED: Message.PaymentReminderMessage.ReminderStatus.ValueType # 4 + PAID: Message.PaymentReminderMessage.ReminderStatus.ValueType # 5 + + REMINDERID_FIELD_NUMBER: _builtins.int + INSTANCEID_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + FREQUENCY_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + PAYEEVPA_FIELD_NUMBER: _builtins.int + PAYEEJID_FIELD_NUMBER: _builtins.int + PAYERJID_FIELD_NUMBER: _builtins.int + AMOUNT_FIELD_NUMBER: _builtins.int + reminderId: _builtins.str + instanceId: _builtins.str + description: _builtins.str + frequency: Global___Message.PaymentReminderMessage.ReminderFrequency.ValueType + status: Global___Message.PaymentReminderMessage.ReminderStatus.ValueType + payeeVpa: _builtins.str + payeeJid: _builtins.str + payerJid: _builtins.str + @_builtins.property + def amount(self) -> Global___Money: ... + def __init__( + self, + *, + reminderId: _builtins.str | None = ..., + instanceId: _builtins.str | None = ..., + description: _builtins.str | None = ..., + frequency: Global___Message.PaymentReminderMessage.ReminderFrequency.ValueType | None = ..., + status: Global___Message.PaymentReminderMessage.ReminderStatus.ValueType | None = ..., + payeeVpa: _builtins.str | None = ..., + payeeJid: _builtins.str | None = ..., + payerJid: _builtins.str | None = ..., + amount: Global___Money | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "description", b"description", "frequency", b"frequency", "instanceId", b"instanceId", "payeeJid", b"payeeJid", "payeeVpa", b"payeeVpa", "payerJid", b"payerJid", "reminderId", b"reminderId", "status", b"status"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "description", b"description", "frequency", b"frequency", "instanceId", b"instanceId", "payeeJid", b"payeeJid", "payeeVpa", b"payeeVpa", "payerJid", b"payerJid", "reminderId", b"reminderId", "status", b"status"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PeerDataOperationRequestMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class BizBroadcastInsightsContactListRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + CAMPAIGNID_FIELD_NUMBER: _builtins.int + campaignId: _builtins.str + def __init__( + self, + *, + campaignId: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class BizBroadcastInsightsRefreshRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + CAMPAIGNID_FIELD_NUMBER: _builtins.int + campaignId: _builtins.str + def __init__( + self, + *, + campaignId: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class CompanionCanonicalUserNonceFetchRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + REGISTRATIONTRACEID_FIELD_NUMBER: _builtins.int + registrationTraceId: _builtins.str + def __init__( + self, + *, + registrationTraceId: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["registrationTraceId", b"registrationTraceId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["registrationTraceId", b"registrationTraceId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class FullHistorySyncOnDemandRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + REQUESTMETADATA_FIELD_NUMBER: _builtins.int + HISTORYSYNCCONFIG_FIELD_NUMBER: _builtins.int + FULLHISTORYSYNCONDEMANDCONFIG_FIELD_NUMBER: _builtins.int + @_builtins.property + def requestMetadata(self) -> Global___Message.FullHistorySyncOnDemandRequestMetadata: ... + @_builtins.property + def historySyncConfig(self) -> Global___DeviceProps.HistorySyncConfig: ... + @_builtins.property + def fullHistorySyncOnDemandConfig(self) -> Global___Message.FullHistorySyncOnDemandConfig: ... + def __init__( + self, + *, + requestMetadata: Global___Message.FullHistorySyncOnDemandRequestMetadata | None = ..., + historySyncConfig: Global___DeviceProps.HistorySyncConfig | None = ..., + fullHistorySyncOnDemandConfig: Global___Message.FullHistorySyncOnDemandConfig | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["fullHistorySyncOnDemandConfig", b"fullHistorySyncOnDemandConfig", "historySyncConfig", b"historySyncConfig", "requestMetadata", b"requestMetadata"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["fullHistorySyncOnDemandConfig", b"fullHistorySyncOnDemandConfig", "historySyncConfig", b"historySyncConfig", "requestMetadata", b"requestMetadata"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class GalaxyFlowAction(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _GalaxyFlowActionType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _GalaxyFlowActionTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PeerDataOperationRequestMessage.GalaxyFlowAction._GalaxyFlowActionType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + NOTIFY_LAUNCH: Message.PeerDataOperationRequestMessage.GalaxyFlowAction._GalaxyFlowActionType.ValueType # 1 + DOWNLOAD_RESPONSES: Message.PeerDataOperationRequestMessage.GalaxyFlowAction._GalaxyFlowActionType.ValueType # 2 + + class GalaxyFlowActionType(_GalaxyFlowActionType, metaclass=_GalaxyFlowActionTypeEnumTypeWrapper): ... + NOTIFY_LAUNCH: Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType.ValueType # 1 + DOWNLOAD_RESPONSES: Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType.ValueType # 2 + + TYPE_FIELD_NUMBER: _builtins.int + FLOWID_FIELD_NUMBER: _builtins.int + STANZAID_FIELD_NUMBER: _builtins.int + GALAXYFLOWDOWNLOADREQUESTID_FIELD_NUMBER: _builtins.int + AGMID_FIELD_NUMBER: _builtins.int + type: Global___Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType.ValueType + flowId: _builtins.str + stanzaId: _builtins.str + galaxyFlowDownloadRequestId: _builtins.str + agmId: _builtins.str + def __init__( + self, + *, + type: Global___Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType.ValueType | None = ..., + flowId: _builtins.str | None = ..., + stanzaId: _builtins.str | None = ..., + galaxyFlowDownloadRequestId: _builtins.str | None = ..., + agmId: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["agmId", b"agmId", "flowId", b"flowId", "galaxyFlowDownloadRequestId", b"galaxyFlowDownloadRequestId", "stanzaId", b"stanzaId", "type", b"type"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["agmId", b"agmId", "flowId", b"flowId", "galaxyFlowDownloadRequestId", b"galaxyFlowDownloadRequestId", "stanzaId", b"stanzaId", "type", b"type"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class HistorySyncChunkRetryRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + SYNCTYPE_FIELD_NUMBER: _builtins.int + CHUNKORDER_FIELD_NUMBER: _builtins.int + CHUNKNOTIFICATIONID_FIELD_NUMBER: _builtins.int + REGENERATECHUNK_FIELD_NUMBER: _builtins.int + syncType: Global___Message.HistorySyncType.ValueType + chunkOrder: _builtins.int + chunkNotificationId: _builtins.str + regenerateChunk: _builtins.bool + def __init__( + self, + *, + syncType: Global___Message.HistorySyncType.ValueType | None = ..., + chunkOrder: _builtins.int | None = ..., + chunkNotificationId: _builtins.str | None = ..., + regenerateChunk: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["chunkNotificationId", b"chunkNotificationId", "chunkOrder", b"chunkOrder", "regenerateChunk", b"regenerateChunk", "syncType", b"syncType"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["chunkNotificationId", b"chunkNotificationId", "chunkOrder", b"chunkOrder", "regenerateChunk", b"regenerateChunk", "syncType", b"syncType"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class HistorySyncOnDemandRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + CHATJID_FIELD_NUMBER: _builtins.int + OLDESTMSGID_FIELD_NUMBER: _builtins.int + OLDESTMSGFROMME_FIELD_NUMBER: _builtins.int + ONDEMANDMSGCOUNT_FIELD_NUMBER: _builtins.int + OLDESTMSGTIMESTAMPMS_FIELD_NUMBER: _builtins.int + ACCOUNTLID_FIELD_NUMBER: _builtins.int + SUPPORTINLINERESPONSE_FIELD_NUMBER: _builtins.int + chatJid: _builtins.str + oldestMsgId: _builtins.str + oldestMsgFromMe: _builtins.bool + onDemandMsgCount: _builtins.int + oldestMsgTimestampMs: _builtins.int + accountLid: _builtins.str + supportInlineResponse: _builtins.bool + def __init__( + self, + *, + chatJid: _builtins.str | None = ..., + oldestMsgId: _builtins.str | None = ..., + oldestMsgFromMe: _builtins.bool | None = ..., + onDemandMsgCount: _builtins.int | None = ..., + oldestMsgTimestampMs: _builtins.int | None = ..., + accountLid: _builtins.str | None = ..., + supportInlineResponse: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["accountLid", b"accountLid", "chatJid", b"chatJid", "oldestMsgFromMe", b"oldestMsgFromMe", "oldestMsgId", b"oldestMsgId", "oldestMsgTimestampMs", b"oldestMsgTimestampMs", "onDemandMsgCount", b"onDemandMsgCount", "supportInlineResponse", b"supportInlineResponse"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["accountLid", b"accountLid", "chatJid", b"chatJid", "oldestMsgFromMe", b"oldestMsgFromMe", "oldestMsgId", b"oldestMsgId", "oldestMsgTimestampMs", b"oldestMsgTimestampMs", "onDemandMsgCount", b"onDemandMsgCount", "supportInlineResponse", b"supportInlineResponse"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PlaceholderMessageResendRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + MESSAGEKEY_FIELD_NUMBER: _builtins.int + @_builtins.property + def messageKey(self) -> Global___MessageKey: ... + def __init__( + self, + *, + messageKey: Global___MessageKey | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["messageKey", b"messageKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["messageKey", b"messageKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class RequestStickerReupload(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + FILESHA256_FIELD_NUMBER: _builtins.int + fileSha256: _builtins.str + def __init__( + self, + *, + fileSha256: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["fileSha256", b"fileSha256"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["fileSha256", b"fileSha256"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class RequestUrlPreview(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + URL_FIELD_NUMBER: _builtins.int + INCLUDEHQTHUMBNAIL_FIELD_NUMBER: _builtins.int + url: _builtins.str + includeHqThumbnail: _builtins.bool + def __init__( + self, + *, + url: _builtins.str | None = ..., + includeHqThumbnail: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["includeHqThumbnail", b"includeHqThumbnail", "url", b"url"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["includeHqThumbnail", b"includeHqThumbnail", "url", b"url"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class SyncDCollectionFatalRecoveryRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + COLLECTIONNAME_FIELD_NUMBER: _builtins.int + TIMESTAMP_FIELD_NUMBER: _builtins.int + collectionName: _builtins.str + timestamp: _builtins.int + def __init__( + self, + *, + collectionName: _builtins.str | None = ..., + timestamp: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["collectionName", b"collectionName", "timestamp", b"timestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["collectionName", b"collectionName", "timestamp", b"timestamp"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + PEERDATAOPERATIONREQUESTTYPE_FIELD_NUMBER: _builtins.int + REQUESTSTICKERREUPLOAD_FIELD_NUMBER: _builtins.int + REQUESTURLPREVIEW_FIELD_NUMBER: _builtins.int + HISTORYSYNCONDEMANDREQUEST_FIELD_NUMBER: _builtins.int + PLACEHOLDERMESSAGERESENDREQUEST_FIELD_NUMBER: _builtins.int + FULLHISTORYSYNCONDEMANDREQUEST_FIELD_NUMBER: _builtins.int + SYNCDCOLLECTIONFATALRECOVERYREQUEST_FIELD_NUMBER: _builtins.int + HISTORYSYNCCHUNKRETRYREQUEST_FIELD_NUMBER: _builtins.int + GALAXYFLOWACTION_FIELD_NUMBER: _builtins.int + COMPANIONCANONICALUSERNONCEFETCHREQUEST_FIELD_NUMBER: _builtins.int + BIZBROADCASTINSIGHTSCONTACTLISTREQUEST_FIELD_NUMBER: _builtins.int + BIZBROADCASTINSIGHTSREFRESHREQUEST_FIELD_NUMBER: _builtins.int + peerDataOperationRequestType: Global___Message.PeerDataOperationRequestType.ValueType + @_builtins.property + def requestStickerReupload(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestMessage.RequestStickerReupload]: ... + @_builtins.property + def requestUrlPreview(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestMessage.RequestUrlPreview]: ... + @_builtins.property + def historySyncOnDemandRequest(self) -> Global___Message.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest: ... + @_builtins.property + def placeholderMessageResendRequest(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest]: ... + @_builtins.property + def fullHistorySyncOnDemandRequest(self) -> Global___Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest: ... + @_builtins.property + def syncdCollectionFatalRecoveryRequest(self) -> Global___Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest: ... + @_builtins.property + def historySyncChunkRetryRequest(self) -> Global___Message.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest: ... + @_builtins.property + def galaxyFlowAction(self) -> Global___Message.PeerDataOperationRequestMessage.GalaxyFlowAction: ... + @_builtins.property + def companionCanonicalUserNonceFetchRequest(self) -> Global___Message.PeerDataOperationRequestMessage.CompanionCanonicalUserNonceFetchRequest: ... + @_builtins.property + def bizBroadcastInsightsContactListRequest(self) -> Global___Message.PeerDataOperationRequestMessage.BizBroadcastInsightsContactListRequest: ... + @_builtins.property + def bizBroadcastInsightsRefreshRequest(self) -> Global___Message.PeerDataOperationRequestMessage.BizBroadcastInsightsRefreshRequest: ... + def __init__( + self, + *, + peerDataOperationRequestType: Global___Message.PeerDataOperationRequestType.ValueType | None = ..., + requestStickerReupload: _abc.Iterable[Global___Message.PeerDataOperationRequestMessage.RequestStickerReupload] | None = ..., + requestUrlPreview: _abc.Iterable[Global___Message.PeerDataOperationRequestMessage.RequestUrlPreview] | None = ..., + historySyncOnDemandRequest: Global___Message.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest | None = ..., + placeholderMessageResendRequest: _abc.Iterable[Global___Message.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest] | None = ..., + fullHistorySyncOnDemandRequest: Global___Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest | None = ..., + syncdCollectionFatalRecoveryRequest: Global___Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest | None = ..., + historySyncChunkRetryRequest: Global___Message.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest | None = ..., + galaxyFlowAction: Global___Message.PeerDataOperationRequestMessage.GalaxyFlowAction | None = ..., + companionCanonicalUserNonceFetchRequest: Global___Message.PeerDataOperationRequestMessage.CompanionCanonicalUserNonceFetchRequest | None = ..., + bizBroadcastInsightsContactListRequest: Global___Message.PeerDataOperationRequestMessage.BizBroadcastInsightsContactListRequest | None = ..., + bizBroadcastInsightsRefreshRequest: Global___Message.PeerDataOperationRequestMessage.BizBroadcastInsightsRefreshRequest | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["bizBroadcastInsightsContactListRequest", b"bizBroadcastInsightsContactListRequest", "bizBroadcastInsightsRefreshRequest", b"bizBroadcastInsightsRefreshRequest", "companionCanonicalUserNonceFetchRequest", b"companionCanonicalUserNonceFetchRequest", "fullHistorySyncOnDemandRequest", b"fullHistorySyncOnDemandRequest", "galaxyFlowAction", b"galaxyFlowAction", "historySyncChunkRetryRequest", b"historySyncChunkRetryRequest", "historySyncOnDemandRequest", b"historySyncOnDemandRequest", "peerDataOperationRequestType", b"peerDataOperationRequestType", "syncdCollectionFatalRecoveryRequest", b"syncdCollectionFatalRecoveryRequest"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["bizBroadcastInsightsContactListRequest", b"bizBroadcastInsightsContactListRequest", "bizBroadcastInsightsRefreshRequest", b"bizBroadcastInsightsRefreshRequest", "companionCanonicalUserNonceFetchRequest", b"companionCanonicalUserNonceFetchRequest", "fullHistorySyncOnDemandRequest", b"fullHistorySyncOnDemandRequest", "galaxyFlowAction", b"galaxyFlowAction", "historySyncChunkRetryRequest", b"historySyncChunkRetryRequest", "historySyncOnDemandRequest", b"historySyncOnDemandRequest", "peerDataOperationRequestType", b"peerDataOperationRequestType", "placeholderMessageResendRequest", b"placeholderMessageResendRequest", "requestStickerReupload", b"requestStickerReupload", "requestUrlPreview", b"requestUrlPreview", "syncdCollectionFatalRecoveryRequest", b"syncdCollectionFatalRecoveryRequest"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PeerDataOperationRequestResponseMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class PeerDataOperationResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _FullHistorySyncOnDemandResponseCode: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _FullHistorySyncOnDemandResponseCodeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + REQUEST_SUCCESS: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 0 + REQUEST_TIME_EXPIRED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 1 + DECLINED_SHARING_HISTORY: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 2 + GENERIC_ERROR: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 3 + ERROR_REQUEST_ON_NON_SMB_PRIMARY: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 4 + ERROR_HOSTED_DEVICE_NOT_CONNECTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 5 + ERROR_HOSTED_DEVICE_LOGIN_TIME_NOT_SET: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 6 + ERROR_MULTI_PROVIDER_NOT_CONFIGURED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._FullHistorySyncOnDemandResponseCode.ValueType # 7 + + class FullHistorySyncOnDemandResponseCode(_FullHistorySyncOnDemandResponseCode, metaclass=_FullHistorySyncOnDemandResponseCodeEnumTypeWrapper): ... + REQUEST_SUCCESS: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 0 + REQUEST_TIME_EXPIRED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 1 + DECLINED_SHARING_HISTORY: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 2 + GENERIC_ERROR: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 3 + ERROR_REQUEST_ON_NON_SMB_PRIMARY: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 4 + ERROR_HOSTED_DEVICE_NOT_CONNECTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 5 + ERROR_HOSTED_DEVICE_LOGIN_TIME_NOT_SET: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 6 + ERROR_MULTI_PROVIDER_NOT_CONFIGURED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType # 7 + + class _HistorySyncChunkRetryResponseCode: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _HistorySyncChunkRetryResponseCodeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + GENERATION_ERROR: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 1 + CHUNK_CONSUMED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 2 + TIMEOUT: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 3 + SESSION_EXHAUSTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 4 + CHUNK_EXHAUSTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 5 + DUPLICATED_REQUEST: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult._HistorySyncChunkRetryResponseCode.ValueType # 6 + + class HistorySyncChunkRetryResponseCode(_HistorySyncChunkRetryResponseCode, metaclass=_HistorySyncChunkRetryResponseCodeEnumTypeWrapper): ... + GENERATION_ERROR: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 1 + CHUNK_CONSUMED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 2 + TIMEOUT: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 3 + SESSION_EXHAUSTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 4 + CHUNK_EXHAUSTED: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 5 + DUPLICATED_REQUEST: Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType # 6 + + @_typing.final + class BizBroadcastInsightsContactListResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + CAMPAIGNID_FIELD_NUMBER: _builtins.int + TIMESTAMPMS_FIELD_NUMBER: _builtins.int + CONTACTS_FIELD_NUMBER: _builtins.int + campaignId: _builtins.str + timestampMs: _builtins.int + @_builtins.property + def contacts(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactState]: ... + def __init__( + self, + *, + campaignId: _builtins.str | None = ..., + timestampMs: _builtins.int | None = ..., + contacts: _abc.Iterable[Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactState] | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId", "timestampMs", b"timestampMs"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["campaignId", b"campaignId", "contacts", b"contacts", "timestampMs", b"timestampMs"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class BizBroadcastInsightsContactState(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + CONTACTJID_FIELD_NUMBER: _builtins.int + STATE_FIELD_NUMBER: _builtins.int + contactJid: _builtins.str + state: Global___Message.InsightDeliveryState.ValueType + def __init__( + self, + *, + contactJid: _builtins.str | None = ..., + state: Global___Message.InsightDeliveryState.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["contactJid", b"contactJid", "state", b"state"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["contactJid", b"contactJid", "state", b"state"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class CompanionCanonicalUserNonceFetchResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + NONCE_FIELD_NUMBER: _builtins.int + WAFBID_FIELD_NUMBER: _builtins.int + FORCEREFRESH_FIELD_NUMBER: _builtins.int + nonce: _builtins.str + waFbid: _builtins.str + forceRefresh: _builtins.bool + def __init__( + self, + *, + nonce: _builtins.str | None = ..., + waFbid: _builtins.str | None = ..., + forceRefresh: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["forceRefresh", b"forceRefresh", "nonce", b"nonce", "waFbid", b"waFbid"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["forceRefresh", b"forceRefresh", "nonce", b"nonce", "waFbid", b"waFbid"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class CompanionMetaNonceFetchResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + NONCE_FIELD_NUMBER: _builtins.int + nonce: _builtins.str + def __init__( + self, + *, + nonce: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["nonce", b"nonce"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["nonce", b"nonce"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class ContactRefreshResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + COVEREDREQUESTIDS_FIELD_NUMBER: _builtins.int + COLLECTIONVERSION_FIELD_NUMBER: _builtins.int + PRIMARYDURATIONMS_FIELD_NUMBER: _builtins.int + UNIQUECONTACTCOUNT_FIELD_NUMBER: _builtins.int + collectionVersion: _builtins.int + primaryDurationMs: _builtins.int + uniqueContactCount: _builtins.int + @_builtins.property + def coveredRequestIds(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + def __init__( + self, + *, + coveredRequestIds: _abc.Iterable[_builtins.str] | None = ..., + collectionVersion: _builtins.int | None = ..., + primaryDurationMs: _builtins.int | None = ..., + uniqueContactCount: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["collectionVersion", b"collectionVersion", "primaryDurationMs", b"primaryDurationMs", "uniqueContactCount", b"uniqueContactCount"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["collectionVersion", b"collectionVersion", "coveredRequestIds", b"coveredRequestIds", "primaryDurationMs", b"primaryDurationMs", "uniqueContactCount", b"uniqueContactCount"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class FlowResponsesCsvBundle(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + FLOWID_FIELD_NUMBER: _builtins.int + GALAXYFLOWDOWNLOADREQUESTID_FIELD_NUMBER: _builtins.int + FILENAME_FIELD_NUMBER: _builtins.int + MIMETYPE_FIELD_NUMBER: _builtins.int + FILESHA256_FIELD_NUMBER: _builtins.int + MEDIAKEY_FIELD_NUMBER: _builtins.int + FILEENCSHA256_FIELD_NUMBER: _builtins.int + DIRECTPATH_FIELD_NUMBER: _builtins.int + MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int + FILELENGTH_FIELD_NUMBER: _builtins.int + flowId: _builtins.str + galaxyFlowDownloadRequestId: _builtins.str + fileName: _builtins.str + mimetype: _builtins.str + fileSha256: _builtins.bytes + mediaKey: _builtins.bytes + fileEncSha256: _builtins.bytes + directPath: _builtins.str + mediaKeyTimestamp: _builtins.int + fileLength: _builtins.int + def __init__( + self, + *, + flowId: _builtins.str | None = ..., + galaxyFlowDownloadRequestId: _builtins.str | None = ..., + fileName: _builtins.str | None = ..., + mimetype: _builtins.str | None = ..., + fileSha256: _builtins.bytes | None = ..., + mediaKey: _builtins.bytes | None = ..., + fileEncSha256: _builtins.bytes | None = ..., + directPath: _builtins.str | None = ..., + mediaKeyTimestamp: _builtins.int | None = ..., + fileLength: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileName", b"fileName", "fileSha256", b"fileSha256", "flowId", b"flowId", "galaxyFlowDownloadRequestId", b"galaxyFlowDownloadRequestId", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileName", b"fileName", "fileSha256", b"fileSha256", "flowId", b"flowId", "galaxyFlowDownloadRequestId", b"galaxyFlowDownloadRequestId", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class FullHistorySyncOnDemandRequestResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + REQUESTMETADATA_FIELD_NUMBER: _builtins.int + RESPONSECODE_FIELD_NUMBER: _builtins.int + responseCode: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType + @_builtins.property + def requestMetadata(self) -> Global___Message.FullHistorySyncOnDemandRequestMetadata: ... + def __init__( + self, + *, + requestMetadata: Global___Message.FullHistorySyncOnDemandRequestMetadata | None = ..., + responseCode: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["requestMetadata", b"requestMetadata", "responseCode", b"responseCode"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["requestMetadata", b"requestMetadata", "responseCode", b"responseCode"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class HistorySyncChunkRetryResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + SYNCTYPE_FIELD_NUMBER: _builtins.int + CHUNKORDER_FIELD_NUMBER: _builtins.int + REQUESTID_FIELD_NUMBER: _builtins.int + RESPONSECODE_FIELD_NUMBER: _builtins.int + CANRECOVER_FIELD_NUMBER: _builtins.int + syncType: Global___Message.HistorySyncType.ValueType + chunkOrder: _builtins.int + requestId: _builtins.str + responseCode: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType + canRecover: _builtins.bool + def __init__( + self, + *, + syncType: Global___Message.HistorySyncType.ValueType | None = ..., + chunkOrder: _builtins.int | None = ..., + requestId: _builtins.str | None = ..., + responseCode: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode.ValueType | None = ..., + canRecover: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["canRecover", b"canRecover", "chunkOrder", b"chunkOrder", "requestId", b"requestId", "responseCode", b"responseCode", "syncType", b"syncType"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["canRecover", b"canRecover", "chunkOrder", b"chunkOrder", "requestId", b"requestId", "responseCode", b"responseCode", "syncType", b"syncType"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class LinkPreviewResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class LinkPreviewHighQualityThumbnail(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + DIRECTPATH_FIELD_NUMBER: _builtins.int + THUMBHASH_FIELD_NUMBER: _builtins.int + ENCTHUMBHASH_FIELD_NUMBER: _builtins.int + MEDIAKEY_FIELD_NUMBER: _builtins.int + MEDIAKEYTIMESTAMPMS_FIELD_NUMBER: _builtins.int + THUMBWIDTH_FIELD_NUMBER: _builtins.int + THUMBHEIGHT_FIELD_NUMBER: _builtins.int + directPath: _builtins.str + thumbHash: _builtins.str + encThumbHash: _builtins.str + mediaKey: _builtins.bytes + mediaKeyTimestampMs: _builtins.int + thumbWidth: _builtins.int + thumbHeight: _builtins.int + def __init__( + self, + *, + directPath: _builtins.str | None = ..., + thumbHash: _builtins.str | None = ..., + encThumbHash: _builtins.str | None = ..., + mediaKey: _builtins.bytes | None = ..., + mediaKeyTimestampMs: _builtins.int | None = ..., + thumbWidth: _builtins.int | None = ..., + thumbHeight: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "encThumbHash", b"encThumbHash", "mediaKey", b"mediaKey", "mediaKeyTimestampMs", b"mediaKeyTimestampMs", "thumbHash", b"thumbHash", "thumbHeight", b"thumbHeight", "thumbWidth", b"thumbWidth"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "encThumbHash", b"encThumbHash", "mediaKey", b"mediaKey", "mediaKeyTimestampMs", b"mediaKeyTimestampMs", "thumbHash", b"thumbHash", "thumbHeight", b"thumbHeight", "thumbWidth", b"thumbWidth"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PaymentLinkPreviewMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + ISBUSINESSVERIFIED_FIELD_NUMBER: _builtins.int + PROVIDERNAME_FIELD_NUMBER: _builtins.int + AMOUNT_FIELD_NUMBER: _builtins.int + OFFSET_FIELD_NUMBER: _builtins.int + CURRENCY_FIELD_NUMBER: _builtins.int + isBusinessVerified: _builtins.bool + providerName: _builtins.str + amount: _builtins.str + offset: _builtins.str + currency: _builtins.str + def __init__( + self, + *, + isBusinessVerified: _builtins.bool | None = ..., + providerName: _builtins.str | None = ..., + amount: _builtins.str | None = ..., + offset: _builtins.str | None = ..., + currency: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "currency", b"currency", "isBusinessVerified", b"isBusinessVerified", "offset", b"offset", "providerName", b"providerName"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "currency", b"currency", "isBusinessVerified", b"isBusinessVerified", "offset", b"offset", "providerName", b"providerName"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + URL_FIELD_NUMBER: _builtins.int + TITLE_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + THUMBDATA_FIELD_NUMBER: _builtins.int + MATCHTEXT_FIELD_NUMBER: _builtins.int + PREVIEWTYPE_FIELD_NUMBER: _builtins.int + HQTHUMBNAIL_FIELD_NUMBER: _builtins.int + PREVIEWMETADATA_FIELD_NUMBER: _builtins.int + url: _builtins.str + title: _builtins.str + description: _builtins.str + thumbData: _builtins.bytes + matchText: _builtins.str + previewType: _builtins.str + @_builtins.property + def hqThumbnail(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail: ... + @_builtins.property + def previewMetadata(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.PaymentLinkPreviewMetadata: ... + def __init__( + self, + *, + url: _builtins.str | None = ..., + title: _builtins.str | None = ..., + description: _builtins.str | None = ..., + thumbData: _builtins.bytes | None = ..., + matchText: _builtins.str | None = ..., + previewType: _builtins.str | None = ..., + hqThumbnail: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail | None = ..., + previewMetadata: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.PaymentLinkPreviewMetadata | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "hqThumbnail", b"hqThumbnail", "matchText", b"matchText", "previewMetadata", b"previewMetadata", "previewType", b"previewType", "thumbData", b"thumbData", "title", b"title", "url", b"url"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "hqThumbnail", b"hqThumbnail", "matchText", b"matchText", "previewMetadata", b"previewMetadata", "previewType", b"previewType", "thumbData", b"thumbData", "title", b"title", "url", b"url"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PlaceholderMessageResendResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + WEBMESSAGEINFOBYTES_FIELD_NUMBER: _builtins.int + webMessageInfoBytes: _builtins.bytes + def __init__( + self, + *, + webMessageInfoBytes: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["webMessageInfoBytes", b"webMessageInfoBytes"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["webMessageInfoBytes", b"webMessageInfoBytes"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class SyncDSnapshotFatalRecoveryResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + COLLECTIONSNAPSHOT_FIELD_NUMBER: _builtins.int + ISCOMPRESSED_FIELD_NUMBER: _builtins.int + collectionSnapshot: _builtins.bytes + isCompressed: _builtins.bool + def __init__( + self, + *, + collectionSnapshot: _builtins.bytes | None = ..., + isCompressed: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["collectionSnapshot", b"collectionSnapshot", "isCompressed", b"isCompressed"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["collectionSnapshot", b"collectionSnapshot", "isCompressed", b"isCompressed"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class WaffleNonceFetchResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + NONCE_FIELD_NUMBER: _builtins.int + WAENTFBID_FIELD_NUMBER: _builtins.int + nonce: _builtins.str + waEntFbid: _builtins.str + def __init__( + self, + *, + nonce: _builtins.str | None = ..., + waEntFbid: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["nonce", b"nonce", "waEntFbid", b"waEntFbid"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["nonce", b"nonce", "waEntFbid", b"waEntFbid"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + MEDIAUPLOADRESULT_FIELD_NUMBER: _builtins.int + STICKERMESSAGE_FIELD_NUMBER: _builtins.int + LINKPREVIEWRESPONSE_FIELD_NUMBER: _builtins.int + PLACEHOLDERMESSAGERESENDRESPONSE_FIELD_NUMBER: _builtins.int + WAFFLENONCEFETCHREQUESTRESPONSE_FIELD_NUMBER: _builtins.int + FULLHISTORYSYNCONDEMANDREQUESTRESPONSE_FIELD_NUMBER: _builtins.int + COMPANIONMETANONCEFETCHREQUESTRESPONSE_FIELD_NUMBER: _builtins.int + SYNCDSNAPSHOTFATALRECOVERYRESPONSE_FIELD_NUMBER: _builtins.int + COMPANIONCANONICALUSERNONCEFETCHREQUESTRESPONSE_FIELD_NUMBER: _builtins.int + HISTORYSYNCCHUNKRETRYRESPONSE_FIELD_NUMBER: _builtins.int + FLOWRESPONSESCSVBUNDLE_FIELD_NUMBER: _builtins.int + BIZBROADCASTINSIGHTSCONTACTLISTRESPONSE_FIELD_NUMBER: _builtins.int + CONTACTREFRESHRESPONSE_FIELD_NUMBER: _builtins.int + mediaUploadResult: Global___MediaRetryNotification.ResultType.ValueType + @_builtins.property + def stickerMessage(self) -> Global___Message.StickerMessage: ... + @_builtins.property + def linkPreviewResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse: ... + @_builtins.property + def placeholderMessageResendResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse: ... + @_builtins.property + def waffleNonceFetchRequestResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse: ... + @_builtins.property + def fullHistorySyncOnDemandRequestResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse: ... + @_builtins.property + def companionMetaNonceFetchRequestResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse: ... + @_builtins.property + def syncdSnapshotFatalRecoveryResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse: ... + @_builtins.property + def companionCanonicalUserNonceFetchRequestResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionCanonicalUserNonceFetchResponse: ... + @_builtins.property + def historySyncChunkRetryResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse: ... + @_builtins.property + def flowResponsesCsvBundle(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FlowResponsesCsvBundle: ... + @_builtins.property + def bizBroadcastInsightsContactListResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactListResponse: ... + @_builtins.property + def contactRefreshResponse(self) -> Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ContactRefreshResponse: ... + def __init__( + self, + *, + mediaUploadResult: Global___MediaRetryNotification.ResultType.ValueType | None = ..., + stickerMessage: Global___Message.StickerMessage | None = ..., + linkPreviewResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse | None = ..., + placeholderMessageResendResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse | None = ..., + waffleNonceFetchRequestResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse | None = ..., + fullHistorySyncOnDemandRequestResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse | None = ..., + companionMetaNonceFetchRequestResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse | None = ..., + syncdSnapshotFatalRecoveryResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse | None = ..., + companionCanonicalUserNonceFetchRequestResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionCanonicalUserNonceFetchResponse | None = ..., + historySyncChunkRetryResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse | None = ..., + flowResponsesCsvBundle: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FlowResponsesCsvBundle | None = ..., + bizBroadcastInsightsContactListResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactListResponse | None = ..., + contactRefreshResponse: Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ContactRefreshResponse | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["bizBroadcastInsightsContactListResponse", b"bizBroadcastInsightsContactListResponse", "companionCanonicalUserNonceFetchRequestResponse", b"companionCanonicalUserNonceFetchRequestResponse", "companionMetaNonceFetchRequestResponse", b"companionMetaNonceFetchRequestResponse", "contactRefreshResponse", b"contactRefreshResponse", "flowResponsesCsvBundle", b"flowResponsesCsvBundle", "fullHistorySyncOnDemandRequestResponse", b"fullHistorySyncOnDemandRequestResponse", "historySyncChunkRetryResponse", b"historySyncChunkRetryResponse", "linkPreviewResponse", b"linkPreviewResponse", "mediaUploadResult", b"mediaUploadResult", "placeholderMessageResendResponse", b"placeholderMessageResendResponse", "stickerMessage", b"stickerMessage", "syncdSnapshotFatalRecoveryResponse", b"syncdSnapshotFatalRecoveryResponse", "waffleNonceFetchRequestResponse", b"waffleNonceFetchRequestResponse"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["bizBroadcastInsightsContactListResponse", b"bizBroadcastInsightsContactListResponse", "companionCanonicalUserNonceFetchRequestResponse", b"companionCanonicalUserNonceFetchRequestResponse", "companionMetaNonceFetchRequestResponse", b"companionMetaNonceFetchRequestResponse", "contactRefreshResponse", b"contactRefreshResponse", "flowResponsesCsvBundle", b"flowResponsesCsvBundle", "fullHistorySyncOnDemandRequestResponse", b"fullHistorySyncOnDemandRequestResponse", "historySyncChunkRetryResponse", b"historySyncChunkRetryResponse", "linkPreviewResponse", b"linkPreviewResponse", "mediaUploadResult", b"mediaUploadResult", "placeholderMessageResendResponse", b"placeholderMessageResendResponse", "stickerMessage", b"stickerMessage", "syncdSnapshotFatalRecoveryResponse", b"syncdSnapshotFatalRecoveryResponse", "waffleNonceFetchRequestResponse", b"waffleNonceFetchRequestResponse"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + PEERDATAOPERATIONREQUESTTYPE_FIELD_NUMBER: _builtins.int + STANZAID_FIELD_NUMBER: _builtins.int + PEERDATAOPERATIONRESULT_FIELD_NUMBER: _builtins.int + peerDataOperationRequestType: Global___Message.PeerDataOperationRequestType.ValueType + stanzaId: _builtins.str + @_builtins.property + def peerDataOperationResult(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult]: ... + def __init__( + self, + *, + peerDataOperationRequestType: Global___Message.PeerDataOperationRequestType.ValueType | None = ..., + stanzaId: _builtins.str | None = ..., + peerDataOperationResult: _abc.Iterable[Global___Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult] | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["peerDataOperationRequestType", b"peerDataOperationRequestType", "stanzaId", b"stanzaId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["peerDataOperationRequestType", b"peerDataOperationRequestType", "peerDataOperationResult", b"peerDataOperationResult", "stanzaId", b"stanzaId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PinInChatMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _Type: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PinInChatMessage._Type.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN_TYPE: Message.PinInChatMessage._Type.ValueType # 0 + PIN_FOR_ALL: Message.PinInChatMessage._Type.ValueType # 1 + UNPIN_FOR_ALL: Message.PinInChatMessage._Type.ValueType # 2 + + class Type(_Type, metaclass=_TypeEnumTypeWrapper): ... + UNKNOWN_TYPE: Message.PinInChatMessage.Type.ValueType # 0 + PIN_FOR_ALL: Message.PinInChatMessage.Type.ValueType # 1 + UNPIN_FOR_ALL: Message.PinInChatMessage.Type.ValueType # 2 + + KEY_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + SENDERTIMESTAMPMS_FIELD_NUMBER: _builtins.int + type: Global___Message.PinInChatMessage.Type.ValueType + senderTimestampMs: _builtins.int + @_builtins.property + def key(self) -> Global___MessageKey: ... + def __init__( + self, + *, + key: Global___MessageKey | None = ..., + type: Global___Message.PinInChatMessage.Type.ValueType | None = ..., + senderTimestampMs: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "senderTimestampMs", b"senderTimestampMs", "type", b"type"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "senderTimestampMs", b"senderTimestampMs", "type", b"type"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PlaceholderMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _PlaceholderType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _PlaceholderTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.PlaceholderMessage._PlaceholderType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + MASK_LINKED_DEVICES: Message.PlaceholderMessage._PlaceholderType.ValueType # 0 + + class PlaceholderType(_PlaceholderType, metaclass=_PlaceholderTypeEnumTypeWrapper): ... + MASK_LINKED_DEVICES: Message.PlaceholderMessage.PlaceholderType.ValueType # 0 + + TYPE_FIELD_NUMBER: _builtins.int + type: Global___Message.PlaceholderMessage.PlaceholderType.ValueType + def __init__( + self, + *, + type: Global___Message.PlaceholderMessage.PlaceholderType.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["type", b"type"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["type", b"type"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PollAddOptionMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + POLLCREATIONMESSAGEKEY_FIELD_NUMBER: _builtins.int + ADDOPTION_FIELD_NUMBER: _builtins.int + METADATA_FIELD_NUMBER: _builtins.int + @_builtins.property + def pollCreationMessageKey(self) -> Global___MessageKey: ... + @_builtins.property + def addOption(self) -> Global___Message.PollCreationMessage.Option: ... + @_builtins.property + def metadata(self) -> Global___Message.PollUpdateMessageMetadata: ... + def __init__( + self, + *, + pollCreationMessageKey: Global___MessageKey | None = ..., + addOption: Global___Message.PollCreationMessage.Option | None = ..., + metadata: Global___Message.PollUpdateMessageMetadata | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["addOption", b"addOption", "metadata", b"metadata", "pollCreationMessageKey", b"pollCreationMessageKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["addOption", b"addOption", "metadata", b"metadata", "pollCreationMessageKey", b"pollCreationMessageKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PollCreationMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class Option(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + OPTIONNAME_FIELD_NUMBER: _builtins.int + OPTIONHASH_FIELD_NUMBER: _builtins.int + optionName: _builtins.str + optionHash: _builtins.str + def __init__( + self, + *, + optionName: _builtins.str | None = ..., + optionHash: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["optionHash", b"optionHash", "optionName", b"optionName"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["optionHash", b"optionHash", "optionName", b"optionName"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + ENCKEY_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + OPTIONS_FIELD_NUMBER: _builtins.int + SELECTABLEOPTIONSCOUNT_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + POLLCONTENTTYPE_FIELD_NUMBER: _builtins.int + POLLTYPE_FIELD_NUMBER: _builtins.int + CORRECTANSWER_FIELD_NUMBER: _builtins.int + ENDTIME_FIELD_NUMBER: _builtins.int + HIDEPARTICIPANTNAME_FIELD_NUMBER: _builtins.int + ALLOWADDOPTION_FIELD_NUMBER: _builtins.int + encKey: _builtins.bytes + name: _builtins.str + selectableOptionsCount: _builtins.int + pollContentType: Global___Message.PollContentType.ValueType + pollType: Global___Message.PollType.ValueType + endTime: _builtins.int + hideParticipantName: _builtins.bool + allowAddOption: _builtins.bool + @_builtins.property + def options(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PollCreationMessage.Option]: ... + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + @_builtins.property + def correctAnswer(self) -> Global___Message.PollCreationMessage.Option: ... + def __init__( + self, + *, + encKey: _builtins.bytes | None = ..., + name: _builtins.str | None = ..., + options: _abc.Iterable[Global___Message.PollCreationMessage.Option] | None = ..., + selectableOptionsCount: _builtins.int | None = ..., + contextInfo: Global___ContextInfo | None = ..., + pollContentType: Global___Message.PollContentType.ValueType | None = ..., + pollType: Global___Message.PollType.ValueType | None = ..., + correctAnswer: Global___Message.PollCreationMessage.Option | None = ..., + endTime: _builtins.int | None = ..., + hideParticipantName: _builtins.bool | None = ..., + allowAddOption: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["allowAddOption", b"allowAddOption", "contextInfo", b"contextInfo", "correctAnswer", b"correctAnswer", "encKey", b"encKey", "endTime", b"endTime", "hideParticipantName", b"hideParticipantName", "name", b"name", "pollContentType", b"pollContentType", "pollType", b"pollType", "selectableOptionsCount", b"selectableOptionsCount"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allowAddOption", b"allowAddOption", "contextInfo", b"contextInfo", "correctAnswer", b"correctAnswer", "encKey", b"encKey", "endTime", b"endTime", "hideParticipantName", b"hideParticipantName", "name", b"name", "options", b"options", "pollContentType", b"pollContentType", "pollType", b"pollType", "selectableOptionsCount", b"selectableOptionsCount"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PollEncValue(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + ENCPAYLOAD_FIELD_NUMBER: _builtins.int + ENCIV_FIELD_NUMBER: _builtins.int + encPayload: _builtins.bytes + encIv: _builtins.bytes + def __init__( + self, + *, + encPayload: _builtins.bytes | None = ..., + encIv: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PollResultSnapshotMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class PollVote(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + OPTIONNAME_FIELD_NUMBER: _builtins.int + OPTIONVOTECOUNT_FIELD_NUMBER: _builtins.int + optionName: _builtins.str + optionVoteCount: _builtins.int + def __init__( + self, + *, + optionName: _builtins.str | None = ..., + optionVoteCount: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["optionName", b"optionName", "optionVoteCount", b"optionVoteCount"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["optionName", b"optionName", "optionVoteCount", b"optionVoteCount"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + NAME_FIELD_NUMBER: _builtins.int + POLLVOTES_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + POLLTYPE_FIELD_NUMBER: _builtins.int + name: _builtins.str + pollType: Global___Message.PollType.ValueType + @_builtins.property + def pollVotes(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.PollResultSnapshotMessage.PollVote]: ... + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + def __init__( + self, + *, + name: _builtins.str | None = ..., + pollVotes: _abc.Iterable[Global___Message.PollResultSnapshotMessage.PollVote] | None = ..., + contextInfo: Global___ContextInfo | None = ..., + pollType: Global___Message.PollType.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "name", b"name", "pollType", b"pollType"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "name", b"name", "pollType", b"pollType", "pollVotes", b"pollVotes"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PollUpdateMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + POLLCREATIONMESSAGEKEY_FIELD_NUMBER: _builtins.int + VOTE_FIELD_NUMBER: _builtins.int + METADATA_FIELD_NUMBER: _builtins.int + SENDERTIMESTAMPMS_FIELD_NUMBER: _builtins.int + senderTimestampMs: _builtins.int + @_builtins.property + def pollCreationMessageKey(self) -> Global___MessageKey: ... + @_builtins.property + def vote(self) -> Global___Message.PollEncValue: ... + @_builtins.property + def metadata(self) -> Global___Message.PollUpdateMessageMetadata: ... + def __init__( + self, + *, + pollCreationMessageKey: Global___MessageKey | None = ..., + vote: Global___Message.PollEncValue | None = ..., + metadata: Global___Message.PollUpdateMessageMetadata | None = ..., + senderTimestampMs: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "pollCreationMessageKey", b"pollCreationMessageKey", "senderTimestampMs", b"senderTimestampMs", "vote", b"vote"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "pollCreationMessageKey", b"pollCreationMessageKey", "senderTimestampMs", b"senderTimestampMs", "vote", b"vote"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PollUpdateMessageMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + POLLNAMEHASH_FIELD_NUMBER: _builtins.int + LASTEDITSTANZAID_FIELD_NUMBER: _builtins.int + pollNameHash: _builtins.bytes + lastEditStanzaId: _builtins.str + def __init__( + self, + *, + pollNameHash: _builtins.bytes | None = ..., + lastEditStanzaId: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["lastEditStanzaId", b"lastEditStanzaId", "pollNameHash", b"pollNameHash"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["lastEditStanzaId", b"lastEditStanzaId", "pollNameHash", b"pollNameHash"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class PollVoteMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + SELECTEDOPTIONS_FIELD_NUMBER: _builtins.int + @_builtins.property + def selectedOptions(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... + def __init__( + self, + *, + selectedOptions: _abc.Iterable[_builtins.bytes] | None = ..., + ) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["selectedOptions", b"selectedOptions"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class ProductMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class CatalogSnapshot(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + CATALOGIMAGE_FIELD_NUMBER: _builtins.int + TITLE_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + title: _builtins.str + description: _builtins.str + @_builtins.property + def catalogImage(self) -> Global___Message.ImageMessage: ... + def __init__( + self, + *, + catalogImage: Global___Message.ImageMessage | None = ..., + title: _builtins.str | None = ..., + description: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["catalogImage", b"catalogImage", "description", b"description", "title", b"title"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["catalogImage", b"catalogImage", "description", b"description", "title", b"title"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class ProductSnapshot(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + PRODUCTIMAGE_FIELD_NUMBER: _builtins.int + PRODUCTID_FIELD_NUMBER: _builtins.int + TITLE_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + CURRENCYCODE_FIELD_NUMBER: _builtins.int + PRICEAMOUNT1000_FIELD_NUMBER: _builtins.int + RETAILERID_FIELD_NUMBER: _builtins.int + URL_FIELD_NUMBER: _builtins.int + PRODUCTIMAGECOUNT_FIELD_NUMBER: _builtins.int + FIRSTIMAGEID_FIELD_NUMBER: _builtins.int + SALEPRICEAMOUNT1000_FIELD_NUMBER: _builtins.int + SIGNEDURL_FIELD_NUMBER: _builtins.int + productId: _builtins.str + title: _builtins.str + description: _builtins.str + currencyCode: _builtins.str + priceAmount1000: _builtins.int + retailerId: _builtins.str + url: _builtins.str + productImageCount: _builtins.int + firstImageId: _builtins.str + salePriceAmount1000: _builtins.int + signedUrl: _builtins.str + @_builtins.property + def productImage(self) -> Global___Message.ImageMessage: ... + def __init__( + self, + *, + productImage: Global___Message.ImageMessage | None = ..., + productId: _builtins.str | None = ..., + title: _builtins.str | None = ..., + description: _builtins.str | None = ..., + currencyCode: _builtins.str | None = ..., + priceAmount1000: _builtins.int | None = ..., + retailerId: _builtins.str | None = ..., + url: _builtins.str | None = ..., + productImageCount: _builtins.int | None = ..., + firstImageId: _builtins.str | None = ..., + salePriceAmount1000: _builtins.int | None = ..., + signedUrl: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["currencyCode", b"currencyCode", "description", b"description", "firstImageId", b"firstImageId", "priceAmount1000", b"priceAmount1000", "productId", b"productId", "productImage", b"productImage", "productImageCount", b"productImageCount", "retailerId", b"retailerId", "salePriceAmount1000", b"salePriceAmount1000", "signedUrl", b"signedUrl", "title", b"title", "url", b"url"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["currencyCode", b"currencyCode", "description", b"description", "firstImageId", b"firstImageId", "priceAmount1000", b"priceAmount1000", "productId", b"productId", "productImage", b"productImage", "productImageCount", b"productImageCount", "retailerId", b"retailerId", "salePriceAmount1000", b"salePriceAmount1000", "signedUrl", b"signedUrl", "title", b"title", "url", b"url"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + PRODUCT_FIELD_NUMBER: _builtins.int + BUSINESSOWNERJID_FIELD_NUMBER: _builtins.int + CATALOG_FIELD_NUMBER: _builtins.int + BODY_FIELD_NUMBER: _builtins.int + FOOTER_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + businessOwnerJid: _builtins.str + body: _builtins.str + footer: _builtins.str + @_builtins.property + def product(self) -> Global___Message.ProductMessage.ProductSnapshot: ... + @_builtins.property + def catalog(self) -> Global___Message.ProductMessage.CatalogSnapshot: ... + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + def __init__( + self, + *, + product: Global___Message.ProductMessage.ProductSnapshot | None = ..., + businessOwnerJid: _builtins.str | None = ..., + catalog: Global___Message.ProductMessage.CatalogSnapshot | None = ..., + body: _builtins.str | None = ..., + footer: _builtins.str | None = ..., + contextInfo: Global___ContextInfo | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "businessOwnerJid", b"businessOwnerJid", "catalog", b"catalog", "contextInfo", b"contextInfo", "footer", b"footer", "product", b"product"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "businessOwnerJid", b"businessOwnerJid", "catalog", b"catalog", "contextInfo", b"contextInfo", "footer", b"footer", "product", b"product"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class ProtocolMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _Type: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ProtocolMessage._Type.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + REVOKE: Message.ProtocolMessage._Type.ValueType # 0 + EPHEMERAL_SETTING: Message.ProtocolMessage._Type.ValueType # 3 + EPHEMERAL_SYNC_RESPONSE: Message.ProtocolMessage._Type.ValueType # 4 + HISTORY_SYNC_NOTIFICATION: Message.ProtocolMessage._Type.ValueType # 5 + APP_STATE_SYNC_KEY_SHARE: Message.ProtocolMessage._Type.ValueType # 6 + APP_STATE_SYNC_KEY_REQUEST: Message.ProtocolMessage._Type.ValueType # 7 + MSG_FANOUT_BACKFILL_REQUEST: Message.ProtocolMessage._Type.ValueType # 8 + INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC: Message.ProtocolMessage._Type.ValueType # 9 + APP_STATE_FATAL_EXCEPTION_NOTIFICATION: Message.ProtocolMessage._Type.ValueType # 10 + SHARE_PHONE_NUMBER: Message.ProtocolMessage._Type.ValueType # 11 + MESSAGE_EDIT: Message.ProtocolMessage._Type.ValueType # 14 + PEER_DATA_OPERATION_REQUEST_MESSAGE: Message.ProtocolMessage._Type.ValueType # 16 + PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE: Message.ProtocolMessage._Type.ValueType # 17 + REQUEST_WELCOME_MESSAGE: Message.ProtocolMessage._Type.ValueType # 18 + BOT_FEEDBACK_MESSAGE: Message.ProtocolMessage._Type.ValueType # 19 + MEDIA_NOTIFY_MESSAGE: Message.ProtocolMessage._Type.ValueType # 20 + CLOUD_API_THREAD_CONTROL_NOTIFICATION: Message.ProtocolMessage._Type.ValueType # 21 + LID_MIGRATION_MAPPING_SYNC: Message.ProtocolMessage._Type.ValueType # 22 + REMINDER_MESSAGE: Message.ProtocolMessage._Type.ValueType # 23 + BOT_MEMU_ONBOARDING_MESSAGE: Message.ProtocolMessage._Type.ValueType # 24 + STATUS_MENTION_MESSAGE: Message.ProtocolMessage._Type.ValueType # 25 + STOP_GENERATION_MESSAGE: Message.ProtocolMessage._Type.ValueType # 26 + LIMIT_SHARING: Message.ProtocolMessage._Type.ValueType # 27 + AI_PSI_METADATA: Message.ProtocolMessage._Type.ValueType # 28 + AI_QUERY_FANOUT: Message.ProtocolMessage._Type.ValueType # 29 + GROUP_MEMBER_LABEL_CHANGE: Message.ProtocolMessage._Type.ValueType # 30 + AI_MEDIA_COLLECTION_MESSAGE: Message.ProtocolMessage._Type.ValueType # 31 + MESSAGE_UNSCHEDULE: Message.ProtocolMessage._Type.ValueType # 32 + CHAT_THEME_SETTING: Message.ProtocolMessage._Type.ValueType # 34 + AI_METADATA_OPERATION: Message.ProtocolMessage._Type.ValueType # 35 + MARK_AS_VERIFIED_ACTION: Message.ProtocolMessage._Type.ValueType # 36 + COEX_STATE_SYNC: Message.ProtocolMessage._Type.ValueType # 37 + + class Type(_Type, metaclass=_TypeEnumTypeWrapper): ... + REVOKE: Message.ProtocolMessage.Type.ValueType # 0 + EPHEMERAL_SETTING: Message.ProtocolMessage.Type.ValueType # 3 + EPHEMERAL_SYNC_RESPONSE: Message.ProtocolMessage.Type.ValueType # 4 + HISTORY_SYNC_NOTIFICATION: Message.ProtocolMessage.Type.ValueType # 5 + APP_STATE_SYNC_KEY_SHARE: Message.ProtocolMessage.Type.ValueType # 6 + APP_STATE_SYNC_KEY_REQUEST: Message.ProtocolMessage.Type.ValueType # 7 + MSG_FANOUT_BACKFILL_REQUEST: Message.ProtocolMessage.Type.ValueType # 8 + INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC: Message.ProtocolMessage.Type.ValueType # 9 + APP_STATE_FATAL_EXCEPTION_NOTIFICATION: Message.ProtocolMessage.Type.ValueType # 10 + SHARE_PHONE_NUMBER: Message.ProtocolMessage.Type.ValueType # 11 + MESSAGE_EDIT: Message.ProtocolMessage.Type.ValueType # 14 + PEER_DATA_OPERATION_REQUEST_MESSAGE: Message.ProtocolMessage.Type.ValueType # 16 + PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE: Message.ProtocolMessage.Type.ValueType # 17 + REQUEST_WELCOME_MESSAGE: Message.ProtocolMessage.Type.ValueType # 18 + BOT_FEEDBACK_MESSAGE: Message.ProtocolMessage.Type.ValueType # 19 + MEDIA_NOTIFY_MESSAGE: Message.ProtocolMessage.Type.ValueType # 20 + CLOUD_API_THREAD_CONTROL_NOTIFICATION: Message.ProtocolMessage.Type.ValueType # 21 + LID_MIGRATION_MAPPING_SYNC: Message.ProtocolMessage.Type.ValueType # 22 + REMINDER_MESSAGE: Message.ProtocolMessage.Type.ValueType # 23 + BOT_MEMU_ONBOARDING_MESSAGE: Message.ProtocolMessage.Type.ValueType # 24 + STATUS_MENTION_MESSAGE: Message.ProtocolMessage.Type.ValueType # 25 + STOP_GENERATION_MESSAGE: Message.ProtocolMessage.Type.ValueType # 26 + LIMIT_SHARING: Message.ProtocolMessage.Type.ValueType # 27 + AI_PSI_METADATA: Message.ProtocolMessage.Type.ValueType # 28 + AI_QUERY_FANOUT: Message.ProtocolMessage.Type.ValueType # 29 + GROUP_MEMBER_LABEL_CHANGE: Message.ProtocolMessage.Type.ValueType # 30 + AI_MEDIA_COLLECTION_MESSAGE: Message.ProtocolMessage.Type.ValueType # 31 + MESSAGE_UNSCHEDULE: Message.ProtocolMessage.Type.ValueType # 32 + CHAT_THEME_SETTING: Message.ProtocolMessage.Type.ValueType # 34 + AI_METADATA_OPERATION: Message.ProtocolMessage.Type.ValueType # 35 + MARK_AS_VERIFIED_ACTION: Message.ProtocolMessage.Type.ValueType # 36 + COEX_STATE_SYNC: Message.ProtocolMessage.Type.ValueType # 37 + + KEY_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + EPHEMERALEXPIRATION_FIELD_NUMBER: _builtins.int + EPHEMERALSETTINGTIMESTAMP_FIELD_NUMBER: _builtins.int + HISTORYSYNCNOTIFICATION_FIELD_NUMBER: _builtins.int + APPSTATESYNCKEYSHARE_FIELD_NUMBER: _builtins.int + APPSTATESYNCKEYREQUEST_FIELD_NUMBER: _builtins.int + INITIALSECURITYNOTIFICATIONSETTINGSYNC_FIELD_NUMBER: _builtins.int + APPSTATEFATALEXCEPTIONNOTIFICATION_FIELD_NUMBER: _builtins.int + DISAPPEARINGMODE_FIELD_NUMBER: _builtins.int + EDITEDMESSAGE_FIELD_NUMBER: _builtins.int + TIMESTAMPMS_FIELD_NUMBER: _builtins.int + PEERDATAOPERATIONREQUESTMESSAGE_FIELD_NUMBER: _builtins.int + PEERDATAOPERATIONREQUESTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int + BOTFEEDBACKMESSAGE_FIELD_NUMBER: _builtins.int + INVOKERJID_FIELD_NUMBER: _builtins.int + REQUESTWELCOMEMESSAGEMETADATA_FIELD_NUMBER: _builtins.int + MEDIANOTIFYMESSAGE_FIELD_NUMBER: _builtins.int + CLOUDAPITHREADCONTROLNOTIFICATION_FIELD_NUMBER: _builtins.int + LIDMIGRATIONMAPPINGSYNCMESSAGE_FIELD_NUMBER: _builtins.int + LIMITSHARING_FIELD_NUMBER: _builtins.int + AIPSIMETADATA_FIELD_NUMBER: _builtins.int + AIQUERYFANOUT_FIELD_NUMBER: _builtins.int + MEMBERLABEL_FIELD_NUMBER: _builtins.int + AIMEDIACOLLECTIONMESSAGE_FIELD_NUMBER: _builtins.int + AFTERREADDURATION_FIELD_NUMBER: _builtins.int + CHATTHEMESETTING_FIELD_NUMBER: _builtins.int + AIMETADATAOPERATION_FIELD_NUMBER: _builtins.int + MARKASVERIFIEDACTION_FIELD_NUMBER: _builtins.int + COEXSTATESYNC_FIELD_NUMBER: _builtins.int + type: Global___Message.ProtocolMessage.Type.ValueType + ephemeralExpiration: _builtins.int + ephemeralSettingTimestamp: _builtins.int + timestampMs: _builtins.int + invokerJid: _builtins.str + aiPsiMetadata: _builtins.bytes + afterReadDuration: _builtins.int + @_builtins.property + def key(self) -> Global___MessageKey: ... + @_builtins.property + def historySyncNotification(self) -> Global___Message.HistorySyncNotification: ... + @_builtins.property + def appStateSyncKeyShare(self) -> Global___Message.AppStateSyncKeyShare: ... + @_builtins.property + def appStateSyncKeyRequest(self) -> Global___Message.AppStateSyncKeyRequest: ... + @_builtins.property + def initialSecurityNotificationSettingSync(self) -> Global___Message.InitialSecurityNotificationSettingSync: ... + @_builtins.property + def appStateFatalExceptionNotification(self) -> Global___Message.AppStateFatalExceptionNotification: ... + @_builtins.property + def disappearingMode(self) -> Global___DisappearingMode: ... + @_builtins.property + def editedMessage(self) -> Global___Message: ... + @_builtins.property + def peerDataOperationRequestMessage(self) -> Global___Message.PeerDataOperationRequestMessage: ... + @_builtins.property + def peerDataOperationRequestResponseMessage(self) -> Global___Message.PeerDataOperationRequestResponseMessage: ... + @_builtins.property + def botFeedbackMessage(self) -> Global___BotFeedbackMessage: ... + @_builtins.property + def requestWelcomeMessageMetadata(self) -> Global___Message.RequestWelcomeMessageMetadata: ... + @_builtins.property + def mediaNotifyMessage(self) -> Global___MediaNotifyMessage: ... + @_builtins.property + def cloudApiThreadControlNotification(self) -> Global___Message.CloudAPIThreadControlNotification: ... + @_builtins.property + def lidMigrationMappingSyncMessage(self) -> Global___LIDMigrationMappingSyncMessage: ... + @_builtins.property + def limitSharing(self) -> Global___LimitSharing: ... + @_builtins.property + def aiQueryFanout(self) -> Global___AIQueryFanout: ... + @_builtins.property + def memberLabel(self) -> Global___MemberLabel: ... + @_builtins.property + def aiMediaCollectionMessage(self) -> Global___AIMediaCollectionMessage: ... + @_builtins.property + def chatThemeSetting(self) -> Global___Message.ChatThemeSetting: ... + @_builtins.property + def aiMetadataOperation(self) -> Global___AIMetadataOperation: ... + @_builtins.property + def markAsVerifiedAction(self) -> Global___Message.MarkAsVerifiedAction: ... + @_builtins.property + def coexStateSync(self) -> Global___CoexStateSync: ... + def __init__( + self, + *, + key: Global___MessageKey | None = ..., + type: Global___Message.ProtocolMessage.Type.ValueType | None = ..., + ephemeralExpiration: _builtins.int | None = ..., + ephemeralSettingTimestamp: _builtins.int | None = ..., + historySyncNotification: Global___Message.HistorySyncNotification | None = ..., + appStateSyncKeyShare: Global___Message.AppStateSyncKeyShare | None = ..., + appStateSyncKeyRequest: Global___Message.AppStateSyncKeyRequest | None = ..., + initialSecurityNotificationSettingSync: Global___Message.InitialSecurityNotificationSettingSync | None = ..., + appStateFatalExceptionNotification: Global___Message.AppStateFatalExceptionNotification | None = ..., + disappearingMode: Global___DisappearingMode | None = ..., + editedMessage: Global___Message | None = ..., + timestampMs: _builtins.int | None = ..., + peerDataOperationRequestMessage: Global___Message.PeerDataOperationRequestMessage | None = ..., + peerDataOperationRequestResponseMessage: Global___Message.PeerDataOperationRequestResponseMessage | None = ..., + botFeedbackMessage: Global___BotFeedbackMessage | None = ..., + invokerJid: _builtins.str | None = ..., + requestWelcomeMessageMetadata: Global___Message.RequestWelcomeMessageMetadata | None = ..., + mediaNotifyMessage: Global___MediaNotifyMessage | None = ..., + cloudApiThreadControlNotification: Global___Message.CloudAPIThreadControlNotification | None = ..., + lidMigrationMappingSyncMessage: Global___LIDMigrationMappingSyncMessage | None = ..., + limitSharing: Global___LimitSharing | None = ..., + aiPsiMetadata: _builtins.bytes | None = ..., + aiQueryFanout: Global___AIQueryFanout | None = ..., + memberLabel: Global___MemberLabel | None = ..., + aiMediaCollectionMessage: Global___AIMediaCollectionMessage | None = ..., + afterReadDuration: _builtins.int | None = ..., + chatThemeSetting: Global___Message.ChatThemeSetting | None = ..., + aiMetadataOperation: Global___AIMetadataOperation | None = ..., + markAsVerifiedAction: Global___Message.MarkAsVerifiedAction | None = ..., + coexStateSync: Global___CoexStateSync | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["afterReadDuration", b"afterReadDuration", "aiMediaCollectionMessage", b"aiMediaCollectionMessage", "aiMetadataOperation", b"aiMetadataOperation", "aiPsiMetadata", b"aiPsiMetadata", "aiQueryFanout", b"aiQueryFanout", "appStateFatalExceptionNotification", b"appStateFatalExceptionNotification", "appStateSyncKeyRequest", b"appStateSyncKeyRequest", "appStateSyncKeyShare", b"appStateSyncKeyShare", "botFeedbackMessage", b"botFeedbackMessage", "chatThemeSetting", b"chatThemeSetting", "cloudApiThreadControlNotification", b"cloudApiThreadControlNotification", "coexStateSync", b"coexStateSync", "disappearingMode", b"disappearingMode", "editedMessage", b"editedMessage", "ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "historySyncNotification", b"historySyncNotification", "initialSecurityNotificationSettingSync", b"initialSecurityNotificationSettingSync", "invokerJid", b"invokerJid", "key", b"key", "lidMigrationMappingSyncMessage", b"lidMigrationMappingSyncMessage", "limitSharing", b"limitSharing", "markAsVerifiedAction", b"markAsVerifiedAction", "mediaNotifyMessage", b"mediaNotifyMessage", "memberLabel", b"memberLabel", "peerDataOperationRequestMessage", b"peerDataOperationRequestMessage", "peerDataOperationRequestResponseMessage", b"peerDataOperationRequestResponseMessage", "requestWelcomeMessageMetadata", b"requestWelcomeMessageMetadata", "timestampMs", b"timestampMs", "type", b"type"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["afterReadDuration", b"afterReadDuration", "aiMediaCollectionMessage", b"aiMediaCollectionMessage", "aiMetadataOperation", b"aiMetadataOperation", "aiPsiMetadata", b"aiPsiMetadata", "aiQueryFanout", b"aiQueryFanout", "appStateFatalExceptionNotification", b"appStateFatalExceptionNotification", "appStateSyncKeyRequest", b"appStateSyncKeyRequest", "appStateSyncKeyShare", b"appStateSyncKeyShare", "botFeedbackMessage", b"botFeedbackMessage", "chatThemeSetting", b"chatThemeSetting", "cloudApiThreadControlNotification", b"cloudApiThreadControlNotification", "coexStateSync", b"coexStateSync", "disappearingMode", b"disappearingMode", "editedMessage", b"editedMessage", "ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "historySyncNotification", b"historySyncNotification", "initialSecurityNotificationSettingSync", b"initialSecurityNotificationSettingSync", "invokerJid", b"invokerJid", "key", b"key", "lidMigrationMappingSyncMessage", b"lidMigrationMappingSyncMessage", "limitSharing", b"limitSharing", "markAsVerifiedAction", b"markAsVerifiedAction", "mediaNotifyMessage", b"mediaNotifyMessage", "memberLabel", b"memberLabel", "peerDataOperationRequestMessage", b"peerDataOperationRequestMessage", "peerDataOperationRequestResponseMessage", b"peerDataOperationRequestResponseMessage", "requestWelcomeMessageMetadata", b"requestWelcomeMessageMetadata", "timestampMs", b"timestampMs", "type", b"type"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class QuestionResponseMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + KEY_FIELD_NUMBER: _builtins.int + TEXT_FIELD_NUMBER: _builtins.int + text: _builtins.str + @_builtins.property + def key(self) -> Global___MessageKey: ... + def __init__( + self, + *, + key: Global___MessageKey | None = ..., + text: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "text", b"text"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "text", b"text"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class ReactionMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + KEY_FIELD_NUMBER: _builtins.int + TEXT_FIELD_NUMBER: _builtins.int + GROUPINGKEY_FIELD_NUMBER: _builtins.int + SENDERTIMESTAMPMS_FIELD_NUMBER: _builtins.int + text: _builtins.str + groupingKey: _builtins.str + senderTimestampMs: _builtins.int + @_builtins.property + def key(self) -> Global___MessageKey: ... + def __init__( + self, + *, + key: Global___MessageKey | None = ..., + text: _builtins.str | None = ..., + groupingKey: _builtins.str | None = ..., + senderTimestampMs: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["groupingKey", b"groupingKey", "key", b"key", "senderTimestampMs", b"senderTimestampMs", "text", b"text"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["groupingKey", b"groupingKey", "key", b"key", "senderTimestampMs", b"senderTimestampMs", "text", b"text"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class RequestPaymentMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + NOTEMESSAGE_FIELD_NUMBER: _builtins.int + CURRENCYCODEISO4217_FIELD_NUMBER: _builtins.int + AMOUNT1000_FIELD_NUMBER: _builtins.int + REQUESTFROM_FIELD_NUMBER: _builtins.int + EXPIRYTIMESTAMP_FIELD_NUMBER: _builtins.int + AMOUNT_FIELD_NUMBER: _builtins.int + BACKGROUND_FIELD_NUMBER: _builtins.int + currencyCodeIso4217: _builtins.str + amount1000: _builtins.int + requestFrom: _builtins.str + expiryTimestamp: _builtins.int + @_builtins.property + def noteMessage(self) -> Global___Message: ... + @_builtins.property + def amount(self) -> Global___Money: ... + @_builtins.property + def background(self) -> Global___PaymentBackground: ... + def __init__( + self, + *, + noteMessage: Global___Message | None = ..., + currencyCodeIso4217: _builtins.str | None = ..., + amount1000: _builtins.int | None = ..., + requestFrom: _builtins.str | None = ..., + expiryTimestamp: _builtins.int | None = ..., + amount: Global___Money | None = ..., + background: Global___PaymentBackground | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "amount1000", b"amount1000", "background", b"background", "currencyCodeIso4217", b"currencyCodeIso4217", "expiryTimestamp", b"expiryTimestamp", "noteMessage", b"noteMessage", "requestFrom", b"requestFrom"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "amount1000", b"amount1000", "background", b"background", "currencyCodeIso4217", b"currencyCodeIso4217", "expiryTimestamp", b"expiryTimestamp", "noteMessage", b"noteMessage", "requestFrom", b"requestFrom"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class RequestPhoneNumberMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + CONTEXTINFO_FIELD_NUMBER: _builtins.int + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + def __init__( + self, + *, + contextInfo: Global___ContextInfo | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class RequestWelcomeMessageMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _LocalChatState: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _LocalChatStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.RequestWelcomeMessageMetadata._LocalChatState.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + EMPTY: Message.RequestWelcomeMessageMetadata._LocalChatState.ValueType # 0 + NON_EMPTY: Message.RequestWelcomeMessageMetadata._LocalChatState.ValueType # 1 + + class LocalChatState(_LocalChatState, metaclass=_LocalChatStateEnumTypeWrapper): ... + EMPTY: Message.RequestWelcomeMessageMetadata.LocalChatState.ValueType # 0 + NON_EMPTY: Message.RequestWelcomeMessageMetadata.LocalChatState.ValueType # 1 + + class _WelcomeTrigger: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _WelcomeTriggerEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.RequestWelcomeMessageMetadata._WelcomeTrigger.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + CHAT_OPEN: Message.RequestWelcomeMessageMetadata._WelcomeTrigger.ValueType # 0 + COMPANION_PAIRING: Message.RequestWelcomeMessageMetadata._WelcomeTrigger.ValueType # 1 + + class WelcomeTrigger(_WelcomeTrigger, metaclass=_WelcomeTriggerEnumTypeWrapper): ... + CHAT_OPEN: Message.RequestWelcomeMessageMetadata.WelcomeTrigger.ValueType # 0 + COMPANION_PAIRING: Message.RequestWelcomeMessageMetadata.WelcomeTrigger.ValueType # 1 + + LOCALCHATSTATE_FIELD_NUMBER: _builtins.int + WELCOMETRIGGER_FIELD_NUMBER: _builtins.int + BOTAGENTMETADATA_FIELD_NUMBER: _builtins.int + localChatState: Global___Message.RequestWelcomeMessageMetadata.LocalChatState.ValueType + welcomeTrigger: Global___Message.RequestWelcomeMessageMetadata.WelcomeTrigger.ValueType + @_builtins.property + def botAgentMetadata(self) -> Global___BotAgentMetadata: ... + def __init__( + self, + *, + localChatState: Global___Message.RequestWelcomeMessageMetadata.LocalChatState.ValueType | None = ..., + welcomeTrigger: Global___Message.RequestWelcomeMessageMetadata.WelcomeTrigger.ValueType | None = ..., + botAgentMetadata: Global___BotAgentMetadata | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["botAgentMetadata", b"botAgentMetadata", "localChatState", b"localChatState", "welcomeTrigger", b"welcomeTrigger"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["botAgentMetadata", b"botAgentMetadata", "localChatState", b"localChatState", "welcomeTrigger", b"welcomeTrigger"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class RootSecretDistributeMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + CHATJID_FIELD_NUMBER: _builtins.int + chatJid: _builtins.str + def __init__( + self, + *, + chatJid: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["chatJid", b"chatJid"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["chatJid", b"chatJid"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class ScheduledCallCreationMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _CallType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _CallTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ScheduledCallCreationMessage._CallType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: Message.ScheduledCallCreationMessage._CallType.ValueType # 0 + VOICE: Message.ScheduledCallCreationMessage._CallType.ValueType # 1 + VIDEO: Message.ScheduledCallCreationMessage._CallType.ValueType # 2 + + class CallType(_CallType, metaclass=_CallTypeEnumTypeWrapper): ... + UNKNOWN: Message.ScheduledCallCreationMessage.CallType.ValueType # 0 + VOICE: Message.ScheduledCallCreationMessage.CallType.ValueType # 1 + VIDEO: Message.ScheduledCallCreationMessage.CallType.ValueType # 2 + + SCHEDULEDTIMESTAMPMS_FIELD_NUMBER: _builtins.int + CALLTYPE_FIELD_NUMBER: _builtins.int + TITLE_FIELD_NUMBER: _builtins.int + scheduledTimestampMs: _builtins.int + callType: Global___Message.ScheduledCallCreationMessage.CallType.ValueType + title: _builtins.str + def __init__( + self, + *, + scheduledTimestampMs: _builtins.int | None = ..., + callType: Global___Message.ScheduledCallCreationMessage.CallType.ValueType | None = ..., + title: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["callType", b"callType", "scheduledTimestampMs", b"scheduledTimestampMs", "title", b"title"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["callType", b"callType", "scheduledTimestampMs", b"scheduledTimestampMs", "title", b"title"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class ScheduledCallEditMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _EditType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _EditTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.ScheduledCallEditMessage._EditType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: Message.ScheduledCallEditMessage._EditType.ValueType # 0 + CANCEL: Message.ScheduledCallEditMessage._EditType.ValueType # 1 + + class EditType(_EditType, metaclass=_EditTypeEnumTypeWrapper): ... + UNKNOWN: Message.ScheduledCallEditMessage.EditType.ValueType # 0 + CANCEL: Message.ScheduledCallEditMessage.EditType.ValueType # 1 + + KEY_FIELD_NUMBER: _builtins.int + EDITTYPE_FIELD_NUMBER: _builtins.int + editType: Global___Message.ScheduledCallEditMessage.EditType.ValueType + @_builtins.property + def key(self) -> Global___MessageKey: ... + def __init__( + self, + *, + key: Global___MessageKey | None = ..., + editType: Global___Message.ScheduledCallEditMessage.EditType.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["editType", b"editType", "key", b"key"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["editType", b"editType", "key", b"key"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class SecretEncryptedMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _SecretEncType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _SecretEncTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.SecretEncryptedMessage._SecretEncType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: Message.SecretEncryptedMessage._SecretEncType.ValueType # 0 + EVENT_EDIT: Message.SecretEncryptedMessage._SecretEncType.ValueType # 1 + MESSAGE_EDIT: Message.SecretEncryptedMessage._SecretEncType.ValueType # 2 + MESSAGE_SCHEDULE: Message.SecretEncryptedMessage._SecretEncType.ValueType # 3 + POLL_EDIT: Message.SecretEncryptedMessage._SecretEncType.ValueType # 4 + POLL_ADD_OPTION: Message.SecretEncryptedMessage._SecretEncType.ValueType # 5 + + class SecretEncType(_SecretEncType, metaclass=_SecretEncTypeEnumTypeWrapper): ... + UNKNOWN: Message.SecretEncryptedMessage.SecretEncType.ValueType # 0 + EVENT_EDIT: Message.SecretEncryptedMessage.SecretEncType.ValueType # 1 + MESSAGE_EDIT: Message.SecretEncryptedMessage.SecretEncType.ValueType # 2 + MESSAGE_SCHEDULE: Message.SecretEncryptedMessage.SecretEncType.ValueType # 3 + POLL_EDIT: Message.SecretEncryptedMessage.SecretEncType.ValueType # 4 + POLL_ADD_OPTION: Message.SecretEncryptedMessage.SecretEncType.ValueType # 5 + + TARGETMESSAGEKEY_FIELD_NUMBER: _builtins.int + ENCPAYLOAD_FIELD_NUMBER: _builtins.int + ENCIV_FIELD_NUMBER: _builtins.int + SECRETENCTYPE_FIELD_NUMBER: _builtins.int + REMOTEKEYID_FIELD_NUMBER: _builtins.int + encPayload: _builtins.bytes + encIv: _builtins.bytes + secretEncType: Global___Message.SecretEncryptedMessage.SecretEncType.ValueType + remoteKeyId: _builtins.str + @_builtins.property + def targetMessageKey(self) -> Global___MessageKey: ... + def __init__( + self, + *, + targetMessageKey: Global___MessageKey | None = ..., + encPayload: _builtins.bytes | None = ..., + encIv: _builtins.bytes | None = ..., + secretEncType: Global___Message.SecretEncryptedMessage.SecretEncType.ValueType | None = ..., + remoteKeyId: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "remoteKeyId", b"remoteKeyId", "secretEncType", b"secretEncType", "targetMessageKey", b"targetMessageKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "remoteKeyId", b"remoteKeyId", "secretEncType", b"secretEncType", "targetMessageKey", b"targetMessageKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class SendPaymentMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + NOTEMESSAGE_FIELD_NUMBER: _builtins.int + REQUESTMESSAGEKEY_FIELD_NUMBER: _builtins.int + BACKGROUND_FIELD_NUMBER: _builtins.int + TRANSACTIONDATA_FIELD_NUMBER: _builtins.int + transactionData: _builtins.str + @_builtins.property + def noteMessage(self) -> Global___Message: ... + @_builtins.property + def requestMessageKey(self) -> Global___MessageKey: ... + @_builtins.property + def background(self) -> Global___PaymentBackground: ... + def __init__( + self, + *, + noteMessage: Global___Message | None = ..., + requestMessageKey: Global___MessageKey | None = ..., + background: Global___PaymentBackground | None = ..., + transactionData: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["background", b"background", "noteMessage", b"noteMessage", "requestMessageKey", b"requestMessageKey", "transactionData", b"transactionData"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["background", b"background", "noteMessage", b"noteMessage", "requestMessageKey", b"requestMessageKey", "transactionData", b"transactionData"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class SenderKeyDistributionMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + GROUPID_FIELD_NUMBER: _builtins.int + AXOLOTLSENDERKEYDISTRIBUTIONMESSAGE_FIELD_NUMBER: _builtins.int + groupId: _builtins.str + axolotlSenderKeyDistributionMessage: _builtins.bytes + def __init__( + self, + *, + groupId: _builtins.str | None = ..., + axolotlSenderKeyDistributionMessage: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["axolotlSenderKeyDistributionMessage", b"axolotlSenderKeyDistributionMessage", "groupId", b"groupId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["axolotlSenderKeyDistributionMessage", b"axolotlSenderKeyDistributionMessage", "groupId", b"groupId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class SplitPaymentMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + SPLITID_FIELD_NUMBER: _builtins.int + TOTALAMOUNT_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + REQUESTERJID_FIELD_NUMBER: _builtins.int + PARTICIPANTS_FIELD_NUMBER: _builtins.int + CREATEDATMS_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + splitId: _builtins.str + description: _builtins.str + requesterJid: _builtins.str + createdAtMs: _builtins.int + @_builtins.property + def totalAmount(self) -> Global___Money: ... + @_builtins.property + def participants(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.SplitPaymentParticipant]: ... + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + def __init__( + self, + *, + splitId: _builtins.str | None = ..., + totalAmount: Global___Money | None = ..., + description: _builtins.str | None = ..., + requesterJid: _builtins.str | None = ..., + participants: _abc.Iterable[Global___Message.SplitPaymentParticipant] | None = ..., + createdAtMs: _builtins.int | None = ..., + contextInfo: Global___ContextInfo | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "createdAtMs", b"createdAtMs", "description", b"description", "requesterJid", b"requesterJid", "splitId", b"splitId", "totalAmount", b"totalAmount"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "createdAtMs", b"createdAtMs", "description", b"description", "participants", b"participants", "requesterJid", b"requesterJid", "splitId", b"splitId", "totalAmount", b"totalAmount"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class SplitPaymentParticipant(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _SplitPaymentStatus: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _SplitPaymentStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.SplitPaymentParticipant._SplitPaymentStatus.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + PENDING: Message.SplitPaymentParticipant._SplitPaymentStatus.ValueType # 0 + PAID: Message.SplitPaymentParticipant._SplitPaymentStatus.ValueType # 1 + + class SplitPaymentStatus(_SplitPaymentStatus, metaclass=_SplitPaymentStatusEnumTypeWrapper): ... + PENDING: Message.SplitPaymentParticipant.SplitPaymentStatus.ValueType # 0 + PAID: Message.SplitPaymentParticipant.SplitPaymentStatus.ValueType # 1 + + JID_FIELD_NUMBER: _builtins.int + AMOUNT_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + jid: _builtins.str + status: Global___Message.SplitPaymentParticipant.SplitPaymentStatus.ValueType + @_builtins.property + def amount(self) -> Global___Money: ... + def __init__( + self, + *, + jid: _builtins.str | None = ..., + amount: Global___Money | None = ..., + status: Global___Message.SplitPaymentParticipant.SplitPaymentStatus.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "jid", b"jid", "status", b"status"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["amount", b"amount", "jid", b"jid", "status", b"status"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class SplitPaymentUpdateMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + SPLITID_FIELD_NUMBER: _builtins.int + PARTICIPANTJID_FIELD_NUMBER: _builtins.int + splitId: _builtins.str + participantJid: _builtins.str + def __init__( + self, + *, + splitId: _builtins.str | None = ..., + participantJid: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["participantJid", b"participantJid", "splitId", b"splitId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["participantJid", b"participantJid", "splitId", b"splitId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class StatusLinkPreviewMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _Style: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _StyleEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StatusLinkPreviewMetadata._Style.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + AUTO: Message.StatusLinkPreviewMetadata._Style.ValueType # 0 + COMPACT: Message.StatusLinkPreviewMetadata._Style.ValueType # 1 + FULL: Message.StatusLinkPreviewMetadata._Style.ValueType # 2 + IMMERSIVE: Message.StatusLinkPreviewMetadata._Style.ValueType # 3 + + class Style(_Style, metaclass=_StyleEnumTypeWrapper): ... + AUTO: Message.StatusLinkPreviewMetadata.Style.ValueType # 0 + COMPACT: Message.StatusLinkPreviewMetadata.Style.ValueType # 1 + FULL: Message.StatusLinkPreviewMetadata.Style.ValueType # 2 + IMMERSIVE: Message.StatusLinkPreviewMetadata.Style.ValueType # 3 + + STYLE_FIELD_NUMBER: _builtins.int + style: Global___Message.StatusLinkPreviewMetadata.Style.ValueType + def __init__( + self, + *, + style: Global___Message.StatusLinkPreviewMetadata.Style.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["style", b"style"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["style", b"style"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class StatusNotificationMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _StatusNotificationType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _StatusNotificationTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StatusNotificationMessage._StatusNotificationType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 0 + STATUS_ADD_YOURS: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 1 + STATUS_RESHARE: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 2 + STATUS_QUESTION_ANSWER_RESHARE: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 3 + STATUS_GROUP_STATUS_REPLY: Message.StatusNotificationMessage._StatusNotificationType.ValueType # 4 + + class StatusNotificationType(_StatusNotificationType, metaclass=_StatusNotificationTypeEnumTypeWrapper): ... + UNKNOWN: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 0 + STATUS_ADD_YOURS: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 1 + STATUS_RESHARE: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 2 + STATUS_QUESTION_ANSWER_RESHARE: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 3 + STATUS_GROUP_STATUS_REPLY: Message.StatusNotificationMessage.StatusNotificationType.ValueType # 4 + + RESPONSEMESSAGEKEY_FIELD_NUMBER: _builtins.int + ORIGINALMESSAGEKEY_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + type: Global___Message.StatusNotificationMessage.StatusNotificationType.ValueType + @_builtins.property + def responseMessageKey(self) -> Global___MessageKey: ... + @_builtins.property + def originalMessageKey(self) -> Global___MessageKey: ... + def __init__( + self, + *, + responseMessageKey: Global___MessageKey | None = ..., + originalMessageKey: Global___MessageKey | None = ..., + type: Global___Message.StatusNotificationMessage.StatusNotificationType.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["originalMessageKey", b"originalMessageKey", "responseMessageKey", b"responseMessageKey", "type", b"type"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["originalMessageKey", b"originalMessageKey", "responseMessageKey", b"responseMessageKey", "type", b"type"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class StatusQuestionAnswerMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + KEY_FIELD_NUMBER: _builtins.int + TEXT_FIELD_NUMBER: _builtins.int + text: _builtins.str + @_builtins.property + def key(self) -> Global___MessageKey: ... + def __init__( + self, + *, + key: Global___MessageKey | None = ..., + text: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "text", b"text"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "text", b"text"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class StatusQuotedMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _StatusQuotedMessageType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _StatusQuotedMessageTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StatusQuotedMessage._StatusQuotedMessageType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + QUESTION_ANSWER: Message.StatusQuotedMessage._StatusQuotedMessageType.ValueType # 1 + + class StatusQuotedMessageType(_StatusQuotedMessageType, metaclass=_StatusQuotedMessageTypeEnumTypeWrapper): ... + QUESTION_ANSWER: Message.StatusQuotedMessage.StatusQuotedMessageType.ValueType # 1 + + TYPE_FIELD_NUMBER: _builtins.int + TEXT_FIELD_NUMBER: _builtins.int + THUMBNAIL_FIELD_NUMBER: _builtins.int + ORIGINALSTATUSID_FIELD_NUMBER: _builtins.int + type: Global___Message.StatusQuotedMessage.StatusQuotedMessageType.ValueType + text: _builtins.str + thumbnail: _builtins.bytes + @_builtins.property + def originalStatusId(self) -> Global___MessageKey: ... + def __init__( + self, + *, + type: Global___Message.StatusQuotedMessage.StatusQuotedMessageType.ValueType | None = ..., + text: _builtins.str | None = ..., + thumbnail: _builtins.bytes | None = ..., + originalStatusId: Global___MessageKey | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["originalStatusId", b"originalStatusId", "text", b"text", "thumbnail", b"thumbnail", "type", b"type"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["originalStatusId", b"originalStatusId", "text", b"text", "thumbnail", b"thumbnail", "type", b"type"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class StatusStickerInteractionMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _StatusStickerType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _StatusStickerTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StatusStickerInteractionMessage._StatusStickerType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: Message.StatusStickerInteractionMessage._StatusStickerType.ValueType # 0 + REACTION: Message.StatusStickerInteractionMessage._StatusStickerType.ValueType # 1 + + class StatusStickerType(_StatusStickerType, metaclass=_StatusStickerTypeEnumTypeWrapper): ... + UNKNOWN: Message.StatusStickerInteractionMessage.StatusStickerType.ValueType # 0 + REACTION: Message.StatusStickerInteractionMessage.StatusStickerType.ValueType # 1 + + KEY_FIELD_NUMBER: _builtins.int + STICKERKEY_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + stickerKey: _builtins.str + type: Global___Message.StatusStickerInteractionMessage.StatusStickerType.ValueType + @_builtins.property + def key(self) -> Global___MessageKey: ... + def __init__( + self, + *, + key: Global___MessageKey | None = ..., + stickerKey: _builtins.str | None = ..., + type: Global___Message.StatusStickerInteractionMessage.StatusStickerType.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "stickerKey", b"stickerKey", "type", b"type"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "stickerKey", b"stickerKey", "type", b"type"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class StickerMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + URL_FIELD_NUMBER: _builtins.int + FILESHA256_FIELD_NUMBER: _builtins.int + FILEENCSHA256_FIELD_NUMBER: _builtins.int + MEDIAKEY_FIELD_NUMBER: _builtins.int + MIMETYPE_FIELD_NUMBER: _builtins.int + HEIGHT_FIELD_NUMBER: _builtins.int + WIDTH_FIELD_NUMBER: _builtins.int + DIRECTPATH_FIELD_NUMBER: _builtins.int + FILELENGTH_FIELD_NUMBER: _builtins.int + MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int + FIRSTFRAMELENGTH_FIELD_NUMBER: _builtins.int + FIRSTFRAMESIDECAR_FIELD_NUMBER: _builtins.int + ISANIMATED_FIELD_NUMBER: _builtins.int + PNGTHUMBNAIL_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + STICKERSENTTS_FIELD_NUMBER: _builtins.int + ISAVATAR_FIELD_NUMBER: _builtins.int + ISAISTICKER_FIELD_NUMBER: _builtins.int + ISLOTTIE_FIELD_NUMBER: _builtins.int + ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int + PREMIUM_FIELD_NUMBER: _builtins.int + EMOJIS_FIELD_NUMBER: _builtins.int + url: _builtins.str + fileSha256: _builtins.bytes + fileEncSha256: _builtins.bytes + mediaKey: _builtins.bytes + mimetype: _builtins.str + height: _builtins.int + width: _builtins.int + directPath: _builtins.str + fileLength: _builtins.int + mediaKeyTimestamp: _builtins.int + firstFrameLength: _builtins.int + firstFrameSidecar: _builtins.bytes + isAnimated: _builtins.bool + pngThumbnail: _builtins.bytes + stickerSentTs: _builtins.int + isAvatar: _builtins.bool + isAiSticker: _builtins.bool + isLottie: _builtins.bool + accessibilityLabel: _builtins.str + premium: _builtins.int + emojis: _builtins.str + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + def __init__( + self, + *, + url: _builtins.str | None = ..., + fileSha256: _builtins.bytes | None = ..., + fileEncSha256: _builtins.bytes | None = ..., + mediaKey: _builtins.bytes | None = ..., + mimetype: _builtins.str | None = ..., + height: _builtins.int | None = ..., + width: _builtins.int | None = ..., + directPath: _builtins.str | None = ..., + fileLength: _builtins.int | None = ..., + mediaKeyTimestamp: _builtins.int | None = ..., + firstFrameLength: _builtins.int | None = ..., + firstFrameSidecar: _builtins.bytes | None = ..., + isAnimated: _builtins.bool | None = ..., + pngThumbnail: _builtins.bytes | None = ..., + contextInfo: Global___ContextInfo | None = ..., + stickerSentTs: _builtins.int | None = ..., + isAvatar: _builtins.bool | None = ..., + isAiSticker: _builtins.bool | None = ..., + isLottie: _builtins.bool | None = ..., + accessibilityLabel: _builtins.str | None = ..., + premium: _builtins.int | None = ..., + emojis: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "contextInfo", b"contextInfo", "directPath", b"directPath", "emojis", b"emojis", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "firstFrameLength", b"firstFrameLength", "firstFrameSidecar", b"firstFrameSidecar", "height", b"height", "isAiSticker", b"isAiSticker", "isAnimated", b"isAnimated", "isAvatar", b"isAvatar", "isLottie", b"isLottie", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "pngThumbnail", b"pngThumbnail", "premium", b"premium", "stickerSentTs", b"stickerSentTs", "url", b"url", "width", b"width"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "contextInfo", b"contextInfo", "directPath", b"directPath", "emojis", b"emojis", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "firstFrameLength", b"firstFrameLength", "firstFrameSidecar", b"firstFrameSidecar", "height", b"height", "isAiSticker", b"isAiSticker", "isAnimated", b"isAnimated", "isAvatar", b"isAvatar", "isLottie", b"isLottie", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "mimetype", b"mimetype", "pngThumbnail", b"pngThumbnail", "premium", b"premium", "stickerSentTs", b"stickerSentTs", "url", b"url", "width", b"width"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class StickerPackMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _StickerPackOrigin: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _StickerPackOriginEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.StickerPackMessage._StickerPackOrigin.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + FIRST_PARTY: Message.StickerPackMessage._StickerPackOrigin.ValueType # 0 + THIRD_PARTY: Message.StickerPackMessage._StickerPackOrigin.ValueType # 1 + USER_CREATED: Message.StickerPackMessage._StickerPackOrigin.ValueType # 2 + + class StickerPackOrigin(_StickerPackOrigin, metaclass=_StickerPackOriginEnumTypeWrapper): ... + FIRST_PARTY: Message.StickerPackMessage.StickerPackOrigin.ValueType # 0 + THIRD_PARTY: Message.StickerPackMessage.StickerPackOrigin.ValueType # 1 + USER_CREATED: Message.StickerPackMessage.StickerPackOrigin.ValueType # 2 + + @_typing.final + class Sticker(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + FILENAME_FIELD_NUMBER: _builtins.int + ISANIMATED_FIELD_NUMBER: _builtins.int + EMOJIS_FIELD_NUMBER: _builtins.int + ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int + ISLOTTIE_FIELD_NUMBER: _builtins.int + MIMETYPE_FIELD_NUMBER: _builtins.int + PREMIUM_FIELD_NUMBER: _builtins.int + fileName: _builtins.str + isAnimated: _builtins.bool + accessibilityLabel: _builtins.str + isLottie: _builtins.bool + mimetype: _builtins.str + premium: _builtins.int + @_builtins.property + def emojis(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + def __init__( + self, + *, + fileName: _builtins.str | None = ..., + isAnimated: _builtins.bool | None = ..., + emojis: _abc.Iterable[_builtins.str] | None = ..., + accessibilityLabel: _builtins.str | None = ..., + isLottie: _builtins.bool | None = ..., + mimetype: _builtins.str | None = ..., + premium: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "fileName", b"fileName", "isAnimated", b"isAnimated", "isLottie", b"isLottie", "mimetype", b"mimetype", "premium", b"premium"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "emojis", b"emojis", "fileName", b"fileName", "isAnimated", b"isAnimated", "isLottie", b"isLottie", "mimetype", b"mimetype", "premium", b"premium"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + STICKERPACKID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + PUBLISHER_FIELD_NUMBER: _builtins.int + STICKERS_FIELD_NUMBER: _builtins.int + FILELENGTH_FIELD_NUMBER: _builtins.int + FILESHA256_FIELD_NUMBER: _builtins.int + FILEENCSHA256_FIELD_NUMBER: _builtins.int + MEDIAKEY_FIELD_NUMBER: _builtins.int + DIRECTPATH_FIELD_NUMBER: _builtins.int + CAPTION_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + PACKDESCRIPTION_FIELD_NUMBER: _builtins.int + MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int + TRAYICONFILENAME_FIELD_NUMBER: _builtins.int + THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int + THUMBNAILSHA256_FIELD_NUMBER: _builtins.int + THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int + THUMBNAILHEIGHT_FIELD_NUMBER: _builtins.int + THUMBNAILWIDTH_FIELD_NUMBER: _builtins.int + IMAGEDATAHASH_FIELD_NUMBER: _builtins.int + STICKERPACKSIZE_FIELD_NUMBER: _builtins.int + STICKERPACKORIGIN_FIELD_NUMBER: _builtins.int + stickerPackId: _builtins.str + name: _builtins.str + publisher: _builtins.str + fileLength: _builtins.int + fileSha256: _builtins.bytes + fileEncSha256: _builtins.bytes + mediaKey: _builtins.bytes + directPath: _builtins.str + caption: _builtins.str + packDescription: _builtins.str + mediaKeyTimestamp: _builtins.int + trayIconFileName: _builtins.str + thumbnailDirectPath: _builtins.str + thumbnailSha256: _builtins.bytes + thumbnailEncSha256: _builtins.bytes + thumbnailHeight: _builtins.int + thumbnailWidth: _builtins.int + imageDataHash: _builtins.str + stickerPackSize: _builtins.int + stickerPackOrigin: Global___Message.StickerPackMessage.StickerPackOrigin.ValueType + @_builtins.property + def stickers(self) -> _containers.RepeatedCompositeFieldContainer[Global___Message.StickerPackMessage.Sticker]: ... + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + def __init__( + self, + *, + stickerPackId: _builtins.str | None = ..., + name: _builtins.str | None = ..., + publisher: _builtins.str | None = ..., + stickers: _abc.Iterable[Global___Message.StickerPackMessage.Sticker] | None = ..., + fileLength: _builtins.int | None = ..., + fileSha256: _builtins.bytes | None = ..., + fileEncSha256: _builtins.bytes | None = ..., + mediaKey: _builtins.bytes | None = ..., + directPath: _builtins.str | None = ..., + caption: _builtins.str | None = ..., + contextInfo: Global___ContextInfo | None = ..., + packDescription: _builtins.str | None = ..., + mediaKeyTimestamp: _builtins.int | None = ..., + trayIconFileName: _builtins.str | None = ..., + thumbnailDirectPath: _builtins.str | None = ..., + thumbnailSha256: _builtins.bytes | None = ..., + thumbnailEncSha256: _builtins.bytes | None = ..., + thumbnailHeight: _builtins.int | None = ..., + thumbnailWidth: _builtins.int | None = ..., + imageDataHash: _builtins.str | None = ..., + stickerPackSize: _builtins.int | None = ..., + stickerPackOrigin: Global___Message.StickerPackMessage.StickerPackOrigin.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "imageDataHash", b"imageDataHash", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "name", b"name", "packDescription", b"packDescription", "publisher", b"publisher", "stickerPackId", b"stickerPackId", "stickerPackOrigin", b"stickerPackOrigin", "stickerPackSize", b"stickerPackSize", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "trayIconFileName", b"trayIconFileName"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "imageDataHash", b"imageDataHash", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "name", b"name", "packDescription", b"packDescription", "publisher", b"publisher", "stickerPackId", b"stickerPackId", "stickerPackOrigin", b"stickerPackOrigin", "stickerPackSize", b"stickerPackSize", "stickers", b"stickers", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailHeight", b"thumbnailHeight", "thumbnailSha256", b"thumbnailSha256", "thumbnailWidth", b"thumbnailWidth", "trayIconFileName", b"trayIconFileName"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class StickerSyncRMRMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + FILEHASH_FIELD_NUMBER: _builtins.int + RMRSOURCE_FIELD_NUMBER: _builtins.int + REQUESTTIMESTAMP_FIELD_NUMBER: _builtins.int + rmrSource: _builtins.str + requestTimestamp: _builtins.int + @_builtins.property + def filehash(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + def __init__( + self, + *, + filehash: _abc.Iterable[_builtins.str] | None = ..., + rmrSource: _builtins.str | None = ..., + requestTimestamp: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["requestTimestamp", b"requestTimestamp", "rmrSource", b"rmrSource"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["filehash", b"filehash", "requestTimestamp", b"requestTimestamp", "rmrSource", b"rmrSource"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class TemplateButtonReplyMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + SELECTEDID_FIELD_NUMBER: _builtins.int + SELECTEDDISPLAYTEXT_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + SELECTEDINDEX_FIELD_NUMBER: _builtins.int + SELECTEDCAROUSELCARDINDEX_FIELD_NUMBER: _builtins.int + selectedId: _builtins.str + selectedDisplayText: _builtins.str + selectedIndex: _builtins.int + selectedCarouselCardIndex: _builtins.int + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + def __init__( + self, + *, + selectedId: _builtins.str | None = ..., + selectedDisplayText: _builtins.str | None = ..., + contextInfo: Global___ContextInfo | None = ..., + selectedIndex: _builtins.int | None = ..., + selectedCarouselCardIndex: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "selectedCarouselCardIndex", b"selectedCarouselCardIndex", "selectedDisplayText", b"selectedDisplayText", "selectedId", b"selectedId", "selectedIndex", b"selectedIndex"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "selectedCarouselCardIndex", b"selectedCarouselCardIndex", "selectedDisplayText", b"selectedDisplayText", "selectedId", b"selectedId", "selectedIndex", b"selectedIndex"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class TemplateMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class FourRowTemplate(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + CONTENT_FIELD_NUMBER: _builtins.int + FOOTER_FIELD_NUMBER: _builtins.int + BUTTONS_FIELD_NUMBER: _builtins.int + DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int + HIGHLYSTRUCTUREDMESSAGE_FIELD_NUMBER: _builtins.int + IMAGEMESSAGE_FIELD_NUMBER: _builtins.int + VIDEOMESSAGE_FIELD_NUMBER: _builtins.int + LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int + @_builtins.property + def content(self) -> Global___Message.HighlyStructuredMessage: ... + @_builtins.property + def footer(self) -> Global___Message.HighlyStructuredMessage: ... + @_builtins.property + def buttons(self) -> _containers.RepeatedCompositeFieldContainer[Global___TemplateButton]: ... + @_builtins.property + def documentMessage(self) -> Global___Message.DocumentMessage: ... + @_builtins.property + def highlyStructuredMessage(self) -> Global___Message.HighlyStructuredMessage: ... + @_builtins.property + def imageMessage(self) -> Global___Message.ImageMessage: ... + @_builtins.property + def videoMessage(self) -> Global___Message.VideoMessage: ... + @_builtins.property + def locationMessage(self) -> Global___Message.LocationMessage: ... + def __init__( + self, + *, + content: Global___Message.HighlyStructuredMessage | None = ..., + footer: Global___Message.HighlyStructuredMessage | None = ..., + buttons: _abc.Iterable[Global___TemplateButton] | None = ..., + documentMessage: Global___Message.DocumentMessage | None = ..., + highlyStructuredMessage: Global___Message.HighlyStructuredMessage | None = ..., + imageMessage: Global___Message.ImageMessage | None = ..., + videoMessage: Global___Message.VideoMessage | None = ..., + locationMessage: Global___Message.LocationMessage | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["content", b"content", "documentMessage", b"documentMessage", "footer", b"footer", "highlyStructuredMessage", b"highlyStructuredMessage", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["buttons", b"buttons", "content", b"content", "documentMessage", b"documentMessage", "footer", b"footer", "highlyStructuredMessage", b"highlyStructuredMessage", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_title: _TypeAlias = _typing.Literal["documentMessage", "highlyStructuredMessage", "imageMessage", "videoMessage", "locationMessage"] # noqa: Y015 + _WhichOneofArgType_title: _TypeAlias = _typing.Literal["title", b"title"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_title) -> _WhichOneofReturnType_title | None: ... + + @_typing.final + class HydratedFourRowTemplate(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + HYDRATEDCONTENTTEXT_FIELD_NUMBER: _builtins.int + HYDRATEDFOOTERTEXT_FIELD_NUMBER: _builtins.int + HYDRATEDBUTTONS_FIELD_NUMBER: _builtins.int + TEMPLATEID_FIELD_NUMBER: _builtins.int + MASKLINKEDDEVICES_FIELD_NUMBER: _builtins.int + DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int + HYDRATEDTITLETEXT_FIELD_NUMBER: _builtins.int + IMAGEMESSAGE_FIELD_NUMBER: _builtins.int + VIDEOMESSAGE_FIELD_NUMBER: _builtins.int + LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int + hydratedContentText: _builtins.str + hydratedFooterText: _builtins.str + templateId: _builtins.str + maskLinkedDevices: _builtins.bool + hydratedTitleText: _builtins.str + @_builtins.property + def hydratedButtons(self) -> _containers.RepeatedCompositeFieldContainer[Global___HydratedTemplateButton]: ... + @_builtins.property + def documentMessage(self) -> Global___Message.DocumentMessage: ... + @_builtins.property + def imageMessage(self) -> Global___Message.ImageMessage: ... + @_builtins.property + def videoMessage(self) -> Global___Message.VideoMessage: ... + @_builtins.property + def locationMessage(self) -> Global___Message.LocationMessage: ... + def __init__( + self, + *, + hydratedContentText: _builtins.str | None = ..., + hydratedFooterText: _builtins.str | None = ..., + hydratedButtons: _abc.Iterable[Global___HydratedTemplateButton] | None = ..., + templateId: _builtins.str | None = ..., + maskLinkedDevices: _builtins.bool | None = ..., + documentMessage: Global___Message.DocumentMessage | None = ..., + hydratedTitleText: _builtins.str | None = ..., + imageMessage: Global___Message.ImageMessage | None = ..., + videoMessage: Global___Message.VideoMessage | None = ..., + locationMessage: Global___Message.LocationMessage | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["documentMessage", b"documentMessage", "hydratedContentText", b"hydratedContentText", "hydratedFooterText", b"hydratedFooterText", "hydratedTitleText", b"hydratedTitleText", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "maskLinkedDevices", b"maskLinkedDevices", "templateId", b"templateId", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["documentMessage", b"documentMessage", "hydratedButtons", b"hydratedButtons", "hydratedContentText", b"hydratedContentText", "hydratedFooterText", b"hydratedFooterText", "hydratedTitleText", b"hydratedTitleText", "imageMessage", b"imageMessage", "locationMessage", b"locationMessage", "maskLinkedDevices", b"maskLinkedDevices", "templateId", b"templateId", "title", b"title", "videoMessage", b"videoMessage"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_title: _TypeAlias = _typing.Literal["documentMessage", "hydratedTitleText", "imageMessage", "videoMessage", "locationMessage"] # noqa: Y015 + _WhichOneofArgType_title: _TypeAlias = _typing.Literal["title", b"title"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_title) -> _WhichOneofReturnType_title | None: ... + + CONTEXTINFO_FIELD_NUMBER: _builtins.int + HYDRATEDTEMPLATE_FIELD_NUMBER: _builtins.int + TEMPLATEID_FIELD_NUMBER: _builtins.int + FOURROWTEMPLATE_FIELD_NUMBER: _builtins.int + HYDRATEDFOURROWTEMPLATE_FIELD_NUMBER: _builtins.int + INTERACTIVEMESSAGETEMPLATE_FIELD_NUMBER: _builtins.int + templateId: _builtins.str + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + @_builtins.property + def hydratedTemplate(self) -> Global___Message.TemplateMessage.HydratedFourRowTemplate: ... + @_builtins.property + def fourRowTemplate(self) -> Global___Message.TemplateMessage.FourRowTemplate: ... + @_builtins.property + def hydratedFourRowTemplate(self) -> Global___Message.TemplateMessage.HydratedFourRowTemplate: ... + @_builtins.property + def interactiveMessageTemplate(self) -> Global___Message.InteractiveMessage: ... + def __init__( + self, + *, + contextInfo: Global___ContextInfo | None = ..., + hydratedTemplate: Global___Message.TemplateMessage.HydratedFourRowTemplate | None = ..., + templateId: _builtins.str | None = ..., + fourRowTemplate: Global___Message.TemplateMessage.FourRowTemplate | None = ..., + hydratedFourRowTemplate: Global___Message.TemplateMessage.HydratedFourRowTemplate | None = ..., + interactiveMessageTemplate: Global___Message.InteractiveMessage | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "format", b"format", "fourRowTemplate", b"fourRowTemplate", "hydratedFourRowTemplate", b"hydratedFourRowTemplate", "hydratedTemplate", b"hydratedTemplate", "interactiveMessageTemplate", b"interactiveMessageTemplate", "templateId", b"templateId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["contextInfo", b"contextInfo", "format", b"format", "fourRowTemplate", b"fourRowTemplate", "hydratedFourRowTemplate", b"hydratedFourRowTemplate", "hydratedTemplate", b"hydratedTemplate", "interactiveMessageTemplate", b"interactiveMessageTemplate", "templateId", b"templateId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_format: _TypeAlias = _typing.Literal["fourRowTemplate", "hydratedFourRowTemplate", "interactiveMessageTemplate"] # noqa: Y015 + _WhichOneofArgType_format: _TypeAlias = _typing.Literal["format", b"format"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_format) -> _WhichOneofReturnType_format | None: ... + + @_typing.final + class URLMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + FBEXPERIMENTID_FIELD_NUMBER: _builtins.int + fbExperimentId: _builtins.int + def __init__( + self, + *, + fbExperimentId: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["fbExperimentId", b"fbExperimentId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["fbExperimentId", b"fbExperimentId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class VideoEndCard(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + USERNAME_FIELD_NUMBER: _builtins.int + CAPTION_FIELD_NUMBER: _builtins.int + THUMBNAILIMAGEURL_FIELD_NUMBER: _builtins.int + PROFILEPICTUREURL_FIELD_NUMBER: _builtins.int + username: _builtins.str + caption: _builtins.str + thumbnailImageUrl: _builtins.str + profilePictureUrl: _builtins.str + def __init__( + self, + *, + username: _builtins.str | None = ..., + caption: _builtins.str | None = ..., + thumbnailImageUrl: _builtins.str | None = ..., + profilePictureUrl: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "profilePictureUrl", b"profilePictureUrl", "thumbnailImageUrl", b"thumbnailImageUrl", "username", b"username"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["caption", b"caption", "profilePictureUrl", b"profilePictureUrl", "thumbnailImageUrl", b"thumbnailImageUrl", "username", b"username"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class VideoMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _Attribution: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _AttributionEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.VideoMessage._Attribution.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + NONE: Message.VideoMessage._Attribution.ValueType # 0 + GIPHY: Message.VideoMessage._Attribution.ValueType # 1 + TENOR: Message.VideoMessage._Attribution.ValueType # 2 + KLIPY: Message.VideoMessage._Attribution.ValueType # 3 + + class Attribution(_Attribution, metaclass=_AttributionEnumTypeWrapper): ... + NONE: Message.VideoMessage.Attribution.ValueType # 0 + GIPHY: Message.VideoMessage.Attribution.ValueType # 1 + TENOR: Message.VideoMessage.Attribution.ValueType # 2 + KLIPY: Message.VideoMessage.Attribution.ValueType # 3 + + class _VideoSourceType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _VideoSourceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Message.VideoMessage._VideoSourceType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + USER_VIDEO: Message.VideoMessage._VideoSourceType.ValueType # 0 + AI_GENERATED: Message.VideoMessage._VideoSourceType.ValueType # 1 + + class VideoSourceType(_VideoSourceType, metaclass=_VideoSourceTypeEnumTypeWrapper): ... + USER_VIDEO: Message.VideoMessage.VideoSourceType.ValueType # 0 + AI_GENERATED: Message.VideoMessage.VideoSourceType.ValueType # 1 + + URL_FIELD_NUMBER: _builtins.int + MIMETYPE_FIELD_NUMBER: _builtins.int + FILESHA256_FIELD_NUMBER: _builtins.int + FILELENGTH_FIELD_NUMBER: _builtins.int + SECONDS_FIELD_NUMBER: _builtins.int + MEDIAKEY_FIELD_NUMBER: _builtins.int + CAPTION_FIELD_NUMBER: _builtins.int + GIFPLAYBACK_FIELD_NUMBER: _builtins.int + HEIGHT_FIELD_NUMBER: _builtins.int + WIDTH_FIELD_NUMBER: _builtins.int + FILEENCSHA256_FIELD_NUMBER: _builtins.int + INTERACTIVEANNOTATIONS_FIELD_NUMBER: _builtins.int + DIRECTPATH_FIELD_NUMBER: _builtins.int + MEDIAKEYTIMESTAMP_FIELD_NUMBER: _builtins.int + JPEGTHUMBNAIL_FIELD_NUMBER: _builtins.int + CONTEXTINFO_FIELD_NUMBER: _builtins.int + STREAMINGSIDECAR_FIELD_NUMBER: _builtins.int + GIFATTRIBUTION_FIELD_NUMBER: _builtins.int + VIEWONCE_FIELD_NUMBER: _builtins.int + THUMBNAILDIRECTPATH_FIELD_NUMBER: _builtins.int + THUMBNAILSHA256_FIELD_NUMBER: _builtins.int + THUMBNAILENCSHA256_FIELD_NUMBER: _builtins.int + STATICURL_FIELD_NUMBER: _builtins.int + ANNOTATIONS_FIELD_NUMBER: _builtins.int + ACCESSIBILITYLABEL_FIELD_NUMBER: _builtins.int + PROCESSEDVIDEOS_FIELD_NUMBER: _builtins.int + EXTERNALSHAREFULLVIDEODURATIONINSECONDS_FIELD_NUMBER: _builtins.int + MOTIONPHOTOPRESENTATIONOFFSETMS_FIELD_NUMBER: _builtins.int + METADATAURL_FIELD_NUMBER: _builtins.int + VIDEOSOURCETYPE_FIELD_NUMBER: _builtins.int + url: _builtins.str + mimetype: _builtins.str + fileSha256: _builtins.bytes + fileLength: _builtins.int + seconds: _builtins.int + mediaKey: _builtins.bytes + caption: _builtins.str + gifPlayback: _builtins.bool + height: _builtins.int + width: _builtins.int + fileEncSha256: _builtins.bytes + directPath: _builtins.str + mediaKeyTimestamp: _builtins.int + jpegThumbnail: _builtins.bytes + streamingSidecar: _builtins.bytes + gifAttribution: Global___Message.VideoMessage.Attribution.ValueType + viewOnce: _builtins.bool + thumbnailDirectPath: _builtins.str + thumbnailSha256: _builtins.bytes + thumbnailEncSha256: _builtins.bytes + staticUrl: _builtins.str + accessibilityLabel: _builtins.str + externalShareFullVideoDurationInSeconds: _builtins.int + motionPhotoPresentationOffsetMs: _builtins.int + metadataUrl: _builtins.str + videoSourceType: Global___Message.VideoMessage.VideoSourceType.ValueType + @_builtins.property + def interactiveAnnotations(self) -> _containers.RepeatedCompositeFieldContainer[Global___InteractiveAnnotation]: ... + @_builtins.property + def contextInfo(self) -> Global___ContextInfo: ... + @_builtins.property + def annotations(self) -> _containers.RepeatedCompositeFieldContainer[Global___InteractiveAnnotation]: ... + @_builtins.property + def processedVideos(self) -> _containers.RepeatedCompositeFieldContainer[Global___ProcessedVideo]: ... + def __init__( + self, + *, + url: _builtins.str | None = ..., + mimetype: _builtins.str | None = ..., + fileSha256: _builtins.bytes | None = ..., + fileLength: _builtins.int | None = ..., + seconds: _builtins.int | None = ..., + mediaKey: _builtins.bytes | None = ..., + caption: _builtins.str | None = ..., + gifPlayback: _builtins.bool | None = ..., + height: _builtins.int | None = ..., + width: _builtins.int | None = ..., + fileEncSha256: _builtins.bytes | None = ..., + interactiveAnnotations: _abc.Iterable[Global___InteractiveAnnotation] | None = ..., + directPath: _builtins.str | None = ..., + mediaKeyTimestamp: _builtins.int | None = ..., + jpegThumbnail: _builtins.bytes | None = ..., + contextInfo: Global___ContextInfo | None = ..., + streamingSidecar: _builtins.bytes | None = ..., + gifAttribution: Global___Message.VideoMessage.Attribution.ValueType | None = ..., + viewOnce: _builtins.bool | None = ..., + thumbnailDirectPath: _builtins.str | None = ..., + thumbnailSha256: _builtins.bytes | None = ..., + thumbnailEncSha256: _builtins.bytes | None = ..., + staticUrl: _builtins.str | None = ..., + annotations: _abc.Iterable[Global___InteractiveAnnotation] | None = ..., + accessibilityLabel: _builtins.str | None = ..., + processedVideos: _abc.Iterable[Global___ProcessedVideo] | None = ..., + externalShareFullVideoDurationInSeconds: _builtins.int | None = ..., + motionPhotoPresentationOffsetMs: _builtins.int | None = ..., + metadataUrl: _builtins.str | None = ..., + videoSourceType: Global___Message.VideoMessage.VideoSourceType.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "externalShareFullVideoDurationInSeconds", b"externalShareFullVideoDurationInSeconds", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "gifAttribution", b"gifAttribution", "gifPlayback", b"gifPlayback", "height", b"height", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "metadataUrl", b"metadataUrl", "mimetype", b"mimetype", "motionPhotoPresentationOffsetMs", b"motionPhotoPresentationOffsetMs", "seconds", b"seconds", "staticUrl", b"staticUrl", "streamingSidecar", b"streamingSidecar", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailSha256", b"thumbnailSha256", "url", b"url", "videoSourceType", b"videoSourceType", "viewOnce", b"viewOnce", "width", b"width"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["accessibilityLabel", b"accessibilityLabel", "annotations", b"annotations", "caption", b"caption", "contextInfo", b"contextInfo", "directPath", b"directPath", "externalShareFullVideoDurationInSeconds", b"externalShareFullVideoDurationInSeconds", "fileEncSha256", b"fileEncSha256", "fileLength", b"fileLength", "fileSha256", b"fileSha256", "gifAttribution", b"gifAttribution", "gifPlayback", b"gifPlayback", "height", b"height", "interactiveAnnotations", b"interactiveAnnotations", "jpegThumbnail", b"jpegThumbnail", "mediaKey", b"mediaKey", "mediaKeyTimestamp", b"mediaKeyTimestamp", "metadataUrl", b"metadataUrl", "mimetype", b"mimetype", "motionPhotoPresentationOffsetMs", b"motionPhotoPresentationOffsetMs", "processedVideos", b"processedVideos", "seconds", b"seconds", "staticUrl", b"staticUrl", "streamingSidecar", b"streamingSidecar", "thumbnailDirectPath", b"thumbnailDirectPath", "thumbnailEncSha256", b"thumbnailEncSha256", "thumbnailSha256", b"thumbnailSha256", "url", b"url", "videoSourceType", b"videoSourceType", "viewOnce", b"viewOnce", "width", b"width"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + CONVERSATION_FIELD_NUMBER: _builtins.int + SENDERKEYDISTRIBUTIONMESSAGE_FIELD_NUMBER: _builtins.int + IMAGEMESSAGE_FIELD_NUMBER: _builtins.int + CONTACTMESSAGE_FIELD_NUMBER: _builtins.int + LOCATIONMESSAGE_FIELD_NUMBER: _builtins.int + EXTENDEDTEXTMESSAGE_FIELD_NUMBER: _builtins.int + DOCUMENTMESSAGE_FIELD_NUMBER: _builtins.int + AUDIOMESSAGE_FIELD_NUMBER: _builtins.int + VIDEOMESSAGE_FIELD_NUMBER: _builtins.int + CALL_FIELD_NUMBER: _builtins.int + CHAT_FIELD_NUMBER: _builtins.int + PROTOCOLMESSAGE_FIELD_NUMBER: _builtins.int + CONTACTSARRAYMESSAGE_FIELD_NUMBER: _builtins.int + HIGHLYSTRUCTUREDMESSAGE_FIELD_NUMBER: _builtins.int + FASTRATCHETKEYSENDERKEYDISTRIBUTIONMESSAGE_FIELD_NUMBER: _builtins.int + SENDPAYMENTMESSAGE_FIELD_NUMBER: _builtins.int + LIVELOCATIONMESSAGE_FIELD_NUMBER: _builtins.int + REQUESTPAYMENTMESSAGE_FIELD_NUMBER: _builtins.int + DECLINEPAYMENTREQUESTMESSAGE_FIELD_NUMBER: _builtins.int + CANCELPAYMENTREQUESTMESSAGE_FIELD_NUMBER: _builtins.int + TEMPLATEMESSAGE_FIELD_NUMBER: _builtins.int + STICKERMESSAGE_FIELD_NUMBER: _builtins.int + GROUPINVITEMESSAGE_FIELD_NUMBER: _builtins.int + TEMPLATEBUTTONREPLYMESSAGE_FIELD_NUMBER: _builtins.int + PRODUCTMESSAGE_FIELD_NUMBER: _builtins.int + DEVICESENTMESSAGE_FIELD_NUMBER: _builtins.int + MESSAGECONTEXTINFO_FIELD_NUMBER: _builtins.int + LISTMESSAGE_FIELD_NUMBER: _builtins.int + VIEWONCEMESSAGE_FIELD_NUMBER: _builtins.int + ORDERMESSAGE_FIELD_NUMBER: _builtins.int + LISTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int + EPHEMERALMESSAGE_FIELD_NUMBER: _builtins.int + INVOICEMESSAGE_FIELD_NUMBER: _builtins.int + BUTTONSMESSAGE_FIELD_NUMBER: _builtins.int + BUTTONSRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int + PAYMENTINVITEMESSAGE_FIELD_NUMBER: _builtins.int + INTERACTIVEMESSAGE_FIELD_NUMBER: _builtins.int + REACTIONMESSAGE_FIELD_NUMBER: _builtins.int + STICKERSYNCRMRMESSAGE_FIELD_NUMBER: _builtins.int + INTERACTIVERESPONSEMESSAGE_FIELD_NUMBER: _builtins.int + POLLCREATIONMESSAGE_FIELD_NUMBER: _builtins.int + POLLUPDATEMESSAGE_FIELD_NUMBER: _builtins.int + KEEPINCHATMESSAGE_FIELD_NUMBER: _builtins.int + DOCUMENTWITHCAPTIONMESSAGE_FIELD_NUMBER: _builtins.int + REQUESTPHONENUMBERMESSAGE_FIELD_NUMBER: _builtins.int + VIEWONCEMESSAGEV2_FIELD_NUMBER: _builtins.int + ENCREACTIONMESSAGE_FIELD_NUMBER: _builtins.int + EDITEDMESSAGE_FIELD_NUMBER: _builtins.int + VIEWONCEMESSAGEV2EXTENSION_FIELD_NUMBER: _builtins.int + POLLCREATIONMESSAGEV2_FIELD_NUMBER: _builtins.int + SCHEDULEDCALLCREATIONMESSAGE_FIELD_NUMBER: _builtins.int + GROUPMENTIONEDMESSAGE_FIELD_NUMBER: _builtins.int + PININCHATMESSAGE_FIELD_NUMBER: _builtins.int + POLLCREATIONMESSAGEV3_FIELD_NUMBER: _builtins.int + SCHEDULEDCALLEDITMESSAGE_FIELD_NUMBER: _builtins.int + PTVMESSAGE_FIELD_NUMBER: _builtins.int + BOTINVOKEMESSAGE_FIELD_NUMBER: _builtins.int + CALLLOGMESSSAGE_FIELD_NUMBER: _builtins.int + MESSAGEHISTORYBUNDLE_FIELD_NUMBER: _builtins.int + ENCCOMMENTMESSAGE_FIELD_NUMBER: _builtins.int + BCALLMESSAGE_FIELD_NUMBER: _builtins.int + LOTTIESTICKERMESSAGE_FIELD_NUMBER: _builtins.int + EVENTMESSAGE_FIELD_NUMBER: _builtins.int + ENCEVENTRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int + COMMENTMESSAGE_FIELD_NUMBER: _builtins.int + NEWSLETTERADMININVITEMESSAGE_FIELD_NUMBER: _builtins.int + PLACEHOLDERMESSAGE_FIELD_NUMBER: _builtins.int + SECRETENCRYPTEDMESSAGE_FIELD_NUMBER: _builtins.int + ALBUMMESSAGE_FIELD_NUMBER: _builtins.int + EVENTCOVERIMAGE_FIELD_NUMBER: _builtins.int + STICKERPACKMESSAGE_FIELD_NUMBER: _builtins.int + STATUSMENTIONMESSAGE_FIELD_NUMBER: _builtins.int + POLLRESULTSNAPSHOTMESSAGE_FIELD_NUMBER: _builtins.int + POLLCREATIONOPTIONIMAGEMESSAGE_FIELD_NUMBER: _builtins.int + ASSOCIATEDCHILDMESSAGE_FIELD_NUMBER: _builtins.int + GROUPSTATUSMENTIONMESSAGE_FIELD_NUMBER: _builtins.int + POLLCREATIONMESSAGEV4_FIELD_NUMBER: _builtins.int + STATUSADDYOURS_FIELD_NUMBER: _builtins.int + GROUPSTATUSMESSAGE_FIELD_NUMBER: _builtins.int + RICHRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int + STATUSNOTIFICATIONMESSAGE_FIELD_NUMBER: _builtins.int + LIMITSHARINGMESSAGE_FIELD_NUMBER: _builtins.int + BOTTASKMESSAGE_FIELD_NUMBER: _builtins.int + QUESTIONMESSAGE_FIELD_NUMBER: _builtins.int + MESSAGEHISTORYNOTICE_FIELD_NUMBER: _builtins.int + GROUPSTATUSMESSAGEV2_FIELD_NUMBER: _builtins.int + BOTFORWARDEDMESSAGE_FIELD_NUMBER: _builtins.int + STATUSQUESTIONANSWERMESSAGE_FIELD_NUMBER: _builtins.int + QUESTIONREPLYMESSAGE_FIELD_NUMBER: _builtins.int + QUESTIONRESPONSEMESSAGE_FIELD_NUMBER: _builtins.int + STATUSQUOTEDMESSAGE_FIELD_NUMBER: _builtins.int + STATUSSTICKERINTERACTIONMESSAGE_FIELD_NUMBER: _builtins.int + POLLCREATIONMESSAGEV5_FIELD_NUMBER: _builtins.int + NEWSLETTERFOLLOWERINVITEMESSAGEV2_FIELD_NUMBER: _builtins.int + POLLRESULTSNAPSHOTMESSAGEV3_FIELD_NUMBER: _builtins.int + NEWSLETTERADMINPROFILEMESSAGE_FIELD_NUMBER: _builtins.int + NEWSLETTERADMINPROFILEMESSAGEV2_FIELD_NUMBER: _builtins.int SPOILERMESSAGE_FIELD_NUMBER: _builtins.int POLLCREATIONMESSAGEV6_FIELD_NUMBER: _builtins.int CONDITIONALREVEALMESSAGE_FIELD_NUMBER: _builtins.int @@ -15560,6 +18434,10 @@ class Message(_message.Message): SPLITPAYMENTMESSAGE_FIELD_NUMBER: _builtins.int NEWSLETTERADMINPROFILESTATUSMESSAGE_FIELD_NUMBER: _builtins.int ROOTSECRETDISTRIBUTEMESSAGE_FIELD_NUMBER: _builtins.int + SPLITPAYMENTUPDATEMESSAGE_FIELD_NUMBER: _builtins.int + MUSICMESSAGE_FIELD_NUMBER: _builtins.int + STATUSLINKPREVIEWMETADATA_FIELD_NUMBER: _builtins.int + BOTPLATFORMREGISTRATIONSUCCESSMESSAGE_FIELD_NUMBER: _builtins.int conversation: _builtins.str @_builtins.property def senderKeyDistributionMessage(self) -> Global___Message.SenderKeyDistributionMessage: ... @@ -15668,553 +18546,1309 @@ class Message(_message.Message): @_builtins.property def pollCreationMessageV3(self) -> Global___Message.PollCreationMessage: ... @_builtins.property - def scheduledCallEditMessage(self) -> Global___Message.ScheduledCallEditMessage: ... + def scheduledCallEditMessage(self) -> Global___Message.ScheduledCallEditMessage: ... + @_builtins.property + def ptvMessage(self) -> Global___Message.VideoMessage: ... + @_builtins.property + def botInvokeMessage(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def callLogMesssage(self) -> Global___Message.CallLogMessage: ... + @_builtins.property + def messageHistoryBundle(self) -> Global___Message.MessageHistoryBundle: ... + @_builtins.property + def encCommentMessage(self) -> Global___Message.EncCommentMessage: ... + @_builtins.property + def bcallMessage(self) -> Global___Message.BCallMessage: ... + @_builtins.property + def lottieStickerMessage(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def eventMessage(self) -> Global___Message.EventMessage: ... + @_builtins.property + def encEventResponseMessage(self) -> Global___Message.EncEventResponseMessage: ... + @_builtins.property + def commentMessage(self) -> Global___Message.CommentMessage: ... + @_builtins.property + def newsletterAdminInviteMessage(self) -> Global___Message.NewsletterAdminInviteMessage: ... + @_builtins.property + def placeholderMessage(self) -> Global___Message.PlaceholderMessage: ... + @_builtins.property + def secretEncryptedMessage(self) -> Global___Message.SecretEncryptedMessage: ... + @_builtins.property + def albumMessage(self) -> Global___Message.AlbumMessage: ... + @_builtins.property + def eventCoverImage(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def stickerPackMessage(self) -> Global___Message.StickerPackMessage: ... + @_builtins.property + def statusMentionMessage(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def pollResultSnapshotMessage(self) -> Global___Message.PollResultSnapshotMessage: ... + @_builtins.property + def pollCreationOptionImageMessage(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def associatedChildMessage(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def groupStatusMentionMessage(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def pollCreationMessageV4(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def statusAddYours(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def groupStatusMessage(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def richResponseMessage(self) -> Global___AIRichResponseMessage: ... + @_builtins.property + def statusNotificationMessage(self) -> Global___Message.StatusNotificationMessage: ... + @_builtins.property + def limitSharingMessage(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def botTaskMessage(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def questionMessage(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def messageHistoryNotice(self) -> Global___Message.MessageHistoryNotice: ... + @_builtins.property + def groupStatusMessageV2(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def botForwardedMessage(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def statusQuestionAnswerMessage(self) -> Global___Message.StatusQuestionAnswerMessage: ... + @_builtins.property + def questionReplyMessage(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def questionResponseMessage(self) -> Global___Message.QuestionResponseMessage: ... + @_builtins.property + def statusQuotedMessage(self) -> Global___Message.StatusQuotedMessage: ... + @_builtins.property + def statusStickerInteractionMessage(self) -> Global___Message.StatusStickerInteractionMessage: ... + @_builtins.property + def pollCreationMessageV5(self) -> Global___Message.PollCreationMessage: ... + @_builtins.property + def newsletterFollowerInviteMessageV2(self) -> Global___Message.NewsletterFollowerInviteMessage: ... + @_builtins.property + def pollResultSnapshotMessageV3(self) -> Global___Message.PollResultSnapshotMessage: ... + @_builtins.property + def newsletterAdminProfileMessage(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def newsletterAdminProfileMessageV2(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def spoilerMessage(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def pollCreationMessageV6(self) -> Global___Message.PollCreationMessage: ... + @_builtins.property + def conditionalRevealMessage(self) -> Global___Message.ConditionalRevealMessage: ... + @_builtins.property + def pollAddOptionMessage(self) -> Global___Message.PollAddOptionMessage: ... + @_builtins.property + def eventInviteMessage(self) -> Global___Message.EventInviteMessage: ... + @_builtins.property + def groupRootKeyShare(self) -> Global___GroupRootKeyShare: ... + @_builtins.property + def paymentReminderMessage(self) -> Global___Message.PaymentReminderMessage: ... + @_builtins.property + def splitPaymentMessage(self) -> Global___Message.SplitPaymentMessage: ... + @_builtins.property + def newsletterAdminProfileStatusMessage(self) -> Global___Message.FutureProofMessage: ... + @_builtins.property + def rootSecretDistributeMessage(self) -> Global___Message.RootSecretDistributeMessage: ... + @_builtins.property + def splitPaymentUpdateMessage(self) -> Global___Message.SplitPaymentUpdateMessage: ... + @_builtins.property + def musicMessage(self) -> Global___Message.MusicMessage: ... + @_builtins.property + def statusLinkPreviewMetadata(self) -> Global___Message.StatusLinkPreviewMetadata: ... + @_builtins.property + def botPlatformRegistrationSuccessMessage(self) -> Global___Message.FutureProofMessage: ... + def __init__( + self, + *, + conversation: _builtins.str | None = ..., + senderKeyDistributionMessage: Global___Message.SenderKeyDistributionMessage | None = ..., + imageMessage: Global___Message.ImageMessage | None = ..., + contactMessage: Global___Message.ContactMessage | None = ..., + locationMessage: Global___Message.LocationMessage | None = ..., + extendedTextMessage: Global___Message.ExtendedTextMessage | None = ..., + documentMessage: Global___Message.DocumentMessage | None = ..., + audioMessage: Global___Message.AudioMessage | None = ..., + videoMessage: Global___Message.VideoMessage | None = ..., + call: Global___Message.Call | None = ..., + chat: Global___Message.Chat | None = ..., + protocolMessage: Global___Message.ProtocolMessage | None = ..., + contactsArrayMessage: Global___Message.ContactsArrayMessage | None = ..., + highlyStructuredMessage: Global___Message.HighlyStructuredMessage | None = ..., + fastRatchetKeySenderKeyDistributionMessage: Global___Message.SenderKeyDistributionMessage | None = ..., + sendPaymentMessage: Global___Message.SendPaymentMessage | None = ..., + liveLocationMessage: Global___Message.LiveLocationMessage | None = ..., + requestPaymentMessage: Global___Message.RequestPaymentMessage | None = ..., + declinePaymentRequestMessage: Global___Message.DeclinePaymentRequestMessage | None = ..., + cancelPaymentRequestMessage: Global___Message.CancelPaymentRequestMessage | None = ..., + templateMessage: Global___Message.TemplateMessage | None = ..., + stickerMessage: Global___Message.StickerMessage | None = ..., + groupInviteMessage: Global___Message.GroupInviteMessage | None = ..., + templateButtonReplyMessage: Global___Message.TemplateButtonReplyMessage | None = ..., + productMessage: Global___Message.ProductMessage | None = ..., + deviceSentMessage: Global___Message.DeviceSentMessage | None = ..., + messageContextInfo: Global___MessageContextInfo | None = ..., + listMessage: Global___Message.ListMessage | None = ..., + viewOnceMessage: Global___Message.FutureProofMessage | None = ..., + orderMessage: Global___Message.OrderMessage | None = ..., + listResponseMessage: Global___Message.ListResponseMessage | None = ..., + ephemeralMessage: Global___Message.FutureProofMessage | None = ..., + invoiceMessage: Global___Message.InvoiceMessage | None = ..., + buttonsMessage: Global___Message.ButtonsMessage | None = ..., + buttonsResponseMessage: Global___Message.ButtonsResponseMessage | None = ..., + paymentInviteMessage: Global___Message.PaymentInviteMessage | None = ..., + interactiveMessage: Global___Message.InteractiveMessage | None = ..., + reactionMessage: Global___Message.ReactionMessage | None = ..., + stickerSyncRmrMessage: Global___Message.StickerSyncRMRMessage | None = ..., + interactiveResponseMessage: Global___Message.InteractiveResponseMessage | None = ..., + pollCreationMessage: Global___Message.PollCreationMessage | None = ..., + pollUpdateMessage: Global___Message.PollUpdateMessage | None = ..., + keepInChatMessage: Global___Message.KeepInChatMessage | None = ..., + documentWithCaptionMessage: Global___Message.FutureProofMessage | None = ..., + requestPhoneNumberMessage: Global___Message.RequestPhoneNumberMessage | None = ..., + viewOnceMessageV2: Global___Message.FutureProofMessage | None = ..., + encReactionMessage: Global___Message.EncReactionMessage | None = ..., + editedMessage: Global___Message.FutureProofMessage | None = ..., + viewOnceMessageV2Extension: Global___Message.FutureProofMessage | None = ..., + pollCreationMessageV2: Global___Message.PollCreationMessage | None = ..., + scheduledCallCreationMessage: Global___Message.ScheduledCallCreationMessage | None = ..., + groupMentionedMessage: Global___Message.FutureProofMessage | None = ..., + pinInChatMessage: Global___Message.PinInChatMessage | None = ..., + pollCreationMessageV3: Global___Message.PollCreationMessage | None = ..., + scheduledCallEditMessage: Global___Message.ScheduledCallEditMessage | None = ..., + ptvMessage: Global___Message.VideoMessage | None = ..., + botInvokeMessage: Global___Message.FutureProofMessage | None = ..., + callLogMesssage: Global___Message.CallLogMessage | None = ..., + messageHistoryBundle: Global___Message.MessageHistoryBundle | None = ..., + encCommentMessage: Global___Message.EncCommentMessage | None = ..., + bcallMessage: Global___Message.BCallMessage | None = ..., + lottieStickerMessage: Global___Message.FutureProofMessage | None = ..., + eventMessage: Global___Message.EventMessage | None = ..., + encEventResponseMessage: Global___Message.EncEventResponseMessage | None = ..., + commentMessage: Global___Message.CommentMessage | None = ..., + newsletterAdminInviteMessage: Global___Message.NewsletterAdminInviteMessage | None = ..., + placeholderMessage: Global___Message.PlaceholderMessage | None = ..., + secretEncryptedMessage: Global___Message.SecretEncryptedMessage | None = ..., + albumMessage: Global___Message.AlbumMessage | None = ..., + eventCoverImage: Global___Message.FutureProofMessage | None = ..., + stickerPackMessage: Global___Message.StickerPackMessage | None = ..., + statusMentionMessage: Global___Message.FutureProofMessage | None = ..., + pollResultSnapshotMessage: Global___Message.PollResultSnapshotMessage | None = ..., + pollCreationOptionImageMessage: Global___Message.FutureProofMessage | None = ..., + associatedChildMessage: Global___Message.FutureProofMessage | None = ..., + groupStatusMentionMessage: Global___Message.FutureProofMessage | None = ..., + pollCreationMessageV4: Global___Message.FutureProofMessage | None = ..., + statusAddYours: Global___Message.FutureProofMessage | None = ..., + groupStatusMessage: Global___Message.FutureProofMessage | None = ..., + richResponseMessage: Global___AIRichResponseMessage | None = ..., + statusNotificationMessage: Global___Message.StatusNotificationMessage | None = ..., + limitSharingMessage: Global___Message.FutureProofMessage | None = ..., + botTaskMessage: Global___Message.FutureProofMessage | None = ..., + questionMessage: Global___Message.FutureProofMessage | None = ..., + messageHistoryNotice: Global___Message.MessageHistoryNotice | None = ..., + groupStatusMessageV2: Global___Message.FutureProofMessage | None = ..., + botForwardedMessage: Global___Message.FutureProofMessage | None = ..., + statusQuestionAnswerMessage: Global___Message.StatusQuestionAnswerMessage | None = ..., + questionReplyMessage: Global___Message.FutureProofMessage | None = ..., + questionResponseMessage: Global___Message.QuestionResponseMessage | None = ..., + statusQuotedMessage: Global___Message.StatusQuotedMessage | None = ..., + statusStickerInteractionMessage: Global___Message.StatusStickerInteractionMessage | None = ..., + pollCreationMessageV5: Global___Message.PollCreationMessage | None = ..., + newsletterFollowerInviteMessageV2: Global___Message.NewsletterFollowerInviteMessage | None = ..., + pollResultSnapshotMessageV3: Global___Message.PollResultSnapshotMessage | None = ..., + newsletterAdminProfileMessage: Global___Message.FutureProofMessage | None = ..., + newsletterAdminProfileMessageV2: Global___Message.FutureProofMessage | None = ..., + spoilerMessage: Global___Message.FutureProofMessage | None = ..., + pollCreationMessageV6: Global___Message.PollCreationMessage | None = ..., + conditionalRevealMessage: Global___Message.ConditionalRevealMessage | None = ..., + pollAddOptionMessage: Global___Message.PollAddOptionMessage | None = ..., + eventInviteMessage: Global___Message.EventInviteMessage | None = ..., + groupRootKeyShare: Global___GroupRootKeyShare | None = ..., + paymentReminderMessage: Global___Message.PaymentReminderMessage | None = ..., + splitPaymentMessage: Global___Message.SplitPaymentMessage | None = ..., + newsletterAdminProfileStatusMessage: Global___Message.FutureProofMessage | None = ..., + rootSecretDistributeMessage: Global___Message.RootSecretDistributeMessage | None = ..., + splitPaymentUpdateMessage: Global___Message.SplitPaymentUpdateMessage | None = ..., + musicMessage: Global___Message.MusicMessage | None = ..., + statusLinkPreviewMetadata: Global___Message.StatusLinkPreviewMetadata | None = ..., + botPlatformRegistrationSuccessMessage: Global___Message.FutureProofMessage | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["albumMessage", b"albumMessage", "associatedChildMessage", b"associatedChildMessage", "audioMessage", b"audioMessage", "bcallMessage", b"bcallMessage", "botForwardedMessage", b"botForwardedMessage", "botInvokeMessage", b"botInvokeMessage", "botPlatformRegistrationSuccessMessage", b"botPlatformRegistrationSuccessMessage", "botTaskMessage", b"botTaskMessage", "buttonsMessage", b"buttonsMessage", "buttonsResponseMessage", b"buttonsResponseMessage", "call", b"call", "callLogMesssage", b"callLogMesssage", "cancelPaymentRequestMessage", b"cancelPaymentRequestMessage", "chat", b"chat", "commentMessage", b"commentMessage", "conditionalRevealMessage", b"conditionalRevealMessage", "contactMessage", b"contactMessage", "contactsArrayMessage", b"contactsArrayMessage", "conversation", b"conversation", "declinePaymentRequestMessage", b"declinePaymentRequestMessage", "deviceSentMessage", b"deviceSentMessage", "documentMessage", b"documentMessage", "documentWithCaptionMessage", b"documentWithCaptionMessage", "editedMessage", b"editedMessage", "encCommentMessage", b"encCommentMessage", "encEventResponseMessage", b"encEventResponseMessage", "encReactionMessage", b"encReactionMessage", "ephemeralMessage", b"ephemeralMessage", "eventCoverImage", b"eventCoverImage", "eventInviteMessage", b"eventInviteMessage", "eventMessage", b"eventMessage", "extendedTextMessage", b"extendedTextMessage", "fastRatchetKeySenderKeyDistributionMessage", b"fastRatchetKeySenderKeyDistributionMessage", "groupInviteMessage", b"groupInviteMessage", "groupMentionedMessage", b"groupMentionedMessage", "groupRootKeyShare", b"groupRootKeyShare", "groupStatusMentionMessage", b"groupStatusMentionMessage", "groupStatusMessage", b"groupStatusMessage", "groupStatusMessageV2", b"groupStatusMessageV2", "highlyStructuredMessage", b"highlyStructuredMessage", "imageMessage", b"imageMessage", "interactiveMessage", b"interactiveMessage", "interactiveResponseMessage", b"interactiveResponseMessage", "invoiceMessage", b"invoiceMessage", "keepInChatMessage", b"keepInChatMessage", "limitSharingMessage", b"limitSharingMessage", "listMessage", b"listMessage", "listResponseMessage", b"listResponseMessage", "liveLocationMessage", b"liveLocationMessage", "locationMessage", b"locationMessage", "lottieStickerMessage", b"lottieStickerMessage", "messageContextInfo", b"messageContextInfo", "messageHistoryBundle", b"messageHistoryBundle", "messageHistoryNotice", b"messageHistoryNotice", "musicMessage", b"musicMessage", "newsletterAdminInviteMessage", b"newsletterAdminInviteMessage", "newsletterAdminProfileMessage", b"newsletterAdminProfileMessage", "newsletterAdminProfileMessageV2", b"newsletterAdminProfileMessageV2", "newsletterAdminProfileStatusMessage", b"newsletterAdminProfileStatusMessage", "newsletterFollowerInviteMessageV2", b"newsletterFollowerInviteMessageV2", "orderMessage", b"orderMessage", "paymentInviteMessage", b"paymentInviteMessage", "paymentReminderMessage", b"paymentReminderMessage", "pinInChatMessage", b"pinInChatMessage", "placeholderMessage", b"placeholderMessage", "pollAddOptionMessage", b"pollAddOptionMessage", "pollCreationMessage", b"pollCreationMessage", "pollCreationMessageV2", b"pollCreationMessageV2", "pollCreationMessageV3", b"pollCreationMessageV3", "pollCreationMessageV4", b"pollCreationMessageV4", "pollCreationMessageV5", b"pollCreationMessageV5", "pollCreationMessageV6", b"pollCreationMessageV6", "pollCreationOptionImageMessage", b"pollCreationOptionImageMessage", "pollResultSnapshotMessage", b"pollResultSnapshotMessage", "pollResultSnapshotMessageV3", b"pollResultSnapshotMessageV3", "pollUpdateMessage", b"pollUpdateMessage", "productMessage", b"productMessage", "protocolMessage", b"protocolMessage", "ptvMessage", b"ptvMessage", "questionMessage", b"questionMessage", "questionReplyMessage", b"questionReplyMessage", "questionResponseMessage", b"questionResponseMessage", "reactionMessage", b"reactionMessage", "requestPaymentMessage", b"requestPaymentMessage", "requestPhoneNumberMessage", b"requestPhoneNumberMessage", "richResponseMessage", b"richResponseMessage", "rootSecretDistributeMessage", b"rootSecretDistributeMessage", "scheduledCallCreationMessage", b"scheduledCallCreationMessage", "scheduledCallEditMessage", b"scheduledCallEditMessage", "secretEncryptedMessage", b"secretEncryptedMessage", "sendPaymentMessage", b"sendPaymentMessage", "senderKeyDistributionMessage", b"senderKeyDistributionMessage", "splitPaymentMessage", b"splitPaymentMessage", "splitPaymentUpdateMessage", b"splitPaymentUpdateMessage", "spoilerMessage", b"spoilerMessage", "statusAddYours", b"statusAddYours", "statusLinkPreviewMetadata", b"statusLinkPreviewMetadata", "statusMentionMessage", b"statusMentionMessage", "statusNotificationMessage", b"statusNotificationMessage", "statusQuestionAnswerMessage", b"statusQuestionAnswerMessage", "statusQuotedMessage", b"statusQuotedMessage", "statusStickerInteractionMessage", b"statusStickerInteractionMessage", "stickerMessage", b"stickerMessage", "stickerPackMessage", b"stickerPackMessage", "stickerSyncRmrMessage", b"stickerSyncRmrMessage", "templateButtonReplyMessage", b"templateButtonReplyMessage", "templateMessage", b"templateMessage", "videoMessage", b"videoMessage", "viewOnceMessage", b"viewOnceMessage", "viewOnceMessageV2", b"viewOnceMessageV2", "viewOnceMessageV2Extension", b"viewOnceMessageV2Extension"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["albumMessage", b"albumMessage", "associatedChildMessage", b"associatedChildMessage", "audioMessage", b"audioMessage", "bcallMessage", b"bcallMessage", "botForwardedMessage", b"botForwardedMessage", "botInvokeMessage", b"botInvokeMessage", "botPlatformRegistrationSuccessMessage", b"botPlatformRegistrationSuccessMessage", "botTaskMessage", b"botTaskMessage", "buttonsMessage", b"buttonsMessage", "buttonsResponseMessage", b"buttonsResponseMessage", "call", b"call", "callLogMesssage", b"callLogMesssage", "cancelPaymentRequestMessage", b"cancelPaymentRequestMessage", "chat", b"chat", "commentMessage", b"commentMessage", "conditionalRevealMessage", b"conditionalRevealMessage", "contactMessage", b"contactMessage", "contactsArrayMessage", b"contactsArrayMessage", "conversation", b"conversation", "declinePaymentRequestMessage", b"declinePaymentRequestMessage", "deviceSentMessage", b"deviceSentMessage", "documentMessage", b"documentMessage", "documentWithCaptionMessage", b"documentWithCaptionMessage", "editedMessage", b"editedMessage", "encCommentMessage", b"encCommentMessage", "encEventResponseMessage", b"encEventResponseMessage", "encReactionMessage", b"encReactionMessage", "ephemeralMessage", b"ephemeralMessage", "eventCoverImage", b"eventCoverImage", "eventInviteMessage", b"eventInviteMessage", "eventMessage", b"eventMessage", "extendedTextMessage", b"extendedTextMessage", "fastRatchetKeySenderKeyDistributionMessage", b"fastRatchetKeySenderKeyDistributionMessage", "groupInviteMessage", b"groupInviteMessage", "groupMentionedMessage", b"groupMentionedMessage", "groupRootKeyShare", b"groupRootKeyShare", "groupStatusMentionMessage", b"groupStatusMentionMessage", "groupStatusMessage", b"groupStatusMessage", "groupStatusMessageV2", b"groupStatusMessageV2", "highlyStructuredMessage", b"highlyStructuredMessage", "imageMessage", b"imageMessage", "interactiveMessage", b"interactiveMessage", "interactiveResponseMessage", b"interactiveResponseMessage", "invoiceMessage", b"invoiceMessage", "keepInChatMessage", b"keepInChatMessage", "limitSharingMessage", b"limitSharingMessage", "listMessage", b"listMessage", "listResponseMessage", b"listResponseMessage", "liveLocationMessage", b"liveLocationMessage", "locationMessage", b"locationMessage", "lottieStickerMessage", b"lottieStickerMessage", "messageContextInfo", b"messageContextInfo", "messageHistoryBundle", b"messageHistoryBundle", "messageHistoryNotice", b"messageHistoryNotice", "musicMessage", b"musicMessage", "newsletterAdminInviteMessage", b"newsletterAdminInviteMessage", "newsletterAdminProfileMessage", b"newsletterAdminProfileMessage", "newsletterAdminProfileMessageV2", b"newsletterAdminProfileMessageV2", "newsletterAdminProfileStatusMessage", b"newsletterAdminProfileStatusMessage", "newsletterFollowerInviteMessageV2", b"newsletterFollowerInviteMessageV2", "orderMessage", b"orderMessage", "paymentInviteMessage", b"paymentInviteMessage", "paymentReminderMessage", b"paymentReminderMessage", "pinInChatMessage", b"pinInChatMessage", "placeholderMessage", b"placeholderMessage", "pollAddOptionMessage", b"pollAddOptionMessage", "pollCreationMessage", b"pollCreationMessage", "pollCreationMessageV2", b"pollCreationMessageV2", "pollCreationMessageV3", b"pollCreationMessageV3", "pollCreationMessageV4", b"pollCreationMessageV4", "pollCreationMessageV5", b"pollCreationMessageV5", "pollCreationMessageV6", b"pollCreationMessageV6", "pollCreationOptionImageMessage", b"pollCreationOptionImageMessage", "pollResultSnapshotMessage", b"pollResultSnapshotMessage", "pollResultSnapshotMessageV3", b"pollResultSnapshotMessageV3", "pollUpdateMessage", b"pollUpdateMessage", "productMessage", b"productMessage", "protocolMessage", b"protocolMessage", "ptvMessage", b"ptvMessage", "questionMessage", b"questionMessage", "questionReplyMessage", b"questionReplyMessage", "questionResponseMessage", b"questionResponseMessage", "reactionMessage", b"reactionMessage", "requestPaymentMessage", b"requestPaymentMessage", "requestPhoneNumberMessage", b"requestPhoneNumberMessage", "richResponseMessage", b"richResponseMessage", "rootSecretDistributeMessage", b"rootSecretDistributeMessage", "scheduledCallCreationMessage", b"scheduledCallCreationMessage", "scheduledCallEditMessage", b"scheduledCallEditMessage", "secretEncryptedMessage", b"secretEncryptedMessage", "sendPaymentMessage", b"sendPaymentMessage", "senderKeyDistributionMessage", b"senderKeyDistributionMessage", "splitPaymentMessage", b"splitPaymentMessage", "splitPaymentUpdateMessage", b"splitPaymentUpdateMessage", "spoilerMessage", b"spoilerMessage", "statusAddYours", b"statusAddYours", "statusLinkPreviewMetadata", b"statusLinkPreviewMetadata", "statusMentionMessage", b"statusMentionMessage", "statusNotificationMessage", b"statusNotificationMessage", "statusQuestionAnswerMessage", b"statusQuestionAnswerMessage", "statusQuotedMessage", b"statusQuotedMessage", "statusStickerInteractionMessage", b"statusStickerInteractionMessage", "stickerMessage", b"stickerMessage", "stickerPackMessage", b"stickerPackMessage", "stickerSyncRmrMessage", b"stickerSyncRmrMessage", "templateButtonReplyMessage", b"templateButtonReplyMessage", "templateMessage", b"templateMessage", "videoMessage", b"videoMessage", "viewOnceMessage", b"viewOnceMessage", "viewOnceMessageV2", b"viewOnceMessageV2", "viewOnceMessageV2Extension", b"viewOnceMessageV2Extension"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Message: _TypeAlias = Message # noqa: Y015 + +@_typing.final +class MessageAddOn(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _MessageAddOnType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _MessageAddOnTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MessageAddOn._MessageAddOnType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNDEFINED: MessageAddOn._MessageAddOnType.ValueType # 0 + REACTION: MessageAddOn._MessageAddOnType.ValueType # 1 + EVENT_RESPONSE: MessageAddOn._MessageAddOnType.ValueType # 2 + POLL_UPDATE: MessageAddOn._MessageAddOnType.ValueType # 3 + PIN_IN_CHAT: MessageAddOn._MessageAddOnType.ValueType # 4 + + class MessageAddOnType(_MessageAddOnType, metaclass=_MessageAddOnTypeEnumTypeWrapper): ... + UNDEFINED: MessageAddOn.MessageAddOnType.ValueType # 0 + REACTION: MessageAddOn.MessageAddOnType.ValueType # 1 + EVENT_RESPONSE: MessageAddOn.MessageAddOnType.ValueType # 2 + POLL_UPDATE: MessageAddOn.MessageAddOnType.ValueType # 3 + PIN_IN_CHAT: MessageAddOn.MessageAddOnType.ValueType # 4 + + MESSAGEADDONTYPE_FIELD_NUMBER: _builtins.int + MESSAGEADDON_FIELD_NUMBER: _builtins.int + SENDERTIMESTAMPMS_FIELD_NUMBER: _builtins.int + SERVERTIMESTAMPMS_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + ADDONCONTEXTINFO_FIELD_NUMBER: _builtins.int + MESSAGEADDONKEY_FIELD_NUMBER: _builtins.int + LEGACYMESSAGE_FIELD_NUMBER: _builtins.int + messageAddOnType: Global___MessageAddOn.MessageAddOnType.ValueType + senderTimestampMs: _builtins.int + serverTimestampMs: _builtins.int + status: Global___WebMessageInfo.Status.ValueType + @_builtins.property + def messageAddOn(self) -> Global___Message: ... @_builtins.property - def ptvMessage(self) -> Global___Message.VideoMessage: ... + def addOnContextInfo(self) -> Global___MessageAddOnContextInfo: ... @_builtins.property - def botInvokeMessage(self) -> Global___Message.FutureProofMessage: ... + def messageAddOnKey(self) -> Global___MessageKey: ... @_builtins.property - def callLogMesssage(self) -> Global___Message.CallLogMessage: ... + def legacyMessage(self) -> Global___LegacyMessage: ... + def __init__( + self, + *, + messageAddOnType: Global___MessageAddOn.MessageAddOnType.ValueType | None = ..., + messageAddOn: Global___Message | None = ..., + senderTimestampMs: _builtins.int | None = ..., + serverTimestampMs: _builtins.int | None = ..., + status: Global___WebMessageInfo.Status.ValueType | None = ..., + addOnContextInfo: Global___MessageAddOnContextInfo | None = ..., + messageAddOnKey: Global___MessageKey | None = ..., + legacyMessage: Global___LegacyMessage | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["addOnContextInfo", b"addOnContextInfo", "legacyMessage", b"legacyMessage", "messageAddOn", b"messageAddOn", "messageAddOnKey", b"messageAddOnKey", "messageAddOnType", b"messageAddOnType", "senderTimestampMs", b"senderTimestampMs", "serverTimestampMs", b"serverTimestampMs", "status", b"status"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["addOnContextInfo", b"addOnContextInfo", "legacyMessage", b"legacyMessage", "messageAddOn", b"messageAddOn", "messageAddOnKey", b"messageAddOnKey", "messageAddOnType", b"messageAddOnType", "senderTimestampMs", b"senderTimestampMs", "serverTimestampMs", b"serverTimestampMs", "status", b"status"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MessageAddOn: _TypeAlias = MessageAddOn # noqa: Y015 + +@_typing.final +class MessageAddOnContextInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + MESSAGEADDONDURATIONINSECS_FIELD_NUMBER: _builtins.int + MESSAGEADDONEXPIRYTYPE_FIELD_NUMBER: _builtins.int + messageAddOnDurationInSecs: _builtins.int + messageAddOnExpiryType: Global___MessageContextInfo.MessageAddonExpiryType.ValueType + def __init__( + self, + *, + messageAddOnDurationInSecs: _builtins.int | None = ..., + messageAddOnExpiryType: Global___MessageContextInfo.MessageAddonExpiryType.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["messageAddOnDurationInSecs", b"messageAddOnDurationInSecs", "messageAddOnExpiryType", b"messageAddOnExpiryType"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["messageAddOnDurationInSecs", b"messageAddOnDurationInSecs", "messageAddOnExpiryType", b"messageAddOnExpiryType"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MessageAddOnContextInfo: _TypeAlias = MessageAddOnContextInfo # noqa: Y015 + +@_typing.final +class MessageAssociation(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _AssociationType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _AssociationTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MessageAssociation._AssociationType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + UNKNOWN: MessageAssociation._AssociationType.ValueType # 0 + MEDIA_ALBUM: MessageAssociation._AssociationType.ValueType # 1 + BOT_PLUGIN: MessageAssociation._AssociationType.ValueType # 2 + EVENT_COVER_IMAGE: MessageAssociation._AssociationType.ValueType # 3 + STATUS_POLL: MessageAssociation._AssociationType.ValueType # 4 + HD_VIDEO_DUAL_UPLOAD: MessageAssociation._AssociationType.ValueType # 5 + STATUS_EXTERNAL_RESHARE: MessageAssociation._AssociationType.ValueType # 6 + MEDIA_POLL: MessageAssociation._AssociationType.ValueType # 7 + STATUS_ADD_YOURS: MessageAssociation._AssociationType.ValueType # 8 + STATUS_NOTIFICATION: MessageAssociation._AssociationType.ValueType # 9 + HD_IMAGE_DUAL_UPLOAD: MessageAssociation._AssociationType.ValueType # 10 + STICKER_ANNOTATION: MessageAssociation._AssociationType.ValueType # 11 + MOTION_PHOTO: MessageAssociation._AssociationType.ValueType # 12 + STATUS_LINK_ACTION: MessageAssociation._AssociationType.ValueType # 13 + VIEW_ALL_REPLIES: MessageAssociation._AssociationType.ValueType # 14 + STATUS_ADD_YOURS_AI_IMAGINE: MessageAssociation._AssociationType.ValueType # 15 + STATUS_QUESTION: MessageAssociation._AssociationType.ValueType # 16 + STATUS_ADD_YOURS_DIWALI: MessageAssociation._AssociationType.ValueType # 17 + STATUS_REACTION: MessageAssociation._AssociationType.ValueType # 18 + HEVC_VIDEO_DUAL_UPLOAD: MessageAssociation._AssociationType.ValueType # 19 + POLL_ADD_OPTION: MessageAssociation._AssociationType.ValueType # 20 + + class AssociationType(_AssociationType, metaclass=_AssociationTypeEnumTypeWrapper): ... + UNKNOWN: MessageAssociation.AssociationType.ValueType # 0 + MEDIA_ALBUM: MessageAssociation.AssociationType.ValueType # 1 + BOT_PLUGIN: MessageAssociation.AssociationType.ValueType # 2 + EVENT_COVER_IMAGE: MessageAssociation.AssociationType.ValueType # 3 + STATUS_POLL: MessageAssociation.AssociationType.ValueType # 4 + HD_VIDEO_DUAL_UPLOAD: MessageAssociation.AssociationType.ValueType # 5 + STATUS_EXTERNAL_RESHARE: MessageAssociation.AssociationType.ValueType # 6 + MEDIA_POLL: MessageAssociation.AssociationType.ValueType # 7 + STATUS_ADD_YOURS: MessageAssociation.AssociationType.ValueType # 8 + STATUS_NOTIFICATION: MessageAssociation.AssociationType.ValueType # 9 + HD_IMAGE_DUAL_UPLOAD: MessageAssociation.AssociationType.ValueType # 10 + STICKER_ANNOTATION: MessageAssociation.AssociationType.ValueType # 11 + MOTION_PHOTO: MessageAssociation.AssociationType.ValueType # 12 + STATUS_LINK_ACTION: MessageAssociation.AssociationType.ValueType # 13 + VIEW_ALL_REPLIES: MessageAssociation.AssociationType.ValueType # 14 + STATUS_ADD_YOURS_AI_IMAGINE: MessageAssociation.AssociationType.ValueType # 15 + STATUS_QUESTION: MessageAssociation.AssociationType.ValueType # 16 + STATUS_ADD_YOURS_DIWALI: MessageAssociation.AssociationType.ValueType # 17 + STATUS_REACTION: MessageAssociation.AssociationType.ValueType # 18 + HEVC_VIDEO_DUAL_UPLOAD: MessageAssociation.AssociationType.ValueType # 19 + POLL_ADD_OPTION: MessageAssociation.AssociationType.ValueType # 20 + + ASSOCIATIONTYPE_FIELD_NUMBER: _builtins.int + PARENTMESSAGEKEY_FIELD_NUMBER: _builtins.int + MESSAGEINDEX_FIELD_NUMBER: _builtins.int + associationType: Global___MessageAssociation.AssociationType.ValueType + messageIndex: _builtins.int @_builtins.property - def messageHistoryBundle(self) -> Global___Message.MessageHistoryBundle: ... + def parentMessageKey(self) -> Global___MessageKey: ... + def __init__( + self, + *, + associationType: Global___MessageAssociation.AssociationType.ValueType | None = ..., + parentMessageKey: Global___MessageKey | None = ..., + messageIndex: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["associationType", b"associationType", "messageIndex", b"messageIndex", "parentMessageKey", b"parentMessageKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["associationType", b"associationType", "messageIndex", b"messageIndex", "parentMessageKey", b"parentMessageKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MessageAssociation: _TypeAlias = MessageAssociation # noqa: Y015 + +@_typing.final +class MessageContextInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _MessageAddonExpiryType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _MessageAddonExpiryTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MessageContextInfo._MessageAddonExpiryType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + STATIC: MessageContextInfo._MessageAddonExpiryType.ValueType # 1 + DEPENDENT_ON_PARENT: MessageContextInfo._MessageAddonExpiryType.ValueType # 2 + + class MessageAddonExpiryType(_MessageAddonExpiryType, metaclass=_MessageAddonExpiryTypeEnumTypeWrapper): ... + STATIC: MessageContextInfo.MessageAddonExpiryType.ValueType # 1 + DEPENDENT_ON_PARENT: MessageContextInfo.MessageAddonExpiryType.ValueType # 2 + + DEVICELISTMETADATA_FIELD_NUMBER: _builtins.int + DEVICELISTMETADATAVERSION_FIELD_NUMBER: _builtins.int + MESSAGESECRET_FIELD_NUMBER: _builtins.int + PADDINGBYTES_FIELD_NUMBER: _builtins.int + MESSAGEADDONDURATIONINSECS_FIELD_NUMBER: _builtins.int + BOTMESSAGESECRET_FIELD_NUMBER: _builtins.int + BOTMETADATA_FIELD_NUMBER: _builtins.int + REPORTINGTOKENVERSION_FIELD_NUMBER: _builtins.int + MESSAGEADDONEXPIRYTYPE_FIELD_NUMBER: _builtins.int + MESSAGEASSOCIATION_FIELD_NUMBER: _builtins.int + CAPICREATEDGROUP_FIELD_NUMBER: _builtins.int + SUPPORTPAYLOAD_FIELD_NUMBER: _builtins.int + LIMITSHARING_FIELD_NUMBER: _builtins.int + LIMITSHARINGV2_FIELD_NUMBER: _builtins.int + THREADID_FIELD_NUMBER: _builtins.int + WEBLINKRENDERCONFIG_FIELD_NUMBER: _builtins.int + TEEBOTMETADATA_FIELD_NUMBER: _builtins.int + ACCOUNTENCRYPTIONATTESTATION_FIELD_NUMBER: _builtins.int + ASSOCIATEDPRIMARYIDENTITYKEY_FIELD_NUMBER: _builtins.int + deviceListMetadataVersion: _builtins.int + messageSecret: _builtins.bytes + paddingBytes: _builtins.bytes + messageAddOnDurationInSecs: _builtins.int + botMessageSecret: _builtins.bytes + reportingTokenVersion: _builtins.int + messageAddOnExpiryType: Global___MessageContextInfo.MessageAddonExpiryType.ValueType + capiCreatedGroup: _builtins.bool + supportPayload: _builtins.str + weblinkRenderConfig: Global___WebLinkRenderConfig.ValueType + teeBotMetadata: _builtins.bytes + associatedPrimaryIdentityKey: _builtins.bytes @_builtins.property - def encCommentMessage(self) -> Global___Message.EncCommentMessage: ... + def deviceListMetadata(self) -> Global___DeviceListMetadata: ... @_builtins.property - def bcallMessage(self) -> Global___Message.BCallMessage: ... + def botMetadata(self) -> Global___BotMetadata: ... @_builtins.property - def lottieStickerMessage(self) -> Global___Message.FutureProofMessage: ... + def messageAssociation(self) -> Global___MessageAssociation: ... @_builtins.property - def eventMessage(self) -> Global___Message.EventMessage: ... + def limitSharing(self) -> Global___LimitSharing: ... @_builtins.property - def encEventResponseMessage(self) -> Global___Message.EncEventResponseMessage: ... + def limitSharingV2(self) -> Global___LimitSharing: ... @_builtins.property - def commentMessage(self) -> Global___Message.CommentMessage: ... + def threadId(self) -> _containers.RepeatedCompositeFieldContainer[Global___ThreadID]: ... @_builtins.property - def newsletterAdminInviteMessage(self) -> Global___Message.NewsletterAdminInviteMessage: ... + def accountEncryptionAttestation(self) -> Global___NonE2EEAttestation: ... + def __init__( + self, + *, + deviceListMetadata: Global___DeviceListMetadata | None = ..., + deviceListMetadataVersion: _builtins.int | None = ..., + messageSecret: _builtins.bytes | None = ..., + paddingBytes: _builtins.bytes | None = ..., + messageAddOnDurationInSecs: _builtins.int | None = ..., + botMessageSecret: _builtins.bytes | None = ..., + botMetadata: Global___BotMetadata | None = ..., + reportingTokenVersion: _builtins.int | None = ..., + messageAddOnExpiryType: Global___MessageContextInfo.MessageAddonExpiryType.ValueType | None = ..., + messageAssociation: Global___MessageAssociation | None = ..., + capiCreatedGroup: _builtins.bool | None = ..., + supportPayload: _builtins.str | None = ..., + limitSharing: Global___LimitSharing | None = ..., + limitSharingV2: Global___LimitSharing | None = ..., + threadId: _abc.Iterable[Global___ThreadID] | None = ..., + weblinkRenderConfig: Global___WebLinkRenderConfig.ValueType | None = ..., + teeBotMetadata: _builtins.bytes | None = ..., + accountEncryptionAttestation: Global___NonE2EEAttestation | None = ..., + associatedPrimaryIdentityKey: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["accountEncryptionAttestation", b"accountEncryptionAttestation", "associatedPrimaryIdentityKey", b"associatedPrimaryIdentityKey", "botMessageSecret", b"botMessageSecret", "botMetadata", b"botMetadata", "capiCreatedGroup", b"capiCreatedGroup", "deviceListMetadata", b"deviceListMetadata", "deviceListMetadataVersion", b"deviceListMetadataVersion", "limitSharing", b"limitSharing", "limitSharingV2", b"limitSharingV2", "messageAddOnDurationInSecs", b"messageAddOnDurationInSecs", "messageAddOnExpiryType", b"messageAddOnExpiryType", "messageAssociation", b"messageAssociation", "messageSecret", b"messageSecret", "paddingBytes", b"paddingBytes", "reportingTokenVersion", b"reportingTokenVersion", "supportPayload", b"supportPayload", "teeBotMetadata", b"teeBotMetadata", "weblinkRenderConfig", b"weblinkRenderConfig"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["accountEncryptionAttestation", b"accountEncryptionAttestation", "associatedPrimaryIdentityKey", b"associatedPrimaryIdentityKey", "botMessageSecret", b"botMessageSecret", "botMetadata", b"botMetadata", "capiCreatedGroup", b"capiCreatedGroup", "deviceListMetadata", b"deviceListMetadata", "deviceListMetadataVersion", b"deviceListMetadataVersion", "limitSharing", b"limitSharing", "limitSharingV2", b"limitSharingV2", "messageAddOnDurationInSecs", b"messageAddOnDurationInSecs", "messageAddOnExpiryType", b"messageAddOnExpiryType", "messageAssociation", b"messageAssociation", "messageSecret", b"messageSecret", "paddingBytes", b"paddingBytes", "reportingTokenVersion", b"reportingTokenVersion", "supportPayload", b"supportPayload", "teeBotMetadata", b"teeBotMetadata", "threadId", b"threadId", "weblinkRenderConfig", b"weblinkRenderConfig"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MessageContextInfo: _TypeAlias = MessageContextInfo # noqa: Y015 + +@_typing.final +class MessageKey(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + REMOTEJID_FIELD_NUMBER: _builtins.int + FROMME_FIELD_NUMBER: _builtins.int + ID_FIELD_NUMBER: _builtins.int + PARTICIPANT_FIELD_NUMBER: _builtins.int + remoteJid: _builtins.str + fromMe: _builtins.bool + id: _builtins.str + participant: _builtins.str + def __init__( + self, + *, + remoteJid: _builtins.str | None = ..., + fromMe: _builtins.bool | None = ..., + id: _builtins.str | None = ..., + participant: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["fromMe", b"fromMe", "id", b"id", "participant", b"participant", "remoteJid", b"remoteJid"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["fromMe", b"fromMe", "id", b"id", "participant", b"participant", "remoteJid", b"remoteJid"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MessageKey: _TypeAlias = MessageKey # noqa: Y015 + +@_typing.final +class MessageSecretMessage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + VERSION_FIELD_NUMBER: _builtins.int + ENCIV_FIELD_NUMBER: _builtins.int + ENCPAYLOAD_FIELD_NUMBER: _builtins.int + version: _builtins.int + encIv: _builtins.bytes + encPayload: _builtins.bytes + def __init__( + self, + *, + version: _builtins.int | None = ..., + encIv: _builtins.bytes | None = ..., + encPayload: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "version", b"version"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "version", b"version"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MessageSecretMessage: _TypeAlias = MessageSecretMessage # noqa: Y015 + +@_typing.final +class MessageText(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + TEXT_FIELD_NUMBER: _builtins.int + MENTIONEDJID_FIELD_NUMBER: _builtins.int + COMMANDS_FIELD_NUMBER: _builtins.int + MENTIONS_FIELD_NUMBER: _builtins.int + text: _builtins.str @_builtins.property - def placeholderMessage(self) -> Global___Message.PlaceholderMessage: ... + def mentionedJid(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... @_builtins.property - def secretEncryptedMessage(self) -> Global___Message.SecretEncryptedMessage: ... + def commands(self) -> _containers.RepeatedCompositeFieldContainer[Global___Command]: ... @_builtins.property - def albumMessage(self) -> Global___Message.AlbumMessage: ... + def mentions(self) -> _containers.RepeatedCompositeFieldContainer[Global___Mention]: ... + def __init__( + self, + *, + text: _builtins.str | None = ..., + mentionedJid: _abc.Iterable[_builtins.str] | None = ..., + commands: _abc.Iterable[Global___Command] | None = ..., + mentions: _abc.Iterable[Global___Mention] | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["text", b"text"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commands", b"commands", "mentionedJid", b"mentionedJid", "mentions", b"mentions", "text", b"text"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MessageText: _TypeAlias = MessageText # noqa: Y015 + +@_typing.final +class MessagingMailboxPublicData(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + EPOCHHEAD_FIELD_NUMBER: _builtins.int + DEVICEROSTERHASH_FIELD_NUMBER: _builtins.int + SEQUENCENUMBER_FIELD_NUMBER: _builtins.int + SIGPK_FIELD_NUMBER: _builtins.int + ENCPK_FIELD_NUMBER: _builtins.int + AUTHPK_FIELD_NUMBER: _builtins.int + epochHead: _builtins.bytes + deviceRosterHash: _builtins.bytes + sequenceNumber: _builtins.int + sigPk: _builtins.bytes + encPk: _builtins.bytes + authPk: _builtins.bytes + def __init__( + self, + *, + epochHead: _builtins.bytes | None = ..., + deviceRosterHash: _builtins.bytes | None = ..., + sequenceNumber: _builtins.int | None = ..., + sigPk: _builtins.bytes | None = ..., + encPk: _builtins.bytes | None = ..., + authPk: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "deviceRosterHash", b"deviceRosterHash", "encPk", b"encPk", "epochHead", b"epochHead", "sequenceNumber", b"sequenceNumber", "sigPk", b"sigPk"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["authPk", b"authPk", "deviceRosterHash", b"deviceRosterHash", "encPk", b"encPk", "epochHead", b"epochHead", "sequenceNumber", b"sequenceNumber", "sigPk", b"sigPk"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MessagingMailboxPublicData: _TypeAlias = MessagingMailboxPublicData # noqa: Y015 + +@_typing.final +class MinosClientConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + PREFERREDMESSAGEENCRYPTIONVERSION_FIELD_NUMBER: _builtins.int + PREFERREDMEKENCRYPTIONVERSION_FIELD_NUMBER: _builtins.int + preferredMessageEncryptionVersion: _builtins.int + preferredMekEncryptionVersion: _builtins.int + def __init__( + self, + *, + preferredMessageEncryptionVersion: _builtins.int | None = ..., + preferredMekEncryptionVersion: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["preferredMekEncryptionVersion", b"preferredMekEncryptionVersion", "preferredMessageEncryptionVersion", b"preferredMessageEncryptionVersion"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["preferredMekEncryptionVersion", b"preferredMekEncryptionVersion", "preferredMessageEncryptionVersion", b"preferredMessageEncryptionVersion"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MinosClientConfig: _TypeAlias = MinosClientConfig # noqa: Y015 + +@_typing.final +class MinosCommand(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + ENCRYPTANDSIGNMESSAGE_FIELD_NUMBER: _builtins.int + DECRYPTANDVERIFYMESSAGE_FIELD_NUMBER: _builtins.int + GENERATEMEK_FIELD_NUMBER: _builtins.int + GENERATEMEKROSTERHASH_FIELD_NUMBER: _builtins.int + ENCRYPTMEKFORDISTRIBUTION_FIELD_NUMBER: _builtins.int + DECRYPTMEKFORDISTRIBUTION_FIELD_NUMBER: _builtins.int + ENCRYPTMEKSFORDISTRIBUTIONFROMTRANSPORTSENDER_FIELD_NUMBER: _builtins.int + DECRYPTMEKFORDISTRIBUTIONFROMTRANSPORTSENDER_FIELD_NUMBER: _builtins.int + WRAPTRANSPORTSIGNINGPUBLICKEY_FIELD_NUMBER: _builtins.int + WRAPTRANSPORTSIGNINGSECRETKEY_FIELD_NUMBER: _builtins.int + DERIVEMAILBOXSIGNINGKEYPAIR_FIELD_NUMBER: _builtins.int + DERIVEMAILBOXENCRYPTIONKEYPAIR_FIELD_NUMBER: _builtins.int + DERIVEMAILBOXAUTHKEYPAIR_FIELD_NUMBER: _builtins.int + DERIVEATTACHMENTACCESSTOKENSECRET_FIELD_NUMBER: _builtins.int + DERIVEATTACHMENTPRIMARYKEYSECRET_FIELD_NUMBER: _builtins.int + MINOSOPENINITIALEPOCH_FIELD_NUMBER: _builtins.int + MINOSOPENEPOCH_FIELD_NUMBER: _builtins.int + MINOSVALIDATEEPOCH_FIELD_NUMBER: _builtins.int + MINOSVERIFYSINGLEEPOCH_FIELD_NUMBER: _builtins.int + MINOSTHREADIDFROMONETOONETHREAD_FIELD_NUMBER: _builtins.int + MINOSTHREADIDFROMACTTHREADID_FIELD_NUMBER: _builtins.int + MANDRAKEOPENEPOCH_FIELD_NUMBER: _builtins.int + MANDRAKEENCRYPTMEK_FIELD_NUMBER: _builtins.int + MANDRAKEDECRYPTMEK_FIELD_NUMBER: _builtins.int + MANDRAKEOPENINITIALEPOCH_FIELD_NUMBER: _builtins.int + MANDRAKEVALIDATENEWMMKFROMMAILBOX_FIELD_NUMBER: _builtins.int + MANDRAKEVALIDATENEWMMKFROMDETACHEDDEVICE_FIELD_NUMBER: _builtins.int + DERIVEMESSAGINGMAILBOXKEYPAIRS_FIELD_NUMBER: _builtins.int + DECRYPTSELFMMKDISTRIBUTION_FIELD_NUMBER: _builtins.int @_builtins.property - def eventCoverImage(self) -> Global___Message.FutureProofMessage: ... + def encryptAndSignMessage(self) -> Global___MinosEncryptAndSignMessageInput: ... @_builtins.property - def stickerPackMessage(self) -> Global___Message.StickerPackMessage: ... + def decryptAndVerifyMessage(self) -> Global___MinosDecryptAndVerifyMessageInput: ... @_builtins.property - def statusMentionMessage(self) -> Global___Message.FutureProofMessage: ... + def generateMek(self) -> Global___GenerateMekInput: ... @_builtins.property - def pollResultSnapshotMessage(self) -> Global___Message.PollResultSnapshotMessage: ... + def generateMekRosterHash(self) -> Global___GenerateMekRosterHashInput: ... @_builtins.property - def pollCreationOptionImageMessage(self) -> Global___Message.FutureProofMessage: ... + def encryptMekForDistribution(self) -> Global___EncryptMekForDistributionInput: ... @_builtins.property - def associatedChildMessage(self) -> Global___Message.FutureProofMessage: ... + def decryptMekForDistribution(self) -> Global___DecryptMekForDistributionInput: ... @_builtins.property - def groupStatusMentionMessage(self) -> Global___Message.FutureProofMessage: ... + def encryptMeksForDistributionFromTransportSender(self) -> Global___EncryptMeksForDistributionFromTransportSenderInput: ... @_builtins.property - def pollCreationMessageV4(self) -> Global___Message.FutureProofMessage: ... + def decryptMekForDistributionFromTransportSender(self) -> Global___DecryptMekForDistributionFromTransportSenderInput: ... @_builtins.property - def statusAddYours(self) -> Global___Message.FutureProofMessage: ... + def wrapTransportSigningPublicKey(self) -> Global___WrapTransportSigningPublicKeyInput: ... @_builtins.property - def groupStatusMessage(self) -> Global___Message.FutureProofMessage: ... + def wrapTransportSigningSecretKey(self) -> Global___WrapTransportSigningSecretKeyInput: ... @_builtins.property - def richResponseMessage(self) -> Global___AIRichResponseMessage: ... + def deriveMailboxSigningKeypair(self) -> Global___DeriveMailboxSigningKeypairInput: ... @_builtins.property - def statusNotificationMessage(self) -> Global___Message.StatusNotificationMessage: ... + def deriveMailboxEncryptionKeypair(self) -> Global___DeriveMailboxEncryptionKeypairInput: ... @_builtins.property - def limitSharingMessage(self) -> Global___Message.FutureProofMessage: ... + def deriveMailboxAuthKeypair(self) -> Global___DeriveMailboxAuthKeypairInput: ... @_builtins.property - def botTaskMessage(self) -> Global___Message.FutureProofMessage: ... + def deriveAttachmentAccessTokenSecret(self) -> Global___DeriveAttachmentAccessTokenSecretInput: ... @_builtins.property - def questionMessage(self) -> Global___Message.FutureProofMessage: ... + def deriveAttachmentPrimaryKeySecret(self) -> Global___DeriveAttachmentPrimaryKeySecretInput: ... @_builtins.property - def messageHistoryNotice(self) -> Global___Message.MessageHistoryNotice: ... + def minosOpenInitialEpoch(self) -> Global___MinosOpenInitialEpochInput: ... @_builtins.property - def groupStatusMessageV2(self) -> Global___Message.FutureProofMessage: ... + def minosOpenEpoch(self) -> Global___MinosOpenEpochInput: ... @_builtins.property - def botForwardedMessage(self) -> Global___Message.FutureProofMessage: ... + def minosValidateEpoch(self) -> Global___MinosValidateEpochInput: ... @_builtins.property - def statusQuestionAnswerMessage(self) -> Global___Message.StatusQuestionAnswerMessage: ... + def minosVerifySingleEpoch(self) -> Global___MinosVerifySingleEpochInput: ... @_builtins.property - def questionReplyMessage(self) -> Global___Message.FutureProofMessage: ... + def minosThreadIdFromOneToOneThread(self) -> Global___MinosThreadIdFromOneToOneThreadInput: ... @_builtins.property - def questionResponseMessage(self) -> Global___Message.QuestionResponseMessage: ... + def minosThreadIdFromActThreadId(self) -> Global___MinosThreadIdFromActThreadIdInput: ... @_builtins.property - def statusQuotedMessage(self) -> Global___Message.StatusQuotedMessage: ... + def mandrakeOpenEpoch(self) -> Global___MandrakeOpenEpochInput: ... @_builtins.property - def statusStickerInteractionMessage(self) -> Global___Message.StatusStickerInteractionMessage: ... + def mandrakeEncryptMek(self) -> Global___MandrakeEncryptMekInput: ... @_builtins.property - def pollCreationMessageV5(self) -> Global___Message.PollCreationMessage: ... + def mandrakeDecryptMek(self) -> Global___MandrakeDecryptMekInput: ... @_builtins.property - def newsletterFollowerInviteMessageV2(self) -> Global___Message.NewsletterFollowerInviteMessage: ... + def mandrakeOpenInitialEpoch(self) -> Global___MandrakeOpenInitialEpochInput: ... @_builtins.property - def pollResultSnapshotMessageV3(self) -> Global___Message.PollResultSnapshotMessage: ... + def mandrakeValidateNewMmkFromMailbox(self) -> Global___MandrakeValidateNewMmkFromMailboxInput: ... @_builtins.property - def newsletterAdminProfileMessage(self) -> Global___Message.FutureProofMessage: ... + def mandrakeValidateNewMmkFromDetachedDevice(self) -> Global___MandrakeValidateNewMmkFromDetachedDeviceInput: ... @_builtins.property - def newsletterAdminProfileMessageV2(self) -> Global___Message.FutureProofMessage: ... + def deriveMessagingMailboxKeypairs(self) -> Global___DeriveMessagingMailboxKeypairsInput: ... @_builtins.property - def spoilerMessage(self) -> Global___Message.FutureProofMessage: ... + def decryptSelfMmkDistribution(self) -> Global___DecryptSelfMmkDistributionInput: ... + def __init__( + self, + *, + encryptAndSignMessage: Global___MinosEncryptAndSignMessageInput | None = ..., + decryptAndVerifyMessage: Global___MinosDecryptAndVerifyMessageInput | None = ..., + generateMek: Global___GenerateMekInput | None = ..., + generateMekRosterHash: Global___GenerateMekRosterHashInput | None = ..., + encryptMekForDistribution: Global___EncryptMekForDistributionInput | None = ..., + decryptMekForDistribution: Global___DecryptMekForDistributionInput | None = ..., + encryptMeksForDistributionFromTransportSender: Global___EncryptMeksForDistributionFromTransportSenderInput | None = ..., + decryptMekForDistributionFromTransportSender: Global___DecryptMekForDistributionFromTransportSenderInput | None = ..., + wrapTransportSigningPublicKey: Global___WrapTransportSigningPublicKeyInput | None = ..., + wrapTransportSigningSecretKey: Global___WrapTransportSigningSecretKeyInput | None = ..., + deriveMailboxSigningKeypair: Global___DeriveMailboxSigningKeypairInput | None = ..., + deriveMailboxEncryptionKeypair: Global___DeriveMailboxEncryptionKeypairInput | None = ..., + deriveMailboxAuthKeypair: Global___DeriveMailboxAuthKeypairInput | None = ..., + deriveAttachmentAccessTokenSecret: Global___DeriveAttachmentAccessTokenSecretInput | None = ..., + deriveAttachmentPrimaryKeySecret: Global___DeriveAttachmentPrimaryKeySecretInput | None = ..., + minosOpenInitialEpoch: Global___MinosOpenInitialEpochInput | None = ..., + minosOpenEpoch: Global___MinosOpenEpochInput | None = ..., + minosValidateEpoch: Global___MinosValidateEpochInput | None = ..., + minosVerifySingleEpoch: Global___MinosVerifySingleEpochInput | None = ..., + minosThreadIdFromOneToOneThread: Global___MinosThreadIdFromOneToOneThreadInput | None = ..., + minosThreadIdFromActThreadId: Global___MinosThreadIdFromActThreadIdInput | None = ..., + mandrakeOpenEpoch: Global___MandrakeOpenEpochInput | None = ..., + mandrakeEncryptMek: Global___MandrakeEncryptMekInput | None = ..., + mandrakeDecryptMek: Global___MandrakeDecryptMekInput | None = ..., + mandrakeOpenInitialEpoch: Global___MandrakeOpenInitialEpochInput | None = ..., + mandrakeValidateNewMmkFromMailbox: Global___MandrakeValidateNewMmkFromMailboxInput | None = ..., + mandrakeValidateNewMmkFromDetachedDevice: Global___MandrakeValidateNewMmkFromDetachedDeviceInput | None = ..., + deriveMessagingMailboxKeypairs: Global___DeriveMessagingMailboxKeypairsInput | None = ..., + decryptSelfMmkDistribution: Global___DecryptSelfMmkDistributionInput | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["commandInput", b"commandInput", "decryptAndVerifyMessage", b"decryptAndVerifyMessage", "decryptMekForDistribution", b"decryptMekForDistribution", "decryptMekForDistributionFromTransportSender", b"decryptMekForDistributionFromTransportSender", "decryptSelfMmkDistribution", b"decryptSelfMmkDistribution", "deriveAttachmentAccessTokenSecret", b"deriveAttachmentAccessTokenSecret", "deriveAttachmentPrimaryKeySecret", b"deriveAttachmentPrimaryKeySecret", "deriveMailboxAuthKeypair", b"deriveMailboxAuthKeypair", "deriveMailboxEncryptionKeypair", b"deriveMailboxEncryptionKeypair", "deriveMailboxSigningKeypair", b"deriveMailboxSigningKeypair", "deriveMessagingMailboxKeypairs", b"deriveMessagingMailboxKeypairs", "encryptAndSignMessage", b"encryptAndSignMessage", "encryptMekForDistribution", b"encryptMekForDistribution", "encryptMeksForDistributionFromTransportSender", b"encryptMeksForDistributionFromTransportSender", "generateMek", b"generateMek", "generateMekRosterHash", b"generateMekRosterHash", "mandrakeDecryptMek", b"mandrakeDecryptMek", "mandrakeEncryptMek", b"mandrakeEncryptMek", "mandrakeOpenEpoch", b"mandrakeOpenEpoch", "mandrakeOpenInitialEpoch", b"mandrakeOpenInitialEpoch", "mandrakeValidateNewMmkFromDetachedDevice", b"mandrakeValidateNewMmkFromDetachedDevice", "mandrakeValidateNewMmkFromMailbox", b"mandrakeValidateNewMmkFromMailbox", "minosOpenEpoch", b"minosOpenEpoch", "minosOpenInitialEpoch", b"minosOpenInitialEpoch", "minosThreadIdFromActThreadId", b"minosThreadIdFromActThreadId", "minosThreadIdFromOneToOneThread", b"minosThreadIdFromOneToOneThread", "minosValidateEpoch", b"minosValidateEpoch", "minosVerifySingleEpoch", b"minosVerifySingleEpoch", "wrapTransportSigningPublicKey", b"wrapTransportSigningPublicKey", "wrapTransportSigningSecretKey", b"wrapTransportSigningSecretKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commandInput", b"commandInput", "decryptAndVerifyMessage", b"decryptAndVerifyMessage", "decryptMekForDistribution", b"decryptMekForDistribution", "decryptMekForDistributionFromTransportSender", b"decryptMekForDistributionFromTransportSender", "decryptSelfMmkDistribution", b"decryptSelfMmkDistribution", "deriveAttachmentAccessTokenSecret", b"deriveAttachmentAccessTokenSecret", "deriveAttachmentPrimaryKeySecret", b"deriveAttachmentPrimaryKeySecret", "deriveMailboxAuthKeypair", b"deriveMailboxAuthKeypair", "deriveMailboxEncryptionKeypair", b"deriveMailboxEncryptionKeypair", "deriveMailboxSigningKeypair", b"deriveMailboxSigningKeypair", "deriveMessagingMailboxKeypairs", b"deriveMessagingMailboxKeypairs", "encryptAndSignMessage", b"encryptAndSignMessage", "encryptMekForDistribution", b"encryptMekForDistribution", "encryptMeksForDistributionFromTransportSender", b"encryptMeksForDistributionFromTransportSender", "generateMek", b"generateMek", "generateMekRosterHash", b"generateMekRosterHash", "mandrakeDecryptMek", b"mandrakeDecryptMek", "mandrakeEncryptMek", b"mandrakeEncryptMek", "mandrakeOpenEpoch", b"mandrakeOpenEpoch", "mandrakeOpenInitialEpoch", b"mandrakeOpenInitialEpoch", "mandrakeValidateNewMmkFromDetachedDevice", b"mandrakeValidateNewMmkFromDetachedDevice", "mandrakeValidateNewMmkFromMailbox", b"mandrakeValidateNewMmkFromMailbox", "minosOpenEpoch", b"minosOpenEpoch", "minosOpenInitialEpoch", b"minosOpenInitialEpoch", "minosThreadIdFromActThreadId", b"minosThreadIdFromActThreadId", "minosThreadIdFromOneToOneThread", b"minosThreadIdFromOneToOneThread", "minosValidateEpoch", b"minosValidateEpoch", "minosVerifySingleEpoch", b"minosVerifySingleEpoch", "wrapTransportSigningPublicKey", b"wrapTransportSigningPublicKey", "wrapTransportSigningSecretKey", b"wrapTransportSigningSecretKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_commandInput: _TypeAlias = _typing.Literal["encryptAndSignMessage", "decryptAndVerifyMessage", "generateMek", "generateMekRosterHash", "encryptMekForDistribution", "decryptMekForDistribution", "encryptMeksForDistributionFromTransportSender", "decryptMekForDistributionFromTransportSender", "wrapTransportSigningPublicKey", "wrapTransportSigningSecretKey", "deriveMailboxSigningKeypair", "deriveMailboxEncryptionKeypair", "deriveMailboxAuthKeypair", "deriveAttachmentAccessTokenSecret", "deriveAttachmentPrimaryKeySecret", "minosOpenInitialEpoch", "minosOpenEpoch", "minosValidateEpoch", "minosVerifySingleEpoch", "minosThreadIdFromOneToOneThread", "minosThreadIdFromActThreadId", "mandrakeOpenEpoch", "mandrakeEncryptMek", "mandrakeDecryptMek", "mandrakeOpenInitialEpoch", "mandrakeValidateNewMmkFromMailbox", "mandrakeValidateNewMmkFromDetachedDevice", "deriveMessagingMailboxKeypairs", "decryptSelfMmkDistribution"] # noqa: Y015 + _WhichOneofArgType_commandInput: _TypeAlias = _typing.Literal["commandInput", b"commandInput"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_commandInput) -> _WhichOneofReturnType_commandInput | None: ... + +Global___MinosCommand: _TypeAlias = MinosCommand # noqa: Y015 + +@_typing.final +class MinosDecryptAndVerifyMessageInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + TRANSPORTSIGNINGPK_FIELD_NUMBER: _builtins.int + MEK_FIELD_NUMBER: _builtins.int + ENCRYPTEDMESSAGECIPHERTEXT_FIELD_NUMBER: _builtins.int + ENCRYPTEDMESSAGESIGNATURE_FIELD_NUMBER: _builtins.int + METADATA_FIELD_NUMBER: _builtins.int + MESSAGEENCRYPTIONVERSION_FIELD_NUMBER: _builtins.int + CONF_FIELD_NUMBER: _builtins.int + transportSigningPk: _builtins.bytes + mek: _builtins.bytes + encryptedMessageCiphertext: _builtins.bytes + encryptedMessageSignature: _builtins.bytes + messageEncryptionVersion: _builtins.int @_builtins.property - def pollCreationMessageV6(self) -> Global___Message.PollCreationMessage: ... + def metadata(self) -> Global___MinosMessageMetadata: ... @_builtins.property - def conditionalRevealMessage(self) -> Global___Message.ConditionalRevealMessage: ... + def conf(self) -> Global___MinosClientConfig: ... + def __init__( + self, + *, + transportSigningPk: _builtins.bytes | None = ..., + mek: _builtins.bytes | None = ..., + encryptedMessageCiphertext: _builtins.bytes | None = ..., + encryptedMessageSignature: _builtins.bytes | None = ..., + metadata: Global___MinosMessageMetadata | None = ..., + messageEncryptionVersion: _builtins.int | None = ..., + conf: Global___MinosClientConfig | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "encryptedMessageCiphertext", b"encryptedMessageCiphertext", "encryptedMessageSignature", b"encryptedMessageSignature", "mek", b"mek", "messageEncryptionVersion", b"messageEncryptionVersion", "metadata", b"metadata", "transportSigningPk", b"transportSigningPk"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "encryptedMessageCiphertext", b"encryptedMessageCiphertext", "encryptedMessageSignature", b"encryptedMessageSignature", "mek", b"mek", "messageEncryptionVersion", b"messageEncryptionVersion", "metadata", b"metadata", "transportSigningPk", b"transportSigningPk"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MinosDecryptAndVerifyMessageInput: _TypeAlias = MinosDecryptAndVerifyMessageInput # noqa: Y015 + +@_typing.final +class MinosDecryptAndVerifyMessageResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + SUCCESS_FIELD_NUMBER: _builtins.int + ERRORMESSAGE_FIELD_NUMBER: _builtins.int + errorMessage: _builtins.str @_builtins.property - def pollAddOptionMessage(self) -> Global___Message.PollAddOptionMessage: ... + def success(self) -> Global___MinosDecryptAndVerifyMessageSuccess: ... + def __init__( + self, + *, + success: Global___MinosDecryptAndVerifyMessageSuccess | None = ..., + errorMessage: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "success", b"success"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["success", "errorMessage"] # noqa: Y015 + _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ... + +Global___MinosDecryptAndVerifyMessageResult: _TypeAlias = MinosDecryptAndVerifyMessageResult # noqa: Y015 + +@_typing.final +class MinosDecryptAndVerifyMessageSuccess(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + PLAINTEXT_FIELD_NUMBER: _builtins.int + plaintext: _builtins.bytes + def __init__( + self, + *, + plaintext: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["plaintext", b"plaintext"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["plaintext", b"plaintext"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MinosDecryptAndVerifyMessageSuccess: _TypeAlias = MinosDecryptAndVerifyMessageSuccess # noqa: Y015 + +@_typing.final +class MinosEncryptAndSignMessageInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + TRANSPORTSIGNINGSK_FIELD_NUMBER: _builtins.int + MEK_FIELD_NUMBER: _builtins.int + PLAINTEXT_FIELD_NUMBER: _builtins.int + METADATA_FIELD_NUMBER: _builtins.int + TRANSPORTSIGNINGPK_FIELD_NUMBER: _builtins.int + CONF_FIELD_NUMBER: _builtins.int + transportSigningSk: _builtins.bytes + mek: _builtins.bytes + plaintext: _builtins.bytes + transportSigningPk: _builtins.bytes @_builtins.property - def eventInviteMessage(self) -> Global___Message.EventInviteMessage: ... + def metadata(self) -> Global___MinosMessageMetadata: ... @_builtins.property - def groupRootKeyShare(self) -> Global___GroupRootKeyShare: ... + def conf(self) -> Global___MinosClientConfig: ... + def __init__( + self, + *, + transportSigningSk: _builtins.bytes | None = ..., + mek: _builtins.bytes | None = ..., + plaintext: _builtins.bytes | None = ..., + metadata: Global___MinosMessageMetadata | None = ..., + transportSigningPk: _builtins.bytes | None = ..., + conf: Global___MinosClientConfig | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "mek", b"mek", "metadata", b"metadata", "plaintext", b"plaintext", "transportSigningPk", b"transportSigningPk", "transportSigningSk", b"transportSigningSk"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["conf", b"conf", "mek", b"mek", "metadata", b"metadata", "plaintext", b"plaintext", "transportSigningPk", b"transportSigningPk", "transportSigningSk", b"transportSigningSk"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MinosEncryptAndSignMessageInput: _TypeAlias = MinosEncryptAndSignMessageInput # noqa: Y015 + +@_typing.final +class MinosEncryptAndSignMessageResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + CIPHERTEXT_FIELD_NUMBER: _builtins.int + SIGNATURE_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + ciphertext: _builtins.bytes + signature: _builtins.bytes + version: _builtins.int + def __init__( + self, + *, + ciphertext: _builtins.bytes | None = ..., + signature: _builtins.bytes | None = ..., + version: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "signature", b"signature", "version", b"version"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "signature", b"signature", "version", b"version"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MinosEncryptAndSignMessageResult: _TypeAlias = MinosEncryptAndSignMessageResult # noqa: Y015 + +@_typing.final +class MinosMessageMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + MEKID_FIELD_NUMBER: _builtins.int + TIMESTAMP_FIELD_NUMBER: _builtins.int + MESSAGEID_FIELD_NUMBER: _builtins.int + THREADID_FIELD_NUMBER: _builtins.int + mekId: _builtins.bytes + timestamp: _builtins.int + messageId: _builtins.str + threadId: _builtins.bytes + def __init__( + self, + *, + mekId: _builtins.bytes | None = ..., + timestamp: _builtins.int | None = ..., + messageId: _builtins.str | None = ..., + threadId: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["mekId", b"mekId", "messageId", b"messageId", "threadId", b"threadId", "timestamp", b"timestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["mekId", b"mekId", "messageId", b"messageId", "threadId", b"threadId", "timestamp", b"timestamp"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MinosMessageMetadata: _TypeAlias = MinosMessageMetadata # noqa: Y015 + +@_typing.final +class MinosOpenEpochInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + USERFBID_FIELD_NUMBER: _builtins.int + EPOCHNUMBER_FIELD_NUMBER: _builtins.int + EXPORTROOTKEY_FIELD_NUMBER: _builtins.int + PREVIOUSEXPORTROOTKEY_FIELD_NUMBER: _builtins.int + PREVIOUSEPOCHNUMBER_FIELD_NUMBER: _builtins.int + PREVIOUSEPOCHHEAD_FIELD_NUMBER: _builtins.int + userFbid: _builtins.str + epochNumber: _builtins.int + exportRootKey: _builtins.bytes + previousExportRootKey: _builtins.bytes + previousEpochNumber: _builtins.int + previousEpochHead: _builtins.bytes + def __init__( + self, + *, + userFbid: _builtins.str | None = ..., + epochNumber: _builtins.int | None = ..., + exportRootKey: _builtins.bytes | None = ..., + previousExportRootKey: _builtins.bytes | None = ..., + previousEpochNumber: _builtins.int | None = ..., + previousEpochHead: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey", "previousEpochHead", b"previousEpochHead", "previousEpochNumber", b"previousEpochNumber", "previousExportRootKey", b"previousExportRootKey", "userFbid", b"userFbid"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey", "previousEpochHead", b"previousEpochHead", "previousEpochNumber", b"previousEpochNumber", "previousExportRootKey", b"previousExportRootKey", "userFbid", b"userFbid"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MinosOpenEpochInput: _TypeAlias = MinosOpenEpochInput # noqa: Y015 + +@_typing.final +class MinosOpenEpochResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + MINOSSIGNEDEPOCH_FIELD_NUMBER: _builtins.int @_builtins.property - def paymentReminderMessage(self) -> Global___Message.PaymentReminderMessage: ... + def minosSignedEpoch(self) -> Global___MinosSignedEpoch: ... + def __init__( + self, + *, + minosSignedEpoch: Global___MinosSignedEpoch | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["minosSignedEpoch", b"minosSignedEpoch"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["minosSignedEpoch", b"minosSignedEpoch"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MinosOpenEpochResult: _TypeAlias = MinosOpenEpochResult # noqa: Y015 + +@_typing.final +class MinosOpenInitialEpochInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + USERFBID_FIELD_NUMBER: _builtins.int + EPOCHNUMBER_FIELD_NUMBER: _builtins.int + EXPORTROOTKEY_FIELD_NUMBER: _builtins.int + userFbid: _builtins.str + epochNumber: _builtins.int + exportRootKey: _builtins.bytes + def __init__( + self, + *, + userFbid: _builtins.str | None = ..., + epochNumber: _builtins.int | None = ..., + exportRootKey: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey", "userFbid", b"userFbid"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["epochNumber", b"epochNumber", "exportRootKey", b"exportRootKey", "userFbid", b"userFbid"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MinosOpenInitialEpochInput: _TypeAlias = MinosOpenInitialEpochInput # noqa: Y015 + +@_typing.final +class MinosOpenInitialEpochResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + MINOSSIGNEDEPOCH_FIELD_NUMBER: _builtins.int @_builtins.property - def splitPaymentMessage(self) -> Global___Message.SplitPaymentMessage: ... + def minosSignedEpoch(self) -> Global___MinosSignedEpoch: ... + def __init__( + self, + *, + minosSignedEpoch: Global___MinosSignedEpoch | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["minosSignedEpoch", b"minosSignedEpoch"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["minosSignedEpoch", b"minosSignedEpoch"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MinosOpenInitialEpochResult: _TypeAlias = MinosOpenInitialEpochResult # noqa: Y015 + +@_typing.final +class MinosSignedEpoch(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + EPOCHPUBLICDATA_FIELD_NUMBER: _builtins.int + SIGNATURES_FIELD_NUMBER: _builtins.int + EPOCHHEAD_FIELD_NUMBER: _builtins.int + epochHead: _builtins.bytes @_builtins.property - def newsletterAdminProfileStatusMessage(self) -> Global___Message.FutureProofMessage: ... + def epochPublicData(self) -> Global___EpochPublicData: ... @_builtins.property - def rootSecretDistributeMessage(self) -> Global___Message.RootSecretDistributeMessage: ... + def signatures(self) -> Global___EpochSignatures: ... def __init__( self, *, - conversation: _builtins.str | None = ..., - senderKeyDistributionMessage: Global___Message.SenderKeyDistributionMessage | None = ..., - imageMessage: Global___Message.ImageMessage | None = ..., - contactMessage: Global___Message.ContactMessage | None = ..., - locationMessage: Global___Message.LocationMessage | None = ..., - extendedTextMessage: Global___Message.ExtendedTextMessage | None = ..., - documentMessage: Global___Message.DocumentMessage | None = ..., - audioMessage: Global___Message.AudioMessage | None = ..., - videoMessage: Global___Message.VideoMessage | None = ..., - call: Global___Message.Call | None = ..., - chat: Global___Message.Chat | None = ..., - protocolMessage: Global___Message.ProtocolMessage | None = ..., - contactsArrayMessage: Global___Message.ContactsArrayMessage | None = ..., - highlyStructuredMessage: Global___Message.HighlyStructuredMessage | None = ..., - fastRatchetKeySenderKeyDistributionMessage: Global___Message.SenderKeyDistributionMessage | None = ..., - sendPaymentMessage: Global___Message.SendPaymentMessage | None = ..., - liveLocationMessage: Global___Message.LiveLocationMessage | None = ..., - requestPaymentMessage: Global___Message.RequestPaymentMessage | None = ..., - declinePaymentRequestMessage: Global___Message.DeclinePaymentRequestMessage | None = ..., - cancelPaymentRequestMessage: Global___Message.CancelPaymentRequestMessage | None = ..., - templateMessage: Global___Message.TemplateMessage | None = ..., - stickerMessage: Global___Message.StickerMessage | None = ..., - groupInviteMessage: Global___Message.GroupInviteMessage | None = ..., - templateButtonReplyMessage: Global___Message.TemplateButtonReplyMessage | None = ..., - productMessage: Global___Message.ProductMessage | None = ..., - deviceSentMessage: Global___Message.DeviceSentMessage | None = ..., - messageContextInfo: Global___MessageContextInfo | None = ..., - listMessage: Global___Message.ListMessage | None = ..., - viewOnceMessage: Global___Message.FutureProofMessage | None = ..., - orderMessage: Global___Message.OrderMessage | None = ..., - listResponseMessage: Global___Message.ListResponseMessage | None = ..., - ephemeralMessage: Global___Message.FutureProofMessage | None = ..., - invoiceMessage: Global___Message.InvoiceMessage | None = ..., - buttonsMessage: Global___Message.ButtonsMessage | None = ..., - buttonsResponseMessage: Global___Message.ButtonsResponseMessage | None = ..., - paymentInviteMessage: Global___Message.PaymentInviteMessage | None = ..., - interactiveMessage: Global___Message.InteractiveMessage | None = ..., - reactionMessage: Global___Message.ReactionMessage | None = ..., - stickerSyncRmrMessage: Global___Message.StickerSyncRMRMessage | None = ..., - interactiveResponseMessage: Global___Message.InteractiveResponseMessage | None = ..., - pollCreationMessage: Global___Message.PollCreationMessage | None = ..., - pollUpdateMessage: Global___Message.PollUpdateMessage | None = ..., - keepInChatMessage: Global___Message.KeepInChatMessage | None = ..., - documentWithCaptionMessage: Global___Message.FutureProofMessage | None = ..., - requestPhoneNumberMessage: Global___Message.RequestPhoneNumberMessage | None = ..., - viewOnceMessageV2: Global___Message.FutureProofMessage | None = ..., - encReactionMessage: Global___Message.EncReactionMessage | None = ..., - editedMessage: Global___Message.FutureProofMessage | None = ..., - viewOnceMessageV2Extension: Global___Message.FutureProofMessage | None = ..., - pollCreationMessageV2: Global___Message.PollCreationMessage | None = ..., - scheduledCallCreationMessage: Global___Message.ScheduledCallCreationMessage | None = ..., - groupMentionedMessage: Global___Message.FutureProofMessage | None = ..., - pinInChatMessage: Global___Message.PinInChatMessage | None = ..., - pollCreationMessageV3: Global___Message.PollCreationMessage | None = ..., - scheduledCallEditMessage: Global___Message.ScheduledCallEditMessage | None = ..., - ptvMessage: Global___Message.VideoMessage | None = ..., - botInvokeMessage: Global___Message.FutureProofMessage | None = ..., - callLogMesssage: Global___Message.CallLogMessage | None = ..., - messageHistoryBundle: Global___Message.MessageHistoryBundle | None = ..., - encCommentMessage: Global___Message.EncCommentMessage | None = ..., - bcallMessage: Global___Message.BCallMessage | None = ..., - lottieStickerMessage: Global___Message.FutureProofMessage | None = ..., - eventMessage: Global___Message.EventMessage | None = ..., - encEventResponseMessage: Global___Message.EncEventResponseMessage | None = ..., - commentMessage: Global___Message.CommentMessage | None = ..., - newsletterAdminInviteMessage: Global___Message.NewsletterAdminInviteMessage | None = ..., - placeholderMessage: Global___Message.PlaceholderMessage | None = ..., - secretEncryptedMessage: Global___Message.SecretEncryptedMessage | None = ..., - albumMessage: Global___Message.AlbumMessage | None = ..., - eventCoverImage: Global___Message.FutureProofMessage | None = ..., - stickerPackMessage: Global___Message.StickerPackMessage | None = ..., - statusMentionMessage: Global___Message.FutureProofMessage | None = ..., - pollResultSnapshotMessage: Global___Message.PollResultSnapshotMessage | None = ..., - pollCreationOptionImageMessage: Global___Message.FutureProofMessage | None = ..., - associatedChildMessage: Global___Message.FutureProofMessage | None = ..., - groupStatusMentionMessage: Global___Message.FutureProofMessage | None = ..., - pollCreationMessageV4: Global___Message.FutureProofMessage | None = ..., - statusAddYours: Global___Message.FutureProofMessage | None = ..., - groupStatusMessage: Global___Message.FutureProofMessage | None = ..., - richResponseMessage: Global___AIRichResponseMessage | None = ..., - statusNotificationMessage: Global___Message.StatusNotificationMessage | None = ..., - limitSharingMessage: Global___Message.FutureProofMessage | None = ..., - botTaskMessage: Global___Message.FutureProofMessage | None = ..., - questionMessage: Global___Message.FutureProofMessage | None = ..., - messageHistoryNotice: Global___Message.MessageHistoryNotice | None = ..., - groupStatusMessageV2: Global___Message.FutureProofMessage | None = ..., - botForwardedMessage: Global___Message.FutureProofMessage | None = ..., - statusQuestionAnswerMessage: Global___Message.StatusQuestionAnswerMessage | None = ..., - questionReplyMessage: Global___Message.FutureProofMessage | None = ..., - questionResponseMessage: Global___Message.QuestionResponseMessage | None = ..., - statusQuotedMessage: Global___Message.StatusQuotedMessage | None = ..., - statusStickerInteractionMessage: Global___Message.StatusStickerInteractionMessage | None = ..., - pollCreationMessageV5: Global___Message.PollCreationMessage | None = ..., - newsletterFollowerInviteMessageV2: Global___Message.NewsletterFollowerInviteMessage | None = ..., - pollResultSnapshotMessageV3: Global___Message.PollResultSnapshotMessage | None = ..., - newsletterAdminProfileMessage: Global___Message.FutureProofMessage | None = ..., - newsletterAdminProfileMessageV2: Global___Message.FutureProofMessage | None = ..., - spoilerMessage: Global___Message.FutureProofMessage | None = ..., - pollCreationMessageV6: Global___Message.PollCreationMessage | None = ..., - conditionalRevealMessage: Global___Message.ConditionalRevealMessage | None = ..., - pollAddOptionMessage: Global___Message.PollAddOptionMessage | None = ..., - eventInviteMessage: Global___Message.EventInviteMessage | None = ..., - groupRootKeyShare: Global___GroupRootKeyShare | None = ..., - paymentReminderMessage: Global___Message.PaymentReminderMessage | None = ..., - splitPaymentMessage: Global___Message.SplitPaymentMessage | None = ..., - newsletterAdminProfileStatusMessage: Global___Message.FutureProofMessage | None = ..., - rootSecretDistributeMessage: Global___Message.RootSecretDistributeMessage | None = ..., + epochPublicData: Global___EpochPublicData | None = ..., + signatures: Global___EpochSignatures | None = ..., + epochHead: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["epochHead", b"epochHead", "epochPublicData", b"epochPublicData", "signatures", b"signatures"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["epochHead", b"epochHead", "epochPublicData", b"epochPublicData", "signatures", b"signatures"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MinosSignedEpoch: _TypeAlias = MinosSignedEpoch # noqa: Y015 + +@_typing.final +class MinosThreadIdFromActThreadIdInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + ACTTHREADID_FIELD_NUMBER: _builtins.int + actThreadId: _builtins.str + def __init__( + self, + *, + actThreadId: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["actThreadId", b"actThreadId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["actThreadId", b"actThreadId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___MinosThreadIdFromActThreadIdInput: _TypeAlias = MinosThreadIdFromActThreadIdInput # noqa: Y015 + +@_typing.final +class MinosThreadIdFromActThreadIdResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + THREADID_FIELD_NUMBER: _builtins.int + threadId: _builtins.bytes + def __init__( + self, + *, + threadId: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["albumMessage", b"albumMessage", "associatedChildMessage", b"associatedChildMessage", "audioMessage", b"audioMessage", "bcallMessage", b"bcallMessage", "botForwardedMessage", b"botForwardedMessage", "botInvokeMessage", b"botInvokeMessage", "botTaskMessage", b"botTaskMessage", "buttonsMessage", b"buttonsMessage", "buttonsResponseMessage", b"buttonsResponseMessage", "call", b"call", "callLogMesssage", b"callLogMesssage", "cancelPaymentRequestMessage", b"cancelPaymentRequestMessage", "chat", b"chat", "commentMessage", b"commentMessage", "conditionalRevealMessage", b"conditionalRevealMessage", "contactMessage", b"contactMessage", "contactsArrayMessage", b"contactsArrayMessage", "conversation", b"conversation", "declinePaymentRequestMessage", b"declinePaymentRequestMessage", "deviceSentMessage", b"deviceSentMessage", "documentMessage", b"documentMessage", "documentWithCaptionMessage", b"documentWithCaptionMessage", "editedMessage", b"editedMessage", "encCommentMessage", b"encCommentMessage", "encEventResponseMessage", b"encEventResponseMessage", "encReactionMessage", b"encReactionMessage", "ephemeralMessage", b"ephemeralMessage", "eventCoverImage", b"eventCoverImage", "eventInviteMessage", b"eventInviteMessage", "eventMessage", b"eventMessage", "extendedTextMessage", b"extendedTextMessage", "fastRatchetKeySenderKeyDistributionMessage", b"fastRatchetKeySenderKeyDistributionMessage", "groupInviteMessage", b"groupInviteMessage", "groupMentionedMessage", b"groupMentionedMessage", "groupRootKeyShare", b"groupRootKeyShare", "groupStatusMentionMessage", b"groupStatusMentionMessage", "groupStatusMessage", b"groupStatusMessage", "groupStatusMessageV2", b"groupStatusMessageV2", "highlyStructuredMessage", b"highlyStructuredMessage", "imageMessage", b"imageMessage", "interactiveMessage", b"interactiveMessage", "interactiveResponseMessage", b"interactiveResponseMessage", "invoiceMessage", b"invoiceMessage", "keepInChatMessage", b"keepInChatMessage", "limitSharingMessage", b"limitSharingMessage", "listMessage", b"listMessage", "listResponseMessage", b"listResponseMessage", "liveLocationMessage", b"liveLocationMessage", "locationMessage", b"locationMessage", "lottieStickerMessage", b"lottieStickerMessage", "messageContextInfo", b"messageContextInfo", "messageHistoryBundle", b"messageHistoryBundle", "messageHistoryNotice", b"messageHistoryNotice", "newsletterAdminInviteMessage", b"newsletterAdminInviteMessage", "newsletterAdminProfileMessage", b"newsletterAdminProfileMessage", "newsletterAdminProfileMessageV2", b"newsletterAdminProfileMessageV2", "newsletterAdminProfileStatusMessage", b"newsletterAdminProfileStatusMessage", "newsletterFollowerInviteMessageV2", b"newsletterFollowerInviteMessageV2", "orderMessage", b"orderMessage", "paymentInviteMessage", b"paymentInviteMessage", "paymentReminderMessage", b"paymentReminderMessage", "pinInChatMessage", b"pinInChatMessage", "placeholderMessage", b"placeholderMessage", "pollAddOptionMessage", b"pollAddOptionMessage", "pollCreationMessage", b"pollCreationMessage", "pollCreationMessageV2", b"pollCreationMessageV2", "pollCreationMessageV3", b"pollCreationMessageV3", "pollCreationMessageV4", b"pollCreationMessageV4", "pollCreationMessageV5", b"pollCreationMessageV5", "pollCreationMessageV6", b"pollCreationMessageV6", "pollCreationOptionImageMessage", b"pollCreationOptionImageMessage", "pollResultSnapshotMessage", b"pollResultSnapshotMessage", "pollResultSnapshotMessageV3", b"pollResultSnapshotMessageV3", "pollUpdateMessage", b"pollUpdateMessage", "productMessage", b"productMessage", "protocolMessage", b"protocolMessage", "ptvMessage", b"ptvMessage", "questionMessage", b"questionMessage", "questionReplyMessage", b"questionReplyMessage", "questionResponseMessage", b"questionResponseMessage", "reactionMessage", b"reactionMessage", "requestPaymentMessage", b"requestPaymentMessage", "requestPhoneNumberMessage", b"requestPhoneNumberMessage", "richResponseMessage", b"richResponseMessage", "rootSecretDistributeMessage", b"rootSecretDistributeMessage", "scheduledCallCreationMessage", b"scheduledCallCreationMessage", "scheduledCallEditMessage", b"scheduledCallEditMessage", "secretEncryptedMessage", b"secretEncryptedMessage", "sendPaymentMessage", b"sendPaymentMessage", "senderKeyDistributionMessage", b"senderKeyDistributionMessage", "splitPaymentMessage", b"splitPaymentMessage", "spoilerMessage", b"spoilerMessage", "statusAddYours", b"statusAddYours", "statusMentionMessage", b"statusMentionMessage", "statusNotificationMessage", b"statusNotificationMessage", "statusQuestionAnswerMessage", b"statusQuestionAnswerMessage", "statusQuotedMessage", b"statusQuotedMessage", "statusStickerInteractionMessage", b"statusStickerInteractionMessage", "stickerMessage", b"stickerMessage", "stickerPackMessage", b"stickerPackMessage", "stickerSyncRmrMessage", b"stickerSyncRmrMessage", "templateButtonReplyMessage", b"templateButtonReplyMessage", "templateMessage", b"templateMessage", "videoMessage", b"videoMessage", "viewOnceMessage", b"viewOnceMessage", "viewOnceMessageV2", b"viewOnceMessageV2", "viewOnceMessageV2Extension", b"viewOnceMessageV2Extension"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["threadId", b"threadId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["albumMessage", b"albumMessage", "associatedChildMessage", b"associatedChildMessage", "audioMessage", b"audioMessage", "bcallMessage", b"bcallMessage", "botForwardedMessage", b"botForwardedMessage", "botInvokeMessage", b"botInvokeMessage", "botTaskMessage", b"botTaskMessage", "buttonsMessage", b"buttonsMessage", "buttonsResponseMessage", b"buttonsResponseMessage", "call", b"call", "callLogMesssage", b"callLogMesssage", "cancelPaymentRequestMessage", b"cancelPaymentRequestMessage", "chat", b"chat", "commentMessage", b"commentMessage", "conditionalRevealMessage", b"conditionalRevealMessage", "contactMessage", b"contactMessage", "contactsArrayMessage", b"contactsArrayMessage", "conversation", b"conversation", "declinePaymentRequestMessage", b"declinePaymentRequestMessage", "deviceSentMessage", b"deviceSentMessage", "documentMessage", b"documentMessage", "documentWithCaptionMessage", b"documentWithCaptionMessage", "editedMessage", b"editedMessage", "encCommentMessage", b"encCommentMessage", "encEventResponseMessage", b"encEventResponseMessage", "encReactionMessage", b"encReactionMessage", "ephemeralMessage", b"ephemeralMessage", "eventCoverImage", b"eventCoverImage", "eventInviteMessage", b"eventInviteMessage", "eventMessage", b"eventMessage", "extendedTextMessage", b"extendedTextMessage", "fastRatchetKeySenderKeyDistributionMessage", b"fastRatchetKeySenderKeyDistributionMessage", "groupInviteMessage", b"groupInviteMessage", "groupMentionedMessage", b"groupMentionedMessage", "groupRootKeyShare", b"groupRootKeyShare", "groupStatusMentionMessage", b"groupStatusMentionMessage", "groupStatusMessage", b"groupStatusMessage", "groupStatusMessageV2", b"groupStatusMessageV2", "highlyStructuredMessage", b"highlyStructuredMessage", "imageMessage", b"imageMessage", "interactiveMessage", b"interactiveMessage", "interactiveResponseMessage", b"interactiveResponseMessage", "invoiceMessage", b"invoiceMessage", "keepInChatMessage", b"keepInChatMessage", "limitSharingMessage", b"limitSharingMessage", "listMessage", b"listMessage", "listResponseMessage", b"listResponseMessage", "liveLocationMessage", b"liveLocationMessage", "locationMessage", b"locationMessage", "lottieStickerMessage", b"lottieStickerMessage", "messageContextInfo", b"messageContextInfo", "messageHistoryBundle", b"messageHistoryBundle", "messageHistoryNotice", b"messageHistoryNotice", "newsletterAdminInviteMessage", b"newsletterAdminInviteMessage", "newsletterAdminProfileMessage", b"newsletterAdminProfileMessage", "newsletterAdminProfileMessageV2", b"newsletterAdminProfileMessageV2", "newsletterAdminProfileStatusMessage", b"newsletterAdminProfileStatusMessage", "newsletterFollowerInviteMessageV2", b"newsletterFollowerInviteMessageV2", "orderMessage", b"orderMessage", "paymentInviteMessage", b"paymentInviteMessage", "paymentReminderMessage", b"paymentReminderMessage", "pinInChatMessage", b"pinInChatMessage", "placeholderMessage", b"placeholderMessage", "pollAddOptionMessage", b"pollAddOptionMessage", "pollCreationMessage", b"pollCreationMessage", "pollCreationMessageV2", b"pollCreationMessageV2", "pollCreationMessageV3", b"pollCreationMessageV3", "pollCreationMessageV4", b"pollCreationMessageV4", "pollCreationMessageV5", b"pollCreationMessageV5", "pollCreationMessageV6", b"pollCreationMessageV6", "pollCreationOptionImageMessage", b"pollCreationOptionImageMessage", "pollResultSnapshotMessage", b"pollResultSnapshotMessage", "pollResultSnapshotMessageV3", b"pollResultSnapshotMessageV3", "pollUpdateMessage", b"pollUpdateMessage", "productMessage", b"productMessage", "protocolMessage", b"protocolMessage", "ptvMessage", b"ptvMessage", "questionMessage", b"questionMessage", "questionReplyMessage", b"questionReplyMessage", "questionResponseMessage", b"questionResponseMessage", "reactionMessage", b"reactionMessage", "requestPaymentMessage", b"requestPaymentMessage", "requestPhoneNumberMessage", b"requestPhoneNumberMessage", "richResponseMessage", b"richResponseMessage", "rootSecretDistributeMessage", b"rootSecretDistributeMessage", "scheduledCallCreationMessage", b"scheduledCallCreationMessage", "scheduledCallEditMessage", b"scheduledCallEditMessage", "secretEncryptedMessage", b"secretEncryptedMessage", "sendPaymentMessage", b"sendPaymentMessage", "senderKeyDistributionMessage", b"senderKeyDistributionMessage", "splitPaymentMessage", b"splitPaymentMessage", "spoilerMessage", b"spoilerMessage", "statusAddYours", b"statusAddYours", "statusMentionMessage", b"statusMentionMessage", "statusNotificationMessage", b"statusNotificationMessage", "statusQuestionAnswerMessage", b"statusQuestionAnswerMessage", "statusQuotedMessage", b"statusQuotedMessage", "statusStickerInteractionMessage", b"statusStickerInteractionMessage", "stickerMessage", b"stickerMessage", "stickerPackMessage", b"stickerPackMessage", "stickerSyncRmrMessage", b"stickerSyncRmrMessage", "templateButtonReplyMessage", b"templateButtonReplyMessage", "templateMessage", b"templateMessage", "videoMessage", b"videoMessage", "viewOnceMessage", b"viewOnceMessage", "viewOnceMessageV2", b"viewOnceMessageV2", "viewOnceMessageV2Extension", b"viewOnceMessageV2Extension"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["threadId", b"threadId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___Message: _TypeAlias = Message # noqa: Y015 +Global___MinosThreadIdFromActThreadIdResult: _TypeAlias = MinosThreadIdFromActThreadIdResult # noqa: Y015 @_typing.final -class MessageAddOn(_message.Message): +class MinosThreadIdFromOneToOneThreadInput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _MessageAddOnType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + ACTTHREADID_FIELD_NUMBER: _builtins.int + SELFFBID_FIELD_NUMBER: _builtins.int + actThreadId: _builtins.str + selfFbid: _builtins.str + def __init__( + self, + *, + actThreadId: _builtins.str | None = ..., + selfFbid: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["actThreadId", b"actThreadId", "selfFbid", b"selfFbid"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["actThreadId", b"actThreadId", "selfFbid", b"selfFbid"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _MessageAddOnTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MessageAddOn._MessageAddOnType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNDEFINED: MessageAddOn._MessageAddOnType.ValueType # 0 - REACTION: MessageAddOn._MessageAddOnType.ValueType # 1 - EVENT_RESPONSE: MessageAddOn._MessageAddOnType.ValueType # 2 - POLL_UPDATE: MessageAddOn._MessageAddOnType.ValueType # 3 - PIN_IN_CHAT: MessageAddOn._MessageAddOnType.ValueType # 4 +Global___MinosThreadIdFromOneToOneThreadInput: _TypeAlias = MinosThreadIdFromOneToOneThreadInput # noqa: Y015 - class MessageAddOnType(_MessageAddOnType, metaclass=_MessageAddOnTypeEnumTypeWrapper): ... - UNDEFINED: MessageAddOn.MessageAddOnType.ValueType # 0 - REACTION: MessageAddOn.MessageAddOnType.ValueType # 1 - EVENT_RESPONSE: MessageAddOn.MessageAddOnType.ValueType # 2 - POLL_UPDATE: MessageAddOn.MessageAddOnType.ValueType # 3 - PIN_IN_CHAT: MessageAddOn.MessageAddOnType.ValueType # 4 +@_typing.final +class MinosThreadIdFromOneToOneThreadResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - MESSAGEADDONTYPE_FIELD_NUMBER: _builtins.int - MESSAGEADDON_FIELD_NUMBER: _builtins.int - SENDERTIMESTAMPMS_FIELD_NUMBER: _builtins.int - SERVERTIMESTAMPMS_FIELD_NUMBER: _builtins.int - STATUS_FIELD_NUMBER: _builtins.int - ADDONCONTEXTINFO_FIELD_NUMBER: _builtins.int - MESSAGEADDONKEY_FIELD_NUMBER: _builtins.int - LEGACYMESSAGE_FIELD_NUMBER: _builtins.int - messageAddOnType: Global___MessageAddOn.MessageAddOnType.ValueType - senderTimestampMs: _builtins.int - serverTimestampMs: _builtins.int - status: Global___WebMessageInfo.Status.ValueType - @_builtins.property - def messageAddOn(self) -> Global___Message: ... - @_builtins.property - def addOnContextInfo(self) -> Global___MessageAddOnContextInfo: ... - @_builtins.property - def messageAddOnKey(self) -> Global___MessageKey: ... - @_builtins.property - def legacyMessage(self) -> Global___LegacyMessage: ... + THREADID_FIELD_NUMBER: _builtins.int + threadId: _builtins.bytes def __init__( self, *, - messageAddOnType: Global___MessageAddOn.MessageAddOnType.ValueType | None = ..., - messageAddOn: Global___Message | None = ..., - senderTimestampMs: _builtins.int | None = ..., - serverTimestampMs: _builtins.int | None = ..., - status: Global___WebMessageInfo.Status.ValueType | None = ..., - addOnContextInfo: Global___MessageAddOnContextInfo | None = ..., - messageAddOnKey: Global___MessageKey | None = ..., - legacyMessage: Global___LegacyMessage | None = ..., + threadId: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["addOnContextInfo", b"addOnContextInfo", "legacyMessage", b"legacyMessage", "messageAddOn", b"messageAddOn", "messageAddOnKey", b"messageAddOnKey", "messageAddOnType", b"messageAddOnType", "senderTimestampMs", b"senderTimestampMs", "serverTimestampMs", b"serverTimestampMs", "status", b"status"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["threadId", b"threadId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["addOnContextInfo", b"addOnContextInfo", "legacyMessage", b"legacyMessage", "messageAddOn", b"messageAddOn", "messageAddOnKey", b"messageAddOnKey", "messageAddOnType", b"messageAddOnType", "senderTimestampMs", b"senderTimestampMs", "serverTimestampMs", b"serverTimestampMs", "status", b"status"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["threadId", b"threadId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___MessageAddOn: _TypeAlias = MessageAddOn # noqa: Y015 +Global___MinosThreadIdFromOneToOneThreadResult: _TypeAlias = MinosThreadIdFromOneToOneThreadResult # noqa: Y015 @_typing.final -class MessageAddOnContextInfo(_message.Message): +class MinosValidateEpochInput(_message.Message): DESCRIPTOR: _descriptor.Descriptor - MESSAGEADDONDURATIONINSECS_FIELD_NUMBER: _builtins.int - MESSAGEADDONEXPIRYTYPE_FIELD_NUMBER: _builtins.int - messageAddOnDurationInSecs: _builtins.int - messageAddOnExpiryType: Global___MessageContextInfo.MessageAddonExpiryType.ValueType + EPOCHPUBLICDATA_FIELD_NUMBER: _builtins.int + PREVIOUSEPOCHPUBLICDATA_FIELD_NUMBER: _builtins.int + SIGNATURES_FIELD_NUMBER: _builtins.int + @_builtins.property + def epochPublicData(self) -> Global___EpochPublicData: ... + @_builtins.property + def previousEpochPublicData(self) -> Global___EpochPublicData: ... + @_builtins.property + def signatures(self) -> Global___EpochSignatures: ... def __init__( self, *, - messageAddOnDurationInSecs: _builtins.int | None = ..., - messageAddOnExpiryType: Global___MessageContextInfo.MessageAddonExpiryType.ValueType | None = ..., + epochPublicData: Global___EpochPublicData | None = ..., + previousEpochPublicData: Global___EpochPublicData | None = ..., + signatures: Global___EpochSignatures | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["messageAddOnDurationInSecs", b"messageAddOnDurationInSecs", "messageAddOnExpiryType", b"messageAddOnExpiryType"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["epochPublicData", b"epochPublicData", "previousEpochPublicData", b"previousEpochPublicData", "signatures", b"signatures"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["messageAddOnDurationInSecs", b"messageAddOnDurationInSecs", "messageAddOnExpiryType", b"messageAddOnExpiryType"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["epochPublicData", b"epochPublicData", "previousEpochPublicData", b"previousEpochPublicData", "signatures", b"signatures"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___MessageAddOnContextInfo: _TypeAlias = MessageAddOnContextInfo # noqa: Y015 +Global___MinosValidateEpochInput: _TypeAlias = MinosValidateEpochInput # noqa: Y015 @_typing.final -class MessageAssociation(_message.Message): +class MinosValidateEpochResult(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _AssociationType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + VALID_FIELD_NUMBER: _builtins.int + ERRORMESSAGE_FIELD_NUMBER: _builtins.int + valid: _builtins.bool + errorMessage: _builtins.str + def __init__( + self, + *, + valid: _builtins.bool | None = ..., + errorMessage: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "valid", b"valid"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "result", b"result", "valid", b"valid"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["valid", "errorMessage"] # noqa: Y015 + _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ... - class _AssociationTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MessageAssociation._AssociationType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - UNKNOWN: MessageAssociation._AssociationType.ValueType # 0 - MEDIA_ALBUM: MessageAssociation._AssociationType.ValueType # 1 - BOT_PLUGIN: MessageAssociation._AssociationType.ValueType # 2 - EVENT_COVER_IMAGE: MessageAssociation._AssociationType.ValueType # 3 - STATUS_POLL: MessageAssociation._AssociationType.ValueType # 4 - HD_VIDEO_DUAL_UPLOAD: MessageAssociation._AssociationType.ValueType # 5 - STATUS_EXTERNAL_RESHARE: MessageAssociation._AssociationType.ValueType # 6 - MEDIA_POLL: MessageAssociation._AssociationType.ValueType # 7 - STATUS_ADD_YOURS: MessageAssociation._AssociationType.ValueType # 8 - STATUS_NOTIFICATION: MessageAssociation._AssociationType.ValueType # 9 - HD_IMAGE_DUAL_UPLOAD: MessageAssociation._AssociationType.ValueType # 10 - STICKER_ANNOTATION: MessageAssociation._AssociationType.ValueType # 11 - MOTION_PHOTO: MessageAssociation._AssociationType.ValueType # 12 - STATUS_LINK_ACTION: MessageAssociation._AssociationType.ValueType # 13 - VIEW_ALL_REPLIES: MessageAssociation._AssociationType.ValueType # 14 - STATUS_ADD_YOURS_AI_IMAGINE: MessageAssociation._AssociationType.ValueType # 15 - STATUS_QUESTION: MessageAssociation._AssociationType.ValueType # 16 - STATUS_ADD_YOURS_DIWALI: MessageAssociation._AssociationType.ValueType # 17 - STATUS_REACTION: MessageAssociation._AssociationType.ValueType # 18 - HEVC_VIDEO_DUAL_UPLOAD: MessageAssociation._AssociationType.ValueType # 19 - POLL_ADD_OPTION: MessageAssociation._AssociationType.ValueType # 20 +Global___MinosValidateEpochResult: _TypeAlias = MinosValidateEpochResult # noqa: Y015 - class AssociationType(_AssociationType, metaclass=_AssociationTypeEnumTypeWrapper): ... - UNKNOWN: MessageAssociation.AssociationType.ValueType # 0 - MEDIA_ALBUM: MessageAssociation.AssociationType.ValueType # 1 - BOT_PLUGIN: MessageAssociation.AssociationType.ValueType # 2 - EVENT_COVER_IMAGE: MessageAssociation.AssociationType.ValueType # 3 - STATUS_POLL: MessageAssociation.AssociationType.ValueType # 4 - HD_VIDEO_DUAL_UPLOAD: MessageAssociation.AssociationType.ValueType # 5 - STATUS_EXTERNAL_RESHARE: MessageAssociation.AssociationType.ValueType # 6 - MEDIA_POLL: MessageAssociation.AssociationType.ValueType # 7 - STATUS_ADD_YOURS: MessageAssociation.AssociationType.ValueType # 8 - STATUS_NOTIFICATION: MessageAssociation.AssociationType.ValueType # 9 - HD_IMAGE_DUAL_UPLOAD: MessageAssociation.AssociationType.ValueType # 10 - STICKER_ANNOTATION: MessageAssociation.AssociationType.ValueType # 11 - MOTION_PHOTO: MessageAssociation.AssociationType.ValueType # 12 - STATUS_LINK_ACTION: MessageAssociation.AssociationType.ValueType # 13 - VIEW_ALL_REPLIES: MessageAssociation.AssociationType.ValueType # 14 - STATUS_ADD_YOURS_AI_IMAGINE: MessageAssociation.AssociationType.ValueType # 15 - STATUS_QUESTION: MessageAssociation.AssociationType.ValueType # 16 - STATUS_ADD_YOURS_DIWALI: MessageAssociation.AssociationType.ValueType # 17 - STATUS_REACTION: MessageAssociation.AssociationType.ValueType # 18 - HEVC_VIDEO_DUAL_UPLOAD: MessageAssociation.AssociationType.ValueType # 19 - POLL_ADD_OPTION: MessageAssociation.AssociationType.ValueType # 20 +@_typing.final +class MinosVerifySingleEpochInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - ASSOCIATIONTYPE_FIELD_NUMBER: _builtins.int - PARENTMESSAGEKEY_FIELD_NUMBER: _builtins.int - MESSAGEINDEX_FIELD_NUMBER: _builtins.int - associationType: Global___MessageAssociation.AssociationType.ValueType - messageIndex: _builtins.int + EPOCHPUBLICDATA_FIELD_NUMBER: _builtins.int + SIGNATURE_FIELD_NUMBER: _builtins.int + signature: _builtins.bytes @_builtins.property - def parentMessageKey(self) -> Global___MessageKey: ... + def epochPublicData(self) -> Global___EpochPublicData: ... def __init__( self, *, - associationType: Global___MessageAssociation.AssociationType.ValueType | None = ..., - parentMessageKey: Global___MessageKey | None = ..., - messageIndex: _builtins.int | None = ..., + epochPublicData: Global___EpochPublicData | None = ..., + signature: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["associationType", b"associationType", "messageIndex", b"messageIndex", "parentMessageKey", b"parentMessageKey"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["epochPublicData", b"epochPublicData", "signature", b"signature"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["associationType", b"associationType", "messageIndex", b"messageIndex", "parentMessageKey", b"parentMessageKey"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["epochPublicData", b"epochPublicData", "signature", b"signature"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___MessageAssociation: _TypeAlias = MessageAssociation # noqa: Y015 +Global___MinosVerifySingleEpochInput: _TypeAlias = MinosVerifySingleEpochInput # noqa: Y015 @_typing.final -class MessageContextInfo(_message.Message): +class MinosVerifySingleEpochResult(_message.Message): DESCRIPTOR: _descriptor.Descriptor - class _MessageAddonExpiryType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + VALID_FIELD_NUMBER: _builtins.int + valid: _builtins.bool + def __init__( + self, + *, + valid: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["valid", b"valid"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["valid", b"valid"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class _MessageAddonExpiryTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[MessageContextInfo._MessageAddonExpiryType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor - STATIC: MessageContextInfo._MessageAddonExpiryType.ValueType # 1 - DEPENDENT_ON_PARENT: MessageContextInfo._MessageAddonExpiryType.ValueType # 2 +Global___MinosVerifySingleEpochResult: _TypeAlias = MinosVerifySingleEpochResult # noqa: Y015 - class MessageAddonExpiryType(_MessageAddonExpiryType, metaclass=_MessageAddonExpiryTypeEnumTypeWrapper): ... - STATIC: MessageContextInfo.MessageAddonExpiryType.ValueType # 1 - DEPENDENT_ON_PARENT: MessageContextInfo.MessageAddonExpiryType.ValueType # 2 +@_typing.final +class MmkDistribution(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - DEVICELISTMETADATA_FIELD_NUMBER: _builtins.int - DEVICELISTMETADATAVERSION_FIELD_NUMBER: _builtins.int - MESSAGESECRET_FIELD_NUMBER: _builtins.int - PADDINGBYTES_FIELD_NUMBER: _builtins.int - MESSAGEADDONDURATIONINSECS_FIELD_NUMBER: _builtins.int - BOTMESSAGESECRET_FIELD_NUMBER: _builtins.int - BOTMETADATA_FIELD_NUMBER: _builtins.int - REPORTINGTOKENVERSION_FIELD_NUMBER: _builtins.int - MESSAGEADDONEXPIRYTYPE_FIELD_NUMBER: _builtins.int - MESSAGEASSOCIATION_FIELD_NUMBER: _builtins.int - CAPICREATEDGROUP_FIELD_NUMBER: _builtins.int - SUPPORTPAYLOAD_FIELD_NUMBER: _builtins.int - LIMITSHARING_FIELD_NUMBER: _builtins.int - LIMITSHARINGV2_FIELD_NUMBER: _builtins.int - THREADID_FIELD_NUMBER: _builtins.int - WEBLINKRENDERCONFIG_FIELD_NUMBER: _builtins.int - TEEBOTMETADATA_FIELD_NUMBER: _builtins.int - deviceListMetadataVersion: _builtins.int - messageSecret: _builtins.bytes - paddingBytes: _builtins.bytes - messageAddOnDurationInSecs: _builtins.int - botMessageSecret: _builtins.bytes - reportingTokenVersion: _builtins.int - messageAddOnExpiryType: Global___MessageContextInfo.MessageAddonExpiryType.ValueType - capiCreatedGroup: _builtins.bool - supportPayload: _builtins.str - weblinkRenderConfig: Global___WebLinkRenderConfig.ValueType - teeBotMetadata: _builtins.bytes - @_builtins.property - def deviceListMetadata(self) -> Global___DeviceListMetadata: ... - @_builtins.property - def botMetadata(self) -> Global___BotMetadata: ... - @_builtins.property - def messageAssociation(self) -> Global___MessageAssociation: ... - @_builtins.property - def limitSharing(self) -> Global___LimitSharing: ... + TODETACHEDDEVICES_FIELD_NUMBER: _builtins.int + TOMAILBOX_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + version: _builtins.int @_builtins.property - def limitSharingV2(self) -> Global___LimitSharing: ... + def toDetachedDevices(self) -> _containers.RepeatedCompositeFieldContainer[Global___MmkDistributionToDetachedDevice]: ... @_builtins.property - def threadId(self) -> _containers.RepeatedCompositeFieldContainer[Global___ThreadID]: ... + def toMailbox(self) -> Global___MmkDistributionToMailbox: ... def __init__( self, *, - deviceListMetadata: Global___DeviceListMetadata | None = ..., - deviceListMetadataVersion: _builtins.int | None = ..., - messageSecret: _builtins.bytes | None = ..., - paddingBytes: _builtins.bytes | None = ..., - messageAddOnDurationInSecs: _builtins.int | None = ..., - botMessageSecret: _builtins.bytes | None = ..., - botMetadata: Global___BotMetadata | None = ..., - reportingTokenVersion: _builtins.int | None = ..., - messageAddOnExpiryType: Global___MessageContextInfo.MessageAddonExpiryType.ValueType | None = ..., - messageAssociation: Global___MessageAssociation | None = ..., - capiCreatedGroup: _builtins.bool | None = ..., - supportPayload: _builtins.str | None = ..., - limitSharing: Global___LimitSharing | None = ..., - limitSharingV2: Global___LimitSharing | None = ..., - threadId: _abc.Iterable[Global___ThreadID] | None = ..., - weblinkRenderConfig: Global___WebLinkRenderConfig.ValueType | None = ..., - teeBotMetadata: _builtins.bytes | None = ..., + toDetachedDevices: _abc.Iterable[Global___MmkDistributionToDetachedDevice] | None = ..., + toMailbox: Global___MmkDistributionToMailbox | None = ..., + version: _builtins.int | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["botMessageSecret", b"botMessageSecret", "botMetadata", b"botMetadata", "capiCreatedGroup", b"capiCreatedGroup", "deviceListMetadata", b"deviceListMetadata", "deviceListMetadataVersion", b"deviceListMetadataVersion", "limitSharing", b"limitSharing", "limitSharingV2", b"limitSharingV2", "messageAddOnDurationInSecs", b"messageAddOnDurationInSecs", "messageAddOnExpiryType", b"messageAddOnExpiryType", "messageAssociation", b"messageAssociation", "messageSecret", b"messageSecret", "paddingBytes", b"paddingBytes", "reportingTokenVersion", b"reportingTokenVersion", "supportPayload", b"supportPayload", "teeBotMetadata", b"teeBotMetadata", "weblinkRenderConfig", b"weblinkRenderConfig"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["toMailbox", b"toMailbox", "version", b"version"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["botMessageSecret", b"botMessageSecret", "botMetadata", b"botMetadata", "capiCreatedGroup", b"capiCreatedGroup", "deviceListMetadata", b"deviceListMetadata", "deviceListMetadataVersion", b"deviceListMetadataVersion", "limitSharing", b"limitSharing", "limitSharingV2", b"limitSharingV2", "messageAddOnDurationInSecs", b"messageAddOnDurationInSecs", "messageAddOnExpiryType", b"messageAddOnExpiryType", "messageAssociation", b"messageAssociation", "messageSecret", b"messageSecret", "paddingBytes", b"paddingBytes", "reportingTokenVersion", b"reportingTokenVersion", "supportPayload", b"supportPayload", "teeBotMetadata", b"teeBotMetadata", "threadId", b"threadId", "weblinkRenderConfig", b"weblinkRenderConfig"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["toDetachedDevices", b"toDetachedDevices", "toMailbox", b"toMailbox", "version", b"version"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___MessageContextInfo: _TypeAlias = MessageContextInfo # noqa: Y015 +Global___MmkDistribution: _TypeAlias = MmkDistribution # noqa: Y015 @_typing.final -class MessageKey(_message.Message): +class MmkDistributionToDetachedDevice(_message.Message): DESCRIPTOR: _descriptor.Descriptor - REMOTEJID_FIELD_NUMBER: _builtins.int - FROMME_FIELD_NUMBER: _builtins.int - ID_FIELD_NUMBER: _builtins.int - PARTICIPANT_FIELD_NUMBER: _builtins.int - remoteJid: _builtins.str - fromMe: _builtins.bool - id: _builtins.str - participant: _builtins.str + ENCRYPTEDMMK_FIELD_NUMBER: _builtins.int + RECIPDEVICEHASH_FIELD_NUMBER: _builtins.int + encryptedMmk: _builtins.bytes + recipDeviceHash: _builtins.bytes def __init__( self, *, - remoteJid: _builtins.str | None = ..., - fromMe: _builtins.bool | None = ..., - id: _builtins.str | None = ..., - participant: _builtins.str | None = ..., + encryptedMmk: _builtins.bytes | None = ..., + recipDeviceHash: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["fromMe", b"fromMe", "id", b"id", "participant", b"participant", "remoteJid", b"remoteJid"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedMmk", b"encryptedMmk", "recipDeviceHash", b"recipDeviceHash"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["fromMe", b"fromMe", "id", b"id", "participant", b"participant", "remoteJid", b"remoteJid"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedMmk", b"encryptedMmk", "recipDeviceHash", b"recipDeviceHash"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___MessageKey: _TypeAlias = MessageKey # noqa: Y015 +Global___MmkDistributionToDetachedDevice: _TypeAlias = MmkDistributionToDetachedDevice # noqa: Y015 @_typing.final -class MessageSecretMessage(_message.Message): +class MmkDistributionToMailbox(_message.Message): DESCRIPTOR: _descriptor.Descriptor - VERSION_FIELD_NUMBER: _builtins.int - ENCIV_FIELD_NUMBER: _builtins.int - ENCPAYLOAD_FIELD_NUMBER: _builtins.int - version: _builtins.int - encIv: _builtins.bytes - encPayload: _builtins.bytes + ENCRYPTEDMMK_FIELD_NUMBER: _builtins.int + RECIPMAILBOXHEADHASH_FIELD_NUMBER: _builtins.int + encryptedMmk: _builtins.bytes + recipMailboxHeadHash: _builtins.bytes def __init__( self, *, - version: _builtins.int | None = ..., - encIv: _builtins.bytes | None = ..., - encPayload: _builtins.bytes | None = ..., + encryptedMmk: _builtins.bytes | None = ..., + recipMailboxHeadHash: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "version", b"version"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["encryptedMmk", b"encryptedMmk", "recipMailboxHeadHash", b"recipMailboxHeadHash"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["encIv", b"encIv", "encPayload", b"encPayload", "version", b"version"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["encryptedMmk", b"encryptedMmk", "recipMailboxHeadHash", b"recipMailboxHeadHash"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___MessageSecretMessage: _TypeAlias = MessageSecretMessage # noqa: Y015 +Global___MmkDistributionToMailbox: _TypeAlias = MmkDistributionToMailbox # noqa: Y015 @_typing.final -class MessageText(_message.Message): +class MmkFromDetachedDevice(_message.Message): DESCRIPTOR: _descriptor.Descriptor - TEXT_FIELD_NUMBER: _builtins.int - MENTIONEDJID_FIELD_NUMBER: _builtins.int - COMMANDS_FIELD_NUMBER: _builtins.int - MENTIONS_FIELD_NUMBER: _builtins.int - text: _builtins.str + MMK_FIELD_NUMBER: _builtins.int + FROMDETACHEDDEVICE_FIELD_NUMBER: _builtins.int + MEMBERSHIPPROOF_FIELD_NUMBER: _builtins.int @_builtins.property - def mentionedJid(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + def mmk(self) -> Global___MessagingMailboxPublicData: ... @_builtins.property - def commands(self) -> _containers.RepeatedCompositeFieldContainer[Global___Command]: ... + def fromDetachedDevice(self) -> Global___DetachedDevicePublicData: ... @_builtins.property - def mentions(self) -> _containers.RepeatedCompositeFieldContainer[Global___Mention]: ... + def membershipProof(self) -> Global___MerkleMembershipProof: ... def __init__( self, *, - text: _builtins.str | None = ..., - mentionedJid: _abc.Iterable[_builtins.str] | None = ..., - commands: _abc.Iterable[Global___Command] | None = ..., - mentions: _abc.Iterable[Global___Mention] | None = ..., + mmk: Global___MessagingMailboxPublicData | None = ..., + fromDetachedDevice: Global___DetachedDevicePublicData | None = ..., + membershipProof: Global___MerkleMembershipProof | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["text", b"text"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["fromDetachedDevice", b"fromDetachedDevice", "membershipProof", b"membershipProof", "mmk", b"mmk"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commands", b"commands", "mentionedJid", b"mentionedJid", "mentions", b"mentions", "text", b"text"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["fromDetachedDevice", b"fromDetachedDevice", "membershipProof", b"membershipProof", "mmk", b"mmk"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___MessageText: _TypeAlias = MessageText # noqa: Y015 +Global___MmkFromDetachedDevice: _TypeAlias = MmkFromDetachedDevice # noqa: Y015 @_typing.final class Money(_message.Message): @@ -16609,6 +20243,39 @@ class NoiseCertificate(_message.Message): Global___NoiseCertificate: _TypeAlias = NoiseCertificate # noqa: Y015 +@_typing.final +class NonE2EEAttestation(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _AccountType: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _AccountTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[NonE2EEAttestation._AccountType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + E2EE: NonE2EEAttestation._AccountType.ValueType # 0 + HYBRID_E2EE: NonE2EEAttestation._AccountType.ValueType # 1 + NON_E2EE: NonE2EEAttestation._AccountType.ValueType # 2 + + class AccountType(_AccountType, metaclass=_AccountTypeEnumTypeWrapper): ... + E2EE: NonE2EEAttestation.AccountType.ValueType # 0 + HYBRID_E2EE: NonE2EEAttestation.AccountType.ValueType # 1 + NON_E2EE: NonE2EEAttestation.AccountType.ValueType # 2 + + ACCOUNTTYPE_FIELD_NUMBER: _builtins.int + accountType: Global___NonE2EEAttestation.AccountType.ValueType + def __init__( + self, + *, + accountType: Global___NonE2EEAttestation.AccountType.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["accountType", b"accountType"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["accountType", b"accountType"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___NonE2EEAttestation: _TypeAlias = NonE2EEAttestation # noqa: Y015 + @_typing.final class NotificationMessageInfo(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -16671,6 +20338,48 @@ class NotificationSettings(_message.Message): Global___NotificationSettings: _TypeAlias = NotificationSettings # noqa: Y015 +@_typing.final +class OrfThreadIdInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + ORFCLIENTSTATE_FIELD_NUMBER: _builtins.int + THREADID_FIELD_NUMBER: _builtins.int + orfClientState: _builtins.bytes + threadId: _builtins.str + def __init__( + self, + *, + orfClientState: _builtins.bytes | None = ..., + threadId: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["orfClientState", b"orfClientState", "threadId", b"threadId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["orfClientState", b"orfClientState", "threadId", b"threadId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___OrfThreadIdInput: _TypeAlias = OrfThreadIdInput # noqa: Y015 + +@_typing.final +class OrfThreadIdOutput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + ORFTHREADID_FIELD_NUMBER: _builtins.int + ERROR_FIELD_NUMBER: _builtins.int + orfThreadId: _builtins.bytes + error: _builtins.str + def __init__( + self, + *, + orfThreadId: _builtins.bytes | None = ..., + error: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["error", b"error", "orfThreadId", b"orfThreadId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["error", b"error", "orfThreadId", b"orfThreadId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___OrfThreadIdOutput: _TypeAlias = OrfThreadIdOutput # noqa: Y015 + @_typing.final class PairingRequest(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -17349,12 +21058,16 @@ class PreKeySignalMessage(_message.Message): BASEKEY_FIELD_NUMBER: _builtins.int IDENTITYKEY_FIELD_NUMBER: _builtins.int MESSAGE_FIELD_NUMBER: _builtins.int + KYBERPREKEYID_FIELD_NUMBER: _builtins.int + KYBERCIPHERTEXT_FIELD_NUMBER: _builtins.int registrationId: _builtins.int preKeyId: _builtins.int signedPreKeyId: _builtins.int baseKey: _builtins.bytes identityKey: _builtins.bytes message: _builtins.bytes + kyberPreKeyId: _builtins.int + kyberCiphertext: _builtins.bytes def __init__( self, *, @@ -17364,10 +21077,12 @@ class PreKeySignalMessage(_message.Message): baseKey: _builtins.bytes | None = ..., identityKey: _builtins.bytes | None = ..., message: _builtins.bytes | None = ..., + kyberPreKeyId: _builtins.int | None = ..., + kyberCiphertext: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "identityKey", b"identityKey", "message", b"message", "preKeyId", b"preKeyId", "registrationId", b"registrationId", "signedPreKeyId", b"signedPreKeyId"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "identityKey", b"identityKey", "kyberCiphertext", b"kyberCiphertext", "kyberPreKeyId", b"kyberPreKeyId", "message", b"message", "preKeyId", b"preKeyId", "registrationId", b"registrationId", "signedPreKeyId", b"signedPreKeyId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "identityKey", b"identityKey", "message", b"message", "preKeyId", b"preKeyId", "registrationId", b"registrationId", "signedPreKeyId", b"signedPreKeyId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "identityKey", b"identityKey", "kyberCiphertext", b"kyberCiphertext", "kyberPreKeyId", b"kyberPreKeyId", "message", b"message", "preKeyId", b"preKeyId", "registrationId", b"registrationId", "signedPreKeyId", b"signedPreKeyId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... Global___PreKeySignalMessage: _TypeAlias = PreKeySignalMessage # noqa: Y015 @@ -17761,19 +21476,142 @@ class ReportingTokenInfo(_message.Message): DESCRIPTOR: _descriptor.Descriptor REPORTINGTAG_FIELD_NUMBER: _builtins.int + REPORTINGTAGTIMESTAMP_FIELD_NUMBER: _builtins.int reportingTag: _builtins.bytes + reportingTagTimestamp: _builtins.int def __init__( self, *, reportingTag: _builtins.bytes | None = ..., + reportingTagTimestamp: _builtins.int | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["reportingTag", b"reportingTag"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["reportingTag", b"reportingTag", "reportingTagTimestamp", b"reportingTagTimestamp"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["reportingTag", b"reportingTag"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["reportingTag", b"reportingTag", "reportingTagTimestamp", b"reportingTagTimestamp"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... Global___ReportingTokenInfo: _TypeAlias = ReportingTokenInfo # noqa: Y015 +@_typing.final +class RotateEpochInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + CURRENTEPOCHROOTKEY_FIELD_NUMBER: _builtins.int + CURRENTEPOCHANONID_FIELD_NUMBER: _builtins.int + CURRENTEPOCHFBID_FIELD_NUMBER: _builtins.int + EPOCHSTORAGEPRIVATEKEY_FIELD_NUMBER: _builtins.int + MEMBERS_FIELD_NUMBER: _builtins.int + currentEpochRootKey: _builtins.bytes + currentEpochAnonId: _builtins.bytes + currentEpochFbid: _builtins.int + epochStoragePrivateKey: _builtins.bytes + @_builtins.property + def members(self) -> _containers.RepeatedCompositeFieldContainer[Global___RotateEpochMemberInput]: ... + def __init__( + self, + *, + currentEpochRootKey: _builtins.bytes | None = ..., + currentEpochAnonId: _builtins.bytes | None = ..., + currentEpochFbid: _builtins.int | None = ..., + epochStoragePrivateKey: _builtins.bytes | None = ..., + members: _abc.Iterable[Global___RotateEpochMemberInput] | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["currentEpochAnonId", b"currentEpochAnonId", "currentEpochFbid", b"currentEpochFbid", "currentEpochRootKey", b"currentEpochRootKey", "epochStoragePrivateKey", b"epochStoragePrivateKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["currentEpochAnonId", b"currentEpochAnonId", "currentEpochFbid", b"currentEpochFbid", "currentEpochRootKey", b"currentEpochRootKey", "epochStoragePrivateKey", b"epochStoragePrivateKey", "members", b"members"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___RotateEpochInput: _TypeAlias = RotateEpochInput # noqa: Y015 + +@_typing.final +class RotateEpochMemberEdge(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + DEVICEID_FIELD_NUMBER: _builtins.int + ENCRYPTEDEPOCHKEY_FIELD_NUMBER: _builtins.int + DEVICEEPOCHHMAC_FIELD_NUMBER: _builtins.int + deviceId: _builtins.int + encryptedEpochKey: _builtins.bytes + deviceEpochHmac: _builtins.bytes + def __init__( + self, + *, + deviceId: _builtins.int | None = ..., + encryptedEpochKey: _builtins.bytes | None = ..., + deviceEpochHmac: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["deviceEpochHmac", b"deviceEpochHmac", "deviceId", b"deviceId", "encryptedEpochKey", b"encryptedEpochKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["deviceEpochHmac", b"deviceEpochHmac", "deviceId", b"deviceId", "encryptedEpochKey", b"encryptedEpochKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___RotateEpochMemberEdge: _TypeAlias = RotateEpochMemberEdge # noqa: Y015 + +@_typing.final +class RotateEpochMemberInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + DEVICEID_FIELD_NUMBER: _builtins.int + EPOCHSTORAGEPUBLICKEY_FIELD_NUMBER: _builtins.int + DEVICEPUBLICKEY_FIELD_NUMBER: _builtins.int + deviceId: _builtins.int + epochStoragePublicKey: _builtins.bytes + devicePublicKey: _builtins.bytes + def __init__( + self, + *, + deviceId: _builtins.int | None = ..., + epochStoragePublicKey: _builtins.bytes | None = ..., + devicePublicKey: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["deviceId", b"deviceId", "devicePublicKey", b"devicePublicKey", "epochStoragePublicKey", b"epochStoragePublicKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["deviceId", b"deviceId", "devicePublicKey", b"devicePublicKey", "epochStoragePublicKey", b"epochStoragePublicKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___RotateEpochMemberInput: _TypeAlias = RotateEpochMemberInput # noqa: Y015 + +@_typing.final +class RotateEpochOutput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + NEWEPOCHROOTKEY_FIELD_NUMBER: _builtins.int + NEWEPOCHANONID_FIELD_NUMBER: _builtins.int + NEWEPOCHFBID_FIELD_NUMBER: _builtins.int + EPOCHANONID_FIELD_NUMBER: _builtins.int + BACKWARDEDGE_FIELD_NUMBER: _builtins.int + MEMBEREDGES_FIELD_NUMBER: _builtins.int + EPOCHROOTKEYFINGERPRINT_FIELD_NUMBER: _builtins.int + ERROR_FIELD_NUMBER: _builtins.int + newEpochRootKey: _builtins.bytes + newEpochAnonId: _builtins.int + newEpochFbid: _builtins.int + epochAnonId: _builtins.bytes + epochRootKeyFingerprint: _builtins.bytes + error: _builtins.str + @_builtins.property + def backwardEdge(self) -> Global___BackwardEdge: ... + @_builtins.property + def memberEdges(self) -> _containers.RepeatedCompositeFieldContainer[Global___RotateEpochMemberEdge]: ... + def __init__( + self, + *, + newEpochRootKey: _builtins.bytes | None = ..., + newEpochAnonId: _builtins.int | None = ..., + newEpochFbid: _builtins.int | None = ..., + epochAnonId: _builtins.bytes | None = ..., + backwardEdge: Global___BackwardEdge | None = ..., + memberEdges: _abc.Iterable[Global___RotateEpochMemberEdge] | None = ..., + epochRootKeyFingerprint: _builtins.bytes | None = ..., + error: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["backwardEdge", b"backwardEdge", "epochAnonId", b"epochAnonId", "epochRootKeyFingerprint", b"epochRootKeyFingerprint", "error", b"error", "newEpochAnonId", b"newEpochAnonId", "newEpochFbid", b"newEpochFbid", "newEpochRootKey", b"newEpochRootKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["backwardEdge", b"backwardEdge", "epochAnonId", b"epochAnonId", "epochRootKeyFingerprint", b"epochRootKeyFingerprint", "error", b"error", "memberEdges", b"memberEdges", "newEpochAnonId", b"newEpochAnonId", "newEpochFbid", b"newEpochFbid", "newEpochRootKey", b"newEpochRootKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___RotateEpochOutput: _TypeAlias = RotateEpochOutput # noqa: Y015 + @_typing.final class RoutingInfo(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -18122,19 +21960,25 @@ class SessionStructure(_message.Message): PREKEYID_FIELD_NUMBER: _builtins.int SIGNEDPREKEYID_FIELD_NUMBER: _builtins.int BASEKEY_FIELD_NUMBER: _builtins.int + KYBERPREKEYID_FIELD_NUMBER: _builtins.int + KYBERCIPHERTEXT_FIELD_NUMBER: _builtins.int preKeyId: _builtins.int signedPreKeyId: _builtins.int baseKey: _builtins.bytes + kyberPreKeyId: _builtins.int + kyberCiphertext: _builtins.bytes def __init__( self, *, preKeyId: _builtins.int | None = ..., signedPreKeyId: _builtins.int | None = ..., baseKey: _builtins.bytes | None = ..., + kyberPreKeyId: _builtins.int | None = ..., + kyberCiphertext: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "preKeyId", b"preKeyId", "signedPreKeyId", b"signedPreKeyId"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "kyberCiphertext", b"kyberCiphertext", "kyberPreKeyId", b"kyberPreKeyId", "preKeyId", b"preKeyId", "signedPreKeyId", b"signedPreKeyId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "preKeyId", b"preKeyId", "signedPreKeyId", b"signedPreKeyId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["baseKey", b"baseKey", "kyberCiphertext", b"kyberCiphertext", "kyberPreKeyId", b"kyberPreKeyId", "preKeyId", b"preKeyId", "signedPreKeyId", b"signedPreKeyId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... SESSIONVERSION_FIELD_NUMBER: _builtins.int @@ -18242,6 +22086,32 @@ class SignalMessage(_message.Message): Global___SignalMessage: _TypeAlias = SignalMessage # noqa: Y015 +@_typing.final +class SignedMmkDistributionFromMailbox(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + MMKDISTRIBUTION_FIELD_NUMBER: _builtins.int + SIGNATURE_FIELD_NUMBER: _builtins.int + FROMMAILBOX_FIELD_NUMBER: _builtins.int + signature: _builtins.bytes + @_builtins.property + def mmkDistribution(self) -> Global___MmkDistribution: ... + @_builtins.property + def fromMailbox(self) -> Global___MessagingMailboxPublicData: ... + def __init__( + self, + *, + mmkDistribution: Global___MmkDistribution | None = ..., + signature: _builtins.bytes | None = ..., + fromMailbox: Global___MessagingMailboxPublicData | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["fromMailbox", b"fromMailbox", "mmkDistribution", b"mmkDistribution", "signature", b"signature"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["fromMailbox", b"fromMailbox", "mmkDistribution", b"mmkDistribution", "signature", b"signature"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___SignedMmkDistributionFromMailbox: _TypeAlias = SignedMmkDistributionFromMailbox # noqa: Y015 + @_typing.final class SignedPreKeyRecordStructure(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -18294,6 +22164,7 @@ class StatusAttribution(_message.Message): NEWSLETTER_STATUS: StatusAttribution._Type.ValueType # 9 STATUS_CLOSE_SHARING: StatusAttribution._Type.ValueType # 10 PAID_PARTNERSHIP: StatusAttribution._Type.ValueType # 11 + USERNAME_STATUS: StatusAttribution._Type.ValueType # 12 class Type(_Type, metaclass=_TypeEnumTypeWrapper): ... UNKNOWN: StatusAttribution.Type.ValueType # 0 @@ -18308,6 +22179,7 @@ class StatusAttribution(_message.Message): NEWSLETTER_STATUS: StatusAttribution.Type.ValueType # 9 STATUS_CLOSE_SHARING: StatusAttribution.Type.ValueType # 10 PAID_PARTNERSHIP: StatusAttribution.Type.ValueType # 11 + USERNAME_STATUS: StatusAttribution.Type.ValueType # 12 @_typing.final class AiCreatedAttribution(_message.Message): @@ -18361,6 +22233,7 @@ class StatusAttribution(_message.Message): GOOGLE_PHOTOS: StatusAttribution.ExternalShare._Source.ValueType # 10 SOUNDCLOUD: StatusAttribution.ExternalShare._Source.ValueType # 11 SHAZAM: StatusAttribution.ExternalShare._Source.ValueType # 12 + PICSART: StatusAttribution.ExternalShare._Source.ValueType # 13 class Source(_Source, metaclass=_SourceEnumTypeWrapper): ... UNKNOWN: StatusAttribution.ExternalShare.Source.ValueType # 0 @@ -18376,6 +22249,7 @@ class StatusAttribution(_message.Message): GOOGLE_PHOTOS: StatusAttribution.ExternalShare.Source.ValueType # 10 SOUNDCLOUD: StatusAttribution.ExternalShare.Source.ValueType # 11 SHAZAM: StatusAttribution.ExternalShare.Source.ValueType # 12 + PICSART: StatusAttribution.ExternalShare.Source.ValueType # 13 ACTIONURL_FIELD_NUMBER: _builtins.int SOURCE_FIELD_NUMBER: _builtins.int @@ -18763,18 +22637,18 @@ class SyncActionValue(_message.Message): DEVICEID_FIELD_NUMBER: _builtins.int ISDELETED_FIELD_NUMBER: _builtins.int name: _builtins.str - deviceID: _builtins.int + deviceId: _builtins.int isDeleted: _builtins.bool def __init__( self, *, name: _builtins.str | None = ..., - deviceID: _builtins.int | None = ..., + deviceId: _builtins.int | None = ..., isDeleted: _builtins.bool | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["deviceID", b"deviceID", "isDeleted", b"isDeleted", "name", b"name"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["deviceId", b"deviceId", "isDeleted", b"isDeleted", "name", b"name"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["deviceID", b"deviceID", "isDeleted", b"isDeleted", "name", b"name"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["deviceId", b"deviceId", "isDeleted", b"isDeleted", "name", b"name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final @@ -18896,6 +22770,7 @@ class SyncActionValue(_message.Message): EXAMPLE_RESPONSES: SyncActionValue.BizAISettingsNudgeAction._BizAISettingsCategory.ValueType # 3 KNOWLEDGE: SyncActionValue.BizAISettingsNudgeAction._BizAISettingsCategory.ValueType # 4 LEAD_GEN: SyncActionValue.BizAISettingsNudgeAction._BizAISettingsCategory.ValueType # 5 + HANDOFF_REMOVAL_TIMING: SyncActionValue.BizAISettingsNudgeAction._BizAISettingsCategory.ValueType # 6 class BizAISettingsCategory(_BizAISettingsCategory, metaclass=_BizAISettingsCategoryEnumTypeWrapper): ... UNKNOWN: SyncActionValue.BizAISettingsNudgeAction.BizAISettingsCategory.ValueType # 0 @@ -18904,6 +22779,7 @@ class SyncActionValue(_message.Message): EXAMPLE_RESPONSES: SyncActionValue.BizAISettingsNudgeAction.BizAISettingsCategory.ValueType # 3 KNOWLEDGE: SyncActionValue.BizAISettingsNudgeAction.BizAISettingsCategory.ValueType # 4 LEAD_GEN: SyncActionValue.BizAISettingsNudgeAction.BizAISettingsCategory.ValueType # 5 + HANDOFF_REMOVAL_TIMING: SyncActionValue.BizAISettingsNudgeAction.BizAISettingsCategory.ValueType # 6 CATEGORY_FIELD_NUMBER: _builtins.int VERSION_FIELD_NUMBER: _builtins.int @@ -18958,6 +22834,22 @@ class SyncActionValue(_message.Message): _ClearFieldArgType: _TypeAlias = _typing.Literal["lidJid", b"lidJid", "pnJid", b"pnJid"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class BubbleLockMessageAction(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + LOCKED_FIELD_NUMBER: _builtins.int + locked: _builtins.bool + def __init__( + self, + *, + locked: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["locked", b"locked"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["locked", b"locked"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final class BusinessBroadcastAssociationAction(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -19051,9 +22943,11 @@ class SyncActionValue(_message.Message): LISTNAME_FIELD_NUMBER: _builtins.int LABELIDS_FIELD_NUMBER: _builtins.int AUDIENCEEXPRESSION_FIELD_NUMBER: _builtins.int + CUSTOMAUDIENCEFBID_FIELD_NUMBER: _builtins.int deleted: _builtins.bool listName: _builtins.str audienceExpression: _builtins.str + customAudienceFbid: _builtins.str @_builtins.property def participants(self) -> _containers.RepeatedCompositeFieldContainer[Global___SyncActionValue.BroadcastListParticipant]: ... @_builtins.property @@ -19066,10 +22960,11 @@ class SyncActionValue(_message.Message): listName: _builtins.str | None = ..., labelIds: _abc.Iterable[_builtins.str] | None = ..., audienceExpression: _builtins.str | None = ..., + customAudienceFbid: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["audienceExpression", b"audienceExpression", "deleted", b"deleted", "listName", b"listName"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["audienceExpression", b"audienceExpression", "customAudienceFbid", b"customAudienceFbid", "deleted", b"deleted", "listName", b"listName"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["audienceExpression", b"audienceExpression", "deleted", b"deleted", "labelIds", b"labelIds", "listName", b"listName", "participants", b"participants"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["audienceExpression", b"audienceExpression", "customAudienceFbid", b"customAudienceFbid", "deleted", b"deleted", "labelIds", b"labelIds", "listName", b"listName", "participants", b"participants"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final @@ -19094,15 +22989,15 @@ class SyncActionValue(_message.Message): DESCRIPTOR: _descriptor.Descriptor DEVICEAGENTID_FIELD_NUMBER: _builtins.int - deviceAgentID: _builtins.str + deviceAgentId: _builtins.str def __init__( self, *, - deviceAgentID: _builtins.str | None = ..., + deviceAgentId: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["deviceAgentID", b"deviceAgentID"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["deviceAgentId", b"deviceAgentId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["deviceAgentID", b"deviceAgentID"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["deviceAgentId", b"deviceAgentId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final @@ -19138,6 +23033,22 @@ class SyncActionValue(_message.Message): _ClearFieldArgType: _TypeAlias = _typing.Literal["messageRange", b"messageRange"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class CoexV2VersionAction(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + VERSION_FIELD_NUMBER: _builtins.int + version: _builtins.int + def __init__( + self, + *, + version: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["version", b"version"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["version", b"version"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final class ContactAction(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -19169,6 +23080,22 @@ class SyncActionValue(_message.Message): _ClearFieldArgType: _TypeAlias = _typing.Literal["firstName", b"firstName", "fullName", b"fullName", "lidJid", b"lidJid", "pnJid", b"pnJid", "saveOnPrimaryAddressbook", b"saveOnPrimaryAddressbook", "username", b"username"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class CtwaMessageReceivedAction(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + ISCTWAMESSAGERECEIVED_FIELD_NUMBER: _builtins.int + isCtwaMessageReceived: _builtins.bool + def __init__( + self, + *, + isCtwaMessageReceived: _builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["isCtwaMessageReceived", b"isCtwaMessageReceived"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["isCtwaMessageReceived", b"isCtwaMessageReceived"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final class CtwaPerCustomerDataSharingAction(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -19500,6 +23427,8 @@ class SyncActionValue(_message.Message): LOCKED: SyncActionValue.LabelEditAction._ListType.ValueType # 13 INVITES: SyncActionValue.LabelEditAction._ListType.ValueType # 14 THIRD_PARTY: SyncActionValue.LabelEditAction._ListType.ValueType # 15 + LEAD: SyncActionValue.LabelEditAction._ListType.ValueType # 16 + MENTIONS_AND_REPLIES: SyncActionValue.LabelEditAction._ListType.ValueType # 17 class ListType(_ListType, metaclass=_ListTypeEnumTypeWrapper): ... NONE: SyncActionValue.LabelEditAction.ListType.ValueType # 0 @@ -19518,6 +23447,8 @@ class SyncActionValue(_message.Message): LOCKED: SyncActionValue.LabelEditAction.ListType.ValueType # 13 INVITES: SyncActionValue.LabelEditAction.ListType.ValueType # 14 THIRD_PARTY: SyncActionValue.LabelEditAction.ListType.ValueType # 15 + LEAD: SyncActionValue.LabelEditAction.ListType.ValueType # 16 + MENTIONS_AND_REPLIES: SyncActionValue.LabelEditAction.ListType.ValueType # 17 NAME_FIELD_NUMBER: _builtins.int COLOR_FIELD_NUMBER: _builtins.int @@ -19570,6 +23501,22 @@ class SyncActionValue(_message.Message): _ClearFieldArgType: _TypeAlias = _typing.Literal["sortedLabelIds", b"sortedLabelIds"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class LabelSublistAction(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + SUBLISTID_FIELD_NUMBER: _builtins.int + subListId: _builtins.int + def __init__( + self, + *, + subListId: _builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["subListId", b"subListId"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["subListId", b"subListId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final class LidContactAction(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -20341,6 +24288,7 @@ class SyncActionValue(_message.Message): SHOULD_PLAY_SOUND_FOR_CALL_NOTIFICATION: SyncActionValue.SettingsSyncAction._SettingKey.ValueType # 31 CHAT_THEME_ID: SyncActionValue.SettingsSyncAction._SettingKey.ValueType # 32 COLOR_SCHEME_ID: SyncActionValue.SettingsSyncAction._SettingKey.ValueType # 33 + STOCK_WALLPAPER_IMAGE_ID: SyncActionValue.SettingsSyncAction._SettingKey.ValueType # 34 class SettingKey(_SettingKey, metaclass=_SettingKeyEnumTypeWrapper): ... SETTING_KEY_UNKNOWN: SyncActionValue.SettingsSyncAction.SettingKey.ValueType # 0 @@ -20377,6 +24325,7 @@ class SyncActionValue(_message.Message): SHOULD_PLAY_SOUND_FOR_CALL_NOTIFICATION: SyncActionValue.SettingsSyncAction.SettingKey.ValueType # 31 CHAT_THEME_ID: SyncActionValue.SettingsSyncAction.SettingKey.ValueType # 32 COLOR_SCHEME_ID: SyncActionValue.SettingsSyncAction.SettingKey.ValueType # 33 + STOCK_WALLPAPER_IMAGE_ID: SyncActionValue.SettingsSyncAction.SettingKey.ValueType # 34 class _SettingPlatform: ValueType = _typing.NewType("ValueType", _builtins.int) @@ -20430,6 +24379,7 @@ class SyncActionValue(_message.Message): SHOULDPLAYSOUNDFORCALLNOTIFICATION_FIELD_NUMBER: _builtins.int CHATTHEMEID_FIELD_NUMBER: _builtins.int COLORSCHEMEID_FIELD_NUMBER: _builtins.int + STOCKWALLPAPERIMAGEID_FIELD_NUMBER: _builtins.int startAtLogin: _builtins.bool minimizeToTray: _builtins.bool language: _builtins.str @@ -20463,6 +24413,7 @@ class SyncActionValue(_message.Message): shouldPlaySoundForCallNotification: _builtins.bool chatThemeId: _builtins.str colorSchemeId: _builtins.str + stockWallpaperImageId: _builtins.str def __init__( self, *, @@ -20499,10 +24450,11 @@ class SyncActionValue(_message.Message): shouldPlaySoundForCallNotification: _builtins.bool | None = ..., chatThemeId: _builtins.str | None = ..., colorSchemeId: _builtins.str | None = ..., + stockWallpaperImageId: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["appTheme", b"appTheme", "bannerNotificationDisplayMode", b"bannerNotificationDisplayMode", "chatThemeId", b"chatThemeId", "colorSchemeId", b"colorSchemeId", "defaultNotificationToneId", b"defaultNotificationToneId", "disableLinkPreviews", b"disableLinkPreviews", "fontSize", b"fontSize", "groupDefaultNotificationToneId", b"groupDefaultNotificationToneId", "isAudiosAutodownloadEnabled", b"isAudiosAutodownloadEnabled", "isCallsNotificationEnabled", b"isCallsNotificationEnabled", "isDocumentsAutodownloadEnabled", b"isDocumentsAutodownloadEnabled", "isDoodleWallpaperEnabled", b"isDoodleWallpaperEnabled", "isEnterToSendEnabled", b"isEnterToSendEnabled", "isGroupMessageNotificationEnabled", b"isGroupMessageNotificationEnabled", "isGroupReactionsNotificationEnabled", b"isGroupReactionsNotificationEnabled", "isMessagesNotificationEnabled", b"isMessagesNotificationEnabled", "isPhotosAutodownloadEnabled", b"isPhotosAutodownloadEnabled", "isReactionsNotificationEnabled", b"isReactionsNotificationEnabled", "isSpellCheckEnabled", b"isSpellCheckEnabled", "isStatusNotificationEnabled", b"isStatusNotificationEnabled", "isStatusReactionsNotificationEnabled", b"isStatusReactionsNotificationEnabled", "isTextPreviewForNotificationEnabled", b"isTextPreviewForNotificationEnabled", "isVideosAutodownloadEnabled", b"isVideosAutodownloadEnabled", "language", b"language", "mediaUploadQuality", b"mediaUploadQuality", "minimizeToTray", b"minimizeToTray", "notificationToneId", b"notificationToneId", "replaceTextWithEmoji", b"replaceTextWithEmoji", "shouldPlaySoundForCallNotification", b"shouldPlaySoundForCallNotification", "startAtLogin", b"startAtLogin", "statusNotificationToneId", b"statusNotificationToneId", "unreadCounterBadgeDisplayMode", b"unreadCounterBadgeDisplayMode", "wallpaperId", b"wallpaperId"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["appTheme", b"appTheme", "bannerNotificationDisplayMode", b"bannerNotificationDisplayMode", "chatThemeId", b"chatThemeId", "colorSchemeId", b"colorSchemeId", "defaultNotificationToneId", b"defaultNotificationToneId", "disableLinkPreviews", b"disableLinkPreviews", "fontSize", b"fontSize", "groupDefaultNotificationToneId", b"groupDefaultNotificationToneId", "isAudiosAutodownloadEnabled", b"isAudiosAutodownloadEnabled", "isCallsNotificationEnabled", b"isCallsNotificationEnabled", "isDocumentsAutodownloadEnabled", b"isDocumentsAutodownloadEnabled", "isDoodleWallpaperEnabled", b"isDoodleWallpaperEnabled", "isEnterToSendEnabled", b"isEnterToSendEnabled", "isGroupMessageNotificationEnabled", b"isGroupMessageNotificationEnabled", "isGroupReactionsNotificationEnabled", b"isGroupReactionsNotificationEnabled", "isMessagesNotificationEnabled", b"isMessagesNotificationEnabled", "isPhotosAutodownloadEnabled", b"isPhotosAutodownloadEnabled", "isReactionsNotificationEnabled", b"isReactionsNotificationEnabled", "isSpellCheckEnabled", b"isSpellCheckEnabled", "isStatusNotificationEnabled", b"isStatusNotificationEnabled", "isStatusReactionsNotificationEnabled", b"isStatusReactionsNotificationEnabled", "isTextPreviewForNotificationEnabled", b"isTextPreviewForNotificationEnabled", "isVideosAutodownloadEnabled", b"isVideosAutodownloadEnabled", "language", b"language", "mediaUploadQuality", b"mediaUploadQuality", "minimizeToTray", b"minimizeToTray", "notificationToneId", b"notificationToneId", "replaceTextWithEmoji", b"replaceTextWithEmoji", "shouldPlaySoundForCallNotification", b"shouldPlaySoundForCallNotification", "startAtLogin", b"startAtLogin", "statusNotificationToneId", b"statusNotificationToneId", "stockWallpaperImageId", b"stockWallpaperImageId", "unreadCounterBadgeDisplayMode", b"unreadCounterBadgeDisplayMode", "wallpaperId", b"wallpaperId"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["appTheme", b"appTheme", "bannerNotificationDisplayMode", b"bannerNotificationDisplayMode", "chatThemeId", b"chatThemeId", "colorSchemeId", b"colorSchemeId", "defaultNotificationToneId", b"defaultNotificationToneId", "disableLinkPreviews", b"disableLinkPreviews", "fontSize", b"fontSize", "groupDefaultNotificationToneId", b"groupDefaultNotificationToneId", "isAudiosAutodownloadEnabled", b"isAudiosAutodownloadEnabled", "isCallsNotificationEnabled", b"isCallsNotificationEnabled", "isDocumentsAutodownloadEnabled", b"isDocumentsAutodownloadEnabled", "isDoodleWallpaperEnabled", b"isDoodleWallpaperEnabled", "isEnterToSendEnabled", b"isEnterToSendEnabled", "isGroupMessageNotificationEnabled", b"isGroupMessageNotificationEnabled", "isGroupReactionsNotificationEnabled", b"isGroupReactionsNotificationEnabled", "isMessagesNotificationEnabled", b"isMessagesNotificationEnabled", "isPhotosAutodownloadEnabled", b"isPhotosAutodownloadEnabled", "isReactionsNotificationEnabled", b"isReactionsNotificationEnabled", "isSpellCheckEnabled", b"isSpellCheckEnabled", "isStatusNotificationEnabled", b"isStatusNotificationEnabled", "isStatusReactionsNotificationEnabled", b"isStatusReactionsNotificationEnabled", "isTextPreviewForNotificationEnabled", b"isTextPreviewForNotificationEnabled", "isVideosAutodownloadEnabled", b"isVideosAutodownloadEnabled", "language", b"language", "mediaUploadQuality", b"mediaUploadQuality", "minimizeToTray", b"minimizeToTray", "notificationToneId", b"notificationToneId", "replaceTextWithEmoji", b"replaceTextWithEmoji", "shouldPlaySoundForCallNotification", b"shouldPlaySoundForCallNotification", "startAtLogin", b"startAtLogin", "statusNotificationToneId", b"statusNotificationToneId", "unreadCounterBadgeDisplayMode", b"unreadCounterBadgeDisplayMode", "wallpaperId", b"wallpaperId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["appTheme", b"appTheme", "bannerNotificationDisplayMode", b"bannerNotificationDisplayMode", "chatThemeId", b"chatThemeId", "colorSchemeId", b"colorSchemeId", "defaultNotificationToneId", b"defaultNotificationToneId", "disableLinkPreviews", b"disableLinkPreviews", "fontSize", b"fontSize", "groupDefaultNotificationToneId", b"groupDefaultNotificationToneId", "isAudiosAutodownloadEnabled", b"isAudiosAutodownloadEnabled", "isCallsNotificationEnabled", b"isCallsNotificationEnabled", "isDocumentsAutodownloadEnabled", b"isDocumentsAutodownloadEnabled", "isDoodleWallpaperEnabled", b"isDoodleWallpaperEnabled", "isEnterToSendEnabled", b"isEnterToSendEnabled", "isGroupMessageNotificationEnabled", b"isGroupMessageNotificationEnabled", "isGroupReactionsNotificationEnabled", b"isGroupReactionsNotificationEnabled", "isMessagesNotificationEnabled", b"isMessagesNotificationEnabled", "isPhotosAutodownloadEnabled", b"isPhotosAutodownloadEnabled", "isReactionsNotificationEnabled", b"isReactionsNotificationEnabled", "isSpellCheckEnabled", b"isSpellCheckEnabled", "isStatusNotificationEnabled", b"isStatusNotificationEnabled", "isStatusReactionsNotificationEnabled", b"isStatusReactionsNotificationEnabled", "isTextPreviewForNotificationEnabled", b"isTextPreviewForNotificationEnabled", "isVideosAutodownloadEnabled", b"isVideosAutodownloadEnabled", "language", b"language", "mediaUploadQuality", b"mediaUploadQuality", "minimizeToTray", b"minimizeToTray", "notificationToneId", b"notificationToneId", "replaceTextWithEmoji", b"replaceTextWithEmoji", "shouldPlaySoundForCallNotification", b"shouldPlaySoundForCallNotification", "startAtLogin", b"startAtLogin", "statusNotificationToneId", b"statusNotificationToneId", "stockWallpaperImageId", b"stockWallpaperImageId", "unreadCounterBadgeDisplayMode", b"unreadCounterBadgeDisplayMode", "wallpaperId", b"wallpaperId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final @@ -20596,8 +24548,8 @@ class SyncActionValue(_message.Message): CUSTOMLISTS_FIELD_NUMBER: _builtins.int MODES_FIELD_NUMBER: _builtins.int mode: Global___SyncActionValue.StatusPrivacyAction.StatusDistributionMode.ValueType - shareToFB: _builtins.bool - shareToIG: _builtins.bool + shareToFb: _builtins.bool + shareToIg: _builtins.bool @_builtins.property def userJid(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... @_builtins.property @@ -20609,14 +24561,14 @@ class SyncActionValue(_message.Message): *, mode: Global___SyncActionValue.StatusPrivacyAction.StatusDistributionMode.ValueType | None = ..., userJid: _abc.Iterable[_builtins.str] | None = ..., - shareToFB: _builtins.bool | None = ..., - shareToIG: _builtins.bool | None = ..., + shareToFb: _builtins.bool | None = ..., + shareToIg: _builtins.bool | None = ..., customLists: _abc.Iterable[Global___SyncActionValue.StatusPrivacyAction.CustomList] | None = ..., modes: _abc.Iterable[Global___SyncActionValue.StatusPrivacyAction.StatusDistributionMode.ValueType] | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["mode", b"mode", "shareToFB", b"shareToFB", "shareToIG", b"shareToIG"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["mode", b"mode", "shareToFb", b"shareToFb", "shareToIg", b"shareToIg"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["customLists", b"customLists", "mode", b"mode", "modes", b"modes", "shareToFB", b"shareToFB", "shareToIG", b"shareToIG", "userJid", b"userJid"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["customLists", b"customLists", "mode", b"mode", "modes", b"modes", "shareToFb", b"shareToFb", "shareToIg", b"shareToIg", "userJid", b"userJid"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @_typing.final @@ -20926,6 +24878,59 @@ class SyncActionValue(_message.Message): _ClearFieldArgType: _TypeAlias = _typing.Literal["chatStartMode", b"chatStartMode"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final + class WASARootSecretAction(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class RootSecretEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + class _Status: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + + class _StatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[SyncActionValue.WASARootSecretAction.RootSecretEntry._Status.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + INACTIVE: SyncActionValue.WASARootSecretAction.RootSecretEntry._Status.ValueType # 0 + ACTIVE: SyncActionValue.WASARootSecretAction.RootSecretEntry._Status.ValueType # 1 + + class Status(_Status, metaclass=_StatusEnumTypeWrapper): ... + INACTIVE: SyncActionValue.WASARootSecretAction.RootSecretEntry.Status.ValueType # 0 + ACTIVE: SyncActionValue.WASARootSecretAction.RootSecretEntry.Status.ValueType # 1 + + ID_FIELD_NUMBER: _builtins.int + ROOTSECRET_FIELD_NUMBER: _builtins.int + EPOCH_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + id: _builtins.str + rootSecret: _builtins.bytes + epoch: _builtins.int + status: Global___SyncActionValue.WASARootSecretAction.RootSecretEntry.Status.ValueType + def __init__( + self, + *, + id: _builtins.str | None = ..., + rootSecret: _builtins.bytes | None = ..., + epoch: _builtins.int | None = ..., + status: Global___SyncActionValue.WASARootSecretAction.RootSecretEntry.Status.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["epoch", b"epoch", "id", b"id", "rootSecret", b"rootSecret", "status", b"status"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["epoch", b"epoch", "id", b"id", "rootSecret", b"rootSecret", "status", b"status"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + SECRETS_FIELD_NUMBER: _builtins.int + @_builtins.property + def secrets(self) -> _containers.RepeatedCompositeFieldContainer[Global___SyncActionValue.WASARootSecretAction.RootSecretEntry]: ... + def __init__( + self, + *, + secrets: _abc.Iterable[Global___SyncActionValue.WASARootSecretAction.RootSecretEntry] | None = ..., + ) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["secrets", b"secrets"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + @_typing.final class WaffleAccountLinkStateAction(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -21051,6 +25056,12 @@ class SyncActionValue(_message.Message): THREADPINACTION_FIELD_NUMBER: _builtins.int AUTOORGANIZEBUSINESSCHATSETTING_FIELD_NUMBER: _builtins.int BIZAISETTINGSNUDGEACTION_FIELD_NUMBER: _builtins.int + COEXV2VERSIONACTION_FIELD_NUMBER: _builtins.int + WASAROOTSECRETACTION_FIELD_NUMBER: _builtins.int + BUBBLELOCKMESSAGEACTION_FIELD_NUMBER: _builtins.int + LABELSUBLISTACTION_FIELD_NUMBER: _builtins.int + DEVICECAPABILITIESV2_FIELD_NUMBER: _builtins.int + CTWAMESSAGERECEIVEDACTION_FIELD_NUMBER: _builtins.int timestamp: _builtins.int @_builtins.property def starAction(self) -> Global___SyncActionValue.StarAction: ... @@ -21206,6 +25217,18 @@ class SyncActionValue(_message.Message): def autoOrganizeBusinessChatSetting(self) -> Global___SyncActionValue.AutoOrganizeBusinessChatSetting: ... @_builtins.property def bizAiSettingsNudgeAction(self) -> Global___SyncActionValue.BizAISettingsNudgeAction: ... + @_builtins.property + def coexV2VersionAction(self) -> Global___SyncActionValue.CoexV2VersionAction: ... + @_builtins.property + def wasaRootSecretAction(self) -> Global___SyncActionValue.WASARootSecretAction: ... + @_builtins.property + def bubbleLockMessageAction(self) -> Global___SyncActionValue.BubbleLockMessageAction: ... + @_builtins.property + def labelSublistAction(self) -> Global___SyncActionValue.LabelSublistAction: ... + @_builtins.property + def deviceCapabilitiesV2(self) -> Global___DeviceCapabilities: ... + @_builtins.property + def ctwaMessageReceivedAction(self) -> Global___SyncActionValue.CtwaMessageReceivedAction: ... def __init__( self, *, @@ -21287,10 +25310,16 @@ class SyncActionValue(_message.Message): threadPinAction: Global___SyncActionValue.ThreadPinAction | None = ..., autoOrganizeBusinessChatSetting: Global___SyncActionValue.AutoOrganizeBusinessChatSetting | None = ..., bizAiSettingsNudgeAction: Global___SyncActionValue.BizAISettingsNudgeAction | None = ..., + coexV2VersionAction: Global___SyncActionValue.CoexV2VersionAction | None = ..., + wasaRootSecretAction: Global___SyncActionValue.WASARootSecretAction | None = ..., + bubbleLockMessageAction: Global___SyncActionValue.BubbleLockMessageAction | None = ..., + labelSublistAction: Global___SyncActionValue.LabelSublistAction | None = ..., + deviceCapabilitiesV2: Global___DeviceCapabilities | None = ..., + ctwaMessageReceivedAction: Global___SyncActionValue.CtwaMessageReceivedAction | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["agentAction", b"agentAction", "aiThreadRenameAction", b"aiThreadRenameAction", "androidUnsupportedActions", b"androidUnsupportedActions", "archiveChatAction", b"archiveChatAction", "autoOrganizeBusinessChatSetting", b"autoOrganizeBusinessChatSetting", "avatarUpdatedAction", b"avatarUpdatedAction", "bizAiSettingsNudgeAction", b"bizAiSettingsNudgeAction", "botWelcomeRequestAction", b"botWelcomeRequestAction", "businessBroadcastCampaignAction", b"businessBroadcastCampaignAction", "businessBroadcastInsightsAction", b"businessBroadcastInsightsAction", "businessBroadcastListAction", b"businessBroadcastListAction", "callLogAction", b"callLogAction", "chatAssignment", b"chatAssignment", "chatAssignmentOpenedStatus", b"chatAssignmentOpenedStatus", "chatLockSettings", b"chatLockSettings", "clearChatAction", b"clearChatAction", "contactAction", b"contactAction", "ctwaPerCustomerDataSharingAction", b"ctwaPerCustomerDataSharingAction", "customPaymentMethodsAction", b"customPaymentMethodsAction", "customerDataAction", b"customerDataAction", "deleteChatAction", b"deleteChatAction", "deleteIndividualCallLog", b"deleteIndividualCallLog", "deleteMessageForMeAction", b"deleteMessageForMeAction", "detectedOutcomesStatusAction", b"detectedOutcomesStatusAction", "deviceCapabilities", b"deviceCapabilities", "externalWebBetaAction", b"externalWebBetaAction", "favoritesAction", b"favoritesAction", "interactiveMessageAction", b"interactiveMessageAction", "keyExpiration", b"keyExpiration", "labelAssociationAction", b"labelAssociationAction", "labelEditAction", b"labelEditAction", "labelReorderingAction", b"labelReorderingAction", "lidContactAction", b"lidContactAction", "localeSetting", b"localeSetting", "lockChatAction", b"lockChatAction", "maibaAiFeaturesControlAction", b"maibaAiFeaturesControlAction", "markChatAsReadAction", b"markChatAsReadAction", "marketingMessageAction", b"marketingMessageAction", "marketingMessageBroadcastAction", b"marketingMessageBroadcastAction", "merchantPaymentPartnerAction", b"merchantPaymentPartnerAction", "musicUserIdAction", b"musicUserIdAction", "muteAction", b"muteAction", "nctSaltSyncAction", b"nctSaltSyncAction", "newsletterSavedInterestsAction", b"newsletterSavedInterestsAction", "noteEditAction", b"noteEditAction", "notificationActivitySettingAction", b"notificationActivitySettingAction", "nuxAction", b"nuxAction", "outContactAction", b"outContactAction", "paymentInfoAction", b"paymentInfoAction", "paymentTosAction", b"paymentTosAction", "pinAction", b"pinAction", "pnForLidChatAction", b"pnForLidChatAction", "primaryFeature", b"primaryFeature", "primaryVersionAction", b"primaryVersionAction", "privacySettingChannelsPersonalisedRecommendationAction", b"privacySettingChannelsPersonalisedRecommendationAction", "privacySettingDisableLinkPreviewsAction", b"privacySettingDisableLinkPreviewsAction", "privacySettingRelayAllCalls", b"privacySettingRelayAllCalls", "privateProcessingSettingAction", b"privateProcessingSettingAction", "pushNameSetting", b"pushNameSetting", "quickReplyAction", b"quickReplyAction", "recentEmojiWeightsAction", b"recentEmojiWeightsAction", "removeRecentStickerAction", b"removeRecentStickerAction", "settingsSyncAction", b"settingsSyncAction", "starAction", b"starAction", "statusPostOptInNotificationPreferencesAction", b"statusPostOptInNotificationPreferencesAction", "statusPrivacy", b"statusPrivacy", "stickerAction", b"stickerAction", "subscriptionAction", b"subscriptionAction", "subscriptionsSyncV2Action", b"subscriptionsSyncV2Action", "threadPinAction", b"threadPinAction", "timeFormatAction", b"timeFormatAction", "timestamp", b"timestamp", "ugcBot", b"ugcBot", "unarchiveChatsSetting", b"unarchiveChatsSetting", "userStatusMuteAction", b"userStatusMuteAction", "usernameChatStartMode", b"usernameChatStartMode", "waffleAccountLinkStateAction", b"waffleAccountLinkStateAction", "wamoUserIdentifierAction", b"wamoUserIdentifierAction"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["agentAction", b"agentAction", "aiThreadRenameAction", b"aiThreadRenameAction", "androidUnsupportedActions", b"androidUnsupportedActions", "archiveChatAction", b"archiveChatAction", "autoOrganizeBusinessChatSetting", b"autoOrganizeBusinessChatSetting", "avatarUpdatedAction", b"avatarUpdatedAction", "bizAiSettingsNudgeAction", b"bizAiSettingsNudgeAction", "botWelcomeRequestAction", b"botWelcomeRequestAction", "bubbleLockMessageAction", b"bubbleLockMessageAction", "businessBroadcastCampaignAction", b"businessBroadcastCampaignAction", "businessBroadcastInsightsAction", b"businessBroadcastInsightsAction", "businessBroadcastListAction", b"businessBroadcastListAction", "callLogAction", b"callLogAction", "chatAssignment", b"chatAssignment", "chatAssignmentOpenedStatus", b"chatAssignmentOpenedStatus", "chatLockSettings", b"chatLockSettings", "clearChatAction", b"clearChatAction", "coexV2VersionAction", b"coexV2VersionAction", "contactAction", b"contactAction", "ctwaMessageReceivedAction", b"ctwaMessageReceivedAction", "ctwaPerCustomerDataSharingAction", b"ctwaPerCustomerDataSharingAction", "customPaymentMethodsAction", b"customPaymentMethodsAction", "customerDataAction", b"customerDataAction", "deleteChatAction", b"deleteChatAction", "deleteIndividualCallLog", b"deleteIndividualCallLog", "deleteMessageForMeAction", b"deleteMessageForMeAction", "detectedOutcomesStatusAction", b"detectedOutcomesStatusAction", "deviceCapabilities", b"deviceCapabilities", "deviceCapabilitiesV2", b"deviceCapabilitiesV2", "externalWebBetaAction", b"externalWebBetaAction", "favoritesAction", b"favoritesAction", "interactiveMessageAction", b"interactiveMessageAction", "keyExpiration", b"keyExpiration", "labelAssociationAction", b"labelAssociationAction", "labelEditAction", b"labelEditAction", "labelReorderingAction", b"labelReorderingAction", "labelSublistAction", b"labelSublistAction", "lidContactAction", b"lidContactAction", "localeSetting", b"localeSetting", "lockChatAction", b"lockChatAction", "maibaAiFeaturesControlAction", b"maibaAiFeaturesControlAction", "markChatAsReadAction", b"markChatAsReadAction", "marketingMessageAction", b"marketingMessageAction", "marketingMessageBroadcastAction", b"marketingMessageBroadcastAction", "merchantPaymentPartnerAction", b"merchantPaymentPartnerAction", "musicUserIdAction", b"musicUserIdAction", "muteAction", b"muteAction", "nctSaltSyncAction", b"nctSaltSyncAction", "newsletterSavedInterestsAction", b"newsletterSavedInterestsAction", "noteEditAction", b"noteEditAction", "notificationActivitySettingAction", b"notificationActivitySettingAction", "nuxAction", b"nuxAction", "outContactAction", b"outContactAction", "paymentInfoAction", b"paymentInfoAction", "paymentTosAction", b"paymentTosAction", "pinAction", b"pinAction", "pnForLidChatAction", b"pnForLidChatAction", "primaryFeature", b"primaryFeature", "primaryVersionAction", b"primaryVersionAction", "privacySettingChannelsPersonalisedRecommendationAction", b"privacySettingChannelsPersonalisedRecommendationAction", "privacySettingDisableLinkPreviewsAction", b"privacySettingDisableLinkPreviewsAction", "privacySettingRelayAllCalls", b"privacySettingRelayAllCalls", "privateProcessingSettingAction", b"privateProcessingSettingAction", "pushNameSetting", b"pushNameSetting", "quickReplyAction", b"quickReplyAction", "recentEmojiWeightsAction", b"recentEmojiWeightsAction", "removeRecentStickerAction", b"removeRecentStickerAction", "settingsSyncAction", b"settingsSyncAction", "starAction", b"starAction", "statusPostOptInNotificationPreferencesAction", b"statusPostOptInNotificationPreferencesAction", "statusPrivacy", b"statusPrivacy", "stickerAction", b"stickerAction", "subscriptionAction", b"subscriptionAction", "subscriptionsSyncV2Action", b"subscriptionsSyncV2Action", "threadPinAction", b"threadPinAction", "timeFormatAction", b"timeFormatAction", "timestamp", b"timestamp", "ugcBot", b"ugcBot", "unarchiveChatsSetting", b"unarchiveChatsSetting", "userStatusMuteAction", b"userStatusMuteAction", "usernameChatStartMode", b"usernameChatStartMode", "waffleAccountLinkStateAction", b"waffleAccountLinkStateAction", "wamoUserIdentifierAction", b"wamoUserIdentifierAction", "wasaRootSecretAction", b"wasaRootSecretAction"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["agentAction", b"agentAction", "aiThreadRenameAction", b"aiThreadRenameAction", "androidUnsupportedActions", b"androidUnsupportedActions", "archiveChatAction", b"archiveChatAction", "autoOrganizeBusinessChatSetting", b"autoOrganizeBusinessChatSetting", "avatarUpdatedAction", b"avatarUpdatedAction", "bizAiSettingsNudgeAction", b"bizAiSettingsNudgeAction", "botWelcomeRequestAction", b"botWelcomeRequestAction", "businessBroadcastCampaignAction", b"businessBroadcastCampaignAction", "businessBroadcastInsightsAction", b"businessBroadcastInsightsAction", "businessBroadcastListAction", b"businessBroadcastListAction", "callLogAction", b"callLogAction", "chatAssignment", b"chatAssignment", "chatAssignmentOpenedStatus", b"chatAssignmentOpenedStatus", "chatLockSettings", b"chatLockSettings", "clearChatAction", b"clearChatAction", "contactAction", b"contactAction", "ctwaPerCustomerDataSharingAction", b"ctwaPerCustomerDataSharingAction", "customPaymentMethodsAction", b"customPaymentMethodsAction", "customerDataAction", b"customerDataAction", "deleteChatAction", b"deleteChatAction", "deleteIndividualCallLog", b"deleteIndividualCallLog", "deleteMessageForMeAction", b"deleteMessageForMeAction", "detectedOutcomesStatusAction", b"detectedOutcomesStatusAction", "deviceCapabilities", b"deviceCapabilities", "externalWebBetaAction", b"externalWebBetaAction", "favoritesAction", b"favoritesAction", "interactiveMessageAction", b"interactiveMessageAction", "keyExpiration", b"keyExpiration", "labelAssociationAction", b"labelAssociationAction", "labelEditAction", b"labelEditAction", "labelReorderingAction", b"labelReorderingAction", "lidContactAction", b"lidContactAction", "localeSetting", b"localeSetting", "lockChatAction", b"lockChatAction", "maibaAiFeaturesControlAction", b"maibaAiFeaturesControlAction", "markChatAsReadAction", b"markChatAsReadAction", "marketingMessageAction", b"marketingMessageAction", "marketingMessageBroadcastAction", b"marketingMessageBroadcastAction", "merchantPaymentPartnerAction", b"merchantPaymentPartnerAction", "musicUserIdAction", b"musicUserIdAction", "muteAction", b"muteAction", "nctSaltSyncAction", b"nctSaltSyncAction", "newsletterSavedInterestsAction", b"newsletterSavedInterestsAction", "noteEditAction", b"noteEditAction", "notificationActivitySettingAction", b"notificationActivitySettingAction", "nuxAction", b"nuxAction", "outContactAction", b"outContactAction", "paymentInfoAction", b"paymentInfoAction", "paymentTosAction", b"paymentTosAction", "pinAction", b"pinAction", "pnForLidChatAction", b"pnForLidChatAction", "primaryFeature", b"primaryFeature", "primaryVersionAction", b"primaryVersionAction", "privacySettingChannelsPersonalisedRecommendationAction", b"privacySettingChannelsPersonalisedRecommendationAction", "privacySettingDisableLinkPreviewsAction", b"privacySettingDisableLinkPreviewsAction", "privacySettingRelayAllCalls", b"privacySettingRelayAllCalls", "privateProcessingSettingAction", b"privateProcessingSettingAction", "pushNameSetting", b"pushNameSetting", "quickReplyAction", b"quickReplyAction", "recentEmojiWeightsAction", b"recentEmojiWeightsAction", "removeRecentStickerAction", b"removeRecentStickerAction", "settingsSyncAction", b"settingsSyncAction", "starAction", b"starAction", "statusPostOptInNotificationPreferencesAction", b"statusPostOptInNotificationPreferencesAction", "statusPrivacy", b"statusPrivacy", "stickerAction", b"stickerAction", "subscriptionAction", b"subscriptionAction", "subscriptionsSyncV2Action", b"subscriptionsSyncV2Action", "threadPinAction", b"threadPinAction", "timeFormatAction", b"timeFormatAction", "timestamp", b"timestamp", "ugcBot", b"ugcBot", "unarchiveChatsSetting", b"unarchiveChatsSetting", "userStatusMuteAction", b"userStatusMuteAction", "usernameChatStartMode", b"usernameChatStartMode", "waffleAccountLinkStateAction", b"waffleAccountLinkStateAction", "wamoUserIdentifierAction", b"wamoUserIdentifierAction"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["agentAction", b"agentAction", "aiThreadRenameAction", b"aiThreadRenameAction", "androidUnsupportedActions", b"androidUnsupportedActions", "archiveChatAction", b"archiveChatAction", "autoOrganizeBusinessChatSetting", b"autoOrganizeBusinessChatSetting", "avatarUpdatedAction", b"avatarUpdatedAction", "bizAiSettingsNudgeAction", b"bizAiSettingsNudgeAction", "botWelcomeRequestAction", b"botWelcomeRequestAction", "bubbleLockMessageAction", b"bubbleLockMessageAction", "businessBroadcastCampaignAction", b"businessBroadcastCampaignAction", "businessBroadcastInsightsAction", b"businessBroadcastInsightsAction", "businessBroadcastListAction", b"businessBroadcastListAction", "callLogAction", b"callLogAction", "chatAssignment", b"chatAssignment", "chatAssignmentOpenedStatus", b"chatAssignmentOpenedStatus", "chatLockSettings", b"chatLockSettings", "clearChatAction", b"clearChatAction", "coexV2VersionAction", b"coexV2VersionAction", "contactAction", b"contactAction", "ctwaMessageReceivedAction", b"ctwaMessageReceivedAction", "ctwaPerCustomerDataSharingAction", b"ctwaPerCustomerDataSharingAction", "customPaymentMethodsAction", b"customPaymentMethodsAction", "customerDataAction", b"customerDataAction", "deleteChatAction", b"deleteChatAction", "deleteIndividualCallLog", b"deleteIndividualCallLog", "deleteMessageForMeAction", b"deleteMessageForMeAction", "detectedOutcomesStatusAction", b"detectedOutcomesStatusAction", "deviceCapabilities", b"deviceCapabilities", "deviceCapabilitiesV2", b"deviceCapabilitiesV2", "externalWebBetaAction", b"externalWebBetaAction", "favoritesAction", b"favoritesAction", "interactiveMessageAction", b"interactiveMessageAction", "keyExpiration", b"keyExpiration", "labelAssociationAction", b"labelAssociationAction", "labelEditAction", b"labelEditAction", "labelReorderingAction", b"labelReorderingAction", "labelSublistAction", b"labelSublistAction", "lidContactAction", b"lidContactAction", "localeSetting", b"localeSetting", "lockChatAction", b"lockChatAction", "maibaAiFeaturesControlAction", b"maibaAiFeaturesControlAction", "markChatAsReadAction", b"markChatAsReadAction", "marketingMessageAction", b"marketingMessageAction", "marketingMessageBroadcastAction", b"marketingMessageBroadcastAction", "merchantPaymentPartnerAction", b"merchantPaymentPartnerAction", "musicUserIdAction", b"musicUserIdAction", "muteAction", b"muteAction", "nctSaltSyncAction", b"nctSaltSyncAction", "newsletterSavedInterestsAction", b"newsletterSavedInterestsAction", "noteEditAction", b"noteEditAction", "notificationActivitySettingAction", b"notificationActivitySettingAction", "nuxAction", b"nuxAction", "outContactAction", b"outContactAction", "paymentInfoAction", b"paymentInfoAction", "paymentTosAction", b"paymentTosAction", "pinAction", b"pinAction", "pnForLidChatAction", b"pnForLidChatAction", "primaryFeature", b"primaryFeature", "primaryVersionAction", b"primaryVersionAction", "privacySettingChannelsPersonalisedRecommendationAction", b"privacySettingChannelsPersonalisedRecommendationAction", "privacySettingDisableLinkPreviewsAction", b"privacySettingDisableLinkPreviewsAction", "privacySettingRelayAllCalls", b"privacySettingRelayAllCalls", "privateProcessingSettingAction", b"privateProcessingSettingAction", "pushNameSetting", b"pushNameSetting", "quickReplyAction", b"quickReplyAction", "recentEmojiWeightsAction", b"recentEmojiWeightsAction", "removeRecentStickerAction", b"removeRecentStickerAction", "settingsSyncAction", b"settingsSyncAction", "starAction", b"starAction", "statusPostOptInNotificationPreferencesAction", b"statusPostOptInNotificationPreferencesAction", "statusPrivacy", b"statusPrivacy", "stickerAction", b"stickerAction", "subscriptionAction", b"subscriptionAction", "subscriptionsSyncV2Action", b"subscriptionsSyncV2Action", "threadPinAction", b"threadPinAction", "timeFormatAction", b"timeFormatAction", "timestamp", b"timestamp", "ugcBot", b"ugcBot", "unarchiveChatsSetting", b"unarchiveChatsSetting", "userStatusMuteAction", b"userStatusMuteAction", "usernameChatStartMode", b"usernameChatStartMode", "waffleAccountLinkStateAction", b"waffleAccountLinkStateAction", "wamoUserIdentifierAction", b"wamoUserIdentifierAction", "wasaRootSecretAction", b"wasaRootSecretAction"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... Global___SyncActionValue: _TypeAlias = SyncActionValue # noqa: Y015 @@ -21989,6 +26018,43 @@ class VerifiedNameCertificate(_message.Message): Global___VerifiedNameCertificate: _TypeAlias = VerifiedNameCertificate # noqa: Y015 +@_typing.final +class VirtualDeviceOutput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + VDID_FIELD_NUMBER: _builtins.int + VDPUBLICKEY_FIELD_NUMBER: _builtins.int + VDEPOCHSTORAGEPUBLICKEY_FIELD_NUMBER: _builtins.int + VDEPOCHSTORAGEPUBLICKEYSIG_FIELD_NUMBER: _builtins.int + OCMFROTATIONTOKEN_FIELD_NUMBER: _builtins.int + DEVICEEPOCHHMAC_FIELD_NUMBER: _builtins.int + ENCRYPTEDSECRETVALUES_FIELD_NUMBER: _builtins.int + vdId: _builtins.bytes + vdPublicKey: _builtins.bytes + vdEpochStoragePublicKey: _builtins.bytes + vdEpochStoragePublicKeySig: _builtins.bytes + ocmfRotationToken: _builtins.bytes + deviceEpochHmac: _builtins.bytes + @_builtins.property + def encryptedSecretValues(self) -> Global___EncryptedSecretValuesOutput: ... + def __init__( + self, + *, + vdId: _builtins.bytes | None = ..., + vdPublicKey: _builtins.bytes | None = ..., + vdEpochStoragePublicKey: _builtins.bytes | None = ..., + vdEpochStoragePublicKeySig: _builtins.bytes | None = ..., + ocmfRotationToken: _builtins.bytes | None = ..., + deviceEpochHmac: _builtins.bytes | None = ..., + encryptedSecretValues: Global___EncryptedSecretValuesOutput | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["deviceEpochHmac", b"deviceEpochHmac", "encryptedSecretValues", b"encryptedSecretValues", "ocmfRotationToken", b"ocmfRotationToken", "vdEpochStoragePublicKey", b"vdEpochStoragePublicKey", "vdEpochStoragePublicKeySig", b"vdEpochStoragePublicKeySig", "vdId", b"vdId", "vdPublicKey", b"vdPublicKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["deviceEpochHmac", b"deviceEpochHmac", "encryptedSecretValues", b"encryptedSecretValues", "ocmfRotationToken", b"ocmfRotationToken", "vdEpochStoragePublicKey", b"vdEpochStoragePublicKey", "vdEpochStoragePublicKeySig", b"vdEpochStoragePublicKeySig", "vdId", b"vdId", "vdPublicKey", b"vdPublicKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___VirtualDeviceOutput: _TypeAlias = VirtualDeviceOutput # noqa: Y015 + @_typing.final class WallpaperSettings(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -22454,6 +26520,10 @@ class WebMessageInfo(_message.Message): GROUP_TEE_BOT_ADDED: WebMessageInfo._StubType.ValueType # 223 CONTACT_INFO: WebMessageInfo._StubType.ValueType # 224 SCHEDULED_MESSAGE_CREATED: WebMessageInfo._StubType.ValueType # 225 + IDENTITY_TRUST_MARKED: WebMessageInfo._StubType.ValueType # 226 + IDENTITY_TRUST_UNMARKED: WebMessageInfo._StubType.ValueType # 227 + IDENTITY_TRUST_REVOKED: WebMessageInfo._StubType.ValueType # 228 + CTWA_CONSUMER_DISCLOSURE: WebMessageInfo._StubType.ValueType # 230 class StubType(_StubType, metaclass=_StubTypeEnumTypeWrapper): ... UNKNOWN: WebMessageInfo.StubType.ValueType # 0 @@ -22682,6 +26752,10 @@ class WebMessageInfo(_message.Message): GROUP_TEE_BOT_ADDED: WebMessageInfo.StubType.ValueType # 223 CONTACT_INFO: WebMessageInfo.StubType.ValueType # 224 SCHEDULED_MESSAGE_CREATED: WebMessageInfo.StubType.ValueType # 225 + IDENTITY_TRUST_MARKED: WebMessageInfo.StubType.ValueType # 226 + IDENTITY_TRUST_UNMARKED: WebMessageInfo.StubType.ValueType # 227 + IDENTITY_TRUST_REVOKED: WebMessageInfo.StubType.ValueType # 228 + CTWA_CONSUMER_DISCLOSURE: WebMessageInfo.StubType.ValueType # 230 KEY_FIELD_NUMBER: _builtins.int MESSAGE_FIELD_NUMBER: _builtins.int @@ -22993,3 +27067,75 @@ class WebNotificationsInfo(_message.Message): def ClearField(self, field_name: _ClearFieldArgType) -> None: ... Global___WebNotificationsInfo: _TypeAlias = WebNotificationsInfo # noqa: Y015 + +@_typing.final +class WrapTransportSigningPublicKeyInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + KEYBYTES_FIELD_NUMBER: _builtins.int + keyBytes: _builtins.bytes + def __init__( + self, + *, + keyBytes: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["keyBytes", b"keyBytes"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["keyBytes", b"keyBytes"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___WrapTransportSigningPublicKeyInput: _TypeAlias = WrapTransportSigningPublicKeyInput # noqa: Y015 + +@_typing.final +class WrapTransportSigningPublicKeyResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + PREFIXEDKEY_FIELD_NUMBER: _builtins.int + prefixedKey: _builtins.bytes + def __init__( + self, + *, + prefixedKey: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["prefixedKey", b"prefixedKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["prefixedKey", b"prefixedKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___WrapTransportSigningPublicKeyResult: _TypeAlias = WrapTransportSigningPublicKeyResult # noqa: Y015 + +@_typing.final +class WrapTransportSigningSecretKeyInput(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + KEYBYTES_FIELD_NUMBER: _builtins.int + keyBytes: _builtins.bytes + def __init__( + self, + *, + keyBytes: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["keyBytes", b"keyBytes"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["keyBytes", b"keyBytes"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___WrapTransportSigningSecretKeyInput: _TypeAlias = WrapTransportSigningSecretKeyInput # noqa: Y015 + +@_typing.final +class WrapTransportSigningSecretKeyResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + PREFIXEDKEY_FIELD_NUMBER: _builtins.int + prefixedKey: _builtins.bytes + def __init__( + self, + *, + prefixedKey: _builtins.bytes | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["prefixedKey", b"prefixedKey"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["prefixedKey", b"prefixedKey"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___WrapTransportSigningSecretKeyResult: _TypeAlias = WrapTransportSigningSecretKeyResult # noqa: Y015 diff --git a/src/clients/tryx.rs b/src/clients/tryx.rs index 18243b7..49eb52b 100644 --- a/src/clients/tryx.rs +++ b/src/clients/tryx.rs @@ -111,7 +111,7 @@ impl Tryx { }) } else if let (Ok(lib_path), Ok(config_json)) = ( backend.getattr(py, "lib_path").and_then(|v| v.extract::(py)), - backend.getattr(py, "connect_string").and_then(|v| v.extract::(py)), + backend.getattr(py, "config_json").and_then(|v| v.extract::(py)), ) { debug!("detected FFI backend from Python via duck-typing"); diff --git a/uv.lock b/uv.lock index b3ec9f2..8839f14 100644 --- a/uv.lock +++ b/uv.lock @@ -512,6 +512,423 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f6/b6/f65ac785d4ac90dcf7c831ac6256f5dd4a19780f4e1575b2c0d6eeebe319/griffelib-2.2.0-py3-none-any.whl", hash = "sha256:d71c3bc2bbed9f958488634fe788b843a9f705d6d2838ca32cd6c25eeb64dfc4", size = 166779, upload-time = "2026-08-16T14:04:54.365Z" }, ] +[[package]] +name = "grpcio" +version = "1.70.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.9'", +] +sdist = { url = "https://files.pythonhosted.org/packages/69/e1/4b21b5017c33f3600dcc32b802bb48fe44a4d36d6c066f52650c7c2690fa/grpcio-1.70.0.tar.gz", hash = "sha256:8d1584a68d5922330025881e63a6c1b54cc8117291d382e4fa69339b6d914c56", size = 12788932, upload-time = "2025-01-23T18:00:17.288Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/e9/f72408bac1f7b05b25e4df569b02d6b200c8e7857193aa9f1df7a3744add/grpcio-1.70.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:95469d1977429f45fe7df441f586521361e235982a0b39e33841549143ae2851", size = 5229736, upload-time = "2025-01-23T17:52:55.697Z" }, + { url = "https://files.pythonhosted.org/packages/b3/17/e65139ea76dac7bcd8a3f17cbd37e3d1a070c44db3098d0be5e14c5bd6a1/grpcio-1.70.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:ed9718f17fbdb472e33b869c77a16d0b55e166b100ec57b016dc7de9c8d236bf", size = 11432751, upload-time = "2025-01-23T17:52:58.338Z" }, + { url = "https://files.pythonhosted.org/packages/a0/12/42de6082b4ab14a59d30b2fc7786882fdaa75813a4a4f3d4a8c4acd6ed59/grpcio-1.70.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:374d014f29f9dfdb40510b041792e0e2828a1389281eb590df066e1cc2b404e5", size = 5711439, upload-time = "2025-01-23T17:53:21.438Z" }, + { url = "https://files.pythonhosted.org/packages/34/f8/b5a19524d273cbd119274a387bb72d6fbb74578e13927a473bc34369f079/grpcio-1.70.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2af68a6f5c8f78d56c145161544ad0febbd7479524a59c16b3e25053f39c87f", size = 6330777, upload-time = "2025-01-23T17:53:23.655Z" }, + { url = "https://files.pythonhosted.org/packages/1a/67/3d6c0ad786238aac7fa93b79246fc452978fbfe9e5f86f70da8e8a2797d0/grpcio-1.70.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce7df14b2dcd1102a2ec32f621cc9fab6695effef516efbc6b063ad749867295", size = 5944639, upload-time = "2025-01-23T17:53:26.699Z" }, + { url = "https://files.pythonhosted.org/packages/76/0d/d9f7cbc41c2743cf18236a29b6a582f41bd65572a7144d92b80bc1e68479/grpcio-1.70.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c78b339869f4dbf89881e0b6fbf376313e4f845a42840a7bdf42ee6caed4b11f", size = 6643543, upload-time = "2025-01-23T17:53:30.758Z" }, + { url = "https://files.pythonhosted.org/packages/fc/24/bdd7e606b3400c14330e33a4698fa3a49e38a28c9e0a831441adbd3380d2/grpcio-1.70.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:58ad9ba575b39edef71f4798fdb5c7b6d02ad36d47949cd381d4392a5c9cbcd3", size = 6199897, upload-time = "2025-01-23T17:53:34.656Z" }, + { url = "https://files.pythonhosted.org/packages/d1/33/8132eb370087960c82d01b89faeb28f3e58f5619ffe19889f57c58a19c18/grpcio-1.70.0-cp310-cp310-win32.whl", hash = "sha256:2b0d02e4b25a5c1f9b6c7745d4fa06efc9fd6a611af0fb38d3ba956786b95199", size = 3617513, upload-time = "2025-01-23T17:53:37.323Z" }, + { url = "https://files.pythonhosted.org/packages/99/bc/0fce5cfc0ca969df66f5dca6cf8d2258abb88146bf9ab89d8cf48e970137/grpcio-1.70.0-cp310-cp310-win_amd64.whl", hash = "sha256:0de706c0a5bb9d841e353f6343a9defc9fc35ec61d6eb6111802f3aa9fef29e1", size = 4303342, upload-time = "2025-01-23T17:53:41.719Z" }, + { url = "https://files.pythonhosted.org/packages/65/c4/1f67d23d6bcadd2fd61fb460e5969c52b3390b4a4e254b5e04a6d1009e5e/grpcio-1.70.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:17325b0be0c068f35770f944124e8839ea3185d6d54862800fc28cc2ffad205a", size = 5229017, upload-time = "2025-01-23T17:53:44.732Z" }, + { url = "https://files.pythonhosted.org/packages/e4/bd/cc36811c582d663a740fb45edf9f99ddbd99a10b6ba38267dc925e1e193a/grpcio-1.70.0-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:dbe41ad140df911e796d4463168e33ef80a24f5d21ef4d1e310553fcd2c4a386", size = 11472027, upload-time = "2025-01-23T17:53:50.417Z" }, + { url = "https://files.pythonhosted.org/packages/7e/32/8538bb2ace5cd72da7126d1c9804bf80b4fe3be70e53e2d55675c24961a8/grpcio-1.70.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:5ea67c72101d687d44d9c56068328da39c9ccba634cabb336075fae2eab0d04b", size = 5707785, upload-time = "2025-01-23T17:53:54.511Z" }, + { url = "https://files.pythonhosted.org/packages/ce/5c/a45f85f2a0dfe4a6429dee98717e0e8bd7bd3f604315493c39d9679ca065/grpcio-1.70.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb5277db254ab7586769e490b7b22f4ddab3876c490da0a1a9d7c695ccf0bf77", size = 6331599, upload-time = "2025-01-23T17:53:58.156Z" }, + { url = "https://files.pythonhosted.org/packages/9f/e5/5316b239380b8b2ad30373eb5bb25d9fd36c0375e94a98a0a60ea357d254/grpcio-1.70.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7831a0fc1beeeb7759f737f5acd9fdcda520e955049512d68fda03d91186eea", size = 5940834, upload-time = "2025-01-23T17:54:00.404Z" }, + { url = "https://files.pythonhosted.org/packages/05/33/dbf035bc6d167068b4a9f2929dfe0b03fb763f0f861ecb3bb1709a14cb65/grpcio-1.70.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:27cc75e22c5dba1fbaf5a66c778e36ca9b8ce850bf58a9db887754593080d839", size = 6641191, upload-time = "2025-01-23T17:54:02.916Z" }, + { url = "https://files.pythonhosted.org/packages/4c/c4/684d877517e5bfd6232d79107e5a1151b835e9f99051faef51fed3359ec4/grpcio-1.70.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d63764963412e22f0491d0d32833d71087288f4e24cbcddbae82476bfa1d81fd", size = 6198744, upload-time = "2025-01-23T17:54:06.842Z" }, + { url = "https://files.pythonhosted.org/packages/e9/43/92fe5eeaf340650a7020cfb037402c7b9209e7a0f3011ea1626402219034/grpcio-1.70.0-cp311-cp311-win32.whl", hash = "sha256:bb491125103c800ec209d84c9b51f1c60ea456038e4734688004f377cfacc113", size = 3617111, upload-time = "2025-01-23T17:54:10.329Z" }, + { url = "https://files.pythonhosted.org/packages/55/15/b6cf2c9515c028aff9da6984761a3ab484a472b0dc6435fcd07ced42127d/grpcio-1.70.0-cp311-cp311-win_amd64.whl", hash = "sha256:d24035d49e026353eb042bf7b058fb831db3e06d52bee75c5f2f3ab453e71aca", size = 4304604, upload-time = "2025-01-23T17:54:12.844Z" }, + { url = "https://files.pythonhosted.org/packages/4c/a4/ddbda79dd176211b518f0f3795af78b38727a31ad32bc149d6a7b910a731/grpcio-1.70.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:ef4c14508299b1406c32bdbb9fb7b47612ab979b04cf2b27686ea31882387cff", size = 5198135, upload-time = "2025-01-23T17:54:16.026Z" }, + { url = "https://files.pythonhosted.org/packages/30/5c/60eb8a063ea4cb8d7670af8fac3f2033230fc4b75f62669d67c66ac4e4b0/grpcio-1.70.0-cp312-cp312-macosx_10_14_universal2.whl", hash = "sha256:aa47688a65643afd8b166928a1da6247d3f46a2784d301e48ca1cc394d2ffb40", size = 11447529, upload-time = "2025-01-23T17:54:18.568Z" }, + { url = "https://files.pythonhosted.org/packages/fb/b9/1bf8ab66729f13b44e8f42c9de56417d3ee6ab2929591cfee78dce749b57/grpcio-1.70.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:880bfb43b1bb8905701b926274eafce5c70a105bc6b99e25f62e98ad59cb278e", size = 5664484, upload-time = "2025-01-23T17:54:22.169Z" }, + { url = "https://files.pythonhosted.org/packages/d1/06/2f377d6906289bee066d96e9bdb91e5e96d605d173df9bb9856095cccb57/grpcio-1.70.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e654c4b17d07eab259d392e12b149c3a134ec52b11ecdc6a515b39aceeec898", size = 6303739, upload-time = "2025-01-23T17:54:25.612Z" }, + { url = "https://files.pythonhosted.org/packages/ae/50/64c94cfc4db8d9ed07da71427a936b5a2bd2b27c66269b42fbda82c7c7a4/grpcio-1.70.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2394e3381071045a706ee2eeb6e08962dd87e8999b90ac15c55f56fa5a8c9597", size = 5910417, upload-time = "2025-01-23T17:54:28.336Z" }, + { url = "https://files.pythonhosted.org/packages/53/89/8795dfc3db4389c15554eb1765e14cba8b4c88cc80ff828d02f5572965af/grpcio-1.70.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:b3c76701428d2df01964bc6479422f20e62fcbc0a37d82ebd58050b86926ef8c", size = 6626797, upload-time = "2025-01-23T17:54:31.372Z" }, + { url = "https://files.pythonhosted.org/packages/9c/b2/6a97ac91042a2c59d18244c479ee3894e7fb6f8c3a90619bb5a7757fa30c/grpcio-1.70.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ac073fe1c4cd856ebcf49e9ed6240f4f84d7a4e6ee95baa5d66ea05d3dd0df7f", size = 6190055, upload-time = "2025-01-23T17:54:34.254Z" }, + { url = "https://files.pythonhosted.org/packages/86/2b/28db55c8c4d156053a8c6f4683e559cd0a6636f55a860f87afba1ac49a51/grpcio-1.70.0-cp312-cp312-win32.whl", hash = "sha256:cd24d2d9d380fbbee7a5ac86afe9787813f285e684b0271599f95a51bce33528", size = 3600214, upload-time = "2025-01-23T17:54:36.631Z" }, + { url = "https://files.pythonhosted.org/packages/17/c3/a7a225645a965029ed432e5b5e9ed959a574e62100afab553eef58be0e37/grpcio-1.70.0-cp312-cp312-win_amd64.whl", hash = "sha256:0495c86a55a04a874c7627fd33e5beaee771917d92c0e6d9d797628ac40e7655", size = 4292538, upload-time = "2025-01-23T17:54:38.845Z" }, + { url = "https://files.pythonhosted.org/packages/68/38/66d0f32f88feaf7d83f8559cd87d899c970f91b1b8a8819b58226de0a496/grpcio-1.70.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:aa573896aeb7d7ce10b1fa425ba263e8dddd83d71530d1322fd3a16f31257b4a", size = 5199218, upload-time = "2025-01-23T17:54:40.964Z" }, + { url = "https://files.pythonhosted.org/packages/c1/96/947df763a0b18efb5cc6c2ae348e56d97ca520dc5300c01617b234410173/grpcio-1.70.0-cp313-cp313-macosx_10_14_universal2.whl", hash = "sha256:d405b005018fd516c9ac529f4b4122342f60ec1cee181788249372524e6db429", size = 11445983, upload-time = "2025-01-23T17:54:43.527Z" }, + { url = "https://files.pythonhosted.org/packages/fd/5b/f3d4b063e51b2454bedb828e41f3485800889a3609c49e60f2296cc8b8e5/grpcio-1.70.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:f32090238b720eb585248654db8e3afc87b48d26ac423c8dde8334a232ff53c9", size = 5663954, upload-time = "2025-01-23T17:54:47.532Z" }, + { url = "https://files.pythonhosted.org/packages/bd/0b/dab54365fcedf63e9f358c1431885478e77d6f190d65668936b12dd38057/grpcio-1.70.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfa089a734f24ee5f6880c83d043e4f46bf812fcea5181dcb3a572db1e79e01c", size = 6304323, upload-time = "2025-01-23T17:54:50.036Z" }, + { url = "https://files.pythonhosted.org/packages/76/a8/8f965a7171ddd336ce32946e22954aa1bbc6f23f095e15dadaa70604ba20/grpcio-1.70.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f19375f0300b96c0117aca118d400e76fede6db6e91f3c34b7b035822e06c35f", size = 5910939, upload-time = "2025-01-23T17:54:52.455Z" }, + { url = "https://files.pythonhosted.org/packages/1b/05/0bbf68be8b17d1ed6f178435a3c0c12e665a1e6054470a64ce3cb7896596/grpcio-1.70.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:7c73c42102e4a5ec76608d9b60227d917cea46dff4d11d372f64cbeb56d259d0", size = 6631405, upload-time = "2025-01-23T17:54:55.808Z" }, + { url = "https://files.pythonhosted.org/packages/79/6a/5df64b6df405a1ed1482cb6c10044b06ec47fd28e87c2232dbcf435ecb33/grpcio-1.70.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:0a5c78d5198a1f0aa60006cd6eb1c912b4a1520b6a3968e677dbcba215fabb40", size = 6190982, upload-time = "2025-01-23T17:54:58.405Z" }, + { url = "https://files.pythonhosted.org/packages/42/aa/aeaac87737e6d25d1048c53b8ec408c056d3ed0c922e7c5efad65384250c/grpcio-1.70.0-cp313-cp313-win32.whl", hash = "sha256:fe9dbd916df3b60e865258a8c72ac98f3ac9e2a9542dcb72b7a34d236242a5ce", size = 3598359, upload-time = "2025-01-23T17:55:00.671Z" }, + { url = "https://files.pythonhosted.org/packages/1f/79/8edd2442d2de1431b4a3de84ef91c37002f12de0f9b577fb07b452989dbc/grpcio-1.70.0-cp313-cp313-win_amd64.whl", hash = "sha256:4119fed8abb7ff6c32e3d2255301e59c316c22d31ab812b3fbcbaf3d0d87cc68", size = 4293938, upload-time = "2025-01-23T17:55:02.821Z" }, + { url = "https://files.pythonhosted.org/packages/38/5f/d7fe323c18a2ec98a2a9b38fb985f5e843f76990298d7c4ce095f44b46a7/grpcio-1.70.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:8058667a755f97407fca257c844018b80004ae8035565ebc2812cc550110718d", size = 5232027, upload-time = "2025-01-23T17:55:07.597Z" }, + { url = "https://files.pythonhosted.org/packages/d4/4b/3d3b5548575b635f51883212a482cd237e8525535d4591b9dc7e5b2c2ddc/grpcio-1.70.0-cp38-cp38-macosx_10_14_universal2.whl", hash = "sha256:879a61bf52ff8ccacbedf534665bb5478ec8e86ad483e76fe4f729aaef867cab", size = 11448811, upload-time = "2025-01-23T17:55:11.773Z" }, + { url = "https://files.pythonhosted.org/packages/8a/d7/9a0922fc12d339271c7e4e6691470172b7c13715fed7bd934274803f1527/grpcio-1.70.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:0ba0a173f4feacf90ee618fbc1a27956bfd21260cd31ced9bc707ef551ff7dc7", size = 5711890, upload-time = "2025-01-23T17:55:17.167Z" }, + { url = "https://files.pythonhosted.org/packages/1e/ae/d4dbf8bff0f1d270f118d08558bc8dc0489e026d6620a4e3ee2d79d79041/grpcio-1.70.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:558c386ecb0148f4f99b1a65160f9d4b790ed3163e8610d11db47838d452512d", size = 6331933, upload-time = "2025-01-23T17:55:19.771Z" }, + { url = "https://files.pythonhosted.org/packages/2c/64/66a74c02b00e00b919c245ca9da8e5c44e8692bf3fe7f27efbc97572566c/grpcio-1.70.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:412faabcc787bbc826f51be261ae5fa996b21263de5368a55dc2cf824dc5090e", size = 5950685, upload-time = "2025-01-23T17:55:22.253Z" }, + { url = "https://files.pythonhosted.org/packages/b0/64/e992ac693118c37164e085676216d258804d7a5bbf3581d3f989c843a9a5/grpcio-1.70.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3b0f01f6ed9994d7a0b27eeddea43ceac1b7e6f3f9d86aeec0f0064b8cf50fdb", size = 6640974, upload-time = "2025-01-23T17:55:24.757Z" }, + { url = "https://files.pythonhosted.org/packages/57/17/34d0a6af4477fd48b8b41d13782fb1e35b8841b17d6ac7a3eb24d2f3b17e/grpcio-1.70.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:7385b1cb064734005204bc8994eed7dcb801ed6c2eda283f613ad8c6c75cf873", size = 6204792, upload-time = "2025-01-23T17:55:27Z" }, + { url = "https://files.pythonhosted.org/packages/d3/e5/e45d8eb81929c0becd5bda413b60262f79d862e19cff632d496909aa3bd0/grpcio-1.70.0-cp38-cp38-win32.whl", hash = "sha256:07269ff4940f6fb6710951116a04cd70284da86d0a4368fd5a3b552744511f5a", size = 3620015, upload-time = "2025-01-23T17:55:29.386Z" }, + { url = "https://files.pythonhosted.org/packages/87/7d/36009c38093e62969c708f20b86ab6761c2ba974b12ff10def6f397f24fa/grpcio-1.70.0-cp38-cp38-win_amd64.whl", hash = "sha256:aba19419aef9b254e15011b230a180e26e0f6864c90406fdbc255f01d83bc83c", size = 4307043, upload-time = "2025-01-23T17:55:31.823Z" }, + { url = "https://files.pythonhosted.org/packages/9d/0e/64061c9746a2dd6e07cb0a0f3829f0a431344add77ec36397cc452541ff6/grpcio-1.70.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:4f1937f47c77392ccd555728f564a49128b6a197a05a5cd527b796d36f3387d0", size = 5231123, upload-time = "2025-01-23T17:55:34.09Z" }, + { url = "https://files.pythonhosted.org/packages/72/9f/c93501d5f361aecee0146ab19300d5acb1c2747b00217c641f06fffbcd62/grpcio-1.70.0-cp39-cp39-macosx_10_14_universal2.whl", hash = "sha256:0cd430b9215a15c10b0e7d78f51e8a39d6cf2ea819fd635a7214fae600b1da27", size = 11467217, upload-time = "2025-01-23T17:55:37.042Z" }, + { url = "https://files.pythonhosted.org/packages/0a/1a/980d115b701023450a304881bf3f6309f6fb15787f9b78d2728074f3bf86/grpcio-1.70.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:e27585831aa6b57b9250abaf147003e126cd3a6c6ca0c531a01996f31709bed1", size = 5710913, upload-time = "2025-01-23T17:55:40.998Z" }, + { url = "https://files.pythonhosted.org/packages/a0/84/af420067029808f9790e98143b3dd0f943bebba434a4706755051a520c91/grpcio-1.70.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c1af8e15b0f0fe0eac75195992a63df17579553b0c4af9f8362cc7cc99ccddf4", size = 6330947, upload-time = "2025-01-23T17:55:43.538Z" }, + { url = "https://files.pythonhosted.org/packages/24/1c/e1f06a7d29a1fa5053dcaf5352a50f8e1f04855fd194a65422a9d685d375/grpcio-1.70.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbce24409beaee911c574a3d75d12ffb8c3e3dd1b813321b1d7a96bbcac46bf4", size = 5943913, upload-time = "2025-01-23T17:55:45.936Z" }, + { url = "https://files.pythonhosted.org/packages/41/8f/de13838e4467519a50cd0693e98b0b2bcc81d656013c38a1dd7dcb801526/grpcio-1.70.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ff4a8112a79464919bb21c18e956c54add43ec9a4850e3949da54f61c241a4a6", size = 6643236, upload-time = "2025-01-23T17:55:48.9Z" }, + { url = "https://files.pythonhosted.org/packages/ac/73/d68c745d34e43a80440da4f3d79fa02c56cb118c2a26ba949f3cfd8316d7/grpcio-1.70.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5413549fdf0b14046c545e19cfc4eb1e37e9e1ebba0ca390a8d4e9963cab44d2", size = 6199038, upload-time = "2025-01-23T17:55:58.854Z" }, + { url = "https://files.pythonhosted.org/packages/7e/dd/991f100b8c31636b4bb2a941dbbf54dbcc55d69c722cfa038c3d017eaa0c/grpcio-1.70.0-cp39-cp39-win32.whl", hash = "sha256:b745d2c41b27650095e81dea7091668c040457483c9bdb5d0d9de8f8eb25e59f", size = 3617512, upload-time = "2025-01-23T17:56:01.326Z" }, + { url = "https://files.pythonhosted.org/packages/4d/80/1aa2ba791207a13e314067209b48e1a0893ed8d1f43ef012e194aaa6c2de/grpcio-1.70.0-cp39-cp39-win_amd64.whl", hash = "sha256:a31d7e3b529c94e930a117b2175b2efd179d96eb3c7a21ccb0289a8ab05b645c", size = 4303506, upload-time = "2025-01-23T17:56:03.842Z" }, +] + +[[package]] +name = "grpcio" +version = "1.80.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" } }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b7/48/af6173dbca4454f4637a4678b67f52ca7e0c1ed7d5894d89d434fecede05/grpcio-1.80.0.tar.gz", hash = "sha256:29aca15edd0688c22ba01d7cc01cb000d72b2033f4a3c72a81a19b56fd143257", size = 12978905, upload-time = "2026-03-30T08:49:10.502Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/cd/bb7b7e54084a344c03d68144450da7ddd5564e51a298ae1662de65f48e2d/grpcio-1.80.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:886457a7768e408cdce226ad1ca67d2958917d306523a0e21e1a2fdaa75c9c9c", size = 6050363, upload-time = "2026-03-30T08:46:20.894Z" }, + { url = "https://files.pythonhosted.org/packages/16/02/1417f5c3460dea65f7a2e3c14e8b31e77f7ffb730e9bfadd89eda7a9f477/grpcio-1.80.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:7b641fc3f1dc647bfd80bd713addc68f6d145956f64677e56d9ebafc0bd72388", size = 12026037, upload-time = "2026-03-30T08:46:25.144Z" }, + { url = "https://files.pythonhosted.org/packages/43/98/c910254eedf2cae368d78336a2de0678e66a7317d27c02522392f949b5c6/grpcio-1.80.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:33eb763f18f006dc7fee1e69831d38d23f5eccd15b2e0f92a13ee1d9242e5e02", size = 6602306, upload-time = "2026-03-30T08:46:27.593Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f8/88ca4e78c077b2b2113d95da1e1ab43efd43d723c9a0397d26529c2c1a56/grpcio-1.80.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:52d143637e3872633fc7dd7c3c6a1c84e396b359f3a72e215f8bf69fd82084fc", size = 7301535, upload-time = "2026-03-30T08:46:29.556Z" }, + { url = "https://files.pythonhosted.org/packages/f9/96/f28660fe2fe0f153288bf4a04e4910b7309d442395135c88ed4f5b3b8b40/grpcio-1.80.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c51bf8ac4575af2e0678bccfb07e47321fc7acb5049b4482832c5c195e04e13a", size = 6808669, upload-time = "2026-03-30T08:46:31.984Z" }, + { url = "https://files.pythonhosted.org/packages/47/eb/3f68a5e955779c00aeef23850e019c1c1d0e032d90633ba49c01ad5a96e0/grpcio-1.80.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:50a9871536d71c4fba24ee856abc03a87764570f0c457dd8db0b4018f379fed9", size = 7409489, upload-time = "2026-03-30T08:46:34.684Z" }, + { url = "https://files.pythonhosted.org/packages/5b/a7/d2f681a4bfb881be40659a309771f3bdfbfdb1190619442816c3f0ffc079/grpcio-1.80.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a72d84ad0514db063e21887fbacd1fd7acb4d494a564cae22227cd45c7fbf199", size = 8423167, upload-time = "2026-03-30T08:46:36.833Z" }, + { url = "https://files.pythonhosted.org/packages/97/8a/29b4589c204959aa35ce5708400a05bba72181807c45c47b3ec000c39333/grpcio-1.80.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f7691a6788ad9196872f95716df5bc643ebba13c97140b7a5ee5c8e75d1dea81", size = 7846761, upload-time = "2026-03-30T08:46:40.091Z" }, + { url = "https://files.pythonhosted.org/packages/6b/d2/ed143e097230ee121ac5848f6ff14372dba91289b10b536d54fb1b7cbae7/grpcio-1.80.0-cp310-cp310-win32.whl", hash = "sha256:46c2390b59d67f84e882694d489f5b45707c657832d7934859ceb8c33f467069", size = 4156534, upload-time = "2026-03-30T08:46:42.026Z" }, + { url = "https://files.pythonhosted.org/packages/d5/c9/df8279bb49b29409995e95efa85b72973d62f8aeff89abee58c91f393710/grpcio-1.80.0-cp310-cp310-win_amd64.whl", hash = "sha256:dc053420fc75749c961e2a4c906398d7c15725d36ccc04ae6d16093167223b58", size = 4889869, upload-time = "2026-03-30T08:46:44.219Z" }, + { url = "https://files.pythonhosted.org/packages/5d/db/1d56e5f5823257b291962d6c0ce106146c6447f405b60b234c4f222a7cde/grpcio-1.80.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:dfab85db094068ff42e2a3563f60ab3dddcc9d6488a35abf0132daec13209c8a", size = 6055009, upload-time = "2026-03-30T08:46:46.265Z" }, + { url = "https://files.pythonhosted.org/packages/6e/18/c83f3cad64c5ca63bca7e91e5e46b0d026afc5af9d0a9972472ceba294b3/grpcio-1.80.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:5c07e82e822e1161354e32da2662f741a4944ea955f9f580ec8fb409dd6f6060", size = 12035295, upload-time = "2026-03-30T08:46:49.099Z" }, + { url = "https://files.pythonhosted.org/packages/0f/8e/e14966b435be2dda99fbe89db9525ea436edc79780431a1c2875a3582644/grpcio-1.80.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba0915d51fd4ced2db5ff719f84e270afe0e2d4c45a7bdb1e8d036e4502928c2", size = 6610297, upload-time = "2026-03-30T08:46:52.123Z" }, + { url = "https://files.pythonhosted.org/packages/cc/26/d5eb38f42ce0e3fdc8174ea4d52036ef8d58cc4426cb800f2610f625dd75/grpcio-1.80.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:3cb8130ba457d2aa09fa6b7c3ed6b6e4e6a2685fce63cb803d479576c4d80e21", size = 7300208, upload-time = "2026-03-30T08:46:54.859Z" }, + { url = "https://files.pythonhosted.org/packages/25/51/bd267c989f85a17a5b3eea65a6feb4ff672af41ca614e5a0279cc0ea381c/grpcio-1.80.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:09e5e478b3d14afd23f12e49e8b44c8684ac3c5f08561c43a5b9691c54d136ab", size = 6813442, upload-time = "2026-03-30T08:46:57.056Z" }, + { url = "https://files.pythonhosted.org/packages/9e/d9/d80eef735b19e9169e30164bbf889b46f9df9127598a83d174eb13a48b26/grpcio-1.80.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:00168469238b022500e486c1c33916acf2f2a9b2c022202cf8a1885d2e3073c1", size = 7414743, upload-time = "2026-03-30T08:46:59.682Z" }, + { url = "https://files.pythonhosted.org/packages/de/f2/567f5bd5054398ed6b0509b9a30900376dcf2786bd936812098808b49d8d/grpcio-1.80.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8502122a3cc1714038e39a0b071acb1207ca7844208d5ea0d091317555ee7106", size = 8426046, upload-time = "2026-03-30T08:47:02.474Z" }, + { url = "https://files.pythonhosted.org/packages/62/29/73ef0141b4732ff5eacd68430ff2512a65c004696997f70476a83e548e7e/grpcio-1.80.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ce1794f4ea6cc3ca29463f42d665c32ba1b964b48958a66497917fe9069f26e6", size = 7851641, upload-time = "2026-03-30T08:47:05.462Z" }, + { url = "https://files.pythonhosted.org/packages/46/69/abbfa360eb229a8623bab5f5a4f8105e445bd38ce81a89514ba55d281ad0/grpcio-1.80.0-cp311-cp311-win32.whl", hash = "sha256:51b4a7189b0bef2aa30adce3c78f09c83526cf3dddb24c6a96555e3b97340440", size = 4154368, upload-time = "2026-03-30T08:47:08.027Z" }, + { url = "https://files.pythonhosted.org/packages/6f/d4/ae92206d01183b08613e846076115f5ac5991bae358d2a749fa864da5699/grpcio-1.80.0-cp311-cp311-win_amd64.whl", hash = "sha256:02e64bb0bb2da14d947a49e6f120a75e947250aebe65f9629b62bb1f5c14e6e9", size = 4894235, upload-time = "2026-03-30T08:47:10.839Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e8/a2b749265eb3415abc94f2e619bbd9e9707bebdda787e61c593004ec927a/grpcio-1.80.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:c624cc9f1008361014378c9d776de7182b11fe8b2e5a81bc69f23a295f2a1ad0", size = 6015616, upload-time = "2026-03-30T08:47:13.428Z" }, + { url = "https://files.pythonhosted.org/packages/3e/97/b1282161a15d699d1e90c360df18d19165a045ce1c343c7f313f5e8a0b77/grpcio-1.80.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:f49eddcac43c3bf350c0385366a58f36bed8cc2c0ec35ef7b74b49e56552c0c2", size = 12014204, upload-time = "2026-03-30T08:47:15.873Z" }, + { url = "https://files.pythonhosted.org/packages/6e/5e/d319c6e997b50c155ac5a8cb12f5173d5b42677510e886d250d50264949d/grpcio-1.80.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d334591df610ab94714048e0d5b4f3dd5ad1bee74dfec11eee344220077a79de", size = 6563866, upload-time = "2026-03-30T08:47:18.588Z" }, + { url = "https://files.pythonhosted.org/packages/ae/f6/fdd975a2cb4d78eb67769a7b3b3830970bfa2e919f1decf724ae4445f42c/grpcio-1.80.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0cb517eb1d0d0aaf1d87af7cc5b801d686557c1d88b2619f5e31fab3c2315921", size = 7273060, upload-time = "2026-03-30T08:47:21.113Z" }, + { url = "https://files.pythonhosted.org/packages/db/f0/a3deb5feba60d9538a962913e37bd2e69a195f1c3376a3dd44fe0427e996/grpcio-1.80.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4e78c4ac0d97dc2e569b2f4bcbbb447491167cb358d1a389fc4af71ab6f70411", size = 6782121, upload-time = "2026-03-30T08:47:23.827Z" }, + { url = "https://files.pythonhosted.org/packages/ca/84/36c6dcfddc093e108141f757c407902a05085e0c328007cb090d56646cdf/grpcio-1.80.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2ed770b4c06984f3b47eb0517b1c69ad0b84ef3f40128f51448433be904634cd", size = 7383811, upload-time = "2026-03-30T08:47:26.517Z" }, + { url = "https://files.pythonhosted.org/packages/7c/ef/f3a77e3dc5b471a0ec86c564c98d6adfa3510d38f8ee99010410858d591e/grpcio-1.80.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:256507e2f524092f1473071a05e65a5b10d84b82e3ff24c5b571513cfaa61e2f", size = 8393860, upload-time = "2026-03-30T08:47:29.439Z" }, + { url = "https://files.pythonhosted.org/packages/9b/8d/9d4d27ed7f33d109c50d6b5ce578a9914aa68edab75d65869a17e630a8d1/grpcio-1.80.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9a6284a5d907c37db53350645567c522be314bac859a64a7a5ca63b77bb7958f", size = 7830132, upload-time = "2026-03-30T08:47:33.254Z" }, + { url = "https://files.pythonhosted.org/packages/14/e4/9990b41c6d7a44e1e9dee8ac11d7a9802ba1378b40d77468a7761d1ad288/grpcio-1.80.0-cp312-cp312-win32.whl", hash = "sha256:c71309cfce2f22be26aa4a847357c502db6c621f1a49825ae98aa0907595b193", size = 4140904, upload-time = "2026-03-30T08:47:35.319Z" }, + { url = "https://files.pythonhosted.org/packages/2f/2c/296f6138caca1f4b92a31ace4ae1b87dab692fc16a7a3417af3bb3c805bf/grpcio-1.80.0-cp312-cp312-win_amd64.whl", hash = "sha256:9fe648599c0e37594c4809d81a9e77bd138cc82eb8baa71b6a86af65426723ff", size = 4880944, upload-time = "2026-03-30T08:47:37.831Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/7c3c25789e3f069e581dc342e03613c5b1cb012c4e8c7d9d5cf960a75856/grpcio-1.80.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:e9e408fc016dffd20661f0126c53d8a31c2821b5c13c5d67a0f5ed5de93319ad", size = 6017243, upload-time = "2026-03-30T08:47:40.075Z" }, + { url = "https://files.pythonhosted.org/packages/04/19/21a9806eb8240e174fd1ab0cd5b9aa948bb0e05c2f2f55f9d5d7405e6d08/grpcio-1.80.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:92d787312e613754d4d8b9ca6d3297e69994a7912a32fa38c4c4e01c272974b0", size = 12010840, upload-time = "2026-03-30T08:47:43.11Z" }, + { url = "https://files.pythonhosted.org/packages/18/3a/23347d35f76f639e807fb7a36fad3068aed100996849a33809591f26eca6/grpcio-1.80.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8ac393b58aa16991a2f1144ec578084d544038c12242da3a215966b512904d0f", size = 6567644, upload-time = "2026-03-30T08:47:46.806Z" }, + { url = "https://files.pythonhosted.org/packages/ff/40/96e07ecb604a6a67ae6ab151e3e35b132875d98bc68ec65f3e5ab3e781d7/grpcio-1.80.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:68e5851ac4b9afe07e7f84483803ad167852570d65326b34d54ca560bfa53fb6", size = 7277830, upload-time = "2026-03-30T08:47:49.643Z" }, + { url = "https://files.pythonhosted.org/packages/9b/e2/da1506ecea1f34a5e365964644b35edef53803052b763ca214ba3870c856/grpcio-1.80.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:873ff5d17d68992ef6605330127425d2fc4e77e612fa3c3e0ed4e668685e3140", size = 6783216, upload-time = "2026-03-30T08:47:52.817Z" }, + { url = "https://files.pythonhosted.org/packages/44/83/3b20ff58d0c3b7f6caaa3af9a4174d4023701df40a3f39f7f1c8e7c48f9d/grpcio-1.80.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2bea16af2750fd0a899bf1abd9022244418b55d1f37da2202249ba4ba673838d", size = 7385866, upload-time = "2026-03-30T08:47:55.687Z" }, + { url = "https://files.pythonhosted.org/packages/47/45/55c507599c5520416de5eefecc927d6a0d7af55e91cfffb2e410607e5744/grpcio-1.80.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba0db34f7e1d803a878284cd70e4c63cb6ae2510ba51937bf8f45ba997cefcf7", size = 8391602, upload-time = "2026-03-30T08:47:58.303Z" }, + { url = "https://files.pythonhosted.org/packages/10/bb/dd06f4c24c01db9cf11341b547d0a016b2c90ed7dbbb086a5710df7dd1d7/grpcio-1.80.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8eb613f02d34721f1acf3626dfdb3545bd3c8505b0e52bf8b5710a28d02e8aa7", size = 7826752, upload-time = "2026-03-30T08:48:01.311Z" }, + { url = "https://files.pythonhosted.org/packages/f9/1e/9d67992ba23371fd63d4527096eb8c6b76d74d52b500df992a3343fd7251/grpcio-1.80.0-cp313-cp313-win32.whl", hash = "sha256:93b6f823810720912fd131f561f91f5fed0fda372b6b7028a2681b8194d5d294", size = 4142310, upload-time = "2026-03-30T08:48:04.594Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e6/283326a27da9e2c3038bc93eeea36fb118ce0b2d03922a9cda6688f53c5b/grpcio-1.80.0-cp313-cp313-win_amd64.whl", hash = "sha256:e172cf795a3ba5246d3529e4d34c53db70e888fa582a8ffebd2e6e48bc0cba50", size = 4882833, upload-time = "2026-03-30T08:48:07.363Z" }, + { url = "https://files.pythonhosted.org/packages/c5/6d/e65307ce20f5a09244ba9e9d8476e99fb039de7154f37fb85f26978b59c3/grpcio-1.80.0-cp314-cp314-linux_armv7l.whl", hash = "sha256:3d4147a97c8344d065d01bbf8b6acec2cf86fb0400d40696c8bdad34a64ffc0e", size = 6017376, upload-time = "2026-03-30T08:48:10.005Z" }, + { url = "https://files.pythonhosted.org/packages/69/10/9cef5d9650c72625a699c549940f0abb3c4bfdb5ed45a5ce431f92f31806/grpcio-1.80.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:d8e11f167935b3eb089ac9038e1a063e6d7dbe995c0bb4a661e614583352e76f", size = 12018133, upload-time = "2026-03-30T08:48:12.927Z" }, + { url = "https://files.pythonhosted.org/packages/04/82/983aabaad82ba26113caceeb9091706a0696b25da004fe3defb5b346e15b/grpcio-1.80.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f14b618fc30de822681ee986cfdcc2d9327229dc4c98aed16896761cacd468b9", size = 6574748, upload-time = "2026-03-30T08:48:16.386Z" }, + { url = "https://files.pythonhosted.org/packages/07/d7/031666ef155aa0bf399ed7e19439656c38bbd143779ae0861b038ce82abd/grpcio-1.80.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4ed39fbdcf9b87370f6e8df4e39ca7b38b3e5e9d1b0013c7b6be9639d6578d14", size = 7277711, upload-time = "2026-03-30T08:48:19.627Z" }, + { url = "https://files.pythonhosted.org/packages/e8/43/f437a78f7f4f1d311804189e8f11fb311a01049b2e08557c1068d470cb2e/grpcio-1.80.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2dcc70e9f0ba987526e8e8603a610fb4f460e42899e74e7a518bf3c68fe1bf05", size = 6785372, upload-time = "2026-03-30T08:48:22.373Z" }, + { url = "https://files.pythonhosted.org/packages/93/3d/f6558e9c6296cb4227faa5c43c54a34c68d32654b829f53288313d16a86e/grpcio-1.80.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:448c884b668b868562b1bda833c5fce6272d26e1926ec46747cda05741d302c1", size = 7395268, upload-time = "2026-03-30T08:48:25.638Z" }, + { url = "https://files.pythonhosted.org/packages/06/21/0fdd77e84720b08843c371a2efa6f2e19dbebf56adc72df73d891f5506f0/grpcio-1.80.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:a1dc80fe55685b4a543555e6eef975303b36c8db1023b1599b094b92aa77965f", size = 8392000, upload-time = "2026-03-30T08:48:28.974Z" }, + { url = "https://files.pythonhosted.org/packages/f5/68/67f4947ed55d2e69f2cc199ab9fd85e0a0034d813bbeef84df6d2ba4d4b7/grpcio-1.80.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:31b9ac4ad1aa28ffee5503821fafd09e4da0a261ce1c1281c6c8da0423c83b6e", size = 7828477, upload-time = "2026-03-30T08:48:32.054Z" }, + { url = "https://files.pythonhosted.org/packages/44/b6/8d4096691b2e385e8271911a0de4f35f0a6c7d05aff7098e296c3de86939/grpcio-1.80.0-cp314-cp314-win32.whl", hash = "sha256:367ce30ba67d05e0592470428f0ec1c31714cab9ef19b8f2e37be1f4c7d32fae", size = 4218563, upload-time = "2026-03-30T08:48:34.538Z" }, + { url = "https://files.pythonhosted.org/packages/e5/8c/bbe6baf2557262834f2070cf668515fa308b2d38a4bbf771f8f7872a7036/grpcio-1.80.0-cp314-cp314-win_amd64.whl", hash = "sha256:3b01e1f5464c583d2f567b2e46ff0d516ef979978f72091fd81f5ab7fa6e2e7f", size = 5019457, upload-time = "2026-03-30T08:48:37.308Z" }, + { url = "https://files.pythonhosted.org/packages/08/58/7151ffa07cb3faf4bdd1a1902c067d2d162a4ba24678afd2ad5084a42382/grpcio-1.80.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:aacdfb4ed3eb919ca997504d27e03d5dba403c85130b8ed450308590a738f7a4", size = 6048562, upload-time = "2026-03-30T08:48:40.068Z" }, + { url = "https://files.pythonhosted.org/packages/40/58/0287051dc65c2760155977d9775d1f3c87939e4d575a29aac40f9006b357/grpcio-1.80.0-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:a361c20ec1ccd3c3953d20fb6d7b4125093bdd10dff44c5e2bbb39e58917cedc", size = 12031536, upload-time = "2026-03-30T08:48:43.031Z" }, + { url = "https://files.pythonhosted.org/packages/7b/62/8fc355ffcc9fd8a3ca0438f007307c130dfb93949d3138cd23c8c9f434e8/grpcio-1.80.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:43168871f170d1e4ed16ae03d10cd21efa29f190e710a624cee7e5ae07da6f4f", size = 6602175, upload-time = "2026-03-30T08:48:46.099Z" }, + { url = "https://files.pythonhosted.org/packages/12/cb/3efd0b505090804dfe88bf258ed26a6fb19ccbb31889a05b9edb3ae035fe/grpcio-1.80.0-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1b97cd29a8eda100b559b455331c487a80915b6ea6bd91cf3e89836c4ee8d957", size = 7299777, upload-time = "2026-03-30T08:48:48.848Z" }, + { url = "https://files.pythonhosted.org/packages/54/b1/50fdb826acafd5ac661e10df25b089721172530f2eb4aa1f36bd3c3d4254/grpcio-1.80.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bac1d573dfa84ce59a5547073e28fa7326d53352adda6912e362da0b917fcef4", size = 6808790, upload-time = "2026-03-30T08:48:51.625Z" }, + { url = "https://files.pythonhosted.org/packages/60/29/41e9ed0bb5544836bb2685097beea972b0cabc8970aeaace0f152bfc5441/grpcio-1.80.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4560cf0e86514595dbbd330cd65b7afad4b5c4b8c4905c041cfffa138d45e6fd", size = 7410605, upload-time = "2026-03-30T08:48:54.466Z" }, + { url = "https://files.pythonhosted.org/packages/41/ad/889f0dfbc8a08050db6e23c3180dbe712b03af490352a4d7df649db26bc8/grpcio-1.80.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ec0a592e926071b4abad50c1495cd0d0d513324b3ff5e7267067c33ba27506e4", size = 8423134, upload-time = "2026-03-30T08:48:57.71Z" }, + { url = "https://files.pythonhosted.org/packages/3d/76/f44d853f38165d26a309565da31a312587dda668e9e7b5323179b87bcab4/grpcio-1.80.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:deb10a1528473c11f72a0939eed36d83e847d7cbb63e8cc5611fb7a912d38614", size = 7846917, upload-time = "2026-03-30T08:49:00.969Z" }, + { url = "https://files.pythonhosted.org/packages/74/fe/99c56d12b48f8c8b0d28c42edfb171642eb52dd90a0fe7bc74676909fa97/grpcio-1.80.0-cp39-cp39-win32.whl", hash = "sha256:627fb7312171cdc52828bd6fac8d7028ff2a64b89f1957b6f3416caa2218d141", size = 4157647, upload-time = "2026-03-30T08:49:04.196Z" }, + { url = "https://files.pythonhosted.org/packages/e6/ff/33f6a8823f06c6a1d1f530c1531e563b76c02091525e36255c08575ae775/grpcio-1.80.0-cp39-cp39-win_amd64.whl", hash = "sha256:05d55e1798756282cddd52d56c896b3e7d673e3a8798c2f1cd05ba249a3bb4de", size = 4892359, upload-time = "2026-03-30T08:49:06.902Z" }, +] + +[[package]] +name = "grpcio" +version = "1.83.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", +] +dependencies = [ + { name = "typing-extensions", version = "4.16.0", source = { registry = "https://pypi.org/simple" } }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0c/98/304898ac4e04e2d5e4e4c2eadc178b1f2a16d5f4bc2f91306c87d64680b9/grpcio-1.83.0.tar.gz", hash = "sha256:7674587248fbbb2ac6e4eecf83a8a0f3d91a928f941de571acfd3a2f007fbc24", size = 13428824, upload-time = "2026-07-23T15:20:37.759Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6b/fd/655c8a773d728bc3c93fb4713ae4bf79ffc75996f86fb78b2974c8e1dfbd/grpcio-1.83.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:fba099b716e73512d61b97f71ea3c31a72abb36904036e316bf4dd148ca8dcc8", size = 6334247, upload-time = "2026-07-23T15:18:53.099Z" }, + { url = "https://files.pythonhosted.org/packages/d4/9a/1ce5760d35a04a992006dd2f79afff2db548f93ee7426fa95c9f1fc90c61/grpcio-1.83.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:6755ed67cc3e454d51ae9f6e1915b80d3942fa4de956ef48dacd45ab7f40b727", size = 12168650, upload-time = "2026-07-23T15:18:56.348Z" }, + { url = "https://files.pythonhosted.org/packages/8d/ab/bbcb5be0a1a6cb21f036e2afdd4f7a70147cfb7a7b42648a310d7c43acfc/grpcio-1.83.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5882c1a721b50ce0123ee5e839e1ab059ad72a7ade76cdf2d5bd833b56791acf", size = 6916899, upload-time = "2026-07-23T15:18:58.339Z" }, + { url = "https://files.pythonhosted.org/packages/d5/d2/4c27977ecb3b3f9f363b93f570e001cb24ef264a9a907d7fd0f949ed59f0/grpcio-1.83.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4e3eedfc92b6b9f2960115e7e620cf0cbf80bb7849a51ce3820dc54dfd88b6b9", size = 7648761, upload-time = "2026-07-23T15:19:00.071Z" }, + { url = "https://files.pythonhosted.org/packages/23/49/0c823a7627ff2e69a61e4a53c4edf215272892fc2c47c6431f033d46f4cc/grpcio-1.83.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4fcaa7c45c45b4a89e2867d1f1785d9481a788399d915e341ed2eb49aeef9dd4", size = 7074920, upload-time = "2026-07-23T15:19:02.293Z" }, + { url = "https://files.pythonhosted.org/packages/3b/ce/963f01ff7c789a76909c9691b704112e02ca1e11c10405cd99c2bd7c40f1/grpcio-1.83.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6b6c666a1d5613ff360c9e90f44665e3a88b25a815209ddbc0917eec281931cb", size = 7598046, upload-time = "2026-07-23T15:19:03.921Z" }, + { url = "https://files.pythonhosted.org/packages/eb/de/1ce6bdefc847a7973040d10cebc8996c653a2a687c0a4da8d05dcab4e397/grpcio-1.83.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:6be5c807b717be3dd649446f021301fd7907e376318675d2147823071034112a", size = 8634792, upload-time = "2026-07-23T15:19:05.633Z" }, + { url = "https://files.pythonhosted.org/packages/a5/8b/7fe6a73895e3bdd788101d1276e48e0d262ebb165afacec1ec4efebcd785/grpcio-1.83.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c834e86d8fd2f03d7e4db49a027f7c5b89c5b88eed305543a5295bd6fee61e40", size = 8000286, upload-time = "2026-07-23T15:19:07.739Z" }, + { url = "https://files.pythonhosted.org/packages/c4/b0/9a779de2bcda8722501a056fad1bec3d1117977af0c080ab1fc0655fdf35/grpcio-1.83.0-cp310-cp310-win32.whl", hash = "sha256:35a5b1c192496b6c25956eebfa963468935612206fd2543ac3ce981e6a5e0f03", size = 4404616, upload-time = "2026-07-23T15:19:09.988Z" }, + { url = "https://files.pythonhosted.org/packages/f0/8e/ce9a23590cac33a6c24e6386cc0ffc55821cc13212acc822e98f00a67161/grpcio-1.83.0-cp310-cp310-win_amd64.whl", hash = "sha256:8f6c395e493d20c39b29392ca200e9aaeb78d0bc2f04db0c0a7da7ddc939aa57", size = 5162304, upload-time = "2026-07-23T15:19:11.467Z" }, + { url = "https://files.pythonhosted.org/packages/d3/f6/3b781cd07a715ea5f5125ae264226e7fc4d87603d6d3955022cabfdc5da2/grpcio-1.83.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:8ff0b8767ddd62704e0d9571c1890af08d84a3a689ebba1807e62519d0b3277f", size = 6338720, upload-time = "2026-07-23T15:19:13.177Z" }, + { url = "https://files.pythonhosted.org/packages/21/cc/d14833d15d5984e366f1b027fa78bd038c9b028c66880bffb0f5a4d25ee2/grpcio-1.83.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:4772402f43517b4824980be4b3b2274a81eec0004a70009473c31b340d43e223", size = 12178773, upload-time = "2026-07-23T15:19:15.401Z" }, + { url = "https://files.pythonhosted.org/packages/6b/98/8acbb416544e7871132d8e42a07ed70c802d70e6a16c6009e505a34d32a4/grpcio-1.83.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f4cee5fc86e84a0cf7ad1574b454c3320e087c07f55b7df5dc0ac6a873fb90c0", size = 6921203, upload-time = "2026-07-23T15:19:17.824Z" }, + { url = "https://files.pythonhosted.org/packages/45/9c/0fdbfaf4fc54e5c88f6bce4008a065092fe7fbc4460eb5617ae8b20fd505/grpcio-1.83.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:f5e822a7e7d03282f6ad225e710493c48b9057a353358344a5f7c42b2b37618d", size = 7648508, upload-time = "2026-07-23T15:19:19.685Z" }, + { url = "https://files.pythonhosted.org/packages/f3/ea/107b9dbb2ed3ad14dd774fd3dde7d29ff9938a6c198654becb2c3a0e9a6a/grpcio-1.83.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f5f410d7c2903eabb34789dfd6342eef04af1ad459943936b7e09a9f5bd417b9", size = 7079466, upload-time = "2026-07-23T15:19:21.478Z" }, + { url = "https://files.pythonhosted.org/packages/3b/06/9fa9941089e6fae83b060b6ce61c1e81053e52decae43197245f45e07d36/grpcio-1.83.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ee94a4016fdf8699fb1fd8a38652475ff677f1c72074cee44deeeb9a7e95e745", size = 7605583, upload-time = "2026-07-23T15:19:23.74Z" }, + { url = "https://files.pythonhosted.org/packages/a8/2f/f10fb56062dc2771c630827a82d9ad0ecd05cad572ea3b08d49f6631680a/grpcio-1.83.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c6444666317338e903093c7c756e6cc88eee59f798cb8dd41e87725bf54e1617", size = 8637810, upload-time = "2026-07-23T15:19:25.536Z" }, + { url = "https://files.pythonhosted.org/packages/99/55/f84927258f6a1b6ea6dea661fdc6de859b35e560c96f3012d15ccd39f85e/grpcio-1.83.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:aa074041231f03959cb097dd5517b0677b8ea49215bae01d5710a7b69dd59969", size = 8008021, upload-time = "2026-07-23T15:19:27.863Z" }, + { url = "https://files.pythonhosted.org/packages/c9/6b/cdf72161397ccd29d4ca2192f641524536c9cf54ad948c9dd0e0e01138fa/grpcio-1.83.0-cp311-cp311-win32.whl", hash = "sha256:cb056f6e171c42639a50460b2929c82241fda51f71cf3dcdd68090fe45095a45", size = 4404376, upload-time = "2026-07-23T15:19:30.137Z" }, + { url = "https://files.pythonhosted.org/packages/df/ed/e0ffeb4c848699c194dc9fb6a29ab29bcb2b6aac8c416bf18c51bfe8242c/grpcio-1.83.0-cp311-cp311-win_amd64.whl", hash = "sha256:7416952ca770477990257206276999056f8316d79196f2f25942393e58a20b49", size = 5164469, upload-time = "2026-07-23T15:19:31.941Z" }, + { url = "https://files.pythonhosted.org/packages/15/2b/51e32514a4e9b715375c99721aadff0f24164cc2049b8269eda4de82a814/grpcio-1.83.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:28f6c35ac8fcf10e4594f138e468f194360089dde40d126a7033e863fc479930", size = 6303167, upload-time = "2026-07-23T15:19:33.78Z" }, + { url = "https://files.pythonhosted.org/packages/39/33/b5b50fc2c6fbe350e04814047bb2d409feec7b36ef8b170254c050e06bc0/grpcio-1.83.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:33898e6a28e4ae598f1577cb1c4fec2a15c033d0ec52b9b45a09610dd045b9da", size = 12160538, upload-time = "2026-07-23T15:19:35.958Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5f/734e72e7b9f79bcf0b2c270b8d3bca0e4ebb97a27a50d06240b145f6d41e/grpcio-1.83.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6fb8a1dd0c6f0f931e69e9d0dc6d1c406ed2a44fa963414eafba07b7fb685d16", size = 6869310, upload-time = "2026-07-23T15:19:38.607Z" }, + { url = "https://files.pythonhosted.org/packages/a4/17/a1735f215b2a5cd43c38b79eac072ad197e61be9829905b6b29550abd0db/grpcio-1.83.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:2b5e75c34842cd9c1b95285ca395c6a569664b81e3ffa6b714125922942abaaf", size = 7613472, upload-time = "2026-07-23T15:19:40.645Z" }, + { url = "https://files.pythonhosted.org/packages/b2/78/c9e81f806ac704b6b145cb01628db398985b1f8dfdc10e23b55fb0902b3d/grpcio-1.83.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aeb339838db07600481ef869507279b75326c75eac6d10f7afa62a0da1d2bcdd", size = 7040616, upload-time = "2026-07-23T15:19:42.349Z" }, + { url = "https://files.pythonhosted.org/packages/9a/ba/94cd5af859876049d340480acbb61a959096c84b567f215534faa78d0424/grpcio-1.83.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f47d62808b4c0a97b78bff88a6d4ca283a2a492b9a04a87d814af95ca3b9c19c", size = 7570491, upload-time = "2026-07-23T15:19:44.357Z" }, + { url = "https://files.pythonhosted.org/packages/3e/15/108d30d5a5c964312ae8b9cb0e8cc5b3c1cc68d8f757cca52b3565534d26/grpcio-1.83.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:62003babc444a606dcd1f009cd16391ce23669ae4ad6ec267a873da7937a69f5", size = 8605036, upload-time = "2026-07-23T15:19:46.454Z" }, + { url = "https://files.pythonhosted.org/packages/ea/23/3828ae13c3db8233d123ad612747665817b952d8a954f32390230b582336/grpcio-1.83.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1aa567f8c3f19850ffd5d2858c9a8ea7c80f0db6c01186b71eb31e923ec984f5", size = 7981587, upload-time = "2026-07-23T15:19:48.913Z" }, + { url = "https://files.pythonhosted.org/packages/17/5b/77af31228f55f55a2a5112bb0077ad0a1c4d23dbb0c2853a62475bbdcc14/grpcio-1.83.0-cp312-cp312-win32.whl", hash = "sha256:cb2906c61db4f9c64cc360054b5df70eeb81846228e9e56a4944bd415a63dadc", size = 4394004, upload-time = "2026-07-23T15:19:50.618Z" }, + { url = "https://files.pythonhosted.org/packages/c0/da/f706e39550e7a3732ce2b9c5926107a93d74a802775b19b642a6df27dc96/grpcio-1.83.0-cp312-cp312-win_amd64.whl", hash = "sha256:1c699bbb20f143c8f2bff219de578aa2dc1f919399d67dc702b038b986ee62df", size = 5158525, upload-time = "2026-07-23T15:19:52.246Z" }, + { url = "https://files.pythonhosted.org/packages/56/eb/135daaa713f32d33b8f99b4153b3f8dc3b2a124996ac15581bf9ebdad3c3/grpcio-1.83.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:6662f3b1e07cc7493d437351860dc867bddc6a93c83ecf33bbfdaf0c217ab2d0", size = 6304480, upload-time = "2026-07-23T15:19:53.962Z" }, + { url = "https://files.pythonhosted.org/packages/8f/a1/121806ce69f23138dabe06aa595b0e5f1ae051a37e4c1954eed7d692c800/grpcio-1.83.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:74fe6f9e8a35c7dbf32255ee154d15e3e5338a81ed39173d079d594d2e544cd1", size = 12154419, upload-time = "2026-07-23T15:19:56.3Z" }, + { url = "https://files.pythonhosted.org/packages/b0/e8/d0389e09cd6b4c4d3089b92967ae4e3ffd64795bd349bf2f85cd6656d3da/grpcio-1.83.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:10b3fa0475eb572c9a81a6fe37fa16a9c500c0c91cfc148cac15692b7e3c2867", size = 6873200, upload-time = "2026-07-23T15:19:58.701Z" }, + { url = "https://files.pythonhosted.org/packages/f8/51/f464c1d211fa50d5adbabe1b2e519948d99c13757052bfc9ea7afa28e284/grpcio-1.83.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:5f20a988480b0f28207f057f7f7ae1313393c3cef0adcfeae8248f9947eaf881", size = 7618811, upload-time = "2026-07-23T15:20:00.733Z" }, + { url = "https://files.pythonhosted.org/packages/e8/c0/539fe0832f2dd6500a28f5263071623fb34e8d4867aec632ccf81bd21156/grpcio-1.83.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7bd82671b39065ba18cd536e9cd45b27ff649053f81ddd2c6a966d595067080f", size = 7042310, upload-time = "2026-07-23T15:20:02.675Z" }, + { url = "https://files.pythonhosted.org/packages/8c/ca/ccf617d37ffa72567fa8e005ec7090c99da922799be2fb9847c8b21ca18c/grpcio-1.83.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bc60215b5cb9fc8ca72942c498b551ac2305bd08f6ef8d4e3f0d21b64fbecd61", size = 7575412, upload-time = "2026-07-23T15:20:04.712Z" }, + { url = "https://files.pythonhosted.org/packages/eb/b9/fd8d5245f823a8e0fd35d90e20ea3aa4acd47f8d5318fa8df307df52dec6/grpcio-1.83.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f1c3e5689d4b90987b1d72022bcfe866a9a3dc66197484cf856d96b6150e7f45", size = 8604248, upload-time = "2026-07-23T15:20:06.77Z" }, + { url = "https://files.pythonhosted.org/packages/14/1e/f37632fc11db72dfa4bba86c3a43e54358e53030df111ecae5e91a733ad6/grpcio-1.83.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a21cb4eeeba124443f399be2e8b624943cde864dcbe588cb42e5c483a52a906c", size = 7977458, upload-time = "2026-07-23T15:20:09.109Z" }, + { url = "https://files.pythonhosted.org/packages/93/b6/d70b69ae5c0cfc341b9ba474980e4ed99cbf05c0e4a14e9eee8cb73db0a5/grpcio-1.83.0-cp313-cp313-win32.whl", hash = "sha256:8fe04f1050a59f875601eb55d42b4f66946fe89817f967e34db1462ccd07dadf", size = 4393993, upload-time = "2026-07-23T15:20:11.017Z" }, + { url = "https://files.pythonhosted.org/packages/0f/13/45d4cccb555cf4c476226979bf3d2fd0b0254216f7564c3a053e35117efc/grpcio-1.83.0-cp313-cp313-win_amd64.whl", hash = "sha256:6e01ecd9d8ef280abe1365138a4dc318f9a5287f4cb1b41d07816f796653f735", size = 5159650, upload-time = "2026-07-23T15:20:12.979Z" }, + { url = "https://files.pythonhosted.org/packages/9c/60/f2cca8147ea213d3e43ae9158d03ad04e020fdf32ff027253e1fe93f921d/grpcio-1.83.0-cp314-cp314-linux_armv7l.whl", hash = "sha256:3f351629f6ae16ecc0ec3553e586a6763ffd9f6114044286d0cbec3e09241bfa", size = 6305607, upload-time = "2026-07-23T15:20:15.353Z" }, + { url = "https://files.pythonhosted.org/packages/d0/ab/d3874931d123a95e83a3ebf8aa04537988fb62425cedb8bf3cefc5ad41b2/grpcio-1.83.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:d05ff664100d429335b93c91b8b34ddf9e94a112205e7fa06dede309e44a4e4c", size = 12166617, upload-time = "2026-07-23T15:20:17.435Z" }, + { url = "https://files.pythonhosted.org/packages/92/ff/6f18f9426b69306f4e00a9add3b0ee2748da8aad53836ef80cab0d62d04f/grpcio-1.83.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7936f2a56cf04f6514705c0fedf400971de01b6aa1719327e4718f410a765e2b", size = 6880213, upload-time = "2026-07-23T15:20:19.98Z" }, + { url = "https://files.pythonhosted.org/packages/70/21/706d1147c6b93b98f179240c13991fbcc56880eba0c868abb1ad40d8a0a6/grpcio-1.83.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b0a0be840e51b6b7ee9df9269770faf77bdf4b771053c257c21d12bad607714c", size = 7618335, upload-time = "2026-07-23T15:20:22.161Z" }, + { url = "https://files.pythonhosted.org/packages/74/04/1a8443c889115ec9e213a213e86bc93a71ee9088027e5befa09aaa0edd9d/grpcio-1.83.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:009667eaf3dcd5224c713589cdc98e7ca4ed0ff0b61132c6b276e930eb83a2df", size = 7043416, upload-time = "2026-07-23T15:20:24.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/c6/94e0fee5b12bc1da1370185b680988db6f739d19b42d9959db01a7ea50bf/grpcio-1.83.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bb669918fd88936b15599caff4160a77ab74bdeb25f2231f6e45b61282d6107b", size = 7583253, upload-time = "2026-07-23T15:20:26.313Z" }, + { url = "https://files.pythonhosted.org/packages/a0/97/de1ccb671fb85575bc5192faedf9ecdbdf5b390d2e6584dcf552bcbd370e/grpcio-1.83.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:c19b454d3d3f28db81f2c7c4dbaee96e7f6fd149721733ffe79d6bc530f17404", size = 8605102, upload-time = "2026-07-23T15:20:28.437Z" }, + { url = "https://files.pythonhosted.org/packages/17/0f/0e0ec749a7034ffcbaa050e39779872950ead90c22e7e0116be3f28b2b46/grpcio-1.83.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:61007cd08640abc5c54547ee32505474c482cd733a53cb87551ea81faa6350af", size = 7979826, upload-time = "2026-07-23T15:20:31.182Z" }, + { url = "https://files.pythonhosted.org/packages/83/fa/c3fda157287f64bc65acee6c5aa90c41acf9e0d3a8e69a265eecff6d00a1/grpcio-1.83.0-cp314-cp314-win32.whl", hash = "sha256:32e11c37f5285b0c6fa3042c05fe06903696689749833fc64e67dec71b9bbe33", size = 4471765, upload-time = "2026-07-23T15:20:33.195Z" }, + { url = "https://files.pythonhosted.org/packages/a1/00/b1b26431c9d54eee11724fd6e5585473a2ed47fbc1fb95e5204906a642ce/grpcio-1.83.0-cp314-cp314-win_amd64.whl", hash = "sha256:2bb48cb5e6dd005ca12b89ce4b6ac0b48ff3112c747542ee7986ef611a8ca6d9", size = 5298932, upload-time = "2026-07-23T15:20:35.48Z" }, +] + +[[package]] +name = "grpcio-tools" +version = "1.70.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.9'", +] +dependencies = [ + { name = "grpcio", version = "1.70.0", source = { registry = "https://pypi.org/simple" } }, + { name = "protobuf", version = "5.29.6", source = { registry = "https://pypi.org/simple" } }, + { name = "setuptools", version = "75.3.4", source = { registry = "https://pypi.org/simple" } }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c1/fe/3adf1035c1f9e9243516530beae67e197f2acc17562ec75f03a0ba77fc55/grpcio_tools-1.70.0.tar.gz", hash = "sha256:e578fee7c1c213c8e471750d92631d00f178a15479fb2cb3b939a07fc125ccd3", size = 5323149, upload-time = "2025-01-23T18:00:38.271Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/4f/97343e9af496fde5fd141874cb075ad8f338a99b1bfc1aef1f1041887e31/grpcio_tools-1.70.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:4d456521290e25b1091975af71604facc5c7db162abdca67e12a0207b8bbacbe", size = 2380731, upload-time = "2025-01-23T17:57:39.201Z" }, + { url = "https://files.pythonhosted.org/packages/54/48/a43b5546eeacf3171d6789aae4d0ab1f2d4203e44eb07ffc60373ac90c26/grpcio_tools-1.70.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:d50080bca84f53f3a05452e06e6251cbb4887f5a1d1321d1989e26d6e0dc398d", size = 5935297, upload-time = "2025-01-23T17:57:41.94Z" }, + { url = "https://files.pythonhosted.org/packages/a8/63/6f1d3c4fe4342b82cf14fd4c04d762d3ece41e5c60ca53a7532f867c7fa8/grpcio_tools-1.70.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:02e3bf55fb569fe21b54a32925979156e320f9249bb247094c4cbaa60c23a80d", size = 2336438, upload-time = "2025-01-23T17:57:44.933Z" }, + { url = "https://files.pythonhosted.org/packages/d9/01/e1dff616f1d088b6024767c914d13fed5800e5cc02c6904396fd01cb41ad/grpcio_tools-1.70.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88a3ec6fa2381f616d567f996503e12ca353777941b61030fd9733fd5772860e", size = 2729489, upload-time = "2025-01-23T17:57:46.754Z" }, + { url = "https://files.pythonhosted.org/packages/3d/60/a7c493d5cb4962e88e04c4045282ab1c60cbe480fd8105e0472950d43c97/grpcio_tools-1.70.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6034a0579fab2aed8685fa1a558de084668b1e9b01a82a4ca7458b9bedf4654c", size = 2463411, upload-time = "2025-01-23T17:57:48.52Z" }, + { url = "https://files.pythonhosted.org/packages/b7/1a/90c63bd2cc681936e3d8ff27f3b70a6ed7bf9f2fd40b51c18c81b0e167a3/grpcio_tools-1.70.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:701bbb1ff406a21a771f5b1df6be516c0a59236774b6836eaad7696b1d128ea8", size = 3341102, upload-time = "2025-01-23T17:57:50.557Z" }, + { url = "https://files.pythonhosted.org/packages/9c/01/e70919607bbb77c087c7fd6a8dc8c21a3f575d0cf71ae19e7ca709a10abc/grpcio_tools-1.70.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6eeb86864e1432fc1ab61e03395a2a4c04e9dd9c89db07e6fe68c7c2ac8ec24f", size = 2944181, upload-time = "2025-01-23T17:57:52.556Z" }, + { url = "https://files.pythonhosted.org/packages/17/27/34d3903480e0cffb64a6002a0766784047cac0ba65bd9f2824a0c6c86111/grpcio_tools-1.70.0-cp310-cp310-win32.whl", hash = "sha256:d53c8c45e843b5836781ad6b82a607c72c2f9a3f556e23d703a0e099222421fa", size = 947441, upload-time = "2025-01-23T17:57:54.453Z" }, + { url = "https://files.pythonhosted.org/packages/48/8a/b3b2fd2c8710837185b98abf06e3e775d101a09d2c2192f8f77b91c392b5/grpcio_tools-1.70.0-cp310-cp310-win_amd64.whl", hash = "sha256:22024caee36ab65c2489594d718921dcbb5bd18d61c5417a9ede94fd8dc8a589", size = 1119450, upload-time = "2025-01-23T17:57:56.299Z" }, + { url = "https://files.pythonhosted.org/packages/ab/2b/446a63000acab303bbc1b84fa7dbfa4857d96e95ab53e85083ba16c60d4a/grpcio_tools-1.70.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:5f5aba12d98d25c7ab2dd983939e2c21556a7d15f903b286f24d88d2c6e30c0a", size = 2380860, upload-time = "2025-01-23T17:57:58.186Z" }, + { url = "https://files.pythonhosted.org/packages/0c/d2/48e82de83bf34f9a5207ea808a1c6e074bf657720664eb6c9f0bab38dbf2/grpcio_tools-1.70.0-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:d47a6c6cfc526b290b7b53a37dd7e6932983f7a168b56aab760b4b597c47f30f", size = 5957716, upload-time = "2025-01-23T17:58:00.769Z" }, + { url = "https://files.pythonhosted.org/packages/fa/f7/a735faa8fc96778aa54e321ac6820bab03ee4eea305cc1209b095dfdffee/grpcio_tools-1.70.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:b5a9beadd1e24772ffa2c70f07d72f73330d356b78b246e424f4f2ed6c6713f3", size = 2336501, upload-time = "2025-01-23T17:58:02.675Z" }, + { url = "https://files.pythonhosted.org/packages/47/ed/4bed599c061b65149b32569347a857098819d75c2419c4202f9de1e06250/grpcio_tools-1.70.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bb8135eef160a62505f074bf7a3d62f3b13911c3c14037c5392bf877114213b5", size = 2729638, upload-time = "2025-01-23T17:58:04.73Z" }, + { url = "https://files.pythonhosted.org/packages/4f/43/d8850889a2041cf94e882712df0e323cd6bbf24f8f4c50e2f0d80c68da7d/grpcio_tools-1.70.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7ac9b3e13ace8467a586c53580ee22f9732c355583f3c344ef8c6c0666219cc", size = 2463251, upload-time = "2025-01-23T17:58:06.879Z" }, + { url = "https://files.pythonhosted.org/packages/a8/2e/2407641c70ca0afe03a04c3c29f0b51e1582759e3d5c995217b4ed0ce2bd/grpcio_tools-1.70.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:63f367363a4a1489a0046b19f9d561216ea0d206c40a6f1bf07a58ccfb7be480", size = 3340968, upload-time = "2025-01-23T17:58:08.825Z" }, + { url = "https://files.pythonhosted.org/packages/de/bb/591799e6b0445028d74552964e47d7b0b23ff5ce9c377688b318de331f12/grpcio_tools-1.70.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:54ceffef59a059d2c7304554a8bbb20eedb05a3f937159ab1c332c1b28e12c9f", size = 2944466, upload-time = "2025-01-23T17:58:10.984Z" }, + { url = "https://files.pythonhosted.org/packages/3f/90/b73293fff616574cbdf70437efb3b2ee6af3705c6b2cc19dd02dfb01708f/grpcio_tools-1.70.0-cp311-cp311-win32.whl", hash = "sha256:7a90a66a46821140a2a2b0be787dfabe42e22e9a5ba9cc70726b3e5c71a3b785", size = 947335, upload-time = "2025-01-23T17:58:13.028Z" }, + { url = "https://files.pythonhosted.org/packages/88/cc/12ad066dc722285ee3f7d398d4272dc43857de6b7e6fa509a385ca4a857f/grpcio_tools-1.70.0-cp311-cp311-win_amd64.whl", hash = "sha256:4ebf09733545a69c166b02caa14c34451e38855544820dab7fdde5c28e2dbffe", size = 1119053, upload-time = "2025-01-23T17:58:14.879Z" }, + { url = "https://files.pythonhosted.org/packages/58/8d/21f3f0c6e8ddc7ffd82873a6ff767a568a3384043adc034c49fd72020884/grpcio_tools-1.70.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:ec5d6932c3173d7618267b3b3fd77b9243949c5ec04302b7338386d4f8544e0b", size = 2380552, upload-time = "2025-01-23T17:58:18.148Z" }, + { url = "https://files.pythonhosted.org/packages/e1/10/def56ecb8e139a96aae9d408d891f32f24a066c57179ce5f78e7edf70a35/grpcio_tools-1.70.0-cp312-cp312-macosx_10_14_universal2.whl", hash = "sha256:f22852da12f53b02a3bdb29d0c32fcabab9c7c8f901389acffec8461083f110d", size = 5956826, upload-time = "2025-01-23T17:58:29.754Z" }, + { url = "https://files.pythonhosted.org/packages/63/5e/f10375b90b7dc14d1b5095797d4f79b34e584fbc9bda06e093ad316a96dd/grpcio_tools-1.70.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:7d45067e6efd20881e98a0e1d7edd7f207b1625ad7113321becbfe0a6ebee46c", size = 2335835, upload-time = "2025-01-23T17:58:31.711Z" }, + { url = "https://files.pythonhosted.org/packages/ec/33/d770fbdf824edfc0f9297be046d4d48fbc81b2dbf802827ade65110f0a47/grpcio_tools-1.70.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3020c97f03b30eee3c26aa2a55fbe003f1729c6f879a378507c2c78524db7c12", size = 2729501, upload-time = "2025-01-23T17:58:34.777Z" }, + { url = "https://files.pythonhosted.org/packages/e2/fb/8442f386fa71056abe7ebbc153eaac8cbe32875ed659a641ca526ab9f341/grpcio_tools-1.70.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7fd472fce3b33bdf7fbc24d40da7ab10d7a088bcaf59c37433c2c57330fbcb6", size = 2462824, upload-time = "2025-01-23T17:58:36.836Z" }, + { url = "https://files.pythonhosted.org/packages/46/4e/1703d2586663078613baed553de052e029b3d7fe311e90d3f023c85e612a/grpcio_tools-1.70.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3875543d74ce1a698a11f498f83795216ce929cb29afa5fac15672c7ba1d6dd2", size = 3340759, upload-time = "2025-01-23T17:58:40.285Z" }, + { url = "https://files.pythonhosted.org/packages/59/d9/f61e427b0e1d7305396dacea65d1e0612eb2bc66b02328ef6bde117624fb/grpcio_tools-1.70.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a130c24d617a3a57369da784080dfa8848444d41b7ae1250abc06e72e706a8d9", size = 2944463, upload-time = "2025-01-23T17:58:43.618Z" }, + { url = "https://files.pythonhosted.org/packages/8d/8f/8f6f511ad90e12d7c2f396ad9efe46019c0a77a5f5f69e46998c834405e4/grpcio_tools-1.70.0-cp312-cp312-win32.whl", hash = "sha256:8eae17c920d14e2e451dbb18f5d8148f884e10228061941b33faa8fceee86e73", size = 946776, upload-time = "2025-01-23T17:58:45.424Z" }, + { url = "https://files.pythonhosted.org/packages/83/0f/aff5d01ce9ae94ed02b79e033b0c469e560221340c09120270109de4986a/grpcio_tools-1.70.0-cp312-cp312-win_amd64.whl", hash = "sha256:99caa530242a0a832d8b6a6ab94b190c9b449d3e237f953911b4d56207569436", size = 1118594, upload-time = "2025-01-23T17:58:47.274Z" }, + { url = "https://files.pythonhosted.org/packages/49/2a/bf442acb748b2a53281e5e7cc3fa36c25ae99436cd2f2cfe684096d4c39f/grpcio_tools-1.70.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:f024688d04e7a9429489ed695b85628075c3c6d655198ba3c6ccbd1d8b7c333b", size = 2380142, upload-time = "2025-01-23T17:58:50.214Z" }, + { url = "https://files.pythonhosted.org/packages/dc/a2/984dabaf1cdc41e267acdd37232026ede28f55bc6f9e932907bcbbb46773/grpcio_tools-1.70.0-cp313-cp313-macosx_10_14_universal2.whl", hash = "sha256:1fa9a81621d7178498dedcf94eb8f276a7594327faf3dd5fd1935ce2819a2bdb", size = 5955907, upload-time = "2025-01-23T17:58:52.499Z" }, + { url = "https://files.pythonhosted.org/packages/cd/78/ebefc32418be93828b46eca5952ef1cb0400b33883bc20c22b1fc2a51f61/grpcio_tools-1.70.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:c6da2585c0950cdb650df1ff6d85b3fe31e22f8370b9ee11f8fe641d5b4bf096", size = 2335428, upload-time = "2025-01-23T17:58:54.781Z" }, + { url = "https://files.pythonhosted.org/packages/a0/f8/5d4b58dc846bf28b8b9abf07f5d091eb078fc4f01184adb3b374cf5119a4/grpcio_tools-1.70.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70234b592af17050ec30cf35894790cef52aeae87639efe6db854a7fa783cc8c", size = 2728481, upload-time = "2025-01-23T17:58:56.783Z" }, + { url = "https://files.pythonhosted.org/packages/b0/28/46833d415b2c2e3e0f36763c528da48785c94580240684e56410abd08aa0/grpcio_tools-1.70.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c021b040d0a9f5bb96a725c4d2b95008aad127d6bed124a7bbe854973014f5b", size = 2462401, upload-time = "2025-01-23T17:58:59.281Z" }, + { url = "https://files.pythonhosted.org/packages/fa/8a/c771a09aea58275106e08e7dd37470c6e8555dfcea9a7b44d1c5adc80370/grpcio_tools-1.70.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:114a42e566e5b16a47e98f7910a6c0074b37e2d1faacaae13222e463d0d0d43c", size = 3340068, upload-time = "2025-01-23T17:59:01.859Z" }, + { url = "https://files.pythonhosted.org/packages/3a/be/e3dfa73435c633859c4a045c299105e99a6c6a41cda524148bf9c8d4dc99/grpcio_tools-1.70.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:4cae365d7e3ba297256216a9a256458b286f75c64603f017972b3ad1ee374437", size = 2944317, upload-time = "2025-01-23T17:59:05.594Z" }, + { url = "https://files.pythonhosted.org/packages/b6/bd/e30fb2b0ce2c0c48caf994b1ebedb56fc7103e26062dd31a41ad1e528eb7/grpcio_tools-1.70.0-cp313-cp313-win32.whl", hash = "sha256:ae139a8d3ddd8353f62af3af018e99ebcd2f4a237bd319cb4b6f58dd608aaa54", size = 946136, upload-time = "2025-01-23T17:59:08.005Z" }, + { url = "https://files.pythonhosted.org/packages/0f/8a/92aba852bbe2ddf3e44c354b4162b3cf350b810523ffb2d0e5937bd3f249/grpcio_tools-1.70.0-cp313-cp313-win_amd64.whl", hash = "sha256:04bf30c0eb2741defe3ab6e0a6102b022d69cfd39d68fab9b954993ceca8d346", size = 1118147, upload-time = "2025-01-23T17:59:11.013Z" }, + { url = "https://files.pythonhosted.org/packages/a6/0b/bce2b01d7b171c38909c5e70b61c3559b350ff656036a701d48ce67e5c6f/grpcio_tools-1.70.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:076f71c6d5adcf237ebca63f1ed51098293261dab9f301e3dfd180e896e5fa89", size = 2381290, upload-time = "2025-01-23T17:59:13.271Z" }, + { url = "https://files.pythonhosted.org/packages/bc/61/07cb971a13043ebc37e513bfcf442ea59125345c40cec4f0f924a4952619/grpcio_tools-1.70.0-cp38-cp38-macosx_10_14_universal2.whl", hash = "sha256:d1fc2112e9c40167086e2e6a929b253e5281bffd070fab7cd1ae019317ffc11d", size = 5960402, upload-time = "2025-01-23T17:59:15.753Z" }, + { url = "https://files.pythonhosted.org/packages/44/3a/c98299532891a769296b058b63de2c76a496b5b8c2533810ebc29780656c/grpcio_tools-1.70.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:904f13d2d04f88178b09d8ef89549b90cbf8792b684a7c72540fc1a9887697e2", size = 2337054, upload-time = "2025-01-23T17:59:19.445Z" }, + { url = "https://files.pythonhosted.org/packages/10/e5/5296bd2382ad5d7ed2ce579c2a830f94bac4e91137f47168172bf75f7f68/grpcio_tools-1.70.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1de6c71833d36fb8cc8ac10539681756dc2c5c67e5d4aa4d05adb91ecbdd8474", size = 2731131, upload-time = "2025-01-23T17:59:22.923Z" }, + { url = "https://files.pythonhosted.org/packages/77/53/16b9c8c9f2e7d8d9df96051a3360cd31d5218986e63b5a14938fa38c1b70/grpcio_tools-1.70.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ab788afced2d2c59bef86479967ce0b28485789a9f2cc43793bb7aa67f9528b", size = 2464142, upload-time = "2025-01-23T17:59:25.337Z" }, + { url = "https://files.pythonhosted.org/packages/d4/3d/6328f1636b66619e4192b785965cf2d95ca6f7e39f5e5030ff22eb484eb5/grpcio_tools-1.70.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:836293dcbb1e59fa52aa8aa890bd7a32a8eea7651cd614e96d86de4f3032fe73", size = 3341924, upload-time = "2025-01-23T17:59:28.559Z" }, + { url = "https://files.pythonhosted.org/packages/96/29/7f6b9dd4122fa46ac6ebdd12a3e344bba03b8d1afadd229ad056f135e982/grpcio_tools-1.70.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:740b3741d124c5f390dd50ad1c42c11788882baf3c202cd3e69adee0e3dde559", size = 2944429, upload-time = "2025-01-23T17:59:30.938Z" }, + { url = "https://files.pythonhosted.org/packages/96/a5/55b060488adb9dea51973cc723542dab3464c528e6c42cae052608ed6d31/grpcio_tools-1.70.0-cp38-cp38-win32.whl", hash = "sha256:b9e4a12b862ba5e42d8028da311e8d4a2c307362659b2f4141d0f940f8c12b49", size = 947562, upload-time = "2025-01-23T17:59:33.308Z" }, + { url = "https://files.pythonhosted.org/packages/6e/64/5082df7ae850af29d02587c7addcf6defb876ef439080bb527425bdffd47/grpcio_tools-1.70.0-cp38-cp38-win_amd64.whl", hash = "sha256:fd04c93af460b1456cd12f8f85502503e1db6c4adc1b7d4bd775b12c1fd94fee", size = 1119470, upload-time = "2025-01-23T17:59:35.818Z" }, + { url = "https://files.pythonhosted.org/packages/b5/a7/4f1823dae0dd3e9f12eaf33f0e505fb3f5c3c2ce4e4351045819a8c1862e/grpcio_tools-1.70.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:52d7e7ef11867fe7de577076b1f2ac6bf106b2325130e3de66f8c364c96ff332", size = 2381002, upload-time = "2025-01-23T17:59:38.045Z" }, + { url = "https://files.pythonhosted.org/packages/4a/6c/5186c4f8bbd0c29a983ee09b42f36310dc4b8d654b03a622eb93e29c98dc/grpcio_tools-1.70.0-cp39-cp39-macosx_10_14_universal2.whl", hash = "sha256:0f7ed0372afd9f5eb938334e84681396257015ab92e03de009aa3170e64b24d0", size = 5958443, upload-time = "2025-01-23T17:59:40.827Z" }, + { url = "https://files.pythonhosted.org/packages/e2/32/f075b0619071f49103cedc1aa7db90d8dd76222dd97dcad757ecb9b541ee/grpcio_tools-1.70.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:24a5b0328ffcfe0c4a9024f302545abdb8d6f24921409a5839f2879555b96fea", size = 2336520, upload-time = "2025-01-23T17:59:52.157Z" }, + { url = "https://files.pythonhosted.org/packages/09/71/d66008aab2e44ff7aa1916cdfa6777fa823c665d0c9f5e163c056a8295d4/grpcio_tools-1.70.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9387b30f3b2f46942fb5718624d7421875a6ce458620d6e15817172d78db1e1a", size = 2729454, upload-time = "2025-01-23T17:59:55.438Z" }, + { url = "https://files.pythonhosted.org/packages/ed/c7/42c807214318575afe9af36cea1fa2245851de21d86276283fe90afe6aa1/grpcio_tools-1.70.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4545264e06e1cd7fb21b9447bb5126330bececb4bc626c98f793fda2fd910bf8", size = 2463326, upload-time = "2025-01-23T17:59:57.954Z" }, + { url = "https://files.pythonhosted.org/packages/6c/28/42436a16b038f16e3c9c688cdf1c87c7bf9f1b578d835ee96537bf8272cf/grpcio_tools-1.70.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:79b723ce30416e8e1d7ff271f97ade79aaf30309a595d80c377105c07f5b20fd", size = 3341064, upload-time = "2025-01-23T18:00:01.543Z" }, + { url = "https://files.pythonhosted.org/packages/08/ef/69a670269b8575b77188e43553e812eefc7b17693881ca52ddf839652309/grpcio_tools-1.70.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1c0917dce12af04529606d437def83962d51c59dcde905746134222e94a2ab1b", size = 2944096, upload-time = "2025-01-23T18:00:05.084Z" }, + { url = "https://files.pythonhosted.org/packages/dd/ca/e3548728937558e1883c63b2cd90357bc7802b77481cbc77d3b72f3e27d1/grpcio_tools-1.70.0-cp39-cp39-win32.whl", hash = "sha256:5cb0baa52d4d44690fac6b1040197c694776a291a90e2d3c369064b4d5bc6642", size = 947346, upload-time = "2025-01-23T18:00:07.789Z" }, + { url = "https://files.pythonhosted.org/packages/be/66/7c1a552545a9597fbd33d77c817f1f0cc56736ca64aa0821948f945118d6/grpcio_tools-1.70.0-cp39-cp39-win_amd64.whl", hash = "sha256:840ec536ab933db2ef8d5acaa6b712d0e9e8f397f62907c852ec50a3f69cdb78", size = 1119339, upload-time = "2025-01-23T18:00:11.003Z" }, +] + +[[package]] +name = "grpcio-tools" +version = "1.80.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "grpcio", version = "1.80.0", source = { registry = "https://pypi.org/simple" } }, + { name = "protobuf", version = "6.33.6", source = { registry = "https://pypi.org/simple" } }, + { name = "setuptools", version = "82.0.1", source = { registry = "https://pypi.org/simple" } }, +] +sdist = { url = "https://files.pythonhosted.org/packages/94/c8/1223f29c84a143ae9a56c084fc96894de0ba84b6e8d60a26241abd81d278/grpcio_tools-1.80.0.tar.gz", hash = "sha256:26052b19c6ce0dcf52d1024496aea3e2bdfa864159f06dc7b97b22d041a94b26", size = 6133212, upload-time = "2026-03-30T08:52:39.077Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/54/1de67f5080da305a258758a8deb33f85666fa759f56785042a80b114a53f/grpcio_tools-1.80.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:727477b9afa4b53f5ec70cafb41c3965d893835e0d4ea9b542fe3d0d005602bf", size = 2549601, upload-time = "2026-03-30T08:50:09.498Z" }, + { url = "https://files.pythonhosted.org/packages/9a/b4/6d57ea199c5b880d182a2234aafa9a686f9c54c708ea7be75bd19d5aa825/grpcio_tools-1.80.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:85fe8d15f146c62cb76f38d963e256392d287442b9232717d30ae9e3bbda9bc3", size = 5712717, upload-time = "2026-03-30T08:50:15.028Z" }, + { url = "https://files.pythonhosted.org/packages/6a/1a/5505ee2277d368b409c796c78f22ea34a2a517b7d16755247efd663dc7af/grpcio_tools-1.80.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:95f0fffb5ca00519f3b602f938169b4dfa04b165e03258323965a9dfe8cc4d80", size = 2595941, upload-time = "2026-03-30T08:50:17.299Z" }, + { url = "https://files.pythonhosted.org/packages/4e/39/7fc1d16d8b767805079d76365d73e82c88dfaf179034473dbc9fbccedb77/grpcio_tools-1.80.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:7a0106af212748823a6ebd8ffbd9043414216f47cae3835f3187de0a62c415d3", size = 2909304, upload-time = "2026-03-30T08:50:19.485Z" }, + { url = "https://files.pythonhosted.org/packages/97/d8/276ee759755d8f34f2ca5e9d2debd1a59f29f66059fb790bc369f2236c26/grpcio_tools-1.80.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:31fd01a4038b5dfc4ec79504a17061344f670f851833411717fef66920f13cd7", size = 2660269, upload-time = "2026-03-30T08:50:21.266Z" }, + { url = "https://files.pythonhosted.org/packages/51/04/a6bb47942ad52901d777a649324d3203cf19d487f1d446263637f7a5bf12/grpcio_tools-1.80.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:57da9e19607fac4a01c48ead333c0dd15d91ed38794dce1194eda308f73e2038", size = 3109798, upload-time = "2026-03-30T08:50:23.267Z" }, + { url = "https://files.pythonhosted.org/packages/be/50/7ee69b2919916739787d725f205b878e8d1619dd30422b8278e324664669/grpcio_tools-1.80.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:90968f751851abb8b145593609800fa70c837e1c93ba0792c480b1c8d8bc29ef", size = 3658930, upload-time = "2026-03-30T08:50:25.458Z" }, + { url = "https://files.pythonhosted.org/packages/92/61/6d50783092b0e8bbcb04152d5388bf50ecf3ea2f783d95288ff6c3bb00fa/grpcio_tools-1.80.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b69dc5d6376ab43406304d1e2fc61ccf960b287d4325d77c3d45448c37a9d2da", size = 3326562, upload-time = "2026-03-30T08:50:27.809Z" }, + { url = "https://files.pythonhosted.org/packages/ea/58/d272ba549f6b1f0d8504f5fc4cd0a296f2c495a64d6e987fe871c4151557/grpcio_tools-1.80.0-cp310-cp310-win32.whl", hash = "sha256:3e8dcfebe34cb54df095de3d5871a4562a85a29f26d0f8bb41ee2c3dcfb11c3c", size = 997620, upload-time = "2026-03-30T08:50:29.959Z" }, + { url = "https://files.pythonhosted.org/packages/70/5f/9f45a9946a0298711c72ca48b2c1f46a7d0c207a44cd3e4bb59d04556ba3/grpcio_tools-1.80.0-cp310-cp310-win_amd64.whl", hash = "sha256:fc622ed4ca400695f41c9eae3266276c6ba007e4c28164ce53b44e7ccc5e492b", size = 1162466, upload-time = "2026-03-30T08:50:32.242Z" }, + { url = "https://files.pythonhosted.org/packages/8a/d7/225dc91e6cb4f8d4830f16a478a468e9c6f342dcdf8cacc3772cc1d1f607/grpcio_tools-1.80.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:1c43e5c768578fe0c6de3dbfaabe64af642951e1aa05c487cacedda63fa6c6c4", size = 2549937, upload-time = "2026-03-30T08:50:34.651Z" }, + { url = "https://files.pythonhosted.org/packages/97/3d/a3684cb7677f3bea8db434eae02a9ce30135d7a268cd473b1bc8041c4722/grpcio_tools-1.80.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:a225348456575f3ac7851d8e23163195e76d2a905ee340cf73f33da62fba08aa", size = 5713099, upload-time = "2026-03-30T08:50:37.158Z" }, + { url = "https://files.pythonhosted.org/packages/b1/81/5665c697173ec346076358bfbfed0f7386825852494593ca14386478dfee/grpcio_tools-1.80.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a9396f02820d3f51c368c2c9dee15c55c77636c91be48a4d5c702e98d6fe0fdc", size = 2595776, upload-time = "2026-03-30T08:50:39.087Z" }, + { url = "https://files.pythonhosted.org/packages/03/4f/fb81384f08a8226fa079972ba88272ac6277581fc72e8ab234d74c7e065b/grpcio_tools-1.80.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:797c08460cae16b402326eac329aec720dccf45c9f9279b95a352792eb53cf0f", size = 2909144, upload-time = "2026-03-30T08:50:40.922Z" }, + { url = "https://files.pythonhosted.org/packages/4d/9c/c957618f1c2a3195ecf5e83b03edcb364c2c1391f74183cb76e5763fa536/grpcio_tools-1.80.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1872a867eb6217de19edb70a4ce4a374ced9d94293533dfd42fa649713f55bf4", size = 2660477, upload-time = "2026-03-30T08:50:42.766Z" }, + { url = "https://files.pythonhosted.org/packages/42/c7/23913da184febfd4eaf04de256a26bc5ff0411a5feb753e2adcff10fa86a/grpcio_tools-1.80.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:db122ba5ee357e3bb14e8944d69bbebcbdae91d5eace29ed4df3edc53cbc6528", size = 3110164, upload-time = "2026-03-30T08:50:44.761Z" }, + { url = "https://files.pythonhosted.org/packages/af/fa/b25ed85ebdb0396910eaa250b1346d75527d22fca586265416bd4330dcd5/grpcio_tools-1.80.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ddefd48c227e6f4d640fe576fac5fb2c4a8898196f513604c8ec7671b3b3d421", size = 3658988, upload-time = "2026-03-30T08:50:47.546Z" }, + { url = "https://files.pythonhosted.org/packages/60/85/2a55147cc9645e2ed777d1afcd2dc68cb34ba6f6c726bd4378ddb001a5ea/grpcio_tools-1.80.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:970ec058fa469dd6dae6ebc687501c5da670d95dead75f62f5b0933dce2c9794", size = 3326662, upload-time = "2026-03-30T08:50:49.59Z" }, + { url = "https://files.pythonhosted.org/packages/68/ed/b05bee2a992e6f9bda81909692ea920d0896cfa05c5c9dd77ba03f2d22fb/grpcio_tools-1.80.0-cp311-cp311-win32.whl", hash = "sha256:526b4402d47a0e9b31cd6087e42b7674784617916cc73c764e0bc35ed41b4ee5", size = 997969, upload-time = "2026-03-30T08:50:51.539Z" }, + { url = "https://files.pythonhosted.org/packages/b6/9a/cb50c8270e2f6285ff2761130ae257ac4e51789ded4b9d9710ce0381814d/grpcio_tools-1.80.0-cp311-cp311-win_amd64.whl", hash = "sha256:ee101ecda7231770f6a5da1024a9a6ed587a7785f8fe23ab8283f4a1acb3ffe6", size = 1162742, upload-time = "2026-03-30T08:50:54.232Z" }, + { url = "https://files.pythonhosted.org/packages/0c/b9/65929df8c9614792db900a8e45d4997fadbd1734c827da3f0eb1f2fe4866/grpcio_tools-1.80.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:d19d5a8244311947b96f749c417b32d144641c6953f1164824579e1f0a51d040", size = 2550856, upload-time = "2026-03-30T08:50:57.3Z" }, + { url = "https://files.pythonhosted.org/packages/28/17/af1557544d68d1aeca9d9ea53ed16524022d521fec6ba334ab3530e9c1a6/grpcio_tools-1.80.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:fb599a3dc89ed1bb24489a2724b2f6dd4cddbbf0f7bdd69c073477bab0dc7554", size = 5710883, upload-time = "2026-03-30T08:51:00.077Z" }, + { url = "https://files.pythonhosted.org/packages/cc/48/aa9b4f7519ca972bc40d315d5c28f05ca28fa08de13d4e8b69f551b798ab/grpcio_tools-1.80.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:623ee31fc2ff7df9a987b4f3d139c30af17ce46a861ae0e25fb8c112daa32dd8", size = 2598004, upload-time = "2026-03-30T08:51:02.102Z" }, + { url = "https://files.pythonhosted.org/packages/b4/b8/b01371c119924b3beca1fe3f047b1bc2cdc66b3d37f0f3acc9d10c567a43/grpcio_tools-1.80.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b46570a68378539ee2b75a5a43202561f8d753c832798b1047099e3c551cf5d6", size = 2909568, upload-time = "2026-03-30T08:51:04.159Z" }, + { url = "https://files.pythonhosted.org/packages/4f/7c/1108f7bdb58475a7e701ec89b55eb494538b6e76acd211ba0d4cc5fd28e8/grpcio_tools-1.80.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:51caf99c28999e7e0f97e9cea190c1405b7681a57bb2e0631205accd92b43fa4", size = 2660938, upload-time = "2026-03-30T08:51:06.126Z" }, + { url = "https://files.pythonhosted.org/packages/67/59/d1c0063d4cd3b85363c7044ff3e5159d6d5df96e2692a9a5312d9c8cb290/grpcio_tools-1.80.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cdaa1c9aa8d3a87891a96700cadd29beec214711d6522818d207277f6452567c", size = 3113814, upload-time = "2026-03-30T08:51:08.834Z" }, + { url = "https://files.pythonhosted.org/packages/76/21/18d34a4efe524c903cf66b0cfa5260d81f277b6ae668b647edf795df9ce5/grpcio_tools-1.80.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3399b5fd7b59bcffd59c6b9975a969d9f37a3c87f3e3d63c3a09c147907acb0d", size = 3662793, upload-time = "2026-03-30T08:51:11.094Z" }, + { url = "https://files.pythonhosted.org/packages/f3/40/cf2d9295a6bd593244ea703858f8fc2efd315046ca3ef7c6f9ebc5b810fa/grpcio_tools-1.80.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9c6abc08d3485b2aac99bb58afcd31dc6cd4316ce36cf263ff09cb6df15f287f", size = 3329149, upload-time = "2026-03-30T08:51:13.066Z" }, + { url = "https://files.pythonhosted.org/packages/0d/1d/fc34b32167966df20d69429b71dfca83c48434b047a5ac4fd6cd91ca4eed/grpcio_tools-1.80.0-cp312-cp312-win32.whl", hash = "sha256:18c51e07652ac7386fcdbd11866f8d55a795de073337c12447b5805575339f74", size = 997519, upload-time = "2026-03-30T08:51:14.87Z" }, + { url = "https://files.pythonhosted.org/packages/91/98/6d6563cdf51085b75f8ec24605c6f2ce84197571878ca8ab4af949c6be2d/grpcio_tools-1.80.0-cp312-cp312-win_amd64.whl", hash = "sha256:ac6fdd42d5bb18f0d903a067e2825be172deff70cf197164b6f65676cb506c9b", size = 1162407, upload-time = "2026-03-30T08:51:16.793Z" }, + { url = "https://files.pythonhosted.org/packages/44/d9/f7887a4805939e9a85d03744b66fc02575dc1df3c3e8b4d9ec000ee7a33d/grpcio_tools-1.80.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:e7046837859bbfd10b01786056145480155c16b222c9e209215b68d3be13060e", size = 2550319, upload-time = "2026-03-30T08:51:19.117Z" }, + { url = "https://files.pythonhosted.org/packages/57/5a/c8a05b32bd7203f1b9f4c0151090a2d6179d6c97692d32f2066dc29c67a6/grpcio_tools-1.80.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:a447f28958a8fe84ff0d9d3d9473868feb27ee4a9c9c805e66f5b670121cec59", size = 5709681, upload-time = "2026-03-30T08:51:21.991Z" }, + { url = "https://files.pythonhosted.org/packages/82/6b/794350ed645c12c310008f97068f6a6fd927150b0d0d08aad1d909e880b1/grpcio_tools-1.80.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:75f00450e08fe648ad8a1eeb25bc52219679d54cdd02f04dfdddc747309d83f6", size = 2596820, upload-time = "2026-03-30T08:51:24.323Z" }, + { url = "https://files.pythonhosted.org/packages/f9/b2/b39e7b79f7c878135e0784a53cd7260ee77260c8c7f2c9e46bca8e05d017/grpcio_tools-1.80.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:3db830eaff1f2c2797328f2fa86c9dcdbd7d81af573a68db81e27afa2182a611", size = 2909193, upload-time = "2026-03-30T08:51:27.025Z" }, + { url = "https://files.pythonhosted.org/packages/10/f3/abe089b058f87f9910c9a458409505cbeb0b3e1c2d993a79721d02ee6a32/grpcio_tools-1.80.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7982b5fe42f012686b667dda12916884de95c4b1c65ff64371fb7232a1474b23", size = 2660197, upload-time = "2026-03-30T08:51:29.392Z" }, + { url = "https://files.pythonhosted.org/packages/09/c3/3f7806ad8b731d8a89fe3c6ed496473abd1ef4c9c42c9e9a8836ce96e377/grpcio_tools-1.80.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6451b3f4eb52d12c7f32d04bf8e0185f80521f3f088ad04b8d222b3a4819c71e", size = 3113144, upload-time = "2026-03-30T08:51:31.671Z" }, + { url = "https://files.pythonhosted.org/packages/fe/f5/415ef205e0b7e75d2a2005df6120145c4f02fda28d7b3715b55d924fe1a4/grpcio_tools-1.80.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:258bc30654a9a2236be4ca8e2ad443e2ac6db7c8cc20454d34cce60265922726", size = 3661897, upload-time = "2026-03-30T08:51:34.849Z" }, + { url = "https://files.pythonhosted.org/packages/e3/d3/2ad54764c2a9547080dd8518f4a4dc7899c7e6e747a1b1de542ce6a12066/grpcio_tools-1.80.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:865a2b8e6334c838976ab02a322cbd55c863d2eaf3c1e1a0255883c63996772a", size = 3328786, upload-time = "2026-03-30T08:51:37.265Z" }, + { url = "https://files.pythonhosted.org/packages/eb/63/23ab7db01f9630ab4f3742a2fc9fbff38b0cfc30c976114f913950664a75/grpcio_tools-1.80.0-cp313-cp313-win32.whl", hash = "sha256:f760ac1722f33e774814c37b6aa0444143f612e85088ead7447a0e9cd306a1f1", size = 997087, upload-time = "2026-03-30T08:51:39.137Z" }, + { url = "https://files.pythonhosted.org/packages/9b/af/b1c1c4423fb49cb7c8e9d2c02196b038c44160b7028b425466743c6c81fa/grpcio_tools-1.80.0-cp313-cp313-win_amd64.whl", hash = "sha256:7843b9ac6ff8ca508424d0dd968bd9a1a4559967e4a290f26be5bd6f04af2234", size = 1162167, upload-time = "2026-03-30T08:51:41.498Z" }, + { url = "https://files.pythonhosted.org/packages/0e/44/7beeee2348f9f412804f5bf80b7d13b81d522bf926a338ae3da46b2213b7/grpcio_tools-1.80.0-cp314-cp314-linux_armv7l.whl", hash = "sha256:12f950470449dbeec78317dbc090add7a00eb6ca812af7b0538ab7441e0a42c3", size = 2550303, upload-time = "2026-03-30T08:51:44.373Z" }, + { url = "https://files.pythonhosted.org/packages/2d/aa/f77dd85409a1855f8c6319ffc69d81e8c3ffe122ee3a7136653e1991d8b6/grpcio_tools-1.80.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:d3f9a376a29c9adf62bb56f7ff5bc81eb4abeaf53d1e7dde5015564832901a51", size = 5709778, upload-time = "2026-03-30T08:51:47.112Z" }, + { url = "https://files.pythonhosted.org/packages/9c/7c/ab7af4883ebdfdc228b853de89fed409703955e8d47285b321a5794856bd/grpcio_tools-1.80.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1ba1ffbf2cff71533615e2c5a138ed5569611eec9ae7f9c67b8898e127b54ac0", size = 2597928, upload-time = "2026-03-30T08:51:49.494Z" }, + { url = "https://files.pythonhosted.org/packages/22/e8/4381a963d472e3ab6690ba067ed2b1f1abf8518b10f402678bd2dcb79a54/grpcio_tools-1.80.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:13f60f8d9397c514c6745a967d22b5c8c698347e88deebca1ff2e1b94555e450", size = 2909333, upload-time = "2026-03-30T08:51:52.124Z" }, + { url = "https://files.pythonhosted.org/packages/94/cb/356b5fdf79dd99455b425fb16302fe60995554ceb721afbf3cf770a19208/grpcio_tools-1.80.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:88d77bad5dd3cd5e6f952c4ecdd0ee33e0c02ecfc2e4b0cbee3391ac19e0a431", size = 2660217, upload-time = "2026-03-30T08:51:55.066Z" }, + { url = "https://files.pythonhosted.org/packages/2b/d7/1752018cc2c36b2c5612051379e2e5f59f2dbe612de23e817d2f066a9487/grpcio_tools-1.80.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:017945c3e98a4ed1c4e21399781b4137fc08dfc1f802c8ace2e64ef52d32b142", size = 3113896, upload-time = "2026-03-30T08:51:57.3Z" }, + { url = "https://files.pythonhosted.org/packages/cc/17/695bbe454f70df35c03e22b48c5314683b913d3e6ed35ec90d065418c1ab/grpcio_tools-1.80.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:a33e265d4db803495007a6c623eafb0f6b9bb123ff4a0af89e44567dad809b88", size = 3661950, upload-time = "2026-03-30T08:51:59.867Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d0/533d87629ec823c02c9169ee20228f734c264b209dcdf55268b5a14cde0a/grpcio_tools-1.80.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6c129da370c5f85f569be2e545317dda786a60dd51d7deea29b03b0c05f6aac3", size = 3328755, upload-time = "2026-03-30T08:52:02.942Z" }, + { url = "https://files.pythonhosted.org/packages/08/a1/504d7838770c73a9761e8a8ff4869dba1146b44f297ff0ac6641481942d3/grpcio_tools-1.80.0-cp314-cp314-win32.whl", hash = "sha256:25742de5958ae4325249a37e724e7c0e5120f8e302a24a977ebd1737b48a5e97", size = 1019620, upload-time = "2026-03-30T08:52:05.342Z" }, + { url = "https://files.pythonhosted.org/packages/f3/75/8b7cd281c5cdfb4ca2c308f7e9b2799bab2be6e7a9e9212ea5a82e2aecd4/grpcio_tools-1.80.0-cp314-cp314-win_amd64.whl", hash = "sha256:bbf8eeef78fda1966f732f79c1c802fadd5cfd203d845d2af4d314d18569069c", size = 1194210, upload-time = "2026-03-30T08:52:08.105Z" }, + { url = "https://files.pythonhosted.org/packages/83/b1/13c9bc91742ac6fb89e00aa71611c7e004883ccc0f36ab9c660d6ef8edad/grpcio_tools-1.80.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:4c615f3b5c6f7e8e0b06f60e3fa9cebf88372296255268db9e9a23e72bb698bf", size = 2550165, upload-time = "2026-03-30T08:52:10.917Z" }, + { url = "https://files.pythonhosted.org/packages/5a/89/9a385c8f2084654b8290febcef733cc2d87ec4a21a9eabdc68ef705101c5/grpcio_tools-1.80.0-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:3954b5d07ac19d752ee70c7d63ee0ba0f9a840c33e042decf355f04b1ff41d93", size = 5713585, upload-time = "2026-03-30T08:52:14.275Z" }, + { url = "https://files.pythonhosted.org/packages/ba/87/bc7561e500091da7448ee0fb8f4c1e58b08469e19bc73fbade682eacb1b7/grpcio_tools-1.80.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9a765334d3080d147ecf7b8ab04900e56108f6457dde0a3ba7f68c270f9d6efc", size = 2596071, upload-time = "2026-03-30T08:52:16.723Z" }, + { url = "https://files.pythonhosted.org/packages/d1/92/9de892f2d9a7353a4b114dfd7cb826af7dbf8cdfee83b44f1187acf9bc5d/grpcio_tools-1.80.0-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:c18def9c38d36767946932d2cc7baf39dcae5fea5a02843ea34399871f981a09", size = 2909487, upload-time = "2026-03-30T08:52:19.287Z" }, + { url = "https://files.pythonhosted.org/packages/28/2f/9271289aec6ff6e767366b9114c1b113af41b807153043c4c58ce21f3242/grpcio_tools-1.80.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4534022e4d5dd3d7d2183ff5846bf950cbaf889af0ea5290f94212001f7cad84", size = 2661058, upload-time = "2026-03-30T08:52:22.256Z" }, + { url = "https://files.pythonhosted.org/packages/72/20/e6843693bc5ce6f35179f863997d4ed0c12049539b06b961a02dfa157073/grpcio_tools-1.80.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1816e8e512402ed0b3fe4a336aaff14f9cb42455aa88fa86f754d53973668bd6", size = 3110581, upload-time = "2026-03-30T08:52:25.505Z" }, + { url = "https://files.pythonhosted.org/packages/30/98/1215204b3658c751b22c0e5c78d7e46383d7fff74d376217b85ab4ff1eb3/grpcio_tools-1.80.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e3b6d09f87eb87a8cab58f7e99cae3551467f51b2bcbab17a2fe931e94e7efef", size = 3659157, upload-time = "2026-03-30T08:52:28.274Z" }, + { url = "https://files.pythonhosted.org/packages/63/8e/4f1accc96df27e625ca05210f46ad972dd75bd77ce399755593f69bedddb/grpcio_tools-1.80.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6c6ce08167fd77fa057dc44fea8501c66d108eeef536073dba55c8fd3684c7a9", size = 3327150, upload-time = "2026-03-30T08:52:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/e3/cc/445e949b75b14c6957b3addc99c0ed19c9d2a42369b470e2d551b68e0915/grpcio_tools-1.80.0-cp39-cp39-win32.whl", hash = "sha256:5de4eb2d08bddeee28265c10369934b2d23b8c4acc39d419ee6a58afe34d754f", size = 998074, upload-time = "2026-03-30T08:52:33.18Z" }, + { url = "https://files.pythonhosted.org/packages/fc/f4/03ae4ef2b68cf979d7eea2549d33e989dc3baf281a8558549911b1a839b6/grpcio_tools-1.80.0-cp39-cp39-win_amd64.whl", hash = "sha256:6a35a73042dc4bbcdd7aafc141ee9966c8ae97bf4b9f0f49e10e3e1aa54139ac", size = 1162908, upload-time = "2026-03-30T08:52:35.906Z" }, +] + +[[package]] +name = "grpcio-tools" +version = "1.83.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", +] +dependencies = [ + { name = "grpcio", version = "1.83.0", source = { registry = "https://pypi.org/simple" } }, + { name = "protobuf", version = "7.36.0", source = { registry = "https://pypi.org/simple" } }, + { name = "setuptools", version = "84.0.0", source = { registry = "https://pypi.org/simple" } }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c1/b1/50b17b3a2ba8970dbb00b2035a4df218bc6ec88d2d77fc7da4e42e1c7b19/grpcio_tools-1.83.0.tar.gz", hash = "sha256:515907265d14fa9975d0c7723f95a9da01463d7ac607546a03f8741f86a1bb07", size = 6400437, upload-time = "2026-07-23T15:22:18.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ea/00/4a0b426262c8488a02d7fcabe72a070c4691ea79ebf050d543d5cf054234/grpcio_tools-1.83.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:f281cb706999676bb841bcd57129a69091b9286236c89d6114c752ebf6cd5a1b", size = 2652630, upload-time = "2026-07-23T15:20:49.826Z" }, + { url = "https://files.pythonhosted.org/packages/10/22/c5ebf22b6975b9846d54b0e5328eea1780ba5906419e43d305415e110611/grpcio_tools-1.83.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:3647c6adae9528dd56183061371151e3a96f71c299dc69c540318c3af2233a88", size = 5967265, upload-time = "2026-07-23T15:20:52.272Z" }, + { url = "https://files.pythonhosted.org/packages/3d/06/c0a9bad5cc5b1eef47647c480fc9aac82ae67e723db8f5e90e56bdb5adf9/grpcio_tools-1.83.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b6346c688d25bcf264e55f0c5f48ae825f7a2906ab969ed3b4a93df53e48bf07", size = 2704488, upload-time = "2026-07-23T15:20:53.779Z" }, + { url = "https://files.pythonhosted.org/packages/3f/8e/e54c7475e0fb528861f66a2e2a0b892a86b5a636905336337d29e091c2c1/grpcio_tools-1.83.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:281d5d056d7ba839f4fff9b63f9ad239fe3353fe10e28e782251bdae6ba68306", size = 3032303, upload-time = "2026-07-23T15:20:55.589Z" }, + { url = "https://files.pythonhosted.org/packages/e0/4f/2221bc79d7c2315d5e3604f353c470b380386fe5d7f8d4740a7d00630394/grpcio_tools-1.83.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:35af1be2fe409abf9817ec43c34aab8a99189b15530eb78f3a94a6b1266d8b12", size = 2773919, upload-time = "2026-07-23T15:20:57.187Z" }, + { url = "https://files.pythonhosted.org/packages/93/94/50b1e7b1526e11e8e7cc6796cf71707ce6bc8714d9bacdd7290a2039b140/grpcio_tools-1.83.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7f5f5b6e1a91422069601fbf94f7fc970a7647fa69d2bc9f59e38913523117af", size = 3226535, upload-time = "2026-07-23T15:20:58.64Z" }, + { url = "https://files.pythonhosted.org/packages/fa/df/3de83d76f30a76ba85464d72a579199a1191ad027f5c89786db767b22f83/grpcio_tools-1.83.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:cad9333c0d5afcc2ffb26bebc5e8f097e3218b964758c3c65609dbcb77ec2aa7", size = 3798914, upload-time = "2026-07-23T15:21:00.05Z" }, + { url = "https://files.pythonhosted.org/packages/f4/51/957d040037a142b7232b5f1bfc0abfdac0acbdaec74f2ba3f39cc570ccb2/grpcio_tools-1.83.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2106b29b9dae5068acab7ee2f6b104d3054b4f31289f105b4afe1fcfbf1966c4", size = 3457747, upload-time = "2026-07-23T15:21:01.511Z" }, + { url = "https://files.pythonhosted.org/packages/49/27/7199a053df071d5c9924aee050d6aea391892f05cb6eb266365a72c8b05c/grpcio_tools-1.83.0-cp310-cp310-win32.whl", hash = "sha256:a47e674e6afac5d73ee3a87d57ed53f7b79cc01f44d602fe6ee90919aa171583", size = 1022559, upload-time = "2026-07-23T15:21:03.039Z" }, + { url = "https://files.pythonhosted.org/packages/32/d4/6201e4948618a60b5fdfecd3b193da9b86c76e1aa8555573da78649900a5/grpcio_tools-1.83.0-cp310-cp310-win_amd64.whl", hash = "sha256:88fc53ee3ce28d3ea2fe8fe1d3ed57854d0d25d6dac18e74c1f24e0a377bb509", size = 1192122, upload-time = "2026-07-23T15:21:04.398Z" }, + { url = "https://files.pythonhosted.org/packages/b9/f0/d55c59b3af39d2ca975a2bafc5be1a60e0460a1b507bdbcf7bb8a17567db/grpcio_tools-1.83.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:72471a4a46909f1d798836c0a0aa2f568e10f6404585d7b22ac7330dd6a7bc74", size = 2652835, upload-time = "2026-07-23T15:21:06.072Z" }, + { url = "https://files.pythonhosted.org/packages/82/97/59bdf27c5f99848087b3b268c90b3fcc557d400c8d0224cf49c7ac573e60/grpcio_tools-1.83.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:7da547dd1e0b1fe3d6d5677e9c1848969ecdbd51a92c342cf82d885c5935de7d", size = 5967887, upload-time = "2026-07-23T15:21:08.19Z" }, + { url = "https://files.pythonhosted.org/packages/f6/c4/117d6688c4cb40240ce48da1ffac005e8da8bf63785634bdbb9143ca367e/grpcio_tools-1.83.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:33350bd94c4913f8eaf6ca79ce69cc673bb46ca5f800e6474b1d6899ed321dad", size = 2704869, upload-time = "2026-07-23T15:21:09.857Z" }, + { url = "https://files.pythonhosted.org/packages/1a/51/e4d1a89f69072bb93b975548c40fe9524219ab5777cce113c1e2183b1f2d/grpcio_tools-1.83.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0f27da6dc58c910f31dcee4fcbfd05659c10c14b9e132f4f17da48d867e75eb4", size = 3032318, upload-time = "2026-07-23T15:21:11.55Z" }, + { url = "https://files.pythonhosted.org/packages/ae/26/f9a082b79ae7f7dac7050047614000721dcf3d1c6d14bffa881b1f7a9774/grpcio_tools-1.83.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b3a5000e8540efb80f74d9c760f36ed9408294d76edb0fa4b87fd287b0a8a258", size = 2774113, upload-time = "2026-07-23T15:21:13.037Z" }, + { url = "https://files.pythonhosted.org/packages/de/59/b715d431218f0e8382490db7b1d01b3d32392c359c1886eee7e2551edaa8/grpcio_tools-1.83.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f710032264ed114c9d3b52f4c5cf71d68ccf70f25c4cb5776fe60388374bc01b", size = 3226715, upload-time = "2026-07-23T15:21:14.88Z" }, + { url = "https://files.pythonhosted.org/packages/5f/99/c4e91a2116062f7b42ab99459eeda15ec59a07daad01f4f38753fb1584ac/grpcio_tools-1.83.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ad00de87334154901e9af50a7f3f95261a0133502c6c0cea1f4e6107245154c3", size = 3799000, upload-time = "2026-07-23T15:21:16.352Z" }, + { url = "https://files.pythonhosted.org/packages/b8/f7/0bb5e45a1f51822c0bcf5a355a06132c43b9dbe5c283edc8d0b63bec7626/grpcio_tools-1.83.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:de2b0c645363f7c4b005f145e06e790870dfb21bb7e162dec6fee2f054de9291", size = 3457774, upload-time = "2026-07-23T15:21:17.953Z" }, + { url = "https://files.pythonhosted.org/packages/e7/51/52aec42a3059bad4263a7a82c715a0fc08220f7533be41f0b9177b05468a/grpcio_tools-1.83.0-cp311-cp311-win32.whl", hash = "sha256:6d1a1c9e62689d04b63b227558b759a55dce8fb81a3934d3b5f95d1ee26a2b45", size = 1022798, upload-time = "2026-07-23T15:21:19.854Z" }, + { url = "https://files.pythonhosted.org/packages/46/22/034d6daa5b2fae4e4c1718111c1b791589c3743d7d8fb07984e0b59c7f2c/grpcio_tools-1.83.0-cp311-cp311-win_amd64.whl", hash = "sha256:a6ac3cc2c2d77f869a96dfaf2b1315852878babddfe2dc49b9fd47afbf502865", size = 1192474, upload-time = "2026-07-23T15:21:21.467Z" }, + { url = "https://files.pythonhosted.org/packages/27/4d/02e4d809d880785a613697e4c0f8134a436ec0142dc3c11989ad1a1c787a/grpcio_tools-1.83.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:bd93bbe18c4424805fd2e39854f75d76f80655175621254dc43cb45ec8e91e85", size = 2653283, upload-time = "2026-07-23T15:21:22.973Z" }, + { url = "https://files.pythonhosted.org/packages/01/c9/23e8423ac54c3858a5cfbca8a954fa292cab7b8a9a1ee9dc3259b906b763/grpcio_tools-1.83.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:dc2d370563ee1ee6c1769e49df35ef3f6e75cea8f25acf4ac6e54b335e6f788f", size = 5965938, upload-time = "2026-07-23T15:21:24.686Z" }, + { url = "https://files.pythonhosted.org/packages/bf/a1/6eb17cf322bfbb76a9b9a8a5ca4a6b27f0af84821145969fc464feedaa0e/grpcio_tools-1.83.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8350e236470700b02bc4ba7f27a8796559630170e6527dda41c0344fbe988e56", size = 2705429, upload-time = "2026-07-23T15:21:26.519Z" }, + { url = "https://files.pythonhosted.org/packages/d4/84/f3c7e5e91e5d40ee792f112260bd329db5381de6f83b21387dd6163ebe51/grpcio_tools-1.83.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b1649f47c4675c1540ad2a77005f4d08392c06202686a0b1bb6b894f96cb75fe", size = 3033412, upload-time = "2026-07-23T15:21:28.183Z" }, + { url = "https://files.pythonhosted.org/packages/5f/ec/acd6c1800925b0d60f8a670b68cf5bc3566aee60e7cb90178b34253bf53a/grpcio_tools-1.83.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7d4edc6ba9fdca70bbf585ff6ab5971b8cd6140b4b316df66fd91d168bc1b617", size = 2774500, upload-time = "2026-07-23T15:21:29.955Z" }, + { url = "https://files.pythonhosted.org/packages/36/e6/c7c6f4e25b7344f1fbc5df69606bfd4b9692d4e32d17781c665d3ed45e70/grpcio_tools-1.83.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:762a9f8a4a4a39bda02feebed94efb8d778e0e5a82d0c8f786dce5ddcb950c7f", size = 3229875, upload-time = "2026-07-23T15:21:31.617Z" }, + { url = "https://files.pythonhosted.org/packages/77/fc/9cbdc4606f378a9c2b569c0b6b57f181f97787006be4131a5820d469b70a/grpcio_tools-1.83.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c6c469c928a183f1a99ab26e263fe307347ee7023fa623b55bc778846b2f51b9", size = 3803163, upload-time = "2026-07-23T15:21:33.35Z" }, + { url = "https://files.pythonhosted.org/packages/7b/0b/3b754886a02ead1487a967fd11ff13e920218fcf6c8e174f6de0c26dd819/grpcio_tools-1.83.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7980b3ca9dd31c42468c5af8cec97037f83715ea6efbe1b936ecb9c6832ac0f5", size = 3461815, upload-time = "2026-07-23T15:21:34.982Z" }, + { url = "https://files.pythonhosted.org/packages/eb/29/4629c154853f6f677299cde014e615084c15ad1d4fedd6845d2e7d354c7e/grpcio_tools-1.83.0-cp312-cp312-win32.whl", hash = "sha256:fd2ff46917f566b3b63dae191d1b05ef2188fe51e756ef321cbdd707ab29dbfb", size = 1022490, upload-time = "2026-07-23T15:21:36.696Z" }, + { url = "https://files.pythonhosted.org/packages/bb/59/696b9671e32a693c67299724a1f70f81dfb78aca6a3283ea6a65d54e92b8/grpcio_tools-1.83.0-cp312-cp312-win_amd64.whl", hash = "sha256:92d2343806b5c21162a57fbaad24fcd8d935ef530f95a0f706a4e2546fdc0662", size = 1192286, upload-time = "2026-07-23T15:21:38.446Z" }, + { url = "https://files.pythonhosted.org/packages/63/2f/a7a4465b2a5b74b479373bf44d86da5840d7d20871764a39fb300e55e093/grpcio_tools-1.83.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:3277cfbb7cbbd2d72921fbcd7aba6c8ab1c91a9ab27e8045ac0a0f2e0517cec9", size = 2652845, upload-time = "2026-07-23T15:21:40.173Z" }, + { url = "https://files.pythonhosted.org/packages/ab/69/ed8ebaae3bd0ecd2387b0fdb3a696bd4b4d4565d18589ee3ba7c6affcbed/grpcio_tools-1.83.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:1aa9617ce9c2bcbfb8f2fa08e6259e1b3cadaab0316e41f71496847af2f0a664", size = 5963575, upload-time = "2026-07-23T15:21:41.943Z" }, + { url = "https://files.pythonhosted.org/packages/13/23/75bddae583077f1374c64e2a87b5924bdbffe162b3855af30c30a0fc8c5c/grpcio_tools-1.83.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ad37c786ea92825534466052f5f22f1f29983b1d00ca71ad43e256715a86bba3", size = 2705094, upload-time = "2026-07-23T15:21:43.675Z" }, + { url = "https://files.pythonhosted.org/packages/f2/ac/7e1b12b1c5afff4f7d578f3c4eafbb1849f8004ddcc236cd3ff95c8be607/grpcio_tools-1.83.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:c82216864d435ecf6f535798d03e9f6b9025a672a2e815715d629aba4ba70349", size = 3033061, upload-time = "2026-07-23T15:21:45.657Z" }, + { url = "https://files.pythonhosted.org/packages/b8/6d/113291a7aad0c47a1e2ba2375595dfc3c2ab648e0ea05ff3d6f0f89055b3/grpcio_tools-1.83.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:04284627655629387b63278591e5efd0aded28d3a08432fe8a8765e4daf2d5b2", size = 2773649, upload-time = "2026-07-23T15:21:47.404Z" }, + { url = "https://files.pythonhosted.org/packages/dd/c2/ce1c6c2475ed5cb0f7c6689bde57e3c105714676227da11b423ff37620a9/grpcio_tools-1.83.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4fe627a5248d8e712f5ec3e019420050e61b10600ed241264aefb379a0f1b338", size = 3229788, upload-time = "2026-07-23T15:21:49.441Z" }, + { url = "https://files.pythonhosted.org/packages/c5/53/823fd52c29630398706de400ce7003b03e17ce91df024fc53cde810d2758/grpcio_tools-1.83.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1d5a9a9664d2f4bdda000652e7febf9ab4545a6391c8f05babd52ecb27d7e03e", size = 3802531, upload-time = "2026-07-23T15:21:51.37Z" }, + { url = "https://files.pythonhosted.org/packages/30/85/942ee07caf97b75ead416c6ad5f2fb12b16b8bc92fa3d60bbbea4c06e076/grpcio_tools-1.83.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4bf0e421e1ab5f2cd638de44fc903aed3ba4a2fcb19b93c6f528ff0ec63e3a6a", size = 3461032, upload-time = "2026-07-23T15:21:53.343Z" }, + { url = "https://files.pythonhosted.org/packages/d4/0b/54cb428ea18912fa9541509fbc2e10f9807d96e88cf435f86e63c540ac25/grpcio_tools-1.83.0-cp313-cp313-win32.whl", hash = "sha256:7b1bd6db403b38addded54866187eba6f9ab9afadf72bb8d0515ed13f0b16c5c", size = 1022116, upload-time = "2026-07-23T15:21:55.036Z" }, + { url = "https://files.pythonhosted.org/packages/77/80/2369320766091f6daedb924d133037a9f8b84bfb3e4d02d6ccffcd57b0cd/grpcio_tools-1.83.0-cp313-cp313-win_amd64.whl", hash = "sha256:d654c645af7cf608a30644bffb8d1ef6b14e8846482c3d0131d0dda91f6fb590", size = 1191934, upload-time = "2026-07-23T15:21:56.862Z" }, + { url = "https://files.pythonhosted.org/packages/b2/bd/3abb9c200f90110805553ca0e8f7908a0b89485ea99bb271daa37eaafb72/grpcio_tools-1.83.0-cp314-cp314-linux_armv7l.whl", hash = "sha256:1ea047ff4bd2bb32fe5268042cb9c9e7bb054e932b52ad756642622f032ef656", size = 2652841, upload-time = "2026-07-23T15:21:58.726Z" }, + { url = "https://files.pythonhosted.org/packages/a2/46/d5beb04f0ffe552e55eaddd3413786e17a1fa68edb2fd8398969c38bc7e8/grpcio_tools-1.83.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:7a8ac9cb3fbf7a5e4fe59f211e77b4fa4d51279c9f480e6ff98037cf56da1ad8", size = 5963493, upload-time = "2026-07-23T15:22:00.547Z" }, + { url = "https://files.pythonhosted.org/packages/40/1b/d8e01ca3281cb59722372c415024a7e70e8a653e70e2075e875394e4f761/grpcio_tools-1.83.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a5fa95fb33a600d2491867a1048f47baa27a830eac01f475043b8ccf63a471eb", size = 2705303, upload-time = "2026-07-23T15:22:02.448Z" }, + { url = "https://files.pythonhosted.org/packages/83/43/75b382d8f116e274ce639ec55a6908dc792627b01d3c47b4f8991701203b/grpcio_tools-1.83.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0ca67941524662e01adea91571bb79df1ac9b4b2641812ef8636e21945119bee", size = 3033047, upload-time = "2026-07-23T15:22:04.445Z" }, + { url = "https://files.pythonhosted.org/packages/0f/9f/200fb55729b735192fded061f53aa37c88cf9f58933cb108e16f5c1fd967/grpcio_tools-1.83.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e2a5816a5b6b06b42a6989f02944841c2a8b3daaa7f033dac9267f70078028ef", size = 2773830, upload-time = "2026-07-23T15:22:06.519Z" }, + { url = "https://files.pythonhosted.org/packages/d1/bc/e585c4e255599ec45f2e07e0f570352158354285afd65ef30ceda97b445e/grpcio_tools-1.83.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f4a83f002895b11c4a862c366d77165825e0064aff14bf2c7453f59f66599b0e", size = 3229907, upload-time = "2026-07-23T15:22:08.358Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a1/0c098b4ff64d948666b79d0036ce104b8c2209e6f4d1594046044dcfa25d/grpcio_tools-1.83.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:1cfee967ae073bc064862971871229248965422f38556096aec76db19d8a8c79", size = 3802600, upload-time = "2026-07-23T15:22:10.393Z" }, + { url = "https://files.pythonhosted.org/packages/d4/e1/249047aab0da8c6b3b2e0156e6868aa0b598973ddf53f59186c43664ff96/grpcio_tools-1.83.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f7e82ee718ae09f879cb832e4517a56691de24383a2da673be184ad8b18e452f", size = 3461307, upload-time = "2026-07-23T15:22:12.33Z" }, + { url = "https://files.pythonhosted.org/packages/39/aa/11a228c47acecde2e05715bda4480e5a695690e00776c1db391e5a02c1f7/grpcio_tools-1.83.0-cp314-cp314-win32.whl", hash = "sha256:846fd211ebb72f50d39d3874cc0d616c2b9bcb71db51121ca86af29eec013c74", size = 1045047, upload-time = "2026-07-23T15:22:14.23Z" }, + { url = "https://files.pythonhosted.org/packages/30/b1/d1f150b2ab3b4ae9932c05104fe1edbcb7fbf505587ea8db99e49341a05f/grpcio_tools-1.83.0-cp314-cp314-win_amd64.whl", hash = "sha256:b8c9686b0c19f70b63d8d6cfeff5ad3480bdedecd60f14711fe43950f5397253", size = 1224199, upload-time = "2026-07-23T15:22:16.064Z" }, +] + [[package]] name = "htmlmin2" version = "0.1.13" @@ -2339,6 +2756,43 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d6/02/12c73fd423eb9577b97fc1924966b929eff7074ae6b2e15dd3d30cb9e4ae/segno-1.6.6-py3-none-any.whl", hash = "sha256:28c7d081ed0cf935e0411293a465efd4d500704072cdb039778a2ab8736190c7", size = 76503, upload-time = "2025-03-12T22:12:48.106Z" }, ] +[[package]] +name = "setuptools" +version = "75.3.4" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.9'", +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/93/d2622cbf262418995140dfc1ddb890badd6322893fa122302577c82b9617/setuptools-75.3.4.tar.gz", hash = "sha256:b4ea3f76e1633c4d2d422a5d68ab35fd35402ad71e6acaa5d7e5956eb47e8887", size = 1354595, upload-time = "2026-02-08T14:12:34.287Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cd/b1/961ba076c7d3732e3a97e6681c55ef647afb795fe8bfcd27becec8a762ce/setuptools-75.3.4-py3-none-any.whl", hash = "sha256:2dd50a7f42dddfa1d02a36f275dbe716f38ed250224f609d35fb60a09593d93e", size = 1251633, upload-time = "2026-02-08T14:12:32.364Z" }, +] + +[[package]] +name = "setuptools" +version = "82.0.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.9.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/4f/db/cfac1baf10650ab4d1c111714410d2fbb77ac5a616db26775db562c8fab2/setuptools-82.0.1.tar.gz", hash = "sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9", size = 1152316, upload-time = "2026-03-09T12:47:17.221Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl", hash = "sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb", size = 1006223, upload-time = "2026-03-09T12:47:15.026Z" }, +] + +[[package]] +name = "setuptools" +version = "84.0.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15'", + "python_full_version >= '3.10' and python_full_version < '3.15'", +] +sdist = { url = "https://files.pythonhosted.org/packages/6d/44/f5da03a8ef95d369145c5bb53050e7877c9f3d312e128605fd9504829143/setuptools-84.0.0.tar.gz", hash = "sha256:f4695c21257f0d9b537ec2692c941d02ee143b7cc1276941349a546573b2ef73", size = 1168449, upload-time = "2026-08-08T18:27:58.365Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/95/9c/c510029fc6ef33a6275cd2c5d3cecd6613dfd6aa401d57c54f1c18852ccf/setuptools-84.0.0-py3-none-any.whl", hash = "sha256:51a52592b3b99e102b609654876bd65f19f999935166d1352678931132b0c670", size = 818216, upload-time = "2026-08-08T18:27:56.719Z" }, +] + [[package]] name = "shellingham" version = "1.5.4" @@ -2440,6 +2894,9 @@ dependencies = [ [package.dev-dependencies] dev = [ + { name = "grpcio-tools", version = "1.70.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "grpcio-tools", version = "1.80.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "grpcio-tools", version = "1.83.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "maturin" }, { name = "mypy", version = "1.14.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "mypy", version = "1.19.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, @@ -2468,6 +2925,7 @@ requires-dist = [{ name = "protobuf", specifier = ">=5.29.6" }] [package.metadata.requires-dev] dev = [ + { name = "grpcio-tools", specifier = ">=1.70.0" }, { name = "maturin", specifier = ">=1.12,<2.0" }, { name = "mypy", specifier = ">=1.14.0" }, { name = "mypy-protobuf", specifier = ">=5.0.0" }, diff --git a/waproto/whatsapp.proto b/waproto/whatsapp.proto index 596ee88..0b48b9d 100644 --- a/waproto/whatsapp.proto +++ b/waproto/whatsapp.proto @@ -1,26 +1,27 @@ syntax = "proto2"; package whatsapp; -/// WhatsApp Version: 2.3000.1031424117 +/// WhatsApp Version: 2.3000.1045368834 message ADVDeviceIdentity { optional uint32 rawId = 1; optional uint64 timestamp = 2; optional uint32 keyIndex = 3; - optional ADVEncryptionType accountType = 4; - optional ADVEncryptionType deviceType = 5; + optional ADVEncryptionType accountType = 4 [default = E2EE]; + optional ADVEncryptionType deviceType = 5 [default = E2EE]; } enum ADVEncryptionType { E2EE = 0; HOSTED = 1; + NON_E2EE = 2; } message ADVKeyIndexList { optional uint32 rawId = 1; optional uint64 timestamp = 2; optional uint32 currentIndex = 3; repeated uint32 validIndexes = 4 [packed = true]; - optional ADVEncryptionType accountType = 5; + optional ADVEncryptionType accountType = 5 [default = E2EE]; } message ADVSignedDeviceIdentity { @@ -33,7 +34,7 @@ message ADVSignedDeviceIdentity { message ADVSignedDeviceIdentityHMAC { optional bytes details = 1; optional bytes hmac = 2; - optional ADVEncryptionType accountType = 3; + optional ADVEncryptionType accountType = 3 [default = E2EE]; } message ADVSignedKeyIndexList { @@ -54,15 +55,42 @@ message AIHomeState { optional string imageWdsIdentifier = 5; optional string imageTintColor = 6; optional string imageBackgroundColor = 7; + optional string cardTypeId = 8; enum AIHomeActionType { PROMPT = 0; CREATE_IMAGE = 1; ANIMATE_PHOTO = 2; ANALYZE_FILE = 3; + COLLABORATE = 4; + OPEN_GREETING_CARD = 5; } } } +message AIMediaCollectionMessage { + optional string collectionId = 1; + optional uint32 expectedMediaCount = 2; + optional bool hasGlobalCaption = 3; +} + +message AIMediaCollectionMetadata { + optional string collectionId = 1; + optional uint32 uploadOrderIndex = 2; +} + +message AIMetadataOperation { + optional HatchMetadataSync hatchMetadataSync = 1; +} + +message AIProvenance { + optional Metadata c2PaMetadata = 1; + optional Metadata iptcMetadata = 2; + message Metadata { + optional bool createdWithGenAi = 1; + optional bool editedWithGenAi = 2; + } +} + message AIQueryFanout { optional MessageKey messageKey = 1; optional Message message = 2; @@ -96,7 +124,7 @@ message AIRichResponseContentItemsMetadata { repeated AIRichResponseContentItemMetadata itemsMetadata = 1; optional ContentType contentType = 2; message AIRichResponseContentItemMetadata { - oneof aIRichResponseContentItem { + oneof aiRichResponseContentItem { AIRichResponseContentItemsMetadata.AIRichResponseReelItem reelItem = 1; } } @@ -230,15 +258,27 @@ message AIRichResponseUnifiedResponse { optional bytes data = 1; } +enum AISubscriptionRequestType { + UNSPECIFIED = 0; + THINK_HARD = 1; + IMAGE_GEN = 2; + VIDEO_GEN = 3; +} +message AISubscriptionUpsellMetadata { + optional AISubscriptionRequestType requestType = 1; +} + message AIThreadInfo { optional AIThreadServerInfo serverInfo = 1; optional AIThreadClientInfo clientInfo = 2; message AIThreadClientInfo { optional AIThreadType type = 1; + optional string sourceChatJid = 2; enum AIThreadType { UNKNOWN = 0; DEFAULT = 1; INCOGNITO = 2; + SIDE_CHAT = 3; } } @@ -254,6 +294,13 @@ message Account { optional bool isUsernameDeleted = 4; } +message AccountLinkingOpaqueData { + optional string accesstoken = 1; + optional string fbid = 2; + optional string nonce = 3; + optional string encryptedPassword = 4; +} + message ActionLink { optional string url = 1; optional string buttonTitle = 2; @@ -271,6 +318,12 @@ message AvatarUserSettings { optional string password = 2; } +message BackwardEdge { + optional bytes encryptedPrevEpochAnonId = 1; + optional bytes encryptedPrevEpochRootKey = 2; + optional bytes prevEpochRootKeyFingerprint = 3; +} + message BizAccountLinkInfo { optional uint64 whatsappBizAcctFbid = 1; optional string whatsappAcctNumber = 2; @@ -325,12 +378,13 @@ message BotAgeCollectionMetadata { } } -message BotAvatarMetadata { - optional uint32 sentiment = 1; - optional string behaviorGraph = 2; - optional uint32 action = 3; - optional uint32 intensity = 4; - optional uint32 wordCount = 5; +message BotAgentDeepLinkMetadata { + optional string token = 1; + optional bytes clientPublicKey = 2; +} + +message BotAgentMetadata { + optional BotAgentDeepLinkMetadata deepLinkMetadata = 1; } message BotCapabilityMetadata { @@ -391,7 +445,28 @@ message BotCapabilityMetadata { AI_IMAGINE_LOADING_INDICATOR = 52; RICH_RESPONSE_UR_IMAGINE = 53; AI_IMAGINE_UR_TO_NATIVE_LOADING_INDICATOR = 54; - } + RICH_RESPONSE_UR_BLOKS_ENABLED = 55; + RICH_RESPONSE_INLINE_LINKS_ENABLED = 56; + RICH_RESPONSE_UR_IMAGINE_VIDEO = 57; + JSON_PATCH_STREAMING = 58; + AI_TAB_FORCE_CLIPPY = 59; + UNIFIED_RESPONSE_EMBEDDED_SCREENS = 60; + AI_SUBSCRIPTION_ENABLED = 61; + UNIFIED_RESPONSE_AI_CONTENT_SEARCH_ENABLED = 62; + UNIFIED_RESPONSE_MARKDOWN_LINKS_ENABLED = 63; + AI_RICH_RESPONSE_MAPS_V2_ENABLED = 64; + AI_SUBSCRIPTION_METERING_ENABLED = 65; + RICH_RESPONSE_SPORTS_WIDGET_ENABLED = 66; + AI_RICH_RESPONSE_ARTIFACTS_ENABLED = 67; + AI_RICH_RESPONSE_EMAIL_CALENDAR_ENABLED = 68; + AI_RICH_RESPONSE_REMINDERS_ENABLED = 69; + } +} + +message BotCommandMetadata { + optional string commandName = 1; + optional string commandDescription = 2; + optional string commandPrompt = 3; } message BotDocumentMessageMetadata { @@ -502,8 +577,13 @@ message BotGroupParticipantMetadata { optional string botFbid = 1; } +message BotHistoryShareMetadata { + repeated BotGroupParticipantMetadata participantsMetadata = 1; +} + message BotImagineMetadata { optional ImagineType imagineType = 1; + optional string shortPrompt = 2; enum ImagineType { UNKNOWN = 0; IMAGINE = 1; @@ -513,6 +593,16 @@ message BotImagineMetadata { } } +message BotInfrastructureDiagnostics { + optional BotBackend botBackend = 1; + repeated string toolsUsed = 2; + optional bool isThinking = 3; + enum BotBackend { + AAPI = 0; + CLIPPY = 1; + } +} + message BotLinkedAccount { optional BotLinkedAccountType type = 1; enum BotLinkedAccountType { @@ -573,7 +663,6 @@ message BotMessageSharingInfo { } message BotMetadata { - optional BotAvatarMetadata avatarMetadata = 1; optional string personaId = 2; optional BotPluginMetadata pluginMetadata = 3; optional BotSuggestedPromptMetadata suggestedPromptMetadata = 4; @@ -609,6 +698,13 @@ message BotMetadata { optional BotDocumentMessageMetadata botDocumentMessageMetadata = 34; optional BotGroupMetadata botGroupMetadata = 35; optional BotRenderingConfigMetadata botRenderingConfigMetadata = 36; + optional BotInfrastructureDiagnostics botInfrastructureDiagnostics = 37; + optional AIMediaCollectionMetadata aiMediaCollectionMetadata = 38; + optional BotCommandMetadata commandMetadata = 39; + optional BotResolvedToolCallMetadata resolvedToolCallMetadata = 40; + optional AISubscriptionUpsellMetadata subscriptionUpsellMetadata = 41; + optional BotPttPromptMetadata pttPromptMetadata = 42; + optional BotHistoryShareMetadata botHistoryShareMetadata = 43; optional bytes internalMetadata = 999; } @@ -656,6 +752,12 @@ enum BotMetricsEntryPoint { MEDIA_PICKER_GROUP_CHAT = 40; ASK_META_AI_NO_SEARCH_RESULTS = 41; META_AI_SETTINGS = 45; + WEB_INTRO_PANEL = 46; + WEB_NAVIGATION_BAR = 47; + GROUP_MEMBER = 54; + CHATLIST_SEARCH = 55; + NEW_CHAT_LIST = 56; + CONTACTS_TAB = 57; } message BotMetricsMetadata { optional string destinationId = 1; @@ -672,9 +774,10 @@ enum BotMetricsThreadEntryPoint { } message BotModeSelectionMetadata { repeated BotUserSelectionMode mode = 1; + repeated uint32 overrideMode = 2; enum BotUserSelectionMode { - UNKNOWN_MODE = 0; - REASONING_MODE = 1; + DEFAULT_MODE = 0; + THINK_HARD_MODE = 1; } } @@ -791,6 +894,10 @@ message BotPromptSuggestions { repeated BotPromptSuggestion suggestions = 1; } +message BotPttPromptMetadata { + optional string transcript = 1; +} + message BotQuotaMetadata { repeated BotFeatureQuotaMetadata botFeatureQuotaMetadata = 1; message BotFeatureQuotaMetadata { @@ -838,6 +945,11 @@ message BotRenderingMetadata { } } +message BotResolvedToolCallMetadata { + optional string toolCallId = 1; + optional string resolutionDataSerialized = 2; +} + message BotSessionMetadata { optional string sessionId = 1; optional BotSessionSource sessionSource = 2; @@ -862,9 +974,18 @@ message BotSignatureVerificationUseCaseProof { optional BotSignatureUseCase useCase = 2; optional bytes signature = 3; repeated bytes certificateChain = 4; + repeated CertificateSKI certificateChainSki = 5; enum BotSignatureUseCase { UNSPECIFIED = 0; WA_BOT_MSG = 1; + WA_TEE_BOT_MSG = 2; + P2P_PILLS = 3; + WA_WAFFLE = 4; + WA_FEATURE_PKI = 5; + } + message CertificateSKI { + optional BotSignatureVerificationUseCaseProof.BotSignatureUseCase useCase = 1; + optional bytes ski = 2; } } @@ -910,6 +1031,25 @@ message BotUnifiedResponseMutation { } } +enum COMMAND_COMMAND_TYPE { + EVERYONE = 1; + SILENT = 2; + AI = 3; + AI_IMAGINE = 4; +} +enum CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE { + SMALL = 1; + MEDIUM = 2; + LARGE = 3; +} +enum CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE { + SANS_SERIF = 0; + SERIF = 1; + NORICAN_REGULAR = 2; + BRYNDAN_WRITE = 3; + BEBASNEUE_REGULAR = 4; + OSWALD_HEAVY = 5; +} message CallLogRecord { optional CallResult callResult = 1; optional bool isDndMode = 2; @@ -1027,6 +1167,7 @@ message ClientPairingProps { optional bool isSyncdPureLidSession = 2; optional bool isSyncdSnapshotRecoveryEnabled = 3; optional bool isHsThumbnailSyncEnabled = 4; + optional bytes subscriptionSyncPayload = 5; } message ClientPayload { @@ -1064,6 +1205,8 @@ message ClientPayload { optional bool paaLink = 44; optional int32 preacksCount = 45; optional int32 processingQueueSize = 46; + repeated string pairedPeripherals = 47; + optional bytes testIsolationId = 48; enum AccountType { DEFAULT = 0; GUEST = 1; @@ -1159,6 +1302,7 @@ message ClientPayload { optional string deviceExpId = 14; optional DeviceType deviceType = 15; optional string deviceModelType = 16; + optional DistributionChannel distributionChannel = 17; message AppVersion { optional uint32 primary = 1; optional uint32 secondary = 2; @@ -1174,6 +1318,12 @@ message ClientPayload { WEARABLE = 3; VR = 4; } + enum DistributionChannel { + APPSTORE = 0; + WEBSITE = 1; + TESTFLIGHT = 2; + INTERNAL = 3; + } enum Platform { ANDROID = 0; IOS = 1; @@ -1213,6 +1363,7 @@ message ClientPayload { SMART_GLASSES = 35; BLUE_VR = 36; AR_WRIST = 37; + WAIL = 38; } enum ReleaseChannel { RELEASE = 0; @@ -1253,6 +1404,21 @@ message ClientPayload { } } +message CoexStateSync { + repeated CollectionMutations collectionMutations = 1; + message CollectionMutations { + optional string collection = 1; + repeated CoexStateSync.Mutation mutations = 2; + } + + message Mutation { + optional SyncdIndex index = 1; + optional SyncdValue value = 2; + optional uint64 dirtyVersion = 3; + optional SyncdMutation.SyncdOperation operation = 4; + } +} + enum CollectionName { COLLECTION_NAME_UNKNOWN = 0; REGULAR = 1; @@ -1261,6 +1427,19 @@ enum CollectionName { CRITICAL_BLOCK = 4; CRITICAL_UNBLOCK_LOW = 5; } +message CombinedFingerprint { + optional uint32 version = 1; + optional FingerprintData localFingerprint = 2; + optional FingerprintData remoteFingerprint = 3; +} + +message Command { + optional COMMAND_COMMAND_TYPE commandType = 1; + optional uint32 offset = 2; + optional uint32 length = 3; + optional string validationToken = 4; +} + message CommentMetadata { optional MessageKey commentParentKey = 1; optional uint32 replyCount = 2; @@ -1281,6 +1460,216 @@ message Config { optional uint32 version = 2; } +message ConsumerApplication { + optional Payload payload = 1; + optional Metadata metadata = 2; + message ApplicationData { + oneof applicationContent { + ConsumerApplication.RevokeMessage revoke = 1; + } + } + + message AudioMessage { + optional SubProtocol audio = 1; + optional bool ptt = 2; + } + + message ContactMessage { + optional SubProtocol contact = 1; + } + + message ContactsArrayMessage { + optional string displayName = 1; + repeated ConsumerApplication.ContactMessage contacts = 2; + } + + message Content { + oneof content { + MessageText messageText = 1; + ConsumerApplication.ImageMessage imageMessage = 2; + ConsumerApplication.ContactMessage contactMessage = 3; + ConsumerApplication.LocationMessage locationMessage = 4; + ConsumerApplication.ExtendedTextMessage extendedTextMessage = 5; + ConsumerApplication.StatusTextMesage statusTextMessage = 6; + ConsumerApplication.DocumentMessage documentMessage = 7; + ConsumerApplication.AudioMessage audioMessage = 8; + ConsumerApplication.VideoMessage videoMessage = 9; + ConsumerApplication.ContactsArrayMessage contactsArrayMessage = 10; + ConsumerApplication.LiveLocationMessage liveLocationMessage = 11; + ConsumerApplication.StickerMessage stickerMessage = 12; + ConsumerApplication.GroupInviteMessage groupInviteMessage = 13; + ConsumerApplication.ViewOnceMessage viewOnceMessage = 14; + ConsumerApplication.ReactionMessage reactionMessage = 16; + ConsumerApplication.PollCreationMessage pollCreationMessage = 17; + ConsumerApplication.PollUpdateMessage pollUpdateMessage = 18; + ConsumerApplication.EditMessage editMessage = 19; + } + } + + message DocumentMessage { + optional SubProtocol document = 1; + optional string fileName = 2; + } + + message EditMessage { + optional MessageKey key = 1; + optional MessageText message = 2; + optional int64 timestampMs = 3; + } + + message ExtendedTextMessage { + optional MessageText text = 1; + optional string matchedText = 2; + optional string canonicalUrl = 3; + optional string description = 4; + optional string title = 5; + optional SubProtocol thumbnail = 6; + optional CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE previewType = 7; + } + + message GroupInviteMessage { + optional string groupJid = 1; + optional string inviteCode = 2; + optional int64 inviteExpiration = 3; + optional string groupName = 4; + optional bytes jpegThumbnail = 5; + optional MessageText caption = 6; + } + + message ImageMessage { + optional SubProtocol image = 1; + optional MessageText caption = 2; + } + + message InteractiveAnnotation { + repeated ConsumerApplication.Point polygonVertices = 1; + oneof action { + ConsumerApplication.Location location = 2; + } + } + + message LiveLocationMessage { + optional ConsumerApplication.Location location = 1; + optional uint32 accuracyInMeters = 2; + optional float speedInMps = 3; + optional uint32 degreesClockwiseFromMagneticNorth = 4; + optional MessageText caption = 5; + optional int64 sequenceNumber = 6; + optional uint32 timeOffset = 7; + } + + message Location { + optional double degreesLatitude = 1; + optional double degreesLongitude = 2; + optional string name = 3; + } + + message LocationMessage { + optional ConsumerApplication.Location location = 1; + optional string address = 2; + } + + message MediaPayload { + optional SubProtocol protocol = 1; + } + + message Metadata { + optional CONSUMER_APPLICATION_METADATA_SPECIAL_TEXT_SIZE specialTextSize = 1; + } + + message Option { + optional string optionName = 1; + } + + message Payload { + oneof payload { + ConsumerApplication.Content content = 1; + ConsumerApplication.ApplicationData applicationData = 2; + ConsumerApplication.Signal signal = 3; + ConsumerApplication.SubProtocolPayload subProtocol = 4; + } + } + + message Point { + optional double x = 1; + optional double y = 2; + } + + message PollAddOptionMessage { + repeated ConsumerApplication.Option pollOption = 1; + } + + message PollCreationMessage { + optional bytes encKey = 1; + optional string name = 2; + repeated ConsumerApplication.Option options = 3; + optional uint32 selectableOptionsCount = 4; + } + + message PollEncValue { + optional bytes encPayload = 1; + optional bytes encIv = 2; + } + + message PollUpdateMessage { + optional MessageKey pollCreationMessageKey = 1; + optional ConsumerApplication.PollEncValue vote = 2; + optional ConsumerApplication.PollEncValue addOption = 3; + } + + message PollVoteMessage { + repeated bytes selectedOptions = 1; + optional int64 senderTimestampMs = 2; + } + + message ReactionMessage { + optional MessageKey key = 1; + optional string text = 2; + optional string groupingKey = 3; + optional int64 senderTimestampMs = 4; + optional string reactionMetadataDataclassData = 5; + optional int32 style = 6; + } + + message RevokeMessage { + optional MessageKey key = 1; + } + + message Signal {} + + message StatusTextMesage { + optional ConsumerApplication.ExtendedTextMessage text = 1; + optional fixed32 textArgb = 6; + optional fixed32 backgroundArgb = 7; + optional CONSUMER_APPLICATION_STATUS_TEXT_MESAGE_FONT_TYPE font = 8; + } + + message StickerMessage { + optional SubProtocol sticker = 1; + } + + message SubProtocolPayload { + optional FUTURE_PROOF_BEHAVIOR futureProof = 1; + } + + message VideoMessage { + optional SubProtocol video = 1; + optional MessageText caption = 2; + } + + message ViewOnceMessage { + oneof viewOnceContent { + ConsumerApplication.ImageMessage imageMessage = 1; + ConsumerApplication.VideoMessage videoMessage = 2; + } + } + + enum CONSUMER_APPLICATION_EXTENDED_TEXT_MESSAGE_PREVIEW_TYPE { + NONE = 0; + VIDEO = 1; + } +} + message ContextInfo { optional string stanzaId = 1; optional string participant = 2; @@ -1337,6 +1726,15 @@ message ContextInfo { optional uint32 nonJidMentions = 70; optional QuotedType quotedType = 71; optional BotMessageSharingInfo botMessageSharingInfo = 72; + optional bool isSpoiler = 73; + optional MediaDomainInfo mediaDomainInfo = 74; + optional PartiallySelectedContent partiallySelectedContent = 75; + optional uint32 afterReadDuration = 76; + optional CrossAppSource crossAppSource = 77; + optional BusinessInteractionPills businessInteractionPills = 78; + optional string posterStatusId = 79; + optional InstagramThreadLink instagramThreadLink = 80; + optional AIProvenance aiProvenance = 81; message AdReplyInfo { optional string advertiserName = 1; optional MediaType mediaType = 2; @@ -1349,10 +1747,63 @@ message ContextInfo { } } + message BusinessInteractionPills { + optional string businessJid = 1; + repeated Pill pills = 2; + optional EntryPoint entryPoint = 3; + optional bytes signedPayload = 4; + optional BotSignatureVerificationMetadata signatureEnvelope = 5; + optional UnauthenticatedBusinessMetadata unauthenticatedBusinessMetadata = 6; + enum EntryPoint { + ENTRY_POINT_UNKNOWN = 0; + P2P_LINK_SHARE = 1; + CONTACT_CARD_SHARING = 2; + PHONE_NUMBER = 3; + STATUS = 4; + IN_THREAD_CONTEXT_CARD = 5; + } + message Pill { + optional ContextInfo.BusinessInteractionPills.PillType pillType = 1; + optional string actionUrl = 2; + } + + enum PillType { + UNKNOWN = 0; + VIEW_BUSINESS = 1; + CHAT = 2; + CALL = 3; + CATALOG = 4; + CHANNEL = 5; + BOOK_APPOINTMENT = 6; + OFFERS = 7; + BESTSELLERS = 8; + MENU = 9; + ABOUT = 10; + SHOP = 11; + ORDER = 12; + } + message SignedPayload { + optional string verifiedName = 1; + repeated ContextInfo.BusinessInteractionPills.Pill pills = 2; + } + + message UnauthenticatedBusinessMetadata { + optional string businessName = 1; + optional string businessCategory = 2; + optional bool businessIsOpen = 3; + optional int64 businessIsOpenSnapshotMs = 4; + } + } + message BusinessMessageForwardInfo { optional string businessOwnerJid = 1; } + enum CrossAppSource { + CROSS_APP_SOURCE_UNKNOWN = 0; + CROSS_APP_SOURCE_INSTAGRAM = 1; + CROSS_APP_SOURCE_FACEBOOK = 2; + } message DataSharingContext { optional bool showMmDisclosure = 1; optional string encryptedSignalTokenConsented = 2; @@ -1399,6 +1850,11 @@ message ContextInfo { optional AdType adType = 25; optional string wtwaWebsiteUrl = 26; optional string adPreviewUrl = 27; + optional bool containsCtwaFlowsAutoReply = 28; + optional int32 agmThumbnailStrategy = 29; + optional int32 agmTitleStrategy = 30; + optional int32 agmSubtitleStrategy = 31; + optional int32 agmHeaderInteractionStrategy = 32; enum AdType { CTWA = 0; CAWC = 1; @@ -1411,11 +1867,11 @@ message ContextInfo { } message FeatureEligibilities { - optional bool cannotBeReactedTo = 1; - optional bool cannotBeRanked = 2; - optional bool canRequestFeedback = 3; - optional bool canBeReshared = 4; - optional bool canReceiveMultiReact = 5; + optional bool cannotBeReactedTo = 1 [default = false]; + optional bool cannotBeRanked = 2 [default = false]; + optional bool canRequestFeedback = 3 [default = false]; + optional bool canBeReshared = 4 [default = false]; + optional bool canReceiveMultiReact = 5 [default = false]; } enum ForwardOrigin { @@ -1440,6 +1896,10 @@ message ContextInfo { } } + message InstagramThreadLink { + optional string url = 1; + } + enum PairedMediaType { NOT_PAIRED_MEDIA = 0; SD_VIDEO_PARENT = 1; @@ -1451,6 +1911,10 @@ message ContextInfo { HEVC_VIDEO_PARENT = 7; HEVC_VIDEO_CHILD = 8; } + message PartiallySelectedContent { + optional string text = 1; + } + message QuestionReplyQuotedMessage { optional int32 serverQuestionId = 1; optional Message quotedQuestion = 2; @@ -1470,6 +1934,8 @@ message ContextInfo { } message StatusAudienceMetadata { optional AudienceType audienceType = 1; + optional string listName = 2; + optional string listEmoji = 3; enum AudienceType { UNKNOWN = 0; CLOSE_FRIENDS = 1; @@ -1545,12 +2011,211 @@ message Conversation { optional LimitSharing.TriggerType limitSharingTrigger = 52; optional bool limitSharingInitiatedByMe = 53; optional bool maibaAiThreadEnabled = 54; + optional bool isMarketingMessageThread = 55; + optional bool isSenderNewAccount = 56; + optional uint32 afterReadDuration = 57; + optional bool isSenderSuspicious = 58; + optional GroupAppealStatus appealStatus = 59; + optional uint64 appealUpdateTime = 60; + optional string authAgentParentCompanyName = 61; + optional string authAgentObaPhoneNumber = 62; + optional IdentityVerificationState identityVerification = 63; enum EndOfHistoryTransferType { COMPLETE_BUT_MORE_MESSAGES_REMAIN_ON_PRIMARY = 0; COMPLETE_AND_NO_MORE_MESSAGE_REMAIN_ON_PRIMARY = 1; COMPLETE_ON_DEMAND_SYNC_BUT_MORE_MSG_REMAIN_ON_PRIMARY = 2; COMPLETE_ON_DEMAND_SYNC_WITH_MORE_MSG_ON_PRIMARY_BUT_NO_ACCESS = 3; } + enum GroupAppealStatus { + NO_APPEAL = 0; + APPEAL_IN_REVIEW = 1; + APPEAL_APPROVED = 2; + APPEAL_REJECTED = 3; + } +} + +message CreateBackupInput { + required string recoveryCode = 1; + required uint64 userId = 2; +} + +message CreateBackupOutput { + optional DeviceOutput device = 1; + optional VirtualDeviceOutput virtualDevice = 2; + optional Epoch0Output epoch0 = 3; + optional bytes mailboxRootKey = 4; + optional string error = 5; +} + +message DecryptMekForDistributionFromTransportSenderInput { + required TransportSenderMEKDistributionSingleRecipient mekDistribution = 1; + required bytes mekId = 2; + required bytes rosterHash = 3; + required bytes recipientEncSk = 4; + required uint64 version = 5; + optional MinosClientConfig conf = 6; + message TransportSenderMEKDistributionSingleRecipient { + required bytes encryptedMek = 1; + required bytes ephemeralEncryptionPk = 2; + required bytes signingPk = 3; + required bytes signature = 4; + optional bytes recipientEpochHead = 5; + } +} + +message DecryptMekForDistributionFromTransportSenderResult { + oneof result { + DecryptMekForDistributionFromTransportSenderSuccess success = 1; + string errorMessage = 2; + } +} + +message DecryptMekForDistributionFromTransportSenderSuccess { + required bytes mek = 1; +} + +message DecryptMekForDistributionInput { + required bytes toMailboxSk = 1; + required bytes fromPk = 2; + required bytes mekId = 3; + required bytes senderEpochHead = 4; + required bytes rosterHash = 5; + required bytes ciphertext = 6; + optional bytes toEpochHead = 7; + optional int32 mekEncryptionVersion = 8; + optional MinosClientConfig conf = 9; +} + +message DecryptMekForDistributionResult { + oneof result { + DecryptMekForDistributionSuccess success = 1; + string errorMessage = 2; + } +} + +message DecryptMekForDistributionSuccess { + required bytes mek = 1; +} + +message DecryptMessageInput { + required bytes epochRootKey = 1; + required bytes epochAnonId = 2; + required string threadId = 3; + required int32 encryptionVersion = 4; + required bytes ciphertext = 5; +} + +message DecryptMessageOutput { + optional bytes plaintextPayload = 1; + optional string error = 2; +} + +message DecryptSelfMmkDistributionInput { + required bytes encryptedMmk = 1; + required bytes exportRootKey = 2; + required bytes mailboxHeadHash = 3; +} + +message DecryptSelfMmkDistributionResult { + oneof result { + DecryptSelfMmkDistributionSuccess success = 1; + string errorMessage = 2; + } +} + +message DecryptSelfMmkDistributionSuccess { + required bytes mmkSeed = 1; +} + +message DeriveAttachmentAccessTokenSecretInput { + required bytes mediaKey = 1; +} + +message DeriveAttachmentAccessTokenSecretResult { + required bytes attachmentAccessTokenSecret = 1; +} + +message DeriveAttachmentPrimaryKeySecretInput { + required bytes mediaKey = 1; +} + +message DeriveAttachmentPrimaryKeySecretResult { + required bytes attachmentPrimaryKeySecret = 1; +} + +message DeriveMailboxAuthKeypairInput { + required bytes exportRootKey = 1; + required uint64 epochNumber = 2; +} + +message DeriveMailboxAuthKeypairResult { + required bytes mailboxAuthPublicKey = 1; + required bytes mailboxAuthPrivateKey = 2; +} + +message DeriveMailboxEncryptionKeypairInput { + required bytes exportRootKey = 1; + required uint64 epochNumber = 2; +} + +message DeriveMailboxEncryptionKeypairResult { + required bytes mailboxEncryptionPublicKey = 1; + required bytes mailboxEncryptionPrivateKey = 2; +} + +message DeriveMailboxSigningKeypairInput { + required bytes exportRootKey = 1; + required uint64 epochNumber = 2; +} + +message DeriveMailboxSigningKeypairResult { + oneof result { + DeriveMailboxSigningKeypairSuccess success = 1; + string errorMessage = 2; + } +} + +message DeriveMailboxSigningKeypairSuccess { + required bytes mailboxSigningPublicKey = 1; + required bytes mailboxSigningPrivateKey = 2; +} + +message DeriveMessageKeyInput { + required bytes epochRootKey = 1; + required bytes epochAnonId = 2; + required string threadId = 3; +} + +message DeriveMessageKeyOutput { + optional bytes messageKey = 1; + optional string error = 2; +} + +message DeriveMessagingMailboxKeypairsInput { + required bytes mmkSeed = 1; +} + +message DeriveMessagingMailboxKeypairsResult { + oneof result { + DeriveMessagingMailboxKeypairsSuccess success = 1; + string errorMessage = 2; + } +} + +message DeriveMessagingMailboxKeypairsSuccess { + required bytes encSk = 1; + required bytes encPk = 2; + optional bytes authSk = 3; + optional bytes authPk = 4; +} + +message DetachedDevicePublicData { + required uint64 deviceId = 1; + required bytes name = 2; + required bytes sigPk = 3; + required bytes authPk = 4; + required bytes encPk = 5; + required bytes signature = 6; } message DeviceCapabilities { @@ -1560,6 +2225,13 @@ message DeviceCapabilities { optional UserHasAvatar userHasAvatar = 4; optional MemberNameTagPrimarySupport memberNameTagPrimarySupport = 5; optional AiThread aiThread = 6; + optional AiFbidMigration aiFbidMigration = 7; + optional BizAiSettingsSync bizAiSettingsSync = 8; + optional ContactRefresh contactRefresh = 9; + message AiFbidMigration { + optional uint64 chatDbMigrationTimestamp = 1; + } + message AiThread { optional SupportLevel supportLevel = 1; enum SupportLevel { @@ -1569,8 +2241,16 @@ message DeviceCapabilities { } } + message BizAiSettingsSync { + optional bool handoffRemovalTimingEnabled = 1; + } + message BusinessBroadcast { optional bool importListEnabled = 1; + optional bool companionSupportEnabled = 2; + optional bool campaignSyncEnabled = 3; + optional bool insightsSyncEnabled = 4; + optional int32 recipientLimit = 5; } enum ChatLockSupportLevel { @@ -1578,6 +2258,10 @@ message DeviceCapabilities { MINIMAL = 1; FULL = 2; } + message ContactRefresh { + optional bool refreshSupported = 1; + } + message LIDMigration { optional uint64 chatDbMigrationTimestamp = 1; } @@ -1601,13 +2285,26 @@ message DeviceListMetadata { optional bytes senderKeyHash = 1; optional uint64 senderTimestamp = 2; repeated uint32 senderKeyIndexes = 3 [packed = true]; - optional ADVEncryptionType senderAccountType = 4; - optional ADVEncryptionType receiverAccountType = 5; + optional ADVEncryptionType senderAccountType = 4 [default = E2EE]; + optional ADVEncryptionType receiverAccountType = 5 [default = E2EE]; optional bytes recipientKeyHash = 8; optional uint64 recipientTimestamp = 9; repeated uint32 recipientKeyIndexes = 10 [packed = true]; } +message DeviceOutput { + required bytes publicKey = 1; + required bytes epochAuthPublicKey = 2; + required bytes epochAuthPublicKeySig = 3; + required bytes epochStoragePublicKey = 4; + required bytes epochStoragePublicKeySig = 5; + repeated int32 supportedEncryptionVersions = 6; + required bytes encryptionVersionSignature = 7; + required int32 clientVersion = 8; + required bytes ocmfClientState = 9; + required bytes epochStoragePrivateKey = 10; +} + message DeviceProps { optional string os = 1; optional AppVersion version = 2; @@ -1642,6 +2339,12 @@ message DeviceProps { optional bool supportGuestChat = 17; optional bool completeOnDemandReady = 18; optional uint32 thumbnailSyncDaysLimit = 19; + optional uint32 initialSyncMaxMessagesPerChat = 20; + optional bool supportManusHistory = 21; + optional bool supportHatchHistory = 22; + repeated string supportedBotChannelFbids = 23; + optional bool supportInlineContacts = 24; + optional bool supportNewsletter = 25; } enum PlatformType { @@ -1670,6 +2373,7 @@ message DeviceProps { VR = 22; CLOUD_API = 23; SMARTGLASSES = 24; + WAIL = 25; } } @@ -1694,6 +2398,107 @@ message DisappearingMode { } } +enum EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE { + OPEN_NATIVE = 11; +} +enum EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE { + UNSUPPORTED = -1; + IG_STORY_PHOTO_MENTION = 4; + IG_SINGLE_IMAGE_POST_SHARE = 9; + IG_MULTIPOST_SHARE = 10; + IG_SINGLE_VIDEO_POST_SHARE = 11; + IG_STORY_PHOTO_SHARE = 12; + IG_STORY_VIDEO_SHARE = 13; + IG_CLIPS_SHARE = 14; + IG_IGTV_SHARE = 15; + IG_SHOP_SHARE = 16; + IG_PROFILE_SHARE = 19; + IG_STORY_PHOTO_HIGHLIGHT_SHARE = 20; + IG_STORY_VIDEO_HIGHLIGHT_SHARE = 21; + IG_STORY_REPLY = 22; + IG_STORY_REACTION = 23; + IG_STORY_VIDEO_MENTION = 24; + IG_STORY_HIGHLIGHT_REPLY = 25; + IG_STORY_HIGHLIGHT_REACTION = 26; + IG_EXTERNAL_LINK = 27; + IG_RECEIVER_FETCH = 28; + FB_FEED_SHARE = 1000; + FB_STORY_REPLY = 1001; + FB_STORY_SHARE = 1002; + FB_STORY_MENTION = 1003; + FB_FEED_VIDEO_SHARE = 1004; + FB_GAMING_CUSTOM_UPDATE = 1005; + FB_PRODUCER_STORY_REPLY = 1006; + FB_EVENT = 1007; + FB_FEED_POST_PRIVATE_REPLY = 1008; + FB_SHORT = 1009; + FB_COMMENT_MENTION_SHARE = 1010; + FB_POST_MENTION = 1011; + FB_PROFILE_DIRECTORY_ITEM = 1013; + FB_FEED_POST_REACTION_REPLY = 1014; + FB_QUICKSNAP_REPLY = 1015; + MSG_EXTERNAL_LINK_SHARE = 2000; + MSG_P2P_PAYMENT = 2001; + MSG_LOCATION_SHARING = 2002; + MSG_LOCATION_SHARING_V2 = 2003; + MSG_HIGHLIGHTS_TAB_FRIEND_UPDATES_REPLY = 2004; + MSG_HIGHLIGHTS_TAB_LOCAL_EVENT_REPLY = 2005; + MSG_RECEIVER_FETCH = 2006; + MSG_IG_MEDIA_SHARE = 2007; + MSG_GEN_AI_SEARCH_PLUGIN_RESPONSE = 2008; + MSG_REELS_LIST = 2009; + MSG_CONTACT = 2010; + MSG_THREADS_POST_SHARE = 2011; + MSG_FILE = 2012; + MSG_AVATAR_DETAILS = 2013; + MSG_AI_CONTACT = 2014; + MSG_MEMORIES_SHARE = 2015; + MSG_SHARED_ALBUM_REPLY = 2016; + MSG_SHARED_ALBUM = 2017; + MSG_OCCAMADILLO_XMA = 2018; + MSG_GEN_AI_SUBSCRIPTION = 2021; + MSG_GEN_AI_REMINDER = 2022; + MSG_GEN_AI_MEMU_ONBOARDING_RESPONSE = 2023; + MSG_NOTE_REPLY = 2024; + MSG_NOTE_MENTION = 2025; + GEN_AI_ENTITY = 2026; + MSG_OPG_P2P_PAYMENT = 2027; + GEN_AI_RICH_RESPONSE = 2028; + MSG_MUSIC_STICKER = 2029; + MSG_PHONE_NUMBER = 2030; + AI_ACTIVITY_SHARE = 2031; + MSG_PRIVATE_XMA = 2032; + MSG_SOCIAL_CUE_MEMORIES = 2033; + MSG_MANUS_GROWTH_REFERRAL = 2060; + MSG_MOMENT_LINK = 2061; + MSG_HORIZON_WEEL = 2062; + MSG_MOMENT_ADDED = 2063; + RTC_AUDIO_CALL = 3000; + RTC_VIDEO_CALL = 3001; + RTC_MISSED_AUDIO_CALL = 3002; + RTC_MISSED_VIDEO_CALL = 3003; + RTC_GROUP_AUDIO_CALL = 3004; + RTC_GROUP_VIDEO_CALL = 3005; + RTC_MISSED_GROUP_AUDIO_CALL = 3006; + RTC_MISSED_GROUP_VIDEO_CALL = 3007; + RTC_ONGOING_AUDIO_CALL = 3008; + RTC_ONGOING_VIDEO_CALL = 3009; + MSG_RECEIVER_FETCH_FALLBACK = 3025; + DATACLASS_SENDER_COPY = 4000; +} +enum EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE { + SENDER_COPY = 0; + SERVER = 1; + SIGNED_CLIENT = 2; +} +enum EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE { + SINGLE = 0; + HSCROLL = 1; + PORTRAIT = 3; + STANDARD_DXMA = 12; + LIST_DXMA = 15; + GRID = 16; +} message EmbeddedContent { oneof content { EmbeddedMessage embeddedMessage = 1; @@ -1723,16 +2528,112 @@ message EmbeddedMusic { optional int64 overlapDurationInMs = 14; } +message EncryptMekForDistributionInput { + required bytes senderEpochHead = 1; + required bytes toMailboxPk = 2; + required MailboxAuthKP fromKeypair = 3; + required MekBundle mek = 4; + optional bytes toEpochHead = 5; + optional MinosClientConfig conf = 6; + message MailboxAuthKP { + required bytes sk = 1; + required bytes pk = 2; + } +} + +message EncryptMekForDistributionResult { + required bytes ciphertext = 1; + required uint64 version = 2; +} + +message EncryptMeksForDistributionFromTransportSenderInput { + required MekBundle mek = 1; + required TransportSigningKP transportSigningKp = 2; + repeated bytes recipientMailboxEncryptionPks = 3; + repeated bytes recipientEpochHeads = 4; + optional MinosClientConfig conf = 5; + message TransportSigningKP { + required bytes sk = 1; + required bytes pk = 2; + } +} + +message EncryptMeksForDistributionFromTransportSenderResult { + repeated bytes encryptedMeks = 1; + required bytes ephemeralEncryptionPk = 2; + required bytes signingPk = 3; + required bytes signature = 4; + required uint64 version = 5; +} + +message EncryptMessageInput { + required bytes epochRootKey = 1; + required bytes mailboxRootKey = 2; + required bytes orfClientState = 3; + required bytes epochAnonId = 4; + required uint64 epochId = 5; + required string threadId = 6; + required uint64 waCanonicalUserFbid = 7; + required uint64 timestampMs = 8; + required uint64 backupId = 9; + required bytes plaintextPayload = 10; + required string stanzaId = 11; +} + +message EncryptMessageOutput { + optional bytes encryptedProtobuf = 1; + optional bytes orfThreadId = 2; + optional string valueSecretRef = 3; + optional uint64 offlineThreadingId = 4; + optional uint64 timestampMs = 5; + optional string error = 7; +} + message EncryptedPairingRequest { optional bytes encryptedPayload = 1; optional bytes iv = 2; } +message EncryptedSecretValuesOutput { + required bytes encryptedDevicePrivateKey = 1; + required bytes encryptedObliviousValidationTokenBlob = 2; + required bytes encryptedEpochStoragePrivateKey = 3; + required bytes encryptedOcmfClientState = 4; + optional bytes encryptedOrfClientStateV2 = 5; + required bytes encryptedMailboxRootKeyBlob = 6; + required bytes encryptedEpochAnonId = 7; + required bytes encryptedEpochRootKey = 8; +} + message EphemeralSetting { optional sfixed32 duration = 1; optional sfixed64 timestamp = 2; } +message Epoch0Output { + required uint64 epochFbid = 1; + required bytes epochAnonId = 2; + required bytes epochData = 3; + required bytes wrappedRootKeyForSelf = 4; + required bytes epochSignature = 5; + required bytes epochRootKeyFingerprint = 6; + optional bytes epochRootKey = 7; +} + +message EpochPublicData { + required uint64 epochNumber = 1; + required string userFbid = 2; + required bytes mailboxSigningPk = 3; + required bytes mailboxEncryptionPk = 4; + required bytes mailboxAuthPk = 5; + optional bytes previousEpochHead = 6; +} + +message EpochSignatures { + required bytes selfSignature = 1; + optional bytes prevSignature = 2; +} + message EventAdditionalMetadata { optional bool isStale = 1; } @@ -1749,6 +2650,59 @@ message ExitCode { optional string text = 2; } +message ExtendedContentMessage { + optional SubProtocol associatedMessage = 1; + optional EXTENDED_CONTENT_MESSAGE_EXTENDED_CONTENT_TYPE targetType = 2; + optional string targetUsername = 3; + optional string targetId = 4; + optional int64 targetExpiringAtSec = 5; + optional EXTENDED_CONTENT_MESSAGE_XMA_LAYOUT_TYPE xmaLayoutType = 6; + repeated CTA ctas = 7; + repeated SubProtocol previews = 8; + optional string titleText = 9; + optional string subtitleText = 10; + optional uint32 maxTitleNumOfLines = 11; + optional uint32 maxSubtitleNumOfLines = 12; + optional SubProtocol favicon = 13; + optional SubProtocol headerImage = 14; + optional string headerTitle = 15; + optional EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH overlayIconGlyph = 16; + optional string overlayTitle = 17; + optional string overlayDescription = 18; + optional string sentWithMessageId = 19; + optional string messageText = 20; + optional string headerSubtitle = 21; + optional string xmaDataclass = 22; + optional string contentRef = 23; + repeated string mentionedJid = 24; + repeated Command commands = 25; + repeated Mention mentions = 26; + optional EXTENDED_CONTENT_MESSAGE_XMA_DATACLASS_TYPE xmaDataclassType = 27; + optional string signedXmaDataclassValidation = 28; + optional string featureSharedSessionId = 29; + message CTA { + optional EXTENDED_CONTENT_MESSAGE_CTA_BUTTON_TYPE buttonType = 1; + optional string title = 2; + optional string actionUrl = 3; + optional string nativeUrl = 4; + optional string ctaType = 5; + optional string actionContentBlob = 6; + } + + enum EXTENDED_CONTENT_MESSAGE_OVERLAY_ICON_GLYPH { + INFO = 0; + EYE_OFF = 1; + NEWS_OFF = 2; + WARNING = 3; + PRIVATE = 4; + NONE = 5; + MEDIA_LABEL = 6; + POST_COVER = 7; + POST_LABEL = 8; + WARNING_SCREENS = 9; + } +} + message ExternalBlobReference { optional bytes mediaKey = 1; optional string directPath = 2; @@ -1758,20 +2712,54 @@ message ExternalBlobReference { optional bytes fileEncSha256 = 6; } +enum FUTURE_PROOF_BEHAVIOR { + PLACEHOLDER = 0; + NO_PLACEHOLDER = 1; + IGNORE = 2; +} message Field { - optional uint32 minVersion = 1; + optional uint32 minVersion = 1 [default = 1]; optional uint32 maxVersion = 2; optional uint32 notReportableMinVersion = 3; optional bool isMessage = 4; map subfield = 5; } +message FingerprintData { + optional bytes publicKey = 1; + optional bytes pnIdentifier = 2; + optional bytes lidIdentifier = 3; + optional bytes usernameIdentifier = 4; + optional HostedState hostedState = 5; + optional bytes hashedPublicKey = 6; + enum HostedState { + E2EE = 0; + HOSTED = 1; + } +} + message ForwardedAIBotMessageInfo { optional string botName = 1; optional string botJid = 2; optional string creatorName = 3; } +message GenerateMekInput { + repeated bytes epochHeads = 1; +} + +message GenerateMekResult { + required MekBundle mek = 1; +} + +message GenerateMekRosterHashInput { + repeated bytes epochHeads = 1; +} + +message GenerateMekRosterHashResult { + required bytes rosterHash = 1; +} + message GlobalSettings { optional WallpaperSettings lightThemeWallpaper = 1; optional MediaVisibility mediaVisibility = 2; @@ -1795,6 +2783,13 @@ message GlobalSettings { optional int64 chatDbLidMigrationTimestamp = 20; } +message GroupHistory { + repeated WebMessageInfo messages = 1; + repeated UnCountedAssociatedMessageList uncountedAssociatedMessageLists = 2; + repeated WebMessageInfo commentMessages = 3; + repeated WebMessageInfo outOfWindowPinnedMessages = 4; +} + message GroupHistoryBundleInfo { optional Message.MessageHistoryBundle deprecatedMessageHistoryBundle = 1; optional ProcessState processState = 2; @@ -1804,6 +2799,7 @@ message GroupHistoryBundleInfo { INJECTED_PARTIAL = 2; INJECTION_FAILED = 3; INJECTION_FAILED_NO_RETRY = 4; + DEDUPED = 5; } } @@ -1812,6 +2808,13 @@ message GroupHistoryIndividualMessageInfo { optional bool editedAfterReceivedAsHistory = 2; } +message GroupHistoryWithMessageBytes { + repeated WebMessageInfoWithMessageBytes messages = 1; + repeated UnCountedAssociatedMessageListWithMessageBytes uncountedAssociatedMessageLists = 2; + repeated WebMessageInfoWithMessageBytes commentMessages = 3; + repeated WebMessageInfoWithMessageBytes outOfWindowPinnedMessages = 4; +} + message GroupMention { optional string groupJid = 1; optional string groupSubject = 2; @@ -1828,6 +2831,17 @@ message GroupParticipant { } } +message GroupRootKeyShare { + repeated GroupRootKeyShareEntry keys = 1; +} + +message GroupRootKeyShareEntry { + optional bytes groupRootKey = 1; + optional string keyId = 2; + optional int64 expiryTimestampMs = 3; + optional int64 createdTimestampMs = 4; +} + message HandshakeMessage { optional ClientHello clientHello = 2; optional ServerHello serverHello = 3; @@ -1836,6 +2850,8 @@ message HandshakeMessage { optional bytes static = 1; optional bytes payload = 2; optional bytes extendedCiphertext = 3; + optional bytes paddedBytes = 4; + optional bool simulateXxkemFs = 5; } message ClientHello { @@ -1844,16 +2860,41 @@ message HandshakeMessage { optional bytes payload = 3; optional bool useExtended = 4; optional bytes extendedCiphertext = 5; + optional bytes paddedBytes = 6; + optional bool sendServerHelloPaddedBytes = 7; + optional bool simulateXxkemFs = 8; + optional HandshakeMessage.HandshakePqMode pqMode = 9; + optional bytes extendedEphemeral = 10; + } + + enum HandshakePqMode { + HANDSHAKE_PQ_MODE_UNKNOWN = 0; + XXKEM = 1; + XXKEM_FS = 2; + XXKEM_EPH = 9; + WA_CLASSICAL = 3; + WA_PQ = 4; + IKKEM = 5; + IKKEM_FS = 6; + XXKEM_2 = 7; + IKKEM_2 = 8; } - message ServerHello { optional bytes ephemeral = 1; optional bytes static = 2; optional bytes payload = 3; optional bytes extendedStatic = 4; + optional bytes paddingBytes = 5; + optional bytes extendedCiphertext = 6; } } +message HatchMetadataSync { + optional bytes data = 1; + optional int64 timestampMs = 2; + optional string requestId = 3; +} + message HistorySync { required HistorySyncType syncType = 1; repeated Conversation conversations = 2; @@ -1872,6 +2913,9 @@ message HistorySync { optional string companionMetaNonce = 16; optional bytes shareableChatIdentifierEncryptionKey = 17; repeated Account accounts = 18; + optional bytes nctSalt = 19; + repeated InlineContact inlineContacts = 20; + optional bool inlineContactsProvided = 21; enum BotAIWaitListState { IN_WAITLIST = 0; AI_AVAILABLE = 1; @@ -1927,6 +2971,11 @@ message IdentityKeyPairStructure { optional bytes privateKey = 2; } +message IdentityVerificationState { + optional bool verified = 1; + optional uint64 actionSeq = 2; +} + message InThreadSurveyMetadata { optional string tessaSessionId = 1; optional string simonSessionId = 2; @@ -1964,6 +3013,14 @@ message InThreadSurveyMetadata { } } +message InlineContact { + optional string pnJid = 1; + optional string lidJid = 2; + optional string fullName = 3; + optional string firstName = 4; + optional string username = 5; +} + message InteractiveAnnotation { repeated Point polygonVertices = 1; optional bool shouldSkipConfirmation = 4; @@ -2012,21 +3069,34 @@ message KeyId { optional bytes id = 1; } +message LIDMigrationMappingSyncMessage { + optional bytes encodedMappingPayload = 1; +} + +// Retained locally: WA dropped these from the public JS bundle, but the wire +// still carries them as the protobuf-encoded `encodedMappingPayload` above. message LIDMigrationMapping { required uint64 pn = 1; required uint64 assignedLid = 2; optional uint64 latestLid = 3; } -message LIDMigrationMappingSyncMessage { - optional bytes encodedMappingPayload = 1; -} - message LIDMigrationMappingSyncPayload { repeated LIDMigrationMapping pnToLidMappings = 1; optional uint64 chatDbMigrationTimestamp = 2; } +message LabyrinthWaCommand { + oneof commandInput { + CreateBackupInput createBackupInput = 1; + EncryptMessageInput encryptMessageInput = 2; + DecryptMessageInput decryptMessageInput = 3; + OrfThreadIdInput orfThreadIdInput = 4; + DeriveMessageKeyInput deriveMessageKeyInput = 5; + RotateEpochInput rotateEpochInput = 6; + } +} + message LegacyMessage { optional Message.EventResponseMessage eventResponseMessage = 1; optional Message.PollVoteMessage pollVote = 2; @@ -2034,7 +3104,7 @@ message LegacyMessage { message LimitSharing { optional bool sharingLimited = 1; - optional TriggerType trigger = 2; + optional TriggerType trigger = 2 [default = UNKNOWN]; optional int64 limitSharingSettingTimestamp = 3; optional bool initiatedByMe = 4; enum TriggerType { @@ -2057,10 +3127,204 @@ message Location { optional string name = 3; } -message MediaData { - optional string localPath = 1; +enum MENTION_MENTION_TYPE { + PROFILE = 0; +} +message MandrakeDecryptMekInput { + required bytes encryptedMek = 1; + required bytes recipientsHash = 4; + required bytes recipientEncSk = 5; + optional uint64 mekEncryptionVersion = 6; + optional MinosClientConfig conf = 7; + required MessagingMailboxPublicData recipientMmk = 8; + optional bytes mekId = 9; + optional MerkleMembershipProof recipientMembershipProof = 10; + oneof senderPublicData { + MandrakeDecryptMekInput.MmkSenderPublicData mmkSender = 2; + MandrakeDecryptMekInput.EpochSenderPublicData epochSender = 3; + MandrakeDecryptMekInput.PrecomputedEpochSenderPublicData precomputedEpochSender = 11; + } + message EpochSenderPublicData { + required EpochPublicData epochPublicData = 1; + } + + message MmkSenderPublicData { + required MessagingMailboxPublicData mmkPublicData = 1; + } + + message PrecomputedEpochSenderPublicData { + required bytes authPk = 1; + required bytes epochHead = 2; + } +} + +message MandrakeDecryptMekResult { + oneof result { + MandrakeDecryptMekSuccess success = 1; + string errorMessage = 2; + } +} + +message MandrakeDecryptMekSuccess { + required bytes mek = 1; +} + +message MandrakeEncryptMekInput { + required MandrakeMekBundle mek = 1; + repeated MessagingMailboxPublicData recipients = 2; + optional MinosClientConfig conf = 5; + oneof sender { + MandrakeEncryptMekInput.MmkSender mmkSender = 3; + MandrakeEncryptMekInput.EpochSender epochSender = 4; + MandrakeEncryptMekInput.DetachedDeviceSender detachedDeviceSender = 6; + } + message DetachedDeviceSender { + required DetachedDevicePublicData detachedDevicePublicData = 1; + required bytes authSk = 2; + required bytes authPk = 3; + } + + message EpochSender { + required EpochPublicData epochPublicData = 1; + required bytes authSk = 2; + required bytes authPk = 3; + } + + message MmkSender { + required MessagingMailboxPublicData mmkPublicData = 1; + required bytes authSk = 2; + required bytes authPk = 3; + } +} + +message MandrakeEncryptMekResult { + oneof result { + MandrakeEncryptMekSuccess success = 1; + string errorMessage = 2; + } +} + +message MandrakeEncryptMekSuccess { + repeated MekDistributionSingleRecipient distributions = 1; + required bytes recipientsHash = 2; + required uint64 version = 3; + message MekDistributionSingleRecipient { + required bytes encryptedMek = 1; + required MessagingMailboxPublicData toMmk = 2; + optional MerkleMembershipProof recipientMembershipProof = 3; + } +} + +message MandrakeMekBundle { + required bytes key = 1; + required bytes mekId = 2; + required bytes mailboxHeadHash = 3; +} + +message MandrakeOpenEpochInput { + required string userFbid = 1; + required uint64 epochNumber = 2; + required bytes exportRootKey = 3; + required bytes previousExportRootKey = 4; + required uint64 previousEpochNumber = 5; + required bytes previousEpochHead = 6; + optional MessagingMailboxPublicData previousMmk = 7; + repeated DetachedDevicePublicData detachedDevices = 8; +} + +message MandrakeOpenEpochResult { + oneof result { + MandrakeOpenEpochSuccess success = 1; + string errorMessage = 2; + } +} + +message MandrakeOpenEpochSuccess { + required MinosSignedEpoch minosSignedEpoch = 1; + required SignedMmkDistributionFromMailbox signedMmkDistribution = 2; +} + +message MandrakeOpenInitialEpochInput { + required string userFbid = 1; + required uint64 epochNumber = 2; + required bytes exportRootKey = 3; + repeated DetachedDevicePublicData detachedDevices = 4; +} + +message MandrakeOpenInitialEpochResult { + oneof result { + MandrakeOpenEpochSuccess success = 1; + string errorMessage = 2; + } +} + +message MandrakeValidateNewMmkFromDetachedDeviceInput { + required MmkFromDetachedDevice mmkFromDevice = 1; + required bytes signature = 2; + required MessagingMailboxPublicData prevMmk = 3; +} + +message MandrakeValidateNewMmkFromMailboxInput { + required MessagingMailboxPublicData newMmk = 1; + required bytes signature = 2; + optional MessagingMailboxPublicData prevMmk = 3; + required EpochPublicData epochPublicData = 4; +} + +message MandrakeValidateNewMmkResult { + oneof result { + bool valid = 1; + string errorMessage = 2; + } +} + +message MediaData { + optional string localPath = 1; +} + +message MediaDomainInfo { + optional MediaKeyDomain mediaKeyDomain = 1; + optional bytes e2EeMediaKey = 2; +} + +message MediaEntry { + optional bytes fileSha256 = 1; + optional bytes mediaKey = 2; + optional bytes fileEncSha256 = 3; + optional string directPath = 4; + optional int64 mediaKeyTimestamp = 5; + optional string serverMediaType = 6; + optional bytes uploadToken = 7; + optional bytes validatedTimestamp = 8; + optional bytes sidecar = 9; + optional string objectId = 10; + optional string fbid = 11; + optional DownloadableThumbnail downloadableThumbnail = 12; + optional string handle = 13; + optional string filename = 14; + optional ProgressiveJpegDetails progressiveJpegDetails = 15; + optional int64 size = 16; + optional int64 lastDownloadAttemptTimestamp = 17; + message DownloadableThumbnail { + optional bytes fileSha256 = 1; + optional bytes fileEncSha256 = 2; + optional string directPath = 3; + optional bytes mediaKey = 4; + optional int64 mediaKeyTimestamp = 5; + optional string objectId = 6; + } + + message ProgressiveJpegDetails { + repeated uint32 scanLengths = 1; + optional bytes sidecar = 2; + } } +enum MediaKeyDomain { + MEDIA_KEY_DOMAIN_UNKNOWN = 0; + MEDIA_KEY_DOMAIN_E2EE = 1; + MEDIA_KEY_DOMAIN_NON_E2EE = 2; +} message MediaNotifyMessage { optional string expressPathUrl = 1; optional bytes fileEncSha256 = 2; @@ -2085,11 +3349,31 @@ enum MediaVisibility { OFF = 1; ON = 2; } +message MekBundle { + required bytes key = 1; + required bytes mekId = 2; + required bytes rosterHash = 3; +} + message MemberLabel { optional string label = 1; optional int64 labelTimestamp = 2; } +message Mention { + optional MENTION_MENTION_TYPE mentionType = 1; + optional string mentionedJid = 2; + optional uint32 offset = 3; + optional uint32 length = 4; +} + +message MerkleMembershipProof { + required bytes proof = 1; + required bytes root = 2; + required uint64 leafIndex = 3; + required uint64 totalLeaves = 4; +} + message Message { optional string conversation = 1; optional SenderKeyDistributionMessage senderKeyDistributionMessage = 2; @@ -2187,6 +3471,21 @@ message Message { optional NewsletterFollowerInviteMessage newsletterFollowerInviteMessageV2 = 113; optional PollResultSnapshotMessage pollResultSnapshotMessageV3 = 115; optional FutureProofMessage newsletterAdminProfileMessage = 116; + optional FutureProofMessage newsletterAdminProfileMessageV2 = 117; + optional FutureProofMessage spoilerMessage = 118; + optional PollCreationMessage pollCreationMessageV6 = 119; + optional ConditionalRevealMessage conditionalRevealMessage = 120; + optional PollAddOptionMessage pollAddOptionMessage = 121; + optional EventInviteMessage eventInviteMessage = 122; + optional GroupRootKeyShare groupRootKeyShare = 123; + optional PaymentReminderMessage paymentReminderMessage = 124; + optional SplitPaymentMessage splitPaymentMessage = 125; + optional FutureProofMessage newsletterAdminProfileStatusMessage = 126; + optional RootSecretDistributeMessage rootSecretDistributeMessage = 127; + optional SplitPaymentUpdateMessage splitPaymentUpdateMessage = 128; + optional MusicMessage musicMessage = 129; + optional StatusLinkPreviewMetadata statusLinkPreviewMetadata = 130; + optional FutureProofMessage botPlatformRegistrationSuccessMessage = 131; message AlbumMessage { optional uint32 expectedImageCount = 2; optional uint32 expectedVideoCount = 3; @@ -2244,7 +3543,6 @@ message Message { optional fixed32 backgroundArgb = 20; optional bool viewOnce = 21; optional string accessibilityLabel = 22; - optional Message.MediaKeyDomain mediaKeyDomain = 23; } message BCallMessage { @@ -2259,6 +3557,12 @@ message Message { } } + message BotHistoryShareSyncMetadata { + optional string botJid = 1; + optional int64 historyShareCutoffTimestamp = 2; + repeated Message.HistoryShareMessageEntry historyShareMessages = 3; + } + message ButtonsMessage { optional string contentText = 6; optional string footerText = 7; @@ -2328,6 +3632,8 @@ message Message { optional string nativeFlowCallButtonPayload = 8; optional string deeplinkPayload = 9; optional MessageContextInfo messageContextInfo = 10; + optional uint32 callEntryPoint = 11; + optional string callReason = 12; } message CallLogMessage { @@ -2367,6 +3673,41 @@ message Message { optional string id = 2; } + message ChatCustomImageWallpaper { + optional string directPath = 1; + optional bytes mediaKey = 2; + optional bytes fileEncSha256 = 3; + optional bytes fileSha256 = 4; + optional float dimLevel = 5; + } + + message ChatDefaultWallpaper { + optional bool isDoodleEnabled = 1; + } + + message ChatSolidColorWallpaper { + optional string colorLight = 1; + optional string colorDark = 2; + optional bool isDoodleEnabled = 3; + } + + message ChatStockImageWallpaper { + optional string stockImageId = 1; + optional float dimLevel = 2; + } + + message ChatThemeSetting { + optional int64 settingTimestampMs = 1; + optional bool clearTheme = 2; + optional string colorSchemeId = 3; + oneof wallpaper { + Message.ChatDefaultWallpaper defaultWallpaper = 10; + Message.ChatSolidColorWallpaper solidColor = 11; + Message.ChatStockImageWallpaper stockImage = 12; + Message.ChatCustomImageWallpaper customImage = 13; + } + } + message CloudAPIThreadControlNotification { optional CloudAPIThreadControl status = 1; optional int64 senderNotificationTimestampMs = 2; @@ -2378,6 +3719,7 @@ message Message { UNKNOWN = 0; CONTROL_PASSED = 1; CONTROL_TAKEN = 2; + INFO = 3; } message CloudAPIThreadControlNotificationContent { optional string handoffNotificationText = 1; @@ -2390,10 +3732,22 @@ message Message { optional MessageKey targetMessageKey = 2; } + message ConditionalRevealMessage { + optional bytes encPayload = 1; + optional bytes encIv = 2; + optional ConditionalRevealMessageType conditionalRevealMessageType = 3; + optional string revealKeyId = 4; + enum ConditionalRevealMessageType { + UNKNOWN = 0; + SCHEDULED_MESSAGE = 1; + } + } + message ContactMessage { optional string displayName = 1; optional string vcard = 16; optional ContextInfo contextInfo = 17; + optional bool isSelfContact = 18; } message ContactsArrayMessage { @@ -2434,7 +3788,6 @@ message Message { optional uint32 thumbnailWidth = 19; optional string caption = 20; optional string accessibilityLabel = 21; - optional Message.MediaKeyDomain mediaKeyDomain = 22; } message EncCommentMessage { @@ -2455,6 +3808,18 @@ message Message { optional bytes encIv = 3; } + message EventInviteMessage { + optional ContextInfo contextInfo = 1; + optional string eventId = 2; + optional string eventTitle = 3; + optional bytes jpegThumbnail = 4; + optional int64 startTime = 5; + optional string caption = 6; + optional bool isCanceled = 7; + optional int64 endTime = 8; + optional string callLink = 9; + } + message EventMessage { optional ContextInfo contextInfo = 1; optional bool isCanceled = 2; @@ -2508,7 +3873,7 @@ message Message { optional bool viewOnce = 30; optional uint32 videoHeight = 31; optional uint32 videoWidth = 32; - optional Message.MMSThumbnailMetadata faviconMMSMetadata = 33; + optional Message.MMSThumbnailMetadata faviconMmsMetadata = 33; optional Message.LinkPreviewMetadata linkPreviewMetadata = 34; optional Message.PaymentLinkMetadata paymentLinkMetadata = 35; repeated Message.VideoEndCard endCardTiles = 36; @@ -2541,8 +3906,15 @@ message Message { } } + message FullHistorySyncOnDemandConfig { + optional uint64 historyFromTimestamp = 1; + optional uint32 historyDurationDays = 2; + } + message FullHistorySyncOnDemandRequestMetadata { optional string requestId = 1; + optional string businessProduct = 2; + optional bytes opaqueClientData = 3; } message FutureProofMessage { @@ -2620,6 +3992,11 @@ message Message { } } + message HistoryShareMessageEntry { + optional string stanzaId = 1; + optional bytes messageSecretProof = 2; + } + message HistorySyncMessageAccessStatus { optional bool completeAccessGranted = 1; } @@ -2683,7 +4060,6 @@ message Message { repeated InteractiveAnnotation annotations = 30; optional ImageSourceType imageSourceType = 31; optional string accessibilityLabel = 32; - optional Message.MediaKeyDomain mediaKeyDomain = 33; optional string qrUrl = 34; enum ImageSourceType { USER_IMAGE = 0; @@ -2697,10 +4073,18 @@ message Message { optional bool securityNotificationEnabled = 1; } + enum InsightDeliveryState { + SENT = 0; + DELIVERED = 1; + READ = 2; + REPLIED = 3; + QUICK_REPLIED = 4; + } message InteractiveMessage { optional Header header = 1; optional Body body = 2; optional Footer footer = 3; + optional BloksWidget bloksWidget = 8; optional ContextInfo contextInfo = 15; optional UrlTrackingMap urlTrackingMap = 16; oneof interactiveMessage { @@ -2709,14 +4093,21 @@ message Message { Message.InteractiveMessage.NativeFlowMessage nativeFlowMessage = 6; Message.InteractiveMessage.CarouselMessage carouselMessage = 7; } + message BloksWidget { + optional string uuid = 1; + optional string data = 2; + optional string type = 3; + optional string fallback = 4; + } + message Body { optional string text = 1; } message CarouselMessage { repeated Message.InteractiveMessage cards = 1; - optional int32 messageVersion = 2; - optional CarouselCardType carouselCardType = 3; + optional int32 messageVersion = 2 [default = 1]; + optional CarouselCardType carouselCardType = 3 [default = HSCROLL_CARDS]; enum CarouselCardType { UNKNOWN = 0; HSCROLL_CARDS = 1; @@ -2727,7 +4118,7 @@ message Message { message CollectionMessage { optional string bizJid = 1; optional string id = 2; - optional int32 messageVersion = 3; + optional int32 messageVersion = 3 [default = 1]; } message Footer { @@ -2742,6 +4133,7 @@ message Message { optional string title = 1; optional string subtitle = 2; optional bool hasMediaAttachment = 5; + optional Message.InteractiveMessage.BloksWidget bloksWidget = 10; oneof media { Message.DocumentMessage documentMessage = 3; Message.ImageMessage imageMessage = 4; @@ -2755,7 +4147,7 @@ message Message { message NativeFlowMessage { repeated NativeFlowButton buttons = 1; optional string messageParamsJson = 2; - optional int32 messageVersion = 3; + optional int32 messageVersion = 3 [default = 1]; message NativeFlowButton { optional string name = 1; optional string buttonParamsJson = 2; @@ -2765,7 +4157,7 @@ message Message { message ShopMessage { optional string id = 1; optional Surface surface = 2; - optional int32 messageVersion = 3; + optional int32 messageVersion = 3 [default = 1]; enum Surface { UNKNOWN_SURFACE = 0; FB = 1; @@ -2783,7 +4175,7 @@ message Message { } message Body { optional string text = 1; - optional Format format = 2; + optional Format format = 2 [default = DEFAULT]; enum Format { DEFAULT = 0; EXTENSIONS_1 = 1; @@ -2793,7 +4185,7 @@ message Message { message NativeFlowResponseMessage { optional string name = 1; optional string paramsJson = 2; - optional int32 version = 3; + optional int32 version = 3 [default = 1]; } } @@ -2937,16 +4329,15 @@ message Message { optional int64 mediaKeyTimestamp = 5; optional uint32 thumbnailHeight = 6; optional uint32 thumbnailWidth = 7; - optional Message.MediaKeyDomain mediaKeyDomain = 8; } - enum MediaKeyDomain { - UNSET = 0; - E2EE_CHAT = 1; - STATUS = 2; - CAPI = 3; - BOT = 4; + message MarkAsVerifiedAction { + optional string userJidString = 1; + optional bool verified = 2; + optional bytes verifiedIdentityKey = 3; + optional uint64 actionSeq = 4; } + message MessageHistoryBundle { optional string mimetype = 1; optional bytes fileSha256 = 2; @@ -2960,13 +4351,28 @@ message Message { message MessageHistoryMetadata { repeated string historyReceivers = 1; - optional int64 oldestMessageTimestamp = 2; + optional int64 oldestMessageTimestampInWindow = 2; optional int64 messageCount = 3; + repeated string nonHistoryReceivers = 4; + optional int64 oldestMessageTimestampInBundle = 5; } message MessageHistoryNotice { optional ContextInfo contextInfo = 1; optional Message.MessageHistoryMetadata messageHistoryMetadata = 2; + optional Message.BotHistoryShareSyncMetadata botHistoryShareSyncMetadata = 3; + } + + message MusicMessage { + optional EmbeddedMusic embeddedMusic = 1; + optional string songUri = 2; + optional string artworkUri = 3; + optional int32 style = 4; + optional ContextInfo contextInfo = 5; + enum MusicMessageStyle { + UNKNOWN = 0; + VINYL = 1; + } } message NewsletterAdminInviteMessage { @@ -2999,7 +4405,7 @@ message Message { optional int64 totalAmount1000 = 10; optional string totalCurrencyCode = 11; optional ContextInfo contextInfo = 17; - optional int32 messageVersion = 12; + optional int32 messageVersion = 12 [default = 1]; optional MessageKey orderRequestMessageId = 13; optional string catalogType = 15; enum OrderStatus { @@ -3015,16 +4421,25 @@ message Message { message PaymentExtendedMetadata { optional uint32 type = 1; optional string platform = 2; + optional string messageParamsJson = 3; } message PaymentInviteMessage { optional ServiceType serviceType = 1; optional int64 expiryTimestamp = 2; + optional bool incentiveEligible = 3; + optional string referralId = 4; + optional InviteType inviteType = 5; + enum InviteType { + DEFAULT = 0; + MAPPER = 1; + } enum ServiceType { UNKNOWN = 0; FBPAY = 1; NOVI = 2; UPI = 3; + PIX = 4; } } @@ -3049,6 +4464,33 @@ message Message { } } + message PaymentReminderMessage { + optional string reminderId = 1; + optional string instanceId = 2; + optional string description = 3; + optional ReminderFrequency frequency = 4; + optional ReminderStatus status = 5; + optional string payeeVpa = 6; + optional string payeeJid = 7; + optional string payerJid = 8; + optional Money amount = 9; + enum ReminderFrequency { + REMINDER_FREQUENCY_UNKNOWN = 0; + WEEKLY = 1; + BI_WEEKLY = 2; + MONTHLY = 3; + QUARTERLY = 4; + } + enum ReminderStatus { + REMINDER_STATUS_UNKNOWN = 0; + ACTIVE = 1; + CANCELLED_BY_CREATOR = 2; + STOPPED_BY_RECEIVER = 3; + EXPIRED = 4; + PAID = 5; + } + } + message PeerDataOperationRequestMessage { optional Message.PeerDataOperationRequestType peerDataOperationRequestType = 1; repeated RequestStickerReupload requestStickerReupload = 2; @@ -3059,17 +4501,36 @@ message Message { optional SyncDCollectionFatalRecoveryRequest syncdCollectionFatalRecoveryRequest = 7; optional HistorySyncChunkRetryRequest historySyncChunkRetryRequest = 8; optional GalaxyFlowAction galaxyFlowAction = 9; + optional CompanionCanonicalUserNonceFetchRequest companionCanonicalUserNonceFetchRequest = 10; + optional BizBroadcastInsightsContactListRequest bizBroadcastInsightsContactListRequest = 11; + optional BizBroadcastInsightsRefreshRequest bizBroadcastInsightsRefreshRequest = 12; + message BizBroadcastInsightsContactListRequest { + optional string campaignId = 1; + } + + message BizBroadcastInsightsRefreshRequest { + optional string campaignId = 1; + } + + message CompanionCanonicalUserNonceFetchRequest { + optional string registrationTraceId = 1; + } + message FullHistorySyncOnDemandRequest { optional Message.FullHistorySyncOnDemandRequestMetadata requestMetadata = 1; optional DeviceProps.HistorySyncConfig historySyncConfig = 2; + optional Message.FullHistorySyncOnDemandConfig fullHistorySyncOnDemandConfig = 3; } message GalaxyFlowAction { optional GalaxyFlowActionType type = 1; optional string flowId = 2; optional string stanzaId = 3; + optional string galaxyFlowDownloadRequestId = 4; + optional string agmId = 5; enum GalaxyFlowActionType { NOTIFY_LAUNCH = 1; + DOWNLOAD_RESPONSES = 2; } } @@ -3087,6 +4548,7 @@ message Message { optional int32 onDemandMsgCount = 4; optional int64 oldestMsgTimestampMs = 5; optional string accountLid = 6; + optional bool supportInlineResponse = 7; } message PlaceholderMessageResendRequest { @@ -3123,6 +4585,20 @@ message Message { optional SyncDSnapshotFatalRecoveryResponse syncdSnapshotFatalRecoveryResponse = 8; optional CompanionCanonicalUserNonceFetchResponse companionCanonicalUserNonceFetchRequestResponse = 9; optional HistorySyncChunkRetryResponse historySyncChunkRetryResponse = 10; + optional FlowResponsesCsvBundle flowResponsesCsvBundle = 11; + optional BizBroadcastInsightsContactListResponse bizBroadcastInsightsContactListResponse = 12; + optional ContactRefreshResponse contactRefreshResponse = 13; + message BizBroadcastInsightsContactListResponse { + optional string campaignId = 1; + optional int64 timestampMs = 2; + repeated Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.BizBroadcastInsightsContactState contacts = 3; + } + + message BizBroadcastInsightsContactState { + optional string contactJid = 1; + optional Message.InsightDeliveryState state = 2; + } + message CompanionCanonicalUserNonceFetchResponse { optional string nonce = 1; optional string waFbid = 2; @@ -3133,6 +4609,26 @@ message Message { optional string nonce = 1; } + message ContactRefreshResponse { + repeated string coveredRequestIds = 1; + optional uint64 collectionVersion = 2; + optional int64 primaryDurationMs = 3; + optional uint32 uniqueContactCount = 4; + } + + message FlowResponsesCsvBundle { + optional string flowId = 1; + optional string galaxyFlowDownloadRequestId = 2; + optional string fileName = 3; + optional string mimetype = 4; + optional bytes fileSha256 = 5; + optional bytes mediaKey = 6; + optional bytes fileEncSha256 = 7; + optional string directPath = 8; + optional int64 mediaKeyTimestamp = 9; + optional uint64 fileLength = 10; + } + message FullHistorySyncOnDemandRequestResponse { optional Message.FullHistorySyncOnDemandRequestMetadata requestMetadata = 1; optional Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode responseCode = 2; @@ -3146,6 +4642,7 @@ message Message { ERROR_REQUEST_ON_NON_SMB_PRIMARY = 4; ERROR_HOSTED_DEVICE_NOT_CONNECTED = 5; ERROR_HOSTED_DEVICE_LOGIN_TIME_NOT_SET = 6; + ERROR_MULTI_PROVIDER_NOT_CONFIGURED = 7; } message HistorySyncChunkRetryResponse { optional Message.HistorySyncType syncType = 1; @@ -3185,6 +4682,9 @@ message Message { message PaymentLinkPreviewMetadata { optional bool isBusinessVerified = 1; optional string providerName = 2; + optional string amount = 3; + optional string offset = 4; + optional string currency = 5; } } @@ -3217,6 +4717,9 @@ message Message { COMPANION_CANONICAL_USER_NONCE_FETCH = 9; HISTORY_SYNC_CHUNK_RETRY = 10; GALAXY_FLOW_ACTION = 11; + BUSINESS_BROADCAST_INSIGHTS_DELIVERED_TO = 12; + BUSINESS_BROADCAST_INSIGHTS_REFRESH = 13; + CONTACT_REFRESH_REQUEST = 14; } message PinInChatMessage { optional MessageKey key = 1; @@ -3236,6 +4739,12 @@ message Message { } } + message PollAddOptionMessage { + optional MessageKey pollCreationMessageKey = 1; + optional Message.PollCreationMessage.Option addOption = 2; + optional Message.PollUpdateMessageMetadata metadata = 3; + } + enum PollContentType { UNKNOWN = 0; TEXT = 1; @@ -3250,6 +4759,9 @@ message Message { optional Message.PollContentType pollContentType = 6; optional Message.PollType pollType = 7; optional Option correctAnswer = 8; + optional int64 endTime = 9; + optional bool hideParticipantName = 10; + optional bool allowAddOption = 11; message Option { optional string optionName = 1; optional string optionHash = 2; @@ -3283,7 +4795,10 @@ message Message { optional int64 senderTimestampMs = 4; } - message PollUpdateMessageMetadata {} + message PollUpdateMessageMetadata { + optional bytes pollNameHash = 1; + optional string lastEditStanzaId = 2; + } message PollVoteMessage { repeated bytes selectedOptions = 1; @@ -3343,6 +4858,12 @@ message Message { optional bytes aiPsiMetadata = 25; optional AIQueryFanout aiQueryFanout = 26; optional MemberLabel memberLabel = 27; + optional AIMediaCollectionMessage aiMediaCollectionMessage = 28; + optional uint32 afterReadDuration = 29; + optional Message.ChatThemeSetting chatThemeSetting = 30; + optional AIMetadataOperation aiMetadataOperation = 31; + optional Message.MarkAsVerifiedAction markAsVerifiedAction = 32; + optional CoexStateSync coexStateSync = 33; enum Type { REVOKE = 0; EPHEMERAL_SETTING = 3; @@ -3370,6 +4891,12 @@ message Message { AI_PSI_METADATA = 28; AI_QUERY_FANOUT = 29; GROUP_MEMBER_LABEL_CHANGE = 30; + AI_MEDIA_COLLECTION_MESSAGE = 31; + MESSAGE_UNSCHEDULE = 32; + CHAT_THEME_SETTING = 34; + AI_METADATA_OPERATION = 35; + MARK_AS_VERIFIED_ACTION = 36; + COEX_STATE_SYNC = 37; } } @@ -3401,10 +4928,20 @@ message Message { message RequestWelcomeMessageMetadata { optional LocalChatState localChatState = 1; + optional WelcomeTrigger welcomeTrigger = 2; + optional BotAgentMetadata botAgentMetadata = 3; enum LocalChatState { EMPTY = 0; NON_EMPTY = 1; } + enum WelcomeTrigger { + CHAT_OPEN = 0; + COMPANION_PAIRING = 1; + } + } + + message RootSecretDistributeMessage { + optional string chatJid = 1; } message ScheduledCallCreationMessage { @@ -3432,10 +4969,14 @@ message Message { optional bytes encPayload = 2; optional bytes encIv = 3; optional SecretEncType secretEncType = 4; + optional string remoteKeyId = 5; enum SecretEncType { UNKNOWN = 0; EVENT_EDIT = 1; MESSAGE_EDIT = 2; + MESSAGE_SCHEDULE = 3; + POLL_EDIT = 4; + POLL_ADD_OPTION = 5; } } @@ -3451,6 +4992,41 @@ message Message { optional bytes axolotlSenderKeyDistributionMessage = 2; } + message SplitPaymentMessage { + optional string splitId = 1; + optional Money totalAmount = 2; + optional string description = 3; + optional string requesterJid = 4; + repeated Message.SplitPaymentParticipant participants = 5; + optional int64 createdAtMs = 6; + optional ContextInfo contextInfo = 17; + } + + message SplitPaymentParticipant { + optional string jid = 1; + optional Money amount = 2; + optional SplitPaymentStatus status = 3; + enum SplitPaymentStatus { + PENDING = 0; + PAID = 1; + } + } + + message SplitPaymentUpdateMessage { + optional string splitId = 1; + optional string participantJid = 2; + } + + message StatusLinkPreviewMetadata { + optional Style style = 1; + enum Style { + AUTO = 0; + COMPACT = 1; + FULL = 2; + IMMERSIVE = 3; + } + } + message StatusNotificationMessage { optional MessageKey responseMessageKey = 1; optional MessageKey originalMessageKey = 2; @@ -3460,6 +5036,7 @@ message Message { STATUS_ADD_YOURS = 1; STATUS_RESHARE = 2; STATUS_QUESTION_ANSWER_RESHARE = 3; + STATUS_GROUP_STATUS_REPLY = 4; } } @@ -3509,7 +5086,8 @@ message Message { optional bool isAiSticker = 20; optional bool isLottie = 21; optional string accessibilityLabel = 22; - optional Message.MediaKeyDomain mediaKeyDomain = 23; + optional int32 premium = 24; + optional string emojis = 25; } message StickerPackMessage { @@ -3542,6 +5120,7 @@ message Message { optional string accessibilityLabel = 4; optional bool isLottie = 5; optional string mimetype = 6; + optional int32 premium = 7; } enum StickerPackOrigin { @@ -3645,7 +5224,6 @@ message Message { optional uint64 motionPhotoPresentationOffsetMs = 29; optional string metadataUrl = 30; optional VideoSourceType videoSourceType = 31; - optional Message.MediaKeyDomain mediaKeyDomain = 32; enum Attribution { NONE = 0; GIPHY = 1; @@ -3664,7 +5242,7 @@ message MessageAddOn { optional Message messageAddOn = 2; optional int64 senderTimestampMs = 3; optional int64 serverTimestampMs = 4; - optional WebMessageInfo.Status status = 5; + optional WebMessageInfo.Status status = 5 [default = PENDING]; optional MessageAddOnContextInfo addOnContextInfo = 6; optional MessageKey messageAddOnKey = 7; optional LegacyMessage legacyMessage = 8; @@ -3707,6 +5285,7 @@ message MessageAssociation { STATUS_ADD_YOURS_DIWALI = 17; STATUS_REACTION = 18; HEVC_VIDEO_DUAL_UPLOAD = 19; + POLL_ADD_OPTION = 20; } } @@ -3727,6 +5306,9 @@ message MessageContextInfo { optional LimitSharing limitSharingV2 = 14; repeated ThreadID threadId = 15; optional WebLinkRenderConfig weblinkRenderConfig = 16; + optional bytes teeBotMetadata = 17; + optional NonE2EEAttestation accountEncryptionAttestation = 18; + optional bytes associatedPrimaryIdentityKey = 19; enum MessageAddonExpiryType { STATIC = 1; DEPENDENT_ON_PARENT = 2; @@ -3746,6 +5328,194 @@ message MessageSecretMessage { optional bytes encPayload = 3; } +message MessageText { + optional string text = 1; + repeated string mentionedJid = 2; + repeated Command commands = 3; + repeated Mention mentions = 4; +} + +message MessagingMailboxPublicData { + required bytes epochHead = 1; + required bytes deviceRosterHash = 2; + required uint64 sequenceNumber = 3; + required bytes sigPk = 4; + required bytes encPk = 5; + required bytes authPk = 6; +} + +message MinosClientConfig { + required int32 preferredMessageEncryptionVersion = 1; + required int32 preferredMekEncryptionVersion = 2; +} + +message MinosCommand { + oneof commandInput { + MinosEncryptAndSignMessageInput encryptAndSignMessage = 1; + MinosDecryptAndVerifyMessageInput decryptAndVerifyMessage = 2; + GenerateMekInput generateMek = 3; + GenerateMekRosterHashInput generateMekRosterHash = 4; + EncryptMekForDistributionInput encryptMekForDistribution = 5; + DecryptMekForDistributionInput decryptMekForDistribution = 6; + EncryptMeksForDistributionFromTransportSenderInput encryptMeksForDistributionFromTransportSender = 7; + DecryptMekForDistributionFromTransportSenderInput decryptMekForDistributionFromTransportSender = 8; + WrapTransportSigningPublicKeyInput wrapTransportSigningPublicKey = 9; + WrapTransportSigningSecretKeyInput wrapTransportSigningSecretKey = 10; + DeriveMailboxSigningKeypairInput deriveMailboxSigningKeypair = 11; + DeriveMailboxEncryptionKeypairInput deriveMailboxEncryptionKeypair = 12; + DeriveMailboxAuthKeypairInput deriveMailboxAuthKeypair = 13; + DeriveAttachmentAccessTokenSecretInput deriveAttachmentAccessTokenSecret = 14; + DeriveAttachmentPrimaryKeySecretInput deriveAttachmentPrimaryKeySecret = 15; + MinosOpenInitialEpochInput minosOpenInitialEpoch = 16; + MinosOpenEpochInput minosOpenEpoch = 17; + MinosValidateEpochInput minosValidateEpoch = 18; + MinosVerifySingleEpochInput minosVerifySingleEpoch = 19; + MinosThreadIdFromOneToOneThreadInput minosThreadIdFromOneToOneThread = 20; + MinosThreadIdFromActThreadIdInput minosThreadIdFromActThreadId = 21; + MandrakeOpenEpochInput mandrakeOpenEpoch = 22; + MandrakeEncryptMekInput mandrakeEncryptMek = 23; + MandrakeDecryptMekInput mandrakeDecryptMek = 24; + MandrakeOpenInitialEpochInput mandrakeOpenInitialEpoch = 25; + MandrakeValidateNewMmkFromMailboxInput mandrakeValidateNewMmkFromMailbox = 27; + MandrakeValidateNewMmkFromDetachedDeviceInput mandrakeValidateNewMmkFromDetachedDevice = 28; + DeriveMessagingMailboxKeypairsInput deriveMessagingMailboxKeypairs = 29; + DecryptSelfMmkDistributionInput decryptSelfMmkDistribution = 30; + } +} + +message MinosDecryptAndVerifyMessageInput { + required bytes transportSigningPk = 1; + required bytes mek = 2; + required bytes encryptedMessageCiphertext = 3; + required bytes encryptedMessageSignature = 4; + required MinosMessageMetadata metadata = 5; + optional int32 messageEncryptionVersion = 6; + optional MinosClientConfig conf = 7; +} + +message MinosDecryptAndVerifyMessageResult { + oneof result { + MinosDecryptAndVerifyMessageSuccess success = 1; + string errorMessage = 2; + } +} + +message MinosDecryptAndVerifyMessageSuccess { + required bytes plaintext = 1; +} + +message MinosEncryptAndSignMessageInput { + required bytes transportSigningSk = 1; + required bytes mek = 2; + required bytes plaintext = 3; + required MinosMessageMetadata metadata = 4; + optional bytes transportSigningPk = 5; + optional MinosClientConfig conf = 6; +} + +message MinosEncryptAndSignMessageResult { + required bytes ciphertext = 1; + required bytes signature = 2; + required int32 version = 3; +} + +message MinosMessageMetadata { + required bytes mekId = 1; + required uint64 timestamp = 2; + required string messageId = 3; + required bytes threadId = 4; +} + +message MinosOpenEpochInput { + required string userFbid = 1; + required uint64 epochNumber = 2; + required bytes exportRootKey = 3; + required bytes previousExportRootKey = 4; + required uint64 previousEpochNumber = 5; + required bytes previousEpochHead = 6; +} + +message MinosOpenEpochResult { + required MinosSignedEpoch minosSignedEpoch = 1; +} + +message MinosOpenInitialEpochInput { + required string userFbid = 1; + required uint64 epochNumber = 2; + required bytes exportRootKey = 3; +} + +message MinosOpenInitialEpochResult { + required MinosSignedEpoch minosSignedEpoch = 1; +} + +message MinosSignedEpoch { + required EpochPublicData epochPublicData = 1; + required EpochSignatures signatures = 2; + required bytes epochHead = 3; +} + +message MinosThreadIdFromActThreadIdInput { + required string actThreadId = 1; +} + +message MinosThreadIdFromActThreadIdResult { + required bytes threadId = 1; +} + +message MinosThreadIdFromOneToOneThreadInput { + required string actThreadId = 1; + required string selfFbid = 2; +} + +message MinosThreadIdFromOneToOneThreadResult { + required bytes threadId = 1; +} + +message MinosValidateEpochInput { + required EpochPublicData epochPublicData = 1; + required EpochPublicData previousEpochPublicData = 2; + required EpochSignatures signatures = 3; +} + +message MinosValidateEpochResult { + oneof result { + bool valid = 1; + string errorMessage = 2; + } +} + +message MinosVerifySingleEpochInput { + required EpochPublicData epochPublicData = 1; + required bytes signature = 2; +} + +message MinosVerifySingleEpochResult { + required bool valid = 1; +} + +message MmkDistribution { + repeated MmkDistributionToDetachedDevice toDetachedDevices = 1; + required MmkDistributionToMailbox toMailbox = 2; + required uint64 version = 3; +} + +message MmkDistributionToDetachedDevice { + required bytes encryptedMmk = 1; + required bytes recipDeviceHash = 2; +} + +message MmkDistributionToMailbox { + required bytes encryptedMmk = 1; + required bytes recipMailboxHeadHash = 2; +} + +message MmkFromDetachedDevice { + required MessagingMailboxPublicData mmk = 1; + required DetachedDevicePublicData fromDetachedDevice = 2; + required MerkleMembershipProof membershipProof = 3; +} + message Money { optional int64 value = 1; optional uint32 offset = 2; @@ -3796,6 +5566,18 @@ message MsgOpaqueData { optional bool eventIsScheduledCall = 44; optional bool eventExtraGuestsAllowed = 45; optional bytes plainProtobufBytes = 43; + optional string quarantineExtractedText = 48; + optional int64 pollEndTime = 49; + optional bool pollHideVoterNames = 50; + optional bool pollAllowAddOption = 52; + optional string sharableEventInviteId = 53; + optional string sharableEventInviteTitle = 54; + optional int64 sharableEventInviteStartTime = 55; + optional int64 sharableEventInviteEndTime = 56; + optional string sharableEventInviteCaption = 57; + optional bool sharableEventInviteIsCanceled = 58; + optional bytes sharableEventInviteJpegThumbnail = 59; + optional string sharableEventInviteCallLink = 60; message EventLocation { optional double degreesLatitude = 1; optional double degreesLongitude = 2; @@ -3907,6 +5689,21 @@ enum MutationProps { AI_THREAD_RENAME_ACTION = 76; INTERACTIVE_MESSAGE_ACTION = 77; SETTINGS_SYNC_ACTION = 78; + OUT_CONTACT_ACTION = 79; + NCT_SALT_SYNC_ACTION = 80; + BUSINESS_BROADCAST_CAMPAIGN_ACTION = 81; + BUSINESS_BROADCAST_INSIGHTS_ACTION = 82; + CUSTOMER_DATA_ACTION = 83; + SUBSCRIPTIONS_SYNC_V2_ACTION = 84; + THREAD_PIN_ACTION = 85; + AUTO_ORGANIZE_BUSINESS_CHAT_SETTING = 86; + BIZ_AI_SETTINGS_NUDGE_ACTION = 87; + COEX_V2_VERSION_ACTION = 88; + WASA_ROOT_SECRET_ACTION = 89; + BUBBLE_LOCK_MESSAGE_ACTION = 90; + LABEL_SUBLIST_ACTION = 91; + DEVICE_CAPABILITIES_V2 = 92; + CTWA_MESSAGE_RECEIVED_ACTION = 93; SHARE_OWN_PN = 10001; BUSINESS_BROADCAST_ACTION = 10002; AI_THREAD_DELETE_ACTION = 10003; @@ -3923,6 +5720,15 @@ message NoiseCertificate { } } +message NonE2EEAttestation { + optional AccountType accountType = 1; + enum AccountType { + E2EE = 0; + HYBRID_E2EE = 1; + NON_E2EE = 2; + } +} + message NotificationMessageInfo { optional MessageKey key = 1; optional Message message = 2; @@ -3939,6 +5745,16 @@ message NotificationSettings { optional string callVibrate = 6; } +message OrfThreadIdInput { + required bytes orfClientState = 1; + required string threadId = 2; +} + +message OrfThreadIdOutput { + optional bytes orfThreadId = 1; + optional string error = 2; +} + message PairingRequest { optional bytes companionPublicKey = 1; optional bytes companionIdentityKey = 2; @@ -4114,6 +5930,11 @@ message Point { message PollAdditionalMetadata { optional bool pollInvalidated = 1; + repeated PollNameHashHistoryEntry pollNameHashHistory = 2; + message PollNameHashHistoryEntry { + optional string editStanzaId = 1; + optional bytes pollNameHash = 2; + } } message PollEncValue { @@ -4127,6 +5948,7 @@ message PollUpdate { optional int64 senderTimestampMs = 3; optional int64 serverTimestampMs = 4; optional bool unread = 5; + optional Message.PollUpdateMessageMetadata metadata = 6; } message PreKeyRecordStructure { @@ -4142,6 +5964,8 @@ message PreKeySignalMessage { optional bytes baseKey = 2; optional bytes identityKey = 3; optional bytes message = 4; + optional uint32 kyberPreKeyId = 7; + optional bytes kyberCiphertext = 8; } message PremiumMessageInfo { @@ -4185,6 +6009,41 @@ message Pushname { optional string pushname = 2; } +message QP { + enum ClauseType { + AND = 1; + OR = 2; + NOR = 3; + } + message Filter { + required string filterName = 1; + repeated QP.FilterParameters parameters = 2; + optional QP.FilterResult filterResult = 3; + required QP.FilterClientNotSupportedConfig clientNotSupportedConfig = 4; + } + + message FilterClause { + required QP.ClauseType clauseType = 1; + repeated QP.FilterClause clauses = 2; + repeated QP.Filter filters = 3; + } + + enum FilterClientNotSupportedConfig { + PASS_BY_DEFAULT = 1; + FAIL_BY_DEFAULT = 2; + } + message FilterParameters { + optional string key = 1; + optional string value = 2; + } + + enum FilterResult { + TRUE = 1; + FALSE = 2; + UNKNOWN = 3; + } +} + message QuarantinedMessage { optional bytes originalData = 1; optional string extractedText = 2; @@ -4209,7 +6068,7 @@ message RecordStructure { } message Reportable { - optional uint32 minVersion = 1; + optional uint32 minVersion = 1 [default = 1]; optional uint32 maxVersion = 2; optional uint32 notReportableMinVersion = 3; optional bool never = 4; @@ -4217,6 +6076,53 @@ message Reportable { message ReportingTokenInfo { optional bytes reportingTag = 1; + optional uint64 reportingTagTimestamp = 2; +} + +message RotateEpochInput { + required bytes currentEpochRootKey = 1; + required bytes currentEpochAnonId = 2; + required uint64 currentEpochFbid = 3; + required bytes epochStoragePrivateKey = 4; + repeated RotateEpochMemberInput members = 5; +} + +message RotateEpochMemberEdge { + optional uint64 deviceId = 1; + optional bytes encryptedEpochKey = 2; + optional bytes deviceEpochHmac = 3; +} + +message RotateEpochMemberInput { + required uint64 deviceId = 1; + required bytes epochStoragePublicKey = 2; + required bytes devicePublicKey = 3; +} + +message RotateEpochOutput { + optional bytes newEpochRootKey = 1; + optional uint64 newEpochAnonId = 2; + optional uint64 newEpochFbid = 8; + optional bytes epochAnonId = 3; + optional BackwardEdge backwardEdge = 4; + repeated RotateEpochMemberEdge memberEdges = 5; + optional bytes epochRootKeyFingerprint = 6; + optional string error = 7; +} + +message RoutingInfo { + repeated int32 regionId = 1; + repeated int32 clusterId = 2; + optional int32 taskId = 3 [default = -1]; + optional bool debug = 4 [default = false]; + optional bool tcpBbr = 5 [default = false]; + optional bool tcpKeepalive = 6; +} + +message ScheduledMessageMetadata { + optional string revealKeyId = 1; + optional bytes revealKey = 2; + optional uint64 scheduledTime = 3; } message SenderKeyDistributionMessage { @@ -4307,6 +6213,8 @@ message SessionStructure { optional uint32 preKeyId = 1; optional int32 signedPreKeyId = 3; optional bytes baseKey = 2; + optional uint32 kyberPreKeyId = 4; + optional bytes kyberCiphertext = 5; } } @@ -4327,6 +6235,12 @@ message SignalMessage { optional bytes ciphertext = 4; } +message SignedMmkDistributionFromMailbox { + required MmkDistribution mmkDistribution = 1; + required bytes signature = 2; + required MessagingMailboxPublicData fromMailbox = 3; +} + message SignedPreKeyRecordStructure { optional uint32 id = 1; optional bytes publicKey = 2; @@ -4371,6 +6285,9 @@ message StatusAttribution { APPLE_MUSIC = 8; SHARECHAT = 9; GOOGLE_PHOTOS = 10; + SOUNDCLOUD = 11; + SHAZAM = 12; + PICSART = 13; } } @@ -4426,6 +6343,10 @@ message StatusAttribution { RL_ATTRIBUTION = 6; AI_CREATED = 7; LAYOUTS = 8; + NEWSLETTER_STATUS = 9; + STATUS_CLOSE_SHARING = 10; + PAID_PARTNERSHIP = 11; + USERNAME_STATUS = 12; } } @@ -4455,6 +6376,11 @@ message StickerMetadata { optional bool isAvatarSticker = 14; } +message SubProtocol { + optional bytes payload = 1; + optional int32 version = 2; +} + message SyncActionData { optional bytes index = 1; optional SyncActionValue value = 2; @@ -4532,9 +6458,24 @@ message SyncActionValue { optional AiThreadRenameAction aiThreadRenameAction = 76; optional InteractiveMessageAction interactiveMessageAction = 77; optional SettingsSyncAction settingsSyncAction = 78; + optional OutContactAction outContactAction = 79; + optional NctSaltSyncAction nctSaltSyncAction = 80; + optional BusinessBroadcastCampaignAction businessBroadcastCampaignAction = 81; + optional BusinessBroadcastInsightsAction businessBroadcastInsightsAction = 82; + optional CustomerDataAction customerDataAction = 83; + optional SubscriptionsSyncV2Action subscriptionsSyncV2Action = 84; + optional ThreadPinAction threadPinAction = 85; + optional AutoOrganizeBusinessChatSetting autoOrganizeBusinessChatSetting = 86; + optional BizAISettingsNudgeAction bizAiSettingsNudgeAction = 87; + optional CoexV2VersionAction coexV2VersionAction = 88; + optional WASARootSecretAction wasaRootSecretAction = 89; + optional BubbleLockMessageAction bubbleLockMessageAction = 90; + optional LabelSublistAction labelSublistAction = 91; + optional DeviceCapabilities deviceCapabilitiesV2 = 92; + optional CtwaMessageReceivedAction ctwaMessageReceivedAction = 93; message AgentAction { optional string name = 1; - optional int32 deviceID = 2; + optional int32 deviceId = 2; optional bool isDeleted = 3; } @@ -4551,6 +6492,10 @@ message SyncActionValue { optional SyncActionValue.SyncActionMessageRange messageRange = 2; } + message AutoOrganizeBusinessChatSetting { + optional bool autoOrganize = 1; + } + message AvatarUpdatedAction { optional AvatarEventType eventType = 1; repeated SyncActionValue.StickerAction recentAvatarStickers = 2; @@ -4561,6 +6506,21 @@ message SyncActionValue { } } + message BizAISettingsNudgeAction { + optional BizAISettingsCategory category = 1; + optional int64 version = 2; + optional int64 updatedAtMs = 3; + enum BizAISettingsCategory { + UNKNOWN = 0; + INSTRUCTIONS = 1; + RESPONSE_SETTINGS = 2; + EXAMPLE_RESPONSES = 3; + KNOWLEDGE = 4; + LEAD_GEN = 5; + HANDOFF_REMOVAL_TIMING = 6; + } + } + message BotWelcomeRequestAction { optional bool isSent = 1; } @@ -4570,15 +6530,48 @@ message SyncActionValue { optional string pnJid = 2; } + message BubbleLockMessageAction { + optional bool locked = 1; + } + message BusinessBroadcastAssociationAction { optional bool deleted = 1; } + message BusinessBroadcastCampaignAction { + optional int32 deviceId = 1; + optional string adId = 2; + optional string name = 3; + optional string msgId = 4; + optional string broadcastJid = 5; + optional int32 reservedQuota = 6; + optional int64 scheduledTimestamp = 7; + optional int64 createTimestamp = 8; + optional SyncActionValue.BusinessBroadcastCampaignStatus status = 9; + } + + enum BusinessBroadcastCampaignStatus { + DRAFT = 1; + SCHEDULED = 2; + PROCESSING = 3; + FAILED = 4; + SENT = 5; + } + message BusinessBroadcastInsightsAction { + optional int32 recipientCount = 1; + optional int32 deliveredCount = 2; + optional int32 readCount = 3; + optional int32 repliedCount = 4; + optional int32 quickReplyCount = 5; + } + message BusinessBroadcastListAction { optional bool deleted = 1; repeated SyncActionValue.BroadcastListParticipant participants = 2; optional string listName = 3; repeated string labelIds = 4; + optional string audienceExpression = 5; + optional string customAudienceFbid = 6; } message CallLogAction { @@ -4586,7 +6579,7 @@ message SyncActionValue { } message ChatAssignmentAction { - optional string deviceAgentID = 1; + optional string deviceAgentId = 1; } message ChatAssignmentOpenedStatusAction { @@ -4597,6 +6590,10 @@ message SyncActionValue { optional SyncActionValue.SyncActionMessageRange messageRange = 1; } + message CoexV2VersionAction { + optional uint64 version = 1; + } + message ContactAction { optional string fullName = 1; optional string firstName = 2; @@ -4606,6 +6603,10 @@ message SyncActionValue { optional string username = 6; } + message CtwaMessageReceivedAction { + optional bool isCtwaMessageReceived = 1; + } + message CtwaPerCustomerDataSharingAction { optional bool isCtwaPerCustomerDataSharingEnabled = 1; } @@ -4626,6 +6627,20 @@ message SyncActionValue { repeated SyncActionValue.CustomPaymentMethod customPaymentMethods = 1; } + message CustomerDataAction { + optional string chatJid = 1; + optional int32 contactType = 2; + optional string email = 3; + optional string altPhoneNumbers = 4; + optional int64 birthday = 5; + optional string address = 6; + optional int32 acquisitionSource = 7; + optional int32 leadStage = 8; + optional int64 lastOrder = 9; + optional int64 createdAt = 10; + optional int64 modifiedAt = 11; + } + message DeleteChatAction { optional SyncActionValue.SyncActionMessageRange messageRange = 1; } @@ -4657,6 +6672,7 @@ message SyncActionValue { message InteractiveMessageAction { required InteractiveMessageActionMode type = 1; + optional string agmId = 2; enum InteractiveMessageActionMode { DISABLE_CTA = 1; } @@ -4668,6 +6684,7 @@ message SyncActionValue { message LabelAssociationAction { optional bool labeled = 1; + optional string modelMetaData = 2; } message LabelEditAction { @@ -4691,6 +6708,14 @@ message SyncActionValue { SERVER_ASSIGNED = 7; DRAFTED = 8; AI_HANDOFF = 9; + CHANNELS = 10; + AI_RESPONDING = 11; + ARCHIVED = 12; + LOCKED = 13; + INVITES = 14; + THIRD_PARTY = 15; + LEAD = 16; + MENTIONS_AND_REPLIES = 17; } } @@ -4698,6 +6723,10 @@ message SyncActionValue { repeated int32 sortedLabelIds = 1; } + message LabelSublistAction { + optional int32 subListId = 1; + } + message LidContactAction { optional string fullName = 1; optional string firstName = 2; @@ -4714,11 +6743,17 @@ message SyncActionValue { message MaibaAIFeaturesControlAction { optional MaibaAIFeatureStatus aiFeatureStatus = 1; + optional MaibaAIReplyMode aiReplyMode = 2; enum MaibaAIFeatureStatus { ENABLED = 0; ENABLED_HAS_LEARNING = 1; DISABLED = 2; } + enum MaibaAIReplyMode { + MUTED = 0; + AI_AGENT = 1; + SUGGESTIONS = 2; + } } message MarkChatAsReadAction { @@ -4763,6 +6798,11 @@ message SyncActionValue { optional bool muted = 1; optional int64 muteEndTimestamp = 2; optional bool autoMuted = 3; + optional int64 muteEveryoneMentionEndTimestamp = 4; + } + + message NctSaltSyncAction { + optional bytes salt = 1; } message NewsletterSavedInterestsAction { @@ -4795,6 +6835,11 @@ message SyncActionValue { optional bool acknowledged = 1; } + message OutContactAction { + optional string fullName = 1; + optional string firstName = 2; + } + message PaymentInfoAction { optional string cpi = 1; } @@ -4854,6 +6899,7 @@ message SyncActionValue { repeated string keywords = 3; optional int32 count = 4; optional bool deleted = 5; + repeated string associatedLabelIds = 6; } message RecentEmojiWeightsAction { @@ -4888,12 +6934,28 @@ message SyncActionValue { optional bool isDocumentsAutodownloadEnabled = 21; optional bool disableLinkPreviews = 22; optional int32 notificationToneId = 23; + optional MediaQualitySetting mediaUploadQuality = 24; + optional bool isSpellCheckEnabled = 25; + optional bool isEnterToSendEnabled = 26; + optional bool isGroupMessageNotificationEnabled = 27; + optional bool isGroupReactionsNotificationEnabled = 28; + optional bool isStatusNotificationEnabled = 29; + optional int32 statusNotificationToneId = 30; + optional bool shouldPlaySoundForCallNotification = 31; + optional string chatThemeId = 32; + optional string colorSchemeId = 33; + optional string stockWallpaperImageId = 34; enum DisplayMode { DISPLAY_MODE_UNKNOWN = 0; ALWAYS = 1; NEVER = 2; ONLY_WHEN_APP_IS_OPEN = 3; } + enum MediaQualitySetting { + MEDIA_QUALITY_UNKNOWN = 0; + STANDARD = 1; + HD = 2; + } enum SettingKey { SETTING_KEY_UNKNOWN = 0; START_AT_LOGIN = 1; @@ -4919,6 +6981,17 @@ message SyncActionValue { IS_DOCUMENTS_AUTODOWNLOAD_ENABLED = 21; DISABLE_LINK_PREVIEWS = 22; NOTIFICATION_TONE_ID = 23; + MEDIA_UPLOAD_QUALITY = 24; + IS_SPELL_CHECK_ENABLED = 25; + IS_ENTER_TO_SEND_ENABLED = 26; + IS_GROUP_MESSAGE_NOTIFICATION_ENABLED = 27; + IS_GROUP_REACTIONS_NOTIFICATION_ENABLED = 28; + IS_STATUS_NOTIFICATION_ENABLED = 29; + STATUS_NOTIFICATION_TONE_ID = 30; + SHOULD_PLAY_SOUND_FOR_CALL_NOTIFICATION = 31; + CHAT_THEME_ID = 32; + COLOR_SCHEME_ID = 33; + STOCK_WALLPAPER_IMAGE_ID = 34; } enum SettingPlatform { PLATFORM_UNKNOWN = 0; @@ -4940,11 +7013,24 @@ message SyncActionValue { message StatusPrivacyAction { optional StatusDistributionMode mode = 1; repeated string userJid = 2; + optional bool shareToFb = 3; + optional bool shareToIg = 4; + repeated CustomList customLists = 5; + repeated StatusDistributionMode modes = 6; + message CustomList { + optional string listId = 1; + optional string name = 2; + optional string emoji = 3; + optional bool isSelected = 4; + repeated string userJid = 5; + } + enum StatusDistributionMode { ALLOW_LIST = 0; DENY_LIST = 1; CONTACTS = 2; CLOSE_FRIENDS = 3; + CUSTOM_LIST = 4; } } @@ -4970,6 +7056,28 @@ message SyncActionValue { optional int64 expirationDate = 3; } + message SubscriptionsSyncV2Action { + repeated SubscriptionInfo subscriptions = 1; + repeated PaidFeature paidFeature = 2; + message PaidFeature { + optional string name = 1; + optional bool enabled = 2; + optional int32 limit = 3; + optional int64 expirationTime = 4; + } + + message SubscriptionInfo { + optional string id = 1; + optional int32 tier = 2; + optional string status = 3; + optional int64 startTime = 4; + optional int64 endTime = 5; + optional bool isPlatformChanged = 6; + optional string source = 7; + optional int64 creationTime = 8; + } + } + message SyncActionMessage { optional MessageKey key = 1; optional int64 timestamp = 2; @@ -4981,6 +7089,10 @@ message SyncActionValue { repeated SyncActionValue.SyncActionMessage messages = 3; } + message ThreadPinAction { + optional bool pinned = 1; + } + message TimeFormatAction { optional bool isTwentyFourHourFormatEnabled = 1; } @@ -5005,6 +7117,20 @@ message SyncActionValue { } } + message WASARootSecretAction { + repeated RootSecretEntry secrets = 1; + message RootSecretEntry { + optional string id = 1; + optional bytes rootSecret = 2; + optional int64 epoch = 3; + optional Status status = 4; + enum Status { + INACTIVE = 0; + ACTIVE = 1; + } + } + } + message WaffleAccountLinkStateAction { optional AccountLinkState linkState = 2; enum AccountLinkState { @@ -5048,6 +7174,12 @@ message SyncdPatch { optional bytes clientDebugData = 9; } +message SyncdPlainTextRecord { + optional SyncActionData value = 1; + optional bytes keyId = 2; + optional bytes mac = 3; +} + message SyncdRecord { optional SyncdIndex index = 1; optional SyncdValue value = 2; @@ -5061,6 +7193,13 @@ message SyncdSnapshot { optional KeyId keyId = 4; } +message SyncdSnapshotRecovery { + optional SyncdVersion version = 1; + optional string collectionName = 2; + repeated SyncdPlainTextRecord mutationRecords = 3; + optional bytes collectionLthash = 4; +} + message SyncdValue { optional bytes blob = 1; } @@ -5107,6 +7246,17 @@ message ThreadID { } } +message UnCountedAssociatedMessageList { + repeated WebMessageInfo messages = 1; + optional MessageKey parentMessage = 2; + optional MessageAssociation.AssociationType associationType = 3; +} + +message UnCountedAssociatedMessageListWithMessageBytes { + repeated WebMessageInfoWithMessageBytes messages = 1; + optional MessageKey parentMessage = 2; +} + message UrlTrackingMap { repeated UrlTrackingMapElement urlTrackingMapElements = 1; message UrlTrackingMapElement { @@ -5165,9 +7315,20 @@ message VerifiedNameCertificate { } } +message VirtualDeviceOutput { + required bytes vdId = 1; + required bytes vdPublicKey = 2; + required bytes vdEpochStoragePublicKey = 3; + required bytes vdEpochStoragePublicKeySig = 4; + required bytes ocmfRotationToken = 5; + required bytes deviceEpochHmac = 6; + required EncryptedSecretValuesOutput encryptedSecretValues = 7; +} + message WallpaperSettings { optional string filename = 1; optional uint32 opacity = 2; + optional bool isGenAi = 3; } message WebFeatures { @@ -5232,7 +7393,7 @@ message WebMessageInfo { required MessageKey key = 1; optional Message message = 2; optional uint64 messageTimestamp = 3; - optional Status status = 4; + optional Status status = 4 [default = PENDING]; optional string participant = 5; optional uint64 messageC2STimestamp = 6; optional bool ignore = 16; @@ -5296,6 +7457,11 @@ message WebMessageInfo { optional InteractiveMessageAdditionalMetadata interactiveMessageAdditionalMetadata = 76; optional QuarantinedMessage quarantinedMessage = 77; optional uint32 nonJidMentions = 78; + optional string hsmTag = 79; + optional uint64 ephemeralExpirationTimestamp = 80; + optional ScheduledMessageMetadata scheduledMessageMetadata = 81; + optional string decisionId = 82; + repeated string decisionSources = 83; enum BizPrivacyStatus { E2EE = 0; FB = 2; @@ -5535,12 +7701,39 @@ message WebMessageInfo { GROUP_MEMBER_SHARE_GROUP_HISTORY_MODE = 221; GROUP_OPEN_BOT_ADDED = 222; GROUP_TEE_BOT_ADDED = 223; + CONTACT_INFO = 224; + SCHEDULED_MESSAGE_CREATED = 225; + IDENTITY_TRUST_MARKED = 226; + IDENTITY_TRUST_UNMARKED = 227; + IDENTITY_TRUST_REVOKED = 228; + CTWA_CONSUMER_DISCLOSURE = 230; } } +message WebMessageInfoWithMessageBytes { + optional MessageKey key = 1; + optional bytes messageBytes = 2; +} + message WebNotificationsInfo { optional uint64 timestamp = 2; optional uint32 unreadChats = 3; optional uint32 notifyMessageCount = 4; repeated WebMessageInfo notifyMessages = 5; } + +message WrapTransportSigningPublicKeyInput { + required bytes keyBytes = 1; +} + +message WrapTransportSigningPublicKeyResult { + required bytes prefixedKey = 1; +} + +message WrapTransportSigningSecretKeyInput { + required bytes keyBytes = 1; +} + +message WrapTransportSigningSecretKeyResult { + required bytes prefixedKey = 1; +} From 2f3410670e62e6c859b7391679e697da5d167b7e Mon Sep 17 00:00:00 2001 From: krypton-byte Date: Sat, 22 Aug 2026 19:18:23 +0000 Subject: [PATCH 11/24] perf(release): optimize release profile for maximum runtime performance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - opt-level = 3 (was "z"): full inlining and loop-unrolling for crypto/protocol workloads - lto = "fat" (was true): explicit full cross-crate link-time optimization - strip = "symbols" (was true): strip debug symbols, keep minimal info - panic = "unwind" (was abort): MANDATORY for PyO3 catch_unwind → Python exceptions 🤖 Generated with Codebuff Co-Authored-By: Codebuff --- Cargo.toml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 54781ab..45c1e69 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,14 +52,17 @@ voip = ["whatsapp-rust/voip"] voip-mlow = ["whatsapp-rust/voip-mlow"] # ── Release profile ──────────────────────────────────────────────────── -# Aggressively optimize for binary size. Without this, debug symbols -# alone can bloat the .so to ~1 GB. +# Optimised for maximum runtime performance. opt-level=3 enables full +# inlining and loop-unrolling; lto=fat + codegen-units=1 give the +# optimizer a single, whole-program view. panic="unwind" is mandatory +# because PyO3 and whatsapp-rust rely on catch_unwind() to convert +# Rust panics into Python exceptions instead of crashing the host. [profile.release] -strip = true # strip debug symbols (~900 MB saved) -lto = true # link-time optimization (20-30% smaller code) -opt-level = "z" # optimize for size over speed -codegen-units = 1 # single codegen unit for better optimization -panic = "abort" # skip unwind tables (~5% smaller) +opt-level = 3 # maximum runtime performance +lto = "fat" # full cross-crate link-time optimization +codegen-units = 1 # single codegen unit for whole-program opts +strip = "symbols" # strip debug symbols, keep minimal info +panic = "unwind" # REQUIRED: PyO3 catch_unwind → Python exceptions [profile.dev] # Keep dev builds fast. From fea2169037a64f50d93a9cad26454ca2d4b8c487 Mon Sep 17 00:00:00 2001 From: krypton-byte Date: Sun, 23 Aug 2026 08:16:43 +0000 Subject: [PATCH 12/24] docs: migrate to Zensical, redesign theme, rewrite all documentation pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Migrate from MkDocs Material to Zensical (modern theme variant) - Update pyproject.toml: replace mkdocs/mkdocs-material with zensical - Redesign CSS: clean teal accent, solid borders, no glass effects - Rewrite index.md: improved hero, feature grid, namespace table - Rewrite installation.md: prerequisites table, build options, troubleshooting - Rewrite quickstart.md: step-by-step with error handling patterns - Rewrite architecture.md: source-code references, layered design explanation - Rewrite event-model.md: comprehensive event taxonomy, handler patterns - Rewrite type-system.md: complete type reference with examples - Rewrite client.md: namespace router, practical flow by goal - Rewrite command-bot.md: production patterns, idempotency, admin controls - Enhance authentication.md: pairing flow, recovery playbook - Enhance contributing.md: development workflow, code style guidelines - Enhance error-handling.md: exception reference, namespace-aware patterns - Enhance glossary.md: comprehensive term definitions - Enhance FAQ: more questions, structured answers with code examples 🤖 Generated with Codebuff Co-Authored-By: Codebuff --- docs/api/client.md | 177 +++++------ docs/assets/stylesheets/extra.css | 389 ++++++++++--------------- docs/core-concepts/architecture.md | 227 +++++++++++---- docs/core-concepts/event-model.md | 274 ++++++++++++++--- docs/core-concepts/type-system.md | 319 +++++++++++++++++--- docs/faq/qna.md | 181 +++++++++--- docs/getting-started/authentication.md | 175 ++++++++--- docs/getting-started/contributing.md | 196 +++++++++---- docs/getting-started/installation.md | 167 ++++++++--- docs/getting-started/quickstart.md | 295 ++++++++++++++++--- docs/index.md | 235 ++++++++++----- docs/reference/error-handling.md | 203 ++++++++++--- docs/reference/glossary.md | 130 +++++++-- docs/tutorials/command-bot.md | 262 ++++++++++++++--- mkdocs.yml | 52 ++-- pyproject.toml | 4 +- uv.lock | 245 ++++------------ 17 files changed, 2477 insertions(+), 1054 deletions(-) diff --git a/docs/api/client.md b/docs/api/client.md index f7a9eb3..39c5d16 100644 --- a/docs/api/client.md +++ b/docs/api/client.md @@ -7,131 +7,134 @@ --- -`TryxClient` is the runtime facade passed to every handler, and it exposes a root messaging surface plus 12 namespace clients. +`TryxClient` is the runtime facade passed to every handler, and it exposes +a root messaging surface plus 12 namespace clients. -!!! tip "How To Read This Section" - 1. Start with this gateway page. - 2. Open the namespace page that matches your task. - 3. Jump to [Events API](events.md) for event contracts and [Types API](types.md) for enum/value-object constraints. +!!! tip "How to read this section" + 1. Start with this gateway page. + 2. Open the namespace page that matches your task. + 3. Jump to [Events API](events.md) for event contracts and + [Types API](types.md) for enum/value-object constraints. ## Client Topology ```mermaid flowchart TD - A[TryxClient] --> B[Root send/download/upload methods] - A --> C[contact] - A --> D[chat_actions] - A --> E[community] - A --> F[newsletter] - A --> G[groups] - A --> H[status] - A --> I[chatstate] - A --> J[blocking] - A --> K[polls] - A --> L[presence] - A --> M[privacy] - A --> N[profile] + A[TryxClient] --> B[Root send/download/upload methods] + A --> C[contact] + A --> D[chat_actions] + A --> E[community] + A --> F[newsletter] + A --> G[groups] + A --> H[status] + A --> I[chatstate] + A --> J[blocking] + A --> K[polls] + A --> L[presence] + A --> M[privacy] + A --> N[profile] ``` ## Namespace Router - + Use root send methods + `chat_actions` + `chatstate`. -## Root Transport Methods + 1. Parse incoming event. + 2. Signal typing with `client.chatstate.send_composing(chat)`. + 3. Send reply with `client.send_text(...)`. + 4. Optional message edit/revoke via `client.chat_actions`. -These methods stay on `TryxClient` directly because they are cross-domain primitives. - -| Method | Purpose | Typical usage | -| --- | --- | --- | -| `is_connected() -> bool` | Connection health check | Guard before sends in long-running jobs | -| `download_media(message) -> bytes` | Download media blob from message proto media node | Save image/audio/document payloads | -| `upload_file(path, media_type) -> UploadResponse` | Upload file path for later message/status usage | Status media workflows | -| `upload(data, media_type) -> UploadResponse` | Upload in-memory bytes | Transform pipelines | -| `send_message(to, message) -> SendResult` | Raw protobuf message send | Advanced custom payloads | -| `send_text(...) -> SendResult` | Text helper | Most command handlers | -| `send_photo(...) -> SendResult` | Image helper | Client replies with screenshots/posters | -| `send_document(...) -> SendResult` | File helper | Reports, exports, invoices | -| `send_audio(...) -> SendResult` | Audio helper | Voice notes / TTS | -| `send_video(...) -> SendResult` | Video helper | Clips, demos | -| `send_gif(...) -> SendResult` | GIF helper | Motion responses | -| `send_sticker(...) -> SendResult` | Sticker helper | Lightweight reactions | -| `request_media_reupload(...) -> MediaReuploadResult` | Recover stale media references | Retry failed media downloads | - -!!! warning "Reconnect-safe Pattern" - Avoid caching `TryxClient` on global module state across runtime restarts. - Always use the `client` object injected in the current handler call. - -## Practical Flow By Goal +=== "Moderation Client" -=== "Message Client" - Use root send methods + `chat_actions` + `chatstate`. + Use `groups`, `blocking`, `privacy`. - 1. Parse incoming event. - 2. Signal typing with `client.chatstate.send_composing(chat)`. - 3. Send reply with `client.send_text(...)`. - 4. Optional message edit/revoke via `client.chat_actions`. + 1. Resolve sender via [Types API](types.md). + 2. Apply participant actions (`promote`, `remove`, `approve request`). + 3. Enforce policy with blocklist/privacy settings. -=== "Moderation Client" - Use `groups`, `blocking`, `privacy`. +=== "Broadcast/Channel Client" - 1. Resolve sender via [Types API](types.md). - 2. Apply participant actions (`promote`, `remove`, `approve request`). - 3. Enforce policy with blocklist/privacy settings. + Use `status`, `newsletter`, `polls`. -=== "Broadcast/Channel Client" - Use `status`, `newsletter`, `polls`. + 1. Upload content or build text payload. + 2. Publish status/newsletter message. + 3. Track engagement using polls and reactions. - 1. Upload content or build text payload. - 2. Publish status/newsletter message. - 3. Track engagement using polls and reactions. +--- ## Cross-References diff --git a/docs/assets/stylesheets/extra.css b/docs/assets/stylesheets/extra.css index bfceb63..b2b7c75 100644 --- a/docs/assets/stylesheets/extra.css +++ b/docs/assets/stylesheets/extra.css @@ -1,302 +1,255 @@ -@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap"); +/* ═══════════════════════════════════════════════════════════════════════════ + Tryx Documentation — Zensical Modern Theme + Clean, professional design with teal accent and solid typography. + ═══════════════════════════════════════════════════════════════════════════ */ -/* ── Theme Variables ─────────────────────────────────────────────────────── */ +/* ── Root Variables ──────────────────────────────────────────────────── */ :root { - --md-text-font: "Space Grotesk"; - --md-code-font: "JetBrains Mono"; - --tryx-bg-a: rgba(255, 193, 90, 0.18); - --tryx-bg-b: rgba(39, 189, 168, 0.14); - --tryx-hero-bg: radial-gradient(circle at 12% 18%, #c7f4e2 0%, #f6fcfa 35%, #fef6e8 100%); - --tryx-card-bg: rgba(255, 255, 255, 0.72); - --tryx-card-border: rgba(18, 127, 112, 0.16); - --tryx-card-shadow: 0 10px 28px rgba(20, 35, 40, 0.08); - --tryx-muted-border: rgba(0, 0, 0, 0.15); - --tryx-code-bg: #f6f8fa; - --tryx-code-border: rgba(0, 0, 0, 0.06); -} - -[data-md-color-scheme="slate"] { - --tryx-bg-a: rgba(255, 184, 76, 0.08); - --tryx-bg-b: rgba(39, 189, 168, 0.08); - --tryx-hero-bg: linear-gradient(135deg, rgba(40, 53, 57, 0.9), rgba(24, 37, 39, 0.9)); - --tryx-card-bg: rgba(28, 41, 45, 0.74); - --tryx-card-border: rgba(88, 132, 125, 0.44); - --tryx-card-shadow: 0 12px 34px rgba(0, 0, 0, 0.35); - --tryx-muted-border: rgba(255, 255, 255, 0.24); - --tryx-code-bg: #1e292b; - --tryx-code-border: rgba(255, 255, 255, 0.08); -} - -/* ── Global Typography ───────────────────────────────────────────────────── */ + --tryx-radius: 8px; + --tryx-gap: 1rem; + --tryx-border: 1px solid var(--md-default-fg-color--lightest); +} + +/* ── Typography ──────────────────────────────────────────────────────── */ .md-typeset h1, .md-typeset h2, .md-typeset h3 { - letter-spacing: -0.02em; + letter-spacing: -0.025em; + font-weight: 600; } .md-typeset h2 { - margin-top: 2rem; - padding-bottom: 0.3rem; - border-bottom: 1px solid var(--tryx-muted-border); + margin-top: 2.5rem; + padding-bottom: 0.35rem; + border-bottom: var(--tryx-border); } -/* ── Main Background ─────────────────────────────────────────────────────── */ -.md-main { - background: - radial-gradient(circle at 85% 12%, var(--tryx-bg-a), transparent 32%), - radial-gradient(circle at 6% 80%, var(--tryx-bg-b), transparent 28%); +.md-typeset h3 { + margin-top: 1.5rem; + font-weight: 500; } -/* ── Hero Section ────────────────────────────────────────────────────────── */ +/* ── Hero Section ────────────────────────────────────────────────────── */ .tryx-hero { - border: 1px solid var(--tryx-card-border); - border-radius: 18px; + border: var(--tryx-border); + border-radius: var(--tryx-radius); + padding: 2rem; + margin-bottom: 2rem; background: linear-gradient( 135deg, - rgba(13, 148, 136, 0.12) 0%, - rgba(245, 158, 11, 0.08) 50%, - rgba(13, 148, 136, 0.12) 100% + rgba(13, 148, 136, 0.04) 0%, + rgba(13, 148, 136, 0.01) 100% ); - background-size: 200% 200%; - animation: heroGradient 8s ease infinite; - box-shadow: var(--tryx-card-shadow); - padding: 1.5rem 1.6rem; - margin-bottom: 1.5rem; - position: relative; - overflow: hidden; } -.tryx-hero::before { - content: ""; - position: absolute; - top: -50%; - right: -20%; - width: 300px; - height: 300px; - background: radial-gradient(circle, rgba(13, 148, 136, 0.15), transparent 70%); - border-radius: 50%; - pointer-events: none; +[data-md-color-scheme="slate"] .tryx-hero { + background: linear-gradient( + 135deg, + rgba(13, 148, 136, 0.08) 0%, + rgba(13, 148, 136, 0.02) 100% + ); } -@keyframes heroGradient { - 0%, 100% { background-position: 0% 50%; } - 50% { background-position: 100% 50%; } +.tryx-hero h1 { + font-size: 1.8rem; + margin-bottom: 0.5rem; + font-weight: 700; +} + +.tryx-hero p { + color: var(--md-default-fg-color--light); + font-size: 0.95rem; + max-width: 640px; } .tryx-pill-row { display: flex; flex-wrap: wrap; - gap: 0.55rem; - margin-top: 0.9rem; + gap: 0.4rem; + margin-top: 1rem; } .tryx-pill { - border: 1px solid var(--tryx-muted-border); + border: var(--tryx-border); border-radius: 999px; - padding: 0.25rem 0.7rem; - font-size: 0.78rem; + padding: 0.15rem 0.6rem; + font-size: 0.75rem; font-weight: 500; - background: rgba(255, 255, 255, 0.58); - transition: all 0.2s ease; + letter-spacing: 0.02em; + color: var(--md-accent-fg-color); + background: rgba(13, 148, 136, 0.06); } -.tryx-pill:hover { +[data-md-color-scheme="slate"] .tryx-pill { background: rgba(13, 148, 136, 0.12); - border-color: rgba(13, 148, 136, 0.3); } -[data-md-color-scheme="slate"] .tryx-pill { - background: rgba(255, 255, 255, 0.06); +/* ── Feature Grid ────────────────────────────────────────────────────── */ +.tryx-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); + gap: var(--tryx-gap); + margin-top: 1rem; } -[data-md-color-scheme="slate"] .tryx-pill:hover { - background: rgba(13, 148, 136, 0.15); +.tryx-card { + border: var(--tryx-border); + border-radius: var(--tryx-radius); + padding: 1.25rem; + transition: border-color 0.2s, box-shadow 0.2s; } -/* ── Feature Grid ────────────────────────────────────────────────────────── */ -.tryx-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); - gap: 0.8rem; - margin-top: 0.8rem; +.tryx-card:hover { + border-color: var(--md-accent-fg-color); + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); } -.tryx-card { - border: 1px solid var(--tryx-card-border); - border-radius: 14px; - padding: 1rem; - background: var(--tryx-card-bg); - box-shadow: var(--tryx-card-shadow); - transition: all 0.25s ease; - position: relative; - overflow: hidden; +[data-md-color-scheme="slate"] .tryx-card:hover { + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); } -.tryx-card::after { - content: ""; - position: absolute; - top: 0; - left: 0; - right: 0; - height: 3px; - background: linear-gradient(90deg, var(--md-accent-fg-color), transparent); - opacity: 0; - transition: opacity 0.25s ease; +.tryx-card h3 { + margin-top: 0; + font-size: 0.95rem; + font-weight: 600; } -.tryx-card:hover { - transform: translateY(-3px); - box-shadow: 0 14px 36px rgba(20, 35, 40, 0.12); +.tryx-card p { + margin-top: 0.3rem; + font-size: 0.85rem; + color: var(--md-default-fg-color--light); + line-height: 1.5; } -.tryx-card:hover::after { - opacity: 1; +/* ── Architecture Diagram ────────────────────────────────────────────── */ +.tryx-arch { + border: var(--tryx-border); + border-radius: var(--tryx-radius); + padding: 1rem 1.5rem; + margin: 1.5rem 0; + background: var(--md-code-bg-color); + overflow-x: auto; } -[data-md-color-scheme="slate"] .tryx-card:hover { - box-shadow: 0 14px 36px rgba(0, 0, 0, 0.4); +.tryx-arch pre { + margin: 0; + font-size: 0.78rem; + line-height: 1.6; } -/* ── Link Grid ───────────────────────────────────────────────────────────── */ +/* ── Link Grid ───────────────────────────────────────────────────────── */ .tryx-link-grid { display: grid; - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - gap: 0.9rem; + grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); + gap: var(--tryx-gap); } .tryx-link-grid a { display: block; - border: 1px solid var(--tryx-card-border); - border-radius: 14px; - padding: 1rem; + border: var(--tryx-border); + border-radius: var(--tryx-radius); + padding: 0.8rem 1rem; text-decoration: none; - background: var(--tryx-card-bg); - box-shadow: var(--tryx-card-shadow); - transition: all 0.25s ease; + transition: border-color 0.2s, box-shadow 0.2s; } .tryx-link-grid a:hover { - transform: translateY(-3px); border-color: var(--md-accent-fg-color); - box-shadow: 0 12px 32px rgba(13, 148, 136, 0.15); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05); } -[data-md-color-scheme="slate"] .tryx-link-grid a:hover { - box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4); +.tryx-link-grid strong { + display: block; + font-size: 0.9rem; + margin-bottom: 0.2rem; } -/* ── Keyboard Shortcuts ──────────────────────────────────────────────────── */ +.tryx-link-grid span { + font-size: 0.8rem; + color: var(--md-default-fg-color--light); +} + +/* ── Keyboard Shortcuts ──────────────────────────────────────────────── */ .tryx-kbd { - border: 1px solid var(--tryx-muted-border); + border: 1px solid var(--md-default-fg-color--lightest); border-bottom-width: 2px; - border-radius: 6px; + border-radius: 4px; padding: 0.1rem 0.35rem; font-family: var(--md-code-font); - font-size: 0.76rem; + font-size: 0.78rem; } -/* ── Tables ──────────────────────────────────────────────────────────────── */ +/* ── Tables ──────────────────────────────────────────────────────────── */ .md-typeset table:not([class]) { - border-radius: 10px; + border-radius: var(--tryx-radius); overflow: hidden; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); + font-size: 0.85rem; } .md-typeset table:not([class]) th { - background: linear-gradient(135deg, rgba(13, 148, 136, 0.08), rgba(13, 148, 136, 0.04)); font-weight: 600; + background: var(--md-code-bg-color); } -[data-md-color-scheme="slate"] .md-typeset table:not([class]) th { - background: linear-gradient(135deg, rgba(13, 148, 136, 0.15), rgba(13, 148, 136, 0.08)); -} - -.md-typeset table:not([class]) tr:hover { - background: rgba(13, 148, 136, 0.03); -} - -[data-md-color-scheme="slate"] .md-typeset table:not([class]) tr:hover { - background: rgba(13, 148, 136, 0.08); -} - -/* ── Admonitions ─────────────────────────────────────────────────────────── */ -.md-typeset .admonition { - border-radius: 12px; - border-left-width: 4px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); +.md-typeset table:not([class]) td { + vertical-align: top; } +/* ── Admonitions ─────────────────────────────────────────────────────── */ +.md-typeset .admonition, .md-typeset details.admonition { - border-radius: 12px; + border-radius: var(--tryx-radius); + border-left-width: 3px; } .md-typeset .admonition-title { - border-radius: 12px 12px 0 0; + border-radius: var(--tryx-radius) var(--tryx-radius) 0 0; font-weight: 600; + font-size: 0.88rem; } -/* ── Code Blocks ─────────────────────────────────────────────────────────── */ +/* ── Code Blocks ─────────────────────────────────────────────────────── */ .md-typeset pre { - border-radius: 12px; - border: 1px solid var(--tryx-code-border); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); -} - -.md-typeset pre > code { - border-radius: 12px; + border-radius: var(--tryx-radius); } .md-typeset code:not(pre code) { - border-radius: 6px; - padding: 0.15rem 0.4rem; - font-size: 0.85em; - border: 1px solid var(--tryx-code-border); - background: var(--tryx-code-bg); + border-radius: 4px; + padding: 0.12rem 0.35rem; + font-size: 0.84em; } -/* Code block line highlighting */ .md-typeset .highlight .hll { - background: rgba(13, 148, 136, 0.12); - border-left: 3px solid var(--md-accent-fg-color); + background: rgba(13, 148, 136, 0.06); + border-left: 2px solid var(--md-accent-fg-color); margin-left: -0.4rem; padding-left: 0.4rem; } -/* ── Navigation Enhancements ─────────────────────────────────────────────── */ -.md-header { - backdrop-filter: blur(12px); - -webkit-backdrop-filter: blur(12px); -} - +/* ── Navigation ──────────────────────────────────────────────────────── */ .md-nav__link { - transition: color 0.15s ease, padding-left 0.15s ease; -} - -.md-nav__link:hover { - padding-left: 0.2rem; + transition: color 0.15s ease; } -/* Active nav item indicator */ .md-nav__item--active > .md-nav__link { font-weight: 600; - color: var(--md-accent-fg-color); } -/* ── Search Enhancement ──────────────────────────────────────────────────── */ +/* ── Search ──────────────────────────────────────────────────────────── */ .md-search-result__link { - border-radius: 10px; + border-radius: var(--tryx-radius); transition: background 0.15s ease; } .md-search-result__link:hover { - background: rgba(13, 148, 136, 0.06); + background: rgba(13, 148, 136, 0.04); } .md-search-result__teaser { font-size: 0.82rem; } -/* ── Focus States ────────────────────────────────────────────────────────── */ +/* ── Focus States ────────────────────────────────────────────────────── */ a:focus-visible, button:focus-visible, input:focus-visible, @@ -306,69 +259,40 @@ summary:focus-visible { border-radius: 4px; } -/* ── Animations ──────────────────────────────────────────────────────────── */ -.tryx-fade-up { - animation: tryxFadeUp 520ms ease-out both; -} - -@keyframes tryxFadeUp { - from { - opacity: 0; - transform: translateY(12px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -.tryx-fade-in { - animation: tryxFadeIn 600ms ease-out both; -} - -@keyframes tryxFadeIn { - from { opacity: 0; } - to { opacity: 1; } -} - -/* Staggered card animations */ -.tryx-grid .tryx-card:nth-child(1) { animation-delay: 0ms; } -.tryx-grid .tryx-card:nth-child(2) { animation-delay: 80ms; } -.tryx-grid .tryx-card:nth-child(3) { animation-delay: 160ms; } -.tryx-grid .tryx-card:nth-child(4) { animation-delay: 240ms; } -.tryx-grid .tryx-card { animation: tryxFadeUp 520ms ease-out both; } - -/* ── Progress Bar (instant navigation) ───────────────────────────────────── */ +/* ── Progress Bar ────────────────────────────────────────────────────── */ .md-vestigial__progress { - height: 3px; - background: linear-gradient(90deg, var(--md-accent-fg-color), rgba(13, 148, 136, 0.6)); + height: 2px; } -/* ── Footer Navigation ───────────────────────────────────────────────────── */ +/* ── Footer ──────────────────────────────────────────────────────────── */ .md-footer { - border-top: 1px solid var(--tryx-muted-border); -} - -.md-footer__link { - transition: color 0.15s ease; + border-top: var(--tryx-border); } -/* ── Scrollbar Styling ───────────────────────────────────────────────────── */ +/* ── Scrollbar ───────────────────────────────────────────────────────── */ .md-sidebar--primary .md-nav__scrollwrap { scrollbar-width: thin; - scrollbar-color: var(--tryx-muted-border) transparent; } -.md-sidebar--primary .md-nav__scrollwrap::-webkit-scrollbar { - width: 4px; +/* ── Content Tabs ────────────────────────────────────────────────────── */ +.md-typeset .tabbed-set > .tabbed-labels { + border-bottom: var(--tryx-border); } -.md-sidebar--primary .md-nav__scrollwrap::-webkit-scrollbar-thumb { - background: var(--tryx-muted-border); - border-radius: 4px; +.md-typeset .tabbed-set > .tabbed-labels > label { + font-weight: 500; +} + +/* ── Inline Code ─────────────────────────────────────────────────────── */ +.md-typeset code { + border-color: rgba(13, 148, 136, 0.15); } -/* ── Print Styles ────────────────────────────────────────────────────────── */ +[data-md-color-scheme="slate"] .md-typeset code { + border-color: rgba(13, 148, 136, 0.25); +} + +/* ── Print ───────────────────────────────────────────────────────────── */ @media print { .md-sidebar, .md-header, @@ -380,9 +304,4 @@ summary:focus-visible { margin: 0; max-width: 100%; } - - .md-typeset .admonition { - border: 1px solid #ccc; - box-shadow: none; - } } diff --git a/docs/core-concepts/architecture.md b/docs/core-concepts/architecture.md index d5b516c..8e262bc 100644 --- a/docs/core-concepts/architecture.md +++ b/docs/core-concepts/architecture.md @@ -1,83 +1,208 @@ # Architecture -Tryx intentionally splits protocol-heavy runtime responsibilities and Python-facing ergonomics. +Tryx splits performance-sensitive protocol work (Rust) from application +ergonomics (Python). This gives you WhatsApp protocol handling at native +speed while keeping your bot logic simple and typed. ## Layered Design -Tryx uses a two-layer model: - -1. Rust core layer -2. Python API layer +``` +┌──────────────────────────────────────────────────────┐ +│ Python Application │ +│ (handlers, business logic, bots) │ +├──────────────────────────────────────────────────────┤ +│ Python API Layer │ +│ TryxClient, namespace clients, @app.on() │ +│ (async methods, typed stubs) │ +├──────────────────────────────────────────────────────┤ +│ PyO3 Bridge │ +│ GIL management, type conversion, error marshal │ +├──────────────────────────────────────────────────────┤ +│ Rust Core │ +│ Protocol parsing, Signal crypto, media, transport │ +│ (Noise, protobuf, tokio) │ +└──────────────────────────────────────────────────────┘ +``` ### Rust Core Layer -The Rust side handles: +The Rust side handles everything performance-sensitive: -- protocol parsing -- transport/runtime state -- heavy event transformations -- media and protobuf conversions +| Module | Responsibility | Source | +|--------|---------------|--------| +| `src/clients/` | Client method implementations | `src/clients/tryx.rs`, `src/clients/groups.rs`, etc. | +| `src/events/` | Event dispatcher and event class definitions | `src/events/dispatcher.rs` | +| `src/types.rs` | Shared data classes (`JID`, `MessageInfo`, etc.) | `src/types.rs` | +| `src/backend/` | Storage backend bridge (SQLite, FFI, Python) | `src/backend/` | -Additional responsibilities: +Key Rust capabilities: -- connection lifecycle and stream state -- event normalization and serialization boundaries -- low-level protocol node handling +- **Protocol parsing** — WhatsApp binary protocol, protobuf messages, Noise handshake +- **Transport** — WebSocket connection, stream management, reconnection +- **Crypto** — Signal protocol (Double Ratchet, X3DH), end-to-end encryption +- **Media** — Upload/download, transcoding, thumbnail generation +- **Event normalization** — Raw protocol events → typed Python objects ### Python API Layer -The Python side provides: +The Python side provides ergonomics: -- ergonomic async API -- namespace-based clients (`contact`, `groups`, `privacy`, etc.) -- typed stubs for IDE and static analysis -- callback registration via decorators +- **Namespace clients** — `client.groups`, `client.privacy`, `client.newsletter`, etc. +- **Event handlers** — Decorator-based callback registration via `@app.on(EventClass)` +- **Typed stubs** — `.pyi` files for IDE intelligence and static analysis +- **Storage backends** — SQLite (built-in), FFI (Postgres, etc.), pure Python -Additional responsibilities: +### PyO3 Bridge -- namespace-driven domain APIs (`client.groups`, `client.privacy`, etc.) -- handler orchestration and business logic composition -- integration with third-party systems (DB, queues, APIs) +The bridge layer handles type conversion between Python and Rust: -## Why This Design Works +- **GIL management** — Uses `Python::attach()` (PyO3 0.28+) for lightweight GIL acquisition +- **Error marshaling** — Rust panics → Python `RuntimeError` / `panic::PanicException` +- **Async bridging** — `pyo3-async-runtimes` connects tokio to Python asyncio +- **Type conversion** — `JID`, `MessageProto`, `Node`, etc. converted via PyO3 extractors -- Performance-sensitive logic stays in Rust. -- Product logic stays simple in Python. -- Event payloads are structured classes, not ad-hoc dicts. +--- -## Runtime Boundary Principle +## Data Flow -!!! tip - Keep protocol assumptions in Rust-backed typed models and keep product/business policy in Python handlers. +### Sending a Message -## Data Flow +```mermaid +sequenceDiagram + participant User as Python Code + participant Client as TryxClient + participant Bridge as PyO3 Bridge + participant Rust as Rust Core + participant WA as WhatsApp + + User->>Client: await client.send_text(jid, "hello") + Client->>Bridge: Call Rust method + Bridge->>Rust: Build protobuf message + Rust->>Rust: Encrypt with Signal protocol + Rust->>WA: Send over WebSocket + WA-->>Rust: Server ACK + Rust-->>Bridge: SendResult + Bridge-->>User: SendResult +``` + +### Receiving an Event + +```mermaid +sequenceDiagram + participant WA as WhatsApp + participant Rust as Rust Core + participant Bridge as PyO3 Bridge + participant Dispatcher as Event Dispatcher + participant Handler as Python Handler + + WA->>Rust: Raw protocol event + Rust->>Rust: Parse & normalize + Rust->>Bridge: Typed event object + Bridge->>Dispatcher: Route to handlers + Dispatcher->>Handler: Call registered handler + Handler-->>Dispatcher: Process event +``` + +--- + +## Storage Architecture + +Tryx uses a pluggable storage backend for Signal protocol state: ```mermaid -flowchart LR - A[WhatsApp Stream] --> B[Rust Runtime] - B --> C[Event Conversion] - C --> D[PyO3 Classes] - D --> E[Python Handler] - E --> F[TryxClient API Calls] - F --> B +graph TD + A[TryxClient] --> B{Backend Type} + B -->|Default| C[SqliteStore] + B -->|FFI| D[FfiStore] + B -->|Custom| E[StoreBase] + D --> F[.so/.dylib] + F --> G[Postgres, Redis, etc.] + C --> H[whatsapp.db] ``` +### Backend Selection + +| Backend | Use Case | How It Works | +|---------|----------|--------------| +| `SqliteStore` | Default, zero-config | Built-in SQLite with WAL mode | +| `FfiStore` | High-performance | C ABI shared library loaded via `libloading` | +| `StoreBase` | Custom async | Pure Python, implement abstract methods | + +The FFI backend is unique: Python never loads the `.so` directly. Python +only resolves the path and stores connection config — Tryx's Rust runtime +does the actual FFI loading. + +--- + ## Module Map -- `src/lib.rs`: submodule registration and class exports -- `src/clients/*`: client methods exposed to Python -- `src/events/*`: event classes and dispatcher -- `src/types.rs`: shared data classes (`JID`, `MessageInfo`, etc.) -- `src/wacore/*`: low-level node and stanza models -- `python/tryx/*.py`: runtime re-export wrappers -- `python/tryx/*.pyi`: typed API contracts +| Path | Purpose | +|------|---------| +| `src/lib.rs` | Submodule registration and class exports | +| `src/clients/*.rs` | Client method implementations | +| `src/events/*` | Event classes and dispatcher | +| `src/types.rs` | Shared data classes | +| `src/wacore/*` | Low-level protocol models | +| `python/tryx/*.py` | Runtime re-export wrappers | +| `python/tryx/*.pyi` | Typed API contracts | + +--- + +## Design Principles + +### Protocol in Rust, Logic in Python + +Keep protocol assumptions in Rust-backed typed models. Keep business policy +in Python handlers. This separation means: + +- Protocol changes don't break your Python code +- Business logic changes don't require recompilation +- Performance-sensitive paths are always native + +### Typed Contracts + +Every Python-facing API has a `.pyi` stub file. This gives you: + +- Editor autocomplete and type hints +- Static analysis with mypy/pyright +- Clear API documentation +- Runtime compatibility checking + +### Event-Driven Architecture + +All WhatsApp interactions flow through typed events: + +```python +from tryx.events import EvMessage + +@app.on(EvMessage) +async def handle_message(client, event: EvMessage): + # event.sender, event.text, event.media, etc. + pass +``` + +Events are structured classes, not ad-hoc dicts. This means: + +- Guaranteed fields with correct types +- IDE support for event properties +- Clear documentation of what data is available + +### Pluggable Storage + +Storage is decoupled from the protocol engine: + +- SQLite for development and single-instance deployments +- FFI shared libraries for high-throughput production +- Pure Python for exotic backends or rapid prototyping -## Practical Implication +All three tiers implement the same underlying Rust trait, so switching +backends requires only a change in the `Tryx()` constructor. -You can safely treat Python classes as stable contracts while trusting Rust internals for throughput and protocol-heavy work. +--- -## Related Docs +## Related -- [Event Model](event-model.md) -- [Type System](type-system.md) -- [Client API Gateway](../api/client.md) +- [Event Model](event-model.md) — detailed event type reference +- [Type System](type-system.md) — shared data classes +- [Storage Backends](storage-backends.md) — backend comparison +- [Client API Gateway](../api/client.md) — namespace client reference diff --git a/docs/core-concepts/event-model.md b/docs/core-concepts/event-model.md index ed7bc08..9b2ea53 100644 --- a/docs/core-concepts/event-model.md +++ b/docs/core-concepts/event-model.md @@ -1,67 +1,265 @@ # Event Model -Tryx emits typed event classes from `tryx.events`. Every event has a known payload shape. +Tryx uses an event-driven architecture. All WhatsApp interactions — messages, +presence changes, group updates, contact syncs — flow through typed event +classes. You register handlers for specific event types, and Tryx dispatches +them as they arrive. -## Dispatch Contract +## How Events Work -Handlers are registered by event class and receive `(client, event)`. +``` +WhatsApp Stream → Rust Parser → Event Dispatcher → Your Handlers +``` -!!! note - Event flow is asynchronous and stateful. Design handlers for retries and replay-like conditions. +1. **Raw protocol data** arrives over WebSocket +2. **Rust parser** normalizes it into typed event objects +3. **Event dispatcher** routes events to registered handlers +4. **Your handlers** process the event and respond ## Handler Registration +Handlers are registered using the `@app.on()` decorator: + ```python +from tryx.client import Tryx +from tryx.events import EvMessage, EvConnected, EvDisconnected + +app = Tryx(store) + +@app.on(EvConnected) +async def on_connected(client): + print("Connected to WhatsApp!") + @app.on(EvMessage) -async def on_message(client: TryxClient, event: EvMessage) -> None: ... +async def on_message(client, event): + print(f"Message from {event.sender}: {event.text}") + +@app.on(EvDisconnected) +async def on_disconnected(client): + print("Disconnected, will reconnect...") +``` + +### Handler Signature + +Every handler receives two arguments: + +```python +async def handler(client: TryxClient, event: EventType) -> None: + ... ``` -## Event Categories +- `client` — The `TryxClient` instance, ready to send messages and query state +- `event` — The typed event object with all relevant data + +### Multiple Handlers + +You can register multiple handlers for the same event type. Both will be +called for each event: + +```python +@app.on(EvMessage) +async def log_message(client, event): + logger.info(f"Received: {event.message_id}") + +@app.on(EvMessage) +async def process_message(client, event): + if event.text: + await handle_text(client, event) +``` + +--- + +## Event Taxonomy + +### Lifecycle Events + +Track the client connection lifecycle: + +| Event | When | Use Case | +|-------|------|----------| +| `EvConnected` | WebSocket connected | Start sending messages | +| `EvDisconnected` | WebSocket lost | Pause non-critical operations | +| `EvLoggedOut` | Session invalidated | Re-authenticate | +| `EvStreamReplaced` | Another login replaced you | Check for duplicate sessions | +| `EvClientOutDated` | Client needs update | Prompt for upgrade | +| `EvReady` | Fully initialized | Safe to query state | + +### Pairing Events + +Track the phone pairing process: + +| Event | When | Use Case | +|-------|------|----------| +| `EvPairingQrCode` | QR code generated | Display QR to user | +| `EvPairingCode` | Pairing code generated | Display code to user | +| `EvPairSuccess` | Pairing completed | Proceed with bot logic | +| `EvPairError` | Pairing failed | Show error, retry | + +### Messaging Events + +Track message flow: + +| Event | When | Use Case | +|-------|------|----------| +| `EvMessage` | Message received | Process incoming messages | +| `EvReceipt` | Delivery/read receipt | Track message status | +| `EvUndecryptableMessage` | Decryption failed | Log and request re-send | +| `EvNotification` | Server notification | Handle system messages | + +### Chat Action Sync Events + +Track chat state changes (synced from other devices): + +| Event | When | Use Case | +|-------|------|----------| +| `EvPinUpdate` | Chat pinned/unpinned | Update local state | +| `EvMuteUpdate` | Chat muted/unmuted | Adjust notifications | +| `EvArchiveUpdate` | Chat archived/unarchived | Update UI | +| `EvMarkChatAsReadUpdate` | Chat read status changed | Update unread count | +| `EvDeleteChatUpdate` | Chat deleted | Clean up local data | +| `EvDeleteMessageForMeUpdate` | Message deleted locally | Remove from cache | +| `EvStarUpdate` | Message starred/unstarred | Update star state | +| `EvChatArchive` | Chat archived | Update UI | + +### Presence and Profile Events -- Lifecycle: `EvConnected`, `EvDisconnected`, `EvLoggedOut` -- Pairing: `EvPairingQrCode`, `EvPairingCode`, `EvPairSuccess`, `EvPairError` -- Messaging: `EvMessage`, `EvReceipt`, `EvUndecryptableMessage` -- Chat actions sync: archive, mute, mark-read, delete-chat, delete-for-me -- Presence and profile: chat presence, availability, picture, push-name, about -- Contact and device sync: contact update, device list update -- Group and newsletter updates +Track user presence and profile changes: -For full taxonomy, see [Events API](../api/events.md). +| Event | When | Use Case | +|-------|------|----------| +| `EvPresence` | User typing/recording | Show typing indicator | +| `EvChatPresence` | Chat presence changed | Update UI | +| `EvAvailability` | Online/offline status | Track availability | +| `EvPicture` | Profile picture changed | Update avatar cache | +| `EvPushName` | Display name changed | Update contact info | +| `EvAbout` | Status text changed | Update status display | + +### Contact and Device Sync Events + +Track contact and device state: + +| Event | When | Use Case | +|-------|------|----------| +| `EvContactUpdate` | Contact info changed | Update contact list | +| `EvContactNumberChanged` | Phone number changed | Update contact mapping | +| `EvDeviceListUpdate` | Device list changed | Re-key encryption | +| `EvGroupUpdate` | Group metadata changed | Update group info | +| `EvGroupInfoUpdate` | Group info refreshed | Sync group state | +| `EvJoinedGroup` | Bot joined a group | Initialize group state | +| `EvNewsletterUpdate` | Newsletter changed | Update channel info | +| `EvNewsletterLiveUpdate` | Live update received | Process live content | + +### Business Events + +| Event | When | Use Case | +|-------|------|----------| +| `EvBusinessStatusUpdate` | Business profile changed | Update business info | + +--- ## Event Payload Pattern Many events expose a lazy `data` property: -- `event.data` returns a rich typed object -- conversion from Rust internals happens on demand -- repeated access often reuses cached object instances +```python +@app.on(EvMessage) +async def handle(client, event): + # Access raw data (lazy-loaded from Rust) + data = event.data + + # Repeated access reuses cached object + same_data = event.data # No re-parsing +``` -## Important Reliability Notes +The `data` property: -- Callback execution order is event-driven; do not assume strict timing between different event classes. -- Keep handlers short and non-blocking. -- For expensive work, queue to background tasks. +- Returns a rich typed object +- Converts from Rust internals on demand +- Caches the result for subsequent access -!!! warning "Ordering assumptions" - Do not assume strict global ordering between all event types. Build idempotent handlers using message identifiers. +--- -## Best Practices +## Reliability Considerations + +### Handler Execution + +- Handlers are **async** and run on the tokio runtime +- Execution order is **event-driven**, not sequential +- Do not assume strict timing between different event types + +### Error Handling + +```python +@app.on(EvMessage) +async def safe_handler(client, event): + try: + await process_message(client, event) + except Exception as e: + logger.error(f"Handler failed: {e}") + # Don't crash — Tryx will continue dispatching +``` -1. Validate optional fields before use. -2. Prefer exact event classes over broad dynamic checks. -3. Log enough metadata (`jid`, `message_id`, timestamps) for debugging. -4. Treat undecryptable and sync events as normal runtime states, not always errors. +!!! warning "Handler crashes" + If a handler raises an exception, Tryx catches it and continues + dispatching other events. However, the error is logged and may affect + your bot's reliability. + +### Idempotency + +Build idempotent handlers using message identifiers: + +```python +processed = set() + +@app.on(EvMessage) +async def idempotent_handler(client, event): + message_id = event.data.message_info.id + if message_id in processed: + return + processed.add(message_id) + await process_message(client, event) +``` + +### Ordering + +Do not assume strict global ordering between all event types. For example: + +- An `EvMessage` may arrive before its `EvReceipt` +- Group updates may arrive out of order +- Presence events may be stale + +Design handlers to handle these cases gracefully. + +--- ## Event-to-Action Mapping -| Event Example | Typical Namespace Follow-up | -| --- | --- | -| `EvMessage` | root send methods, [Chat Actions](../api/chat-actions.md) | -| `EvGroupUpdate` | [Groups](../api/groups.md), [Community](../api/community.md) | -| `EvPresence` | [Presence](../api/presence.md), [Chatstate](../api/chatstate.md) | -| `EvNewsletterLiveUpdate` | [Newsletter](../api/newsletter.md), [Polls](../api/polls.md) | +| Event | Typical Follow-up | Namespace | +|-------|-------------------|-----------| +| `EvMessage` | Reply, forward, react | Root send methods | +| `EvGroupUpdate` | Update local group state | [Groups](../api/groups.md) | +| `EvPresence` | Show typing indicator | [Presence](../api/presence.md) | +| `EvNewsletterLiveUpdate` | Process live updates | [Newsletter](../api/newsletter.md) | +| `EvContactUpdate` | Update contact list | [Contact](../api/contact.md) | +| `EvChatArchive` | Update UI state | [Chat Actions](../api/chat-actions.md) | +| `EvReceipt` | Track delivery status | Root send methods | +| `EvPicture` | Update avatar cache | [Contact](../api/contact.md) | + +--- + +## Best Practices + +1. **Keep handlers short** — Queue expensive work to background tasks +2. **Validate optional fields** — Check `event.text`, `event.media`, etc. before use +3. **Log metadata** — Include `jid`, `message_id`, timestamps for debugging +4. **Handle errors gracefully** — Don't let one bad event crash your bot +5. **Use typed events** — Prefer specific event classes over broad dynamic checks +6. **Treat undecryptable events as normal** — They happen during key rotation + +--- -## Related Docs +## Related -- [Client API Gateway](../api/client.md) -- [Reliability](../operations/reliability.md) +- [Client API Gateway](../api/client.md) — namespace client reference +- [Reliability](../operations/reliability.md) — production error handling +- [Events API](../api/events.md) — full event type reference diff --git a/docs/core-concepts/type-system.md b/docs/core-concepts/type-system.md index 650f040..5c8749b 100644 --- a/docs/core-concepts/type-system.md +++ b/docs/core-concepts/type-system.md @@ -1,73 +1,320 @@ # Type System -Tryx ships with `.pyi` stubs and `py.typed`, enabling full editor and type-checker support. +Tryx ships with complete `.pyi` stub files and a `py.typed` marker, +enabling full editor intelligence, static analysis, and API discoverability. !!! tip "Why this matters" - Typed contracts make event handling safer, API discovery faster, and refactors less risky. + Typed contracts make event handling safer, API discovery faster, and + refactors less risky. You get autocomplete for every method, parameter, + and return type. + +## How Typing Works + +Tryx uses a two-layer typing approach: + +1. **Runtime** — PyO3 generates Python classes from Rust structs +2. **Static** — `.pyi` stub files describe the exact API surface + +```python +from tryx.client import Tryx, TryxClient +from tryx.types import JID, SendResult + +# IDE shows: JID.whatsapp(phone: str) -> JID +jid = JID.whatsapp("5599800001") + +# IDE shows: async def send_text(to: JID, text: str, ...) -> SendResult +result = await client.send_text(jid, "Hello!") + +# IDE shows: result.message_id: str +print(result.message_id) +``` + +--- ## Core Types -- `JID`: canonical address object -- `MessageSource`: message origin and routing context -- `MessageInfo`: metadata for message identity and attributes -- `UploadResponse`: media upload output -- `SendResult`: send operation result -- `MediaReuploadResult`: media retry result -- `ProfilePicture`: profile picture metadata +### JID — WhatsApp Address + +The fundamental address type for all WhatsApp entities: + +```python +from tryx.types import JID + +# Personal account +jid = JID.whatsapp("5599800001") + +# Group +group = JID.whatsapp_group("120363000000000000@g.us") + +# Newsletter +newsletter = JID.whatsapp_newsletter("120363000000000000@newsletter") +``` + +### MessageInfo — Message Metadata + +Contains identity, routing, and attribute information: + +```python +from tryx.events import EvMessage + +@app.on(EvMessage) +async def handle(client, event): + info = event.data.message_info + + # Message identity + message_id = info.message_id + timestamp = info.timestamp + + # Routing + sender = info.source.sender # JID + chat = info.source.chat # JID + participant = info.source.participant # JID | None + + # Attributes + msg_type = info.message_type # "text", "image", etc. + is_from_me = info.is_from_me +``` + +### SendResult — Send Operation Output + +Returned by all send methods: + +```python +result = await client.send_text(jid, "Hello") + +result.message_id # str: unique message ID +result.timestamp # int: server timestamp +result.key # MessageKey: message key for tracking +``` + +### MediaReuploadResult — Media Retry Output + +Returned by `request_media_reupload`: + +```python +result = await client.request_media_reupload( + message_id="3EB0...", + chat_jid=jid, + media_key=b"...", +) + +result.url # str: re-uploaded media URL +result.direct_path # str: direct download path +``` + +### UploadResponse — Media Upload Output + +Returned by media upload methods: + +```python +upload = await client.upload_photo(photo_bytes, jid) + +upload.url # str: media URL +upload.direct_path # str: direct path +upload.media_key # bytes: encryption key +upload.file_length # int: file size +``` + +### ProfilePicture — Profile Image Metadata + +```python +picture = await client.contact.get_profile_picture(jid, preview=False) + +picture.url # str: image URL +picture.direct_path # str: direct download path +picture.file_length # int: file size +picture.mimetype # str: image MIME type +``` + +--- ## Event Types -Event classes define explicit payload contracts: +Every event class has a defined payload contract: -- no guessing with nested dict keys -- discoverable through IDE autocomplete -- easier static checks in large projects +```python +from tryx.events import ( + EvMessage, # Incoming message + EvConnected, # WebSocket connected + EvDisconnected, # WebSocket lost + EvLoggedOut, # Session invalidated + EvPresence, # User typing/recording + EvGroupUpdate, # Group metadata changed + EvReceipt, # Delivery/read receipt +) -## Enum-heavy Domains +@app.on(EvMessage) +async def handle(client, event: EvMessage): + # event.sender: JID + # event.text: str | None + # event.media: MediaInfo | None + # event.message_id: str + # event.timestamp: int + ... +``` -Key domains with enum-like constraints: +No guessing with nested dict keys — everything is discoverable through +IDE autocomplete. -- privacy and disallowed-list management -- status audience control -- chatstate and presence signaling -- group/community policy modes +--- ## Enum-Style Classes -Several Rust enums are exposed as Python classes with fixed attributes (for example status/privacy and event reason classes). +Several Rust enums are exposed as Python classes with fixed attributes: -## Suggested Typing Workflow +### Privacy -1. Keep handler function signatures explicit. -2. Annotate helper functions returning event-derived data. -3. Run static analysis in CI (mypy or pyright). +```python +from tryx.types import PrivacyCategory, PrivacyValue + +# Categories +PrivacyCategory.LastSeen +PrivacyCategory.ProfilePhoto +PrivacyCategory.Status +PrivacyCategory.ReadReceipts +PrivacyCategory.Groups + +# Values +PrivacyValue.Everyone +PrivacyValue.Contacts +PrivacyValue.Nobody +``` + +### Status + +```python +from tryx.types import StatusPrivacySetting + +StatusPrivacySetting.Contacts +StatusPrivacySetting.AllowList +StatusPrivacySetting.DenyList +``` + +### Chatstate + +```python +from tryx.types import ChatStateType + +ChatStateType.Composing # User is typing +ChatStateType.Recording # User is recording audio +ChatStateType.Paused # User stopped typing +``` + +### Presence + +```python +from tryx.types import PresenceStatus + +PresenceStatus.Available +PresenceStatus.Unavailable +``` + +### Group Policies + +```python +from tryx.types import MembershipApprovalMode, MemberAddMode, MemberLinkMode + +MembershipApprovalMode.On +MembershipApprovalMode.Off + +MemberAddMode.AdminOnly +MemberAddMode.AllMembers + +MemberLinkMode.Admin +MemberLinkMode.AllMembers +``` + +### Newsletter + +```python +from tryx.types import NewsletterVerification, NewsletterState, NewsletterRole + +NewsletterVerification.Verified +NewsletterVerification.Unverified + +NewsletterState.Active +NewsletterState.Suspended +NewsletterState.Geosuspended + +NewsletterRole.Owner +NewsletterRole.Admin +NewsletterRole.Subscriber +NewsletterRole.Guest +``` + +### Events + +```python +from tryx.types import EventResponse + +EventResponse.Going +EventResponse.NotGoing +EventResponse.Maybe +``` + +--- ## Type Boundary Pattern +Keep type boundaries clean between layers: + ```python from tryx.events import EvMessage from tryx.types import JID - +# Input boundary: accept typed events def extract_sender(event: EvMessage) -> JID: return event.data.message_info.source.sender + +# Output boundary: return typed results +async def forward_message(client, event: EvMessage, target: JID) -> SendResult: + text = event.data.text or "" + return await client.send_text(target, text) ``` -Then keep your service layer function signatures strictly typed as well. +--- -## Example +## Static Analysis Workflow -```python -from tryx.events import EvMessage -from tryx.types import JID +### With Mypy +```bash +uv add mypy +uv run mypy your_project/ +``` + +### With Pyright -def extract_chat(event: EvMessage) -> JID: - return event.data.message_info.source.chat +```bash +uv add pyright +uv run pyright your_project/ ``` -## Related Docs +### In CI + +```yaml +# .github/workflows/ci.yml +- name: Type check + run: | + uv run mypy your_project/ --strict + uv run pyright your_project/ +``` + +--- + +## Best Practices + +1. **Keep handler signatures explicit** — Always type-annotate `client` and `event` +2. **Annotate helper functions** — Especially those returning event-derived data +3. **Use specific event types** — `EvMessage` instead of generic `Event` +4. **Run static analysis in CI** — Catch type errors before deployment +5. **Leverage IDE autocomplete** — Let the stubs guide your API usage + +--- + +## Related -- [Types API](../api/types.md) -- [Privacy Namespace](../api/privacy.md) -- [Status Namespace](../api/status.md) +- [Types API](../api/types.md) — full type reference +- [Events API](../api/events.md) — event type reference +- [Privacy Namespace](../api/privacy.md) — privacy type usage +- [Status Namespace](../api/status.md) — status type usage diff --git a/docs/faq/qna.md b/docs/faq/qna.md index fb330dc..cebc82e 100644 --- a/docs/faq/qna.md +++ b/docs/faq/qna.md @@ -1,105 +1,206 @@ -# QnA +# FAQ -Use this page for quick decisions, then jump to linked technical pages for implementation details. +Quick answers to common questions. Jump to the linked pages for implementation +details. + +--- ## General ### What is Tryx? -Tryx is a Rust-powered Python SDK for event-driven WhatsApp automation. + +Tryx is a Rust-powered Python SDK for event-driven WhatsApp automation. It +pairs a Rust runtime core with a typed Python API, giving you WhatsApp +protocol handling at native speed while keeping application logic in clean +async Python. ### Why not pure Python? -Rust handles protocol-heavy runtime work for better throughput and lower overhead, while Python keeps app logic easy to write. + +Rust handles protocol-heavy runtime work for better throughput and lower +overhead: + +- **Signal protocol** — Double Ratchet, X3DH key exchange +- **Noise handshake** — WebSocket transport encryption +- **Protobuf** — Message serialization/deserialization +- **Media processing** — Upload/download, transcoding + +Python keeps app logic easy to write and maintain. ### Is Tryx synchronous or asynchronous? -Both: async-first (`await app.run()`), plus blocking convenience (`app.run_blocking()`). + +Both: + +- **Async-first**: `await app.run()` with full asyncio support +- **Blocking**: `app.run_blocking()` for quick scripts + +```python +# Async +asyncio.run(app.run()) + +# Blocking +app.run_blocking() +``` See [Quick Start](../getting-started/quickstart.md). +### What Python versions are supported? + +Python 3.8 and newer. We recommend 3.10+ for the best typing experience. + +### Does Tryx support Linux/macOS/Windows? + +Yes, with proper Rust toolchain and platform build dependencies. See the +[Installation](../getting-started/installation.md) page for platform-specific +setup. + +--- + ## Pairing and Session ### Do I need to pair every time? -No. If backend storage is preserved, session data is reused. -### What does EvStreamReplaced mean? -Another session replaced your active stream. Re-check device/session ownership. +No. If backend storage is preserved (`whatsapp.db` or equivalent), session +data is reused across restarts. + +### What does `EvStreamReplaced` mean? + +Another session replaced your active stream. This typically happens when: + +- Another device logged into the same account +- A deployment is using the same backend path -### What should I do on EvLoggedOut? -Treat it as session invalidation. Re-pair and refresh persisted state. +Check device/session ownership and ensure single-writer backend access. -See [Authentication Flow](../getting-started/authentication.md). +### What should I do on `EvLoggedOut`? + +Treat it as session invalidation. Re-pair and refresh persisted state. See +[Authentication Flow](../getting-started/authentication.md). + +### Can I use the same backend path across multiple instances? + +**No.** Avoid multiple runtime instances writing to the same backend path. +This can cause stream replacement, data corruption, or forced re-pairing. + +--- ## Event Handling ### Can I register multiple handlers for one event? -Yes. Dispatcher stores callbacks per event class. -### Why does an event have `data` property instead of direct fields? -Many event payloads are lazily materialized for efficiency. +Yes. The dispatcher stores callbacks per event class and calls all of them +for each event. + +### Why does an event have a `data` property instead of direct fields? + +Many event payloads are lazily materialized for efficiency. The `data` +property returns a rich typed object that's cached for subsequent access. ### Should I process heavy logic directly in handlers? -Prefer short handlers that delegate expensive work to background tasks. -See [Reliability](../operations/reliability.md) and [Performance](../operations/performance.md). +**No.** Keep handlers short and non-blocking. Delegate expensive work to +background tasks. See [Reliability](../operations/reliability.md) and +[Performance](../operations/performance.md). + +### How do I handle undecryptable messages? + +Treat them as normal — they happen during key rotation. Log them and move +on. Tryx continues dispatching other events. + +--- ## Messaging and Media ### Which media types can Tryx send? -Text, photo, document, audio, video, GIF, sticker, and protobuf-raw messages. -### When should I call request_media_reupload? +| Type | Method | Notes | +|------|--------|-------| +| Text | `send_text()` | Basic text messages | +| Photo | `send_photo()` | Images with optional caption | +| Document | `send_document()` | Files with optional name | +| Audio | `send_audio()` | Voice notes (ptt=True) or clips | +| Video | `send_video()` | Video clips with optional caption | +| GIF | `send_gif()` | Animated GIFs | +| Sticker | `send_sticker()` | Static WEBP or animated | +| Raw | `send_message()` | Custom protobuf messages | + +### When should I call `request_media_reupload`? + When media direct path is stale or unavailable and normal download fails. +This is common for older messages where the media CDN link has expired. ### Can I quote a message in replies? -Yes, pass the original `EvMessage` to send helpers that support `quoted`. + +Yes, pass the original `EvMessage` to send helpers that support `quoted`: + +```python +await client.send_text(chat, "reply text", quoted=event) +``` See [Media Workflows](../tutorials/media-workflows.md). +--- + ## Groups and Privacy ### Can I automate group moderation? -Yes, use `client.groups.*` and handle `EvGroupUpdate` for state feedback. + +Yes, use `client.groups.*` for participant management and handle +`EvGroupUpdate` for state feedback. See +[Group Automation](../tutorials/group-automation.md). ### Can I modify privacy settings? -Yes, use `client.privacy.fetch_settings()` and `set_setting(...)`. -See [Privacy Namespace](../api/privacy.md) and [Profile and Privacy Tutorial](../tutorials/profile-privacy.md). +Yes, use `client.privacy.fetch_settings()` and `set_setting(...)`. See +[Privacy Namespace](../api/privacy.md). + +--- ## Deployment and Operations ### What is the minimum production checklist? -1. durable backend/session storage -2. bounded retry strategy -3. idempotent message processing -4. basic security controls (admin-only commands, secret management) +1. Durable backend/session storage +2. Bounded retry strategy +3. Idempotent message processing +4. Basic security controls (admin-only commands, secret management) +5. Structured logging See [Deployment Guide](../operations/deployment.md). -### How do I troubleshoot reconnect loops quickly? -Use the connection decision tree in [Troubleshooting](../operations/troubleshooting.md) and verify single-writer backend ownership. +### How do I troubleshoot reconnect loops? + +Use the connection decision tree in +[Troubleshooting](../operations/troubleshooting.md) and verify single-writer +backend ownership. + +--- ## Typing and Tooling ### Are stubs complete? -Tryx ships `.pyi` stubs for public modules including events and low-level wacore types. + +Tryx ships `.pyi` stubs for all public modules including events, types, +client namespaces, and low-level wacore types. ### Can I use mypy or pyright? + Yes, the package includes `py.typed` for static analysis integration. -## Reliability +```bash +uv run mypy your_project/ +uv run pyright your_project/ +``` -### How should I handle temporary bans? -Listen to `EvTemporaryBan`, pause high-frequency operations, and avoid aggressive retries. +--- -### How can I make my client idempotent? -Store processed message IDs and guard side effects before calling external systems. +## Reliability -See [Reliability](../operations/reliability.md). +### How should I handle temporary bans? -## Compatibility +Listen to `EvTemporaryBan`, pause high-frequency operations, and avoid +aggressive retries. Resume gradually after the ban period. -### Which Python versions are supported? -Python 3.8 and newer. +### How can I make my client idempotent? -### Does Tryx support Linux/macOS/Windows? -Yes, with proper Rust toolchain and platform build dependencies. +Store processed message IDs and guard side effects before calling external +systems. See [Reliability](../operations/reliability.md). diff --git a/docs/getting-started/authentication.md b/docs/getting-started/authentication.md index 17cae58..f9d7555 100644 --- a/docs/getting-started/authentication.md +++ b/docs/getting-started/authentication.md @@ -1,33 +1,98 @@ # Authentication Flow -Tryx follows the WhatsApp multi-device pairing flow. The first run links a session, and later runs reuse stored state. +Tryx follows the WhatsApp multi-device pairing flow. The first run links +a session, and later runs reuse stored state. -!!! note - Authentication stability is mostly a storage and ownership problem. Treat backend/session files as critical runtime state. +!!! note "Key principle" + Authentication stability is mostly a storage and ownership problem. + Treat backend/session files as critical runtime state. + +--- ## Pairing Modes -- QR pairing event: `EvPairingQrCode` -- Numeric pairing event: `EvPairingCode` -- Success event: `EvPairSuccess` -- Failure event: `EvPairError` +| Mode | Event | How to Use | +|------|-------|------------| +| **QR Code** | `EvPairingQrCode` | Scan with your phone camera | +| **Numeric Code** | `EvPairingCode` | Enter 8-digit code on your phone | + +--- + +## First-Run Sequence + +```mermaid +sequenceDiagram + participant Bot as Tryx Bot + participant WA as WhatsApp + participant Phone as Your Phone + + Bot->>WA: Connect to WebSocket + WA-->>Bot: Pairing challenge + Bot-->>Bot: Emit EvPairingQrCode or EvPairingCode + Note over Phone: User scans QR or enters code + Phone->>WA: Confirm pairing + WA-->>Bot: Session established + Bot-->>Bot: Emit EvPairSuccess + Bot-->>Bot: Persist session in backend +``` + +1. Start client runtime +2. Wait for `EvPairingQrCode` or `EvPairingCode` +3. Complete pairing from your WhatsApp mobile app +4. Receive `EvPairSuccess` +5. Session credentials are persisted in your backend + +--- + +## Event Reference -## Typical First-Run Sequence +| Event | Meaning | Action | +|-------|---------|--------| +| `EvPairingQrCode` | QR challenge issued | Display QR to user | +| `EvPairingCode` | Code-based pairing challenge | Display code to user | +| `EvPairSuccess` | Session linked and persisted | Continue normal operations | +| `EvPairError` | Pairing rejected/failed | Inspect logs and retry | + +--- + +## Code Example: Pairing Handler + +```python +from tryx.client import Tryx +from tryx.backend import SqliteStore +from tryx.events import ( + EvPairingQrCode, + EvPairingCode, + EvPairSuccess, + EvPairError, +) -1. Start client runtime. -2. Wait for `EvPairingQrCode` or `EvPairingCode`. -3. Complete pairing from your WhatsApp mobile app. -4. Receive `EvPairSuccess`. -5. Session credentials are persisted in your backend. +backend = SqliteStore("whatsapp.db") +app = Tryx(backend) -## Event-level Interpretation -| Event | Meaning | Operator action | -| --- | --- | --- | -| `EvPairingQrCode` | QR challenge issued | scan with mobile app | -| `EvPairingCode` | code-based pairing challenge | enter code in paired device flow | -| `EvPairSuccess` | session linked and persisted | continue normal operations | -| `EvPairError` | pairing rejected/failed | inspect logs and retry pairing | +@app.on(EvPairingQrCode) +async def on_qr(client, event): + print(f"Scan this QR code: {event.qr_data}") + # In a real bot, you might send this to a web interface + + +@app.on(EvPairingCode) +async def on_code(client, event): + print(f"Enter this code: {event.pairing_code}") + + +@app.on(EvPairSuccess) +async def on_success(client, event): + print("Successfully paired!") + + +@app.on(EvPairError) +async def on_error(client, event): + print(f"Pairing failed: {event.error}") +``` + +--- ## Persistence @@ -42,27 +107,67 @@ backend = SqliteStore("/srv/tryx/session.db") If the same backend path is reused, you usually do not need to pair again. !!! warning "Single writer rule" - Avoid multiple runtime instances writing to the same backend path unless you explicitly control ownership. + Avoid multiple runtime instances writing to the same backend path + unless you explicitly control ownership. -## Operational Guidance - -- Keep one active session owner for a backend path. -- Avoid deleting backend files unless resetting account link is intentional. -- Back up backend data before infrastructure migration. +--- ## Recovery Signals -- `EvLoggedOut`: account session is no longer valid. -- `EvStreamReplaced`: another login/session replaced your current stream. -- `EvTemporaryBan`: temporary restrictions detected; pause high-volume operations. +| Event | Meaning | Action | +|-------|---------|--------| +| `EvLoggedOut` | Session invalidated | Re-pair and rotate session artifacts | +| `EvStreamReplaced` | Another login replaced your stream | Check for duplicate sessions | +| `EvTemporaryBan` | Temporary restrictions detected | Pause high-volume operations | + +--- ## Recovery Playbook -1. if `EvLoggedOut`: re-pair and rotate session artifacts. -2. if `EvStreamReplaced`: check if another deployment is using the same account/backend. -3. if temporary-ban signal: stop automation burst traffic and re-enable gradually. +### `EvLoggedOut` + +```python +@app.on(EvLoggedOut) +async def on_logged_out(client): + logger.warning("Session invalidated, re-pairing required") + # Stop bot operations + # Notify operator + # Trigger re-pairing flow +``` + +### `EvStreamReplaced` + +```python +@app.on(EvStreamReplaced) +async def on_replaced(client): + logger.warning("Stream replaced by another session") + # Check if another deployment is using the same account + # Ensure single-writer backend ownership +``` + +### `EvTemporaryBan` + +```python +@app.on(EvTemporaryBan) +async def on_ban(client, event): + logger.warning(f"Temporary ban: {event.reason}") + # Stop automation burst traffic + # Re-enable gradually after ban period +``` + +--- + +## Operational Guidance + +- Keep one active session owner for a backend path +- Avoid deleting backend files unless resetting account link is intentional +- Back up backend data before infrastructure migration +- Monitor for `EvStreamReplaced` to detect duplicate sessions + +--- -## Related Docs +## Related -- [Deployment Guide](../operations/deployment.md) -- [Troubleshooting](../operations/troubleshooting.md) +- [Deployment Guide](../operations/deployment.md) — production setup +- [Troubleshooting](../operations/troubleshooting.md) — connection issues +- [Reliability](../operations/reliability.md) — error handling patterns diff --git a/docs/getting-started/contributing.md b/docs/getting-started/contributing.md index 192b458..e92d8d8 100644 --- a/docs/getting-started/contributing.md +++ b/docs/getting-started/contributing.md @@ -1,80 +1,148 @@ -# Contributing Guide +# Contributing -This page describes how to contribute to Tryx using the project standards for tooling, commits, and pull requests. +This guide explains how to contribute to Tryx development. -## Local Setup +--- + +## Development Setup ```bash -uv sync --group dev --group docs +# Clone +git clone https://github.com/krypton-byte/tryx.git +cd tryx + +# Install dependencies +uv sync --group dev + +# Build Rust extension uv run maturin develop -uv run pre-commit install --hook-type pre-commit --hook-type commit-msg + +# Verify +uv run python -c "from tryx.client import Tryx; print('OK')" +``` + +--- + +## Code Structure + +``` +tryx/ +├── src/ # Rust source +│ ├── lib.rs # Module entry point +│ ├── clients/ # Client method implementations +│ ├── events/ # Event dispatcher and types +│ ├── types.rs # Shared data classes +│ └── backend/ # Storage backend bridge +├── python/tryx/ # Python package +│ ├── *.pyi # Type stubs (edit these for API changes) +│ └── waproto/ # Protobuf definitions +├── tests/ # Test suite +└── docs/ # Documentation +``` + +--- + +## Development Workflow + +### 1. Create a Branch + +```bash +git checkout -b feature/my-feature ``` -## Required Checks +### 2. Make Changes + +- **Rust changes**: Edit files in `src/` +- **Python API changes**: Edit `.pyi` stubs in `python/tryx/` +- **Documentation**: Edit files in `docs/` + +### 3. Build and Test ```bash -uv run --no-project --with ruff==0.11.4 ruff check . -uv run --no-project --with ruff==0.11.4 ruff format --check . -uv run python scripts/check_stub_parity.py +# Rebuild Rust extension +uv run maturin develop + +# Run tests +uv run pytest + +# Type check +uv run mypy your_changes/ + +# Lint +uv run ruff check . ``` -## Commit Message Standard +### 4. Commit -Tryx uses Conventional Commits. +Use [Conventional Commits](https://www.conventionalcommits.org/): -Pattern: +```bash +# Feature +git commit -m "feat: add new group action" + +# Bug fix +git commit -m "fix: handle edge case in media download" -```text -type(scope): summary -type(scope)!: summary +# Documentation +git commit -m "docs: improve quickstart guide" ``` -Scope is optional. - -Allowed `type`: -- `feat` -- `fix` -- `perf` -- `refactor` -- `docs` -- `test` -- `build` -- `ci` -- `chore` -- `style` - -Release impact: -- `feat` -> minor bump -- `fix` / `perf` -> patch bump -- `!` or `BREAKING CHANGE:` -> major bump - -Examples: -- `feat(groups): add participant count helper` -- `fix(profile): validate image bytes before upload` -- `feat(status)!: change default privacy behavior` - -## Pull Requests - -1. Use the PR template. -2. Keep title in Conventional Commit format. -3. Link relevant issue(s). -4. Add tests/docs updates when behavior changes. -5. Ensure CI is green before requesting review. - -## Issues - -Use issue templates for: -- Bug reports -- Feature requests - -High-quality issues include: -- clear reproduction steps -- expected and actual results -- logs or traceback snippets -- OS / Python / Tryx version details - -## Additional Recommendations - -- Prefer squash merge for consistent release history. -- Keep PR size under review-friendly scope. -- Update docs and stubs together with API changes. +### 5. Push and Create PR + +```bash +git push origin feature/my-feature +``` + +--- + +## Code Style + +### Rust + +- Follow standard `rustfmt` formatting +- Use `clippy` for linting +- Keep functions focused and well-documented + +### Python + +- Follow `ruff` formatting (line length 88) +- Use Google-style docstrings in `.pyi` files +- Keep type stubs in sync with Rust implementations + +### Documentation + +- Use Markdown with Material for MkDocs / Zensical conventions +- Include code examples for all API methods +- Keep explanations concise and actionable + +--- + +## Testing + +```bash +# Run all tests +uv run pytest + +# Run specific test file +uv run pytest tests/test_types.py + +# Run with verbose output +uv run pytest -v +``` + +--- + +## Pull Request Guidelines + +1. **One feature per PR** — keep changes focused +2. **Include tests** — for new functionality +3. **Update documentation** — if API surface changes +4. **Run CI checks** — before requesting review +5. **Write clear commit messages** — describe what and why + +--- + +## Getting Help + +- **Issues**: [GitHub Issues](https://github.com/krypton-byte/tryx/issues) +- **Discussions**: [GitHub Discussions](https://github.com/krypton-byte/tryx/discussions) diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md index 5493847..76e3c9c 100644 --- a/docs/getting-started/installation.md +++ b/docs/getting-started/installation.md @@ -1,81 +1,172 @@ # Installation -This page sets up a local development environment for the Tryx Python bindings backed by Rust. +This guide sets up a working development environment for building with Tryx. -!!! note "Recommended shell flow" - Use `uv` to manage the project environment and dependencies consistently. +!!! tip "One command setup" + ```bash + uv sync --group dev && uv run maturin develop + ``` ## Prerequisites -- Python 3.8+ -- Rust toolchain (stable) -- `uv` +| Tool | Version | Purpose | +|------|---------|---------| +| **Python** | 3.8+ | Runtime | +| **Rust** | stable | Native extension compilation | +| **uv** | latest | Package management | +| **OpenSSL** | 1.1+ | TLS for WebSocket connections | -## Environment Bootstrap +### Install Rust ```bash -uv sync --group dev +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +source ~/.cargo/env +``` + +### Install uv + +```bash +curl -LsSf https://astral.sh/uv/install.sh | sh ``` -## Local Development Install +## Quick Setup ```bash +# Clone the repository +git clone https://github.com/krypton-byte/tryx.git +cd tryx + +# Install all dependencies +uv sync --group dev + +# Build the Rust extension into your environment uv run maturin develop ``` -This installs the Rust extension module into your active environment in editable mode. +!!! success "Verify installation" + ```bash + uv run python -c "from tryx.client import Tryx; print('Tryx loaded successfully')" + ``` + If this prints `Tryx loaded successfully`, you're ready to go. -!!! tip "Fast rebuild loop" - Re-run `uv run maturin develop` after Rust binding changes to keep Python runtime artifacts in sync. +## Build Options -## Build Wheel +### Development Build (fast compilation) + +```bash +uv run maturin develop +``` + +This installs the extension module in editable mode. Re-run after Rust source changes. + +### Release Build (optimized binary) ```bash uv run maturin build --release ``` -Typical wheel output appears under `target/wheels/`. +The wheel is output to `target/wheels/`. -## Verify Installation +### With Specific Features -```python -from tryx.client import Tryx, TryxClient -from tryx.backend import SqliteStore +```bash +# Verbose build for debugging +uv run maturin develop -v -backend = SqliteStore("whatsapp.db") -app = Tryx(backend) -client = app.get_client() -print(type(client).__name__) +# Release with debug symbols +uv run maturin develop --release --cargo-extra-args="--profile dev" ``` -If output shows `TryxClient`, extension loading is successful. +## Project Layout -## Optional Tools - -- `uv run mypy ...` or `pyright` for static type checks -- `uv run --no-project --with ruff==0.11.4 ruff check .` for linting (no project build) -- `uv run pytest` for integration test harnesses -- `uv run pre-commit run --all-files` for local gate parity with CI +``` +tryx/ +├── Cargo.toml # Rust dependencies and build config +├── pyproject.toml # Python dependencies and tool config +├── src/ # Rust source code +│ ├── lib.rs # Module entry point +│ ├── clients/ # Client implementations +│ ├── events/ # Event dispatcher +│ └── types.rs # Shared data types +├── python/tryx/ # Python package +│ ├── __init__.py # Re-exports +│ ├── *.pyi # Type stubs for IDE support +│ └── waproto/ # Protobuf definitions +├── tests/ # Test suite +└── examples/ # Usage examples +``` -## Common Install Issues +## Common Issues ### Rust compiler not found -Install Rust with `rustup` and reopen your shell. +```bash +# Install Rust toolchain +rustup default stable +``` ### Build fails with linker errors -Ensure your platform build tools are installed: +=== "Linux" + + ```bash + sudo apt install build-essential libssl-dev pkg-config + ``` + +=== "macOS" -- Linux: `build-essential` and OpenSSL dev headers -- macOS: Xcode command line tools -- Windows: MSVC Build Tools + ```bash + xcode-select --install + ``` + +=== "Windows" + + Install [MSVC Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/). ### ImportError for extension module -Re-run `uv run maturin develop` in the same project environment where you run Python. +Make sure you're using the same Python environment where `maturin develop` was run: + +```bash +# Check which Python your venv uses +which python + +# Rebuild if needed +uv run maturin develop +``` + +### Protobuf version mismatch + +Tryx uses protobuf 5.28+ for code generation. If you see version warnings: + +```bash +uv add "protobuf>=5.28.3,<7" +uv run maturin develop +``` + +## Optional Tools + +| Tool | Install | Purpose | +|------|---------|---------| +| **mypy** | `uv add mypy` | Static type checking | +| **pyright** | `uv add pyright` | Type checking alternative | +| **ruff** | `uv add ruff` | Linting and formatting | +| **pytest** | `uv add pytest` | Test runner | + +```bash +# Type check +uv run mypy your_project/ + +# Lint +uv run ruff check . + +# Format +uv run ruff format . + +# Test +uv run pytest +``` ## Next Step -- Continue to [Quick Start](quickstart.md) -- Then configure pairing in [Authentication Flow](authentication.md) +→ [Quick Start](quickstart.md) — build your first bot in 5 minutes diff --git a/docs/getting-started/quickstart.md b/docs/getting-started/quickstart.md index e8600cd..38b64f9 100644 --- a/docs/getting-started/quickstart.md +++ b/docs/getting-started/quickstart.md @@ -1,69 +1,255 @@ # Quick Start -Build and run a minimal echo client, then expand it safely. +Build a working WhatsApp bot in 5 minutes. This guide walks through the +minimal setup, then expands with real functionality. -!!! tip "Expected outcome" - You should receive incoming text and reply with an echo message in the same chat. +## Step 1: Create Your Bot -## Minimal Client +Create a file called `bot.py`: ```python import asyncio - +from tryx.client import Tryx from tryx.backend import SqliteStore -from tryx.client import Tryx, TryxClient from tryx.events import EvMessage -from tryx.waproto.whatsapp_pb2 import Message +# Create storage backend (persists session and protocol state) backend = SqliteStore("whatsapp.db") -app = Tryx(backend) +# Initialize the Tryx runtime +app = Tryx(backend) +# Register an event handler @app.on(EvMessage) -async def on_message(client: TryxClient, event: EvMessage) -> None: - text = event.data.get_text() or "" +async def on_message(client, event): + text = event.data.get_text() or "" chat = event.data.message_info.source.chat - await client.send_message(chat, Message(conversation=f"Echo: {text}")) + if text.lower() == "ping": + await client.send_text(chat, "pong") -async def main() -> None: - await app.run() +# Start the bot +asyncio.run(app.run()) +``` +## Step 2: Run and Pair -if __name__ == "__main__": - asyncio.run(main()) +```bash +python bot.py ``` +On first run, Tryx will emit a pairing event. Scan the QR code with your +WhatsApp mobile app (Linked Devices → Link a Device). + +!!! info "Pairing modes" + - **QR code**: Scan with your phone camera + - **Numeric code**: Enter the 8-digit code on your phone + +After pairing, the session is stored in `whatsapp.db` and you won't need +to pair again. + +## Step 3: Test It + +Send "ping" to your WhatsApp number from another device. The bot should +reply with "pong". + +--- + ## How It Works -1. backend persists pairing/session state -2. `Tryx` runtime wires event dispatcher -3. `@app.on(EvMessage)` registers handler -4. `TryxClient` executes namespace/root API calls +``` +┌──────────────┐ ┌──────────────┐ ┌──────────────┐ +│ SqliteStore │────▶│ Tryx │────▶│ WebSocket │ +│ (persist) │ │ (dispatcher)│ │ (WhatsApp) │ +└──────────────┘ └──────┬───────┘ └──────────────┘ + │ + ┌──────▼───────┐ + │ Your Handler│ + │ @app.on() │ + └──────────────┘ +``` + +1. **`SqliteStore`** creates and manages a local database for session + persistence and Signal protocol state. +2. **`Tryx`** initializes the Rust runtime and event dispatcher. +3. **`@app.on(EvMessage)`** registers your handler to fire on every + incoming message. +4. **`await app.run()`** opens the WebSocket connection and begins + processing events. -## Runtime Flow +--- -1. Create backend storage. -2. Create `Tryx` client instance. -3. Register handlers with `@app.on(EventClass)`. -4. Start runtime with `await app.run()`. -5. Use `TryxClient` inside handlers for API calls. +## Sending Messages -## First Production Hardening +### Text -=== "Reliability" - - deduplicate with message id - - bound retries for network operations +```python +from tryx.types import JID -=== "Safety" - - validate command input - - keep admin-only commands restricted +jid = JID.whatsapp("5599800001") +await client.send_text(jid, "Hello from Tryx!") +``` -=== "Performance" - - keep handlers short - - offload heavy work to worker queue +### Photo with Caption + +```python +with open("photo.jpg", "rb") as f: + photo_data = f.read() + +result = await client.send_photo( + to=jid, + photo_data=photo_data, + caption="Check this out!", +) +print(f"Sent: {result.message_id}") +``` + +### Voice Message + +```python +with open("voice.ogg", "rb") as f: + audio_data = f.read() + +await client.send_audio( + to=jid, + audio_data=audio_data, + ptt=True, # Push-to-talk (voice note) + seconds=15, # Duration hint +) +``` + +### Document + +```python +with open("report.pdf", "rb") as f: + doc_data = f.read() + +await client.send_document( + to=jid, + document_data=doc_data, + file_name="report.pdf", + caption="Monthly report", +) +``` + +### Video + +```python +with open("clip.mp4", "rb") as f: + video_data = f.read() + +await client.send_video( + to=jid, + video_data=video_data, + caption="Check this clip", +) +``` + +### Sticker + +```python +with open("sticker.webp", "rb") as f: + sticker_data = f.read() + +await client.send_sticker(to=jid, sticker_data=sticker_data) +``` + +--- + +## Handling Events + +### Multiple Event Types + +```python +from tryx.events import EvMessage, EvConnected, EvDisconnected + +@app.on(EvConnected) +async def on_connected(client): + print("Connected to WhatsApp!") + +@app.on(EvMessage) +async def on_message(client, event): + text = event.data.get_text() or "" + chat = event.data.message_info.source.chat + + if text == "!ping": + await client.send_text(chat, "Pong!") + elif text == "!info": + stats = await client.advanced.stats() + await client.send_text(chat, f"Stats: {stats}") + elif text == "!groups": + groups = await client.groups.get_participating() + names = [m.subject for m in groups.values()] + await client.send_text(chat, f"Groups: {', '.join(names)}") + +@app.on(EvDisconnected) +async def on_disconnected(client): + print("Disconnected, will reconnect...") +``` + +### Processing Media + +```python +@app.on(EvMessage) +async def handle_media(client, event): + chat = event.data.message_info.source.chat + + if event.data.media: + media_type = event.data.media.media_type + + if media_type == "image": + await client.send_text(chat, "Nice photo!") + elif media_type == "video": + await client.send_text(chat, "Cool video!") + elif media_type == "audio": + await client.send_text(chat, "Got your audio!") +``` + +### Quoting Messages + +```python +@app.on(EvMessage) +async def handle_reply(client, event): + text = event.data.get_text() or "" + chat = event.data.message_info.source.chat + + if text.lower() == "ping": + # Quote the original message + await client.send_text(chat, "pong", quoted=event) +``` + +--- -## Blocking Script Mode +## Error Handling + +Always wrap handler logic to prevent one bad event from crashing your bot: + +```python +import logging + +logger = logging.getLogger(__name__) + +@app.on(EvMessage) +async def safe_handler(client, event): + try: + text = event.data.get_text() or "" + chat = event.data.message_info.source.chat + + if text: + await client.send_text(chat, f"Echo: {text}") + except Exception as e: + logger.error(f"Handler failed: {e}") + # Don't crash — Tryx continues dispatching +``` + +!!! warning "Handler exceptions" + If a handler raises an exception, Tryx catches it and continues + dispatching other events. However, the error is logged and may affect + your bot's reliability. Always handle errors explicitly. + +--- + +## Blocking Mode For quick scripts without manual event loop management: @@ -75,12 +261,37 @@ app = Tryx(SqliteStore("whatsapp.db")) app.run_blocking() ``` -!!! warning - `run_blocking()` is convenient for small scripts. Prefer explicit async runtime control for larger systems. +!!! tip "When to use" + `run_blocking()` is convenient for small scripts and prototyping. + For larger systems, prefer explicit `asyncio.run(app.run())`. + +--- + +## Production Tips + +=== "Reliability" + + - Deduplicate with `event.data.message_info.id` + - Bound retries for network operations + - Handle undecryptable messages gracefully + +=== "Safety" + + - Validate command input + - Restrict admin-only commands + - Rate-limit expensive operations + +=== "Performance" + + - Keep handlers short and async + - Offload heavy work to background tasks + - Use connection pooling for databases + +--- ## Next Steps -- Read [Authentication Flow](authentication.md) to understand pairing and session persistence. -- Explore [Client API Gateway](../api/client.md) for all namespace methods. -- Review [Event Model](../core-concepts/event-model.md) before building complex logic. -- Continue with [Tutorial: Command Automation](../tutorials/command-bot.md). +- [Authentication Flow](authentication.md) — understand pairing and session persistence +- [Architecture](../core-concepts/architecture.md) — how Tryx works internally +- [Client API Gateway](../api/client.md) — all namespace methods +- [Tutorial: Command Bot](../tutorials/command-bot.md) — build a real bot diff --git a/docs/index.md b/docs/index.md index 65e93b0..d634ed0 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,99 +1,200 @@ -# Tryx Documentation - -
-

Build WhatsApp Automations With Rust Speed and Python Ergonomics

-

Tryx combines a Rust runtime core with a typed Python API so you can ship robust bots, integrations, and event-driven workflows without sacrificing performance.

-
- Async-first - Typed stubs (.pyi) - PyO3 bindings - Event-driven architecture -
+# Tryx + +**Rust-powered Python SDK for event-driven WhatsApp automation.** + +Tryx pairs a Rust runtime core with a typed Python API. Protocol handling, +media processing, and Signal encryption run at native speed in Rust — your +application logic stays in clean async Python. + +
+ Async-first + PyO3 Native + Typed Stubs (.pyi) + Event-Driven + Signal E2E + Pluggable Storage
-!!! tip "Documentation Mode" - This site is designed as a full path: setup -> architecture -> API namespaces -> tutorials -> production operations. +--- -## What You Can Do +## What You Can Build

Messaging

-

Send text, photo, audio, document, video, GIF, and sticker content with a clean Python API.

+

Send text, photo, audio, document, video, GIF, and stickers through a clean async API with full type safety.

Realtime Events

-

Subscribe to rich event classes for messages, contact updates, sync actions, and lifecycle changes.

+

Subscribe to messages, contact updates, sync actions, and lifecycle changes with typed event classes and decorator-based handlers.

Namespace Clients

-

Use dedicated namespaces for contacts, groups, newsletter, status, privacy, polls, presence, and more.

+

Dedicated clients for contacts, groups, newsletters, status, privacy, polls, presence, communities, and chat actions.

-

Typed Development

-

Use complete Python stubs for editor intelligence, static checks, and better API discoverability.

+

Pluggable Storage

+

SQLite (built-in), FFI shared libraries (Postgres, Redis), or pure Python backends — all with the same Signal protocol store API.

-## Choose Your Path - -=== "I am New" - 1. [Installation](getting-started/installation.md) - 2. [Quick Start](getting-started/quickstart.md) - 3. [Authentication Flow](getting-started/authentication.md) - 4. [Client API Gateway](api/client.md) +--- -=== "I am Building Features" - 1. [Client Namespaces](api/client.md) - 2. [Events API](api/events.md) - 3. [Types API](api/types.md) - 4. [Tutorials](tutorials/command-bot.md) +## Quick Start -=== "I am Deploying" - 1. [Deployment Guide](operations/deployment.md) - 2. [Reliability](operations/reliability.md) - 3. [Troubleshooting](operations/troubleshooting.md) - 4. [Security](operations/security.md) +```python +from tryx.client import Tryx +from tryx.backend import SqliteStore -## Recommended Reading Path +app = Tryx(SqliteStore("whatsapp.db")) +client = app.get_client() -1. Start with [Installation](getting-started/installation.md). -2. Follow [Quick Start](getting-started/quickstart.md) to build your first running client. -3. Understand pairing in [Authentication Flow](getting-started/authentication.md). -4. Learn internals in [Architecture](core-concepts/architecture.md) and [Event Model](core-concepts/event-model.md). -5. Jump into [Client API Gateway](api/client.md) and namespace deep dives. -6. Use [Tutorials](tutorials/command-bot.md) for implementation patterns. -7. Use [QnA](faq/qna.md) and [Troubleshooting](operations/troubleshooting.md) when debugging. -8. Finish with [Deployment](operations/deployment.md) and [Reliability](operations/reliability.md) before production. +@app.on(EvMessage) +async def on_message(client, event): + text = event.data.get_text() + chat = event.data.message_info.source.chat + if text: + await client.send_text(chat, f"Echo: {text}") -## Project Scope +app.run_blocking() +``` -This documentation set focuses on the Python SDK experience first: +