Designing AudioHook Integrations for Real-Time Voice Biometrics
What This Guide Covers
This guide details the architectural design and implementation of a Genesys Cloud AudioHook endpoint that streams real-time PCM audio to an external voice biometrics engine. You will configure a production-grade WebSocket service, implement chunk aggregation logic, establish asynchronous routing callbacks, and harden the integration against network partitions and compliance requirements. When complete, your system will authenticate callers in under 1.5 seconds, update conversation state dynamically, and route calls based on biometric confidence scores without blocking the media path.
Prerequisites, Roles & Licensing
- Licensing Tier: Genesys Cloud CX 1, CX 2, or CX 3. Real-time streaming is available across all tiers, but CX 2 is recommended for advanced Architect variable routing and custom attribute persistence.
- UI Permissions:
Integration > AudioHook > Edit,Telephony > Conversation > Edit,Architect > Flow > Edit - OAuth Scopes:
integration:edit,conversation:write,conversation:read,user:read - External Dependencies:
- Voice biometrics engine with WebSocket or REST API ingestion
- TLS 1.2+ termination endpoint (AWS ALB, NGINX, or cloud-native API gateway)
- Service account with assigned OAuth scopes and IP allowlisting configured in Genesys Cloud
- Network Requirements: Outbound WebSocket from Genesys Cloud edge to your endpoint. Genesys Cloud IP ranges are published in the resource center. Port 443 is mandatory.
The Implementation Deep-Dive
1. AudioHook Endpoint Architecture & WebSocket Contract
Genesys Cloud initiates the AudioHook connection by establishing a secure WebSocket to your configured endpoint URL. The platform does not poll your service. It pushes a continuous stream of raw audio chunks until the conversation ends or the hook is terminated. Your endpoint must accept the handshake, validate the connection metadata, and maintain stateful session tracking for the duration of the call.
When Genesys Cloud connects, it sends a JSON control message before streaming begins:
{
"type": "connect",
"conversationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"hookId": "h9876543-2109-8765-4321-0fedcba98765",
"participants": [
{
"id": "p1",
"type": "agent",
"address": { "id": "agent-id-123" }
},
{
"id": "p2",
"type": "customer",
"address": { "id": "external-number" }
}
]
}
Your service must respond with an acknowledgment within 2 seconds. Failure to acknowledge causes Genesys Cloud to mark the hook as failed and retry up to three times before dropping the stream entirely. The acknowledgment payload must match this exact structure:
{
"type": "ack",
"hookId": "h9876543-2109-8765-4321-0fedcba98765"
}
The Trap: Implementing the WebSocket endpoint with a synchronous request-response model that blocks the connection thread while waiting for the biometric engine to initialize. Genesys Cloud expects a persistent, non-blocking WebSocket. If your server holds the connection open without sending periodic keep-alives or acknowledgment frames, the Genesys edge proxy terminates the socket after 10 seconds of inactivity. This results in silent audio dropouts during peak call volumes.
Architectural Reasoning: We design the endpoint as an event-driven message router rather than a processing unit. The WebSocket layer handles only connection lifecycle and raw byte forwarding. Heavy DSP and biometric scoring occur in a decoupled worker pool. This separation prevents thread starvation and ensures the audio stream remains continuous even when the biometric engine experiences temporary queue backpressure.
2. Audio Stream Parsing & Chunk Reconstruction
After the initial connect and ack exchange, Genesys Cloud streams audio data as base64-encoded chunks. Each chunk represents approximately 20 milliseconds of raw audio. The specification is strict: 16 kHz sample rate, 16-bit signed integer, little-endian byte order, single channel (mono).
The data payload arrives as:
{
"type": "data",
"hookId": "h9876543-2109-8765-4321-0fedcba98765",
"data": "AAAAAAEAAAAFAAAABgAAABgAAAAIAAAAGAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAAgAAAAIAAA