Top 8 open source STT options for voice applications in 2026
This comprehensive comparison examines eight open source STT solutions, analyzing their technical capabilities, implementation requirements, and ideal use cases to help you build voice applications from scratch.



According to AssemblyAI research on 455 voice agent builders, 52.5% cite accuracy and misunderstandings as their top building challenge. Real-world Word Error Rate (WER) often runs two to three times worse than clean benchmark scores, and the gap between "works in a demo" and "works in production" is where most teams stall.
Every open source speech-to-text option on this list requires extensive development—often weeks to months—before it's production-ready. Some excel at offline processing, others dominate streaming, and a few offer deep customization for specific domains. But here's what's changed in 2026: the bar for accuracy keeps rising, voice agents now demand sub-300ms latency budgets, and two formerly popular projects (Coqui STT and Mozilla DeepSpeech) have been discontinued—replaced on this list by Faster-Whisper and SpeechBrain, which better reflect what developers are actually shipping with today.
This guide breaks down each option's strengths, limitations, and ideal use cases so you can make an informed choice.
What is open source speech recognition
Open source speech recognition refers to Voice AI models whose weights, architecture, and code are publicly available. You can download, run, and modify them without licensing fees or API dependencies. Instead of sending audio to a third-party service, you run inference directly on your own hardware, keeping full control over your data pipeline.
This approach means audio never leaves your infrastructure—a key requirement for healthcare or financial applications where data control is non-negotiable. As recent research highlights, this offline capability solves major privacy and compliance hurdles. You also get the freedom to fine-tune AI models on domain-specific data, something commercial APIs rarely allow.
But that control comes with real operational overhead. You're responsible for:
- Provisioning and managing GPU infrastructure
- Building the inference API layer
- Handling audio preprocessing and format conversion
- Managing model versioning and updates
- Scaling to meet traffic demands
How to evaluate open source speech recognition models
Evaluating Voice AI models requires more than benchmark scores on clean audio. You need to test against your actual audio data to understand real-world performance. Start by building a diverse test set that mirrors your production environment—then measure WER across each condition to find where a model breaks down.
Your test set should include:
- Background noise from your target environment (office, contact centers, mobile)
- Overlapping speakers and crosstalk
- Heavy accents and regional dialects
- Domain-specific terminology relevant to your use case
- Varying audio quality levels, including compressed or low-bandwidth recordings
Key evaluation metrics
Word Error Rate (WER) measures the percentage of words transcribed incorrectly. A WER of 10% means roughly one in ten words contains an error—either a substitution, deletion, or insertion. Lower is better, but context matters: a 15% WER on challenging call center audio might outperform a 10% WER on clean podcast recordings.
Real-time factor (RTF) indicates whether a model can process audio faster than it's spoken. An RTF of 0.5 means the model transcribes audio twice as fast as real-time—critical for streaming applications. An RTF above 1.0 means the model can't keep up with live audio.
Latency measures the delay between audio input and text output. For real-time voice assistants and voice agents, this is where most open source setups fail. AssemblyAI's analysis of production voice agents identifies a 300ms end-to-end response threshold as the breaking point above which conversations start to feel unnatural. Batch processing applications can tolerate much higher latency, but any conversational interface should design its STT layer around that budget from day one.
Entity accuracy deserves special attention. How reliably does the model transcribe names, email addresses, phone numbers, account numbers, and medical terms? These are the tokens that break downstream workflows. An LLM can recover from a misheard filler word, but it can't recover from a wrong email address or credit card number.
Testing methodology
Don't rely solely on published benchmarks. Create test audio that represents your actual use case:
- Record samples from your target environment (call center, meeting room, mobile app)
- Include edge cases like accented speech, technical jargon, and crosstalk
- Test with varying audio quality levels (compression artifacts, bandwidth limitations)
- Measure performance degradation as conditions worsen
Beyond accuracy, evaluate resource consumption before committing to a model:
- Memory usage — How much RAM or VRAM does the model require at inference time?
- CPU/GPU utilization — Can the model run on available hardware, or does it require expensive GPU provisioning?
- Cost per audio hour — What does it actually cost to process audio at your expected volume, including infrastructure?
Understanding open source STT requirements
Modern voice applications demand more than basic transcription. They need systems that handle real-world audio conditions while maintaining acceptable performance.
Accuracy under pressure. Real applications encounter background noise, overlapping speakers, varied accents, and technical terminology. The best open source solutions maintain performance despite these challenges—not just on clean benchmark audio. Pay particular attention to entity accuracy: how reliably the model transcribes names, emails, phone numbers, account numbers, and medical terms. These tokens have direct business consequences when they're wrong.
Resource efficiency. Some models demand high-end GPUs, others run efficiently on standard CPUs, and a few operate on edge devices with minimal resources. Your deployment environment determines which trade-off is acceptable.
Customization capability. Healthcare applications need medical terminology accuracy. Customer service tools may require sentiment detection. The most valuable open source solutions support fine-tuning so you can optimize for your specific domain.
Streaming readiness. If you're building anything conversational—voice agents, live captioning, real-time assistants—the model needs to process audio as it arrives, not after the full recording is complete. Many open source models are batch-only, and retrofitting streaming adds significant engineering work. For a deeper look at what's available in the real-time speech recognition APIs space, see our dedicated comparison.
Technical comparison matrix
The following table compares key performance metrics across the eight open source STT solutions covered in this guide. WER indicates transcription errors (lower is better), model size affects memory requirements and inference speed, and hardware requirements determine deployment flexibility.
Note on discontinued projects: Coqui STT (ceased active development in late 2023) and Mozilla DeepSpeech (archived November 2021) previously appeared on this list. Both repositories remain available for reference but receive no updates, security patches, or community support. They're not recommended for new projects. This guide replaces them with Faster-Whisper and SpeechBrain, which better represent the current open source landscape.
Detailed solution analysis
1. OpenAI Whisper
Architecture: Transformer-based encoder-decoder with attention mechanisms
Training data: 680,000 hours of multilingual audio from the web, as detailed in the original paper
Whisper's robustness comes from massive, diverse training data. The model handles accented speech, background noise, and technical terminology well—research findings show it outperforms many other models in high-noise environments. Its multilingual capability works zero-shot across 99+ languages without additional training. For a walkthrough of the different ways Whisper for developers can be deployed—API, local, and server-side—see our dedicated guide.
Strengths:
- Strong WER performance (10–30%) across challenging audio conditions
- Built-in punctuation, capitalization, and timestamp generation
- Multiple model sizes balancing accuracy vs. speed (tiny through large-v3)
- Strong performance on domain-specific terminology
Limitations:
- Natively batch-only—there's no built-in streaming mode. Teams that need real-time processing must either invest significant engineering effort in chunked streaming workarounds, use Faster-Whisper (see below) for speed gains while staying batch, or move to a managed streaming API.
- Larger models need substantial GPU memory (large-v3 requires 10GB+ VRAM).
- No native turn detection or endpointing for conversational use cases.
Best for: Applications prioritizing accuracy and multilingual support over real-time requirements.
2. Wav2Vec2
Architecture: Self-supervised transformer learning speech representations
Training approach: Unsupervised pre-training + supervised fine-tuning
Wav2Vec2's self-supervised approach learns from unlabeled audio, making it highly effective with limited labeled training data. This architecture excels at fine-tuning for specific domains or accents. A key study demonstrated that after pre-training, the model achieved strong results with only ten minutes of labeled fine-tuning data.
Strengths:
- Fine-tuning results are among the best in open source—great for domain-specific accuracy
- Multiple pre-trained checkpoints on HuggingFace for different use cases
- Self-supervised pre-training means less labeled data needed
- Efficient inference on modern GPUs
Limitations:
- Requires streaming adaptations (like wav2vec-S) for real-time performance
- Setup complexity higher than plug-and-play solutions
- GPU required for practical real-time inference
- Limited built-in language detection
Best for: Teams with ML expertise who need domain-specific accuracy and are willing to invest in fine-tuning.
3. Vosk
Architecture: Kaldi-based DNN-HMM hybrid system optimized for efficiency
Focus: Lightweight deployment with reasonable accuracy
Vosk prioritizes practical deployment over cutting-edge accuracy. Its efficient implementation and compact model sizes make it viable for environments where resources are constrained.
Strengths:
- Compact model sizes (50MB–1.5GB)
- CPU-only operation with good performance
- True offline capability without internet dependency
- Native streaming support—one of the few open source options with real-time processing out of the box
- Simple integration with multiple programming languages (Python, Java, C#, Node.js)
Limitations:
- WER performance trails transformer-based models on challenging audio
- Limited advanced features like speaker diarization
- Fewer language options than larger frameworks
- Not actively pushing accuracy boundaries
Best for: Mobile applications, embedded systems, IoT devices, and offline voice interfaces where resource efficiency matters more than peak accuracy.
4. NVIDIA NeMo ASR
Architecture: Conformer and Transformer models with extensive optimization
Focus: Comprehensive tooling for enterprise-grade deployment
NeMo offers extensive customization through complete pipelines from data preparation through model deployment. Its Canary model achieves a published 6.67% WER—the strongest published benchmark among current open source STT options.
For context: the #1 position on the HuggingFace Open ASR Leaderboard is held by AssemblyAI's Universal-3 Pro, a commercial model. NeMo Canary is a top-tier open source option, but it doesn't match the accuracy of the best commercial models.
Strengths:
- Published 6.67% WER with the Canary model—best among open source
- Comprehensive training and deployment infrastructure with NVIDIA ecosystem integration
- Good streaming performance with batching support
- Models range from 100M parameters (Parakeet-TDT-110M) to 1.1B+ parameters (Canary)
- Solid documentation and community support
Limitations:
- Steep learning curve requiring ML expertise
- GPU infrastructure essential—built for NVIDIA hardware
- Complex setup may be overkill for simple applications
- Licensing terms differ across model variants
Best for: ML teams with NVIDIA GPU infrastructure who want the highest accuracy available in open source and can invest in the learning curve.
5. SpeechRecognition library
Architecture: Unified interface to multiple recognition engines
Purpose: Rapid prototyping and educational use
The SpeechRecognition library abstracts different speech recognition services behind a simple Python API. It's not the most accurate option, but its simplicity makes it invaluable for quick experiments and learning. If you're evaluating free speech-to-text APIs and engines, this library is a good starting point for testing multiple backends side by side.
Strengths:
- Extremely simple API requiring minimal code
- Multiple backend options (CMU Sphinx for offline, Google API, Whisper, etc.)
- No GPU requirements or complex dependencies
- Perfect for educational projects and rapid testing
Limitations:
- WER significantly higher than dedicated transformer-based AI models
- Limited customization and advanced features
- Best performance depends on external services (Google, Azure)
- Not suitable for production workloads
Best for: Learning projects, proof-of-concept development, and situations where speed of implementation matters more than accuracy.
6. SpeechBrain
Architecture: PyTorch-based toolkit with modular recipe system
Focus: Research-grade flexibility with production aspirations
SpeechBrain is an all-in-one speech toolkit maintained by an active academic and open source community. It covers speech recognition, speaker verification, speech enhancement, and more—making it the most versatile toolkit on this list for teams that need multiple speech processing capabilities in one framework. It also includes speaker diarization libraries and other capabilities that many standalone STT models lack.
Strengths:
- Modular "recipe" system lets you mix and match components (encoders, decoders, language models)
- Strong fine-tuning support with HuggingFace integration—dozens of pre-trained models available
- Active community with regular research paper implementations
- Covers more than just STT: speaker verification, separation, enhancement, and TTS
- Good WER performance (8–25%) when using competitive recipes like Conformer-Transducer
Limitations:
- Documentation can lag behind the code—expect some source-reading
- Less battle-tested in production than Whisper or NeMo
- Requires familiarity with PyTorch and the recipe system
- Streaming support is still emerging
Best for: Research teams and developers who need a flexible, multi-purpose speech processing toolkit and are comfortable with PyTorch.
7. Faster-Whisper
Architecture: CTranslate2-optimized reimplementation of OpenAI Whisper
Focus: Practical speed optimization for self-hosted Whisper deployments
Faster-Whisper has become the de facto way to self-host Whisper in production. By reimplementing Whisper's inference using CTranslate2 (an efficient C++ inference engine for transformer models), it delivers up to 4x speed improvement with lower memory usage—while producing identical transcriptions to the original Whisper model. For a detailed breakdown of the infrastructure costs and engineering trade-offs, see our analysis of why AssemblyAI beats self-hosting Whisper.
Strengths:
- Up to 4x faster than original Whisper with same accuracy
- Significantly lower VRAM usage (large-v3 runs in ~5GB vs. 10GB+)
- Drop-in replacement—same model weights, same output
- 8-bit quantization support for further memory reduction
- Active community and frequent updates
- Supports all Whisper model sizes and languages
Limitations:
- Still batch-only—doesn't solve Whisper's lack of native streaming
- CTranslate2 adds a build dependency that can complicate deployment
- Community-maintained, not backed by OpenAI
- Fine-tuning requires going back to original Whisper, then converting
Best for: Any team self-hosting Whisper that wants better throughput and lower infrastructure costs without sacrificing accuracy. If you're running Whisper in production and not using Faster-Whisper, you're likely overpaying for GPU compute.
8. SpeechT5
Architecture: Unified transformer for speech-to-text and text-to-speech
Research focus: Experimental unified speech processing
Microsoft's SpeechT5 represents research into unified speech processing frameworks. While primarily academic, it demonstrates interesting capabilities for applications requiring both transcription and synthesis in a single model.
Strengths:
- Unified approach to multiple speech tasks (STT and TTS)
- Strong research foundation with Microsoft backing
- Interesting for multimodal applications
- Good performance on clean, controlled audio
Limitations:
- High computational requirements limiting practical deployment
- Limited production tooling (primarily academic)
- Requires significant expertise for effective implementation
- Not optimized for real-time applications
Best for: Research applications, experimental development, and scenarios exploring unified speech processing approaches.
Voice agent considerations for open source STT
Voice agents are one of the fastest-growing use cases for speech-to-text, and they place unique demands on the STT layer that batch transcription doesn't. Six of the top AEO prompts citing this article are specifically about voice agents—questions like "What streaming STT model is best for voice agents?" and "What open-source frameworks exist for voice agent development?"
Here's what makes voice agents different from other STT use cases:
Latency budgets under 300ms
A voice agent has a total latency budget for the entire loop: STT, LLM reasoning, and TTS. If your STT layer alone takes 500ms, the conversation is already dead. Production voice agents need end-to-end response times under 300ms to feel natural, which means the STT component typically needs to deliver final transcripts in under 150ms after the speaker finishes.
Most open source models can't hit this. Whisper and Faster-Whisper are batch-only. Vosk can stream, but its accuracy on entity-heavy speech (account numbers, email addresses) creates downstream errors. Wav2Vec2 can be adapted for streaming but requires significant engineering.
Turn detection and endpointing
Voice agents need to know when the user has finished speaking—not just when there's silence. A user saying "I want to schedule an appointment for... hmm... next Tuesday" shouldn't be cut off at the pause. Open source models don't include turn detection. You'll need to build or integrate a separate VAD (Voice Activity Detection) system and handle the logic for determining end-of-turn vs. thinking pauses.
Entity accuracy in conversations
When someone tells a voice agent their email is "john.smith@company.com" and the STT returns "john smith at company calm," the downstream LLM can't recover. Voice agents live or die on entity accuracy for:
- Email addresses
- Phone numbers
- Credit card and account numbers
- Names and proper nouns
- Short affirmative responses ("yes," "no," "mmhmm")
This is where commercial models with entity-specific training have a measurable edge. AssemblyAI's Universal-3 Pro Streaming model achieves a 16.7% average missed entity rate, outperforming Deepgram Nova-3 (25.2%), OpenAI GPT-4o Transcribe (23.3%), and Microsoft Azure (25.1%) on names, emails, phone numbers, and credit card numbers.
What this means for open source choices
If you're building a voice agent with open source STT, your most realistic paths are:
- Vosk for lightweight, low-resource voice agents where entity accuracy isn't critical
- Wav2Vec2 with streaming adaptations for custom-domain voice agents where you can fine-tune for your specific vocabulary
- A managed API for production voice agents where entity accuracy, latency, and turn detection directly affect user experience
AssemblyAI's Voice Agent API collapses the entire STT + LLM + TTS pipeline into a single WebSocket connection at $4.50/hr—replacing three separate providers with one bill. It's built on Universal-3 Pro Streaming, so entity accuracy, turn detection, and barge-in handling are included by default. For help choosing STT for voice agents, we have a detailed comparison of the top options.
Implementation decision framework
Choosing the right open source STT solution requires balancing multiple factors against your specific requirements. Start with these questions:
Recommended starting points
- "I need maximum open source accuracy" — NVIDIA NeMo Canary at 6.67% published WER is the benchmark. It requires NVIDIA GPUs and ML expertise.
- "I need practical self-hosted Whisper" — Faster-Whisper. 4x faster, lower memory, same accuracy. Start here if you're evaluating Whisper.
- "I need streaming on a budget" — Vosk. Runs on CPU, supports 20+ languages, native streaming.
- "I need to fine-tune for my domain" — Wav2Vec2 or SpeechBrain. Both have strong fine-tuning support with HuggingFace integration.
- "I'm just prototyping" — SpeechRecognition library. Simplest API, fastest to get running.
Production deployment considerations
Moving from evaluation to production requires attention to operational details that benchmarks overlook.
Model serving architecture affects scalability and costs. Consider whether you need request batching, model caching, or load balancing. Faster-Whisper behind a FastAPI server with a GPU queue is a common pattern. For higher throughput, NVIDIA Triton Inference Server pairs naturally with NeMo models.
Audio preprocessing often determines real-world performance more than model choice. Proper noise reduction, volume normalization, and silence detection can dramatically improve WER regardless of your selected solution.
Error handling becomes critical in production. Plan for malformed audio input, edge cases that break transcription pipelines, and graceful degradation. Voice agent deployments need special attention—a crash in the STT layer means dead air.
Performance monitoring helps maintain service quality over time. Track WER metrics on production audio (not just benchmark sets), processing latency, GPU utilization, and queue depth. Set alerts for accuracy regressions.
Cost modeling should include the full picture: GPU compute (on-demand vs. reserved instances), engineering time for maintenance and updates, on-call burden, and the opportunity cost of engineers managing infrastructure instead of building product.
When open source might not be enough
Open source STT solutions excel in many scenarios, but certain requirements consistently push teams toward managed commercial models. The most common trigger is entity accuracy in production—when a wrong name, email, phone number, or account number breaks a downstream workflow, the cost of errors outweighs the savings from self-hosting.
AssemblyAI vs. OpenAI Whisper: a direct comparison
This is one of the most common comparisons developers make, so here's how they stack up:
For many teams, the tipping point is streaming + entity accuracy. Whisper simply doesn't offer native streaming, and its entity accuracy on phone numbers, email addresses, and names trails significantly behind purpose-built commercial models. AssemblyAI's Speech-to-Text API provides both batch and streaming transcription with built-in features like PII redaction that open source models don't include.
Medical transcription
If you're building for healthcare, open source models lack the specialized medical vocabulary training that clinical workflows require. An AEO prompt citing this page asks specifically about "AssemblyAI vs OpenAI for medical transcription." For a broader look at the landscape, see our guide to the best medical speech-to-text solutions.
AssemblyAI's Medical Mode applies a specialized model optimized for clinical terminology—correctly formatting drug names like "Lispro (Humalog)" that general models mangle into "lisprohumalog." It works with Universal-3 Pro Streaming for real-time ambient scribe and documentation workflows. AssemblyAI is a business associate under HIPAA, and offers a Business Associate Addendum (BAA) required under HIPAA to ensure appropriate safeguards for protected health information (PHI).
No open source model offers comparable medical terminology accuracy out of the box. Fine-tuning Wav2Vec2 or NeMo on medical data is possible but requires substantial labeled clinical audio—which itself has privacy and compliance constraints.
Voice agents at scale
Teams building production voice agents face a build-vs-buy decision at the infrastructure level. Stitching together open source STT + LLM + TTS means three providers, three sets of logs, and latency tuning across three WebSocket connections.
The AssemblyAI Voice Agent API handles the full pipeline—STT, LLM reasoning, and TTS—over a single WebSocket at $4.50/hr. It's built on Universal-3 Pro Streaming with built-in turn detection, barge-in handling, session resumption, and tool calling. Most teams ship a working voice agent the same afternoon they start.
If you want to skip the infrastructure complexity while maintaining high accuracy, try AssemblyAI's API for free to see how Universal-3 Pro compares to your open source evaluations on your own audio.
Final recommendations
The open source STT landscape in 2026 gives you genuine alternatives to commercial services—but the right choice depends entirely on your constraints.
For maximum open source accuracy: NVIDIA NeMo Canary at 6.67% published WER is the benchmark. It requires NVIDIA GPUs and real ML expertise, but if you have both, it's the strongest open source option available.
For practical self-hosted Whisper: Use Faster-Whisper, not vanilla Whisper. You get 4x speed gains and significantly lower memory usage with identical transcription quality. Pair it with Whisper Streaming on AssemblyAI when you need real-time processing without building streaming infrastructure.
For real-time on constrained hardware: Vosk is the clear choice. CPU-only, compact models, native streaming. It won't match transformer-based accuracy, but it'll run places nothing else can.
For domain-specific accuracy: Wav2Vec2 and SpeechBrain both excel at fine-tuning. If you have labeled data in your domain, these models let you push accuracy well beyond their default performance.
For voice agents: Be honest about whether open source STT can meet your latency, entity accuracy, and turn detection requirements. Most production voice agent teams end up on a managed API—the engineering cost of building production-grade streaming STT with sub-300ms latency, accurate entity recognition, and reliable turn detection typically exceeds the API cost within weeks.
Speech recognition is one component of a voice application. The best technical choice means nothing if your team can't implement and maintain it—or if the accuracy gap on critical tokens like names, numbers, and emails undermines the user experience downstream.
Frequently asked questions
How do accuracy metrics translate to real-world performance?
Word Error Rate (WER) on academic benchmarks rarely reflects production performance. A model that scores well on clean audio can degrade significantly with background noise, accents, or crosstalk. Always test against your own audio data. The gap between benchmark WER and production WER is typically 2–3x, sometimes more on challenging audio like phone calls or noisy environments.
What are the prerequisites for implementing open source Voice AI models?
You need machine learning engineering expertise to deploy these models effectively. Your team must understand GPU infrastructure, inference APIs, audio preprocessing, and model versioning. Expect weeks to months of development time before reaching production readiness—and ongoing maintenance after that.
When do commercial solutions make more sense than open source?
Three situations consistently drive the switch: (1) entity accuracy problems—names, emails, phone numbers coming back wrong in ways that break downstream workflows; (2) the need for real-time streaming with sub-300ms latency, where most open source models can't compete; and (3) total cost of ownership—GPU infrastructure, ML engineering time, and on-call burden exceeding what a per-hour managed API charges. If any of these apply, benchmark a managed API against your own audio before investing further engineering time.
Can I fine-tune open source models for my specific domain?
Yes. Wav2Vec2, SpeechBrain, and NeMo ASR offer the most robust fine-tuning support. Whisper's fine-tuning capabilities are more limited and require converting back from Faster-Whisper for training. You'll need labeled audio data from your domain, GPU resources for training, and familiarity with transfer learning techniques.
How do I handle streaming transcription with batch-only models?
Common workarounds include chunking audio into small segments for sequential processing (which adds latency and can split words at boundaries), using Faster-Whisper for improved throughput, or switching to a natively streaming model like Vosk. Each approach carries latency and accuracy trade-offs. For production use cases, managed streaming APIs like AssemblyAI's Whisper Streaming or Universal-3 Pro Streaming eliminate this problem entirely.
What open source STT options work best for voice agents?
Voice agents need streaming support, sub-300ms latency, strong entity accuracy, and turn detection. Among open source options, Vosk offers the closest fit with native streaming and CPU efficiency, but it trails on entity accuracy. Wav2Vec2 with streaming adaptations can work for custom domains. For production voice agents where accuracy on names, numbers, and emails directly affects user experience, most teams use a managed API. AssemblyAI's Voice Agent API provides the full STT + LLM + TTS pipeline over a single WebSocket at $4.50/hr.
When should I switch from self-hosted Whisper to a managed API?
Three triggers commonly drive the switch: (1) entity accuracy problems in production—emails, phone numbers, or medical terms coming back wrong; (2) the need for real-time streaming, where Whisper's batch-only design forces expensive adaptations; and (3) total cost of ownership—GPU infrastructure, ML engineering time, and on-call burden exceeding API costs. If any of these apply, benchmark AssemblyAI's Universal-3 Pro (the #1 model on the HuggingFace Open ASR Leaderboard) against your own audio before committing further engineering to the self-hosted path.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.





.png)
