From ae5779e475b8a5535412edc92669be701fd3927a Mon Sep 17 00:00:00 2001 From: JiaxinD Date: Wed, 26 Aug 2026 17:50:33 -0700 Subject: [PATCH 01/16] feat(parakeet): add Parakeet TDT support Add a model-owned FastConformer and token-and-duration transducer implementation for nvidia/parakeet-tdt-0.6b-v3. Support pinned Hugging Face and NeMo checkpoint semantics, native audio preprocessing and TDT decoding, and exact transcript parity coverage with adversarial audio probes. Signed-off-by: JiaxinD --- .../performance/baselines/task_reference.py | 32 +- .../performance/baselines/timing_contracts.py | 1 + benchmarks/performance/release.yaml | 15 + .../families/__init__.py | 19 +- .../families/parakeet_tdt/MODEL.toml | 19 + .../families/parakeet_tdt/__init__.py | 6 + .../families/parakeet_tdt/checkpoint.py | 130 ++ .../families/parakeet_tdt/config.py | 92 ++ .../families/parakeet_tdt/decode_policy.py | 33 + .../families/parakeet_tdt/fastconformer.py | 648 +++++++++ .../families/parakeet_tdt/graph_ops.py | 426 ++++++ .../families/parakeet_tdt/model_config.py | 217 +++ .../families/parakeet_tdt/nemo_archive.py | 141 ++ .../families/parakeet_tdt/plugin.py | 1183 +++++++++++++++++ .../parakeet_tdt_reference.lock.txt | 3 + .../parakeet_tdt/python_profile_verify.py | 14 + src/runtime/models/parakeet_tdt/MODEL.toml | 11 + .../models/parakeet_tdt/audio_helpers.cpp | 595 +++++++++ .../models/parakeet_tdt/audio_helpers.h | 89 ++ src/runtime/models/parakeet_tdt/pipeline.cpp | 844 ++++++++++++ src/runtime/models/parakeet_tdt/pipeline.h | 102 ++ src/runtime/models/parakeet_tdt/plugin.cpp | 182 +++ .../models/parakeet_tdt/plugin_helpers.cpp | 475 +++++++ .../models/parakeet_tdt/plugin_helpers.h | 130 ++ src/runtime/models/parakeet_tdt/tdt_config.h | 110 ++ tests/builder/test_families.py | 67 + .../test_parakeet_tdt_audio_helpers.cpp | 264 ++++ .../test_parakeet_tdt_decode_policy.cpp | 50 + tests/e2e/models/parakeet_tdt/MODEL.toml | 13 + .../models/parakeet_tdt/data/Recording.wav | Bin 0 -> 798798 bytes .../parakeet_tdt/data/asr_probes/README.md | 21 + .../asr_probes/generate_asr_probe_inputs.py | 232 ++++ .../data/asr_probes/manifest.json | 100 ++ .../probe_01_clean_48k_stereo_baseline.wav | Bin 0 -> 798798 bytes .../probe_02_clean_16k_mono_no_resample.wav | Bin 0 -> 133164 bytes .../probe_03_clean_48k_mono_resample.wav | Bin 0 -> 399404 bytes .../probe_04_clean_48k_stereo_gain_skew.wav | Bin 0 -> 798764 bytes .../probe_05_low_volume_48k_stereo.wav | Bin 0 -> 798764 bytes ...06_leading_trailing_silence_48k_stereo.wav | Bin 0 -> 1182764 bytes .../probe_08_noisy_48k_stereo_snr20.wav | Bin 0 -> 798764 bytes .../parakeet_tdt/e2e_plugins/__init__.py | 32 + .../parakeet_tdt/e2e_plugins/comparator.py | 14 + .../e2e_plugins/comparators/__init__.py | 9 + .../e2e_plugins/comparators/_helpers.py | 48 + .../comparators/parakeet_tdt_asr.py | 147 ++ .../parakeet_tdt/e2e_plugins/contract.py | 322 +++++ .../parakeet_tdt/e2e_plugins/contracts.py | 10 + .../parakeet_tdt/e2e_plugins/reference.py | 14 + .../e2e_plugins/references/__init__.py | 9 + .../e2e_plugins/references/parakeet_tdt_hf.py | 161 +++ .../models/parakeet_tdt/e2e_plugins/runner.py | 18 + .../e2e_plugins/runners/__init__.py | 9 + .../runners/parakeet_tdt_speech.py | 248 ++++ .../manifests/parakeet-tdt-0.6b-v3.json | 144 ++ tests/e2e/models/parakeet_tdt/runner.py | 186 +++ .../test_parakeet_tdt_contracts.py | 478 +++++++ .../parakeet_tdt/test_parakeet_tdt_e2e.py | 32 + .../parakeet-tdt-0.6b-v3-asr-probe01.json | 11 + .../parakeet-tdt-0.6b-v3-asr-probe02.json | 11 + .../parakeet-tdt-0.6b-v3-asr-probe03.json | 11 + .../parakeet-tdt-0.6b-v3-asr-probe04.json | 11 + .../parakeet-tdt-0.6b-v3-asr-probe05.json | 11 + .../parakeet-tdt-0.6b-v3-asr-probe06.json | 11 + .../parakeet-tdt-0.6b-v3-asr-probe08.json | 11 + .../thresholds/parakeet-tdt-0.6b-v3.json | 10 + tests/tools/test_family_specialization.py | 2 +- tests/tools/test_perf_matrix.py | 20 +- tests/tools/test_trtmc_validate.py | 6 +- tests/tools/test_validation_engine.py | 7 +- tests/validation/model_workloads.yaml | 2 + tests/validation/workloads.yaml | 3 + tools/reference/speech.py | 34 +- website/data/hf-model-metadata.json | 11 + 73 files changed, 8297 insertions(+), 20 deletions(-) create mode 100644 python/tensorrt_model_connect/families/parakeet_tdt/MODEL.toml create mode 100644 python/tensorrt_model_connect/families/parakeet_tdt/__init__.py create mode 100644 python/tensorrt_model_connect/families/parakeet_tdt/checkpoint.py create mode 100644 python/tensorrt_model_connect/families/parakeet_tdt/config.py create mode 100644 python/tensorrt_model_connect/families/parakeet_tdt/decode_policy.py create mode 100644 python/tensorrt_model_connect/families/parakeet_tdt/fastconformer.py create mode 100644 python/tensorrt_model_connect/families/parakeet_tdt/graph_ops.py create mode 100644 python/tensorrt_model_connect/families/parakeet_tdt/model_config.py create mode 100644 python/tensorrt_model_connect/families/parakeet_tdt/nemo_archive.py create mode 100644 python/tensorrt_model_connect/families/parakeet_tdt/plugin.py create mode 100644 python/tensorrt_model_connect/families/parakeet_tdt/python_profile_requirements/parakeet_tdt_reference.lock.txt create mode 100644 python/tensorrt_model_connect/families/parakeet_tdt/python_profile_verify.py create mode 100644 src/runtime/models/parakeet_tdt/MODEL.toml create mode 100644 src/runtime/models/parakeet_tdt/audio_helpers.cpp create mode 100644 src/runtime/models/parakeet_tdt/audio_helpers.h create mode 100644 src/runtime/models/parakeet_tdt/pipeline.cpp create mode 100644 src/runtime/models/parakeet_tdt/pipeline.h create mode 100644 src/runtime/models/parakeet_tdt/plugin.cpp create mode 100644 src/runtime/models/parakeet_tdt/plugin_helpers.cpp create mode 100644 src/runtime/models/parakeet_tdt/plugin_helpers.h create mode 100644 src/runtime/models/parakeet_tdt/tdt_config.h create mode 100644 tests/cpp/models/parakeet_tdt/test_parakeet_tdt_audio_helpers.cpp create mode 100644 tests/cpp/models/parakeet_tdt/test_parakeet_tdt_decode_policy.cpp create mode 100644 tests/e2e/models/parakeet_tdt/MODEL.toml create mode 100644 tests/e2e/models/parakeet_tdt/data/Recording.wav create mode 100644 tests/e2e/models/parakeet_tdt/data/asr_probes/README.md create mode 100644 tests/e2e/models/parakeet_tdt/data/asr_probes/generate_asr_probe_inputs.py create mode 100644 tests/e2e/models/parakeet_tdt/data/asr_probes/manifest.json create mode 100644 tests/e2e/models/parakeet_tdt/data/asr_probes/probe_01_clean_48k_stereo_baseline.wav create mode 100644 tests/e2e/models/parakeet_tdt/data/asr_probes/probe_02_clean_16k_mono_no_resample.wav create mode 100644 tests/e2e/models/parakeet_tdt/data/asr_probes/probe_03_clean_48k_mono_resample.wav create mode 100644 tests/e2e/models/parakeet_tdt/data/asr_probes/probe_04_clean_48k_stereo_gain_skew.wav create mode 100644 tests/e2e/models/parakeet_tdt/data/asr_probes/probe_05_low_volume_48k_stereo.wav create mode 100644 tests/e2e/models/parakeet_tdt/data/asr_probes/probe_06_leading_trailing_silence_48k_stereo.wav create mode 100644 tests/e2e/models/parakeet_tdt/data/asr_probes/probe_08_noisy_48k_stereo_snr20.wav create mode 100644 tests/e2e/models/parakeet_tdt/e2e_plugins/__init__.py create mode 100644 tests/e2e/models/parakeet_tdt/e2e_plugins/comparator.py create mode 100644 tests/e2e/models/parakeet_tdt/e2e_plugins/comparators/__init__.py create mode 100644 tests/e2e/models/parakeet_tdt/e2e_plugins/comparators/_helpers.py create mode 100644 tests/e2e/models/parakeet_tdt/e2e_plugins/comparators/parakeet_tdt_asr.py create mode 100644 tests/e2e/models/parakeet_tdt/e2e_plugins/contract.py create mode 100644 tests/e2e/models/parakeet_tdt/e2e_plugins/contracts.py create mode 100644 tests/e2e/models/parakeet_tdt/e2e_plugins/reference.py create mode 100644 tests/e2e/models/parakeet_tdt/e2e_plugins/references/__init__.py create mode 100644 tests/e2e/models/parakeet_tdt/e2e_plugins/references/parakeet_tdt_hf.py create mode 100644 tests/e2e/models/parakeet_tdt/e2e_plugins/runner.py create mode 100644 tests/e2e/models/parakeet_tdt/e2e_plugins/runners/__init__.py create mode 100644 tests/e2e/models/parakeet_tdt/e2e_plugins/runners/parakeet_tdt_speech.py create mode 100644 tests/e2e/models/parakeet_tdt/manifests/parakeet-tdt-0.6b-v3.json create mode 100644 tests/e2e/models/parakeet_tdt/runner.py create mode 100644 tests/e2e/models/parakeet_tdt/test_parakeet_tdt_contracts.py create mode 100644 tests/e2e/models/parakeet_tdt/test_parakeet_tdt_e2e.py create mode 100644 tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe01.json create mode 100644 tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe02.json create mode 100644 tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe03.json create mode 100644 tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe04.json create mode 100644 tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe05.json create mode 100644 tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe06.json create mode 100644 tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe08.json create mode 100644 tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3.json diff --git a/benchmarks/performance/baselines/task_reference.py b/benchmarks/performance/baselines/task_reference.py index 3221d42ae5..15fcba1d94 100644 --- a/benchmarks/performance/baselines/task_reference.py +++ b/benchmarks/performance/baselines/task_reference.py @@ -562,7 +562,7 @@ def _disable_nemo_asr_cuda_graphs(model: Any) -> bool: def _load_asr( arguments: argparse.Namespace, request: Mapping[str, Any], - _options: Mapping[str, Any], + options: Mapping[str, Any], ) -> Session: import torch from tools.validation.engine import _read_wav_float32, _resample_audio @@ -615,11 +615,25 @@ def invoke() -> Mapping[str, Any]: return {"text": _transcription_text(result), "output_tokens": None} else: - from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor + import transformers + from transformers import AutoProcessor + + auto_model_class = str( + options.get("auto_model_class", "AutoModelForSpeechSeq2Seq") + ) + if auto_model_class not in { + "AutoModelForSpeechSeq2Seq", + "AutoModelForTDT", + }: + raise ValueError( + "hf-transformers-asr adapter_options.auto_model_class must be " + "AutoModelForSpeechSeq2Seq or AutoModelForTDT" + ) + model_loader = getattr(transformers, auto_model_class) processor = AutoProcessor.from_pretrained(arguments.model, **_processor_kwargs(arguments)) model = ( - AutoModelForSpeechSeq2Seq.from_pretrained( + model_loader.from_pretrained( arguments.model, **_load_kwargs(arguments, torch) ) .eval() @@ -638,11 +652,19 @@ def invoke() -> Mapping[str, Any]: def invoke() -> Mapping[str, Any]: with torch.inference_mode(): - generated = model.generate(**inputs, max_new_tokens=max_new_tokens) + generate_options: dict[str, Any] = {"max_new_tokens": max_new_tokens} + if auto_model_class == "AutoModelForTDT": + generate_options["return_dict_in_generate"] = True + generated = model.generate(**inputs, **generate_options) sequences = generated.sequences if hasattr(generated, "sequences") else generated token_ids = [int(token) for token in sequences[0].detach().cpu().tolist()] + if auto_model_class == "AutoModelForTDT": + decoded = processor.decode(sequences, skip_special_tokens=True) + else: + decoded = processor.batch_decode(sequences, skip_special_tokens=True) + text = decoded[0] if isinstance(decoded, (list, tuple)) else str(decoded) return { - "text": processor.batch_decode(sequences, skip_special_tokens=True)[0], + "text": text, "token_ids": token_ids, "output_tokens": len(token_ids), } diff --git a/benchmarks/performance/baselines/timing_contracts.py b/benchmarks/performance/baselines/timing_contracts.py index 620e53fa46..e0650b6232 100644 --- a/benchmarks/performance/baselines/timing_contracts.py +++ b/benchmarks/performance/baselines/timing_contracts.py @@ -16,6 +16,7 @@ "elf_flow", "internvl", "locateanything", + "parakeet_tdt", "patchtsmixer", "patchtst", "phi4_multimodal", diff --git a/benchmarks/performance/release.yaml b/benchmarks/performance/release.yaml index e36d6f6346..e7e1ff856a 100644 --- a/benchmarks/performance/release.yaml +++ b/benchmarks/performance/release.yaml @@ -631,6 +631,21 @@ entries: runner: hf-transformers mode: torch-compile compile_scope: model.forward + - id: parakeet_tdt.transcribe + family: parakeet_tdt + operation: transcribe + model: parakeet-tdt-0.6b-v3 + workload: + testcase: parakeet-tdt-0.6b-v3 + baseline: + runner: task-reference + adapter: hf-transformers-asr + mode: hf-eager + reference_backend: hf_transformers + timing_scope: task-model-call-wall + input_preparation_included: false + adapter_options: + auto_model_class: AutoModelForTDT - id: opt.generate family: opt operation: generate diff --git a/python/tensorrt_model_connect/families/__init__.py b/python/tensorrt_model_connect/families/__init__.py index 8dd9be68ba..3e5c1dc0a7 100644 --- a/python/tensorrt_model_connect/families/__init__.py +++ b/python/tensorrt_model_connect/families/__init__.py @@ -45,6 +45,7 @@ class _FamilyMetadata: diffusion_pipeline_classes: frozenset[str] nemo_target_patterns: frozenset[str] nemo_model_type: str + model_resolution_priority: int = 0 nemo_archive_adapter: str = "" hf_allow_patterns: tuple[str, ...] = () hf_required_files: tuple[str, ...] = () @@ -169,6 +170,10 @@ def _load_family_metadata() -> list[_FamilyMetadata]: ), nemo_model_type=raw.get("nemo_model_type", "") if isinstance(raw.get("nemo_model_type"), str) else "", + model_resolution_priority=raw.get("model_resolution_priority", 0) + if isinstance(raw.get("model_resolution_priority", 0), int) + and not isinstance(raw.get("model_resolution_priority", 0), bool) + else 0, nemo_archive_adapter=raw.get("nemo_archive_adapter", "") if isinstance(raw.get("nemo_archive_adapter"), str) else "", hf_allow_patterns=tuple(_metadata_strings(raw.get("hf_allow_patterns"))), @@ -201,6 +206,14 @@ def _load_family_metadata() -> list[_FamilyMetadata]: return metadata +def _model_resolution_metadata() -> list[_FamilyMetadata]: + """Return source adapters from most specific to broadest family claim.""" + return sorted( + _load_family_metadata(), + key=lambda candidate: (-candidate.model_resolution_priority, candidate.id), + ) + + def _add_index_value( index: dict[str, list[_ModuleCandidate]], key: str, @@ -560,7 +573,7 @@ def resolve_config_from_model_dir(model_dir: str | Path) -> dict[str, Any] | Non def resolve_family_model_dir(model_dir: str | Path) -> str | None: """Ask family adapters to stage a non-flat model repository.""" path = Path(model_dir) - for meta in _load_family_metadata(): + for meta in _model_resolution_metadata(): if not meta.model_dir_adapter: continue adapter = _load_metadata_callable_from_file( @@ -600,7 +613,7 @@ def family_prefers_native_default_build( def resolve_nemo_archive_model_dir(nemo_path: str | Path) -> str | None: """Ask family-owned NeMo archive adapters to synthesize a model dir.""" path = Path(nemo_path) - for meta in _load_family_metadata(): + for meta in _model_resolution_metadata(): if not meta.nemo_archive_adapter: continue adapter = _load_metadata_callable_from_file(meta, meta.nemo_archive_adapter) @@ -719,7 +732,7 @@ def resolve_nemo_model_type(config: dict) -> str: """ target = str(config.get("target", "") or config.get("_target_", "")) target_key = target.lower() - for meta in _load_family_metadata(): + for meta in _model_resolution_metadata(): if not meta.nemo_model_type or not meta.nemo_target_patterns: continue for pattern in meta.nemo_target_patterns: diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/MODEL.toml b/python/tensorrt_model_connect/families/parakeet_tdt/MODEL.toml new file mode 100644 index 0000000000..6646529187 --- /dev/null +++ b/python/tensorrt_model_connect/families/parakeet_tdt/MODEL.toml @@ -0,0 +1,19 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +id = "parakeet_tdt" +plugin = "parakeet_tdt" +python_profile_specs = [ + "parakeet_tdt_reference|families/parakeet_tdt/python_profile_requirements/parakeet_tdt_reference.lock.txt|families/parakeet_tdt/python_profile_verify.py|true", +] +default_execution_profiles = [ + "reference|parakeet_tdt_reference", +] +module = "plugin" +model_dir_adapter = "nemo_archive.py|resolve_model_dir" +nemo_archive_adapter = "nemo_archive.py|resolve_nemo_archive" +model_resolution_priority = 100 +nemo_model_type = "parakeet_tdt" +nemo_target_patterns = ["EncDecRNNTBPEModel", "TDT", "tdt"] +aliases = ["parakeet_tdt", "parakeet-tdt", "parakeet_tdt_0_6b_v3"] +prefixes = ["parakeet_tdt", "parakeet-tdt"] diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/__init__.py b/python/tensorrt_model_connect/families/parakeet_tdt/__init__.py new file mode 100644 index 0000000000..e4365dc926 --- /dev/null +++ b/python/tensorrt_model_connect/families/parakeet_tdt/__init__.py @@ -0,0 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from .plugin import ParakeetTDTPlugin, plugin + +__all__ = ["ParakeetTDTPlugin", "plugin"] diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/checkpoint.py b/python/tensorrt_model_connect/families/parakeet_tdt/checkpoint.py new file mode 100644 index 0000000000..ee27a93228 --- /dev/null +++ b/python/tensorrt_model_connect/families/parakeet_tdt/checkpoint.py @@ -0,0 +1,130 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Checkpoint readers and tensor normalization for Parakeet TDT.""" + +from __future__ import annotations + +import io +import tarfile +from pathlib import Path +from typing import Mapping + +import numpy as np + + +class WeightDict(dict): + """Normalized family-owned build tensors.""" + + +def _array(value) -> np.ndarray: + if hasattr(value, "detach"): + value = value.detach().cpu().numpy() + return np.ascontiguousarray(np.asarray(value, dtype=np.float32)) + + +def _transpose(value) -> np.ndarray: + array = _array(value) + if array.ndim != 2: + raise ValueError(f"expected rank-2 weight, got {array.shape}") + return np.ascontiguousarray(array.T) + + +def _transpose_2d(value, name: str, precision: str = "fp32") -> np.ndarray: + """Family graph-builder adapter with the repository's mapper signature.""" + del name, precision + return _transpose(value) + + +def map_transducer_weights( + state: Mapping[str, object], + *, + vocab_size: int, + duration_count: int, + decoder_layers: int, + decoder_hidden_size: int, + encoder_hidden_size: int, +) -> WeightDict: + """Normalize the predictor/projector/joint tensors shared by HF and NeMo layouts.""" + out = WeightDict() + out["pred_embedding"] = _array(state["decoder.embedding.weight"]) + for layer in range(decoder_layers): + prefix = "decoder.lstm" + w_ih = _array(state[f"{prefix}.weight_ih_l{layer}"]) + w_hh = _array(state[f"{prefix}.weight_hh_l{layer}"]) + b_ih = _array(state[f"{prefix}.bias_ih_l{layer}"]) + b_hh = _array(state[f"{prefix}.bias_hh_l{layer}"]) + expected = (4 * decoder_hidden_size, decoder_hidden_size) + if w_ih.shape != expected or w_hh.shape != expected: + raise ValueError( + f"predictor layer {layer} has shapes {w_ih.shape}/{w_hh.shape}, expected {expected}" + ) + out[f"pred.{layer}.w_ih_t"] = np.ascontiguousarray(w_ih.T) + out[f"pred.{layer}.w_hh_t"] = np.ascontiguousarray(w_hh.T) + out[f"pred.{layer}.bias"] = np.ascontiguousarray(b_ih + b_hh) + + out["decoder_projector_w"] = _transpose(state["decoder.decoder_projector.weight"]) + out["decoder_projector_b"] = _array(state["decoder.decoder_projector.bias"]) + out["encoder_projector_w"] = _transpose(state["encoder_projector.weight"]) + out["encoder_projector_b"] = _array(state["encoder_projector.bias"]) + + joint_w = _array(state["joint.head.weight"]) + joint_b = _array(state["joint.head.bias"]) + expected_outputs = vocab_size + duration_count + if joint_w.shape != (expected_outputs, decoder_hidden_size): + raise ValueError( + f"joint.head.weight has shape {joint_w.shape}, expected " + f"{(expected_outputs, decoder_hidden_size)}" + ) + if joint_b.shape != (expected_outputs,): + raise ValueError( + f"joint.head.bias has shape {joint_b.shape}, expected {(expected_outputs,)}" + ) + out["joint_token_w"] = np.ascontiguousarray(joint_w[:vocab_size].T) + out["joint_token_b"] = np.ascontiguousarray(joint_b[:vocab_size]) + out["joint_duration_w"] = np.ascontiguousarray(joint_w[vocab_size:].T) + out["joint_duration_b"] = np.ascontiguousarray(joint_b[vocab_size:]) + out["_encoder_hidden"] = encoder_hidden_size + out["_pred_hidden"] = decoder_hidden_size + out["_pred_layers"] = decoder_layers + out["_vocab"] = vocab_size + out["_duration_count"] = duration_count + return out + + +def load_hf_safetensors(model_dir: str | Path) -> dict[str, np.ndarray]: + from safetensors.numpy import load_file + + path = Path(model_dir) / "model.safetensors" + if not path.is_file(): + raise FileNotFoundError(f"Parakeet HF checkpoint is missing {path.name}") + return dict(load_file(path)) + + +def load_nemo_archive(model_dir: str | Path) -> tuple[dict, dict]: + import torch + import yaml + + root = Path(model_dir) + archive = root if root.suffix == ".nemo" else next(iter(sorted(root.glob("*.nemo"))), None) + if archive is None: + raise FileNotFoundError(f"No .nemo file found in {root}") + state = config = None + with tarfile.open(archive, "r") as tar: + for member in tar.getmembers(): + name = Path(member.name).name + if name == "model_config.yaml": + extracted = tar.extractfile(member) + if extracted is not None: + config = yaml.safe_load(extracted.read()) + elif name == "model_weights.ckpt": + extracted = tar.extractfile(member) + if extracted is not None: + state = torch.load(io.BytesIO(extracted.read()), map_location="cpu", weights_only=False) + if not isinstance(config, dict): + raise FileNotFoundError(f"model_config.yaml not found in {archive}") + if not isinstance(state, dict): + raise FileNotFoundError(f"model_weights.ckpt not found in {archive}") + if isinstance(state.get("state_dict"), dict): + state = state["state_dict"] + return state, config diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/config.py b/python/tensorrt_model_connect/families/parakeet_tdt/config.py new file mode 100644 index 0000000000..84b76789d5 --- /dev/null +++ b/python/tensorrt_model_connect/families/parakeet_tdt/config.py @@ -0,0 +1,92 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Typed configuration for the pinned Parakeet TDT checkpoint contract.""" + +from __future__ import annotations + +import json +from dataclasses import dataclass +from pathlib import Path + + +@dataclass(frozen=True) +class ParakeetTDTConfig: + model_type: str + architectures: tuple[str, ...] + vocab_size: int + blank_id: int + pad_id: int + durations: tuple[int, ...] + max_symbols_per_step: int + encoder_hidden_size: int + encoder_layers: int + encoder_heads: int + encoder_ffn_size: int + encoder_conv_kernel_size: int + encoder_max_positions: int + num_mel_bins: int + subsampling_channels: int + subsampling_factor: int + decoder_hidden_size: int + decoder_layers: int + joint_activation: str + raw: dict + + @classmethod + def from_json(cls, text: str) -> "ParakeetTDTConfig": + raw = json.loads(text) + enc = raw.get("encoder_config") or {} + return cls( + model_type=str(raw.get("model_type", "")), + architectures=tuple(str(item) for item in raw.get("architectures", ())), + vocab_size=int(raw.get("vocab_size", 0)), + blank_id=int(raw.get("blank_token_id", -1)), + pad_id=int(raw.get("pad_token_id", -1)), + durations=tuple(int(item) for item in raw.get("durations", ())), + max_symbols_per_step=int(raw.get("max_symbols_per_step", 0)), + encoder_hidden_size=int(enc.get("hidden_size", 0)), + encoder_layers=int(enc.get("num_hidden_layers", 0)), + encoder_heads=int(enc.get("num_attention_heads", 0)), + encoder_ffn_size=int(enc.get("intermediate_size", 0)), + encoder_conv_kernel_size=int(enc.get("conv_kernel_size", 0)), + encoder_max_positions=int(enc.get("max_position_embeddings", 0)), + num_mel_bins=int(enc.get("num_mel_bins", 0)), + subsampling_channels=int(enc.get("subsampling_conv_channels", 0)), + subsampling_factor=int(enc.get("subsampling_factor", 0)), + decoder_hidden_size=int(raw.get("decoder_hidden_size", 0)), + decoder_layers=int(raw.get("num_decoder_layers", 0)), + joint_activation=str(raw.get("hidden_act", "")), + raw=raw, + ) + + @classmethod + def from_dir(cls, model_dir: str | Path) -> "ParakeetTDTConfig": + return cls.from_json((Path(model_dir) / "config.json").read_text(encoding="utf-8")) + + def validate_supported_checkpoint(self) -> None: + expected = { + "model_type": (self.model_type, "parakeet_tdt"), + "architecture": (self.architectures, ("ParakeetForTDT",)), + "vocab_size": (self.vocab_size, 8193), + "blank_token_id": (self.blank_id, 8192), + "durations": (self.durations, (0, 1, 2, 3, 4)), + "encoder_hidden_size": (self.encoder_hidden_size, 1024), + "encoder_layers": (self.encoder_layers, 24), + "encoder_heads": (self.encoder_heads, 8), + "encoder_ffn_size": (self.encoder_ffn_size, 4096), + "encoder_conv_kernel_size": (self.encoder_conv_kernel_size, 9), + "num_mel_bins": (self.num_mel_bins, 128), + "subsampling_factor": (self.subsampling_factor, 8), + "decoder_hidden_size": (self.decoder_hidden_size, 640), + "decoder_layers": (self.decoder_layers, 2), + "joint_activation": (self.joint_activation, "relu"), + "max_symbols_per_step": (self.max_symbols_per_step, 10), + } + mismatches = [ + f"{name}={actual!r}, expected {wanted!r}" + for name, (actual, wanted) in expected.items() + if actual != wanted + ] + if mismatches: + raise ValueError("Unsupported Parakeet TDT checkpoint contract: " + "; ".join(mismatches)) diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/decode_policy.py b/python/tensorrt_model_connect/families/parakeet_tdt/decode_policy.py new file mode 100644 index 0000000000..269a16711a --- /dev/null +++ b/python/tensorrt_model_connect/families/parakeet_tdt/decode_policy.py @@ -0,0 +1,33 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Pure greedy TDT state transition used by tests and native parity review.""" + +from __future__ import annotations + +from dataclasses import dataclass +from typing import Sequence + + +@dataclass(frozen=True) +class TDTGreedyDecision: + emit_token: bool + frame_advance: int + + +def make_tdt_greedy_decision( + token_id: int, + duration_index: int, + durations: Sequence[int], + blank_id: int, +) -> TDTGreedyDecision: + if not 0 <= duration_index < len(durations): + raise ValueError(f"duration_index {duration_index} is outside {len(durations)} durations") + duration = int(durations[duration_index]) + if duration < 0: + raise ValueError("TDT durations must be non-negative") + + emit = token_id != blank_id + if duration == 0 and not emit: + duration = 1 + return TDTGreedyDecision(emit_token=emit, frame_advance=duration) diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/fastconformer.py b/python/tensorrt_model_connect/families/parakeet_tdt/fastconformer.py new file mode 100644 index 0000000000..31e6c99b7f --- /dev/null +++ b/python/tensorrt_model_connect/families/parakeet_tdt/fastconformer.py @@ -0,0 +1,648 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Parakeet TDT-owned FastConformer encoder graph. + +The v3 checkpoint uses 24 Macaron Conformer blocks, 8x depthwise-striding +subsampling, Transformer-XL relative positions, and a 128-bin acoustic input. +Both Hugging Face safetensors and NeMo archive tensors are normalized by the +family plugin before entering these graph helpers. +""" + +from __future__ import annotations + +import io +import json +import math +import sys +import tarfile +from pathlib import Path + +import numpy as np +from tensorrt_model_connect import trt_compat + +from . import graph_ops + + +trt = trt_compat.get_trt() + + +def _to_np(t) -> np.ndarray: + if hasattr(t, "numpy"): + return t.detach().cpu().numpy().astype(np.float32) + return np.asarray(t, dtype=np.float32) + + +def _load_nemo_archive(path: str): + import torch + import yaml + + nemo_path = Path(path) + if nemo_path.is_dir(): + nemo_files = sorted(nemo_path.glob("*.nemo")) + if nemo_files: + nemo_path = nemo_files[0] + else: + raise FileNotFoundError(f"No .nemo file found in {path}") + state_dict = config_dict = None + with tarfile.open(str(nemo_path), "r") as tar: + for member in tar.getmembers(): + bn = Path(member.name).name + if bn == "model_weights.ckpt": + f = tar.extractfile(member) + if f: + state_dict = torch.load( + io.BytesIO(f.read()), map_location="cpu", weights_only=False + ) + elif bn == "model_config.yaml": + f = tar.extractfile(member) + if f: + config_dict = yaml.safe_load(f.read()) + if state_dict is None: + raise FileNotFoundError(f"model_weights.ckpt not found in {nemo_path}") + if config_dict is None: + raise FileNotFoundError(f"model_config.yaml not found in {nemo_path}") + return state_dict, config_dict + + +def _extract_tokenizer_from_nemo(nemo_path: str, dest_dir: Path) -> None: + nemo = Path(nemo_path) + if nemo.is_dir(): + nemo_files = sorted(nemo.glob("*.nemo")) + if nemo_files: + nemo = nemo_files[0] + with tarfile.open(str(nemo), "r") as tar: + for member in tar.getmembers(): + bn = Path(member.name).name + if bn.endswith(".model") and "tokenizer" in bn.lower(): + f = tar.extractfile(member) + if f: + (dest_dir / "tokenizer.model").write_bytes(f.read()) + break + # Generate a fast tokenizer.json from the SentencePiece model. + # Use the tokenizers library directly to avoid HF warnings in stdout. + tok_model_path = dest_dir / "tokenizer.model" + tok_json_path = dest_dir / "tokenizer.json" + if tok_model_path.exists() and not tok_json_path.exists(): + try: + import sentencepiece as spm + + sp = spm.SentencePieceProcessor() + sp.Load(str(tok_model_path)) + # Build a minimal tokenizer.json compatible with HF fast tokenizer + vocab = {sp.IdToPiece(i): i for i in range(sp.GetPieceSize())} + tok_json = { + "version": "1.0", + "model": { + "type": "Unigram", + "unk_id": sp.unk_id(), + "vocab": [[piece, 0.0] for piece in vocab], + }, + "added_tokens": [], + "normalizer": None, + "pre_tokenizer": None, + "post_processor": None, + "decoder": {"type": "Metaspace", "replacement": "\u2581", "add_prefix_space": True}, + } + tok_json_path.write_text(json.dumps(tok_json)) + except Exception: + pass + + tok_cfg = dest_dir / "tokenizer_config.json" + if not tok_cfg.exists(): + tok_cfg.write_text( + json.dumps( + { + "tokenizer_class": "PreTrainedTokenizerFast", + }, + indent=2, + ) + ) + + +def _relative_pe(seq_len: int, d_model: int, max_len: int = 5000) -> np.ndarray: + """Compute relative PE for Transformer-XL attention. + + Matches NeMo RelPositionalEncoding: builds table with positive and + negative position encodings, where negative uses sin(-k*d) = -sin(k*d). + """ + pos = np.arange(0, max_len, dtype=np.float32)[:, np.newaxis] + div = np.exp(np.arange(0, d_model, 2, dtype=np.float32) * -(math.log(10000.0) / d_model)) + + pe_pos = np.zeros((max_len, d_model), dtype=np.float32) + pe_pos[:, 0::2] = np.sin(pos * div) + pe_pos[:, 1::2] = np.cos(pos * div) + pe_pos = pe_pos[::-1].copy() + + pe_neg = np.zeros((max_len, d_model), dtype=np.float32) + pe_neg[:, 0::2] = np.sin(-pos * div) + pe_neg[:, 1::2] = np.cos(-pos * div) + pe_neg = pe_neg[1:] + + pe_full = np.concatenate([pe_pos, pe_neg], axis=0) + start = max_len - seq_len + end = max_len + seq_len - 1 + return pe_full[start:end] + + +def _compute_enc_seq_len(mel_length: int) -> int: + """Encoder time output after 3 CausalConv2D stride-2 stages. + + Time dim uses symmetric padding (left=1, right=1): (t+2-3)//2+1 = (t-1)//2+1 + """ + t = mel_length + for _ in range(3): + t = (t + 2 - 3) // 2 + 1 + return t + + +def _compute_causal_enc_seq_len(mel_length: int) -> int: + t = mel_length + for _ in range(3): + t = t // 2 + 1 + return t + + +# --------------------------------------------------------------------------- +# Encoder TRT graph helpers +# --------------------------------------------------------------------------- + + +def _build_subsampling( + network, mel_input, weights, sub_ch, hidden, num_mel_bins, mel_length, dtype=np.float32 +): + causal_downsampling = bool(weights.get("_causal_downsampling", False)) + + def add_subsample_conv(inp, weight, bias, out_channels, *, groups=1): + if causal_downsampling: + pad = network.add_padding_nd(inp, pre_padding=(2, 2), post_padding=(1, 1)) + inp = pad.get_output(0) + padding = (0, 0) + else: + padding = (1, 1) + return graph_ops.add_conv2d( + network, + inp, + weight=weight, + bias=bias, + out_channels=out_channels, + kernel_size=(3, 3), + stride=(2, 2), + padding=padding, + groups=groups, + dtype=dtype, + ) + + # NeMo ConformerEncoder passes audio as [B, T, F] to pre_encode. + # MaskedConvSequential.forward unsqueezes to [B, 1, T, F]. + # So Conv2d input is [1, 1, mel_length, mel_bins] (time=H, features=W). + # Our mel_input is [mel_bins, mel_length] = [F, T]. Transpose to [T, F]. + tr_mel = network.add_shuffle(mel_input) + tr_mel.first_transpose = trt.Permutation([1, 0]) # [F,T] 闂?[T,F] + ri = network.add_shuffle(tr_mel.get_output(0)) + ri.reshape_dims = (1, 1, mel_length, num_mel_bins) # [1, 1, T, F] + x = ri.get_output(0) + # Standard Conv2d with symmetric padding + ReLU (NOT SiLU, NOT causal) + x = add_subsample_conv(x, weights["enc_sub_conv0_w"], weights["enc_sub_conv0_b"], sub_ch) + x = graph_ops.add_activation(network, x, "relu", dtype=dtype) + for s in range(2): + x = add_subsample_conv( + x, weights[f"enc_sub_dw{s}_w"], weights[f"enc_sub_dw{s}_b"], sub_ch, groups=sub_ch + ) + x = graph_ops.add_conv2d( + network, + x, + weight=weights[f"enc_sub_pw{s}_w"], + bias=weights[f"enc_sub_pw{s}_b"], + out_channels=sub_ch, + kernel_size=(1, 1), + dtype=dtype, + ) + x = graph_ops.add_activation(network, x, "relu", dtype=dtype) + # After convs: [1, C, T_out, F_out] where T=time, F=features + time_out = int(weights.get("_enc_seq", _compute_enc_seq_len(mel_length))) + sub_out_in = int(weights["enc_sub_out_w"].shape[0]) + feat_out = sub_out_in // sub_ch + # NeMo: x.transpose(1,2).reshape(B,T,-1) on [B,C,T,F] + # = permute(0,2,1,3) 闂?[B,T,C,F], reshape 闂?[T, C*F] + tr = network.add_shuffle(x) + tr.first_transpose = trt.Permutation([0, 2, 1, 3]) # [B,C,T,F] 闂?[B,T,C,F] + tr.reshape_dims = (time_out, sub_ch * feat_out) # [T, C*F] + out = graph_ops.add_matmul_rhs_constant( + network, tr.get_output(0), sub_ch * feat_out, hidden, weights["enc_sub_out_w"], dtype=dtype + ) + return graph_ops.add_bias_sum(network, out, hidden, weights["enc_sub_out_b"], dtype=dtype) + + +def _rel_shift(network, x, H, S, dtype=np.float32): + zeros = graph_ops.add_constant( + network, (H, S, 1), np.zeros((H, S, 1), dtype=dtype), dtype=dtype + ) + padded = network.add_concatenation([zeros, x]) + padded.axis = 2 + rs1 = network.add_shuffle(padded.get_output(0)) + rs1.reshape_dims = (H, 2 * S, S) + sl1 = network.add_slice( + rs1.get_output(0), start=(0, 1, 0), shape=(H, 2 * S - 1, S), stride=(1, 1, 1) + ) + rs2 = network.add_shuffle(sl1.get_output(0)) + rs2.reshape_dims = (H, S, 2 * S - 1) + sl2 = network.add_slice(rs2.get_output(0), start=(0, 0, 0), shape=(H, S, S), stride=(1, 1, 1)) + return sl2.get_output(0) + + +def _add_rel_pos_attention( + network, hs, weights, pfx, hidden, H, D, S, rel_pe_proj, eps, enc_mask=None, dtype=np.float32 +): + normed = graph_ops.add_layer_norm( + network, + hs, + hidden, + weights[f"{pfx}.norm_sa"], + weights[f"{pfx}.norm_sa_b"], + eps, + dtype=dtype, + ) + q = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant( + network, normed, hidden, hidden, weights[f"{pfx}.w_q"], dtype=dtype + ), + hidden, + weights[f"{pfx}.b_q"], + dtype=dtype, + ) + k = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant( + network, normed, hidden, hidden, weights[f"{pfx}.w_k"], dtype=dtype + ), + hidden, + weights[f"{pfx}.b_k"], + dtype=dtype, + ) + v = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant( + network, normed, hidden, hidden, weights[f"{pfx}.w_v"], dtype=dtype + ), + hidden, + weights[f"{pfx}.b_v"], + dtype=dtype, + ) + qr = network.add_shuffle(q) + qr.reshape_dims = (S, H, D) + kr = network.add_shuffle(k) + kr.reshape_dims = (S, H, D) + vr = network.add_shuffle(v) + vr.reshape_dims = (S, H, D) + bu = graph_ops.add_constant(network, (1, H, D), weights[f"{pfx}.pos_bias_u"], dtype=dtype) + bv = graph_ops.add_constant(network, (1, H, D), weights[f"{pfx}.pos_bias_v"], dtype=dtype) + qu = network.add_elementwise(qr.get_output(0), bu, trt.ElementWiseOperation.SUM).get_output(0) + qv = network.add_elementwise(qr.get_output(0), bv, trt.ElementWiseOperation.SUM).get_output(0) + qu_t = network.add_shuffle(qu) + qu_t.first_transpose = trt.Permutation([1, 0, 2]) + qv_t = network.add_shuffle(qv) + qv_t.first_transpose = trt.Permutation([1, 0, 2]) + k_t = network.add_shuffle(kr.get_output(0)) + k_t.first_transpose = trt.Permutation([1, 0, 2]) + v_t = network.add_shuffle(vr.get_output(0)) + v_t.first_transpose = trt.Permutation([1, 0, 2]) + cs = network.add_matrix_multiply( + qu_t.get_output(0), + trt.MatrixOperation.NONE, + k_t.get_output(0), + trt.MatrixOperation.TRANSPOSE, + ).get_output(0) + rp_t = network.add_shuffle(rel_pe_proj) + rp_t.first_transpose = trt.Permutation([1, 0, 2]) + ps_raw = network.add_matrix_multiply( + qv_t.get_output(0), + trt.MatrixOperation.NONE, + rp_t.get_output(0), + trt.MatrixOperation.TRANSPOSE, + ).get_output(0) + ps = _rel_shift(network, ps_raw, H, S, dtype=dtype) + total = network.add_elementwise(cs, ps, trt.ElementWiseOperation.SUM).get_output(0) + sc = graph_ops.add_constant( + network, (1, 1, 1), np.array([1.0 / math.sqrt(D)], dtype=dtype), dtype=dtype + ) + scaled = network.add_elementwise(total, sc, trt.ElementWiseOperation.PROD).get_output(0) + # Apply encoder sequence mask: [1, 1, S] added to scores [H, S, S] + if enc_mask is not None: + scaled = network.add_elementwise(scaled, enc_mask, trt.ElementWiseOperation.SUM).get_output( + 0 + ) + # Conformer relative-position attention uses a rel-shifted Q*R term in + # the logits, which native IAttention cannot represent as a plain mask. + sm = network.add_softmax(scaled) + sm.axes = 1 << 2 + ao = network.add_matrix_multiply( + sm.get_output(0), trt.MatrixOperation.NONE, v_t.get_output(0), trt.MatrixOperation.NONE + ).get_output(0) + at = network.add_shuffle(ao) + at.first_transpose = trt.Permutation([1, 0, 2]) + af = network.add_shuffle(at.get_output(0)) + af.reshape_dims = (S, hidden) + return graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant( + network, af.get_output(0), hidden, hidden, weights[f"{pfx}.w_o"], dtype=dtype + ), + hidden, + weights[f"{pfx}.b_o"], + dtype=dtype, + ) + + +def _add_causal_depthwise_conv1d(network, x, weights, pfx, hidden, kern, dtype=np.float32): + pad = kern - 1 + if pad > 0: + zeros = graph_ops.add_constant( + network, (1, hidden, pad), np.zeros((1, hidden, pad), dtype=dtype), dtype=dtype + ) + cat = network.add_concatenation([zeros, x]) + cat.axis = 2 + x = cat.get_output(0) + return graph_ops.add_conv1d( + network, + x, + weight=weights[f"{pfx}.cdw_w"], + bias=weights[f"{pfx}.cdw_b"], + out_channels=hidden, + kernel_size=kern, + groups=hidden, + dtype=dtype, + ) + + +def _add_conv_norm(network, x, weights, pfx, hidden, S, eps, conv_norm_type, dtype=np.float32): + if conv_norm_type == "layer_norm": + r1 = network.add_shuffle(x) + r1.reshape_dims = (hidden, S) + r2 = network.add_shuffle(r1.get_output(0)) + r2.first_transpose = trt.Permutation([1, 0]) + normed = graph_ops.add_layer_norm( + network, + r2.get_output(0), + hidden, + weights[f"{pfx}.bn_w"], + weights[f"{pfx}.bn_b"], + eps, + dtype=dtype, + ) + r3 = network.add_shuffle(normed) + r3.first_transpose = trt.Permutation([1, 0]) + r4 = network.add_shuffle(r3.get_output(0)) + r4.reshape_dims = (1, hidden, S) + return r4.get_output(0) + + bn = network.add_shuffle(x) + bn.reshape_dims = (1, hidden, 1, S) + x = graph_ops.add_batch_norm_2d( + network, + bn.get_output(0), + hidden, + gamma=weights[f"{pfx}.bn_w"], + beta=weights[f"{pfx}.bn_b"], + running_mean=weights[f"{pfx}.bn_m"], + running_var=weights[f"{pfx}.bn_v"], + dtype=dtype, + ) + bo = network.add_shuffle(x) + bo.reshape_dims = (1, hidden, S) + return bo.get_output(0) + + +def _add_conv_module( + network, + hs, + weights, + pfx, + hidden, + kern, + S, + eps, + conv_norm_type="batch_norm", + conv_context_size="symmetric", + dtype=np.float32, +): + normed = graph_ops.add_layer_norm( + network, + hs, + hidden, + weights[f"{pfx}.norm_conv"], + weights[f"{pfx}.norm_conv_b"], + eps, + dtype=dtype, + ) + r1 = network.add_shuffle(normed) + r1.first_transpose = trt.Permutation([1, 0]) + r2 = network.add_shuffle(r1.get_output(0)) + r2.reshape_dims = (1, hidden, S) + x = graph_ops.add_conv1d( + network, + r2.get_output(0), + weight=weights[f"{pfx}.cpw1_w"], + bias=weights[f"{pfx}.cpw1_b"], + out_channels=2 * hidden, + kernel_size=1, + dtype=dtype, + ) + xa = network.add_slice(x, start=(0, 0, 0), shape=(1, hidden, S), stride=(1, 1, 1)).get_output(0) + xb = network.add_slice( + x, start=(0, hidden, 0), shape=(1, hidden, S), stride=(1, 1, 1) + ).get_output(0) + gate = network.add_activation(xb, trt.ActivationType.SIGMOID).get_output(0) + x = network.add_elementwise(xa, gate, trt.ElementWiseOperation.PROD).get_output(0) + if conv_context_size == "causal": + x = _add_causal_depthwise_conv1d(network, x, weights, pfx, hidden, kern, dtype=dtype) + else: + x = graph_ops.add_conv1d( + network, + x, + weight=weights[f"{pfx}.cdw_w"], + bias=weights[f"{pfx}.cdw_b"], + out_channels=hidden, + kernel_size=kern, + padding=kern // 2, + groups=hidden, + dtype=dtype, + ) + x = _add_conv_norm(network, x, weights, pfx, hidden, S, eps, conv_norm_type, dtype=dtype) + x = graph_ops.add_activation(network, x, "silu", dtype=dtype) + x = graph_ops.add_conv1d( + network, + x, + weight=weights[f"{pfx}.cpw2_w"], + bias=weights[f"{pfx}.cpw2_b"], + out_channels=hidden, + kernel_size=1, + dtype=dtype, + ) + r3 = network.add_shuffle(x) + r3.reshape_dims = (hidden, S) + r4 = network.add_shuffle(r3.get_output(0)) + r4.first_transpose = trt.Permutation([1, 0]) + return r4.get_output(0) + + +def _add_half_ffn(network, hs, weights, pfx, hidden, ffn, eps, dtype=np.float32): + normed = graph_ops.add_layer_norm( + network, hs, hidden, weights[f"{pfx}.norm"], weights[f"{pfx}.norm_b"], eps, dtype=dtype + ) + fc1 = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant( + network, normed, hidden, ffn, weights[f"{pfx}.w1"], dtype=dtype + ), + ffn, + weights[f"{pfx}.b1"], + dtype=dtype, + ) + act = graph_ops.add_activation(network, fc1, "silu", dtype=dtype) + fc2 = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant( + network, act, ffn, hidden, weights[f"{pfx}.w2"], dtype=dtype + ), + hidden, + weights[f"{pfx}.b2"], + dtype=dtype, + ) + half = graph_ops.add_constant(network, (1, 1), np.array([0.5], dtype=dtype), dtype=dtype) + return network.add_elementwise(fc2, half, trt.ElementWiseOperation.PROD).get_output(0) + + +def _add_conformer_block( + network, + hs, + weights, + pfx, + hidden, + H, + D, + ffn, + kern, + S, + rpe, + eps, + enc_mask=None, + conv_norm_type="batch_norm", + conv_context_size="symmetric", + dtype=np.float32, +): + ffn1 = _add_half_ffn(network, hs, weights, f"{pfx}.ff1", hidden, ffn, eps, dtype=dtype) + hs = network.add_elementwise(hs, ffn1, trt.ElementWiseOperation.SUM).get_output(0) + attn = _add_rel_pos_attention( + network, hs, weights, pfx, hidden, H, D, S, rpe, eps, enc_mask, dtype=dtype + ) + hs = network.add_elementwise(hs, attn, trt.ElementWiseOperation.SUM).get_output(0) + conv = _add_conv_module( + network, + hs, + weights, + pfx, + hidden, + kern, + S, + eps, + conv_norm_type=conv_norm_type, + conv_context_size=conv_context_size, + dtype=dtype, + ) + hs = network.add_elementwise(hs, conv, trt.ElementWiseOperation.SUM).get_output(0) + ffn2 = _add_half_ffn(network, hs, weights, f"{pfx}.ff2", hidden, ffn, eps, dtype=dtype) + hs = network.add_elementwise(hs, ffn2, trt.ElementWiseOperation.SUM).get_output(0) + return graph_ops.add_layer_norm( + network, + hs, + hidden, + weights[f"{pfx}.norm_out"], + weights[f"{pfx}.norm_out_b"], + eps, + dtype=dtype, + ) + + +def _build_encoder(config, weights, *, precision="fp32", verbose=False): + el = weights["_enc_layers"] + eh = weights["_enc_heads"] + h = weights["_hidden"] + hd = weights["_head_dim"] + ef = weights["_enc_ffn"] + k = weights["_kern"] + mb = weights["_mel_bins"] + ml = weights["_mel_length"] + es = weights["_enc_seq"] + sc = weights["_sub_ch"] + conv_norm_type = str(weights.get("_conv_norm_type", "batch_norm")).lower() + conv_context_size = str(weights.get("_conv_context_size", "symmetric")).lower() + if precision == "fp16": + work_np_dtype, work_trt_dtype = np.float16, trt.float16 + elif precision == "fp32": + work_np_dtype, work_trt_dtype = np.float32, trt.float32 + else: + raise ValueError( + f"Unsupported streaming encoder precision {precision!r}; expected fp32 or fp16" + ) + + log = trt.Logger(trt.Logger.VERBOSE if verbose else trt.Logger.WARNING) + b = trt.Builder(log) + net = b.create_network(1 << int(trt.NetworkDefinitionCreationFlag.STRONGLY_TYPED)) + tc = b.create_builder_config() + tc.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, 2 << 30) + + eps = graph_ops.add_constant( + net, (1, 1), np.array([1e-5], dtype=work_np_dtype), dtype=work_np_dtype + ) + mel = net.add_input("mel_features", trt.float32, (mb, ml)) + # Encoder attention mask: [1, 1, enc_seq] 闂?0.0 for valid, -10000.0 for padded. + # Applied additively to self-attention scores before softmax. + mask_shape = ( + (1, es, es) if bool(weights.get("_encoder_attention_mask_2d", False)) else (1, 1, es) + ) + enc_mask = net.add_input("encoder_mask", trt.float32, mask_shape) + if work_trt_dtype != trt.float32: + mel = net.add_cast(mel, work_trt_dtype).get_output(0) + enc_mask = net.add_cast(enc_mask, work_trt_dtype).get_output(0) + + hs = _build_subsampling(net, mel, weights, sc, h, mb, ml, dtype=work_np_dtype) + for li in range(el): + pfx = f"el.{li}" + rpe = graph_ops.add_constant( + net, (2 * es - 1, eh, hd), weights[f"{pfx}.rpe_proj"], dtype=work_np_dtype + ) + hs = _add_conformer_block( + net, + hs, + weights, + pfx, + h, + eh, + hd, + ef, + k, + es, + rpe, + eps, + enc_mask, + conv_norm_type=conv_norm_type, + conv_context_size=conv_context_size, + dtype=work_np_dtype, + ) + + output = hs + if output.dtype != trt.float32: + output = net.add_cast(output, trt.float32).get_output(0) + output.name = "encoder_output" + net.mark_output(output) + if verbose: + print( + f"[trtmc build] Building Parakeet TDT encoder ({el}L, h={h}, heads={eh}, seq={es})", + file=sys.stderr, + ) + plan = b.build_serialized_network(net, tc) + if plan is None: + raise RuntimeError("Parakeet TDT encoder build failed") + return bytes(plan) diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/graph_ops.py b/python/tensorrt_model_connect/families/parakeet_tdt/graph_ops.py new file mode 100644 index 0000000000..f1d74e6d1f --- /dev/null +++ b/python/tensorrt_model_connect/families/parakeet_tdt/graph_ops.py @@ -0,0 +1,426 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Family-owned TensorRT graph operations for Python engine builds. + +Tensor names and shapes must stay compatible with the C++ bundle runtime. +""" + +from __future__ import annotations + +import numpy as np +from tensorrt_model_connect import trt_compat + + +trt = trt_compat.get_trt() + + +def _cast_back_to_trt_dtype( + network: trt.INetworkDefinition, + tensor: trt.ITensor, + target_dtype: trt.DataType, +) -> trt.ITensor: + """Cast a tensor back to the original TRT runtime dtype after FP32 compute.""" + if tensor.dtype == target_dtype: + return tensor + return network.add_cast(tensor, target_dtype).get_output(0) + + +def add_constant( + network: trt.INetworkDefinition, + shape: tuple[int, ...], + values: np.ndarray, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """Add a constant tensor in the given *dtype* (default float32).""" + weights = trt.Weights(np.ascontiguousarray(values, dtype=dtype)) + layer = network.add_constant(shape, weights) + return layer.get_output(0) + + +def add_matmul_rhs_constant( + network: trt.INetworkDefinition, + lhs: trt.ITensor, + lhs_width: int, + rhs_width: int, + rhs_weights: np.ndarray, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """Matrix multiply: lhs @ rhs_constant. rhs is [lhs_width, rhs_width].""" + rank = len(tuple(lhs.shape)) + rhs_shape = (lhs_width, rhs_width) if rank <= 2 else (1,) * (rank - 2) + (lhs_width, rhs_width) + rhs = add_constant( + network, + rhs_shape, + np.asarray(rhs_weights).reshape(rhs_shape), + dtype=dtype, + ) + rhs = _cast_back_to_trt_dtype(network, rhs, lhs.dtype) + mm = network.add_matrix_multiply( + lhs, + trt.MatrixOperation.NONE, + rhs, + trt.MatrixOperation.NONE, + ) + return _cast_back_to_trt_dtype(network, mm.get_output(0), lhs.dtype) + + +def add_bias_sum( + network: trt.INetworkDefinition, + inp: trt.ITensor, + width: int, + bias: np.ndarray, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """Element-wise add a bias broadcast over all non-feature axes.""" + rank = len(tuple(inp.shape)) + bias_shape = (width,) if rank <= 1 else (1,) * (rank - 1) + (width,) + bias_t = add_constant(network, bias_shape, np.asarray(bias).reshape(bias_shape), dtype=dtype) + bias_t = _cast_back_to_trt_dtype(network, bias_t, inp.dtype) + s = network.add_elementwise(inp, bias_t, trt.ElementWiseOperation.SUM) + return _cast_back_to_trt_dtype(network, s.get_output(0), inp.dtype) + + +def add_layer_norm( + network: trt.INetworkDefinition, + inp: trt.ITensor, + hidden_size: int, + gamma: np.ndarray, + beta: np.ndarray, + eps_tensor: trt.ITensor, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """LayerNorm: gamma * ((x - mean) / sqrt(var + eps)) + beta. + + FP32 precision boundary: when dtype != float32, casts to FP32 before + norm computation for numerical stability, then casts back. + """ + need_cast = dtype != np.float32 + output_dtype = inp.dtype + if need_cast: + inp = network.add_cast(inp, trt.float32).get_output(0) + eps_tensor = network.add_cast(eps_tensor, trt.float32).get_output(0) + # mean = reduce_mean(x) + mean = network.add_reduce(inp, trt.ReduceOperation.AVG, 1 << 1, keep_dims=True) + # x - mean + centered = network.add_elementwise(inp, mean.get_output(0), trt.ElementWiseOperation.SUB) + # variance = mean((x - mean)^2) + sq = network.add_elementwise( + centered.get_output(0), centered.get_output(0), trt.ElementWiseOperation.PROD + ) + var = network.add_reduce(sq.get_output(0), trt.ReduceOperation.AVG, 1 << 1, keep_dims=True) + # sqrt(var + eps) + denom_in = network.add_elementwise(var.get_output(0), eps_tensor, trt.ElementWiseOperation.SUM) + sqrt_l = network.add_unary(denom_in.get_output(0), trt.UnaryOperation.SQRT) + recip = network.add_unary(sqrt_l.get_output(0), trt.UnaryOperation.RECIP) + # normalized = (x - mean) / sqrt(var + eps) + normalized = network.add_elementwise( + centered.get_output(0), recip.get_output(0), trt.ElementWiseOperation.PROD + ) + # gamma * normalized + beta + gamma_t = add_constant(network, (1, hidden_size), gamma, dtype=np.float32) + scaled = network.add_elementwise( + normalized.get_output(0), gamma_t, trt.ElementWiseOperation.PROD + ) + beta_t = add_constant(network, (1, hidden_size), beta, dtype=np.float32) + result = network.add_elementwise(scaled.get_output(0), beta_t, trt.ElementWiseOperation.SUM) + result = result.get_output(0) + if need_cast: + result = _cast_back_to_trt_dtype(network, result, output_dtype) + return result + + +def add_gelu_new( + network: trt.INetworkDefinition, + inp: trt.ITensor, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """GELU (tanh approximation): 0.5*x*(1+tanh(sqrt(2/pi)*(x+0.044715*x^3))). + + Constants are cast to ``inp.dtype`` so the elementwise ops are valid in + a STRONGLY_TYPED network when ``inp`` is bf16 (storage np_dtype is + fp16, runtime trt_dtype is bfloat16) or any other non-matching combo. + """ + target_dtype = inp.dtype + const_shape = (1,) * max(1, len(tuple(inp.shape))) + + def _const(name, value): + c = add_constant(network, const_shape, np.array([value], dtype=np.float32), dtype=dtype) + return _cast_back_to_trt_dtype(network, c, target_dtype) + + # x^3 + x_sq = network.add_elementwise(inp, inp, trt.ElementWiseOperation.PROD) + x_cu = network.add_elementwise(x_sq.get_output(0), inp, trt.ElementWiseOperation.PROD) + # 0.044715 * x^3 + coeff = _const("coeff", 0.044715) + scaled_cube = network.add_elementwise(x_cu.get_output(0), coeff, trt.ElementWiseOperation.PROD) + # x + 0.044715 * x^3 + inner_sum = network.add_elementwise( + inp, scaled_cube.get_output(0), trt.ElementWiseOperation.SUM + ) + # sqrt(2/pi) * (x + 0.044715 * x^3) + sqrt_2_over_pi = _const("sqrt_2_over_pi", np.sqrt(2.0 / np.pi)) + tanh_arg = network.add_elementwise( + sqrt_2_over_pi, inner_sum.get_output(0), trt.ElementWiseOperation.PROD + ) + # tanh(...) + tanh_l = network.add_activation(tanh_arg.get_output(0), trt.ActivationType.TANH) + # 1 + tanh(...) + one = _const("one", 1.0) + one_plus_tanh = network.add_elementwise(one, tanh_l.get_output(0), trt.ElementWiseOperation.SUM) + # 0.5 * x + half = _const("half", 0.5) + half_x = network.add_elementwise(half, inp, trt.ElementWiseOperation.PROD) + # 0.5 * x * (1 + tanh(...)) + result = network.add_elementwise( + half_x.get_output(0), one_plus_tanh.get_output(0), trt.ElementWiseOperation.PROD + ) + return result.get_output(0) + + +def add_activation( + network: trt.INetworkDefinition, + inp: trt.ITensor, + activation_type: str, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """Dispatch activation by name: 'silu', 'gelu_new', 'gelu', 'relu', 'relu2'/'squared_relu'.""" + if activation_type in ("gelu_new", "gelu"): + return add_gelu_new(network, inp, dtype=dtype) + elif activation_type == "relu": + act = network.add_activation(inp, trt.ActivationType.RELU) + return act.get_output(0) + elif activation_type in ("relu2", "squared_relu"): + relu = network.add_activation(inp, trt.ActivationType.RELU) + sq = network.add_elementwise( + relu.get_output(0), relu.get_output(0), trt.ElementWiseOperation.PROD + ) + return sq.get_output(0) + elif activation_type == "silu": + sigmoid = network.add_activation(inp, trt.ActivationType.SIGMOID) + swish = network.add_elementwise(inp, sigmoid.get_output(0), trt.ElementWiseOperation.PROD) + return swish.get_output(0) + else: + raise ValueError(f"Unsupported activation: {activation_type}") + + +# --------------------------------------------------------------------------- +# Conv / Norm / Resize ops for segmentation and audio models +# --------------------------------------------------------------------------- + + +def add_conv2d( + network: trt.INetworkDefinition, + inp: trt.ITensor, + weight: np.ndarray, + bias: np.ndarray | None, + out_channels: int, + kernel_size: tuple[int, int], + stride: tuple[int, int] = (1, 1), + padding: tuple[int, int] = (0, 0), + groups: int = 1, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """2D convolution wrapper. + + Input: [N, C_in, H, W] + Weight: [C_out, C_in/groups, kH, kW] + Output: [N, C_out, H', W'] + """ + conv_w = trt.Weights(np.ascontiguousarray(weight, dtype=dtype)) + conv_b = trt.Weights() + if bias is not None: + conv_b = trt.Weights(np.ascontiguousarray(bias, dtype=dtype)) + + conv = network.add_convolution_nd( + inp, + num_output_maps=out_channels, + kernel_shape=kernel_size, + kernel=conv_w, + bias=conv_b, + ) + conv.stride_nd = stride + conv.padding_nd = padding + conv.num_groups = groups + return conv.get_output(0) + + +def add_batch_norm_2d( + network: trt.INetworkDefinition, + inp: trt.ITensor, + num_channels: int, + gamma: np.ndarray, + beta: np.ndarray, + running_mean: np.ndarray, + running_var: np.ndarray, + eps: float = 1e-5, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """Fused BatchNorm2d: gamma * (x - mean) / sqrt(var + eps) + beta. + + Input: [N, C, H, W] + Output: same shape + + FP32 precision boundary: when dtype != float32, casts to FP32 before + norm computation for numerical stability, then casts back. + """ + need_cast = dtype != np.float32 + output_dtype = inp.dtype + if need_cast: + inp = network.add_cast(inp, trt.float32).get_output(0) + # Fuse into scale + shift + scale = gamma / np.sqrt(running_var + eps) + shift = beta - running_mean * scale + + scale_t = add_constant( + network, + (1, num_channels, 1, 1), + scale.reshape(1, -1, 1, 1).astype(np.float32), + dtype=np.float32, + ) + shift_t = add_constant( + network, + (1, num_channels, 1, 1), + shift.reshape(1, -1, 1, 1).astype(np.float32), + dtype=np.float32, + ) + + scaled = network.add_elementwise(inp, scale_t, trt.ElementWiseOperation.PROD) + result = network.add_elementwise( + scaled.get_output(0), shift_t, trt.ElementWiseOperation.SUM + ).get_output(0) + if need_cast: + result = _cast_back_to_trt_dtype(network, result, output_dtype) + return result + + +def add_conv1d( + network: trt.INetworkDefinition, + inp: trt.ITensor, + weight: np.ndarray, + bias: np.ndarray | None, + out_channels: int, + kernel_size: int, + stride: int = 1, + padding: int = 0, + groups: int = 1, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """1D convolution via 2D convolution with height=1. + + Input: [N, C_in, L] + Weight: [C_out, C_in/groups, K] + Output: [N, C_out, L'] + """ + # Reshape to [N, C_in, 1, L] + n, c_in, length = inp.shape + reshape_in = network.add_shuffle(inp) + reshape_in.reshape_dims = (n, c_in, 1, length) + + # Weight: [C_out, C_in/groups, K] -> [C_out, C_in/groups, 1, K] + w_4d = weight.reshape(out_channels, -1, 1, kernel_size) + result = add_conv2d( + network, + reshape_in.get_output(0), + w_4d, + bias, + out_channels, + kernel_size=(1, kernel_size), + stride=(1, stride), + padding=(0, padding), + groups=groups, + dtype=dtype, + ) + + # Reshape back to [N, C_out, L'] + out_length = result.shape[3] + reshape_out = network.add_shuffle(result) + reshape_out.reshape_dims = (n, out_channels, out_length) + return reshape_out.get_output(0) + + +# Alias: add_gelu_tanh is the same as add_gelu_new (tanh approximation) +add_gelu_tanh = add_gelu_new + + +def add_attention_core( + network: trt.INetworkDefinition, + q_4d: trt.ITensor, + k_4d: trt.ITensor, + v_4d: trt.ITensor, + causal: bool = False, + mask: trt.ITensor | None = None, + scale: float | None = None, + fp32_accumulation: bool = False, +) -> trt.ITensor: + """Scaled dot-product attention via TRT native IAttention layer. + + Replaces the manual Q@K^T 闁?scale 闁?softmax 闁?@V chain. TRT 10 fuses + this into a single kernel when a compatible implementation is available; + decomposable=True ensures a correct fallback to primitives otherwise. + + NOTE: TRT IAttention computes raw BMM1 = Q @ K^T without any built-in + 1/sqrt(D) scaling. We pre-scale Q by 1/sqrt(D) so that the fused kernel + computes the standard scaled dot-product attention formula. + + Args: + q_4d: Query [B, H, q_seq, D]. + k_4d: Key [B, H, kv_seq, D]. + v_4d: Value [B, H, kv_seq, D]. + causal: Apply causal (autoregressive) mask. Mutually exclusive + with ``mask``. + mask: Optional additive float mask [B, H, q_seq, kv_seq] added + to scaled logits before softmax. Cannot be used with + causal=True. + scale: Optional Q pre-scale factor. Defaults to 1/sqrt(D). + fp32_accumulation: + Cast Q/K/V to FP32 before IAttention, then cast the context + back to the original Q dtype. TRT may still select a + Half-input fused MHA tactic after optimizing the casts, while + keeping the IAttention accumulation/output boundary in FP32. + + Returns: + Context tensor [B, H, q_seq, D]. + """ + output_dtype = q_4d.dtype + if fp32_accumulation and output_dtype != trt.float32: + q_4d = network.add_cast(q_4d, trt.float32).get_output(0) + k_4d = network.add_cast(k_4d, trt.float32).get_output(0) + v_4d = network.add_cast(v_4d, trt.float32).get_output(0) + if mask is not None and mask.dtype != trt.float32: + mask = network.add_cast(mask, trt.float32).get_output(0) + + # Pre-scale Q: TRT IAttention does not apply score scaling itself. + # Match the scale constant's dtype to Q's dtype: in strongly-typed networks + # a FP32 constant mixed with a FP16/BF16 Q causes add_elementwise to emit + # a type-mismatch error and produce a tensor with corrupted dimensions, + # which makes add_attention return None. + if scale is None: + head_dim = q_4d.shape[-1] + scale = float(1.0 / np.sqrt(head_dim)) if head_dim > 0 else 1.0 + # Use FP16 weights directly for FP16; BF16 has no numpy native type so + # create as FP32 and cast; FP32 falls through to the default. + scale_np_dtype = np.float16 if q_4d.dtype == trt.float16 else np.float32 + scale_t = add_constant(network, (1, 1, 1, 1), np.array([[[[scale]]]]), dtype=scale_np_dtype) + if q_4d.dtype == trt.bfloat16: + scale_t = network.add_cast(scale_t, trt.bfloat16).get_output(0) + q_scaled = network.add_elementwise(q_4d, scale_t, trt.ElementWiseOperation.PROD) + + attn = network.add_attention( + q_scaled.get_output(0), + k_4d, + v_4d, + trt.AttentionNormalizationOp.SOFTMAX, + causal, + ) + # Allow TRT to decompose into primitive ops when no fused kernel is + # available (e.g. unsupported head-dim or dtype). This guarantees + # correctness on any configuration at the cost of potential performance. + attn.decomposable = True + if mask is not None and not causal: + attn.mask = mask + return _cast_back_to_trt_dtype(network, attn.get_output(0), output_dtype) + + +# Backward-compatible name used by existing tests and call sites. +_add_attention_core = add_attention_core diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/model_config.py b/python/tensorrt_model_connect/families/parakeet_tdt/model_config.py new file mode 100644 index 0000000000..118a57c1a3 --- /dev/null +++ b/python/tensorrt_model_connect/families/parakeet_tdt/model_config.py @@ -0,0 +1,217 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""ModelConfig 闁?parse HF config.json into a typed dataclass.""" + +from __future__ import annotations + +import json +from dataclasses import dataclass, field +from pathlib import Path + + +@dataclass +class ModelConfig: + """Parsed model architecture from HF config.json.""" + + model_type: str = "" + architectures: list[str] = field(default_factory=list) + vocab_size: int = 0 + hidden_size: int = 0 + intermediate_size: int = 0 + num_hidden_layers: int = 0 + num_attention_heads: int = 1 + num_key_value_heads: int = 1 + rms_norm_eps: float = 1e-5 + rope_theta: float = 10000.0 + bos_token_id: int = -1 + eos_token_id: int = -1 + pad_token_id: int = -1 + tie_word_embeddings: bool = False + max_position_embeddings: int = 8192 + hidden_act: str = "" + + # Explicit head_dim from config.json (0 = not set, fall back to computed). + _head_dim: int = 0 + + # Raw JSON dict for family-specific fields + raw: dict = field(default_factory=dict, repr=False) + + @property + def head_dim(self) -> int: + if self._head_dim > 0: + return self._head_dim + if self.num_attention_heads <= 0: + return 0 + return self.hidden_size // self.num_attention_heads + + @property + def attention_size(self) -> int: + return self.num_attention_heads * self.head_dim + + @staticmethod + def from_json(text: str) -> ModelConfig: + d = json.loads(text) + + # Some multimodal configs nest decoder fields under "text_config". + # Merge text_config into top level so standard key lookup works. + # Preserve top-level model_type and architectures (these identify the + # top-level model, not the nested decoder). + original_raw = d + text_config = d.get("text_config") + if text_config and isinstance(text_config, dict): + top_model_type = d.get("model_type") + top_architectures = d.get("architectures") + merged = {**d, **text_config} + if top_model_type: + merged["model_type"] = top_model_type + if top_architectures: + merged["architectures"] = top_architectures + d = merged + + # Some multimodal configs nest the language decoder config under + # "language_config". Merge into top level like text_config. + if not d.get("hidden_size"): + lang_config = d.get("language_config") + if isinstance(lang_config, dict): + top_model_type = d.get("model_type") + top_architectures = d.get("architectures") + top_vision_config = d.get("vision_config") + merged = {**d, **lang_config} + if top_model_type: + merged["model_type"] = top_model_type + if top_architectures: + merged["architectures"] = top_architectures + if top_vision_config: + merged["vision_config"] = top_vision_config + d = merged + + # Some multimodal configs nest LLM config under "llm_config". + # Merge into top level like text_config, preserving top-level + # model_type, architectures, and vision_config. + if not d.get("hidden_size"): + llm_config = d.get("llm_config") + if isinstance(llm_config, dict): + top_model_type = d.get("model_type") + top_architectures = d.get("architectures") + top_vision_config = d.get("vision_config") + merged = {**d, **llm_config} + if top_model_type: + merged["model_type"] = top_model_type + if top_architectures: + merged["architectures"] = top_architectures + if top_vision_config: + merged["vision_config"] = top_vision_config + d = merged + + # Some multimodal audio/text configs nest the primary decoder config + # under thinker_config.text_config. If top-level hidden_size is + # still missing after the text_config merge above, look there. + if not d.get("hidden_size"): + thinker_cfg = d.get("thinker_config") + if isinstance(thinker_cfg, dict): + thinker_text = thinker_cfg.get("text_config") + if isinstance(thinker_text, dict): + top_model_type = d.get("model_type") + top_architectures = d.get("architectures") + merged = {**d, **thinker_text} + if top_model_type: + merged["model_type"] = top_model_type + if top_architectures: + merged["architectures"] = top_architectures + # Also propagate vision_config from thinker_config + # so VL pipelines can find it. + if "vision_config" not in merged and "vision_config" in thinker_cfg: + merged["vision_config"] = thinker_cfg["vision_config"] + d = merged + + # Handle non-standard config key names: + # GPT-2: n_embd, n_head, n_layer, n_inner + # XGLM/Bloom: d_model, attention_heads, num_layers, ffn_dim + # DistilBERT: dim, n_heads, n_layers, hidden_dim + hidden_size = (d.get("hidden_size", 0) or d.get("n_embd", 0) + or d.get("d_model", 0) or d.get("n_embed", 0) + or d.get("dim", 0)) + num_heads = (d.get("num_attention_heads", 0) or d.get("n_head", 0) + or d.get("attention_heads", 0) or d.get("num_heads", 0) + or d.get("n_heads", 0) or d.get("decoder_attention_heads", 0) or 1) + num_layers = (d.get("num_hidden_layers", 0) or d.get("n_layer", 0) + or d.get("num_layers", 0) or d.get("n_layers", 0)) + intermediate = (d.get("intermediate_size", 0) + or d.get("n_inner", 0) + or d.get("ffn_dim", 0) + or d.get("hidden_dim", 0) + or hidden_size * 4) + + # Norm epsilon: try rms_norm_eps, then layer_norm_epsilon, then + # layer_norm_eps, then norm_epsilon, then norm_eps. + eps = (d.get("rms_norm_eps") + or d.get("layer_norm_epsilon") + or d.get("layer_norm_eps") + or d.get("norm_epsilon") + or d.get("norm_eps") + or 1e-5) + + # rope_theta: check top-level first, then rope_parameters dict + # (some model configs store it there), + # then rope_scaling dict. + rope_theta = d.get("rope_theta", None) + if rope_theta is None: + rope_params = d.get("rope_parameters") + if isinstance(rope_params, dict): + rope_theta = rope_params.get("rope_theta", 10000.0) + else: + rope_scaling = d.get("rope_scaling") + if isinstance(rope_scaling, dict): + rope_theta = rope_scaling.get("rope_theta", 10000.0) + else: + rope_theta = 10000.0 + rope_theta = float(rope_theta) + + architecture = d.get("architecture", "") + architectures = d.get("architectures", []) + if not architectures and architecture: + architectures = [architecture] + + return ModelConfig( + model_type=d.get("model_type", "") or architecture, + architectures=architectures, + vocab_size=d.get("vocab_size", 0), + hidden_size=hidden_size or d.get("num_features", 0), + intermediate_size=intermediate, + num_hidden_layers=num_layers, + num_attention_heads=num_heads, + num_key_value_heads=d.get("num_key_value_heads", num_heads), + rms_norm_eps=eps, + rope_theta=rope_theta, + bos_token_id=d.get("bos_token_id", -1) or -1, + eos_token_id=d.get("eos_token_id", -1) or -1, + pad_token_id=d.get("pad_token_id", -1) or -1, + tie_word_embeddings=d.get("tie_word_embeddings", False), + max_position_embeddings=d.get("max_position_embeddings", + d.get("n_positions", 8192)), + hidden_act=d.get("hidden_act", "") or d.get("activation_function", ""), + _head_dim=d.get("head_dim", 0), + raw=original_raw, + ) + + @classmethod + def create_tiny(cls, model_type: str, **overrides) -> "ModelConfig": + """Create a minimal ModelConfig for testing (2 layers, hidden=16, vocab=32).""" + defaults = { + "model_type": model_type, + "vocab_size": 32, "hidden_size": 16, "intermediate_size": 32, + "num_hidden_layers": 2, "num_attention_heads": 4, + "num_key_value_heads": 4, "rms_norm_eps": 1e-6, + "rope_theta": 10000.0, "max_position_embeddings": 128, + } + defaults.update(overrides) + return cls.from_json(json.dumps(defaults)) + + @staticmethod + def from_dir(model_dir: str | Path) -> ModelConfig: + model_path = Path(model_dir) + config_path = model_path / "config.json" + if config_path.exists(): + return ModelConfig.from_json(config_path.read_text()) + return ModelConfig.from_json(config_path.read_text()) diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/nemo_archive.py b/python/tensorrt_model_connect/families/parakeet_tdt/nemo_archive.py new file mode 100644 index 0000000000..d9d66da716 --- /dev/null +++ b/python/tensorrt_model_connect/families/parakeet_tdt/nemo_archive.py @@ -0,0 +1,141 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Parakeet TDT-owned NeMo archive resolution.""" + +from __future__ import annotations + +import json +import os +import sys +import tarfile +import tempfile +from pathlib import Path +from typing import Any + + +def _cfg_int(*values: object, default: int) -> int: + for value in values: + if value is None: + continue + try: + return int(value) + except (TypeError, ValueError): + continue + return default + + +def _read_model_config(nemo_path: Path) -> dict[str, Any]: + import yaml + + try: + with tarfile.open(str(nemo_path), "r") as tar: + for member in tar.getmembers(): + if Path(member.name).name == "model_config.yaml": + handle = tar.extractfile(member) + if handle is not None: + loaded = yaml.safe_load(handle.read()) or {} + return loaded if isinstance(loaded, dict) else {} + except (OSError, tarfile.TarError, yaml.YAMLError): + # A downloaded HF snapshot can contain an unrelated or incomplete + # archive. This adapter participates in global family discovery, so + # an unrecognized archive must fall through to the normal HF resolver. + return {} + return {} + + +def _matches_parakeet_tdt(cfg: dict[str, Any]) -> bool: + target = " ".join( + str(cfg.get(key, "") or "") + for key in ("target", "_target_", "model_type") + ).lower() + decoding = cfg.get("decoding", {}) if isinstance(cfg.get("decoding"), dict) else {} + durations = cfg.get( + "durations", cfg.get("tdt_durations", decoding.get("durations", ())) + ) + joint = cfg.get("joint", {}) if isinstance(cfg.get("joint"), dict) else {} + jointnet = joint.get("jointnet", {}) if isinstance(joint.get("jointnet"), dict) else {} + extra_outputs = _cfg_int( + joint.get("num_extra_outputs"), jointnet.get("num_extra_outputs"), default=-1) + try: + is_tdt = tuple(int(value) for value in durations) == (0, 1, 2, 3, 4) + except (TypeError, ValueError): + is_tdt = False + return "encdecrnntbpemodel" in target.replace(".", "") and is_tdt and extra_outputs == 5 + + +def _symlink_archive(tmp_path: Path, nemo_path: Path) -> None: + link = tmp_path / nemo_path.name + if not link.exists(): + os.symlink(str(nemo_path.resolve()), str(link)) + + +def resolve_nemo_archive(nemo_path: Path) -> str | None: + """Create a Parakeet TDT model directory from a matching .nemo file.""" + cfg = _read_model_config(nemo_path) + if not _matches_parakeet_tdt(cfg): + return None + + enc_cfg = cfg.get("encoder", {}) + defaults = cfg.get("model_defaults", {}) + dec_cfg = cfg.get("decoder", {}) + prednet = dec_cfg.get("prednet", {}) + if not isinstance(prednet, dict): + prednet = {} + hidden = _cfg_int(enc_cfg.get("d_model"), defaults.get("enc_hidden"), default=1024) + pred_layers = _cfg_int(prednet.get("pred_rnn_layers"), default=1) + pred_hidden = _cfg_int(prednet.get("pred_hidden"), defaults.get("pred_hidden"), default=640) + vocab_size = _cfg_int(cfg.get("vocab_size"), defaults.get("vocab_size"), default=1024) + + tmp_dir = tempfile.mkdtemp(prefix="trtmc_nemo_parakeet_tdt_") + tmp_path = Path(tmp_dir) + synthetic_config = { + "model_type": "parakeet_tdt", + "hidden_size": hidden, + "num_hidden_layers": pred_layers, + "num_attention_heads": 1, + "intermediate_size": pred_hidden, + "vocab_size": vocab_size, + "rms_norm_eps": 1e-5, + "_nemo_archive_path": str(nemo_path), + } + (tmp_path / "config.json").write_text( + json.dumps(synthetic_config, indent=2), + encoding="utf-8", + ) + _symlink_archive(tmp_path, nemo_path) + print( + f"[trtmc build] Parakeet TDT NeMo resolved: tmp_dir={tmp_dir}", + file=sys.stderr, + ) + return tmp_dir + + +def resolve_model_dir(model_dir: Path) -> str | None: + """Stage a matching NeMo snapshot without mutating the source cache. + + Some Hugging Face NeMo repositories include a top-level ``config.json``. + The generic resolver would otherwise treat that snapshot as a writable HF + model directory, while this family extracts tokenizer files beside the + archive for bundle packaging. Resolve the archive first so those generated + files land in the family-owned temporary directory instead of the read-only + shared cache. + """ + if not model_dir.is_dir(): + return None + # The official v3 snapshot publishes native Transformers safetensors and + # a legacy NeMo archive side by side. Claim the directory without staging + # it so a broader NeMo adapter cannot reinterpret the legacy archive. + config_path = model_dir / "config.json" + if (model_dir / "model.safetensors").is_file() and config_path.is_file(): + try: + hf_config = json.loads(config_path.read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError): + hf_config = {} + if hf_config.get("model_type") == "parakeet_tdt": + return model_dir + for nemo_path in sorted(model_dir.glob("*.nemo")): + resolved = resolve_nemo_archive(nemo_path) + if resolved is not None: + return resolved + return None diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/plugin.py b/python/tensorrt_model_connect/families/parakeet_tdt/plugin.py new file mode 100644 index 0000000000..227f1e6088 --- /dev/null +++ b/python/tensorrt_model_connect/families/parakeet_tdt/plugin.py @@ -0,0 +1,1183 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Parakeet TDT family plugin -- FastConformer plus token-duration transducer. + +The Hugging Face repo ships a NeMo ``.nemo`` archive. Build-time Python extracts +the checkpoint and builds three TensorRT plans: + + * ``vision_engine_plan``: FastConformer acoustic encoder + * ``engine_plan``: TDT prediction network + * ``joint_engine_plan``: TDT joint network + +The C++ runtime strategy is ``parakeet_tdt_speech_to_text`` and performs greedy TDT +decoding without a Python subprocess. +""" + +from __future__ import annotations + +import sys +import math +from pathlib import Path + +import numpy as np +from tensorrt_model_connect import trt_compat + +from . import graph_ops +from .checkpoint import WeightDict, _transpose_2d +from .model_config import ModelConfig +from ...parallel_config import normalize_parallel_config +from .fastconformer import ( + _add_conv_norm, + _add_half_ffn, + _build_encoder, + _build_subsampling, + _compute_enc_seq_len, + _compute_causal_enc_seq_len, + _extract_tokenizer_from_nemo, + _load_nemo_archive, + _relative_pe, + _to_np, +) + + +trt = trt_compat.get_trt() + + +def _load_hf_as_nemo(model_dir: str): + """Expose the official HF safetensors under the NeMo-style encoder keys. + + The graph builders consume one normalized, family-private layout. Keeping + this conversion explicit avoids choosing a topology from a checkpoint name. + """ + from safetensors.numpy import load_file + + root = Path(model_dir) + state = dict(load_file(root / "model.safetensors")) + from .config import ParakeetTDTConfig + + cfg = ParakeetTDTConfig.from_dir(root) + cfg.validate_supported_checkpoint() + normalized = dict(state) + aliases = { + "encoder.pre_encode.conv.0.weight": "encoder.subsampling.layers.0.weight", + "encoder.pre_encode.conv.0.bias": "encoder.subsampling.layers.0.bias", + "encoder.pre_encode.conv.2.weight": "encoder.subsampling.layers.2.weight", + "encoder.pre_encode.conv.2.bias": "encoder.subsampling.layers.2.bias", + "encoder.pre_encode.conv.3.weight": "encoder.subsampling.layers.3.weight", + "encoder.pre_encode.conv.3.bias": "encoder.subsampling.layers.3.bias", + "encoder.pre_encode.conv.5.weight": "encoder.subsampling.layers.5.weight", + "encoder.pre_encode.conv.5.bias": "encoder.subsampling.layers.5.bias", + "encoder.pre_encode.conv.6.weight": "encoder.subsampling.layers.6.weight", + "encoder.pre_encode.conv.6.bias": "encoder.subsampling.layers.6.bias", + "encoder.pre_encode.out.weight": "encoder.subsampling.linear.weight", + "encoder.pre_encode.out.bias": "encoder.subsampling.linear.bias", + "decoder.prediction.embed.weight": "decoder.embedding.weight", + "joint.enc.weight": "encoder_projector.weight", + "joint.enc.bias": "encoder_projector.bias", + "joint.pred.weight": "decoder.decoder_projector.weight", + "joint.pred.bias": "decoder.decoder_projector.bias", + "joint.joint_net.2.weight": "joint.head.weight", + "joint.joint_net.2.bias": "joint.head.bias", + } + for layer in range(cfg.decoder_layers): + for field in ("weight_ih", "weight_hh", "bias_ih", "bias_hh"): + aliases[f"decoder.prediction.dec_rnn.{field}_l{layer}"] = ( + f"decoder.lstm.{field}_l{layer}") + for layer in range(cfg.encoder_layers): + nk = f"encoder.layers.{layer}" + for nemo, hf in (("linear_q", "q_proj"), ("linear_k", "k_proj"), + ("linear_v", "v_proj"), ("linear_out", "o_proj"), + ("linear_pos", "relative_k_proj")): + aliases[f"{nk}.self_attn.{nemo}.weight"] = f"{nk}.self_attn.{hf}.weight" + aliases[f"{nk}.self_attn.pos_bias_u"] = f"{nk}.self_attn.bias_u" + aliases[f"{nk}.self_attn.pos_bias_v"] = f"{nk}.self_attn.bias_v" + aliases[f"{nk}.conv.batch_norm.weight"] = f"{nk}.conv.norm.weight" + aliases[f"{nk}.conv.batch_norm.bias"] = f"{nk}.conv.norm.bias" + aliases[f"{nk}.conv.batch_norm.running_mean"] = f"{nk}.conv.norm.running_mean" + aliases[f"{nk}.conv.batch_norm.running_var"] = f"{nk}.conv.norm.running_var" + missing = [(dst, src) for dst, src in aliases.items() if src not in state] + if missing: + detail = ", ".join(f"{dst} <- {src}" for dst, src in missing[:8]) + raise KeyError(f"HF Parakeet checkpoint is missing normalized tensors: {detail}") + normalized.update({dst: state[src] for dst, src in aliases.items()}) + nemo_cfg = { + "encoder": {"d_model": 1024, "n_layers": 24, "n_heads": 8, + "ff_expansion_factor": 4, "conv_kernel_size": 9, + "subsampling_conv_channels": 256, "att_context_size": [[-1, -1]], + "conv_norm_type": "batch_norm", "conv_context_size": "symmetric"}, + "preprocessor": {"features": 128}, + "decoder": {"blank_idx": 8192, "prednet": {"pred_hidden": 640, + "pred_rnn_layers": 2, "rnn_hidden_size": 640}}, + "joint": {"jointnet": {"joint_hidden": 640, "activation": "relu"}}, + "decoding": {"max_symbols_per_step": 10}, + "tdt_durations": [0, 1, 2, 3, 4], + } + return normalized, nemo_cfg + + +def _cfg_int(*values, default: int) -> int: + for value in values: + if value is not None: + try: + return int(value) + except (TypeError, ValueError): + pass + return default + + +def _cfg_dict(root: dict, *path: str) -> dict: + cur = root + for item in path: + if not isinstance(cur, dict): + return {} + cur = cur.get(item, {}) + return cur if isinstance(cur, dict) else {} + + +def _extract_prompt_dictionary(ncfg: dict) -> dict[str, int]: + """Returns the language-tag -> prompt-index mapping from NeMo train_ds. + + Returns ``{}`` for monolingual checkpoints (no prompt support). + """ + train_ds = ncfg.get("train_ds") if isinstance(ncfg, dict) else None + if not isinstance(train_ds, dict): + return {} + pd = train_ds.get("prompt_dictionary") + if not isinstance(pd, dict): + return {} + return {str(k): int(v) for k, v in pd.items()} + + +def _find_tensor(sd: dict, candidates: list[str], label: str): + for key in candidates: + if key in sd: + return sd[key] + suffix_matches = [] + for key in sd: + for suffix in candidates: + if key.endswith(suffix): + suffix_matches.append(key) + break + if len(suffix_matches) == 1: + return sd[suffix_matches[0]] + if len(suffix_matches) > 1: + raise KeyError(f"Ambiguous tensor for {label}: {suffix_matches}") + raise KeyError(f"Missing tensor for {label}; tried {candidates}") + + +def _find_joint_linear(sd: dict, prefix: str, label: str): + candidates = [ + f"{prefix}.joint_net.1.weight", + f"{prefix}.joint_net.2.weight", + f"{prefix}.joint_net.0.weight", + ] + for key in candidates: + if key in sd: + bias_key = key[:-6] + "bias" + if bias_key not in sd: + raise KeyError(f"Missing tensor for {label} bias: {bias_key}") + return sd[key], sd[bias_key] + + suffixes = [".joint_net.1.weight", ".joint_net.2.weight", ".joint_net.0.weight"] + matches = [key for key in sd if key.startswith(prefix) and any(key.endswith(s) for s in suffixes)] + if len(matches) == 1: + key = matches[0] + bias_key = key[:-6] + "bias" + if bias_key not in sd: + raise KeyError(f"Missing tensor for {label} bias: {bias_key}") + return sd[key], sd[bias_key] + raise KeyError(f"Missing tensor for {label}; tried {candidates}") + + +def _precision_dtypes(precision: str) -> tuple[type[np.generic], object]: + if precision == "fp16": + return np.float16, trt.float16 + if precision == "fp32": + return np.float32, trt.float32 + raise ValueError( + f"Unsupported Parakeet TDT precision {precision!r}; " + "expected fp32 or fp16") + + +def _add_lstm_cell( + network, x, h_prev, c_prev, weights, pfx: str, hidden: int, + dtype=np.float32): + w_ih = graph_ops.add_constant( + network, (hidden, 4 * hidden), weights[f"{pfx}.w_ih_t"], dtype=dtype) + w_hh = graph_ops.add_constant( + network, (hidden, 4 * hidden), weights[f"{pfx}.w_hh_t"], dtype=dtype) + bias = graph_ops.add_constant( + network, (1, 4 * hidden), weights[f"{pfx}.bias"], dtype=dtype) + + xw = network.add_matrix_multiply(x, trt.MatrixOperation.NONE, w_ih, trt.MatrixOperation.NONE) + hw = network.add_matrix_multiply(h_prev, trt.MatrixOperation.NONE, w_hh, trt.MatrixOperation.NONE) + gates = network.add_elementwise(xw.get_output(0), hw.get_output(0), trt.ElementWiseOperation.SUM) + gates = network.add_elementwise(gates.get_output(0), bias, trt.ElementWiseOperation.SUM) + + gate_i = network.add_slice(gates.get_output(0), start=(0, 0), shape=(1, hidden), stride=(1, 1)) + gate_f = network.add_slice(gates.get_output(0), start=(0, hidden), shape=(1, hidden), stride=(1, 1)) + gate_g = network.add_slice( + gates.get_output(0), start=(0, 2 * hidden), shape=(1, hidden), stride=(1, 1)) + gate_o = network.add_slice( + gates.get_output(0), start=(0, 3 * hidden), shape=(1, hidden), stride=(1, 1)) + + i_t = network.add_activation(gate_i.get_output(0), trt.ActivationType.SIGMOID).get_output(0) + f_t = network.add_activation(gate_f.get_output(0), trt.ActivationType.SIGMOID).get_output(0) + g_t = network.add_activation(gate_g.get_output(0), trt.ActivationType.TANH).get_output(0) + o_t = network.add_activation(gate_o.get_output(0), trt.ActivationType.SIGMOID).get_output(0) + + forget = network.add_elementwise(f_t, c_prev, trt.ElementWiseOperation.PROD).get_output(0) + update = network.add_elementwise(i_t, g_t, trt.ElementWiseOperation.PROD).get_output(0) + c_new = network.add_elementwise(forget, update, trt.ElementWiseOperation.SUM).get_output(0) + tanh_c = network.add_activation(c_new, trt.ActivationType.TANH).get_output(0) + h_new = network.add_elementwise(o_t, tanh_c, trt.ElementWiseOperation.PROD).get_output(0) + return h_new, c_new + + +_STREAMING_TIME_CACHE = 8 +_STREAMING_PRE_ENCODE_CACHE = 9 +_STREAMING_DROP_PRE_ENCODED = 2 + + +def _streaming_mel_length(right_context: int, subsampling_factor: int = 8, *, + first_step: bool = False) -> int: + if first_step: + return 1 + subsampling_factor * right_context + return _STREAMING_PRE_ENCODE_CACHE + subsampling_factor * (right_context + 1) + + +def _streaming_encoder_frames(right_context: int) -> int: + return right_context + 1 + + +def _rel_shift_streaming( + network, x, heads: int, query_len: int, pos_len: int, key_len: int, + dtype=np.float32): + zeros = graph_ops.add_constant( + network, (heads, query_len, 1), + np.zeros((heads, query_len, 1), dtype=dtype), dtype=dtype) + padded = network.add_concatenation([zeros, x]) + padded.axis = 2 + rs1 = network.add_shuffle(padded.get_output(0)) + rs1.reshape_dims = (heads, pos_len + 1, query_len) + sl1 = network.add_slice( + rs1.get_output(0), start=(0, 1, 0), shape=(heads, pos_len, query_len), + stride=(1, 1, 1)) + rs2 = network.add_shuffle(sl1.get_output(0)) + rs2.reshape_dims = (heads, query_len, pos_len) + sl2 = network.add_slice( + rs2.get_output(0), start=(0, 0, 0), shape=(heads, query_len, key_len), + stride=(1, 1, 1)) + return sl2.get_output(0) + + +def _slice_layer_channel_cache(network, cache, layer: int, cache_len: int, hidden: int): + sl = network.add_slice( + cache, start=(layer, 0, 0), shape=(1, cache_len, hidden), stride=(1, 1, 1)) + sh = network.add_shuffle(sl.get_output(0)) + sh.reshape_dims = (cache_len, hidden) + return sh.get_output(0) + + +def _slice_layer_time_cache(network, cache, layer: int, hidden: int, time_cache: int): + sl = network.add_slice( + cache, start=(layer, 0, 0), shape=(1, hidden, time_cache), stride=(1, 1, 1)) + sh = network.add_shuffle(sl.get_output(0)) + sh.reshape_dims = (hidden, time_cache) + return sh.get_output(0) + + +def _add_streaming_rel_pos_attention(network, hs, channel_cache, weights, pfx, + hidden, heads, head_dim, query_len, + cache_len, rpe, eps, enc_mask, + dtype=np.float32): + key_len = cache_len + query_len + pos_len = 2 * key_len - 1 + normed = graph_ops.add_layer_norm( + network, hs, hidden, weights[f"{pfx}.norm_sa"], + weights[f"{pfx}.norm_sa_b"], eps, dtype=dtype) + + cat_kv = network.add_concatenation([channel_cache, normed]) + cat_kv.axis = 0 + kv = cat_kv.get_output(0) + + q = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant( + network, normed, hidden, hidden, weights[f"{pfx}.w_q"], dtype=dtype), + hidden, + weights[f"{pfx}.b_q"], + dtype=dtype, + ) + k = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant( + network, kv, hidden, hidden, weights[f"{pfx}.w_k"], dtype=dtype), + hidden, + weights[f"{pfx}.b_k"], + dtype=dtype, + ) + v = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant( + network, kv, hidden, hidden, weights[f"{pfx}.w_v"], dtype=dtype), + hidden, + weights[f"{pfx}.b_v"], + dtype=dtype, + ) + + qr = network.add_shuffle(q) + qr.reshape_dims = (query_len, heads, head_dim) + kr = network.add_shuffle(k) + kr.reshape_dims = (key_len, heads, head_dim) + vr = network.add_shuffle(v) + vr.reshape_dims = (key_len, heads, head_dim) + + bu = graph_ops.add_constant( + network, (1, heads, head_dim), weights[f"{pfx}.pos_bias_u"], + dtype=dtype) + bv = graph_ops.add_constant( + network, (1, heads, head_dim), weights[f"{pfx}.pos_bias_v"], + dtype=dtype) + qu = network.add_elementwise(qr.get_output(0), bu, trt.ElementWiseOperation.SUM).get_output(0) + qv = network.add_elementwise(qr.get_output(0), bv, trt.ElementWiseOperation.SUM).get_output(0) + + qu_t = network.add_shuffle(qu) + qu_t.first_transpose = trt.Permutation([1, 0, 2]) + qv_t = network.add_shuffle(qv) + qv_t.first_transpose = trt.Permutation([1, 0, 2]) + k_t = network.add_shuffle(kr.get_output(0)) + k_t.first_transpose = trt.Permutation([1, 0, 2]) + v_t = network.add_shuffle(vr.get_output(0)) + v_t.first_transpose = trt.Permutation([1, 0, 2]) + + cs = network.add_matrix_multiply( + qu_t.get_output(0), trt.MatrixOperation.NONE, + k_t.get_output(0), trt.MatrixOperation.TRANSPOSE).get_output(0) + rp_t = network.add_shuffle(rpe) + rp_t.first_transpose = trt.Permutation([1, 0, 2]) + ps_raw = network.add_matrix_multiply( + qv_t.get_output(0), trt.MatrixOperation.NONE, + rp_t.get_output(0), trt.MatrixOperation.TRANSPOSE).get_output(0) + ps = _rel_shift_streaming( + network, ps_raw, heads, query_len, pos_len, key_len, dtype=dtype) + total = network.add_elementwise(cs, ps, trt.ElementWiseOperation.SUM).get_output(0) + scale = graph_ops.add_constant( + network, (1, 1, 1), np.array([1.0 / math.sqrt(head_dim)], dtype=dtype), + dtype=dtype) + scaled = network.add_elementwise(total, scale, trt.ElementWiseOperation.PROD).get_output(0) + if enc_mask is not None: + scaled = network.add_elementwise(scaled, enc_mask, trt.ElementWiseOperation.SUM).get_output(0) + + sm = network.add_softmax(scaled) + sm.axes = 1 << 2 + ao = network.add_matrix_multiply( + sm.get_output(0), trt.MatrixOperation.NONE, + v_t.get_output(0), trt.MatrixOperation.NONE).get_output(0) + at = network.add_shuffle(ao) + at.first_transpose = trt.Permutation([1, 0, 2]) + af = network.add_shuffle(at.get_output(0)) + af.reshape_dims = (query_len, hidden) + out = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant(network, af.get_output(0), hidden, hidden, + weights[f"{pfx}.w_o"], dtype=dtype), + hidden, + weights[f"{pfx}.b_o"], + dtype=dtype, + ) + + cache_tail = network.add_slice( + channel_cache, start=(query_len, 0), shape=(cache_len - query_len, hidden), + stride=(1, 1)).get_output(0) + next_cache = network.add_concatenation([cache_tail, normed]) + next_cache.axis = 0 + return out, next_cache.get_output(0) + + +def _add_streaming_conv_module(network, hs, time_cache, weights, pfx, hidden, kern, + query_len, eps, conv_norm_type, dtype=np.float32): + normed = graph_ops.add_layer_norm( + network, hs, hidden, weights[f"{pfx}.norm_conv"], + weights[f"{pfx}.norm_conv_b"], eps, dtype=dtype) + r1 = network.add_shuffle(normed) + r1.first_transpose = trt.Permutation([1, 0]) + r2 = network.add_shuffle(r1.get_output(0)) + r2.reshape_dims = (1, hidden, query_len) + x = graph_ops.add_conv1d( + network, r2.get_output(0), weight=weights[f"{pfx}.cpw1_w"], + bias=weights[f"{pfx}.cpw1_b"], out_channels=2 * hidden, kernel_size=1, + dtype=dtype) + xa = network.add_slice(x, start=(0, 0, 0), shape=(1, hidden, query_len), + stride=(1, 1, 1)).get_output(0) + xb = network.add_slice(x, start=(0, hidden, 0), shape=(1, hidden, query_len), + stride=(1, 1, 1)).get_output(0) + gate = network.add_activation(xb, trt.ActivationType.SIGMOID).get_output(0) + x = network.add_elementwise(xa, gate, trt.ElementWiseOperation.PROD).get_output(0) + + tc = network.add_shuffle(time_cache) + tc.reshape_dims = (1, hidden, _STREAMING_TIME_CACHE) + cached = network.add_concatenation([tc.get_output(0), x]) + cached.axis = 2 + cached_tensor = cached.get_output(0) + next_time = network.add_slice( + cached_tensor, start=(0, 0, query_len), shape=(1, hidden, _STREAMING_TIME_CACHE), + stride=(1, 1, 1)) + x = graph_ops.add_conv1d( + network, cached_tensor, weight=weights[f"{pfx}.cdw_w"], bias=weights[f"{pfx}.cdw_b"], + out_channels=hidden, kernel_size=kern, groups=hidden, dtype=dtype) + x = _add_conv_norm( + network, x, weights, pfx, hidden, query_len, eps, conv_norm_type, + dtype=dtype) + x = graph_ops.add_activation(network, x, "silu", dtype=dtype) + x = graph_ops.add_conv1d( + network, x, weight=weights[f"{pfx}.cpw2_w"], bias=weights[f"{pfx}.cpw2_b"], + out_channels=hidden, kernel_size=1, dtype=dtype) + r3 = network.add_shuffle(x) + r3.reshape_dims = (hidden, query_len) + r4 = network.add_shuffle(r3.get_output(0)) + r4.first_transpose = trt.Permutation([1, 0]) + + nt = network.add_shuffle(next_time.get_output(0)) + nt.reshape_dims = (hidden, _STREAMING_TIME_CACHE) + return r4.get_output(0), nt.get_output(0) + + +def _add_streaming_conformer_block(network, hs, channel_cache, time_cache, weights, pfx, + hidden, heads, head_dim, ffn, kern, query_len, + cache_len, rpe, eps, enc_mask, conv_norm_type, + dtype=np.float32): + ffn1 = _add_half_ffn( + network, hs, weights, f"{pfx}.ff1", hidden, ffn, eps, dtype=dtype) + hs = network.add_elementwise(hs, ffn1, trt.ElementWiseOperation.SUM).get_output(0) + attn, next_channel = _add_streaming_rel_pos_attention( + network, hs, channel_cache, weights, pfx, hidden, heads, head_dim, query_len, + cache_len, rpe, eps, enc_mask, dtype=dtype) + hs = network.add_elementwise(hs, attn, trt.ElementWiseOperation.SUM).get_output(0) + conv, next_time = _add_streaming_conv_module( + network, hs, time_cache, weights, pfx, hidden, kern, query_len, eps, + conv_norm_type=conv_norm_type, dtype=dtype) + hs = network.add_elementwise(hs, conv, trt.ElementWiseOperation.SUM).get_output(0) + ffn2 = _add_half_ffn( + network, hs, weights, f"{pfx}.ff2", hidden, ffn, eps, dtype=dtype) + hs = network.add_elementwise(hs, ffn2, trt.ElementWiseOperation.SUM).get_output(0) + out = graph_ops.add_layer_norm( + network, hs, hidden, weights[f"{pfx}.norm_out"], + weights[f"{pfx}.norm_out_b"], eps, dtype=dtype) + return out, next_channel, next_time + + +def _mark_layer_cache_output(network, tensors, name: str, shape): + reshaped = [] + for tensor in tensors: + sh = network.add_shuffle(tensor) + sh.reshape_dims = (1,) + tuple(shape) + reshaped.append(sh.get_output(0)) + cat = network.add_concatenation(reshaped) + cat.axis = 0 + out = cat.get_output(0) + if out.dtype != trt.float32: + out = network.add_cast(out, trt.float32).get_output(0) + out.name = name + network.mark_output(out) + + +def _build_streaming_encoder(weights: WeightDict, right_context: int, *, + first_step: bool = False, precision: str = "fp32", + verbose: bool = False) -> bytes: + hidden = int(weights["_hidden"]) + enc_layers = int(weights["_enc_layers"]) + heads = int(weights["_enc_heads"]) + ffn = int(weights["_enc_ffn"]) + mel_bins = int(weights["_mel_bins"]) + kern = int(weights["_kern"]) + sub_ch = int(weights["_sub_ch"]) + head_dim = int(weights["_head_dim"]) + conv_norm_type = str(weights.get("_conv_norm_type", "batch_norm")) + work_np_dtype, work_trt_dtype = _precision_dtypes(precision) + mel_len = _streaming_mel_length(right_context, first_step=first_step) + pre_encoded = _compute_causal_enc_seq_len(mel_len) + query_len = _streaming_encoder_frames(right_context) + drop = pre_encoded - query_len + expected_drop = 0 if first_step else _STREAMING_DROP_PRE_ENCODED + if drop != expected_drop: + raise ValueError( + f"Unexpected streaming pre-encode drop for right={right_context}, " + f"first_step={first_step}: {drop}") + + cache_len = int(weights["_streaming_cache_left"]) + key_len = cache_len + query_len + logger = trt.Logger(trt.Logger.VERBOSE if verbose else trt.Logger.WARNING) + builder = trt.Builder(logger) + network = builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.STRONGLY_TYPED)) + config = builder.create_builder_config() + config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, 4 << 30) + + eps = graph_ops.add_constant( + network, (1, 1), np.array([1e-5], dtype=work_np_dtype), + dtype=work_np_dtype) + mel = network.add_input("mel_features", trt.float32, (mel_bins, mel_len)) + channel_cache = network.add_input( + "cache_last_channel", trt.float32, (enc_layers, cache_len, hidden)) + time_cache = network.add_input( + "cache_last_time", trt.float32, (enc_layers, hidden, _STREAMING_TIME_CACHE)) + enc_mask = network.add_input("encoder_mask", trt.float32, (1, query_len, key_len)) + if work_trt_dtype != trt.float32: + mel = network.add_cast(mel, work_trt_dtype).get_output(0) + channel_cache = network.add_cast( + channel_cache, work_trt_dtype).get_output(0) + time_cache = network.add_cast(time_cache, work_trt_dtype).get_output(0) + enc_mask = network.add_cast(enc_mask, work_trt_dtype).get_output(0) + + sub_weights = dict(weights) + sub_weights["_enc_seq"] = pre_encoded + hs = _build_subsampling( + network, mel, sub_weights, sub_ch, hidden, mel_bins, mel_len, + dtype=work_np_dtype) + hs = network.add_slice(hs, start=(drop, 0), shape=(query_len, hidden), + stride=(1, 1)).get_output(0) + + rpe_np = _relative_pe(key_len, hidden) + next_channels = [] + next_times = [] + for i in range(enc_layers): + pfx = f"el.{i}" + rel_proj = rpe_np @ weights[f"{pfx}.w_pos"] + rel_proj = rel_proj.reshape(2 * key_len - 1, heads, head_dim) + rpe = graph_ops.add_constant( + network, (2 * key_len - 1, heads, head_dim), rel_proj, + dtype=work_np_dtype) + layer_channel_cache = _slice_layer_channel_cache(network, channel_cache, i, cache_len, hidden) + layer_time_cache = _slice_layer_time_cache( + network, time_cache, i, hidden, _STREAMING_TIME_CACHE) + hs, next_channel, next_time = _add_streaming_conformer_block( + network, hs, layer_channel_cache, layer_time_cache, weights, pfx, hidden, + heads, head_dim, ffn, kern, query_len, cache_len, rpe, eps, enc_mask, + conv_norm_type=conv_norm_type, dtype=work_np_dtype) + next_channels.append(next_channel) + next_times.append(next_time) + + output = hs + if output.dtype != trt.float32: + output = network.add_cast(output, trt.float32).get_output(0) + output.name = "encoder_output" + network.mark_output(output) + _mark_layer_cache_output( + network, next_channels, "cache_last_channel_next", (cache_len, hidden)) + _mark_layer_cache_output( + network, next_times, "cache_last_time_next", (hidden, _STREAMING_TIME_CACHE)) + + if verbose: + step = "first" if first_step else "next" + print(f"[trtmc build] Building TDT streaming encoder {step} " + f"(right={right_context}, mel={mel_len}, frames={query_len})", + file=sys.stderr) + plan = builder.build_serialized_network(network, config) + if plan is None: + raise RuntimeError( + f"TDT streaming encoder build failed for right={right_context}, " + f"first_step={first_step}") + return bytes(plan) + + +class ParakeetTDTPlugin: + name = "parakeet_tdt" + runtime_strategy = "parakeet_tdt_speech_to_text" + _DEFAULT_MEL_LENGTH = 3000 + + def __init__(self): + self._bundle_config: dict = {} + self._vl_config: dict = {} + + def matches(self, model_type: str) -> bool: + mt = model_type.lower().replace("-", "_").replace(".", "_") + return mt in { + "parakeet_tdt", + } + + def load_weights(self, model_dir: str, config: ModelConfig, *, precision: str = "fp32") -> WeightDict: + del precision + w = WeightDict() + hf_checkpoint = (Path(model_dir) / "model.safetensors").is_file() + sd, ncfg = (_load_hf_as_nemo(model_dir) if hf_checkpoint + else _load_nemo_archive(model_dir)) + if isinstance(sd, dict) and isinstance(sd.get("state_dict"), dict): + sd = sd["state_dict"] + if not hf_checkpoint: + _extract_tokenizer_from_nemo(model_dir, Path(model_dir)) + prompt_dictionary = _extract_prompt_dictionary(ncfg) + + ec = ncfg.get("encoder", {}) + defaults = ncfg.get("model_defaults", {}) + dec_cfg = ncfg.get("decoder", {}) + prednet = dec_cfg.get("prednet", _cfg_dict(dec_cfg, "config_dict", "prednet")) + joint_cfg = ncfg.get("joint", {}) + jointnet = joint_cfg.get("jointnet", _cfg_dict(joint_cfg, "config_dict", "jointnet")) + + hidden = _cfg_int(ec.get("d_model"), defaults.get("enc_hidden"), default=1024) + mel_bins = _cfg_int(ncfg.get("preprocessor", {}).get("features"), ec.get("feat_in"), default=128) + kern = _cfg_int(ec.get("conv_kernel_size"), default=9) + conv_norm_type = str(ec.get("conv_norm_type", "batch_norm")).lower() + conv_context_size = str(ec.get("conv_context_size", "symmetric")).lower() + causal_downsampling = bool(ec.get("causal_downsampling", False)) + enc_heads = _cfg_int(ec.get("n_heads"), default=8) + enc_ffn = _cfg_int(ec.get("ff_expansion_factor"), default=4) * hidden + sub_ch = _cfg_int(ec.get("subsampling_conv_channels"), default=256) + head_dim = hidden // enc_heads + + enc_layers = max(int(k.split(".")[2]) for k in sd if k.startswith("encoder.layers.")) + 1 + mel_length = _cfg_int(config.raw.get("mel_length"), ncfg.get("trtmc_mel_length"), + default=self._DEFAULT_MEL_LENGTH) + enc_seq = (_compute_causal_enc_seq_len(mel_length) + if causal_downsampling else _compute_enc_seq_len(mel_length)) + att_contexts = ec.get("att_context_size") or [[-1, -1]] + att_context = att_contexts[0] if isinstance(att_contexts, list) and att_contexts else [70, 13] + att_left = _cfg_int(att_context[0] if len(att_context) > 0 else None, default=70) + att_right = _cfg_int(att_context[1] if len(att_context) > 1 else None, default=13) + + # Streaming knobs are checkpoint-defined. The NeMo config exposes the full + # list of supported att_context_size pairs; drive the per-right-context + # engine set from that list. + _pairs = att_contexts # always a list at this point + streaming_right_contexts = [] + streaming_cache_left = att_left + w["_streaming_right_contexts"] = streaming_right_contexts + w["_streaming_cache_left"] = streaming_cache_left + + pred_hidden = _cfg_int(prednet.get("pred_hidden"), defaults.get("pred_hidden"), default=640) + pred_layers = _cfg_int(prednet.get("pred_rnn_layers"), default=1) + rnn_hidden = _cfg_int(prednet.get("rnn_hidden_size"), default=pred_hidden) + if rnn_hidden != pred_hidden: + raise ValueError( + "Parakeet TDT TDT currently supports predictor LSTMs without " + f"projection (pred_hidden={pred_hidden}, rnn_hidden_size={rnn_hidden})." + ) + joint_hidden = _cfg_int(jointnet.get("joint_hidden"), defaults.get("joint_hidden"), + default=pred_hidden) + joint_activation = str(jointnet.get("activation", "relu")).lower() + + # --- Encoder: same FastConformer tensor layout as the native Parakeet TDT encoder path. --- + w["_enc_layers"] = enc_layers + w["_enc_heads"] = enc_heads + w["_enc_ffn"] = enc_ffn + w["_hidden"] = hidden + w["_mel_bins"] = mel_bins + w["_kern"] = kern + w["_mel_length"] = mel_length + w["_enc_seq"] = enc_seq + w["_sub_ch"] = sub_ch + w["_head_dim"] = head_dim + w["_conv_norm_type"] = conv_norm_type + w["_conv_context_size"] = conv_context_size + w["_causal_downsampling"] = causal_downsampling + w["_encoder_attention_mask_2d"] = True + + w["enc_sub_conv0_w"] = _to_np(sd["encoder.pre_encode.conv.0.weight"]) + w["enc_sub_conv0_b"] = _to_np(sd["encoder.pre_encode.conv.0.bias"]) + for s, (di, pi) in enumerate([(2, 3), (5, 6)]): + w[f"enc_sub_dw{s}_w"] = _to_np(sd[f"encoder.pre_encode.conv.{di}.weight"]) + w[f"enc_sub_dw{s}_b"] = _to_np(sd[f"encoder.pre_encode.conv.{di}.bias"]) + w[f"enc_sub_pw{s}_w"] = _to_np(sd[f"encoder.pre_encode.conv.{pi}.weight"]) + w[f"enc_sub_pw{s}_b"] = _to_np(sd[f"encoder.pre_encode.conv.{pi}.bias"]) + w["enc_sub_out_w"] = _transpose_2d(_to_np(sd["encoder.pre_encode.out.weight"]), "sub") + w["enc_sub_out_b"] = _to_np(sd["encoder.pre_encode.out.bias"]) + + for i in range(enc_layers): + nk = f"encoder.layers.{i}" + pk = f"el.{i}" + for p, n in [("w_q", "linear_q"), ("w_k", "linear_k"), ("w_v", "linear_v"), + ("w_o", "linear_out")]: + w[f"{pk}.{p}"] = _transpose_2d(_to_np(sd[f"{nk}.self_attn.{n}.weight"]), p) + bk = f"{nk}.self_attn.{n}.bias" + w[f"{pk}.b_{p[-1]}"] = _to_np(sd[bk]) if bk in sd else np.zeros(hidden, dtype=np.float32) + w[f"{pk}.pos_bias_u"] = _to_np(sd[f"{nk}.self_attn.pos_bias_u"]) + w[f"{pk}.pos_bias_v"] = _to_np(sd[f"{nk}.self_attn.pos_bias_v"]) + w[f"{pk}.w_pos"] = _transpose_2d(_to_np(sd[f"{nk}.self_attn.linear_pos.weight"]), "pos") + w[f"{pk}.norm_sa"] = _to_np(sd[f"{nk}.norm_self_att.weight"]) + w[f"{pk}.norm_sa_b"] = _to_np(sd[f"{nk}.norm_self_att.bias"]) + for fn, fk in [("ff1", "feed_forward1"), ("ff2", "feed_forward2")]: + w[f"{pk}.{fn}.w1"] = _transpose_2d(_to_np(sd[f"{nk}.{fk}.linear1.weight"]), f"{fn}1") + b1 = f"{nk}.{fk}.linear1.bias" + w[f"{pk}.{fn}.b1"] = _to_np(sd[b1]) if b1 in sd else np.zeros(enc_ffn, dtype=np.float32) + w[f"{pk}.{fn}.w2"] = _transpose_2d(_to_np(sd[f"{nk}.{fk}.linear2.weight"]), f"{fn}2") + b2 = f"{nk}.{fk}.linear2.bias" + w[f"{pk}.{fn}.b2"] = _to_np(sd[b2]) if b2 in sd else np.zeros(hidden, dtype=np.float32) + nm = "norm_feed_forward1" if fn == "ff1" else "norm_feed_forward2" + w[f"{pk}.{fn}.norm"] = _to_np(sd[f"{nk}.{nm}.weight"]) + w[f"{pk}.{fn}.norm_b"] = _to_np(sd[f"{nk}.{nm}.bias"]) + w[f"{pk}.cpw1_w"] = _to_np(sd[f"{nk}.conv.pointwise_conv1.weight"]) + cpw1_b = f"{nk}.conv.pointwise_conv1.bias" + w[f"{pk}.cpw1_b"] = _to_np(sd[cpw1_b]) if cpw1_b in sd else np.zeros(2 * hidden, dtype=np.float32) + w[f"{pk}.cdw_w"] = _to_np(sd[f"{nk}.conv.depthwise_conv.weight"]) + cdw_b = f"{nk}.conv.depthwise_conv.bias" + w[f"{pk}.cdw_b"] = _to_np(sd[cdw_b]) if cdw_b in sd else np.zeros(hidden, dtype=np.float32) + w[f"{pk}.bn_w"] = _to_np(sd[f"{nk}.conv.batch_norm.weight"]) + w[f"{pk}.bn_b"] = _to_np(sd[f"{nk}.conv.batch_norm.bias"]) + w[f"{pk}.bn_m"] = _to_np(sd[f"{nk}.conv.batch_norm.running_mean"]) if f"{nk}.conv.batch_norm.running_mean" in sd else np.zeros(hidden, dtype=np.float32) + w[f"{pk}.bn_v"] = _to_np(sd[f"{nk}.conv.batch_norm.running_var"]) if f"{nk}.conv.batch_norm.running_var" in sd else np.ones(hidden, dtype=np.float32) + w[f"{pk}.cpw2_w"] = _to_np(sd[f"{nk}.conv.pointwise_conv2.weight"]) + cpw2_b = f"{nk}.conv.pointwise_conv2.bias" + w[f"{pk}.cpw2_b"] = _to_np(sd[cpw2_b]) if cpw2_b in sd else np.zeros(hidden, dtype=np.float32) + w[f"{pk}.norm_conv"] = _to_np(sd[f"{nk}.norm_conv.weight"]) + w[f"{pk}.norm_conv_b"] = _to_np(sd[f"{nk}.norm_conv.bias"]) + w[f"{pk}.norm_out"] = _to_np(sd[f"{nk}.norm_out.weight"]) + w[f"{pk}.norm_out_b"] = _to_np(sd[f"{nk}.norm_out.bias"]) + + rpe = _relative_pe(enc_seq, hidden) + for i in range(enc_layers): + proj = rpe @ w[f"el.{i}.w_pos"] + w[f"el.{i}.rpe_proj"] = proj.reshape(2 * enc_seq - 1, enc_heads, head_dim) + + # --- TDT predictor. --- + embed = _to_np(_find_tensor(sd, ["decoder.prediction.embed.weight"], "predictor embedding")) + vocab_total = int(embed.shape[0]) + blank_id = _cfg_int(dec_cfg.get("blank_idx"), default=vocab_total - 1) + if blank_id >= vocab_total: + raise ValueError( + f"TDT blank_id={blank_id} is outside predictor embedding rows={vocab_total}; " + "blank_as_pad=False checkpoints are not supported yet." + ) + vocab = blank_id + w["pred_embedding"] = embed + w["_pred_hidden"] = pred_hidden + w["_pred_layers"] = pred_layers + w["_vocab"] = vocab + w["_vocab_total"] = vocab_total + w["_blank_id"] = blank_id + + for i in range(pred_layers): + pfx = f"pred.{i}" + base_candidates = [ + f"decoder.prediction.dec_rnn.weight_{{kind}}_l{i}", + f"decoder.prediction.dec_rnn.lstm.weight_{{kind}}_l{i}", + f"decoder.prediction.dec_rnn.rnn.weight_{{kind}}_l{i}", + f"decoder.prediction.dec_rnn._rnn.weight_{{kind}}_l{i}", + ] + b_candidates = [ + f"decoder.prediction.dec_rnn.bias_{{kind}}_l{i}", + f"decoder.prediction.dec_rnn.lstm.bias_{{kind}}_l{i}", + f"decoder.prediction.dec_rnn.rnn.bias_{{kind}}_l{i}", + f"decoder.prediction.dec_rnn._rnn.bias_{{kind}}_l{i}", + ] + w_ih = _to_np(_find_tensor(sd, [c.format(kind="ih") for c in base_candidates], + f"predictor layer {i} weight_ih")) + w_hh = _to_np(_find_tensor(sd, [c.format(kind="hh") for c in base_candidates], + f"predictor layer {i} weight_hh")) + b_ih = _to_np(_find_tensor(sd, [c.format(kind="ih") for c in b_candidates], + f"predictor layer {i} bias_ih")) + b_hh = _to_np(_find_tensor(sd, [c.format(kind="hh") for c in b_candidates], + f"predictor layer {i} bias_hh")) + if w_ih.shape != (4 * pred_hidden, pred_hidden) or w_hh.shape != (4 * pred_hidden, pred_hidden): + raise ValueError( + f"Unsupported predictor LSTM layer {i} shapes: " + f"w_ih={w_ih.shape}, w_hh={w_hh.shape}, expected " + f"{(4 * pred_hidden, pred_hidden)}." + ) + w[f"{pfx}.w_ih_t"] = np.ascontiguousarray(w_ih.T.astype(np.float32)) + w[f"{pfx}.w_hh_t"] = np.ascontiguousarray(w_hh.T.astype(np.float32)) + w[f"{pfx}.bias"] = (b_ih + b_hh).astype(np.float32).reshape(1, -1) + + # --- TDT joint. --- + joint_prefix = "joint" + w["joint_enc_w"] = _transpose_2d( + _to_np(_find_tensor(sd, [f"{joint_prefix}.enc.weight"], "joint encoder projection")), + "joint_enc") + w["joint_enc_b"] = _to_np(_find_tensor(sd, [f"{joint_prefix}.enc.bias"], "joint encoder bias")) + w["joint_pred_w"] = _transpose_2d( + _to_np(_find_tensor(sd, [f"{joint_prefix}.pred.weight"], "joint predictor projection")), + "joint_pred") + w["joint_pred_b"] = _to_np(_find_tensor(sd, [f"{joint_prefix}.pred.bias"], "joint predictor bias")) + out_w, out_b = _find_joint_linear(sd, joint_prefix, "joint output") + w["joint_out_w"] = _transpose_2d(_to_np(out_w), "joint_out") + w["joint_out_b"] = _to_np(out_b) + duration_values = tuple(int(x) for x in ncfg.get("tdt_durations", [0, 1, 2, 3, 4])) + joint_output_size = int(w["joint_out_b"].shape[0]) + if joint_output_size != vocab_total + len(duration_values): + raise ValueError( + f"TDT joint output has {joint_output_size} rows; expected " + f"{vocab_total} token rows plus {len(duration_values)} duration rows") + w["_joint_output_size"] = joint_output_size + w["_duration_values"] = duration_values + w["_joint_hidden"] = joint_hidden + w["_joint_activation"] = joint_activation + + # Multilingual variant: prompt_kernel MLP (Linear 1152 -> 2048 -> 1024). + has_prompt_kernel = "prompt_kernel.0.weight" in sd + if has_prompt_kernel: + pk_w0 = _to_np(sd["prompt_kernel.0.weight"]) # (2048, 1152) + pk_b0 = _to_np(sd["prompt_kernel.0.bias"]) # (2048,) + pk_w2 = _to_np(sd["prompt_kernel.2.weight"]) # (1024, 2048) + pk_b2 = _to_np(sd["prompt_kernel.2.bias"]) # (1024,) + if pk_w0.ndim != 2 or pk_w2.ndim != 2: + raise ValueError(f"Unexpected prompt_kernel weight ranks: " + f"{pk_w0.shape}, {pk_w2.shape}") + pk_hidden = int(pk_w0.shape[0]) # 2048 + pk_input_dim = int(pk_w0.shape[1]) # 1152 + pk_output_dim = int(pk_w2.shape[0]) # 1024 + if pk_w2.shape[1] != pk_hidden: + raise ValueError(f"prompt_kernel hidden mismatch: " + f"{pk_w0.shape} vs {pk_w2.shape}") + num_prompts = pk_input_dim - hidden # 1152 - 1024 = 128 + if num_prompts <= 0: + raise ValueError(f"prompt_kernel input dim {pk_input_dim} <= " + f"encoder_hidden {hidden}; cannot derive num_prompts.") + if pk_output_dim != hidden: + raise ValueError(f"prompt_kernel output dim {pk_output_dim} must equal " + f"encoder_hidden {hidden}.") + w["pk_w0"] = _transpose_2d(pk_w0, "pk_w0") # (1152, 2048) + w["pk_b0"] = pk_b0.astype(np.float32) + w["pk_w2"] = _transpose_2d(pk_w2, "pk_w2") # (2048, 1024) + w["pk_b2"] = pk_b2.astype(np.float32) + w["_pk_hidden"] = pk_hidden + w["_pk_input_dim"] = pk_input_dim + w["_pk_output_dim"] = pk_output_dim + w["_num_prompts"] = num_prompts + w["_prompt_dictionary"] = prompt_dictionary + if not prompt_dictionary: + raise ValueError( + "prompt_kernel present but no prompt_dictionary in NeMo YAML " + "(train_ds.prompt_dictionary).") + else: + w["_pk_hidden"] = 0 + w["_pk_input_dim"] = 0 + w["_pk_output_dim"] = 0 + w["_num_prompts"] = 0 + w["_prompt_dictionary"] = {} + w["_has_prompt_kernel"] = has_prompt_kernel + + config.hidden_size = pred_hidden + config.vocab_size = vocab_total + config.num_hidden_layers = pred_layers + config.num_attention_heads = 1 + config.num_key_value_heads = 1 + + self._vl_config = { + "has_vision_engine": True, + "num_mel_bins": mel_bins, + "max_source_positions": enc_seq, + "encoder_layers": enc_layers, + "mel_length": mel_length, + "subsampling_factor": 8, + "sample_rate": 16000, + } + self._bundle_config = { + "runtime_strategy": self.runtime_strategy, + "hidden_size": pred_hidden, + "num_hidden_layers": pred_layers, + "num_attention_heads": 1, + "num_key_value_heads": 1, + "vocab_size": vocab_total, + "tdt_encoder_hidden_size": hidden, + "tdt_pred_hidden_size": pred_hidden, + "tdt_pred_num_layers": pred_layers, + "tdt_encoder_layers": enc_layers, + "tdt_joint_hidden_size": joint_hidden, + "tdt_vocab_size": vocab, + "tdt_blank_id": blank_id, + "tdt_duration_values": list(duration_values), + "tdt_max_symbols_per_step": _cfg_int(ncfg.get("decoding", {}).get("max_symbols_per_step"), + default=10), + "tdt_causal_downsampling": causal_downsampling, + "tdt_att_context_left": att_left, + "tdt_att_context_right": att_right, + } + return w + + def build_engine(self, config: ModelConfig, weights: WeightDict, max_cache_length: int, + *, precision: str = "fp32", quant_ctx=None, verbose: bool = False, + debug_layer_outputs: bool = False, parallel_config=None) -> bytes: + del config, max_cache_length + parallel = normalize_parallel_config(parallel_config) + if parallel.enabled: + raise ValueError("Parakeet TDT currently supports single-device engine builds") + return _build_predictor(weights, precision=precision, verbose=verbose) + + def build_vision_engine(self, model_dir: str, config: ModelConfig, weights: WeightDict, + *, precision: str = "fp32", verbose: bool = False) -> bytes | None: + del model_dir + return _build_encoder( + config, weights, precision=precision, verbose=verbose) + + def build_extra_engines(self, config: ModelConfig, weights: WeightDict, max_cache_length: int, + *, precision: str = "fp32", verbose: bool = False) -> dict | None: + del config, max_cache_length + joint_plan = _build_joint( + weights, precision=precision, verbose=verbose) + extras = {"joint_engine_plan": joint_plan} + if weights.get("_has_prompt_kernel"): + extras["prompt_kernel_plan"] = _build_prompt_kernel(weights, verbose=verbose) + mel = _build_mel_filterbank(weights, verbose=verbose) + if mel is not None: + extras["mel_filterbank"] = mel + return extras + + def get_audio_config(self, config: ModelConfig) -> dict | None: + del config + return { + "mel_n_fft": 512, + "mel_win_length": 400, + "mel_hop_length": 160, + "mel_chunk_length": 30, + "mel_sampling_rate": 16000, + "mel_preemph": 0.97, + "mel_normalize": "per_feature", + } + + def get_vl_config(self, config: ModelConfig) -> dict | None: + del config + return self._vl_config or { + "has_vision_engine": True, + "num_mel_bins": 128, + "max_source_positions": 375, + "encoder_layers": 24, + "mel_length": self._DEFAULT_MEL_LENGTH, + "subsampling_factor": 8, + "sample_rate": 16000, + } + + def get_bundle_config_overrides(self, config: ModelConfig) -> dict | None: + del config + return self._bundle_config or { + "runtime_strategy": self.runtime_strategy, + "tdt_blank_id": 8192, + "tdt_vocab_size": 8192, + "tdt_pred_hidden_size": 640, + "tdt_pred_num_layers": 2, + "tdt_encoder_hidden_size": 1024, + "tdt_max_symbols_per_step": 10, + "tdt_duration_values": [0, 1, 2, 3, 4], + "tdt_encoder_layers": 24, + } + + +def _build_predictor( + weights: WeightDict, *, precision: str = "fp32", + verbose: bool = False) -> bytes: + pred_hidden = int(weights["_pred_hidden"]) + pred_layers = int(weights["_pred_layers"]) + vocab_total = int(weights["_vocab_total"]) + work_np_dtype, work_trt_dtype = _precision_dtypes(precision) + + logger = trt.Logger(trt.Logger.VERBOSE if verbose else trt.Logger.WARNING) + builder = trt.Builder(logger) + network = builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.STRONGLY_TYPED)) + config = builder.create_builder_config() + config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, 256 << 20) + + token_id = network.add_input("token_id", trt.int32, (1,)) + embedding = graph_ops.add_constant( + network, (vocab_total, pred_hidden), weights["pred_embedding"], + dtype=work_np_dtype) + hidden = network.add_gather(embedding, token_id, 0).get_output(0) + + next_h = [] + next_c = [] + for layer in range(pred_layers): + h_in = network.add_input(f"state_h_{layer}", trt.float32, (1, pred_hidden)) + c_in = network.add_input(f"state_c_{layer}", trt.float32, (1, pred_hidden)) + if work_trt_dtype != trt.float32: + h_in = network.add_cast(h_in, work_trt_dtype).get_output(0) + c_in = network.add_cast(c_in, work_trt_dtype).get_output(0) + hidden, c_new = _add_lstm_cell(network, hidden, h_in, c_in, weights, f"pred.{layer}", + pred_hidden, dtype=work_np_dtype) + next_h.append(hidden) + next_c.append(c_new) + + pred_output = hidden + if pred_output.dtype != trt.float32: + pred_output = network.add_cast(pred_output, trt.float32).get_output(0) + pred_output.name = "pred_output" + network.mark_output(pred_output) + for layer in range(pred_layers): + h_output = next_h[layer] + c_output = next_c[layer] + if h_output.dtype != trt.float32: + h_output = network.add_cast(h_output, trt.float32).get_output(0) + c_output = network.add_cast(c_output, trt.float32).get_output(0) + h_output.name = f"next_h_{layer}" + c_output.name = f"next_c_{layer}" + network.mark_output(h_output) + network.mark_output(c_output) + + if verbose: + print(f"[trtmc build] Building TDT predictor ({pred_layers}L, h={pred_hidden})", + file=sys.stderr) + plan = builder.build_serialized_network(network, config) + if plan is None: + raise RuntimeError("TDT predictor build failed") + return bytes(plan) + + +def _build_joint( + weights: WeightDict, *, precision: str = "fp32", + verbose: bool = False) -> bytes: + enc_hidden = int(weights["_hidden"]) + pred_hidden = int(weights["_pred_hidden"]) + joint_hidden = int(weights["_joint_hidden"]) + vocab_total = int(weights["_vocab_total"]) + joint_output_size = int(weights["_joint_output_size"]) + duration_count = len(weights["_duration_values"]) + activation = str(weights["_joint_activation"]).lower() + work_np_dtype, work_trt_dtype = _precision_dtypes(precision) + + logger = trt.Logger(trt.Logger.VERBOSE if verbose else trt.Logger.WARNING) + builder = trt.Builder(logger) + network = builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.STRONGLY_TYPED)) + config = builder.create_builder_config() + config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, 256 << 20) + + enc = network.add_input("encoder_frame", trt.float32, (1, enc_hidden)) + pred = network.add_input("pred_output", trt.float32, (1, pred_hidden)) + if work_trt_dtype != trt.float32: + enc = network.add_cast(enc, work_trt_dtype).get_output(0) + pred = network.add_cast(pred, work_trt_dtype).get_output(0) + enc_proj = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant(network, enc, enc_hidden, joint_hidden, + weights["joint_enc_w"], + dtype=work_np_dtype), + joint_hidden, + weights["joint_enc_b"], + dtype=work_np_dtype, + ) + pred_proj = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant(network, pred, pred_hidden, joint_hidden, + weights["joint_pred_w"], + dtype=work_np_dtype), + joint_hidden, + weights["joint_pred_b"], + dtype=work_np_dtype, + ) + joint = network.add_elementwise(enc_proj, pred_proj, trt.ElementWiseOperation.SUM).get_output(0) + if activation == "relu": + joint = network.add_activation(joint, trt.ActivationType.RELU).get_output(0) + elif activation == "tanh": + joint = network.add_activation(joint, trt.ActivationType.TANH).get_output(0) + elif activation == "sigmoid": + joint = network.add_activation(joint, trt.ActivationType.SIGMOID).get_output(0) + else: + raise ValueError(f"Unsupported TDT joint activation: {activation}") + + logits = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant(network, joint, joint_hidden, joint_output_size, + weights["joint_out_w"], + dtype=work_np_dtype), + joint_output_size, + weights["joint_out_b"], + dtype=work_np_dtype, + ) + if logits.dtype != trt.float32: + logits = network.add_cast(logits, trt.float32).get_output(0) + token_slice = network.add_slice(logits, (0, 0), (1, vocab_total), (1, 1)).get_output(0) + duration_slice = network.add_slice( + logits, (0, vocab_total), (1, duration_count), (1, 1)).get_output(0) + token_slice.name = "token_logits" + duration_slice.name = "duration_logits" + network.mark_output(token_slice) + network.mark_output(duration_slice) + + if verbose: + print(f"[trtmc build] Building TDT joint (enc={enc_hidden}, pred={pred_hidden}, " + f"joint={joint_hidden}, vocab={vocab_total})", file=sys.stderr) + plan = builder.build_serialized_network(network, config) + if plan is None: + raise RuntimeError("TDT joint build failed") + return bytes(plan) + + +def _build_prompt_kernel(weights: WeightDict, *, verbose: bool = False) -> bytes: + pk_input_dim = int(weights["_pk_input_dim"]) # 1152 + pk_hidden = int(weights["_pk_hidden"]) # 2048 + pk_output_dim = int(weights["_pk_output_dim"]) # 1024 + encoder_hidden = int(weights["_hidden"]) # 1024 + num_prompts = int(weights["_num_prompts"]) # 128 + assert pk_input_dim == encoder_hidden + num_prompts, ( + f"prompt_kernel input dim {pk_input_dim} != enc_hidden {encoder_hidden} " + f"+ num_prompts {num_prompts}") + + logger = trt.Logger(trt.Logger.VERBOSE if verbose else trt.Logger.WARNING) + builder = trt.Builder(logger) + network = builder.create_network( + 1 << int(trt.NetworkDefinitionCreationFlag.STRONGLY_TYPED)) + config = builder.create_builder_config() + config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, 256 << 20) + + # Inputs: encoder_frame (1, encoder_hidden) and prompt_onehot (1, num_prompts). + enc = network.add_input("encoder_frame", trt.float32, (1, encoder_hidden)) + prompt = network.add_input("prompt_onehot", trt.float32, (1, num_prompts)) + cat = network.add_concatenation([enc, prompt]) + cat.axis = 1 + fused = cat.get_output(0) # (1, 1152) + + # Linear 0: 1152 -> 2048 with bias. + h = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant(network, fused, pk_input_dim, pk_hidden, + weights["pk_w0"]), + pk_hidden, + weights["pk_b0"], + ) + h = network.add_activation(h, trt.ActivationType.RELU).get_output(0) + + # Linear 2: 2048 -> 1024 with bias. + out = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant(network, h, pk_hidden, pk_output_dim, + weights["pk_w2"]), + pk_output_dim, + weights["pk_b2"], + ) + + out.name = "prompt_kernel_output" + network.mark_output(out) + if verbose: + print(f"[trtmc-build] Building prompt_kernel ({pk_input_dim}->{pk_hidden}->" + f"{pk_output_dim})", file=sys.stderr) + plan = builder.build_serialized_network(network, config) + if plan is None: + raise RuntimeError("prompt_kernel engine build failed") + return bytes(plan) + + +def _build_mel_filterbank(weights: WeightDict, *, verbose: bool = False) -> bytes | None: + num_mel_bins = int(weights.get("_mel_bins", 128)) + n_fft = 512 + sampling_rate = 16000 + n_freq_bins = 1 + n_fft // 2 + try: + import librosa + filters = librosa.filters.mel( + sr=sampling_rate, + n_fft=n_fft, + n_mels=num_mel_bins, + fmin=0.0, + fmax=sampling_rate / 2.0, + norm="slaney", + ).T + except ImportError: + try: + from transformers.audio_utils import mel_filter_bank + except ImportError: + print("[trtmc build] Warning: mel filterbank builder not available", file=sys.stderr) + return None + filters = mel_filter_bank( + num_frequency_bins=n_freq_bins, + num_mel_filters=num_mel_bins, + min_frequency=0.0, + max_frequency=sampling_rate / 2.0, + sampling_rate=sampling_rate, + norm="slaney", + mel_scale="slaney", + ) + filters_flat = np.ascontiguousarray(filters, dtype=np.float32) + header = np.array([n_freq_bins, num_mel_bins], dtype=np.int32) + if verbose: + print(f"[trtmc build] TDT mel filterbank: {n_freq_bins}x{num_mel_bins}", + file=sys.stderr) + return header.tobytes() + filters_flat.tobytes() + + +plugin = ParakeetTDTPlugin() diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/python_profile_requirements/parakeet_tdt_reference.lock.txt b/python/tensorrt_model_connect/families/parakeet_tdt/python_profile_requirements/parakeet_tdt_reference.lock.txt new file mode 100644 index 0000000000..124ee31a6a --- /dev/null +++ b/python/tensorrt_model_connect/families/parakeet_tdt/python_profile_requirements/parakeet_tdt_reference.lock.txt @@ -0,0 +1,3 @@ +librosa==0.11.0 +scipy==1.18.1 +transformers==5.9.0 diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/python_profile_verify.py b/python/tensorrt_model_connect/families/parakeet_tdt/python_profile_verify.py new file mode 100644 index 0000000000..fbbef5dba1 --- /dev/null +++ b/python/tensorrt_model_connect/families/parakeet_tdt/python_profile_verify.py @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +import librosa +import scipy +import transformers + + +assert librosa.__version__ == "0.11.0", librosa.__version__ +assert scipy.__version__ == "1.18.1", scipy.__version__ +assert transformers.__version__ == "5.9.0", transformers.__version__ +assert transformers.AutoModelForTDT is not None +assert transformers.ParakeetForTDT is not None +assert transformers.ParakeetTDTConfig is not None diff --git a/src/runtime/models/parakeet_tdt/MODEL.toml b/src/runtime/models/parakeet_tdt/MODEL.toml new file mode 100644 index 0000000000..145d1c9ef0 --- /dev/null +++ b/src/runtime/models/parakeet_tdt/MODEL.toml @@ -0,0 +1,11 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +id = "parakeet_tdt" +runtime_library = "libtrtmc_model_parakeet_tdt.so" +runtime_plugins = ["plugin.cpp|register_parakeet_tdt_plugin"] +runtime_strategies = ["parakeet_tdt_speech_to_text"] +runtime_tests = [ + "test_parakeet_tdt_decode_policy|test_parakeet_tdt_decode_policy.cpp|_|_|_", + "test_parakeet_tdt_audio_helpers|test_parakeet_tdt_audio_helpers.cpp|_|audio_helpers.cpp|_", +] diff --git a/src/runtime/models/parakeet_tdt/audio_helpers.cpp b/src/runtime/models/parakeet_tdt/audio_helpers.cpp new file mode 100644 index 0000000000..2e6e2ed18c --- /dev/null +++ b/src/runtime/models/parakeet_tdt/audio_helpers.cpp @@ -0,0 +1,595 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "audio_helpers.h" + +#include "utils/wav_reader.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace trtmc { +namespace tdt { + +namespace { + +std::vector make_hann_window(int32_t length) { + std::vector window(length); + const double pi2 = 2.0 * 3.14159265358979323846; + for (int32_t i = 0; i < length; ++i) { + window[i] = static_cast( + 0.5 * (1.0 - std::cos(pi2 * static_cast(i) / static_cast(length)))); + } + return window; +} + +std::vector make_symmetric_hann_window(int32_t length) { + std::vector window(length); + if (length <= 1) { + return window; + } + const double pi2 = 2.0 * 3.14159265358979323846; + for (int32_t i = 0; i < length; ++i) { + window[i] = static_cast( + 0.5 * (1.0 - std::cos(pi2 * static_cast(i) / static_cast(length - 1)))); + } + return window; +} + +std::vector make_centered_stft_window(int32_t n_fft, int32_t win_length) { + std::vector window(static_cast(n_fft), 0.0F); + const auto inner = make_symmetric_hann_window(win_length); + const int32_t offset = std::max(0, (n_fft - win_length) / 2); + for (int32_t i = 0; i < win_length && offset + i < n_fft; ++i) { + window[static_cast(offset + i)] = inner[static_cast(i)]; + } + return window; +} + +void rfft_power_direct(const float* x, int32_t n, int32_t n_out, float* power_out) { + const double pi2 = 2.0 * 3.14159265358979323846; + for (int32_t k = 0; k < n_out; ++k) { + double re = 0.0; + double im = 0.0; + const double w = pi2 * static_cast(k) / static_cast(n); + for (int32_t t = 0; t < n; ++t) { + const double angle = w * static_cast(t); + re += static_cast(x[t]) * std::cos(angle); + im -= static_cast(x[t]) * std::sin(angle); + } + power_out[k] = static_cast(re * re + im * im); + } +} + +bool is_power_of_two(int32_t value) { + return value > 0 && (value & (value - 1)) == 0; +} + +void rfft_power_radix2(const float* x, int32_t n, int32_t n_out, float* power_out, + std::vector>& workspace) { + workspace.resize(static_cast(n)); + for (int32_t i = 0; i < n; ++i) { + workspace[static_cast(i)] = + std::complex(static_cast(x[i]), 0.0); + } + + for (int32_t i = 1, j = 0; i < n; ++i) { + int32_t bit = n >> 1; + for (; (j & bit) != 0; bit >>= 1) { + j ^= bit; + } + j ^= bit; + if (i < j) { + std::swap(workspace[static_cast(i)], + workspace[static_cast(j)]); + } + } + + const double pi2 = 2.0 * 3.14159265358979323846; + for (int32_t length = 2; length <= n; length <<= 1) { + const double angle = -pi2 / static_cast(length); + const std::complex step(std::cos(angle), std::sin(angle)); + const int32_t half = length / 2; + for (int32_t offset = 0; offset < n; offset += length) { + std::complex twiddle(1.0, 0.0); + for (int32_t i = 0; i < half; ++i) { + const auto even = workspace[static_cast(offset + i)]; + const auto odd = workspace[static_cast(offset + i + half)] * twiddle; + workspace[static_cast(offset + i)] = even + odd; + workspace[static_cast(offset + i + half)] = even - odd; + twiddle *= step; + } + } + } + + const int32_t bins = std::min(n_out, n / 2 + 1); + for (int32_t k = 0; k < bins; ++k) { + power_out[k] = static_cast(std::norm(workspace[static_cast(k)])); + } + std::fill(power_out + bins, power_out + n_out, 0.0F); +} + +class RfftPowerPlan { + public: + explicit RfftPowerPlan(int32_t n) : n_(n) {} + + void execute(const float* input, int32_t n_out, float* power_out) { + if (is_power_of_two(n_)) { + rfft_power_radix2(input, n_, n_out, power_out, workspace_); + return; + } + rfft_power_direct(input, n_, n_out, power_out); + } + + private: + int32_t n_{0}; + std::vector> workspace_; +}; + +std::vector build_center_padded_audio(const float* samples, int32_t n_samples, + int32_t chunk_length_s, int32_t sample_rate, + int32_t n_fft, float preemphasis) { + const int32_t audio_length = chunk_length_s * sample_rate; + std::vector audio_padded(audio_length, 0.0F); + const int32_t copy_len = std::min(n_samples, audio_length); + if (copy_len > 0) { + if (preemphasis != 0.0F) { + audio_padded[0] = samples[0]; + for (int32_t i = 1; i < copy_len; ++i) { + audio_padded[static_cast(i)] = + samples[i] - preemphasis * samples[i - 1]; + } + } else { + std::memcpy(audio_padded.data(), samples, copy_len * sizeof(float)); + } + } + + const int32_t pad_size = n_fft / 2; + const int32_t padded_length = pad_size + audio_length + pad_size; + std::vector padded(padded_length, 0.0F); + std::memcpy(padded.data() + pad_size, audio_padded.data(), audio_length * sizeof(float)); + return padded; +} + +std::vector make_stft_window(const MelSpectrogramOptions& options) { + const int32_t win_length = options.win_length > 0 ? options.win_length : options.n_fft; + if (options.center_window_in_fft) { + return make_centered_stft_window(options.n_fft, win_length); + } + if (options.symmetric_window) { + return make_symmetric_hann_window(options.n_fft); + } + return make_hann_window(options.n_fft); +} + +std::vector compute_mel_spectrogram(const std::vector& padded, + const std::vector& window, + const float* mel_filters, int32_t n_fft, + int32_t hop_length, int32_t n_freq_bins, + int32_t n_mel_bins, int32_t frames_to_compute, + int32_t& n_frames_raw) { + n_frames_raw = 1 + (static_cast(padded.size()) - n_fft) / hop_length; + std::vector mel_spec(static_cast(n_mel_bins) * n_frames_raw, 0.0F); + std::vector windowed(n_fft); + std::vector frame_power(n_freq_bins); + std::vector frame_mel(n_mel_bins); + RfftPowerPlan fft_plan(n_fft); + + const int32_t computed_frames = std::clamp(frames_to_compute, 0, n_frames_raw); + for (int32_t t = 0; t < computed_frames; ++t) { + const int32_t start = t * hop_length; + for (int32_t i = 0; i < n_fft; ++i) { + windowed[static_cast(i)] = + padded[static_cast(start + i)] * window[static_cast(i)]; + } + + fft_plan.execute(windowed.data(), n_freq_bins, frame_power.data()); + + std::fill(frame_mel.begin(), frame_mel.end(), 0.0F); + for (int32_t f = 0; f < n_freq_bins; ++f) { + const float p = frame_power[static_cast(f)]; + if (p == 0.0F) { + continue; + } + const float* filter_row = mel_filters + static_cast(f) * n_mel_bins; + for (int32_t m = 0; m < n_mel_bins; ++m) { + frame_mel[static_cast(m)] += + p * filter_row[static_cast(m)]; + } + } + for (int32_t m = 0; m < n_mel_bins; ++m) { + mel_spec[static_cast(m) * n_frames_raw + t] = + frame_mel[static_cast(m)]; + } + } + return mel_spec; +} + +void normalize_log_mel_inplace(std::vector& mel_spec) { + float global_max = -1e10F; + for (float& value : mel_spec) { + value = std::log10(std::max(value, 1e-10F)); + if (value > global_max) { + global_max = value; + } + } + + const float floor = global_max - 8.0F; + for (float& value : mel_spec) { + value = std::max(value, floor); + value = (value + 4.0F) / 4.0F; + } +} + +void natural_log_mel_inplace(std::vector& mel_spec) { + constexpr float kLogGuard = 5.960464477539063e-08F; + for (float& value : mel_spec) { + value = std::log(value + kLogGuard); + } +} + +void normalize_per_feature_inplace(std::vector& mel_spec, int32_t n_mel_bins, + int32_t n_frames_raw, int32_t valid_frames) { + if (n_mel_bins <= 0 || n_frames_raw <= 0) { + return; + } + + valid_frames = std::clamp(valid_frames, 0, n_frames_raw); + if (valid_frames <= 0) { + std::fill(mel_spec.begin(), mel_spec.end(), 0.0F); + return; + } + + constexpr float kStdGuard = 1e-5F; + for (int32_t m = 0; m < n_mel_bins; ++m) { + const std::size_t base = static_cast(m) * n_frames_raw; + + double mean = 0.0; + for (int32_t t = 0; t < valid_frames; ++t) + mean += static_cast(mel_spec[base + static_cast(t)]); + mean /= static_cast(valid_frames); + + if (valid_frames == 1) { + mel_spec[base] = 0.0F; + } else { + double var = 0.0; + for (int32_t t = 0; t < valid_frames; ++t) { + const double diff = + static_cast(mel_spec[base + static_cast(t)]) - mean; + var += diff * diff; + } + const double stddev = + std::sqrt(var / static_cast(valid_frames - 1)) + kStdGuard; + for (int32_t t = 0; t < valid_frames; ++t) { + const std::size_t idx = base + static_cast(t); + mel_spec[idx] = + static_cast((static_cast(mel_spec[idx]) - mean) / stddev); + } + } + + for (int32_t t = valid_frames; t < n_frames_raw; ++t) + mel_spec[base + static_cast(t)] = 0.0F; + } +} + +void apply_log_scale_inplace(std::vector& mel_spec, MelLogScale log_scale) { + switch (log_scale) { + case MelLogScale::kNaturalLog: + natural_log_mel_inplace(mel_spec); + break; + case MelLogScale::kLog10Normalized: + normalize_log_mel_inplace(mel_spec); + break; + } +} + +std::vector trim_last_frame(std::vector mel_spec, int32_t n_mel_bins, + int32_t n_frames_raw, int32_t& n_frames_out) { + n_frames_out = n_frames_raw; + if (n_frames_raw <= 1) { + return mel_spec; + } + + n_frames_out = n_frames_raw - 1; + std::vector trimmed(static_cast(n_mel_bins) * n_frames_out); + for (int32_t m = 0; m < n_mel_bins; ++m) { + std::memcpy(trimmed.data() + static_cast(m) * n_frames_out, + mel_spec.data() + static_cast(m) * n_frames_raw, + n_frames_out * sizeof(float)); + } + return trimmed; +} + +} // namespace + +namespace detail { + +std::vector rfft_power(const std::vector& input) { + const int32_t n = static_cast(input.size()); + const int32_t n_out = n / 2 + 1; + std::vector power(static_cast(n_out), 0.0F); + if (n > 0) { + RfftPowerPlan plan(n); + plan.execute(input.data(), n_out, power.data()); + } + return power; +} + +} // namespace detail + +class IncrementalMelSpectrogram::Impl { + public: + Impl(const float* mel_filters, int32_t n_freq_bins, int32_t n_mel_bins, + MelSpectrogramOptions options, int32_t input_sample_rate) + : options_(std::move(options)), input_sample_rate_(input_sample_rate), + n_freq_bins_(n_freq_bins), n_mel_bins_(n_mel_bins), window_(make_stft_window(options_)), + fft_plan_(options_.n_fft), windowed_(static_cast(options_.n_fft)), + frame_power_(static_cast(n_freq_bins)), + frame_mel_(static_cast(n_mel_bins)) { + if (mel_filters == nullptr || n_freq_bins != options_.n_fft / 2 + 1 || n_mel_bins <= 0) { + throw std::invalid_argument("incremental TDT mel requires a complete filterbank"); + } + if (input_sample_rate_ <= 0 || options_.sample_rate <= 0 || options_.n_fft <= 0 || + options_.hop_length <= 0) { + throw std::invalid_argument("incremental TDT mel requires positive dimensions"); + } + if (options_.log_scale != MelLogScale::kNaturalLog || options_.normalize_per_feature) { + throw std::invalid_argument( + "incremental TDT mel only supports natural-log features without normalization"); + } + mel_filters_.assign(mel_filters, + mel_filters + static_cast(n_freq_bins_) * n_mel_bins_); + } + + void accept_audio(const float* samples, int32_t n_samples) { + if (n_samples < 0 || (n_samples > 0 && samples == nullptr)) { + throw std::invalid_argument("incremental TDT mel received invalid audio"); + } + if (n_samples == 0) { + return; + } + raw_audio_.insert(raw_audio_.end(), samples, samples + n_samples); + } + + int32_t target_sample_count() const { + const int64_t converted = + static_cast(raw_audio_.size()) * options_.sample_rate / input_sample_rate_; + const int64_t chunk_limit = + static_cast(options_.chunk_length_s) * options_.sample_rate; + return static_cast(std::min(converted, chunk_limit)); + } + + int32_t stable_target_sample_count(bool final) const { + if (final || input_sample_rate_ == options_.sample_rate) { + return target_sample_count(); + } + constexpr int32_t kResampleHalfTaps = 16; + const int64_t stable_source = + std::max(0, static_cast(raw_audio_.size()) - kResampleHalfTaps); + const int64_t stable_target = stable_source * options_.sample_rate / input_sample_rate_; + return static_cast(std::min(stable_target, target_sample_count())); + } + + int32_t available_frames() const { return target_sample_count() / options_.hop_length; } + + void ensure_resampled_samples(int32_t required_samples, bool final) { + if (!final && required_samples > stable_target_sample_count(false)) { + throw std::runtime_error( + "incremental TDT mel requested samples before resampler lookahead was ready"); + } + const int32_t bounded_required = std::min(required_samples, target_sample_count()); + const int32_t start = static_cast(resampled_audio_.size()); + if (bounded_required <= start) { + return; + } + auto next = resample_linear_range( + raw_audio_.data(), static_cast(raw_audio_.size()), input_sample_rate_, + options_.sample_rate, start, bounded_required - start); + resampled_audio_.insert(resampled_audio_.end(), next.begin(), next.end()); + } + + float preemphasized_sample(int32_t audio_index) const { + if (audio_index < 0 || audio_index >= static_cast(resampled_audio_.size())) { + return 0.0F; + } + const float current = resampled_audio_[static_cast(audio_index)]; + if (options_.preemphasis == 0.0F || audio_index == 0) { + return current; + } + return current - + options_.preemphasis * resampled_audio_[static_cast(audio_index - 1)]; + } + + void compute_frame(int32_t frame) { + const int32_t pad_size = options_.n_fft / 2; + const int32_t frame_start = frame * options_.hop_length - pad_size; + for (int32_t i = 0; i < options_.n_fft; ++i) { + windowed_[static_cast(i)] = + preemphasized_sample(frame_start + i) * window_[static_cast(i)]; + } + fft_plan_.execute(windowed_.data(), n_freq_bins_, frame_power_.data()); + + std::fill(frame_mel_.begin(), frame_mel_.end(), 0.0F); + for (int32_t f = 0; f < n_freq_bins_; ++f) { + const float power = frame_power_[static_cast(f)]; + const float* filter_row = + mel_filters_.data() + static_cast(f) * n_mel_bins_; + for (int32_t m = 0; m < n_mel_bins_; ++m) { + frame_mel_[static_cast(m)] += + power * filter_row[static_cast(m)]; + } + } + constexpr float kLogGuard = 5.960464477539063e-08F; + for (float value : frame_mel_) { + frames_.push_back(std::log(value + kLogGuard)); + } + } + + void ensure_frames(int32_t end_frame, bool final) { + if (end_frame < 0 || end_frame > available_frames()) { + throw std::out_of_range("incremental TDT mel frame request exceeds available audio"); + } + const int32_t current_frames = frame_count(); + if (end_frame <= current_frames) { + return; + } + const int32_t last_frame = end_frame - 1; + const int32_t required_samples = + last_frame * options_.hop_length + options_.n_fft - options_.n_fft / 2; + ensure_resampled_samples(required_samples, final); + for (int32_t frame = current_frames; frame < end_frame; ++frame) { + compute_frame(frame); + } + } + + void reset() { + raw_audio_.clear(); + resampled_audio_.clear(); + frames_.clear(); + } + + int32_t frame_count() const { + return static_cast(frames_.size() / static_cast(n_mel_bins_)); + } + + int32_t n_mels() const { return n_mel_bins_; } + + float value(int32_t mel_bin, int32_t frame) const { + if (mel_bin < 0 || mel_bin >= n_mel_bins_ || frame < 0 || frame >= frame_count()) { + throw std::out_of_range("incremental TDT mel feature index is out of range"); + } + return frames_[static_cast(frame) * n_mel_bins_ + mel_bin]; + } + + IncrementalMelStats stats() const { + return {static_cast(raw_audio_.size()), + static_cast(resampled_audio_.size()), frame_count()}; + } + + MelSpectrogramOptions options_; + int32_t input_sample_rate_{0}; + int32_t n_freq_bins_{0}; + int32_t n_mel_bins_{0}; + std::vector mel_filters_; + std::vector window_; + RfftPowerPlan fft_plan_; + std::vector raw_audio_; + std::vector resampled_audio_; + std::vector frames_; + std::vector windowed_; + std::vector frame_power_; + std::vector frame_mel_; +}; + +IncrementalMelSpectrogram::IncrementalMelSpectrogram(const float* mel_filters, int32_t n_freq_bins, + int32_t n_mel_bins, + MelSpectrogramOptions options, + int32_t input_sample_rate) + : impl_(std::make_unique(mel_filters, n_freq_bins, n_mel_bins, std::move(options), + input_sample_rate)) {} + +IncrementalMelSpectrogram::~IncrementalMelSpectrogram() = default; +IncrementalMelSpectrogram::IncrementalMelSpectrogram(IncrementalMelSpectrogram&&) noexcept = + default; +IncrementalMelSpectrogram& +IncrementalMelSpectrogram::operator=(IncrementalMelSpectrogram&&) noexcept = default; + +void IncrementalMelSpectrogram::accept_audio(const float* samples, int32_t n_samples) { + impl_->accept_audio(samples, n_samples); +} + +void IncrementalMelSpectrogram::ensure_frames(int32_t end_frame, bool final) { + impl_->ensure_frames(end_frame, final); +} + +void IncrementalMelSpectrogram::reset() { + impl_->reset(); +} + +int32_t IncrementalMelSpectrogram::available_frames() const { + return impl_->available_frames(); +} + +int32_t IncrementalMelSpectrogram::frame_count() const { + return impl_->frame_count(); +} + +int32_t IncrementalMelSpectrogram::n_mels() const { + return impl_->n_mels(); +} + +float IncrementalMelSpectrogram::value(int32_t mel_bin, int32_t frame) const { + return impl_->value(mel_bin, frame); +} + +IncrementalMelStats IncrementalMelSpectrogram::stats() const { + return impl_->stats(); +} + +MelResult extract_configured_mel_spectrogram(const float* samples, int32_t n_samples, + const float* mel_filters, int32_t n_freq_bins, + int32_t n_mel_bins, + const MelSpectrogramOptions& options) { + const int32_t expected_freq_bins = options.n_fft / 2 + 1; + const int32_t freq_bins = n_freq_bins == expected_freq_bins ? n_freq_bins : expected_freq_bins; + const int32_t chunk_samples = options.chunk_length_s * options.sample_rate; + const int32_t valid_audio = std::min(std::max(n_samples, 0), chunk_samples); + const int32_t pad_size = options.n_fft / 2; + const int32_t frames_to_compute = valid_audio > 0 && options.hop_length > 0 + ? 1 + (pad_size + valid_audio - 1) / options.hop_length + : 0; + const std::vector padded = + build_center_padded_audio(samples, n_samples, options.chunk_length_s, options.sample_rate, + options.n_fft, options.preemphasis); + + int32_t n_frames_raw = 0; + std::vector mel_spec = compute_mel_spectrogram( + padded, make_stft_window(options), mel_filters, options.n_fft, options.hop_length, + freq_bins, n_mel_bins, frames_to_compute, n_frames_raw); + apply_log_scale_inplace(mel_spec, options.log_scale); + if (options.normalize_per_feature) { + const int32_t valid_frames = + (options.hop_length > 0) ? (n_samples / options.hop_length) : 0; + normalize_per_feature_inplace(mel_spec, n_mel_bins, n_frames_raw, valid_frames); + } + + int32_t n_frames_out = 0; + mel_spec = trim_last_frame(std::move(mel_spec), n_mel_bins, n_frames_raw, n_frames_out); + + MelResult result; + result.data = std::move(mel_spec); + result.n_mels = n_mel_bins; + result.n_frames = n_frames_out; + return result; +} + +MelResult extract_tdt_mel_spectrogram(const float* samples, int32_t n_samples, + const float* mel_filters, int32_t n_freq_bins, + int32_t n_mel_bins, int32_t n_fft, int32_t win_length, + int32_t hop_length, int32_t chunk_length_s, + int32_t sample_rate, float preemphasis) { + MelSpectrogramOptions options; + options.n_fft = n_fft; + options.win_length = win_length; + options.hop_length = hop_length; + options.chunk_length_s = chunk_length_s; + options.sample_rate = sample_rate; + options.symmetric_window = true; + options.center_window_in_fft = true; + options.preemphasis = preemphasis; + options.log_scale = MelLogScale::kNaturalLog; + options.normalize_per_feature = true; + return extract_configured_mel_spectrogram(samples, n_samples, mel_filters, n_freq_bins, + n_mel_bins, options); +} + +} // namespace tdt +} // namespace trtmc diff --git a/src/runtime/models/parakeet_tdt/audio_helpers.h b/src/runtime/models/parakeet_tdt/audio_helpers.h new file mode 100644 index 0000000000..6ec8955050 --- /dev/null +++ b/src/runtime/models/parakeet_tdt/audio_helpers.h @@ -0,0 +1,89 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include +#include +#include + +namespace trtmc { +namespace tdt { + +struct MelResult { + std::vector data; // [n_mels, n_frames] row-major + int32_t n_mels{0}; + int32_t n_frames{0}; +}; + +enum class MelLogScale { + kLog10Normalized, + kNaturalLog, +}; + +struct MelSpectrogramOptions { + int32_t n_fft{400}; + int32_t win_length{0}; + int32_t hop_length{160}; + int32_t chunk_length_s{30}; + int32_t sample_rate{16000}; + bool symmetric_window{false}; + bool center_window_in_fft{false}; + float preemphasis{0.0F}; + MelLogScale log_scale{MelLogScale::kLog10Normalized}; + bool normalize_per_feature{false}; +}; + +namespace detail { + +std::vector rfft_power(const std::vector& input); + +} // namespace detail + +struct IncrementalMelStats { + int64_t accepted_source_samples{0}; + int64_t generated_resampled_samples{0}; + int64_t computed_mel_frames{0}; +}; + +class IncrementalMelSpectrogram { + public: + IncrementalMelSpectrogram(const float* mel_filters, int32_t n_freq_bins, int32_t n_mel_bins, + MelSpectrogramOptions options, int32_t input_sample_rate); + ~IncrementalMelSpectrogram(); + + IncrementalMelSpectrogram(IncrementalMelSpectrogram&&) noexcept; + IncrementalMelSpectrogram& operator=(IncrementalMelSpectrogram&&) noexcept; + IncrementalMelSpectrogram(const IncrementalMelSpectrogram&) = delete; + IncrementalMelSpectrogram& operator=(const IncrementalMelSpectrogram&) = delete; + + void accept_audio(const float* samples, int32_t n_samples); + void ensure_frames(int32_t end_frame, bool final); + void reset(); + + int32_t available_frames() const; + int32_t frame_count() const; + int32_t n_mels() const; + float value(int32_t mel_bin, int32_t frame) const; + IncrementalMelStats stats() const; + + private: + class Impl; + std::unique_ptr impl_; +}; + +MelResult extract_configured_mel_spectrogram(const float* samples, int32_t n_samples, + const float* mel_filters, int32_t n_freq_bins, + int32_t n_mel_bins, + const MelSpectrogramOptions& options); + +MelResult extract_tdt_mel_spectrogram(const float* samples, int32_t n_samples, + const float* mel_filters, int32_t n_freq_bins, + int32_t n_mel_bins, int32_t n_fft, int32_t win_length, + int32_t hop_length, int32_t chunk_length_s, + int32_t sample_rate, float preemphasis); + +} // namespace tdt +} // namespace trtmc diff --git a/src/runtime/models/parakeet_tdt/pipeline.cpp b/src/runtime/models/parakeet_tdt/pipeline.cpp new file mode 100644 index 0000000000..44058499e6 --- /dev/null +++ b/src/runtime/models/parakeet_tdt/pipeline.cpp @@ -0,0 +1,844 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "runtime/models/parakeet_tdt/pipeline.h" + +#include "audio_helpers.h" +#include "bundle/bundle_format.h" +#include "bundle/bundle_view.h" +#include "plugin_helpers.h" +#include "utils/wav_reader.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace trtmc { + +namespace { + +using TdtClock = std::chrono::steady_clock; + +struct TdtStageTotals { + double frontend_ms{0.0}; + double encoder_and_transfer_ms{0.0}; + double predictor_joint_and_transfer_ms{0.0}; + double text_ms{0.0}; +}; + +bool tdt_stage_timing_enabled() { + const char* value = std::getenv("TRTMC_TDT_STAGE_TIMING"); + return value != nullptr && value[0] != '\0' && std::strcmp(value, "0") != 0; +} + +double elapsed_ms(TdtClock::time_point start, TdtClock::time_point end) { + return std::chrono::duration(end - start).count(); +} + +void report_tdt_stage_timing(bool enabled, const char* mode, const TdtStageTotals& stages, + double total_ms, int64_t source_samples, int64_t resampled_samples, + int64_t mel_frames) { + if (!enabled) { + return; + } + std::ostringstream timing; + timing << "[trtmc.tdt_timing.json] {\"mode\":\"" << mode + << "\",\"frontend_ms\":" << stages.frontend_ms + << ",\"encoder_and_transfer_ms\":" << stages.encoder_and_transfer_ms + << ",\"predictor_joint_and_transfer_ms\":" << stages.predictor_joint_and_transfer_ms + << ",\"text_ms\":" << stages.text_ms << ",\"total_ms\":" << total_ms + << ",\"source_samples\":" << source_samples + << ",\"resampled_samples\":" << resampled_samples << ",\"mel_frames\":" << mel_frames + << '}'; + std::cerr << timing.str() << std::endl; +} + +Tensor make_tensor(void* data, std::vector shape, DType dtype) { + Tensor t; + t.data = data; + t.shape = std::move(shape); + t.dtype = dtype; + return t; +} + +int32_t infer_encoder_frames(const Tensor& encoder_output, int32_t hidden_size) { + if (hidden_size <= 0) + return 0; + const auto elems = static_cast(encoder_output.numel()); + return elems > 0 ? elems / hidden_size : 0; +} + +int32_t argmax_token(const std::vector& logits) { + if (logits.empty()) + return -1; + return static_cast( + std::distance(logits.begin(), std::max_element(logits.begin(), logits.end()))); +} + +int32_t subsampled_frame_count(int32_t frames, bool causal) { + if (frames <= 0) + return 0; + for (int i = 0; i < 3; ++i) + frames = causal ? (frames / 2 + 1) : ((frames + 2 - 3) / 2 + 1); + return frames; +} + +bool tdt_stream_debug_enabled() { + const char* v = std::getenv("TRTMC_TDT_STREAM_DEBUG"); + return v && std::string(v) != "0"; +} + +tdt::MelSpectrogramOptions make_tdt_mel_options(const TdtConfig& config) { + tdt::MelSpectrogramOptions options; + options.n_fft = config.mel_n_fft; + options.win_length = config.mel_win_length; + options.hop_length = config.mel_hop_length; + options.chunk_length_s = config.mel_chunk_length; + options.sample_rate = config.sample_rate; + options.symmetric_window = true; + options.center_window_in_fft = true; + options.preemphasis = config.mel_preemph; + options.log_scale = tdt::MelLogScale::kNaturalLog; + options.normalize_per_feature = true; + return options; +} + +void validate_tdt_module(const std::unique_ptr& module, const char* name) { + if (!module || !module->ok()) + throw std::runtime_error(std::string("TdtPipeline: invalid ") + name + " module"); +} + +void validate_tdt_core_config(const TdtConfig& config, const MelFilterbank& mel_fb) { + if (mel_fb.data.empty()) + throw std::runtime_error("TdtPipeline: missing mel filterbank bundle section"); + if (config.encoder_hidden_size <= 0 || config.pred_hidden_size <= 0 || + config.pred_num_layers <= 0) + throw std::runtime_error("TdtPipeline: invalid TDT dimensions in config"); + if (config.blank_id < 0) + throw std::runtime_error("TdtPipeline: invalid blank token id"); +} + +bool has_streaming_encoder_sections(const std::map& steady_sections, + const std::map& first_sections) { + return !steady_sections.empty() || !first_sections.empty(); +} + +void validate_tdt_streaming_config(const TdtConfig& config, bool has_streaming_sections) { + if (!has_streaming_sections) + return; + if (config.encoder_layers <= 0 || config.streaming_cache_left <= 0 || + config.streaming_time_cache <= 0) + throw std::runtime_error("TdtPipeline: invalid TDT streaming dimensions in config"); +} + +void print_vector_stats(const char* label, const std::vector& values) { + if (values.empty()) { + std::cerr << "[tdt.stream] " << label << " empty\n"; + return; + } + const auto [min_it, max_it] = std::minmax_element(values.begin(), values.end()); + double sum_abs = 0.0; + for (float v : values) + sum_abs += std::abs(static_cast(v)); + std::cerr << "[tdt.stream] " << label << " count=" << values.size() << " min=" << *min_it + << " max=" << *max_it + << " mean_abs=" << (sum_abs / static_cast(values.size())) << "\n"; +} + +} // namespace + +class TdtTranscriptionStream final : public ITranscriptionStream { + public: + TdtTranscriptionStream(TdtPipeline& pipeline, TranscriptionStreamConfig cfg) + : pipeline_(pipeline), cfg_(cfg), + schedule_(make_tdt_streaming_schedule( + cfg_.att_context_left, cfg_.att_context_right, + cfg_.input_sample_rate > 0 ? cfg_.input_sample_rate : pipeline.config_.sample_rate, + pipeline.config_.mel_hop_length, pipeline.config_.subsampling_factor)), + transcribe_start_(TdtClock::now()), + feature_state_(pipeline_.mel_fb_->data.data(), pipeline_.mel_fb_->n_freq_bins, + pipeline_.mel_fb_->n_mel_bins, make_tdt_mel_options(pipeline_.config_), + cfg_.input_sample_rate > 0 ? cfg_.input_sample_rate + : pipeline_.config_.sample_rate) { + const auto state_elems = static_cast(pipeline_.config_.pred_num_layers) * + pipeline_.config_.pred_hidden_size; + state_h_.assign(state_elems, 0.0F); + state_c_.assign(state_elems, 0.0F); + const auto decode_start = TdtClock::now(); + pred_output_ = pipeline_.run_predictor(pipeline_.config_.blank_id, state_h_, state_c_); + stages_.predictor_joint_and_transfer_ms += elapsed_ms(decode_start, TdtClock::now()); + reset_encoder_cache(); + } + + TranscriptionStreamResult accept_audio(const float* audio_samples, int32_t num_samples, + bool is_final = false) override { + if (num_samples < 0) + throw std::runtime_error("TDT streaming transcription received negative sample count"); + if (num_samples > 0 && audio_samples == nullptr) + throw std::runtime_error("TDT streaming transcription received null audio"); + if (finished_) + throw std::runtime_error("TDT streaming transcription stream is already finished"); + + if (num_samples > 0) { + const auto frontend_start = TdtClock::now(); + feature_state_.accept_audio(audio_samples, num_samples); + stages_.frontend_ms += elapsed_ms(frontend_start, TdtClock::now()); + accepted_samples_ += num_samples; + } + ++chunk_index_; + + if (is_final) + return finish(); + + const int32_t shift = use_first_step_plan() ? schedule_.first_shift_mel_frames + : schedule_.next_shift_mel_frames; + const int32_t retained_lookahead = + schedule_.next_shift_mel_frames - schedule_.first_shift_mel_frames; + const int32_t required_mel = shift + retained_lookahead; + if (available_mel_frames() - next_mel_start_ < required_mel) + return make_result(false); + + return process_ready(false); + } + + TranscriptionStreamResult finish() override { + if (finished_) + return final_; + finished_ = true; + + final_ = process_ready(true); + final_.is_final = true; + const auto feature_stats = feature_state_.stats(); + report_tdt_stage_timing( + tdt_stage_timing_enabled(), "streaming", stages_, + elapsed_ms(transcribe_start_, TdtClock::now()), feature_stats.accepted_source_samples, + feature_stats.generated_resampled_samples, feature_stats.computed_mel_frames); + return final_; + } + + void reset() override { + transcribe_start_ = TdtClock::now(); + stages_ = {}; + feature_state_.reset(); + accepted_samples_ = 0; + chunk_index_ = 0; + finished_ = false; + final_ = {}; + next_mel_start_ = 0; + emitted_.clear(); + std::fill(state_h_.begin(), state_h_.end(), 0.0F); + std::fill(state_c_.begin(), state_c_.end(), 0.0F); + const auto decode_start = TdtClock::now(); + pred_output_ = pipeline_.run_predictor(pipeline_.config_.blank_id, state_h_, state_c_); + stages_.predictor_joint_and_transfer_ms += elapsed_ms(decode_start, TdtClock::now()); + reset_encoder_cache(); + } + + TranscriptionStreamConfig config() const override { return cfg_; } + + private: + bool use_first_step_plan() const { + return next_mel_start_ == 0 && !cfg_.pad_and_drop_preencoded; + } + + int32_t token_limit() const { return cfg_.max_new_tokens > 0 ? cfg_.max_new_tokens : 256; } + + bool token_limit_reached() const { + return static_cast(emitted_.size()) >= token_limit(); + } + + int32_t current_shift_mel_frames(bool first_step) const { + return first_step ? schedule_.first_shift_mel_frames : schedule_.next_shift_mel_frames; + } + + int32_t current_pre_encode_cache_mel_frames(bool first_step) const { + return first_step ? schedule_.first_pre_encode_cache_mel_frames + : schedule_.next_pre_encode_cache_mel_frames; + } + + int32_t current_drop_extra_pre_encoded(bool first_step) const { + return first_step ? 0 : schedule_.drop_extra_pre_encoded; + } + + bool should_process_chunk(int32_t remaining, int32_t shift, bool final) const { + if (remaining <= 0) + return false; + if (!final && remaining < shift) + return false; + return true; + } + + int32_t available_mel_frames() const { return feature_state_.available_frames(); } + + std::vector make_chunk_mel(int32_t start_frame, int32_t valid_new_frames, + bool first_step) const { + const int32_t chunk_frames = + first_step ? schedule_.first_shift_mel_frames : schedule_.next_shift_mel_frames; + const int32_t pre = first_step ? schedule_.first_pre_encode_cache_mel_frames + : schedule_.next_pre_encode_cache_mel_frames; + const int32_t total = pre + chunk_frames; + std::vector chunk(static_cast(pipeline_.config_.num_mel_bins) * total, + 0.0F); + for (int32_t m = 0; m < pipeline_.config_.num_mel_bins; ++m) { + for (int32_t p = 0; p < pre; ++p) { + const int32_t src_frame = start_frame - pre + p; + if (src_frame >= 0 && src_frame < feature_state_.frame_count()) { + chunk[static_cast(m) * total + p] = + feature_state_.value(m, src_frame); + } + } + for (int32_t p = 0; p < valid_new_frames; ++p) { + const int32_t src_frame = start_frame + p; + if (src_frame >= 0 && src_frame < feature_state_.frame_count()) { + chunk[static_cast(m) * total + pre + p] = + feature_state_.value(m, src_frame); + } + } + } + return chunk; + } + + TranscriptionStreamResult make_result(bool is_final) { + const auto text_start = TdtClock::now(); + TranscriptionStreamResult out; + out.token_ids = emitted_; + if (pipeline_.tokenizer_ && !out.token_ids.empty()) + out.text = pipeline_.tokenizer_->decode(out.token_ids); + out.is_final = is_final; + out.chunk_index = chunk_index_; + out.accepted_samples = accepted_samples_; + out.sample_rate = cfg_.input_sample_rate; + stages_.text_ms += elapsed_ms(text_start, TdtClock::now()); + return out; + } + + int32_t valid_query_frames_for_chunk(int32_t valid_new_frames, bool first_step) const { + const int32_t valid_total_mel = + current_pre_encode_cache_mel_frames(first_step) + valid_new_frames; + const int32_t drop_extra = current_drop_extra_pre_encoded(first_step); + int32_t valid_query_frames = + subsampled_frame_count(valid_total_mel, pipeline_.config_.causal_downsampling) - + drop_extra; + return std::max(0, std::min(valid_query_frames, schedule_.valid_encoder_frames)); + } + + void trace_streaming_chunk(const std::vector& enc, std::size_t before_tokens, + int32_t valid_new_frames, int32_t valid_query_frames) const { + std::cerr << "[tdt.stream] chunk=" << chunk_index_ << " mel_start=" << next_mel_start_ + << " valid_new_mel=" << valid_new_frames << " valid_query=" << valid_query_frames + << " cache_len=" << cache_last_channel_len_ + << " emitted_delta=" << (emitted_.size() - before_tokens) + << " emitted_total=" << emitted_.size() << "\n"; + print_vector_stats("encoder", enc); + } + + bool process_next_chunk(int32_t actual_mel_frames, bool final) { + const bool first_step = use_first_step_plan(); + const int32_t shift = current_shift_mel_frames(first_step); + const int32_t remaining = actual_mel_frames - next_mel_start_; + if (!should_process_chunk(remaining, shift, final)) + return false; + + const int32_t valid_new_frames = std::min(shift, remaining); + const int32_t valid_query_frames = + valid_query_frames_for_chunk(valid_new_frames, first_step); + if (valid_query_frames <= 0) + return false; + + const auto frontend_start = TdtClock::now(); + feature_state_.ensure_frames(next_mel_start_ + valid_new_frames, final); + auto chunk = make_chunk_mel(next_mel_start_, valid_new_frames, first_step); + stages_.frontend_ms += elapsed_ms(frontend_start, TdtClock::now()); + std::vector next_channel; + std::vector next_time; + const auto before_tokens = emitted_.size(); + const auto encoder_start = TdtClock::now(); + auto enc = pipeline_.run_streaming_encoder( + cfg_.att_context_right, chunk, cache_last_channel_, cache_last_time_, + cache_last_channel_len_, valid_query_frames, first_step, next_channel, next_time); + stages_.encoder_and_transfer_ms += elapsed_ms(encoder_start, TdtClock::now()); + const auto decode_start = TdtClock::now(); + pipeline_.decode_encoder_frames(enc, valid_query_frames, token_limit(), pred_output_, + state_h_, state_c_, emitted_); + stages_.predictor_joint_and_transfer_ms += elapsed_ms(decode_start, TdtClock::now()); + if (tdt_stream_debug_enabled()) + trace_streaming_chunk(enc, before_tokens, valid_new_frames, valid_query_frames); + + cache_last_channel_ = std::move(next_channel); + cache_last_time_ = std::move(next_time); + cache_last_channel_len_ = + std::min(pipeline_.config_.streaming_cache_left, + cache_last_channel_len_ + schedule_.valid_encoder_frames); + next_mel_start_ += valid_new_frames; + return valid_new_frames == shift; + } + + TranscriptionStreamResult process_ready(bool final) { + if (accepted_samples_ == 0) + return make_result(final); + const int32_t actual_mel_frames = available_mel_frames(); + + while (!token_limit_reached()) { + if (!process_next_chunk(actual_mel_frames, final)) + break; + } + return make_result(final); + } + + void reset_encoder_cache() { + const auto channel_count = static_cast(pipeline_.config_.encoder_layers) * + pipeline_.config_.streaming_cache_left * + pipeline_.config_.encoder_hidden_size; + const auto time_count = static_cast(pipeline_.config_.encoder_layers) * + pipeline_.config_.encoder_hidden_size * + pipeline_.config_.streaming_time_cache; + cache_last_channel_.assign(channel_count, 0.0F); + cache_last_time_.assign(time_count, 0.0F); + cache_last_channel_len_ = 0; + } + + TdtPipeline& pipeline_; + TranscriptionStreamConfig cfg_; + TdtStreamingSchedule schedule_; + TdtClock::time_point transcribe_start_; + tdt::IncrementalMelSpectrogram feature_state_; + TdtStageTotals stages_; + std::vector cache_last_channel_; + std::vector cache_last_time_; + std::vector pred_output_; + std::vector state_h_; + std::vector state_c_; + std::vector emitted_; + int64_t accepted_samples_{0}; + int32_t next_mel_start_{0}; + int32_t cache_last_channel_len_{0}; + int32_t chunk_index_{0}; + bool finished_{false}; + TranscriptionStreamResult final_; +}; + +TdtPipeline::TdtPipeline(std::unique_ptr encoder, std::unique_ptr predictor, + std::unique_ptr joint, std::unique_ptr prompt_kernel, + std::map streaming_encoder_sections, + IBackend* backend, ModuleCreateOptions module_options, + std::map streaming_first_encoder_sections, + std::string bundle_path, TdtConfig config, MelFilterbank mel_fb, + cudaStream_t stream, std::shared_ptr tokenizer, + std::string model_id_str) + : encoder_(std::move(encoder)), predictor_(std::move(predictor)), joint_(std::move(joint)), + prompt_kernel_(std::move(prompt_kernel)), + streaming_encoder_sections_(std::move(streaming_encoder_sections)), + streaming_first_encoder_sections_(std::move(streaming_first_encoder_sections)), + backend_(backend), module_options_(module_options), bundle_path_(std::move(bundle_path)), + config_(std::move(config)), mel_fb_(std::make_unique(std::move(mel_fb))), + stream_(stream), tokenizer_(std::move(tokenizer)), model_id_(std::move(model_id_str)) { + validate_tdt_module(encoder_, "encoder"); + validate_tdt_module(predictor_, "predictor"); + validate_tdt_module(joint_, "joint"); + validate_tdt_core_config(config_, *mel_fb_); + validate_tdt_streaming_config( + config_, has_streaming_encoder_sections(streaming_encoder_sections_, + streaming_first_encoder_sections_)); + if (config_.has_prompt_kernel) { + if (!prompt_kernel_ || !prompt_kernel_->ok()) + throw std::runtime_error( + "TdtPipeline: prompt_kernel module required when has_prompt_kernel=true"); + if (config_.num_prompts <= 0) + throw std::runtime_error("TdtPipeline: invalid num_prompts for prompt_kernel variant"); + } +} + +int32_t TdtPipeline::resolve_prompt_index(const std::string& tag) const { + if (!config_.has_prompt_kernel) + return 0; + if (tag.empty()) + return 0; + auto it = config_.prompt_dictionary.find(tag); + if (it == config_.prompt_dictionary.end()) + throw std::invalid_argument("Unsupported language tag '" + tag + "'"); + return it->second; +} + +std::vector TdtPipeline::run_prompt_kernel(const float* encoder_frame) { + if (!prompt_kernel_) + throw std::runtime_error("TdtPipeline: run_prompt_kernel called without engine"); + const int32_t enc_dim = config_.encoder_hidden_size; + const int32_t num_p = config_.num_prompts; + + TensorMap inputs; + inputs["encoder_frame"] = + make_tensor(const_cast(encoder_frame), {1, enc_dim}, DType::kFloat32); + inputs["prompt_onehot"] = make_tensor(prompt_onehot_.data(), {1, num_p}, DType::kFloat32); + + auto outputs = prompt_kernel_->forward(inputs); + auto it = outputs.find("prompt_kernel_output"); + if (it == outputs.end()) + throw std::runtime_error("TdtPipeline: prompt_kernel missing 'prompt_kernel_output'"); + const auto* src = static_cast(it->second.data); + const auto count = static_cast(it->second.numel()); + return std::vector(src, src + count); +} + +TdtPipeline::~TdtPipeline() = default; + +void TdtPipeline::setup_prompt_state(const std::string& language) { + if (!config_.has_prompt_kernel) { + prompt_onehot_.clear(); + prompt_index_ = -1; + return; + } + prompt_index_ = resolve_prompt_index(language); + prompt_onehot_.assign(static_cast(config_.num_prompts), 0.0F); + if (prompt_index_ >= 0 && prompt_index_ < config_.num_prompts) + prompt_onehot_[static_cast(prompt_index_)] = 1.0F; +} + +std::unique_ptr +TdtPipeline::create_transcription_stream(const TranscriptionStreamConfig& cfg) { + (void)make_tdt_streaming_schedule(cfg.att_context_left, cfg.att_context_right, + cfg.input_sample_rate, config_.mel_hop_length, + config_.subsampling_factor); + + setup_prompt_state(cfg.language); + + if (cfg.online_normalization) + throw std::runtime_error("TDT streaming transcription does not support " + "online_normalization for this checkpoint"); + if (!cfg.use_cache || !cfg.use_feature_cache) + throw std::runtime_error("TDT streaming transcription parity requires both encoder cache " + "and feature cache to match NeMo cache-aware streaming"); + if (streaming_encoders_.find(cfg.att_context_right) == streaming_encoders_.end() && + streaming_encoder_sections_.find(cfg.att_context_right) == + streaming_encoder_sections_.end()) { + throw std::runtime_error( + "TDT cache-aware streaming requires a bundle with streaming encoder cache " + "inputs/outputs for the requested att_context_size"); + } + if (!cfg.pad_and_drop_preencoded && + streaming_first_encoders_.find(cfg.att_context_right) == streaming_first_encoders_.end() && + streaming_first_encoder_sections_.find(cfg.att_context_right) == + streaming_first_encoder_sections_.end()) { + throw std::runtime_error( + "TDT cache-aware streaming requires a first-step streaming encoder plan for " + "NeMo pad_and_drop_preencoded=false parity"); + } + (void)streaming_encoder_for(cfg.att_context_right, !cfg.pad_and_drop_preencoded); + return std::make_unique(*this, cfg); +} + +TextResult TdtPipeline::transcribe(const float* audio_data, int32_t num_samples, + int32_t max_new_tokens, int32_t input_sample_rate) { + const bool report_timing = tdt_stage_timing_enabled(); + const auto transcribe_start = TdtClock::now(); + TdtStageTotals stages; + + int32_t actual_mel_frames = 0; + auto mel = extract_padded_mel(audio_data, num_samples, input_sample_rate, actual_mel_frames); + const auto frontend_end = TdtClock::now(); + stages.frontend_ms = elapsed_ms(transcribe_start, frontend_end); + if (mel.empty()) + return TextResult{"[mel extraction failed]", {}}; + + auto encoder_output = run_encoder(mel, actual_mel_frames); + const auto encoder_end = TdtClock::now(); + stages.encoder_and_transfer_ms = elapsed_ms(frontend_end, encoder_end); + const int32_t encoder_frames = + static_cast(encoder_output.size()) / config_.encoder_hidden_size; + if (encoder_frames <= 0) + return TextResult{"[encoder produced no frames]", {}}; + + const auto state_elems = + static_cast(config_.pred_num_layers) * config_.pred_hidden_size; + std::vector state_h(state_elems, 0.0F); + std::vector state_c(state_elems, 0.0F); + std::vector pred_output = run_predictor(config_.blank_id, state_h, state_c); + + std::vector emitted; + const int32_t token_limit = max_new_tokens > 0 ? max_new_tokens : 256; + emitted.reserve(static_cast(token_limit)); + + decode_encoder_frames(encoder_output, encoder_frames, token_limit, pred_output, state_h, + state_c, emitted); + const auto decode_end = TdtClock::now(); + stages.predictor_joint_and_transfer_ms = elapsed_ms(encoder_end, decode_end); + + TextResult out; + out.token_ids = std::move(emitted); + if (tokenizer_ && !out.token_ids.empty()) + out.text = tokenizer_->decode(out.token_ids); + const auto text_end = TdtClock::now(); + stages.text_ms = elapsed_ms(decode_end, text_end); + const int64_t resampled_samples = + input_sample_rate > 0 && input_sample_rate != config_.sample_rate + ? static_cast(num_samples) * config_.sample_rate / input_sample_rate + : num_samples; + report_tdt_stage_timing(report_timing, "offline", stages, + elapsed_ms(transcribe_start, text_end), num_samples, resampled_samples, + actual_mel_frames); + return out; +} + +std::vector TdtPipeline::extract_padded_mel(const float* audio_data, int32_t num_samples, + int32_t input_sample_rate, + int32_t& actual_frames) const { + const float* samples_ptr = audio_data; + int32_t samples_count = num_samples; + std::vector resampled; + if (input_sample_rate > 0 && input_sample_rate != config_.sample_rate) { + std::cerr << "[tdt] Resampling audio from " << input_sample_rate << " Hz to " + << config_.sample_rate << " Hz" << std::endl; + resampled = + resample_linear(audio_data, num_samples, input_sample_rate, config_.sample_rate); + samples_ptr = resampled.data(); + samples_count = static_cast(resampled.size()); + } + + tdt::MelResult mel = tdt::extract_tdt_mel_spectrogram( + samples_ptr, samples_count, mel_fb_->data.data(), mel_fb_->n_freq_bins, mel_fb_->n_mel_bins, + config_.mel_n_fft, config_.mel_win_length, config_.mel_hop_length, config_.mel_chunk_length, + config_.sample_rate, config_.mel_preemph); + actual_frames = std::min(mel.n_frames, std::max(0, samples_count / config_.mel_hop_length)); + if (mel.data.empty()) + return {}; + + const int32_t target_frames = config_.mel_length > 0 ? config_.mel_length : mel.n_frames; + std::vector padded(static_cast(mel.n_mels) * target_frames, 0.0F); + const int32_t copy_frames = std::min(mel.n_frames, target_frames); + for (int32_t m = 0; m < mel.n_mels; ++m) { + std::memcpy(padded.data() + static_cast(m) * target_frames, + mel.data.data() + static_cast(m) * mel.n_frames, + static_cast(copy_frames) * sizeof(float)); + } + return padded; +} + +std::vector TdtPipeline::run_encoder(const std::vector& mel, int32_t actual_frames) { + TensorMap inputs; + inputs["mel_features"] = + make_tensor(const_cast(mel.data()), {config_.num_mel_bins, config_.mel_length}, + DType::kFloat32); + + std::vector encoder_mask; + if (encoder_->has_input("encoder_mask")) { + const int32_t max_frames = std::max( + 1, config_.encoder_seq_len > 0 + ? config_.encoder_seq_len + : subsampled_frame_count(config_.mel_length, config_.causal_downsampling)); + int32_t actual_encoder_frames = + std::max(1, subsampled_frame_count(actual_frames, config_.causal_downsampling)); + actual_encoder_frames = std::min(actual_encoder_frames, max_frames); + encoder_mask.assign(static_cast(max_frames) * max_frames, -10000.0F); + for (int32_t q = 0; q < actual_encoder_frames; ++q) { + const int32_t k_begin = + config_.att_context_left < 0 ? 0 : std::max(0, q - config_.att_context_left); + const int32_t k_end = + config_.att_context_right < 0 + ? actual_encoder_frames - 1 + : std::min(actual_encoder_frames - 1, q + config_.att_context_right); + for (int32_t k = k_begin; k <= k_end; ++k) + encoder_mask[static_cast(q) * max_frames + k] = 0.0F; + } + inputs["encoder_mask"] = + make_tensor(encoder_mask.data(), {1, max_frames, max_frames}, DType::kFloat32); + } + + auto outputs = encoder_->forward(inputs); + auto it = outputs.find("encoder_output"); + if (it == outputs.end()) + throw std::runtime_error("TdtPipeline: encoder missing 'encoder_output'"); + const auto frames = infer_encoder_frames(it->second, config_.encoder_hidden_size); + const auto valid_frames = std::min( + frames, std::max(1, subsampled_frame_count(actual_frames, config_.causal_downsampling))); + const auto count = static_cast(valid_frames) * config_.encoder_hidden_size; + const auto* src = static_cast(it->second.data); + return std::vector(src, src + count); +} + +TrtModule& TdtPipeline::streaming_encoder_for(int32_t right_context, bool first_step) { + auto& encoders = first_step ? streaming_first_encoders_ : streaming_encoders_; + auto& sections = first_step ? streaming_first_encoder_sections_ : streaming_encoder_sections_; + auto cached = encoders.find(right_context); + if (cached != encoders.end() && cached->second) + return *cached->second; + + auto section_it = sections.find(right_context); + if (section_it == sections.end() || section_it->second.empty()) + throw std::runtime_error("TdtPipeline: missing streaming encoder plan for requested " + "att_context_size"); + if (bundle_path_.empty()) + throw std::runtime_error( + "TdtPipeline: missing bundle path for lazy streaming encoder load"); + + const std::string label = std::string("tdt streaming encoder ") + + (first_step ? "first ctx" : "ctx") + std::to_string(right_context); + BundleFile bundle = ReadBundleFile(bundle_path_); + const auto* plan = find_section(bundle, section_it->second); + auto loaded = load_trt_module_from_plan(backend_, plan, label.c_str(), module_options_); + auto* module = loaded.module.get(); + encoders[right_context] = std::move(loaded.module); + return *module; +} + +std::vector TdtPipeline::run_streaming_encoder( + int32_t right_context, const std::vector& mel, + const std::vector& cache_last_channel, const std::vector& cache_last_time, + int32_t cache_last_channel_len, int32_t valid_query_frames, bool first_step, + std::vector& next_channel, std::vector& next_time) { + TrtModule& encoder = streaming_encoder_for(right_context, first_step); + + const auto schedule = + make_tdt_streaming_schedule(config_.att_context_left, right_context, config_.sample_rate, + config_.mel_hop_length, config_.subsampling_factor); + const int32_t query_frames = schedule.valid_encoder_frames; + const int32_t cache_frames = config_.streaming_cache_left; + const int32_t key_frames = cache_frames + query_frames; + const int32_t mel_frames = + first_step ? schedule.first_pre_encode_cache_mel_frames + schedule.first_shift_mel_frames + : schedule.next_pre_encode_cache_mel_frames + schedule.next_shift_mel_frames; + + std::vector encoder_mask(static_cast(query_frames) * key_frames, -10000.0F); + const int32_t valid_cache_begin = cache_frames - std::max(0, cache_last_channel_len); + for (int32_t q = 0; q < valid_query_frames; ++q) { + const int32_t key_end = cache_frames + std::min(valid_query_frames - 1, q + right_context); + for (int32_t k = valid_cache_begin; k <= key_end; ++k) { + if (k >= 0 && k < key_frames) + encoder_mask[static_cast(q) * key_frames + k] = 0.0F; + } + } + + TensorMap inputs; + inputs["mel_features"] = make_tensor(const_cast(mel.data()), + {config_.num_mel_bins, mel_frames}, DType::kFloat32); + inputs["cache_last_channel"] = make_tensor( + const_cast(cache_last_channel.data()), + {config_.encoder_layers, cache_frames, config_.encoder_hidden_size}, DType::kFloat32); + inputs["cache_last_time"] = make_tensor( + const_cast(cache_last_time.data()), + {config_.encoder_layers, config_.encoder_hidden_size, config_.streaming_time_cache}, + DType::kFloat32); + inputs["encoder_mask"] = + make_tensor(encoder_mask.data(), {1, query_frames, key_frames}, DType::kFloat32); + + auto outputs = encoder.forward(inputs); + auto enc_it = outputs.find("encoder_output"); + auto ch_it = outputs.find("cache_last_channel_next"); + auto tm_it = outputs.find("cache_last_time_next"); + if (enc_it == outputs.end() || ch_it == outputs.end() || tm_it == outputs.end()) + throw std::runtime_error("TdtPipeline: streaming encoder missing required outputs"); + + const auto* enc_src = static_cast(enc_it->second.data); + const auto enc_count = static_cast(query_frames) * config_.encoder_hidden_size; + std::vector enc(enc_src, enc_src + enc_count); + + const auto* ch_src = static_cast(ch_it->second.data); + next_channel.assign(ch_src, ch_src + ch_it->second.numel()); + const auto* tm_src = static_cast(tm_it->second.data); + next_time.assign(tm_src, tm_src + tm_it->second.numel()); + return enc; +} + +void TdtPipeline::decode_encoder_frames(const std::vector& encoder_output, + int32_t frame_count, int32_t token_limit, + std::vector& pred_output, + std::vector& state_h, std::vector& state_c, + std::vector& emitted) { + int32_t frame = 0; + while (frame < frame_count && static_cast(emitted.size()) < token_limit) { + const float* enc_ptr = + encoder_output.data() + static_cast(frame) * config_.encoder_hidden_size; + // Multilingual variant: replace the encoder frame with the prompt_kernel + // MLP output (Linear 1152 -> 2048 -> ReLU -> 1024) before the joint. + std::vector projected; + const float* enc_frame = enc_ptr; + if (config_.has_prompt_kernel) { + projected = run_prompt_kernel(enc_ptr); + enc_frame = projected.data(); + } + while (static_cast(emitted.size()) < token_limit) { + const auto logits = run_joint(enc_frame, pred_output.data()); + const auto token_count = static_cast(config_.blank_id + 1); + if (logits.size() != token_count + config_.duration_values.size()) + throw std::runtime_error("TdtPipeline: joint output sizes do not match config"); + const std::vector token_logits(logits.begin(), logits.begin() + token_count); + const std::vector duration_logits(logits.begin() + token_count, logits.end()); + const int32_t token = argmax_token(token_logits); + const int32_t duration_index = argmax_token(duration_logits); + if (token < 0) + break; + + const auto decision = make_tdt_greedy_decision( + token, duration_index, config_.duration_values, config_.blank_id); + if (decision.emit_token) { + emitted.push_back(token); + pred_output = run_predictor(token, state_h, state_c); + } + frame += decision.frame_advance; + if (decision.frame_advance > 0) + break; + } + } +} + +std::vector TdtPipeline::run_predictor(int32_t token_id, std::vector& state_h, + std::vector& state_c) { + TensorMap inputs; + inputs["token_id"] = make_tensor(&token_id, {1}, DType::kInt32); + const auto layer_stride = static_cast(config_.pred_hidden_size); + for (int32_t layer = 0; layer < config_.pred_num_layers; ++layer) { + const std::string suffix = "_" + std::to_string(layer); + inputs["state_h" + suffix] = + make_tensor(state_h.data() + static_cast(layer) * layer_stride, + {1, config_.pred_hidden_size}, DType::kFloat32); + inputs["state_c" + suffix] = + make_tensor(state_c.data() + static_cast(layer) * layer_stride, + {1, config_.pred_hidden_size}, DType::kFloat32); + } + + auto outputs = predictor_->forward(inputs); + auto pred_it = outputs.find("pred_output"); + if (pred_it == outputs.end()) + throw std::runtime_error("TdtPipeline: predictor missing 'pred_output'"); + + for (int32_t layer = 0; layer < config_.pred_num_layers; ++layer) { + const std::string suffix = "_" + std::to_string(layer); + auto h_it = outputs.find("next_h" + suffix); + auto c_it = outputs.find("next_c" + suffix); + if (h_it == outputs.end() || c_it == outputs.end()) + throw std::runtime_error("TdtPipeline: predictor missing next state outputs"); + std::memcpy(state_h.data() + static_cast(layer) * layer_stride, + h_it->second.data, layer_stride * sizeof(float)); + std::memcpy(state_c.data() + static_cast(layer) * layer_stride, + c_it->second.data, layer_stride * sizeof(float)); + } + + const auto* pred = static_cast(pred_it->second.data); + return std::vector(pred, pred + config_.pred_hidden_size); +} + +std::vector TdtPipeline::run_joint(const float* encoder_frame, const float* pred_output) { + TensorMap inputs; + inputs["encoder_frame"] = make_tensor(const_cast(encoder_frame), + {1, config_.encoder_hidden_size}, DType::kFloat32); + inputs["pred_output"] = make_tensor(const_cast(pred_output), + {1, config_.pred_hidden_size}, DType::kFloat32); + auto outputs = joint_->forward(inputs); + auto token_it = outputs.find("token_logits"); + auto duration_it = outputs.find("duration_logits"); + if (token_it == outputs.end() || duration_it == outputs.end()) + throw std::runtime_error("TdtPipeline: joint missing token_logits or duration_logits"); + const auto* tokens = static_cast(token_it->second.data); + const auto* durations = static_cast(duration_it->second.data); + std::vector logits(tokens, tokens + token_it->second.numel()); + logits.insert(logits.end(), durations, durations + duration_it->second.numel()); + return logits; +} + +} // namespace trtmc diff --git a/src/runtime/models/parakeet_tdt/pipeline.h b/src/runtime/models/parakeet_tdt/pipeline.h new file mode 100644 index 0000000000..957821e53c --- /dev/null +++ b/src/runtime/models/parakeet_tdt/pipeline.h @@ -0,0 +1,102 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +// TdtPipeline: native C++ greedy TDT speech-to-text pipeline. +// Uses separate TRT modules for the acoustic encoder, prediction network, +// and joint network. Build-time Python may parse NeMo checkpoints, but +// runtime inference does not call Python. + +#include "runtime/models/parakeet_tdt/tdt_config.h" +#include "trtmc/pipeline.h" +#include "trtmc/runtime/trt_backend.h" +#include "trtmc/runtime/trt_module.h" +#include "trtmc/tokenizer.h" + +#include +#include +#include +#include +#include +#include + +namespace trtmc { + +struct MelFilterbank; + +class TdtPipeline final : public IPipeline { + public: + TdtPipeline(std::unique_ptr encoder, std::unique_ptr predictor, + std::unique_ptr joint, + std::unique_ptr prompt_kernel, // may be nullptr + std::map streaming_encoder_sections, IBackend* backend, + ModuleCreateOptions module_options, + std::map streaming_first_encoder_sections, + std::string bundle_path, TdtConfig config, MelFilterbank mel_fb, + cudaStream_t stream, std::shared_ptr tokenizer = nullptr, + std::string model_id_str = ""); + + // Resolve a language tag (e.g. "en-US") into a prompt one-hot index using + // the bundle's prompt_dictionary. Returns 0 when the bundle has no + // prompt_kernel or when `tag` is empty. Throws on unknown tags. + int32_t resolve_prompt_index(const std::string& tag) const; + void setup_prompt_state(const std::string& language); + + ~TdtPipeline() override; + + TextResult transcribe(const float* audio_data, int32_t num_samples, int32_t max_new_tokens, + int32_t input_sample_rate = 0) override; + + std::unique_ptr + create_transcription_stream(const TranscriptionStreamConfig& cfg = {}) override; + + const char* model_id() const override { return model_id_.c_str(); } + const char* pipeline_type() const override { return "TdtPipeline"; } + + private: + friend class TdtTranscriptionStream; + + std::vector extract_padded_mel(const float* audio_data, int32_t num_samples, + int32_t input_sample_rate, int32_t& actual_frames) const; + std::vector run_encoder(const std::vector& mel, int32_t actual_frames); + TrtModule& streaming_encoder_for(int32_t right_context, bool first_step); + std::vector run_streaming_encoder(int32_t right_context, const std::vector& mel, + const std::vector& cache_last_channel, + const std::vector& cache_last_time, + int32_t cache_last_channel_len, + int32_t valid_query_frames, bool first_step, + std::vector& next_channel, + std::vector& next_time); + std::vector run_predictor(int32_t token_id, std::vector& state_h, + std::vector& state_c); + std::vector run_joint(const float* encoder_frame, const float* pred_output); + std::vector run_prompt_kernel(const float* encoder_frame); + void decode_encoder_frames(const std::vector& encoder_output, int32_t frame_count, + int32_t token_limit, std::vector& pred_output, + std::vector& state_h, std::vector& state_c, + std::vector& emitted); + + std::unique_ptr encoder_; + std::unique_ptr predictor_; + std::unique_ptr joint_; + std::unique_ptr prompt_kernel_; + std::vector prompt_onehot_; + int32_t prompt_index_{-1}; + std::map streaming_encoder_sections_; + std::map streaming_first_encoder_sections_; + std::map> streaming_encoders_; + std::map> streaming_first_encoders_; + IBackend* backend_{nullptr}; + ModuleCreateOptions module_options_; + std::string bundle_path_; + TdtConfig config_; + std::unique_ptr mel_fb_; + cudaStream_t stream_; + std::shared_ptr tokenizer_; + std::string model_id_; +}; + +} // namespace trtmc diff --git a/src/runtime/models/parakeet_tdt/plugin.cpp b/src/runtime/models/parakeet_tdt/plugin.cpp new file mode 100644 index 0000000000..f5f805a2e6 --- /dev/null +++ b/src/runtime/models/parakeet_tdt/plugin.cpp @@ -0,0 +1,182 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +// ParakeetTDTPlugin: handles +// "parakeet_tdt_speech_to_text" strategy. + +#include "plugin_helpers.h" +#include "runtime/models/parakeet_tdt/pipeline.h" +#include "trtmc/runtime/distributed_runtime.h" +#include "trtmc/runtime/pipeline_registry.h" +#include "utils/json_helpers.h" + +#include +#include +#include +#include +#include +#include +#include + +namespace trtmc { + +namespace { + +struct TensorParallelRuntimeConfig { + bool enabled{false}; + int32_t tp_size{1}; +}; + +TensorParallelRuntimeConfig parse_tensor_parallel_runtime_config(const std::string& config_json) { + TensorParallelRuntimeConfig cfg; + cfg.tp_size = extract_json_int(config_json, "tensor_parallel_size", 1); + const auto mode = extract_json_string(config_json, "tensor_parallel_mode", "single"); + cfg.enabled = (mode == "tensor_parallel" && cfg.tp_size > 1); + return cfg; +} + +std::string tp_engine_section_name(int32_t rank) { + return "engine_plan_tp_rank" + std::to_string(rank); +} + +// Parse the small `prompt_dictionary` object emitted by the Python builder. +// Defers the actual parsing to nlohmann/json after extracting the object's +// text via the shared helper, so the schema-tolerant behaviour matches the +// rest of the bundle-config readers. +std::unordered_map extract_string_int_map(const std::string& json, + const std::string& key) { + const auto obj_text = extract_json_object_text(json, key); + if (obj_text.empty()) + return {}; + try { + const auto parsed = nlohmann::json::parse(obj_text); + if (!parsed.is_object()) + return {}; + std::unordered_map out; + for (auto it = parsed.begin(); it != parsed.end(); ++it) { + if (it.value().is_number_integer()) + out.emplace(it.key(), it.value().get()); + } + return out; + } catch (const nlohmann::json::exception&) { + return {}; + } +} + +} // namespace + +class ParakeetTDTPlugin final : public IPipelinePlugin { + public: + std::unique_ptr create(const PipelineContext& ctx) override { + load_ffi_kernels_from_bundle(ctx.bundle); + + ModuleCreateOptions opts; + opts.runtime_cache_path = ctx.runtime_cache_path.c_str(); + opts.cuda_graphs = ctx.cuda_graphs; + + const auto tp_config = parse_tensor_parallel_runtime_config(ctx.config_json); + DistributedRuntimeGroup tp_group; + ModuleCreateOptions pred_opts = opts; + std::string pred_section = "engine_plan"; + if (tp_config.enabled) { + tp_group = initialize_tensor_parallel_group(tp_config.tp_size); + pred_opts.distributed_communicator = tp_group.communicator; + pred_opts.distributed_owner = tp_group.owner; + pred_section = tp_engine_section_name(tp_group.rank); + } + + auto enc_loaded = load_trt_module_from_plan( + ctx.backend, find_section(ctx.bundle, "vision_engine_plan"), "tdt encoder", opts); + auto pred_loaded = load_trt_module_from_plan( + ctx.backend, find_section(ctx.bundle, pred_section), "tdt predictor", pred_opts); + auto joint_loaded = load_trt_module_from_plan( + ctx.backend, find_section(ctx.bundle, "joint_engine_plan"), "tdt joint", opts); + std::unique_ptr prompt_kernel_module; + const bool has_prompt_kernel = + extract_json_bool(ctx.config_json, "tdt_has_prompt_kernel", false); + if (has_prompt_kernel) { + const auto* pk_plan = find_section(ctx.bundle, "prompt_kernel_plan"); + if (!pk_plan) + throw std::runtime_error( + "tdt_has_prompt_kernel=true but bundle missing prompt_kernel_plan section"); + auto pk_loaded = + load_trt_module_from_plan(ctx.backend, pk_plan, "tdt prompt_kernel", opts); + prompt_kernel_module = std::move(pk_loaded.module); + } + std::map streaming_encoder_sections; + std::map streaming_first_encoder_sections; + auto right_contexts = + extract_json_int_array(ctx.config_json, "tdt_streaming_right_contexts"); + if (right_contexts.empty()) + right_contexts = {13, 6, 1, 0}; + for (int32_t right_context : right_contexts) { + const std::string section_name = + "streaming_encoder_plan_ctx" + std::to_string(right_context); + const auto* plan = find_section(ctx.bundle, section_name); + if (plan) + streaming_encoder_sections.emplace(right_context, section_name); + const std::string first_section_name = + "streaming_encoder_first_plan_ctx" + std::to_string(right_context); + const auto* first_plan = find_section(ctx.bundle, first_section_name); + if (first_plan) + streaming_first_encoder_sections.emplace(right_context, first_section_name); + } + + const auto& json = ctx.config_json; + TdtConfig cfg; + cfg.sample_rate = extract_json_int(json, "mel_sampling_rate", 16000); + cfg.num_mel_bins = extract_json_int(json, "num_mel_bins", 128); + cfg.mel_n_fft = extract_json_int(json, "mel_n_fft", 512); + cfg.mel_win_length = extract_json_int(json, "mel_win_length", 400); + cfg.mel_hop_length = extract_json_int(json, "mel_hop_length", 160); + cfg.mel_chunk_length = extract_json_int(json, "mel_chunk_length", 30); + cfg.mel_preemph = extract_json_float(json, "mel_preemph", 0.97F); + cfg.mel_length = extract_json_int(json, "mel_length", 3000); + cfg.encoder_hidden_size = + extract_json_int(json, "tdt_encoder_hidden_size", ctx.config.hidden_size); + cfg.pred_hidden_size = + extract_json_int(json, "tdt_pred_hidden_size", ctx.config.hidden_size); + cfg.pred_num_layers = extract_json_int(json, "tdt_pred_num_layers", ctx.config.num_layers); + cfg.encoder_layers = extract_json_int(json, "tdt_encoder_layers", 0); + cfg.vocab_size = extract_json_int(json, "tdt_vocab_size", ctx.config.vocab_size); + cfg.blank_id = extract_json_int(json, "tdt_blank_id", cfg.vocab_size); + cfg.max_symbols_per_step = extract_json_int(json, "tdt_max_symbols_per_step", 10); + cfg.duration_values = extract_json_int_array(json, "tdt_duration_values"); + if (cfg.duration_values.empty()) + cfg.duration_values = {0, 1, 2, 3, 4}; + cfg.encoder_seq_len = extract_json_int(json, "max_source_positions", cfg.mel_length / 8); + cfg.att_context_left = extract_json_int(json, "tdt_att_context_left", -1); + cfg.att_context_right = extract_json_int(json, "tdt_att_context_right", -1); + cfg.subsampling_factor = extract_json_int(json, "subsampling_factor", 8); + cfg.streaming_cache_left = extract_json_int(json, "tdt_streaming_cache_left", 70); + cfg.streaming_time_cache = extract_json_int(json, "tdt_streaming_time_cache", 8); + cfg.streaming_pre_encode_cache = + extract_json_int(json, "tdt_streaming_pre_encode_cache", 9); + cfg.streaming_drop_pre_encoded = + extract_json_int(json, "tdt_streaming_drop_pre_encoded", 2); + cfg.causal_downsampling = + json.find("\"tdt_causal_downsampling\": true") != std::string::npos; + cfg.has_prompt_kernel = has_prompt_kernel; + cfg.num_prompts = extract_json_int(json, "tdt_num_prompts", 0); + cfg.prompt_dictionary = extract_string_int_map(json, "tdt_prompt_dictionary"); + cfg.supported_right_contexts = right_contexts; + + auto mel_fb = load_mel_filterbank(ctx.bundle); + auto tok = create_tokenizer_from_bundle(ctx.bundle); + cudaStream_t stream = pred_loaded.module->stream(); + + return std::make_unique( + std::move(enc_loaded.module), std::move(pred_loaded.module), + std::move(joint_loaded.module), std::move(prompt_kernel_module), + std::move(streaming_encoder_sections), ctx.backend, opts, + std::move(streaming_first_encoder_sections), ctx.bundle_path, std::move(cfg), + std::move(mel_fb), stream, std::move(tok), ctx.bundle.info.model_id); + } +}; + +REGISTER_PIPELINE_PLUGIN_WITH_MANIFEST(register_parakeet_tdt_plugin, ParakeetTDTPlugin, + "parakeet_tdt_speech_to_text"); + +} // namespace trtmc diff --git a/src/runtime/models/parakeet_tdt/plugin_helpers.cpp b/src/runtime/models/parakeet_tdt/plugin_helpers.cpp new file mode 100644 index 0000000000..8d1e06cb4a --- /dev/null +++ b/src/runtime/models/parakeet_tdt/plugin_helpers.cpp @@ -0,0 +1,475 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "plugin_helpers.h" + +#include "trtmc/runtime/trt_backend.h" +#include "utils/json_helpers.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if TRTMC_HAS_TVM_FFI +#include "plugins/tvm_ffi_module_loader.h" +#endif + +namespace trtmc { + +namespace { + +using SteadyClock = std::chrono::steady_clock; + +double elapsed_ms(SteadyClock::time_point start, SteadyClock::time_point end) { + return std::chrono::duration(end - start).count(); +} + +class SpecialFrameTokenizer final : public ITokenizer { + public: + SpecialFrameTokenizer(std::shared_ptr inner, std::vector prefix, + std::vector suffix) + : mInner(std::move(inner)), mPrefix(std::move(prefix)), mSuffix(std::move(suffix)) {} + + std::vector encode(const std::string& text) const override { + auto ids = mInner->encode(text); + std::vector framed; + framed.reserve(mPrefix.size() + ids.size() + mSuffix.size()); + framed.insert(framed.end(), mPrefix.begin(), mPrefix.end()); + framed.insert(framed.end(), ids.begin(), ids.end()); + framed.insert(framed.end(), mSuffix.begin(), mSuffix.end()); + return framed; + } + + std::string decode(const std::vector& ids) const override { + return mInner->decode(ids); + } + + int32_t id_for_token(std::string_view token) const override { + return mInner->id_for_token(token); + } + + std::string token_for_id(int32_t id) const override { return mInner->token_for_id(id); } + + private: + std::shared_ptr mInner; + std::vector mPrefix; + std::vector mSuffix; +}; + +struct TokenizerSpecialFrame { + bool present{false}; + std::vector prefix; + std::vector suffix; +}; + +using TokenizerFactory = std::unique_ptr (*)(const char*, std::size_t, bool); + +} // namespace + +void log_trt_load_timing(const char* label, double load_deserialize_ms, std::size_t plan_bytes) { + std::ostringstream line; + line << std::fixed << std::setprecision(6) << "[trtmc.load_timing] label=\"" + << (label ? label : "engine") << "\" load_deserialize_ms=" << load_deserialize_ms + << " plan_bytes=" << plan_bytes; + std::cerr << line.str() << '\n'; +} + +// Tokenizer helpers. + +bool detect_add_special_tokens(const BundleFile& bundle) { + if (bundle.info.tokenizer_add_special_tokens_present) + return bundle.info.tokenizer_add_special_tokens; + + auto* config_data = find_section(bundle, "config.json"); + if (!config_data) + return true; + std::string cfg_text(config_data->begin(), config_data->end()); + auto pos = cfg_text.find("\"tokenizer_add_special_tokens\""); + if (pos == std::string::npos) + return true; + auto val_pos = cfg_text.find(':', pos); + if (val_pos == std::string::npos) + return true; + auto value_pos = cfg_text.find_first_not_of(" \t\r\n", val_pos + 1); + if (value_pos == std::string::npos) + return true; + if (cfg_text.compare(value_pos, 5, "false") == 0 || cfg_text[value_pos] == '0') + return false; + if (cfg_text.compare(value_pos, 4, "true") == 0 || cfg_text[value_pos] == '1') + return true; + return true; +} + +namespace { + +TokenizerSpecialFrame detect_tokenizer_special_frame(const BundleFile& bundle) { + TokenizerSpecialFrame frame; + auto* config_data = find_section(bundle, "config.json"); + if (!config_data) + return frame; + std::string cfg_text(config_data->begin(), config_data->end()); + const bool has_prefix = cfg_text.find("\"tokenizer_special_prefix_ids\"") != std::string::npos; + const bool has_suffix = cfg_text.find("\"tokenizer_special_suffix_ids\"") != std::string::npos; + if (!has_prefix && !has_suffix) + return frame; + + frame.present = true; + frame.prefix = extract_json_int_array(cfg_text, "tokenizer_special_prefix_ids"); + frame.suffix = extract_json_int_array(cfg_text, "tokenizer_special_suffix_ids"); + return frame; +} + +std::shared_ptr apply_tokenizer_special_frame(std::unique_ptr tokenizer, + const TokenizerSpecialFrame& frame) { + if (!tokenizer) + return nullptr; + std::shared_ptr shared(std::move(tokenizer)); + if (!frame.present || (frame.prefix.empty() && frame.suffix.empty())) + return shared; + return std::make_shared(std::move(shared), frame.prefix, frame.suffix); +} + +TokenizerSpecialFrame detect_requested_tokenizer_special_frame(const BundleFile& bundle, + bool add_special_tokens) { + if (!add_special_tokens) + return TokenizerSpecialFrame{}; + return detect_tokenizer_special_frame(bundle); +} + +std::shared_ptr try_create_native_tokenizer_kind(TokenizerFactory factory, + const char* data, std::size_t size, + bool add_special_tokens, + const TokenizerSpecialFrame& frame, + const char* label) { + try { + auto tok = factory(data, size, add_special_tokens); + if (!tok) + return nullptr; + std::cerr << "[trtmc] Using native " << label << " tokenizer" << std::endl; + return apply_tokenizer_special_frame(std::move(tok), frame); + } catch (...) { + return nullptr; + } +} + +} // namespace + +bool is_bpe_tokenizer_json(const BundleFile& bundle) { + auto* tok_data = find_section(bundle, "tokenizer.json"); + if (!tok_data || tok_data->empty()) + return false; + // Quick string search 闁?avoid full JSON parse just for type detection + std::string_view json(tok_data->data(), tok_data->size()); + return json.find("\"type\":\"BPE\"") != std::string_view::npos || + json.find("\"type\": \"BPE\"") != std::string_view::npos; +} + +std::shared_ptr try_create_native_bpe(const BundleFile& bundle, bool add_special, + bool throw_on_failure) { + auto* tok_data = find_section(bundle, "tokenizer.json"); + if (!tok_data || tok_data->empty()) + return nullptr; + try { + auto tok = CreateBpeTokenizer(tok_data->data(), tok_data->size(), add_special); + if (tok) { + std::cerr << "[trtmc] Using native BPE tokenizer" << std::endl; + } + return tok; + } catch (const std::exception& e) { + // "Not a BPE tokenizer" -> non-BPE model (WordPiece, Unigram), allow fallback + std::string msg = e.what(); + bool is_non_bpe = msg.find("Not a BPE") != std::string::npos; + + if (throw_on_failure || (!is_non_bpe && is_bpe_tokenizer_json(bundle))) { + // BPE model but native failed -> error, no silent fallback + throw std::runtime_error(std::string("Native BPE tokenizer failed for BPE model: ") + + e.what()); + } + std::cerr << "[trtmc] Native BPE unavailable (" << e.what() + << "), falling back to HF Python" << std::endl; + } + return nullptr; +} + +std::shared_ptr try_create_native_tokenizer(const BundleFile& bundle, + bool add_special_tokens) { + auto* tok_data = find_section(bundle, "tokenizer.json"); + if (!tok_data || tok_data->empty()) + return nullptr; + + const char* data = tok_data->data(); + std::size_t size = tok_data->size(); + const auto special_frame = detect_requested_tokenizer_special_frame(bundle, add_special_tokens); + const bool native_add_special = !special_frame.present && add_special_tokens; + + if (auto tokenizer = try_create_native_tokenizer_kind(CreateBpeTokenizer, data, size, + native_add_special, special_frame, "BPE")) + return tokenizer; + + if (auto tokenizer = try_create_native_tokenizer_kind( + CreateWordPieceTokenizer, data, size, native_add_special, special_frame, "WordPiece")) + return tokenizer; + + return try_create_native_tokenizer_kind(CreateUnigramTokenizer, data, size, native_add_special, + special_frame, "Unigram"); +} + +std::shared_ptr create_tokenizer_from_bundle(const BundleFile& bundle) { + bool add_special = detect_add_special_tokens(bundle); + return try_create_native_tokenizer(bundle, add_special); +} + +// TRT module loading (delegated to IBackend). + +LoadedModule load_trt_module_from_plan(IBackend* backend, const std::vector* plan, + const char* label, const ModuleCreateOptions& options) { + if (!plan || plan->empty()) + throw std::runtime_error(std::string("Bundle missing ") + label); + if (!backend) + throw std::runtime_error("No backend loaded"); + + LoadedModule result; + const auto t0 = SteadyClock::now(); + result.module = backend->create_module(plan->data(), plan->size(), options); + const auto t1 = SteadyClock::now(); + log_trt_load_timing(label, elapsed_ms(t0, t1), plan->size()); + if (!result.module || !result.module->ok()) + throw std::runtime_error(std::string("Failed to create ITrtModule for ") + label); + result.module->set_timing_label(label ? label : "engine"); + return result; +} + +LoadedModule try_load_trt_module_from_plan(IBackend* backend, const std::vector* plan, + const char* label, const ModuleCreateOptions& options) { + if (!plan || plan->empty()) + return LoadedModule{}; + try { + return load_trt_module_from_plan(backend, plan, label, options); + } catch (...) { + std::cerr << "[trtmc] WARNING: failed to load optional engine: " << label << std::endl; + return LoadedModule{}; + } +} + +std::unique_ptr extract_optional_module(IBackend* backend, + const std::vector* plan, + const char* label, + const ModuleCreateOptions& options) { + auto loaded = try_load_trt_module_from_plan(backend, plan, label, options); + if (loaded.module && loaded.module->ok()) + return std::move(loaded.module); + return nullptr; +} + +// Dual-profile module loading (delegated to IBackend). + +DualProfileModules load_dual_profile_modules(IBackend* backend, const std::vector* plan, + const char* label, + const ModuleCreateOptions& options) { + if (!plan || plan->empty()) + throw std::runtime_error(std::string("Bundle missing ") + label); + if (!backend) + throw std::runtime_error("No backend loaded"); + + const auto t0 = SteadyClock::now(); + auto pair = backend->create_dual_profile_modules(plan->data(), plan->size(), options); + const auto t1 = SteadyClock::now(); + log_trt_load_timing(label, elapsed_ms(t0, t1), plan->size()); + if (!pair.decode || !pair.decode->ok()) + throw std::runtime_error(std::string("Failed to create dual-profile modules for ") + label); + + DualProfileModules out; + out.prefill = std::move(pair.prefill); + out.decode = std::move(pair.decode); + if (out.prefill) + out.prefill->set_timing_label(std::string(label ? label : "engine") + ":prefill"); + if (out.decode) + out.decode->set_timing_label(std::string(label ? label : "engine") + ":decode"); + return out; +} + +// Config helpers. + +int32_t compute_kv_dim(const BaseConfig& cfg) { + int32_t hd = (cfg.head_dim > 0) ? cfg.head_dim + : ((cfg.num_heads > 0) ? cfg.hidden_size / cfg.num_heads : 128); + int32_t kv_heads = (cfg.num_kv_heads > 0) ? cfg.num_kv_heads : cfg.num_heads; + return kv_heads * hd; +} + +DType cache_dtype_from_precision(const std::string& precision) { + if (precision == "fp16") + return DType::kFloat16; + if (precision == "bf16") + return DType::kBFloat16; + return DType::kFloat32; +} + +// Section data conversion. + +std::vector section_to_floats(const std::vector* sec) { + if (!sec || sec->empty()) + return {}; + std::size_t count = sec->size() / sizeof(float); + std::vector out(count); + std::memcpy(out.data(), sec->data(), count * sizeof(float)); + return out; +} + +std::vector section_to_int32s(const std::vector* sec) { + if (!sec || sec->empty()) + return {}; + std::size_t count = sec->size() / sizeof(int32_t); + std::vector out(count); + std::memcpy(out.data(), sec->data(), count * sizeof(int32_t)); + return out; +} + +bool has_section_data(const std::vector* d) { + return d && !d->empty(); +} + +MelFilterbank load_mel_filterbank(const BundleFile& bundle) { + MelFilterbank fb; + const auto* data = find_section(bundle, "mel_filterbank"); + if (data == nullptr || data->empty()) + return fb; + + // Format: [n_freq_bins(int32), n_mel_bins(int32), float32 data...] + if (data->size() < 2 * sizeof(int32_t)) + return fb; + + int32_t header[2] = {0, 0}; + std::memcpy(header, data->data(), sizeof(header)); + fb.n_freq_bins = header[0]; + fb.n_mel_bins = header[1]; + + if (fb.n_freq_bins <= 0 || fb.n_mel_bins <= 0) + return fb; + + const auto expected_data_size = static_cast(fb.n_freq_bins) * + static_cast(fb.n_mel_bins) * sizeof(float); + const auto payload_offset = 2 * sizeof(int32_t); + if (data->size() < payload_offset + expected_data_size) { + fb.n_freq_bins = 0; + fb.n_mel_bins = 0; + return fb; + } + + fb.data.resize(static_cast(fb.n_freq_bins) * fb.n_mel_bins); + std::memcpy(fb.data.data(), data->data() + payload_offset, expected_data_size); + return fb; +} + +std::unique_ptr create_clip_tokenizer_from_bundle(const BundleFile& bundle) { + auto* tok_data = find_section(bundle, "clip_tokenizer.json"); + if (!tok_data || tok_data->empty()) + return nullptr; + try { + auto tok = + CreateBpeTokenizer(tok_data->data(), tok_data->size(), /*add_special_tokens=*/true); + if (tok) + std::cerr << "[trtmc] Using native BPE CLIP tokenizer" << std::endl; + return tok; + } catch (const std::exception& e) { + std::cerr << "[trtmc] WARNING: CLIP tokenizer failed: " << e.what() << std::endl; + } + return nullptr; +} + +// 闁冲厜鍋撻柍鍏夊亾闁冲厜鍋?FFI kernel loading 闁冲厜鍋撻柍鍏夊亾闁冲厜鍋? +#if TRTMC_HAS_TVM_FFI + +namespace { + +// Write a bundle section to a temporary .so file, returning the path. +std::string write_kernel_so_to_temp(const std::string& global_name, const char* data, + std::size_t size) { + std::string safe_name = global_name; + for (auto& c : safe_name) { + if (c == '.') + c = '_'; + } + std::string tmp_path = "/tmp/trtmc_kernel_" + safe_name + ".so"; + std::ofstream ofs(tmp_path, std::ios::binary); + ofs.write(data, static_cast(size)); + return tmp_path; +} + +// Load a single kernel entry from the manifest and register it via TVM-FFI. +void load_single_kernel(const BundleFile& bundle, const std::string& obj) { + std::string global_name = extract_json_string(obj, "global_name", ""); + std::string func_name = extract_json_string(obj, "func_name", "run"); + std::string section_name = extract_json_string(obj, "section", ""); + + if (global_name.empty() || section_name.empty()) + return; + + const auto* so_sec = find_section(bundle, section_name); + if (!so_sec || so_sec->empty()) { + std::cerr << "[ffi] Kernel .so section not found: " << section_name << '\n'; + return; + } + + std::string tmp_path = write_kernel_so_to_temp(global_name, so_sec->data(), so_sec->size()); + if (load_tvm_ffi_module_func(tmp_path, func_name, global_name)) { + std::cerr << "[ffi] Loaded kernel: " << global_name << '\n'; + } else { + std::cerr << "[ffi] Failed to load kernel: " << global_name << " from " << section_name + << '\n'; + } +} + +// Find the "kernels" JSON array bounds within the manifest string. +// Returns {start_after_bracket, closing_bracket} or {npos, npos}. +std::pair find_kernels_array_bounds(const std::string& s) { + auto pos = s.find("\"kernels\""); + if (pos == std::string::npos) + return {std::string::npos, std::string::npos}; + auto arr_start = s.find('[', pos); + if (arr_start == std::string::npos) + return {std::string::npos, std::string::npos}; + auto arr_end = s.find(']', arr_start); + return {arr_start + 1, arr_end}; +} + +} // namespace + +#endif // TRTMC_HAS_TVM_FFI + +void load_ffi_kernels_from_bundle(const BundleFile& bundle) { +#if TRTMC_HAS_TVM_FFI + const auto* manifest_sec = find_section(bundle, "kernel_manifest.json"); + if (!manifest_sec) + return; + + std::string manifest_str(manifest_sec->begin(), manifest_sec->end()); + auto [cur, arr_end] = find_kernels_array_bounds(manifest_str); + if (cur == std::string::npos || arr_end == std::string::npos) + return; + + while (cur < arr_end) { + auto obj_start = manifest_str.find('{', cur); + if (obj_start == std::string::npos || obj_start >= arr_end) + break; + auto obj_end = manifest_str.find('}', obj_start); + if (obj_end == std::string::npos) + break; + + load_single_kernel(bundle, manifest_str.substr(obj_start, obj_end - obj_start + 1)); + cur = obj_end + 1; + } +#else + (void)bundle; +#endif +} + +} // namespace trtmc diff --git a/src/runtime/models/parakeet_tdt/plugin_helpers.h b/src/runtime/models/parakeet_tdt/plugin_helpers.h new file mode 100644 index 0000000000..877e96d7ee --- /dev/null +++ b/src/runtime/models/parakeet_tdt/plugin_helpers.h @@ -0,0 +1,130 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +// Shared helper functions for pipeline plugins. +// Extracted from pipeline_factory.cpp's anonymous namespace so all +// strategy plugins can reuse TRT module loading, tokenizer creation, +// KV-dim computation, and data-section conversion utilities. + +#include "bundle/bundle_format.h" +#include "bundle/bundle_view.h" +#include "trtmc/runtime/pipeline_plugin.h" +#include "trtmc/runtime/trt_backend.h" +#include "trtmc/runtime/trt_module.h" +#include "trtmc/tokenizer.h" + +#include +#include +#include +#include + +namespace trtmc { + +// A loaded TRT engine, ready for inference. +// The stream is owned internally by the module 闂?callers get it via module->stream(). +struct LoadedModule { + std::unique_ptr module; +}; + +// Load a TRT engine from a serialized plan via the backend. Throws on failure. +LoadedModule load_trt_module_from_plan(IBackend* backend, const std::vector* plan, + const char* label, const ModuleCreateOptions& options = {}); + +// Emit a parseable runtime load/deserialization timing line. +void log_trt_load_timing(const char* label, double load_deserialize_ms, std::size_t plan_bytes); + +// Like load_trt_module_from_plan but returns empty LoadedModule on failure +// instead of throwing (for optional engines). +LoadedModule try_load_trt_module_from_plan(IBackend* backend, const std::vector* plan, + const char* label, + const ModuleCreateOptions& options = {}); + +// Load an optional TRT module, returning nullptr if the plan is absent. +// On deserialization failure, returns nullptr (does not throw). +std::unique_ptr extract_optional_module(IBackend* backend, + const std::vector* plan, + const char* label, + const ModuleCreateOptions& options = {}); + +// Dual-profile TRT module group: one shared backend engine, two module +// contexts (one per optimization profile). Weights live once in GPU memory +// and both modules share the CUDA stream. Use `decode->stream()` to obtain +// the shared stream. +struct DualProfileModules { + std::unique_ptr prefill; // batched Sq profile (null if single-profile) + std::unique_ptr decode; // Sq=1 profile, or the only profile if single-profile +}; + +// Load an engine from a serialized plan via the backend and create two +// execution contexts 闂?one per optimization profile 闂?sharing the engine. +// When the engine has fewer than 2 profiles, `prefill` is left null and +// `decode` holds the single-profile context (legacy bundles). +DualProfileModules load_dual_profile_modules(IBackend* backend, const std::vector* plan, + const char* label, + const ModuleCreateOptions& options = {}); + +// Detect whether the bundle's config requests add_special_tokens for the tokenizer. +bool detect_add_special_tokens(const BundleFile& bundle); + +// Check if the bundle's tokenizer.json describes a BPE model. +bool is_bpe_tokenizer_json(const BundleFile& bundle); + +// Try to create a native C++ BPE tokenizer from the bundle's tokenizer.json. +// Returns nullptr if the section is absent or the model is non-BPE. +// If throw_on_failure is true, throws instead of returning nullptr on BPE parse errors. +std::shared_ptr try_create_native_bpe(const BundleFile& bundle, bool add_special, + bool throw_on_failure); + +// Try to create a native C++ tokenizer from the bundle's tokenizer.json. +// Attempts: BPE -> WordPiece -> Unigram. Returns nullptr if none match. +std::shared_ptr try_create_native_tokenizer(const BundleFile& bundle, + bool add_special_tokens); + +// Create a native tokenizer from bundle. Tries BPE -> WordPiece -> Unigram. +// Returns nullptr if no native tokenizer matches. +std::shared_ptr create_tokenizer_from_bundle(const BundleFile& bundle); + +// Compute the KV cache dimension from model config. +int32_t compute_kv_dim(const BaseConfig& cfg); + +// Convert the BaseConfig precision string ("fp16", "bf16", "fp32") to a DType +// for use as KV cache element type. +DType cache_dtype_from_precision(const std::string& precision); + +// Reinterpret a raw char section as a vector of floats. +std::vector section_to_floats(const std::vector* sec); + +// Reinterpret a raw char section as a vector of int32_t. +std::vector section_to_int32s(const std::vector* sec); + +// Return true if the section pointer is non-null and non-empty. +bool has_section_data(const std::vector* d); + +// BundleFile-based helpers. + +// Mel filterbank loaded from bundle (for Parakeet TDT native mel extraction). +struct MelFilterbank { + std::vector data; // [n_freq_bins * n_mel_bins] row-major + int32_t n_freq_bins{0}; + int32_t n_mel_bins{0}; +}; + +// Load mel filterbank from the "mel_filterbank" bundle section. +// Returns empty MelFilterbank if section is not present (old bundles). +MelFilterbank load_mel_filterbank(const BundleFile& bundle); + +// Create a native BPE tokenizer from the CLIP tokenizer sections in the bundle. +// Used for dual-tokenizer models (e.g., FLUX: CLIP + T5). +// Returns nullptr if clip_tokenizer.json section is absent. +std::unique_ptr create_clip_tokenizer_from_bundle(const BundleFile& bundle); + +// Load all TVM-FFI kernels listed in the bundle's kernel_manifest.json. +// Must be called BEFORE deserializing any TRT engine that uses FFI plugins. +// No-op if the bundle has no kernel_manifest.json section (non-FFI bundles). +void load_ffi_kernels_from_bundle(const BundleFile& bundle); + +} // namespace trtmc diff --git a/src/runtime/models/parakeet_tdt/tdt_config.h b/src/runtime/models/parakeet_tdt/tdt_config.h new file mode 100644 index 0000000000..61c5186cbd --- /dev/null +++ b/src/runtime/models/parakeet_tdt/tdt_config.h @@ -0,0 +1,110 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include +#include +#include +#include +#include + +namespace trtmc { + +struct TdtConfig { + int32_t sample_rate{16000}; + int32_t num_mel_bins{128}; + int32_t mel_n_fft{512}; + int32_t mel_win_length{400}; + int32_t mel_hop_length{160}; + int32_t mel_chunk_length{30}; + float mel_preemph{0.97F}; + int32_t mel_length{3000}; + int32_t encoder_hidden_size{1024}; + int32_t pred_hidden_size{640}; + int32_t pred_num_layers{2}; + int32_t vocab_size{8192}; + int32_t blank_id{8192}; + int32_t max_symbols_per_step{10}; + int32_t encoder_seq_len{375}; + int32_t encoder_layers{24}; + int32_t subsampling_factor{8}; + std::vector duration_values{0, 1, 2, 3, 4}; + + // Retained as inert fields so the family-private offline pipeline shares + // one constructor shape with the repository's speech pipeline machinery. + int32_t att_context_left{-1}; + int32_t att_context_right{-1}; + int32_t streaming_cache_left{0}; + int32_t streaming_time_cache{0}; + int32_t streaming_pre_encode_cache{0}; + int32_t streaming_drop_pre_encoded{0}; + bool causal_downsampling{false}; + bool has_prompt_kernel{false}; + int32_t num_prompts{0}; + std::unordered_map prompt_dictionary; + std::vector supported_right_contexts; +}; + +struct TdtGreedyDecision { + bool emit_token{false}; + int32_t frame_advance{0}; +}; + +// Streaming is deliberately not advertised for v3, but these private fields +// keep the inherited speech-session implementation buildable and fail closed +// unless a bundle contains matching streaming encoder plans. +struct TdtStreamingSchedule { + int32_t att_context_left{70}; + int32_t att_context_right{13}; + int32_t subsampling_factor{8}; + int32_t encoder_frame_ms{80}; + int32_t chunk_ms{1120}; + int32_t chunk_samples{17920}; + int32_t first_chunk_mel_frames{105}; + int32_t next_chunk_mel_frames{112}; + int32_t first_shift_mel_frames{105}; + int32_t next_shift_mel_frames{112}; + int32_t first_pre_encode_cache_mel_frames{0}; + int32_t next_pre_encode_cache_mel_frames{9}; + int32_t valid_encoder_frames{14}; + int32_t drop_extra_pre_encoded{2}; +}; + +inline TdtStreamingSchedule make_tdt_streaming_schedule(int32_t left, int32_t right, + int32_t sample_rate = 16000, + int32_t hop = 160, + int32_t subsampling = 8) { + if (left <= 0 || right < 0 || sample_rate <= 0 || hop <= 0 || subsampling <= 0) + throw std::invalid_argument("invalid private TDT streaming schedule"); + TdtStreamingSchedule out; + out.att_context_left = left; + out.att_context_right = right; + out.subsampling_factor = subsampling; + out.valid_encoder_frames = right + 1; + out.chunk_ms = out.valid_encoder_frames * out.encoder_frame_ms; + out.chunk_samples = sample_rate * out.chunk_ms / 1000; + out.first_chunk_mel_frames = 1 + subsampling * right; + out.next_chunk_mel_frames = subsampling * out.valid_encoder_frames; + out.first_shift_mel_frames = out.first_chunk_mel_frames; + out.next_shift_mel_frames = out.next_chunk_mel_frames; + return out; +} + +inline TdtGreedyDecision make_tdt_greedy_decision(int32_t token_id, int32_t duration_index, + const std::vector& duration_values, + int32_t blank_id) { + if (duration_index < 0 || duration_index >= static_cast(duration_values.size())) + throw std::out_of_range("TDT duration index is outside the configured duration table"); + int32_t advance = duration_values[static_cast(duration_index)]; + if (advance < 0) + throw std::invalid_argument("TDT durations must be non-negative"); + const bool emit = token_id != blank_id; + if (advance == 0 && !emit) + advance = 1; + return {emit, advance}; +} + +} // namespace trtmc diff --git a/tests/builder/test_families.py b/tests/builder/test_families.py index 5642f49c53..bd0ab2814c 100644 --- a/tests/builder/test_families.py +++ b/tests/builder/test_families.py @@ -20,6 +20,7 @@ import json import tarfile from pathlib import Path +from types import SimpleNamespace import pytest @@ -188,6 +189,72 @@ def fake_adapter(path: Path) -> Path: } +def test_model_dir_resolution_prefers_higher_priority_family_adapter( + tmp_path, monkeypatch +): + import tensorrt_model_connect.families as families + + broad = SimpleNamespace( + id="broad", + model_dir_adapter="broad.py|resolve", + model_resolution_priority=0, + ) + specific = SimpleNamespace( + id="specific", + model_dir_adapter="specific.py|resolve", + model_resolution_priority=100, + ) + calls = [] + + def load_adapter(meta, _spec): + def resolve(_path): + calls.append(meta.id) + return tmp_path / meta.id + + return resolve + + monkeypatch.setattr(families, "_load_family_metadata", lambda: [broad, specific]) + monkeypatch.setattr(families, "_load_metadata_callable_from_file", load_adapter) + + resolved = families.resolve_family_model_dir(tmp_path / "model") + + assert resolved == str(tmp_path / "specific") + assert calls == ["specific"] + + +def test_nemo_resolution_prefers_higher_priority_family_adapter( + tmp_path, monkeypatch +): + import tensorrt_model_connect.families as families + + broad = SimpleNamespace( + id="broad", + nemo_archive_adapter="broad.py|resolve", + model_resolution_priority=0, + ) + specific = SimpleNamespace( + id="specific", + nemo_archive_adapter="specific.py|resolve", + model_resolution_priority=100, + ) + calls = [] + + def load_adapter(meta, _spec): + def resolve(_path): + calls.append(meta.id) + return tmp_path / meta.id + + return resolve + + monkeypatch.setattr(families, "_load_family_metadata", lambda: [broad, specific]) + monkeypatch.setattr(families, "_load_metadata_callable_from_file", load_adapter) + + resolved = families.resolve_nemo_archive_model_dir(tmp_path / "model.nemo") + + assert resolved == str(tmp_path / "specific") + assert calls == ["specific"] + + def test_unknown_nemo_archive_has_no_family_adapter(tmp_path): import tensorrt_model_connect.families as families diff --git a/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_audio_helpers.cpp b/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_audio_helpers.cpp new file mode 100644 index 0000000000..c866af04eb --- /dev/null +++ b/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_audio_helpers.cpp @@ -0,0 +1,264 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +// Unit tests for TDT-owned audio feature extraction helpers. + +#include "runtime/models/parakeet_tdt/audio_helpers.h" +#include "utils/wav_reader.h" + +#include +#include +#include +#include + +namespace { + +int g_failures = 0; + +void check(bool condition, const char* name) { + if (!condition) { + std::cerr << "FAIL: " << name << '\n'; + ++g_failures; + } +} + +void check_close(float actual, float expected, float tolerance, const char* name) { + if (std::fabs(actual - expected) > tolerance) { + std::cerr << "FAIL: " << name << " actual=" << actual << " expected=" << expected << '\n'; + ++g_failures; + } +} + +std::vector make_identity_filterbank(int32_t n_freq_bins) { + std::vector filters(static_cast(n_freq_bins) * n_freq_bins, 0.0F); + for (int32_t i = 0; i < n_freq_bins; ++i) { + filters[static_cast(i) * n_freq_bins + i] = 1.0F; + } + return filters; +} + +std::vector reference_rfft_power(const std::vector& input) { + const int32_t n = static_cast(input.size()); + const int32_t n_out = n / 2 + 1; + const double pi2 = 2.0 * 3.14159265358979323846; + std::vector power(static_cast(n_out), 0.0F); + for (int32_t k = 0; k < n_out; ++k) { + double real = 0.0; + double imag = 0.0; + for (int32_t t = 0; t < n; ++t) { + const double angle = + pi2 * static_cast(k) * static_cast(t) / static_cast(n); + real += static_cast(input[static_cast(t)]) * std::cos(angle); + imag -= static_cast(input[static_cast(t)]) * std::sin(angle); + } + power[static_cast(k)] = static_cast(real * real + imag * imag); + } + return power; +} + +void check_vectors_close(const std::vector& actual, const std::vector& expected, + float tolerance, const char* name) { + check(actual.size() == expected.size(), name); + for (std::size_t i = 0; i < std::min(actual.size(), expected.size()); ++i) { + const float scaled_tolerance = tolerance * std::max(1.0F, std::abs(expected[i])); + check_close(actual[i], expected[i], scaled_tolerance, name); + } +} + +void test_tdt_fft_matches_direct_dft() { + std::vector input(512); + for (std::size_t i = 0; i < input.size(); ++i) { + input[i] = static_cast(std::sin(static_cast(i) * 0.17) + + 0.25 * std::cos(static_cast(i) * 0.07)); + } + check_vectors_close(trtmc::tdt::detail::rfft_power(input), reference_rfft_power(input), 1e-5F, + "tdt 512-point FFT matches direct DFT"); +} + +trtmc::tdt::MelSpectrogramOptions make_incremental_options() { + trtmc::tdt::MelSpectrogramOptions options; + options.n_fft = 8; + options.win_length = 6; + options.hop_length = 2; + options.chunk_length_s = 1; + options.sample_rate = 32; + options.symmetric_window = true; + options.center_window_in_fft = true; + options.preemphasis = 0.97F; + options.log_scale = trtmc::tdt::MelLogScale::kNaturalLog; + options.normalize_per_feature = false; + return options; +} + +std::vector make_test_audio(int32_t count) { + std::vector audio(static_cast(count)); + for (int32_t i = 0; i < count; ++i) { + audio[static_cast(i)] = + static_cast(0.35 * std::sin(static_cast(i) * 0.47) + + 0.2 * std::cos(static_cast(i) * 0.19)); + } + return audio; +} + +std::vector materialize_incremental(const trtmc::tdt::IncrementalMelSpectrogram& state) { + std::vector output; + output.reserve(static_cast(state.n_mels()) * state.frame_count()); + for (int32_t mel = 0; mel < state.n_mels(); ++mel) { + for (int32_t frame = 0; frame < state.frame_count(); ++frame) { + output.push_back(state.value(mel, frame)); + } + } + return output; +} + +std::vector run_resampled_chunks(const std::vector& source_audio, + const std::vector& chunk_sizes, + trtmc::tdt::IncrementalMelStats& stats) { + const auto options = make_incremental_options(); + const auto filters = make_identity_filterbank(5); + trtmc::tdt::IncrementalMelSpectrogram state(filters.data(), 5, 5, options, 96); + int32_t accepted = 0; + for (const int32_t chunk_size : chunk_sizes) { + const int32_t take = + std::min(chunk_size, static_cast(source_audio.size()) - accepted); + state.accept_audio(source_audio.data() + accepted, take); + accepted += take; + const bool final = accepted == static_cast(source_audio.size()); + if (final) { + state.ensure_frames(16, true); + break; + } + + constexpr int32_t kResampleHalfTaps = 16; + const int32_t stable_target = std::max(0, accepted - kResampleHalfTaps) / 3; + const int32_t stable_frames = + stable_target >= options.n_fft / 2 + ? 1 + (stable_target - options.n_fft / 2) / options.hop_length + : 0; + state.ensure_frames(stable_frames, false); + } + stats = state.stats(); + return materialize_incremental(state); +} + +void test_incremental_mel_processes_each_frame_once() { + const auto options = make_incremental_options(); + const auto filters = make_identity_filterbank(5); + const auto audio = make_test_audio(32); + const auto offline = trtmc::tdt::extract_configured_mel_spectrogram( + audio.data(), static_cast(audio.size()), filters.data(), 5, 5, options); + + trtmc::tdt::IncrementalMelSpectrogram state(filters.data(), 5, 5, options, 32); + state.accept_audio(audio.data(), 8); + state.ensure_frames(2, false); + state.accept_audio(audio.data() + 8, 8); + state.ensure_frames(6, false); + state.accept_audio(audio.data() + 16, 16); + state.ensure_frames(16, true); + + check_vectors_close(materialize_incremental(state), offline.data, 1e-5F, + "incremental mel matches one-shot features"); + const auto stats = state.stats(); + check(stats.accepted_source_samples == 32, "incremental mel accepts each source sample once"); + check(stats.generated_resampled_samples == 32, + "incremental mel materializes each identity-rate sample once"); + check(stats.computed_mel_frames == 16, "incremental mel computes each frame once"); +} + +void test_incremental_resample_matches_one_shot() { + const auto options = make_incremental_options(); + const auto filters = make_identity_filterbank(5); + const auto source_audio = make_test_audio(96); + const auto resampled = trtmc::resample_linear(source_audio.data(), 96, 96, 32); + const auto offline = trtmc::tdt::extract_configured_mel_spectrogram( + resampled.data(), static_cast(resampled.size()), filters.data(), 5, 5, options); + + trtmc::tdt::IncrementalMelSpectrogram state(filters.data(), 5, 5, options, 96); + state.accept_audio(source_audio.data(), 72); + state.ensure_frames(6, false); + state.accept_audio(source_audio.data() + 72, 24); + state.ensure_frames(16, true); + + check_vectors_close(materialize_incremental(state), offline.data, 1e-5F, + "incremental resampling matches one-shot features"); + const auto stats = state.stats(); + check(stats.accepted_source_samples == 96, + "incremental resampling accepts each source sample once"); + check(stats.generated_resampled_samples == 32, + "incremental resampling generates each target sample once"); + check(stats.computed_mel_frames == 16, "incremental resampling computes each mel frame once"); +} + +void test_incremental_resample_is_chunk_size_independent() { + const auto source_audio = make_test_audio(96); + trtmc::tdt::IncrementalMelStats coarse_stats; + trtmc::tdt::IncrementalMelStats irregular_stats; + const auto coarse = run_resampled_chunks(source_audio, {24, 24, 24, 24}, coarse_stats); + const auto irregular = run_resampled_chunks(source_audio, {17, 31, 11, 37}, irregular_stats); + + check_vectors_close(irregular, coarse, 0.0F, + "incremental features are independent of source chunk sizes"); + check(coarse_stats.accepted_source_samples == 96 && + irregular_stats.accepted_source_samples == 96, + "chunk schedules accept each source sample once"); + check(coarse_stats.generated_resampled_samples == 32 && + irregular_stats.generated_resampled_samples == 32, + "chunk schedules generate each resampled sample once"); + check(coarse_stats.computed_mel_frames == 16 && irregular_stats.computed_mel_frames == 16, + "chunk schedules compute each mel frame once"); +} + +void test_tdt_mel_matches_configured_owned_options() { + const std::vector samples{0.0F, 0.1F, -0.2F, 0.4F, -0.1F, 0.0F, 0.2F, -0.3F}; + const int32_t n_fft = 4; + const int32_t n_freq_bins = 3; + const int32_t n_mel_bins = 2; + const std::vector mel_filters{ + 0.5F, 0.1F, 0.2F, 0.7F, 0.3F, 0.4F, + }; + + const auto tdt = trtmc::tdt::extract_tdt_mel_spectrogram( + samples.data(), static_cast(samples.size()), mel_filters.data(), n_freq_bins, + n_mel_bins, n_fft, /*win_length=*/3, /*hop_length=*/2, /*chunk_length_s=*/1, + /*sample_rate=*/8, /*preemphasis=*/0.97F); + + trtmc::tdt::MelSpectrogramOptions options; + options.n_fft = n_fft; + options.win_length = 3; + options.hop_length = 2; + options.chunk_length_s = 1; + options.sample_rate = 8; + options.symmetric_window = true; + options.center_window_in_fft = true; + options.preemphasis = 0.97F; + options.log_scale = trtmc::tdt::MelLogScale::kNaturalLog; + options.normalize_per_feature = true; + const auto configured = trtmc::tdt::extract_configured_mel_spectrogram( + samples.data(), static_cast(samples.size()), mel_filters.data(), n_freq_bins, + n_mel_bins, options); + + check(tdt.n_mels == configured.n_mels, "tdt mel keeps configured mel count"); + check(tdt.n_frames == configured.n_frames, "tdt mel keeps configured frame count"); + check(tdt.data.size() == configured.data.size(), "tdt mel keeps configured data size"); + for (std::size_t i = 0; i < tdt.data.size(); ++i) { + check_close(tdt.data[i], configured.data[i], 1e-6F, "tdt mel value matches configured"); + } +} + +} // namespace + +int main() { + test_tdt_fft_matches_direct_dft(); + test_tdt_mel_matches_configured_owned_options(); + test_incremental_mel_processes_each_frame_once(); + test_incremental_resample_matches_one_shot(); + test_incremental_resample_is_chunk_size_independent(); + + if (g_failures != 0) { + std::cerr << g_failures << " tdt audio helper test(s) failed\n"; + return 1; + } + return 0; +} diff --git a/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_decode_policy.cpp b/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_decode_policy.cpp new file mode 100644 index 0000000000..32b86d5e1f --- /dev/null +++ b/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_decode_policy.cpp @@ -0,0 +1,50 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "runtime/models/parakeet_tdt/tdt_config.h" + +#include + +namespace { + +int failures = 0; + +void check(bool condition, const char* message) { + if (!condition) { + std::cerr << "FAIL: " << message << '\n'; + ++failures; + } +} + +void test_duration_value_controls_frame_advance() { + const auto decision = trtmc::make_tdt_greedy_decision(7, 2, {0, 1, 3}, 9); + check(decision.emit_token, "nonblank should emit"); + check(decision.frame_advance == 3, "duration table value should advance frames"); +} + +void test_zero_duration_blank_forces_progress_without_emit() { + const auto decision = trtmc::make_tdt_greedy_decision(9, 0, {0, 1, 3}, 9); + check(!decision.emit_token, "blank should not emit"); + check(decision.frame_advance == 1, "zero-duration blank must force progress"); +} + +void test_zero_duration_nonblank_stays_on_frame() { + const auto decision = trtmc::make_tdt_greedy_decision(7, 0, {0, 1, 3}, 9); + check(decision.emit_token, "zero-duration nonblank should emit"); + check(decision.frame_advance == 0, "zero-duration nonblank must stay on the frame"); +} + +} // namespace + +int main() { + test_duration_value_controls_frame_advance(); + test_zero_duration_blank_forces_progress_without_emit(); + test_zero_duration_nonblank_stays_on_frame(); + if (failures) { + std::cerr << failures << " TDT decode policy test(s) failed\n"; + return 1; + } + return 0; +} diff --git a/tests/e2e/models/parakeet_tdt/MODEL.toml b/tests/e2e/models/parakeet_tdt/MODEL.toml new file mode 100644 index 0000000000..8a43b8f0d3 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/MODEL.toml @@ -0,0 +1,13 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +id = "parakeet_tdt" +plugin = "parakeet_tdt" +test_manifests = ["manifests/parakeet-tdt-0.6b-v3.json"] + +[e2e_defaults.speech_to_text] +reference_backend = "hf_transformers" +oracle_level = "L1_external_reference" +stages = [{ name = "full_generation", required = true }] +input_fields = [{ input = "audio", manifest = "test_input_audio" }] +preflight_asset_fields = ["test_input_audio"] diff --git a/tests/e2e/models/parakeet_tdt/data/Recording.wav b/tests/e2e/models/parakeet_tdt/data/Recording.wav new file mode 100644 index 0000000000000000000000000000000000000000..db2716e6881c858133ca20f3417af83719266b37 GIT binary patch literal 798798 zcmeGE&#okUvgP*`TkM%YaIBG@fM`xQ*MJvjfRF%@kj4!NoM}dAtoPD8=>?kP)%oto z&&_qL+;?VO2_zsK3m}%+vSok#=N_?lW@VlK^S}S6fBL6?_rLwy|MmayfBCQf`~Um@ z@W21h|Ms`P{U?9>H-Gzo{=fck{@?%RZ~y7v{`0^6H~;>>{qO#Fe}w=3|M*Y;r+@$7 z{?mW=pZ($gH~-=P@!$Vf|L(u|FaN9m;=lZN|L$-9xBu`z{D;5&(d94u>jeHffxk}R zuM_y|1pYdKzfRz<6Zq={{yKrbPT;Q-`0E7zI)T4V;I9+->jeHffxk}RuM_y|1pYdK zzfRz<6Zq={{yKrbPT;Q-`0E7zI)T4V;Qyab;6M4}-&OoCWzF(xCjSj-{*nFu`43AU zX8%a-?`rLv{`z|0!~eDH&c5;g5_|n??!jA4d}i;b>-i{tYG|LZ`lr{`KFwK;Je1pA z?_P3vsP>{fET0eYP(96eI-0G;=>y+*c}S-xlz+l|eyb@bzdnurJGb2OZ~p)M&;RqE zQhHuA|MJD=%00z6NDJ?EnYVhHfAhz`hLgXXc(EDc?|i#Jv%{<&x1JV$l>fT-+e2(_ z@%6<}&1%beZT`tm*Y-E}#HD5HyL!2|T06n+t9y&nqgdaIY0AU(ms|e&8-F$Wq; zrSsZdKbwD^OaA}nZ=aWVQIGoPuif)2Objz%4wJ>=iewL8;vxb<<(c{20Ltxp@*tLKjo zm*aa*)oiTp=4ckLW^2Fm>#=#)u~beMSDWt1)I8;Wm(#<% zi}Dxi|HSQF&(`AR^?2giQs%<9~%+595cs`<_W!I(5)oyTF@QFMn~LL;nBt&;QfE zd@tsE{g40rKmLpVq;+0$;+=_W&*k~??Oe<+_QJvV^{-A$NBdRu$J^!U<$s0tzF6J% zE~dGD@srtQ@#^&4Gk3=2`0`i3@%F~Ua{0GUoLqjU&+hFR$9c}f<bw#HOu9HUCfW`vDX{k+Kuh7bAI<6cZciS(Y5Z(eDl=VgU+?kiq+9wtdE)7`#ZiK zS6i(2&i>9%Z@)L)?J2&v^W~nna%Nq>`0W|qnsk}num6?&SH79Ecy}ts^`|89VthSt zx1V|_|D>0L_j=>k_T2Nc@{3>OkGHLT^3~nk-A8=UHP+|udV3ac{hkM{JS{%_aY;jbK)?&J>qV!rAa_i&necE_6`PJJWE=L2)vAC@G zeBW@K?P*oBZqE>%G>Q+}PR1 zJF_@E?jp_Va91lfyLjiVPpj9ju;=_q7ZZ*Kjq&EHvf9_`iLYZ6zVc`jV*#yB?}W>3p8uqY%gp;ke~!&8rx(PjyQr2v z^c@D(l>422^?W-syq@~$UF=%*sYadLa+_P8He~C^nHw@%ap&MHa3M~9adrAF%3tor zJ7;tGdW7Pu!LK&o?(#QY&Al!)Y4UGAKGX9PeYD@*6Zf&687=>dJa07aYuLOa`wH=^ zx%KMyIl?XOyzR06>hsm?d8|e)jvgetTcr8a?m5QX~I_G~v!!ZGC_B zSx8@xt;@eVZC>9+`o;Wx>9HJNF1-7QAx-f<8~IPq$Lenn_3_uLd$Y8g+w1UMh=W(Z z@%E!%OuKQud%M4X^5x!;E~L?Ox%KHn^*FV~>x<)l=jBXj^}l`abm~I)aX%Nh&Eu|a zd-2^Lh}RF6*AMsfjNN*DyB>9+_>27G%{ipsYgeBxKl^U3TBy!EJS@L<`K?=Bdx-56 zX86TV=JSrfy;sAhE#C8wrwPUMi*z)5jdq~dYk7JcjhfBVTyCH1r_WfuZq4@ceBj<@ z%R_y4=X)M$E?4Y1dqXv}8|$f7oF+e$Q(t_)=i?at6SqC+;+msg9G7jM)vRvM@l*Bl zT`uI8y>Z;_U%d14(`B^VbNTi4iF>lUi+FLL&E=o^E!S*ub(#9@xzFzEmVeUg2kDD{ zW%i)kx%`_ecJ_;Oo4@|XdoFMO-QmsVs{VqQBy>)h2{?5>MwYbpz zfSb!#r*C+7OXu9^<1%%hQ~3FvfnUv6!H>7iFVDBHx$$b?8>h$S`Qi2~&dl?yi~luR zwc8hW@ktYRP2GN8q5ekcw*?~U^_`h54~a;wuf?mMH?%RPZlwQ9=Q zmrft?#noSbuWRe@i<{5iUYpxpm*>l?w?94|E}t&{&FG(SYvesc&ODx%Ap*!>Pkzd8OJ>JNAR?pyu#E`IvX)2BSMqu-bCY0Xn7rU}daDyD&}fAg=lc+D=M z`{*9y@Wo!MS&kp7qrKlptF=>Hwz=!mUc9=EwL-LH7h>(z<%aUJ%6<=_0x)sN|oQy*sE-QSzrc>PbO z&pRI4g9aa7ABVp+;wLmGEZ_C+=YD->vNg^pF25e_QJkNxU%dNXzkG)G84dUU8^cdm zZgo$weiuK}e$M+Ye%fof{I2!do{`*gx2~Ac!|L3V?XkSi3zXZsn|u2iQLUF9F6z6y z8b~7!S$^~Fv{>%OYGHloLjKlWpRRL$s(;Gc7pfJ9acYbCAxpz9Cl1rVo?Es)4$_Nh zVSN6^YC?OehpWlYzRP_Sf7WbGwPISheRt30oohAjt=;3~!_8lxF8=KqR1?x)Z04I? z?eFxfhAux_yghH6e$Oj^Ilb`Zm|n%}%P*SocAw<+fqIBx{Q7r4{a||j)t1YauQ%?g zZndlXD*9Kx-JaVJcA?Y-GE#k*gj-(TqVyOXZIYM+p9YxQfdTeCX7?XH)4ycp_RK7Vy- zaP;B&>e6NI!QPio=I`J2dcyYiSt;*Y_qx={txoQVYiD`B>j=NIJ3sC1MRRi-S97fs zTFuRi|NbQZ%s6|04q3c8e~t2PYE>S>&Xo!>A$?RS06r*Z$(noB2M z+?+o0PdOSnakJlEzF*S5Y2umr5Wkq-chB-_pqx02+j#H8@=w~$zt!Qdc0bei8Qz@x z2kWC}c(r=L{kiC8rJuoaepZUBee&t_-aW3LCeFU%tNRkXyt!Y$Lie9;pC4Q!*58r% z>h=}CaelVFzKCDE>5=UEO7Uih%bN$)h}GbqkXEiZbB{jJ&u6PR?Njf|-P(HYGg97t z_Z-OIm=11le%NkdI#{o3`oNusTim_Yr@@Kg^6T3t-CFyzd!F%em)}_4_g?Y(w0EYs z8Tn!MY7e7b$!?SQNP`g&e8P#d4mN@X3GLGu`F&GfQ5)`F3Ua z;(R;sKU@9${+Fj$Pw)2}pGoo6=}T8k8~Xda&6};)UIYIh!Or2k`{){BbNM^RK8ti} z=$*aiWqBMdM}PgTGZz=)s`ohxv)j`=_$8V*J*w~X>N5+~?O8s}(UP8~cy05m!P7&v zuKDTA)#^vPwfT6@r&!O8`RZW&KC9ac4{62qSleslyB2Z!%WdxVE4TOV<~MeYt^wNn zDep52)r4{Qa6jk%-kxT0b$I=@|N6VzlfT#b_!Qa{&)4`kH zmCUm z*v%EoU8KEyar?VY*K=|6&LZqyUhQ{r^KP%WZ0p23tGsx%+i!V#oZ7{!p*8>Jx0c@- zc&7Q^#r_^ZeP}LhKEs9C#(Y|cf5PV3Z}WQZv%-gI_!m9Du6=M3}~)8mWf!h3&LzcuRM_IUH(wD&nS z^IqSL^`n1^)z~QwZuQH>XZLzP>^pz+^{j{MlZWN6m9wk)H&)}>T=d!5-!;l#vjg1x zcX~Tjr)KBp?`%GN`d!KINODi8KD6J?mEWBG!o5z{fEV9$t_HV$oO`Oaym@xO!J99p z-D{zfmvil6c=g52%y!py-o5P(%lSF9x=+>T{eC~Ju0DEwrhndX_JZ;G>|T!;cKzR3 zx@>2!|Jm;I9&az2&9A@O<=1~Y2l?CIdG1-`)QI2EeJIbbmVSL)xczDF9@~!|cE0>D zyJvpmG+VQE`RzsX<;>e^>+4wvedeKDx@@0^o0Gr%jDB^$n*ZppKJ;fgc-`nbg}@elp(qmTTa%_cVJset2K| zOs${pJ}YtA_OJu|Z2rD`dFR}{61#8Z@b&x>{PDK^_nur{4sH*#!sYc?O!J-HdfMjp z>Kg2TqX}2D*G>z!CVzKa|LVT$`PO@PqQSW*moMJEc8@)yc(tqHulD+To&0?UJ*%Ey z&u!>?+IRPA_;R%P?Q5PKtmghZ-Oces{i@l1_~mY$9PQ@$u0u?#Hl8158(+>@LwV;^ zyfa-Fy?Yzt?(-7AJBaC@a=0gLoEba!sh>WJPiM5X{BZl{d%i=Te_VN{*4*XG;Y0WG z37x(Bv6|)d+x+@FN6+$GM}u2z=QX+IT%+?ShYO44mghUuJ=bz-;1ehJE8JPMxVvw8 z-?48ysZE>JBU`_-V)$@vcUk{x#J68@Ik^66)yvbUO+41BWA||li=FAl>(}Ec-rl#qm~HLl#Cz8K za?U>7`;^btkLzADxp1EWc{9YJ8r;+VprHYs^vye)~V! zUf15sCp}J0{hs_dy*!u2`QhgA%jx-~rH9);&PxyI+BeR34b^Rq{-T=8i`|Qh9Y8cETr7xuV>^{o@th zzk|B5o=>>_+i&AH-*trS`ZV_(=)`~r>a$$_&Qpuu{cv~p%gcv7Qyc3Sm%q3=K0WR7&CS|5 z`$V62@mFGU^~vL-x8}ANZP5yY>*>Pg|i{|5h)stS|#e1Fg+7f36mKv5a%%M0+|@tD z>O(znz9aC9`I{H3eVP^LTsNPe)g#jb(tfgkpHG)Y9>(W~Yx4Fl_oUmJ>+7+oU)-Bt z&b)kf`)|CO`fhH0x-fp@d^?5r=ScbGimz?Y_0!!L7oXku!~Xq_>Dte(boUw2FZ>-A0dq`~X6n11`M|I`Zy>Ft0wQ-1lKPgfpKd(n(N-!%9|waeu{>1o5=f$!NDUsMOp zEN0c@L%v>DC#Jix&z*Yl#m(<^@L@XVqbAgEx%GFi_0tqPi_m>r-Szdx+euvBPI1MM zPaE!hyq zGgi&UUl;JBpT6>P_&aZT+N;s)4efJr^?v5XvCZ@4w%2m`yC;9q8N-{~`1(7mo!Wb6 zrr)?3jK4kP7S%&J^*3H!nx3hQ?->hw?Pn@qyt(D@`**(buvzB8&$OTKX`gbR%J=uK z#Wkk-9lLY3POsZ1KJ%O5M@3o(D#ox^m8SDtsPkWlkXaz&SAOh`yN=n{>7f3)tJ55PFt_`)?H0K z%uoZDkIU4rk29<9Ij^{UxhFJFpK$A|k$ajO$DVp^?cTe1mcP09o8La`r>!>2&py%5 zcU-uAi=S*Y{GZ+aJV$-`_37jC?=$@!ceP^pG{?M99-5_owK&=v($1_pN{Gzx$|( zTVK!Bn!DVcwfE53hi~WKei`j2`uSde#!rh2)$VhJ+q}BaKH>g+*+08%zu)n{>uW~H zb_f3cT*H~Izxd)mlDC6%+<5P)drr6KxxQU@hxPYd?=?Qvx;A@3yEQxi=~=Y%&C}{p z?3oYwx6a?6($hkHS4S&%W3z7liC<0r?&n${t@t~1hG`hRK8tc&hl9?N|X#r*G( zZu?!m-mttq)T_})9IE^7y69Ky%+zhHFRnVzFs?ZNiN}R~7JOzF`%L+q;8$CoMjozC zkMFQL{kF$M!aC%Rl+c>4EzW^$WAEGZg2u zCyqXie0X2&fV=y|`)ris!zaC7;disET`R6ePkoxT{LaSHZteD#hjiiXPqVnaJa2ox zxO9BDwfUaY@a?*HpAYd{ZFOsOVYS!rt4nj^xO<(&ogs9dU&N0b4sMRWn67*F zWaZY{DO+y+tFNy;Hn%;#8vgOt^a#hqyxjJYTW$V#rY20cxVhb3 zzda|PrRARdYM1YG=gb%Rt2I{-@oKhi{WLdLSD$kCJ0MOC|Dyfz#eS!g3;A#T-u82i z?uGa}T&?>_zj40j$Nd$Td$W3#gI8x(*R-1Lz4P|_Dt}`&i{seoZ(HS&j zdA=EDzU_ivJ#O)9$RBUZ@y!VDXL&XGG(Pu>`fQKBFYuv$@b0xSKXhI==etO^T>d`) za&Ox5Z@Ky~K8#;~b@y|-F&%V$VQ0kT7t0lg&A#*FuWiqA`d!_|TjRdnd-`;5Y3s#* z!|GS}oxi!ae#@tKo!{Y;?&)0j{*^Dj+?{jpjlLJR?$)$lwwfpZqx!s;S5rU!t=k%B zx7_-_s$H#K7isizt?_Y->(^(WwQ^6EF1vHL_U80X<9m&-4yIkr)~0!S-FbS^wlAMn zytv=5@nT4Od)RS#{$llFy)K${b;TL}E0{O;cBp@GJqwHflKjJ2{;7}ITazEZ*CcO8 zy|({q@~;NB{QWG8S8Imny_oJP_r%e^p`O1}do}I4yUB-7*CD^T{OsoLzWbfI-=S}O z^>SA)mjBhhc6-8h_iT7};C)KGooy)f4{i`BwX6zjM!S-R-sUo4<4FCtk$Ea{Tbgw*LD2S@zl3 z&*76^jnCVDw(=QWJ9W)_-QBm#*}Zzc+U5A68TncIFuvFB=FiIVPdS>c)vLO!I(fM; zgZX<6uERAi?pb)AA)Q`t@$$`nv-<3gt21MBAH%qalH97 z7xlfoGbz70`d{JJr@irVa`1kJ%_=X4yQoKed&|e;_IlQ*UEQ8v{KnO~2WrBs+~ODc z$J_3QTixdM*nIx(us$8m_tbtbEcczSM?3tkzuKKy{r&)bDeS9<2Z9aaj+{XDn!@jG0_u%P^w|@OJ zPjQ^R><`Par}~}y+O2e0tXen@jWMoHzOC^>3_S{LfAPe17G= zv$r1GZ~d;RR|fN+X58K1bk(Nam-~CaXWeUgvDzEkt2}Fu-Mu)w9KGJ~ZMOW*sz<%I z7k_iNRt?k>#%J5(`o;A5|A_5A`FpPVJoWx;_4n_ct=E2!#}(h#{_nn<+a68X`Zs^; z`Tp#?bJkBM{*V9sAOFQyr_b&qhYPCBYKJDm)AqC_{qmr%MX19^s&pvt|PqXbmLz=AFHol=Dg(g zS<{b>Rvcz(Hy_{i^m;RTxVm4}nQ6!3_2n1uwH5cdd*W~1#_d`ByZb&}%W~^)&!;(Y z^x@m<>h81V8N+X%YS~_AzB4XgoZXeKP5pXJ~EKAB&? zSLfw-o~oAP{|@^8-X7}Yo?^2@zn8(y@%=7FAJ$hs-wt2S!&~Qe?Lqc0XJPNF!7rxS z*nV;A>lOcGyWf3IiuW`0c#gnwfb9Mj?oqCaq;Q<15%R?IT!me{;8Z+vbZLFVXVe@fc1%JHBFIVoy^zhEYhh|^gz2&~ETRs2k zg4!ovU)>v!ngS}TSKevANg5Z z&Gyni-0QP{eEMtUU3a;yUG4IGs7@U2YxDT+-EM1Xo-Dpy?MtU8+&n+@y|O>+__ud@ zwKr!@$Z*Acc}N@X^{&6qz>}ZWXK?el&FgF4K5ufNeEySW^H*PvmCMA7dnV2UM_2q* zPro|;*T9#VY1Epv@x8~Zk-OOQLbuNc&R%!U#%bF7*5LJUZ6S`v{f0dY`-&I4r;B_u z#BlkzddY?Nl^(Z#+>PVzb)<2P&SlRGw>mx4mCK6hpYD;|;?}Icn&0uO&DvwH(_WwK z&;8;vHP;u*FFyI{Gxx&zQ+Z}MQ9K*r*e0kSae0>@@@m{+c=-gJLZgb^}y|x|~ z?$1m=D?@)bb~S3Z|J`M0@oAhBYhy>eNDY?VVk{yqr9K=j(~Pv6|bXc&*RXlli>C-6_3!@%c~p&~9nmtI&PK z(dl{7jOBM;`Anbn)!@YH%`?4{nd!&;jN2bEkE3v zeAfOOFJCUhE#kifKQw&!-F>>b;=NbR(g*H*dEC`(oL~Rds$U&$b!zP!^3~FWdR(0v z`PJrMTixxoId%HO%R5`W=r&GsU;7!(-}q|lMYFo)^3$o^`PWbL#O<|h{;lVC`s&S5 zzw!3x>lg05;DcBV*bYT^~h&Hhql-t1NAbMZ-gxvkMNF2Cp7 z^O(QinV$VOtd8liT)7)BSFYY`_F7KO&bU7P<%`ufOaAJ`P@VW`uefXUxBkX-;r75^ z?#8!HUj5?c@;7(=_Vn{HfAm0xskzLI~u-TN1>Hs5`ulV437Yu=N|FVe;77gr4P zGum*^N$yMZ<4x_>(8;a-$)|&>vFmcb>+d`;Icl5DjG~wpe;OS^Cx}ICNI=OKB;_X(Pzkg<YnmX8uj$*@uBO6I2t=|UQRz6wX~2vRAZ-} zforQ*v%SpIOS~F&dheXuUrc-B<@wMvT)h6BPrsO^oqbO(?)P^7=GK3@W_`nq27cJj zd;6>=-;N)}pX2S3-!5S$-u?KlXMaAa-RoOl?VV{}Gwu3>_kN^b)3@5?^W}Ed^7&@2 zzt7oI-uEJ%9m8@AU(CO_T7GDs^cjr5J#I|D{8y9H2WQq(yt(V|xvpQIw9M}K)zVx{ z^N+sjp*Q?hU(aXg`Ce{!(0{d_b$D}nKB0dX;Pdov|MvH<&GDbG{_*xOZ?DB}T@(KL zPw}3C{BnB1tHCdB{gdy$Z7=oo#r!byjKRx2@igV`vwHQ#+19M@GZ&X_zfa}Q_j0~3 z)cwqUyf@A2^RwoCsy^?Q4AJ?9Cg?LCKzw!E>Q_twdr=LfDR;Ati_BFSCnEfF>RErbq1Lf1Vn@<0&RS)%t zSNrMmc`x^?SpA|J+^^zvY4$Ut<_X{W;=`^FUf;FD)zRXb&vqBwMfH07ehT;dee-x& zF8wvL@T_@;u+`d%O14sdewlHOJiMt^USx`jp>Z_|) z*UQuBRh)^twtaQq_9d5oeQ~JYSK}XV@of3_%$$LEHPsb|&1CE2LRvjGxB2C7FSUz% zrdzA$YV*_IdyL=f<=^_J_|AQc-J8X?`}owO+4$|@oaF787Pp$XuJ6f~cLq=$4IbXS z7_KgEP0!!q(z=H}n|?=E@7jx<*~M~pTEvHIX|}Iie5MCKq<@-So^3u(eDmVpMf2%z zjJNw<%jWjHSL^(j?re@an|A zYkYUa^Dkblovsew{LHLSOtbS=_nrUMgUAe@Mgj7$-lXs@ub=P%t?pWFYFqbGZeq!*5&UGPyTXSTYoX!nR{=RzkapZ zT>+ksQ z>Tliddi|$e>rEGS7GJ~x-efjpNqZiS6EMR%;fNyYW+P zoH?OdKE%K2@pLy?(pXCechh*Vo!ek7+n}A-hGzm>kGGjYnR{NeE4=P z&C8zpd@?_G)@%7Ef1fS>e(zOdA9;PCS+3tTe}~o3=hrKIvz_&(HShLN3+2W7iREuU z@gnW5jn_ASYo7c*7yDXG^;z5^f3;@P(m>j)6Q|4QVBG!emb3HvX|p)CzFD|%U$=I9 zq*EWyk6+t<{MF)a-S)_*d*X3voWs-4Ea#@*q8>En?OwPijhsGjsCH*}9_-ecUtZ2E zxV>&Mv>zt@FR8!ngs_EIBXU%p(p^NMNiHJ4**-mvf6wDNr4 z$N2Cq*LV4oUTt-Dg`Ye1^WU7v(&wsMC@y*<4EZ#o(*Yt|dU!>jZcbCcC_FUXEa3((Y<^0@` zb6v1r`C|S)=eV7lZ+1QnPJA&fE0@vSncHjqy}oMIEna@(o%iI&W%|)vy!o%9Ki<^C zcs}eN)91%~t$sD>p3F1#E8O3^_)j&>!1uk zD}MD)ew=G~!neG0s^U03-hy}EM0GCk6{wyk;M%A0ZPufBL+dOvaHme22bxZI7mCm*hMd&xuB z(RZ2ij$6NY?J0+Y^yY-PCsY^m)7fje_4UGqd^xi(FAweN?27ZRJ#qDT)9e2-@mKbezbA?r|%%St-U_Y?s9#-S8KQw@>lSEmuxo{?5~XQNOo3eas1+@A`4#@XhGzn{6-gSK>zwr%n#u zKKecBY1Lj$@qPxLp8d`9eYO_MiJyF&9*eh5E?!-Ke(+}qdU^VA&2@+P_2V|?>r?z> z>N?+E`z)=VE^htet*yT2c3<~**3Fq0?rSyIPp7AvH2JO}f9vQrZ|}=(t)4V+`{~nJ zFkEFHZ~Ayy5D4hSt>Jiu3V{PnvqK(ZF(i zpTqlE+j#x0i@&zq`m57#xqN%=?)fiSxp*iax}KXWUfq+ghW5tQ;PRc<6ZV-PZtpKYeDm+`_w}RQ-rEC@gHL~Epqf5@x$)n92Gr0m>gjU{Y2?M>YWP0CtIyB2=EFR{?+pGb-G}A)&MS;t z?Zr*u4>C4^Met$V%ntJ4CcKKT9$D3W{#5Cg0DXS06 z&+2b(@t5$Ax7$-Mn2!G|?dtN~w{Txqx3QY7m)E2CJEMnt4f-!f_d8f!=SM3JpDf+A z>hHaG|I?Pw^0)rO{=B!(bm;Ivn3j z@#f<$|CGNvd!%Lg>3(INiGS^LRQ-J>ae6P>=W6c!bn5b5a~L1@W;ZW}Pj%&(>k)_c zgPXg4{c%sTmP>bIGw@e~Uvxfk>pyAAd#)DoJ};ittI;1e!;YczySSR&i(j5?Px;Hy zF7C|b^VK_F-1hI9nCpY_{EKR!+2X6evv2;!_4$r7=M8sWeSAM`&!-vXGxhhn@LT&; z@Wn3mE88g(S)qrYS*{V-7}3GJv6I06T{1WiGJw#=D~f&aB!c|_2pr`^Wjs^ z<@8by?Wj-uYPUzZt1ouua&&O{xb4Xg``y{Acwg#p>G%FZbkMuGq}= z^)0vkwjTd>hMT_{xzO|IGaE-qcM{KfXd(Jd#3OT*+AclPR@{J3h@ZoFqiXP$kF*QbN^a4+-K=cfs? z^*_v?@0)&Cr}xuyqUP?nv3u!WxfW+BU%VRm#hZ7ni+883&tENn`K^D;JJ0e@=6s>E zdyDb);)l-uayLf@SO2EH{KodxPfQd3j&1$ZIdy*Zk$ajWXP%zLd_RNyjDb&ix$x=V z3dPe@zcF9_#&@20ca0Ofw(yJm@um*a-#A{6AEjTQ-^~?!rbEv?-9FE&yLFr6*URTK zuK4M7b2nCl-<~)cx#D~;f2RQHoOsX08N%ur-~C$L`?kK?&@Q;E(@%cU z?B)1xxt+&wn{TwQ`|87ip@yy5;D$_xfq~nQ+hJH@E)P$bBk4 z?{{Bu`=o$dlmA`sr<$)uf4u1_UNmF5>#K)1FP7h)xHQYFS)_Fju3ijpPyDZNXXcy7 zcR#|OQF{DSTn-QIQM|tV#qF_vy5daD?e|?=F1wnzPuHLCzsvbKv_JpeeA=e0FAmKO zvp9QiKL6UM;?M7DeSTg0;(ngiPjh44^(}4>yq(@+{LbHA_;mWha{9kv=Xz~9^WkdE z+2G4suzb|epg77>GxJ6e|zD> z?UQcJc{r;ubB6i2t0~8}r`gM`UyXQuTzL6ndtCo&^>OXRc7m&Mc5>p-s~ny#TocI)BQ;qsXwTt!7R+s-_|DKnFdvB}RIN$S_?-l3u zt3OMrr{5lYyWY4R*Piyq^!~T4)$F*wW7x_DLuMdw4-(Iw^-uj0bZg;~$xnjMZYRkXb);-lOXKpp@ zsW)AiR=hR1&ErD0+~sd=HT1W>*mKP?=JnrRzgxF`p8PnU^YFgp zmp6O4d|GqDOiupRJ;i#+-T3lmeGPnglh=o2`Q_-E!(V*k)7b55-uP-V{nafe2jxQ6 zGnxOUiDxvSy>P{T&hm@jv}WoPrd`t;>Z?X?d9hy0^X1H6yt9jaW;gep?>wJs?GQeh zS@7vQXme)4ok_R2GoNZU&wr}lS~~c<*Y?!IEWI|)-}A`tyMFC{$8N5k?Y7+Z^Rou( zznZPJqrT$ReCMYxukH<^ zS68gp6Yi|1{8RnYjONpB{*9+8Z!WFecbN9c_BkxSF&_`(*P46d2Uh(47qT5JISjJ&AK~?;nw2Jxc$?nf%IR*c`NtS=c#77 zYTBKZW4Gtiezf7{cZQxg@z$>Yrqe&nwq|`f&;4S#8>>|(-aU7xz1R60(=Df8SiU)Q za^mos+#A1n*RY(P-zFPg#t}osiez?!Y^7$EDf4TVP-Rmp9miAhj%WeFWHy^H^Uv6LV#rJyY7uDg4 zGyKKX(eAa&U)(2h0G+X2M-MzNeJ@J=Y zz241VyS(d7Q|`&q#E0%%{+hZtTK>j&zW5FG)#GhP*ACP1LwWXpc)-PVOml@liZaKQm;b1vC?CdA5nycCRe0@V_=xi^_e}}i`-lO9EbK&-)#kJGj zF)mA!J>_w({Y|%XXw=k$$%U-kYOi1H)$c6(zsIca_nF1&#QAH@7wdmfes_KI)5<~T za_=Sn4b{Wjd-tkGwwm?j)P#E$>(gvazH?E#u^M=5i{Gx(?rE~seVD(0Z%!|b zzOGg5dAiS$JpG-ud#>NSVxPZz-^FRzt;dJ1WqsWCC~vMAZ$C4?%Rlwp{rJtxZv0`t ze}6j5cDl25xxDL#>GZt&6mM^NoZgExID0_6nejMC3*)`ahIoC%VMe#t`<3|PZMFPz z{EK>p*T+5a^}+MS@XoTMec;uJSHJ$#b#Go@T>YN7oueo8c`xSgXMedTU!U*LesHz* zynOL$-h6vPeHL%+Q*ZjT@|VMJzst2p->ddXn=jULF^xDKKRy$O?&BhUkxy6rud$u~ zwakw=IpDlOKK;5D<^L*;FwYaUj{&$*s?OuGS*T(tTa;xKqyDMJ3&!^vs z{NCK}MqW6dZ&>ZytC{6!cZdAUZrA@x{_%Eu<5y3!x%~LGofYpKmR~O4**@V@zR$va z`Lo*MYL?I6|DT_DHRX%zA+H9~7ysKoUieTgpBCcv-(8>lJ)5U|TpGA~=Z#Y@UZf50 zy>*|Y#j>-D}yH|55&Y*Gqo!>8y5+E_z%n|0~Wp>jkUZ z`pdUxW?%V5v*Y-Sm*4pM#mwyD^`FkmesVCLzlgt>Mz7}Xb>uI1{o+gwzq9wf%lGW< zebN7`$&a^oc{6j=-B=xd`Hy@7ctyJ=M9lYB$DJ zx4d}!t#lY_Q;n{9l!UNey>ZdT>WvoZ~U!O6UxDzi(6EqhwCyweto*IKJ>+O+yDA^AAQp0 zXSe2!`x5_nyEV<}<@eh~JJ3{%(?@Pm&OQ+TJGgV&iS4!IJJ-dY123N+@ptIY-4~x~ zwy)W{&(@SLrrX^5!nsb z9^QTM@aBulnMViT^ySxFuj7&{&d2`_b}!h|eUaZBeP|wC9Bt@1@!V`q4Q^}mGn!BI z^L=YphqqTbzFy*=-F|xIGH0&-!+zd>sz09GYS(vv)up#foSpNXSDZ6@LV2~Y9+@~~ z_JpgUE2kdP*+YEMoKPP%Pr10;V`H`Z{T8)(3VL7&BXyqW9U{OZj&H{6%q z7Uglcdxd-M_-gav@A`WUZ@#^@xBi>U|E`ChIquihUVi(TQ_T~PyL%NgJ#MVlKHup! z#}D=Ntc%0t+`Iev5<@zOhs)>VpYY~=j-i@jeklJt^=ZT!Fkm50lJE%e7**ZVtG zk92VBoS8my_$PGkAzz(7=GotDu{>OUd+^m4+euEmJ1n<*ZVms=7Mm&Fdw`?SE8JW) za?7uu#w(t`==o7sZcVJF+}(x#NgLOUec^mJhnvr*3HN1Ih`+uV($#lo;nS_fU&E;p zUtO{LvgbsvUL9T>K5^SK-!qwhb5FdUPqTk#R{hNhvz_^2KJS+oujcw!Q`~i2ookaX z_Im0OSC5<9zFog(Z+*|8^U+J~_LReg_F7z?A2Pd!=7wH&vIC8HQLf(VH-G(fabYI^ ziJsrD-ppIu8D!34{W#zCU!r-V*H66l`Sze|5BJoWIRhxa+P)j)`Kv3JZ4JHI@Qt^x zUT^!Urwdnm_mG3?#Sp)J?YwADb5_s4IrZ|P*VFuRc(|O}@X6XSEBEpK{H|u%eTJU$ ztCfdx^L)r@OhgxS93ef2a7SjkoXmao2ErKhnhS z`P{rdG{2jFs#|XR0ICO75nZJKegWa=MchT<;_g=4V zbNN~M%NJj6|95CTcfTiY`{#E}nL7AkKkqnL-)uGR12}8YdgAmezOS@&>eAE2EiZ<2 z;nVM4o6lDl-kkgsFQ;z%IFC4%zh}388gZxwsueHNZ~b?EwdFm#@YeXO;?3N6eSL8d zuiiQR>ip8JM&0eF@1ogVgP%9>SJ$<*&Sq?QM~y# z?tTxX!})%{cs26za(wajy#8wKe6KM+F5}ZKnitZ3r~hjBqvz`Ii_SlMdv4;NUixg0 zd@nV{`S=^xCvMI4$GHai8`G$Pcy(~|xQq6og;%#RO}O{p{qs!8)9WFA!g^$SEv`@V zCH|rR&ac+Xe#O_?@rl2>r`YvfbjJHU>@ySZb)O%6m~G5|s-gWV`ca3wy=X3WjkH^9 z?&94+FZHYaM{?#u{Wiw6@4a{KdAT(^gz<1S{I{OVudgmNKinDkxUI!+4|U;_rHyyS z_g>%^SHJvswZB`FZuj5oi+7FiO?&%@!*;$F*Zxnhy+-xRUH`jtNXu@W9Nw($w?6&t zN26Xpd~yDLJ?Zv$oUPZ}?9J7u`%>=d{=D(D-{s4#sey9E`Jrb8`aPtWpN_?6dcm$M zliT>KVBS{uRrK)A~H6Ux8sCcm|~&{^Zs z<+Ji?ch*4;dj?VbNhW)llGq7#{7EZGcz{k zt9ioJ_%np>+||>CmoH{=;;`LrY~Rl4zT}`D;&9Ja{`Tpf-&dODZoIjF)Zh8LV>~nO zNlW)T8vVjO+x6cxPc`nL`}c<1fBmPPUJGsK%y9bfMDDlUh= zXR$e&@M%9YV6)BVFQ&VB9G&Mups+r6XP-*K*XWBTpOUsSVtTsnI$ zUjIw<$D6+DFWOzbnRM0T^upm+D@QB$hUUNZst;TLa^}%&jH|{opnh?mll*3XVz52dno6q-MDj%9>)*Eik z*5&UUu|CDuZmu|u{dQOW=5S%Q{rGV6apEw;@zvqOy?^4%#b~<NJr?78M!vJH&1cQ%49p69xi{jA zYL<7Fi}KCmFVZgercJZvdgJ(u@zpHnbLca*xVrq+`Yc2LJpi9?ytrD%hxjMlYst^< zb${4D^Y{F=?&i$Zhc?~QeO15rivOg)+|Joq`r0QfAKtUty8N}Lz3+ZER^vI}eEzj| zS}QMJ9|xcM;Ao!kUVj>M)Gz9RqwhNTav?p$(cr6>!!4Gh`4XPDv{7pK_xf(UdNq0# zGrCX@h!ex78l1ji+{NX5*5m5EFI9zWNRy{uy-@dEqd&`XL zZ=7ahe!aFHA3nYM?$qn%-}on;nOn2p%lZEQt>M1p^eyfszW6ljYMx@d)tgUuV?4Ca zXS2_{Tv)xc|8gGQ-2YPd8Q7fCdOp46^?1Uo5r^ATe0#)S&Sz$G>g&mOE<48=;l9K_ z-f;g2Zax2Z>f6J;+@031U%ldbx#u+aJFmLVEL=5bmTDZCGgTFoFGx!ypx7~{$CKJ1^H*^o(({#(>Z$I(kol&i4?B>+nym`BW zS~>AWJ;ObN{HJrgoVxT``Cd==Q0}Ar`L0Kp$*dpumHhG6b!7FF!`*AVXIdTY^~E<| z+#K`xt_kA9@2oj%c8;qK?!4vs>9&>+^?~X_JAa2)SDe)^%U3Vn{Fi9n%4Mkb%ywV7 zkMieP6r08GIlGo7s}KK8LznhyaG|-2>BaeXm+G>oYx`tA@8y5zbE*&he%|@t<;+~| z_I&c+wD^m6{!`D(*$bA>u5Ni+*!io;S1bR9dX}$_(Tgw2L-W4FwDSDUFAm=P#%6`> zBfh)Ig`WR?PFF9lMo+lf_2uEMf4Zi)>`ALnNQZL<5KoJT^38F5p`S^3XF^k+=8e;b zcK>?@|M8#yHk}(_gwX>sj(V6+c<}C;q8c?~C?><@tB7 za(cr%e|OH`&pTi3MZKQpTx~Jq)5O<9K9r-4OY>&sv$wpnaaODQRQ{Z)4@|qhUh(?% zta*7_Z@ka-=JM-?wbkHPo8MVv zPyC*nygrL^d#QCUpPJgL1TV;`_YaI9*(?e6wNwzT2ys>^sfo@;w(m`%jYtCcQ?|o_G*Tk#8{{8u&-|DvK+iqz(i)-<3HD=IkZQSOI8QsQwNb~Y-fmlfCg*OLwok9eV9&1owpX!ROysbCGTwTH9l{y7cE}2!}j5a`_kt-w3og+ zE8n@(!R@&-*I$kPBG)z<0r2AHT~lF_P)=E{A%@buZsEh**M>Qr@cM4?#^^h zaP!+QzCJhq-K_LJn;}2`$@F?d*QwTicDmR#t*Hx_&)?e3tv1ct*2q0^Tf=|S-+Qo{ z>h$K*hkTmw^5XD5i#Mj#2ga|zas18cqd#12zH5T=Uy1X!_mRI69Q1SHS4bby;)*@L z*QZ^+x^`OBE8H6X=3NgiO}0G$;_Bq~jGZmqd+2^$eSL6xE|&XR@a%|#)$m>S6Z*c` zGglXy?OfvY$!D97Q|DUfF7BS?wzt~V$X{&#Yg_l^$7NgRIzE{{--~qk^>MJhz2dfi zvFlo%Uw&$_y@o@VF~KJ6o4-!(IrlZtk@|Y3ZSvH^%D;^|V@iwO)8Seeqp~YYF!(@M_;?emea8 znetRuEz{2~c(}Yh<-+Ci&AWTJ7Ws{@uNEK1ZG3$-&|ZuBq+#?hp1(TR+g5(! zhj;z$#`J#Dr;(=*>(hBV^UbYK7iMbUhyC-r+!LnU{`r5d{>-3}D|Q_?*qrj>>u;Qv zZQbrFf3ZGU{Kxye+Y4@P{qns$SK`ZUzIr--xVx3deK|kgo_KYuyS{m0yNLPrQ&;}> z6)&dC;-GV9UiK& zV|dTO_2U;k2Tz=5qulD2SNGi>G`pLgI6eEFYk%)jyYs)}^rg{X{2iucT~GeKuIe+$ z-&pP2tgi+yZ)#yO{?1sw{CB4A?o*Ga-16(wHY+|`|HJ&5+r7SfX4PJ_^Ao?%1pi5A zZ@H(Qu7eh;37NUfadEbx7+i)4a?e{BT@C@;_r}U7Bw_(!Sk3(y^Z&ciUOo-nOxv{i7rJyov3w z&bE2dHhF%!^W{9Z)iSRRboTGK%a^l9pW3A9=ri>b^U^r!sEcLu^wgVPkLVm?TkYGj z+%a^%>x(j$iTW5X*Jf;hw$bK@+nXot&v{O}Z}v+%FHSj^v5!3IakO8{XdBy{7mv2( z;?XbdWlXI@x)09tH5R39Y>yUQKosMt#f%Kbs`C_ zzmzKd;nzhe+u5JfmeJnrbRN>>;_-4k9&fkVl5&pwoI&S! zmZ=~6?@mTr`?RmvhUlC87|6>z_pyoPVwo7nhJX)WdwDWmv*qG0=k~vTFw=UI~Hcq-GpQt$u#8^_0S{18an+B&DBbh)T=Jo>QC?Idl#*5%owo7uTV zzRz`J4Ak?#q_L$8A(rbdUb3FiAE%=)>tdg+i_-b2&SR9yXh+=b^z{?xf;e|s-`&{S zM;zbOp8C48i^s)v=1JEP^Q_C8*R0FyQ}kiGsB=8#5$FHs#5~8{4yU7xdBh=xyyFv( zQ(oL<@Z)$qFNnvy7`MN)9jOg=sZXC<-PLJ7$QWENI^rG+`?8E>(s-VYbx7=En`55y zQ=g>WmU40DTiOR{jy2MuyE@Z0q-ob5eZ{!#U5Af{`y3^4-y5P`ocCkAoK4g_p0*=R zV`m-h|0{9#(_?Ju@pU?mb&ONq>D1O~Y~r<<&JFQ;r%bd>+u{16o#RO7Q_gYp&dZct zKj`e=wlV*bben(}|`FFh{VLF@YQF|^K}oW_UauA6jsdh+bY@w_qiSlHJ7W7_4S z4xfZP9c^=;;(6>gmr9m?^UBBk7^ghJx>D+|{kk1)7p1Io+|qhvysq=&<*sYj6Mf-7 zhP*uM%JtFuC_RSg;_-}eY$>tJKJxT=_2${8I+rWw)B0!^(&@3_lknO#3=|51AkqFs!;ul8?=jpOBH^n=a+65Q5u(&t=yZaPg}v8?sz z9Cv$S``urTwU4)@^P)X*^n@698r@$Fv<+KiUa+6kCu!>_XFH_xkZwOR>K)J1+n4>i zT^>WyX`FN(d1a%{eyG#>RHp4AP5TMhrqVv`Coi29?kXRB#JK%NKe3PLTpQEn;<0>Q z+;t&ie$*4EZ9ayMBhwIV(meaIw5?@&Zp5_X_{836m$gI>Tu;_TnOQ`X+C-O z730{&koLzuEp1CW4U~=g)R)u9?ttXzS%(kX`kISr+Gl-iYiuKW{J4KC9rc2uY*1KLy+acXH>+qR|y#Cq7V?f&H3UTW#(GjSp6r1sj zF0~^~us+Jt89n11r+f@9mpKSO*pQ62G0s?Uo_L({r1LG)GWc^j$D?!{8@B}+`{%x+ zCy=IGDOLILaFIHtHPraU&haHcdOv()R)1H*6pM+PBNthP2C-ld%l#w_l{w z_G4X^(e)F@C+gF9^y|3Ga-1BTNBJ}!ea1Y>l4l=L`aH4p97Q@kzw*+y_jerr#v|3+ zzx_HtmC=rNIvv|g+u{n6}R4VqWSaFCE(x<9Ys~ zZ{i-)D1AJ9?vf_%YruL-+gqZKahIK$&i-v@N!#*#Mjf^Um$A&0f8i$`7sifaQJ z1IKOSv?Y4`b34lE>;viYah%g*K$>8iQtHp^X7Zwq{pLygaT)uI(&q>|$D@q4j@z&6 zBpu`Kw{@wE<3XN-?MS;WB<)E>S(%r;#%&leUR6v0bDI_ESpD=nJ;avy8{qaZ79*M@GnVU9KngDQ%bSqu%i- zJwKy!Jf7c>&nGn4i+GrKgOy4aanYEA@!MOgU)`C zDZVyReO}tW$a6VlOviH0b2(%T*gCkJ)0U}Cs?QsPsIyIu2f=Ye=#rm z^zn3CoW|a9=UHc8(GR-VE~ld;?qHv>4#%-^Ja4YB4`l44JmG-+gu5V`&-t?6HZuIIdA2{o4OI?%a4E*s0>Bih?0O8bp6=Hr84KY4l1C(m)D&$C!2 z)SLbc_J@olHjtAyL>#}sSUQ# zPo6Jq9MbZxgZvn`z5O{IrSoDr`?n4m&pG0(*Q1Q_)ZX>EE^GGY-4G=*e2&$ zrZ!HKpV!XVkGweL^7K(>o3zj93D`Q1cuAZ8OFqH5rPPdH>n&&G{P~9Whd5$BUhfmVcceHb!>$kMtS07j4lI(BV7c<4d07tflwcv>&%ROhy2jp}NbZQL*CrTwB#`*a!G zI_-S)j;H0KKK8?UOZ!H;ZBeHBG>xt2&b&F(dDwMVmi!p7B}85H74>PnRC30z`x>Rk z3oG=Nj+0LPc9+f^bp7Pn*`MvOiE+{%Kdauw@v5$`br(jpaddt*L^zS%r^Er~n(>{=yUYRbTLFb^t3r*+q5rfJuVZ^8JCT9#Bz>fN1q(r-!z?PV_VNTq=~0FV<<_QDPU{C)=68Oj_rzN$S>!UI^2%bhIG6>V!q3`jrJ4k zwT*R_F5`UsM&HgyM!oGUc{k^HIcXo{JC1Z)Ja$=TmmXaV(LUPQCgxjbnfgK>b&ey! z$I#OHa{kEA3vN?vujA!p>c_tAi+sl|-9Dtx#kB3D3DGvj-JZ;->&N-_Wr?2Pe8)3o z*N@v4&k5HtGig8Axi0IX>@F|b5zn)A`<)llj=Rs6=pDC=w#4&7s&^U7a&5FP#)3GK zV7;Yvt|v1p^ApRIG5J$n97D?F*`oJ#O}^u{N5)_q>qwW2ljnd9@hBZHr*}S*V7pRk zMt{;YcJ4=aahHq7&^k-!`CN&TyqG5L<41Xyr42FIchnK5&3UBv5BDvV_L2IHdi%Fe zWW@IabpCDw>9}q2?YP%!PIo73(ub5{YGOgQoalE50 z#%+V-oIu8W;!)?kC}Y0kNc)TNs6$Wic}kwo#Zu0H|EBH1!fmlNequl$)7`~wYiZjw zjUJstOuI}f-8b7h-#(Dei@F$(K3qPQaol+x8=qs*m-8&iBkmCOE^l2t|6Im-meI!L zk@0-BZIo_D)De&V(mbbQ+Z}h^_M1wVO=T=+UyLiqAhmUVDs6|}#{}tgw2!vvNjt z@{RkS4Mh0C);2M2oh3!m^-`E z?TGPm`REC>*@5vY7gF1-uzp-7&Bu>zoaeObwzS?dZL{rCpZ4oEyL_s5zR!m|>GQ6f zq>S^ri@PqQ>nV3`ViVgM+fUr(k*RH(j&+b1%g!wRSNawG+uqXkIqmjZAJf($W8bZJ zTb*{jmd;P>vfk3=kui9T(Z%|$w=PQO*^l#Fm!(cbrnST@F^ZPe$*-52M%Ui(P%ZHFWeXjGcPzBVjf#`aDl?Xz4S`7v}?CfcQO`rvxWi+*g2&h0?vrO{#UG4WVgl4l#@ z4(J@Li_-q0&hc{P(5LOR&U(_RANP?whiIS1DQ`Pu%qJcF$2fU}XiwZ}%hZ4LVVhE^ z{A1$0Xj`gz#;@zJjnl5nk`lx@9*#Q?8Fgu#G{JVI)Qoe=X-l`oX{2??NX(1&X*`~X zX*--QSBI}xU&pb2;@0O~>-L$p$7z?3(sBEB{peF-9zN6jv`x_-+ccf0!v^pbpQlKd z^Y1d2v0doWv~`x`=k+Jm#dM5!*AKVJbvf<+xR2IbrhRoC&Uc%gj_u(bi*p%y=m^9K zrPR!SQ`_j*@l^U*%=(y)_gV4@mgQQLHMr|1+PGY7V~j^z$H`~x03B&U%r9w5zqZNC zcV4tF7k8bO(ayR&$?+w`JeRf3>Db2DHpiVGrN=POhCJuTxXVYK?VOh^k{eh1r= zCZ6h@?>b|Bwzb4I=Eu1GSW?DuOZ!RlQoYlZOXGRIY~$l*iN0LiWm1{iJ0HD6j7Ocz zdhUoaFVDI>nU+29=qKu3 zpQX!MMm^<7lb7mkZ|V9h(Z_h2b{^7su@2(QPw~F!eCKsHf7uqBXcyzQLDB}N-6rc} z9=g=0%V9@w-%6<&^S1rQeCuL4>nv0MP9xnP%BOnr+y=MV65CkDar?6`>zz)e{iWri zU7ingF}SbjT$Z@~TbIh1Pn`3G5ZhzD^T?0&ke*q$V zV(&IaTkDW+TaO^jQIw4S-%@tB{+Q=2p$eUg`#Z=bG{K3iw$vU%m>7&#v8 z9VgFmOWQjyreoY=kB)fEi}7fe+Bz?u$LM_iTAwFvXWNvJdBq64W$MenSPL#H{&gm%a!~S9#or8T?+K1Cf&S?|%<>Glh+>Tf` zZO9wrR7W}9y{VbFRZ7GOGFM{iwPPdUAPMQPipbDTT}$8GPlk0X+? zwLLQ0#5j4eoa5#6_U+>uk7d-QcJ_<3Z=^$-pQn#D)aBqda1Oc+F)!*I&npx2h!d>y z`R(+~r0b7u$}8i1`?vHphO~{#J8fw_buwyM^to$0 zpOa48#xgH|W_i>dZCq#GHHsbf9tYxSAdg_1H0@*Mu}zPU)6p;W#*pV9oo!r}wBvt8 z{;&3_Px|Wqx&NsRY3Es{W8rkn&x>2$mgl&*>B)jA{2F=BK`}cU%8z zp6y~e;*5RjFWSUB;xR37cVC@G#(p~Oe0&nOjPY2GF^lOKPklLUX2k*=`o_lKgSbPCqjNcA?3eS<6P)(gAU!VRN4?`N zgCt-_AntZpq9Zsz#|?>Lh4 z&iSNM;&tk{rEOgvy>+&+4$1wSe8(+)U+2ALxp$ZLe4>k_O z^TsibvwgZ8(*DzUYD+!QR~mO3>EO1-vaUPk#k$ek#?taelBeLL+ur|sWui`SQRwn18#+WES5ex8hFQlGJ1G46gv`!wG+X`ft%wmAM*r0rv$ zV%zijR!%pw`drR-q}>nV)+4QVoPL)Jag1z_&SPbr%SZbdkNGZRANI$*kb(`MkN(oQ z?d*$mv~iu~ba9Mg-0ij`&%rvRby23rI-Up7Zf0@UgPrR_(icnj%j1wr#?NDt<~fZI z>agF;dGbTP16eWdwA&)&YBhduEa^4g4!klI<7Wp@2U8{#p~_EB&9XqR_B`n*i- zopzs6NuS;C7`L5uNZ-ezt~)(GVt$&Ac{B6rvbM`xlaQC%kv5El%Ug#`gLUzE*v8`= zk3l>(Y24+I_GkYwFY2NXmvepO#dx%JoHF?9j?~8WL>b#;z3Yh5V}j0c%V-yUL?HB34YeX8~KjJ;aI{TrXH14)o`WRrB*RJTp zzARJwG;N}LPEtjTklNstKFKr#t*xoYg9ZzL!v)dbW(cXS7$s^c?csfo_W0S^7 z6MP<&Qhz?r(>kz;b;i2$^v<^*YzX#KO3nC9+mL66F8Ygc#?B#c9Gyp>W50=$7k$Mz zd1>3wrNL#QBwh~6J1_M`+I2>0JIXnbPdv3FZU44M7t6(T)R&8=_M~GSu7~nbpQfFc zR}VV;`WRWFb8tD^T9TiaXI(6x+Qzn*v$NjP{fIJN%ki9y{$t#2vvj*$hxL}$N4s)) z)~D@r{npzK={(nymuH)pm&WssTWquAE|=F9Z159(#WZEHA=r=O_>1#^kBjSxGR<>2 z>sj-rq&BWEmT}y5xlDJquE%9#8T)ZxW7_?Wd1=|0m&Wl$zz@OkOxgA0v5&{2WL^5j z%zn~%my66l@mP*{s*80w9@li%<;m#V^;){FH0?6hBYh0wILG|7Oq#ZB)WZd z>x$BTqR#P{M?C5sPi0=2^jvW|`ozy)3AS_JqL1#%yPWMU-IlZ;)?3;hJJ;%xGxSa)?E~p@=+n4$NCNq>4~|>L z@~O^c(L)?Z>r!cdc@o>`(>B(}Jo}~2{{@$eGWF}U>qnMGt2ACQZkyOfboL+P=(-zo z`^u9p7yS`;TjKHe^=KLMx{G7)GM0Jvt`k`<-}=-hmL=|SO2;qule~D0(>&4+_Gf#i z$#*>Zi@F%MzbIpStxx+C(~Ln3GfQLZakI1z={jj=4CE2eIS(1fAjX}Cblmw!>zr?C z|4t(vtaEwWI_>-@v7z18xeVzTFXsb&gf%2(t&4H%{2dFn)>-D+m(!t-WDTCl5B7P% zdi#qu&Wk$789N7`FP6TRQyKHqvZS3)JT03yCv>O72f;q0Ov{xlXPo2iBQoYWj+t&s*Qh_SRZgbmNvF2x()v;x(u7n` zKVn~E+-0(Y`iXTAcZhy%Yw7x;js3AYx9UaEK6 z<*;|$GU}o~%EsgDJeNZ{c;0gw>G{wy=B4p+Z9wlnL>rg4?^wTe@gCrO=jBQ4UB>>S zv=4M{i}US|H1X)id8xEbsn*gjHsu0!I@pf1$0wD}a~blx3o$>&X-{6cR3FROKJ5$o zsEcC~^^V&Q6929vm8l(Rd_;YB@jTl+o!ej;uMg{@jQO4)xo?8)tWPERdF5RWNuZr+ zNcEXv*N@9vN7-mk+`eP|E|*ICaT%vA(Yt-tAyYqTdFQ(fX}2fpTrS#MmuF|4`%T*I zv(7U0>9pHXE}hm-9oFI7<*au)%CrvKBGcgZA_>kfrT+Vu{8Ss~6zADbl;pX*^=`M* zE^mo%=V6-{qCPJkb(D{3;!eALd3BW2rDdE>rR#~u#_M46qMo{3KGy4Yruo=9#Cg$i z=h>Ir;xsbq+!pJj9dZ0c>HM@F^s&vhi@LuOPyM)l`?Ji`yG^dgHkOpNjdd}dj$zD8 z%VHaY^N|i|JJ826F`oK!9%byu(mK)+^aSf1&yy;`T?GG;SSr#k}tPr+IEqT5n8a<2u~0n0DQ%jJCFSeU@o^oKEv&du(HgZFl*$ zLt<;JPt*8{*MZ|vMw_T79z#sKz9?NcG6tvdmFit4>amM;IgT{8ar&=H%B6w2(WPyO zY1^cBwuwGzOSzEO&h%Lz+T`V-i#D+?w-f2HMaFYBJ(r#K8r9PJR7QWU2OEc2ujAx9 zo=W>b9|P&MTuc*p+R|m5=e}67msJqR7?1hrokrRhddHog_NBXYTGqairPlm+z0RX- ztTU$V7a8kkEIBtUeV)W~r`-7!^*-MyALI68zeseJX*_KQY1(W1tYG*_?L*doMe$>M zx63kqXX}1Noxi=c&Ni|Ane(n6k1AV}6XgpKfo=BW^u@ z9Jijdk127$j(j8`FCP1gO-#r0+UKm#QRg}Bb2g^2u|Iq}(2f|~b{{WG_XA0wJpN*c z{vAi!KH56oT^=?uKl)7j<}pZRw2O7d{=`0WzP5>Y-bP#669Yceb~zpEMn`a2;?`O3 zv2}ZV4fz=OoWe(JljF8?d8geM+gVaCfp*YV%h+zm8CTh z!F`D`&2xL{kNe`j<;iGIzSEZYrws(!WjqF@od5of<%rw2^+@VK&pBjTJO2#&Sl0D3 zP98tYIKIT=m}2kagAW32z&9{fu?;PqEuGC>G<7y9H3QpueABVQZyXWobKM@dn6}RC zivAq;SjDt;9v{-NZv4{kcn+pxRokOPU5^s=J?gULj}x-HadUak z6Ug*D@%Y95%s5M1bk>&OJa*jqzRKvk`-Ok%^>Oua=U6+ABu)EcoA7}zt_|vNosFH1 zozum%F8=8J<3Dk96Mqx4cR?Cv71%Hyj2UghH)B9w=r{fQUHsO?)Xu3{3>}b9-x)9ZPTAOZx6S7a zZKQp^4w3OXbUPRq{LpufhmSSw0@vp{v2(rj!{;>h;@`w`z;Wl%HtJ8$34GHp@VVi0 z(C3NUN4{-io6>8|<6%j?Y27|I=oi?prRzchZLrQZZi9Vrdv6qEj)9MdCHi7V0_ z17%!4?WJDV$GCFt`x}D2H-yS3P+2cds z8JqOjdrWNabH`(Z9-j{M)5j}4ex$+Yfz#1G=DEN4c0Z`gb$h(Y_xM^eMh=c+=iof2 zEz#$-$2xpr8{3n%gM9qBUgCt9b{vUsk4xUQ;rc8~-b(i=k4Jj^n725VKHq&DJ$7zC zJ{|1WZE~M|oRH|;c9*j+B<*pVd~W%i@;%FG+7#R4`tcj%(ZB1ojCSa3>vnV}sXOLV z*8Y&L1HFAmd*b9po$Gg5`(w;Ju9oRB_py)HfXCj)A{~F~^BB^O7-#&!I!m|L{c>O3 z*0k+Tr_y~z;*$_{(Le2WUs4(SX1i49@pBv9=2$2FqaAKfY)iCryHZ`WC+@mp-NecB z75+R2i#oQK^7@;$%c(`$d8OMexU#V_LLE{Ojm zeh}Y@Z^buaQs9fu5?^+HnQ6)YUQmXz@M9PDgUwe0KS=mmphp6EpNUVzhhlf+7L8K8ehU<2<7%6uR`5}%5R0-v;)I;oF-(JuN-|EF}}zSDO4L*Lyl%Hs#0Zr{H< z|DDzKe&_pHz0?o1iT2V`B<)1+cG0HT9_j(wMZMHdTi8eNJ_^rg96O&ImOgJdM|i&B zxsH7ZjxGH{dS3#GPv_D1c>IZzhmE0(_b{k~da2Xrp65>HHLfSF5v~dLPI`+u#avzV z@6o@<++EDmg1jZfl45B= z{z_e}&|`)F*pUbLLBEPvL#!ECy~pZ3Rukyg7JnDR#1>+6v1u2?o!+F!CjZfI++*Xc z3}x}-`f017&9s$%(a#y9vryJ|#*MK6#$`Ykq_L+g{iprZL7QnW5Jyk{UAM=LGU!(o z*wSyxqhkzd2X$~fkfhx{jtR$xwsEHQ6`Wg0&O>x=C*^(okv^V_^;j%BPO;yd52TS` z8zlAPi}RRspL-(bFxLe40PZ!MpIlGOKg9%))K6QuHxaz%@-@pG!W_UD(hv05Ge5a~%)`w0 z%(reQbv-KX7qsK{F7E2QE7Q@YM*`SBA)Xa4iB|<}#SeYGMO-Vc64!|91^s?l(6=WA zamIms?69XC^U;!0%Y`oOn%e+&}Ju@#bEEo;JK7#)}sPas1GB`o(yU?t(Uv zMo&I%^0DGLJt!U*?&BMsZ)D@fJ(l_zL!W!T&vTr7ucLi#8|}lMa*R3cqc1@G74f>j z1|OWGoMYbeB+hxp{f%>%^N!=n{e$a-d7ksy`*vJAUPEI;nzBIP8sl8y`t!W( zd7k-!Yn%CjxtDp>a}sh9!JNQ-3qRCP-P~t5SGgb37p^_8QM|_BTIIZ?9kh?~^u^a9 z?-jWBQ1{AW1F@OdQfwXAzQ^`Gb`^Vy-NZIxeX*jTeau(%jrohdpkr=kKEyBg5&Fhl zgr2#Q^3=us0I1Uv|2qik+E?r^kb4N)!u?_+F;uK8))V+6?s=O!))E^E`hu@R#7W{z zahCX}K%OTq6{Exr;zn_^xJ6tqt`rxEbHy0~AH&5z#9m@&v7Mj~+~c^n(Kgz^J%jOJ zPUhagJ%#pSM_(AzgTztd1aYc3U7Qj)vB!x$junRs>O5G`m%{|{1H^uU@!3&qCGgJ} zts^*2j6L_jeuCr9+Qat%&TZyl!#T`3#<|1#k2%+CORi0>JJyO^ldKDUj&XkBn>tvN zaF1JDcpbrb_=ZF70ED#kI+~&9%;a#Js}%$=vRF zmHCBvk~xrhhV*UXM&bJbdgedo4)=@sfq95|?J2=LiH|XYxr%v`Jmx;;W#afi&wNcg zn1^o=BgLiSU*cSGp}10@zgjRSUm-3MXNyzCapEv>kl0`BBlZ-#iCwzbv2(}Hoy6Ya zP;s)L4t!BB_d4I_n0MoSguXEkaz9}{2h!+)xf31zWA0>bXB_ascrk{f#O2~*ae+8r zTq3x?Ft*%txX;iIjsauHF~T2paom{0{mjMr#oWajg6ANff0)~tM>#i{vzUiTGhcho z@+B@Wot6+x#p-9pJS*W65zyZJ8hF3v(-TEOYMef;kkJ|6p&y{erpjIKe#6{C%~! zR*V+ci5tXi;$HEHc&dv>dpz3XK5?tSZlt(eTr9X(Fh3t7sDpb8UCt5u$^DRH!@ZaJn)?-Vwx6ZAr!kk)SNe6N;6A}UfxdBHfTIO@z`ca~ zlk;fnp@RDa_fq1=3+`k1!jAjNK3#C1Vayn>y98tNw0K?oTYM!NMSVqm#XzyL*jgMe z&Jx#(G2#{RzW7ie-xe>3C&g3ZIq|A^L%bx$iu=UP;`%N|SB$Q>T%03L64Y^^K%OGd zpD!*H=ZcfXA!1LlTNis(?3L+`t2nOWL~(>5Z*#GRSWwi8UwZt~<9+d%U@dTo;CPP^ zjQ4?pdn?xk=Q7tT_es``+y|L|m~(iZV6J1W%bdx4c$qj&93r+6D~WkUh4``K$Bv2O zb@7O}S{x^K6GO$~qL-N3KDGS^@w1pL8bzU_(9u)$5a>P?FNrbY0r8}GO`!ipGzrQP z|3thgUKQiT^WsJEilEGM;xX~CxL4dIZWY&x%f-LMnc{45uDDo?7Su}{-V@aERTrPN zf7br4cv-w5J`z(zT}NHVoMMomuZxIz1^sGQpv}`otElX#>}U{ki$%p^0{g*YL4l8j z#ZqEb!T4<>_7(?;qs1BGLUEN~tgjHr(c%Viv$#V%E?ySzi!a2t;urC27t=bXbu@{h zXy|O{oLej<))iZey#)91g9Z2LBgB#7C^1}|Bv==4Kjl2(IfZ9N&LQq&+>5yndu_pe zn6(D?XY#rCaj#@=jptSF2i#AXhrQlpeqnBBjm7-L+{B#4yvf>;d4u@@JYS##&Ux0O z%o8UI(w=*e=uZ<|A6`Qv66K{%-#3b>Z_+I=ZxXvbbfu1?#1u;h4Bk;j|d!fKD za}jeL?PZ>4F67yPJtF2?_K3J9{hYyl!}oFe&78{GoaYLzU*LI$IS=1AiD$(pg7*C? zrinJe95+BLDVXQh6I+RW#8Kijaf!G^JRq3Ah~Fxh&%P9e%0lHLVjZ!)I7pl%MvFH^ zeN}zcCgN0aix?+96Lr;f)oY2P#c1)kctcDQEn+}nKw%qklV}!e)vQ%>w76cpC5mF9 z+J$Pj78i=o#42^G)csRDF5VIo#0TPKaj{rTjI145+f>t3vxYddaA@J)>U*nui+if> zsoF;TQ29gUp`xXtrQ#a#cky$NpR?yA#+Z9O=P>J1u8Hv-<2z0ln+vW{=B(!S=Jwyj zH-b6mO0l_^TAW(EM64vfX#1k=5;06HD&`iwML#jGSVpWXhKNH^!N#O2~CF;y&A zT&{SL_)QFLAKHGQV1D{T^zP{0v5@$?U~afxyd{1X1mJhE;vKW}ds4qj?VdhuBwejCk%ECe{<&zZVdc zYwu{!?g*SS^pX4d4}x=szC0%wQ|e<(uN7B{OT~GDvFBdDq4+;BpWuGaJ)Qd=*9gb$ zZSlVNQE&~-FIEy8i5f0E3dUx4!9DGG!J6g~!LuCC9jxKE5X`IWtFV54TQrM76@x0)6|B3?5H|?s zN7ja4iyy>i;!WW-;`oa36(5NyqJL%o%2mbR#rk4F!QzShdj)guoq}~Gx}QWU(vt!B5H{V-cq@um{>6}yPxb_v2(>nVwl)WY$3K0I|=SPHwnhBcV+L&Eybl` zy!b%8AWj$L9a(W?#brG%>%m?u*BNt2L2OyvvN)z~OxucLTYmJ+iI)(ET%cwYObV9mi=;~Me2_(RNBF<-@6 zVpGArnX;_qS;t=?SSPS9Vl9547$iRL_&mD~nbVldzHk4&{T8vWSX@jmPA|SC9v6>^ zH^m=p5#{CY)2(I(P1al(S^rZGl*}D3^_WRmz6wF)a zh!X|AcM`+IR^m`GQgF===opaAW6X{=e+uR*)~B?E zd6YT(>-MkPuNS+B0b*itV)0V3k!TPfwtd+4sJKboF2;#TqEIXp7ZPiVZNxrexVTt6 zD83T?+xxfgD6SDaLoiqS8HG9dr}m%P-x54m+#oI$+{+k)O9XTIC_($k2gZPBi!;RG zVt=uh*i4sKNT+s&eGbNWHD>UtR2gWEd|dP9OvW3DPn{;Q*d5fBe>r@C^$b}5}$}BF<<9= zom+@A#N&eZ5A2_^H_G!kdk!y)LPa6F{%^0iz2XnCQsqjOdx=xTMdE6~9CDkuPFyVh zAvO_93+95^M1x?1iEHphajDoH*fY*NX{azN-1E4i-;}LUo~fBXOgcwJ>YpU!r$S@0#nx;M&2p*NNHdX0JP6^sVn( z|CHFjVgH7{J^S{2N$k{Xr(U0m)n-|3mi@)4Vm~ohywU58UPHu#Js<43fH=J2@P-%a zU#M@aYpk1BY+Ji+?GZIc)Z9?Gq3~7pSJjJ)hpQg0T1&iD`Bvo>f;IW_Vkt3;V2oxJ z)q?xSvVwcak%D>ka&f*`O>nqE)Qhx^C?tq@JSy0uVExNnQr}UZt$SAMSgm7I!Mcfgob@KxA?s4s%gmYV zRWN7Z55HT8zl$}x;F?}lpxah3w~P?9jkP876l*W`AJ})`Sz&g;enne*Tl+hLHRmy6 zbw(VJQi(o#zRXiwO5ub=Z#2m#ripvYiTqWKX%w5c5+!yW_ ztZ8{>V*N`y<`O(hv0no8n|%=C?0?K7W)VDN(azfizIGPtiwyS}SZV9q{XFs}b6=sWij=Fl_64q{nRAtts>YQ_#^Ptux7fEhRGcEXpD=INwbx~HImhl;!E++}QS2k}{MNstzs`i!I`$H03FcYm z*N+72`ufiL&IQE=Vn4xq65biHU(WX?><9lSSevq5nJidea*cl>22>5G8Y&JDBg7Tr zMsc$kB`y%hiJipCqL=ur^0Uf^#mRzo57)>$74KBsCPoPFO|q8TMX(=vytqhU!#)D` z>>aT7rTiR%`Dv)wNbKLmE|t4f?jhC|tg~hplPV@vyezmT*$drWY$(|8WUfCzP#1d? z*ma1(m4hn}6nBen#Bx>3RUIu}5DQi>Sbey7K`?(06W54O1@rip;#~2(_)YY#?OnU9 z*idXIb{4ydoy1mR2Z3%IvA$SZEFk6(tu?JR--|cJ{o-UPhM0{WU zef6oLuNYG`rfN?yhj_d4?dKK(h$1w+S9o7i;YF`&m3HDF9hM3Dw z6DJGgDS~T>bp>le_C==(p3T=6hl_hfgZ3BMNBmsy{`)~Ocg5V<+L`B`??i27ZRH@b zf>=(hERY;qo|onp^N2oz3-cSnvlizZ`{RvjytKfS-r zTAO)_z=g)#&E7WiG|vPaW1ii4ZfE{tzvXgqnP9JiXL;6=+~+v2@b!>5T5$hjzvo?X zlQ>S$57zLXw|(CBytr3fAsCxY#Za-bSX}%~G`2Rj{v^H-6UCR}7g5(%m)S6e=LzQR zcLi&b9mTQY0I`8!ua4uhzSuvM(NNJ)v8A|J z)K%7H>(qNH@2R|9947V?hYPM1u8FI~;exd;`xK9he~W2i)5=XNhYQxdJj=dS@m9rk zf;pV)@$(*^XYb3N)BZQlu-gir)h7t{CD`Y9PMj{d=P(!XzLCB>Bfb@jR4kIc17ogd zZU4AnpZFOuRFO`UsKThiu$o~tcZsh=Rc%#mwU|XP z$9^YBuP$y91M3FXT`ktEU$g!PaYDlh4Zn$ndoJ8_u+a3=aFdu@98`Z${gZW1)~znS zto^d~HgUeVL_8y^>ZirsC!5m#fzmuUEZZwVTlCQTdcOK`_UUs~A_Yj(DlZOWCo%P~Tdx7q_Q`D{X+1;iC|K98C3Y2;i78^Iww>Bu7AqE4EdEPS=TwnRO8TX(ABa~4 z`w%>*UMsEeYCJ9ZmMfQK^7tB+OiA4o+8L^JoQtY_7sGcqwfYu=?-=-&Vv@eQct9|}uP$l@`@63S_RuGbMLHMB z-g(}sZ(_K2@eL2}2YC0*cLBT$$M2_t{R`fm^6r4=VAg27$Ktx)R_rf$|HJznzMtcr z>+OR5+9gCwM@zQ$yRqZOY+sdq-|fUYg1$1xFt2c5=H2Ae;%>p7!*PPOEaSzT^cZv(e$>I|6p!iz!ZR^`M zP%I*r73+$<#r}f%ntK}0f%}RB#L?nf@sj9M?2|n&oKrlfI7aZ?!TXIl+ULmjJy_qf zrr=)0KE?848NvHd=3w@$c%FPyOcjKm1jp|i!Cou>N4L;RL~ZwS5Ke z+gK~J|GA&oM9e05*8NQI+4lO99wZk7o#dhRXi&A zMuGM6x8e`MJ%G7&q@`HVPU(7)A0gP2@3x#|_c^A^uqYl>>YemD2OzT)nRyDL@{e51lX$Cvt+>;%zY z@J@+$SgQ)2+xaHqB*8kaLOff1ws^8&zoxORvF$N2TnrI&i(0|8{DWY9^r?7TJR@!r zT-UpZ6~%1g>z1!u?hzM>5#ls)p%^L9zbUZ!O-vU}qR?7s?IQ+?!D0<@fVf;dCs>oQ z_r8TVL0m6*rv6IQ7we0Q37(w~6YL>yFCi@4zHqjue1+csu_mq3ix1`j)|0$jdsgt? zk$IYTJ6zKr3ce#)L$C+Q`vaZ>CW=-uOT{eNHM?}h(iJNRuGx(R`#*b#-38CM+X?g> zmpKIc_3w!>f^VvLj$nVDZ^1e`JFmS?FW z#0Fwc!F`ka;dSC@v7VSqOm3Up_O#$VGIJ^OtRC;OdHIIc8(NPPL&XB3R!nJ`((;ZN zBSwpViX+9oVmGm?*h%aojuq#My9LMeS20iPJgsXBj@<>~Uh#ooojqsUoNa3h=JJt( zdq4M-d5iNF*AhDm*6`;G_NiGvj~DENuokFqug~^ESflXm%@g8#!F|ooiX%Hlc8nDh z1^df=I{S1kE7ljx<$Qa}ejIy;d?T@*;NHqyy_48O?A-M|Gv5-UCyk!D{0MQT;GGQL z%W*vU9&C!>o3Ns25zT`6neQq1Hh_7bbAa!yI6ux4%)jpm_LBQm_RH4O3sf$U?NjsK zh__hSy0Dug0(hl|9i!|f;}FdgSQfA zi2DWe@R#Ce(In=nnx|@gaiF+FJSDytJ*#_GFCy5_-bWlJ*c;hjY$a9{?SC8p14WyZO7|^J&m~va}~A_7mA5u`I_ZxE*6sobN0=Gd3b2u(7Ln5 zGh&LEwSLz6B?Rv(&k|#WriS{}8dhr1hlxD|`#!LW;N9xPnu#^1 zij~Er!lc3(VlgqMdW`OFYg9j`ceKlkmnvVX+)#W_@j>k;Bg6g*Fw(Z0tg8h-< zf_>Pv+Skh7X|h+nySP_O5_|_RXXl*R`kr}#_lT>BRRwGKwFU3|*=u5r$8+~{;uGQZ zKWlHkYvtQ3zNOki@cx7O1DGdRr!!~lCN>tU3BJqHqe`~Uzg_Ego*RY=o;P0TctLMY zPR!P+>;c>&*sEs$WkPX6_O5QP;$GQ4`K-lRvwa}mQ}TX=y@@Nu$>LD4qxe5DoA|c% z+twGvJ>p_9LYyED7W<1m1!KwkZ{j)HbMXX|cB0UK}Z|7CbldyvV%I{t5SNp6i|$JkRmYl4p>)#ZrR( zdiI%^^B)lZ7SjdmdcIv^|9f+>hhSaLo+0ldc`w2<5Z{-uhs3*R*8Ge$_f?+tbldHi zrE`{Soy0TW3SuL{THqLQp5UHwk6_>YXTf*h98cB;=L*)_V+Ct%u20@o)(W;zxgYR8 ziFb?tCs-3OFFz;PgJiwEo48OsAYKsc-@Yq85v-*fMNL&rwzoUDYH&6$?_ITbwjY0O z)wTL6?VhTqyLhnb!EA5->Z+@&t`z5sQ^c|2P{F!-f5E#+_P0+Kmx_nQTjERcvzXci zYtKJ~mQ7VGI_m}d&CKfy2lUrsRvaZR5ZoL7C5{k$`?9K7OAtR?Tqzz9 zyx+i_w1XC z_w}tV^Bwye*9!KNHRTka5IoCs&Arz4THA4AA@N@8d#xu5*4(V&hKr>HbMJLxZ?TwY zQg}fy_irnDiKiN$YCJ&n5${facltHrXmM~Cr%pe0`rYDNu}tGKjmL=l#6-~~_`{B7 z@ss#mOc1Y$H^s-|H!*k9+)bN`e+upyy_$P9ZzHZ3-wVFeIZ-?S#E6*md?bsiSah&KfP$KW%;p3Coo zZ)*5E8s4FBFW|j0$Kf!+djh^&xJvLh1Ux^C5Ud?pYc3`D2!X%5x?1peOv{M2j<#(7 zhW)6W1m6;}zP(-SE#?=zSHDBBPTpGlpI~pMAb56TJ^j7-Li}5>_UBpYc(IY-`_cDX z-*3HE94J;7{lp(Ff3!>xW5w;_DsiS@?a#Vk3$eafM+^}giCqNG0M`i0eJlQ^Z>aFe z+Ts*(g<${ZX+gb{#Vl>JWcP*j+t$zS-Fvp}neF!+(RM_($HTeFGamP|vjooy&xz?` zh2jdu)5Yt8`@;c(dnMl$@f@&);G4q71mCL<=p2yU&zZyjEjVVI2;P4^F1`^w)3Kj2 zpBN+-5WE8-&794*XNQTC#TkO@ZnWT?8ha<~sq<|f`zCyM!aUA5AVtA^y^&zfWgccN zeV2Gc{3>dyYpQ1xONcE5YwF{~Y2rvhnt63~v8b3;@I6UORZG1atQN;@&RquD-kaG4Z^3UwkG$6rYQ41amr&_huJw>D$0xMDIfH!b;)* zag*SApkGZt?d%WB_H)>8=~LUMb}ezJxK?~5n2Y(&o3;Fq`XTjah}Xod4YM|EE-n*q z3q8*CTuN*pwicU;WraR7Xt+gizj(a<@%mK--$61*Zzon0%ZgKkC}d;m_xie?bT^_i8I70;w*85 zI5BY5w5z6FCTs^LZhB zW&0$&i{yKgwZ)QRfZ)NG`I2V@_Uq3PTZwtZ&#gbVJ|fN%TZ*{_dpA#rv&7zFO)*H+ ziz&@hn!gZlh_T{fakJnae1o`6JT6`n*tLk>ExogEXm@DYq2+XOmv~pO*T?;4S+RlG zO&lk9hPYAi9PyU;T?}X&(6+HSQQRuHpK+gCTx=&!61?~2UNB88sokN21%IbCRV=G- z6IuV?CO#51oi*C!Tcq>vf_v_8!S^sXi01{*cl=!&dp=hR_Rv|+vv%J=94#&re4jF2 zd@9(x;oFpT1n=V5OZi1CShZmGP0SVgUWT>#=b}xppW9!sN3xRGKx`up5X}2$iR;7@ z;vK=eOy!LtDM;*kgy@DFjFcvG-1#5> zagDf0@Ll_YVqC+xhF!(9`f2qyi(|yLT^wA0aQy}1G4ZzeQPeclG|VFA5etjO#M)vD zv7b0wTrZvwZ-^HJ_a43h?J4+veqq6W)33F^)~+o^)QqU%J;y-7y_n~=?F8$N14LUz zTlW5l?-3v9@j&)n!2SA9EAxw+I&R9oJ>mTydklO-!J2Y2!S{H)+go0+zrU8aujRg$ zMZ~D)QO$FTyPEE5T1$M<_(kKHVj=Oy^f#st7lXv4X_KbiBSwfr#6IF6alANJ+$5e9 z%=^!ar^MX?{gvVZfgSge6U1D!Cz#V=y@#?>1y5x)rb zss1gtZr-|iqF~MXso1%7XT6<%rFDh26|(O`zHa-vZE$gLaeHxwxJxjv@UEP1`{omT z=eMa~&3T%*O7P9ncrj7@A!gV2k-Tf%PVhYo@0EF<*k3yg8;TRfeS&wqyhCQb;eVd+ z-3Iq=-U*}sLVwTyl(<|RE{2K41>aop_gK8QyhE^Ow6T~=@NM}^g6D+`1>eZ*CN>t! zihhD){l1`oM~PJh3st@;;@v8H^DB#9Vp8j**2l!TVq3wx8P@m@iF3q$Vq3AXSXZnq z))QNcL&d+uZG!vC%Yx?%#{N6O{f59E6ZdNF3HV=JtSY!S>?jTud_yo&JS5%`>@o2! zi022M75F}Z^Oo-|{~_qx4`NXJpzIqZ_Ck5zUFaxutSI&rmkXZ%c=yZqZM^F}Roo?b zKfpb?P4Ir6W3-&$yEE?Rw~KEC&kDSs9V2QgYqEWuJ1XzcUkCnBxmeX=Rojb`1bZ<& zw?8U)kN1gS{XSRqT-myw`SeopsQ5sz2mXWjSg@969^6B)f6jBla$>01TU;Y1iUD1J z3wcc8n8In|II+7}ODrfFM00g>b(7#jqq;&}p`TblEGJeGiwNxS$KDHncgft&oc?>& z?^Pd*PX+r!JcDo#W8a5&mCV`9LzMA50p@n%{}9Mi1ot-PbpDQ$XMk4({k~EhB)E6s zmwln>RnxQmD4uhE6wRVvb-(Im1@94d65O*+5|;~}KiDf`?0OY?71kA}ig(3oHLKO! zC}z?3KSzjhqQ0&^Tf4K~zCk=DUK3vn{n=}_=0BnSg!*U2Yz?zDY%i`A6NHwj4ZV8y z>RBhgYxu6=5pkGUTIe-Z{U_pmft)OQH}q~;K``gD|8%g}S*$7giK+Ed>)#T5`~Rrm z-NmcoWAU?KA=WIu6nBXo#qV{$*BvL=+&@V)*EH80C8idp7LFJ7VpR30Y@P9D)tlLK z;grfL*|%Q5Rs5Fy9|67{;9IdP^?zCTeuVwg@7lj>KS40(y`*mej}&tYzT@6a@E&+? z!JaVtFRTIki<_HnZdynD*!W}PXtATM?re@nIzhl;bs zC~>Q}ORwzlwqS#%N2yUeZ|6D)?TL`}}Ky`#ayqohM!v{EfvX;zIGR z;8<-fE*7r}zQbhCZy&*P-N&MTMgQzOoii)W%--4lTJdZ4cYpiqJN28z=c0F2@2YhL zd+_H9_U+koXKtOddd_Tq=U#A$;C(3Te)fIm5rf2{V)-r>)4M|Ee6Dd0L}M4Mk(tBi z70Zfs#D-#hv7TU_XZ<|8C{`D%rwb%yxE}!Z&ELh`g}Dp(WN(H&oe_d{`;vk=y0NM; zyPt7idrmwd#)+}wA#s~HRqQB+2=>DUia7<}5b-_H>ViG8&BQRleUon-_Z3HU!TXC- z#PMRd;9bT+;&6ct?=g7aai^gEcf`BmL&3AxPl9JJ?w{PVxOZ?*;yLF@@sr?QxV1Q4 zJSO;VXX%=yYfcp7M4`5zr-`ApBg6#3{|aD#pZ%K^>Q|^gTHGnV5DPXen9c7a8%8#K zEVx%}Bu*0#iLb=(;urCXI9;qNes1`=;by^e!E%DXpXI)>l{jCF6(5OD1^1j0Vgu1j z@ZIVJF;TP%o;TJP`v{(KHWR!9xvl=T`W3}}b@yd^SWnhInf+`^o~nt2bwH`x1#Rt5Hf zd0)sohCKxP1Y3y5n;zE;Jh17!#`790#QD?DpT4kociOwtE)vY|^N3IX`1Fr!#SY?c z;_ctx{{3oksMua?DmE88h<(Jd;#_fsz|Qiz->>`qPVu;SNqiwX#JqpZ`^S3X5OJOO zP|P-Mw(K4=a@xpgKZ}i~Z#4Y@F;C+>*>lg7#wm?EHtpE-vKZ1lB-;a7x@GC?Z`zoP z&KA?f4sAPR@2A<5*;b4aABj2it>R|lT=Amd@3t1zliAkdSi#@vKOsI5t%5xv_Mf&F z>|IiXwEaI*cO55n^~ZaBc6N7aXJ!+Y?)rhGNJ%3pp@cLjB}fT^ z2$BLyC@3LFN-3a-bV;X#2nb4dBWz9V?(FV;z0bw_xcmGAlbD@3-*Y~75Mzt6{SUQK z6R)Bm{E>cBPpMq%DD;797Y9Lm>jl`3KX3^r@FTQ_zJm(TUi@jqQ}YZt5^;oVz)uki zpy%97DDI;(f?`7Dp}8;G^Y6wy{Fl?{LPV_-^m_C`KPX3`zgFzyO*BR$=*KqD|D$J5 zJG6xUo$?$_p=XYA9m<#J=h3r7&lNpiCPBFm<tpX@{|mJpwH?brJD;PQvzyt&KXg7c&xvlXZmw@}5iwCQQB5%v zUtlr5$3jfQ2dD$(C-z__`aufVjGmJR?d4Px$ed|WjkeSf?pzkG3Uk3#2uH1FAon|gLLC{v;NLZGxbiZ zUQ+v0)ypWpT?fj`mBiQd9B3WUbK(v)oT~Ts;xM%;A3ocmNT{VYv~bvjIzYMbq?E$h^z>v_`G5IH5BVnKf^`b z#WSeqRlQaPP#e9Wy{umQJBXsEuQF6Gpq^00Jyb`w42plK=4l1K!&fis+XpcRrZ+mE zHWWv9<1RhTJ23-_dFjk^kDg)m&3=wfcnx~i>HB>VzhXLiqXs;9L?6j9tb}?A-bEvn zf(=@$_d>lRgV6#d5susRk{^I#O>>~wlM$EZc?s1U=&L6E)p}kW zfQ4Q^Juk*UeSpgM>v^tc`7Th3l%wajp4$hJ2IZjjycmR8P|o=o)YI4p3vde7aI1M% zXixkdjv*C_yDL_t{DPhn2cYvpt;kwtJ=e41B<>*@gvcU&cmny+_qvU ziQ>qIXxO2Dub)THf`ibrMnCSyVJKdG1(%`c&sHqLXz016c#Y027AW_71;0Zzkt?tm z3!!I+;$?bnXb-PAnD+DkJwFs9Qm$GxOR8gffd6vsaS?G5g`x9HSyVt7=)c!FLFb2+ z_#U6*3(Up(mpS`O;g^U?`NEaMDGB9oRQIa5m40joB9E1W&ouK^iS>$%+b`HP+g-YuwV=3?{&^QvLC6tuoW}~Nu1fVwMWNXe>XlGl zh4Kf7&O@qMYK=5onyJas`Kcf7N8C5Bi_V5|c*pvVbsassk}dVyTTy{e%lx?>2&V>VV{JM;`w^Fhr(O%sFK8`v9g1RcR1*pBG*==1^5KDJy& zxr`;ypMMs@L*b^bSF!wZ^t>tWsU8Q#b#6jyjp||4XIlZ~Ud}8l%AB$|WK#(H9D1!E z;Q^i^4f?WW+sypQnCuvnTPQ;BL3!wT(j1+j=Sna1M0>me{W^+$ont}OQ0uX{#RD-0tRhj=)9-8gY{6&K{b8>Voe8d7xpl_=_?sZUD6Wl$7Ni@6{s#m&xsrqrKg}d`eFi>V-Iel5OZp};cKYR zDh*oOUWe8(t-DvDSW{p8|IZ6O6SUveGvYC{_Fsc$6zCbCbze0*Ut%(*U@Ei@&V+u{ zznhKEF&;W&jDi0BThm8j(un&>s;$L-}jfpz3U) zegi!t-htNY22ehw5!B1j68iUgPU`=e0X=UN^HT4vauv!!Kfwd2c1h1C#pwP;5_Hgw ziaxD7$6lncZ{7ktC<#YBx=QZW@_1`Ndr(E_L==tbmSXvdd!ze6<`h;(xu)VPT zLukEKU)p-aIpdr|p?pDMS7Fx>Y(Xksi+U}pA3n!=oJIiU+~wSzFb{u1gMZ4PFz&hU zxu@Vo)QhMxXy9t#>hA3Boa>nDcxHcQpNmn@??Y?;?@-TkN$8w#*?!sn1qwjF@7~CZ z`;qs}8S#4L|E2fHV$_6c8dO7|I=O|+a@rWSF>IG*m*q0E_7$MvQJ!6ad5!~^h44$} zFPSdrGk+)jj_EI}nO@V>Ej09voVh4R)N zP!4y~?wXu)Vp?L_meeh&?GTSUDR)wizw~FypDE9gH#Ki+UG&8wJcDu(C(zp0+IJnp z{lgWG_kR@lC~yt+g7r)c<5BQYut<6lQ%~7Gy?uITsP;;=G7GUC*APWbYjt#i)+WU+ zl$X`{K=BIYZB^6N6WUk1vRqk1aTU#&r?>~o8>@%)FK9g}ib7Bg>vd{cf5LE7f_lck zhVlgZIp&}(w12-Gx*Ylusv}k%W*{?QX4kA{p2QT4hW750Fc}ju{w395^@C9>g4wUCtgIS?Kp+Fmag+D>M z(EL2gDGbLXOv56mUg<2J!JF<){~uao0u+-{J#6WW(k5oKFk_*47O9r3c4lq!y6?{1 zZJq;)du@j5vD9CF5DCmKQI7e0C@!jvec_zK=FC--K9gFg3&o4{*E$2J??CalQqYgD zq8a*Q0nQ_i8R~7In4Ufx|002TWwoI^^jFx8yKr0GOh~I{=AX4Q(;C`Y>!1)QJ+}VE zJaX;9CZh-Hq7-r?9tBYoUGOn9tMFI+0p$)8t%+t96 z@W2KAru5f}$+d@mUDf}5kArxMBK9Kop7;S;iw8k@>`$DZI1^k6t|L$^X{39kyR)aW zr%N^GRE3gBfq9EqP&WT+Svmz#6biQak zH}o6VuldaO%r-1?SmaD%dnG}Mt$D60@3ai0b|X94I+@o_aiqT^|2D6Cjfff%sz2^( z?P~hnCNQr^@6B;9>#heg%P9{UG7rH+&yMPEbms0xj&@&gUr_yMTH6cz3i}$RHA?H3 z+AmdWc7N1_e%uS?4;0t2r`b(?($2Jc_pI1aTO3F^kkSRkkqd>PpKmOV z;t7(WXT&Y2k-h;GGwPbwHLZfLf{6iD3RDWb9eg{eGs`q);caKeq~gkn%ziIP?@<`n;?y%*{#r;JsH|Zj)Q(wOlB37`&F!= zB{OX2;}%qB)B@wN2+>Ba2E-Igg^_7!y0VF_xJ>QozxHVUv1eD-w{(g zpxD|}RKZ1nm#rW}d6gj-}{% znSyIj4xktG{Q4Mep#A^yjO7_E5f9ZV)qu{Q>S36VVxeMY7KzSa-$M1)9hein8I~N2 zS>s32N2VInp1;bU{Q(=UKI5AE7T^hk{(Y@GF@RXZ;#G+6OEz1XFcZv;Q`Yt zu`PUC_##Y1dz69ZV{C_VJhP$L-9}u8>iMgnCA0@t+(|WKH=rDk>VB0^`7eH?{)b8U z1-DUw8FHWEG}MzY6^b7fbryAggSO<4dq(w)n&qD5KIA#%`NR8%cSH1s=r%EJVtz)U z*g~;8(KN1U+!L&hUmf2$p>x7h^vKmC7o!PteVzO3+z&7`acJT_96%JN<(ihOUVOdy z(J`ZA+IiY}RNth;LPc9eTi(dLk&4&pETx(Po$>T+E@vxeYY06Hbv97l+5~EVt209| ziP@~$*Sy0$2iiQ9U{;RSs?Bgxn6;Ogo&{jdvF3cj+?u=8ZYsa096{AU)xbF4IA2U! zOq%xT>yp|G}Od%-*aA(^}fC+3H5a-Xj&7K zq1Q?AuzP49Xdl>(`}h|(p#A=2sK!{&fluMVa_W2QLKYM)Lad`sSm&zr6nx z`UUz0lF&cc-{gqh>28x7*1rBEiZbUyF{7L4NKf)DD28+GWzV?s+@sMPSD8EU27aKw zTK$B27W97UduC@SDgOx-Qc=`OEk+^g<-Wiblp&Ab5q&TeT5t8eo&x2Ibv95vn0igr z@An~;KhgRf4aMZPV;B;lvt1iJXa3(J41?lQQ?UbTCe~SGHwrULb`mZ?@w=)}9h!18 zPpA?88SkSi@*@{?w(bt)<@O^9`ZMU6pg5nNMT>9(dIr1;&8t$a!83dj_Jx^|yP6ry zs_#+m^e$AZseS{+!p}f45$&trgZAdnP=gsg)9@GKnVqS4_(xcUOUUEMV|uF;>rh>0 zGfc%HD4*$cIbDg+Y&P|G-FMzMJ-=@{-*g^!9Cj4LK>I-ZPqv?Iw2zoLmf|()T~qu= zpDWc0t-@F+m)sc5p}*EMO!Y|mYt<*U#VBk+JQIl&>sR4J+sL-&Ori4xY2wIlscF@p zUpWKi?p3FxpG(h!x`@FY>mBQP=-JSno;!Pl-NcCoM-Gk*vxS+n#TeTdv)@Q(f% z_f|=teU@XEL-BjP2BTb~OfKL-)PtzY?#u2dZ5Qglx?*NkVRG@zO&+K@+T3lUul?M9ItRZZ2}PKn zueCk_%0U)FNb8>3J@s(P;gqkj7?+@2 zE+L@QwP|b96yKQwt<7qx|I7E6?*g{t8z^6^c+f#mw&Q!%|Em9cXs`MK{)^8y3pNXW zgt_<=CDKcn9Bv_ICMaJ06|?aaBk9R3cC7)um{YGjN8_-@CKmg``oj8S_>bY$>4;Iy zvSNU$?Q`HKY9rJ?Q;}ZH*SHTMKYgf)+?A%@vkvSlzhf4>kNNzAz+2hO^w7Sw9^QoV z==$~dLV07oF$<$TmLd%unDxB+WzVeg0N0@ywO->s%(Pc*LmyP_dl%8$dzHFN)n`r% zOf&m?^}YDHowi^7f+#Bn)dYiJ}kyT+<<}&#n2T8pxFLlv}Wds&Mj}z z|MvqPLivd6_#Wl4oE~ZQJSbmK0GHD*GZp1%`eP{9q};)F=#5dG{s`rL7vLz8P>J4y zAy93X;$+(FDrOdsWaiTS4*gpCzSV_t2xpk3w*+005C3HRlkqJS>&uJh%wke~?R7*m zS4;Cbu0YS6L}GrbOX|!F>&s}#EO0$b^qkjOPdR>lc8WoDWBPkP$)?-TY(kv@eubVv z+BbX)J%_%5)_Faje!~;!OrrRq`WxS82H{P-$9$^{Ot((A=Aw>sHA*qpVI@=((+i5- z@5LEh#a(FMtz7Xd=!$tbk7#?ey(xxbKK9`z^oG!E{1SK-O`$tU)K}XMO`sV)xp0fQ zY>QAImu#181ECLz;x|?B7cuzHp*?#ZsE^?QmP0Wst@rxe)qvLfS=b5vcO{r}p*a=@ zp*(;O8F&ok0~EhjpPX_HeJ~DtpjeWg2P>fb$h+iy@8LaW#_3F>SWR`PpIGxDdSNME zb-rqzYxkH@q&m?gcar;@=bY!X_q2CO^pfbBF*Rd$pg?Sa*qJzrGkA_TzJ{TCeD(Om zgv10!U?n`w^)%Pk+*@-GOdOa<8aYn|Oii4cSTA?I+*1>#CNz#~9Cs}GSadH>FOPD? z8U($=zQfF=er$VeOF<@%p$n9cQG6#qbD}<>mhBnyDyK86cL;Y-ya>GrJ%G-{_i>m$ zn<3o)rvD}{cO+k;4_|xGH>t61L2ptgdRM<;KA9b3Gsb49CPVdnzfy~zh(&=#fmjUn z4>jw-E#ED(KC6zu72bw&t?@|nrTI=kd%_R#IRaShU+nJ|=oZjArd;u|^kwOt$oD;m z=F*&nVo9n;83lc|@-bgPdqMTxc4JQHb*NtdDq1tQ?GRoMd)>rDM_NZ(ONW;Zzle_X zUTPgbfn`vxNwv`0x0l0k?xay1X9x(vS=5);07vLKR(^E_v*@+PSBLg^JE*)@ocyo! zzs&qRt(&upM+&!|=DtI}hjn7H=a-I3x?@o$9k z)1ToB=&u)GDHdTNzQh#h_52MhJQS|pc9m% zS%ZI|*uQFL>!Canp?{VdObzCsGIOc)+}C=n{BAas2iNoMZA`>hP%UbAsFyD-Gc9u; z6sH-5Zs>{r=nd87)<7ckhWZ^Fu@FZ zGg;?B&$0Ko2j&=*dmn){&>H^?e2mR(BRvZWLW_Z(2g)(Lfe)a%uluM>kDGD}_fadX zmbn{6YkXJYu{)p`#UQ8;tR6Lx8+0!oHK$tZH{mIwsRdH6m15N2U>mfrzlICAj~r;9 zU+LwH{4UJJ?*y&ed2rHp($w6)ZhPIP#uPm_jzGP>Lr@X7nU%Q)J)t@tEAEBgGcz%? zrfcoiels7Q(T{xyn{f*NAcQ92O~Pj)2|As7qy zHGB&Fxs~(wGMm3VKF1>jpg+%HRB==>vG^^{El&0I>S5f))5SC2JKuXU`egL6m}4=M zV<*Q(#YM$!#kBZo@p%&RB&@?*x!%fk0-bYr&Yg~li4zlV;~Gw44bJC2pL=Sqsks<| znh+lsAGb4lXY^3dP|v$j??$zCwsr2b@3iZ+S1v)%!ujY8#k{IOb+To-%O>5DPStWA zOKb;eheVG2x)aDeTp8H(z zTyO|QkD6meDkUNfro#=y6Z_7ICI;%b>@8c=69tYtsa;?g{_M|pu zO4gLD)y%HeIX#8B2Jhl2^@bbp9TvRwS^8(D-bZ;zy>4kVH($g)?8i+MNH1X4Q}sRR z|6hw)7>$~^MNRy7XpWRXN?+l?=ozp2 z&6-d=y)k;>V@!tf+}-gyV)2A|b623fFkz^4{XaAC->-LrJ`>elPJ?o>d!anFp5uC+ zCub&S?!;_pt!|65P@U~AXm9VtzVvcEK%LlJ5Y>CXM$e%9YwQ>ni!4FX(ypx zgQC=KX-3HmoP^eK<%f487c=Pw;8$qoXg+4~zX9cp#$pAOLwbzDOd3^;{#%?x23`q& zCA=r}c?gRLGx^xP5qr&9er)7ev;L}&ppdPQ*}E%$sr9)gs-q~huYW?_=su`UM{9LG zD88?~x8fm+nY*Ex7^+n*1g+11Lviq@U`tH*^#4rHk@A7>LeCxbczq77*)krzQ4{~o zGOEYDR_YP^6{m3(r=UNVdI?nLv>RULC{0ClWHg;l)2U?gMJksY!~**QyXqWcov~(S z9M{i8#ku3$xjpda_A1}$jB&=K;CAfo*n@Eg<35l7JibvvqXe$(GVAqcxj)O@HnDAD zVxGi2`%oZnfxJb*xa_>&=lMR*ro>H&Lvjzvt%FOu_;&FfV>`wUh#n9<%QMUKd(`hy z>I+s*<40y!==qr+dOgoE1Fr}ai<)SiXg$guX1URcnI#9QqtyFBvjRq97fR6+v=F~T z?~4$QKrxo7%o(1^jG%?wX{5cx5N1be-!Yi`4;9}~?o2UNCp2GSS=zERE4Go>oQWAY z3+3Z}fZb>J^@Q?pdHi|&qrgZq|AxSZ!200&;4bC>oM+ygYX9mnpR*o!U#Rv$aiC?0 z35zlJRLo)LaTEVzuI*$bLGMlFkd%YbzPb^;j6Xo<$@;eXwz<$bMX|&0pmSpbM*}m1 zX_{l2V?3JUU;DrIHds#W?Z4{pgU)T*J2b;4>n5umZ!%+jD6`xYoA009Kf4Q4q~8y{ zA6iOh)4$9x`v8jN>m1PnR-9!1jsBb~umNYmM<%@z-hlo){k8V9$1oFZ;KjwjMP8*1 zf$>lewdUfjfS!@(edm22L9y-wX$MSyvwEMKK{c$(e-`o;@-09KW^pM0nKzI(@HNs< zm)O1@gPWq2EZ*~uI zrROrwwEf)msXh3sXoQw%g7PQ>)#6r0D-48sHUdy>kX}!nB@?)xz?^Hj%lS{_BF3(L z`aa|(H!~F>D2{#tB`qb*{SMo>J%zBZnH#Qpo|6ctxL_8c z9;ZHg`Juej4;TS`E)@^gI<4P_a+m6(`V3lY_1_)FAJAG%*|Le5m!amqH9m&+@p?X} zhdB?kpKC$CSLJ54=FP-nC~p|Yd>=h;R8x2e73~#G&T~1vRUbP)b`Ez9cP)=v9(BNd zz!ZMq-2&keDMLqB6FR^kBez(LdEt7wQuXpPsQ|4*^)UHA-&!|2(rHG3qYFppO` z7nT#}S8RT5aBZ+5?lLD_XF;7at}zc*F{hHa;=5wzIE`SAtlpoZ8Gsw`FJ5Q1(|jo3 zthulYZ~+R0A_V{(7XSdE7^RWTyGtjwAH9(5n{1;=XLO=5) zT*hnku<6-IS+|L?D7Nw*vB10N!yJge(KM{7xi9Nq=Ig80Qv0(5(Ee6?TIKw-H&rZ< z^gwuh>LJy?r2WSv41m_fzp0zlKDP{RF_V8iKEWVp&FFwW(AqH^A7Kc3pe}MFJ1pDW z>2f;kw0VZ;$1^w!)qbjm)5{&NI`?d*-Be(f!c8o(FR{;X%y4MlzT(>+x5r(>Q^V82+rir^ zx>fXRF|WnsiOmyx6RI`TfXUABo#S^PCLt!FAO1qiTrG1g#(tc_YUD-9gpvu2+KAs6 zyD|20^y6qiM@$^lWmi^A4YX5qFT~XcpmZG^n(qgC-|!M zD!b7CS@rsD!>_oD2F&|gf<5>V)1Z3WHQXr~4(0n6GTT?Vl{MVMx`X?x6yyF>{VM4n zrB@DC4pJ%*nwQjX$g=LxhRg`o3mN=8*<55sg zsq%PQYZg%p;l+3&5HFZ1rr4_D9~v~-1X?S2%==gRR{E;pLE3|~bchKIu7;2yi zI%6DuhGKlm6Mqiv^+#olGP8VizSsxFmEOe1Scvu5j{VSnTXnU$nRnM1s_D_|s+yX@ z*@ewKre)d7OnqY=deXnfL)2q_l6r5CLu*_)w1U>YY4`<~;G%I}{ZwB=>vQ?=@+Lm< zE%RrTFFXhBb#FpvR;~A6LhtLhP#@a2>zVMJd0c0pb>wGg4IKf+XB4M=3vHlvJs#J? zuA933S@Z&HkN7o?qX73)>v>a%c*+qpp}t-<^vxrin|*U5TO+C;seiOjH|OFK&Js?| z2XIC?qx`ta{o*@3J3Q;X>%HTm$3+*6DHyW`-dJz!V4O$kxYBVQp<3`aQ5UKW-xa$n zR$s+qipMykozbcs1}*PtVJ*y_9!6&_{!nj2BCqn?1SkzGwpN`>Ruk=dMLcAB|G`g802@rCsZtDa2@ zn7ykS*b>|mp}ov6^bYl7K9uq;2LcBI!~DbiZGCNhBhp5s?M>Zl<^tTIj(a60VFW(F zP|QUV7N#ytosu>sO|xJM1PTN;Qg^5`>3#0H9!S5R^5%L!-L~AetPNWmrsr}tR12#5 zP{oZGL1!KZH6My4>x@CANYz%IuwhYhXlt?aXH zvu%6H;Va*wvs(c);V$_8+@U;@oXX%jbGz>BTgHC%E^}8D^EgOtMti7` zcn3y9duZhww?KCSXisN@)(*{R8-i9)kF8=JUMN79la`almzk45=8+06A zzt_y2+u+~eSAEbRoPo|rL$L!|!xXPo4xwj8&kW`0Hlkaoo2lDS%vJT!s)x7<<;==K zIod85k6-ZwwYeiq?=e5#;cgE-Ymeayv{sygdf7(d6O4{d>T}+W75EN{3F&My z0liQcdOh!@-Amh##h3xjTG|3XH0Nj&iujB8=R);Q>Y>ZajKBF%GtM9=Uap#Wd`_>FS;Xa?<;}dV{;vM6hxjn+!>A|F=kz|5!wdI@d*^|- zwYO4qB`W&rN0-Du-haF;Fx4~F)8F0St=^l(&c#mEN-Afi`iu(^7tDOjj?^QJ!EvZ= z`gbrZj+=&R^c4T76{K-Q(NOINH>@eqzX*%hdft81xi zQQulcYelPq?RuZ6PK9GhX1x258QzzE66+loQ;=yn<@bb3Tn8 zoKI02ZWKpv+`~%lwET{zlj?o$Fi(l_v8h>7{y_6}ZbI{WD!D7US0UCD>-hwi@T&J! z?@-LZWHiSM&kMfuLp}T4``mgzXeQio=W*v8#~g=Z*QyKM9I-hv#=tI!b5(F&b00DaK`uS5In;~B?I z%+rzK$k4v96b=OsFh8z~d+oQNVouyE4~Y zXX|{>{BiBSK7r{iAeZnH`lBS2XPAp-Q2tx>^u3S^`{eG2S)aw@q#k(tDKJ_}!=rh$BK{;$%X8dEJjn@|67T+YaM|tS5t66ip zPeC=SlF8G3n3z!1};?j(Zc&bJydwoNK0zQau)LbBBcTBYMu|P&>9A zdM`9XENoDYT6t!cL?+0V$ZUth7{N>v#nD>P-_;|hhpDS<%LLJ4)?)l>53I^n=4B4U zyBGoe`QJe;=u6L(d)%8Fhf?(IzC*8!>Zo@zi|HD($g@IObfy&x>Ads<`H6JCl-FKE zy;U@31!kF^c-7UZHlQhfhH@p(af-X%bcRjMOwBBnRm#*ckIosLGo6{UI&;ir7Np|) z`n~D8)J}J-cQj1&z4V zSNAqPhUS|oHn9O4F%!D`{ix%psWbh|{+V69Rr{G?@f$N6^lPl)F5~Zs@U6A1wJ7JV zv$SH%s;Acbz=8hMmMO>87V6(u?C~u$gZ7-O@Epn~t$_BPT9>b*OQ=ieAH2o=9*0qe z{tNAu)>Y((t9>s%ca%x+QnhYd(ka z{&D1HN}w3DE~rjMbpV<_n-Y;?p0C9sibbrWH(ck4>C_G@R$3P`EHg~ajB3=z&?lpM zhtE+RA-?pwoX2e_aaM?4n`+ScUY{drfU>YbdkxisD6c&Rs;g*%5>Qfl4^*?4fK?f* zsM;uHV$_~=kEx4PK31{#?ab*>AHZ+E-%PKU;`@)&9;e;H3+OzeJxN#0hUWihKB#I{ zHSeu@pt{L5wxE7SF}g+6M0TR?RBP}vC|)s(=XFo&gvwGcbRScw!E@5+qWy->5f!Wz ztfQdk)+uQJ8id~edL0#i(6g;MR1Yy8s%bt1^$)&ydCycK?(D0KE|`Z)P_Atw{>SXc zUC{cN4$X$u3@E$H?)n*xq8dg0jUMhE?(?YRspJ`sb+`&IUro>t@1Y?QaNBd+vlR8P z(Y?`qH|lPbhIbJ9ab9p-aLlyNv`5f@(~Evf#Zo3SkD#BWpJi6gteoFCN9%pi4tkGA z;Y03p+rr(Y`fOFl?%-~7t{YEX>3$TTK599Xr`-oVk8{(|vI**O(tGM6DlijiHneBT zpOfFrW+=t%1;x+YIFx5AHhgxtK&F9pFo=!i_Cns0>d%^dD2LlHK zr7?w?SmiFNLvsM@BMRzEDGQyibe`44!?*pn{W_B#4jv93q-N+W^Nm!iT7>zcy30ZF zip7@2mJ{5~ev>(%*XbzT&W!x`=$Q()g`2+r{Pz6zDfkN^L_4A#n!|ONdcz^m*ChHw zQzKI&KY-2x+V9^EzioO_D}`4w^~gJ|J58+rGvfa<@I4NL@TaMd(`UUX_dM=Em&h(A z2CDIrN+H9aQ7|EB=I@ zwGA*4nvW76il_7AEi=pYC^OqtM5gybKYWXAP`%(5Xia?`ce!V8G+fXgPqn^T8Cj+# zcVx!Mj92i8nd58F4^^S{HON;66kn>3skn|7)VuwT_RP9^fw`f%WQ(hR>HNF;C7nAaqZd@qXn|^7CqQQ)#UMr^ z4qGf+%xzd6A)JI=|VmWdHFQEFR>QH~%8tB=k7=vP$I#X}s zZanqGEM}h5Z`==k%W=zLaamlt) z?H;=wYKBnX-h-(J|v5 zbk2E*2Gr+Ir=?D;yP3>pq%qJ_!95n3B9M9B{VZMGo&1=_9^->Dz7k@`=M8H ze}w87uKBL{9;H1>yODY$^>oVVl*7q~lP@J*N-BXV^2wai1i|hOBAX)3Q}__8vV2FwSAz^>@yG&g^AX>mG~@ntB!0%P7Ws zi`z>Si_U}d^mu*?<>9(Rx!hGy9r_Sv4$~SCu9$EG=Jo4Lv){JgHkmo|EgUTzTvOs) z3C;9f4^NaQsx^k-J(R;$=E09ZvNPG_*;I=%&pyxo5p!s&M^=wi3`{X`)rJ1deRYaw z1w+Bm2_`t{v$B;t92ApD4kQPvK=s)=M=B<(Gv!+7`=S`*ZgdKCGV_&w<36~t>0{HC zSJz%vd(e-#SExi*iLA32%>8TkP=mWJl!ww8WeMhCFceq4lzqw6Dm-I$?YlS%Ok%DP}RbY@gviTW`0|LD255$Z?RvnwVmhEG~Kv-YYsXC{{7do02@G{V23e@zXv za*$J?y{_W4>I>3m{A;|4ym-P~6n!sO;ali4qxS=Ek)X~lzd*moz39OmFv`7ZFRo|i z4C;|v=d{l8SUhB#PgsV84KZ_THdr@UU*~RzW2nuY_N&3iFXA6BWg!f2UiDIrX$m#KEB^=zuR;MUK_F2oXtB~ zJ6QvkfMrt7q#Qpp^!rlRXd@n=_*OiYa=-mptcUgv%CpX(rd@Hl)zDt|6DV(7lR2pS zq4=|tLEabfE%y_a3@aHnAAe&P8edy`*Qmhq%KG;n^HDKfhDe;e^CP~pRau01g~K*4x!|Wk}o!(MN*3-N3ugD z^~uqx(W$k$k4N#VtNyG0j=_#Wy{}YXulH*jvqUv3W+-*E8^Sh(UAA7fCWR-3KV_cR zStgmRvaPbUw70Zx!$aJ`dUS!0A*-XIjkoHv)pMiwk9vJ{eyj@haOic`^Li$#K_{fS{TEj@r@e@#p{8cNh^9{LeXPYX=sh$K&GCT#%)z)xY`77$9_h@qm$^vV&z1n; zP!qR&$UWPXrv#l`LZvu@Y5}y*(hEEqiVJJqpAni78qZX6J?}TYv>+C-Dy%AmzfqnCzH4n0)+Ven{cAeQ#c~Iq_NQ+!yW<;bZnV(%Ae#YPMFvm&p zI<1e2%SD7DOq@V}7VUj2ac|yq+=b#UW3T}SpdZJg92Bon3_{PY(wM*;DgFGlpc?Va zU}mrbRCinfnuYZ~RKKHIdG)dmfO>S=FvC!L-8sQI!AA7KMr3f$5{_^m)1J_t&{6IR zxk+A9n|8pbt@>xJq#9eXzUN!5y@EHfo*JdU+=6OxD-TQ`66V3VN<7FRA?GI4IYr59wy8 z?_TGo%J_mAz={EDKc#-5Jk0z#=0E0F9#(hA98Nu)YQsk-8s>3^HqanqS=uXAMnQ2x*q`pRN*VshqN=36*^TgNiH zeW$b0N<+XpsZPQ68<1E81*ma$+Lu=PH$2F#h%%Vf0f#ZSw!T-BIt^;!l z70=W2vo4f3Sx-HnaxKbl>#Xwy+CXR3*U$w&BA&UCb5O!s!pt;L?BFBr1XTR5B=h3c zTl16sCwoIjLz6#Da3+|&>I~-$IwQB3`?*g!PdR_VSZMzELB~Ndnt2?G7wdaZIwJA_ z{hgm$Kebi}s}Oc0=SI##<{Nd)>X=nLR6L|Ts6XAWR;Bb3!4g5$h|clP@u&JyeS@I* z-LRs}@FwDW<*|ahYuS=z4rkuC;@=;F<6Zh< z>VfOQAMl$wF3Q6#!H+l%d(duP^T*WiO=1Rbm5eH;p5bKXNfV=0-^N~I@Y{2?=Pc*` zJ=I>Rj=v}U52`gN$h`$mvE8=a_7Ss-iaUz))Y|80;A~*t&ymH^UelLMcxv&vKOYmi2CiY5}&PVNAoAqo@#DA@+R?LtoUvvzTWw z6A_QK(QBh?;qt1OghuvkSLKof@a4oNXkuuIcl+6JJ4j%|TF|g6d+wgFcf9wgg*WY(x%Jqq`QG$*uRB?ii{Mtr$Rrn-@OI>xAD+9N_9!vb4|fG zC=3Sp25wm%`=$KoYd}??v^59MNH4E;zX+7jHl1! zCzOvYZ)Un!Y!*6wTG^)Jd#r(8-!905ee}X=F4$%6@_h@M8K#(za+w3DD^;BT3iJC^ z2Q@HzVD{;((^<8k*k~tYWoDV);J3J+EDG0{RjL@>Z0NO6FT)UMZC!!`xCNGTGuxs+ z`N%m?ecLW*pZ*)R;b-V`tk|paBsxFTL0%|lt-gq*7>RCZjQY@z4WPf)>#n$f&LFCR z>JIcw((Cz#?G4*m^x4kNSu253{D~nK~mlBRGe9n10Fl#q=Xo;okJ|^dX(iIh&(BVm)g; ztJa*x%uS7>H(cwU_8rGjiJ2hNaT!IqXXYJzgwLUvruMU6K<5>$Z#qZnp>q<;@dcFs zQVc;emK56?gSprQ{k#c|1R{OC96O;p*?~BVlCF}j4=@k9gHyG$3!q*!-Jw|%>UH=U z`7qxx-;rcbGW(|JFdskr>@-gmtkLqO|VQbHL~vz|JE5n@jUI}A~Pa0 zUP*r?eE_SU`tFo#zU;s3pNZbk?6Zcbg9hjfe0!aF^gZ8= zMDCtcANO)7E^rQ~um-)67blpxueGrbv_Co@Ja1xuBiVndC;5NShW&Biao`+|L3iq? zZ%cKc@8c}=YhJ-vW;&GPPJ##cg^9@8o3_nvYx)r$^>sA&A87q_;yV3>n=uaBBju#$q#wf)j6o;70rg`Sh4%P0&<2B`J(XfR zH;_9cxA}hRnWb3EhtPSqaj0?VAXEdPGiX)jd@e^U_Z81Zyd~c99aJB*1B!pWz_jpb z;R)R7J|BvsY(-~VXPd+BU{cIZdp}1%M_y-M=Q-%J&?>4`R1y}s7rEU-{Dfp>wo zadhM86fBEb7E?90s>w~|i^~_+ADeL>&#)V9u|IZyY#cs|`7FkTA<;vkk9&`k?JDgZ z;ThrCjdFU)1ZNTH`Kw12v(1|3Pwsis7g>;P24ip;w@OcAedHUUA}W zW-}>XyEp)1cIs_W&%isW@1(X(X`3=Cc~tUmNxvo4Maqkm7YDHtlQ958unNjojYt}i zls`Ft@>#4(S(Tz0!#eC&@>lY!|9?AoKi%P8lR}w=%xv1N+@%-F4rSN0)U>GXUT5Fo z;lsn5a&Lm->EA|vYwnEE8uTr;LTjn^m)CI@C!oB&_M6(TR7O5TKzq--cm~z*CHA@3KM}9iGu=bj!PI}O^{(}vf@VzbhyH#V z)ZeH7W{zi$=Y{))yDS<6X)&*~TTaN@gX{Tc0O0PiAF$@P{!+Qn}xf&{?h-RL`dKyXqg+Z=`vWUqH2x51?KE zomD=AYUsB?>z`_(N)uDnXH)ST#gfLOH!4AK(DATfWME`K^NSU;qs_&yIIZG5W6>Yo zp_(A|_l|+~#%GYrpUeLV6p&KyYG-<$s-#y**P5*T9W53iOO_=ojKqdw{gg?VdjOS} z-bzoLKD&yg61p>WJL;WV1bv@X_{0bq^Vf>4cZ2Si*uy;;I!ok+>PWQbKf!(7su`MT zooT%gcEQ}M(3|@A6U-veXXBsje@tC~VxFo4yM~j{Iap`(1<)G*0eYePmgx~z&CD{W zu1fXdEzu6WFcH5&b;pCD-ZDMIcB4GAATe)RdpE$(Te#9dS>mVU*;>@S2oo- zmUfgj`NS3UPU>DJo%Kt)OS);BaPRl*_l)(9HD~$z(f6a(Z}n#En`Vw`a-lDZM)X%AJ`U!Pj(Y%Tx z*qgK0X3#F4vC*6kf{RO$VyH8r5H1(?x z+VNKkRtkPZf9*kL?vbuFwUqj^D31Hc@`w*sR#>Vv)p{oUO!(IkUq@)K@eM9RK|}Re z=||0#xdP3>7>8O=t@0UYUd1#FMK^TE1ZaMkX45GKuXyK=s7f!bX7bPEp7?&we$INX zdagoIg`(8Rdcl3cz0tGL^Og52@7vLDM?XiGm@Y9hF$bUHedvCcd(roz`(mGWpGx1o zl|7X`4craf<)g|+(f04$;n?BmX76VAa8JzXh|>`>nUC})xBqCreV>{_J>xcKZ8rG{ zU#8FGJe13AhLrRaCiCnvdy~cKi__mjolSLiR@}7&3PFFb zy2edV4%TY0gt~pT{BY?mLeZ6ymO}c9@2PP+qc9Sf#L@n26=jnOFU#tD$p)a+cMg z&+2NZUraxz_AL5LCSVjZdUOu_AI4;k$^4VrH$4;QrO!*ZLOr^%*v))>J+IWOToP{R z`B(s|Pu25r9W*blb+9#4IuDpw%toTlMVNj34O|p$&Ou&!(dHqX0R}ywUbP_VQ13Gm zYjF`7_#ZPSdtn)Fp`4|h>3vJ%iKf`cBWN#^mp+}HP~V1L`{S6$T;Or`arQBeF^+N0 zan4DuNiM}lhq;HDoP8Z{9WN!1(FdRz=j(7CIn&Fz^>fr3)e8usKBgP(MxACRt`~;of*Fb+Qt1$+ub2&iHPKJ_~j@>?Y#DHJkF>*eLs6Yw85!`AyAFhdhEhJY=z#} z-$Ccf&oLb{@D=pmFUBUEgx0`Z^iS1>@8rZ?|n?vvXKi`BvujRw{!*bheX zTZ=QprykVP)fgqATK9cWO{;2sE_2W6DCj|`wO4sa&T;>&_M`WiYx5b( zL3@(5&@-&}%lW_h?DfF}{D`a2^K2sS;B{(&6+^fP#fBR}b&X4)e2{9_9wQTk2rCel0@Y_P z3||;NnqDZymNi!;!JeRYXZxRyKOGC53!QCTZOkmC(NUwLbO`84b`}g!wUQfH@*Dz z(HS3N7B)h4?1Y+>HdLB6{4Xp=e*~-nGjC=wC;Hu%-R6EXJx3J7`IkC2?d3{mmd>n8 zETvs~yY$|{-obv{^)kXg!ms|qjcFUxo}@lWeGBRv-2v5t9)aSUaj9{sZ(|)2nD;Rq z`F;7#y#>0XvvQ!aj(>p_%^@vUJA#~o*I-%U{4SYzwzdkQV@OjwhVVeD*xmuP8i@6_bcjWF!o!vj- zj_}uYuN8Ej(EO}F(J`uH)Dh%z=W=(%7x)feLj4+=ud_O8HBpsnQHNcJO&;=3=bz4o zSm#(rG&I5SDR)QRXEt+JXy4lp+V867ss~gvsWZ8HVy8mi+uG3YGauB4qFL~X^afbOrnxoMGgp%o!o?|Hn?GM}-$~`$cL&QV%a!0vap%QdHRBe*ZaW$b_ z(HK<0v%s^!577M_b)YjpjQg**bq+mz3L485o3LbawvGmDz} z;2SbGn0k;p%$1!5)!`M)DrnXe#pIV_7xbCdXVw3b_Ch+l$D=G7LZAOnu?$)h(xJFh zBWS(Vxl4P+IPUkbT_jLB1faZvU*0R5#bD(0Y=WrLQ zfw432E)m*mzm2|7KIdEP!9D04T@C819fz4v{o)cRKB;r4{&|1YK{S%N7w-;kKtCpd zQh7^xw1@utjkpFLT^7Bk^jfL-qA&Mc>;3l@vsSdPEErMH+)bmic`s&_t3S2w%U;D4 z?lmZ9FK2I#SD-%9b?6ORG9rJ4?hJhsrJ$PMn-Mq7{0{9A57A?#XVoowm!_dEf?+{3 zzw|1-i|6nHg_*fq2W_G6!$5R^{@H6tM0!}d*%O~+V%HXEX76aIr{GV^pO*TVn=?1( zA@c@WV|UhWQ+KqB`D=<<|C9MoW)~<&_%41=|DCD%mCZd0Zv@{6Y8L1TD3-4timTA) zN1qGrIW&i7C^kcNzsko>g!1*pGm4wMt76c1p#HV4Sc;3FOw&AL8#0$(zZb=(_1B86 zSAb$Z)$uy?&+DTJ+Mzp!VH$pdo{JS;_G;baF8lJ_J3kG{(0M{}{!Yxh)oap}nQKSz zf4DmHIGf9`|6|TF3&V^(SqdSf(rRBSX%nJUq*AH0P*PF0qO=#Ow2(q+AyHH$p+c5~ zM4?DT%yQNl{oe2IW1iRZ`px@~+0L9f=li|yYx!K)ecv6aDH(^>WqreF*al~FCf}2= z4H~k)ihVF+U@E)|GvK-7XOE9!kKV;ufcxM<&=1}Smw~!l6Y%^e_k~f9*b6(s{g~ea*JE`BHSU>U zjj$YiQSOW2%ueTkbAj@6x!?c${lAakAvhcM9NQD@3Dugt{{Afev-E8k4Au!whZ=y1 z4*aV5qvOZ8@JSc}w}bVMYheJ~4X&Y-A!s}okleO+YK|kppgAc(x_zl9x!p9ne{XhfYQJ4mw!&WfQJcV_8*MT+rAHk2t z=u;h`C#d0RFJ6QBVE(oj%&pl4$kmUTTxFl z_R-#WM#4a__i8*$2IHYQV2<<#JPV`YZcvNxZ+#AJ!ug<$&;~4rS79W$$6kA|4?*2v zGw2`2f-#|EAPWw$#=#u>XIKUwgMRf17y(1zE*JyTK|M@e=r8c^tj&IVoK^q*4?fRw z*Z{x6AD}&Vy!qKWOCk7KP0+`h^SYnbIIvezKQa}3F8_v*h7(|Fmum{vGdhEItqWWM z!M>gJM63h%;PSrQ0k6SYF#fH`x^VX`yb$z>UQe(2tMD13j>WUGSd00Qy|--4u8mJ_7%be%QRkdgdaS59YweJxh+`<6OVz zbKD2k;M9-Q6BdE?y%XesYsvJ71Hkd?^_l~>!%3jeod?c=%fJ|8bLr+_?Oor}zC@&r zN{>+}`U8G~@4Lbs0Ib)3WC1Nx#i~muU&SJ+#J~V-#!$(Z-RMf zoOc#j$6EpJEoEHj8vg>;I2-rQ2G^rL56>RQ-18N953B=PfARXMG5ibvfjUG@@VVMS zPf(}04;}(z&#~|rjDq{&cDN3VBhH07U}E++do*nV>&Xk@gX3tAjd#C+HQ@Tre*pIt zXd(V@H9+6fli+*QHoNXizodp>OxLVjvtWOxQRPMjy6KnYz9jnGNcYR1ShrL;*H_kt zrqB$$ht(kjYBSouPr;aRAZSAz7siKMK+Qs};wiWvZiZfP5vZLuhT2dStdrM)rqCAj zA&B9Oq#curvh6^7Wu5V*m9#*aR`CSD{{oZlI0S zek}xTT`{Q1nZpePW2Se&IOYK4h4Mnp;XLRJoxpx@v2Vv(*Hv%>SYH}^9OI;Z;A5IV z4jknCwDqtI=7Il5{lXfB|JNAlR=5hz0`2rc&Vg79AHXx9U$sZE9cVv|^W7I@F6gga z3t*pvV@UsQexct#4HEw)g0r`c56n;6fcd8ObTK$yjV;t>)p!n;9;6FzE!C1wIBoIO zU_G7j)3sm^>_yNX&IaRD>zqx&+O)c^KRX9HgZsGk0&U^-a0}cC!{8B6>(MU03yZ+D z2gYpXk(n$$tbP0(-)_gc1#`=}`z*|crSJg0b{S|N?N?P_8xMYVP5K;I z0XrcHHICH?ddIbUgJB}ffi+MFHOXZiAFdI95F9hcQoavkCF7Tqz zj8~4Mw(%H@24gkn@-xTrvHpHCm;9r;?LPzbDRn`e!6eDQ^a$Y3G_k6WDmlJ@F&!%P$$@%|7q$T#)tOsp2oW0>tG^$1lqX$pd&R$tPSdBji5f% z0_|ZeBNprpyE0>C@ORq6F`%}34Rir@oqCW1+Ugx(ZfIO-{HdO!J$J3)qhM?~6v}c7 za}w)T<`(L2=91@uYyb1XJVSkA8CY{P#<>}cjcS6v*0sEEgX6>XKE~|kR$IZEm-fJU zV$SKDJ;Zt8juT^4b#G&j8{tB*zsh*kIk*>`w~i5Qo^#h)$uw}zz6i!WlfZfW7)${7 zkI+{7_^-hjL_29M)Li#UxCQ*bPl5HCPvJ*U!>aIKh5u@SHb(8u+K#reAM^%$2fILf zXbr{%b;0^iHiRLKwqF2h{^r@ckK@ zfMeQt;12MbYdd5l*aM}0X3U^Q)*Q^E%>Ru|%)hj;?|?RbDEPiQ!Kt8KvpV5?^L6fm z&0w#)nxy#kCa{L`JNyYgR^25A{;gP(Ft#(6^#fBJeC_xCJ`P@^eV~8(9`v)03vKO8 zm~kAxmbano=hjxt@$K6Xb<Bh=7ac?X%->v|jWA8n%Xt8uJz?G4a>>Wg-QdAG5seVz@$I+*dL zbJdvgPH-IQhx9r68nuH(V6DM?Nx$M=COg4euNaHlGw}~tt5;t&KQ%5l-aHN3LU+)o z3;_L${>J=Ce{&y<0proxuoSk!VW_}I9-IKir^a*Y+oyne{Ta{(E(UGby)Y5X?`MIz z`CNDxUWezw{Qn`aCM6GmpS6jDL48I$X#A)RtP1J!>A<$D(W<$83Uk1IjLBdv#=Ot> zV!y&b=m++FTm!yue?ANz2J=Pjs5OqKz&;K?`#k>K-L8-cwh<{tXU3^4gN&Nat!T!=Zd_C=qlZ`9XmH}sqOP;JR| zFbMR2+8Of=^J)LDeJAh1Y|sxF+Ze+<3g#-lrtaYL`Mf89Ig#t9^uOj~=D#1nE1(v1 z8}tC@Nkh(-y>q$@ZMZf?+x07Kf%RbQCfcu`K>M`=${yp-t<`=2 zufha)5Zs%@`nS2V@&C18&-%rnE^!{50j=OP@N4@a+kkZ)_fXO2^acOkcycH_0#Aef zN1JEwm9+3@%Js8*mZWQ`^h z^lv`Dl-XkKw%5^X_kV4ESuJPPu~mWX*Y110e2g|#8|vB|(U$t!wYO@n+F$c~HP{c~ z9nfY^1$7+XyK%K~`@Nt~_S#+zUMuy99^kb$p6mze1_Qyz4gv3v&!PRF5Bd=QzaQp0 z&B5!XExsJAJ?YQ&dFB##z({xj?8mXDrQLK)s$V)j4}tSU?ZDh#TdFT^0M0Y#h&sEu zxqXtx@W$=NiLPf@25J}DOyi|As8bj}W`j1<&tl9jmB2Zk5BBD%Q%Pm;_X?DWa*5!q zKJD_4psiLXu@6<-Eq?F+_jf;lIj{J&7~8J|fB(&K%D!J!ZdLF*d(p(_S_o?6@58&` zd{=Ln`TsG!-1Oil+5~-xkN*%BfY0M|{|x3TzK>}6Xy7-RbC!ZRiuIbFp#8iFhJZG4 zBD@UmftvewunqQrx_dFi!MxwT5v1V?|CRp_3!WyDO$NVLQ!RudumV_rcnX%z!sxD(LfG0MBUf^Avaq ze1ETiTJ{^@XTP_{UEgp&cumwY)F$mUYXth;Tu|?cQx{hIaa_y=$D}o5HAi#PU;g_g z$lc6a&0n1h#-PR{#y7@o#;mL1V{m>s&mM;1$1y(>f94z>4cg2}@I1T>uYmTgEN=6& zxw=2o7L{cnwIa=Slsws%~&66--Gdq*M2XUC+VA{_?aT{}>FlEz2l}b6 zVGmg6)CQ{$8GCArK8Ky49X*+Sr;WGo05uMESM`Rykb*4sfT#%#;AA)nPK11jfDOm? zr2GP_;Zv9nPr?0Q{M{Lvfw6ZfefS4J8?4RMzH0Zitqb7`(DtqY?X&j!Z_vJL*PWOV zaDSo7;AiWCAxM=^1$#K|F26g_!L{4kYHhH-rayE9HMC^8WH2`LV_q}k;d8;*x|lV| z+S9MW`udw-U#xMgbKbEr2yOs%5I_6<-C*pYE~>_9J;J~L42*}hA?i{-w>HIi#ChZA z9k3aGfaTygv<7H@rT_a;P)pF>^o2{ooYdS?+hNYBop8*VV;UQp+ZtzUH>`P>cWRfk zJ^we))pnWFUI6+G$E)#`eL&h%f9CHxgL$uy*B&^wjmNZW{!imuV|q0J=Yz4YcElLm zc-UNCA7QMhPZL6LeT4SPc+j}o_|UkqH>lfQ3dZPa;>O_O&-|TnrT)d=kt5N7UO>FV0VMQPhY1`c@fML^ewaDeNadG5{#GCO^lO`i`5Xy?4tUSKF4~y z_uhN<9+Z8?T2$P?7ULw56B8U>Fat!vZj7G^YFm)H;kqwXfN108<0hI$DDL9%`~zg0|6K z5VZ<*3-#Q`K|4Gd-U99M=b-ky5!8eC!x1Qequ{#OKVduk2rI!eSnP{ZFMbKefqIJn z)4E_Qs0PN##>LuVV_fTM#3 zVeR2m(C(W57|*(XMnA3IVeVkPL!D|OIBstQeVV$KcG>vAF>k!<_%v4N2#!}D=h(IG z=hz<&j`JCy-#0JX1!`LQLv?QB>(ih$oCU_*zQ+1seny%R)Jpt2b1KJybspzZf9M3p zF2;(+J=$;cOlx3jvDV$jgL|Lq8?FZT71OqAOSRqFRc(iLYR98C#5$$(%g=s)4H$Q6 zkG1v2nA%(IySCQ++&Q-#Tp#4Tuuol^r+qZmt_NYTzPS~?flpv2*kfS*>?Kf#pAFXk zSHaKl7g+PDNPX0JT^+<)&P|~0c3v8Lsw-&o)xq^O`lEJWe(w7y^Nn5;ZKO3w{hIi_ z8u_^6y+aSPZbn-w#_{@8eeYQCF=e$!|JE2^U#rday1W0N@zhG#1kUTSxKtb37#u&2 z9c%N>^ZWib60D#hU9Y_A86-&4Zh~GoXeQeYoN_BM$`|Q zcNwRD2HM2AppVgRY3uYk+B?w(%A24~)czTl`&m0`j^*S0d+)jETm2g!r+qY*_x=n6 zeVzA9AE;j~^M$vef$4Y6`Siu+YyMB;|1Utj$Nb7M=7;fwTD2OU_TTsG_3vXd(f3({Q@_;5=mXWV^?}|WYxl;qmxJ@#bvgPd`ytdP)nL8> zZHIQ*xmq3U9nsdPHCPKZr?z)T-PIi1&)PEeSM}l1a`+U?fT)(0= zdl=Nm?IAS3@auzc1hi*PNbQR`yEdjC*qfl8v7gP{-hNKC^XtL7n|?$s#MdeIAh`z6 z*X85%HP$50gp)wc$k*d*F}}AK)>z-3Xf+yZ$!fLwb@hL9oifyK{h8NM-{#}(pYmG% z0@jArt{Q-~<%>Z(ej})N4~2)p-YEMd)iK@yYo%qe`>LHUr z&BNy@)55(E-UI!K*WY_+ecOBBHS|5}Gt}9<4_@=#;A`Fl+UMo41ndz~m(upDTN~?G z1Mz*U<>?>H{fwD9gZWb}aBdsxIA+bm%=Og|&D9*^#`&GV7+c3~oy-`+xoaPZ`Ll7Q zdZ#*tF{+fsr{>(|-o~=VsL~&to7!t*A#0b;?+?J3(->+K7*}aaj5(cy_A&W7)DMhj z^ap-#J-tj%P&?56>R;3+taGZ7-Uhy(2SD382DHW6Q2RKvq1JfIau)Lu>+;Uy{opmS z7s~mo?qqIiUaEd7+E`;&?PdMrsH+-Jmc_W{+xcM4!1-?G2d4EwvMm?tUGE`wS(F??~8eYTyz}k)2{0(yGQEN<__9Q z?WTWgY^uFgi&pzKp7eis0rbJ3uwS26Pv({Ml zd&iglvMiT;l$=jr_YByZ_C9!DyeDcE_B(j(%nO=;e$85uwPa%y^=s=p4<4^6tDBey zlzq0okh??)YJkfMcLcr|`3n_x`J` zIVPNIWxveY>K%TqrlV%A4z9+s0o1d<0smfmtj)G2sXsK9x0Wf|`JT`YjDt@G*Bu%U>j!;( z)+y|>^ELkse}MkiIR1Cg7kRC|0Yud7`X#T8akPF(zpgEI&8XwVc-pwY zdd(N$n70N#4AjuH!^V<+Z9MIqG9EF8_WRD@Tr2B)&?Z>_H*Rr0Y6qQP1Hc-)@pYMP z)TXGh7-!l$XTEC=uYPO}Z)~qFvlP^GjCGugWtxt0p*piUzPhn7;%{I-sd?sfP+Ob~ z#!AMl--CA5$CTAgo!ib0=aqKTv9IlPZaBuZlgY1YAgPq1E8N%KQKPF=fiy8nAY!&PxZORzG^-81KMxC zzhr;OiLAd2!DX-<_JVcWPGJ9$k5}LEIm}hm=JkiO!0YaP()Z}kjQhP_UR$rJ^(}j% zv=jEBX=BY9w2j&mbrt8edb8tP&Bf2gR%+DN)5n9gGUGEOV9c2f>J`Vz9SdS6V=={_6cTuCph?y00JBAoNGhDX+b#Ihb$gFRV9MckpZdqS}JC${x*mpg*wI;Agb~ z{fM^T`>ckcZPUh;)hmp*^%eRA^$C5izSw)OAM$VgopGzaLjU5tHD=d`I0nskjD3y! z9Rv36Xk+zD`V)03$BA{=wV?Ll-)eXLpZX|sDc`4G`x>;zj@>cf>-A@jjfcVa;QKM> zvM%g+)t>k>U!P;#+KS`K*H(tt#PR0$j&;|!`1-6<`+EJEbH$(gI-Oh22j8RD)*7?d zz}M|HaXzU}Iv>m874L_0&{~mxUR&tAGR9OWMcdtF;}*9nO3E6x4am-PL~8TAqY&;UHMM zI~Q&T*GK*i;f!#wX1yzCkq>~0@C;0bS?~q?2&-WU__J{^7%qh-;Kx?h|9t`TU@m+D zuFd-tz5?~|cfhrIYe21h18fF0^Eu#}le?i4sE^w>@+GKSTnom<#=G`lXxq&*97EoJ z=aagawR&S2H8k&ov68vIJx}JE_LtR$RB0;clUIYi4=#mD@N>z}!TP&?thcQJo7kg# zCX9l<&;d??y3hp9f(zgpxF06M6!;SUg8Y*Fl1tzLcnj7+5!7X0gL9w<41>o&EqE$C z1JD0|yuhCOAHsTw!#T&!3HmYA9nHBD;Mg^9T?}3q=ZZO)bJuxmPNnTPmr!%R6x6-! zoqQcWh0kFL__g|y*e@fWfOQJy5+YoE<2q!g@usmmab2EEVPUSm`>9OG8CA$#G} z;+sGQ7@Mw!nc#IE0XIT_7zl&m0eBK-!BSXreC^#n)>IsU^2f>t>+jlfHu?Y<3D#DP znaecWIDH}-WP6{j&#FnN1(oUX&Uf<>a}nbxeVlV$AE|%zx~K>A1LNV_!Fa{E#JJVC zL4D19?tV~j@NsJC`ep5<_Fo@sp06)fOE5<_uRj~~*T!DPTlTpdoB01+JLhxw7<=;6 z2c*om`yATq68c}wpNv1h1mj0>y~hqPc2#5YJ^5PfmG*xcYdbD|tyh8n)BkV%)ELP3 zq?T%~Zq9Gdo$-q?i?Nq_ulcb(yl;VfJ+!08_z|#P_ZOJR)`kn=IdJ{Q1EB|kz2`m& ze-iE+=^Hr$w{W)HeAo{;nK_&^&@%HH7zggtvK6XiRmr*<-h<5S%;4;SpR<3?Zkp3H z=VrJKvfzU33$jnjIw|Xo=o`^L*xPjgd$h`N|JC0iJC&VUnOqs1 zPgj{U%eTa~#O4;yE&i(LtD^ewXW^fP4T>5R&4e?G&nR99^*FQ8JwZpn-7x4l&%~bb z=#SV_@u%XKa29iY&H?%ro=QEHYR#UY-$8%&q449)(l>*1c%3um7LE(!3AJ}MYHJ4S z_i7+63r=P_6r8K;em~#B7&skvMt4SEgbSg7{Yxf77Cgh*5fONT zy(!NHKMt^#a}Vr>Z7>%Gg7xCd;Fyk(+gVlK2zwoT53f8a2@4{hM1#7Bu!VRL+Q zaPMD@zZ#zhTfj!Xnu(h1GG3dzUfH9f6V>5dcnEgF)yb>bA$d=7IA;@34hVeWPR>w2 zm9t5Pf$P&7mNpE0SUu{V3qVc7JhcmJ_sqkb&(?&^U5pjYWsDQ;vo(&irfvPgo~0MT zI{U>L7YF+vc^yB17hn(=dsu&80M7lsVC*0lz=hBq{OsBW=aaU=J}3QN4bZNr*JzWp zk=iWtRc)9#t+}jugmIc$iZ$NO@Ea@fj2kjwEc=>Qfwwuc!*Ts9=Y~BE*FYyY6E1)O zFbd|vcd!e*ulwLP_#OU%n(3PCe$_kuIvj;7IY;?RXuw(3{?E_gAMhHRf9QYIa{dN= zrFn(9x3z-y)bjMT=6J@3b;{QX_O`I@H4}aZdn1OyTkr!ELPhp*I0-I;X%G&DgEJxt z7sC%j9JF1NU@64m{OI|?97#n}(T6f0%B-1HGiwt}Wk3JkIlXh-6KfU}f{T7P!{cxg ztj}4`?r8IK7Qi0pQL#tGrO>ca!%C0A=db{VgMT+QXKIe;S6vXjAbK5pSPo)MhcW$i z?1?;{eH7f^E&EvZG4JEs<=-yv`{>CY&JV$%j6)f3v!{giMg3Bro)3rE^UU?enXCc+ z1hi) zL?&|ngZtNe#@zt85=t{mIX&*4%*~vY-VN47)&ctSLKkVCK4BP@WKzrLC^q(Ez73j`+cBiFI zOP$32Wyjzp&KKVXzLu+D3;S(f0f$nDf-{_3rdtN*%ihi2KBuyN{U@+qX%B&#gPMVQ zK`*c#SdI_%Aaz6gf4m-5*aN!*TmysQHnc&}|tDqZu|NRPTH(pzNTFk4}P}LQ+i|WJrB6W-l z*<)k|geruBp4>(3FH-`YGdc%3@3-t>tif-~9%Lh6I;?GhxjKr1ZS|W*?FIWF`+S`s^O~PH^IiFb0X(Ny1}_n4@|_4ayEf>;YwHx zZKG|Y>tImkpv(hsZPvBHS*^>mmSw#No@IG%^xWuW;mg9trux%6$WFCOxiA1eU{8}V z)Vm#jU!W;;40jACp=qRPWPEshxC`e8`?}5f)z8&6&!=z0`kL{4f& z(bM$|^%S)w^QHRa=8i$NUA5YJ^jgdU*J93shV04O8@fX-+)qEZT8MMgI?`PBa~K5b zg2v0{el5zkD4$s&v%+q8n)7yX1A)&Q5*iY^7J7l#xh0$h#;Yx$F8s|tlg3qN!*>EvYU4dwxqMho}CP{3|%8d0TQ@@(0)e8({}HppC6Y zgEs#1^yPt8^9Os*7Qr5v3s*xf{K45+KfxZ*#teixa2Oh~mwJ0J)^faF2e-gbFuq#| zI^(XKv#KF3B>uYWAYC!%ZYkD)-@)9G*L z!cs7oF$UWNze5U|vR{iD%XHWQ)!0M8K9F0%UXQOqN2HpiWL7#aCxW4%{_!cT;RLD3LdcjT57cPN1U{2}t z^@dh(0#pJ&Hw1mF`9>M~V)G4sv3hH3I321(6#TpMz_{#t&_1t*M>)r;OSnt8YNTpp zGrSUgCE72uUvOq~JI=@M4UOTq%-=GHL2I}K#zVubhFMwJS=q(lIhN5%(Mn&#u-sv} z%i#x@1}+q+0uSUokmFvoq?3^aoMF6?{^rN%Ei*?@v#XX-Eh8ODhi>4!(sQ%U&FY`s z-y>IoGr4lJaM(4sJOF^*9IdL%5$a z2>Wnuo@4MQm43f^Rtk!`EVd+#I}@W5E02 z9`ZfFzM2!@Cie2QceR-P)6Eyo0%JAjx^Y`GaPBWDSrXXhr_)cTKjRb^^OZW#lk<>0 zx4`p3H^w%`=D{c6e(49n1*4ub;dyC(zXB%1L|6*$`CJGE91g1eHh%k%eSZzK4zc_1 z<3Kw?Y6xV3W1|!7hUMwy>GwXlNjT&MGX% zSAg{w?e`qk2we@ZMOmY&Ogb@p58i>$q>E0`Zx zm)Qhf*C#<+dIV~)&)Icgy{HJT30)JK4@mZ*cI@@qABMtRU>rOU`oWEGJ#+_S=FZR( zYJu8=e{Y;^jP3VDp`sxE{xI}m=yqrfE7{}cYEV0R7CJ(Vec6nkv~4fKBXB?1du7j+ zcF&#>*P_|iW)HQ#*gm0kU|+_y@Hwa(-3-QSt~sejt;#t)8rx}Rj z;j!r|hH9MT$ z`WuJQtJ$-pXNhC>^2Ftd4)G508L=6$h0rVBi_?b=#3v>uCdwzv6ET-dzMgnJQ6JPE zwZ)#l=-FYOiJ~T*pU6+NhtuHq`0v4<;+|nUsCZEEl%gp`)nP~Bj>6yJilQruvWl~c z4}p7+-^TffA9H?6({$7HV)oZnWO7dj^W2Nrb8;`36W;{J0LBIHfwh8H;X?M$YZPu2 zZW(DAsUEE!-2$F>c`cMiOF3C;VD!<*qmeP}XFMY`BRCszVaCFYVt6|Abm;Ez-QhRc zGydD?w^7fbemd*vti7-uyvFJy>dfCqzmL`eulL{Kzr)wS($G>)T+Ix%%xIa>l{HG{ z`{t(U|I$G(O(*Kw<|eKOu$F9Xs}a0a`c`npVr$Mtyq7Zy=cMMOa9hdy!31k*Vksv< zPfbjK7vN=h1hnHEff1ZhvoE$Ub_IM|{AuyoaG>Zw(FWKHXBD4SJQHfgYQ;! zxo#!#lK9BP$V8=NrQ{+|m#V};Ag@3%R4=JsVlcN5u7pAk6|V;JFEhI^JmnV)8*5_ zUZZbOZ&bsxSIPAv_FMQo*7aM1{coRvy&iQzZTB5eYrP13ja%4@ek5eWD3otC-uCc$ z^7G(~rDn1^;b(r$1*P&3Z^8UPERW=YMG$3T5-0#rCwA?TwnVtwFH z_NFq1aW1${!g*~{X6$BstCnuuI}Tn4?Y3ikE2uY|$DWkW!cn-5Gn+Pn_G~=72kHcl z{cE5kToQf^azLF>ZBISpS-2CtKmMn_!!^V2L6=CENNzMYY9o_za`)`+*)Qk3oU^Oq zu8R4&`N8?eo@?B-O4lm)!p+beJlK05RIgIK%0y_B*Cy}W{B!d=SM6N2O|>@FDp#*u z{YIz(b*j~=c2WLC`70~0th~75;))MtJ(P7v0BUp}fHigYBcdas`@{Q#vrw0@|MZ8ft7!`(;F1cLR8X615N;5j8krg? zh!#XwXRgi+Wrec-$owNX7hb<{U*x`s+Mj;n5cP-K!1&Wx-CD1C>}-0@)m_bbN1#<2 z+kRF0RcUcaaj;+XchpO7hSNbCpf~25WuV=zg#|wmNnrc-HATa0?i- z8>4rFYr%7>V|)yUeZ~8VFN94+n~G+@VmQC}{Nie{YOyYynLLB@S}ksTr`x?{)IzuB+)9wTM49BoFoQZG=m>--3_Wndc{lRsY z=09so)&?43-IBT`YDOF22iOYM-wNP2m<3&6BWFAJ0`t@tpg-IKufZ<3fLh;l*bR|% zB)C`B0KSF^piX!(nAcnn>e{QJHfO-!4qrgDBpRI6pwD?5tpEK08^LQ51N~BWm;}}m zn$Y7i9$Y7*-BWM1_S&3vR@!}aMm6rwLH%Jdw9aVF>0obXBtRQ~9o!7JLcimC3bzZj z3$+Gy@4oObSYQ7K)RJ34OHl7#$61a3-P(+`fu8aRb=f_vaUKBL5p7H^YxH`-N1(=N ztwKHKdQclN?oiWrs@OK-DZJ3mSTM2 z+NOTgJnZG2#<@q0AUQC6d@&hRMA2m40egg!ZaaxSWPQAN*QUXr^c*R%3sRbo~4=Iza!kv}6p4S7}b zs{Wb(Xa2nq%Zueb1I=Jdl`T~kgXisa$?KB05L)H8${z@xSNdh%mwBtJtgh0qa>L5S z6^kqO%F=ax-TNQr<2q`6KGu!2mPD6CUx~aD(SNHy z_h+q&y{6`~%jxg$4EKVzX%##Vf3W}k()7~wpwyt$p2VI+?Rf2Yx8iQaIYl`|_Z8k( zcrJMEeW#*M9*I(%=Ru602q(gqbDnd1_&WS`_+aQ@Xj8_fj4xUD9|im8 z^grr?<`(tYhqgcY?x4t^NL}ix_rguk6!baU!rQ_jXiV;^=C3bSPpb=#W&6a|vo50n z7?XZm@@=5a{F449{U~TR7N-`c2Ez%Uc4l1q2Iw38{0Yp1*>DdOC5jRQVL^OBkb}8# z`OU>Q7kei50{8+vV6R_szv3^z`2S+ie}uuG^#r!bE#|3;S{1h{{tV{C=ESV8c1?Co znv3j8?@E7O@_EVG?AzT9v|T4d+jQIXRjI2|YJ5h{r+{&@bz19zYVy|Ot=~PtIW&b} zZ^P+ePn|urv%uI+d)I|E{o4II>2-9?)W=}IhZ<~UFjrUCv1jxFdVnm2XXgIst&Wk&+28jLUY)_*`U{gHH-GJ zh%?4Jz_$3d`0L=9eHZ?Oc8PXm#;+$1Lo3dwSIg`HErDh4!CBc~CB90mfCF$&@|@&5 z&??m`wG2AYm--GIfNGr8?KQ3oeq96F!sCD|E_uE5^-|Ybnp0YXaGa?XIPTi9H~j+0 z4rPbB!zh>qj`7ZDF|R-zdPRB#XYJYx<(NJX+QX?(1Jsqb!8h9`-TLE$j#SvWD;p>jL!`_7vU( z6TtncjN^@6^TGSCX7vu-3&vT#fBO<$!*De`4E7~$fh_uDJA%DJ@4#kAfI9w3&o)4;g!p42=v`3ReowJ!&3l9+?B?{-Z#hK;iK!m;<%5YG-{1qq9e6 z_s!{>Gos>%itkr?ztZ~L^|=QsAE^9Km4B*ym-k)XP5C$Fe+x(@`3GSWd;#O&W_ScX zgi2K_RecdSrm$LX=mqJj>8j1(g}fK?x>xRA*?yc~vwqDw7C9ENCYZxnJNA-a3SQH! z3Rx9i%XlrLXSip$L9{{i?##P0>t)r;ss{E-F5tXE?^|8YfEvTzv#vv$PM?6<%T#Kp zH$Wy>Upq5>X1Y0Nj?YibPy7@6Cx(kEzQ6GP!hQw)3T7Rhb@V2<12)2jf(-=+3lA1< zEZSJKpm;&CXOQoK)8nV3D)lm5iVuhlh`n9>c5x_yGel$2SR)Ag_pyx)yrUSwXRESk|)7 zg4dx%qy;Ad?v2ce&Ix*H>Soo=dKRWaCorz~F8W>c^T_9sd&2jGNiRY(IO}L2y^$U0 zscpfoQtdelKee_37ql zv-TR*VsChBhume zsoRnIApJqwy0*QVUqC0;X}ZR=3hR~bf;FH`bpETG8jE~RU$xp$pHQDrvv9NU5qN{1 z+Eb#ZL?^*UNI)_C1n+=x&IQmA@)(y^Kz0NW) zH~kD6QYRh<>mi6eGj0!Z4tq50&9F97H(WP71*%g2od)%y^`h@WlguWWZ$kB~>RBUT zBb=3eR`wLI@BAfbQn5+JA7NspiIsZi_ReiwxpCzJSX*Unl{fR=%o~(HD8FUZmR0w{ zlxkC|wXNQ^`h1{FQ==VR30**eX;bx0)yF_%*jR02wP)Z8$bmIg*Hj$|f93y`Ul|Tp zIb5Yjw1YUGQ{4 zt)sP$dItBD!&44#J+$@EFn9$1hV6&9AFg$z){!(3UY?gh09 z^+nfet5ZM6UM=?Gyd8c!Je|JE%d;-edN%vn?E7-=%UK6c0Ye9suzU8{tg%^tW&V{p z0jxU=h410atTVG-g4OU5^o3QKt1_KyiAW++6fO$qf;D!>lex%xuxo<3nsk9z?8#+kT-srD74-A_(UPN`>%NQ_9VjIWIM1#7zNV(Vg0K^It2yrQ@% zOemUAw6$<+VJG;l;J1Q>@HG^{z`}ur+n`xdv!edc3kvxd0iF-s8YUl|eDqYvfR^wc z^e^aN(5$dop?>EmEGb@6+%wiQIE$OKG1e&FD1HOj_g*DYC9x2mO+K4cTe0s;z2xcA zr%SuB2h2)PJ17R%p4-FQ5o&>2&=ugi&93YV;+n&y^zK*}RC|6Ieg}w^o5OvYvCFw>o*!+ zGCb%*LPjr{o}M0P{{2$@QpWp#CH_iW20P+A;?IKTkiQJ;!QTGSV9m$J?Se1C+Rxc= zBz`2m4m^+4udN}kf*X=I1bLTz>F1}<4{A2%H}(XX>pTiiz#HIeu3lQbbPQBFRw-B~ zt39nu&D6E+m$62}+*hBgrejaJeTaFSQG7it0mtMnm=vBAw#Tq)v?_|jlBjX;I324yTktDVXP6?*IP%q9u9NnymQ<7Lg;uStHBd>iK% zS6y87!fF>*dmg63Rq$KY->O~=Pvk$5zd3I+YE_rK&#HV@WgxVL7SIr^c?^YFxwCRR zR_a)(b57@+*_pF5KVgm57px~8$DTvZhaRaODfOZK@%`~Si8_hO$;wIBSE$Px^Qr^5 z?qLelfjoNOHk52Ac`E%>S`8?jNGH01^F)90A^6#T6l)P@gSF0r!h*u*3!X0+dUWW~ zr;j{+KcrSU9qHWbuIbfcSTb?-FXh`m1W`YU!P+ovF@n zMe>T|m5D18gX4qaQ)5$21!KF4cNJS_&5P&74?}h`J9&2M>{Mg=m+gPCx1|71r8j&C ztN}IgbLa(heIMa@dE*^>CPL9rv}b0|%;8zXvl?VK$UYmqzus@>OD%XL`bhL>ilP4#8CweE|iN6y+8wz8ELC=tD#oEFj#eWnJ z2ZPLKik>NI2>T277bc-YQHP@Wpe}Vr?2Om}cs%}id=G2^*Ipco9b)xaz1TU$=M)bw z8eZi3v^T+=uWnJ@qOZaDd0cEx|Tjx$D=jJd!aQL?=OYt;W2Q{vH6Ix^mSmI+@U?2>G zN5Eb?YZH~=d(Nqz2)&^>w17)tB-neDpUO}5hNs~*cm=Fe__M}vEP0I1+`oceqOPf~ z!J4Lv(-)`xSXr{Ndw+vI zwrWPz;Jm^=Gycp_8@&Lm-|1t!fnN`Y*2>bv|*~4=TxPGY^979OS!M-oQ zvTkq{tOV;jDY%5aGxfjiS>3fB^u1Z^A8rp~)lk*Yc=#Dk44)Xj0rb5~AO-4i?}Pc- zT<|*m4v%F$mQ_8wdiDg^4|Q|u=Cp(s;Gt?8vNvSE1^2*p&<}=yKidwjk9`yt!@p3w zV(p3zp%GLETxL!I9D+#2NX7GDEW}_~rD2thz=+%txxYY@%1tWwgFes}V!5&0sc<3e zsWS1N=|_Tfsx?b%2Ioi4W}jBacWbb&FaXx4*9Ut5l+f6! z?tK|-Pi{|M3=`>pnjN1VpB|eYvsT`*sAEyP!ght`A_tBhIJzCqEI6~^SJ+v&v#@b- zY_&5G<{EWmI z!J1y}n>EH(tOGuY9&L5F@4Qcyn<6(w)T|am zUS?iqE2sfKMt@{>-4Wy-V^Pk}2r^H+^l zAH9uzbJZR8vL63i*aO;&Rd74&{vFfy&)aWj9`D!ghtU8|r)I3}%PYw%38%y9+*EF= zB|5qNGv);LmAMXibMfY&M)6D0FGWK@-;yXy6dr|oMfHkCfW1z`iiZ`m+&9p?PK=)z z9|vE;YM2k|G3UYl*#1C&xjlA!(5K*9zlXsdShcge;Wy}!=#f|n=Oxce&WF~i)~O|M zN&1rX?=Y721gCQ*{7!g|{^AboN#mUMJsyHf*mrayShIK!o`&l|O~bWd--CNO=u2En z>)+I5&r@xu`qy1>9}I;NppVvWtpIy|deF!6D*OlqV85oi*j=!PTJ2eI7i;moPhZoM zUszgL+74!N9(7BwM!p0-gn6(SRv$;r@k!_bd0?&lWq1%qz*N`*t^*qhKZ3Px$7e0D z*8U0H1l8e})GxucTaj8p2U%gtUa~cCBWwQbQ(g+zX-v`{g_zqZn~&-njlJ|E_CD!zhJf{n z)7aZ~B)kib6~~EltQ@%h#A{$LjJ;6bz;aj%e}l1{eE}DN`M1#`f};+?{G3ZE@{HqcYFk(aP1!>Ht_|>Kh z{xtzwP?z`ze&p<=1MG{bz0ofOYaa2%))6PeaIgkqeQ|4OD_vU+Lj%~4=qqaQR|2wH z`TejPjBmb&*Wf&u$G&C%QrE8v_QW=2ossdoad9`O3-(Oea~dg$luU;Xr5%F(*wucY z0ec&sg?6x*GuK@|d|An5CBxIh)6dhlWbNEudqtuy@MP@C*wNync#dJkIk3KHebGno z8R%2YM?QwmvCgsI!CG$<_G|bY^b0S-FQDP50d=4v#F8;q!Tdo*WF5P3tW16b)(5=i zMPPmZO7J!9hOX(Zyvs#F-NfFYhgi9y=K2S`!v1|1)90}hu4Yf}Pr-YT0`0sygTCS< z_?h02si1%E1KN)MU_Z^1@ElA6ZBIwgMr@`>UR~rRFt)c3leWBIuZPL(PxC8Sd#wkR zVH^EN+7fNcQ2J4gbG=_`Nqb86l=Ogg>2>Mrfl_VI(=awQHq{r}K_jRRRlq(0--t0# zWoQBR%6eVQ!5z2ivj4&Lth<;8h0uhv!Y=`}`ySvpXbvZVJ#2nI48DST?62UMD97gF zw}LiQ`>Rdt0RzD6H4&^m{Rj%WV)0;qjjbEoBoXl`e)=f+_Hg~e zeo$Y)y#K=j*67WLH^KO_2h<1uzvIm~#&y1qksH8y?Ogv2^e?`r8#wEJ3FvRlU7A8O zI0>@B>%cah;nL&lL29v1Pa|<2oCpo!WN^)MeXus)9(uzgun6`8 zrE^v`pBuddI)c3o)@f(L6`UQWH7v*1#2&y3c<63pxsa4T%h+M0DLScjh$offqQ_hk6V@FVms z4a*poaX0&?8TUPgR$z{(b~BM4Nb6JIaW?oHa61f!_u+SN9p*i-25PeRpuIHq+t-5i z^c`Ia_WZ6XSySSCstnaq)l!!wFH1h3cs}t>{F`__SW8#udZzdpb_P15I8~G?+70_4 zuQ;#x1~4Xfe;{=m^=mb`wa|*5msjCWa8BF%Zq0fb*u&HbTx+mDu|M$}sBOpL+T^v# z_0TcZF|`-$ff-aXsH9$Lz0$St5@*}=Vm}4PxqD}7i|h?*QK3a}){FDc`DkCdxynSa z&Uqu)1D0al%nvXT&V*g;b7oJvF|vDS4g~F)IzTr_AN!v^#n$;rvVLC_DeA5RFT$EU|H0H)Lb zuEl#l_I_*uYybyTFK~~a8i^W-;h+zzo2;800MEb-m;-)(4%B~cfvZ40=o07y_roku zD^pvtCf}5GHnZW3k~4xezpjneZk~Va{NU`SQ|Z^50mh&Yz;;mcx(%KJV{l_ubCtee zuZ=P7>Cg=ZgY`3ee0Bm7VNlmU%6ca6!w;a%Sq$HT8vZe8$$mChfpfui^L?NyXp35b zzR7suQuvtjQ`BRY)7NM%SNmTVD!}2A!@=GvpO$<|SM#JG&p(s3(%u(qGnK(LEY|(( z3)6p$1#6fmaHe8c@ctWP=;vH>={=qTcYrnI3&0-U>tQ6k4VwXJB>4L=$HoNb%b4GE z2K6&**)8c$aXkM4UD^9eJ;R=dZk#VP0p`Q^V7+-AxaQGVY91^C^O`-N-?eh-1aM_d3jg$uJx)1bd40TVtU; zQ~77$^`w?;?Ijj=t60GHYE%I8RSFWd@$Ub8A z`Z&-w9#LSd2=(E7xB;Gpgk1-Tn@K_{WLSd7(A1GC~k+<(1rg0 zUtuJD`7KIY1R9PpqWk0MV~mm2>es*x?D?m*@<7G|8Ie#V=q0xo+t}r57!3X4RQQLA z-egecUdj4ZRIlW^2U~hVFu(m{BWBuyAX#izx)gB#pz zj%|*81+M3I-M4*t2Ceqy-2$%d+zKZqPD~7dnP6XQdwO84Ijjb+skI1op;_Rybzh)p zI+{KK+QMLX3yy&Koa1RA`$t$~(y!}Z7J~8k^Y9zk%i0CZcWwpO2$pGJ`kX0XJUSQ5 zhZcc75Nar|fW6@l!JVL=^0PK(JeY49)2;$*$a}$@bRTR2?Zso@J+i)|Mt41^+rQ0u zlxM?FoRzL#<$HJvyaykZd=%u}&Ji^=^Heo~YhWNe1hZfx=y%SB>);W19$c&KeKbD% z6ZBmTK)+(FXD`G8Fdq5~T=!<}Ucc7?tZ6?5*0D;VC+DDi3Ti?6O6wi^=&jJ0zPJHk zedZ-lw{i`k8rl_b4m1Pn=l0w=2PT7k5)C-V^j=sF_HSJQ<6tHj<2yGtg8t-3@as)r z9wf_Q4m<%pp$h0{)X{3giV7vKuylF&5J51aQ4 zgZE)8#GqEBR#5Y`#&b7Jfn{(Q8q-5@Bj{6>!C&AyXM6IR!a2|z?u6%HId}nj!4%j5 zXJ((7eJ{*~U%_UTIyrU7V(Qs0ri;lrnte2T9at9{2A4xV*vDp%>*?T{IeP#nvX`9o zyDi}@!J25-Wk1T8}%b_D&4DKKIC@h1TtnnQUhu|9e7=D7Q*jI1` zsIkug=kU8=KZ&`SYXZ&LH-huA8a*O!LB))UWXnT>F`;(Qh_y-=!eE#Pj*pLFDLBWz zhea?Q9)z>O8tVi&5!An}bsB#)1GSA#u!l1v9OKrtTS6XaFOI-&*Z|s)H^Dk)OR%n^ zoofV(N*1v*Tep(U>>H$AJCZsQ?CYlfrN7ZXtV^s*+zk30YdO~J8-l`;ANrXVU|+>2 zkekR2e7SjzHJ~w|cBYor0rcCG;9d9crVNH z7RUPspyu)yn4=m)`#jo*TAvJZUE1C0kfzII9`W&^jyWm+^1iwKg z{EhL*gJ7?*V@8c(66}Vq>^J=`M9W8mGx+q&2J!9TPM8F5gKHMeWwygn$jQjbXa<*q z`NmtY1`=Rh-(G>ypxx_>;M0s&SgX-l*|$>$tbc{iL^6P_Ff?}Dzb~F(Xw}0A*GO&^&zArD_e=|?c_X9 zzuWcrzF(J1m*4yL$8o&h?_<1<=j-`=+#l=tI?fzj6YBA<@8NjZYg!^k`FzN2NnG-W z{~ou7wL09tuImi`Iu45sLeGQ!5@Hj*Hm_Eby)u3h`-QRkUYr&3FxHyhbC3OGd@T4B zi^Oa(OUxJI#6v?ZOkL;NkSFK&JR7uGOsv0byVyEtx_P;092HjtC!6LR9QNbN(h2D$RLrwVlc*~4$X$QnMGhQ6igMHsCejfI_oEnD*efe0-7cPP! zwwW-~gmzOdI@%lavzdN2)1&c$nLjY|c5!T66c>bkr}bi{IIX?ftHyop;XWWf6!%WP zck+=TSNFoC7e+Cd*wwx!`O@+6p02UIe%FB!PxB|I_p?>7UEd6Iz4F6IXa2A2nz3Vg zwa$nig!z$PJQrAGa5HK3iNE$c5I8jHl8FWvdlF|k+B zogc&fytAxKj)qaZmck8g&@&l!*PeaYt1iSezlXX`^Tb%v><80kk{S8%O( zxof(g7@v>A-f?p6;`ZHw-pJLclP?+SJpb-{8BYy+yZ_a79pqEg5H=0_@{Gl!UEAoJ zu|Ql~4P~dWUqZg|JF!m870L;e#zmB=5%stAH(GnU`OTue(>wQ&VHb4N1YUN_kAWu#?0+G zlY4kFO1uQXMOMY{9%vO=fi%&b7Q;Ux4hEz0QoS-1a19X zEER7H*I;~8%o!gD{?7N}`YXgt>JIaDy}!=|EjcWH5j5rW_*I-6 zYWRN$KKTCyJ91|{9;L1)%-*$1)nt~5m1FsMe~4F}>e>(2gnZkU!M@HC-uuE3SA8*P zJYVAHp{74a$e*4ahsUn5S$ruz8?LV|C#c8#uJ*X=-_%#E5An~{+4PyPX&;Z(* z|G@Pa&8Oy>ZDiu#)n5H-4LgS{)biKg{~8DRLmKBPuP3H&Esz# z?MGgz?|R(6>&RLAcTB%yv?oBXfa^NwwO=mA#l!X5{4*Ym|3+qWWNYNy*N#nMr`RKQ z41EEf`$E^ZwFZ}nb6-1mR9_ZvJo@URBmerPS6+JM*w{SmC)+NL4*k`ew=Z0s#pBt| zD?&~7Um;g?UCcLazIH^dH_CUP-~K24i}%GN@kBfo{|>fJKK#+(WWT+A7xrBIG}v%9 z-CUiu?+DvJ9tind`I+glM%Pu_J5G*2#Cf52iH|IoyimwNo*jFI+?)Iuzxb!|<=|)C z-}l_f!I-;q#cf?f>zLptFBS6yA5|S@)>t4u8frEhhFXo|R;zh_+VkxOKXclKF}0tc zhcS1qjtY9LFHNj*RvZ*^n;VX?*=w711 zZ^Rd8_~K}d-rINg%v67m{K+b@To_+{bRe>GPaF9 zgY8uVqUUszMXGKwYG|MRDwKk~Dzi_7|cr60y_ zAy24(#onJAg9d*(ei0AEqSa-#j-SUhAqO^o`uM8*3y#K0ZEp84CoheE#%rM#%HLQm z)``!>dZE{M=U@YW9p={j<#%?DtH!QLV=k&sEiit8kzXwi{Cm6>Vr)9DX7I(>FxC&c zvqmf%i^beAbEvtCIn>>62)fNDv;Szn;J?$1bz`kqC)8BF5<83`Keu5lAL32dBK=8x zA=FN8?%Fv=#WunJQybBDOiT2g$#LxwdYM;A!>t(b*%)$V%XB^DPlg_ged36ahj=*N-W56JgHDO3V$H6XcWgWn z^mPBYI%x3{6PIYW%qF92wut4#fpQ_P1w~uf=7VF`*ebpfTgErTnX8i(2jd2-8<>$ zu|X^l54JbzoRGWOEa)MBBKe#6;DiS!Tpaq;KOcMt{@a&AE?Qpb)p4(m^w_w6J>Ho9 z#%ONqBU1yoFb)p6baA_0+P8+puo(ZZ@rO7e_K(eC#o*tvac9O>!ERmOz8AJ^k+`!y z<)cGQeu;Q%%oMZ6LZODgYn&gi#@by2>7N?lE#3kWJ417pj8>JCO-)D7b-*F%o7R>9@ z;b+U|>xE+X-W&2V){gj?zPP_qu!DZ?pW*&d-Qe)Dw&tLEHD6Lci+s?xW5coQd0RuT zmj5-kZw<%7XZmBfwXVdQLl4#N?IUp96XK73f89=@cB3}^)p&b|Kb;dbwb%P$?@kRl zoP*+kFpla4H^j5yn%#Wsz2jG*XPuw%wrUSc#`3XT@TtWpdf)io|BVOZ{&+Oh!^ce< zH>z3Kqs0FSvQLxhu!}W5Jj=76>-ygRw@45zTea`BhvIbm{i6M?yaS@;E&XjxB;OJ7e5c zFZwBA{;U!+#XZyR8LboZOPsuOh&A?zL*n$%OD}#_N7*308|I(hJHGV$V$I-lY!lA! zeqml77T*c?9nZeOzS@7kYtYUEYq%TrmGtD+J zXC7nH_(|jS2Mo0;JrjBc)Vp>Kb9wDpF_wwN;{)NoJfq&NO+vq*_fjMIL3sYYp;trC zh8)&1^ z%>_{_W7e-KW*LEBKC?O1v{<}{Lz@DezhgyOL1VF z6Kwx%eb>gSu}7R4|BCr$oNvZY$Ki2lh*?~FWT~+4PtNS1kQy8Nd zHa%yv$CcH1HVw6(&Ev{RSB|c$tWI#rgiA*Gn*F%KZ_-(3%7l=c zIWN>_u8AjN=_yN3`A+;J<|~rnM;{P}#P+d5yj0#gH^b)Bz#5r+Bc%7#Hl#N0? zUtNH1ed_g3jcnw{`_{E9V(IdHCkOw3|9C3C+@8N1!hGT{%kPS7&Hal*T&s3R7vxRE z?0$bb^s=lFyTm!67eGG@pYLn2SL_u0z}ey-)ku#BG4kv|m-G?naq?bjmwuPCxFIeI z`#RQ(32|EA18c4DwbjYwjJJqqrad$5uwdWS&<_qZJK-QmEWwUpTPlr4S zANaZH&rSbJoD<)V-9p^>iC8|Yhj+%@F)@73zs7lScx)CQjd?sQ9f+p>V(ULI?VdvJ3xlo%R^lUfA;CKkK)0vwvY9=xGwaHys7VPSu|D(8te0j zX~c5Zh4^fqa({ZH_Kox6p^%GON&X^!80W=bLf;l2NzC)n(90|C(1RylKQQEg#U%dc z`grt-UO5N)y7XDFGg}3lvr%jun~&k#eJSV>U3!0r2mCxf?(xyyTDj|s;+NqZ9uj+m zT)=Aau8?D8BS80Oz@L8pHn=Z8Eat@irz zarDRBJ3oxwTiai)Uytq7&!c`c}&` zJRf3{`GT&j85_qQAwPCmJQ{O$4V|@Ozc@c0h}rsrkdKC*vIFC!_(R+p@?sn#d;OM( zHNy2swuo)U_;S}o|3rK=77jnJ%=pTT5655Q>Nqcsj@@F_kX$(@J{=EDdT7+w{@BFF zM)B7D6Yd|yz<;jS_7kC3W6}6|dlJNiV#-Njf3?0!xn6x{4}^8(_xHtWu};W?%n{f1 zov53JwIpA5di}wSI2%O^R*WmF$8Qj&@Ls+CmFr(QDdfUjqt8A-*QoqNeadIYTvO&6 z^&`*RcT>=y=Ry8paeI$@F}A5H%J$36$e-RF3se)3Gx%!Ik{v=mb)L{aa%6le#QQXZzbA*| zwKfc~{{~@g@$1;XZ^bub=b-)K8}Z~HOp z9_>-0O=2K>2mcz6gfV_D)M_3KdUI!pVW-BTeRrU9b54kBHVOL)=PMh#XIvX<2y#FC z^D~0K`mbJCa>Hi!a14{Y3D8`K(`z4MGiqEt1>VI@l(;Pd@6g zaeN#Te*bF7)y)xNNclAJ&eZ8sN8c@faM%0&e276Nh1{$D;j2T9=G0Ih5%2F4yTo>} zZEPR3V&9-YKaEpDEGNI|_Ut$(&JFWZEGo|XZ^)H;Uo{una#W}#+#b(|7-*sRNbpDG z&BQh8dg8l#V&b@o<31F|LwwGU{7bOq(_{Ab4b2~mg}Ep`(Of0FjtA_vAy>_tj&*5cW+S z8}@dHrIzelxxK#J!+*m#(MY}Zt{d@U%s+nqQC@=<9~7s>HE~ZoA96_Vj@4u1_;#pu z-4>NsM%O>yw|e>I@p>#@zl8e6S#g(Z*Y==y$11Tw>=?90-Tm~qByJ0Fhy2$&L#}L{ z*f6$=?L(f7R_qdP_la+Z{FV@-|A@)(Pp%LrEt$nYh*k`U#mp(Y`vG_>5Z;Vx@ ztTM`#ozwM6#5QcBm}RA|pMGAjr$>jM&-9(A$Hl!d=-@}De`KVSpR7JkFX`f1!5>vG zI6Bk?XYYD-d>Q`Fi?Me51&@nIW7%S4alTx!{vud=tl?5`F0#0 zr^ZdePgpe$iCbdsYWiP_p9Fv0e!{nwH-Q6dbWtLrzGKsalELq3gh$8S+TxEFV=5(0``? zXLOzP^QNCSs&D~sBEu-|OE zoFuJg<2Md@${m7Md%WlE7~(@ZuP>8rSHrkB#1&!z=<$*Rw!YLk7YTD;?#lDkT)eN> zvo5f0I6k-Ah5zp!-uvL-8;EUA47UHmxH4{xyF!ibxloILb1WPm2{}Ho6+h43s&hkL zL63-hgBrqfAs_Zeyt%%Tg<{!IKiVhMo^A^LcYICxG4-omV!v>`!(YUypo)&KXeteu5?jJLT-d2C}IJq`<{@QpT zrpDZp=5E*0vZL=7+jG*Mqw81yanc{_F1};ZGcohznJ2$9mI-|XUxJZm1{7 zU(ll+;=tfjsyER`_CaoqHti7lw;l>>o*jEIR_R*CeBYNs-jN@pFJGQu@lf9s)5wvn z8G2^t2|gd4lDCvY5W6fAe4^jRw`28?SLT168+_>{N*^V?v% z)i3D6)4?B=V>>8Lj^6~m(HnR{u){|L|5d$LjpJQmtoZ%nLB7QwLhr!<-JmH?hVeDu z#RI<%`G2)CH8cGh&eKzGJT{LZ%iCr!_8-)F+Qu$_q%XRCxkrT_F;}J8;gaQhQ53#Xb!)8=TOV> z92$L1sB4RrX^z^>Vj(URFVGTm@<$=BEVuT%xGXLY@wQuetaC!_!Pa}M`yQ{?Ku+_? zn01C(N4@&%_Wii>atFobFxLOP`nCE%EdVtsCPs>-+6m=Ddx5Oe>gq-zR;n+OqJ8@9#AJ(no@js6ftBKp@ z?t1$l4*t697#tAx6rC9t$IbCTyby27A6+Ou5_-bLGji;E2W>hy4j;R|+mU_W_0Qr2 z-b8hz7e;v$n48GY~THj}oQbYxr<_eO1aliv}` zhTPkyf_|(MpB!V|ddFzXSL2{KIj#u(0nY{}xYXc`FL%*lIlGJE;P5)L#x;|!8C`c^ z(XKW0xAsbXE#`<{c5UDHg*^oCj-$H1shT(6<%#-l_6RTjyLM@d1?*3zGmFR4u||j+ z#0s0l7eddV+>SLyZ}uL$uBrZ-?*%(^Pkp!Fh=t>ddd4=1$?^NXAMoq3Ml2c&$C9yW zoD@&T`dz!@%6MOW(`?|YvF_A$M={RTQ?DNR%6xi0x7)|!-k?3V#vSoU&>_8PAB#PM zFZyzPyuQa{;)xJru>Wj~{L1xVp6?Zxg`B~Mg2rqXdMo54jivm;d9hu{OWZx~?on?F zKTiHfo#6hk{?7@v@<$^(3<%|zU#X9RU8xg0KOkbh2PJLD?<*9zAR8DA)TNbC&eu>CEihQ1s`Iq_;|?U z$xqG_|E(wB`k+HUj6Fk)MWfvRZm8#Y%(Jo3w1q}}g5T>qs;&t>%tvF__+{J|bG|X> zsHbSNt|R>IVDFC$IdwI1v5#}c_SysSw>UqL+4^JRTk)k>Ji4sqC?4|KgT|XbH-(tyXQ7tn^YCrN`M1XF@&5YNHV-ux$0(np zX5gHA51Q%yXoOq8(-(aKj?v?2iI~OwFfV8houSEm6ZIPR<_@wN7ClvB5VcA% z%%PzMLQ8Il+rnNHw{$~~B>d0q?Qvg-9ZH9eo26@|$&Jv0m1F1uuqT$SRtG*aTV5+!%idwH-CnZ-n?m{#osq)+`sa=3QY;(XvUw;e9#epCOh}Kk>K^2meqm zTfX{7K{p%^ZKE-2dUAT+_mB|tz_E*c_~5ik4d$7cIDX>j`^Wg1D~9zi=GigSuV~J1 z;+A+UCQX<$(wY_fzT7XwwqfsszVV;O+40A?CFGr64)&R*tQzuBYC8MG!J%J3>?7X! zb=VVoQ;20=4tthX3^ks^;@q(BW?IZUdEQZ6vi{`tM}5gZ?mBB1#9w1d%s=D&qwnWY z@7XQ(i$g;0Y@3jaTOgkA`+Tm6pTriia6I03)Sek%j<>`a6VDj+v+LPjB-A75v_AD~ z>#tfh#JxL({vZC}#c@c;tMUCm6*NXHuu$;RrcRq$rTUpsTyt8L;3GqhO^!wVhJATk zT>SdQqx}OH7Mpw|F6_Il?AyP;>%trz+s8`r>2UwRxGUt=_K#;`_4c@*9dlOm-Y9+- z&&4~t4&m0JSL%rPUGTN_JpVP+V)a5j7jitS20!}bcqQc7ejRgXyV)}ROyYSuVZK`j zZ6zA@HSgNBBu)-8;VHao! zR*V&b9dyf{ED>^S;+t2xe(^nVLF^rlpD%q@sGCg=pMTSs6qj_Z$FIfWp*MhL|2z(f zonwdCGY*K;Kv$35?7A>ZV@{5IsQT$LUMbu<0%XNUE$ zRM43#gT}Z9*~antSU1*-t%BcmbkLnY$CDv9Kzr7S?L)rL9F(i$??~i`w;c0(Vv(SY zv{bH}f1!S-m;7t7V>l*j)oamOYgk_*EuuL-i(Vh`jhvR+hFqDsDNZp@<)K~(_MCt9 zp;$gvkB^1*U|zfb@$fsFzCmmeUytv`NkKzy4*hHP1-zwemA^CIA4|t_q1Q%#^OEu2 zkY~}$WW7Bxw!i<{t`o$6J0|FW-1MgL$yg!OnCQzpLVm`r+}Q_W&Cq+GHY#qhmR(cG zwQA(g=pXHq_lEmJPtf1$6QYsgBC*(j-#uT9B!6MOdoDeiFn+@5Gb~%~?aM)f*bBKg zdxGbhFxP~ShJK=5S)o_WHQ_FZ-vpa|L);gy#rzZJAAKK)*x{6L?FHid z{`f+u^XN@hOQAK7MQ+VVZ2YxE68ppzPpraU4HOp9z1=dZ8;{ zkDtaVad!MFeiZ&Lzou`^d_F8ziC4P7*snr9df|Aa{ucS59|U{Gw#tvNm7fo}c)mP4 zv1Q05eKLlaM*iojkVoSO%o0~uul`o3qdZ*Cz|Ugsm|ijTkFi(Ckxh>Ky1wI|;`~s* zxitP7FU2CSFEZL!DDJr`UW|9ONAu%B*Y}OXf`0rc#4z8FLt_7+N8b#$bjJVGZD`FM zLA;j<_W9zNIDO(MPG-m1Q~tX+gIzRMpN+lZ@Q|;^cS0VYk8Y2{M?;U9yw@C|CN@jV z7BuSZv0%s_=_&e1=ws4bpa)hzfqDh>8OU>fAjATCscFyF!S3rVp^Kl7w}g1|()dOE zAPx=v&0eiOePLvB&cNbYW^N13-j ziPPi4Po*c7L7^q zVArV=W7v-?_K{pa)}d*i|Q zSNu1g4r`b_aD4^3M$hQ(mT_npqdSA<&`)~fS{3%&xekTg+MBx;&3j|DSTDAVz2kdv zQd|^&jmM%;YSa_GTHOO%h1}U$@sF4mi}f90^kv^TD{hMyWA4dwkFEo}M%PDMFVteT zjh*9bv2Pq6C&k5aSM-ra-=(|$jO&kLnlt-uxtrs$cqufHRYslh>9{j~AKwd)e`{Rb zcQw+m7rH*co*~{^A$~mJ#}n=vf7eKZ^@Ln9?vhchh95a!TsHl(QT|N6j2)gkW{cUw z?VRDhxIpcLy*?p!4t3)Di)q9d?ET$+moLA1#yIV@(_Z^<+%)B;DPN5_;>N!F=I60{ z>=56IU&dpx!ju)J{36EHOU(!WM=V{9`#W)as6%`#whuPVd#W3#ALvc^^%%eDds{9G zvCe%VajmAYU0e{8rcWB>Z628Zz;tnjI*Q(=zl1q`N@Nmdu!i=H)8ltxtym}G#BD-u z&2=dB-}0sShUTkYKYjgk#XqVC@S(pNa$Bk{7=ACI~E&fS$_^Y~Wi(>Np4<1P&2ExtK6)NW{u9IE?g#Z4j4X^z-) z@|%!1W3$!o<+j8gYA0&p@{N4S2st)&H+393 zF3~*H+*5y7Xn!_)5?o{pNJaQ%7AII;5&n7qUu@IZk4_cvzSuN=9plRwk{})%rP z-g5i)tq1iN_FsRrSb*k~(jV>bSG)XpY#L(zqvD*nD*hf1#=qj>xFfEMUk6Q+JCL7x zcd*%XMoc01CAJxIUi(*9(eo)swr{wV=cbS1tKC8$9sHd}d7Su$|0n)(UyaBAJYH-j zM$=0mFSuOj?}7b7`V9Du;yF1(nkP>u*7Dkp?bJ{Y5;IxU@9Uazbl2XSE5csRxAmP= zdeXLz{o|+*+ngU4$DiWHxFh}(;+eNhe9I`mw&uh&M>U)8wukckxGko{pgRXlI$)$b zw@$iM+wUlzS#k1;U9I^`qyDu6yPm*Naa^1ozllrZ|3Xgfk(1j_C4llW{*nKY$u{{3-RRDIW^6YE=WyhltpV#2fv_FINNU1O?dt+$V#&3FD! zeLd#zCb4i#>*wK6SC=!8n-<5&OUn^_IrOW&IQ7NR-j=V6xxM<2neUr>CqaHK^^=Q`#_($9xPlhDo2ZJ8zNqaHYcx{c*by4o`Iy34vURNx0 ze+)M8vt84D=kWdq#WBI3zBulVDe;lM8=jpzC-~D}2!7+++JDXWlb2beyqdymq*(?-X84w0rAmzqMqb)V$WDT z<_&qWe}}y{_R>5O&xLEId?-F2`-J_TdYr|J9|*O5<4Zrz4Z3!9+z|4WH-`6it5$Yr z{3oWz+uF^!LTnR9#SQUBEMIN?8^M-}EyZs1;f$co9;9zY&CC88b5$HJetD_B)H~zK z7{>8?^;&!<=*`g~MzZ(yrl1|K1e;6y7Ywf@-g#HZ(M^bF+B<%GsNu*z=?@e0Pw(f( z_-Sk#tHfNPR{3E3V+^qlAApl$4XqYi#({BC(2jdT{4q!LHOJFH^z@1D-XMQ7z4*nuYDe$Z{1LX{85}Aw*;S^pDvzZ3)T<* zC)>#;i)(0%+J^oZT4Nt0yU(tw!LzNmg*ZoV%xvRls|$Gk@$U)#*D|4|&e#7yEE4`d zZ^*6bx1lR9&+zgncP3`~Q>d>vhHXR6OdK&+R5G36`Ek#Wj{TAPr5}#RLvMn=i*qK- zFk!UzF4*w33{wwNp49t*~zu}CZ# zE62xTgV-kajblSU+TB5W7Vf&)p9}kQPK+DliI{8hT$7iNFNZwZ5%IgAHMHY_aQm0| zLmV2Piy7ljlm0aNew|q-%{u9KU2FQ&;n=?$GY6l-IX8AI#-GOhX%ss@-?ahcZ`O%< zg8lki+!Xv~^Z3qqDEQltgj}({9{B^Y{-Pm=c6_`yZmE9!^?0^D=O@Inp+4}9m^H4N za@FV>|Le5ZbEQ~57K?4;dvR$j-oC+|IDx5TX${z zDSi@sYqxSaVjTIMi$X7M<)x_`R8KlK_@eq7)M~{NYV()J;^P({#r)(8%^Uw7_wP~s^10%nw+A~V@1pK2hoSbucCZ`shMENX!j||upP9DE zpKTHPiP&4nudNdAh<{E0*T|=(F|_jR_Gj>;#S6#9XM!$>XT&61hdkqQK|`FARpYa< zV~7#Y5AmlHy~NZdM&Cy)AExd@Hy#Z?6Q)h5(lYZjb+6Z^zBcul5X0Ua^!&8=c?`KV z$0MfHqv5$L#(r^Kymk6pNBf23h4eV+0aPzMKCXy=##3Pr;^T2wTpjv;)w|VZj29g? zp7u(x#Xf|eH^1@bQH@LeOaAeI_+{K0URTT_E|N=AOA|MVpXA;C-Tribm*=b*v&F6L zr8V!>_r;R4j9pJ#F6@rDJLrqvGqKJRu~Fhy+f2m8Ecd@9s;?a5@PX^~imeP(|z4mmcx0P<|K!XD*6hg)mM{v0}@E}}QU z@BU{kvFY~mh(W{(;s(8J>O*2K_rDO1bNjGIbckbUh8RU2OKhRvi6(kY`+Kg8TS9Gx zHqb=t7-BMcFY8-<$+3&0^sD*Z|MW$R+i0k~9)EL_kncM_#4Gm&U0FEf$F_`b#8Gj2 zsJ&bn^yRv^KKu?fnV~*IgTyxC8vW9*1ie``c8%lWmKa}hak`mPOnuvtuhZTe`>#-e>6?IV3>)=6<_>>Rtrk#S<&7YlS9v$aFL z;Mowb{5aGIriS`}J}R{q@yRcO?GmrZ&-^rYjIRZ4*(Ky~_}LGJeyp#>wV~hitHCE^ zfB1dl`jLQV*A)4J{xPr2Se;6 zU-x`{e>CUWaNqOw`Wbui%lG4|crh01d-TKt_6zGdrVlhmO-c-MTeXUOUCyVOqh3wvqRFh3b`U+QGyV)gw)%2|+LPEa+X{FFfD;(tBrI9INN?7iaG~BgM&bfIGww;x}<~s9{W=Ve+V7 zO#VkbpS|8H_)v09@=yl^TP7tH`TBj-l;roGkD0pg@jK#!u|lj7>xOH6Z4}~_?c(dP z-`HN8<0c$8;gnG8ryZBY4e{r=HSP^D!3!bDF>Aah?7vw(){8I2*0E!VUv`V#W3Mj=gouG$ffNa`kc3om19y|J?ZMvH2@|~nm9?G z?&bR9e7+mH#+}&o`1&i%sUy2Cu6pJz?ce%gY#j0t|E~*Yu~A)b6EbMnrQ)IY5DJ45`m{W5%JwdUhv$B^$@HkONZVzW3PE{T7| z99?($Q}M0fQ$HM&r%oRAMsHp%V85U(7sU1P_YgC&g}5zf34ihFaDF;|6%B>J~QOie;@3a{Q4!~HRM*lAG^o8v2Z+7pWp9d|M+;! z6ygM$s`u_oAy4+ccy}xu?~mo;6R}l%BgA^Y3*$%|W~oPcfmlB1$GY*kaDSEfaL^2T zBBpsNjQ4$^??9Z$A&?haI@XJW!ua1DejGo$yi538{Bb@DO`y4SmQTaSVcW$gZfTHw zA>DX!3>xhI%i-^IT%7lz5Z`<$)Mxlm$Haxfe#=q*{eO^0lW+5X`y%BncZiRNd7=-K zR@@TiKK(d6oZGL3bGm29g*m6{CeGm2}3g!#Gu;=jY=#M&zT$Q|>-kK*vj>fdd!1er}C)~FVLKsBQrl@#)&g(Wt~{5cJ#jq z6DN%Jt;naT+iVv{#&scY_Q6RXY`%F&z~a`mf6?%?bH2wHJi$aQTQo5uE`AK>6PA@n@| zB_0j=owo(ssCPiG*ru^%>=AM|--{E1J(Ux?DeemPPX2}sTr>FG2gU^<&Uz`{)wMLm z0BpjMabBpivQ_NYqM(GoD;9_;)258_ zCs%asl`}*CtLw)=O+voT-!F^5#QpJX*mE&cd;jJL`55=7*M#+C+#6znUxu0(4P7VR z8SFlty&}}*e-L|ym~PuK+}}M84EZc$DIUB$)KTt;2ja1KBE%zdVzi@D-bl~h+}{3o z#JggNSUJQsVih&Ip9T%QEnW_>?y~Wv*e&$OiG$U`#2z$R9+qCv3L3LOu*=3-p9G(0 z!{8&awa$xMHkjSrKiK7?LM+Ml{wZh)`ztqQzE27L0%|$0hQB=)a%1;|$J3lk$M%Gt z+}=qxUo7GM%n8~<$M|M)RMv|e-4KhayUT})wfJmu1m6z&!Kb++UL4yqujh*oxLm9r zpNe(j)A5;DJNz!jUOx2H$>qK;!55B2mD;+Jvu7-zO`lFj>h{5TGZ zJ!9vf8J~|bj$z12hS=w>1Bb!6yOxFsHs!k|&yLN}HUy7J+mC-i2H@R%3sBYQOd z8Mlq`kFI+tf2QWI7(L^J8AsQ!dQUkfueD079rWiD@yYmj$g|O{CByr?JG>VbiucE| zv1WWF#7sX8IXKrLc-zFcjjlhiU*Da4UZ~UPOkmQz||p!`b5a-of$sQzv}PUKg5UPQFG;mdghM~y*2-N z<3FSIYK=c!{Y4J?WAVncH%9%Zht#Y2#o(**S^2>HSn7+q)LBkji$qir4E4Dk&OIyc02 z^ji*0PEF61-YapB{uFTnT^j8AyQ{#+Ps(x8B{gs{Cf{GaNuG(VKPl8^)W$Ckw%`6) zan5yd?bvm*FX?*O^h)mPl%Qeq0pE#zW54j)yN7xn&GS3ND<0?Za&PCvMIr9EH~t&1 z#f;--9Q7b9QvU(nSR&MhKvz}_w=_f#_UiHR81%>OT4Q{y>$cG&k8|JuJ{KFrrm;ip z8v4VN@nvH8bSw{I1?222%fl$JuW|!?q4F4c(Hvvkz2GO^x}S5Sv^SYC?M7 zu8QkJ51jgsJeoM=^_Z#au8Vu#5$}w}#&~bJvc+SGSTgi0&?EhF>&E)=m7sHafBf$6 zbjowy74wAGpCx7uzk6MMK{QSdZm&2Z=%HTc%j4RRkE2s^a+4=a9$g!mp3oe2dxM}U z8^%Tk&*ak-PkF98kfYQL61HedXrCx zOXKc%JoFFX!O%l}Rh%9_hM{rteiTUWb&2 zeYt(NyT>c_@CeuTJ}W$g}W`KNE8Q^9Q@e#*Pa%mp!E=@?&i7TroU`|1Hj%5|gJ*&I5mQ zSI1p=yc*(KyjgJm%StA1>F_jsgF4xTKq^De|-#eU);Q6d^XGx`9kxJ z51@wryHE$eKK>r}hj>U{>zNpGZ}dmLYrarRm(yH5#H#8)v_YJr_91s=k0#9#T-H?0!%vcWE@Ae3ZkHksehy&y3 zI3v8z^`TC4dx**8XZ0nz_4{!Dp;2e#L!*8Fdg%CykA^tSeKn|OLQIEeLp&$PW?!;? zyEn&Np}weJ0DA7|pFEuVSTxjrmJPj_bZoP5txGk^ljE|uEz~aM#KcMBAvz+jB5wI+ zurF%#`e)?$p_k3y=!u@?y+Vv6Ueb?1f5cO(2i>AcVk>&2&f~SkNr#7+NN()6q4uxG z;LoAA*8MAjHk}>z2kABQp6X6J#1`Rw2KprQ-c#&{H`a`tD~HQ7ZyWLk@*naWCxkr>8-{hv zj>xshZLAm8FkAAoxFBu`ITH1L>q`ECkNDZxC^n8Shdq1#Ze6|6kDgk!=mUbSV7JD_ zzss4aEr@$A2yxG8AtpK@)QiPH^7eZLU1dM%>Qb>pu&eZE$uZtP+O72d(ck?2?IB+& z2lZGy5OiJNEIa+5p!JidPp)h0ts|}U+O&%50} zRb-mai2EE>*TGe(zm-S-M z>)m4K&=)|X`5$yzu2bI4XQ0&|44=h#`E09&dXN1#d;(*zg6g zQrp=z+zz!J@s{34`ZnD6cnq-`4LvN>wtfaob(-M3@wF zcHOvlhd50<_Jy$4wv6pU58T(|n{n{i^)r87$L1-aUV33%9Ijh%Wn2;T%miaKU3cs|bmUFl|75HcVpOrM z{HihZTz&oU`wAhJbsV(cF>M`RjXh)E5U+kG^f($zgxAIC9qdgw1P_IgYn2)VII)!O7=Y3?#%%<1R>MpY4%g@aJ!jncOj-Mm|_>_wVs^%s76=@o$Uw#8N@qmkn|8$Kq45 zUThv;4O)Ll93J*w9vpJF+lE~3^07$hQPIQqT&PP9_?`Z~5^~Fr#eJbK(sAjFronOn zn}&J+nUFi+%kZ5BpT=jhKIF@140{7^4eQQ2l=s*zwu%kIn44>Q8jSaQLSMBxuO9KQ zxGk=Z!9JZ^@0I)z8^MqM{TO@v1T z(%;mwJw}~H@0aKE>-qik`_r-Z*mZbTsZUS6aIs*=)zbB$IN`KF>>__AmibqRYj9uO z6YjhH#~AW%diBNQa&d0;2=fz$TlqQlB7cLJ>FT&L_!9Jq521JCC-H;$P8<^ImSuZ&{fvKO{2LR)KH>?X zM&-OnT=;R{-}PhDVb@StCRPjaop{fD*fZowh8*LdxwMv+nRm2|hSFVq66PcQ)q67_ zw<#Cu|DHn+={9}jW70^k>9y#g*!9Yw*?dSb;t=<#*{PpBAJ4_pK`+IJ){i(6?)#hn zi5ERboQRiW_}zVLPhC)AQO^+{mkqQ&=@b2+IqW3V;n+&KRPp3I!8Wp&>?C{XwcPi5 zbj@qd7eo9h78QfizJEXVPglgU}|(+0cd{@%f7 zG{?+Iul=`>WAMI?!MPgFm*aE1@FSPtyz)()FMfmZHvVFr&0?F_aqJrB{Dz%F{gvkK z5quqffZjBka7J7Z{IBbSUhuo@VYqh;*TRqk=Ns_H{u|Ga?Kc}g!}yWz&)r@JK7i{C z@EQ07vzu6Zd_uz42(O(BG{X=-3y$5m?o+DoY&y_#7Cqe&@Jqqs2Wq6O_v0{JE^%`o4 z@*DEe#?ZfAy$$TbtYJ2c}e!i0aCivU%_u+qT^Nl7{*qOT&-Nq+;vG@ zOH%&~-o#4f!tqzTDhjg8#2?fyUE) z_R`!HOPK5CxLOnYOq=O4O%^YS-B%ski=dB1tSwilM@0@%%uPFJ=EXsGzy3NV@5mY3Tn2Exb2;CNU=6qiu9go|LZHho)E2z6|vFaYwU^~2>ZeAh!1}dZrLAp$p1W!o#98xm-4ed7tYBVA+Pe$;47&c z%G*M$`>}BToXg?;#kyY8d$N1%A3F#!B+c~Rj*Z=;(Q?0o?Q;u$px1)Om^+SBtm=7U zUH+nY)#viMG@VxSHPtQ6Lw+V-)O~*kefBqTw4AOvEI&k(<%syRL+oY^&^+;**uwom z@8}`hI#1BY0c(ccRkx%U>NV`O{IB=1cHGMU((a+Y>9y$*Eu>ZSjFx#nug#v*9W3)-v9B5Fo*q5{Gbm`E@qfpLoJ%0IMfM-c)|0;3FbB%C8nUu=Jk(* zuQ&L4>fhoWc^P@ep>AyqjIBAt|Kjg#5L?9dp~ei_OM}_rFNMdf7xIzvBs5qIFQ2d0 zd~&eibXY9z_RMfCIK5KhXE_n^D_y3+PsfxHqt71V^o8SHL4TnJ{f@EgE6RDO6-)?@ zx7zhf@k~4$>e=FUIhMDE*P=i4TFg(Y<;y=G;!nS?75=|u(5d15Xw_Wdn7qGO^qt`~ zX_>zbkMUmf{7=1HAMwhu<{0t|{^oPNB^u{^arOUjP2VBrZ=jJLBcCL{ z@rO7+Ivch<_Fth-C2Lu zoWEJ;@)jQF*4nmqy{^Z=^M>`w#;{%D1+m6I!#un%_@-hAaYxH`R9j*f2Ad{Ep!I`& zbNquH@Hluc$HiU@HjVx9x_nVFjyj!u<*!3L#THv9*1Fh=PkcqNw~kLuj4#2bfY%cb z@h!Y2yWz2VPV_VCp_fPC2lFfBJoSyx5gK6)>u+5r*a@~nURIA5UqYP!-f*i2#y&^4 z{wIe!{7s+#+(Cck1mt>$d@p}wq41ja_R>f8hwYMkpiz#89*H#_*moG~`5A1oW03P=kG;0nv@U!OYuLOsf2}R+4dyIer}0mQ_}pivk;Y$a zObZ;7nA~g9dB^H^y6=D1BMmk-&X3pe`sM@uJSoJEbkm&Uck!pqLB1QE<73k|evx*~uQ%AZyWhBb)Qil{d5+hx2Apr_Sbkvh zFjwTV<+9>?TZ9ILg#H}m?&{K_%EMJ~u#SkK0Vee*keWbIxa*6v?} zeKQ}-54Vm{Uevl~%dCAi!kDvJd>+0%J7iyyy`%D9VuF`qs7*c9z6NzE`7(8?sUbcR zCx{XF=;}{HTwp%vX&B-xF$0_BG5n*!zZvpn<^mtb9P!!s%xtjF;Cz^m{5}5SFqfT6 zb6E~&jo|0V$*>c!uH}8)t{(F4?2I+<)|z!|ZCaOXfZBx^mFBAd$T7&p4>^Px`r&&F z@KgNoQ}`$k1^K=bdKW|3Cd5Lk`Z|<8NEj=B&A9 zP18KW{}c`SG3ao&dw@k1lo8Tlr) z@If2gny=Q~V1ukFYstED{Cs!EW4?PI_MQEf<3BLu`>hdU&)+;E_&Rbx>Lk{bV`Zlt z6FMZ#?-h#*;4($7bxCD1;^kuhngW9X)OItXX(7P zOs~xKVJxvp7y; zKj^nPdnT|Ib^TcF3({P;60oJcz=I0 z&W^*{^&Zx`u{1x-Y47dv*2gB{J*=OTLR{v&i!tnFkvmmG6~FOs^ctJz-bZ|3y$-rz zUeXnQA3u@Cs?{53_FQZ%H)KDLTF9G2kAhqhz41!f96-O65d;!?UtU1&&BF;MEq|1x@nTVP<(2y$FHVua$1A`?J<0EKDF1T zPil5zb-sl;!uRLzvde4-jka!$m0X7Sgw0^v+{bX=t#f6r_@QHi{nW!QCK=Yd`Rp}4 zpWPkec58&632R~V5XYN8{zkXxiTOzf%w22H+;D3?o2OpeTpemG=B)p*mFA9l=Y2sd z_{PKUe0%o6+B5I`u&a&xUfb(? z47;*$c&u^scdx;paX!Q$@@tSw&oBQOy`XKw$_ca&u316&2%irgSPQU z_%K61hV#z`i*LjTd)>#xL>-1LXM_EZ zy>jeq6)j;S*bnx?t^AMw`CPP*e*0|nK^#NN>D-_ZK8HEv+?i`b?$5b)ZjCXWHIL<` zytd=#cd=FMmiN{h!4GiE^xS##T7JZo=9jrRXgXcs^O}49KI90@6MX>uW^qz|N z{CORp^?`5<{4rYWSop$@nXl&a`@7F6mtoxGTxh#-rx~lFN5x= z(en$`GU$c4#eMoiTbw)EM61NLdOpOv&X@WH#3;_;5QF-^JS{!*+Vp6E?rj$82jVWZ zd-2=JA)fu;e6-i}e|aqDhK*$(trK--d5|GL%fF!8d=2poJH>{94HMH0<8R$~o?AZ0 zkS}ES2it0WvWx7Ib-?BiuSJWzhu{6rW6de&$a!;)#42)Ww1!=`zA@;A*EWAV&*R(| zH=8$}Lj%}GpJRyA9fQyBM~uY28yD-?T(FjDk9;^CFmJ@|Y$>0SEmAv%7(-o||7^^L zxIp~4TKGHr<+1#CKJ>ZaKA&D}!bZ}9;q%iK>(u=Bd5j(19DG1_)oaoOxg++NpDw-; z?+m)(IN4NM;(uZWwwC>6``BW6D1Bm%LtcU1bv|jo&*GdrHs{K@_xY_mbH>^m>hA3J z@Lqb{ye6%nWi*1%Z+tN1s`wqlXYu}y&)B$b%#ESOs|GKBtscOR`%JXO9Ce&S95K}P zX&IgHIGRSM{7+0nWBIbqKR=vang?vNxnW+5Ti6(S>Av@%BR=c@=Hxt{-|V&6C9g~O zd{*aW7;p6r`E}=-t`1}EF^<)^nIp!>Sh8hqeZC>Cx2~)a{)Dwf=h!)RQLM`U^209k zg=h|ZKJ(srGwyWLdiQ#cf5=x^Cw{CYnrfX5w$^j4(ZPS=*LYoX)!Y=9Td&s7ut#6M zO#GvEZf$uSpV4u%3y$6TlxwG@VgY$}d2wrveYWmB&-yhF*>}ee=Y|huO?XY3H00W> z9cy~<3w;)LZWsgS(QBB~#*enqYc`aos)>o`+*j+>E6*>aVKfeok(P;PeD?p1v1z*3 z8}f?mvD`j?pHItorMGgAY`*+D8&6ln6t7KxZPcGVrTY1xJK~BV)}bBhd-ekH1Lz3- z5o3sR77B5Vm_+`cUeFxR@!8~1#k4-3&rCCDy_mu0bPm`*wvTVJe+)TU&!a8Qwehuv z*d#HxIl?BZ+t6O)yJ%vtn7vNqYdn? z=ku%e7t=L%+qLfLia15ifIXvy?4 zCCBXejEVCBwtLVh)K(b4EYS z1^EEuJ=jb3);aMU=Y;MII>Wvi19M{Nsi%8<3S;8!J5KZ7dSWyA ztMX~;Li}=TPj8Q289uLg$K&}(*1!40cjXW9CFrZT+2`PAIRDnWCi3zVaE3h5S72 z@_6gRny?0)3-8Ytu@3!+*~~qkH(b^qM!82W7&ANUz{Qa5lf0I#gk$k zVl2hkkbLW`Uq@r5|kd1iYY?*n5o7`y6odoAZs zzD|CQK8d%)IP}T5STByna~zj7XfCsV>?_SR_naHPl3a*fIG^^MV2juWzOA{yS2mt( z3p?U`Iyc7LdU1@_D*J3scy04Uj=}kG9)=i`-mzs~XE^tR_Ruc&-TD}O5_84*9b#K{ z!{@j%*m$3lo*FO5!gp~zKC|;_%^DLqQuTLns`L8)GWu7K9z(CJ5$D0UibdrS%n!9w zxm7WsdBc9ulOaDS&K}|`pTj(s`+&c*W5!7?$@rO@^n;DyTU%qs-@0K3`N76z_#Eb; zb7%e=TWiHS>2yR7FuJp%e>($uu;a#*sN$LM zbHx1Qv(qy^C>!K4Vkcu|+=e*LJoVn}78`8NIbJ!iL0gPHTPBwAJR0G(#AIHZW)J>^ z`Nu|?)6TJRqzP;g`_HdpC*Xh9x_Rn3&b_(7X46b_o&NhwY`M?t7@c!tD5f#)dX4PM z7Q5*&GWO<)V>EW=(4ZZB9`8X%+zvm3-Sq##=K2hd&#_vk)(Si9v9#7X;TsrRHk@u6 zJLklFH1^)xd}iydN%M=XWPjNM=S+-YEcv45y7eRr0aqPd(pryoUE>6ZyLkSD3#ZEAEk_ zQwy3L>M-ha`Y-8*_ZL6XUwFQG#22TDa%(gV?4x`cJ8bS-L&m^4bZ-342GJe%+Ho3t z+9>vut1=&*XSRt?$p&2&_7B)ApkGh_-EqNY@vWQ}Ys^}8PWU8#%vG;NgB*|d)sJq? z(r4pp-m=a7S+>)2ybinT|K_Q6ZB1KS=AAL{dgdwH>b2+){Wq_SE4^{9&1q}S>#^I` z%md-I{ZDKt|LOZi^m(}Ut9a8n(Z4<9HucJ@rSk8rIheD~kMrqsSkpsZ-7(QepO+uu zGl^Y>c*JM1hCSDMbWEPZXHXk5cf2MI;uF#sJ_4J-ma>`FxN$e{%_qL`;BT78#sYNG zn0qhBVIEj(#?iPMN5={J=5g#9+p&4Di{^nEhZu<-S=($k-LNLTuICvO?l|8V{4xFoUzF`(8;pb4Nlwmj$X(JLG15>U z5yR=XwO`V44}GHYi+p0oK?lqU{;N5&f5>B4lWG{&A>WRF$=~DC^V_UxeuuSVy{R=A zXX}6HdAGKVgL5cuwf^X+waAuHeM%ya9~afla&u`!qUB+d`*lUsD2hrSo%<9EIf`y@_t z?&YQB0L)YHL(ENj-9c~y(2 zUo?vrI$rkHcsf_khqcBwv3G2NdF->YUEYI#z_)SU`N7UDU(?w0@5})@;x2k*}(WKZPU*%#X4{Ii$d!{e<}x6Xn2 z=(yw<#OZuB`>FK4+gqg<-d;CaC3o#}IW~UPkf)Ga_gVSU{>FErFKjQnvsqaG;!Hgg zv_ZV72g05laUdPBKKSKq5gWu`G(Y*3Y@V_3zHY56@98mYk$LK|{w_A-cMtxJ&*8Uwv{dmv8pP_|5yZ`e?*){&V^E1>h^!Dfhk~0*mnCCtZJLY^2 zF&y86eefP^Fxv&bh0jde`IkeCWIfS9$HNC(eCpT=iIca_o)KBg_^I+QWvyc+xKG-@J7zo@E#KU&eUo73DLt zBi5Sw2fu>8ofO8vXE)E}z0?Hc-o+5kxwUEReAc0F#GK>9IOosD?|oFRU;rr0g^%<~4@YdnTrw9jsg*kQ*_`_)L? z_t}iEb!842J8>0X!FzgdzK3-yHrG?aC!*u*m$hXq&50o%lne0Q{B?PFwu7G`o-pT! zSj+nGJbu}b&$E8b9qU94XB^pC^M*Y$m)HziW8R8=JeNO-A^+kW`rOVD`zy9^4*s8q zc=D)L;PX4*G>Tv0{2CXrh5VMi7HT=_IAR|C%dQV6mhxPmk&Sn}bdPPY{>*c8n@)=x z)QpWCJ1G9P7L2RMiX+(ypTV3R;uv{NW8io5lAo(y_R%~PGtgS&$_COj_E=0dX@*Iox`FGx zs5P_M{2;xeVrXN^KjfG37u3(htmdJ4DIdo#V88i5>?)iCpV8kO51T>v*=Fm4KWjd+ zU&d<4XBj)%H`r?Hm%f_A{7C0=u!q)+nt-{?zMI=@Hq0G5#V+$DJa)*B_}!Qr6LxX% z)!eeVKC90*#QHwB{4zh(IGgLn#GD;+b7CIrie8wn;s)28QM)%+jH`Hp&p|`@oaU9! zPLr%*ug4~;zlv}8ZH{Bm0&zSW!S^-3<`SDo_t-p-ljG#W^Ap)4bBQ*nNr@Mnckj(_ zFz2i}+DQZ1GxNt77#sihd>Z8#eKvkG9d|1Z@jAv^PK?gVAsKTxzka7(9^>;`BaX!w zc|QNgd(aZ=&fI1j*a`cT`B8H0{~uH59UfKH_3dZooar-}Nl!pPnhFXkMZiW;P!I*B zsz?z9!BE74_$Wm|1VuqX6cDT^C?E(}s5U?;(nRSHNJu7`-piTyTlZYgT-TTTk3h=I zIeV}DTV=0(LR`hQaj)ncc_V8B`zD9scbOx8ms$&U%2=RN_&nkXa$f8OJK=t~E@Eb` zo9pN6*daLq_lQ=bHLL|bV^7!~^Mux+huA*rjvhA7rIM49gXRmwe%u2&6z5QZIi)6@ zTSKgAexDc>TV!2u9mE{e6saR}<^kJb?ue@xJNg0{W8yPD(C@1S>>54fp73+jMW|h% z+srTd6#kR3;otv%eF9%ctpfYUme}LPPxCeI6WeD$ir3+1_+4TN;zwQ|8^jOdBk}XZ zK-e{QfQ~bcXl1VVkeDjh2ZW7sKj5u-4!_;&gNskLAe=pXNa{iE%<+79zf zyvy})4_qhy2-_hBq5j49$&auf#tq+z-t*q*1Z$G{CcbA)lMmttuyy`Vk1+deXg>SB z)C;KnUJ$5v@o&~RI)kQQe`qu{L-wM$C-#o84SKDy8Tzp4tLB^#&%yC$pCaJT;4`rm zYCFVS_z?1C^o^K>bFZAE$1Ch(c8 zd2|gw!*${#$yu;r@)&YP>MHbVpe0GXked6EH6?_ZY zz!(v$lBW}g<@#&MfzS+m0r@4d6Ey~67IH@Hp7@9NBbFv_K?m?N%r9e(c49;HDsn&U z0kZbcb!?QM%lS#{hqXe!fEMun)S`*an18MT8ztT+?qCeLUV3WDZ#V})JV!jq&oj2f z9^}4UBl#FUk~Ia`Cb1G@&bq^o5D!pWAzol?Sj&tZc@n>mZ8N6C1Na~AmCyKF>>_vl z=r#Tl@E5!$dd@uY`{eLw7w=1~hxW2g$*X`|me(Zy#6RTpme(K-XYBdR_2SR@dFGY5 zpiMc9bLvg_*uq*c%1b{PEQ=on#J#ts}V;r z@6=?tf7Tj$fRCzTFvDrMcXS(D&1oKEh#p`Myf2!7ju023J=g;40qw^RF;1)zVo=r~+j|FQ2KoaxJVieunE| zESWEImRubLyJIad*Jv^K&A*9rh}*Ft)&u!Yt~SK)GT(e3+r@v8E0gzguY8~#yf1o9 z-bS29%#Kf?=OCwv&TW^SLZLF_ltkVr&HU+{uwvMlU#%A!yXtD#*fd$HE0~VK|VytVR_rzG?t9V~} zA=w)sb|Ho#p5Z#M9c&z5z_2m&)Gmrc%{s(`7?Gg9Tf5V;w z|3^>o9sCSF4u6QPqVljT2{3LqE8bqV;gT&ta8{5JcQg7xnbAnEyk=P}AkEZjU z)F<%stU=y~oCYl;*W-5>L&gPL;O7`8#)SWKeT+ZXhz4?9=qtaE-Q%n1UuFLAUHA=t zo}b};c~90Tb3uH=dcy9}I=+Vfpn0q}{2b$*t8KAv$k*`+#6-kG{LK`e{YuV4u1L+C z`{y-z9o8ipg3U6=Xf)T(+GI}n8fys6!nW{rS8tQl(jj4|~OG?&^W&v9Unke)Sqp7DFEVe%BTj(m{y#5!kAuq)y@;s*93a(jLU z|8p?={2S`)oD-nVK)#6YC$1oNVLq@s{3P?qI>aY)-MlW>#(PuOAipLbBsL~)#$Jd8 z@Q3{EZTulQIk7Z)Onr~o75|6*p&|GIUY~1akBzmD4ty-2$;=D$!5ZaS&{XD$HIl3M zpsUn!&@W;}w2IHz4E_-t!OxO|EBDOL;*Xgx>=OMTza&n;&U5i8 z>ka*2j)}wZbHrHWyzI+$6?ldX&#R%ggXcz2g(rmv1iqIi@SJ{X5BMPNje9yTxdQe=jfEH~ zD$h{=NqAitC5#m22pfb;0@sc0kl&JjF<)F0F&Fh{Y=J#1G!4JQI%W-{-_(exbx<$k z8i+NqZ|t7uJ5e_vKVwd?ch)*KL%hQ0obP51(JSl|y<{yiM(7|pE&ZI_3wbtYma%v2 z9RJFiB_?5R&>`%Dxx((zAnNeMRpeCoDzpSYOTCXAoUy!9=pfuBJSdD79u?XNF5%dJ zj%Djj#1iN!v0P4L@xRO;K98{{jw2SO9)l(lHxs9$>)0`Q5xx+xJMNoxgP-SX_*Y^H zbdE9SgWR8Wg?*xdtWCy~_!`YXPtk0~lQn<_k?&IDpf1Hc;V+1pm`}!@`#@tD6F&3W z=pr!~x{Yter}Dx55zld7xix?tvyQ1Zu|D`dAKVMR2E8Ee!oTvKxxEea4oydcxJT}v zduH9?Ly4d8v&5VD7S=gqfG^{9(IV`O^-UZ}e+XYg>xskhsptYekvx@Ho9pL(@L$XU zaW%S`t6$P9%sS?I$JBP%ZzFyp&!N_dZ$|ggH0rSEGBGLING*iE{M^0+e)VsG@#ky1 z1^Nx~0jvxDkLEHT*dn%sy`zoz9j=T1B+kch)`m0t=n4JDxjGyF#y?R*WghSY=q2?M z?4CKnU!a-j6@GvkAh{&@0J$KwFMN_oXUgs^sB$)e=k22@_$l^JaV z{h+P%%HwbGQ}`$BggA-#4jrQ&i%s!=;v95>b&Ter;q1?Hf5Zu_b?%os0&xWQ$o%Dc z2Z;;u>x?;eL9Yv%&RQd;XFgb;=m46;z44i`MUNO4v?r%Q)RnkbVrn#%aUw26cNlBd zKYB{+!xOH}o!P+u60>r>*cCArz72b3PY2y5=10%T`Op@w zk6u*ZnNsxoP$Q#G&NWsFj5+HYU&rfUWB4jGo>~U;#|QZ+TFo2)-)C)5yTc~1hg|&v z+ayk7Uf7$o{MM?{>wM)*$1`GZsP7Zbb!aWZ2y~x#gt&w?hbAzl>_4!sxR%^AP^ovY_e{-$oR>XyVmkDT*a$yG ztrSgSe-xjJZL;psPkblWhA;I9VS(pB@JtTuhFAqHLl>#(5Cf5~6HDgyD)70i8)DB~ zT@pWzezLaEaIS~X#QWSMb+laV5+4oN6txs$8pZrydJ7U|!n5;=`hB={jOwPynl2c(Ly9DBh zoJO-o&<=7A)(<+1Pa&44zJU+S`5v^JdM7ne#t~gXx2X}KDfn-EO0M2R{T0pOgE|U7 zkNz;`z`XGFT>T0?V4m<#e2<^SzQ~!lAMPXVDvUk?X_$nG5^{ux@fWKe;2Z2ELd3;XbHiQS)G( z@^8kI`#@WOYvq2Jb9@o6NnArbLXOUOFt4l=Y8CiEd^MU&Uncb+?wi+UZn zfsSWbl2`CEtQ&NMwaxtV+W3FQH&>rUuc(<&i=Zw+KY*6evVVWIO8&k8XMVa0{2p4x zxH8U+DRCb48rA~ifTrS~7*p0Nd)R0f@dEZiFBtxh`~utIb#i_j8%B50XI>9Gr0&l9 zp<%>1XeMKX?_v$pUrzrE^(yiot~)7Ec*>ns!k19XV!sWaO+B5pgJy7@=nJ_Oc_Mvj z#5&YZ9uoQs)UJjIw+c1^yP)ogU1L+sJ+?c#+317T@k-lV_&D+et_9!2 z@9_To9@@qlW-YTeiJ9o!m<>%p$IugeFks)geGKl8 zx+n1iH3P1N_rXtMTdZmJjEG-|Z-~k9udExsPRxjH5VN6+%mXbgJ+#J9v^=r4YT*n{!SX*Ie?%){K0 z=dcc$V{8o_XMS>ikU1j$#y_*($(^aApgnw#IEwkhPZJX`FW4t~g8wCE1@d?9g*;(~ zfdA!w$!EDAd<3?IrlXC-N%(m*nz|-=ph5ae^+H1-Pat1eC7|KtvaD0=8GEFrz&tW8 z^n0=YPVX@F93YN9C!_@QgBluf9<^?KVQ$|Vy~_3GP%9=sB4(zp#Mc=MG!H!_{-Kt@ zSTYv)XXX|gVK0FBAeYCN@NaC5d14%Ze`DXQTh<%Cn7EhqN=!mL!g~?(V&CMxOZ zj2R!yH#L=xLW}Uq`;g zI>r{bR&)`qz=qKoUJpAW24vmv{?q{Q$JiYHggp&(nD`jYAjW4c5sv^h32YFZW$y4> zTpzlCW)h#U&WSP5IK~={V%+&YbHEzwCZIoz75)-!r{0HOp*BE`fchnRMBSU1gndo) zp7lk}f=|RYSli?nBMSL;w8|##HOx{Pl zL5_hQ5)ZMCcpf%;tmLfN80()g!0(ZV5o6$6*k|VTR|&+mXfor8-R=?4d&Y|Q#)q(u z7#p+>pF^z-zmvNb4n}-}%@AiYFK8;c9=;I&fTq#ojSry~#^2qio6KFeU z7RXJ}MB?9W0=9`B05xCi0UbbV@x{d4tVPa!us_2Y74l8?jEVn=AE-&9iR{yGU5shY z=Gf21-l%z@`Pe)D1KVOv5euz?XM9;F=oNmF zJQAJ3hOrxb4||Z<2sta7%{@`eVGk$g%Za<22;>xKD?h`}liy;4tPSjibxXX7jbqd3 zIW@*|=^<<-G!yuDbAf+fB{&3XV(fVmFHxgseW3SfDr=o<#+UMb^l_l))NiTP5p!S* z*gx?b_K)3TL&P1__=u5m&vK!rgN@*$xpu}m7b`Jt*a@*4wMJq(@-g;xxJLS*xlU?( zj5FGTyo_kt5WW@-Ar`g^wUSL95OxXM1?rOPglz&}KQC~uo}b5N@Kfj% zW6vD2&hd9>DRYa?q6KI;aVHwh__5DN{Kfs?H~BYt6FDfpllX-=g?nd>=JHSc39%G& zj6JXpokAj$$mWt5ChL`R7UY>Y7}hXd4r!_Zh_8~#tM#qX0J^V(<}u?>1njh&o;Jq+S~ zz!vx#wJ+jrG(K0KCk8?ni4~~d=k|-qA$AG)C1OY3kDP!!fcHo57)Sgvej1%Yx3O=o z8^4YJAx6M9hzs%8_-W#3;CpB=_D#OZ+_Uz$4(QTb@m2{ zGsqFRPT~n{lJR6cvHyi05>qm+#4zYII-AQ)(LQPs{48@oT+Fzmue>f=fVQB$TsNA- z{9#kX7K{rTL5&K3PYsWphgg_7A~z-`VvUf?kt4DJH%sft(kA$+)A@ zj6E?TH4OX>YZkjg{~34IA#09UlbDpIoc$E+m4D}a6uAhRf<90yXB{%G)Gg2p>R7~be4q8eb>i0;1MHsl zfZssZh_#8iiK~ch*)zlMUlH*ACxml?SHM@%2S@x%Jqn*h+)1wx`p6pNT8T@EXPAFJ zsPW{k17C;@lhd*G$a}eGdeX$+KAh!4WK>bsKn*uB=}C=4?l_z!!PlfpTSSzx0n;I1z$k?jE+%DqK-`r#F$Zc zrPfYv&{&{eOpc81aSi+|aR)y`%u26$?&ldp`UCLyx&A`lgV*MLcujl|no8V=Ut-^w z915Gl&d_&aXLJC2!FRC!iD&p4`-8+g*cCRHvqy45;vecE%o+6`@&e*m;#S55+aT6p zP5^u5>(~vi%ll%F%r$GCb%uY*)t89HsRQwuni4q`norEn*U4pBJ7@*Ag8pI~_*T{# znnC>oTShyGP53vOMol@FolqYgvfPyC2a zLF3r-rZ$W2llSGchn$tT4IhL)k`oY*0$N2a3co=;h1aeT@SV2_j|fwQX+niCOkmI9 z9-)IktW7L#6s$s#P$=jH@(cFg*>5MG!#5M>~^?o=yHl9gO>D%o+>rgl+=yqx09-SJU`Z)PUHe`8KJ$Hs zc!4^{IO(hEqVJ;52;V8+DMQpDYK<`1Fxc>k@P}|v*eo#qErd<#CiQw@v9egH)K}^o z3anSw5?cSU{Jr@-+8#|yYw51So2fTbSCUtf!vtT#m-t8+C-fEW7KRH8g;T;E$vcwY z2sfl|NbM3vr$?s?wL)#5@J8m14EZd2OT5QkXi|7f|CXL0d5o}Gs1j_dO)V1sPd1Rx z3ZDx7g{VHNe_v=NY}Reo-7TOaXfrh+ViMwqL-K5t=Y+<>VePQCPB_6z(in56B5`B z>%!AQPoY>iqd%ixF5E8|gx__)>;5a;C{S-jhpEqzm$2W7?@7mE<5@T?8| zJb4Z=BEAr9oGFmck)ucm_n)S+4~@>v5w-|bf?03YUnATq^cEf!#tZ1sV&NlUweY#{ zp74Ue&y@+6b(gbR$?FXfItf<`e6ZKR86^B2^(ge57(REt5q)MXiQCCDiNDE($Su%% zG#|gfGhOIIXd-8Tndhg3_k?Z2A>pjx6~aP5;F?YdhlTyZkHRv6eDXzMsDLlTPZbN- z31~3m@|n;;-$1`s7^VzUI;b7gHikBan~gUcTbNpyjAo;`M%ZoHZJA}AW$kS1Y>Npy z?K|x=95Wov^P1;;vw9xBPBtWNKt`s!kOjSELnb z-zL6I%#O~EP6|y5z36|@f5LOZv$}3|-G$lyX`exo{-Y5M}`u`378+5 zkJL{VdI~QI7LUaf5^ne1?mOi_<=++D6+9b08*UhD7#o`yo7kAzn5xt2w5C$)W9<%9 z2dXz3Z#14VoiaUSdC0QTy3)Gdw%+!l{Y861Xzpn4;PV_|ziq$mnDv--rDdh1lev?5 zqj96rVz3zS&)L{b_6z50^R;hN-=@3?Z(?A4VB8n=MYlz^MRtXEg%x2=Xin%};dWt| z@V#(r_||Zhuqm=B@>=w@=-AlU*vRE zwIgad)c2_QG48qeyhQ3X3GD^9 z-ksG=eAV~5?{z%{>iX1AsP|DCjw*fuJD}@6u6(?1#(pGnLS0~ zN{im2|5d=ZsPeH;a2lM38N$Cpb7OPk2w|?USa?O~EyN9R!&`z&ctL$Z-K*?XoI)>s zFa689mvz)#$nmIAcgb|gOwuN4yVASTZG=OqL#Yo1;=V<~KB0BGb^3eZN$p9EpC>P- zWg`I_7HYXzPfWBj!G8AC;QJQ^}{2tkaq+~(B4OQybr+5bUtIj+V$r3dOTDUkRducDTH~&B*LCoB z@O#7Fus`8XP?up|H<&k=Puox1m$;U=l7-2_SV^p8WBJDNR#&yUs$t`Xjb}8O(d5pn z@4WgJ;lEA(+a%g3+Gth7RSmx?`>L#QapU3^`7QFp_OSh3^SkCEiK(blMUs(ZMYJO7 z3_62)uiiVvJ;dGgO4BP#E-$(KL*);Z^DfT2c#ZIiFt2i6Wv|P$e-X8+TZDSQq9k%uD5`@=q0=Dr!;MqI5^u zj9>J8OjSAAX8R=8Q%BK%POLp9%P>2B$M zv;NKc$9<3c<_6~mFGem#h9-t44y6yJsU0s-mMB||Ta7C$D=atLZ?=!k8=Ke3)ycIY ze?|WCg5?F*6kbz!hj6CgOo5iKZS;zgkOYL>R+ki zz0-E5?RDWFRhpMR_d+P#l*$Lz43eF zd!u`!6_JWayKuX3^HB3p?_lrX`oQ|YWZ`W=2`a&(!llrq(6y0kBluEB+!0@ySefXU z>X_P--jlv3b5DkSMC#n#^xgF1mGKHWYlWf0(AL=2_=AuT;=%@@sW99y+%Qp{s6M7V zrnJ?!)uXfQY4y(Z&ZOl7KR7BmD%m{IJmHV|W2d60q7nJ%Ash)G34bR1DC9-*B8!E7 z(SFemu@140@s4rwlBbhTCs(FcrY@&1r`u%OWTBW7xlX+Yr-mFkuX?@8Dqw0gd>I{hO31E>HzgQ)Mv@hl8uDDiM@#rh1J3pp?|V}vR3#c^-1da^z-Q_v?sJ-nPC~Ui<&sK1Y+>6 zN>`;+EzRa}pBX+g^fC4^{w3UGy2&&}cuSZsJR!J*4~-uhBZi2fiO^hat}60zKzBe# zJWV~dTC3JROMjMrCG|>bT5?*FxeLWZ@hL)c!6~#C76`?O;>7R5isXvq!qmdl=jqSW zr?t}>y${rW$QfQ$UR9E6Qmrsn7}4<-mKK(~t#@17+uGaQ!ZY?~?0*U|Atf9U_}VGk zDVs?U_h~(DK5m|Cnrp&7sBKJCCMwtJuhp|>@~iYJ{FwPMo3}O88fx#S-%ocJS_*7#<-dkG%46$xW8~v z@u1>mCCf_Im##0JP&T3Lve2r$Rk=ZUtL&|^qoqen_m}K1nO;1-cy;0G!hHGI=-B9Z z$?}qAv$|QOM!GSvG0`pDE!^AJ+ZT7o-BYeix$@xU2QQz$c>dz>3&SsrIX~unV}Z|J zq2a}b7tdFouPm%8tO{HSTzS0i@w%D5nLb`)Kw>~*OJ+-^h1x=W+48bwW!}oX;=aX>`8) ze0ksEzQuRD?shqB4%=UbzYNs9cBFQs>Y{bgfx&@6ij)So!9B5hV)ckiBQBXQnlFw! zKkoeEbBoU{6P`T(mq+$Q^{^j~o zeQDdGwnc82+x4R3MaN0YNsH6yG!h#%&os{zBny%>9hrir;CIL+U7B!t!sV9LEvpCC46LbgSGhg%F)%PNAj=>kQxd0E!rtPS>X+(W z=DW-v+dj4}&s(0?DZf+x6NOI{+KO$(ol82GoDzb<3}JHdy;hIaGp}x5-8A0^^cKH6E^SzFjz*v<*P?7i$m1e-9@Hqti0I>72SyUkrpT};&eS}Uy;*;3XW zm$SOt(%aHIlRJ}V;%DM5V=ZG#BTFOg!|lWTaY9eP6R--S{Glis(;iqi>_1q)bv4sf*MFh6RR^#*wr! z7)O{!WVMr=vAOV;@h#(e!+OI?b!B#ayYwzS`+Mw(9MleKQ`1w^?NjYjsYELAZ~Wi* z@3G%w2cid}p-3pwUic#XMfg!+fbg~;p;qK4VP$k>bX9CsY-4<5{7B+Rg8F5nbfffL z+Fjc4%6c2ehn;))`Gk)wj(x(~KMRm=TX3G8Q{pt%+Yku4Kwvl*zzIncR zoMoJ)m9>@i7onA{m2I>zTUaFU`4K^+!M4b{$a>jw*^)A+%n}Nj@L?+qD-6%8&#UB? z#O3%=dYW7U``SFWkv+1Ee6Xj+ejfW)e4ly}wVbK?so6OVszG(CajNka^DSoL#zVG4 zw$~l6J8VvybCPS4YjytW{MQR!FX&#_z3{kjQ_)RDFAC2JcM2pDQwygSQdjWh`|=mM z7P{*5>hpfJ|7!on@{Oh1P;Hp4o2}cO-knzCYJ5RxL1>3>hwroc&+13GN4VL5th-Wo zWsI;~I3kRy8C5f~c4TcYcQ5zWx~+A4J$pS3{0;n#Lybe*qT8ZdlUtLlqdCeP<)Z1L zDQb(_-gUm~{J!A(f~Lhyi*2R0(ye7%%j(MO$_)(-4KqT;RTWqLSEy-N({Or&=?$JO zd$w#r@q*%Lel*{fXUqG|@|)#F!;6N&y1}|fwMRAT#yz4vqIJQ#;9=ikpTFK;Ki)mw z{XoqFHQ!Z#SG}`pXVq}wD`8pnvTAFMwMJyw{c8QI^-X-SU=00Jja8K<$wXeBfbGNQN7KN@VpSvna#<+aP6- zGR!c{(Aw16wBEel9JNF(`L=vpoiNKjD;qa$vv0F^6P~m^X)CvuTc?<(m|ru#W+WEX z%LjYuk7K%K2bU@zwzfg0h5%7@v# z4{E-Bq$h@bShSD5`A38wwI8)>g>~t5=?4Yu)tz#uY6N@Qp6(}X5L#+2wT;4%%#aNI zd+aIGn|Y7y0b2D|{XPL-X;@%{*+Ff8DUt}lKUYMoL(kj!H=|=@|p{Xqbx!oHAeyCCykRFiLcj`&hk+??o=Gi-< z?#;gAWr3RC6m^Q)+R$1eyMGMKqgNPj8gKerxY>NO`4wTO;1`@0r=@`)B`C{L^HHfR zyld_t95Nj;JuLid{5M;Bsx(v@rU;FMztz99V?fP`nhCi|REa9T3!e!K1@dxgYCd74 zIx<_&N*mIKGEv_L*i|gbKgqR6 zxH|vp{1=2x!d799P$mp?4RjSc3!M!e4ITZg{jBGV=Zw_9BJy{b&Lz(!d&GLgZVKNN z{v+^5Am5+wpYNUTeZcd8XKDS?`eNZs-I=<}f>*e;{#L0XN9x;p+j?>MPX?b1PLE8F zSQFO7sr0Ed^G0oZta+^2WAoS!Rsncp(MMPZA=O+}lE?k>5z#8>Jo9bZ1a{Obl^ zHyGb=e8Z{2KMnqAP*Gk{erxHirTvTg7ya$}+ePzh$Q&|@D^lCa^C{lZ-qEg2UYk4; zJraE<^iJq?|Lgv(o~@op5uZvH>^RPU*#$>+D)-)a+eiMr># z&wINBx&%6gJBFzn|DF6hIW#jgQ?0AkjWdihY&35)@3QT(&B&XPciMH@b+F)IL6f2; zMSF$6h5Lj-g@X!}0;QmjtB?EKmJoeMh`jxQQt)U3E!@#8|N zaDUPLMYcj)VW0dy`OTcooS)b~u^+Y^wj3}XFn+Flu8fo(PAT(f#FO7fzm0APZ3vz9 zpUrALb-8qHI=dG$>dL4q|5X1|{jY%EUsSWGroFqpyHkCq`bFMFS-*sSu@8Mdem*`l zH8izF+oI8nWz*aAdR4F18R`ssOnXezEz>RJ!=3D%>`4J1)JAy2{)YVp+Y2_44{Kj@ zU-Jax1mm;nv+6kgI6eEE<1*ti^V9Rwza)Q27A6W4?9W$6sw4Bl^TI=8&Y2Z0{y9JUu|A!mF8AGa)Uc zjTNfX)#;f+JAplRPs)?37tnjObG>k#cAd6OU{9ESE%qaRl%DW6b#Lm1>xb*fz3A1L zug+H+8yXu{3FM5=3ws3Bq{@z8BU7ty9+NUFDTSc={fmZ zdPnI6rjA{nDbL)l-L8#KkI&Y`3R8utx07!tTMJc*s>DyiCgE?PS+ZGjk-*PYhznu+ZsV{ z*W23(_Xu5ts|9L2^8^W1ZLeBiweGj<&-#Hz=0;{}RDF$ojnfR%47=1_VlfVtdf*@W zKeE1zeb@`qFU8(UOTj77clDM)U((OQdi{F+QRS%8L3%EB8h09>Fh60oTkY1hwzam~ z9k)BEEpK&hb#8NQbG?)QPX4%paRt2#dl%Y@Y( zRba?BicJ{vO zdDqiQ__O}c`WeC+VYFwoXQg+g_j&*G{!lO!^h7+7hY}AZ^qO8{59L1fK9%~|3F`@K zXGdp8M`uUpe%F52Lj?~Ns8l_`7h?55q1k`=qIjETt7R1cCN@l3UE8OYPc6g?^q-XI zOZ4m?u^+u8z9c>-GA1%TI6bKOG+(8s($l2AN&RN`X7^9EKh<^SXUWeB~4do^4OV%;wG3G*Jp>eh{TiGM~p%=A_8nxL_EEFq= zltj=_X({(fS>N+S{S)$=u0b1!p0C444yuj^jNzBcu-PrRRa+xXk~F9t3KHib5Y z-i*8%p>OK8#BGUdQ`e^0-=q%9e${KrYs%Y(w+-V=<4n|V3|2!nj~3Il(TKZ1*kjpa z*>2u$WUjm?YCi%(BXPy9Fe-{kz%{M1M3 zkJ98*A7(zxJT7NEs4dW+!QSOrfoDbVY^2@-`@r-xACPl5{RGBww1AJMR{K%vqm)s2 zDfv<|o`@&j6dn+67kUe`giFHE z>MOmH^iL4?)6+pL%Ne7V0(~RX1bh;Gu;d76eoNtqc0_wwxJ6Ke)9KUc9l}asp+LR+ zpkUU_+DPGF;f2f#8G4iH$)}J1FWq0d4f+jw_RJqsA5)2K_Xy*R8MQlZ^OknQj3QL76!n3hwW4Fd{jkiv;PTZNiGdVRiHMK9jFU{Trdo%1k z6X#R2>ul_7B&Hu_8D%+cJ#KAbZ(+aRalfN~UjMwt&c@F5g0!)?x(c@mQnqtVcTRWy znD=AeVaH(yJuk~_%WThDpS5wH|pYW%;Pj&30pEjH}6q}39_gn9`zGQ#N z{z~2}c|%=8U9JLG!GgjCh3AUS6_uBimt0?ZeQ8NqN!bxF^_1r4gotICH7 zlgcKQoi90G@^sPDMTPl=`O)uhfqi&IBk>_gv)&6mzaiO-cwy{R3 zMk)5#cIkKN@$c7JuCuJRt+xH<_|381x!t)ge_j5i!b^pXN*ZNj{+{JM%a02)g|TI0 z%U&&cwFJM=Grwp4-FbKCb+UD`wKlgl(}&bf-%d}Dcu~42?TvfmzeIkCkl$mFt39hd z+v>K}vETex&0jUd`1IizY78}TfqKM(`UUl;yr;Ya0s{i%)}KW`i!M(rPaI1hOW!GH z2zE#;-Nw|$^tAP9>k!8fN0qb6Nlk26;jqHHitZ}fDEuLOCbSbK7fvo5R4}OExa+v9 zGOsf4Is0?=HI_A&CB`MjJCr*V&IDM}mh?mMhvIv~d&AEMo)1j)PV{cC+g>-ec5E#% ze~0Q0)sw0wRkaf)2+gXSRo{K(?kj)P{896R`v*7uIKTRS^_>r%4_+I+HaayiHSufu z*R+&p{&TBxtHS=~&6b-j)cvl>yC$!#tF7zz{NM9y3u+6N6)r3MTi7JD7y1_TEs!#n ztCzEv^E$_Mj`h~{)}yAQCTi0+Nzd|E+E-fhWb@?D(VwF$Ln}ik{3ra=z0Emh6J#5o&)6=he(sa^9U38XhmTi-LlYORRro%7LM6*etZ)lKxkiEaH zzpc<(XkBeyZ7wnunFbjK8J?7yF|`E>?wiw_(~l(|OI{VfDsGG#qpicO!(Rr!49*P9 z41DMR&fi1G6R7W(3;l$(!p(u313`fppfp?>o)noBaYx^47HZ?Q@gIc`g$2T!!Ybh}p*&HZm?`L_Ih4NH!KuNil5|P>l0dCx zT4q|No1D|*{1J72`l`nY^!lw8RtVHg=z*th*;wFtsPsZoYn~(EyQD2BdlrDRjc)0Q zep|RhARhE;Ud@`ZW_yV?Wj1Blvp6MCH=)0syoWfIm`qyCva!EBE<|>`E3&?TnmxUP z-Gy$#^+L*!GJG!#7EY_DvvqvpfzPGCa=mW7Zk3#cdRMUiJGG9Mm|E=!Z?6^NK=NK9ZoW(%n(FV>&Z560R z1q6CBb_=s~vvdpe3-rg8<4S)+e?!<9HhymY+&s)W%xbY)>`NR=9I?DuUPD(ymnGkl ze_WVeFuj0y`7@zWQKO=jLW|-S#j6BIiKC>Cz+T_6;$y{bX`Jj?*t2k-YoBYrW4@!x zQe|-&UB)}~cj!6yRFE!6o1_KN=8ydiKy zpwwULzsYx#Z=-jkRHMJ}UhTWucf0>~e=HCS&}-N^);ZQH*(&MOoZ2oq?@H`eu9mAC z3>&id)Wh7v{Ilg}%bT`0ZBram9Mq%kaoywc2}-__Kf^V{^|13{=bw&09T{6Ds{@_Q zoy`v!A2Rk;`>HqVZ`LzzUus`!kE9++;Yf)I&>b4}M+8O$j`@!H#(2kgsjGiq|9$;B z;SSFoo>AUWUSiv5AR4$id~^8y==)I`7FVQJq{y>bFV#x5GRHW_NZ@g=?Oxj;#~_E6 zr{#5Ub#OWJo%vgYE(Ki*<_IqdHlba9yZlSeOU@>FP4a4NHMSm>9u{)J7D@|+GdM%i zL(;^muSZ^w3P*!%VTMp6Y^&Z@&7S$J+F7+D z>PFPf_0094XFGyBf(s)HBhSR2i4RB(NKp^XlQZPhCdjXwTAEs3vb|)RP!+D4E zUDvy=Dfv_K&kLu7$Asrx&$)15d!Jt3rr;dKF_g?QKo<}@u>(|!z5xNO43t{0S&qtmq-YMSKe6MADNnZ=T z7MvZP9j5LwDKRO*zMHt|%(Lk>y|M`9hL9iykhr@}vkeh3{1 z9+2I2Q*caROrX+V>3>#eD>M@x7S0GO0xJR^1V0G=8TvESIMO)6S&C>Z8Y5<3o?M5KiO? zU846fqD7>0riC_I&Ix>;`aDIiXis5%VtwLz;ivddvQzMQytTjvPIKX5VU5r*(J=9~ zz}_Y`5Audh=}qYs+KTL117d&9IpZ%o=sW1km2$-+tX5a6?F{Vp30UeToa5tJVLVrlIGg%ZD}jEWkA)!uXHZhtUT<7T#)rDOefONF(-b3F+I%e=ic) z#~Gv_q;H}$QEpIgP#-ruZurXhm9fTDW8!)^;CEK|!S;h~rG2G+nPZt_XWq^{i_7Aw z$gjvhRdA}{)}mXBCKXRA9$hlJ#8PT0eLye>_7Z!^prS!V?47o7ws7M20_K3Z#8_ga zCPx1&dfi-lQpg9d$hns$i6)8uvHr1fk#P}v^ydZUWwrG=?{nVip6MQ)Ky4^0P}?TH zdN}lO=%dI-ku$L~G3uHBm-@d{l~$$wD!olRbvt!l>0?D3H<>q?Ypu1`KkR?l+vl~< zo*x+R9PfNoi08%gh6{@wiyf=%tL)U=ZnNH&jR*fR{$u=8{Zr-a%q{Z#w12dJv{|WH zsV<2w2@LLH_+ps--%f!}fiu1{J~k_!5ylDo1a#?b|J(j^fpdY1P(_HEz=N>|WAuhu z)7CUG);T#d*Gg%n^fB}?Fn0x(0?W_VpRJGCAG5n1ZpSF+DCeiHPhE@h7v;AsXj#xr zIFf%PpWfK}o%cIOIz~Eh49}RKF{5vD^mFu_yS*iSOWKieBnYA!h8l(@`zQMwc^i4J zs=um!qI;s-RqLu{4}e^tvbwVRpipq7;L5kc#+r>a(k|-$v+mEj)1K3wJNB*9FIBJS6XUWYN0-Jo#8q|mA*<(Esyc&o$j3`KIRR0`f zy_3C7Jxx7j^=0*s)ICy1-wzwP3x&7p->MIKf}WkeoxZbyvw<7KH-?u)mqg?8(L2>U zHA9=Bv9CvO!+pwqN|jor4l)iht~9MQ?KbZ=|7iKqLNCQ_w%cr93;zh;2-gYsS?{wJ zS&A(0nBFnb+p<;Js?68T*YOOCA~{=9m8?o0j3102jUJ84QNJ+f2Q~*b2m1Q^`q}Hh z)qAV=6VE4}hlJk3YeG!;)cdKI9<@3CIsT1-jRA`7)Zy5}c_;QxtXHB}!j*ERh{=gF z(WD3U59(`_8s#p-U525?p~eQL2BtTJuY~^!4uO5eCDO~iN?oN=KcW80*-&zZiJ6HR zyJpwcrPif}Cx>U(9cSXCy(ij07#kTIxfH$>eqWd_EEht;%*f10_h|Ph`^kOced2Qy za})F}P(vb)=bSUopgAi2GDFp&DtoU%W6&5d1x(+WzcY8Sbg{f4P`{if^b*dP&xj`; zV*c6mbGCLr#W=;d)3DRP-Wz(|Md_m8@5lu@$a6n#mhGTk!cwecEf8u0IDQfH)# zcUS6fp+UMqdY(|Om210&7c(zrs0q4-_vLI<7hMG# z^>yJp;fQcf_(#|*JSQ{~)+_6?{)&7|(`ngfjgn9B`gaIxq_^ir0i9SYtP*|_M4Gg| znZDWQ=-eaEZ^552m(;3FU->UemiX+c?`e)il*qVXiQbw~V)pwvM(EJDKff z`a7g%47$(%(YwZJsm9~|(J=Q(ebCz=!_8iKEex`n=kBlF&6=8f` z&V*7^!xwK8=o@hhT?}0eYlNGOH_5Ku0poL~=S)|duQp#0ezN>zp{7qQfW0(o{PUdi zoJU6=;o=rWQqJQB_IeYp=xa!qnzdSIHd=luS1IZOPyoDrO0m|$pUYG>jMM5(pZ zN)Oc*f%xBHci5A*q;0D(T=?7iw>4!+S+1C`WMjdTa+X$ZQ>C90fACP|q0Gee#Ps6i z;^f}=-nc%dk3AN7EK(n;4{Zo;2yPE-4_qfmYmlE_8hXCx1?L6Vgw}-Y5qo5DbaC{y z_-*k(B9K5+dulzk%bClW7v%YZ*caz|=~-xLYH5-dbqm)s%|6XejXlqqm#rZlaUO9# zCA^yVYTmt$dmTG$J8T(C#?si_*xbfqMh%eCvFDy?wn`d9L!bt#4aDziz&C3AL%~C@d1LtG}+^?y-BW@m}M7+V`~2 zFCWC|Z-n0ne;WNXdPe#nrCm0~e%}gt7RP2eZ?;TXmi249jk}Frlh<_8e9}DEGS_lN zP^^koN>8%u@*ydvWt@4O`EAqNCib-H*ZDu?|CGu4$$Fma`bXxE4Ey|*$;xCpp3e5P zphvR37+M}&9vmDP9O&im<*)En_)dCHdY1}c3T3`B-)X_;_xbw-`viA~c8Bhd+#k6d zy&RnwpBR^Rj%*)Jt!zBgkFsB$`_oIFo%Or^cl|BuE$TAEGQ%n3DI;~}ugzbZ>A}8B zFbPkYpE6H0O*GwLyur9p-KcWr^f@_a{+B!xgP3X zNu?itlspfow>*coS*BSgkxryJUv@NkGr<}mqVD4<`Y*{885{?Pq3TPl2HbVHq^o41kai8(5;jH1ZdRfI6hV&slXMCwK zJ}b{~I3Ul#pq8{wo>z9A@U8Z()>UAhzYv}gsQb{rd6zIkSRhmigS0`~Wnq!@k8zHg z{fKIT+~isPv)TM+t+G~WqBc<<7w{SLgvkPXkqw1_5>O5bjPrW}`%06AK?3{d#5?Rm zvq#LB{Hgm>w^$%gV9%X%XXAu*0_T8N33n@ZXZv+NP(M(+8oC7nQ06O)D0LKj;X+kD}$z(b^(*qhkf3e5zAaKd)N_L(qEK=Z~5#Bo0gexb}> zX73>M_#b!J@5t^^_p$e}KP9{-Y!>1IXN$fSIAk_X*db82J}XQYmO7R?y4t(iS6EkA z|2F?^mUaTuV}{2Jjio=Ao&s_t&U>@Z^tn8jf@gQpANYm#g+?Fn+T_|~vqZDR*4WnA zyy(2>&yk-aLxfSn34wDn@5SDWQRAGQn4K7$9GnaZ)NXbN*QT$Pu8CjLOSB~#dsPeM z`8e!}Ptr}&5m)Kta1A~}(m17)+DW?q2B=R64+w1q`VR&R-|N5E(-*W+Qi$$Ul!PBn39;1pdPkC zpbjhTHt8(_J%^>4Qpr54GAHF3F!X?6Gvu=^4J{3$jiZe(nO@4yy&N+zx3RRbTrbc& zwm=A*!lrHlHKrd7KNv2lm$GO5rSzpV*EiQUku%@y-yO>w%e*Z6b*{84{ZaCxBsGBp zu>-M}qc2ChMY=_<4__bd5b6+mD)?0JaNuy@ap78_iEx+jp>TEZ>fjmSkI)~XL*YYV zf5abY9%~*O8Xp>eKkR`?b#in;zeTuBxlOtTKa{NX zxZ)N#H~Fl4HN?}5D0wucWtk|qrqj;nEKH)<-PqZ|-G>Od^HKR5r zGbY1XQsP_sqTf*7P;9p?+^(ZI~W z%wTPBwr{*3Rgn5Q@pIyd_!IHsSaIy1$Ul*-;jLkOR5Tb3J}meGzQ9%iUr{OC9=tvH zgFxQfB;16@iiGKhNJrCA>}zCVWMW-%T~ZzslYUTpFnex?`tN3W4g|HMUUK&If-qbe zp6v%@-Hj4n6J8Y_6)XbxcS?VX)+jx-kOFxoGqslU+Ij6r`bhdj>O?A*j3v7YYZ7Y` z|BtErj@P+<13!MwefB=bii~U(4H;z>rI6CnkhFw`JMt+6k>FZ?!qPFwF_JZTKxK?)67 zp1?WLbD~ADqF8o3J6NN4Pj*ilyD_$9Era9ZbmB9sGgfEp0?pyi$9mrz;On`0yg8Ym#c|_3*80p&&JOa` zLClq&k6UmlJ@mdtE6&ZnkLGF3gF4Hu>0Q%*#FZIW26dlZGrML!59hJp2QxURrRc@ z_ri0$o|Ua%t$wv;r~-3=hpQZ}vZiEB$yvo`756OcS$IPJ3Hi%%mgPLl*@lT36Ej@b zn!o;)9^l5;jH^vdObo_&52)W8xi_+}Vqe9m@=@g_WhG^?PsYSKIGT7Et&sCoJ~^lzv%tu*b=^gq)F zWef_=sr;MqZ^kF^jE%WJ7dcCDJ=UkKPdgVkhi(oHOdXhNJ!B=d%Zn3>6YeeC_rDi; zFESxKA^c3mGZp*F_m%g8c|wj+TIyPMRryt{{Jt;mUD3P32mLEN9(g=+JLi}$iCq$N z4bmaeA<;V7I@yUmb()7Ozi%kA*9EvpB7GdF^t~1&umB>iFu?)urbl6OKuZOBsela{SGBDCS+C2Ij-i^H*8y6oJ?~&+{a9w!_uhQG>0{Tj=MiXjC`ePzo`xuvT z{p0%EevS+23u`U5{no5`tO4u5eI3@1)sK1hvst8BP_Hq$VseGKRqGu6`u`~Vqij8X zK{-4ZV6Es3`1Ly8-ihrP7#6= z(5Iz#TJ5xvcn-!f$HVo2G1Oh5U7^R}-q3Ns2KrME={fLclFuZkB&Gysv8+{X8*Ljk z|C$%h3+GhiRB)8MyjNMTGV6x^F8#Z75LnWdt~j>h*c+IKU1(L>s&oN*AMbsI=Ag_!*N@bvE7Z71CCoGX{ht&+DSi~5Em%UIrMKx9Y@N}()Oo4K;diC&3eLW! zXQl_WK6|tFX1$jETK0uG7v`)%v)pF6x8fm8!~mR%?VNWU2;)laac|bWS?^}Po4GP$ zWyad{wLuRC^CJsW7pBgmZ_kJHr~5AXUC^h?=jrG1&x13t2gs$r2V=cs@DS|BumVwB z6u*ew&D-(1iMp)#-c58(cD3|2`4v4NU#4d3an5eu8M-s5>2?3T0>;;^19i=|8m`;B z;06qWxq$9y21>btkC~o1J+m)Pfd{sJfw^tRs(~i~E-JEvZwbPL*AlRdrU?E2~{ujje6< zH_)m^s~RuBv%5=RKbx-AyH-D3^>EcTRoYZJt@yNJ!V-mLd1ZOKb9Uz>vJzQ-{j1Vf zrT0kdk+v^&U+QIa6zAip4IWF0P-iAML zF1vGD=QQJXK2EhVYh_M@@vJ|v2TS3c+XOFVyp(Y;{h%ep>Bi!g&`0DV?h5!O`Azcd z#MudRW@kpvjBW~V3eT#TRWZGMdim#^kvtKLjxRd?80<$7#uH^vlsVS)s_0cQEIcf{ zII=jB7t4zcjt>sbc$>reiL-z9Ir%H?ue1j<9?YmsuMYRVEpuDuTI1<{Y6|rMH41Am zd-g1Bf_Vk=3J&HU%y&<=BzH;f6**Vr{FwD)md}mb({E3Io*HuNr8g%xCzJ7Hyk)Fq zY*b`aWOK#l3g;wy?93{i6+FJr9)0%c_9NSm^g~^kXTJ^`VO`6e$L>5fp>#s2HASt; zTa|xa@p*-3s1HXEM<0nl5>HL0CU2nUw>_kMtQLe8gr-uH=6REyaDVFAhFf6lVRriL z^mtmFYNGaO149EtljvtPo&JvY$9y9BL~>|iXfXF5r$EfJusy>)!=yvY7ndy#>g^vb zeYEtGW1k$W3(t$VCU!l1*|E!x9mJy2MWr*3&kWWB?pbcFxHYKL%Zua%HQVpgE6u$7 z>+#p)s}idco_p*{uUhAxMV!0(Jni$e@#*8!vof+WF2Ut+4fRd>H|agFn0{%6xG8i~ z=&jVZf;D|DdexpsZ?JyJe#udZQHlHG_s1WhUyJ8J-S4~=ek=SHXL~&t-UwsL#*~?~ zcK^{9#mGiI^ulc9l;xC7Ma%M*NxB9BWvb&*pIOXa4uY{ zyPnz#YoRyb7aYL}u@hn!<2iU1cT{{-P|x{c;={yX`W2Zo&E_nwb?A<_mEE4ES-lS2u5SDg3qf2z&tT+^e8_p3=VdNKr>ss{AE8EejqC?uZPCR!7YDiH-nqSVJ#;=NZ%$sH{66{C5^cm2 zg-;Z=C~84v{Snqi$X5a_7`KevCcGW8I_pNbR$z>%qifa@< zTKH(;w)}1Ro?W;#=hmEUS=)k`t#KUpk7Luurac*YGUOQq>y3V;pYX+rixVHw*UPox zhVX{q47%~>MdgcFy}uvS)?QL^NyWG55$+LQ3fB$BaEy(Qj*gBti8YBC(9EHqREuPb zq(3{y5NlZ{h9-tiPdlAXi_ZpqqP|Z1Iymb#ByC9Wh_4H+3k`RFuy;RWFp6)P%Y<+1XcU=iGA?1ASbUq#P~o)z`O^~3HvYD8;9 zPo;mP=M~+@tV^y-ny)ejZa>8+eLQ>)Uz2@J_Kut#Ic@UVLs=XcM)D(|X1=L6UKqshT|em)~TBdGZ=Oesup4|+IuI5^jTO8AuU`10}Pp50$r zy0UcPv4zK09$k5q_C`l;1})AGe}Uzwa-_Zmv#9qgezNAyJO ziP$BHOA@ZvhtRj%xil{=FYV0qGt=8*bL`^ zvQSy*(bPv%9RnsNCnnuAdv@O*EjNa54DT-AT|T00M498@>SL>qy?pfLqpu!$^~kov z+YVoaYG{l}XmzC3kp@Q_96k5gxyK$VeW-Nf@r}n@l(#6KSTV7}=Tog{t?2Es+hfb= zpVchcENTDYoYb7u(V@{HUsHdj|CPQeV^gq?at-i17NHkD&-gqek{${2jlL#ZgjxjW zX|0`kKly&r7@TL8-i*E(Juh-zSET>Op*k=A08=j!6}hDy;ePyn->w(pYJ%OQK6+N^(ll*t&7Z)96p(-q_fN zaf%w$cI?Jvdgj#0u0scd$=SakEhjC<`nK-*6Yh4?uAW4^ntL5+}O^+%zPg8kiGYJ^UMakUGv zo3j#+-~!Y|0qWsG7~k549@N5a!eIJF*W*0!5&V$$L)t?6#J<598`t{xWZe_Qa?i*) zBd2<9byF+3f9Cy}=ep0F-|oWQg z7fuZaeXosac7*ZsFSrk83+EB@&^_KgI6rq2^|YOE879H={f*;|<9A~fteLn8pP&&n zKySjw%39-B$ftMVo`hAX5~@N){#itdP7WPPJru+V&Y~}@bF(o#>s>d|8U1N=fOE~w z_>41_8R#7E93K=L6ni21LUc!DM-Zo+7oHdH1mhh)V-5a+Ij*_r!FieL(dyA`8fw&x z*NnGHv)r1|-v_m`=FZJS?akbq`A60tSzEHVWG^sZm3wDyIj+dN zBFL)@$s0lkk5lsI=g!YHH(MR}?M%4(I}eEjC)+e){UjzU{Bfi<(9Nqr9uk2gI2BR(kmpv>2DMmQsE zEu?vniSdc?jATa8yX8mjJ&IENO$vr8sY7Y+q`#By*D@PxVZNY0tf4*$ZRs!AjvmO3 zxZ5c!B`by0aqx5hH2!IPR%}*mXmn__Tclg0UbtS^Gk)Q+a9J)o9Pe;^TIn>hn7O5& zAN%~+Ojtkf+tAXXrHzg^I$l&(6wIrh=Xy2#YS_GEK25EB{3$69*0>MSzp)ADLd_Wr z=1$J4^i?;`;#%w#Z2XUBQqO=fCC_+<(2)BATqEC-xFzvm{K5F^vDahYN57AjMoJ^6 zzw()VZm-x6$JIC{M#M+cEZFetS5KjlUCnC)ORmM}Mc2*uBwA zJR5nIXjikycj52C55qmu8EA$!upg;;rk!X>*2%S#`KPYYuF<#PqV7TX=40R<@kx4M z8V`INA)0dEg3sZ-5^ZrioQvE?_?r6%CsOBbe$w@w>-s(Lx!VAz;%s!orRa}`F&D58B)uevVc(U0SNb#f0LBV7!`hn-ScaJxgj2C6ZBG!VYLnI`ZFgulk*ude z9q|`U6K9|kjB{D<(-Y=ic5rvuJop;+Y@2KUuDBS(VElN=Wa+c2*z#h)Z)yD&o2O?c?iG2X^8_c&ZL$_GB;B0iAc%ArM)JfDK z(zh=0TJp7|kGFBr_S{+Eqs$4(oprcZZc+?TvB z`4MMSj3HH0^VuACNAHfZ+$D2xZ=@3%qXhOg?2JKJg2vIt(Y2Txn;V-?Z;=Cu0}0O^ zzQFwmvD8?qwZLQOo%AGqC-2F;C-WM56k1E;`ek^|a7OQB&d}VU!FkgCx%+dsV+Ls5 zl6zjxc{$y(yJeq{bwbvfj5QhV<6H+%B+gKSUb@yJT$Q*g;ecSCZg^yPq)WI<*mG?? z%6pX0D4S7M8~cy%r#tDP?IyP$Eys>~@iCzh7 zk$heow`!i++;Z8}>7nT%>pU)iIlpdTIhOWT=q*l4R112$PNdK91p3hjdv?wvrI0&Z z7hM;%w%xgMZN*w5)HxL+%14wNOMe6R!hV*IVL57)*C>AyMHNLA@1bwFZ}`N>iIEEY z6a6RZ8Cv_nw@kK7Ue0|h{kUh$JnrAPHFRs}1vrM^1J{4%D{g?bv96nZ4*s0{Il13c zs`33n&ELxC%IK$&Pa~_ttHTE?4pwx;d*$zycZ3P{RWN?E7KhNGyaQEAub0=Us8g{N zL&8JCXGPA6ltfE{c!o7Eo8z0~t{uz^y1#VpaQt%~3Bxm5#!_yC{cwB2bvG%ipuWTy zkg>wAqF+VVMb<@J>n9621L+>cIJP+x^IPUnJD~^KA{}3G=5+vk^WL#~ zm_whnDj1U-liZltNS5IA#FY4yxO2leG=Om*U+bY*D0V5#glYG;1mMbC%ke`viI@wajXn^)<{*O~U6er|aIpU*C_~FgHlMB&w-e zWEz8WEV?7@j(r>%%h)lW0;d2fYxY?_85t^aP77Te!Mjl zuh9GSF77NjhkkQDHjX{08IvVSGVHD=G3u6m|J4i;88#^_5YOszme&QX_M_`=IHKngx*OiZOA4(J*>Aiji{-&3} z#kih3bZ({(jC-YG4vTsQ`|SAH@d2>`G4lae;rqzQxAwhl5==kVhJ>!1ReZ-m6f{hQ251HGt#{AaITZ4XDL$ZftH_U06^Ae239L5&R zLU&l}ITXLp-?S-uX7NVzCON|{@e$m2e>um zwCFVM=&)bRQes#W;W%?IUI$C!@O_c{A}2;qWM%hzbVF=I>}%?gKBjlg%gL9MgSqdk z0sYrMf^`?8un0SF1-o*j4do_|LGp zVPj&}d%PQeH^_@NPd4Y)kDrova%Yxr&rrwg*Xnc1HQ)m`C3C_o_7X4#OHEW zeO_{2($}Q<`90*IjU!(hy*9|Bha#bfbBFolGw@0IC*}Qd7TVzsd;$A6J1-eWat&_1 zPRD4+=uS+CO^DfNW(SPL`Sq@Z^^NwXF#ypC?zMc+F_)B&xZ}&*yX$hFlef_`_yc;9 z8TV+1iQK`nF|skz1owsS3%hT$5AqA;FVGF5sN6a6V%QADJ&&=Tu9%Ke++Kcr`ETf7 z(LbpD@_ealbRS>OdtDp5HdcePx8|_!PTZaF+}8`pAn9jsi23*p#`PV)W&XkWX%BaO zeTgYB2I75l?t}gJS0NkUa30D0v$3qsa9nH$*CN(^xepH|L&3bq`>+DmnxBK;(tl%RH74CR>mpCYJM<29 zy=M)iarTOoir@|t^LW-=J%BTCggXPig0GVqcm*rqeFU!KUEh0`m@#2vXU32m;~zso zT0yX9$RfXYANIi<)ii8_`9aT8n1@)1t#B?P9mK69jfuKQ?vv2PO+cL0(jPc zC-z|%KE_yBV0J;#1w|JYURYS3UmnDVr{zq`aZi!Sn~!UYv=(XR?R#^EZasJCbjL>S z7#NA)sVlz>TREF>2b}X;V>mn?=<9L_y$Fq;?S|vD^`}2$4g9q=#?}jWf#Xj!B^ul> z{}6rs9CN$DeY!pKtg#&$8yXwLeNgrku)kwR?5Ws8WPL@&NB9JLQ7v38s2AHB-Wnbd z84x*}p1rMOtz#F*FAi!ocXQXU&wc0Z^F!x{>XKtQj?XzSaaYD&8TB*k2X#~fvj$Qr zus5q?cE{`+aTz!=kv$`820zJ+tYCk}`RM|fGxZ!#EsP0`2^nu{2G0<#r`NpodW*R8 z*c{nm8tSaT2e7932x=y429M{%$%n~iznFXno{5_EAD^G*X1f2m3MXSd zz4!Ygl8A8o)_9NpCOlhtB@WUb>uI>RSsq=^2zhO^JW|fdv6mya<5IZKasTD-$HTvK z%>M{q!2QlLYy(qiq)oI<^eH%3T^+lcTPA*rxo(<V=7{vTVBo5*F?+LlxPy@Pn8@6U#h^A_$V znTjs>mwsf=;7nMzdj+gzxduKbtz~rGF~4Gd#c1?KcU*+4a2v*8I_z`eI;BduN)VIz zjQ$J8nC9Z-=*e^sSR6esc3$jjbc%P1zXx+#=5k-fE|erolI_tCcjGZk$Mf+0qZp6- zF&4fz$Ktr?_-+2_7@Ac!3+4~ky$8{meB3k`AL+_nPqRTPKiGqb65%$Bc?IQTKPloX& z>k}MI-D6CJ^HsIXYOD@#4c6@?StVIR@FN;#H_RT6WiW?vCTGTn;2lI^AD3g8k~bx< zNq!T$j4aG=QP85`acoEZ!uo~1Va{|R>`VD4Qi@WFXv^-Ah@xm=wD2FS#~fUMw+h}W zcrX9G{K0vH^A6-3$Z?LjG4sYu<6^hd74Qz~}mi`I*dhp*>>Fdr}|J}6EIJn=1-ax!iS zePQ2Dc{}L$cS-0HBJAIXoX>ntxkq~gJCVjF^K#6BF}OG3+;=SPSlUBy4?2P#DvjU* z$-F@W)}^<@^D#f+AD9z14&t8|!pFmPwQJSB7zm%Y*TVVEHPCbLadAGie&Re>3+kDX z1~^P}Qey~f@B;iE&%__GKZrQL&Z)LhoJ6>uoz4KVtWU(gfNRVq+_~U**bC-RPK9w` z<0h`XSK?C`TbKyX2pDT#8ePiGg#)A3F50`qpMkNi7HEg-V6Ex5;As}jA+JSW;}q52 zXsuW+G7J~dQGIaGqul*HN7!Tj|8K#ue+)LEda`=*Ot_X#@MevN_2qw3M`}G#OZc^} z!G~~so(AXtuJCK!LEo`On1fef{KnWqZ}`16j5nm)=47Hf`{Nzy#rQN_tN4GrZn+na zV=^532H`@~fH4f8la8b2I5^fEYY$`cM~DgD0OKg`!5quaK?#iGe}?FpT4UhdO(|np59;2Ns|L-4fjrFXAtpojf}j=Uq3PNT1H3_y*>|9)z_vu93_WZ$fnrVH$^b zPqqNR!!`Hycn<4eO+gD-=X5LX#^bPNYZ1P}a=eFo;h4XJz7zMO8r}`P8{Avwcyuou z=gq&m$7h%eVm1$Pcj85;0TU1Z;xG8#w^OKF8i3DnD)#`t1IMuy=o0Eer?2Iqv(wH_ zn-6nQ)@uEZE*V`ireiD2B{xJHoCeqQ*8iKA_U#|~!TyHr*n~ZBW88@QyZYd9n2$4d z-zKX~aQBNjJaR7+MPV?T~(Ks-6Baug%}5~3G}4B>Oq>(}79Y`ynXxF`Py zXLGl`^;q7&a0%z7r@)%SjVOchV&gnV;B(SB|4Vq*Vg(8^3o=iJ`5AxiBTz<?TxWu0gps=sGNPmG;NN60y`G>R@S$8@}l*Wj9WD9jslgyYTWI0deu zop*kT{Sw@_(J|IB7`M$qo`GzzRf*J$)(q~tcs=@hG%J=B8xH5G3+X-R|6{F>KXdzI z9YvdD8@g@XPN%asf_v}FI2cild*_>@C5&0PUi}!i!5_B!37uBrf2Kq_6|G5bDPzdYm+oKPL;64n)=dZ%OI=wLy+u`fvMmPsL$Nvud^qqs-@e+2ySbh)OgISml zpC8V-?m4R@t8i0SkK{D$!TH>Sje!~qFt2ba+QI&y z9nll6p{!H#JoFIwF-?&IV+$McGu#i9!CI~Qu%_k|7`wd?exB+07Ov55g#F+w=w>s(w8bF}tQ{s{I%`2zmg z@`B|B_VKBmS3BgLoDa2~%J_ha0D9RFe|v0x81gxWmE z`unjIK6Z}jH&LVPUd~vxZ?AIBxClMCd-~#(i&OehOXce@nusRG!gydEIL?0z$9kW$ zjv>RM!=k$*yCYLE9sl5g=mXJnsSU0{ywX0A{`;r!5msRXj99+jUbKTkG>Yb|3R zu5EusHa%)@!jI^X?7(g2GlRQRf1^{bIZ5MYu1SZ(SdQz`>*3zOTAOFM6Cw?L;(g-A z7|e0lSNz4ui$OhyW6*5eh{muk$-42EVINv+1&`xOdVH?MO`LIc44%#1amEpT#?|qw zseD`>)XEsc;U$`|&dPP9Yx{FI*ALnFCGiWpqs75pt2ZQWNSp=dQujy3oSd7S zJMG=_79PXnn2FEexS2#gcY(O!-x=FU7HT08{s~l=-4x^{twFap-DT(kzqkG5t7f1% zjD>Z@uJEoPA7g#7@kVRDJpX0=*B4lhmG}nhumgvX8O{u9Y_1Mp9exB~ASaR&>5D}u zA%A=eoC|&IoWIY(otOvLL(aASJlZ7M1TjQw-i+g+=G-=XC%%XK>}7DCF@JO#{dw#m@;5r9cL;j78NWG=UcC?DThz>~ z8RS_HXC4k}HLOW)p4~kAA*_VGGp(($uS5@6W8-;Zd&6G9J)SGkBd5MS5qrR?;Py7S(N7fi0fHClYVF0ln9Qzg{ieB6k?Ve8qaVFU25yjul&UJn8ymub@ z3Z02bx{h)E;9UPbj-hU-ZcxKuk2)WVy=cz4iShUm26}3MQnmDN)4mPPP`FO<_2OA~ zW1LsP8i^V3YjT|#Nk+JRV|#KH=E9ii9Qd`n#;QyGZhyRqudxFDdJx=mFH0^9zSm;% zgm2Toy&X0X=XTxyE@xhuo`Za*W5Y>U6kbH9nW5o}VBM+Xk1>e3?+p6_3{uDlt> z?+c;@%(4$e|AzJ9Z^Ib1^^kSp8hvAIV{jLqi@B${tD+clB6EVVE}!$4gsbS>SUYkp z+#8sTcbxhdl`t0ZEL^uYjW;D~GBJJx0}}(eA$xn`V)~;yw;e?T?jSb@R||jB!`H{l zeDkk~UlSwY`T18lKhy(`)qc+RVO{8>xEsST2zOvSoRe1JIDCFxhP!YN#-cwup(+k= z9`h@_fRX3{*C*!CjVE=(@yPMWD=_|bBz%OLtkvuV|6LyG|qSvtutF^ZoutXx6^6vXx1ayk7U=%sg?5vyvyxjcrL1MUf;a8z)_dH z%kwYKe-i7_uAp7PD~RES!W#FZX%FPR*n|a`jIr^!2-od!2o~4vP*A@Dr&3PDTxw3P zfH{oKoQ?Hdzx91n@j9#xISAtro})2GlERzy2j)=Rk8G#+&O{iqFvnX5Pb8j57@zHp zk2u@rID8egOU7%Azb_0g491j`!Y4U>hbj5uM(={~i8veA;aBpRO6|L` zmPhdu5~v-k?UB5gHTxxV` zKiNyD4va0G_MeM5H?Pj{al00`Vhrwtb$sqWOR$!jD#!Y&FdlXd%wcTiMDLrp2i@Qt z_j~yF@S7NkE~pNJyFTtYXb7L@j`5S>+^_`SVmr3Ld3Ys$zz+O@^hkQ}TDdcFCtcj; zb6TJ@azXThAnvr8d)$om8?*CkJvn}I{BaoEe3;l?3}dLT{0BbA7r|Jkba5?JZQ0P$Tb2#7h$2oAEw&vplm=80CW53=RFz)KuTqjhATV<~a_TkP)_QNtp zZ{F9u+GhB5|A;T(xheN5zLuS%oU@!4obQ~&togPs@dd1fd;6yJr*Mw?0&bwYrFRQz zjebi1DZL53uf}3MuB2D{UW~~ala-O3kv$c8IeB!W9ZYwdwK>*6j>Dhm&mFq1$k znZ1BJ7jzEpf@o9Nh8vb<2YJ{IMIDO9-~)KpY9?mjA#}!Bs1JiG&JW*WKBj;Y?O-0* zoVPjerreuymuD}}el7F0%&*hG4*IY*2{j41H%fywO2&6i;Y6A7nwz+*w}kT$&Cm(2 z!~Et{%)_(r&pafel0O+>pM8clgOhn=90vc#J#A38SxoGeM&>}btj<< zPDKMarWkWx7yG|<#dZa2yVr<28|O5Z>Du}V`slPwZAn+k(lMO_9`~O zx?IQl)kw=ob8DQjCw))wJa8^JAD;g(K4j3?^MV_w85@E|FsA$qTh>!pLB&iLbB11S`1@bo@HK2&#_i;{cIfCvGtwEJCW-6F#KV# zzVAR^PtTM&9^D4V`oS0k*Z=MVE`;mPhhToOg!2mS0gPGvg%k>`T(|Fy?4`@ldz=;+ z9`tM9OK%m&`AHa!32>iboccEEW`D<6&Ii;Y$NLR#qb77Ox^l1lqp*(2pXrA%C-FL- z$4vO%7?}B*DRBPpj%=9QHaF~eeLc(-UjoPOX)qpGil&LCoV2=y8wJNDro;bdAzpwn z$Lr7n))hUEPFNpXAH>YJMYjd9^!=O@z8l8eKcj}m{gRK{`8WserCi%Pm!65%aNXV; z_hT6<;C|pqe1&7k{x65&SiT*O>(ApUxb}Gh&*3dtKjj?jRc2M*2cK)!URWdT`6Ac5=CDp8Rx=2nppd%CTi`yv z436c~;FxFN#ojK~Enb8Us1K&7^l#zE83$+#YvX=^budriHk^%edYdeQ=c1d#^B14O zxyM+0SGX=c8|ULXxK3XQ_bARwuJs+`ea+gF&-JW(0dr_i!u^Zi&sDerm%v}UM;QtC zF79P^!u)0}w1#!!zMidbc>zD85{?0nVjGO{J`Z!fqwohV&AK$}3slLjl6?g{PqhJ6 zbE?uMt8dPy=$P9vIIq(?ueT|+yvg~K^P3km5BekYD(qFb5#5Tq6^+Gm|&JIDh~;QY=y zYQ73#tlC(c{9S% zaB#=H>z}&t^>YA(k0R!Qvp6$w7VgGAjOA{$v#IMpH*s#FZ?bRFIOj0V>{?f29C8!< znZJT8>T-MHB_!cqXBxi6_xJztI0dUB zt2hbwKoEDR8L8>gB{;W`8OaRJpJhd|BIXi}^UsAbWaAPy;7-hdYtKqFBO}lbr@^uO zeOwHC4%p-DJd_|G4dGn^p0}zIt`VM&Ce)`dhc&n6<6YFo1G>-Kry3!xc@6kNV z12}+-iIsf--2yls zT>;1Z7BC*++RU%@2`s}uu%7OExQ2JF{sjEBasTdc?_k{7*tKKbMey&&!99Ze49CI! zFec@BAd^9k|K0ICNU^64;+*fVxQ6??zCvMUVbBBZ#mpDE<@cM+T<)6ag@>^g1=$7M zpmJ{Z1NZ^nm1rH!-MM$?dglH&n6o{z;LL*eVBF?0e1n3b0&ds1rDy>h^9NxWYI1*h zAB@FQ7>{$Xx_EUl?b3_P<$9kK$Gr2*BlpSflbs+4YCWlQw(*DtF#hH|X&$yWqHsRz z4C|@bhDmmMGaR~mL zKSKibspCHd$1;uuXGSdAACW#HeQny>v^sE~n1wmiyE^9Az`rT~2KS|IqPNC6_ zD=@~|8N*;d0RP?NxE$sO2H+>|46KLI$=e_9^(V9#f=y2!8*9^bZzc>^)5Khcl}QvdO5fk_}`lS!SI7Yk6h!<^>Lu$K*d|Q z4s~G>%0VR2vZ7_hWAJSZ|H|>pHEV-tgCO^qAIlG7>|b*Cr}KXOc>Q<>xK1AoYqFlg zJ6MK2@CA4(dSejAz&Mb5y%89Q8{ywyg*)N?;azM6Y3QK8qo=`8Xej&&Mig zjt(#m==N&L6rib9#-^WRlF%9m27h@k9aUZ3xm(}pOe+$fA{DaeYjTqmurl}kk zB`yl~NdF}MNpwth3}R!hE1Fg|4QesJX-xnisKZe3}&=oix#rTWfMxWpzSi|Z1@k{Pqy%W~+ z{}%c!SZ59m4Grpd8c+-E`Aqj7zBa$YH*h|1KVW?4Aa=l9+;8yX&BtAf`|uLhz&Yhl zSj17CCXpTBYkUYE#5nYa-{UFpHGC%gm|56?YTRGu95)H;abm`aK^=$nnH@4aWIl@p zcn>SE4RyHR_Y>TeeOGq-oc1|Ya;xNi3(wKo<9<;7pdhy2wxDe=<~J{FUibzY6*VfF zhJVnrxM%Sz2$h6N?!ad#s!~*?AwDYksN|R8Uy9!@db_B5VfVsi`OET+AKk)TzU{Kx zW&fM`FFTO*%*Qew%h;a2J;;&Iq({YQti<^l=Vvs6`!wf-?l=ntcrpFOVE+D!x?0z= zo})OzWqUqGKAxFyac_)d4(GJ3k-Z$BaW1_W7jVjDL2N+~7rh~R16={z^9*hj)aBhy z57zf#UThR`N$V-zg>hNyE6h(_3dgdW;hJl7WOT58a;-I+I+R)e8A1Q27w|n?i@gj# zejS#?mc*vl7nlzn~-aW!7Cpr8aQ5gD__Nsv z=V9k%*SW4)C*d_Lg|Ys8`iiy2ZJ2?Da8G7!N&|GjRd5Y%|K5Et2Rs_zpkbn65T{v_ zSd*yAd5>%HEX;lTvvyDQC0@X7I00XA-;#NrB=PU}V4UCe@?@L^YjR$~Rj7%bk)6R> zdqiYJ@c6n<+D8w0_esvF?uSl~oF1HMcs24WGsJh1L+}aU-ql=ybBFOUV>)i=j>EW- zpWDY_H;%wf|LM3D&%+o~<5=ThUu!+@P87xqgIL!1`1s)KH`e7o$GQn?mtI8$dU9Ls zTsY8N2ltwL;MvoD@QjFSkhn!hzq>zHqD*7cHO_JuGvH~_|IX2ZXC z3^!))Ufc)LG1{?v5h~C=y?yW+y_ItT1L13T44iAM3vy2~99`kOvx~mX<|UTnCsj47~gzYX>JFJL2%gLFt%0j$Bl2mj*9>?gCW-KmjVBli>7_y0rC z3O=uHe%<`e7>c#1PY;FL@eRDM`T>~F?ON0|i0M8{@BxzvyPMl1^VcGfv1nA+sMohP_GsdK;rI z{Jr1HwP*zg^Ck3a9*#4xH+^r=zu(8nSl6`Bv>*o8oAbIeI3K@;x~OzCNH$1bnz%G! zOw~xbwHmo_To1)U!I=`Dx0Sex+OkLBnMc>GXW&PAxDJA`Y2%f?4(^9*tGcj`!L@5O z_!@Ix?Rse*4r3r^ivET3hjH$;aI7z;=H&tWi7P9w49?S^%6X01DB<4CNpOs|*35ma zIcuI#U;8;+zn{bzzX#wN#9Wd4MAs1RhpkVuF3o+@ zI(&zBFdpu^4yGLpUI(r-jIFi9*VHPTUt5;4j1D|CQf{lft@6X>5UOwwY!kJtY{?^L`Ke2iyImtj5Z{ciJd|G(?t9AOSK z2IEMsiywhszk9m#qvr?xz)qm=f^%IHYH!>F8XtNdM{s)b^kB@lj`bqAu0KpY`p2+V z{Y=E-u^QBphkF)17hGp-<4mA+j}zcpx-G0B-4fkG1oDmONOVI}R6})~hHLQ{ z7Go2ful~kCICpHvQq05yxC^(yHIQ-5A()EgC`YSUtKcq=x$NJ5!a?Mcqi%+CaSiUo z{qTGE06!rLV_fcamVmTU@&Z`TJRiGYOusGezXy;Nh2m`2sS~jnKVvT(>zsquVkX>oxaUZuCxZCQ z`|0lo@usERm0^Cuui1L*3orl^V13RGWMyUr<{k`Y8yWO?`%s2`LI(t z`{H^kGn&ara6TE~H-qz_7C`mEbdkR#a4nSdp5jv9xd z7y@g8o`Cz7jYy$ionO0g`P*SU)c@1`gL|1B_!lXO6mEsB6~w#RC)#t<=7ou#aL;lF zoY#!0F2!D$`)H3*cprOFyRvp=Z}^Z^c{KiK?NhL9Bfe_c0p>HecnM z&v?A!vCr{O@gAPVV=!LwFlJyL)?gp3-^okQ3u5{;IVWU&U|lqW@BgQIdiC^1Xonl& z>%^Ff^GY|2!Mkv5ug%?{SK}ef#~Q4~Pxua7;CehiD?h6(ZpBax!5G{Pe?9y^)?eO& zu4n+)@a5D!GR$N)p*PxXSb%>}J-d2#XY_*oCm+TVc<}lH?$?}wJ@9jxs^GUIsNcc_D|WDVqez2tZBFowXq{}M-We% zl{qWu+j%SfA9|xBy1_HSj`vI8W3%-?OSv~>9-hG%`0vgEp>S?I{vw$Bc5+6c6J}GV z^)vS&S8^_*4^~s*cpZG+IDYQL&v+Z7VLalqP`%&6s(sjMPVrs+tJnT<-FYM=e3hKf}(N4Jb3EO~qcnmk9 zJ?zcqy)u8nd%2wy3d#z~8pEDrcVZ&!_xuO^ypOv{oZoV2l&;_mG=XQPK`?GN#tW&xU{b2pkFpPqq zL!MRey?GA*d>kgj+_pLKA8-ifz|Vziv6rz2jp;jk6CC@$hR-9G&M8fCF+7w1A^w7S zRL|bO1oxlouo_?DJ-mQvxDV#0hQjl*Ps91+Qy8EB9Z9%u?2d8x3}tA~x%Dx413$rf zIQJIDTdbLLj~s^QVtoxgg|}d??Q3ktVNfQ^$Q7kK!ao^5z?`cws4XylQ41%b35ylg=hx%2kMGT;k+B2`q%$(Rd@bjY=kvFFQE}u;=3%M3>4`#xPFCrp z7GVfA_NDZo?24(J>vt{J6?3C=gLtU56rNRlhdVf}ea?jOgh4RCH>-SB`E?*gT=qJy zfI-x~_y!B$xKp#NX7G28O}o*wylMGpcz26y&pt3-(LCIo8@Z;0%_TeoV@adAyCsPc z?8dXH3%BOHI<@1kpb`VQPwpF(;$(WFU4gOid)$lKDYdC^x+CZd<-E}#wL#FI$9TT4 zscmr0Z_LTOKv(!$vEIzr%XBQpDmWK!$4~J6FIWxFFMbU3TBBfnQYbRC@k9COSSK7f1}S89zt^wOOM=j%O@J#?&mA#y(U66-c* z)Ds1;x8zLNXTAgS;2z)`d<^doaWC*Ge!$mQ27CSc_iy51jD&lHzOZkm{hNL7{PQ3t z<1M_41@LqH2=A*h7vY@cojl$-?)_grcdSJ+Cv*UQ?Zyj@y_;wF9xdqAHWfY(+r`@v zNgp5Nn*X4;TwU(Ua~%H=zL`HAj5qKVHsCiHU)hE=_z3QU--By#a}Iu71)9@4;s%U| zxu-kf?|Y&v+Qa9QYmcUAhi>Q&_kjNUQ*k={*h_Ie2IC&wg?_M(tPA{i?qNL#XzlR3 z*a&l8Y!xe`sDQsNNGTvH`hU6i^v}!T6F!^%qbI<5!}BF-0PplEf#+eZN4p<0u@ot( zDZz8zT!MMp5O1z+hGRY2ayP@m2W#;cJZs>6E%t@`0LHF1V?9=3F&@WAjD;WPefGEGB5+lD&d%(e z*&AW+(Dz}F;#P=d#e)03dQtD>;Qa}Vp|!xSj9tNeStFxH#**|U!G7;F&IJ6K_Gj8; zxE8K~UBsQw;e`H5(Pb8!QlTl^fK;alv+A2^QmcsiNALPn!@K}^E=XC)4!C{dKC zjXb0x2UTD$xG7qpIsCp|XZrqhoQ5;tTJ#FI57K2YuFwJYIxtRdeN9c2#mjwhjDT9{Kngx zp%~lf1-bxF!aB;fu<&kocsHkJkA%&0n;(jVBSAgWSKL?p8CJpkw>|z!sBCrb(+|(W zyz>tHFVAX@cPu8swa8{zBj(S`uYCqKz_?Op+=3Bsuj%8|nVup~;|&;t{}F58p5XxU zllei9jnUL>O~xEN4r8g#8DGO3we!Y12%|Q!n=@eEb|LpjIq&?0vntODV)!dK=RF@E z;1js^sGm|l=ul}bk2Ph4nu7D1_NeKIOK~x7gtd~ZP{{eI&S;MumJpH77OU=aBJN|6M6(eBXuR#zEw#<)!MO1gu&&lW zyB^nK82op}Ztj5d-y|4!_V4e6@#n2*!<}a*!5T(m{uSIC?tbeO?zQZXM{yPM;Qq%s zw-Y+!I#@e234W}9wcKU-^NO#L_uyLQW$ui=85hI6>-`uG*HqQv>-0%XgRfIxuf}5DguNn; z!}qQSe}%tqQQ6}EeXgNY-Q5A#fYaeR@G2PFah>LxZ~`8J>q6IqB`}v!6~=!;I7*KL zdl0!%@&EY&u1OsyJTvCH^AjwAPJdg{-xl1kV)ThAUycrDrD^z<65$D3J~3k-z9Ew;JYcUxVXkF=D*c;moabZEZLY zzKQ;@2B!qhq4m)S&Z))`f5DIV9J62?(DnRZaA9iIA?w^G5 zC1Xbho~+aP9zDkzM4_5W}UP33&xWiKktXIY}CMsps_npEq8&WC5x+(VCn`(*2cdg3BD?zon8oF2g5_zXCQU58V#FJ)h_ zwtSEtl#VyL0cYVd48Y^qh+j}Zo~{eRDdCjboQ-u3y*zYzP&a6-Ydn@>AM%-pjCnl( z=P=j)=2h;3`;YqcLAVshIsax}(?PpWZ)xFTL~p|7WDnNWYQW!5)NT{7LvQ{llQg zp5ysgIBz+==W=<}*)X5)n>CKE)jfAn3g=Mc8;Z;tb)VPtY-&}YXz{V_PEp9%A?j_H||nZbG8HuR8iAL4%8 zxa(Z>p~u8l`2GA|`8zj3z4-s`d#p#@{us>0VmyJ2|G1Z*3;)gCNb=UIvQ@Bm_s@L& z#VJtVjka*kabEEIYnak7#oUa4?tEhG;9Jgw`E@&ATnXa=laiBy9HHOKS-2P1qY&28 z80RuJ=NRu8^d<)2QuycAn%u;By@hxQzhf=B!M|GvbCf^9n6_iR`>D%OFHtXui65lT zzBT?oP+z|d4%FMR5$+kxl{)yW!IQ8i$9+pGSeQuoH`N}cXIQ~{Ruia0bjPbC=xD{pelW-qd1-a-A=T)C4{ybJER|mQH z3CRgTJji^EKl5dH2X$bq)0oY5@Vth5R{#DNe1@0c*z0)QntPXBx0`G7XKbv+HOh^+ z0>8t2Z3eb+FRTB@COAI%ZG<#5@;Hn+`!(MTdzgKMB^ZveaDFxqGz4$pIk<0HhZo`By^n>k zzVf7$lY()5J$Jj@OYbOaE&X^ON5}cem6L<}*uJEPv1o&dMfooA>0JV zOvm5ko52>beEINmk0X0Aw{}FqG>w~zK*u1&^yMBc_DrRHc5qAfp`s%<3 znR|I|u-{-^_FZWP`Z}Fp17{-`m$gl=0iRuY;AfY?a;OQl*cT`hUV<&4PW4AUGnRcX zm2uWQse9B#b-)<4Hh(`b_WUR8hS8wT`i!-ryFtBYU5U1)KE^~C0p@kuL9ii5G&gEp zn6g*DU=3^RxVl!SrX0l{JDZz?j>UU~t@Z$5r7T_=CMe)t|=W%nM)5S-I+4ZHviZ9H%}x zg!QarR_FSf^4q!!<2*|^yXOk_n?DK4uMwcm&<45@?tu%JF9fpxH_lui2aYe}@}I-g zoHL?4HHtsy@|?iNR~KkM6^<_)#N(BPUavT4+bVO72Pt3ghW2nV?qXn@&E!lC{d4EK zvd%TX-C$e%Hcqs@1&LWc*oQ$mkPXVJaWEE?W6H^q&!MU#-d5*PT$?#PCQ}ODqitK}^y=P2IKf?Muudm#&{j5V@z*!v1|6%YY%mC%? z5m1M1hoPJeHW8d_+J|0K*`#hzKaGa@?C0+LM{q_|9rk!smnplgo9YVsJ=4jP`)tRl z4SxZ&EsY`Ug0G++XNB$pbD-L*?ZG_z6VzK7Bbo=sL1wZ>$XHrK7zg?&L%=;Wk3mLa zh9+{NzRpB2ru01+=Tb)$Nh}iB`qxrd)he-7qCSv%M?d5v_zilKXLt~*g7NjmtfNrp z42~Zh$m!Qulcb;02$cWccL%5m_M34U>%;V|hQmS5Pc{ZN23y=V(dHfi`@lYS{gd*} zesw(70)0#KO3#69r2lk`J#74ZN3aiz#uW|DgK!M$FDTzSlOMYaw6WC%+8*i&`^;-< ztKYEiyk8&=H zMXSoObL=Z%EMz$QK)2*9SM4Wdr7@po1$EU=U4AOCiIm^gY?@Qk=iUdUIg3vF-WZQQ zhH;`F;04y%JC^5wW6-&Nk(&O;*|)3#XZa0gKRK`U?&Ws_zx^cpaA`x@ZvJRTz6{E7 z^-_Ph50nGiX{W*1kveHV==ZB9)RTTrx&1cSo}X|At9FZHSUax~6b+K(|ti>47T-HD|B;WG^ z>kU^z@BH4udag6nav5K-US=43!KtIn4QcOBfL~w-Y=p*~uWml~e(*K(C5yqhnf>T} zFQBfc1sK~>r~C~6!c@FN{V8k3e&s9|>x1;C27&Pyv0a<1jbU8rM{;E{0z=pWw$a{IX9Ypb&SE>3;G<|tdo3pMC#2<(^R^-_I0vyNA-3<2T(avnkx_15cL!1@q&!_A&YX0~HoCj?^ zpUoV!v0URz+JV~jj!WmQcFz~=3*o(b9qqa`a4YA*_W;Mga>tmk{=`^t&d0~a2m5F_ z)|JEB@Q-pX$tpMu<>Jf5mq{p-pq|oa(Em{uxMoOwXbu3AFs=>Q7IVlK=#9#GeS( zYJbMwcls2QSeI?w{Rz&fR&S}(hk$xf8_|4@dt#Ji?=oviCdW^XcPwZJ8*k8$D@82s z61eWpc#b;oDE0FpXbJkI{o{x9paeNNljF<6LN zfs>f&cm>d)x>99&4V;v!`)SYB80`>S}ek{bn8H6wv0;SJZdZr*poXVsGcV zoZF#XTF1VG>Qcvsc8a1tn?L;6lN@@wR;VvR!C{Ic{&-Tag6KkzB+gy#9pgB<8J`PT$` zTOFVdbUy~)dp)RUmCNdGZ2*0?N5MK4$Hb?gTvx{12S+(8dp)T0^l6j<`fJ8?{sVnF zeHfqFc+d&Bj#?VyeH*FeGR|Y}Tpgi}J`H@m0q8SzxZEM|fz(mP>W%YH0(FEs*D-AU zjbrc?=*Vic_LtjVRv+5lj(Nw4exf>5pV8O!S-p4Tl-dK@LG$D02Yb1y^VIY6z&N}$ zKKA2xtZDZC^Z~ThwKcUJ%=P@qy6}V4emd@lbN;P%uyNG!;CR%oRTpUAnX{}7#+bC5 z)ceLYtR-s#AI5(eudQPJ_gPSuB_$*U@%YB%i^6JU`|I-lJm9F>Eeu0w}jx$`)t5z6AIjKa=M&C-xPj zvmfOia6V~ks`HGAYWt`+l;_S_?Id;SxVUkF?YJ~{&a{DX6H)TcGrchmP>VxK+#{u^sl)yc{^<#j*K z9rPO30qP5CLmz=^tTR$CJjQOr>aVSrw_Y}HVgB4aLTmCQ#$;@3a~tMt)Rne}ZP1&& zjn#F=bCkixWgJ)93)->De&dPiX=4uhoL6(kkNVBngLdp(_G{GVcD^nnGFOUxk#WE$ zIPJ4F>(iY#Kd}Z&{bGE?In@P}_4>V@@#}c8{vjT;tCWGp|CHbQs^)JU8w>ImS1rXZIge zek+glP3(Vt`5~a)qMzscw6jZ*H&#ZOr_c^DPN`pO?9cfzg>yuW3-@4O0%fDm?HJT% z&|grti*=jEvGiS(<;pnYJ=#khIrH%u&Q&XuUnajf>xx`MWZXfY)Hz^Zy0=_PeoBx> z)b1U2d00?0qTD&g`e@~Wr()Ba{G7CZZ$rA5cH47vA?pp0c(!5ng*~uxDpaFlVK|V2*7s zI3~53o&aq$?L1@K+UCY5qp%5#321v7t5sg>o3sY!hx1vxw=y-$rP-%Sd7noPL0j7R zxN_Y1zp;gC@Cr3S#;xqr1E4))U{5>A7>Y9BH1!&l!I-D;i}QKRb8mt(pzbmzrOmIctG%io@08FfVJ!RnnTu8DDSzk1&5P^A8Zh%2%1z~k z`f^{~z97!#b1HM4_uA#gDL#gT_=NaxFMk`DUME^yf!Tf-E7~?3$u$^UTPJw6iQmQC>Rf{V@il-%uNjohwI-&n|?&$?;YIWs`En7=$v{_`l=Z8gXMg z##xjp)&m)jH!jl$27vNP-DcieyY+SOJMBAd*ZV-(p^R5oA7HKYEEvtXkrzRIo6k>0 zXafGde13VNGZz9sLm6q!qH&rv;ODeum7B(A^!w}|YjUlD`UkvcYu2^njiVWxRwif* z3pTfS-uJt`WxA&z!F&?Iku0NvQcCH!A)E3oWdY?62`ZPYD`BmqP^$oU_`5MQw zHtbcPpJu;XORC=SyR_N#q4h;joYUPM3Ev1nY$d1HI{%+C4P{7`P(59SP< zOO9>($QZyo)I2r;@4H`oKRkpFgB+l?kUosIv}5^us87AAGELo}EYY7x^)p6&G->sFN653%ozzRP0jUd=~YGiUt4w({@J8dlM96gSb)TnT?GYe=iPnOAu4gS5luUmyFf*AXjhB z*4T%7-Wmh_SmO}pPP7lKA#lvt|H{`zR395}(T}x1Z3Fw+ws!t%pC1BsxiOYX#0a%D z)ZNA!T`OgL*lVbxmBqfUEuoH3wjOh>BD}>OUi#6F{kN(09LBklK8raruW^WdfVs7N z{Sfo7`Xts8Tm|-(xtZa_@f|0|HnnxSa!R9ij{T^A<9Jp6``m{?-&vpHO|bp7ul4gj z1Z_Y4pMGGRP~E7_?O_}{`?8i8iw!LvG{YGVJSI`#sb^QUKPa8#lM%mLB+~>nnOYa z2Xg zneX-4)w9|%&R_e*`?YeZj`G5$t;hg)LU<}^) zvHG$KxYodYYCFy#*ac@(|~;2J4eP#5zCak@`k^)%jzr&3Ws% zvmcz-)>j!nX$r>FtV5Q-&nB+-JSYdfruL38o2i_6Xud`n>=@F%)27f4G^TE@RUH(> zBCsos=li-bDSa{Lk9LrsR|Xp6_j>w@jt%Vrb(yx8_vbv-zIJ>Jj2jr#3Vgv{o5rl1 zOU7M|!#K|zOO8?dTRr6ZdE-R-h2FzH>In3yj2}7gv?cW4wNvyzwDHWLIqs|__B*r_ zy-#gd<)F{0zoaiJ>RIQRbJ}^Y&F|dN&sScU(^WP)2aR_a6EU8qJ^mux&e>LtdmtQcztd1%Al^W&CDfe zE9!qg4f-MK6Xm(FS!-O>`_|p=fUDVO$@i)oPJp>jeM!Gp+ur<$*VDJq2G&P0?o}AP zwsK%2Xy5sH{gH1#9q~2T?)o&!Vto;x*)}v5r@iU_D{Is*#uL@AD>+x$yuH4T*ETk@ z1=J@#yYfkUR9{42%G|wnx_Ko(Z(P~eHnX3U>qv}4`942C8}w)ODUIFOhRzH98OOFd zPM_NGZ(sVlb5Z-&@#|U?{nYw#^@A9!^`6@2NuW;Bwsy>$2iB%@3_6eXS=0r}xfbAi z%8}o6t&O@w1!lZmIi{Vf?WldDEw-K*Xe{=rJXS7ykIGZyAJ)V>pSOTEz4FldC2b=0 zjQYm=)DO_s5A-y1M_*dGrfych8E4Tqv`^JV#u@ZioUgX2^V|8Mtns&bR&8)&uF4+g zkG7P4r0tSM%%3Pn>&uD8Zm%OjvA;>MDN0j}_X#J*& zpgpF~Wz0so>u=?@u><3}+M>pzymlj)0E@u5n0DnfP|tb~<;g2N2Qy(dtOs?GIUMzg zcB^{)3hK1Rg0(j40QG@C#<$fEH)8J_U(#mqo@^uULw`ztMt!JG*8Z;&S0%8Am06B2 z^_+1s{RnN3PShM~znVj|9rO(xgUUkf3Hwfr%V|FtFSItn>ngXrU+n??>G#35*DqD> z*&o^s_IYFS_>OgTiFShhu_&+a*whEQ4wU`o8kN<~m778P+Ssb`&cGMJ{xx>59#oz< z5B(0W;d}KL{I~kZ-^RPNd(^v*AMaD$;rIHw{*?Bl`59%GZDkI_|5qM5H;jXNZ|Xp0 zy0S}OO+8@Ex$-x#foVH)UfQkN)yCVEHD25Jkn%`dQ(MXSx$@IIhw`o4UxDxU z?_Nj0Liy`+svD+&~($57;t{jH_q-yRqp{sb@Cl;rLVbD!+_BDx)29tEo%Y&o;;B zbNYGxAAN9bRp+Gkk2amQl)At<T|dbK_6I~%Q&AlqIyZ&YAX1h>Mr%KK9c#qzo>Uo7aF5h_gHJF zZu7gGN7_X8uQJ-WgEr|1P+pkZP#*cCz3TTXGt?*A^~wV0w9lh1Q;z%nYe2cCJXV(2 zzRJxXKp#n6q&`!A8beoqTI-~5u3cz6N%^WQR|gp5cg?V}(-@F`P;*dc-3jIc^!Xo! zJD?gg0OLprP#F$UucVAs#`_-Q7WxmyH;hpz-_`TR8`Rh4aIM!dUa#!6AJmVtK|9vk zE8}|Jk3Nku+y2%*Fpg%M8~ZYj;4^C%+g@Hrn^oE9xUfByd$zrO>*xKP?Qd+-9Embd z*`|!t&v2aTN7|?Ub{yFD_P_sjJ&EH?d&F_$SWxa7H`kBwI^Lh-&-PY_JEr^|??r!8 zd*0_T&ZiBaE_aMOhWxv8LY?Ed@$ddk8`-$O<3w3)jKRKk4p{r39z0Hd+xyg}aSoXK za-19E5AqoN*D>w)XmfhMKC{oD{o?*Aj%j^L{VU^++Bw=$KI;MUW6F7LNOjcbuo8?H z`5EPmcCm6vpJ5jGTfM1$sShCf-O4NFig96WXYFNWkgr(_s4P;h86Q^`s}Gc|$}q3z zck4&%Hz*sG=gLrJzOqSsTG{3IDt{}2*HYF6@hb9?UT+{+o2ad>?$F-W*45|mIn-~; zROPVpP@Q2;)9ZLIzDHSVdnnKRe|3WQ=(8%9d=~Y;sPm24=ocDC@VCCbI?lFLZ)&q^ zGx%NlUCLa)+t2z;UfaLhF5Z{d^*;T(aXo9Qe9iZYaR#sHvwA&q?&f>c@!I<8TWf0V zD?g_^w{4a8+B=Rp^^xONyF~fuYx>NtyERU4?%y%1OmluYN0fucthIZLQ8>2!w{s!p zyE|63ahy-iJ#9K=tg>G{VC+PBtzGS$)vxru&cg@5S_NZg{&qY&*1f*t+xu~TC{vWX z>I28SHlEjUUOV=+gOnNmzn}4YoU8ij+F;s2##DXo*qrd+&O_rm>Xgl(jp=vmXPeux zebw>WKe2YyHgX<0ue9H_BYm%b_op(kFY^Mnuh;WFoU_UvWrqHNdck|PeQkUFEcZ3i zj`Th1CS$+af99sOnYAx%Bkf)NC*`%eK>cVfuCmtpDf8dj&SKq)ewI2ynQbkMxlLmX z>KA3Z`oQ<-qv>Z@JE$+?^?wHaDRaT<8|{5xS6`X)_50O#>JL#DDEpQ9`c}r_dHvKT`_A_&i+#;LbUxVs%1y_({p641RsFAg(jN4^exLaTWvhOJaa&_A$~)hq zZRFp@vF5nYcJf;KLh1p>gZjdIH2>hUY12D*9P`c}|E?Y7k22lZmwH4S&Fg8GdEbsN z+rejc%sL*uuJ2Xm`+o1!J-M`Fe811;HPs=G>)8G46M4VB$NTp?)Cs<>Uhw%o0iV_P z#O8qVQGK9{jQLfzi++c)$=Ch2u@CPHPt{-Q0Q1zo=65Sg{cdAw z%4FrWHn;NC_jp}@>jNpn#lQP+KcikyNBD1FSKp}DwE5L9>Oy@f^8?1kjAeQa<$6rc z`+0SW|MqX{1@)_XO1-2%rGKE_(1-B(e82Kaf6jYUe)&AMm)I`)i_QsUpR&vMP6FG- zK91$z97D=+$E)L3x$oR@Oe!PwA(ZdVPi3BQb?2t9$8v4j$jUqCw)K13cFH~NIpv%- zo%7uHXhW+Hod4<|?dFc)XN~J9GtG&44ZqX(`kFdHS?Tq)qx`#aM0?6>`d+VR-JJR* zCS%ke-lw*m@>!X!?ofvK3_icPLUWPMOXCvGN#%`kAlF6cSNs3!BW*tAil4EaY!AP~ zxR`dT?WayqH+enhyZTEzFQzk`m%cYsU)yA{^^ux4oeKzmI`X^u4UiNk4 z9uI;(SnS_k!@p~%Ymci}Y&&Dj>SBMZ$F;H559TNJyR1`D|BM9nu=+#U@B8%U>;q$Q z`c3*;{>|$v`<3(lO&x9@`rX?3`bWmKmH*y@W5D=bYz)|s_NkxoIkbtz`}CP&DAjg&1PWH9q%fH*F>JR(M-}bMc5&KCUZ2vm0&6(Oy_NjJIY`m*Kl*{T0b-glB zo5?xiXMLY?Uis}9Q64KJ9T$GD-{Ft*D<=Q_t^C%nRX;esysmmiS+3mGw$nE8xBi2F zQ}#QDeOd`(+hndr5AOnEr$jBCd19`DunsvG@&WxTRjSsnX6WxDs`XVodb*MDoDs++`TTLXTN_n~jF8*D%C zRUP4L-jD67?WSF4yV=&Zi}&lj`8nIv{_=C)tGZrYtIo51vaSAb(C>_&iho4 z`CR_ZKJ~qR#{akP{SKegcK3Vze#eV=O=YjXiF&|iwXMCD*HMQWcUPCFmz2M@t^H~H zsL!Ly>)=P;+FKcHT)5AAFF*O-yIO<&Bv`5pQK#z=iOzhC|4 z=e-Z#?|rTTb*$sY`?QbzZ5ukK)CIP^W5&;TulBk3ZX5V~jvxEpYdIdBBeuC?#n){! z$F=&$no7sKpVtPkpKL>Avhvp-WvP9wo#b3qzG~a}Z|ym4du6MyIj{Zgymrp(qd51R zgUWH`s_#+WD~J7l=eysfOpeWW$AU7zd97aXbADHB{5USXPi42VR@ti@_Wsl<%5(LY z`b*SR`rp1s`!Xi`jfE-ql)L&-G2Nxz>*v&g%74GZYiJkyy6;mT_&xer{!KZn|DaBe z$w7Z>GpqlUgUZX8K2XOW<)-(%nU+jjMDeuw?xclcbkvA(47 z8|AHb?S1-pb++HFALrk+PrMK7jQu`8=l}az^;_&dVmjaZ_de8%_OqY& zZ_X9Rq2tTz`FZc#*K7~_!gjQc?MK_*KJl}@&$;9La2_f%?PKp*)Vcn43^>;OykkWD zZ5!BjUfcfg`y4xtG3_+(!#4JF&NtuVb$m|8ulApQoU&A(#`$I+dQJOZU93D-M>;=a z-*5jrww%A-vvOS>Aj)y)u-DQS^ZMSiW6$yIT#v~c<%r|Szj&j+*BlUoGx-ooT z6YocPYn)%XuYIqa_gY?CAItYCtJQbvSN$MS-g|G#PwyvY%XsgO3&(`x$3AziIzOHJ z_Lps?zEcl6$7AnvKH3gGxB5VRsJyiO{eSHv<+-m(%+^sC_kgF<5Rih`0;tQ57br4W}inntzDwNQzxs-V(qLR(zo<= z{~pws;YY>daQai`oAepgNAW# zn^#-JKAGB0<{5WT_o4r7O_uRu*TUS-TF-aj6|nwfHn^`!9oPT|!F2}4l11B9IpUn~ zd9;m`oBBkKcl%DA;k>g?%tJW#+!MsM_A|C+EWcu%)XQMqg!K%{N#kkuhu74%(&tKL z4Z3w~=Gv`AHm+w3&DZt2tU2vLO>H5#5w3@;peVRLL*LE*RzG*n5#@tONlA9(-9C5%gJpT5mr4llrAcmsmh0Z*sA*@+rHMw**3}t?QZRO?R8@=${*#rW6cQTmQj1 z;~GYD%jT+QQcG%0=|mU_PeE6B59Y!wSOez!KLy`A95%vUFn1n%PIJ-bQ=F@Qm-&8m zmd|dCPQ9hm%`uxW5tjVx{txG#i4S{PLT}NsD%>H*hwsAoBf3yZc z-_AK>-+g!b< zp0vHy1NN_f^T+oaYq2lw7u(RbH6Ef2@!#5Cwz0Cum}nO;Zfd;M{F~$4c&ofS- zSe!z==Y1=Oly%z2$`5UF{S4)_IUDo;?iJ!X!-V(*hkmf8(KWZ`U#!In#fQ)isX;DB zSydj?3(BiZs0??)T?O1kop3d{1?oXlxE1_&OHl7T46e<)A0B{vpeEFXR^aRRf!DUi z%-ElDS3Tl9a!zPtC}W+I&LPK+bHwMh4b}PTb#;NZg0kB2XZ+u>Yd>m#nG;s;i!#La zHf|k@k7y5Tv#S?uN5_@FwIQ@itf_E4sC#gk>#D?hk;maFXaiNjHoO9=Lw$G|egfAt zR!FE2?3L1%J$Q%0V#tOJ_ReBUxnM2+wTagzJ^*825fn-)#IEI|lTN^+$&Ydp>XPL0 zDdkf>f^wm9p^2~;Qu%2B|AXyNF|A@+3m6aI!$r6?{Z>wHdNloiFc6x+skBpR_rUY1 z&!927PdOFPK4A5TC0FuDH0NTJh_Aaq+t>LgjX7~>W^nFBSI*(w4);ax3--f)gj(f1 zaBOKWXq(+j9sXiS;OBmr2ljUh&IWMr z>J-f-^_%w}XHK61f6C>R%WDN)pda)Fe-DM;&=uOjZEziwghEgWZh}rQ4R%2JNcrGw z)DI&cMxxL*+BP}^jzRVO>cP6lpQ-OtziHd3TeZoxVU;=Nvdv9fb95bOvx)Os8bCw1 z0ZM{)h4oiKT_$-7V=~Gpa}&1hGoXHd3bZGzPtwn^KFPd=?^mB0Q&ZOIH;ekq-`f4^ zD)p=Wy7Nih?LKn)6^B^2HU;!S>Ol$65IF&xU^&cz58yLc2CHBVY=m8~8~lA3ENYkHg(i5&q#krSISk7zATrBD@P0{G#p>amzjMw2OI1DM7DVaBcXP}M& z&!<}kt6(T>&Dff;DScD=@U-D+>qF~9-*f)o#>9<@zsLU`uiZF`eTlk8y9Rq5WpZZO z(SoycGT2MBA=H2^d0T?>rZd?`bZYL@+{d6bOasUNeUbYj z8mhxZ&QDqZ^9|K>4B_rHyQ?NZUvI+`12KR_hw{6*sY# zZ9F^)wuN=j6{)9FmMRO30qGCB-;Qglt?{(R-MaLrLEln)R2y9yfIgG9m2y~nTp!1} z1pUiTSZm`x0864vg0o5UB6*QjFc|89%JvUf4Rhgj7z-2NWB47?Bk92&>zyKolydcfOFITFAdj23wRs`f^(=56oY+v`+{>>2j&gTyC0fDGk6T% zgJaN~tA7NAIa_2n9EVopC`ouh`?$W#UfUnT&+s2qO01OFq=1Hr4TE`|#o0;9 z{g+nB-_h34#2G<^5m2g$?4E+=OC%gxLfX}-E?oGNk3G+TU1A1)A z*pyzOULntm^AM<2aDV#!=_lajjF&TNWY)+$0D}q*Ds&PaD*RC458(h5E>gHiO{f4{ z3U4Xg48|22S7=V=oXlAnvogk{k4g9ZxUQ*PQ=j8J?indFQVu5{PQC|raL(Oxpgle% zaSFQzQ3 zc-H6!*aL37)ehFdU0HW=V)BWsS=qC)pUrtTr&hRD_yD|_`)00Vx_G2`37Rn@*NxBnSL35}MIuEBfyYLVw+m*$u z;am6_{F`!K+u#XMw|@rvp#*0rwuI5J0KS1AVIAlb%?AJ06K;c?q@2JG=*_uOSHXAe zHLs31ns7AO^I6;2HTB9n<)AjNHdJTM;+q|r9SP@!gEMvx=N``O2j|1*!vmo(EX`S( zGXR=^dek$(_rsrX5ca}W_zEV$v*20P?LdEJ2z&tF!C?sHgmP|#$KeGS44t4lWCBY) z0{pJqVFc(CH4ZlpuZA0PZ^#`D`{3rhn}f3`{^Hz;s*$RZp|A^Dus7^apbj(c){vd( zjk)Mc8&8hadD^#*-2pHZo(28=^57ntYr&cwb%k*Y<37efD!>`mB|( zW_MnZ`w-T_e#pSzzY*?(Ctx7BPu>ie4e!HC z@F+O1(%=Mp;Ca4*{@*n4_Y(LX_JV$8CVOLhU3G-lz8h`rAMGSmTQ($1unh9^^>Ox+sV8fpc9ru>;Q0!qQy@04^^MGZI@ip5e9u`}7a|upQJ`An>Aa`&zRmqMHvw9NTZEnSbF$}T@5|bkRSfRE zbnm6v7iV8A28%8%y3iZC!Rv4kx?b#RDDdLqON%dg{&4;5`q{;Eiszhz9h^JAICpXG zt4M-puzc={-W4s!UK-jS##6P;-e#@8I_V+K{L>%%1ZpSO4$c`rntU`l2mHMj2E&!0 zEcOiC&54_XvjNMqPoy^cYB07j2A+Vs;X0@Swo_$r{M-n(T{oBjE8!o|=6?(pKpu2W z>YB6~N+p*{ZVv|Wrx%<9EW;JMA71^qqv(>l9#_SbMj z&J8*9p=!8lcoEdet&_VHlo$QsBls0^p<<+BVDnGl%%2}2gR@YLOH2lRas70CiFcqQ zq`{KNl1OJL1e^0V2WPL2BI5EAOo6o!1^tT`KwY&N^uww~s|NdjkBN?nehc~lx8>g! ztcN$JVwlhvxhJ3Y)JveQ)eh8-OakL|#^;SSX|EI^Po=yvuC9L8mey9!Ovogv+?Ep( zUgH$eH3=uddF6Mm_Vk|n!bmU%>71Jn{{8~Kf%Whs=xcuk>ZI4e&y0t6;cLi- zhd8(GM=*BtCk#j#kdhI~2+f8&Q|}DUa&D8>COEUXWqQl>tQ^qkEojE$Qa-qtF zHp0Nd0}B`7=WRFv=V2=hfm4M~6>b7U3JodrQRYXPCo@iFw1S_~e@gERd1-lR)1VT( zk@`mJUgF`Alt@Yvgpzc24b_1z=oe z4Rp!vl6xgFSz|L>ITiWK=$Fyy`P1`V`)keB?c|)zMYvyMsl-yj8B04j)7!?X47H#R z)P}ln186^ANW2h?4aajW_%q?pK;A3Ye~te&@HKBDAEb|IOw@X9ZN$Q0ZO(eIE_W8J z26HvW1dP3!KX5#|PrxD2|J5J77V1L>(Epqb%iu?F4rog_mI#%z;;-4|IYj!1#~3hVNl7{0(Oz z2eRNO`~-8MKimn4@N4+j@KRU+i^1>Hm%9Mk7RuTB;CD=bFX0$e&#RvI6wC(Wk7uAl zq(Tt0($+P%p+34B-h@L?o4p{P2lMy4Aqr*5)0MiOo5@G?LQFuK`(e5x)q%9I*C2bmFxN# z#{7+CH-zB@H3io0bb>|TkGXyQn3Z5{%r)$5)B%jEPJ~xr6!e4cU@oUD9HJ7(`U2}- z8iM(G^M=-)nB#IEf}^b8H*W4e?$*8-1MUuO;68X5o`csx-E#qKE9Zt|wgt6R*6|b~ zCesIuo1`YBCbWdfU<@H8F(o)p+StnwP)`31C6h`f-3s?XTWALLp(d08C&$smqd}Zh z8+aGwK$WB_!DmL3Yy2EeL&M~T$uGeo*a&|>95M9T@HD&$%i%mU3pES93rC=OYW36s z@D1ca&9s_ncR^=(0cOGu(CDZO!(cZw%V?Id5VD~~W{b?1U^4jIe|xCzbhrifrtc+U zKQ_G?)PY-|G-&_74~3y;YR}ZEp{b!oDT`9JCT~qP&yWd26Ne^-K)IoxVk}rcrx)B0 z%Cx-rJWksFF4*hjX7`|i1S`j4;^_P|;&w%|B2|Eq3L-?+Br zM$jM7&M>Fa5BA{KYOm~x?1|h9>V_d;4o$zcFH{75)hVFQuVJ?tv_mJuL>LRB;Z67$ z*26zgjPvC0f$8ucG|6oeoIz~Pu1;Q^yg{HG+zS3wic|{Dr<}|=XWr8d(HjE$G?g7h zM*?BjeDB|y25VuAAE+Z;W2OIVU6ge+#=^`6{Q$+-=kZ<`3~$1_;BVuD&p{{f@6Dh& zGzNWzl5jTuY_R{h`_VWrjZ2uzd=iXJ`2Rhi8@NA#zM4K*TW}u(YY{4f_EaKR_hz2Y zecrUIJ_U1i)|a^M!n%)CP-or*#!R{c>G>cobW7xx$f~?mWP%$9{+l-Ly70Pi6WE@! zJ*N+phcnq{vVQ^f#X@)+Cc;QCfBgj93(cSfw1KDL4KPoA9xCQk%xMGmt2%xI9ENj1 z>V%#x7QPzpg8ncIc7O`CCOiQB;Vp11nVT)2S3a);m^b|y?9jTAx{*F$%-UGdSt!Jr z*xK2>VIFAzn_pB1^atbrM?kyT*pK^y$(2wNw12D{^S6G4dDq6^Iz;zw7j=Z6vA*&Y z`;MEVFy?8#Lce1%EQAk0Ir=WxFaA6B+9b{}ngG_1IX*`hpxhr@u&?m@>=pJYECH`; zPUjc+vw&Ufv%Vd+z^`xuD8I`0-rQH99az&a6~2HqV4aY)4ky7kTXSq(d`-|+v`$4E z#9X`nwriTLN3*`B1{jmKK1SW*7=9XzAB=>zK!0ErYzJfd`U*{`#F$;_DLgIPQ&R1@h1NBH# zFs5rhO&xO=_<3!|>){r#hM^_2hyGxE;V@j0d`0s8FcOU6UW6JcHBx%RCvXWK3_TcH z24z#rrVfNna9!GUX|KR(XqDb7eG+VjFqF?IpV0&!hCVPBrosYP1LkPW=Y9{%U=nnO zGO#LrRr=$Q471Z_r!|68si#uEf(g(KYQd?{sn9&|-n_@Da1E@cR;CveflW!9k|se1 zPzT%2`clUCu7c$W%Y&MYKR72ty{@nEK4?emr`By46oc91?DX698#=<#$kAYa>i53| z*Mjr80~nW{1l7T~^v&=^_7~Yr;at|atflZGw1RSQ@zTXhyWng11Qx;)*be_dMpi~v zGZ+F(AR8KHH_Uz)FpmS<_N$z)a!Q3ug~tG4^6-G%0l6okM_!L0CuffHD=`1%{afSn z8+eX_bMzos%V3?IYYWO!SJ?@yBe338BSk;OdGS6t2lNSy9X$iuK%c{Q$N}57CYWp1 z*VWIR0Q#x=wx7XFcph#AV@A#&bx#fWm%Z&j1#La!-}-{f!JKeqSW7M51MnC7WA}x4 zFlN&jBK)j{H=#F}`!$bvI`4Ge_wX9Dfg-R!cYp3zFa?H#@#u%)ZZL*l2+Z|<5AVY> z&>YP5q`=vnvpEM~2W*2Mz&@V`ufR}v9-ae#4}q6qHuzpYUpZVEucRYY0270F%%1R` zpbyLAqcnwHFd2;H=yR0GE0gyKybrq|DUuY_X+20j+vgn**4+FA|A4hOrK6>zcfuo} z-ERMDo2yIr!6{%UM-32br(X%zf%bYkcm{@mKAU#3|Lz5kfcA4!xD(7}m{)xO9tV8~ z>y4d1E8s^^pBw`foqDMbw1=@^?)xlUOWlNZhSr8V{tN`)0LtgS@G`s$pMW;u_h5W~ zD;O76PAjjq`=-L+g1wLGkWV#UqpfkIU_U$Sl7A?`x=c|wSmW)uH}<2=VqL;x&>xJ| zZU&QlRTHWPdY~g`uNjN7cH%r3YtI66!j}rj#R0qs`wD6-wkB*1Vnd%Le3md1%(EH? z7!Ln~&Y+ID9h?{Cp#-RZ4#R2C9@9rR?rl!@Jea>UKIR-P1KQ8#qX)r|0`%XVw=w_S zdpQE?t=8~AaE|VQP*Ny}GxtjB71RigN*a~)DtriA;S?k$Cni^gdqE$?x|`xD#Zx-N zO!yUyL$!jTFdue7VrpV)QF>FZM z5adjazvGc$}uIxeb#u|e$%>twT7LopZhLG{bug37Qmx{?#mdPJ{; z9g!W8*TFiJvha7_-+6Q33AhFhvd=UI87cLiW34>rB{0zn^%I22Mtp~Qrx314x zkaDn}v%uzn@~#bExyc&;0>WsFGJDuQ@n|hQV}L z1?Hb|weTh@ar*VGk-NeAB=fa{U?RK+i(mz;fp1|ks86PWx@9PsZ|DI&Ya8%d+8FJi zC%gpH!8Z9F)Il|)HG?*r8lB3C9P0ypa~n2QA6Nhfz&a!6%NSSz>H=+e*Emgr6|f(y zkIA4a{)z%(F<)by#(nj9jR}1K#+9{WW`OlI*4wy8o7XuAp3`9MxVb9Q$#Kc?$-x>d zukD=HXVva`6_&z2z}yJV;xvy|4wT8}E$vKY@GoF4Rvk3~toI!R&x1bl6VMKt!);)F ztF`O;#TCG~mcOlEuMWP)c$aeKId}=IB{Iire03%)0d=3>tsc}y+Yibp?OS8Q#;tsh zIbmZY<|%f7e^-yFFU%3P0P6*{$Hs!W#BV_zVcy$(`OVM))Du%-B^&|$664h7A^N~b zcnxO2mtd{vPp}V80_IClOHwVlT5Ewmb8|p#=?4pTWIFEiGXS+GK zC&A-zJzS*j@jDm;Ex>wi?PBwQqrjL&IXD?U8RQJ-hUbPyLpNv)RY0fjLe7Q%XA7%u zj)QvX%J7xpI`9w-0qtn>B1a&d0^hpu2>4yDG1v&k*-KJeZcTef7zFRYQuqP1dzEL$ zAqO;e%+IQaD!>hJJG6j~po|*Jryx8J`#iUEwY;=Au7o-KTL4<0-~UdO#B>3+l%$ z@E$x3^`R)JV}5}7FaZXDeW>iM0~H}1NS_2cS>0niX&o#F^WY!AR8Sv%4Bvva`iI~o z_+vX(g$7`qv)`et7yS#rcNDwU-wOIG$3cI^_G$#yz`g<>gK;Dmn5e_ee>@5Uz`ig> zx&uytx%NV=Ei%q{E3}6Jpq`lz>JV#2j1j4Cj8h7syg*kNd-iXCf^kdp5ZZsfr!Z?4 zl-qZJ`a@Z74AgjNXD}vee$CgqfI2}RMVUSxl<8AI-(^Mt`W&9OW6V|5D`P-kXgIt8 z#;V-o+xnl$@Cx`Db(in=b+4-ruW$4vtOtD=bKd$C|A2W}1y&Kzf2agCp%FX;&w@Gg zw_q`B1Z$p-gFcUe-E=UYSpllUEnt24gU|!|gSpEQFc!wZD3}P7;1w{p?Q6cTFLZ~; zp%b)+js^H{UpKb)ESOJt1I&{zg^jQoeu3R^2rhx~peoQ19)^MNI(!Ddz!@l+Tr&Aa zs1Nr+M|cdB>-}Lgd;r!w{tSNuCEdxDQYxi1fKKo~cmuwGpW!f^g>waDr(|2ko{|zu z2^EJjPzkPsx=8T)wcr5W)P|If9 zpZObf)|G*6z}SqkZa<`P=IHfs7jyw* zDb{el2t(lo7zoDx^--P%<)H6v55{HGDRn@u{dA5AC${Ap&S@b(&y6=I1PTUew5?JwGo}6 zAyk4)u)gR&I0(BzeZ2<`fw>U<3H68Vb_cWr&v2atUw~uM?@7u}%D)2iGiyU*P^TNy zdK9|CQ{esUfBM_Dd>nkA&+0Q52HU`P`yIT0+wTaRgfJB1T>46I3)p85fqH!qjDzX0 z6!dK)P?fVrjbXkB&a)pty_8A4N;S9znu5M-XR!8V1Q-+h2)=_Ipx!wT<~8+QTvt#W z^ogu{*M~6f)f(L6!2E`~MjbL6tchO^>H+q!^{!@zvu z1n~Dr(0&zlgRdFOdIS9Z3cL#b9tXb1ddJ>i4n=w7wfliFDz7&htYP&1qA&9Q`<|%@ zQ-c~@eU(pONdZe)vtf+O`1Asp4|CxIc)x%-oR{inl#452Em+f{O@0vm1!H&-FwbvZ zryAS_*7iOEy}>xQHIU;#9X1VS!9rL9>tQFTe~uSm?%y?d+u;XT1|PwP5Q~-TTN!^+ zclmyEKv5t(Nn|dRR0K*uCAb~h!;7#0eua$WjN~TpJgBR_18WB^fib$9p(Q*Cufiv= z1rEVKa30QpdS^SBzaI(ewi_WG^v(3s#y~6ZJGUfl3D!z`PyZzTllV5Y0ArxGw|##D zT%hL8nC%$253Yh^#9zOJ!O#ed)9Cjs0PVS^pe=3g!n$ws7|uCmrg>3izzi_fX3qRv zv8O>h!`k46V2nq( zcZU7Atljw-MuD|Tw}N?socx?1AMLs~<*0VZ80ZO2K|Q04-T|M$II!LgpXk+yaTq;YoKpsEX-J*=qu~%82{3LTnJynI@k&7spM#Kv@GbySnq0V(3+?h z!F8fte^S;)FJ8<@7bJ78Bkx|0mekt;pz|dzWwtWs6!TkeWlNT81!}0$@$xF zwZXcjF5uo*lfXV)1AE{+=<`%9*n7u#XjgFkv*#Ynf#qOM^d9B=5es6(wpbq#F7D6o7V*W#Yq^|NiUj*|m-h(wr z#=rD+lvCcDHA#Iz9rZl;+kg8$byycLZuTfV4A%czBc|U}8>&Gm@aGIQp9f(V7?b-J zj4v((eLmY!zfGUe*kNxl{?`^-fqtbqDdU3rk;W*kKh}RV?r8qhYZ?zc3WP|4HGOpx z>IQA?v(5tboNea1!TVtpd<;66b%&({Fz3fMxnOQ4W5AkFbrOXN$?iD4O8I_7z@wCLr?=O23-f^L7kNZt5}Js zFIEHoW?jqs&>AjKFYy*wAM10PPqW=eKuJ)BDbw7?z&>N*FvSh zTJp+6;SPv{AM<|9djlSZ%5X9FVo($MZtlB5Eol>KyUKzF;vv`obKxaW-Zz2jPz21! z7&H4Feu0g!2EK)F3Q+HCf?wefoCEXFWuZ2-fv4bQFrTv;{(wv1dga>C7W9|QdFwB2 zh2!9aDhIcNF}Hy*1wMygKp(C&YjGPwFL)J}gFa00Xz?KT{#^7qPNIH4x&h9DGWj0R zwpL#M1Q)>AObald^EP|~$|vQ&do7fQo1if$quPNsa1U@lhaq4*)V0jUYh33nuYh{S zI-lpj_q*qvaZ~k-Hnq8BuU{16L78|M)H~kC9B{uRYh+u)jiCOClEX7^?b=Igt;|*F zk39jd$EXGRIVOJ3M9*;g`GG(eDeG6jXYe7+1lwpDmo!ceI+;OQTO)7` z+F=BsGEkiTi^XWfArS(wDpg?CU2% zA@eSK%Nb*KPK*cZEYGku_fs(ba5Wh7Q7&|WYH%uYDzXfW8Px|9Wjlz~8=o?6bu$>> zQhv{a{?HJLzya19d<|3K88F9ho+c4aQV(DazzUcJu2~-n`Y}DAGqi^epdZs62ErJ4 z8|K3@*bINcSuiPA4%9)dp*Oq%--3CgD{`;MZ4QHAA-KPW6U?UHKv~zSAD6gF0k4 z*zfu-K7%>%(r`X{KDrZ@f#bj$gTe3=I3~=En5TLe9s~0v&%z)W3)Xb$Ul{)~S7L2f z%*Tl7j!=Fm&>i~74WKo2C_vxYm|^(Uf^j?JhUy;S5u(O@^;yI?rE#_>KUrWc z*)h=9?ICFI^4gRYnlnZNAye7rhh+YHr z%~ps&9oEh-LMj-z%$SsGGS+EXW;AT4@FWUDU-qPnv^^#`Et_bq<*lA^+0!m{ck&H zJG237T^!4`U>AF4{tt|YeMu}#+s@dIG4|nL48&aPCE_1{!A6(|!$DbVJ&?BjiM$g* zj@=qrYn58T^$-WUa(4x?dl+>|=Id_)4Uetit>Kw45_&*GxC$=jT+G=CU&CB*O-x@< zue5+W;RdJ(#UTUyT^6cAQ&1m`gU?|PsAp~meVn&J{c;S-kQ4HrK7uT;{>i$h9O%j} zbl*eCXvsj1YJ)42jIm6FE#O(Q${TaU2cZi4ls*AdVJ+C!P897f*9xdJ8bC~E=znWF z*)Q5@{$1Nj8%#TQH+%y#z&;xYk3iFcz4Y@g=LP#N8}}LwZJ|7zXFuQVuo^xCYY0a` zZ!kWjtkzF03Kyamg1nJBMA^R;{D1iql*#&JzEA%|+&3du`>PBu0m^-S8FLuQYHLc= z4f+^$!5l|C_<8kU@EBN#X17(&h)PjKrURt z9+a*jZwuA~sNcQ@b1p^liv%&h!TEy&U3!4pG4qr9BF4Y;MMl94ur9;gigC<8z`Fju z;J-J*3it%{TPA_}+MH)+(El^{>2SRKf^i~k7bo%|*a?nnY(?FledyLhJ zsne9l#>KoB?@RmNoXh86{7#*u9@1~f#uw6$asa7E^wq3&(B~ThT|hrXpHLg?9P8Hh z!#Ys+eg)QMXiqzrw7Z;F+rc`F6X1Pc30H&9?eo6~`jc}&ee*{_y<1#DTyS63R~xr8 zzcd@x!C^QB`Y>`H;u7P6+>i03Ht;N1r?43Qf>2T@@CU{wjZOL*vY`oimsh~LfJP~e zf;xcXDaTWqhnfdIN?K}Kur~Ae)ZbHUrPT`7VwOxVnLZla=(Ar&zl_~bFSB0e2$%`) z!IMx1KFRnb<7$|hJ~O>CEK6IK_5>7zFH*lqy$5~{{T$R2+?R4+N|)p=$*rhp))zDX zPY5->A~i6s%XS`_Q?3Te24faaKr#4=I-k2>A9Y3Mz3W2>a9w11XaWC&x$qmPSg(XK zP!dW&5r|MEbOw&XcK8M+LPI!AEx=&Ngc;!(;c8&)t2O+c{de|ws0gluasAAHm;Sr- z0l1G=3Ha;cUl*6b0+?CAii;~Q9)YVbU43a7u(bcul&mRPO|qK=d(Rq2`!4)l*mc}5 z=e?X~p8j^~dbMS(&r%jtrcU@ba6Y*f@(jE|eMt@Wid_t4lFKAN3p3%X0%oyu%Mh@p zF)Jx6X(8y-9%iL)A2>}6+t~8S_>(~#-Ld;Ds0-eK25^?Wc|QWSzCx^-tEP zFd1z3&tNZ<$}Sb`z2#a=_v^BcKZQ!+O5u;deAj9CH1E^A7b7o59%6qg^%7=LAkWPU zmSTTX?Mv-g=kF}gW;Rz_G_h!4^BLFH{&Nm%6B?^9HlsYN0B^fT6pUccF&k(kXgj?c zeKpWstJ(9!cxPp>reia#hnNoX3H#klHa5U)G z9b)fv^HxKl9n^=L;RbMC`0S2rb^B?sUG?n`f--+07>`r;m~$r{2!+7 z1Wf1Z4fyzA_Av_*$}YQ96k23g*`nQ6B73rhY*|`Fk_wURR7gld$RAm=WXY19vZQRY zJ~Lyy-|z3$d%g3yu0~_b@;uM)ocrAOea>%KH5;scRn21M`A4#@p--E8*<60oS zKzhlHk{QK9#e#EEPSeA;JZpK@JK67Kzs$KJwQ_0&bt8Wk<7aDl`8mhbYus^tHOz@L z#eU9yFm7EIwk$aB##*3EpI^YC|N?8p7>gBOb)V@SK8;c$Bl#_F-sf zXsB9dHL8&*nLlOylr=hgbZ{=d&)h z;b%A&I&PoJeJXg&?G3iZ{}8O_7)L~51!vd44&w&TUU6OI>#z=d+>XP39`mr)9-O~@ z9_bSVf2WAK*o8~*iAsh&OiST@k%DlK$sMql_(bj#!J5c< z{u<}WJcpk-=g8ceSP+1^u${D`wT-mjF+sb zc%4?Kw(oUSnKK-X3!NkH;%t{jXmR`87w46GZ=d;M&glr&!1aUIUnv~t>?HdgT=RLY zI{y;t54aV_etoJ zFe(vAqmo+YYnkr`KFR+{{(=Px78r$7D04@dJG$X>e2q0&fHwHO!0!bv>q{Fh^Ltu^5^|otydsplkGB%k4=iW(h zUG3ca2KP=HL4L#>`FYNLZkE|B)AfVbiSxoADSxD-C8s4nff+Yu+&Fdp)b)~RcCFd9 z;a7)WJ#yv9m9A)xi70lpm`jzb#jY2--u*`R8;6n)CAUd!lWNnA^^YGoXK*$9Np@2c zJ`r{z%s8Phk%iTlWQLcvoj%tBV}8bz z^eO4%)5fR0m-=4nl$0qctCCkGXWhuUF#?aG9>&6ne^TL4JHJ@LKJ=y*q=ArFd?G5u5 zrQklB&eXmq+?;UpD0>gx<4Br5IE&V}ef|IEf9zk~h)uAzmW-;|RkPp46zu9=O&7=k6p%Q?go@o4DLpub~f=E}_e^#7H~E)(Q; zpQR_-HGzEsJ|5Gs5vSoAsyw__2Vpw?hrQSi&s4FN{}k*k+r@o4T!&7?N0<%kZkJJl zzO(0Gyz98wjy{cpFgJPx#<;G%`f=97-)IxwCK%W6j<`Fb7hE%Vy)a}&7C~_oL{3Bw zCw-p{dR0G-_%xy&3S$fVv0KA=sU3Fa-kG~5tm#*RJ%{#-m~(Rt@iNN5wbFmThk4(D zcmo443?IOHlxwz4aGpE~f5%ir+=?LDEgGDq_7Z!MKY+QzONiy*tkS57hi|jy*bI(M z{V)y2Va`S7x7uMYGGL8n3#ze4#-8C^;km*)VLcKe5+a_%bR0wB$ihM2?M(L6UqI=o z(otQp5?A3l>>uF>D#uig>5t{Oj5}lRjIEDRaP00F*U_|l+?u>=@{Wuj8Q(0SSwhLg zl8L*}C8K#GAuv7Tqkm zJ$q)lc!<693}6 zwC~b3rEf~l$5~5WD_*-7voB_w8*xrwjT10VGq>+^>BnYZG+bLuy*c%!ZWfs*GLLJ{))B2E`g0y<7tYIf-kgl37zy)$_8V-9+(buq z{z&`TQo>V${j}^3!s8v?0thYHEWg};5RmLxzTk<(R!Z?h< zTX+$raW4H_a8Bd2^l8C4TPHb(-F(m#*gI{%+woh z{!gP5-oZSWhw*d#J(|P4K(3u#|GFkQ42Henxv<7!@7LEDf(~d0f2W=>FKc}zlpPB8 z<-2Za0rQx#aBb%El}f_%6t19fsBrMuFW{b9{IlR}(%tlr)X1t4^o{$twP(#^&da&i z{xoYX&K>r_IX85mU)XwBTl$jB4f#4WRw#k8r~>op4e>O5t-b>1%o;E+V~>@+z~;8B zC;SQP0uQ1G=EHS{eM67qRSboFLXMALVmi#}42SttKc_XGg7s4SjV`iReF?0$TUW6r zZOra-?DKt!dkKFA>utvNr^tWLM_-t~tAe|4D@)HwJ=h;-EVKrDVc!DbU``h7hbxK4 zU@W=>zU~^(r(h3)@v$`@uiG6kmr@_r?ib=D{JE_wxc)M>Fs>*aQ94-vl!+`8ITgl- zqi_y2qiaULi?uk0ORxrg0e@f*{JSqP7%##6Lv>VzJyCt}A-;k&?9K4~PGsQOm}g`D zz{J>zu><1<#`VwJKX3Q=?(yvs+9lLVtd)2UuO_{kv=j$%0>5A?y21HiOX8Nq9*D!j zgoO!>useQtd^Oa}TQhIp*uJqlqIN{tXYBlFY!sOpndv!K$*IYy2U8BF?8V^J!Kt3Z z>zZK#JkQTJ&))T{zMZ(AGq+e;WR%M+muYRG=*^-x&Fi|xc0uLdSL;Bt&>!~nn8Pzq z=bi)i5xeeN&RM-)pQktj(z?WT`fa_3#DKH`X~R;7F)LI^eG9G9TBSXc{!IGQ?ER=8 zs?SVtD>R$4W6N@e%Q$$wpN2g#cd>uGF=w5c|Fsw7PqfU_GC0e*H+x*W!ZqX-7z6x> z^Eifn_+Os?7 zb58PpD$uUeeSNQ^f5`f)=Y0Ig-toI(Ty74`xw;}wW}M7e0(-}vf;T^M%x{f~s0r6} z=Jl&`7P9$>f>{NFF}+`QzaU?p%-Q?VH=~2IaH`#`7VMpPot~yXco@I3Ps3cb4K_U(U=muV#N%0@iUpinZ&B_z(l}9IC-J$8OH>{0i@) zFYKx4fr&T(YX{c7t>Ku5a9^eSI~-GtSB*c7UyQfM!MN3Y|14PJX$$A{?l7K7#0YA0 z<&lJvXom$jiaaD9ti?rxC0elNaXn-W&iB^iPU0H!vUjxve9T^fHJ_F6b!>fJ&U?pT zUiVv=D?1CH%h_=4=x3%uk za2;i@)0?pF?H&trBDL|~TGl?)dDsW*x7KZ~wOI%7WBcLUl7mWlDh2oU9F%8JaE8eT zoKg2O?t(RJuNCwC_hL5p+;;8ed~pZ9%=t3tlXHE#2=8G8%pchkVegx3FRv$`Q~LxS zwFz<9zJit&Zlv$Y`Cu!|dygg&1>gXNgR|4kd%Vj1_>61qX-ecg8|!}W;~_ZSEu*J(1LslgWgp5FYQnDB zI)*xi=5fxVXZoH_JDuj*&_f;SrqoT@pS(Z$7nDdT5&Rs7QV*rt9N#dbVaAZqkf7G@ zy!Jgk4USVi=%=zyYyVXqnmnq&*TN0kqCMteG1No0IHztJ^Kd=BcbJ zzsmk9+uUO}RK}xlOg8R+gL@5Jf^}N+bQQUmmwPl^mpZtt%DFtgru9uJF8te;f0sFVC zv-z6rg&2ImUP$MHm#{Z;Z*ab8h__W3he5Z!A9_FZE&jp-?45Q0lQDzyP8H7LS%#{d zv*Yvl5Itm`1=)bJS$>20Twn7KaE7<>h-Id}4|DAHMETy26@&S4_avAf z_r3cP+Q2^9zfhgM1|Q-dG!Jhc^mp2mQ*zk8Z{b~-J2UTAhCGxpgt6LjSTC{Hup-PK znMeAUET@mlN-V$(cs_tRxdZUu_&t}vKBw{Uu^NeZ?(6EhsBC!I@KtEWS&XMJFmhn9 z|89QN{3!Q0EI`4Sf-ytjx$gfNimC~7e}|l-MAEWDL7AS zVbsE?_hByMIkZGu48a;WS9HR!@O~o~F+FyAY|pr!ab5Cu$@@3pa2y@SG7mb5JCK1@lRk{FM{34;^X#jlIsn0I4d&ki0G zGbko2GAq(~@OAoVu4iA*9u*oDdO7Xov^*(!Qa-xz(T#1_w_V?eH*UOfLk#8n-sWj`SVDI_1~&U(@Sxzq-<#7v6^6)n(k* z%$np7&h~hV`!Wn>uk@Ytmb*T&N5a>jYh&jCt%bRIuMuMhKi9ogufW$-3oJzu_W5{C zJ;r@Ij45hy4z+8H?_r(I+>(6|n^2TmAxwCqOdWEi~UrS$*wjgbE>gd$TDU(wO?}PhewNGxJJR0ZW$A_j4O&ymu zF721}U(#=6+{lQ@jLGDw3(l+R%RO5!!}$Mw{D@81j4$E->cgA`V(i?7I|8~c`H1tD z?HxLmek#2d)~2mZYlG5AKtVi;VYmeQ$eze}BBM&EO6XqBWv@%0Lfh=N*`3)_(S|)4 z_fy-qKhzk_{f6dn?|`w}rJPGaUcelTJwNpk$_mjreKF{BXiSgXRGf$7w&Qni3_w2& zhGXql*a!Q%9z!=cR(t{GrS4I3q|Bzp+ zBZ}i3_ZeRVd%$|(EzE)QbaT$xSp#bl&Lz%YPjUCy>2Obqzqj+d@y|V+htdbm!S+h! zpcwl!AHy@~0{fq=HJgij8rGlfDQ(8R3S1|+UMtI4>n-3~+I-O>`~+**D`D>FE%-Tp zu5Zp2=2h3>zrI!18LeP#-`tV=6}-;e<6!JH0e*jDF|SX;zg+I~xcBxsSx?Z@<(i}n zF0p^kJrVxg-MIhwM$W1)i@Dslz+`U60)D~wG&nEUoEaoK4Nq7+Z;`hb(fcFOX{Q2!M+hgwG z46U7<1(rK3cbL7X=B$sU97}oe#)~($U)z4I5q`$S>ld$gO74`*LzVhP+81fw{~(d^RkKyagJv%+{Z`i-V-sg;4 z8Npi9xYk(2eOz;I&JA+M#&=%dj&)DiFHi4=xiHtpmpG?o3pKXx5#57(0X)SX`wy@e zQM^5mPcavZ(G$N%{%(mQazprraAU3!^yc_Dn7jUg9VOdB+d|bcs%0EaI~v>zcTdWm zlzVY3`B?Jr@EeUp&D5Hy-e1f6a9CS#42$NVW^+K+xE-@< z=jlf(O5KJ;9D*D&@USzC1u8_oSa zO45h=H-4v=%`t3F_MB|T@8X;bX*_3LFa&GEV~`I%uEzgIvW{e#ATf?u9$Fss#SRD! z2>pgPGv5sEt>^D#t>|6$?)?R0{?wbP!QT1L*$-|W%y`1Jf^&zt_-PmeYrDqo#v13c z&SgD-DV$ytfhnOW!8rhTh5oNJOO5 z_m^{TsJX#pxaaPBq`=-B`|GTEPr%pM4c8%QxQeYX?_|%D`TyV8g>DSzdT8vev9}Iz zK4@)h<6JiT5R7{o!Cp9flYfEpf@cqm#SY}Xl{d&=yS}(H?9QO(5YK7G&Qw~eA3c_~J(iCGiVCAJGAbSU<M%R#(i++np_iX;QZXNa1Lk;zy6`fLy?p58jLv;PzF6gc{1`K z=ft0nJ|A5uwoq*MxbAUR@?Oc?Hlc08%*2_AJCk-Mt;x40-&^_LvW%Jkp#l#Ts0PXd z`In*@e$4k{z8ct(w1Zise^MimW=I^3j}tylNXeU$cV+C#*eOv{q7HN3y=yRYr5{n_ zT$8#c_4DM;52XX}__r%NoE+XlXB5xy#pmFAg!}Rh$r=*eTQPwi8s}p3*TYd3+cLLh zK7;e@5qtyTa6V`RpD+6e-iG%J^m|vpL#Piw?mfecW)#hsfGjwln70~&sH~`<*6SMa zQ=COn>P)U%^5aPM5vm;hf_~-li{ioRge$7}lp8i_Ke^FS-YRQd^pVy7-B+t?tL?oSA%$vy@xm z2kuGeI^it$t6BorOZ#CyZa8jW1ou32ePLfz2lh?ox|!?$)qwkOZ?xq&2=}lX>r8MyRckIDiUvOWa&g=!VPQ3%xi|uQ_m!8a?_z=_Z z83yA;RD$F6I*f$#gJZkFPBLdExev(k-fP2JwPR~*IOcD{b+|{!{Sw1qE!VuvMy$nR ze1bM8jx(IO^a∨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�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 literal 0 HcmV?d00001 diff --git a/tests/e2e/models/parakeet_tdt/data/asr_probes/README.md b/tests/e2e/models/parakeet_tdt/data/asr_probes/README.md new file mode 100644 index 0000000000..b41549c1cb --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/data/asr_probes/README.md @@ -0,0 +1,21 @@ +# ASR Probe Inputs + +These WAV files are generated from the existing ASR fixture at +`../Recording.wav` from the owning model family data folder. They exercise TensorRT Model Connect audio +input handling paths and TRT-vs-reference transcript parity. They are not +intended to benchmark ASR model quality. + +| ID | File | SR | Ch | Duration | Readiness | Model Connect path | +|---|---|---:|---:|---:|---|---| +| probe_01_clean_48k_stereo_baseline | `probe_01_clean_48k_stereo_baseline.wav` | 48000 | 2 | 4.16s | ready_now | WAV decode + stereo input + model-specific resample. | +| probe_02_clean_16k_mono_no_resample | `probe_02_clean_16k_mono_no_resample.wav` | 16000 | 1 | 4.16s | ready_now | WAV decode without model-side downmix; should avoid 48k->16k resample in ASR preprocessing. | +| probe_03_clean_48k_mono_resample | `probe_03_clean_48k_mono_resample.wav` | 48000 | 1 | 4.16s | ready_now | WAV decode + 48k->16k resample, without stereo downmix. | +| probe_04_clean_48k_stereo_gain_skew | `probe_04_clean_48k_stereo_gain_skew.wav` | 48000 | 2 | 4.16s | ready_now | Stereo downmix should be robust when L/R channels are not identical. | +| probe_05_low_volume_48k_stereo | `probe_05_low_volume_48k_stereo.wav` | 48000 | 2 | 4.16s | ready_now | PCM int16 decode + float normalization + ASR preprocessing. | +| probe_06_leading_trailing_silence_48k_stereo | `probe_06_leading_trailing_silence_48k_stereo.wav` | 48000 | 2 | 6.16s | ready_now | Longer waveform decode + silence handling + transcript stability. | +| probe_08_noisy_48k_stereo_snr20 | `probe_08_noisy_48k_stereo_snr20.wav` | 48000 | 2 | 4.16s | nightly_optional | PCM decode + preprocessing under non-clean waveform. | + +Use `manifest.json` for detailed purpose and notes. Re-run +`generate_asr_probe_inputs.py` from this directory to regenerate the WAVs. + + diff --git a/tests/e2e/models/parakeet_tdt/data/asr_probes/generate_asr_probe_inputs.py b/tests/e2e/models/parakeet_tdt/data/asr_probes/generate_asr_probe_inputs.py new file mode 100644 index 0000000000..e8cecb1c48 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/data/asr_probes/generate_asr_probe_inputs.py @@ -0,0 +1,232 @@ +#!/usr/bin/env python3 +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Generate ASR probe WAV inputs for TensorRT Model Connect E2E coverage.""" + +from __future__ import annotations + +import json +import shutil +import wave +from pathlib import Path + +import numpy as np + + +ROOT = Path(__file__).resolve().parent +SOURCE = ROOT.parent / "Recording.wav" + + +def read_wav(path: Path) -> tuple[int, np.ndarray]: + with wave.open(str(path), "rb") as wav: + channels = wav.getnchannels() + sample_width = wav.getsampwidth() + sample_rate = wav.getframerate() + frames = wav.readframes(wav.getnframes()) + if sample_width != 2: + raise ValueError(f"Only int16 WAV is supported, got sample_width={sample_width}") + audio_i16 = np.frombuffer(frames, dtype=" None: + audio = np.asarray(audio, dtype=np.float32) + if audio.ndim == 1: + audio = audio[:, None] + audio_i16 = np.clip(audio, -1.0, 1.0) + audio_i16 = np.round(audio_i16 * 32767.0).astype(" np.ndarray: + if audio.ndim == 1: + return audio + return audio.mean(axis=1) + + +def stereo_from_mono(audio: np.ndarray, *, right_gain: float = 1.0) -> np.ndarray: + audio = mono(audio) + return np.stack([audio, audio * right_gain], axis=1) + + +def resample_linear(audio: np.ndarray, src_rate: int, dst_rate: int) -> np.ndarray: + if src_rate == dst_rate: + return audio.copy() + if audio.ndim == 1: + audio_2d = audio[:, None] + else: + audio_2d = audio + src_n = audio_2d.shape[0] + dst_n = int(round(src_n * dst_rate / src_rate)) + src_x = np.arange(src_n, dtype=np.float64) + dst_x = np.linspace(0, src_n - 1, dst_n, dtype=np.float64) + channels = [ + np.interp(dst_x, src_x, audio_2d[:, c]).astype(np.float32) + for c in range(audio_2d.shape[1]) + ] + out = np.stack(channels, axis=1) + return out[:, 0] if audio.ndim == 1 else out + + +def add_white_noise(audio: np.ndarray, snr_db: float, seed: int = 20260611) -> np.ndarray: + rng = np.random.default_rng(seed) + signal_power = float(np.mean(np.square(audio))) or 1e-12 + noise_power = signal_power / (10.0 ** (snr_db / 10.0)) + noise = rng.normal(0.0, np.sqrt(noise_power), size=audio.shape).astype(np.float32) + return np.clip(audio + noise, -1.0, 1.0) + + +def main() -> None: + sample_rate, original = read_wav(SOURCE) + mono_48k = mono(original) + mono_16k = resample_linear(mono_48k, sample_rate, 16000) + silence_48k = np.zeros((sample_rate,), dtype=np.float32) + cases: list[dict[str, object]] = [] + + def add_case( + name: str, + sample_rate_hz: int, + audio: np.ndarray, + *, + purpose: str, + model_connect_path: str, + readiness: str, + notes: str, + ) -> None: + file_name = f"{name}.wav" + write_wav(ROOT / file_name, sample_rate_hz, audio) + channels = 1 if audio.ndim == 1 else audio.shape[1] + duration_s = round(float(audio.shape[0]) / sample_rate_hz, 3) + cases.append( + { + "id": name, + "file": file_name, + "sample_rate_hz": sample_rate_hz, + "channels": channels, + "duration_s": duration_s, + "purpose": purpose, + "model_connect_path": model_connect_path, + "readiness": readiness, + "contract_oracle": ( + "Compare TRT transcript with reference backend transcript; " + "do not judge model accuracy." + ), + "notes": notes, + } + ) + + shutil.copyfile(SOURCE, ROOT / "probe_01_clean_48k_stereo_baseline.wav") + cases.append( + { + "id": "probe_01_clean_48k_stereo_baseline", + "file": "probe_01_clean_48k_stereo_baseline.wav", + "sample_rate_hz": sample_rate, + "channels": original.shape[1], + "duration_s": round(float(original.shape[0]) / sample_rate, 3), + "purpose": "Current smoke input copied as baseline.", + "model_connect_path": "WAV decode + stereo input + model-specific resample.", + "readiness": "ready_now", + "contract_oracle": ( + "Compare TRT transcript with reference backend transcript; " + "do not judge model accuracy." + ), + "notes": "Expected transcript is the existing short weather sentence.", + } + ) + + add_case( + "probe_02_clean_16k_mono_no_resample", + 16000, + mono_16k, + purpose="Cover native 16k mono path.", + model_connect_path=( + "WAV decode without model-side downmix; should avoid 48k->16k " + "resample in ASR preprocessing." + ), + readiness="ready_now", + notes="Useful to isolate resampling differences from core decode/runtime differences.", + ) + add_case( + "probe_03_clean_48k_mono_resample", + 48000, + mono_48k, + purpose="Cover mono 48k resample path.", + model_connect_path="WAV decode + 48k->16k resample, without stereo downmix.", + readiness="ready_now", + notes="Separates resample handling from stereo downmix handling.", + ) + add_case( + "probe_04_clean_48k_stereo_gain_skew", + 48000, + stereo_from_mono(mono_48k, right_gain=0.55), + purpose="Cover stereo-to-mono with asymmetric channel levels.", + model_connect_path="Stereo downmix should be robust when L/R channels are not identical.", + readiness="ready_now", + notes="Still the same speech content; intended to catch channel handling mistakes.", + ) + add_case( + "probe_05_low_volume_48k_stereo", + 48000, + np.clip(stereo_from_mono(mono_48k) * 0.12, -1.0, 1.0), + purpose="Cover low-amplitude PCM handling.", + model_connect_path="PCM int16 decode + float normalization + ASR preprocessing.", + readiness="ready_now", + notes="Reference and TRT should see the same low-volume input.", + ) + add_case( + "probe_06_leading_trailing_silence_48k_stereo", + 48000, + np.concatenate( + [ + stereo_from_mono(silence_48k), + stereo_from_mono(mono_48k), + stereo_from_mono(silence_48k), + ] + ), + purpose="Cover non-speech padding around valid speech.", + model_connect_path="Longer waveform decode + silence handling + transcript stability.", + readiness="ready_now", + notes="Detects unexpected trimming, transcript drift, or EOS issues.", + ) + add_case( + "probe_08_noisy_48k_stereo_snr20", + 48000, + add_white_noise(stereo_from_mono(mono_48k), snr_db=20.0), + purpose="Cover deterministic noisy input handling.", + model_connect_path="PCM decode + preprocessing under non-clean waveform.", + readiness="nightly_optional", + notes="Use only as TRT-vs-reference parity; do not evaluate model noise robustness.", + ) + + manifest = { + "source_audio": f"tests/e2e/models/{ROOT.parent.parent.name}/data/Recording.wav", + "source_properties": { + "sample_rate_hz": sample_rate, + "channels": int(original.shape[1]), + "duration_s": round(float(original.shape[0]) / sample_rate, 3), + }, + "principle": ( + "These probes test Model Connect input handling and TRT-vs-reference " + "contract parity, not model accuracy." + ), + "recommended_metrics": [ + "CER for ASR-specific character-level transcript parity", + "WER substitution/insertion/deletion breakdown for ASR failure triage", + "no-speech/blank-audio state reporting for future ASR contract work", + ], + "cases": cases, + } + (ROOT / "manifest.json").write_text( + json.dumps(manifest, indent=2) + "\n", + encoding="utf-8", + ) + + +if __name__ == "__main__": + main() diff --git a/tests/e2e/models/parakeet_tdt/data/asr_probes/manifest.json b/tests/e2e/models/parakeet_tdt/data/asr_probes/manifest.json new file mode 100644 index 0000000000..d91920c4bd --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/data/asr_probes/manifest.json @@ -0,0 +1,100 @@ +{ + "source_audio": "tests/e2e/models/parakeet_tdt/data/Recording.wav", + "source_properties": { + "sample_rate_hz": 48000, + "channels": 2, + "duration_s": 4.16 + }, + "principle": "These probes test Model Connect input handling and TRT-vs-reference contract parity, not model accuracy.", + "recommended_metrics": [ + "CER for ASR-specific character-level transcript parity", + "WER substitution/insertion/deletion breakdown for ASR failure triage", + "no-speech/blank-audio state reporting for future ASR contract work" + ], + "cases": [ + { + "id": "probe_01_clean_48k_stereo_baseline", + "file": "probe_01_clean_48k_stereo_baseline.wav", + "sample_rate_hz": 48000, + "channels": 2, + "duration_s": 4.16, + "purpose": "Current smoke input copied as baseline.", + "model_connect_path": "WAV decode + stereo input + model-specific resample.", + "readiness": "ready_now", + "contract_oracle": "Compare TRT transcript with reference backend transcript; do not judge model accuracy.", + "notes": "Expected transcript is the existing short weather sentence." + }, + { + "id": "probe_02_clean_16k_mono_no_resample", + "file": "probe_02_clean_16k_mono_no_resample.wav", + "sample_rate_hz": 16000, + "channels": 1, + "duration_s": 4.16, + "purpose": "Cover native 16k mono path.", + "model_connect_path": "WAV decode without model-side downmix; should avoid 48k->16k resample in ASR preprocessing.", + "readiness": "ready_now", + "contract_oracle": "Compare TRT transcript with reference backend transcript; do not judge model accuracy.", + "notes": "Useful to isolate resampling differences from core decode/runtime differences." + }, + { + "id": "probe_03_clean_48k_mono_resample", + "file": "probe_03_clean_48k_mono_resample.wav", + "sample_rate_hz": 48000, + "channels": 1, + "duration_s": 4.16, + "purpose": "Cover mono 48k resample path.", + "model_connect_path": "WAV decode + 48k->16k resample, without stereo downmix.", + "readiness": "ready_now", + "contract_oracle": "Compare TRT transcript with reference backend transcript; do not judge model accuracy.", + "notes": "Separates resample handling from stereo downmix handling." + }, + { + "id": "probe_04_clean_48k_stereo_gain_skew", + "file": "probe_04_clean_48k_stereo_gain_skew.wav", + "sample_rate_hz": 48000, + "channels": 2, + "duration_s": 4.16, + "purpose": "Cover stereo-to-mono with asymmetric channel levels.", + "model_connect_path": "Stereo downmix should be robust when L/R channels are not identical.", + "readiness": "ready_now", + "contract_oracle": "Compare TRT transcript with reference backend transcript; do not judge model accuracy.", + "notes": "Still the same speech content; intended to catch channel handling mistakes." + }, + { + "id": "probe_05_low_volume_48k_stereo", + "file": "probe_05_low_volume_48k_stereo.wav", + "sample_rate_hz": 48000, + "channels": 2, + "duration_s": 4.16, + "purpose": "Cover low-amplitude PCM handling.", + "model_connect_path": "PCM int16 decode + float normalization + ASR preprocessing.", + "readiness": "ready_now", + "contract_oracle": "Compare TRT transcript with reference backend transcript; do not judge model accuracy.", + "notes": "Reference and TRT should see the same low-volume input." + }, + { + "id": "probe_06_leading_trailing_silence_48k_stereo", + "file": "probe_06_leading_trailing_silence_48k_stereo.wav", + "sample_rate_hz": 48000, + "channels": 2, + "duration_s": 6.16, + "purpose": "Cover non-speech padding around valid speech.", + "model_connect_path": "Longer waveform decode + silence handling + transcript stability.", + "readiness": "ready_now", + "contract_oracle": "Compare TRT transcript with reference backend transcript; do not judge model accuracy.", + "notes": "Detects unexpected trimming, transcript drift, or EOS issues." + }, + { + "id": "probe_08_noisy_48k_stereo_snr20", + "file": "probe_08_noisy_48k_stereo_snr20.wav", + "sample_rate_hz": 48000, + "channels": 2, + "duration_s": 4.16, + "purpose": "Cover deterministic noisy input handling.", + "model_connect_path": "PCM decode + preprocessing under non-clean waveform.", + "readiness": "nightly_optional", + "contract_oracle": "Compare TRT transcript with reference backend transcript; do not judge model accuracy.", + "notes": "Use only as TRT-vs-reference parity; do not evaluate model noise robustness." + } + ] +} diff --git a/tests/e2e/models/parakeet_tdt/data/asr_probes/probe_01_clean_48k_stereo_baseline.wav b/tests/e2e/models/parakeet_tdt/data/asr_probes/probe_01_clean_48k_stereo_baseline.wav new file mode 100644 index 0000000000000000000000000000000000000000..db2716e6881c858133ca20f3417af83719266b37 GIT binary patch literal 798798 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∨oOIVTEIHa3rU3itFt)QfN&?+qZPxxd)LLYF$>NU#t`k{8X=ax zt(Pzj);-U|HI>)D^W=wcu6%)WS6th);9k1cT^^;!*S=DJ_6FRma601YUw$73`U_Ay zs&=q1!E-dMHJeBBAb|H{-;cc`?vCJoPy6Hc8*;{Z0Eu(MN2rWlvAbe>p&&NJY>F9x ziugVH_h5gt^=WGir=w0s{fgi43x0s($z9QR1^0m}A5%Vt<9lNrXxOTd*F@}PtV&pw z&@QoE;&#+Zs+F_=n_)eAD}28W@1rw%pgny50?sF%_qMl*ed7DXKM?mo+^gJg>N@A? z+6Ur%+>d;W`wKn=;9qOmmPs^8{FX(+~o6$BSA(TMmHz3H3dL0_` zTMx9q)wtgEKu2h7N|zJB^_u?avyav9EK}^Yl?}#Rr@zZy&@1oRw9XduZH%^*hf^yM?c~Z*f?7 zSonLeCwmwQMHY%2f;G5~%@_mc`3EB&jA+k!_>H+&lzk-UxG&GgoNfOM`;N_BTem#P zdGywDJzL}w_fRxXw+B8R=AEvf2ls9|4D;=d|8p=ET~QIPvpU0koUw3El*I+k-1-_F zQ3duAY`{Exgi-hubKxEn*Aj_rrg6TSit}g|Y8LESiy;2)hduCn4ua3+pYSam?u{Ic zqWC=X^UPcr9~w`EyehAhgy2jtV~8iX2UQ}Qb?iNun>{zXKJl-40k3g$=*E4ne;oTG zaN_0(I^Z@0YXtl2>cJYVb3sS=z3ojZiFtHc)xak1YxO$rMg_bMWo$bKgBr%zTKoH|rC_;JTmyoOf4aI!5D73_yPj!AGz*ZSJYz&4$4o z)rh_9=kYcBv)*8}T%LZD>#*;r9{2dMH{ag7}+46NIoWlyquT*~50 z_HC4a`xnjku4PYPceI3S`Yv$3*bVE7?mw>s=Mmq#f5p0mIf|8d3&wk0VIFQNQej`A zXR7Q&HSU9Dp1}PYOYvl$C-Ypyr0_}MRU)bc{i)+3$3@nPsukrPg#DNsGdHGZY|q%c zxVPUDIQid`_ny3!aXs#O+ys=tcd_3E_l-Rqb2#Q>JP!9TpNl>hJq`9ab%phdk|>KB zcnGVfWo)D;)9|Lvep7;T$;CS8;9Wf5`ZlB3` zJajy`{|W6cnMojR8uV=bLw}X$sr(G*C_k?PXa9bO?pfWl+|PRvuK!&aTO%-MKN4@E zHJmpeK{+Ji56-as3QgfyX5KlD`yQq1?Seq7>SRu0%>@W`x7pL`N>x> z1ILkycy_4W4PVEVPy+TI+3V$;kq`d8YoNzrt)&^7pf>8`UfhRe9165J2Pe3>RJ&C=-j^BOo5sd8}_g!o{Z`8&B zOvi3S@>UX0qZ3?14@EDuLoK97q;sO_T25+sCBl873&R%%d&x-A1?LuZ;yxG;;2-u? zc+Pn*SO+v$)f48C)^IL{@m+lsg*9g5{(jhs2+qlP46cdnKdO&d{LFn%oKuVy?OSbj z`#x%;*_-_xGSHQC?bg6r{8ZRmWsiz$m(%d^_zra<>O^cqtH@TS(Idx1jfr|B`jMa~ z_2HO@W7Z*-H}^Haif8c>+Q5%hg*6EGEhNVz$7FzZ6x&>4%c3s&U_O@MPgIPn7}pKn z6Yz<=Pvkv^-toQZMA{x-JE3;MJJ^EaiNzD!;}6`MbZ=4z{D#BWgHu?7Md*XS68~cM zsFP?T#@M`L^X`t_9qav~Rz$9d^trZ{Zs0DW{KNhN$Su3+AKE-sn*UmVzGzMTLmS8g$qbaI@ z)L-zuwq$Ox1t!zaAB6(+=esU<-8~VPQH@%aSAx54eu_0ZZZ9Vln=QU2w101)PD;*12h4}_>&N&K8}SdU{~8YrgKMo%;o7SMoC|W{Smv?do`%CYH>?91 z!`x*hSl@aWZQwe?UR~#wrC5#)IEd?T9&x@H3S$q~AJ!O*n~aS+t?~E-3*qk_%Lb*kSOQ}rAD^wT9&J2r9BlkyygUT%;Uc9G)Y|NWV4Fs+=A41_ z35?InabJjD*o1h_&+d;?Xu>@acH%zH$Nn4!YY#*{5H$d^u^v~EjfCig=;Gkk(0uc>{g4Pf7@ zXSTk8R`BdrdyHHk9Dq5YpHLvSK(NR5O6--`vTHish?=X1EjYB)yY#HSua1ELp9WflvF~+{-IInL8 zB14fu?!bIiZjz#|Z@z$IfOClRi!X3{hI&yeHHYEvdK&gZm*gIp_Smh(0bGHv(IPMo zdkq6&kH!Z07&0(x?%H+G_gUX(HOA4*qd_g-e3g48^5aMD`|%v| z!tsA5>_O^_rg#K*;zrty;B2JDX^Vq-q*q$6v|1 zqWnP|Z_MFXY&_t)$~eF^l;i$tnB#dN`-SXD*a7R*8Mp~^Fn`{5k{;@0*k5E^?|Rc* zsP!mwkp92#jpIAO9MNo;13H2W$V3`k&;Ensu&>tK=Qo&&5pX^281L72J>WcPz4 z1M^J2zKs*_;r`L~a2&zIc^(d8XV(+Ygg+D9e=a&AIyi&$YwjU>5qCu15m_B|Q3uuF zIwBujFC2#J=uhx6O5;5HhL*uId>%sqn45K@ZCrR{oHD(;0YON3$Qv zSkM~#^B9I%I0k#NjHk_eng99*C*fM_McCKmoOc|Tkq#d(hVh8XXaReAXTmwx2I1y- z2kwO^6;&##J-);Nn5(Lfq1XcJ)wS^vlykivF1k+*9?xyvk5AB6ngY=est-HO~6(jXPniIs(oG)=cBU7Sv$;I+1oF?N987 zf8LH|SdGaTj`z?Xj&XhA`_b^MxPMS5y$&!=2m17QUPA)-@*Qh z*WsMN5+T_4pLHvX6Ti*{_ZD>yHy`*Sp2VYY?x=zCh{r#i8M+Fi(F81Ka_nuL1jjjZ z7Pa6w)ea_hTi@tBpiAm?yFx;Jp4P=Tlfa_zLz|cgB-2-nd2M*K!g?C`j&^qjf{k&OlQ5uEl+vgQkSma5vl|paQU$+mHEu%qLZa{ZH;8QeGIhS3(1f z#TsmdH45`!zrvi4xn0NU{-^`LzWeNq(U!sS=tH~?$E6VcveuoQ8_psXu1k#dT(dNQ zYll%74(p5W!+eu*p7GxWc+R6gV|iG+c^%)u{j*WwQQrF&1GZHo$z{QJjMBkKu1z!xj94zi|q*@8MnEv*^hs49)G}G zSox^(QO)rN`on&x)^Hz%>%8io!H28dckd)N<136sCpiB*;hu;%5zPAwA{GSq#jt;W z0^UVGya#_T-)}l9Gr@hb9%O(1v0TT3 z7^X(98o`{hD{NP=E;N3A3<ZtBmtmjR5PX7_xB=^{?g5(*^ZNNXqu05kAI8BRP3y%w;5icZ z=NK#JkiImb#M>- zKK7THYxidu4|DJ(@Gtc&V{XUrZfJVDceDlf8-EU+&;uRN7XEz|SP%G@eRRk08`i?P z&V1@>{13n4EE3rZZB5SHkTojf_*1x!R2b8{21w-0M1Q6Vu)nf5%wt+7JAi*tm|iS@ zFCVMdVUEZ>6Z5bdrx8PcmUDeu7$c0pWGukX*ai1|88;LPE5r!^joEcSJnSoY4LL^? zX1~6<_%|>B!!Q=p@CDp!V7{qw?#98rPR;*U%u_K>A1uRPa6ixEFfM%mwu#{rgILjV z?;ZGe&KC_)2+k>gz?`dd%n&?>j_86{P#?}4UVs)Q{Il~%Av^^8H+*kR*q>(vhGQVC z=S_ltZiWZp=h~ZVpVKO=zyx%Ly-5C!zJCl6aP6=J&Y7;~|HXN1#d;iv`=^WEb{GA> zu0LcR!1=WcTx0mcbdGugo#A|O0lC9-+fu|McvpB$G=}RjA1`~v+TkhK8}KxI{EWS= z-8&x_gI~iM{zk0DLX1aOya0QGeJuRDhzyV9^v`PSQvAOjr9ZbMF6X%%%;RG? zBldaR3-jmaupQIzDW>1PH;C_j9L<5WL^Zg^a$ZfQPx%JS12%$>wR7@jY{U|*fzQP{ z{0iS2le`V{oX*R&VLslk@c_)x{K!CheGrB+9?_q!IH}LwHgb!h_tF^5AQ36Rg%e^eU z&U&L7oVbo~4}c{Y1Y^B(Ip>1D%0BcATDNh`d<%DDJNN1ygE}DG56+T!ll$W}L}6Uy z%-hW{FK>?fF@$4pXm4m52B0IV!Li>tU_Z?1QDvgG#tDx6zp!1-b=T>Gqn@wYvs&O83U=PA60S5P0- zaUY(9AM<%J*J8cLukZIV=dumoz@Nu|R}9W`d$As_t=3=xzK1O1OPGC)`Cj8g~r~_jZ^RQpR*UVKo*Z#*`kpoUaG(sV+Za0?j@8aF=gBFUtNIs?pK*EO@_6Q_VZH{M8;sw-! z>xt61#6G(XFn3&#y?B-2d&fR&5!O7MORA$ETyObUOuTI__XXbr^G_w=JQs`haQ)R2 z=DCK!bCedfGjeLN42vd`RHT&eI$y*b{MtdtCp58R!guudAG6 zvmW*kdW{+{n=8l#$0f%+^9?WJewa(zPM^vsnAfQWWA>w*Q92Lyu~$bl&U1c*eYcZg zF0L}pa&L^!&=pVNZd~TxdiDuTyv@1hdsriOonsB?V~oKR%*EIE0-oK_0bMW@e$Hsv zXYALpSIMtsZ$Y8VLY$=AEVwtv%*>fVO*kwoEZBEuFO{`l<8I^gXYmfchjWMf@?4i# zmp1>_9j*mdV<#M+jk6uIOXZXb?rG#W*$R&P#@hqYAEWUudc(P5D(2#M7=J&4CvZ3N z!Ca2(mHKE0*EatDW%lkl#*!8Y&hayb-vakn+{O7^p69j_j?Xi31g?#&3CldcANvhQ z;s5(@PT(;9#woZ@q9|vEx+Z9Z9Nx~tT;NM+18dCwe12bZvXA3IxIS(P*IoYm=kYXJ z;S=mc3i5IO*I9bFoe%PJsE*g&^KdQhb=MPXkqVO`%c$8}kN6OaaS_Hx6VV9+;5A*D zbL#$JubaJ}({T=-lg7gkmW;o#AFf$i!P;GMJdVCtj5qNFUcrkP0I%VxaL@FwaO`;< zZQ$QKW_gY8!yx2GA+&`tpD}D_cm{(tyz05C2kWE}>^bd)4saZE+?xzz!4h~5!(psA z4$s4SwIBN$#>KQ^2kR^6mq%e8!#>w9VLzgOUI^z#<7MYM*E^ou>iXyeXO8>#jyp?{ z3HSQVfOV2HaGl}aiud3eYY;lY+PLeHv-A)+2c5#h)P;=sofAFt&H2~y&iVQxXB#@^ zI}bX3$+&(-t{K5OhmOyV`Of`6!SUV4-gV?MyaOM*-Y`zs2J5aB@juS|_q8zx1<705 z?^O&J!Y%}7V^-pv-BR#%@hp7ZI0rn+zOy^w7`d0Tgonei(Y?Ut#m$eu46jdL&EZ_< z-ZgWq<`|v-&Y%GM?cc7w?Aq z#$Lxucov=D|NH0r@c>*a%*84!$9Gtbjra|2kZpk}@T@D>P}a*&;|kJn6`n)12JWxc z47k>64fh9E#lv_B&MOmPzr%YlC+HewJp6Zl56|5&zvO%0tfdUWMr0s~rtkc?PR;l< zQb2kz=%;nP(HO38Tt`?Ba^AkeSrtCE#}S?r9-PHcmzm0(&=aut_6+Xl+z=N?&Kq6f zTF3F+*Z(`P7tVFiYq0iKmNOux!T`^h!aj%=aGvlQ8Huu-Lp2#*V~4o^sjrVwXuAdCnK^MYV^jJj%lN z{=C=2t_S<8kJ3}*&t8@LC^~*SZ~1-g*Kp2xjJ{RpjJvRad$9OB?m-3aSLgWewPw8b z9hSq##r~x!=zv%88pgr6)A#LQkL-2!O4;{eTbK#t9Ozv~z{BAzSTEG9^e9S}eIogW`+>6Qa*Ez^}-Pek_mpz=N=iU?h zp1Q)H{M%{N5UQn?q6&S)&Qm9W7Y*jVUJQ( z_;-C^tXBx9=sz~k?DzcX)=!*H*DaW5`?Al^@#Y(t(=Uk)IU9o5*D=TXr*Z4IFs_~t z=i5tRuBQy{ zg>#E@hmXeta4qvWhTv_yjMlJ*V%?CC;$9ubK_SdyKbbLkcNnAF zJ8DkX*xs6=W49kS|8LxGY!wNwImczkUh~A=Vf^|Uo`iW{>nFx&#&*VR@4~s`SMJ~4 z5&mATFC4Rtam}CAhS!;onb*^sFc)Ed&AB0rH^(aHI=`1Wf+p~Hcbss2^)zQwImR2C zy9RN*bj~OOW5L1jcl77o2iRSOC{)KIX>p=kZdmmx3|e=jROfg{=pBAAOF@ADx0@{C_dF zW1#V^v9I%sKaY>ApYIyNe9`mh3Tyes*0f#)=f8i$ePOLPn3MBs``k5#W2y6yYZsFz z#wErw#>hTDKL5_S=7N0AeXV{B$3DFb*Sq~-JVHnx>=7{bc0KCa&$)jH9M4@xn*VZs zdlvpq#t5!=TvM9U`W(LIVqnbV>&5SF!qat!ae!m?A`s?=`Fb=yFkW~H8MiWmJ@?K9 zUIU|%8{=<{4{CzTILq-{c#XPV_w}}lGrY}D80)(hFlMy3$QaBq{Uqxm=RrU32E1OK zue?UQw&&lP&mAYm-16G&0k6wDaKiHm`5MMFS2!=M2xl1IbKA{ZH-oP?i+!S9(G$Pm zPaK4`U-J*Iz&O_NWh4B1=Pt(`=aV^bZ8s1f!@U`vIbghc5!c}FdJK#4CH&g<(%2{9 z=lXs9caCZPzx_2n27X;X*Wa%^}!2po|y!H)=J#J)4A23?^XD-^oL(}BQ9YN{Ca-xb+8ZBujicl8w$|3=GO>= z`Lj8&uHqWe$L9hbV9&nmZ=Yw^m_DAyNeT39_#FBA>VOYmezqvRg7@C$Yscqy8g|3= zy8qsFjjvP3OJC#0Ek3_KhwE;0%rtIsd^A67{NnZV3Y?RS-_1FAeccV$FNMhYm}Bzq zjMaTTd)=9LsD>^u-{AFV?7t3Pi;nN+fquajSTi9y@x=^VNS=1I(PxxR6|=5=Wt>AdIo=vv6NjNixa z@0?>E%s;#Saa?u`a<1{`F$Q;xbsnez$7{#vgj@;1_~aa6P1U)I={)T3Y24%3Uy{6~^QYg- z*OKc-9|NC{`P`E|FEu0AQ?6l}!Jo@G#5s67%&B#Rv5h%R*Fmm{oNJAx_Q83`dCuIM zc_N=*=OeEzV=?(dKIXI>}?-}#^+_*+?4l#C%g7bp; zfC=z>`+AnIXJanEhV#KF_&Ywpxy!D_ja!`m{rb))u9M6$_#De?)z`G&)9c$jxO0_b zv~?Wgrbh5*uH^;woF7Wd%bC&H6xJF5Z|K1vMRk+@; zzwI74pL~c<;96)hzQxzDPkAAnOI$lSr)|JYICs5)FJRByCU{P+KeNA&U(=6YMvW_1bV;a=qZSW6rDuoFlw8y^cPBW2gBBU*mVf*SR0}`y1yw zHhQf+0q03$U-Mw*%M#(ZSOGD;@IuK zH`aEXH#jjj=XhzZ++5gRT!3Sz^P%6vdWC21TC?9kJ>TEcHI=L@`TIDpJEuDLI6wV{ ze_%ew@zc5DE;wE}Cpe}XbC`3dl`|MeeLXlY`P}+i@_BW=>^xJXkBUe&yU%7S1U>F%Yhmorip0AB5{TA2**@^HCxN@^GN3S<2ZQC zoV|N`J$uf2$L~}-e!)&yCs>YgXom{O$jabk>%X#65X-qmWnlfmzbk=aD1>sjANHd* zfc>e@qaNIYQTVpIIp5WKesgq0XEZ@wG{poD>!N)MhpMU{qfrnrZRc%w5AtjDqV7V;*bV4^SI%&EU9hoZ1d9atz63$5{sGCfK z^@0l2RbN3rm``erKB#)T?%Ix8M_Y`>B&@_We1>vx?(=uDRuO_f!+LbUY3?K9{Nvc< zSnc}InzxUQA2)aBeC2rN{Ax|Z_}+QVdCK|AG26MVFRY6>zWaH75Rp3~__-U=2kYIdCnUsFr@#qg9H@|*en2U3MH=pKn;Tp@I+d0&AnRAJAu5*L)uj9P2z<2QZu1~M6 zkMTG>0pkekTYfEbkIrxAdhHc4Kj+%M6uj4?}z+HF%j@g4S4DaG|timazBc8)ytOuCi84hFjBZy_g z=%cW1;#j=^|AYCfVz-I~^&WF~#><=FwSE)Eh*eMr=0BRj_|f;qh^`UMjdK;^NW2Qy4QdAee<(&_ zIGmT7!X8}f=M~^QZ0*C`n`nhe={Cn4AkHH=? z^K-6~mSP{wkC7G+_O+M;v-aZNKl`|y2aOT@vwe8}*&0;?JP+4DA7K_2;YVDB>!4Tg z-yG#UVcyd>V@q?d_5->ekZTfSQO9P-W7ihugd9(d;~Y;6e9TjrXLg-$JZWCpc-kC? zxes$RUR$Mc5Bzt2-1xH_95+|M*vv7^@y6@XvC466GrXp~hRso!b8tL1?zG-;6fx9z zOTaw7>wx3zoiLYSEN<_WH3swa&H-aE9FD_5Y#u7H?n}KE>DAi!3}!&3g!@VFpH^ zIm)64ilNkPar7%6V{iEsIL8?KTC3;;$GC-9b$cJmchuWA;|S7GpWZIV;0BzBy9<@s zW8Mt|@h%qOH0rW9e*sK_yo3)i7xOR`3$YU+REn+?T?dcDh25~IVNqK+Z~bJ%$%t#= z*MfaH{%&PpUztD4UEKSxG2X;1OhPYI#14A7Uq@+>hRto>(AU5XxEAoac5QJ7&e98I zJa0^}iTa%5h53GSExzvUZL~+-Io zcV!mEDE0>@V0Ff7P9m8eoS8Z^V`i`qxFct-7RI6UL+O*y1)jaFLGWI#O*uF57dW{W zM=4Z7Yb;0o%=(#U(3ksb=E=?z+^6z7d%UW1Pv!r5PW`j>Uh^;3c^&Kvb2e0IxX;== zj&%TY|K{Dzshf*G2WztS@)#G#aerTP=k_nVjVi`Pn?Raho|z*RHNj+rYWN=j%n7cksPAKYNIb zmyOx&728PN_*1x6aNnA10c-f5!~F|CaV~5ZIM2EE`2)^}+JklY8l&+Xs)LeR)`83e zoH({R*c(2F{Ub}U2`6#s_IZmY3(`1u@h@zLd&$>eJ$zl9Mi!jAtDrHu<2@|Lek7wb z=R4V()(5VWW??h_LL3K)`n)zlZ#cJXL^@n2xvnt=Nrh_w`?HPNty@@Ia{b`C!L^C= zr1cBu(}6I*Y+hh4*5bdMkYls4wH&it_nRMZ?DctfO!K<3-e3&qYhWLYudIds=N#uO zIo{eIWZu}^u=$ZXaNIX1VBX7ohVz9nmc1nAz|A53my7b}G6wtabz|P#_|Dgj@x1(+ z58vj`?Hppf@0{TG^=BRdU$fSr&B0iA?hf-F{%(%rAHy8NRyYS(v-Qu$g}%;9vMJa-m&dN`2U|`Ha6k{im;da8T7>{ ze27Vyi*>kx8tmyFjl(D%SvqnM&cSi{5T1;FGWr{&qEbwym}Y2*5{QQPz4nkB|Nl97 z9}Dk+T_m?@dtEjWTjD2=i)Wn*?l?TTv7StCD({~X?fefM8*U#g~X9pIegnJK5k zPlqpHzjo!w%8{?46h4diEaI5=HRWuqhSQ$F+T?+OdxW+ecY%fak}!5-N2>?vr3$((Cf3}GmN;kXIUfS8TXP!kh5?`<(> z)UIIv^5OKu>6PIbcW+`SHlS#F(cqpr-X|d{BPuvQyKY9^V82=i_OXq@F4X6q*gMfE zvr#Y(+{OKQhTt^Jk$i~1VSfE57&{s#8z0-p@A^Fn=6*(?G!Ao8?J~@Pd40z>W49Lc zPnvshY&1{m8qal*^PuyeG0jB$2A_{-;QGt>VIiF7eeY||_0?;57*X&!vBx3~eobp9 z_9dFrGWTFE!rX%Eb#oc^o>?n(4gV^N;vjpc{oTyHxGq@5nH61O?CTsm7q7#f*IN`; z9f$j)AeLk<3C=yq3S|Z7Z_MOe7WZqs3-@en0NVgV4|AqoA56f9=!*MsHFP!fBR)c3 z^u$nn20y+Rhj9|WV1>a0n5%B5vIa^Ci#1$Iu#r^)Q)NkvXN2Ft=h} z%5|tYe{&*^m*#4HZ(Yn>PCl3;T8`KXaQuZ$%VDB+LQb0ecqjLP?lkdlBZS7Q&w=g1Ue;0e^Pa7tZ;UVC~g<<#|}o zv|q>dKnu8!!Pwa`|0THIH>P$TXaZmVj^XBX9q%2(&6$`hF~8mr_T{{TsW4Y@04Xqj zZi%dk#sf9Tcbi{% zo_!g$+1nQv5f{-4)v+~vYj`SWuRMt#*4~jKd~lK8(k@p)DRlb99CIksslBu@SzvZ{IlUH7pA)3(mI~ zn=v*xht6{>X2G*Z*Wo94zD1slJQT_}O`D$ON+goDV#TWQ=6_eHu^ng!Q)1#vRh$sk|pI@mm(*NizoV=L<}KChQ= zT@J>R9NwnEu{l578*mJ3F$=B_>_tt&0roPOvw9W`$5{)}0p_2+ER2 z|IC9qo@e0L?S5wajhv@{gt?tO29Gx-<*Gg zeRQ73^auR^{I~K4W2&`db1>%TeXTejoaVd@_rN&kpPOhyNoBm=w&lM#W9@pF%Pz;6v8~V-17X}~tlZ%Ce(L<3#pGKi`&h&1 z_rDvCG2?Io6~ZfocgDw-Yna466dG`*tB2qJ5c5M! z$Jmas>3Es@i!R409KmsTU%5Hhj6Y$+N^=ayL=1%=s}ffw?n2Ck80Ut!BHxM}5e##IFj$kcft|fu{&}=}lsA9o+OZ_AJ2WPcj9hnrpfb z{@z{Sb5s|;S-TjTYiKU}E^D)=&78M+g*Uio?r!!|bwpVd!992eU%?GX$6Qis79s5%}) zdwdD&S)ao1^9zi@PvQm6Lz#=USOi~dzOHj}=j2|E99np;3q=qE^Tuajz1NuZ9r##Z$-0s?9Zw>MGi3XXK6=f$g zJEP2y%w(2~;~Zz`f4jc>ynh$}@3~zr=l%Y?_v`g~J|E-$csyUPcq!yI-Y*|rD}2w4 znKK4;`orp5H9wv$=lf-RHFg}~psxRRRj3QeVULW%;GSPpkQkjQ@nbgTI8HJh~|Do|dCuW6t{7R}H!R zwn3AobNnjq2s-hioik$d*gNPNKM7ifzdsOj1P%K4@yqyWoEF!{)Yu@M`NtuK+;Q}d zqc4l8v0&F4dPmG1uXa5m8uTggmDnWS9m~hMu~Qrt7sS2sTzC)Y3*zo|;@Qsm=b*)PeYu(-Pr90*Y=`yJ9p_$6Ly;5 ze5OlJTzcZuaoD88CQXSIW?Nyl4PuR0EGEUwNi!#Ps`SA*Q@5IJtJ#i^`{MbyF#Z<8F$T$FH37v+>{>bJvc$cHBC_-XAySxH0zk1D%s&uJ~A2-{ZgO zZf}ckckUH2g!NDVtvIK?*Ki)#?oEo-|J8ZPu8-5=#IP<_>@FrhH%<+6_I)8f`+A7! zY|NTil z-<#Hd`L9ryeJ$w8YB01r{C;FTAHPNCTQ&6Y=rg0yF8r_`L-~49t(N9Wz^$bxZstJ{fby z4O4FzT<1qU;?gOXPWgDu9?r?FdBAlX4hz?R+p=>oT@{PGw#XnBr@zo)J{2Al>wh_x zjaR0;GUfU>Gh9>7bs!#%30=%&mDnl16a4n=!TvA*+VX>Qs><0Wbn;>O8y%fiPHXv3 zh}qR$eizq;8ai9Le{3Bq#vDPHSui#YKH{cmx^)$$j|_TS|5(2$yUpHzUJE@w-lEz7>@h1UGMgx;A`mpexF+I_d^Yv<}%d$f8F_6^qY!7^kS-) z|2*!BIqLJIiSHF^r{=`1p$__o&}YX6>>2bFV_px%>Y*QxW`9@=Ynya^Ju%M*UEJsC zsj#L?52StpBw6#uZH}U_)jNzHkVEYL>qp zfe(2+W(KYOGjT@Ho7Wt@=HNOM=XFh<2V!!J8Z&Cle@Fj!^z?W!*m=72P``P6^y8x^ zbRz0a)^lUdiE~ce zC$0!5l-(%48COM@+M2Y?Y|G5Ha~u}uhU@fP8)wE&;k??e6}Q>M%_goo>#DQT=CAL1 zpa+jVc?;H1^PLNJMw~tR?9p3~*?Ms9*4@VLHuf(u z-?;h4tr&C1?PG5ryH%Vw=Dab_j((P`G+NH3rp+cTQy=f@t+$j=8 zqH}K0U#!KZJw6@!V%c5&C$v!Y#NULTIhrS*vSP@=>7LsK?Q+ia)Wd^sV8@s1JXGrE zV);MDV)ZIHPG^O>h}h(y5Mx|ej}!eyegCHV1N1`B?)9qp{84djwalN#F(G%MNr-FZ z@P7^Y{Wan7y<^>|jPkl(|Gi?q5L3#>7K)pu-!wR%#hhKo;NohNn+DBg&mcaY*L9S3 zjd#Ylpoz^BYs8*$Qt%g##8dHT$PX@w6Jnp(B$fyU>i)PgPKj@a9ASrW-Hp{^@mMGp z3D*-^Cw7e!gC^&D&yCeyTkW+wV$ZI1Ix`OFTAWV?TfbxQeP53+#`f{SP@`Wq)aEye zJ>q9UzfvFCIK(nE6TaZCcr=`kiM`z{j2-8#csl6Uo5WW_OoVU7aD328j4>L`6~Ue# z5Nhb#$9D1gI6P=fH-$Qn*ovR0lVjGfFo--`T~-YzcEhy6r67Zd8&Ru5M9 z^;$8|-$Os8oOPkl$FgB;5xc}8!FG##XzTP7+QQ8tR-M>+z4ZXPWw#!U%R;?RoIW~k z?;L${h9kn~9UF3G{z9+F_A&fSlVHWsD-LpkV>$;cO-3%UP5eCm5p#E4i8W%&5mxW| zb2G-w=t={>AM@pyFK!xr)8P8m{0Ke7Zxzek6HmlkT~|UaKn<3jvig|S2j`o9aLj{a z<`_H2*e&ANxHT3Wx8UH~3+IkIcicSV=NbRicq%rXu<3-8W74dXX5Btc3DGALF`a&Cy z-Ei#wWA-0oUwj~@kD5L>r}~)DV@9tRm&eDu2FA^yj{8(>G;X7DKa9V`&GEDNNZdB| zw!!r`mh0N59~}L`(TINBT-)lnX~zw&Q%R@& z;Pej;@&$Rsuj2VoKXZFxtP)2}KWh5bT@UM@UCVxS%s+MhsqdNco+-P(y8ElYnf#l{ zW8&0TPJLy!SUWx#2gGf$@#Kvs-xr^L_0z8s*~GWob`DWm(hs^O{gTs`oOV&XC#~tc zn5%2LeKPc0$SLSjeApr(@BUC&bEF4PPEIpewLUxX8=Fkm-97jhH7z|W2Zxx8kI?sZ zbe<71<-=VA^t2GG%sFPx_U>|H-WiL;3tgw=jMyM<8FkA*oBUJf|64z9 zt0!Tzkhgp*ofBS04|$^g zsCB2UJIEbAJpIFi{B+6sYppvtBj_b?u0DVNIF1kZ`AZtwT3sK`8n}Oi^H&@cH^hHq zmCoU%E^8g|cY;o@o_a={9hb*V@%OOq@YPWFd8MBIhvU!j+pva^KVi2QidS08cW3bN zzln?E^6>W`!mVQ`N3do=o**tbEYvE#9()cT^W%_Dcpo3)xYK&%2>gd0SeoURI{+)40=#%&N{qb1*C&t$& zsUGl|5X1i?mhBn~bRt^l_|7M~aU2-G3-f>jS|&am?DFApd>kG0^_^p#k@NaL-}R>T z!Tcz`6dwz=oAxiZD%#(kVp9ZE90ctKX#7Q zga7*HsDBRp7C%HM-!ztvQjS4xLo1_q&C|67)(DZVu3OI_7y%9#Df z?mu?IxCsOMOJw|X*L!oVw+$w2FyXA=FZPPNV$F$bPCPl(0``nYV)NNHpY7~W*w`V? zjK77Z#OZNM>=rIyvv-_7>HJBq9s0J|Xx5Ep-FCvZ6HXp~^7t9!W(;ipbzO&H>v(<4 z>s`(5p277^uN-sbnA>8^*fC=_i-Y3wn572UHX` zgRVid-XQ47V%UAB>^p@<{lerICNB}&zOwBrC%k;Z%adQ4{L;QLUp)5WV=q1*bH6nA zOM67J$4jTYe9Ftazq0!)8&2MEGP}0el*OjJW9mDmzO`$bjhZ&9Gm<_&?YCWv@oO`_ zHmC*DRwu_Y^X)!(Y4>&&Nh}YcGHP<%}Jq$|*?RAdO|7Ko)FKXKz ztZm-7Yxl4bat<-;67f{$E22Xm7oQFK@>}DH&Mm}Vek$lKzncE5L0w)xIA46DYuo%~ z>R-A--cnQdo3h`OyI;Ng)eYmu$u~~^bSx6jzVhrVcgH>PU`&qrCeJr{_1GhR7HmF$ zF#D^szxtloI6e}54nN@WhbBKX`PA^9HDa#F)H0{9ylwK^CT|ko51+Hst2@2=Lb(2@ z{NmX-<+W2@lMB5VKdKK*k1tK>E!FvVil4>h@#lCro(#TUP59{%)Lm&mvsFi4GUN|m zjN^m-6}LNo7oTxT@By_s{r4U9+OW6Q2p$+mhaSxD$KF8`Tq!07J%^7G&u<>@2t78h zz5d$kFU8BD#;dlxSjYuFF|z(xjY^;M_u`PyH}s7VugEv~Gx^O1p@!wX>&Lp`cgr{4 z9&?26l(*QX*+cFl2azw|5sTN;@#XkStlYXITItI{CpG@$0h1C%)KxbM`SOObLeQY; zKzzf!VIEu`H^i-RSI~{{aOe-5Wz;N#vHg)z9~pH>u&J|lJ%cTSFSsMr0mgT&v`H~@ z^vuzJjZ)7sc`MzHklE&&H*bE*)IcZTX4IPuz0WEoc4Q zgwIVld;Hnl{rHW?Z9ML*v1g5ae>|HKbyBFMEF05CPaFM2JRElgpSoXsEjA23RXu*& zaEwpyoPP9n+T}Mo2gxO!r%O&;Ibv`fll7}}eynv)*QHA>5(jnd;$`Eau1mjv933=@ z1LBZydsDDe>JQh(*JJ&ldwhS&_oplnV$J&}-#@S~_rG%gEANkgz5K72kB$T5NAaDw zDHeKVp;z{gg|ai^cY9C~ckCydeg zT5Z9vd@}Zo&&2j2KU_GTANBm;dRIr*kF2gCj=3&2VaJZXTn99==sP+WApwIe+UKH(Q5(`40!*zE_NmbEcj% zb&H@aT^&co_OU{!Sxk9#%BxSr-{Ws_XWSltiF?9hat5zcxO{UEeEuEx#~(sIBez^L z_!f@cKMVVpie19%mYuTflyhUf`hNcu>M73zjp~`O4VMPr_>nj~ejk62@tylZPPt-i zIKpOKbK#@0X?!d`8EUwPhq|qr!F*lYO$8^`sp47h|aF$N}eR{gt}bhVij5 zU-YEW81JqR?abi!_XvFqTgAsl&S$Jgjo&#kj*Sz;>(7qMLf^y#A$D-Rg(buHd^FS` zvql6O=9JkKPJR~>Pw}e{Vo0+cf<{GYy30Bp^MeqzeAi6 zvyYp7+`;ie>^XkV@sGsT6SkgkOITO1NBk}x3=5XVP8>T?zv|!Onm8@K603w08(lcz z!UA11$>V6>Z@4D1qjk$t9 z+CE*VeI?#~a|=P&3cmZd!7k{H-5_>~Z-#mK z!#FmMjDtfRa+6@g41j;7M>`f5gl=Yedvy z^-JoLkG{@_M7DNMFFdmuy$n?|W)3JE4>lcQ4`c|=cOnGg};JOoMy>?d7#zBK? z+pS*T)I!m6$H6s^{!>rd%TYVRYjefYu~F$=7TW7p=a6P%>((&$$xn|BaIET}|Gxr^wTf-U>HSP}t zU##EtUm>3mOVEU9T8^8#!SCamxFK#1y4H-aer%)ICr%A<$G>BI3p*DK_Is6BE!2?L z4(Dr8M_w-+)2%|k9pB;je>)uipN>FlG7hZG;#+o$PlmodzTy30Et>m2bIss)mI&t$ zno<)3pLk)&sl+Iog>xp&5mW#BKlJh~71kJ<GQ6TZ4A4X7bU{7jj%&8IJ{>FaY z-vl3VUpy2KhyESCsPg>t<45t$@ID$dA2nONILnKJ^Jzab%QJ)8`^44<%VpLMIn05< zfALHF6F)NaDF=@_c;Mgm7`4aXnn2d+?jHw)+pmY3&C$UJ;fOdqJmzyf_MPziE{;3G zHarz_pNZ9g=wb6m($ye0V(8@prJMin`mX1UI%m|maZ31IyT=Z(UFfe=lXz#$7uMnN z)idi6;Jf9Y_l$6V>-6N3a?C%Dzz19w{Ql44_&7Yi9@~U?+Bq)78jjz%5Nk|}hRWc2 zOP*UamWnk)J#5nvyx;L&CcI7`(373l@Xoj)E{e0l91!=2Q+_gnadvv>t@uqCbC-qj z<}uHC-*?0KRNpgStcNi-tg}?Z`%hQ2crY#xdczmu{ULWBACGr!6&m)1abg@B-w8EO zHl1c*{Q^5bTgb!opos7HjgQ6RQOnVwA4dP;uAz>iXX%PKB*ez^$I~O{yZG+(?+(se zvC8ySvTXAX`V1bK_QbOHpCwX#R*}~{V~{d@u57#+-J|<)cFU7$Rli+=d8ihBXv)B@7ck}?H`|u;ruj5 zt)GxfdF)eR{yNXk0r8zUBE0t(aZX$td<%U|PQF}h6zr5Z_RDYJi=A8Ib0c^Ta(R#M z6Z^)2!Pb30eh@zl_rDhhg*6;|#jde)d^&ay>$wgNul;$P8Tyi-SC}33xnGOV#>Zma zcy}xr?BD`1e^@&vhjY#b=jj*|uXfJ7XF{#XHlG`8<5$8lS~r#rdE-l+lltMfHhvj= z`8Kg)sLS5l`8dyt1H#&t4a1yKzolotH;*ym5{H?#l_9G>)sGQ8^6}V zTbm$95pyjP{uYNB>yO4C7 zV~&_5=wNh^E92DoUVJIU@p2Mh^v1S?AgU5I5y`6J9k?AIJ{oXmMz>gRt}#%A@sNXD_kE${TXTr zbUJVdQ*vZ2UXJ-@ZdUtRA#gY!^Gm4)O8u_aBW~I{-1qpWy>^5fJBOs__ziPf+^(mUM&&oZ9(*2KGgsK2W#hfEUVJF%u%8aO zu`&6jpbdL$+mJ86FT8KwpyNDSzbyN4OI#811aTnvu?xaJ@*MQUn0Kd#z9jX?T|y4A zRImY$W>dwQe8eHaM{E)+#N1(h))R4CToQc1vGJYwW_%^|XX$N)VrgZMQhl1{NPMi?miLb?8v1hpbN_gym_+HRePK$HnlDIZ*4e|YBA;z~RO^h$T zUm?~DvHh1rZ11;U7UFx`r0;ZM=Z#w|^px?9pAEk97a?BP@5?TVEtZL)kCBh5>$2bC z@auz*c`Y3CcgIJ<@nv7wmaBt?CWa6TJ4bPC1%tIP>IY&7@zi@m9Q=u3N4^?jQ96xy z^uSLY^7YsE#1uHG=lj< zEIm5ZdW;cqwfzjAM_V&)M!k8|o5uxhwicwpckoqn1v@-%h(~>=g0>w%PeU*Npds z9$I;eT*Vr)x!%B>otM+!^Tqo5g@Tg>lRVd@a0| zJ}UQRTiM@df<0lg-W?kSe?-gqR)|GuG$#e$r5p?@ zyX9-?8|ohXtIrqXLjA$>UyuFbpg1(d_&7Y=dd_S0Y4G8Exta|7tM>@NL;#y~&gd;Spo9Uu7X;HUUKzU%0qA=vL?NBfWcl>Znj?}|mjadv$DGsap1 zFo;py_mAOs%pGs*2*fVN-$L<@STcMT8)3{1$KYDk6y1O0IHdI$cf+yg*4SM;*e!7{ zyXCj?$NPnCP$Qy)96y4XfnPTc)Ga?B?3x_g_wo<6ZT7G|{DZl~e$qnNT{*(g=Fe1U9r)XG@_M?h8Zhn&?|0uh zmOcM;$j_~B8dWieUgkGD*WFw()ZXX-^nqdiPdoBmzQ=d?J${$Z#l7LXKx6nz&}!WG zJNyRUPphE~NQx%?chW$YV=L)#?4|uErlwQV=Gaa?);{)_T*dQr5wCr3&=%-Da+t+p z{-9~wHd==55VO-K^wv%Z+h@BMjAetr_xXIeoahVT{BFj`5h1svTgWrT_{M`+f`&;` zx+wT>{!siO50tAuA9T5v?GNm^Jl33&1Da39F29S_!mW8D&r=6tXT1*Ydu(WT=^SEO z{(d-r=ojXSSo@fuU(qte;&eyxt+-Y!J&bL|(N_f9O7GAoG>oauL-DlFXP3nq>xSRJ z77Tre_)IO=9ONfv4fkQ2JvVoF-O!fUc6Nk)QbUmAvRU*WHbMT&mhlm6gLOP?fZO4H zT7ukyf3e+c2iOeTPAeV8^Ww`Pw%<0=RK=dO**oK*aBfq&g?faTnVpu0tq?1Q+joVy zdEt2b2=0rcy?(hE#`SFd8{_+7jPJGLWO4eW;0I<8F}N6AUd6Z3k~WNuLwy4L-5TL{ z`2N{K%wCIJof-ccoWE5c0AC_k@R-_*m|NT~ewVArqvTxtiTp?W?U>uA_OX5MIMCR{ zkH)Am$dC9!v5H;&-WsuJ0b|9O7#8arj#vOd0q2G+3IREPnxXH^Tcp%=qE_nDseJue20nQs+CnHRJhbAV4ZAM694<+s^h`V4L6 zTOpqiH`0Oi@wlaD%QeK3p9|WRnw-3Y%^GT6{L(hDMX;ULpt75C8|%s0O!|eI2s_C> zvg6l=wN1Z>qeD&7nx-#>n&dY^jC_3XTl^cF&mZx7^k{bV|Jq+VJ%6D-?K`~h;t*d$ z{C{rnhrXMS6#suetglkjJ}<=Je9!b?yZHb%d$+I;)W#vsrZs;i*mL_#o#&03pZbXX z%$KwA{JMQF29Udn3G~x@oZXiBPwLI<}Z*I{YrRAg?uF)gZ)3;&FN3@O#;8 z`JCKw(O|pTVz+XFrNi@Z-|N_TxAF$@o8N3ZeYW2u9#f0rZ`h7sgqW1g1-;jEVt#qO zc%JU=_t`&ipMPO*eh_@sP13!fy;=dXwRk8iiH`E~nfm=E32^&HrCI+5R@*Xx5Z z)c#rCU-_IE!ms)*o(7)1QN;@#&B+ z(Bf$fdNaiA;&u8H+j&CRwvB>5BA4(R*g|y-K8Mcv%`hj77qOMR%kQ9>of3LO*g&zf z8lpIuZ{a`X`s|B&ZQq;2a(c&o+2A+%E9==v1 zyW+$+DKwIw9`+|6r#2`yVEfn&u^d|>XB3C9yEHvM+p!jZt9gjYX(;?JAI~S#TGWNq zfBjB56rc9t*fBN@Yau))SF_L6H~COH{+RM%@uhs+9G#;c6wr@B_DZMU!Z0CBhZ$j-4b{EX*}FFx8nd3)GD zdXV^ZdLF+j{t99 z4Y9cKMFTKy)e&giY^2w3Rh`m$v-ggA@2D}MXYjZ2vCz}`jZi;fd-wwOpDi?xUx?Ma z9>x~2YUpF}JKh;=?8k#26t5cB^bfwAeov1-BGfze_`DkT1}#ZVgk5Lj_%(KsjdYCV zReuY56&!my4jZdBA!ZbB*sqR{xWkxp4ifRy^C89&yU0V?H99e^ReW+}$Vq9+@=ls8 z%mcQNO;qoMc@1Mnj3{n47T6~~S-ipjnrFr)%~)K*9zOQp#|GEM6HAIQ#YJL$F{{|s ze6&5oI6zJ}jA@M(`QM^JH=^0FLH3dTKAcl@uua2$)?1{Pa<||M)X2^Ve(B_ps}6g~ z%thLozFz%b>gjB@dbE0%wKw{2Y@=9P&6NFJUq7+Oz+}!^Vb~kna(5s_Tf+t&7$F;&;=K-1oioI`)g57MB_;;t-m#nAmt0U#}D5 zbaiwZ2EE*v6x%vxzE58QTQBA@m&NIFH^0&G_WOt0p#8sK{XOgi|H{tOYsCue7Mrg= zXuk8IVk$P!SfpEsU)9vuIW_uAiVh5Uw{x39&QY`y(02iPm@AF&2|A|DXvvgywTO-8)TkC?OK zMRV5k^l|&z@n?J0W%ZRV);dgaxca~sgP%AsX!@UxokDEPj;|a1;`*_3d?(I{KZQOW z_Mb1gGmZ=PMXWC`@Lg<;V=w2R54|roi)}(L>E7Y{cMQJC_K1D?hwH*vFpk9IK5Kma zgL0Pz!nTU>)d{@EHjAH)J;&KtmmA6>jh$hwXQ;P{+2nJ^EdTaO+Jw3yUB$6C2IwSo z4w?&JW6T@x!`xT?OZ#MV#4qNu_=nE!R(vZ4^E!1;amvA=CdwvwUagCdeL2(WYTEATj5XkU7rc$Ci< zd-KhFvfj9l#CD+$?QwsrHH*#JI{kiZvil2%YoYT6v~PclJ;e_6Z?ExMJ$PbSaorW6 z-~5<3DC7-%lbF%@GCn?n++>&dTByJNIA}BS4!XV?06m9}PKS{<410C;BDzm^_dH#R z?k-N{W5Bo3;XTgZ{60>LAH;#-ckL6jCcf;*I3Z37d4+8d^U{s@N4d|B!Z~=n=L_-q zpjRClKG!yT%@JXnhMJPv^Nk_qw@vaazmK1_FYQ}>@B9ou&DW_*$n*F^F_pNVPvnEe z1>!Pez&tSz)W?UKkyyc;V_%Iiwv^s2Phhv%X|`N0POIj_2}AQ0m+}wt6?vf8iJkNv`Z(w$VpMS$_%FW5=gYg;V>ZS7;#5sui$noWY?328MPRtjx z75od`P5x!B^F3>iAch#uZ~IL?VPDw?^c7kTZJwUa#_tl=lYJs+GwQQ+5_X$?=Nmo} zZpEnXZyB^4uUju@Dtw1qzT^ENr{QmY6l%<3)DHV#t=TGFpJl^XKUR#l#=pBRA3sBH z_*VFBzR%}@X5=@0GWH3vvKq73@?m~ApCVt8*DM*sdITReM9rLT<)2uE-X!-DJ2;+0 z4UtdgQ}|)WR@^|lQ74d#(>IJye-E`dI-GG!qf?jmKI4~dWp^Djxuf`44kF$V3p(EX z&m*B0z}BmiiO<9hVm5YN97lhUw>ZY^z58N3t0U_^;vQhW5@6D zJ)p~rXV`yniulj_e4p_wA24U9*8iesTi(T%)0*`Uu@AI(xf;KBLhu9pCm+D~u?PBp zjCW(*w$lk{89tAX;7^9}u{mJhToe3`_xcR*z5I!M(09qptYhF;XgKnIH3a#dIsu)= zeRhh^VYApSJv#CmYlhkEzXe~xuCo2?Cc7&Kq3y^a)O*=(S_*$4@3=1L_-yMpW2cb! z=*^)gICsMQK_9Tbz~lOGRu27^&hhrnSRiH(>kVeioYCsF*Ji#L);hb@r#b5NQG;vl zzNK?<(9kBuY%wmT&zwG3uk}*r*ncjb4ey&8{^{}b88rme|ex-?4>XV-_*acp{{28&1tqkjwJU{4`!p-Ep-A~mw1^z%@?qHe4iQt z4M4ok-tHOVes){GtT_LupeKASoQnYRheLzCz9Rk}`uJz-ycdgwKKpmaJL7H9>2n4; z6^-JKa2|~Z;>D5kw!Xb{KGUW)iVw#}<74rW*f`dScZJtkmo+}TmlmaOmu_-?{387J z!$O|JS9~G%2zdy{J?K`{=>0D*j72q55oR9Db9>D!hMh1FMJ)% zX6x`Be4#oEpQ`@gHAjZNEPYl!ix2bLyoV2loNWKFZ>{V8ak%w*x3=s1;dpqRzACckTt}15QCd_s7+<2Dr4Cgzaq|b>z63@t&y+>Rl zSLWmB;$BDBk|W9I_z^yZHZE_G+j&lHfIe=Xi@(e_euMtBP>6lmGg>^oitQi9-)g?J z-rK@C)gB7>>E`?cJE=Cz2Z*~53Gul8N;w4$iq0<1x3)|E!Tv51dhpMS17h=7DHe}8 z;?415*H(Tio(|{07&mj=;Jgv@cio-0#`GD}JA=`qGyWK-#}V<(_*#4^z7YGxk>UAE znqv}2laM9rZ^-;-XqDh;s!NzwFa-zDE5QFfs>TJIYW6?O1i^~1{ zeQ|i59MXH#*2FJzUU{5tlt0U(#XGcHH8Sy$c!-Yry`W9-HGH0a7P*Q!$gl97v;(Mx zn`a(#U*16%qa%DN#LsG#axJ-){EJqjr$~*qkb6+0)dRFu@F8OO-vk@Zhddf=`k&*f zIB(><;3u^9nGK|EvtJj69@eK~)>&p9oaf;ET~m{y-=8Z97Ld^)Z z47?K0j^Oj;D))!AzO=4e;_Be%)IIzzJ+$C=)Mxw_&+|ck>p}7L&?EcJ*e`4=f63;a z6}F8pasQ(5x%g$U^Lz&T&Mpsc`DZ!L&_}c3>a~9ezIAFW*frUYv-_dTPzl<#fRcE@s0RFTo4aN5?yC?`ycan z4vk6iQs>opATEuc#z7<3_uXdHHlx;wMPrFrDK?HT$BA)!%!m~`m-;8;v$0!j6-&m1 zm_BOysDH#?NAMfmzcX%)%j2|gE-Ih9Wh@s0l6yP9<2i9~>>RtqH{!7PUVJq?wt0wY z{?#=`j8(pH;Sf8~3uqI1&*kXiH2J-lPE069q=lJhY>L>JozbhQ)gJ93y z?j2u@eS(khH$U->*d^3v`HzF*Te1HeIC#dv1OM{bu0Om}_#BUU4WGe}{4CB1{>JzF zO@70c?7&xAS7*)J^09iX zA0LlBf)BF)j*R1iFZy|$5x))l_u9BRE{tEs3E}le$B*KBv489nJI2PbL2MD949CWE zM}*J*OHwF!RPv0{NlCpT5*qjS8T-B(KL-) z8^QnaZ?A;f*;DcF@VDn_qQ<*A8b7PFW~$?INCaZH>W*TpqqE%y0w*2r~{+@2jCcizI`^FQyr z94Exj;-dIRjOriT|Nhu6z7k)J{o+T#4_p#=#eMNuJQsY*Y+byLA6Pp+6^F#H+=W{(iz7*nheP8R0tV3RE=2HLf{Bw`Y zc%-uj-Z(f19sj^*u-9^fljFGHA9ju{V%2zetP(54GO<7?JU%o1ndyIxo8$L!Nx1(= zIM))MkAK8X;Wd81NW~>)}*B)_r z$aCa4_r{a)ulQ%&A9n>GBA@wNJQN^_;|n3_PiYOzVWT| zmIuBgoC9*X5%icX6U&Cj-W}`42ZP_*F05HUD2|F#;)?ilJRb5gdZb>x)k9y!kaaqr z{Ci{FupUwGlXzvf;7^VW`OR4&rje)6NNI+AiTm=ltHOQx^n<~_Scjv&r^jOBunq=# zsr1=7hmAEmayhx!b79QO0p&pa6#paN^ICo1+Xby!eM-L(UHa6ZvmF=ukNBFSN3?6P z+wbCz5ZBQNY3HoC*+)D6^=%uBrmbTxfWa-Ro74NA`(AEP!wQ!=M%M(XNv2DVo| zq6V_m$hq3yH_Q9VWZpkGHwBw3W*4iU9^&+S;-wIiFB0PM&0@#+LhK!ThQB`=>&3fc znOHiOk5yys5XbKv`@|t}U>p$N3h}+?R}QiN=$Jao)WJE=AMHAycg7uYS3DHY#0&AS zaG!mDFm8?C$7vz1mVbOAY$u(NZo94Giu#fu%UvoyB8GOpGgAcJkYJTmiQnU4j1PfRbyzc>CEK1bd`3%fGp2OjsG zXNLTN9!NjiGMrm#;qY6Z>)KFv#O3kJ_)*Bc_$QhlpCzZ0n{63-Yd;j52OqgvY#3{V zeZ{wqi&`3{^WPX79vc((=}O`K!(5LKf6@o1Mnh+im&sF|59`CRLx@A< zVe%VI7Ob^e2aa!CE&&TZb zNv#|^22Ed$g0@6o<7*~|TtF>lllXkFp{K{6g3V;-7mgKU-Pma48W|rR_2I!ag*NY8 z{F}u3!SC=fTLnKNerH3)?#IW^!{7Ud=e7=?w^s05tHe^_`{oWdnLVb@@NtjC^}+rh z5}yq5vK&Rcyk@KyAB`P@zw{b@WV;Y!^EZbEe?bS^HRLvW57d&zg=j4FF~L6nBIG9*$Ne!q_>4tj+1MoZ z40isnv3P#t;J7U+PjwZ&_m0~+_KWYwnQ?bK9M6SoZmbY%#RjoaY#58hqvIa!3gM@Z z`*wULR*e;7wOAm=#`Lk%$37Rg$BD6byeIgvo#KJ6hqXt{95r*)r{bTp{By9c&{55$D&6Q*w(hsN1)SG*DvXH1;&uHaK>S8@qqOO@Mw~-I>FLXgV-*&;DtQ~I; z`{epKA-))V^t!Q9@ay2yv2eU4<``l2E(kVTjEi|<=~yj36psDjadF%m#ONjBeX(tP zI`#{B*YDzqP@Cc_oqLO4xi}sUVwB#Cjf1T}IMnLYkknMpi_7Dx5w7oikvGOY@kBfy zK12`s{Gq<2CZz9S(U>P@AHi#^DNz$L2i&KF4WA!hjY#ey-}zg}g?<@_#OH%gzy6W{_pzVVy8Zr)X)_Hai0IKCM>#Rp@B zSSa`tM&s3xpZq(X47Coq%OB$pAxDv4(5Vg&eqzH|AoQpGC9VjXpE}KTL5EYXqP?jj zaa>CWUvxmwy69gwhI#{kqNbwOv2E}t$A7bUXBj=qpx*KFsFw%z zjsJ8lSn>U8@twFeCUo8K)ndo^e*7{X2sZrCxF;r!n>23i_99zt~#jNMW0uvXQcyvfCJ{*h3SrgBi$Y6XZZkTYxgr(!+@fVN(R{U$+ zzs7ADSB|}M>{DZ&8fb6(j^1}rv$?nH*z%)%>TE$16PL)1{X4OKypM%g=dspNh=Vo^ zTEPY}A;gX}{)K{$!hf7N{lw{yPJ49P+k(BH+P~k$MR9A~9Z$py@uxUCwu{wcg?LM7 zpqgXq98+EI@2BB<7IVhUuipIXQQ`VL+s4juXq+9c>9*yREvFnAH^xF!7n=HsI3j${ zJg?0&xPJJX6ZejYcTRujz_-ay=uJz`Tyo}taYxYj^^n~iY>Zm%Z{o>d>#ZTuGi%Mn zQ?Xb*{%TVCbj(Th(5=E8ydnM;@^$m@ybwnjpIe5wY4hG5WR9UA29Y*Vd0u#Ua7}UlIR| zIj7CpRa)1b_LVp*9*?=YUdo!WLwq}a6LiekX3RE-Q9d{0a|2(a&Srb)YVyTj#Xmz| z-{(TV9J{W*w^r;Er^TN_4FC4})aXfD#IB*Ic;DDR99w_ubP&!r+?@8M$p_Yj)!B+o5l?K*FID4nswAS zg<$U8tws5KoE~iN)KEu}w|ps14CDLh7~gd&)Dh$rY6)_T4}|+0#2T?&408>7*8H(x z(8b;xUcY1P6<-gw*?qCD{KjWOPUQ8Vt1THmiylW$;$!$bIuw13Z!s7BX21QNBRz3y zH1ZEMqD8{C@ilUh`9d9k(O4qXao#>sJK|&XFTiK;H|vF*N59+$LtZ35@_nC)?*~7} z@9{ru?tCG~8|F2aS1W%t)*8Lm=x@e3@nkGCW}z`#$BFSotTc9|v4_Onv0T?#l~ddo zi;rJ?{H}3aTo*6KoD=4puzGwoE{Ip+{j~+_N@PmUxnv>J>l0AZXbX9 z_{YXQHn@(GJZPV;4fWP|zH9708Z+bFW8OVx^Z00N8frWDjJ{{|0kL?9CFq^k&T{Qw z-%P2-r9b0SF=t%bIw^CDT{SP%-^J|ul+0~fkvhcgF)B{&x(=Jg+oNz|+VihHKe*_| z(p|SUuE(=z969yKsZULLYH(d7*H8LZEE^L;^N9;8y5{uSv3=|tzYW(} za-DJ42^~9i?9{IWza^JBKc>bS)7F^w(Ep3-S}yU zoA`0iZS|I%9{h?pknX4+D8`aw8?VN``02;7Lo5+f-!yfweoepqS7W7cjMxnM6RrP{ zU~9$obfhg}{;<7tD1Ju&+Lz+Pv1FJq_e{TM`cGoJpf5f+?ZIh3ja|YqoIC#80^Z5- zTs$0i$Bl7WIIcgBAH}i3C;d7uj$7mLaBSwEHvhEM;}gN39U1)F@8YVsD_nzd&gpYb z-!Q%r=f`v5x9%Ee#|yD$=aHwE(H~9T)#FpaHlG>nwqrOgw`+37~UJE@f-;Se$O}3ulxcFgs?5Gj+eCaiYaWlN{H7CT+LOuSx zP%pVK-1=Kzve)>`AB4~HzTszi48Gsz_zmhVeh0*eI3q3zbr%{~QpsSw$ENi&e>(JE ziH&Gs`gbk~eOzKCG5jCn>JZl(>%R>>Rp-aALeH!o+5_XuA^+Je+^Xk%HTH||hSwb* z=fo9pYy34HiDyH7e#jGDljHu-KX60b6z17eBfSLb@icn1k#$0E+lOL{VB=SfWrA-| zJCcLZ#nuRUiyD&m`P+Q;oY(R#G@I8u@q``(=L2{$tnoC*879y3Q|}9T-FC5CsLO~S z`I8evt^b0MJ6#>O#63Y98l8@~Q1Fvm1V8$<_-@G6&JOw8J@IVJ2=$6Ng8g1QJ{Dh$ zBjen-GoFsAF?P(@)U$cUyerlUzF@oHtK45B-VtvLuj9w)Y%2!e!C%Z8PgUQ)EWR6C z#=IfNlvApisFlefZPTBFABBE7c^%tkKd4E`8P|=sgLyplRdH?H5`T{S;?ek5u$%LQ+Phl2dV=1tFUNs#OsG%Oif#>k z$ZGAALmhxG)#&tk_~-B8PX+b2VPz&6pP&KTju&XuAr;Bo%>@KCd6`@Qa$ zL3dLpP)GT5JQ)87y;Xhyy=%6ZGpwDNC)BqWj(5h2p{D)5ST{C`VSQl3bbI>CVlgRR zXgv;Jst$BnTrz@V;x}9na)RT7?cOW43H7q~#`2*y?^d5Q?QOfD!+ksCOt$I#_(R+n zcg3Uebl9fS)IopPBGo0{6MpOVp|4!ber(7?^bB7Ve~iBbU-9(FxiDWES(7SWr%%lv z%f{NF_AX|3o&)Q8^boHf>x6jTeXmg`{8(%q>g>D3p7HhgPN=Q_BF+r!S=1IUh~I_V z%i_AYBjf}B2|0{9B#l#_v0Q1B_+-e5_K)uee{fc?|JTJ`q4xenJQLQ(|2xDp&xU+i z57>o{etkB?Cr5J^w)g#PO)ul6(0)ga@gY!hT9?j-XPWrTIZ^r8fuM)HD;5YkxIWTnwc>htOm83^iS~kDWqoSAF>Xv39WS z@(J~UrDB;-%UvndZ^hhlLw|dn*DM|jg+5&VgeF-?_4@SIV7?Onj%VWWkf+=qY&eaN z-%#tnCawy%*N(u}dw$6EGq3;u^&apydIr?eP63=Ckq5ux8Yn%TwdmVa(Bst_-#CyW{U6r+Gd2ip68q z_&|Ij=xWxbd@BwP`H5UZ&hV=^H{>Jci#}m%BKZY=Lf_Vy8bGaqW5cbRH#gmfb#~?^ zJIyYv8P@x;)ojcsgU#MGtl8Kr+{zg|#vW}G9}T+dM}l1%qF2mgp4&3qdX9ZsKh}=b z!gsSp^5!K+V3XJ({ma%e4&h7uPIk@n?A6e&`5d;+b3WU)u!$d!9m8*?#mRrIF1VbWWU&V1oliU?OZJS7--%64?m<{drtTqnmJqNJ}!uhDd?t2_Jwm?_ zeP6A}dFtHq%kFOIz8u(<~XpZ>kD1_SP^5qlg5hSz>IeE#tJd*+CB%Ly9ZKm+~3;(@QZuM!k8| zo5zOp=IS%!59f*bgD+ev#KwFHKf(sH#nz(pU2L=a9$PQiXFiC((mTXHyY(4tHXp@b z@pt?lJCB)CRUtAzQ zP}j8oXwP4aJ>%2ChKif*^R?q$!M4pBY_S;m@u0QRa>OXOC;sp4y{!`*KCZ_{UC=nX zKCX>x;;NwCy6>?+hUdjU>U#3!yGHPNY^ff>f5fx#V$2NwK`gK4$QLaa)+??a>xbZXL1jHht^l!8Z<32l$_cvXtMn3AA@hTUUHb1 z7=QfBLGjJtQ;gr8V(T!j`4oPPKQo7%;w3w}m?d`g@d{02Y4FYy!n6kp*x`7eG<%segh@9=SpggP!8NvmNCHwih` z&C6#{TSK ze2G8UJ99!!!B|sQFy2-UaRECgUSi|kAM6|)XJgTGY@l0@4Q-&Yuw{tr)hCSAPlcMX zG4p>Bo5*#=YhMUs%lRVAYq5_x&NdG5w|a*$FV2C##Ye`ddGMn!7ocvT9wA0#Lp^3Z zv#Vb3eeAD!WNiCxcG>Tcldvm(7xoIjlbx|0wo6=PJIzb6m0aCE<0I@tbJspyA;g+u zzF~~1KR}E*M~E>UC&!D85_hpv>;qr*M#N+06Z^rAJu!m&9vk8{@OnK4#)ZDImqJ`> ze6TydlkK4)7$3&Qa9r?(<}@ET922%ttjfl+wemOn!#>i7CI)w0#H)_SkHh}wzr^e6 zOl-?Jp}ur}s5P-U&@aPwu|xV-*f6*Jp69(!Er}l()}{DP-)Afw7=8o4;21h)#veV! zc$5=3UYmtu7)N=#zD9usVt80>%$ z%b3$*H?hqy)-%_|dE#a94?R{)B+lA0Xu0ejJVvkCA-vxE#BM&%XYUtmr}&TEI5zwi z@sjgy`Hf;AcGvlAZNnS=kL{!7veRNB<4^2wT*w3DKK6;RYRtYP-Z(DoKYn(d5!eSd zL;S-YY!Swa{Z1D)XZQ}s!uTfaR${wjvYN^EJL4P#};$Z-(^i+$N-@vj)w@o@~^c#P=jZ`9kx!*ZNA z#>CcA!(*ObH~2EKFdyLf4mEkc?u|KvcvwHu@H|$Bx6YbIFZUAT(pqenoQzN459DaJ z-7&Tw_+0yhO|XAn2)0Ge>NrE>0cB z?rhf3?y+HXEpgf#Z^gIjBzU8JWcO%b^kT4=?56wwvzq_=pFM^5($3gh+Oprk4zrVd zCvCxR<$KM?p-tq&Y@hjT+rqwrz&ubhfs8ICDq3G9rq z!KXR?{Fd9{@p7xKPk z*$y!g+h$wDth687XFJ8QbRoBVgR#MP4{wbZcF4Xkj`&Xd!T#VsdH+;W&$G;o*_L;fC2E1`TiM{O;`^G zeQ00Wr^bNe4P(V)Z1GTQw9ouA7l-4Utut4Lx9%JBV!dI!XS?Lev{BlJZMRLvyt&~$ zexJ|v+lI%?adRApcGUbZU)T(B)i8%0>L>QE`;Ns>OBvc$v8C9-@sVG!KYkCJY_1LG znQ>sBnrr4A-Z+Q-hT%LlpS{<7HCKoG!G0F^8khE$ZF1i~`_Mdv{mz%c{4yW$#u&;m z8O}$?*JqgTj)~83{MbM~(lLYgn8%)T{ET_~*ESC0EXTvK7#@d3vrD$a^R~tD9B#Wg zVOxhb%zKCXo-H5F4fA1m-(2yW`2pkKF>#E{32_+RSU%^Luh==nZT{vf{+AhUG&pAK zjrd7(itaA96YKFWUO$ZS_!-|Nw{VeQckzYiyqwf=^)k*{-XDost`$ z6(c(m?4D?ho}-&xy;#-$Sj` zYsBW_Lp4;Iw-{b*IE?ee^I}M^6X%H|Jx3R%iMm}k^lOL@z2DeWUeHqXXxJw-Dlrn>iKX!u6Gxj{kj<{trj7?+J-^QmoYW}f{!{^OIcF^1y+BmU+x#l+yW5?ldAKrS- zwhiM4kMs4mp9Xj12>hCLQ$r1f@8aj&@?~;4^>TmPe?tv#sI%~y_9uL&vH4sKeX#w; zZrBFRI>G-V_$Nmk+- zxu1`--{*h-4#)q#ujg@G-}85l@A+My_v^hr-_!FR`;2{&Ket_SNVY-z&(DS2yJMj@ zNp8n`?6ZC37yG0$!s=cVO@U?BH@of8ix9glXIL>lH@GhjVV7N9XsDaNUjfI!BJPe4OKK>H3wo5qFI|qidTMIk(I9p>4yTV}Ix( zJH;39Z`c-N)0m=3F#h;)?A7oM?32G8N7};{umSvR$50N2hOo_aL9SOFObu+EP)ocn z(^2wg}`Y+NN zn42W0L91vQePuuCv$%o&x=vi@Y^>{qz2^6_iR`HBoXr>Ou-)f|Ymk=FZkkM^PY%c1 zx#It@iE3-cu-u;W%{MV#HM{ZuX9xORU{fOSH7g7C# z-C+aR9QjLmUh8L1UDM;*axKw5*Of7)mcc)u^J?Bti!FoZ9~g3T#@Wzp$3`B9F4^}H zm(pF=C!0Y_jeGjc7ZPXDH^9_Z=8GK55;#l&# z*dP1goUlRsQ2sk#(3s%AIS$4ryLe*gi~dghJk%idZ>rxdRy}W-cx0>{>&8m)@9r(F z|I)En(^IQlq8g>%&6(9Kea_$Nf=kE4r+zDB$w?Q;lKmpYs*{@I;OdVDJ-U5j!~nad5#@iXY%6m*uMMXuw9Ogx~E=P{i%+VzkRp7kI(vU zOV{(4!@8Uo-{YFKKcfa{dp-7?@gYxd&aUg39c5D?_sVBy3r7q+dPcTe>zqZxOqMK2G;W@Etz$&Nwh=$xq{# zaZjw)y|)+qcfq8dYMVbFbnU9RAr^*vgzFp9Yoit-7E?#TA>rKfqd+%YXYy2HA3ix> z#P!Ti9`y)516wxyH~s_L&VS}V@!i>EIW#f6^COn!+woV8G3V6zG-mkU{4eL7zVYSQ zaCX=@;YYa6hJKAP#P-Vj_&!Vi8f~Nn#ui_YA7{O;QLx!!b-oWjlO7qH*3V~@lN0-h zXXvRso!H2_T-$S}atMx#>zmK$TD2b6I-BpgajfjO@1g^q^EZFa{yQFOxN_foU%uV& z^Z9e)05*q>qOJO>_3X22LnoH12SlGfZD8YQ3Oh$%*hY4apD3@bkAYU-9Qw3r4qdT6 z=+S21z3<%M3($Qr16wI)PXE2fd+(gWTmb9Rv(47C!xx5i=!;;JX@PkJ-ly-BMy(O_ zZEnySI%7_>ISsHrw%g|{=_C!hHx_N)fzNLkTZDcYy)v7`MnOC28(pKN^pDQ16YIqj z;~B9{ykLqQ>$}n0`s~;~c9`P%^`*XK>h~-5YX0VnW4v$c`gW|tHuzraUnL$9&XL|r zTBt{aMuAQa9oI)fOC2-M^Qq_>yXU$wHe9b_6!z7%%|;uqd=%HJ>(rPven$-AZ;y@d z&jsJf{Uy}E^d8a?{x;uRE{8o(OXZ8oov@K>hI_fNG3*Un$)|oG^fo_qE{)uaTnzYc zd|rJV=HUOQ`zc!o{uSoWrP8^sDM#_+k>eD|!OlX?)<74?*C6~0H@!6zRzNb9tI*dE72Kezio zSPwtmG0;x~-=(i+R_OWnKCgSl_ny+bKKl7-$@mBe%!=9fJ(#6YWrILfv@FZPKy$A^N>(WetbKakkVF}Nl8FOHA% zqhHiDpik5_Xo7au{L|->vrJ zIonBJjBUOXKauaq&lER^&8PS2(F?H~&G5YVpKiznjJyC_Ek>aO-{o~DX zKpZsnTMb8dFP6{7$#HsE4o>a28qSEXP2-E*tIqpB5$2$NC=QR0#3$pV@R_fKIr=yz zj*26ue&^to{Z_;a;u*1OEE%?asaQQczgyVWcZcP^u}!QW%ZK|P-5kG(E8?eNewaCB zp1&ikZ_V%-$7F6S7Cw7pTovY@xkveZu}t>_S}VMF+jw~#8usP9_+|Vyu8xbte%iky z!*O(<@!!YnnX@PNF8pZsnfg)O6Du{(_sOwoJUupyCF0h8PvVDhLVPTI=ES%>{u8Us zT5WRQrA=mSGHbn9ICJ65^JDk0Et|*3o6}&xijQ1_dd}$n2KBn09;K&Wo6QjCXz)8^D*+&&p1)8SDptl+PhABlcqp`4M79bpUw~&ySc--o!ueQ%_Ns zaUVYC(6(F{r-Yd2kkBvs`q(XKl{v=Oc0buK#@k|tST7ch2NpcA;J&bANImz6@cO2) zT{u>cjr*Hv{mpoFtQNnW|J(Ve#8Gi#TpF$e_o4c5TpnG{lY44y(7lbG5bMSov3x8w z#mWm;o_v>i=f}sD@$Z=1Z&Yj>;=nh==y?^->3cnX>NlJ8&;C02Py8wIr+kuFMNUBc z!RL35*mB2SO+yY!93!TdZ&K4`@A={UV7{zgb90g269>i{;(5WZb&iKGFDCeL@ag%S zw}#vZzn^c)cmGG|g*Qh`Zbq)&_sI#$ZO|e44e^>-PriQimx@#9lWo^yEmjnp%M*+m z&W7djs1t2scb*u}2^#Rhpcm}sg~7&tKfV`d$5(^x{Z{-q{v0cJAE7PcE%EiZ zI_{2H{bMh0k6Xg??CRO^jj;T7oD=S+dP&?A55#h_mYem2*eZ63z2k-PobdPaV%K=lc}b=}9p{(Lz0j3>pNGwz(|l4D1U_m6#Imw0l}O}hBw zF#qk9v1Q0zidWUO<(~9(|F(It#?c-j7xJE9L->nVhCIivaa+In$!2gsPV2V=UK=~a zlVk1_%Pm-L!JYH(oM^!@^N*RoZ#*L&9jnBOv1+UxkBg^;*PjqxXZx3m72?V9^7wds zKiHUmgnxI(&GDPKI&O_+7A!OQ-G;;Zy`O7?-FkPN7xxA~d54hevA-j4b8mCH*66ps z#U=81>H_k9r-k^A{g9jCPa0$LjckV){}*ArIIeV=ofo5vnT>hlT|U&9zahk%@&j_P z#9+92Fd=?(GGI3s=)GZxO6{2t(2x_8H^ z@rN*n_}M`N9EWp*&HqP;lONH%H**-C9dd7uC*Pl_Io@)kYMtz-`W{;=pCn&2=B%*8 zv{_wN?rhY4)sp?~dHE#scYIzhO3pxTm6nJpN#1JQhhoMe zGbZ&5TEItqYRJLt7l#C!|HHUF`0G2z!SVI@S=<_I(cj|sxI6BRSu|Pl6xJ7B4z$(SFJ8f3V9d2j6*a@SUF>yT!h-U%VsU7e~dX@xjlkCXUo4DKaB6icjCf0JH8#ByEuLw|B5-Y=geLK@^AP8{L*zBYCU4)R~(hjCeW{FC@;IA>dj80f7b->26={@;99Ih^%E z4qyL|rTn$~w#c!_(?37{+V2hQA9LgG1$R&GQT>zdjdpyzDRzxV2LF$3eoyQikBY@& zgYbA(+%@m6dFRGy@$uLvc8%?0kN8UbDQL#CLtL<1Y#!FbR$Vpks>!|2E}wV#JnMW- zTofxWSb5@~p4so)+#9R*`)yB)U1Q%kG|r9xgglM>3ExtETHgQ1abwVjx#iV%4|NTF zH1gNRKEI7GuTR?e5|`<0*5kqFk^`Ut{4IW${3M;=Q}X@T6Sjt?tRL)x+&w#@mdaiX zpI;7AuPbekli4YpFTO6F7PD*@3;TCgyeT$~<>TMoGwJ5II(``9p@YM@S~G5&f7`?+ zA2|QO`P;|bSUeWYTQJc98t}`wEKZM42HXFpcxAjiUK}rs-NWOThUdNKBjFs=g*)RB z-4FFCK^OQ4V!U_62jXK>oG|}{`Ip7NVy%9u=_PSQ*na;uTDZ~VzE18y+eiL`b zGX2*1V}nk-F+LY+O?QQOPR>$ZQ+|uBbzar$*i-o=n#^XacR2^@4q^iRN$kDe4mlzI zwYtok!rz{!C2BXDPW46c&z~Otwhr|d^=aC}2cSFZ7wR!{LmWaA^t-8#;J#oq#DRJ} z^jqN>;dA_b+o3YP+X~+Jbzz*n`inmZ3KNq0lVfJsrXR#7 zV$XPKh;isEEu9g6p84mQH;3bST+j>uUHH0t5K*I z@Ue`cbwlrnIY)B%G=e{-u4*hkEAHtxaQJeE#=B#$*d;?Pr zx_EPZI=&oy%H!ib@wQ-do*nGW8{>#LGcF0f>iOaQM+ZCg;jsSeLtMf4<#Qevav9I* zKGN@r55}<}Kk}J4Ierr22lZsN=+omjp?QiinF>Yzx>+_O-Qd8pl+P1HR z?N!fKi;90e+@Co z#zFhv9mmEG;`cFQ!Hh|4v-g6%C%=jJ+kR`0-pOlyAkK~(V}2}O?L|$+Zym^oy*54^ zaz?j?+Ld#twqY)!J}`9&wFI>cJrjKDHG{q7@AI$ObmxRNI3Mi0dc8UV|LT3AZm+(m zN0na4^~mdZk2plGX7t6<0;umh$IiRg)%qV7YVor|y?xY7)J@bm#F6SFk~(riw8wh% zGSVk;r}_oG8g+2Baoa(=yvO#Mrz%gte_5hD(B|>B_(J?3*a-J(lMA{oel^7{i`=3e zZ;>^+zvyq39v|Dp-tocsT3i}8gdC6q zkhz}apJJ!y{u1&$>>NMY>ubdh@x~A{@b%?tE{W6P?XgolDIOkdrC4PB;B&t+4ho5~%y*zy8Tk*FLJ8T}C#(MFHkna&+$o1SCo|_vR#ZJM-9~-B} zH{+uCPSBLE#LHrhSTJkBtiQ*+5QA(N?+Ty&e$W@s{jA?D6$335r_4NMa{uxzyWjY8 z;-!c18TosR8_{hoq z_>Ww8nxh9xZ-KnWDj{xB*Eu_A!LgwhK*tu3-*unS z?*u(?KDLY%<39`jv*7n}QJfU=d`}7YYGp|O8b1v=9LMhy@s<#uEfLqwyLO`42hTfr z-n-)i@tOEWTpZ4!^Wd>_;`Mh1y?~8&9>MQ8F)odN#nRo!R^4H%*gf7A$A#nIeEuz#sz&m}Q2Wvsa6()hH--G$ zQuQIM9Ad(Cf*-V2IKP%+3q676%cu(-6mn2{My{EvKmV>-qF2N@A@(>fyl3PbX^;FY z8&7|nV@ol?K#oT&>OG#*Tg&!)PA{R)$XALf#g}RcY`?zCFNL`X7lm5I&*G|Zk5j&f zF)m(xdh8yD#@FH}A@9HFj72B))2H`)&T6$U2=zw1D&7zW#HZt|xH|q551;w)$!{e* zwR;~wIi4Py$7b=IcyYWs-WwkczN+}(>+!9)D1JP}&-xAI%R|iI@f9I<5JwEuWYq`Q zwm-(Laa;T|{vLk|e~;(rNW*_-=_?XD>w)rA_XRCkJ=Aia8?OoZB>5-t!`aiI5tqg9 zLhQiS%lWYX5DPptRt&L&{LjN&LES9n%<|B69d-V$O7F$68!C>$p`AO<@=-XA-} z^6`uARV`k)YmvJq_auK>_Y2gYCig)TTxG5Xj_zUk?RZ_R z66d4@yT!6``TWc0e=3Y?d1-dvm{%K+Kl=B)f9HYzeqtZQ2K3;qu~R%I6fl1im&SQ< zPI!EKtU7Pid3%QZwOq!1@z{PtOdjHZI4;f$zNI|5IAz;-Wqcvzq!-4f6=#P28ae2#!~7HZn(xO=!KU-c#Qz6`xLmI2k`R;sDdgq!3jQr_j%!0K;628x zzC=B1@=V`}Z-m(Xgpil!*YQWiAo^wKhCK4if^C`|Y6xoBYCZB^^h+<&r6K-#RXj7) z`!DIYqdyjo!=iCbwF5Qwx5e)9^jIV0ihdX04e^**Zp(1YXUDw{-21@a;^z2WToXTu z3*tL*c3c=�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 literal 0 HcmV?d00001 diff --git a/tests/e2e/models/parakeet_tdt/data/asr_probes/probe_02_clean_16k_mono_no_resample.wav b/tests/e2e/models/parakeet_tdt/data/asr_probes/probe_02_clean_16k_mono_no_resample.wav new file mode 100644 index 0000000000000000000000000000000000000000..ba144817e6a16ef0152a9490f807b386d5ed35d5 GIT binary patch literal 133164 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 literal 0 HcmV?d00001 diff --git a/tests/e2e/models/parakeet_tdt/data/asr_probes/probe_03_clean_48k_mono_resample.wav b/tests/e2e/models/parakeet_tdt/data/asr_probes/probe_03_clean_48k_mono_resample.wav new file mode 100644 index 0000000000000000000000000000000000000000..6c06e3645888af195ebd4662634b8dccab702273 GIT binary patch literal 399404 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

hkHf^R}zDU$!cKrTB{| zpzd=1LW4b$eHKcOwI&>ByK9rXi>I!)8l7RI^q^1+$07~ta#Lh`@WHExTA)?l#?Nw! zP*y|rv7|Cw=|FqsisGPRtzr%xfH>6pf5;C|i{?jn_9WeedGLM{IXmW}2r9zawFsTi zq%I^qN=LF4UBY?bseUl;3+DAdq4FI`zp|Pi;o5=eMKWDOHOQjj^kAQW76}6>QUZ=t z4WS7bk>e-={zvC0`J6f);4I6bVo5-Wo~6!ZIl}4W{=DMoE?vESgh%VsjvB|S!pS3 znP-W!_O_+jmpN11QIh?_HCbcynJh}3YNhg_!iulRZ`m7}fR~A!Yu``#km`Jjvas?9 zj?YWwCFPamo8+bOG)baM6QN$BUaPLF-lV#vJgpcZSIf2wJ*Cl-(%#yhA@0krTCNml zPUj>%X3E$TY`?9&t!{LxKj8BywdUds*k}o|lrpPKpR#XdJ8yI3F=B2>?YG31fMm zzvrCJ1i=cbwv&4-?h5bu-M`7?FT?u&VgE)ZKarZNp=~BgcEv3h@aj2Y*5Iem4uzL( zwp^$Z%%UzR56}1_8PjE(l6oK~-hBtq<1Pd{pe_?r1H7ucC=nhdH#JL73$w&{SqU`8 zH=}==piIO6!HlBfE@Do7Wg%rSow8c!h$bn&D0AasRG02`2I`=>m8%uObZiZ16pW^~ zphv4Q8U0F8Tp{EUwlRS@!Hh5jO^w6M3VMKQ_yfKw&hr=k16x#K>Io=f zRMM`v?7+x#9Rd`HzSa^EajIbhM zX`zclTZC#u?}khc`5qh?{Lj!bFrR*|=DD({yt$B$KY`vo%k|c^%e~rj3Z)~xR4VN! zY3Y68uI0Mn=w+{t6GwjQD=Ne|%O;d<-y0LNb7m!Htp4}>@94i%|Ni{@>R-;x8d-z0 zw;N}h@}tT#&s@fQ+?3Ze-ssFefPQv%_BCU=Nnz=Nv%x3(2b>LLWC&97#f_e?-lft+ zaff`HvblPRW{mc}b`f6TjWsjX-_dS~SB*l0uY!7|`X*XS?bSC_W~EJG!kx1py{L4! z7$$W0*T^2iWK4!Fw1@2JsI;x*ooArij6Xm>`veqb+EeM?N0lYUa@AbiJkRtTzwdY1 zC$cYPo3eWvUl>c^z|h8IG)_Q®N0tddz`R#aAUR=4aDMiuG-XUwf(aholLtv%?y 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

aC3(<7|*{>Zz3;xNwl)6KU- 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

GAK0FHg(t!?r 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

TZpu=r9w?i$5Wf%Uo`*iGMW7AUMI`#!k@ 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 z zdpPC%nBxf_q(9PcHc5GzJe3~SI_;7DErS0{GfN&OpORzYK$~?W$8y|hs$AIKkT%Cb z4uwNaBg?D{H8DAn{04s+e*;#S`44*K@yIilxL$v%6br!>-RHw#jkLeaNf9T(VZF!9 zZJ)Jcd~p@qqUjMr+S~_DKlZ%)^t{yh^y{w@H9_BT zbnrFc$#6UV%5{eC%D>5t^f#%c!VdIUs)OQ_s!_ql)yHsn@FCQn@uBp+;Yq3Q<5p>);uF)o$v)_3en>K zRot38!SC=f8^pW{enkAvhKk+KDhE5~Mf~n>`mCNad(Y=B8@`9%TC9Aq^V9Oq^nJ9< z*<|+EyahhaELPg6?EhiKR!J91yevl%FVlFU)udiT!->D79mS8(brNIqH-{Hn{}%_N z9VoZKJy1)cpDI`L_vZ1QL*skQEAYK}wktpDck_#W)9vM?NjnzCL^ItyO?v2G#EiZf z0{8kw%t_ldW^bNY9a@+H$Ud9lBtN;OI=gtex~eb(md`L>%{+=_{&AaOieYG@4Z}iX~RR;{6r8;5g+|?CBm#Cf_x=!`R&<(0jhHjQ-ZY((LkZRds zM^`HkJHA>ibjeqV+u4WhSB)FGVP!`65ku#wwi`NSwfNBQ(j3+$;&z6Z4QNic`5m7O zJeB6MocH8TbHkQ-Y?Ec$4ag%7gh(t;gOGvo$!R{ zXTlk9aN!fKXBv3s4~T))8Q2s4f*mq5Qy#(gu;+I~KCn&9lKxL`>Gtg2K$;m^^lok* z8a%BzYjD42&%y1RH3!#ieloaN(zotUn5!uU=V>M#Tp&HRaA=)xIJjY&;V@=!r{?^@ z1DXfpy)O=)-+VrJWixf}o@Sxmlg%oPxd37zz9nlj;)@-8!f-w8~R zt}Pu#+FSg}ErGx3F@m?@UYIA$*3-69tHWzhQ_*8dlSNKqqZf%Ehu@+9Urz!&3x^!f zP<=^F2=75H35P_@#pX47N;GX(Q6J2uAuYzmw2DrP~KlYMIDI-0bKd@_JLg1Rxpcl@WEKh-zPf)(E{ zQLSGb8FQT;uP#k6wYp*GveocmJ6EHIomV|N?D=Zi;onyq$LzhUhOgg!EaqeUXZU{I^+sIXy>`U7 z?hKR6IB@bLn+;TxovoXh(ALUc&!o$SGC30hRLVP^@GqH|73UQDg zZdd_c)$sl&DRwkJ!R$Ub3jc9_eO5az^tz{y8F1|Vgb8yrH%zE&GngKaIXTb8Ebn(F zOxt`hVdlo%95b0Vi@6j_O}MRIaKcUX+fQQ7=(*o*mF8JY`Q5bjqvJpC zojCrfG@oaa@i+8F$1I-1$3NP;YWy2%rrY}8EnOe~-6r)T-;Jqfo^VyY(S(22$4z)Y z&F7hBaFNFR@J{$Hdf@Za8ztW+KY=&R)$Z0mIAVSMf-rs@GPPnhMy(cyT5lg)uZIX{ zR?mdmDvrOJ6rPTnq5>H57Q0It@(mH%%|)8JE=O zwrhoNE$Uyi5BFwkF9`kgLwmhupU_F)tM{K~bnnAv`Q8i7q`f=RjEi#z_fK<<78zW* zS#WTrG`D?*!NnVM5r+@{tl|63(|d2i^v$;uW=r#WXB}L!`NiOx&DMjPH-`=Gmi+%+ zgC{lS`A*rpJI!g`qxW@lWp9esTt)LzmZ?X#Thx2DN7To**VGp!9CNbf`Gha-+zd+? zpE{f016PwTUe?}{W@O>@siEM@vFqx4X4&bthbhr&5X0lC!IN+}VM;i~dP4LaJGZ$v z1m^{Z6Mr-Jov6#>y5Irh1GCrszqr7yf4&3X7{}Dwfo?wiH1bj(Lm_szKmJj*OSGxgwN`YOF1X0~f!^=3)1&F+hJI1d*;Nc(a1k&kHh`_HoitKLVtY5xNn97?!v^iBR&Ry z!R9mg8#z$s%dHU{2zinG$oKKd^l|w)evkiQbIqoZyz-Pu1Of_+s4~hi};ZCj7~&BmUYwal}*IyGMN39XF!xem7#+!22Wm z-OEP2mY%zO_`2OEhrLw26*-GJO7JtYp{D9SR+zCnE^0At%urmo`)cv)?#IP%x}Ozm zc0WqBo#z9iJ1FMjj;vNM#1iI?+#kQ&u~Fl~&%md^0oNzx+G1B-7wYd~c0485Hmpb; z;`jA_ZCS6J<~pnub2?}0J=n-WJ{`Ow*>iInmgqgxtk!#_St0Dzh~DjK9*-HZ$A|s@ z;JXvjTqN_8#*BZkH{bZPdy|Yms@EBRXs;T7SeiM#-1v)on~%S#xBvKude@JCE6rIl zXZ*D9wx|atTu|>Z;pLj&lFM8-cyu!%W;re0d#>5N_f>OIZ<6+<-n=Qc{$qVmio?}R z;$HVOT|vX9q>-^@AOl#@wk#WhwQ(31L}@A{A!r` ziRmoklpGZ}EPZBi6F+WKBg8F%EAT7gK)9oNpcw1W@IlUrwJ(0cbHul#eL#Om{~E0X zJs)g?bHrxIpVYU+$!x8-9*(qL;A3haelHw~pTU8{U05fuuel;;fDJw$Im9`E8E#hZ zk?_S=BgZ>8=5(0J;T--r^1<&1Z)(0Byr%gi&ab)S&kg>$d1UbPG$YBJrSl?(Jbmy_ z&8dU?G*DlKh()^!M~;YM<@R z-I~ETW#m7r)Z4ZD)`zv%1&;YieSg~5ZJR31?ZEAzBM&cwKjMYMo3;)>-)r=J>d#Y;$3Ipt!9jNGZ@gr$@tJxZeU|s-&+?ef_xl|CpzdNn zY+^(k9w}b4x(f^pmsh_BKJzwlt>a&bjbLH;JNm2fxWr0gc=dDqE^)oJu7?_@imjlZ zh%<{ri%+cITKsCDn#|yuU?xNS>sj2VC73d4U)G3o@IDVP>eBR9Dz%#=iFn32i z-*uL`1nTiHdbJVtVca%z0rl~-@%Yka`0x#CM{+Q@819?AMGeXO{Ox-6oY(R#FdOp= zaS-SM;34SobdBT0d7htAlabfK(#-2nmk~emCv?}<`fn`uPr1{*aee=@I40GnU_)?3 z`4>NFz8ybme$!Dge@U)(Rm@P5zdc{hSbSX0ow#1=6;o8pCHt+eZ-)9Gsy`OTSBIoJ z%rn(xsqQ|Zx+~S`;b%YVzFaIDbr-&1v+mc)SGm7*_sv3`Wcu!t31{QS;A{(p-{3ps zBO|&Gr~3YFQNKSbYCUQ`(^e~{98*rIW};RmhxD81F7Tr^d^vd?+vYf^Ny!;;?{MC6 zEpP{M{_xP*Q@Yl4i}6vce=#4OO4p$t0kuiGSL*n3ceNLDoZ;N+uxheu2ymO*gHxnN zVGaeYalG5f+O7IDz}1e`r?(D#M6G=0!1uooY+v2ojJ7B18&cg}-Q@22iuRuR%J%-a z|Ihlm_Fwgl?Tb;n9~ZUy&!R@pZcfv@oNDiC?dl1*Vde`R9K0|Xp87Pbhz>a(@@LJu z{coEMQXPOVZJUi#J)nttwZGK|+?MTT39pg=;I!dTsSo%~a4Fm@8?6*|0gv;~G|bhk z*?zB6M}WJj6R4x8VdGJ~+rE^zRd`nLF1#q3xO!*I+ECxt4}(*+P+%--+WKPDwbco7 zeE@C`f1#g?bEO}LFI5M^?V<;7b587oIl6KJybHFQCOn?BdKqpsewy06TRdsln|eGP z?uho1lr#BF*TrvACwe5l=h^nj{GQ!4Qh4-T=uPjz|my!&3GPDmR;@2)yKd{eI# z4M{ySYU{90{XY6x)E4z}!HC`Fo-eg_`2Y<$IgC0aj1$jTuB87>ud|#;oPzJ<#8$KOWypJfnwRzKjD#>yTc7ID=MG)@#C7*0Z2bfu11l4S%8+-P|%8 ze8M%%*U$i`nc;nIeZC%e{4(#;QzB>9mq^QnW+AQ_jv3yW+@0Pbj({4hO&>+(py?yg zYpEYn|2*w`JYxJaF%v#C4lph;&JbUww}xJedJh|94it>eY$G{_e1RX3bKr&z54=F0 z&kwxT>2~-a+yol=nUl;{@=nazmPHw4Sk^TH?czy9`k=5U)s zWy|{d`gZcnO*}jNX&h+x;ScnL{cb%pd@>$&);9LrY3cYp_BLzv^VfW}9??yrcNFiO z)`7kp_E_!PZQlHy^~qqJ`eA5TW^FVaLFdo;bT0MXIIpxZaR$9s{mpZ1J&hJx&Gh80 z4SmM?U#va+cx%x*67$kGke4|B)`rbzWc`DzafwUsy|fbaK;xg_+|#tgL2;i>hF(GbF+0VkrmOZbD(bIlyXwQMhK*OFW!vQwdG-@MC$(ICnd-Mw#`h3fyqK&&7xEmAK1lApE3xQ)=yIfACHGB|d}w!Rz4D za*wFr1c$^s_FL5-{C>xQZ&aJ08>SXP+XwH9=75?6odI5;5PC-ST;gcy9k%A+MS4`!!tsFB!{jvmSf6}_zEAzq`jz!W z!`1Yq=!euZCO?sD$Qk68^it#_t`|IEJ(2tZKhcX<)6>!e$A;^hcWt_F(`V<}WT)X& zc$)hC*lIRr)37ycw)rD^HgJdC${9Sy9&H?bfBNKek3GATH(asYcWZ%w(U`@bHA;TsZP{hU6T%hZ1MrTmrdw&gJuc z@m0>nT|0P>8Jl)2d>;J{+B5KJ*a3e6r=~Td_geg>-_#wCZbPI0obKf>S0 zy7zihT&J#R>m5%+Uvt(hU>jT;Yz1GHwUG5VyLRY=sHwSb*%sJDFWUzQ6T9 z)9Ek|kdB);&vnXfxo%y@>=^A_w>H`&Ff{oS-8GtV@NhAtxKey6pOHW5=Qg`YZ?~Qq zy195}{Gk~~bPD-Gn48#`FX2bnV76E>9wHS#)gWU9dlYcdXLyPy|Qev7@58UtQD3cMzP`U{O@g^*W_^=A9X?NNUu6g z6q*lsJg{5$J*LmY^WqDOK}8oh-gL7@1i%uKZxbCHU@1X{fbM)$}|(n z@3DSp$mDqn@@qZz8UM{X5`3dv+cA@S;2r9(qO%0k5<|(U-P&NX{3^{QzE!_u&P%L6 z{)N_(zJ5N%`psI))-|8PkMU=&AsQd9EC2XGbpgMdW`|=%M?<`*uiy18j%3&P61Ivx zU^`)KY$}_>rqH_5E1++iO{NQ}#|>|WHl*0qJP&cKo@`n$a*|6U#?`}}=QZ&cdN=j0 z%SrVA(~s9%Cr?qg;Ah0g{EnQ4-{2?sC4PdR;wyY7|HY4qnc@5RJA9nFsyZ$k39DfX z^_9x8vK?e!^_#NAuoyi;bXdgIY#Un!gMq(@tF1BX%R02atV?TG-iL#Mmu5|gNyIDk zsH}Z+F03!PW7bzuQxNy4D_C#zgTw{woOp?i!((9QY|gW_=s7mft;ezrv=(UHiR;xT ztW~;7YR1;g|88QFtZkQPozjbNU5kBO<7{Kz{H@+$&5Ltv{uUouqpkybPihf1bqnT_O0Mph@ez)p zYu7QQn<3T|^W_*5KR}ErClX^iPtF$`CGKLU*ayC9;!Ql}dSXA=F}h*GF10?`9pB0Jz!0ntYa_3VtXswh<~89ridETIwpRY;csNFQXku{ZMZD^K z==F5`v*x}!6Wc|Ty1Y5V1w8r~;%^LaiSN0sdq|FIkT zaP5nDiSCwt6a%rl^lbfxiT#h?2g_xr#YEPh*x$O42grRK6KmC)rROy9x^VpXSvr9> z_JPe1|F8$RGuDdZ4i|RK@Ey*D_2c^S9G<+_dA)PPuK2v1v$=+RZ`PAii?MIcll^v$ z;O6q_^!xl)c9PA+-xUkeZp!CMZ0VTgSlKypUc|s+Up5&=E=F~JoC9%dK1cBMiSc&v zupDRNm{>2h&10U2pYUa3VLrh5&6qr2H*wA&9>zz?I#&9uVf1n@F)pmd?~;@83H*T^ z&2M*(9S1%)^OYSRvvAlJIji$bgWuVf%d!U^&v~rZb*ISnu;2VN5>9y3YDt_JO^# zuKia3tY^MZY?8TIa$f72&9k;9_Jw(E^K;fUADH8Me$KkJj@dwdf#1mXPkt^=&9OV1 zmF*rI2Gw3&Kkq`6xT+e>HSU_Chy5qax1o9;Kh~wrObS&{v_%O#;PBrnGa&6k!8Eb=2vo827 zxA}azRabH@#pX8WG{?&x_ZsWjdA9~K@7}d;{pZc!)=ZAMy~ld6cCC5)$aaW{*fzgK z%nJMQ`}|IEEL_Mf-(YR<-TBsf5vw~EVk*AVad15N58vUxV`2T}Ys((+zpgE7^M9`& z$H%_9PTb~W<-X%*P5T|*m*4NYx)j+x`)HeX+k8(T>Ok3GqH z$zo16hX3I2+|mM+>+pj<(`RK{)rzSzxXJ=k0e zwuv97UG49@UaTcP)7tP`T^Wu8J8M1I{Qdu{P ztQC*tn9gT9X8ySr^ZI7%T&wxkeQREut+VCFx=X32_K4;FG z^O)_Z>%;ZJW{9hD4!d+*Sz<`X*L~+AV=39TiY>(s&X4?p{joo6vTH40XV!sZ>RNN% z*(Sb*?L)p!UC-WYy|`BMad4c)z1F4UXKteO~0EG@1U^T9#kp)gQ5g!>sk^_;j&{GG8nHHN=PB4=WWL+9%%$8xae_M)i$lt_J-?SPG7Y zV*;ZRBeCtUCpMX1WtX#0bxhe0>(0uvHm%can_Lh1pX)vI5ZMaXw)N=RcK+B2HqYAg z96REc&9FADRexKbu2I(?yO^JM9kN=kjcns`K5L(I?3njG-+In(%khK9#RPso4DOM5 z#>TJdo5~mp-^I_l<;&!956A2L?f7L3FXJqHrsHYzoz^Cm%It$3H+Cc2_H57nF2A3R z%GWfX!JfG`9Y6MsopTMbiLOmHGGC*vUwMyP?{T~{=HmKv&Dp%)^~9#Sc6}yW>iU&) z!3%SpRqU5zRQLyeD11e}OtS_S;&~e^M2~~lWh@3R4LcD_dS8CrEi6S2j>nMeSN`^T z@vzrqOxvya*yq4(;57agufht%&F;f%%+(PSi)Y2PV(C1a&ExKSkKY16w_h+M`yl@p z=h|TJjsqedo4@>7UX_@e~zWq?Hn^$1B}Euw$}M! z>svf#&B@8F(Y&_UH_x+u{JAyHKkyCKmTShfm-7_<(3;4$)3wK@TNCWL>x@5h-MW5V z*RFZ%mk;B+ta)~Wy`+Dqc9MBtIOcE+c2thc?y!?=AzSLTYA<_=lPKgEl%eKX}>6+q`Y_30X9D9{x1HZ}Njw9d07O(;0Y{w7=!-ufV`~s|3 z9ZU_(%x$$q{i$$a^ONA!_~7tlk9%GpD9s(ZY;<#QF6iUHopA%b)+~tgL+e(JlV*=z z9vVLM<7my{PCgUd6 zh=T=F#7Fd6TtxK`c83jMbKsY7UZ2mNTGM%LSxbDMb>*5;%Mc&%^J?DoT={f9|G+pR zusPQmJfF|bwMu@;Z_jxtziWN68GNbho_`h#$+P%3$I=>Y8t_ks*BX4OGyn9e^dQV zJx|?{J~eKfdLu3eZE5^V$6lYZTBRB#?xvch_xW305T7T{3c&%fnF*ohh_g4cGdA%t zb4?RJ(|6=rCvG0Trq93ywFayOoFQw&KC6SNqrzYGPQy&_i_CJfUaSY&>o$BN`>los zo92i3EB=mc;yTc@5E5np!IGR1izxL&sK_;)%4ht%x`8>JO+QoEl~@D)AE3plnoL0!q(;L~7*{FnFfmvT6tnR7MAR!k1JhY!mq z*bBBo9>5m*%`j#B8QQeDH&Gm(D(w{CpM_&hb(%gyn z+L!xgU+^V3_Be$4M%6~~?&;*v=E3QtTfh(HzEbmj@u1AO&*s>hIi67W@@w50z?9L{`(B$yWk6c!4Cth`pIj7F2YexJn{&L>= zH?bTW&JMdy#1Yn6_FwrLVtaFa)~$GrZ{!PHTVg?RoX@pJZEUt&UF?(R7`ZlmzL*gv z_s9?V41WrzlN=i~uw4jaX{;#K49vuoK;;DF%i^9^hqpTf@ZFKi<_Cr*TG<1z5n_}F;bd=9_j z^K3ZU?7P>|`V$NA`*H@h5@yc-dyUtA85Yx~7rDdNn!bX7g#*_ z`7XQ~nw>cRUgvqQ%d=SN>%7(0P|%*jUC(@ez9heokMcTx$@Bb?&zY+KWzq}!Py1%l=ccJWEcpHAIO)Ul zecr1Vz~4CX`0{k=@~!@|>BH~If%KWlqwK5M+j?qEZH^|K==IQYlayLH1#qjDcs(|3 zEt`weh=*vN-DaV$f@g024c@xGc$#PCP?&G0pIE=tlhMnouh*lG-$Ho?Wr1$8>*Q0NvnR-%uPo8sNRs=m5eZq7nXpq}?eZYG3J+5EhzW%A$ zEZx%Dqs6CBn0_t&BRyyOo%KD_9Mm7Cr_AFtlzg7PGw*Rs=v$cO^RaHr$K9GI_*L_QxB9=CLJYx zzKc}rCcTR#Lq}et1HYUwmj;{JHe1!dbgK6IJ9=fb#8lZvMIOw}q$cWIgGx5eDm zuaX|#U7-PJo`rqUGp(n=Tq*gHHHdS@@8i1aQKO;YINDEZK~J_>Abh@BJsez)gEzv~ zvaReR4kFv2rv}Fy|D1-uUMBrVw?}V~83aROW)MwI`kym~KHJ-&rKi`Io*upJH>0;# zKd|R$?zyG6M_2WQ-aPGmy~mQq!5o82H=l=A(q|K9YUo*@C{%dn>lHhVI)h>TTOiLwkYV z!C9ddNAsHwIDH112eeFSxY2T;Td`Jqcd%?=bliKpbB@FckkOhEo2=68rgx0|q6J zkyFE))O6WiH&T)?ATaLj?w6U@G|JLdG! zmf!>UAO3>fqy@&t-uA;BhntE6k`61|dqZeG&_|^wL`TRRpFfuGcCIeFY4(o!3{|yw zvX`I6yoR^Sk?C=El~(GtQ#mM<0zd%RM$QL%0{ zs@SsHA?xE)!s=1@AT@3;+*Q};?LDF#d)!f4PET3Lc{2q z(C@y!I-|I=`g79Bd#k#x7}kBLSgHF?v1j-Dg1+{Pp||>Wce(Q3?!4vU-C^aT-Pe=W z&_mTl#a-2T#lNb*7T(vd?k#5PK3n{_`*`tw%!RnFI=$GU+CJ%Q)3NY-jw!$DY+k;S zH2%IUE=;;NjvZgj-;WBvX|5q%k39QUf3^NMdL`!h!7k;i>e{d;oNj%wt|RydEQA&p z8zNqOvj4k;bI{>8^OMamH_q&U9l{5!8G6r)gnsjE%^PW(vU#!nvVJJ}g408ndvs`W zFIA6fM}`jf4D~umhjYfz-=@nwUubvI&>FQBNyV2aQH8Y{s3`4%9}}qSZlP*0G~EdwqRz(m>s|{!_bZXa(`F^iye4P3SGxe%)KD{j|4u^0iO) z=4|io&DdVoo4UQMH+g%0Z+LrBuhSmhtD6IQ-!=R8zHJWdO=wOCJ)*z#CTsuMnC;O?s$JWA=;6=G-g&pRb z)n#F4x%R7;>~D|5ll1R+KP(Dnka<6Hip)34d<0k+-vY<7A8^!+OUrT8H=Tc+5VaRL zGJdwYB~F{X$vT8X$dSYcVmY}K%v#)l6M)|)S5jMnjq!PW2R{R6f?H)B3caf87kq&j zQLiri#avVUv1~pqe|oIqbvi)@M?PUr4^1BP5ZEGGd7l>NC2j3*im^$fhwe5FymdpP z=iu_wq|5V<&{j29jV&HpEtzJyndinXo9!lcHsgj?+#1!UNvCIY_4|T8^j_7TN$2yV z>d@kh>d4}R(C%T6FRe~2{t}xxIrOlzHa1PrL#r|AeVfIcH};$@zoI%N&Dt?rhi3LY z)%nFu)mg=j)tPDDj#)e}R#&DO3}*IB(fwyJL-(oTC$SYVzsD?}Nn`HMB;7{}+CMXP z|CO|WX#XtNeXH2IJH9x+J85}bY^QgpEYIssQ=ZuUQF&B%L`m=3dxmuHE4uO7Q^sd6 z(0wK8%$XbXi|)H=qaidHT0{@Ve2C+!gVX#4{*Dg#K($2D2V6M8hxm2+k`x*SNqHM|ek0RFEZ7KRhkniGbP{{zd1U(;=YvB2roS6=$m9>6y57jZnz<)4Io9~N57^Vb`v`&HPPufoRM z(VL;YJZ#E|VNXW&K4^Z^8`rGfd$rlD_g-^p*phcbKa%A8@fZ&#cTobsrfc$o0{LYMA#Cuibh8+LqCV64!s*V4g5rG zsXh(&r+cigmVbb&ssE^J;L*UZUHjrTu{@r%>q}mS*No#K=7It60pcxj7krYR5L1f% z*b}yfPf@>Q7hw17h*~Opkz;-sB(5vp0FzN~alXX5{Ir~fwh*la8VtL&XQfzLd`&Zn ze$q3|O8xtrB~v~`W68OiHGKES;aAz@1M4H()#EtR)2310^j1iIK)&^K@2Bk}p{IIP zZ_4)6UYTtFZoMy?ZF(O!bna-dfaP{4Q*QIm|yrZ^y%oKE*3L7 z_ysY79B;445f818ZjY}|NZSRWx%)`ulwZ^jra4W&Yufhcm;++}={+qJIRsrN+7$FE zXk3_$LBq(bb6Okx1l=MtgVdVLlatTEEa95)EwUq^W zE2mMn<_~B!$aiSmy%|^vT!rSFSv#->n%3s!z=&W!{yr^mpbLvXCY;GUH(J58vd#IV zhq_}qF3kfvx%@WyglnudTEY=_?rIP&0+h^-(lC; zWZG?PzK#7igU9nPg-pw^^1$v% zqjbo?+U299!mwKS{8KHXlOo901m9=~amYTK0K@UMI+jqmru z=Z=dRcaGyhJ1jK*>7JUIV`dCoNbG)bXf?CtANLk(ukKBi^fK9x-}gRk z{t$NKj9$0Bq&I1bDbMQ-YxnDoZ|EwsIctQEU~_iuebF4F=t%F^p5H$*G~mt*E)skMCy7QJy&U<2da_zH zZ3o&9>euuZXfgAh__KPmVAomtjZgZ1xKwMmNA#<9 z^ECg|TvfAs%)0w&^LFyx=I!yHBbsN^%)P5aubPdXGjaslreb_{J!{i0+WS|tV9dK% zCbVO1G)n27&Kr22ZT{Zl&BDE>{_EGBv!mjiIX^T^Pl;PT1^&n9-xzwP5A|kkVSRFv zMeEIz@BdSMXnSUTT6=rojjz_XrMV4qn=ND3hnaY0?eTYTtwY1Vn|VYdiFT6Oi<*jA z2kq_L(h!A8((g9Vun zO>5Woc4v6f|D-RvTIjsPC1BCCJRdKPO|ua`j#)rvCVXF9mge%9%`?3GTSvYC^D#rs zOiTLObhD2PT~9L$9xkUY{v9(KU_e8vMT>64!LXq3%SF>;@0W8WoQItgCwqSOuzzb- zo2QvMat5)!nFiu&GjsN=_DFLze;$5e@@m;+E9D~d1paR3**4WqN%z@%uMJE_&H($d z$rs>4e9Y>RtH@c*=-eu1hSG|@A)YtOQ|_>Q_wA%5I(PSlV(QSFhWC6?{XJnlW`TN) zf1n{sW0Z|QvpZFJS$D?ry6`FRqg%RjCZBR?;7Xfzzba;lJfaD`>W|_(dez-22U#t0 zh<&=9(tB^~&Qoav~}7rC3c zqUuRBTrUj$J#~2TE1d@Y%Wx!dh+G$kN?(Jzpt`mivKjTbnDpOWYkY(2ap%Y%%<-b_ z$uGc(&HP-l`6Ow8!i-(do@0k#%WQ!7ku8@Sn5zSCcs}Y1i^OyLN3CGb`r!6A^{y#j zc%nD5y)d-@#hx~H<QT(ZE7T<>ram~@f zfDOTx*cMo>I;GkrKB_$5t@xBZ!m)u{tFiJqI9Rv^a1R=I@)mU+99+JD7Li&2Kc=Qb zXVeTE{=oS#!_%yx@4_Fx+N_r5g^q3JN;sccth8EV+C}?8eQ%njDqnE?PN`3B>4VG9 zMg)HMTxd}9*$4Lqn?D6EWcI>Yy@B@Hz>eweShUV&2?Bv6eOqxd3s;g)wL7 z;h2v~^O}yWx&uvEx~cmFK1k=)ad19qpsJCm@2h>`1(>r$LxW}p{0$F*uaFbsN{fTk z&YfSkatoY5{W9u8`s!g&I3utb^=Cbz>f3r0n&+%mtH!I|XronZ{+rq}t@i7SF{zIFUD*7|%j?pt1lq^u_0Vu$J}`bW zLw{L5)!8WKxNTRyk!B>QkBU|4Im7>N2n_t*$P3IvvzdXcb}DCZ-^?_*gFGT{YO>En z&cL>r@eF&S3H@0)Z}CywepvoA{hc45A&fVZIcU_4^3lQ?g0NWU+2{B6y;al)yl;Nb}Y{x z7+bzP@KBnYHhk!t<@W=xl#dVGRbCMD({>v;wp?pqpK_^zUDC`1w+j#KP|h>3O}YBO zp5+b$N0vJd9G$kk2Tm+)JH_8-^_Z`)%D^7!_0tS&oP5h4yZu5gA&2107OK`x$B7@1 zgPEsuK+IB7=boy(K513U7ru(x4^477C-V~^;S;bzLqX;{)S zR_B``a2bB!w}C}W5%q(|LM!^T`jm8C!=>4M*Sy*Q{OH@>GARaSAJ`fGz`TNA_x|0? z)qAvQ25)Fy8oZ!+IJEWe96YhPdGOeD-&}+!W{Op23sTyn}xaj%~&dUYj@p@`km0ZzP|;Q}6TUpztfFMV_D*!T0xr z1Hk{QFI*lz+_|GIKC&5?avC#9M~AMsJm-?o6E`0l9yU+ZvCR#oV@j{oJXLvuS)90C z>_305cLgT`7KmS_t_&Zg9jMR9`K51x`v;#B2gw_7%d;(JyKQi#e4h^&H)XyzuB#kF zt=hlLn^NoNFL0sY|1c`NLpcg=HO)Nx0gg8ULhMJds)Vqa8iyv#9!8X+q)U;tp`WI-d(M_XMN|zL$iH0<7XB?er zVkQlLLHFNmC>$Z!gWLc{WM-QAHfG&S5q`pKOfe|mVAgc@6=uBQ#B3jaV*i+Hc6iK} zJ~8H+U0iR|oF6vp>~b*83l+a>JaDJA zBTrCMxV}4kd1rU-@`>)kDNj&)*tYv!u}1fUG&kDowvXA-M|6iLeCosQO69BrTb9cV z>{_lC{$h!Noys4FFKD`Jm5;|~oECma{xN^dKX@vzC3O?H89&IMI>uN0kdLX?>=ttr z)MV5t_(iyrnXKykcmX)W>Q8XVSn?@Wfph99u&(6G@?G`{j-f}-I>uT3OVpup_37=? zx|cH?&`jA^U-)-@N1D-WhNf#@ok4x^ydP}1xtj6;vz^WPgg=|ZIZw>h;Un0WS$hwq zdIOunp2#oQ6c~qDDsl*MDw`%|{j9e{nj>j`q`I^i7>;GWvD&jamS)7j+UIC@Nj+`i zO0xju2ix^$Nm}~m0^=E}JE%+3Ll$$=k)|aI*LQ8h{Berl0CEJ{RD1?IkH-Rk)~5kW z&`SuLR^NmX!>wTzas>XEeNl5%yO6W-L!Os|$SLUa=#|7rrlSq(GxL!yDXhed0{wRS z@O}~TGakURQBUxD&y3mECpR;uIo<56`8b^i($3pGFIa3qT z8_o8@XY{992R7&2`NnI4^?09ish2|@z|W|8dp!FX{T#l}W3EN7RbP-ph)=T5@=mXV zHCZF-3h*gdmAbdSXq0_SwbC0;8|%D)0T!pk%t z#%vfo&AKyP;;k%DEYewhBJ9X)LHtLxP4mUfM4Kn(Z<)QOmZ1Lm+w%EjkL3<~$1E7L zFJVS(C(H=H((L;Asx=e-zj)LD@PKBiRxKt8ZYGSp6B{f^eH8`-J6bV#LO4M-Gh8yx zBMC^T~*lLflmlJ;;dF+u-<2T;os=H>+mT zz-|5%Hu&&r|6=!Q_ry=a5B(7taoAY)HQs+l)Us~~Uto+2GM^37f)> z;1}W*>IH>U(@cR&!I*-{+gpjN^Y~%+O}* z)e7Wr7l)rXC(e)A+Wf$#feWfh$Qk5^4}^A@x!1*!rBrYsOtRGknoFpST2az!#fU`om+EwHdKu5;KGzidhQyar)W$1~_NN zk8o4vzG^bCBRw`^bMZF36t4#+#9p)iFdOUMIc0m{H~avIk_PLEoBl zEw6MAoqy*TPl4U`9{xg|f-M&VsAGr+Y(Aeav5v$B{uW2r2ONZ)m*|<0pU7oB&WDNJ ze3sADM_~=BS=kqOlbk`%usQCoaXN7FR=vLPCp=mFS+xdS_DwtYBu#&_)$WLTgBk;_ zKVOk~rs~jm{>v82bj+nSGf@5cl8HF{@awOFpJaxnnT>F7^P$-xKH{>dEwj0|M*W%n zWrxMw?3udr^>P31z>~z|*{-v-`21|S`)oYS2&UvU`~Z9k2BnVev;P(tmif~@iyibF zyKgq;edQDhyW&HhET>ENVOjXAW`)@gxd31GTHsi|$9GN^SUw*yRro6VVTLn2%RcaV zUT2=OTeF^j6#hrN&hO<~IDfWn)Ht>ad%s86dz>n;W((n_zs`T zr^#FRi=$)C89eOF@IUG%KdpY5>dtUHJl-h-JNm3RKh=QrS3Fr9*LkiuDb01eBly63 z6dNawnK^Z4+~s*cVh5aS^LfnaQAdSQvR86w{nV~0`2rnfI>+j>`f*PBX{!i_yK%2gbhI^rGSWsPWR;@cU;D3>xl4v)M7B|DWga>JebKqb2QuLzg*r}c)(w&NF=2fbnahjz<)uU7764m0dZ{b0q&4OWQP{4#ui+7VxV zZ1^GhH2w5y1+XON#yP?zV#{HDt^@p3y~jAo z^da<^z++*HutB}a?5$W`U##BX%um+;iw8>6UQe=E4F0GVpm!Nh0lup~fUlr`R)32g zW0m3yM?kLTf;Vm2GA+41F{FfXCc=9yb-Xgo~tK z4mb7e$S2@Sdgat5UhQ-{Uj)un#2jPu$IL0#f3Qw)RyQuz>}(x9UYp0f$vks%_pmp5 zzAgx!(ycK+)(pmA@pL9FuSvXBIFEV+oJdY_bYMs4Mm^%9vfsHhL`-mL*k$*}#$z7$ z{3U@yvH5I#u33NeL*K$QVSmNxcscB_y0cod7@BRCPsml+ay%z>2b=tay&oQPEafTu zjT*Pl_4mZ{E%BS=EgJ_92%i7DYMYcZs7tF|_->!oi#$YM1Z*kSLHHH9%~DlNa1Y-g z2Y~Yx{;Tg~K@pa3Ox{<;Y8(4UEfukDV1*9L#N(s5NgA*c~iy zWaI&`F*TuQ0{c6p7~N4vGH+BasAuo$&L>0Eoy7q1MYG{9?!1@$fL=+xDb}m_Lfj&+ zmAm3XXKjA^M(|MAm6>3)8_ZpC9hz^bzldM3nVlu)*9!&%pEIuI&!cXL-zxS~k3J~y zjgtcFV87KzFN*r2$2Mr{c7f*olwatFJ3BD)6cf zV&Pv0N8c?Up>E0E`7XG-&o_7TzGjKU-~6~)C*jw)@%E1|qn%_9v$EC6!}^q#A0s@JGt=!<{_>Bq*6fidHq=KgKxxo?rg%V#s&n~b}Vq`tlv^;RE=sxY;{yEuBdE6)QJD(0e zC}(i2)#71G?Cp`wwCVWl)C}#z_8mVpU&q&M?T5l{tLL8)Jt#*7)}yw=ckdMOy$wfL z--G+R)d!~MU{g2*HaP%X@vzwBBt8cRK_7}-h0p&_{YcvlpP=^zZ^1dWAI>Qrw0+cf z_-Ocr51Z&LZ@2F2pHuTPKkb@WXSA>ASi%3+ir(|+ic58R+9Eg;IIH>)<$mhVcuLl= z9)J2GusZm^TmpYpjX>Q1e-!ouyXW8K5_CA=MB;Thg$)iXc6aTl8SyD{LiwOt9zKF= zi$)y`S3ZeDB(}#d#a(va>v2szC%?=+cHSdDkpu7pIMTE=U`Kh@0c|z@i%yCAe3m>x zuL3_~juuQwj~#7^xjGjoUtrcEO$auCU)Z|yV44l4FV9?DGrz`$tzbLMLxwl#KZY;q zliE4BNry*2vz}$WX?mdD>O*tic3bqQiBsP$&Pp65yd;)38SW96t9 zu*a|=cHJyvn>ZY=mF-?4dXLp|eWv=t+JRy532eF7>WvWZyJh3YRQn`*KPr0SHVhmI zZ))C%`{ft%j2Wwyi@74Ehe@p$y>nhCXMjuj9JjxZzB#j%ut%-+0Yh<Sh-k8>_HDj-=o@Nw+9Q>`iznZhUBHT{SAwPIE?3g)bFcJPi5109l>LPj%?E^oRXJM*K>v8iK z{S4e3{U>*|_xF#9JZ{7GnB)WH4R1DUq`cwz=>7A%^&C4!eDwa!6#Y#DcXMp#h+_+j z6U*b4@!2rCm7A{;Zs&RDLd@^nI7hHTT&Ej?H|+f7nbvB}pGSW}5u7nxfyJAT+g~-` zrh2nE)_XRS_SJ;=E&JeBtZ-s8L;u?7pXM9%rOQ3_)2tCZWIVG2qNhO&A{J3U`a1GI zbq956aSOk09;O<;J{7qxUbZ}pzoyeduOsX5(j{|F^p?@=z(rD5rUeV*gWce5z+Bau z;E1p$d4_984ML3$_T-v^C9(T9^(Q!#ngpMrKE=l47vU_(H*lQUbiFZjjo5j372g1J zq@zI(RgU0wSw{mdq_$w=3+OSaGuZS{t2gMk)MF!`5DVh1(*vSYWF8ouBE8${(q>NX z9R6YN@DJu4%OA`a7HjHpgDsg~KO%aV)vMu4`k2jL$7fZ$-Xb_oyA~UD_Ajex2(>L&^ONt}z{st01hs4vSe)UowK>{Y&>;%GdZg910V9Z`Of z>eXu2d<`3@rp;ceapw(&#mDeJaGA{Y$A`stf+g`oaHMm}UaF1DS@e{%u_T`ko z-gb}I`~4e4tw3M%PGRfyv%%w@3Jfh{VDhR%%FmKNn7O<)9aH_`uLrj0R^Q=A;Sb&k zAN@jca`M*?NADXyE~jv=Rtb(;8F``p^*?kTOYsAokq^M35sz4V>RI{LIu^_5(ZZ32 zv(t7`-;=M4&Db&aPk*$SR-8+F0dEAyoXx^3!7njqp1pF7<66>D(394UYo85=`CJe= z#*Puw;-2ysD}-HIBe=0JBKd+|UNzOFnorxGM4e%L{f`uj(%`_$`8NKhyTFFAXD|~n zvUpTns`h}#gX`}(yryG=Ys**ZnU+(iThqnRBLJV#E4NE~W`9h3LI1+&ix8`u>x=s; zcBj8e!w5#jpTIiw>B_6qko z&$Nu>Z1NTJmbVJ6Ky@E_5dMaN@m>4~?Lf9tP36}1p8i4YMTzUF4zXll_WDxz>W$iC z({EfR9(OMIN%_Y0k#DfidxY(F>>MK+B5K<3I`?xQ%W8oEIT!Ob@3iy8CKpg^!cX8s z4*L8Qyq=g z7M}rg(s!=jhKGS`gnOheoHzPT>c;RWxrTr82>wCcNX##1VC&g&_&z_N?@a$0911?= zc|3Bs5iBWd&C%9#UBZF%OS-RL20lbTNe*B>q?z_~?B)(^NUxeYqW(2KHtfFHj`Zd9 z-ek=YofR9!Onys@C7{#X4caQ8VH{2l%YYSpMkazZ3R8F^p<`X z{crjk4vKzgI!V_=otoVlSDcypplJi?Wl--_d%$HJe}hwFvjs1k_c%MvWEz!uG;e;8gqu-Yh$-#>^k!6tTbR&T0&JvYyA8 zIz4RlN#S2k2;1wH?Phb;EYw7NukW-kd=4y!FH%48-psRN(>-Rt_y&*LPkbT%#^&{E zFZR_fJ`~^K^L&?Di2O)hTTX@B`}q%b3^nx$!N-Ml!Mt#F`7OTzwxsrtzlDPZSDGXI zEZ&tK5`OjAs6+T|euw?wd!`RAfm*~q#ipHk5~*^h(Bn)Sl411{Xj4%JUX$jT%CR>O$~O9jWY|_ty%Ik=Wt^2NcAJ@XVs(3 zCW#C6F258tM|R zC%=$esAJG>lAq8``X+LZys4kdJ;b=PMEamD%-w!=keY>>m@T1srHlGHp+`}wPz1jMl`2^fB zI#uRn()FXubZPWC(0TP5voUdU_l>!ka25CYWq!i8P1r@4i@Fd^J$_6LS8nu3_&ECo zyT^x>Yw#oL*;}6FuE+1f zh}48|r#!BQ{?e!=IIes$>`Sf4xwpyh{QdXv4KPWcFMm)o!N+pU^>EA{$6c@cdhJoE zx8sPYBhk;0tLkOMWr7omPvlzq18wpPH6^i(XZ82aNvg&GbGI;`GTGZ`GT7CNRsUx%7DTulCAqX5%d_Y%2twIa}U((BKt>QT3^(kki6{KE<=OnKdSE*sc z)%6eQ+oI12e}_k9U05?0V8SqTbwu$u`>A(}Hs9(|2asFP020&wEMi2lB3$H-X3=DS z^gF{KU=uJTm;^gyTR&5)nv}Wdnk=wubnzd3*o_*D4C$7cm;xpJ@e(|X2&xT>) z7QwOP9C~_Ta&m!DkrS}%@&mkKoLe^j|2Vt%nC-UiuIumK1&v09AR-=s1Pe`2K@_0{ z4}TD8VhsrbD$pnp0g0xRphi4EDiV(vBVdXVL6D+CC>{tUatcZXB@m2M4T1tf42TGZ z1bE-wxIWkQeEaj<26o`{7o9y4#`o>Q`2LMuChMCUa|pKC8mIL98`qwMJNJCsXm7$D zBFdTnSAFsg51R4GH+}MZ9yY|?>+Z@`&c-wLeaz*2PwhMcd+ZJ|d)(%E&SKcVa38Vn zLhUiNuVkF$TLr(};$B1FH#lSPjh6*+27x^>?{E)>y^YQv+0St1$oJ9C$o9Rp^U?Mf z>^E2o_PrZBVvNRSSXZ)!Wb9_|+g`KZUvQtaZ=LNexZBUSZ$J5?-~RZX!J3hKFn-QQ zzwdMZ+O>9M{iykab);YW(f{)~ceUDwHg|9jo;y$f=8wPsM_=~wmwn_rIqMK#e(gzn z+&k(%CHBFZl5ghpFTR`8*El2jwb#7DJ*@6){q@%#^>4WLBYxY}C;jeguiBj&);^r6 zu^z6!`ZFK@l8@ZK^k=WfUN#>3pTF$N=f3FcKD8F*8w=lD|25Zm*>_#O!S+qIbGFv6 ze53v6KK^A7oqytrhmHC}*WAXPLhgK`*Sd?i#fw&2%z?=MsgHm0N1uHBD;{@E_#T2? zW8Xf$zLD^qgmg*o|96EK7a4Z$ORxQ5b0c=nw;vw!C4IF0fyVg8_s;(s`}?kgjba;G zM>8+5wq|dEJu=r|%ka^ySN*gv`XdjV?XZSsj$xm}9=Nkl9{cn5GLYIJ(>Qt1i9l@89r6zwV>ob?qVjoNK@0$9()1ANfYo9kJ>!VK| z?ajQ_*$Cg*be6&yPIm{mbIA8&&fXbU`BulbJia;o%dTB-=YX6k@!okC&G(Ie^@I8& z-@5+PtMB&j^B8VBaJ7mJs5x5Z+4!aZLofAPug0!J3hbu^S|_yU-bE3@c72! zYcKe3eg5Y?_PGC*&;RR>v;Fo{owIkppYQd2U+3G4?{wYw<2yckuI}|Q7ikaG{XYNa zHFt5=#yu0hslaDL+%N0AuJsh_UTn@kd9A_x%xg{EIy!su4PW@%zxfY*;fFnJoo~AI zY4+~f4!lN%pF(>DhmEm#Xu{e%rxb zh;=JvYyZ`^5z5*bJb-hlWaO9M z`rX%D<-+b*1N;7;{4xZ?ZW*SR(8fo$V<{^mdZxMRz?gn#7Snw|NXGtTC6?k8t6>@ztl zX0O|M1Z8Xf?2cRWj_xLR&xzk#@w8I70yh# z+r}9s=TYrZxa;Bz*RI5Oz3#&M?w2jFru0Lu-!?GUH|KZvfxTwu58>twKk1|Y_F)_B zH=8H?+wazs*aP!~UvsT1Sx<0A$((_G@VLXeJ2d{lM}NuVI|%ov+Iw(*$v(ApCwF{* z&udO$AL4s`{Cz+ATduupYf$d|Hoss){{Cw%%HG5ezHE#&41LL8{qYw+zR{-3Ia&TM z{`hZw$QZ9W2jx7J?|Ah`{6F^Un|ycSPHy(febax>)i==#e#N!-LB_Xx_RhcR8vp)F z*L>zW?fE!I#b$ZX?2WKv<~(GLl|Ag6IS@JD|1}T#b=SSH>>FrKv+>?PZ0Fz?ZSTbI(;|G{_PhWOsY z9=q=<^!?xU+V6JO%9@jPC~I5#b8-0Y(44{=lDUh0Z2R0_@$J6yu@`Ue-1#ee_4YlS z1F*Ix{=e<|rqFkVKk%|!_JDj>Xs-4XFTK*5jPC~9>+o%)GH{2V@qjvW7vrzL_O0w? zm~S|%XaB5ywC?z_x9u@UWr-tQYCW-2v;|?0<0e`R?Si-ej%H8k6t$e#hs3 z%_r>0PrS}#{*cfA_{SZv-~RJI^l=BQJLudM_(QL6z<=Czx3@dNJ^$Esh75L{K>C<>^r-^#F$^7X6@()Uwh#CZF2*22>Y^rW5T!K_R-zJ z!G?g__p=f1?6$wIzjJ@7eI@(2?20=koUd}u$L}(zFTa`Lekb!neB)^HzAdnyVh?^F zzxTl=8F!0^9WpMkro+ZLgKBTZzJT=}dHC{ceq&9@9*TVakx#zqv8Q7W!Xx!-#2ahWf$1@6_*PV9HFGuEM$qxSO8U3SA6Z1W)Y%09RIwyaMHZ?3^s{Wq8G zaz4tpB-Z78<72*MtCH6egjb6%sDzQ<&G}r+U#>EPi6VTubGB> zYK)!ijk|lpy&LA^&Xv1skNt4(l6zsTO&NbVtK|Cy=VGlb8LRmn9D54R9+@Zn3)fol z*IajI_`b;<3BF@+meIFw-*l}TxlhM8Z`O|V^ZIwcMPPp5UOj6J|Ma`Q((f*q3m8BC z%&SjzZq-~tKTsd8PyXtwueBH9F1}y*@jvyLH|$v^-$neQkH6}{^PPmVulj0t_|Zp~ z^EB*=@3ifANY{7$_)8w=X{~K}&^*?=q}^WmpS!;El_%e6{Lag^xii+j`hR}SiP%8) z?>Aq2ukvq<+r3eK)4@GbY@su}WISx8Fu(4yo%U>h`xVX}y|QC3eIua!?AMFiz2ojA zaep0K#|D1M$KUT!ra$012W*V(EU@oHx}!vSDO11a;GPoSqFa;umDjm1Ht4rp_J<8} zHkIA6HfImtc;CFleHcIXT32HaJl4+iw*2T;@*dPxXI?NHQ;aMv) zKWX2@zKb<6=Zx7aHb=bH1)WE8m%6rLPGP;#*uWS;zMXM1Zt!~$&MdIU?5}l5b#2Z` z?ti<=(m2NV6vjf%ci7u==HGqP)^dHjYJTk-BIo+p7nJqMvh@xA}-YA?r~3GUMXC z-`aUwXQ}l2)&%wU|Hsw$TcZcfQH-0NxpHr~Zw1}=;P(fe|M7cNaQ70q|H0aeJEQc8 z&Tsj)(itN68tE@Rbg5t8{#m0$vo7i0M>a{H`u(m`sQOqoNt(=`%suVd|D)F$k$rjd z8jtaXHeyXq-~FSneQJ9SaPuF1yKh~T$Dg>)r}^%j{V}KTn-K0Pai)Teuvg<78Rh5x zCU(O7h@J4e5p?-h#`o*atT~f_ZXV@anYo`ii9I3bH_ZR+kDG_EpXPObTgv@T&XD_! zRQD73omAz=cG&B)SMGa#XVBek;Ea@S@SGp9_GAp^+lhV`$Ue8_50` z$r*Qjp#IJ`4d3qLzwt2_@O~TPJ0q`;Hb&RCdDsr)_wHiSpWC1I?)!}Zw!rV$=r{Cj z){%bW$6xbU-*yJpc}jhvwJ80h-{mncu*R*=V0(<)*^Qrl*%|ifr(Sl)oIu}d&R~ww z+{4`u`f2N7`g?u6d5`|zKD+Pv`u&JMd##sw{`j@;?st8@@v;T%rM-D`Dv$k_UwGM4 zXL{L{-*U~P*aW(LPtNwRC-!CN_e9gr`F?=yuugBE*Lh%e<2!!*JsL0yMOj%pi&Yj=3cIA5{_QE+qX9w;1ec>8mIjinodwr4nYxF19Ros7JpVwU& z*4nM_duQ!e+8=gS)i-4BdDa*7-GDQ$_CNpd_5Gf`Q+o^6u$-}R2axq6-;X)_X&&%} z&;JjPJ#OnyzVkIlFjx4s*BMW?!<>T6aIc-;sc`3<`%kTHeaZE08Jgc6a(5KFVr|QP zBW#t&w*!6;hc5FU-v&BI%4V4du_yM_?cw|W&$k0V;YzFXK*_=cg%X+72^IOXMC;0I5T7q%ef)nit7t~o9?@2d%)K4jT7*M z@y&v}@$7jycjS8#wuBvFYx)MoZ~6I#@Q++;Z~9}l(EYo=_&RUwJb-mGdpOQgbOy}+ zkF$5|jqlNYTcQ0p7v*6Cv?*tc*&&a6Sia9S=ka@c_Qcr=;n)Z|%<-(hIhWu*UGpU0 z>YHzf+izt#ujc+^dmz>g&G(eCdm#I+MjKbgU-`~5-MjS5KKf&yGj=xK_Pb~LJ?EPA zulB6}!ZmLG_Lohu&ZPhIdp*X??2ECZJ#6DY@@eg|RrS1u5tMnUegL#9vjML41+zTaL(r8`GoWVZIue$pFUwN&c$%pTNee37j zUv@zLd=G4Y-uWEAZR1?8y&7k`Jj#MS_1mQSC*@=B-#3KLfLXtDFNtqPl$kxAAAi|i z=K!qrIUhjJkG=fnb?&or7T{m}==VPMet!PDvjEol%x`>SqO93C_K01A``teC8g|b- z=YPGvLorV>Z}HuNwLE3ZhO)EnT4ih57dV=Eo^>-e*P5BRn?9S(HqYa4j`;6i^E>w~ zI)}#2uoM6L_54ql-Ekk2e&3u&9PAkTPB+_6mosd?>5{Y7HF1m{qE-{)QseVMVRH7$F#><4>cT=+j;YYEn+ z{T`6L&Cd2%k8nQ8c^Th<|G_VO`C|<4n_lNY?K9YO@LLJa%{u4*7p^l`<_Y?8^AO*H z`_|jH$i5Tsm?N~0{Z*tbi*&t^{%|X};YcSUA?Vnp~k$>M% z7)M*r`BT^4wL4+;iN4XcHt$TXyJPKPSX(l$F!!)FrGGY8(08*Jek;^Ha_&8{hwHa% z*avqYITPegJa)hxrS3!WI6La@AzwCIlVmS^=WNfH{je6pX83(kk2@4S#tgo7a~AvG zyQGc3-EU_MVO*{qn2WG!%~y=wzsq%Y$(agkLB5H%4{hDe+MIPdd9`NeVI%EdyF0)h zn)Nbg&73WBCW$&sQp0+de z?1lB`_9OnztFQ08lQE(_O=CuL2>pa{q%|#mHlzIteTRpAG1fNjW^?o-bo++e-i5xB zosb5$!o0!b?kM)mSzUdq-=^@LpMKVQk-kR1Y@Di(wjc9#SN?wa)&DrhWiDZTjy2xgU$Jom%U&!{9ZLX^p9VALc0#=w-l7G?-4!jMf7xr z!0)rMZNKO$fA++>m-L&*$fLfrJt1Y!cCy>b#=OuR#`n^G7nV(DSFGK!-OAdUk2OBF z!(HqiID4W$cV91=&NXFg%n8^N>xS0E{C<%6qw`SCBY1oxNrnw-ALwVj(`$doT*4eQ zoITSXv=g?^m_z#i&{ePOrF&R{bB_P}x;MsmLC*d8 zcE~=6duOcK`sP(XV=c?r)Hv08uit&KW@Q}e8!7LbahZO?I=pvSA85bTyu+Ev|K(ca z)?ZrBGUu@G$#z)BvFGg0INxwNf9V{Kvp0TAvv2e4uRAmA`#s+a=*NAp;htIc#J$zN z>2ME-`2ZQ`ZLK}I@4|e64X`KfTXORjd*iMm5@%DL0X9K#tQ=ZBmPuoh0EZk*6QDPNkfU?cGVDAJjM7(_q7W$EGg)=ACsX^8$B&nJ@U} z+5JiC%|5VsihFjA1I%04Bln+Jr_rBUvtbLYTd`Z$uVX*fx2$uS^Y~42a%=_}>9B^S zk2aRDrrCZyTWEeNANEoFCYE(BeZ0q>gL#U*efb2*@9*mV$Jbt)eHVM)zKLNc=(T?5 zt`zHfe(Rl`vhOYJ_P(vNx!c8e_{JYnlhWEy|Pv-3A8o&4Ax+kP_wB9wpAL_1GzYEHS*dPC4*Lhmw zZSQ6MpMFw*`mcWUKR@p6(ckLZd}m>d?|vWa`oHbkConFwXJFi{&$H&`Y3+vnF>bbw z{aP2jnW<6x**$T z{mVBi%1+-Y|H@4nv4w1+wL|+O=2~n6o8h;w{XXb-cxOxa*%j+{f88~HH%~JM?3{r) zo%Jtg4YJuFzj>fJpg!I2kFq1y5BZG&%n{6QJm!eT0M;eVKiv1k*02rM5rsE)a8Ay6 zg8gz9!DEbJ9{GK)vvlT=@*!{Rz4Bn!)e)Pj-F@}7FRm@J%f1Qs`)huK(>V`qTzl^h zynchl?{+zh?pr4Nf5xPKhuOV%<`?=3{gX8lV>owSc<1$P#(~b2I^SY#+1~jdz4}Ps z$~kZ3HwOOY>)eeqp1wQ#vQK{IV_(2s;_k)MAAj9-SA;by_v2Xuaz@uTXTCvm&yX{> zzUi}n%`W(@RcCM64Shd5;hQry#2rQ7?UM0*v-KtN-|PCe{QF*KcmM8d9gGd~8{Xy( z;&f-CwI<&qXAA6M{ORl5C>!Q1sozd;PRJg)Z{ppZ?FFO2wwB@y zleH5z!J3J+DBp8fi_-t;KlPdVSvJ8O!+MD^v3}1S!?<35XP%+2*YC64#{K3T>d0D^ z`;yEDK=Tm4}0zpZ6@tpC_U@co3mIoITO=(Hhw^K6XAUJjah7TY77If8R$^!g1Ew#l7d z%ElQ0Hq5y{zg;W6_Ii|$d%5IC-u%AZ&%b66eqUn0)9{<9=49@O|M+tsJ?;rHpRjk~ zJ#bH8_s-hu^Ie~NJihj_9-XCSEBaR3@7u1euqNzxv;U@#e(C4j4emQVcEfkszMbl9 zm3fGw}H) z#l=>A)wRCkH&31CvfiWbFuu3`V@-%{^Sy}2`7ixS>qKmy?+l$8_RXQQ0KPwTj@UT$ zORw({J-$n{2GyesoHte;-}haapjoRTt9<-sGhOh)<9nR@VS`)O@?DE`NaK&Y)>fon zUN%4I)?GaE_*1TRFK399t$B{VQ<-ggv&IJ5QBKl$3nw;{&yUvaGg zefhO-(03yC5a8}4@*B&}aQ(H{xZfUw??%i6JmxXJ8vxk>ce!?FqHhkq^EKb`9lLM+ ztTj19YA=S35a$p7^-MIU;il-%_}P#W#7* z5m>jkHgBEYog>b}+TTzn_Beb4u8e$#;0&)d8G8iw3asN;k7r|y}08 zzw2RtK;Pf!gZ10&y*}L@uzAXNxcXveQuW0iclPO@@$9?nv+d98>y72>_d$LSzBMT4 zhUpg0UdQUt|N9n*J#crUbb7Q8=l0kU_NDogbXZGbADTOv?>IxoUa?{JAN&TDHL}0& zYIo*S?({PMW%t-WYpd+1wKaD{T5~mj_M6jw6T&^=owNP+*WAK6DPtyg$ZGfQk@78{ z{cra}*~hRC?rvK9fb56&#rNO;_4V$UYnZ!xm+Wo0@5$cA=dTls<{Zw!Teo6Q%s;-< zbswPLCd#(xL#^>!+xMNf`G_@s{jvVA$M0Huyw_|Fy1tv=W6j@VJ%>Hg@7ITB576}c z!iq=VtZx^;zFr#8*Z{UbI`qr-BG?0cIC=fHzTTtn*T*;mz&^5-`Wto={GK2Ek_Z01 zF8q66HWak>A^*+}=$Al`a*EzvH^u)jE1>=)dXOJ+X%F_r~nq zS|@N1kTo%P#~CLZ4_iyHuHsyzbrxev_nlaGFwQgwvKC`p?i{MIu>M7V{}P#NU{mOsc`nlU5CyX*}wIzp!tY(D)TkA1kLv`&Li17 zCJWjNK_|oZ+6Q)Tp>wAmxbsSMIX6p|U2={|Sl=7c;~owVz4nitH*%MjZ|C-rR`$#u zwtHoKhiH%4H;VR|?PI_GB(iO zG<(O!uyO30Ifk`2_Xw+3zZbPO!#u;;pMBU_VE@wAbUlHTMr|yT0lB_-f1Aw0({4DAfMlOY97;J#ps{y*KV2bgy~8zwPcR z_QkvAz4RXXzQa8v*0tChci{Rx-R}2s?~iXk{HB&~$$hKqE?akzIHRR+V2jLY+?A^j z@pR{u`=)&3Ywyx`BYS6wJE-(O?kwzae+jxhdv}|-Z}*EX`=*a#=Zq^o?%?(P@IGu| ze*Kxf9C1sReofzH{w3X@z75U3&maHX*F4t9$$I2TpC^ChyXV(kz8?KvxUz80nT&ps zJSYwj&qJQ9JG!hJvgICr-{RwwONa3M!qm@p&ljlQ^*BpJPiKmZ6MQ>u%;1}9-#O@; zy9dB{LY@AG>#_gk+(dUesdx3S9cT~kw$w(f1^HgoI;ii0{Jx2E-hPMktFL))k8zCq zmYriVuCd={&B)ya`flyiU4vh8wP52RcN}QPfBiKJ@H;BLRdtqD-~Ao0F_YhU_j_M{ z>%}#aFumgNyQBDM_H3o6J4L0__qX5f-F*(ewUQtCl0W%nqddyNnu5nZ ze!qLerm=4xw$5)2fNY;~gnOJ71JOMAew%=uG}iQ61Iixc*H4fWPT!#}y603~s1uKL z`F*6)hNh16J@WHKSKiFqtc@sZW&8)OlClSD4D7d-t)JMhHZJxX4s5KwX={eggSr>P zn!Mj}a@N**4Et*T$r?>(7u>nzEGc{Yqplv)@3&dww-4OjCuQgL|Mp0%gPAuN3wX>Q?3qccZz+rw z{MMtjQuA7SG4^D9*KMuN_`+J8xrH%@vSBBjNjBF|Ue>67$yKV#&%QUi;oO<~3YD*U zh&iJOH}J-M?iljuGn@(dx1_}i|(#ScHOr(#?_6n z%_TkVlkABHE?+p|oyRs_r!(l=IFI`)-OFLElP$21Z0*xH!|&wCn>)^o-{sp{k2^Ds z_5cQ$Ob%j&Ys%o%8wc-o2C3ncea3={M!Ud$YEOUD1Y>h4G)gN^RFTkbTs4 z*QV&pwNrM3&Cu6ts~+F^vJ0MVx8_#bt#5!mCvIFxM*DUj3wz?BgHF1|lRXkQJI{uB zygS($_C$TNCF-0#Sz9k}9`;^-{jsM?KwEHAlJ{Kw>qnGT{g3ifj>?k_(%R-H{`WAC+ zcR71+{RR@)!|(obeUH6A?|1ijd5p?}af7@x5pY>)S8+k|n6`eGOL z6Y5jF>L=7WJL-KkPO+}%{nc0O!Vw0d`Td?7#HD`OLR^q%QEtIHi{>R&y| zO1XJ|d#AGjosm@Tp6r1-RxewB>Z>|aZ}~y>xzAb0^wcJ_kGs0o?`U_8+thP)tbOWV zm5)vQ9xiy41(2 zyR{+C0qT>DSO39lRHmOcZgq!_Z(8-^#;?Y8`gUViV?F)7F{^ce#;w^9_8}X>j(Du` zhJ*3hlWa{zO|GxjFMD>}ZePyYsxi4avvIn$eDi4YY4d9H>wTQbH}Cen zU1wyRnQ<40^$BNTIwxbTqVq9$9%pQvCozZL$KHW84)c1toi`DWJ#Ojny|MEr&GV(x z{KA|<9-5c1IoYP{i83*#F}Gpg*gWN^k5c~XBD4jPM@%vfJWh|Mc z&LyNx{i}OvuHMU&Jht{J?{{@>uG;>gGSki*gEU`dSCzT4R|g*NhB|3n!bUVU(I$+$ zs$aH&T`*4Zo;8mL*KXi@jAouAnva-~$Ji!XbnooaqDOm<)IU95XODVt9?IYS<7ca~ zSH_Y(`U&HY9oIL$V$aUUm}}Q;8h4q4=zom$gKV0$^dQ^T8X;TM{NDJid4O?JwkCUH zF2u%|4>U$I-ty=Zjls+d8lPon^qb~f>`mWMH3u{g+_|8Bx4GcjpXLS4_1Gd$YfHPH zWKGGVUuUO0i{~#)Yf{ZGc1|f?w(qnH=C165v^TeWHNR|}s(hMTvdPL&SvJR1&dR)T zs=0`9GrMBEq0Sn!R?q6)*jszhMvQ;7CF3FOkgE;Wo_j~u9(k9%Q~E=XahU$s`{rq0 zQ$OjQY>w0W+CG!_7{31PPwQ8`>&f+w(=V=`;_ltgCP<_HTe|h-*@A39@4P&EHqYVP zH=ud;9k0CfE1q+4O9V@w`W$ukZJ;Kh~6b@Yp7D?9@3{$WO0F z9PFC-q``PWn%KYAI@t|2lC5MnJjOV!bsGD4*jD2PWniwQTpBwlFJ+hAP@c6*_P9TFV}zf z=+EoZ3lmH}J^bkxcXJ(SVl$+-#~9Uf+L!g?vqjmXVByjMrnfQ?Ur%KsJzFN_Be-d= zOe!~Juy#y;xc00$RW{B1sdb0eDXsPBYpoBgO>4bDAKf}vIOt*L;;qeN_jdhIUyr}x z*-3FUC)4+5OF?tCeWcAC!_!)ZbrWfq2Wxfm#AeHDs%Oqj!qk){d*_8 z8~V@sueAaCWskngJGSHG`gUWu`m)B#VEvjkr=G@t{Q5jkykPX+bGqpFi0iZ?($xFk zJVKh;5Pd=YK{i95pwHHKXCvwp*i80w$7-!F?7Q%)z1P;kp57DhRywK+x{U=vkABG0 z8nJXplk{bO*50t)W+p5{C| z@7a0bu2t&$@zA1!!kSAopD>qT6U4GVCzEp8~+Jczn6}M z#`>L|$$r$gW+UoP>uc9WXw&r**}>XpZBo0;UN(mT(Li#|b(Gbk(5`>V&!2X@>v(6G z*6xb~?4i3jEA#AgWiS2NXm!y0SU%-jS*$&&ob{plQe$t=+7NwhcBHX-_QYCq{k6VZ zUta%Szg|DzdN=<*%?S!iE<3;mc(MWPK(;_yvIpjFY@Vk%g#7G!q`Yb~+KDny9&EC5 zs{WOw`d8NKvU+SRykp+x5Bi|S?E2uf7xh2J{jITNJL=2z>z?e!o$b(9u^+wP*^+EX z5Iq|rO#Q&xsNxfU^O4pbq`iJYzFM0$u5a$qI+U`|N9dbt*T$4NWtT0{ervbAU)t}s z;l^LtjO|aBmR$A(q$j=m-ip`LdsLlDTTkirK6*!cPvy%akNU&rTa6W(J7$B<`3}3R z-&MBSfwHd7!L5_(K6}6Z@Wu%0_^kixxiLcZx_y5(pmBmWE6vrhd4o2seyii`fHK(n zHg;0yl~;Y4a`x`13-z-7Q8qyzlwI&XdN1|+-qr1Q^f?~y`1U*XJ?*FIgFN*W^+)`R z^OF7S)$}sIko2_94t5?vYz1C){1sF$9(B}{eYk^Uq8GNh6~FWtvs919Gt%DJLVdEi@>+fB zchq6^ch;S9RuA4mQh^;3yo;7}KENNWX*b<%W zp0z4$<4v&r-o~H&jYF;37>9N)>l}~jyRu9As`@#7;Aw}HgYu|<(l*aFsXcDrqz&qi z>XRCCDSQ2UwkWvvKpma$UGH8{IF3H9elJ_0ZhNvB-jUuH?`!?4cdPf%`zL?$dX6C) zM`S~?AGL|v!;THMU8oCn(t4VYZ(D>wWf)x6ZGhHU`^6nPv}^ zb>*%t?1LUJ*f`{b_;jhWY(;e@4W4X&^NzI}clB0TfQ@OZH}8Nltp8E=`n|@cjZ3{# z?23McZD~Az*PrN9yr<0xc1-F$?r98~U*7}YKBzt(z5cy$^w!sB+rY-D#>hSTe~bttucB^A`t6V(nXm($@*59bh>Y=((SM@PF4%N5p`bhnYzO;Es z>s9)dvybs!*C&HL`kNiIHg-izrf~HS^k=8)D>hE)kf!?j_6DT6bQ^nS2j#0rUz!c5 zKT!_#G4Oqql}CS5pHp8Q4NPWvaOIvH|MJt_936}X@^9L*@6G$O2j#7~WM!Z)t^U}C zY()KS^|^JaoRxWX5mZOjWpL}S`b-|o_Eet>H%{}M(j>jv@2yvPt4_1$^oUK-a&GO0qLoJ#T#Bd*S^8tU1_YY zduR4NtKS3H_9(;ZRzIn3vxUk$8(AH-meAa!@k6#JI}~h8f7+w`;3;!QtM4ydVZg>N zr2%Xl0PZ?QV*!xOIL8FF-|R40J6o7dQFgi7oH9P!+3By2g6gXGw7wVI_6Xm17`}eG zs`JI8Y4fF{_hQE{_}d4Rui8uPB&a-g?83k8r+#9~Qkz;oymx!w`P!TI2d}PP!P;f@ zxpH_t>CIpJmWK0@w(?Nj%kS2`vZ#DOE?D_(KUDdH^}E$iZQ+E~arLbo>=S?Me09)Y zT-ydVEv2#cP&+6;&s;wL%kw^{wFzZYnSp2B*2k-dySnZDY+T#BtDo8V3V$@RI}TL$ z^r&O;RM*vgardsXDQmB`9n?OzEmZ$tbsgL~uS}J>I;c+W>M?r_uAMn?{_X$a(UMJ9 z{>Dl9eniJJeGdSEpOATPNyC{q=4x zJnOjk82!Z8f9l|`{fN7EuG1_=fag2cb4V8YxNDaBYt>o zDOi2gmcYAb>v-FmHc;KCgP-2&U%E=qrnx+z$>Y8k&$s0L|C6sQJo{HUp`HA~Z@GpC z*A`VL`+nE{de8HNUMs(sXMvN5%x_+;;R(LM{Li(EQ4j_~-UZ`*zC z5iEZvtvoLM6;8+Llp(ie86G^toc^<3@X>;cqZKDS7j5G#&(Zkr@^-$X)p=0a)&|1U zQyl4DKfJ%v87xoywM{sBF8bMi@s}1ZJXf3>|6O{MD@^haCGY+v6I|Zn_*`=NlgS^H zhj_saTRA2VZu*i%D{l*{yJ+iAcly#*IzZ{my+towr>^M1_{F{Sr4?6kSGWA7D;mf} zFKqND_xV3sG7DD@o__r&JQ!ZT8f0(6gKLY>)}MV^+RCIONDf{ef~A}PeDKiH@hbf4 zI(3|WIx9Ez$D!roEhM*p)%9m>55gu3KV7tqV`=1%e zep~6n2?L5FJ;eu>$I?f*gUs_>;%Y)|+52mj&2dm4s?3Q}uw2RsZ zct*AGj zJn$|25%~I-p8Vp42kGEe|ATP-D~{72z4!}DE?P42z}g6$iN7mJGI#t_F8Pfkd|_!`ny|U}=>v-k>@QrnXz7S{hRdIPI{4wa_|aEx zd5b4Q2Rwgem#+NrPaVsL$4_T4y7$``{(i@Ak=Fu7mne5Q&h3A%@eEJHz^o_T$CoTEtt8a1qbS#v%$^?Dg zDOVhKGHA(%lh4Hi)AOF2)Th&OrYrgAg<9Q<lo^Y??BvTr~pE-N>F{S6!Ra%lQj{35}RG_>=qo|HZ3mQ>{Czw%EwzKPx|<-y~Zru@kX z!=XR1=l}SHOIP${OLGuC{4H3&7$m#>VPVq;ax0%qVe4a)IrTj?yf4qfC(qBVKRkFB zCf=*~;}>@0Da5P|r^o<|xuXy7v9Y3cXFJ8M|7(ZC}AbNQE@^2Wlla4RU zD_(E$87}{Z3lDDID=Tp6Ctlb)m~1?Lf6+nu@A%OczL$JYJ!xlo=0D3ddf~xv+E0Hm zMz4JG2a_wl6N)#tygS|+U)~)aZQ)&9@$u4qm&ZF==?oVB z^cPlKTyf@qQlI~qcjD^q9M7c>ES@`jdGVuxr%PtrI9iT;@8Z6L-o+2u95Vg&?nc}2 z={;rBA3q)S={s&nHkouSEbnN!#iMQB!@=t5#Dz=l4o~m4gYe`_XR;?Oox#G1cV+qS zWYE`bUY5SP-ok~6U-;91((yN3@VYqg7Nsn!7a-zi)22;Pv6R=cVYTAJ$Lx2 zkKTO`iU&;p(iShyWclyfd~$EW(z>vAxwP5@~nc>KZe{2R~mgsom5fvRlSVJS9`u^@o$)@E?*b-y27GJUZa?7SHA}+Vas#M=%OlW2 zZo{4U`qNdsn~t+R@JAD_Fwyb{i-$kF_=3?3bHe1%bMWGfmY)1zw8Eac^Ovu;;Q5Z< z>D;(aJbCo+;!pOZ$B&*|>0ExaAYM4w-{R3uSQ^oDi$_zwr;7)scWLC;zjDb-<6U{j z2a7iwazgxlC-WCy5IubLhvVgvrMLMJ9(wLB9r0FAv=gqr6EFN*@Jx4pkX!$W@he5xiMK4@sbo%e+qG(byGUpfj4o^=^*-)*$h6%KvzPMLW0ExzH43q(KvmJhEywv3WN z3tzbOyKtXHcEjDJ@s5_>4ZCT<7jE61EZVlI$ zm4`FWrSUG#;z}l6!T9{)C-knL{PjPW*T1LKvkjq%v$EOvPrP;?Yvq6OoD=U=?&`N1vgJNmiy zll($5>xZwd6OS)F@uKBlxVkqFcX+g5WmS1rkNK1P5M23FCqKQ(1kbq8#j`G%Gko+- z*M@^9vti-Aukp|KKACKNy6(ayla4!`(Sn;!wDq6)&kw5e{5H~}IG2uq z@}s9`Wl!G9tnTy$@!;Dw!@=<6SN87xD@=OHFMjGtf8m0w`@~P%aOxm`%J8pUN@i(m zR~9GRU-{3!JT(3uI+9x$KN^4Wg(nll58rTT{=n67CtJ9!1GxI(%G>gvocC=q`Px^q zbaSQUjK8=~SojUQGU(Er4Pq+E_5MDik{?-p~ zTnpdlLwfPKbb{Mn=q;|=O!{BxPTxcE{HvT6R%Rz$8ThDqpqt)JPdNC>37b20=Pz&R z%O5=H#TTFc@P+iha>}6gS$X6y%%*#3cQ_h(Fn#b`v=ic=H0dZUc1vPVRil8<-rJTYO8dGLE)o z9W5PiL9(Z=l~32o;YUxFKl+&#{@P99k}rJl6}_?{7yenHFlW5^PhRx$ke^)cj5j(+ zeqpl7#ILr4_{lEq4972ROD`N6Jh${a-YIv6jekOU;7*;V9RE}D`Tvd|t?~vxixck5 z-_n-%A$_HR+^aHJ`o#$f1K0chav;>pqm+npbhr*^~!=__lwgRnjMX>dn{2brNKW$j}KNC(JIsYcaThS;dlOR6DwC62EAkJhZn9e{QDBj z>BY;%C)I*@ekg zmRp}_)ot`wu<*gc@pIAhpS1YGoh}}@dQbYMZEY3$EBmoJ(l7qX@vf|*Z8|IGlecN6X#u(CEsgw|Kd!@$&X$> z@~10!7p}4io-)F2`265qd@D=WTY8IY!=yjn!c*7E!cSM&rB~+3FAP8B*B^c-8!sp> zIGBr9c=Tv@_^WWjq@(ab^z%69{jdA`cC=s7!TYy z@BGn9&nb^D9`Hl%PHxj!_~Occ7jAj0BiS>Zt8?1}J%tZXHz-`=hP9c+bINYK={=z^ z)y3*5Z1Uv7gQZ>j=JGF&7C$&UDt zevpe7{vf`iFPQ&jOJjM-AMf<*Q%`$WSYggT>4*;&{*{j6D-3$c**lGzW%}$S7A#BIu}2fTo4_eyfEbnJpId4RwuvmJL#vc$~}Gj{Y3-Q z7j6B?M++8rd0ILix8<>TWl`98!jzu$# zEhoei4*e~cZm=-XHeC9n@mIeKlZ$rt(d$np7;m9ID1LDH(ZK!|N6Rf9?X%>Stgz`_ ze|pjl?%&ETJ-qO*Ah|P*Xz5*C`Z)3nlX)<&fBZ{Zyl`~XE(-^eP5*|2_g6XP58lz! zSsY}`N8uK}rDNsp@bnf}ag*in@AOB12)+B4e%``|$5T$Zcfr1;?D+8t6Mtd+XzAVf z;(^6=hKrZ%9e;W0i3S$;(!w`A$$^zyH1d@%yl~53oXon?^;uwTm+bbd{Hrq@o#O`! zA6y=sTfK`vxzGR6gQ&#;N9UH$U%FN{Igl&tD?C29HgECbO_r{=ob;%p>aqGd>l*!) zY&`tpdI*nSdg9-u?T$z8E^p$%d!?tiPgpw3;|a;5ZCR|2GyIlO_`>v~t#1Cizq_~! zSKOyedXl?~tN6g4^aYhEm;Uhh#gnd+Ui`_WXXOf88j=y$*5&F-rZDuSr??g-zwt%` z#lF{-hJ)y9Lk0;#5pFe$@&Uh=oc==2Y6c3l&;?clY^klYN7q2di z+p3F&@uL;?jI*?Z$rkqsS2lgYWaVdF^b@8ldSUn%j}I2t9gMF$mcQXwFFf8!&;KD< zTLS4y{=|z1EZ?Q^EnYIg>U4D!K3Z`kyD&YcY<}ra2A=La94*=6Og{R;WTNHYFegq{ z`cH>mn!@vgx$4Ke|H`dQQsN6Q99no`_)j@BvUd)T!viaeJ4j~f{CAEXZh6Ax!qbHg z?>)&Me<9wf8;yHJdi|>`g4@ql?(u|)AH;*_KXH8S8SAIN%Z>(0cMiT`9tv*$CBLk< zXn2*+iRTA7a@wxH{DnQ?@?YV?)YtDjjrNM3Ty=e>W#cMMr8)mwkZf*spEUlJjSp_w ztLu2xJNOp9?Il^T_H@!Zf4Ouxx3u)$!IeAl;w{|C=f86&{Vv=oQ~3o~FIsg1&n3eT zKXt|jlPT<-|E_(U@~5tiV|n2l{){u3V6vNzZNvD>Tl^I-ou376I_S>9O9xuKjX%6F zcaZ)&cPERM&f+_1=+f1b{ONxyd_3u*zx2VmSM=fn@5)BlWZ=2<_fF);4}S~3k~`_? z4|<377jNw)knNq927WFb`JdGH|HWN7Rvyu!znA{j`aX+(`tDqHT^;1F?DH>-SK8=} zMlKtaJqotp6+fNA!uKy;vdc@pxK^fcDy=b|W4aW;FT=K=mUt2oyWS1W;z4;3ZzQtQP_~{A@;+=7?AAY*{!R4nD zt#~RI{w=>0JHMl9je-;UHIDp1$Y*@)>RO6Aesf z@vMLGQ+9db$&`=$Ah&4>&pz>=<5FSh2Dvky<;Abe@xm+rX!-H$tE)RO+AIFbB)j3^ z{=l^{r))Cl&k&#ff6C`ysq&Pr)r6PZ@_{Sw(~(`;`WGj2`U`jJ-Fn^nJ>}DPhL3*c z8GT)8LQ8gWw7(da-qQP7VR03n{|=89EL`%+W6LD^o&45)Wq`I1`uZ0y40yIR@uIIg z{mGTi$1(uMAxHI~~#M3k$ch;lX6m`^uj@c=spVmSg&o zeWiElugZP(uFT@6p8Vpk9h4T3TmRy{x7)6kmcG^TQ26d&={nQBGOzG6ZR9p>h1)p7 zd$)S`PFoQ_dAi`};rzuBE&s`j9>nJg7ao6M`Hc1m_%7_`cX6_Xi@xE*7n0k0Jj1PQ z=?&t2R=hIbG7i7fBOP=n1J+N1xuu2Uk?2V_Sm^lq%WHCAw9<%{JUq8@;U|y(G)2*I#y{cFA-q*7oq`$BW3sZP7`O=fV=o@~+-O&qMJo#6)c!FoX^KU)F zYbRTebW~R9J7M}xdj3t@iLVSi{^I2|-olkzdib{`?47QqrE6jRyZE9nzTx3qLf}>a;ithnGtx|H_1e81f8l}~e)0I}&7VI0(=F{) zxHC-o58^LgymxTZQheEpGr!3$U0lMQZfVj|o7;2=v;J@}`IWh&#SaP#=Qh9V4+nEA zTmFJ~JZ1FOBW(N=U%l|VzgKkWO0(C&C-=t?%dp!n9^$>2u^laE%MC#-)x<`9}S3s!!w;Mv~p7yTFMT%pctF%P;)N=YN%lWLIYK!ht7VdBqE+Gyfet!xpBv z*TS6iQ+IxlE3LsN_4z-YOIy4!D|d%WQw~f0?$oA>ktOG|z*`PvNH{zVVsX;ZbU#mPh`R~Rt=6Z_VF>5o@l zf|XT%aPyMxjjwb>+jKf>zUR&1{niz^WdD>1N%GaD}yJlrJeYxKfPd1S#Wp$ zm0LX7;D$$gD175z;aYeXF4?p{YcnjgVl`oCKWI%G!H?Htxz&m%2TZ*^v3x($w zX2%xMSN6m=o^a5*;_5`(Cq3eL<;s8XLvr|JIe2Xao)a%u{P~~M_y6OgJT<;=Pw74B z#T$L$d(BVmEm=Hq-2E-jd)B*2_U^qyTi%_{WX?3*<$cSGd~WlHcIQ9otAF)`2Upi! z7BOM8Xi$)as~;pJuNg$#fkVX$_WupZ@#KY&3e+8dX_i}jB!zBma>AIu$&L+P)=&U`!@7%V5_|ftQ>Au6! zHr{Y)TDSh{tn}YO@=Gs|Z-w13#h3hD_+;V*UyT{!zsgto@QW8*edioKUb=%DNBHW0 zg`cu37Y|(eiEo`Q{wjR>Ru7u6x!RTfEF2FWjXyk@JAN`j;Z~lX+w}66J}~@DJGorp zlPz2@ez0(_pfs)%j{gjwzj(kqxz&~KEr-Qd7M^_c{C8<8J;~-z_N{m}uHs0~`WMIF zIKoeQ{*6Bzk4tZ9MO%HzXiK%H!raNCamfVHPQ4o^{wqhWx?Y?-|GL#7?s#{y@q%~l z2yf}7BdGtXFC$w#L9`qiw|@AO`ko#?D6U+x^45a}-}+e|zVHjf(aEkK?R1+4yz-x1 zWq`hAQvVHx$1e;RUwC+SV8etj3{Pk2I$?2b+R1S5vi|^;MYM;&yMJdHopJD=>BtXq zh2cNbo^0t#cH!!X{!skxpETapeKLg+*Z#!^H}9M0=+VH+t8nQ_wzMpa7feU~bS#Vq zp7g?lcke)P*N43&v+=;wU7Ycw=TEk{qKoTvbVWP$Mi(lcdg9LdB717zyrt`uD~$_R z7GB&-j|QIf(zr6o1d{=(xGE_ljsd4%sf6b^dVdh{)x_Mz6lH1c?7xa8xn%qg26 zJkt?x)A<&jeDS4k!&DA;kX(P2bN)M+Uc3z(eQ9U-^q+O7&GjDEcB2L32Rr*6j86W1 zwv8-r>F_gs{N*9u8HT=B4)3jWEpK(CbNP#tO$IJ)!SMBO9+plPFNeqF2dmeWTYcdR z&o)5MtMKA0FG2F913X>)J38LFSMidG2bRx;=qE2)?_GHV*a`5@kzk7)86zIlFypRyZw@h#l+l+T5=qgOP#miHl?d^*3a zVc*hCXU|)5cxSw&2QU0iCjH4IuRl3?`Ri+v0rj)dlLMEw_{xNf`_9D=l93mFI@cu= zHAv>rBttuaGC>FSk0D245b$ zu+ftVMkgokp3}eSy2H=7gg>7RxABI*f~A$dyFdKXZMh4xF5XE`ra1BklLt2~;pA2( zy!g`d3X?d;gBshN3S_ ze)U8n7ry-Hc-t<+*9Jx-yRI}vOYSY$I~z>LriZ@MUmVfFoP4c&UYOwOmgcwoc*#7FcmM9n=j3mB-SL)IJa>AlAH1!z>bQ7T?vA$n6VD&q z@Mz-Q2d#&!ynwmQTR7ewj#mDwi3?r58iJA7%v6hFASl3TcOz|XX-Y5C`3w8i6trB}Yn+vYR=!esAYx|7deT=|z@+JbnS zmSh*MKH<1@gT2e>i}Q2IK7G&sXs~_%7hl<>udc;c{!VXvx;E}pmOp;5F!__=-*P(f z$`#Cx1%>4blPnrMfBazdAbKvD{L;zsCznj&!ShK5jJLG(Ep74Q55D4^^wN5UD-9>y z@NfcojB1>0deNPRGhEUf!0rc>MINesXvI zQRJf(LnA_589?J z8MNB^(oWe^CfQ(ld8Xi7*Xh!0!)W2@0i!Q%@%WWVP?_{Z+p`jQ(LW0m4@Y(#f9Z+N zf0kJ?@hYR!U)h45SAAQ2dcwi}mKOf1U)(szu0Q>&H$0gB&11MSfmb$L)@WxvppmB= zo;%C=tcR707mNqeof8MQ`3PT`X!7YV7d_hg;mOArt~8XUXwg5b?&7+uujPfGaO0`| z$du-#p|4wAujpr(ySmsiSUpSMaAYc{WP*3$mshxzJMr>$(oa9Rbe~Xqd+^@EYx}`u zK`wuIFuHJ_=nv$@zrsAFzqQaSe)4A-oc`KPWw`#8-F6`rc){dWCOo}lq6rti^z`7D zFF2R~Rldj+9^}vQmkx0AxcJJ1RV4sU7IeQhD$ogXjVg-brY@$=uM@h(iX zjW@iw*1zwbu<=ek(bEyX^znyp+QX9%u0HQndcmjfy~JDoc=V=Y<5+z8r8WL5SSpGq zKl#O9g%|EauC!EE>CGQMI(^|_X)7MIQzqWR4Of`LfyKLFN>lt~qA%QVclgSl?fZNm z@8UaYn+H7p;^4n?8wQ?#ap9t$IQ^&I!UoTBUR{Mv_72|3q!aZ1 zEzH8=0ZSWL9)l0&@h{#pwfE`WxZwSz>eLY*;`i4tSFqvSo`0J!?-L|70 zb43RmH!c5;Ry!-~%BSa~B^$r7Wd30Btv}l8T>R9vyi-rQqJ#S=GyXf5+#OHZql0Ii zEdAs!PdI)sm##ag4eWbzzCY{V@SBFaxbW#dpVhJ9wk^VQ(NDjytGjf9`hzo`D20ii z-pY{w#MN1H3pf4f>rekeGIVqBS1$fT@c1XpL3-#yE3U=KM-LB1zk_5>M=u(;e}5g zJll5RgTit7gZplrw9}t#^x#wTQ+Mf&SGvxyOOF?=uwcC62;y;-MRfk!WN`cJXeSiz zbm@;?96@wAUAcH4g2{u0FHMDAnO8VjykI((R@h|LkM_!?BYx>D{K-!)7$4lQ@q>4D zDGayy;V;Y`5AAd-50AfiG%$KF9)B*{LcH~dZ*9C83j^N8RelOvO7ky_7mSzg{9y4e4PMwSmt=(5 zww?}#Y{#9>xaOawh zQ>aLG)uAO5Om5*BCSLUQhX+rY=nInpD<}Ld3+4P5`z2w%AJ;ma@nrNPn9r+$Cee8Ypu^uDEIbtZ#% z$|ZjXH(dO0OZdWUS{BEzT;Z?&k~#T>iC=ut^Oxr0KJ^qHJy)B||JJ*dEclk(zLW6! znOCrNTClLe`X_O&!@qOo1225xU6^E-m;NALX^QqLKj`vOzQ~u4QwP19J~-OxR%UtW zOFv%eTe%3q~&;U^Fth#nI02$pzDw zKX~dvKV_4N9$Z

^f5pSbnm6S~y{{<@BnB1@8_H3FK|h4)zb;7@QjXJh<=VzLVz#cuQ?-(!-L&}M+OT6^4v4vr{qQA zmV*P=@|S8-xB_o{F|c02rtr17#?*hDJUh`Ap&MyY)Xs#Ep%6V~;dJqoe zL!KHuIPg6F2+w~#!14076N6I%Hh5{E-nTSRCwpQbmN_n9oA^}TppGENkwI}r?@vt}oC&{<*q@3r7pt+4)2uI05 zeh|oK_;R%o^&Yhq`4yfQ*BV1LI^!=!#`%CBo%?b?#*YMIY4M9%F}qPC@e=pSq0|(} zMy`Vcb=o}w{)b;=8!ribk5BnXxrSP+d`pdspWHtX+p60dOYykaWBuTO$8poX^L6~Fd_%rK$NZ_dS6{>{K0EJwwugJv zp^T~8tXNS#&8Hj^sKs0z+!?GpUU$4zAdWjAz(21JjtE{JyeN21uzm2*Kzw~=@XkQp z}Rm|RR z{C-0B<`Ew%MmubD*tAx(?ReX1tbXbE((&!V+6&fRuuZUc@RHz=;CaErg1?XdKK^JR zzW&naOVgT?F;d4;<5V|R3x9cFexEaY&g@Hq4FmBpPQ5y~HuzVtaCYG|SNTF>(z}9Z zOr9~VDJ;Kq`Dxwv(xsO!wT7Wae{=Bk(bGqt5BSwbj~_kN?d!*LIB0y(RG+JkR~;J% zx_n&lr;pT@rTncQb`@$AL3M+f}Q<^leHVDN}w*Wk6mnZb?0 zqbHA^ygT?yfJf!(9xa~c9^(32 zXKtOYRhU<}RKEMbfSgAJcv4J{(+>-t7Lbo_9~L|%cv+w}$B%71*?97X;K#wnOE;eK zg_uSCQJq*E{F^|Iw?*)*Kn!(sAZ}7$d|hCUJvtDmTt0L8G#15A>b}NYZH0f9e~5=a z7^q*V4azUn>h2zhJ5~yC{$>Gxa8w|!z9kTk;Cr4!XN7Sa<2V zQ(tj-Vr;b>@!<^t?z3Jb=EbXWiZ=vu5PYd7VvPx3h~d--@kiG_)Kb)?aUb5n*XIS+ z3O*k2`Rw)BW$@lP---Kir+e_0^>J~xTFJrK*QEx5+q69-%qhzoG2JW#(s9MFO1@GE?+ zaZ-P>zN2==uc@i2^H?`DcHa!tjKpz#&yxf3+_AwYgRcj8Th0BZ0QWB#FBsn=xL>ev z8O(LObld2*X`TKTLwD?y9AF7 zoV#Lt#rW_*y-6-b_i``u(wOcNsE_bXxasQIt7qR5JT+J|P$Lm1!=1r;v+GS`Q#G7F z29KLOZdyZDH$GtL0aH7+j$(}&C%q*2PO!pwh4B-Emj-VRjt&kB_6Rl#y2u;+EsHE zck=z}W7b`a@ooW*SNl3XcxOO|I|la+emwf|=&iwKfxMdSiSfiu;>q7lemCVHYXG?3 zIPV=;i{b0Z3f}Wm2L`7E?1W#!U)KiW?^gu4M8Jv<@Zvea--8E_9z2bc)Sry)iGiA; z^@9C_Edz_(=At=cZBCs)jr^m*et~@b&aBU08HkbJ7_h;e0{PJ6gC_;*e1`=%_Pl`2 zSYwdu^Br<(a*A=)zU5BhR2;4zVUFUkHwE}fJTFG(&ld(>i&HySD-bWeF|ZCS7U4gw zZR2q9y}IL1mce_q9r=*j&8C5T;03{(1N8?yhr7g0>eA{EINP(Wz01wiJjAP@?#>U$ zQ??AqXMFLyHm(US3e;ad9q79_*c$s=mSM>8`~cn1yEvYH8jJ2Yv*R@PvPLaF!gKgs z&Zu_uqu>{TdNGgfc&N{d>+Lm?uNf!(=l9g>#T)9$xKpix zJSPN;0&(3quLlHT(A|R<2S)|+_)~&YgA)U}{vpAWgO!7CjJ`2l+tfB)SnsFL8z(nT z;}CJP`lq=4_S9#u53UTp6MQugCx0=xH2B}ZnytBo-^5SWo8&Zn9N)QX*8M&j{3KXz zyxe%pfUKVk@cWIyoq@Rihk-Q)HK3bEH&1J5YSi*oag8`dys>|#)}3tmDb8_-FNpZAaTqYk2(Xzk{{1cC5~` zet<)5TKPkuUZrnxzYPQNf;h%li#6oOYX>;zfPjzu$?Q*NKNY+(cvi4OAZ}JOc}1XB zPTwm`R+#J>hy%rn#>iY`Gv>H?CgzZ5;`4I@u{?Q=Ge5gxa7)$}ej1z=sG+cLHf4_T zQP$)ZB|a6K+As8#$ycTvN>(+q&jrT@;(dA4;Q=2@*B1tC;Qo{QPj(A%|DxdbK%EG; znuC7{)OS5k&4ixRZ}={Gw76gWUTk9yt`exFm`n8OK03vH@+a{*u2LiCXZV00244u? z6<9BMQNVAi-^)S7)SnK%5wKPHsF%9$V*|Bev7^{pK4ooQZ5p?;J9;vA)d#FWTF1o4 zHwN~~;Ancpt9&$0RfD(ot8Kh)pOE@I-8gzK9#fwXd$C0}gS&9Ewye3U>s%j@N4?jx z)sn>hYBXY5J^{bsPx5-H``-}Ye04@S1AlTxV4j{F@K^fGr}8&yJJyEfRs5N?E#t@T zJkS0T93@^AqvCvZC4O2wBG;AM|2s&@XX?Xo<6i?lK+WPyfq0nT*fYR;`a@o8AnM-6 zmmjotAfB{dW4vw(jNNs?;y``Z`17Ck@Y#bUhcgD&Cgh0n5pll!SbYgEEzF(?-1O=| z?D5UuN5SuczXj$E{5AMZaA_d#my^CQ*goi5lblqnPA5+cjDbCBKM(j$wJy6hNzaSvDn17`OD=kMDu zpMmv$vDVuIG3M!$)2IIQ53_%m%DL0*PScqGFH8QibLhF-G5s5``YMh)BQpZ96xZnp8Wjr^QU#Gea8Dt^MNhKTa51> zsO#I8^Rz&&%HPSQ@SXVS50gJk>-y~APqTlT>P;SE?4KMwE_i&vXQ}hE4f(-E!Oa2R zdSLLmfX}jyk7KM6vkSSfxu-6AK=AfJ&602WVqmR_eEihjfw<@HfptDL0ySfEnQ#3> zfd8%GT|K#a^5H=JUc9gFw05vYpw=UgT{qY$*eX!>5d+8vz8&BYdw;E4iZjKW=B`** zeHrJ8wQ-fbn&7=S`ze9%$;ChEE3U@d=C(S7Iy7Fg7W(kO8qLCBoq+!V?;jM%0r-Wd z1=dpKQ0%^SYJ99N?A5q&lk5$&CtJKfe{c2!v)@l2aFV!8?SudD!cp21AFIn<8HfkT zuI|aF{UX2>e4TsMLggNOKx<86e|wybFJGW$uXcaoGN_xWW6ZDP^XuY%d*Jv~YfSPC z>n&(P8^{&J;reMFT8G>rQ16xZ*$Z!NiLd=lAa*?=cunx!;IV=Ev}AV4>|X=* z=(_^*?HR$xgT||B3TlF4H)}m~q)&<<;yiKlrviIR)KFH+`lx=1VeK8|Zx0WQlUNt$ z$t(B+dc#}h$A*EJ0Pk4m+cr@9|NZRmr?o5lX5=gv2F~#tWL4)9L$EEj!`|7;>jFM~ zwXEIj74Ql4ZjX#L@rA+Wf%O&o-#EBez;DO;{e%&HaM_1p!B+!Rb1GT`<2j>P? z1?p?AQ%B+xP7c&v?41`I<4F0idZ(N~jX=D}r)?6*4Xm?0CNS63i;RbB)Zf(?#Gd3; z`^Hb!Rq;2zSUyl^kt5nGYLAiib+)m2@W4RcvR1HOK+dNGFAR~T}q!Bg7>@>6j?AMlpoJ%K$w?+%U)UKN;g)(6Gy8wX>j=>Mu zkNS%M-+n9L^Yl~A?Qwy4kiS*G<15*rJk_3Dv4A?3IWN9b-@jL2j|zFk;C?fJmo^C0 zEc8iDKp(eGP9Sao zp9s`7tXZ0Cy9V-izll<}{z3NpSX0GAzs~Oi)P&Smwhh(|Dwvdc8Srq}ZW>qGpMeLqJA?+NTfwLeKNL*MneeD-01dW3a7^*8H& z9}U#|#Aw#r_yRR9`JjB#K03cMu=m0|GcIaHxQs8+4n7iluwOAXzaz)>`+*$;xqz5O zZBzbeeM=5=dBBdHb?{R+25KU5 z7&Q{MAn)S0%yXP3K2U>HcTu~R*O+(K4cPOK0&&=x!KZ_hf>Q&1`c7cKgP2QfZ2zo& zi#NpabgM=rU%~BSaBG|Pq?mtd7!L{5FCFdqx>vx@TG!^6@s|74>+!W57mv#Y%s*T& zcd$1|UdF#46R3CaOY#?df{*=Pf<57G{)6tcgZJnV-yay@BkQB$J^6*TYc(VG!B6?j zSMafFCiPeL3#*06C$ulWxi(N^!4qOe{y|+vj3eeVhJIgGdEC$M?G@l@d~Ll#OlS|P zIc;946N{bjsQkd1s{MVR4aBY>hcNfv8^~+TF?%hVKd6oUHn5LX-ejM%xJDm6*E)h4 zD4%UVnY_xn9Xaj_#BJt?oaB%|jYp0Dx&Rk#6zm+lC{V|ETX1xs*7Ae^52!EcgBk`| z!~*gd@rt!Z^-Z;Bd%SRDmgSaSJh^zv0efVR^oGIR1GS?&0&{2mK>hld;9G%pWqV$% zi^=Wip0B}Gp2hdtLvfG%2EtyCX9j$n_@8W!KHFclYrqfcyE&#_Cf-teV~@tvnvwM& z>u-OZ{BeBLZud=C~O3ZNZlVIe~hj`UOrEJBTyna_r0g3H1nbLrhAZ zqXKmd`+n3A{}fo0y&(8lU@e)<##?=iyz*#1(LOn`w%WkoCV!iJF?eOLb+B?E*2b?V z2k#D!4vq=%>q)_R!Eb^ElLga0iPKLBZU`QdoI@R6Em_PY1|vV7vIc|)%y)BNJ}B;f zM8FT=)^UJeoI}3C!mJHy%AHFwf0x{y@LfDAbn3yBi1Mcf2GX6UX9I`xLBqnoDeS$z(~a`>)fn z{?&AK`B&5T>?kSnRG-%6_!Kdc8oxN0J*xqU%dO3eMfoprl^9i>{)WK*ruqpsVZHNV zf%p~&iXXlBIqSXVB97J;{yx!SwKn5St`7ycL9HC*Mf?UoE1q8z zs8i9296&C`p4p>u<_GvEu{@sv;vhbRpAdIiTcv0I1@9OaxrlgMyrUk)FVhL1Wc=g_ zd;+Mo$wkyOTq{S>uH5C*f&SASe{ao$AGOwHf4lj=eSj~-GvYFwZJk+O@tVMTgwNs} zzGD9X=k2>}pD7MJEO7m6m#s~|KI_x=$@%<-;7!5Nf%>W(#rg)H^rhh2fqX&T8gRcD z+x>o1bI-s!j=4@}^dd*HCr}P(oyHo}Zvu91oN&5$ML>LAa%S~;oNr!T9$X)Yo5ZN% z6FIAW%W5}bgm(qjq41#m?4NSM)ZEp>_6f);HxS=g8~bix4yilHi`k5P z*1Wd&OU!5N`6x9FFjwS*I9E;~o)A}=FZ#A`z=x6Fi;l&|>TKWF@Ulyood_EAv+83{m;P*M!($%Q(i+Y4U@k!z*9K_D)Rm{h4 zh=K^Q1Ym(}`{F^w&-bZs&EU6E!!x{2B9Dg?&kL-d$$LK(=o>wY-PxD^nu?hrA-`G+UOXufYnxZYwFdrw-GEK=t@@>I=o}wn zKJFICXV|wG{i;CiMr~`mz}!-wkz@TNP>aA5{J|3fd?p{mQ`T*8+wOtA24V@md4)he zA@@*ku&!tCk3O3_Y)wr@-RfrnA7zaB0R0ks`nwv&M?7Obn$NhyoTOJVrF)GjyAZot z_rTlg4*cpKfm}hZ==uB|JF)Nc!oV6HKPJY$Ixt6__Zu_ux4nU4aqAuO5ithc@H2Qx zn}C}-hOXh~`Fp&o9qp-sc!oHV|5O(jPpUbI=kdQ<6MjBFP*+grG4S^e)(;*QJT9=m zXSd)v!M?%4!ApZff|mr=0-q9CBUHyeH&C;ZJN!?6+hAX=`Hg?*OsuGuV6TOFVGRo( zt{D6}zk3xYi<#`LP=gQ;*@r16x*$+9#;M{W@toQwp1}+3)m}8?V_fWK;Y0Bt{jxKA zv#b}$m&Mv*Ci#%Lz=!j@_Mh>`+Oc0uJRyD%k3J!|f57jED}Nqb9hjGDFV_ZQzuN-8 zZ%}JB7yO=AO!kG=DR&4bgGVmn;iLJ@%MUxxZkzb4&BQSs$rXl;%YS_ zeo8GuY-(*4my`d>Kr=V*Ek*;IFGyV zF+1eHRt$`tcKAZI6?HGQALDHA5qp*|@IltO_ygmwwPZWhpX@xZs6a<9)-_%Ozw*NaR=VFHh?>}2-G~( zI;=N;IZy*vN3d9E&2G~G&p$snJW$IyF*qaeyWaDI^8%mW8@w=hc<_(x4$+>x!B}`E z`SoATRh7Y6*ooq=`wCkB4ss68?L z@-xd%ZJh4a?dVAyK$m>2y}@D&H3>XPw{*pCihbmgj|y;)zXxIun>91MW{yqr!XuXk zWG0gu$Y+AH1M8)@Mhq(cF(<`5>O>a=HwO0hiABV>cv=m2<<>?yLgIbJ$WX20dsw|->lN2Yr>{GAjvRk{+l;|{TidZPT4-r2lZMBSlr zv3X&B$h*{xQ-4CaW$?2GG)%L`_&klAD*oJsmO~?8RPQ;z!0Xd6(p=uU* z2q%e&&0ljCck$uImmFjlqltgTT4FRHH_p%}-}9s5033xA?X}=fuMYSNz79|L9jN?4 z+{-WGXa48>z~3A>Ip9B!55zU%czmwT&Zn{;I(MHumyPqQVr@Jt78QG_Rmcy;uWI7_ zm3{MgI_col_uy2%mR-=dKFcGG9p1Ylz+e2TdX<{eQ33z)@_^lnr_59No1>V)Ilj`m zirfn)@@?X1v5_?fu`xO53g60yTEh^>;wf<#`&IK(XTynVv)2cXKAW#N+?s}ZCN5`N z#!5SK81W?E%ty-+?Qc{IvWBcS=7pR2V!66G2;R#-x_mYcr#EqkoKMamM&Ucv zWySYuLFzKrJH(ajgAD2z;QbIi@5skmdypsMMeD-m5C6npn9pK<{EqMC1^9|y)OzgM zTt2@Olk?Xn%8%qiVtMs{-2R1NQE*N0`@lZanAGTQAsZAb5B1oM2&KpIvLVVrKD?_(Cm|yMTl1t(@r>FCsJ*=;pl|yC@Q#{|7!&_C zCpQPgN!k{-ZXc`{kWpT(jv&qwOI{I}%j(_aRWFct_`3?^GcV;a<`!FG_u@mb3>#Lb z;TNA97^4pdrv+yRX9d>Sj}O$@(ssXOIZ&A%gy~aK&`HC2lud+AYc!{~?$!uQDRy|BUY7X+B@(g*l@t0GY zuVM|qNx_-?D1OBO{Ia@_SjrwcF}GX^C*nbSX2@fGN4;KxdPmlGteyIOf_k`Glllk0 zWdHp&ftn3_k_*`9Ea#JJ;J}5cm6@aF6yGlICSPL!`LKOn!}UfsWY3q_UF@%ZjAPYP z)WxjF%1ha;IE2rCPjF-)UgwKIydqzHYk=c%zF0v{;$D+bEFtHR1KLa2S~-5U|B?K7 zhYqb>f%nakd@qJ&XE=iw4!?E_H4kHe?Rx|1W$?(rd*^)T z8a14?f_nuk1xrRtrZpb59=}QOo5&XjIOpyG-%BpO2#@l0<s8wY#tw(?AM6*XTRtt=GFUT^8{r`K&sSN$Vk2q=Vmq;w`mp->O{rJ# zK{!O+>)nC3BN56PpZG$t79&!IoS&-wr=e1Zw0VLv5dK)CT6{mEam`T zgBQi``gqi`y%^#ibsL;+&KY+(v)KCC0e<8Y`Au~f{z$B=UWXIK@b*2bXQ(IXgZ=bs zd_NAv?dnLzO6*Dh#t}D~>*8B$2F4yo^RHxT93~bM1F{*mqQ2;5E{c)aoH$)RC!Q5s zsQutNcJR-vE8E|zjwA+GmvO|Kiv#_-Bj5wvV=dZmt=Nk_0A%Jr#S+#N$u1t?tJx4c zH($zQY@e<2wfNW|~>VbG&ZAVOnL+PxsFkjR>0w-G!Q0Erk(Z8IY?cy}^)Oc8Du%0Gg z5}O$x^)d0VI(+L+VqN@-|HbmSP_01h%kCU~wyuJQx&|j!#>cI>?T|e}ypwCP zWAl-3rC;;gypXe7haj6g-@X;TQcmXCI1#6d9mR{^4%A!3jeZkrJ>GQ|Dfle)?XJhj zQ}}#&8yUrQ9e*6b-pHgzfV<@!WD{qY!)#Dp%UE^oV!y1f8&7=5f8UaQUvkNx2ITx+ zpnl{i=5_vt;O~KYmNiN|iM!P^jtOuuK31Q^6L^q*_z}Oc0sKIIoPs}$DSoHB`WCXO zON#N0nOYWKVxNNC<&y!wC--Un=d+W~PRE{p`5SWDmuYQ=U5iJo&#O7B>5DPtDCX!e zUc!a=*Brvj;wbAZY8h;Nxqv?1ZyuSK@?ZYS*vlQPuh5CP?z!SPYvF879%t^kSO3jR zK4IH{ZK?Cgx7fe>s=QF1i0@WNPOwUV@8kyFt7Dj7I1+E#PbK~?7s=uH8nW|E@&NVr z)~&=J#|LUxVodv<8)xDyvbx@W1N{~|h#~0)?^x^RSNIySKOVP7Qq7!9;xw|4^1|2V zH+k{+-vavrafIuwRfq+}b=trma!yC_z3pUa4F!))3+wTlk z&To~(`kMt?2kJ6=273i+^t%U-3DyX19Njpr!5@)*JJv+_8tcDmnfi)val05=ynRE! z1{%kS738JnmiTkGfE|eI<(6ul=CL>iZ;HM7PIE#`Y2M;dJdXSLX?eALhh6#}|MS0M z5B6-##OZj44^e}`*WxR&jyT607q6QW_ISwq@u0ZVnwl{e&xozOa3C41C3UZiv9hPu zK0dlvi?MIOJ~N-y($v&kqprb+)1CDcaSHo3pY9phi+oYQ2faBkU(~n6gZz#f7TNKP zJrQyX{oyy&E9g{Sq-KG0_(s1MF+a^|bE+|x^+&lE@QY#-{o@zuzVR*JVlJ4&avmH` zPjUeKcztkXfQQ7~xCp$*>GFSEg|n>P@#*BWFM=QM*sE`m6+fDnWMxxgKpZYlw$A1~ zUcf)D6KCN|b5g%?uDH~gTSvD~gzpfG^NC{dUj|}u{O!GS;&gsV%uA>2Kz&?oT8xVe zaJkr*vJlHbTX)%5uu`ZZ4MSFFUA=$H(AP-AkjD}O^)_5tDvFX!>1d8h`$ z7UaS17q@9k{$y^*f7EgCB7enRz80{*O9I!^fjtvq0`0SPe$QHP=e1h57+(A?ZnqB# zXR8;;9j!Zpze~msh^5qs?7Ofgr;h3V{Q|KyUsa#)S?aph@zk1b4$QU1fpIiX7^o&A%zn2oECh`IScF`}HEee?P3z}g!g zGcV0){#@LJr`5Uejj{0_?>H~sz(2-{A7LXn*Eq=2*%Urj?^TBslZ(^jskp`bo-Rb> zU%9m39Gc7GCA`n)n0M+)_G+?cw$E>iZ}tz=EY#<$1*u7^>+-Gk3RwH+uZ>Cnj{{>V zKeOhfwkN)@uEz$&7o^&aoRdgkSx}1@H@7!Y}%vJ$#1e z3o(XuMsc#*9DbE2l7$~2SJxQTtHhrAFQ1g_@N0A;cN340pAXRv{?w**cF!PhWyN#2 z&ynop^Syq%hpw$-R@cwS-|(d~Yu;>)4n) zM%*h-kQ?Gh^$~N}ngULjgZa&ad38vj-i<4d4Xo*@&lKj3ePz~o)IqGjnv3R=wLfiW zOWmFCS0ln1Vg$S*wh;@+tIRdtb)q#B* z>gcBg)?U9FsI6Nwy(G9SP`CL(;P*R@{D5=5yC}f#p9$U;>=$ev@G<0*qo_gAt(cIH z`BFX=r;7)0uo?l|6r-49 z;zDy4x2R>vRn;KHzT!uAkAuX!dj{sSIN!V#r?Pu|Dwhz0sWa+_nw#8=KQo^47BzCQ zyx4*5sR^pVsax}XY>@4W(eb%jBpXo&5tq`Leri`P;;80OJEaf)jeW7#9{Ex_;p^BY zz0jpOW{&a+c*PzH{D@bqambbQ5x?3`hO_uXTt^3ZOiqov>}kY9{2lnL4vd%R7+2ss zZHRBRq1LR{#=pwfaK156>!NqQ!TO&%uzboje2Dx`OyB(*WWjx8k^g(XSl`$fXSty< z7e@nM)js2RYYO^ER&wHVa%xk5aW`4T=D5%Eflq5~LEq%=^+Ws*e^M^wXUl`-KKl^m z^<*O>S;7K>qiCiV|Z)(VqkILqCgD^ zrx(7n_fkG0-gmvD9L4^lVeBvNSF;l9Thqh;YXsKywhx{c93J>PKA#Hgcf2_Gaq!#V z=HQONUdjdI1&Q8AV}XPCUY-7L!5;&EcLwL%`*B=wK%n-ou5@8w4EQvhyna9@#@O%M zfR6LKdI>O44|P4fBdm4ENLj4@W%Gwy!>D_<4Quw!<`56Bg9zCB}djpj0PV{2u& zygZJB@i*QQf8uH!SPpls7?%#{Pb`g})GXx@+N4|O`3m~gHonA_c+&4E@r)Xr_+Cv( zEywz(x)Q7x@Uu8ye96zMCm0Kyg3q+twP4 zGkJ`;=hT`tLb-t79%#!dv)SPK3L}rufUem)omZI45>>omvF`XFIL$l8p`0 zJGsOi_+3t;Hq-T}uKQSjs1M{9eeWoy=O5LY#P(tpF*@LQ=jc>jsc@6e6OZZh`F?5zT+^tggga@=^q~^Pa!iu zb#h?7UmU0f+z?oIP@7qCwBmFh(!#8-Hg)hu8wV-DQ>j!EU_FUjCeZy;w zjSa5h1NZ`Qs4*4y+p8)@Z7$-dt;Xr{3UO^? zbX|jzxi}JFy{I$eqaM)2zJ3f)Hl>#DjPpUZoH@uat7QEDF*<02WtzybB(nV<3j)L z=P&pH$#NcPzphxkSeFHaT6 zi*;}@h~*rem-CA2)Y9d<=KS1>(biL&_t|${Z?|`*`L+Gh<_KTG4>Si*+vhucR`c<_ ze1TuFpArYFt*gIi*WAL_asZr!qr{}%=Ol8tgnjOt;3e{m(RNLs=BP>jZqjLj!dc+`n_MSAgU3J8mD=aPT@# z$KC#hfmr|20Ix3!z7_c1Z*@)&P7c)h)q=FCea~wRhx~ZUSm1ZHIJ&~?KC81EbAB9O z@x8bX=-Qa!GW9k!4}Qbg$l>^GIhnTcC!OP{ML~b#Ax1Nof3TYkfVz6oEO88$9sNAz9(-H$A};5>)9;zT!8!P^*yVsGFGY^eGmkOR=K3(i$+{vDe2D*EfF0>1q?MEvJaH`B^b8 z{o_XU6+Ty;q?{@47JnN*Jf!}Q>+q9!RSYcNl^YmOJSDdvqjvct+-rQ*P1LW{_3^g2 zlYaPcIx&X&?=yYzZ?0?IMQ%X{xLTWZfyZ&Rx;3`uw>1LuMt($=`bmAT#=t)0K5R{_!$M2U1>hfT}q|fF1^Yix+ z&JD!+Uku!PVjv%o8@w)faj;_`*H|g=dtQ4;@D<(B0lvfe@}BxU-{J6by7kSE27a$_ zYH&(W-)G;cbxhx@i5VaDeEAgK6_ep6bK86~@2x+n1+!tb1h$Qn%m=pboO-di-#jxP zt?7yB@U}HfbsJm=IGkOJpM7VYQ#>y|?plF4z;ARtkxXJB^TKu7z|nF8eqdoRjDOfO z8)l#Uoj5=|A{OBH@V^*APG}Cu70fMlEp<`cjr(zzKH&MTqsfEJO`L|`=uKQAzZRD? zb`iJuP8;sw@2q`_h4Ge{6c6Kl^&0gBoPj@ZkF`T_WH|^Y(RcR+;THGsy*NeOs?Mga zjH?^BTNB+cFg|!k?ZMi*d(|w&rg*P>#i#gQ4yRtNJ=}>))qK>2_;q6Str|)X}_T;l?JWt=%yD@OSd|n;3-XjO|9?Svbp-n#2Tv0dT&-oa>hQF1^ z85c5=wLVmSLznXF=D=*cwN5rA-c{3-gR*yVubMsE#gk$l{EqX*>3CNxjEluT>>U@1 zi^c8uLTnD!JHb5hxiONM9k;k&JNQD)6u2c|K}U{5PrZj)RE*L{-&}zoBc<88g7!~8F%r%bNYy8L(k%6ZK|Q;Gx0vYHLt{ta%%h}RYjHXMM{Z+}-{md#r`Nv4`1*+J z?Oo*qfxn{@zCc_e#xQUAQtKf2n{S#Q>xB58-&2wF6F1>iwJfzdevAJ#rjGoxwHbA2Fli~iK=_IW{+p(xwsHVigWP*p2q7#&SU#xKl>KNf{y-1g<8J((RfHK zXl|H4+QB>8w9bWBJqPE?lW{pt=X=Cl?B2Wt@9~p3edw3O`pqlM+vWn!n~UbN{-{|E z(fouTAOqeKvzhmN8~My1m+V3aczGol@ zSTEQlcwDekV9(^?f!JS-=L>;Y-a4$km3SZLTcf=xuwHvxaC_kQvet3^&dS2J_1#;8 z{|)#Abt3u1^MiE*e|yN9GapPx^ewlcPkE5fbSB?2M(R0yH6PI02LBE|*LTws9a^tc zAID#~Of1dj%sVliIm#~Cr+sZ~R{k%xG`GwH^Gs|dCd3ms&HNVE$zjcJxwm;K_7szf zf5e{Vk9O3eL3`#$b748Zc`de-Kj3|`vNLf8o#>0Pw%4qCde}4j?%pglKEKVj&(oTf zn4jM>SJ;_3WL?C(GQYg6k%{@uJvAM=5&QcrSMj}mvJ(mUOw(Rqj+AtP+xD2UVbCiXHRN; z);@5z`{@J6t9h{%ybpXlJr!)o_v%Xgk2pa-Aij_v$=X$))uGuns7w213kVBgb`k{~3 zS-K9=TABP1*UJ~>k8)ajVdUiEK75L6#n#qq#oB5kI8&S~&TkBa|8M~xAl}1);y^V4 z5K|5zE)*|X%QctWD@Rb{5lfqI_*sp>b3MO&Wd7iMYlwW4_m#CVzc^LQFNW6+c#qe$ zX-)%P1Lu6_8gae;k%7+uxkve5pZy+y&$9;!*Q=Lw|AzfJeoy6hs`hc?{67cwzT4kz zzxVQ^<)?pRLY;rJVEe%O?V*9X48H$t@YTS6OmVwCn7;_b`Z(XdopD~P2CD~a1rG@B zAKW`w5a4@jx%U3>CDxI%yfOV-#yHD(;WYVG{iJb~bLk&{=9-RW*WPhFAHWyziF^b9 zN&j*MwxpJU$J9>DNAuA9GOxs<;t_F)`ha*|y$4S_s^$9*f3ag+FZN=~Vma|UzOa79 z?%jvi%q??7K8(-IAM;KQAtv%Hxds0r{t+YNTywzszSsdz8*{#nO|ngKJw7+i{?>s1 zx6S@7dv)x~vVJS(Vf*f(PxFM|v)`4?TH_GAdk+3DeD0jHCqa!-ZL#}g-RnO7LcSnZ zP_M#uIFA3UUe(^M=UEe_Q}JNqaC#Ao7itIpkFooJ)~u@T06uRhgAEk{5h)K8NCX=} ziAV(0Xatqm70V3R5xX&x1)0%kbVbD$HAa^MK}9hdV*_Ft0TC6&0@C3PAW{X9-X8h? zzW4siBvU@OQYVl%ow)P3qFV`Ob*NdMR+m`cX*lMKOqV}a3)Ny%E} zj_j4ka{JC#7L~7EaDOo$?vr2jP7~SX+w<%3j||JJ;UQng+66nM-*|^-(|a-b2mE{b zD4rB^%J0iL(p9nuOUWJ`7VE-Ly1;)E^TP!`FP)d4;k&~FxK8%@`0~8=tjTvc@`LPc z6AReKPKVfo5%>8={AfDE&xR#@ezr!uVV#!WL^n(9fq0#?Yam=JsL!*FxQ+DVKA3i0{syzkA+SdjHUDXvfe)LtBT|582Nt zKCstQ{%AJD)>vy6gTN@ZO5f#YV4At(zlv4r$2!X0%hxMc`^}eStDDQfPx!WVh)>E- zoeSCjEMAv?;eYU-#PpCv=EUWFHDY z62TbXVH*F4&L~fJwNJ0%fxRAdpfN5VU;p7Pc_-)WySbLvg6I4ce6ZI*%){=nkK$8) z1wVqm&>NUt>?X6LEGk<)B75YHzeDDekWzb6UBT!MPo-Y$j{e4A4JSaj>bHG3iu@QU{_QLp( z&;9P$m{i^PfSglStY%L2LCnFYrw{Z(p3<6wK6l@)T-TV(k`EIj(M9Xx*1F{N>8QLb z+!ssQy9WFD`{HwQM`rnQa2V#3QE@%}hZnE{wu^K5yxpG;1ATWMCc=Ff(tHo>;5Wj1 zHUzE~^R3PDmtZzu9I-ug27bFvcM#kebMEw!uS#F(D4!hBT^PsKz&zv}e-@70H_BJj zAMuMiTvJ|rB6lmkhlQ}yIAJ{B9IR`JRt(O^6>a-@}*xY{>o34s9Rur){}={-`{T zc`zS-Qy?DkTQT`3{q-ARC*-kvf8R}eANejw>?V;HnR(20=7z7 zvQ7q(&oKKXA^2@?lzQNK$#=GnA8!t|%f8VQI>ev1E^WMgD0;)Uhxd(xjmNmeMC9Fg z?Qg>aa^F2-bhN+c=12Imx7u%X_&#u-?<@~O$N3?!87{&}xX=F~zx;Q;K3wO|JHkj< zLC)p%i?QTijGzwK+BID=Pe=Gr$Y(ajdAW#^9CGvOYzN)ZHvg1;v2PkC_jgk8PX1NS zUEBe~^o`Hkd{cGNdDqpYtorQFQ3o7^hjR8X71qn+*ssZtw>J{TZxZtRTKSt@LiT6M z<2*6+q|n}>r-z;ylH0MKdtm6Tp?8F=y&fL2$NtEWoR3`p{vma35t6I%+b%JLctU*P zIYlsA|9tlx2smC+&S&LZ?{j@TlbZeV+akO(cKn1<<_NFFKzvhi7(Wz7!Xj92&j}w& z>@1#iRU+9FKCEv&Tm0YN}nLov6g-yi-IL2Qp z7SJ#D#XfL(B>4lj2PVi3^Zm$t_s7_;1C)%x-b%4=_y4dB^5@OD&n145U#YJ|SHw1W zz#hm!!fF19ycfCUe{|ggALY#G4Bvx3&>cMHlZYSuHduT~*TheFEN8~oXJ1UZJdghC zr#|5;d}Gt-xm<@ePI+s1)|koK2n>Qd)_KKQ_y_m#R~!I);XE9dyOFEm!y}*h_}7PE zzUw|aU%&tII2P_JE>XPccLIwy2?$nk>EuR~%6^|B52y|6!GH-0o5 z!1j|1u_6qH$FNx(M~?Wua8b^PErgTCPYxV?cOJ$UJH<-)gnULY6*&i6>zA-E_=D+&Z$C z64f7v)1H6hcS`nHBEB)|_a2p*3-N{d@cen?yK7g4`196k<_ee0*{OkH`)D z6gR>pd42mT8T&*>+9rAJ84SWGMrMTh84b%uSCKj$a%nT&xgGahOLA?I+N+=`3wlOI8Dt*^+3va$RRHlgt^z2W<;2w7`j3)oxs zg`Hsw?B~&k{vJRKFQ35%i|h59{`37{g*-WYs;z~ad`$TZv68$68-VBXJNRiW*6)Vu z^TTC!0FJ}(b3R+=F za2)32Tm5M3269Q(ovj;8uRFuq?}o^aYxu7mxw6*aUihpYcn!D3A9RC%;^=!ZT{&`z z%%l7N6j|%ghPLQiWmrC|@_R=71oIV}EU90tz|L6LljmW38s9W0&K4p0tRCsL z``oX6?T8s*F`VUp!{M&~dN!y1{+`FVLH7J?6yo2r9Xp2}7h*T$iunI*$E!kY#Op(E z4jmj4A6Oq|L)et}g&Yyvf({G4Kh*Qe|6S%%AOj(o$Ion#$up7@M&d4A!UA^3Ab=-3c^IXZMy=rbX>^WP!YV9bve-+=i8~_Lx8BC?;FTfIeqZMqX6TNj$=4(?k1}w5e@5s@iXM z+jA;vv&9nZAIyP$@(OG=do4y2W3e6VwS1fyjm?J1u$jH~`vA6iK7Zy&-0<5FEWadl zap9)Yp2BfBYu@Wy!&mdq4)d{LteCPkcQZulOKzPpBc&3Q4n@8r(?>KW^EzQ1wlb#2P~hynO<(|?|O zLr)PK(d+i6`Og1y&2Isay=U&}ed1%!a3S+_zBwhfq4LfqkX5qG7O(@&*^7<&NBq#{ zm8`4E&%j^=lUK+Bxl6NG#(Li$Vu_pU>A~;61%fU;urnm z*RfUB=d8=|(X4~8Wo(*pl&n|q2}{P={Y0*H4TJuQsl@&8Qr+SwJ~w+PHj+0RV<7g1 zjbW$cxY!qdyjVa?0GGuF_HN2ci5bS{eD<0Bcgwpd#T9UU)6nL_bK&H!9u{(B10E9E zF0^fkJ#gG+k;FRgzfb7ii*)zAd&Ro8wr&WCne2BGM~Ow)Lj7igjm5mN_2$Qzn*+xa zK6Tgs@sa$d>+^GJLS4@$i*zhK`GjBLJG4jzukN3k1xPeiSi7juCV)=nm=rras8Pcv+k_kuCvPJv-{!*zKHy!c{5-7&PJFgb0f}_FKVobPxvZc z;3J3!_~l5Pz{bkWu($jl>-XZf9@z`FgB>Buh`nG3U_HM{8FojG(m7ae?~Ws??*W(L zuyrZ+zrWYy-}hNJ_LA{Oh%*}7Y3-OD7J9e!2H5SeefN2I{NOKvX1PZa_nEPJI8Jw9%56wek0au zyd{=7IwS^Sf7x2L^@v4s-gTs`YwBckyN^qs*-|+|HjUlHcXpCYu#aMc${D%BPdO$& zgCm(0kCI=$1V5TQJHmc3tMend*WSsJdfYF+Y2F<9!=nwMC+c+0yjln2%h($sX6AD_ z@~h;5_*C{v(^GnDeWAKamm71_+xml!zSGy%#aBc8F>$&2)s4n$uImGTkN#WB(0)J9 zWj#RM?4NevLj6xiekaUu)VGp;`|MiRJA5}L>xJy7_{Py1VxNm6=K*Lxh1lZw5PQ)w%>yaJe#q}2W!V%y4q{i#9T^adG!7vf+DVAYS*=)J+X0fUGft?!yIEO z&cFpRvp7ed%$^U=c7`d&3sa1*_P}`bTbpc+zB{r{>=5kd=d%NBm2+%>*u&Zf%olrD zKY^RwkIGhvL%L2PHj!&_KO3f;^6rQ6j^Zh09BV7O_leI9w+|0l>xSuUhJI*Y+yUEN zb7U*vd)Eb;yMyoICvgv>~vy<=3yIb(zs;v{4FQ3&RDO&RvUZN6-C(Xb0%729B)YyEBPn%D)n zS<3oNg>o=bJSEP8k!%E8V2xsBNbDfyaYXRg9xnI`qkV?iupBnK$No=tqB$Ee z9ZYUq!j>3^zU!M~;~w@3rs_8wb;N_(OLh+yizDG}{dV@Uxfe2Fu03mloWNXjM_$dJ zIcBHLf%9!l%l#`?cY?kcnA;qE~c?KJky-uU>!Z zp>y=h_vUT1^%L0v2b3DfW#g8$3N>>e22Xw z!Gf-N>65W24?B?GrD;e1jBDI~S3Jficp=Ay&v*_OT<2H9Abl^!@VV4iKNPRjs~+W* zMf&cX{x(*Cb>akTAlB>jPk-4x_KKg&?%;>})hBMSpOuYJ2Ej!>fl{#yO)XCnkVfxJW>W4fuVprK^ z{WD%;6d#T2MU4gFJzH(g@YYrU*u1c<%GJ)oYBE~6BM;3*niDdh zZgVZ)3FFK;f`yHX=^vf7UJB#sC4XFb`sp*Qr}OlmU4Xyz6K3+O;3hn#dt{1!XvZ~m zIxmJGNBRT<;Ds{I;{~}?4yN<_jio+@G2#`TC`0F5Ge+_Y3!L+(T=_~z-AncmKTZAc zM;pdYXZ*1PFv}SA8}E%1KVX>i@Jzq)Pu*;fv9N2(sKdPoX5ve6kR9QlBDMwg!h3l) z{yzJ_HppA?tCxqYG03UNEjiDx=8rdj#&36B+#vtudVO~|?>;t0eoj2W4k*W#nNPOM zIW`9I*R8Fx3Hl-rD4*k~?)H(r;K%Eec!n(#+cd6GuW|Nw$6_V+#C60sw+9t}$Piwe z6SmhiysGSzUvtLB@K<21b9hhIMmcfbymW5JmpO-<^=*Bx43R~0HyeV*WJ!JGj9kE6 z{yO=Dk$hrUMZe%6d8X^Iu0A=;f_JX*>EQsM53Uv4-~^n6cko{wdxq5GJRE3#1+KCo z#dA0UZ|bj;Z!$#)qUoWM7@|1~x0}T6w3e zal$Rv@ewBJgFYIY^UCSJ_SL0rV>U+obdT%Gnge|3UT-|8jWjM}hO=TA@k4WA>;c}& zDZyy>J0}+4>#qvQw}^T0M*JZkrXCnC_E-^;k8+;PF)lc*UiHYWsk{A#(dJDVYdGeF z46u1*2Cwjh%~x0VkQozss=dTRI7aT2$D`U~-|@yAl1aS9Gxw8S_)LFbwLiSAolqye z;mfWG@yp4+`A{$0-nCk|H5cNy(OY^*ruaS8CHKQW{vV$Ze$o;3(N#90`>NGVPhqq^ z>3`z{I?Q&^U$z8xvOnr0%j6R8l+za6Wxv=rb-C9y{e{i==8ycU(^&9?{NjsqUG2i7>6&~#6LV|8(?Go zXXjm44nFh$SBKbSW57G}C}#re*$24J2X`G$@DM)p{q4upXXjz0HsLCM!e$t6Jo&@I$?h>N1bUfbV<=ahbLe zTWfCNZEd$Q&Knz@Fh6k0T)_MK3g*CP^^z@h&^ee$Hpve8#vi&wj?Az7$eMe}1{r1- z+^3A|>Y=xAj84KXvH}a}zOwucx=&w~Q${_GYy>QV3F^{!{+O}SfB3`CRF`{<&oy$X zZgs$8{WdoJnhj}B-;Ie}l573YFMUuCUb}8wWY`#sJH|ry@Kk%+A?q;9c==iCQ;vO; zS8@$+@e3BfX?6@h*iRVYo?*!)Ey+c7Xp5la0;M9O$ER?q>(&=3xMS!U}R{Ecz$5X#My?o{Bqo zga_=eIl>p`%qzaB4=%u0^Nx2Nr~Z&ZxPZtwo{9(gFYY(z?xoXkfjoBJ$TO7mTv@0GHi|=km$? zSh;ulLB7omEZ~o-3#MulMwxRq6wm1)8w=a41It0f(ApRCuTJeK!$#^iOoqAeS$~a5 zTl&&xEtnfvs(m&9HYx*`;V&MUJ7k>7IIm9gq5qEhf=_I!d-M-a*u0jlT{O1hFJ8IF znDs+{$c*`MA6YbJHUci=tMfi&9k~eD1;@ybc6_H(t|6G)xPcF=EyQP3j=xAR^jZ7li;lw${L&w7!$}zB zIv(N)-q5|~iL|3U+iBkD7d>HL=o5T{QT#jOH%4Qlv*ZCU;l45A4SNC)@V0h`jlfg- zu1>n699c#F*o3Ytzzcn%6KoA0;0Yg{KW&`aGcG>!iV*zf*TY`6g`X}DQ|!lA`4%`X zx9^%UvZw5&a{PVQ`RV2uui>@)Jo{l@@fpvw%XTQwCg3|`dNySK@C`rk zKwa8VA0EOu^9-MSCm(oEJ`vuVcXA2i$h!3}dPkScox04K+zUOYH|CbS!z1$InmJMj z{&xPw_4Jyq=%>2KDU2r@WI#RU+;@F)U4M*`T+wIxjr0dU%(=OzOU7m1=nK6n&buE^ z*$e%0p1kTGaxYyW3(DaWy;e>;c&ZLOHK+KbO>)QH!9C-4&bZiC*p7^)m;^huOK;5s zeO5QTmCslm!h^=7uEFo-wc!%Js8|1B5L{KKG1DQKXkK6nEH%f<(;50;KIKMMhmqyLV+8#{T{XZ>Wa)CZ^a zK|S!K_v$0uWVe;^+1%m-*}^aFDhK27g#3{eedqhTm)tpT3}hECV4SgQ%NX%eznwQ{ z#-<*1IAoyxI~j&v0E_){;8!C!5@mTxhoPN|_g@rACy6TF1GwUum=KB-pgPb#-Zv z?b4o@0H)j11pmz)EMzOx3434=e!vD;<2D>Zhmhi;Sz6 zoX`dRP!Ap{Pv)H0mcE;Fymeh)P-7SKr5yQEXJa+v)E9b32i@x&nI$7FPiCs4+Qbj_ z(+~IKgFpR%A^cppp&V>BE`2ZtvI|#WuybURe5)T%oQDx`2HwCDye8l3)4uC$EezEr z;=8IBcIdlvYeKMDS^RWAd|^lUzOMW1ns)FWZpzcZc=yePV3{`cLm6W*PS^CgctywY z!@Rl|xke_;zcFb?-<;D=W6+j4FgBzfb*NvP2w#-NL-*&79F={8T?%Ay4Ew z8$xE_4&7F-F_ps-juQ{bGg+@(;gkNsdu`Eweg&JT4t7%8#_K#%#vi>^7k(JCK2$&GB>A5W zk$19f9NK_WFiOAS0t|BwmY6$rlVv(xe@h$AnGSN9M>;^%3vLzxweNrm!#dGw@S; z_~l4;)dO3MM_vWCz%p1u9`Q(7=U@>$fj#(B{m>`lH3$4|_@+MRl%q55gMG@d2QZlL z41Zvqxl>l(d^QjA;_~DCc|2ENc?+|gug^@EjaNTmq&k&>r(}k$(2v?ndg+|LAHjY8D*yQFoOT_JN&ncC z;)*%M2mD3qHOIw%ysQ0ija-u@HVsc)qXX(O|75WBIq$o9C&%=n^ImzO59Gx>)Sf%i zyT--JxQ?`;5BgVK(I2{lPs);e1P|!F@$(7XM{nQ`{Ktdhue#tJT-C1f)oZw?Jbj>V z+G4NBt9hZP^p)Hiqw%vf=Em5otJ-iMzL5#zGrXb2fxmax`KC*smPj zSH@8p_~g3vTWjn3tq-lYvBsXs)vHVSwxK>_tnBEsIbc(ex{M2+kqP61tJ*f_m7(gD zd7&?CC4M7g#&i1PI=+)T=jf!*9%p=3Ee^N)o1eokKh`a)qnG*Ui0F9z91QQeJ%ud z$+kcBxXxa}Ke-IJUkp|Ua$m2r5%AjFxTbx0RsR*Xsh>~IcQsGdUHa=@{--`Gt8R0w zym{3&GHzv&a^}{2XxBZkSADHVKlI0VoWmPr?CxhX^s(5D@9JwGw24RLRiAw(lfL6M zUb>&(4C~eHyt#30E~Gy&Lmz!6@4lNeWwhrUoKlB*QqDDHd?%aQ#6$gXKUpN>bVnWf z=DhFZSU-%*{pO#nk~#PIBNx6aOUGfK@jFlM$gLwCPzKJCNp<;io{Z0iipgZVJYa`l zpLX@hd3G1ZYge1_2{!1fYxIVmxlX@a(eW~EvM0{t2ma_MzB#(C zpX$<|&JlTcUE6T6woHHgDW?zmr4Hjo>T(ZVRz|;EFE8OJjHSQDBmIM|?se22JcXt3 z8o$-;K5+rucC1gYZ`v>yFk3u@`1tGwT*h<#f<3Us{cv1e_zi2cqdomFPsnF=JMVtH zZ+mdT7@UV$#_GEA&fztFkq_iNo|)J71z!++um3=n)T^BS;*a?v_jpfd=mA+%kGZ8Q zWF6nlJ#tU&ula;6{?zYYpXml&K;#D>)JcZ4p%2E@v1yQGicv}0V3_^Hp%<57>=bsiSzhyJM#ukfv(l_%$pa1sXM zk@|~?aK;#&cdt5NEZkMUx{F)d!YB8_&tkhVngcploOKOODeFFE)CuE!R*!jvo3Pe7 z?ZInhoWoD$V4^zItzBbj|5}gh%DKiihyz{2i~7OtE%s__F65l++9Egl>$_|EfG2p+ zei&2v?q2<^j2eUcJ7>yu{Eq6vCvE8mQm<>yxsR}lO-}|&dDRWRF^+82_KzT58WY$&ch64v`x-kBe%+uN#`nW%Db+8 z_ZPpF)o1mPLuKfO^K?snuIXPfn!dmiWt3G$z53U&s7ssfb6#JxsV(grKYq|*_u_?d ztJgj5_2<0y^$Ug-3mlze%am0IoK%N$u*AK_0OPa|%Y1j84`2JK4)?hqzBZTG8N8Mc)@)gGJRsK0oOZ{`}Wom0R5 z=x^uBb@PB1#-pzCoGhpZU-8L#yfcr!JMVt?;Xi(xCx5+H-R8FQ>*#*%^;+l6_nzxK zYEK`0H~*b$GUZQQ+H`cUvi``CKQdG~)o1hXZ*npJ=#f9=^#h;uU0bO2`s{vV#kw~iH^I2a|Wm6gQ<%s-|NAg*@Awy)JY&nuUpQn$#M|mMO|JGxeW z^gI6ICwVR(%d1hp-0OPVG6sE6pFS8%`#JJUx$36zm5+GSaT~kOt~n~#mZn}%qFk{K-l@m6 zw&8x)oku>?Vc6O7%Ba`5Vsvq~_w+t^dsk(8e=%G+^%b{$M$W@-bvUvwJ^GB`ed{UC zkN3Lf{;|&9+qzp``yG3EX)Gn@#`)`b9r2Jnk;BTH@BWfz4jdrxJK8j@1yN-FWgrSwGL%{cdhlejkY`1*E)N@KIm^T!RG}8SvYTu&*NA`X9R3!oVYo5~miM~4ly|W5tG{yMdapV9-amDz zx3&Y8_Os)7t)J;Ed~|e9eU84<^-?j?aja80Sf-rMuIX2CT-~m@Z@kxa?TlsJ-*S%a zL(jXX_4ZurbZlR>*}C<|JsqR=@X7q(TgR(RdE}fjJ?DGRIjXxn@V$RN>xcU~H_naq zI`4kv^hsIY^~ayGuoUjIDaPqs>v0c$yH>1LmpattUf1BgBizQ9-d7xVR8Q?r=TKeh zsI71;w(E;Fl`K(@JFE5qz z*|GO1=JEbr7cwxJ&PF0}Z^?K{^oxxalL$Ln0nbZq6J@8zvB zzT@r4!``o4=ce_yy!u>6?T2IA={eVXPv^RIj`#cAd&jv{Pw#IZ-LF4*=GZds*LUZ7 z9Usd}=X`cl&YX~SvW?1H*V_Ny z8+EPi^jiC@Ov$;9$7gjYuieU?F>2Fauc=!duo3x;um0SJ+~?1|FwXb3>l|DgaZg!w zIS((gm^&tC8SaG71`J?ikexbGT#R+oEyKBMy2`SF~4T36>&8U0btpZZ-JWlmqpf1h2i&gqx-I$nHH zMmy?sp1mut%V)=)cdX47Pt~T@hPyUxC$*#Q^56H4&p7m}eek{gH$LYb$$Clo{<&8D zYI)auM#fKn@Q9ujQ;HeR!3oFu*YKjgIscp=uZ;7>Am`$Ve|YA)@%e6S{+!pZ)`K7T=DN8P6U*V+pCSKjUCkOEzsYBN zF!(-QtCJtLAI07idra(4u~)>t68q%UV_i{hSy@ES+9&akD2ckAy+eomfF{!Q#= zp3H^v=4G7ges;cjL;W%ye{u`>3u~;2+UFxb@3ZsxFK0pK{gFvyFh}@9AMu|4(GT^} zE9;)__ubrSOC96_|LCD>KD(FBsMmM$jyH~#F=e!ejMsR4CY$=AU&@*vvg3YZ#8;o) zUzv5kwJ>XE_So6qhM(5h@Y`oR$7ge5{R`ifbIu%FuhFJs=K_Cy*B>%dzq{CjKhBZ0 z$}ZWnj)7PBM!v_-t~m#v+^b&o8=KGSR$du(;d}MKy}l!|t`6;XJ;Zf-K}V3iPWD*Y z3rlxgL)Pl8r_;HXqeIN!RfS(FuGb-{!=`PoKv6g z>Ni)e8;h~xJ3bn3Z7$t%pQEyl%F`|6PkHw``kS20zt-hEz3p5%I%j^zd(0nFzxI(f zk5P2v2?1=NT1JMVVRJ-6>*Zs%+0nWiOYyQsrjC_W1 zB^ZdDSEn*P=cpe2V{3{-j&#BpU@ZNjL*^47I*&dZuRovh1TV>6v8l37&QLML{2+Wb zFZC7hu`)&Ow9mHcBV0lHY)=GC?-=k2?~D;o?1AfV8vP#CZ(;10_Pa>Gf$wwP$LGj< z29{?WdLE+Z*Lp6lXQ6x6t#_e%w~=?fdauT%A@4o9DdZhU>&~n@dE3QiGn-A`_qSc% zkFir|=g@AU$A$JWcK9ua-+%Pkc%GT(IoN&A(xdKt)a3mM-T~(w zKHkH5%ls{qclg|z_vhRcx;AuW=#s^E_WXKyZ;x}X-5lz>cD%#Wd;Gkg&-bN)Ohu+Nb7duzTR>?K=dlunU}{+0^A{7%+< zdw!W`UiP{Ao_~)#D<64|F}{0NrgG%La~kZi_gn_DH zKa+1^Z)W#|(s^@5m&iDMfj4js_8WtJaQrpD?eY6b&uH-+E5Fz8vv2!u4DZMA40F#% zM4oHz+2~q&B_=~7m23OcbI1Rr>f2gQWik$H;j^*uW!M;evG2>CVRA`MJ^zX9 zdImTg@eJ?2OAoGjZnyU&dDo722zjQr_tYVuj|#y(@3QMVAwIn1!xL=s?g;OYK%NP% zF68;)-uvcVOWqrCc*r~Yy!X!gr@f2F`|a+QcMZWl82E(HGeY}?UK%n10o{RT-dFFv z)!wCfL*79KAI}K=G;~VnMss7d(L|ejD@a|IkA90eS>*^ z@9Ehwp7G^5zU&z+^Vzu-Ay}vkTtlAo()W;fWB*|v9bI?u@M&5rz4{X?y-~g>ESV4X?tQq&jEm4o+(DoJf9bjJww-X z*F9g+d#Uiz^Vj=KcF$eM4|dvIm;>*F^6XsXv-x2&=;TP=pFt;Gcc1pmpYO``y&r59 z-86rQt>PQd31!Ix{Uayz!*4*1369cH{;4q=Km6oRl10CjV8_X)=PUKuNA!aKMR!o2 zi_I7F><#_}%w_-Kf_iHA)jJ!~hPg2>$XxON>-+P``Lp#|^`pPthUK3B$N%8BdUlj& zKG7xqOsRSe_dVy2kHSCUljv7}H{v%V$T`=PF$Uw-23#;+&jF{m-t)sR^-gW?yY>#Z zO=dQk*)jB2p?yOKgkZJziherupP^$zCxm_!IyLmm(9c6Z2z@iOI`q!a%R_9yHX(oB zyY0QG-et%3uqED8!7qbj=7T?nKl+c?^$o;L_y`C4`*-6~9^a68!%zJ2yGVQyPml$6 zL%bpn0&nGwYHithz_vxj6@s-Glv6(Y+0lUc~Z0|GO;WZpKcitJbD&*aU zp7#!;VLL2V9{KK?`}&S4b{%flKQIq`0`J7_yLP?LR!ro*gRXh!>)|1GpC4e()Ts?N zf{h!_=?LD&M60}LkJ72{-cV8rJc@MVh-WTURq23So zw2*hwvB~^mSO}-!8@w}@o&(75W5dK>ay#%A?(<*a0E{RG@Gp?xdchAe&BuTr&GW)9 zIL0Sr3;2m_4Zo3%;B)g&<;Kae_Wk}ICiWdnY^c7$c+Y0^EH0R@EdO*(2!8tPUbfBe z``I}$BWz|5U_H!-!RAfO;C)Qy&%2k%Hr?@#*e8d`J6r4Md*9LRy?Xd4#(?SGu|yyG z+;`6(&>!mnqYdOc&|P^IeB)bqzJ+HdRrg^cToXgn7jYdw#`Ey_E}o-TqD$meIpxVM zdjK1Y!@jGN{_&;w*~+sI>aLyOBf;g8@AaGD_JT!OxW{+cragGo_ZqP+@)v9ZyyN4; z02nUDWHWp=Zsph{ISp6|2k0=Leog3?A^6G%UvFl;nFoX(8hU)_d7;;Z_}HHceJ%9E z(AlAjLzjdu44oM|IrNp#heEFp?Hl6D-#@f8^t&a$Te3Ff9i;4rcWlE5@q_mPv0vth z%#&$tl(O*NoZ^S?c!3XiVBVFbEBs(SC4Zf+S@+;KdZsl0f{c<& z?~9GEs&~+hL;XRYyJOAPk9N_EF zFTa!Kd*~0}%v_O6av~o4KnQO3{jJ_z&i29Az6%u=n@hOuS?%PBoUmnNg}vwZH!p!l zl^e%CKSmky;Xe11x5kHjd^r$vBqsFkC+)*^@7N_r;zqWFj*xrL1mo|(Cw?Zs6&~R^ z{O~>>zOlSQc`mQy9h~rVosj&{H6eCUOmxxWyP)Ngt_ZeiI}Gf* z-8|z^J?ysn#Q?CE-`+J9b{uAtaer{D`C<-%^KzkbczDQG@LlBz)D3sZls@pgi?#AQ zcnd$_toM}e8cclNl6aZFuRXrMIEz1RjGlkXZa5c zG3<;!qsHTMG9~@xZ`1GkX1=pY?2~(XpYz5lZz{HoALLPv$Z9r{^lE_8Y5iV&GHuS4=VQSk-6 zib<@8kGX4l&F7>4Fc#((Q~9!pOpAZIzQ?bF74jy0JDA{)&6Ed|*U`=eA@QW~@ImxJ zE>6sV#6-sF8rvf;hZl5%%<3B*f-la$;~c3c+!@uY7az@}}OY%=Z#+^8?|#9Qt=dCxxsPo*Md9Xf9;^@b{tHLe?Sg z8QM6sc}SjpHuRv-4xxvI;P!4Ie*e=#`-NT+dPC^o5c}|skfZO;%hNnRq`Z8MHO$8> z(xYb{J@Nn5ziCJepie&yeKo{)gmd_Xe{cg1!VYl`Vng8$d+#}0_%E+xF31UNfuZs{ zutpj77Y54tn=3Y%ZRR^D&)$$1c*y@I`!I-Zu)FK5FJL=?AUs9MQ>}T*&0;8iZ1KBanNHp1&`Rw+HP3G|LhtyA6(AY{NN|M zYhJ_??8k;7dAZt)C3h~l^N#sDk_ozf{>>s0b;1>wGBQ9|Avj>AJ%82 z8)TE5R+b&fHk$)i5l1{Rv`^?6q349yju(ZNhYkq6EX0<)I`o>*fgzt?6|%l7265ls zp~r=G3H@1Ui_k`)dxX{x`Lot=UFgb?zUd>|r{BgPH}T1kILMwEW5x@76i11>%#AsN zZ|nr@ftH_%l%0KOZ2<~#E9*aiN-ytH_L&w5?*LGl*z80Uq= z4?ho`68d52`=Jv4A5`bCzowZeB-W5%2&Wp>y2_Z{Aqic z}4?>A3kT^C+ICB#OvC)R!+9fIxV_8}p-5C7R2#2%Q7`T=r?)+N{= zN8j0wEknw>zx$ocop^y?VGj8i`k_y?7vhB43wfxnsj?UHTE;84#cs$!iEr^kzD<6H zZ_a1Ot1+i9f6kWRBfrAB3tP)y=Nos8xoZf%BiH!P%9Z4%oa0}c8@7P{6z4}gXN$<4 zxfBnZS3V5f?)r7*4@SdhGQsa4hhzjM^J(}b$Yk&=>JLyJh`>ZqiZl2;5|k-W?K;Ah^ngz*w<~ z^j6iv7LFtKRjhO$QZdGC*+EMA&(-LE5Aav`7Zn(cq&k?%QFrVKkPXdp8FZu4gm_zOZ-XJ&yvs~LLBo^VT z%2&u$uwTtlXcsQ(gFJ{BrFjbY!|&E-eP?6jzu6i29JYqPYOHbr^6K&c-Pb19iy!a; zR=^fK;uFFMF*w_6Zwx+mTn947QvvT9+(po{+KiOXEm3#zi26FRk&$xfmnkZXs z&k-M@xhQ;R$K{DiY=Lw39LXKA3(C8XtjL|2pYGulOLm_0rST-2Xuimu^;&ys^qtK# zf7U#V2l>vPxW=}0zmEHiRXwHF*L4v0i(l9vaVwrx7RJ~GpYfYLs4ZwbJK6$1Ky$<5 ze^_3E)%|?kEZ6Bg z9OfS>%T6?JC6-`2P~&2Cvn_0!w#3CFIp>-(;^*2QF$q#P`v!xw$M$KP9dy*!lJBmg z+RCvUyTM+-H9oO5LAe07NS@c)U~R;>Ud~QfQYQYv6gKgzBP}l zLf3@k!EOlM9Fh-93Si07nWb6nUT6*ZS9QT7_c+&(3(m2lo!WfDIcES3(wdd{fBFOe0E5_ z%(%Me6Gp+RVv_O0B$$mSc!NjQA?;@o7xkSx_$fYuPk78G!Kl$5u|@1WyjsXY{NWiX zu8AR=Tkl?R^{{bl9sigw&3`s`+7@T>(b-NmhAq`!K0Pdk!!Wz}%ib8bJvaD)FZi=E zgkSh(9h@y-i;(Z;T^VJ?N9CisY9q=&JQQDOSNmj0{*8UmFE$^}vxj^ee6===d^ZN< zI`Y~1t{;ot%!4tDQOpNhA=hPIx;`&I+js@P@D2a)QBJAz#D-7LlR1)8Wbdc_20nuL z(t4s?Kb`9uFS{@jTY=aOWe{6Z8^V6TZTV&xFK$8byVyUTV-uQdDyGAA#Dl|%H?Eu_qOu-hgX|-|PD#8u9ooWuvI*Ztbz4H47agBX7 zu=?LZY}4w{5h1aS{V!}3TxX~3Uz)a2)?~yGY?SziosyrDPh+d>e-dky*e>=%d~|k* z9XmI~uACpbV3C|t=JZf)&GAc)pRB9Pd$E~^hxFSR#A~ZU)|c=C&$`aSzMEfu1DRxJ z_($UI+8FC!)&|Asa>6jHJ~6$MFMyY@if>1k;S@}O6Z}G00+Zm3*v6h5c7~tY{eUo^ zAIskGb=e$t!5%=i2ib3re0JV-`4Q!tQK8|!@kH1 z!9^HZoOF&|EGaiq&nxGiVk-LtPuV242p?*L>SGr(*&uwgF9zn#Ga>S;v)g|Apg}BasD9=8!8{?X@`n6-c+SYG; zXy5S%js3^hj$<4{d3RTQ!<*V7<1<$6m^1a`je6N8>m-eBo?vmb+95|4^` z8q2avbkdp_A8@o!jbqpy`imO7h>OG$Vu;2MY);oT*o4}EF^48zU<1T5#edi@CMfpH ze;~0z^Hn~N=X;HfP-dE37hkX?2p%~)*SeKyJ^!C};k+*(l|@|Esz3-ph8m#~P4* z14z7Oj{zEOnYc@SjvccW!hW$=Y!zE!?|@iJj?Vr8cEp;G{MTrw*qYiYpV=?h#W`%7 zd(|N}6Q{9M_>-SHjcl|mEt@8+k@D+r)%TpuJH_;!j{yIh-aFMsx4_8G96!7 zpJ`rdj4_&P5?hS6r8y_~5ATc3U89gA5o5q(SX?~j)B4;s7T3o$7Fb?e0RM~qwM}eH zZ5R79(t>sRWBW8-@8{YuV_+wdH5YbsT*Hwo6kD;e%@xYYboKYzuhbwPbc>T&w9?GCPCV4dk;m9Qn2GJCb{| zjw8orEk|BXe$IN1^&&RRnvU3sT^sixjqwsYVhmy=<6%phClb4f;n)-Vbj32T5r)E3 z*a~N19-M=3{AHNN7v=+xIW#r~PIV8DybRk8pV$HMXZ>IEQy;j`ae!BB37f(ejWpUB ze^|03RW!cgM-E6UN|w6SjnCsF%ZnQHUhup;~K+QKY{OZZ(^9Qh1eT8HnGUh zLvmy63wzQ11=f7*TeD}(norDN?2j0R?Ge9-U99nlwHmjGzvR)ZQHWXO3#~b@FO6B)7QQqbg@gD7$N0qX2rk3u z+7uYnxCQ=*AK3!7fz21Q&=opS+2>P{e^eiNBUNkQzZjc)j!;lF%u9EN0v$x79OLl5I)G_AoYCD<_ zV>hOAVfw;`IImB5tY6I=im6NLalYicYsR20_Nq3^IoF#T(*~J0{@RlFk33isOxi@|hx4>A`&tvSOKJ_;CaO~&qA=3|Wmp+YltoBNu z*(x>*)gIP{xyB|S<22qi8`l!!hD8$~3ylY+% zKbqrn6z}1k*rxVJ?rGeA&E8lCvR`4`6YaTH)_FXm%Dw~p4Z4rb+Ko6w%wk`G{R9+# zS?FG&jY69)(k6Kx%Kbw34&5`P%sL^q#`6K~ClKpg7_$B&rqPym?TgSSIY0K&c<=$w z$r}HOY}T&urTJrWBXpV0!2!4lKjkOJ{D(XS+X8FFGkkmN#&FnrhP_JGX=-O+Hte=W zW4+$~*#6#4j!aA=_IN}{JR+W{o#}p9`7ky`p3LvO?Tz-E3cr&td8UTvYCU;;I3>&?FK)sw!%H`Wp7{y95H8bhCd9yv<1_~ycc^RMv~iMFW5LXgAWcj z;iox<)vz268`Jb!4ts(cLnt#6te&JiW60WQv#iZn zqp`*%PsW~$8Jlx!ey#fm%#(Ps>pRV-sgr#p&+Llv8oSs8U*v$zAsag#i?ADgh6Ml1 z{5s;d^RBbgd{?)FH@j&x;@Th$p{eM^mgZ0&UHb~!kU;7CA*#&zSko*>3OH9JYl2g`SI;fBO z+I;e8lZ~f&XgbG7Q-^UIzq+-9$J(rI(GUH?J9#^NZceOuMlnoDj&b~LgEgPVF3p#T z2RtXqvyNc6JeeGs^%1d(eE`-`#3^D7c3|E7rsh7O%|knc9vyl@=$RqEpE)S>w$Q4O zXJdKh;h~|ogkBMPZsjmCj52l=+@P(oyZ%(Tsb3a{MNta$JmsTwQ%G-KcB4;&)9>+-l)&I zy%<3Z!>05%H0*`nao;|F`{bD*7v*;_en0c$(D9*TLthCU9r|qO$k2Z*lJ8#(eKqu* z&`&}agsuzuUAY)WoFaxYF7^U$!8f)PU+{-~(I-9#c`)y*LiSnk7vvv3t3@sp`D{Oi z`Ij>l$KpFVAvfv}H}kK^D4pZS!U}fC`c`8^_zUyol3=WSq&`~La5P79N9GJpTWfYN zEP`k74erTz$$P<~>HL5F;KnfeAs40&d>|7rSRT|GiFw2?F{n9{<7AiFe70S%jmMXV zE)3y0GIy7Tt`6N4QqJ#~%rQGJPL;b9FWLuaPX#|k?87d>S-8!H(sQ^(j_EJm!O_UVlnf; zZsHre!4|MNd^Na5=U^Qy(ibrS?17iaXSm7^unFYDJ^D%(`}-$0h);ko;yrR;e%RQt z&)ow!?$>wSIv5+vuCk|ohso~Ehr~bl!;a`5zFOxdzxGOv&jW&Q)3R?J*nTPNz{>Jv ztx?PK@Mpy|#t4h?0@iDjY?4*7*Vvg1iU|?D==vnvt*`j%UbX_}i!sOq+hZMw-%nrp z`}#2MPu4GM)N)Ps<-%`el(iN@e)P3+BX$wzu`k*)pVb+1WG%t`=s#-QO7Hl5Y#AG8 zUe!rfwIk;RBMuLVIldpVW&*pHC2rUzv|H#|q1S{~g*>a}$k10p-wFL7^wZF3p|e8g zhb|0xZp)RSt3r;y3Auh!=<^}J>3?D9;UTujo-=Fu@@@Dc2C+6IuZOSv0`tU275DSm z=mHGyZy6kY=ZDK((P26wuf?A52_5MS8I;RlZ{RLJv;HT4(|Kj!4%=eATfWQMhIJ2d zh2Lny6*l2Zq4$Me7kXCcv7wzpv!TsGn}#+CJs|X;(8EJ}g`O9BQ|Ln>_TpEeTSMX( zafWv3I=`1J@_RWJT#x|5Te&~(s?m6 zy)n<^Tp!p1zOVMRX%776#5$9B4$l8F^!3ochu#^&$Crlibl=cZLr)JqH{|@=LLUr$ zIdp1>JrE0u9mSP=0kNn#H(oM9-uxL4pBX;tD_l1&*a@rT5BRP8MS2H+_kWFKMjFT>i&-q&XE9;2jYqnL)OxD@X-!Ib5^Ec0XCJwu+jI!4H#KJHi5BUt{ zPdv%Lu&yQ^UqQIrFvnUiRtA$HQ)Q=qJBk z{cMXoAzaokF+W-0Q_*F<6Pf5<4e=~{3ftIL@wOP;c-SO={3ZSe9%#q>^QqYxJcH+K z37-%7%wKfg_+YAacIEM$ozZ9Wz%G~*eBmD;GRF6W4Rlmn*0$~cvfj;Z;EA<%YZwol zdEn$X`LE4yB0m=TcIdp&ZJ~{qZoG7d&~BlN zy&$w-=zx%O?+AS?WFFRpP7hrXf?eveW+cBT_h{dm@$sd_Gw_422P@%*aqyw)kKsSx zSk8vN(r5Cg9rv)KOedBjKjLDsGoQ(CJgwh}rQ|%>SI@37cshgVihQZ{IQdZfJIJCs z*e!lN9e`otHvGWDb3$XTtbR1zGRMt{87r*DOYs)@ZvIiuwCgr=i80w^_3(B5(M5KV z{Uv9xOzdTy*B;P5OSCaF{H8C~a^=3Qu{y$d=j~OM4`%~lyx$J01IEHlSO|al{N!7n z2-fS1KG_S`Tx!Q*404Cv-{5n{MQ`wloy03+gg?#inL9C(Tp@krU%?)-C#Ej3aj*(M z#HwV6on(v1ub7AJkQ0+1gB{k!VY+?2wSRmEYZ2DG*}HKqLLP|^X)hIj65d$n7B4iP zwC&8clbjIjkymhtI#%!G`nDHkwL#}NW+9>3nYi6#QJR|bsGasMiup+LL`6CN>2D|une#6YK=11BKWqq1V%LiPa z=P;cYg4?h{?&g$``~keMXNs=SUA}L9UifI<_-W?bTslYo*#`cVJO;g!ce1w@_V8hU z7W!uB^P$g#J{J;8d@bbsF(LS`FFy>OAEJ-$=d;2sJ|#bq{=iP_X8anyy?L~czh#{|g)W=16~FxjYO!Cqv>(zsbRS$8z+|ztqnlTlfmY$sa#QzqD_E2EHMm<;mnl z$*MBOA(yI;+E&6f5e`@^36D!%hD%uLwDdF`NAW)O86x=L=O21{0Zv;{8o4@4r3?DDu2Rf z=aqGj7>!LtbcB!VI*i~0^M%>YuG#iCeeh9yg4kE*#jyM&_Q11C#3}q~IehC7`T%G7 zGkkV)Y`(=JVj=d6Zx1)vHg-Y&j_=9-BXiBKVoUi#^otC@8TLW!rVh47jKLRWNBwDw z-@=DuqsWwT;{~5yJf)w;tl!2X{^DEkDf~8G{Nwpno~6P+v@g~^C3wI7%=(kO0?g+_ zqWgw?-!LTS0BhC_ag^mB+}Gd1uQRhwYFK~f?xA}P7${)5AlPor;BCSM|uTQ z;RxLSLI^Iy-qS*2hC4#AhQ07?Ki?h2$mAZj!x3xWu#o)HV|G{W)zMs#334q*%eM1% z%)OYOe!?L+ZqIAd-nn@emwvDd-wvG_x*;U4VaN2F9?BPKpT4VSO-L+E9_SApA*1pE zV%CLh%)**d^9a_FpHe^i8rhXut8!9xDWsN=Cx7wRkL5p zSywYwaU0AbdlxKX3OwS!z$E@Df<3;&WHE&PvjvSKv_8LS?!|Axb^Bvhib^+;| z?>)!fHRt5F8rBfl3o(-z%5VDoX3uZPJrAYN+k*M*fg|$g`S2svMz9m|5`0v9X_0fv zy6cczfumko5@ozroTCmTn%}KD1-#&qLdVwhf6P(Fe(#UZ#QR)+<2 zhK|sAZPO3N8E(THK9jW}^NY+ox#nke-$Z3bS@Kd@A=|#w5#!*K(G@bif5_SvTOzg; zSBkU697wz^mni^|}6>n4ZtT{_^!;GrJ&fFZT%R?VV%0 zU@}Z)PhqC9!u#R_-^Bg$5aN~QrO73qUmldKvzKh5Hq=!+!HcrSOv7Ca>Mu+T$8+lAPSdxcWfQZ_+(F@*K*&xPI-dU42D z{5DWtP)tv@>H1moXHC`_tvT)!+B>v7v@&#L=m(+Sgx0%ry{r_>PJB%3ZG0#gPe1rE z<__=0apqnu$8R=|=A2y9ReC4Rr}vG;VHLlXzdFV#@Q6L4SMZ461Ou!wb$yA<@sG%0 zV`FxJZ^SR62kZb@5ZChk$rQaJBVqtL#SX9uVqgCf!bmpB?;+)0U_QUPc^zYbd1OLaIh+!#^q)?eKX&qa zA>-CAY?Pyejm0^3n7?ff;2m4r9J-j*`hxgfUWdB%_kx8I1Yi<=$cqnwd4 z%JP}ueB%vy7G~| zfNjv87-TNQX0RQerD(5A(gaK7nzjzHJ^cJPhdvR4^XG?d32nG^!-+i*FKiaNPiVc+ zjWah+a!}1Lu`6E>$uG%MS>JeBh)uIzBDdyGj4o%*M|@Gp9-%EmJBI98IW+WNp}CM8 zlbjNrgBdGAbb!voKy$~hff2Rq>@^=&K9TOz0k*+jS$Icx`nw8i8E|mVkT&>J+TlaG zj|}jM*&ex5@@cNcisXz8ilwLbk@9QlH=L<&2aoiZzio|=Op;~sF<;3Vo8LIX{^LV_ zmm-FgcQluNv(jg4TC?zMXX|%t2%n2A;scCh*Zl5XPVUm|&pI(AkN45gdqaHn4~ABU zz7c}ia%t8UU>H8J!}2Y3f*#-}U4S3fEZ_+{jZei$YyW&xc0pWred54NLg$3og406c zL%BTmLO$`<5F2JqgI$*IGCwd(p2r;W1sczx=Qg zNAqt?d~h~SUeNr=<*;+cqb~T%CTW+=a9(-%4NLhN@R*G7x!DB!C&XsrEL5AoXZJf9 z<&-Cf;x2g{c?kFb#X`8vPm(i{*AesDE5nCb z6>>Z@MBdp3wt`LI-|&;@7c7VSd@%8eoCCiP`E2hNd(bsp`Y2|v4eD>3J;zD=+Jeh+ zyD-Rg_D5TEnh$3T)|Rb5lW#I_{_z11$OKs+C+1ANNdBxvm^b-ru>;%5SDg*9Rcr%( z&`)+yu1Jg^*6-S~wRie1XT(lei-ebaeR&u7zGG;Q5R8`Rd1dIJMLIC=^mu9L`JtzT z{xZatY!Z@d5);7u#tm$N`r(K6?0MyL%0oEnhu_871AE`BXIQ^p9(sSs+QZt=y2%&K zhIS1-IrQ{J^7(P0okOnQH>4~(a(&1?*z-bbLWhO)7p{r@*j2I%gT9}4ar{$=eRyi< znW0yOoU=YGx4@^AW0HfmwnoSKlyra}NM4)gp;!D%^XnXa=3nt4#SC&Qa6>Fjm+3Db z*|R_7JA8&G@>l#{xWq?*^Xv}$AVxLk{B(YYwFa^!kHc>lr}87n51C@W_;>W!XSxSx z$&xiwvPrJVuG|}cqPa!y8)FyDrRTM<`*Mut+PtwB?1!~)_lwWf31?uBF~dk}Cw%ua zL-I-1+rJvJ=6+JhdFu-7wci2CLwNobOo4&&)oii+hjZdLHd<^2$HgadbnF4&-+YNb zZkxYtlAqGH`W>$eIWJbz9ywt9VK|I6zwDAVQ#jsrTs8<+u~o29ECc`aML+oEWJLRZ zdm<+$FUfaj`;~*C=7c?gZE)Az%AvD2<&CCU>DNUurkdrq47cpfLa5F_s;U95EOgSShYuD@fJ@5AF+w<(M zKG)3iJ>B2?dmpa*^SQ3;zQ5leUy4nS?{EW5hBdeeH_#c+Cu|)taDEC-@O(Cf^zaIA z!K!dvxp0OU6raMlfcx4G2hcz5Wgn;D(dHD?$No;Me8fGa*XGUZD33C0J9Ze~fqjG* z*!t#+jdfhW|79zidn96`-f?h^&bIz_`wYf|_`EF9LRWW}+&F)C-Ei00+_ZI0=B{n?BYtdt_x7KT;4y#J;jjVl zv3NC1{@|>?e%;6&Bkb1yGyz^ zS-WjK`gR8US&Y?KHD={2Uga4>Rd>S@=h>I=lpRbrj8j;T&&)Z~Asj$pFyB%9iZ2O| z*;LA7oZ&7u8Z5v~<~4BxzS0gjOx)618NP?P2J;SV9qZS;18Kb;uCQj!dk((aWqmTc z0w>TX_6PlMuE9D^_784^r|=Wb!+UnEHALccVHaG7UHm7uy86R^HYfbUk#N+3bzT_bqlBO{KT=S#qCeASvJ<-+^8K@0@%c&2jbOZ>#1(2nY( z|KV&lJ6^y6bj94Yyv%o-!^LN?P`~I?V;ncbef?k#0gvlD*Yh2u$FHyxPI|WX@Lcg3 z_5)v2JJ4s(re8RMzS24V0tgwe+Js(OP*+KLkA0%-J?%*$J6C9=O%(08F8v~CRVZ*bJ ztvA98un#^P`{oAv_V>4+eckli&)!Qgm%tv94o=c}c<$KRZSQ>eZ6qQeX`SO=OJi*h zt}*8j*LZeuDmctXha!+vp0plYm!0k+l)I*%Lq z3u4ar!hOZz%ymfzE7+BMAaMe|ggBWo%coKI+egeb7}xlL4G7a8IRfvWIl@=K2`?D= z@{#9_;Ds+3dGd&Ollh2G9QpVWa}?};YnNcYIF;CvwUfmBv`V;U{u!5uA3bH{*(0}& zeDlc5MqW8$t&(@&@WS0A55DoiXLAeY9>kL#HgeO*BSt=P)7G^E;z{7VkhfA z{Gg3}pF|sr6X9TU4)*y8=5zG1K4)i#=lnGoug~>~_ZHa$_yWIsCgG>xaA|OqbYl4G zqptarY;2g%))TWgZ@?xL&%>MXfe^%ei(^QZ@1ZOy1M z(mU<#-r5$Y&|{ouUwb>&uB}6IOT>S91>HKGqD0^*?+>EQt;OX(M7vj~{u$ zxj2Up2w&kb=fcl$kJyrT8J;-uq!Ik_v=KgrxD@~6D@Oj_2wUD-q?eEUz=-#x?;PPL zyluq1G9N&E$b5qBM~(cta}hJL#ua~j&&Z2L_%Zwy@eh41=BNE1Ho~T6dy7x9W!NWd zBI7RmiH^hN?85Y%FDnj8_ycs7-t!gMF?fPq<$hz#`Xe|2uZ-Pr2{wseSf45GVSG!+ z?qj3EN%kk4Y>bBMY}T(Du{9=*O=H=!;H22Lajq`LsPV}bgG*vj#ui)>ljJ9`FU)7t zGkVHT;2+;MVx1BDfq%>oc=3ohEjx%l(Q|&OISw`t{o}{TQ!Gs^gguA58voi%`)N0E z20TXegLWjv7vLf8Ru4V{{82w`0~=v9JQgEiAB)4`0l3dU_@$9|j9B;eh9z&l`^{%- zj>MDr5PS#y;XeCkj_Lg8Tkzw=qFmR1d<xu@m!f>~lC^?wNkmWA?rE+x!Oj z@B7%z!TQdEZh%%+v-{=a-8mQwYxxhj;nop+g%jX2 zU*YC+VYj!xx9Y(EvF-|nwZ2dtt$h_I!V4caB5s5WZ1DlEylI4QAkHk_%;pm_HrB0K zQ6A;u%iv8sW~{UK%rlAu_)Q6ZgSx7-y0i7gd)WEr9|#|S%`f<2pYRX(8e&2?g%5xi z%un+zZXFSW`YR*mg1>IWyzsvm`Hm6(f%g&a7U3{b8sSq<_pTe%bug6b-Kjuc?IbwZ``B5<}a(x7@ z!8bTZ%*~2@!89BbK6#F~e6a(#X}rTx7=T0Y3+^&D`8aS$9q}cbgC8!=M*rxKbrbZI z-m=52b2V4S_oP$W5I3-a9P=4mr~A_X(GmB`E1hQZu#f0%aWM1WY$fBHeME2!`o}Z+ zLQIuy&E8~RietkM`~inx5=>TCaV9>Xm>nPB%7}Q8xDovKo&@grEoWak)`*2kmv(0foe1)^{ zHjWQ_abfm6yk~Pb?tbSsF5?iK1Y`9x-&Gun*vC_eWB8k0FFuptCHwen$B44|*%>&W zEl(Wl8*8fa1=wD=kgmx?e)9D^+feWw*r}t}8oxLOyua^Vm3e6{ngDVe1&9 z<{PYSHJ-&@*xvMtU6_6w_i&l6it`t9=TDd`fahZF=FI$tC_h;Y73SY@F828mu#>+4 zTlfstv+^7G9(YGyIEY=vSAo5rgPUG7!f%nLIG1O_WO?8$G2HUuyR+BiWxm230W4#u z@s0TS#-n=S9%GjeW&Ei#!7;|QHLFh?F-FA)+++OmCFFxg<%u)Il=&6PuYJVWlvz9t zhp@l37ZHaNs}oP?n<0EIK8WvxTgL*AtyRUl<`i%ZZn1U=Za;KH{OR|Mn4{o(@JIM2 ze2r&}eDR2Q)|ZXkHu85y%p>E1e>Cz9=Ynhg;fOiwuNisqi1fw3o^`{s&em1&CmuH< zUgr7c%l+mo8^Jq&`nouYI;yuAl>X3<+J|o{e#s7DkLUw!j+b#XjHQok8n(0fMLvqy zjWHpv!bd5t!X|?o)+32ai-(AXh=H(GaR4rWU%xQ&^CR$!ynW=YBlh1if=Avof>ZE} z^`F+>z_G;nH;&*NbFgsDJS|KUhY&|$i{loydE8R0UCh9IEL+yt6*Dk)VRbP8IKV#; zC*UuL9fT#t!`Q~jk4${sIOk`GL9q#Of{34$a@4zT_FZ)+aT^t^_vIB6DcpbiF6BJjm&wgg76E=HsJ!xQh zT!1IC+wqz9HXoqv#jf;&cou%qFZ@gP247R`kuS<;p)X=$w)&BsU@bIVlHPr626^#M z<o5IA^re0k z*EDBf{E+5Vjj0EXh?7_=4DYj#;XeDB&B68%pE<4_g_C>;YxvnVFw~qf3^bm_dzw=g zZ-?FNeQ_4!ABMw4=U^m!Zyo_Q^G9&ZEhDEl$4>tp6VKsilVh4&$8N72%3yAS4R6ce zu&xRAI0vWUwK97GEN7#!&)|{u>ihw?#OHubxB(~dKePjT4L9=lrPU_cbnX{#!V~O0 zIOjRLjOwafxJf(VJA$vYmpFrXgE(C=x|hrxB)-F)_?BNKZpB|Sr?Ex6dJAsGzxWw9 zi|LsIf!Ty#V|^39&G$O&i-q}yxHYlXPx1k+iN#589O37|ed}u6=bPi^OwGN^+cWS# zUQ;%_fa}B<&C{!g_&N^k*w#7R&S%`bPJif*_R^R7R$q(h(Fgsg?e!ZzXQT7?a0-8z zU&wwo2H4Ezl#Goq(YjT>jk#zNHX2)e8{^J=92;BQ$hd`x>@DM)AJ50Ju8@6+qrPec ze!&GXh+EiSeWU)aJ#%$tuS)^83}jN2S6ToU6E|At$9CVYp7#AJ&3 zv$qNV$2DoZlg!Q!>);>TAKv+vkG%01KgqMK)yJ*yR9VG8ipQD9hSy>#_&D5#?X8_O zH&g6K{0$EBP2x6fh~Hr1wGno!IRV0dgpGVjHZ1!U4(b#91@G_~%+r7R%{6@`wuukL zlyD<#g|YZdp8C%-;IL;Z178(~;bL~bKE+|`fWs2lj=!C^ZEY!j6QgTB8Q0?j?U6Wk zo_ri{y*%gOQa%O0g5VRv$B-93!5!+L zKFXqgwH=;-f!c&kt$nmp94lspL!56b9qc6TlSl2SEpZ|&#Y_1!+QKzhi$96y%1gdP zAKo^iZ{V>ubicM!e%yy!=>cxtTkR+YqR#40@G6ca_O-9}kXAmVxQf2Ouj~+8=kaj; zp-)IL7HzCA^a0UVM0`}A=_BX)eU+h@qjQOK`cQss0DRMPJj=d*m44@MY_O?}6~2zS zEOATYiQQ!mIgS!*^M|9@aCnKWhksz2@y#cKnXr^!1UvXf@C5(B8N9=077q~%zhy*x zoZTv>&5p%0_=SDTMi!5O{WyS)j2rq5CUdU%#yoQ(W`|G2?1+8hJX@NLja$q$%Tuh0 zP3<|^)t-;*tdU|@7i(8mJSpB&EFaI9^MSFr7CwuSShvZ(hT~!`VjtQGZ)me@X&fSU z?$~+PiI`>ST-)Lv$I{>vTmox7LqFgY=kD!!^_%A1<;Zv$CLC$`x!HyO)ghB!-{#Q(rcVmQ(yu1n{BK9d-r_>XuX z&M+rzUO>6{C;YJ6M%di!cU&p{hCA>lyIP%Fg9C42vi5+*uo_MluYr@rY~ZDKv=uWW z8$;RP{1NuI_J^B%O0hQQhsNLHX)exl;k9F8-#PiW zuPns_<-yL7hjRqRE1#H?^4Yf~)^hT@q&vNdclyt-;7|B7uJC~IWS?%DyE3kfJAS#b zWt}#E-8kLxDSn4BYz)$Eb6<|xPxRh+ruWXVrQ{(m_la$>v5XUQ8}^HFvHRc!TP$30 zY+S*P>_lUmzavffVvG~Vo=IGXJM2gE(w@EXVdo=l&++{HDrr0$zQHr;oKsf$;znQ^0nZj{CCr;k$F$^YEMxl5Z3b%S%3Nez@j& zw(t(VNeA4|>V_S#z;>T`WBjsA9> zuF)Gh*4(ON`pIU=ekq6!M@M#|orI^$J6jc>Ts z7;n78g4O}R2e`ssgiG1g;xBL$ezHH|>CvXeIjxIiv$ADj^X(&Se6g2eD{vg1;~nuQ zv9)4Q#o6G#>()yZd*L_O7nhRT z#{au7f9KrGPg5`X+M4@OU$(t=;k$@SiRWae+d7Y*^Edb&{0QlsZ*E!pI(D6}L9*%L zy1s((`bWR;YxH3;G}rZ?Yj_0@Sffv;;Wpi;1M)CN*!wV?Ekti%yz9=>A?M*Wj3&k` zoThj5%@~2}eBU_07|Bm&)3mk|mKx)5g3h{+ezMWrFHg82AIF|u+{)O46P``vgA)i$ z$RC%^HEHcD;}+PW97NgSjC+kG&xJQ|KaP=?vM8(b(l^$WO?xESmD(|JpL}ikPu9q? z>(m>6%G>kRL)ogo@*DSX1$Mw!?Ft99tz!aL!wdMzmWDU5gx$&4fa`dM-FbC{KLX=% zPCg1O%C^Nl`91K74~9E%g*5JgZG>MSy*%@O@Pzx6TbVpl+Mb{N3qx^9WmX@@>4&zq zuRi=K_o*-4(HBJ9!C-CRnm+Z18}eKA1sxU-jWb|j_LF`504I$V_7d)Zhxo;qaNa&K z*7zCbAF`7?iyuNpdHPH@S{FqB<51kGZrMR}UVieSL&l=|(?RFe z&0qcwJ~OVB)3}$OP3Hdiz}7L{bX^|qkzSigFCWLQDJM}!I1*Rx_kwV+w&JtE5Euia z#2sJ`n^?QUDELI!+Het0!b8U-&SAq77@GZV+Z;pj7_k?2zj|M3dU=TF)4r+W7b_q5(9?kS#wABgkvHxJ;Mp3h&w9nDwBmoL-W z0bA*m4Uf7my?SaVZJ^z>3*Jyy$9$Q5L%xjI79Y{J_QMa_SUP>fw}|`omp(EE*hj{U zKGvVchW>Tzk1o;~dX%2fb2`809_Xs;(!*Yu=}-Q!5bmbm@{>+_LI+)=>&AnzBR}Wd z2Qy(s_P8-*ywG7|3Z}4`;3u0L?hxgm&&uLFtb(nuA0NmAF2g1G1MBR|$Jm6?#wq-Q zaWJU+mDTf=Pdew_=U7|SW}Xid)J41D2JK?JdA@s2EO+7uZK}M^!Faa0y1_)x!B_Z6 z8>pl5vKe=b#rf=1<<~~ar+#ohEY+s*kv!qLH15?#u4zNhtzDH%esGvLuPpLXAN5jS z=ioMevo9ZQ=3e!|B{-wKfV#Ca*n^y z956n@39#LD{N;Y>9249noqc?OI~;p%;vVTdOB_s|@={ji#u>^N=P85q{1#lPKJtILZ65}bY9=#9R1{eyyFjU z`m2BCOFxM7bkrC$7GSTfu?usIXJg7ZGG2`-xMi%lCOv(YhQ9z$VXv_&jdAOm`$u+JLj7FrH$*fyL!n>TIF?4S(Pu0Ru*N~Mz;D<*@7vJX4cMS&MDWZJ&HSV$R91d$ejAQr>Q|Og6 zFhiYS3LJquu){UaP%r7>i~C)JDR9R<&bx;0cqeiTz8F6ARQdX3;Y6WiTDy-bKO3_LR^ZE;(Bw(7}%0;B#=jBoPoyQ^CLF|f{U*UJ~M{sE|Cw-RSS`zou!}`@Zu_)*0L;Z+b z^27DHYx)=8xaOE0pr7d)j-fYni_RL?bkP_#7U``qYb?=O>0n6qpfrx1HwNTq-+k~; zUUZi}(SPZ~0BNp_*vdm%7~r~lr4375gDJMkX^g>tc{esZm+q3Qk-&pK=>34Z5Gn`OH_zAQ45bSA~&knb>oBF_R_jjLj;jOap50o!1gOAdxlWY78>EsPhiR*CI z*0DCz53o+V5bdVFYvZnKYdQyeZ0SS#rd{=`e$y|m(J^&`@7milt~NBT$`z-HIg$urcM=r`>uU!qN=)lSairFctTwb!Xv zKjo}#^);VS-@ER4@|B-5%g3?2Y?WPolt)_;IvIa-UfXDIV_G}LPjp(F+WLb7FoDlQ z;5bZ&9nRyH=2Wv|;d^tg&cQCWGi*CWp-yoqK7e!VX&4P-Zy$lfiTPzfCk};2a7X?_ zK8yOOD?dlvs5x=l=7MY;!}f5#If~{h+Db#@=e|?4?{#PM-uVjf8m{ACqR-mqSBANK z0@w7Rbhx{5W{c}x#|1<>dB^L;v34Hr@z;2Suk?ux!wzt-G@j)gVKX^)-ZSVH4zs0K zo|)e%t>?VS+eL z_~2Za0~@k^#jW6rbmlO`d0;tQ%f7!le1dPv&oR7FzVOa{<}IWl&0)a8&b3a&EQ&#m;C)la& zwUu_zj@m_;&CQsL5d$O6E9b2v){|K?Yz-N)KET>CYs{=4wwA#47mip{W<9d?V%8AI zxAnftB5&BPY|5cb`a=IJw>mpVFO-=mE1cIKM1RXe8_Qe$oKt6c)lN7|+tEe3XAIDD z_M`PPu!YTeZG;V)jh!tmRs!#O7a%N#zvhogYoWaV;5}pSsCoCe_mUkay_alFt~u)F zuFYfjts&>E-8El*+qw9ThG)TebIk;H!*TQCwvNMWa|`C8%{{vT*~J&{Egg4=(0Ed8U4X zLFN+(yh`wEyxTlQoPsy_Rk+4AqOYA-PwAQiQhyw_eXjbS55#veAHxT--+T;z>GqN4 zb)@BMY1{l7`HFqvMsY8^F9zn>1YatP?G|MeBg_A3ofrFp-okEe!zPKN;sou8gV;F5 zr`enAP+}h*v+3DK#tPhkC)r5s$i(=`o-VDe^oe8R4)%td;W4~%9ag!)dgqS;t6#$KLMwS z{nlGqJ8Eqg4EElK?{|3r+Iw`q>*bv~?+khm?~W1g==o;3clmq|+dJmIpYEH1w!UTS z8!x_X;#*k6`{%yz;vGNvco*L~V)ape<%aXEwKm_czP;P2zS;!#>kIt{)Ac2OufJW> zhpyo@oWNdy7q9^a(R((wF<}geH;8+{IJgHJvx#A%IapZ8zIEJpNURaHM%CKVzJcLg z2k*q$67M;9Z_Yb)AG!M@cYkQ)z31}byFYyP{cZ0(c*nte#olcoy*p=ps+M zt}HO4I6Sw;hn%n4J(-H)+W%*gME)52u_J- zY>ivjaYuTiTy%yg6Om`)dgX+*M44?X_bv}Tl!r9xL|2hp!gtl-=SxOlv+tt# zc82dSdH)(N`>uxXeLQ%6*X|)BzhmTgjr`7$-#+rtk&inU$2X1q-t*r?`qcRr;msqT zIr7Ixo-*>}kv}x@uo2%A@vRZ>m#dR?Too(MU@vaBH z$%oOV+LO74^( z-Ma?f0q~9*e17-c?>_s6$Is3;JAQ8D%_F}!5>EHs*}gFa+r87~JvZMD@eUfSh5^Ps zdmiTC3~?B^tjzcZ=E5%aG0bHn+u|j7=K8iP#eU!$jOKeA*Rav}FcyqOV=tSA9f2?P zhxOIklz!!F+0sAlY;86>gAVHxSdLHSY23jFcr5k+fAiPvvl)qVY)SP{2X$jBvscv@ z@8BaGYwZ$F#k2UVcMbV8zUAvZ4DYjF9q~TLerLlu*Svq&Hy*uH?wt|u{&@%R=JWSO zyp!m?cl_*q59hr%;(ZVAqua`l4)l!=?~AxkTHk`DJA5wR5aF}o6Xn;JbWa?Mt zN3fZF&i01S`49Xe{seK}{Ec=JBVms;*PspYn|R8W;z`9x_&)j{XJ(Vz!gYOxyXgoH zzzIZuIj0|8#|imR;`Pqseg1%Qm=RfOX0v zAH2&3e|?`8-m#7QzPax+dG{Pf!)j@JZ`wI{Ev;`h`OXyl^UV$RukUI2#zxjc6C|=PAGMP2n5$_s$2L){bnyt0QoS55s41AFLtp z$9a82*WkA}3BQ-!!w$+0gUi`tt<8tiY%|C3)cSkrt--goZXdQA|7>M;v+r8?4joLV z>>ASdNQv)Tz;PJv8**%J_~IMXa9e(OMA_Jn#yH!H|83kVzcI*`qObInF0vok5!te0 z7XIjcW6Aij?|xh+?om9G?IjQP6zt`<;Y2Y(nTU9(s`>=i4yWX>gx8A?g?s(8U+rAN^ z{k1dSM_W73$Kl(+TG)%5@uhs=xp(lKhxy*w^S$5R^Y#pwEj^o@Ew10Q!`bY(0~f$- z+YL=k7KUbI~S53?^(B>yr+y<2ZaQo^*W#f5SxBNZ=nF zgpIBjf3ht-oq+8yH{5lfH2hPXuYdS7^pFpSZ`eO{63@gX`c@eTpFp{k5$CX(iVxX$ zPX6Lw(ki#Iz-#=YO!UQE1rDJ<#;@2LdqA9rp0SzP$i-7&E!{QdVJ&-tUB@G~I^D`<-jHF+6_Zh?sES`GCiL>jT!pUhg2E-ZDP@7hfQb+)wO_Kf^Hb zXE6^pkg~CXdKcV2jLV+K4br<8)*rE5oWwVZvcrATNIZlM&dz?+2%8#i|H+Z(jQshL zKX)#Fc79h5UjLa9=bu0Fl_M`4>3e$4ec{NbjNk_LK5o*+u!rBw*Tet%2PU)o_zJ$E z=(lNn7f{*YKfl2@_OuaOu==Yvn@}I=AN`^~;gkNS+s1*o0z2-u5xC$RW^6cHnC%@a z_OG$mx9W^Ru?usQ+3d!sF>8FYzkKI`O%9()-+%CZA?I%z@%=O3EB!~!^-RkTjClY5+3t8!cTUKabQfae~i)Q+t^m@DRzwK7!Sq(Zlzar zhhLYjX+&Yq z;p}SH``%RjrhlE+Z)|Mbt&Ff7-|I)QF0m5WO^3uu)K7d12Et|hg_B_zJcWPFr^99V z2CMl}-cf*;1m`)%1FpePc!&e&P4mR=hx1}f`at~M{ntk1(f#n0^c-A)XY>_)*Ee+C z+z+9n=7Y=&@dwQrsSnQ4&-51$i(#p+{xyDx`|>@C>q(0n=!ZEO`QZn7DJKq57i|RJ z`D-vje1*=za5eCC@DZc0Gn{Duloyk7+or$m=ezQm2$L?l-v#(*8dx-b~Y?e+O#j{`-J5<@&QLxQ; z#0ByZs}S$*yRdy5*7x#!U(Pq@*y(<|0(OdVKk$YJ-f(5)aU(F9jqNuRd>_@fQNL;A z8%Mr=#P?GDcAIace#6K=9(n1A?{a_F$iEzM&i!99@`pzrG~zpYY;JR;VykckM!_w7 ztDVJKv>D#b!P^0E2UY(L-ef#Jo;`yH0PBj>luq{9Q^DPjTgV*8t; zWRucsHV=D+&&q~2@6E^H`xU!mOYeCYevMcnZj@fkQCwU7ZQ;H1upf?#Dav!(INFRp z(`EWjzxa&3^R8{-yz#)6&_}p4jF+!*Cl1S|!X5a8&Bk6cPB-4b1mjtpp}v46Vki1T zo5M@-CN?l0WlM{ZXg}DlEzM8h(Y|f#w;4V#zY6*bBkvr6>+c!4YlM&F8%#J>U$DiC z!Ps{WSIEnE*8QHG-*(_<=@5RF?*^W>aLhvwN&_B2W9~dLB z9@fHam{0TEs>9&|UeJC*HwhI7B((8FqhM<2=3ae0svCDCS>Ghz-&@B7VF% z6}rrxff;NJW5W0lA8CBhZ+gx?qVqVRc)RoB=8Y?{So1ohJouij6Z`U~?_vmI!sZ&| z54I%RhwuxG4?ZrwXkOCza!=ws!6Cj0;a)xi9A{g>KzNTU`ersR@Vi2|g*b-ur1*{f z9h+efi&w)+zj^aBBfeP*Q_W?5)cgk9$Bu}j7n6DN#Kk{<~F5&uRkMcZi;v0d$<9oXo&ls|;O z#F6~Yk{Hr|AMuS<^>8d^Zypz4`W7D!FsA{N#3JYuTZnyS9*WN|?!t!TOY`}SQCPz^ zW0x6o#;5THqu3<&#ZHV*JYmiZCK>C-J^Y6q;sn0uFFxSAa5#aD4`1Mo*n)4(c_zCM z#~9~gu&_WpnayLI7>{hV#s+TSPq)@h>=EAjv$g)jIWbXb^1a>1w%_)>>&BMYs_|qT znct+3I3Qa>KNTmWhkP?O2L5Ju7z@S*4iangeD;{JY%UWnus^dw*|q8;PE4eMLGTGy zzzKFE+fQ3)6aE-m8Bgmwv1|Q?N7?$~;l9rYi{Uc-hSSAr^hte@--VO$Htg1See>G9 zwfp%3Vr_6A{{Qb0KEek_-Zz3*ere-l0=bHYluZs`4E-hW;bF&lZi>>k*uj#67Wu~v} zBJlt|DLV(I;{f(hcukM_^u-I=MPi217l+3KI6zwVCqKbF6MTmq#sQpX7g=Y*PK8l$ zoz9D&WFx_8xFd#Q3%A5}jF0B~U>vT%0elbn!8`nbFOGSN(~JA?3B-nAJ6{48X1Dup z^|cZBN9_A;_kL@D{mkDmUh#-{h_bTfh%zcOKZI|AOW5VUH!YSgwjy7@SrqP?gMHV? zher4czh%VS>mx`0;K&n3K6B)0BVs~0TqgjfFB2%f2-9=CXvxn102O^@$%tB?BekKD_b ziZfs$T{V{2rmz|2SQi0v#9(cWW3dQ+g7LcN&-k*&sxi#&!!y45CN3{_3_E^iwGzc*}YjemC0@ zuCnE}A8ni)r{cQeq{f=qkg>)O$>!px8825y=&Mk|CjF4FFc~X z`4(bG#)NT(Ka5xYis$j$`19hlumKLhjN%~h37@bpaU?sKy{dlVN8-Ch_6JA)^T>~m{I?PLzkLK}05*DogV+gA7-3tm5yTwv9xlKU^b98wHi~2QC0)}7 zY!>}YkF}9LhS{(g#=_gUfStf+V{_|!_JcW7_JqRuGw);ToW7Ax|HuPI(;fW-^Ystj z;bYi8N(7RTWAK>WB_!(IpFeWTh--gi1fTqe5qJip{LZm>iTJp6e0U3>3O^Vt#s_RS_rk}cS9FYy&^=><&bJ0vf9My&*K@3` zrD4MuQ*@jzioJ^Ivhj>-{);|<0dNRLuwB`#>Vq5j6UCq5qB^%`hu?)aaRq-2x0|yS z+v6M54{x1$f}b3L>)$t`KmPT|cbv<2-u<0-fA`409eMf4_m9ARn2!%$I|BFRfp3Uo z=W)EW?s4zG8Tp=bk>B@@TpN+kPmka&JjB1?$Cz8@3$anGH^6Rv4V2Uh$= zpKG6F&mR;s(w6WS?&1x2udQ)_zwmay&%i#n1_lPx4e=X&ggbD|<_!7bjV;dM6VJo{ zY!bT0XW8PMYukU|Q@D@V@0blCPccdP<3U@;d>?t>LG@B6Wyc+S1+gUf&mW+F>>hE3 zz8?xF;h|&a#V~M#7?5$mrzZA0XJ0<-|6)IEB0fW0vgc%BtGEsk`+-9+{BMo$6>x$v zV!Xj+c~vI<1%cb7W8#F+ zHo+zFE1a$$cKj_))kf;AZSb3Yr=Nz zH)_l=wEmj*TlVHKU?!vBk%=Y@iG4X$csl_IAZ&vk-t6i^&{Ul^6y7r z7o3uZ-;FajirdVEihsdOF?%tIzJ<`b5_Ttiv4t;f#isEId}jZtKRXUC_-ov;*Q|SE zfAJBt9ovIWvrp(Ky92MVVdxmWw6E=5%bu~`!Wd=87>DLAa0vSkhl>$d|6v_~u`h-N z<6sLM!FBKg4i*=Ik78Bo>svwj0aUDLO zcx18q)-H(kTp5AMtqIj%Vvab5;2=VW@DDL(AU)B?&5N-e$#*fFAOvi5LX2@4V~mDZYq%#ku6u znt%J|Cz}6|Rt$@ef~(kJ&2@{d;~u<(bBrb90UzK2wi=wm9mW?P;0xqiz%hcGT;ucO z8e*R~@49=8Pveio3-+C7Kg&zH@-jy8k1bJ#w&m;Ic*Qv9C*c%0EOy18@*8mGwZ+H! z-Bq@`edpNva9kR3F7`jcMYhhfL(M(oCGUlqYk1p;-}&aph;jUD=Gyumm25PSZIN6hWvAoGmkS$rAmRm4y5kvR+V zuWU_m6tQ!B#6C7J${v0Hh&VV*f=94R3?=Mx4tBW?@1#xMGchr-koS#N0Bf4yg0->6ILzRa7?X){io>+OG+`Kg&=)WTZs-#>vOlpGb}il!L&rBT6LzxQ zVJUyj91*ZF4>ynSW6f__|0HiQEF6ea^bgPFT37mIZH4)M^J?@i&QTY( z1wRI_G~b~e*b#hGzPA_=JAyvfXT`KWFmWn&Rxz#OTH0Ei5%1{F=9aCOfcg4Wf8hXP z4w>xZcthXg4gDWBn_EcI18L|&{NnyC`x(Y74#876k-pItoF~3zZd0uK%xIc_{43{N zqfh)|_qdmRQ++&dmzRFh*XB@g39hjv#mI10yu}yV+=a8uncy6@RdXBs8<-TgShpFs z!2aeTF5(2~q{m5YJ{-lj!d*Cw#9{oI<1^x>cm$W=7yKr+MdZK5war29*-~E8*oV7# zEUx4Gz+<*2$v1MYeRXypP9w@GKjl$ZlJBO@_*okgK7{&fS6rTKA2VNbuT|3@>;QAM z)^M_?^;fnAn?ZjP`!|ocM(~LBbMCQ*jk(zplLh?mkA`ok`v|6yTcfu0f9$<{T; zu1Ram7*E?CGd_$9i2fjAGR13fvb6XRN1Mlh`TR%x zxaSY;%HrU^fuDpWp`qPdE?3$ z3)79+{E)_f+l>kEevfZ?7}xUL@%r9qOsRJ7;y@uWDNO$46dc$^YK!+WN^R%8mI;tOTdrp6&VO1t6NLUFoVJBN2jwX(GY(-2(dbYoNaT0&PTt1r^&hiti%fw%>7CxGXRd$#gHrc8Z zjDlV1g8o%!I;C&nA1s86^{+U-KRm1Lv?1;-22-EFvie;6@4ndmA)P*ZAQZFko_jKU-?!SaTv~mv)QWg2dszbH~@abahNU^*4o^Qu$_%84|Xp; zl5gTTdl&~uOX3pyM{d9e@hJ|#ciGB#AbS@VsI&IbR@w~qi76T{jT7yy?e)R#B>*|yXvD}>X(kD^XcSCJ5O!n8vWhvA7zKWS%Y2DzBi7fOkHrCEIj|h26ZoEppC_su62hZU^{DT{DB(BsR z>~;7F58;|Ni(}~9<`_Cb7yRjST%Zs2D~`wG*~Z2Pdnp_E%DF9ZnH>yA*sa;3_P3wO z7Ta>OL-9J$EGfe%}>(UyH}^RP7X z>v>@dTrqZF%Eo@@!~Ko-@~B)r*E2m!onRQj2W&rb@@!7OwXn1dL!=y{vJi1ME*zVdG7a2&*7_8&+60mqI&hbp5wUk?0U$T z-pfON+E|ga~g~oI~GCT4pt`X_j zG$cDyUU7;1JqJH+A3a z7g(MD!dJmlmx=4}U3&N7HhzY@JqOl%rspezpf{w#!V?CXvuf(zQ@{%4dzz6sWbKwU(fiv*3I1&3ZJA21yc8oTDYrA=l9qT^a zDxY{&z86VpaBvbYw{_mVco=6YE36OW;p4`}a5sEZ-!L)`jGs2|X{WGL`{@&7ULV!( z^>O3aSnkg`fAzVv$3Cy$FVjKKx=0Vx+wRNmRYqk^XVl?nE5z%rNk=c}$VGKimu(jt zTgKSYM}SjXVD-l9FdJ?s$2{T<;&I_6-q5BAE@|J^ zb#h|i(|`ABe|gwlJjQyGFY-;u^oW?On3BR*-ZL_JR&7Qw#>w5QZ z8yOckE-&edB^6H+U$I}jU0V0WA<9p-pU}BD1)u11{assZF4_IQ@s_UYJALbqe$(}A zZTjCBINCF3H_X5EA)bNR@(H)M{oa0dzGrQ5zBHbj?cDaVvh>WJyX)ZIZJS?~NA+pD z^OP^?uR5pyjTh&oQFrz5To}WLfI<8Un3NR53ZtaKL&QFDjdX9=dBjb4nQeZ3a2ckv zakInO-|XS+Z#H-~a`rL4g6;SLu4n%qdBpWN!878;?CW^2XUjkP-?rzuS2^+5F|Mo) zv>T~Cc3WtVj%zn**#Sq4@3?Ka5AW%RzS3v-whcVXmxbHeNVahAzOXNw zM_x%7>9}V}m+Ubsf6u}j$;R&XySBICv~$^R)zdRPFYG;X41C?T8_brz^6stkuE$v$ zo5QG$QhC0w~vSkn|BmXkRBc@3xAOxXe;iCKh+c8z!2C8i`cku54OQ0SPN5(IqjjHlo?;b zd1aQiwK?L=ViC$Lt!@&cOOd^8mfi zEe21_Evtj}gwx8WFTw?7An6|5_3Sv)zP{JK%C)(7>xXjUB5kI8+FBdhcMczENA0a0 zaKCb>dpb%lwW;v{A3a-I^*?!1Z#ruaZK%D{ZUX)K7V)#ug;h^f(Ic89c{d$P&sC>?|;#zXiV+Je9^?V!Kq)xDnG^I(ZQ)JMPJCU%1J%Hv*nWJgFV zU-@hI#uUugj@r4oC-E}pwH>~Yp3n>T!DM4mY|VVMIduI(pPG-RS9C}nl|z~Q!DDsS zA9Tjp#5MAiw{}nuZLQtlqp?P`gFe&F)lr_cr}{ZB4NPS>H#Ut`{VTutLVpn0RP4fY zjH&ElTVpd0khd|bALvkeBaQeqOcUQOHg0P?!q+fL**vE$or`nmo^;Bntj4%;tnSLW zkJB+_P_A@S`-Bzn7*58~%1yGRjRozOZs;32r4Q&T{qub7Q+e%scG%XK&9=~oVJ*GG z!`ZN&V?R7}?0NB=``jaqe6@As%Jb-jb2t)CcotnU-supXqepbtcz4~{P%n8KD|FdC z^jR8s;hby6hw>`JX*8bxE2FgX_6$-U-LL+hRb4#WHDxJ{eAL}IpsU(geTcr&AO0G< z%A$>IliIGat*z{D-`4$P`$)C3@@b2<_ILY)C+ee)+SOQv2{751y)xpw>*}U$q_4il zv~+j?7QhNTv19Vqc)}i%ZOndl9v+$d#y{4N?lq8jMV^(zv+9#DMSk*?PJYc7*jFa$ z(i3_>)P)|&OZ{M+I@^~%n^?MZOIv9_ZJX}spZcRd>R6w^tljr?AfX4w=GJ-pgzm!} z;@G%OTqDjKC$PZS4HsN9?mag>Qx$h0jvIBabna>WysdgFe5ux$ zF~LVCtLikzyZKL_HxB4WJV%e{6Md#*^p_68z;G)Za16U$3m3yn=eI2c6W|27a*h*l z5stu#^0bAG;S5fY1_lxPVM@<6E|ihjC(02%7mtW@T;F5R81`q}s(a(e_(`-+(mCnE zBlr0WE5Zw7+E_QPpo*xG{djO-I2c+5nf(k!%!gq!0D& zmipOsI%!M)631POe@k=J2|Djjf9l(<3yzJCctIcUzTN!_zr*mhTR+oNTj%kDbn>7l zM_VO*@;uj1x!+@Zxz9byPY;zFp2KqS4`Uxb*vEHp-?bAHoc>>JRKiu2rT}!$yA97K;oyI@`|9CZLer~XbxfZd-*I5iNx!9&&mJ@O>AAAFUmL*(e{du|P;YHz+#2(^ zD_+{z1fSx+xR0Hky$)Z+9bhZmZat8F=U}btgfGF5fY%$}#k63&_!hD59==;Y597rs z;5_NQG1uY+>-NQ|wm278^o~~VWR;(|N%88+t9;6QTz`bGa7Dh0`m-DGf^)9NHR>vl z+CzO?4{YE0%bpQ;;X-M4yB4ESw)`X9=6T9Zdgk7ihpjZyD=*HA+w9kuJ0H&^%AKf- zbJBUfcFEt;Ch}5`cvn3+^3GsbWO+~P;Dec>5wgLNmX`}7|Nz@S^b z@KVa`ZT2@iytSKqon^LqG2?5q2H&@c%n_Kc@eY~zxAz46CX4T0Sl3VN@Ar52y9C|^ z@NR(je!VZyy93@MaO}M6y*D7eeczl-yk8()(mMy@^1kQb`JSna-hJEBI}WayZ*uG% zi2cr+Igfsa07v01+!r6^hiR|;nC-X3$#GRajDEx8#qHvCeY*WL`^ES0|Mp|@b&mEz zzNq`y37(bY+sU`*R1Vv8ijTEzg>;MFYu@@UP;RFaQp~1{eWj@(^^SD&8O62mll+u}D8uF#JV!it3odi)TJd*y z3M&)G>I!$&he*5k%hNe&!`gVEt@Ezq1^LOxvz1j{a3sF;PMi1Vi1(g*ciPsm_o2O8 z=N&rl)A{y9-P$L6;#e1F3?HhdGqw=sN2u%_BF5Z0%^d1eC)GMBfx75+QZtA|jXQ54c z=dJgz@lzb6{k*g1-Rs2K2z;b{t(PE+aa`Ru&SPwUI= zljYkvZ!H8V4Q}K+<{RceI(D9JY`@Qad_Cvsj=8Ynnb{@VM!~CeEqf%+bWUEkJKF5KliS?b{XPr)FCk z>4;*7q$C=d5mpSTa_wXV#Xs*5C_EY6Cn;zWMgekYvn z#5ZD;^eN%1IhW7Ik7cjqOzQ<-4$n_+{pp=ycMYQ}ccNsyL@O zEITUxaa~&X@#}C*z7D^?cw07Foa5NFVw3DTK9D$s_*y)(<7vg!HrMcZnw!EUVlu`w zyPX}$-iN)$JB$wRVF6s|yA-g3J(``)ZuK3xurqrce!>~}+4t!B79HCf{t)}_={~l& zdwj=ke^1YO_PF$Y$IdtV_BZVMCOTY$=dKa^#Cd6Of%0cpt6MR>Q>5^o-)!o8PHge~ zlQ?C6?}OdGeHfhLS(U}}`^KPe59VjsR-b$u=d=|+f#2YJfBX!1?sqrB{5U0Euyqbc z;1S&YC`rRkrwe?L~->@Zq*TQe&bu2H(eY+fQ z;W0dglYF<__t}-#x3l|pIp2$@PaLG4`a=8T8al|nVF%G+oWic6`{D)cH}MH$n@uTB z#Xe@^#w9QacET-q34h@-E`Z_i9RB-Oo$rJa->>t#N4~RX>zj7IacaL~=i2uzKKs5k z+PClgHj{6T`c5p~z%97PbMXXD@GV^5Q^gDUGB6pI!d&Gpo(4Z*BVU1?Uz`eml6-^K z^L9R)oo# zZ9&@CN7_hR;a6*KwO`^m(WbcG{oB{`T)cN|PdXuPS)5YY^O4vgagKUw=j~tFcaCh| zEWe0Bx;vX4z{G#TV#If0U#pastF|R8YZjJ}<;F~KWxJHaZ%&GX$_EGo(Fc-(b z+PDRF!pwLD?z77Y9)ORw$v*E|JOV@6?%D5-@d}P9<`e(KOB<6tA1=o;{0#UH?>BGc z8{v`dqe$b}mfwOu-AizabLy@Q@Gif{*0Fn}!!w?%J(NZH)LT8aPXb$gGo6pZ))(s% z_kzLwZU$^7aGH<6SMd8E{0*Gp_tpF!1zg7+aK7Jt_5EY^qZ`HC&}-3_$_hI`_U0R<-6;6 z%rZAG8x8UHyB!5{24Hkh~r{TJsjo{fK43%}UV@B|jYp#<*0bGVK# zeD~D%RDF-yZy@>oZoeb#cYYo-;(OP=Z=Lw|wR668{@4+}G1|AT-P^aW{Z^1~uKE_M zZ?gJ6tM9G))~oNnK4--51o|#4p6NTQ%BQTbR2|es>8{g)5iG8s|b6LcGA?*OE@0gbmBy)dz5eoeXP~MVXY1eUFRs4RN1- zIr2-sU;KjKaVjprADid#vG3C2Xk3l6@jAihiQj-dinhk{(y|NWq3`j0-?+t1xXN>t zf$reEIEWwD+?2k+C3qHh;0oJIis+vH z>+j-U_DR?6Z{Njpl%qLAyrZ1BBwmR_Tx(uTe^&l{D*c=s=Y%|0ndt>R#4+@+*cu(8 zOZ**kJ7Nv^#hh*2V*b}$4BJt>DL#R@_yi`1^T2GjX1oGN+1)T7U*xaA)Hp+|J}iZ; zVm`L*7Xz||w_&gQ@Qu8--vYPs2|pm;CI6)FZ|^wP_Al@RZeb^@r%jodWyNh6;;@|cmwk34zgnInH{ z(4QW8{m2_f-ZAq2 zk-J77@GB3PU+eprvwY?6IevG+?}y_q`~u@}8w^!;xXUJn$Lvh;cVpLBh2v~Myr4ad zOLiZwW%G$yv-h+eoz#x(7-Nv$@rU!nv!m#z@!FUzrb}0)VJESX#3sxyvL(eYJj*jZ zTO34L#7D$S*sbtIAHgxWb!`N{;1)iCI2O)?<9^!$x5E8fMtnQnZ(I0II`N%!-$D0# z6n^6Z-}`+FobER)2#(jb_#XHBJw2k|9s51je(OT}`>hN7@3)e0zxQZz3I`_32tx^*}K4<*hQ3yYJQgAhl)nnytdz>OpQ5XN?Daz*~R(z z8^)>2q+_Ve*zLH-QPRc1VtUxRmHv-uRifyY-7 z+dBSs`Q{V9v&yG<_Xt1Z#v5+D;n$D+rjdt?;FE`sJYwWgBlzUgM?PcZvqzpf^0^~V z8+p=*Yq$p&@mcsi;%9yvim%jM4Bv^*VF){NpIL7=7{?xbXtzGC3EQ6KByNoU4 z#JHgUY%H-KV_OWxJcQpOf>H2^|AAZJI1I7%yA6J`q2F_WSALHN_Q3xKjl6Gu7wK&y zKRfc{Bd;BK&AHq;zd8LABlzU!M*io>J4fC#@{tk0L+f_~@fKgk?@RmLpRh~0{5AyJ zn(Zy##zy9sh!f#Rb>f$>gW3IXiXCa}8vihg9SBq4I*b<=#3|a$_+tanIeJLHa7?jj z`c3f27WPzjpm88Z>m1uipU6wz>`DECUyOb8was7Ia8welqe-g*?cda#9 z()S#3w>>v+3?{Khw5FF&U^BCg!=!G3?q?O7G|hJhg6Y;~Q(QITx`T7;LVRea8N0SMl}50>mzi|KEh~0>Rm=`FvCRTzE;2%DNfwzrZH1F;_kw*Lt9=WeM6*e&Y9X`QUu@}#Q zx1I@mJ->BXcr-B|(0*Iz#A}*+F()lPs80L_b~RB?IPZMon3N8`X%jffkHQVtM#SR8 zezYCGv2|0n#q_l;J}Jh+$JFLqT$4^7@|3^%9?v|=aSms%y)YND=jZhs|LCH+S0~R= zC-u?)o=?#|x;s4$NXsxkvgDY@C_l;i*pG~kS=lTTIU=yU(!LklJ0GNqfgS&f%=~g*e7&p z>z#Y~$*l`JZrNJK1^dW2F<#ho;tBk0aff0G#upo~xPoo_>_mUYq_Jt78pFo3*s(D# zwqd**_r`yi(YAA82y7A8Dh9FR;Otl!MRq&_hLPeDu&vmHXhieAVlVe4Fp}@H=YruU z{D<#}<2b?f((H7wH$K4&@EF&?=F@Ed9cP%0D+mlH@O;nt@BP*gwB6U@nfL`S;=j0& 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 z8`ur(26h9xf!)AvU^lQE*bVFkb_2VC-N0^OH?SMn4eSPX1G|CUz;0kSup8J7>;`rN zyMf)nZeTaC8`ur(26h9xf!)AvU^lQE*bVFkb_2VC-N0^OH?SMn4eSPX1G|CUz;0kS zup8J7>;`rNyMf)nZeTaC8`ur(26h9xf!)AvU^lQE*bVFkb_2VC-N0^OH?SMn4eSPX z1G|CUz;0kSup8J7>;`rNyMf)nZeTaC8`ur(26h9xf!)AvU^lQE*bVFkb_2VC-N0^O zH?SMn4eSPX1G|CUz;0kSup8J7>;`rNyMf)nZeTaC8`ur(26h9xf!)AvU^lQE*bVFk zb_2VC-N0^OH?SMn4eSPX1G|CUz;0kSup8J7>;`rNyMf)nZeTaC8`ur(26h9xf!)Av zU^lQE*bVFkb_2VC-N0^OH?SMn4eSPX1G|CUz;0kSup8J7>;`rNyMf)nZeTaC8`ur( z26h9xf!)AvU^lQE*bVFkb_2VC-N0^OH?SMn4eSPX1G|CUz;0kSup8J7>;`rNyMf)n zZeTaC8`ur(26h9xf!)AvU^lQE*bVFkb_2VC-N0^OH?SMn4eSPX1G|CUz;0kSup8J7 z>;`rNyMf)nZeTaC8`ur(26h9xf!)AvU^lQE*bVFkb_2VC-N0^OH?SMn4eSPX1G|CU zz;0kSup8J7>;`rNyMf)nZeTaC8`ur(26h9xf!)AvU^lQE*bVFkb_2VC-N0^OH?SMn z4eSPX1G|CUz;0kSup8J7>;`rNyMf)nZeTaC8`ur(26h9xf!)AvU^lQE*bVFkb_2VC z-N0^OH?SMn4eSPX1G|CUz;0kSup8J7>;`rNyMf)nZeTaC8`ur(26h9xf!)AvU^lQE z*bVFkb_2VC-N0^OH?SMn4eSPX1G|CUz;0kSup8J7>;`rNyMf)nZeTaC8`ur(26h9x zf!)AvU^lQE*bVFkb_2VC-N0^OH?SMn4eSPX1G|CUz;0kSup8J7>;`rNyMf)nZeTaC z8`ur(26h9xf!)AvU^lQE*bVFkb_2VC-N0^OH?SMn4eSPX1G|CUz;0kSup8J7>;`rN zyMf)nZeTaC8`ur(26h9xf!)AvU^lQE*bVFkb_2VC-N0^OH?SMn4eSPX1G|CUz;0kS zup8J7>;`rNyMf)nZeTaC8`ur(26h9xf!)AvU^lQE*bVFkb_2VC-N0^OH?SMn4eSPX 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 z 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%0A5U+IXVjQz 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�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%0D)dxobce+e=EzT< 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∾y!sYRW33G?xpaK(C>9iy%>!F>J^{rB^` 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�p+N1alkU;;;<0*L>o7 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 OO=%MT)I!=R;r{{l@2YG7 literal 0 HcmV?d00001 diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/__init__.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/__init__.py new file mode 100644 index 0000000000..1f0515e3ff --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/__init__.py @@ -0,0 +1,32 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Model-local E2E plugin package. + +Concrete runner, comparator, and reference implementations are copied into +this package so a model test does not import central concrete E2E strategies. +""" + +from __future__ import annotations + +import os + + +def _case_artifact_dir(artifacts_dir: str, case_name: str) -> str: + if case_name: + d = os.path.join(artifacts_dir, case_name) + else: + d = artifacts_dir + os.makedirs(d, exist_ok=True) + return d + + +def save_full_stderr(stderr: str, artifacts_dir: str, stage_name: str, case_name: str = "") -> tuple: + truncated = stderr[-2000:] if len(stderr) > 2000 else stderr + if not artifacts_dir: + return truncated, None + d = _case_artifact_dir(artifacts_dir, case_name) + path = os.path.join(d, f"{stage_name}_stderr.log") + with open(path, "w", encoding="utf-8") as f: + f.write(stderr) + return truncated, path diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/comparator.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/comparator.py new file mode 100644 index 0000000000..ce2117b7a3 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/comparator.py @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""parakeet_tdt model-owned E2E comparator plugins.""" + +from __future__ import annotations + +from .comparators.parakeet_tdt_asr import SpeechToTextComparator + + +class ParakeetTDTSpeechToTextComparator(SpeechToTextComparator): + """parakeet_tdt local comparator for speech_to_text.""" + +comparator = ParakeetTDTSpeechToTextComparator() diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/comparators/__init__.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/comparators/__init__.py new file mode 100644 index 0000000000..b3d69a0a48 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/comparators/__init__.py @@ -0,0 +1,9 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Comparators 闁?TRT vs reference output comparison for each task strategy. + +Each module in this package should expose a module-level ``plugin`` attribute +that is an instance implementing the Comparator protocol. The registry +auto-discovers these plugins on first access. +""" diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/comparators/_helpers.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/comparators/_helpers.py new file mode 100644 index 0000000000..20d4d897b6 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/comparators/_helpers.py @@ -0,0 +1,48 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Shared helper functions for comparator modules. + +These utilities were previously duplicated across multiple comparator files. +The canonical implementations come from text.py. +""" + +from __future__ import annotations + +import numpy as np + + +def cosine_similarity(a: np.ndarray, b: np.ndarray) -> float: + """Cosine similarity between two 1-D vectors. Returns 0.0 on degenerate input.""" + norm_a = np.linalg.norm(a) + norm_b = np.linalg.norm(b) + if norm_a < 1e-12 or norm_b < 1e-12: + return 0.0 + return float(np.dot(a, b) / (norm_a * norm_b)) + + +def levenshtein_distance(s1: str, s2: str) -> int: + """Standard Levenshtein edit distance via dynamic programming.""" + if len(s1) < len(s2): + return levenshtein_distance(s2, s1) + if len(s2) == 0: + return len(s1) + + prev_row = list(range(len(s2) + 1)) + for i, c1 in enumerate(s1): + curr_row = [i + 1] + for j, c2 in enumerate(s2): + insertions = prev_row[j + 1] + 1 + deletions = curr_row[j] + 1 + substitutions = prev_row[j] + (0 if c1 == c2 else 1) + curr_row.append(min(insertions, deletions, substitutions)) + prev_row = curr_row + return prev_row[-1] + + +def normalized_edit_distance(s1: str, s2: str) -> float: + """Levenshtein distance normalized by max string length. 0.0 = identical.""" + max_len = max(len(s1), len(s2)) + if max_len == 0: + return 0.0 + return levenshtein_distance(s1, s2) / max_len diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/comparators/parakeet_tdt_asr.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/comparators/parakeet_tdt_asr.py new file mode 100644 index 0000000000..1f818fcbf1 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/comparators/parakeet_tdt_asr.py @@ -0,0 +1,147 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Speech-to-text comparator. + +Compares TRT transducer transcription output against reference with metrics: +- Decoder token agreement rate +- Word Error Rate (WER) +- Character Error Rate (CER) +- Timestamp sanity (if timestamps are available) +""" + +from __future__ import annotations + +import logging + +from ..contracts import CompareResult, MetricResult, StageOutput, StageSpec, StageStatus, ThresholdProfile +from ._helpers import levenshtein_distance + +logger = logging.getLogger(__name__) + + +def _compute_wer(reference: str, hypothesis: str) -> float: + """Compute Word Error Rate.""" + ref_words = reference.strip().lower().split() + hyp_words = hypothesis.strip().lower().split() + if not ref_words: + return 0.0 if not hyp_words else 1.0 + distance = levenshtein_distance(ref_words, hyp_words) + return distance / len(ref_words) + + +def _compute_cer(reference: str, hypothesis: str) -> float: + """Compute Character Error Rate.""" + ref_chars = list(reference.strip().lower()) + hyp_chars = list(hypothesis.strip().lower()) + if not ref_chars: + return 0.0 if not hyp_chars else 1.0 + distance = levenshtein_distance(ref_chars, hyp_chars) + return distance / len(ref_chars) + + +def _token_agreement_rate(trt_tokens: list, ref_tokens: list) -> float: + """Compute token-level agreement rate between two token sequences.""" + if not ref_tokens: + return 1.0 if not trt_tokens else 0.0 + n = min(len(trt_tokens), len(ref_tokens)) + if n == 0: + return 0.0 + matches = sum(1 for i in range(n) if trt_tokens[i] == ref_tokens[i]) + return matches / max(len(trt_tokens), len(ref_tokens)) + + +class SpeechToTextComparator: + """Compares TRT transcription against reference transcription.""" + + @property + def task_strategy(self) -> str: + return "speech_to_text" + + def compare( + self, + trt: StageOutput, + ref: StageOutput, + threshold: ThresholdProfile, + stage: StageSpec, + ) -> CompareResult: + metrics: dict[str, MetricResult] = {} + thresholds = threshold.metrics + all_pass = True + + # Check TRT returncode + if trt.data.get("returncode", -1) != 0: + return CompareResult( + stage_name=stage.name, + status=StageStatus.ERROR.value, + metrics={}, + message=f"TRT transcription failed (rc={trt.data.get('returncode')})", + ) + + trt_transcript = trt.data.get("transcript", trt.text or "") + ref_transcript = ref.data.get("transcript", ref.text or "") + + # Token agreement + trt_tokens = trt.data.get("token_ids", []) + ref_tokens = ref.data.get("token_ids", []) + if trt_tokens and ref_tokens: + agreement = _token_agreement_rate(trt_tokens, ref_tokens) + thresh = thresholds.get("token_agreement_rate", 0.8) + ok = agreement >= thresh + metrics["token_agreement_rate"] = MetricResult( + value=agreement, threshold=thresh, operator=">=", passed=ok) + if not ok: + all_pass = False + + # Word Error Rate + if trt_transcript and ref_transcript: + wer = _compute_wer(ref_transcript, trt_transcript) + wer_thresh = thresholds.get("wer", 0.1) + wer_ok = wer <= wer_thresh + metrics["wer"] = MetricResult( + value=wer, threshold=wer_thresh, operator="<=", passed=wer_ok) + if not wer_ok: + all_pass = False + + # Character Error Rate + cer = _compute_cer(ref_transcript, trt_transcript) + cer_thresh = thresholds.get("cer", 0.05) + cer_ok = cer <= cer_thresh + metrics["cer"] = MetricResult( + value=cer, threshold=cer_thresh, operator="<=", passed=cer_ok) + if not cer_ok: + all_pass = False + + # Timestamp sanity (if available) + trt_timestamps = trt.data.get("timestamps", []) + if trt_timestamps: + ts_sane = self._check_timestamp_sanity( + trt_timestamps, + thresholds.get("timestamp_tolerance_s", 0.5), + ) + metrics["timestamp_sanity"] = MetricResult( + value=1.0 if ts_sane else 0.0, threshold=1.0, operator=">=", passed=ts_sane) + if not ts_sane: + all_pass = False + + return CompareResult( + stage_name=stage.name, + status=StageStatus.PASSED.value if all_pass else StageStatus.FAILED.value, + metrics=metrics, + composite_rule="all metrics must pass", + message=f"{'PASS' if all_pass else 'FAIL'}: " + f"trt='{trt_transcript[:80]}' ref='{ref_transcript[:80]}'", + ) + + @staticmethod + def _check_timestamp_sanity(timestamps: list, tolerance_s: float) -> bool: + """Check that timestamps are monotonically increasing within tolerance.""" + if len(timestamps) < 2: + return True + for i in range(1, len(timestamps)): + if timestamps[i] < timestamps[i - 1] - tolerance_s: + return False + return True + + +plugin = SpeechToTextComparator() diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/contract.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/contract.py new file mode 100644 index 0000000000..f9f0c36d93 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/contract.py @@ -0,0 +1,322 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""ParakeetTDT-owned speech-to-text contract plugin.""" + +from __future__ import annotations + +import re + +from tests.e2e_harness.contracts import MetricResult +# Model-owned contract helpers. Keep behavior here so contract semantics do not +# drift across model families through shared harness code. +def contract_config(case): + config = case.metadata.get("contract_config", {}) + return dict(config) if isinstance(config, dict) else {} + + +def normalize_text(text: str) -> str: + if not text: + return "" + return " ".join(text.split()).strip().lower() + + +def strip_prompt_echo(text: str, prompt: str) -> str: + if not text or not prompt: + return text + idx = text.find(prompt) + if 0 <= idx <= 2048: + return text[idx + len(prompt):].lstrip() + norm_text = normalize_text(text) + norm_prompt = normalize_text(prompt) + if norm_prompt and norm_text.startswith(norm_prompt): + return text[len(prompt):].lstrip() if text.startswith(prompt) else text + return text + + +_CHAT_ROLE_PREFIXES = ( + "### response:", "### assistant:", "assistant:", + "<|assistant|>", "<|im_start|>assistant\n", +) + +_CHAT_TURN_MARKERS = ( + "### response:", "### instruction:", "### assistant:", + "### user:", "<|assistant|>", "<|user|>", + "<|im_start|>", "<|im_end|>", +) + + +def strip_chat_markup(text: str) -> str: + if not text: + return "" + out = text.lstrip() + while True: + lowered = out.lower() + matched = False + for prefix in _CHAT_ROLE_PREFIXES: + if lowered.startswith(prefix): + out = out[len(prefix):].lstrip() + matched = True + break + if not matched: + break + lowered = out.lower() + cut = len(out) + for marker in _CHAT_TURN_MARKERS: + idx = lowered.find(marker) + if idx > 0: + cut = min(cut, idx) + if cut < len(out): + out = out[:cut] + import re + out = re.sub(r"(?:\s*#{2,}\s*)+$", "", out).strip() + return out + + +def extract_answer(output, prompt: str = "") -> str: + raw = output.text or "" + if prompt: + raw = strip_prompt_echo(raw, prompt) + raw = strip_chat_markup(raw) + return raw.strip() + + +def levenshtein_ned(a: str, b: str) -> float: + if not a and not b: + return 0.0 + max_len = max(len(a), len(b)) + if max_len == 0: + return 0.0 + if len(a) < len(b): + a, b = b, a + prev = list(range(len(b) + 1)) + for i, c1 in enumerate(a): + curr = [i + 1] + for j, c2 in enumerate(b): + curr.append(min( + prev[j + 1] + 1, + curr[j] + 1, + prev[j] + (0 if c1 == c2 else 1), + )) + prev = curr + return prev[-1] / max_len + + +def make_pass(stage_name: str, metrics, rule: str = ""): + from tests.e2e_harness.contracts import CompareResult + return CompareResult( + stage_name=stage_name, + status="passed", + metrics=metrics, + composite_rule=rule, + message="Contract verified", + ) + + +def make_fail(stage_name: str, metrics, rule: str = "", message: str = ""): + from tests.e2e_harness.contracts import CompareResult + return CompareResult( + stage_name=stage_name, + status="failed", + metrics=metrics, + composite_rule=rule, + message=message or "Contract verification failed", + ) + + +def make_skip(stage_name: str, metrics, rule: str = "", message: str = ""): + from tests.e2e_harness.contracts import CompareResult + return CompareResult( + stage_name=stage_name, + status="skipped", + metrics=metrics, + composite_rule=rule, + message=message or "Contract validation skipped", + ) + + +def make_error(stage_name: str, error: str): + from tests.e2e_harness.contracts import CompareResult + return CompareResult( + stage_name=stage_name, + status="error", + message=f"Contract verification error: {error}", + ) + +_NO_SPEECH_STATE_VALUE = { + "speech": 0.0, + "empty": 1.0, + "blank_audio_token": 2.0, +} + +def _edit_breakdown(ref_items, hyp_items): + rows = len(ref_items) + 1 + cols = len(hyp_items) + 1 + dp = [[0] * cols for _ in range(rows)] + for i in range(1, rows): + dp[i][0] = i + for j in range(1, cols): + dp[0][j] = j + + for i in range(1, rows): + for j in range(1, cols): + sub_cost = 0 if ref_items[i - 1] == hyp_items[j - 1] else 1 + dp[i][j] = min( + dp[i - 1][j - 1] + sub_cost, + dp[i - 1][j] + 1, + dp[i][j - 1] + 1, + ) + + i = len(ref_items) + j = len(hyp_items) + matches = substitutions = insertions = deletions = 0 + while i > 0 or j > 0: + if i > 0 and j > 0 and ref_items[i - 1] == hyp_items[j - 1] and dp[i][j] == dp[i - 1][j - 1]: + matches += 1 + i -= 1 + j -= 1 + elif i > 0 and j > 0 and dp[i][j] == dp[i - 1][j - 1] + 1: + substitutions += 1 + i -= 1 + j -= 1 + elif i > 0 and dp[i][j] == dp[i - 1][j] + 1: + deletions += 1 + i -= 1 + else: + insertions += 1 + j -= 1 + + return { + "matches": matches, + "substitutions": substitutions, + "insertions": insertions, + "deletions": deletions, + } + +def _word_error_rate(ref_words, hyp_words): + if not ref_words: + return 0.0 if not hyp_words else 1.0 + breakdown = _edit_breakdown(ref_words, hyp_words) + errors = breakdown["substitutions"] + breakdown["insertions"] + breakdown["deletions"] + return errors / len(ref_words) + +def _wer_words(text): + words = [] + for word in str(text or "").split(): + stripped = re.sub(r"^[^\w]+|[^\w]+$", "", word).lower() + if stripped: + words.append(stripped) + return words + +def _character_error_rate(ref_text, hyp_text): + if not ref_text: + return 0.0 if not hyp_text else 1.0 + breakdown = _edit_breakdown(list(ref_text), list(hyp_text)) + errors = breakdown["substitutions"] + breakdown["insertions"] + breakdown["deletions"] + return errors / len(ref_text) + +def _no_speech_state(text): + stripped = str(text or "").strip() + if not stripped: + return "empty" + if re.fullmatch(r"\[?\s*blank[\s_-]*audio\s*\]?", stripped, flags=re.IGNORECASE): + return "blank_audio_token" + return "speech" + +class ParakeetTDTASRPlugin: + reference_families = ["asr_parakeet_tdt"] + user_contract = "exact_transcript" + + def configure_reference(self, case): + return {"auto_class": "AutoModelForTDT", "parakeet_tdt": True} + + def verify(self, trt_output, ref_output, case, threshold): + raw_trt_text = trt_output.data.get("transcript", trt_output.text or "") + raw_ref_text = ref_output.data.get("transcript", ref_output.text or "") + trt_no_speech_state = _no_speech_state(raw_trt_text) + ref_no_speech_state = _no_speech_state(raw_ref_text) + no_speech_state_match = trt_no_speech_state == ref_no_speech_state + + trt_text = normalize_text(raw_trt_text) + ref_text = normalize_text(raw_ref_text) + + if not ref_text: + return make_error("full_generation", "Reference produced empty transcript") + + ned = levenshtein_ned(trt_text, ref_text) + + trt_words = _wer_words(trt_text) + ref_words = _wer_words(ref_text) + wer = _word_error_rate(ref_words, trt_words) + wer_breakdown = _edit_breakdown(ref_words, trt_words) + cer = _character_error_rate(ref_text, trt_text) + exact_match = trt_text == ref_text + + ned_threshold = threshold.metrics.get( + "contract_ned_threshold", + threshold.metrics.get("normalized_text_edit_distance", 0.1), + ) + wer_threshold = threshold.metrics.get( + "contract_wer_threshold", + threshold.metrics.get("wer", 0.1), + ) + cer_threshold = threshold.metrics.get( + "contract_cer_threshold", + threshold.metrics.get("cer", 0.1), + ) + + metrics = { + "normalized_transcript_exact_match": MetricResult( + value=1.0 if exact_match else 0.0, + threshold=1.0, + operator=">=", + passed=exact_match, + note="Composite gate for the exact_transcript user contract", + ), + "ned": MetricResult(value=ned, threshold=ned_threshold, operator="<=", passed=ned <= ned_threshold), + "wer": MetricResult(value=wer, threshold=wer_threshold, operator="<=", passed=wer <= wer_threshold), + "cer": MetricResult( + value=cer, + threshold=cer_threshold, + operator="<=", + passed=cer <= cer_threshold, + note="ASR-specific informational metric; not part of composite gate yet", + ), + "wer_substitutions": MetricResult( + value=float(wer_breakdown["substitutions"]), + note="ASR-specific informational WER breakdown", + ), + "wer_insertions": MetricResult( + value=float(wer_breakdown["insertions"]), + note="ASR-specific informational WER breakdown", + ), + "wer_deletions": MetricResult( + value=float(wer_breakdown["deletions"]), + note="ASR-specific informational WER breakdown", + ), + "trt_no_speech_state": MetricResult( + value=_NO_SPEECH_STATE_VALUE[trt_no_speech_state], + note=f"0=speech, 1=empty, 2=blank_audio_token; observed={trt_no_speech_state}", + ), + "reference_no_speech_state": MetricResult( + value=_NO_SPEECH_STATE_VALUE[ref_no_speech_state], + note=f"0=speech, 1=empty, 2=blank_audio_token; observed={ref_no_speech_state}", + ), + "no_speech_state_match": MetricResult( + value=1.0 if no_speech_state_match else 0.0, + note="Informational only; gate after silence/blank-audio user contract is agreed", + ), + } + + passed = exact_match + rule = "normalized TRT transcript == normalized reference transcript" + if passed: + return make_pass("full_generation", metrics, rule) + return make_fail( + "full_generation", + metrics, + rule, + f"Transcript diverged: WER={wer:.3f} NED={ned:.3f} CER={cer:.3f}", + ) + +plugin = ParakeetTDTASRPlugin() diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/contracts.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/contracts.py new file mode 100644 index 0000000000..d6f9281d2a --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/contracts.py @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Model-local E2E contract aliases. + +Contracts remain the stable harness API; concrete runners/references/comparators +are owned by the model package. +""" + +from tests.e2e_harness.contracts import * # noqa: F401,F403 diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/reference.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/reference.py new file mode 100644 index 0000000000..b31987ccd7 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/reference.py @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""parakeet_tdt model-owned E2E reference plugins.""" + +from __future__ import annotations + +from .references.parakeet_tdt_hf import HfTransformersReference + + +class ParakeetTDTHfTransformersReference(HfTransformersReference): + """parakeet_tdt local reference for hf_transformers.""" + +reference = ParakeetTDTHfTransformersReference() diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/references/__init__.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/references/__init__.py new file mode 100644 index 0000000000..c5460fd6be --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/references/__init__.py @@ -0,0 +1,9 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Reference backends 闁?reference inference for comparison. + +Each module in this package should expose a module-level ``plugin`` attribute +that is an instance implementing the ReferenceBackendRunner protocol. The +registry auto-discovers these plugins on first access. +""" diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/references/parakeet_tdt_hf.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/references/parakeet_tdt_hf.py new file mode 100644 index 0000000000..d69da1ef79 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/references/parakeet_tdt_hf.py @@ -0,0 +1,161 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Pinned Hugging Face Parakeet TDT speech-to-text reference.""" + +from __future__ import annotations + +import json +import os +import subprocess +import sys +import tempfile +import textwrap +import time +from pathlib import Path + +from .. import _case_artifact_dir, save_full_stderr +from ..contracts import E2ECase, RunContext, StageOutput, StageSpec + + +PROJECT_DIR = Path(__file__).resolve().parents[6] +E2E_DIR = PROJECT_DIR / "tests" / "e2e" + + +def _resolve_audio_path(value: str) -> str: + path = Path(value) + if path.is_file(): + return str(path.resolve()) + for base in (E2E_DIR, PROJECT_DIR): + candidate = base / path + if candidate.is_file(): + return str(candidate.resolve()) + return value + + +class HfTransformersReference: + @property + def backend_name(self) -> str: + return "hf_transformers" + + def run_stage( + self, case: E2ECase, stage: StageSpec, ctx: RunContext + ) -> StageOutput: + if stage.name not in {"full_generation", "full_inference"}: + raise ValueError(f"Unknown Parakeet TDT reference stage: {stage.name!r}") + if case.task_strategy != "speech_to_text": + raise ValueError( + f"Parakeet TDT reference only supports speech_to_text, got " + f"{case.task_strategy!r}" + ) + + artifact_root = ctx.artifacts_dir or tempfile.gettempdir() + output_dir = ( + _case_artifact_dir(artifact_root, case.name) + if ctx.artifacts_dir + else artifact_root + ) + Path(output_dir).mkdir(parents=True, exist_ok=True) + output_path = str(Path(output_dir) / "hf_parakeet_tdt.json") + audio_path = _resolve_audio_path(str(case.inputs.get("audio", ""))) + revision = str(case.hf_revision or "") + if not revision: + raise ValueError("Parakeet TDT HF reference requires an immutable hf_revision") + + script = textwrap.dedent( + f"""\ + import json + import math + import numpy as np + import scipy.io.wavfile as wav + from scipy.signal import resample_poly + import torch + from transformers import pipeline + + model_id = {case.hf_id!r} + revision = {revision!r} + audio_path = {audio_path!r} + output_path = {output_path!r} + + sample_rate, audio = wav.read(audio_path) + if audio.dtype == np.int16: + audio = audio.astype(np.float32) / 32768.0 + elif audio.dtype == np.int32: + audio = audio.astype(np.float32) / 2147483648.0 + else: + audio = audio.astype(np.float32) + if audio.ndim > 1: + audio = audio.mean(axis=1) + + asr = pipeline( + "automatic-speech-recognition", + model=model_id, + revision=revision, + torch_dtype=torch.float32, + device=0 if torch.cuda.is_available() else -1, + ) + target_sample_rate = int(asr.feature_extractor.sampling_rate) + if sample_rate != target_sample_rate: + divisor = math.gcd(int(sample_rate), target_sample_rate) + audio = resample_poly( + audio, + target_sample_rate // divisor, + int(sample_rate) // divisor, + ).astype(np.float32) + sample_rate = target_sample_rate + result = asr({{"array": audio, "sampling_rate": int(sample_rate)}}) + text = str(result.get("text", "")).strip() + if not text: + raise RuntimeError("pinned HF Parakeet TDT reference returned empty text") + with open(output_path, "w", encoding="utf-8") as handle: + json.dump({{"text": text}}, handle) + """ + ) + python = ctx.reference_python_path() or sys.executable + env = dict(os.environ) + if ctx.ld_library_path: + env["LD_LIBRARY_PATH"] = ctx.ld_library_path + started = time.monotonic() + try: + result = subprocess.run( + [python, "-c", script], + capture_output=True, + text=True, + timeout=1800, + env=env, + ) + except subprocess.TimeoutExpired as exc: + stderr, log_path = save_full_stderr( + str(exc.stderr or ""), ctx.artifacts_dir or "", + "hf_parakeet_tdt", case.name + ) + suffix = f" (full stderr: {log_path})" if log_path else "" + raise RuntimeError( + f"HF Parakeet TDT reference timed out: {stderr}{suffix}" + ) from exc + elapsed = time.monotonic() - started + if result.returncode != 0: + stderr, log_path = save_full_stderr( + result.stderr or "", ctx.artifacts_dir or "", + "hf_parakeet_tdt", case.name + ) + suffix = f" (full stderr: {log_path})" if log_path else "" + raise RuntimeError( + f"HF Parakeet TDT reference failed (rc={result.returncode}): " + f"{stderr}{suffix}" + ) + data = json.loads(Path(output_path).read_text(encoding="utf-8")) + return StageOutput( + stage_name=stage.name, + data=data, + text=str(data["text"]), + timing_s=elapsed, + metadata={ + "model_id": case.hf_id, + "revision": revision, + "returncode": result.returncode, + }, + ) + + +plugin = HfTransformersReference() diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/runner.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/runner.py new file mode 100644 index 0000000000..03d3dfdfd4 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/runner.py @@ -0,0 +1,18 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""parakeet_tdt model-owned E2E runner plugins.""" + +from __future__ import annotations + +from .runners.parakeet_tdt_speech import SpeechToTextRunner + + +class ParakeetTDTSpeechToTextRunner(SpeechToTextRunner): + """parakeet_tdt local runner for speech_to_text.""" + + @property + def strategy_name(self) -> str: + return "speech_to_text" + +runner = ParakeetTDTSpeechToTextRunner() diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/runners/__init__.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/runners/__init__.py new file mode 100644 index 0000000000..4eb746b01f --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/runners/__init__.py @@ -0,0 +1,9 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Strategy runners 闁?TRT inference execution for each task strategy. + +Each module in this package should expose a module-level ``plugin`` attribute +that is an instance implementing the TaskStrategyRunner protocol. The registry +auto-discovers these plugins on first access. +""" diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/runners/parakeet_tdt_speech.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/runners/parakeet_tdt_speech.py new file mode 100644 index 0000000000..e6024d3088 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/runners/parakeet_tdt_speech.py @@ -0,0 +1,248 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Audio and speech strategy runners. + +Provides TRT inference runners for three audio/speech task strategies: +- speech_to_text: transducer transcription (audio in, text out) +- text_to_audio: audio generation (text in, audio out) +- speech_to_speech: PersonaPlex-style speech transformation (audio in, audio out) + +All GPU work runs in subprocesses for memory isolation. The registry +auto-discovers ONE plugin per module, so this module registers via +explicit calls in the module footer rather than a single ``plugin``. +""" + +from __future__ import annotations + +import logging +import os +import re +import struct +import subprocess +import time +from pathlib import Path + +from .. import save_full_stderr, _case_artifact_dir +from ..contracts import E2ECase, RunContext, StageOutput, StageSpec + +logger = logging.getLogger(__name__) + +PROJECT_DIR = Path(__file__).resolve().parents[6] + + +def _find_trt_lib_dir() -> str: + """Find TRT library directory from the Python tensorrt_libs package.""" + try: + import importlib.util + spec = importlib.util.find_spec("tensorrt_libs") + if spec and spec.submodule_search_locations: + return spec.submodule_search_locations[0] + except ImportError: + pass + return "" + + +def _build_ld_library_path(ctx: RunContext) -> str: + """Build LD_LIBRARY_PATH from context or auto-detect.""" + if ctx.ld_library_path: + return ctx.ld_library_path + trt_lib = _find_trt_lib_dir() + parts = [] + if trt_lib: + parts.append(trt_lib) + parts.append("/usr/local/cuda/lib64") + existing = os.environ.get("LD_LIBRARY_PATH", "") + if existing: + parts.append(existing) + return ":".join(parts) + + +def _resolve_bundle_path(case: E2ECase, ctx: RunContext) -> str: + """Resolve the full path to the .bundle artifact.""" + bundle_name = case.bundle or case.inputs.get("bundle", "") + if not bundle_name: + bundle_name = f"{case.name}.bundle" + if os.path.isabs(bundle_name): + return bundle_name + return os.path.join(ctx.engine_dir, bundle_name) + + +def _distributed_runtime_config(case: E2ECase) -> dict: + config = case.metadata.get("distributed_runtime", {}) + return config if isinstance(config, dict) and config.get("enabled") else {} + + +def _wrap_distributed_command(cmd: list[str], case: E2ECase) -> list[str]: + config = _distributed_runtime_config(case) + if not config: + return cmd + launcher = str(config.get("launcher", "mpirun") or "mpirun") + world_size = int(config.get("world_size", config.get("tp_size", 2)) or 2) + launcher_args = config.get("launcher_args") + if isinstance(launcher_args, list): + return [launcher] + [str(arg) for arg in launcher_args] + cmd + return [launcher, "--tag-output", "-np", str(world_size)] + cmd + + +def _strip_mpirun_tags(text: str) -> str: + lines = [] + for line in text.splitlines(): + lines.append(re.sub(r"^\[[^\]]+\]:\s?", "", line)) + return "\n".join(lines) + + +def _untag_ranked_mpirun_line(line: str) -> tuple[int | None, str]: + match = re.match(r"^\[([^\]]+)\]:\s?(.*)$", line) + if not match: + return None, line + rank_text = match.group(1).split(",")[-1] + try: + return int(rank_text), match.group(2) + except ValueError: + return None, match.group(2) + + +def _read_wav_rms(path: str) -> float: + """Read a WAV file and return its RMS energy.""" + import numpy as np + with open(path, "rb") as f: + riff = f.read(4) + if riff != b"RIFF": + return 0.0 + f.read(4) # chunk size + f.read(4) # WAVE + + data_bytes = b"" + audio_format = 1 + while True: + chunk_id = f.read(4) + if len(chunk_id) < 4: + break + chunk_size = struct.unpack(" str: + return "parakeet_tdt_speech_to_text" + + def run_stage( + self, case: E2ECase, stage: StageSpec, ctx: RunContext + ) -> StageOutput: + if stage.name in ("generate", "transcribe", "end_to_end", "full_generation"): + return self._run_transcribe(case, stage, ctx) + return StageOutput( + stage_name=stage.name, + data={"error": f"Unknown speech_to_text stage: {stage.name}"}, + ) + + def _run_transcribe( + self, case: E2ECase, stage: StageSpec, ctx: RunContext + ) -> StageOutput: + """Run C++ binary with audio input to produce transcript.""" + bundle_path = _resolve_bundle_path(case, ctx) + binary = ctx.binary_path + ld_path = _build_ld_library_path(ctx) + + # Resolve audio input path + audio_input = (case.inputs.get("audio") or case.inputs.get("audio_path") + or case.metadata.get("test_input_audio", "")) + if audio_input and not os.path.isabs(audio_input): + # Resolve relative to project's tests/e2e/ directory + e2e_dir = Path(__file__).resolve().parents[2] / "e2e" + audio_input = str(e2e_dir / audio_input) + + max_new_tokens = case.inputs.get("max_new_tokens", 100) + + cmd = [ + binary, "transcribe", bundle_path, + "--audio", audio_input, + "--max-new-tokens", str(max_new_tokens), + ] + runtime_cli_python = ctx.runtime_cli_hf_python() + if runtime_cli_python: + cmd.extend(["--hf-python", runtime_cli_python]) + + env = {**os.environ, "LD_LIBRARY_PATH": ld_path} + cmd = _wrap_distributed_command(cmd, case) + + t0 = time.monotonic() + result = subprocess.run( + cmd, capture_output=True, text=True, timeout=600, env=env) + elapsed = time.monotonic() - t0 + + # Parse output: expect transcript text on stdout. + # Strip special tokens like <|notimestamp|>, <|endoftext|>, etc. + clean_stdout = _strip_mpirun_tags(result.stdout) + transcript_lines = [ + re.sub(r'<\|[^|]+\|>', '', line).strip() + for line in clean_stdout.splitlines() + ] + transcript = next((line for line in transcript_lines if line), "") + + # Try to extract token IDs if the binary outputs them + token_ids = [] + for line in _strip_mpirun_tags(result.stderr).splitlines(): + if line.startswith("tokens:"): + try: + token_ids = [int(t) for t in line.split(":", 1)[1].strip().split()] + except (ValueError, IndexError): + pass + + # Persist transcript for human inspection + if ctx.artifacts_dir and transcript: + art_dir = Path(_case_artifact_dir(ctx.artifacts_dir, case.name)) + txt_path = art_dir / "trt_transcript.txt" + txt_path.write_text(transcript, encoding="utf-8") + + stderr_truncated, stderr_log = save_full_stderr( + result.stderr or "", ctx.artifacts_dir or "", + "speech_to_text", case.name) + stt_data: dict = { + "returncode": result.returncode, + "transcript": transcript, + "token_ids": token_ids, + "stderr": stderr_truncated, + } + if stderr_log: + stt_data["stderr_log"] = stderr_log + + return StageOutput( + stage_name=stage.name, + data=stt_data, + text=transcript, + timing_s=elapsed, + metadata={"command": cmd}, + ) + + +plugin = SpeechToTextRunner() diff --git a/tests/e2e/models/parakeet_tdt/manifests/parakeet-tdt-0.6b-v3.json b/tests/e2e/models/parakeet_tdt/manifests/parakeet-tdt-0.6b-v3.json new file mode 100644 index 0000000000..4509884219 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/manifests/parakeet-tdt-0.6b-v3.json @@ -0,0 +1,144 @@ +{ + "name": "parakeet-tdt-0.6b-v3", + "hf_id": "nvidia/parakeet-tdt-0.6b-v3", + "hf_revision": "541d1f99c6b0c3cd0b11a95167540bb8edefd82b", + "bundle": "parakeet-tdt-0.6b-v3.bundle", + "family": "parakeet_tdt", + "runtime_strategy": "parakeet_tdt_speech_to_text", + "task_strategy": "speech_to_text", + "precision": "fp16", + "max_cache_length": 128, + "trust_remote_code": false, + "testcases": [ + { + "name": "parakeet-tdt-0.6b-v3", + "trace_id": "IT-E2E-PRKTTDT-01", + "reference_family": "asr_parakeet_tdt", + "user_contract": "exact_transcript", + "test_type": "transcription", + "reference_precision": "fp32", + "prompt": "test", + "max_new_tokens": 50, + "test_input_audio": "data/Recording.wav" + }, + { + "name": "parakeet-tdt-0.6b-v3-asr-probe01", + "trace_id": "IT-E2E-PRKTTDT-ASR-01", + "reference_family": "asr_parakeet_tdt", + "user_contract": "exact_transcript", + "test_type": "transcription", + "ci_tier": "nightly_only", + "l0_replacement": "parakeet-tdt-0.6b-v3", + "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", + "prompt": "test", + "max_new_tokens": 50, + "test_input_audio": "data/asr_probes/probe_01_clean_48k_stereo_baseline.wav", + "asr_probe_id": "probe_01_clean_48k_stereo_baseline", + "asr_probe_readiness": "ready_now", + "asr_probe_purpose": "Current smoke input copied as baseline.", + "notes": "Nightly ASR coverage probe for Model Connect input handling: WAV decode + stereo input + model-specific resample." + }, + { + "name": "parakeet-tdt-0.6b-v3-asr-probe02", + "trace_id": "IT-E2E-PRKTTDT-ASR-02", + "reference_family": "asr_parakeet_tdt", + "user_contract": "exact_transcript", + "test_type": "transcription", + "ci_tier": "nightly_only", + "l0_replacement": "parakeet-tdt-0.6b-v3", + "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", + "prompt": "test", + "max_new_tokens": 50, + "test_input_audio": "data/asr_probes/probe_02_clean_16k_mono_no_resample.wav", + "asr_probe_id": "probe_02_clean_16k_mono_no_resample", + "asr_probe_readiness": "ready_now", + "asr_probe_purpose": "Cover native 16k mono path.", + "notes": "Nightly ASR coverage probe for Model Connect input handling: WAV decode without model-side downmix; should avoid 48k->16k resample in ASR preprocessing." + }, + { + "name": "parakeet-tdt-0.6b-v3-asr-probe03", + "trace_id": "IT-E2E-PRKTTDT-ASR-03", + "reference_family": "asr_parakeet_tdt", + "user_contract": "exact_transcript", + "test_type": "transcription", + "ci_tier": "nightly_only", + "l0_replacement": "parakeet-tdt-0.6b-v3", + "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", + "prompt": "test", + "max_new_tokens": 50, + "test_input_audio": "data/asr_probes/probe_03_clean_48k_mono_resample.wav", + "asr_probe_id": "probe_03_clean_48k_mono_resample", + "asr_probe_readiness": "ready_now", + "asr_probe_purpose": "Cover mono 48k resample path.", + "notes": "Nightly ASR coverage probe for Model Connect input handling: WAV decode + 48k->16k resample, without stereo downmix." + }, + { + "name": "parakeet-tdt-0.6b-v3-asr-probe04", + "trace_id": "IT-E2E-PRKTTDT-ASR-04", + "reference_family": "asr_parakeet_tdt", + "user_contract": "exact_transcript", + "test_type": "transcription", + "ci_tier": "nightly_only", + "l0_replacement": "parakeet-tdt-0.6b-v3", + "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", + "prompt": "test", + "max_new_tokens": 50, + "test_input_audio": "data/asr_probes/probe_04_clean_48k_stereo_gain_skew.wav", + "asr_probe_id": "probe_04_clean_48k_stereo_gain_skew", + "asr_probe_readiness": "ready_now", + "asr_probe_purpose": "Cover stereo-to-mono with asymmetric channel levels.", + "notes": "Nightly ASR coverage probe for Model Connect input handling: Stereo downmix should be robust when L/R channels are not identical." + }, + { + "name": "parakeet-tdt-0.6b-v3-asr-probe05", + "trace_id": "IT-E2E-PRKTTDT-ASR-05", + "reference_family": "asr_parakeet_tdt", + "user_contract": "exact_transcript", + "test_type": "transcription", + "ci_tier": "nightly_only", + "l0_replacement": "parakeet-tdt-0.6b-v3", + "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", + "prompt": "test", + "max_new_tokens": 50, + "test_input_audio": "data/asr_probes/probe_05_low_volume_48k_stereo.wav", + "asr_probe_id": "probe_05_low_volume_48k_stereo", + "asr_probe_readiness": "ready_now", + "asr_probe_purpose": "Cover low-amplitude PCM handling.", + "notes": "Nightly ASR coverage probe for Model Connect input handling: PCM int16 decode + float normalization + ASR preprocessing." + }, + { + "name": "parakeet-tdt-0.6b-v3-asr-probe06", + "trace_id": "IT-E2E-PRKTTDT-ASR-06", + "reference_family": "asr_parakeet_tdt", + "user_contract": "exact_transcript", + "test_type": "transcription", + "ci_tier": "nightly_only", + "l0_replacement": "parakeet-tdt-0.6b-v3", + "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", + "prompt": "test", + "max_new_tokens": 50, + "test_input_audio": "data/asr_probes/probe_06_leading_trailing_silence_48k_stereo.wav", + "asr_probe_id": "probe_06_leading_trailing_silence_48k_stereo", + "asr_probe_readiness": "ready_now", + "asr_probe_purpose": "Cover non-speech padding around valid speech.", + "notes": "Nightly ASR coverage probe for Model Connect input handling: Longer waveform decode + silence handling + transcript stability." + }, + { + "name": "parakeet-tdt-0.6b-v3-asr-probe08", + "trace_id": "IT-E2E-PRKTTDT-ASR-08", + "reference_family": "asr_parakeet_tdt", + "user_contract": "exact_transcript", + "test_type": "transcription", + "ci_tier": "nightly_only", + "l0_replacement": "parakeet-tdt-0.6b-v3", + "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", + "prompt": "test", + "max_new_tokens": 50, + "test_input_audio": "data/asr_probes/probe_08_noisy_48k_stereo_snr20.wav", + "asr_probe_id": "probe_08_noisy_48k_stereo_snr20", + "asr_probe_readiness": "nightly_optional", + "asr_probe_purpose": "Cover deterministic noisy input handling.", + "notes": "Nightly ASR coverage probe for Model Connect input handling: PCM decode + preprocessing under non-clean waveform." + } + ] +} diff --git a/tests/e2e/models/parakeet_tdt/runner.py b/tests/e2e/models/parakeet_tdt/runner.py new file mode 100644 index 0000000000..eaaaa25820 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/runner.py @@ -0,0 +1,186 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Model-owned E2E runner for the parakeet_tdt family.""" + +from __future__ import annotations + +import os +import subprocess +import sys +from contextlib import contextmanager +from pathlib import Path + +from tests.e2e_harness.model_runner import ( + model_names_for_dir, + run_model_e2e as run_model_manifest_e2e, +) + +_MODEL_DIR = Path(__file__).resolve().parent +_PROJECT_DIR = _MODEL_DIR.parents[3] +_WAIVES_FILE = _MODEL_DIR / "waives.txt" + + +def _resolve_binary(config) -> str: + cli_val = config.getoption("--trtmc-binary", default=None) + if cli_val: + return str(Path(cli_val).absolute()) + default = _PROJECT_DIR / "build" / "trtmc" + return str(default) if default.is_file() else "" + + +def _resolve_hf_python(config) -> str: + cli_val = config.getoption("--hf-python", default=None) + if cli_val: + return str(Path(cli_val).absolute()) + venv = _PROJECT_DIR / ".venv" / "bin" / "python" + if venv.is_file(): + return str(venv) + return sys.executable + + +def _resolve_engine_dir(config) -> str: + cli_val = config.getoption("--engine-dir", default=None) + if cli_val: + d = Path(cli_val) + else: + d = Path("/mnt/storage/tensorrt-model-connect/engines") + d.mkdir(parents=True, exist_ok=True) + return str(d) + + +def _resolve_model_plugin_dir(config) -> str: + cli_val = config.getoption("--model-plugin-dir", default=None) + return str(Path(cli_val).absolute()) if cli_val else "" + + +def _resolve_artifacts_dir(config) -> str: + cli_val = config.getoption("--e2e-artifacts-dir", default=None) + if cli_val: + return str(Path(cli_val)) + return str(Path("/tmp/e2e_artifacts") / _MODEL_DIR.name) + + +@contextmanager +def _model_plugin_dir_env(path: str): + old_value = os.environ.get("TRTMC_MODEL_PLUGIN_DIR") + if path: + os.environ["TRTMC_MODEL_PLUGIN_DIR"] = path + try: + yield + finally: + if old_value is None: + os.environ.pop("TRTMC_MODEL_PLUGIN_DIR", None) + else: + os.environ["TRTMC_MODEL_PLUGIN_DIR"] = old_value + + +def _resolve_ld_library_path() -> str: + try: + result = subprocess.run( + [ + sys.executable, + "-c", + "import importlib.util; s=importlib.util.find_spec('tensorrt_libs'); " + "print(s.submodule_search_locations[0])", + ], + capture_output=True, + text=True, + timeout=10, + ) + trt_lib_dir = result.stdout.strip() + except Exception: + trt_lib_dir = "" + base = os.environ.get("LD_LIBRARY_PATH", "") + nccl_lib_dir = os.environ.get("TRTMC_NCCL_LIB_DIR", "") + parts = [p for p in [nccl_lib_dir, trt_lib_dir, "/usr/local/cuda/lib64", base] if p] + return ":".join(parts) + + +def _load_waives(platform: str = "") -> dict[str, tuple[str, str]]: + waives: dict[str, tuple[str, str]] = {} + if not _WAIVES_FILE.is_file(): + return waives + + platform = platform.strip() + with open(_WAIVES_FILE, encoding="utf-8") as f: + for line in f: + line = line.strip() + if not line or line.startswith("#"): + continue + parts = line.split(None, 2) + if len(parts) < 2: + continue + + name_part = parts[0] + action = parts[1].upper() + reason = parts[2] if len(parts) > 2 else "" + if action not in ("SKIP", "XFAIL"): + continue + + if "/" in name_part: + plat, model_name = name_part.split("/", 1) + if plat != platform: + continue + else: + model_name = name_part + waives[model_name] = (action, reason) + return waives + + +def _is_multi_device_case(case) -> bool: + metadata = case.metadata or {} + return str(metadata.get("ci_tier", "") or "") == "multi_device" + + +def _parse_e2e_model_filters(values: list[str] | None) -> set[str]: + filters: set[str] = set() + for raw in values or []: + for item in str(raw).split(","): + item = item.strip() + if item: + filters.add(item) + return filters + + +def _case_matches_e2e_model(case, filters: set[str]) -> bool: + if not filters: + return True + metadata = case.metadata or {} + fields = { + case.name, + case.family, + case.runtime_strategy, + case.task_strategy, + Path(case.hf_id).name if case.hf_id else "", + str(metadata.get("family", "")), + str(metadata.get("runtime_strategy", "")), + } + return bool(filters & {field for field in fields if field}) + + +def model_case_names(config=None) -> list[str]: + return model_names_for_dir( + config=config, + model_dir=_MODEL_DIR, + case_matches_model=_case_matches_e2e_model, + is_multi_device_case=_is_multi_device_case, + ) + + +def run_model_e2e(case_name: str, request) -> None: + run_model_manifest_e2e( + model_name=case_name, + request=request, + model_dir=_MODEL_DIR, + load_waives=_load_waives, + case_matches_model=_case_matches_e2e_model, + is_multi_device_case=_is_multi_device_case, + resolve_hf_python=_resolve_hf_python, + resolve_artifacts_dir=_resolve_artifacts_dir, + resolve_binary=_resolve_binary, + resolve_ld_library_path=_resolve_ld_library_path, + resolve_engine_dir=_resolve_engine_dir, + resolve_model_plugin_dir=_resolve_model_plugin_dir, + model_plugin_dir_env=_model_plugin_dir_env, + ) diff --git a/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_contracts.py b/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_contracts.py new file mode 100644 index 0000000000..dbc017c101 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_contracts.py @@ -0,0 +1,478 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +import ast +import importlib +import importlib.util +import json +import re +import runpy +import sys +from pathlib import Path +from types import ModuleType +from types import SimpleNamespace + +import numpy as np +import pytest + + +REPO_ROOT = Path(__file__).resolve().parents[4] +FAMILY_ROOT = REPO_ROOT / "python" / "tensorrt_model_connect" / "families" / "parakeet_tdt" +PINNED_REVISION = "541d1f99c6b0c3cd0b11a95167540bb8edefd82b" + + +def _load_module(name: str, filename: str): + path = FAMILY_ROOT / filename + spec = importlib.util.spec_from_file_location(name, path) + if spec is None or spec.loader is None: + raise RuntimeError(f"cannot load {path}") + module = importlib.util.module_from_spec(spec) + sys.modules[name] = module + spec.loader.exec_module(module) + return module + + +def _hf_config() -> dict: + return { + "architectures": ["ParakeetForTDT"], + "model_type": "parakeet_tdt", + "vocab_size": 8193, + "blank_token_id": 8192, + "decoder_hidden_size": 640, + "num_decoder_layers": 2, + "durations": [0, 1, 2, 3, 4], + "max_symbols_per_step": 10, + "hidden_act": "relu", + "pad_token_id": 2, + "encoder_config": { + "hidden_size": 1024, + "intermediate_size": 4096, + "num_hidden_layers": 24, + "num_attention_heads": 8, + "num_mel_bins": 128, + "conv_kernel_size": 9, + "subsampling_conv_channels": 256, + "subsampling_factor": 8, + "max_position_embeddings": 5000, + "attention_bias": False, + "convolution_bias": False, + "scale_input": False, + }, + } + + +def test_config_parses_the_published_architecture_and_rejects_drift() -> None: + config_mod = _load_module("parakeet_tdt_config", "config.py") + cfg = config_mod.ParakeetTDTConfig.from_json(json.dumps(_hf_config())) + + assert cfg.encoder_hidden_size == 1024 + assert cfg.encoder_layers == 24 + assert cfg.encoder_heads == 8 + assert cfg.decoder_hidden_size == 640 + assert cfg.decoder_layers == 2 + assert cfg.vocab_size == 8193 + assert cfg.blank_id == 8192 + assert cfg.durations == (0, 1, 2, 3, 4) + cfg.validate_supported_checkpoint() + + bad = _hf_config() + bad["durations"] = [0, 1, 2, 4] + with pytest.raises(ValueError, match="durations"): + config_mod.ParakeetTDTConfig.from_json(json.dumps(bad)).validate_supported_checkpoint() + + +def test_tdt_policy_uses_duration_values_and_forces_zero_duration_progress() -> None: + policy = _load_module("parakeet_tdt_decode_policy", "decode_policy.py") + + emitted = policy.make_tdt_greedy_decision( + token_id=7, + duration_index=2, + durations=(0, 1, 3), + blank_id=9, + ) + assert emitted.emit_token is True + assert emitted.frame_advance == 3 + + blank_zero = policy.make_tdt_greedy_decision( + token_id=9, + duration_index=0, + durations=(0, 1, 3), + blank_id=9, + ) + assert blank_zero.emit_token is False + assert blank_zero.frame_advance == 1 + + nonblank_zero = policy.make_tdt_greedy_decision( + token_id=7, + duration_index=0, + durations=(0, 1, 3), + blank_id=9, + ) + assert nonblank_zero.emit_token is True + assert nonblank_zero.frame_advance == 0 + + +def test_hf_tensor_mapper_keeps_token_and_duration_heads_separate() -> None: + checkpoint = _load_module("parakeet_tdt_checkpoint", "checkpoint.py") + state = { + "decoder.embedding.weight": np.zeros((6, 4), dtype=np.float32), + "decoder.lstm.weight_ih_l0": np.zeros((16, 4), dtype=np.float32), + "decoder.lstm.weight_hh_l0": np.zeros((16, 4), dtype=np.float32), + "decoder.lstm.bias_ih_l0": np.ones((16,), dtype=np.float32), + "decoder.lstm.bias_hh_l0": np.ones((16,), dtype=np.float32), + "decoder.decoder_projector.weight": np.zeros((4, 4), dtype=np.float32), + "decoder.decoder_projector.bias": np.zeros((4,), dtype=np.float32), + "encoder_projector.weight": np.zeros((4, 8), dtype=np.float32), + "encoder_projector.bias": np.zeros((4,), dtype=np.float32), + "joint.head.weight": np.arange(36, dtype=np.float32).reshape(9, 4), + "joint.head.bias": np.arange(9, dtype=np.float32), + } + mapped = checkpoint.map_transducer_weights( + state, + vocab_size=6, + duration_count=3, + decoder_layers=1, + decoder_hidden_size=4, + encoder_hidden_size=8, + ) + + assert mapped["joint_token_w"].shape == (4, 6) + assert mapped["joint_duration_w"].shape == (4, 3) + np.testing.assert_array_equal(mapped["joint_token_b"], np.arange(6, dtype=np.float32)) + np.testing.assert_array_equal(mapped["joint_duration_b"], np.arange(6, 9, dtype=np.float32)) + np.testing.assert_array_equal(mapped["pred.0.bias"], np.full((16,), 2.0, dtype=np.float32)) + + +def test_nemo_classifier_uses_tdt_architecture_fields_not_checkpoint_name(tmp_path: Path) -> None: + archive = _load_module("parakeet_tdt_nemo_archive", "nemo_archive.py") + parakeet = { + "target": "nemo.collections.asr.models.rnnt_bpe_models.EncDecRNNTBPEModel", + "decoding": {"model_type": "tdt", "durations": [0, 1, 2, 3, 4]}, + "joint": {"num_extra_outputs": 5}, + } + ordinary_rnnt = { + "target": "nemo.collections.asr.models.rnnt_bpe_models.EncDecRNNTBPEModel", + "joint": {"num_extra_outputs": 0}, + } + assert archive._matches_parakeet_tdt(parakeet) + assert not archive._matches_parakeet_tdt(ordinary_rnnt) + + (tmp_path / "config.json").write_text( + json.dumps({"model_type": "parakeet_tdt"}), encoding="utf-8") + (tmp_path / "model.safetensors").write_bytes(b"header-only-test-placeholder") + (tmp_path / "legacy.nemo").write_bytes(b"not-read-when-hf-is-present") + assert archive.resolve_model_dir(tmp_path) == tmp_path + + +def test_manifest_pins_exact_hugging_face_revision_and_strict_asr_oracle() -> None: + manifest_path = Path(__file__).with_name("manifests") / "parakeet-tdt-0.6b-v3.json" + raw = json.loads(manifest_path.read_text(encoding="utf-8")) + + assert raw["hf_id"] == "nvidia/parakeet-tdt-0.6b-v3" + assert raw["hf_revision"] == PINNED_REVISION + assert raw["family"] == "parakeet_tdt" + assert raw["runtime_strategy"] == "parakeet_tdt_speech_to_text" + assert raw["task_strategy"] == "speech_to_text" + assert raw["testcases"] + assert all(case["reference_family"] == "asr_parakeet_tdt" for case in raw["testcases"]) + assert all(case["user_contract"] == "exact_transcript" for case in raw["testcases"]) + assert len(raw["testcases"]) == 8 + family_root = manifest_path.parents[1] + for case in raw["testcases"]: + assert (family_root / case["test_input_audio"]).is_file() + threshold = family_root / "thresholds" / f"{case['name']}.json" + values = json.loads(threshold.read_text(encoding="utf-8"))["threshold_overrides"] + assert values["wer"] <= 0.3 + assert values["cer"] <= 0.2 + + +def test_hf_reference_propagates_the_manifest_revision(monkeypatch, tmp_path: Path) -> None: + reference = importlib.import_module( + "tests.e2e.models.parakeet_tdt.e2e_plugins.references.parakeet_tdt_hf" + ) + captured: dict = {} + + def _fake_run(command, **kwargs): + captured.update(command=command, kwargs=kwargs) + script = command[2] + output_match = re.search(r"^output_path = (.+)$", script, re.MULTILINE) + assert output_match is not None + output_path = ast.literal_eval(output_match.group(1)) + Path(output_path).write_text(json.dumps({"text": "reference text"}), encoding="utf-8") + return SimpleNamespace(returncode=0, stderr="") + + monkeypatch.setattr(reference.subprocess, "run", _fake_run) + case = SimpleNamespace( + task_strategy="speech_to_text", + metadata={}, + hf_revision=PINNED_REVISION, + hf_id="nvidia/parakeet-tdt-0.6b-v3", + inputs={"audio": "missing-test-audio.wav"}, + name="pinned-reference", + ) + stage = SimpleNamespace(name="full_inference") + ctx = SimpleNamespace( + artifacts_dir=str(tmp_path), + ld_library_path="", + reference_python_path=lambda: None, + ) + + output = reference.HfTransformersReference().run_stage(case, stage, ctx) + + script = captured["command"][2] + assert f"revision = {PINNED_REVISION!r}" in script + assert "target_sample_rate = int(asr.feature_extractor.sampling_rate)" in script + assert "resample_poly(" in script + assert output.metadata["revision"] == PINNED_REVISION + + +def test_reference_profile_pins_transformers_with_tdt_support() -> None: + from tensorrt_model_connect.python_profiles import ( + default_execution_profiles, + load_python_profile_registry, + ) + + profiles = load_python_profile_registry()["profiles"] + + assert default_execution_profiles(family="parakeet_tdt")["reference"] == ( + "parakeet_tdt_reference" + ) + spec = profiles["parakeet_tdt_reference"] + requirements = (FAMILY_ROOT.parents[1] / str(spec["requirements"])).read_text( + encoding="utf-8" + ) + assert "librosa==0.11.0" in requirements.splitlines() + assert "scipy==1.18.1" in requirements.splitlines() + assert "transformers==5.9.0" in requirements.splitlines() + + +def test_release_reference_uses_the_tdt_auto_model_contract(monkeypatch) -> None: + runner = runpy.run_path( + str(REPO_ROOT / "benchmarks/performance/baselines/task_reference.py") + ) + captured: dict[str, object] = {} + + class FakeTensor: + def is_floating_point(self): + return True + + def to(self, *args, **kwargs): + captured.setdefault("input_to", []).append((args, kwargs)) + return self + + class FakeSequences: + def __getitem__(self, _index): + return self + + def detach(self): + return self + + def cpu(self): + return self + + def tolist(self): + return [4, 8, 15] + + class FakeProcessor: + @classmethod + def from_pretrained(cls, model, **kwargs): + captured["processor_load"] = (model, kwargs) + return cls() + + def __call__(self, audio, **kwargs): + captured["processor_call"] = (audio.tolist(), kwargs) + return {"input_features": FakeTensor()} + + def decode(self, sequences, **kwargs): + captured["decode"] = (sequences, kwargs) + return ["Parakeet transcript"] + + class FakeModel: + config = SimpleNamespace(_commit_hash=PINNED_REVISION) + + @classmethod + def from_pretrained(cls, model, **kwargs): + captured["model_load"] = (model, kwargs) + return cls() + + def eval(self): + return self + + def to(self, device): + captured["model_device"] = device + return self + + def parameters(self): + return iter([SimpleNamespace(dtype="fp32")]) + + def generate(self, **kwargs): + captured["generate"] = kwargs + return SimpleNamespace(sequences=FakeSequences()) + + class WrongModel: + @classmethod + def from_pretrained(cls, *_args, **_kwargs): + raise AssertionError("Parakeet TDT must not use AutoModelForSpeechSeq2Seq") + + class InferenceMode: + def __enter__(self): + return None + + def __exit__(self, *_args): + return None + + fake_torch = ModuleType("torch") + fake_torch.float16 = "fp16" + fake_torch.float32 = "fp32" + fake_torch.bfloat16 = "bf16" + fake_torch.device = lambda value: value + fake_torch.inference_mode = InferenceMode + fake_transformers = ModuleType("transformers") + fake_transformers.AutoModelForSpeechSeq2Seq = WrongModel + fake_transformers.AutoModelForTDT = FakeModel + fake_transformers.AutoProcessor = FakeProcessor + fake_engine = ModuleType("tools.validation.engine") + fake_engine._read_wav_float32 = lambda _path: ( + np.array([0.25], dtype=np.float32), + 16_000, + ) + fake_engine._resample_audio = lambda audio, _source_rate, _target_rate: audio + monkeypatch.setitem(sys.modules, "torch", fake_torch) + monkeypatch.setitem(sys.modules, "transformers", fake_transformers) + monkeypatch.setitem(sys.modules, "tools.validation.engine", fake_engine) + + manifest = Path(__file__).with_name("manifests") / "parakeet-tdt-0.6b-v3.json" + arguments = SimpleNamespace( + family="parakeet_tdt", + manifest=manifest, + model="nvidia/parakeet-tdt-0.6b-v3", + revision=PINNED_REVISION, + precision="fp32", + trust_remote_code=False, + local_files_only=True, + ) + session = runner["_load_asr"]( + arguments, + {"audio_path": "data/Recording.wav", "max_new_tokens": 50}, + {"auto_model_class": "AutoModelForTDT"}, + ) + + assert session.invoke() == { + "text": "Parakeet transcript", + "token_ids": [4, 8, 15], + "output_tokens": 3, + } + assert captured["model_load"] == ( + "nvidia/parakeet-tdt-0.6b-v3", + { + "trust_remote_code": False, + "local_files_only": True, + "torch_dtype": "fp32", + "revision": PINNED_REVISION, + }, + ) + assert captured["generate"]["max_new_tokens"] == 50 + assert captured["generate"]["return_dict_in_generate"] is True + assert isinstance(captured["decode"][0], FakeSequences) + assert captured["decode"][1] == {"skip_special_tokens": True} + assert session.resolved_revision == PINNED_REVISION + + +def test_validation_reference_decodes_tdt_generation_output(monkeypatch) -> None: + from tools.reference import speech + + captured: dict[str, object] = {} + + class FakeSequence: + def __getitem__(self, _index): + return self + + def tolist(self): + return [16, 23, 42] + + class FakeModel: + def parameters(self): + return iter([SimpleNamespace(dtype="fp32")]) + + def generate(self, **kwargs): + captured["generate"] = kwargs + return SimpleNamespace(sequences=FakeSequence()) + + class FakeProcessor: + feature_extractor = SimpleNamespace(sampling_rate=16_000) + + def decode(self, sequences, **kwargs): + captured["decode"] = (sequences, kwargs) + return ["Validation transcript"] + + def batch_decode(self, *_args, **_kwargs): + raise AssertionError("Parakeet TDT must use its processor decode contract") + + class InferenceMode: + def __enter__(self): + return None + + def __exit__(self, *_args): + return None + + fake_torch = SimpleNamespace( + inference_mode=InferenceMode, + cuda=SimpleNamespace(is_available=lambda: False, empty_cache=lambda: None), + ) + monkeypatch.setattr( + speech, + "_load_whisper_runtime", + lambda _arguments: (fake_torch, FakeProcessor(), FakeModel(), "cuda"), + ) + monkeypatch.setattr( + speech, + "_audio_for_prompt", + lambda _prompt, _target_rate: ( + np.array([0.25], dtype=np.float32), + Path("input.wav"), + ), + ) + monkeypatch.setattr(speech, "_whisper_inputs", lambda *_args: {"input_features": "x"}) + + responses = speech._run_whisper_asr( + SimpleNamespace( + reference_family="asr_parakeet_tdt", + family="parakeet_tdt", + max_new_tokens=50, + seed=-1, + ), + [{"sample_id": "sample-1", "eval_index": 0, "audio": "input.wav"}], + {}, + ) + + assert responses[0]["output_text"] == "Validation transcript" + assert responses[0]["generated_token_ids"] == [16, 23, 42] + assert captured["generate"] == { + "input_features": "x", + "max_new_tokens": 50, + "return_dict_in_generate": True, + } + assert isinstance(captured["decode"][0], FakeSequence) + assert captured["decode"][1] == {"skip_special_tokens": True} + + +def test_exact_transcript_contract_rejects_any_normalized_difference() -> None: + contract = importlib.import_module( + "tests.e2e.models.parakeet_tdt.e2e_plugins.contract" + ) + threshold = SimpleNamespace( + metrics={ + "contract_ned_threshold": 1.0, + "contract_wer_threshold": 1.0, + "contract_cer_threshold": 1.0, + } + ) + case = SimpleNamespace(metadata={}) + reference = SimpleNamespace(data={"transcript": "the exact transcript"}, text="") + different = SimpleNamespace(data={"transcript": "the wrong transcript"}, text="") + + result = contract.plugin.verify(different, reference, case, threshold) + + assert result.status == "failed" diff --git a/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_e2e.py b/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_e2e.py new file mode 100644 index 0000000000..04f3b1d3ed --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_e2e.py @@ -0,0 +1,32 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Model-owned E2E entrypoint for the parakeet_tdt family.""" + +from __future__ import annotations + +import importlib.util +from pathlib import Path + +import pytest + +_RUNNER_PATH = Path(__file__).with_name("runner.py") +_SPEC = importlib.util.spec_from_file_location( + f"{Path(__file__).resolve().parent.name}_e2e_runner", + _RUNNER_PATH, +) +assert _SPEC is not None and _SPEC.loader is not None +_runner = importlib.util.module_from_spec(_SPEC) +_SPEC.loader.exec_module(_runner) + + +def pytest_generate_tests(metafunc): + if "case_name" in metafunc.fixturenames: + case_names = _runner.model_case_names(metafunc.config) + if not case_names: + pytest.skip("No model manifests selected", allow_module_level=True) + metafunc.parametrize("case_name", case_names) + + +def test_model_e2e(case_name: str, request) -> None: + _runner.run_model_e2e(case_name, request) diff --git a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe01.json b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe01.json new file mode 100644 index 0000000000..0c1b6548d4 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe01.json @@ -0,0 +1,11 @@ +{ + "layer_atol": 0.1, + "logit_atol": 0.01, + "threshold_overrides": { + "contract_ned_threshold": 0.1, + "contract_wer_threshold": 0.1, + "contract_cer_threshold": 0.1, + "wer": 0.1, + "cer": 0.1 + } +} diff --git a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe02.json b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe02.json new file mode 100644 index 0000000000..0c1b6548d4 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe02.json @@ -0,0 +1,11 @@ +{ + "layer_atol": 0.1, + "logit_atol": 0.01, + "threshold_overrides": { + "contract_ned_threshold": 0.1, + "contract_wer_threshold": 0.1, + "contract_cer_threshold": 0.1, + "wer": 0.1, + "cer": 0.1 + } +} diff --git a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe03.json b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe03.json new file mode 100644 index 0000000000..0c1b6548d4 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe03.json @@ -0,0 +1,11 @@ +{ + "layer_atol": 0.1, + "logit_atol": 0.01, + "threshold_overrides": { + "contract_ned_threshold": 0.1, + "contract_wer_threshold": 0.1, + "contract_cer_threshold": 0.1, + "wer": 0.1, + "cer": 0.1 + } +} diff --git a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe04.json b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe04.json new file mode 100644 index 0000000000..0c1b6548d4 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe04.json @@ -0,0 +1,11 @@ +{ + "layer_atol": 0.1, + "logit_atol": 0.01, + "threshold_overrides": { + "contract_ned_threshold": 0.1, + "contract_wer_threshold": 0.1, + "contract_cer_threshold": 0.1, + "wer": 0.1, + "cer": 0.1 + } +} diff --git a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe05.json b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe05.json new file mode 100644 index 0000000000..0c1b6548d4 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe05.json @@ -0,0 +1,11 @@ +{ + "layer_atol": 0.1, + "logit_atol": 0.01, + "threshold_overrides": { + "contract_ned_threshold": 0.1, + "contract_wer_threshold": 0.1, + "contract_cer_threshold": 0.1, + "wer": 0.1, + "cer": 0.1 + } +} diff --git a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe06.json b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe06.json new file mode 100644 index 0000000000..0c1b6548d4 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe06.json @@ -0,0 +1,11 @@ +{ + "layer_atol": 0.1, + "logit_atol": 0.01, + "threshold_overrides": { + "contract_ned_threshold": 0.1, + "contract_wer_threshold": 0.1, + "contract_cer_threshold": 0.1, + "wer": 0.1, + "cer": 0.1 + } +} diff --git a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe08.json b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe08.json new file mode 100644 index 0000000000..0c1b6548d4 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe08.json @@ -0,0 +1,11 @@ +{ + "layer_atol": 0.1, + "logit_atol": 0.01, + "threshold_overrides": { + "contract_ned_threshold": 0.1, + "contract_wer_threshold": 0.1, + "contract_cer_threshold": 0.1, + "wer": 0.1, + "cer": 0.1 + } +} diff --git a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3.json b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3.json new file mode 100644 index 0000000000..795b071ea1 --- /dev/null +++ b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3.json @@ -0,0 +1,10 @@ +{ + "threshold_overrides": { + "cer": 0.2, + "layer_atol": 0.1, + "logit_atol": 0.01, + "timestamp_tolerance_s": 0.5, + "token_agreement_rate": 0.8, + "wer": 0.3 + } +} diff --git a/tests/tools/test_family_specialization.py b/tests/tools/test_family_specialization.py index e8005b878e..afbaa6deab 100644 --- a/tests/tools/test_family_specialization.py +++ b/tests/tools/test_family_specialization.py @@ -404,7 +404,7 @@ def test_repository_registers_all_current_families() -> None: families = specialization.family_dirs(repo_root, ()) - assert len(families) == 87 + assert len(families) == 86 assert any(family.name == "cosmos3" for family in families) assert any(family.name == "dinov3" for family in families) assert any(family.name == "fast_foundation_stereo" for family in families) diff --git a/tests/tools/test_perf_matrix.py b/tests/tools/test_perf_matrix.py index fda77b8a00..2aa7146a22 100644 --- a/tests/tools/test_perf_matrix.py +++ b/tests/tools/test_perf_matrix.py @@ -62,6 +62,7 @@ def _suite_for_cases(cases, *, exclusions=None): "locateanything.generate": "hf-transformers-vlm", "magpie_tts.generate_audio": "nemo-tts", "nemotron_speech_streaming.transcribe": "nemo-asr", + "parakeet_tdt.transcribe": "hf-transformers-asr", "patchtsmixer.solve": "pytorch-timeseries", "patchtst.solve": "pytorch-timeseries", "personaplex.speak": "pytorch-personaplex", @@ -296,8 +297,8 @@ def test_release_suite_covers_every_non_l0_ready_model_profile() -> None: "rerank", ] assert Counter(perf_matrix._candidate_timing_scope(case) for case in cases) == { - "model_call_wall": 25, - "public_pipeline_call_wall": 86, + "model_call_wall": 26, + "public_pipeline_call_wall": 85, } assert {case["id"] for case in cases if case["baseline"]["asset_loading_included"]} == { "canary.transcribe", @@ -321,6 +322,21 @@ def test_release_suite_covers_every_non_l0_ready_model_profile() -> None: "intrinsics": "assets/demo_0_intrinsics.npy", } assert by_id["sana_wm.generate_image"]["baseline"]["python_profile"] == "sana_wm_reference" + parakeet_baseline = by_id["parakeet_tdt.transcribe"]["baseline"] + assert { + key: parakeet_baseline[key] + for key in ("runner", "adapter", "mode", "reference_backend") + } == { + "runner": "task-reference", + "adapter": "hf-transformers-asr", + "mode": "hf-eager", + "reference_backend": "hf_transformers", + } + assert parakeet_baseline["adapter_options"] == { + "auto_model_class": "AutoModelForTDT" + } + assert parakeet_baseline["timing_scope"] == "task-model-call-wall" + assert parakeet_baseline["input_preparation_included"] is False locateanything_baseline = by_id["locateanything.generate"]["baseline"] assert locateanything_baseline["output_contract"] == "localization" assert locateanything_baseline["min_localization_box_iou"] == 0.9 diff --git a/tests/tools/test_trtmc_validate.py b/tests/tools/test_trtmc_validate.py index 6b8780407c..59f543b05f 100644 --- a/tests/tools/test_trtmc_validate.py +++ b/tests/tools/test_trtmc_validate.py @@ -45,7 +45,7 @@ def test_model_workload_catalog_covers_every_ready_model(): task_models=task_models, ) - assert len(catalog["models"]) == len(ready_models) == 119 + assert len(catalog["models"]) == len(ready_models) == 118 assert sum("not_compared_reason" in spec for spec in catalog["models"].values()) == 0 assert all("e2e" not in spec.get("workloads", []) for spec in catalog["models"].values()) assert "reference_cache_identity" not in catalog["models"]["personaplex-7b"] @@ -64,7 +64,7 @@ def test_model_workload_catalog_covers_every_ready_model(): } assert len(qwen_identities) == 1 bindings = trtmc_validate.resolve_bindings(catalog, catalog["models"]) - assert len(bindings) == 120 + assert len(bindings) == 119 assert { binding.model for binding in bindings if binding.workload == "mmlu_continuation_parity" } >= { @@ -256,7 +256,7 @@ def test_every_dataset_backed_validation_binding_has_native_reference_runner(): missing.append((model_name, workload, dataset_kind)) assert not missing - assert len({model for model, _workload in bindings}) == 119 + assert len({model for model, _workload in bindings}) == 118 def test_shadow_gate_metrics_include_plugin_task_accuracy() -> None: diff --git a/tests/tools/test_validation_engine.py b/tests/tools/test_validation_engine.py index ffb503caab..92eaf44af1 100644 --- a/tests/tools/test_validation_engine.py +++ b/tests/tools/test_validation_engine.py @@ -596,8 +596,9 @@ def test_default_suites_include_librispeech_clean_asr() -> None: assert suite["selectors"]["runtime_strategies"] == [ "whisper_speech_to_text", "canary_speech_to_text", + "parakeet_tdt_speech_to_text", ] - assert suite["selectors"]["families"] == ["whisper", "canary"] + assert suite["selectors"]["families"] == ["whisper", "canary", "parakeet_tdt"] def test_default_suites_do_not_split_librispeech_asr_by_family() -> None: @@ -1876,11 +1877,15 @@ def test_plan_selects_librispeech_asr_models() -> None: assert selected["whisper-small-fp16"]["runtime_strategy"] == "whisper_speech_to_text" assert "canary-1b-v2" in selected assert selected["canary-1b-v2"]["runtime_strategy"] == "canary_speech_to_text" + assert selected["parakeet-tdt-0.6b-v3"]["runtime_strategy"] == ( + "parakeet_tdt_speech_to_text" + ) assert set(selected) == { "whisper-tiny-fp16", "whisper-small-fp16", "whisper-large-v3-turbo", "canary-1b-v2", + "parakeet-tdt-0.6b-v3", } assert "nemotron-nano-v2-speech-embedded" not in selected diff --git a/tests/validation/model_workloads.yaml b/tests/validation/model_workloads.yaml index c7f05b61b5..693f6bb31a 100644 --- a/tests/validation/model_workloads.yaml +++ b/tests/validation/model_workloads.yaml @@ -208,6 +208,8 @@ models: workloads: [mmlu_continuation_parity] opt-125m: workloads: [mmlu_continuation_parity] + parakeet-tdt-0.6b-v3: + workloads: [librispeech_clean_asr] paraphrase-multilingual-minilm-l12-v2: workloads: [stsbenchmark_encoder_embedding_parity] patchtsmixer-granite-official: diff --git a/tests/validation/workloads.yaml b/tests/validation/workloads.yaml index 19838297cf..6edba46823 100644 --- a/tests/validation/workloads.yaml +++ b/tests/validation/workloads.yaml @@ -721,6 +721,7 @@ suites: - whisper-small-fp16 - whisper-large-v3-turbo - canary-1b-v2 + - parakeet-tdt-0.6b-v3 dataset: kind: asr_chat_json default_path: /mnt/data/librispeech_clean_test/librispeech_clean_test.json @@ -735,9 +736,11 @@ suites: runtime_strategies: - whisper_speech_to_text - canary_speech_to_text + - parakeet_tdt_speech_to_text families: - whisper - canary + - parakeet_tdt exclude_families: - nemotron_speech_streaming generation: diff --git a/tools/reference/speech.py b/tools/reference/speech.py index 86beb318f6..79119ff535 100644 --- a/tools/reference/speech.py +++ b/tools/reference/speech.py @@ -208,6 +208,13 @@ def _is_nemo_asr(arguments: argparse.Namespace) -> bool: ) +def _is_parakeet_tdt_asr(arguments: argparse.Namespace) -> bool: + return ( + str(arguments.reference_family).lower() == "asr_parakeet_tdt" + or str(arguments.family).lower() == "parakeet_tdt" + ) + + def _transcription_text(value: Any) -> str: if isinstance(value, list): value = value[0] if value else "" @@ -252,7 +259,8 @@ def _load_whisper_runtime( arguments: argparse.Namespace, ) -> tuple[Any, Any, Any, Any]: import torch - from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, logging + import transformers + from transformers import AutoProcessor, logging logging.set_verbosity_error() processor_kwargs = { @@ -273,7 +281,12 @@ def _load_whisper_runtime( model_kwargs["attn_implementation"] = arguments.attn_impl if arguments.model_revision: model_kwargs["revision"] = arguments.model_revision - model = AutoModelForSpeechSeq2Seq.from_pretrained( + model_loader = ( + transformers.AutoModelForTDT + if _is_parakeet_tdt_asr(arguments) + else transformers.AutoModelForSpeechSeq2Seq + ) + model = model_loader.from_pretrained( arguments.model, **model_kwargs, ).eval() @@ -332,7 +345,12 @@ def _run_whisper_asr( _seed_torch(torch, seed + eval_index if seed >= 0 else -1) started = time.perf_counter() with torch.inference_mode(): - output_ids = model.generate( + generate_options: dict[str, Any] = { + "max_new_tokens": max_new_tokens, + } + if _is_parakeet_tdt_asr(arguments): + generate_options["return_dict_in_generate"] = True + generated = model.generate( **_whisper_inputs( processor, audio, @@ -340,12 +358,18 @@ def _run_whisper_asr( device, model_dtype, ), - max_new_tokens=max_new_tokens, + **generate_options, ) + output_ids = generated.sequences if hasattr(generated, "sequences") else generated + if _is_parakeet_tdt_asr(arguments): + decoded = processor.decode(output_ids, skip_special_tokens=True) + else: + decoded = processor.batch_decode(output_ids, skip_special_tokens=True) + output_text = decoded[0] if isinstance(decoded, (list, tuple)) else str(decoded) responses.append( _asr_row( prompt, - processor.batch_decode(output_ids, skip_special_tokens=True)[0], + output_text, (time.perf_counter() - started) * 1000.0, output_ids[0].tolist(), ) diff --git a/website/data/hf-model-metadata.json b/website/data/hf-model-metadata.json index b2bc88e627..0d328dbf45 100644 --- a/website/data/hf-model-metadata.json +++ b/website/data/hf-model-metadata.json @@ -1128,6 +1128,17 @@ ], "architecture_source": "config.architectures" }, + { + "hf_id": "nvidia/parakeet-tdt-0.6b-v3", + "revision": "541d1f99c6b0c3cd0b11a95167540bb8edefd82b", + "revision_source": "resolved", + "metadata_file": "config.json", + "model_type": "parakeet_tdt", + "architectures": [ + "ParakeetForTDT" + ], + "architecture_source": "config.architectures" + }, { "hf_id": "nvidia/personaplex-7b-v1", "revision": "fdaf4090a61cb315c138a1faee287ffd6c716309", From c222ee28a73b9ff014538c697ae4a2e88f918b86 Mon Sep 17 00:00:00 2001 From: JiaxinD Date: Sun, 30 Aug 2026 17:44:13 -0700 Subject: [PATCH 02/16] fix(parakeet): harden checkpoint and runtime contracts Use safe checkpoint and kernel loading, derive checkpoint metadata, enforce decoder and tensor-size bounds, and fail closed for unsupported streaming. Tighten tokenizer, ASR comparison, path resolution, and family-owned regression coverage. Signed-off-by: JiaxinD --- .../families/parakeet_tdt/checkpoint.py | 4 +- .../families/parakeet_tdt/config.py | 7 +- .../families/parakeet_tdt/fastconformer.py | 32 ++- .../families/parakeet_tdt/graph_ops.py | 2 +- .../families/parakeet_tdt/model_config.py | 202 ++++-------------- .../families/parakeet_tdt/nemo_archive.py | 40 +++- .../families/parakeet_tdt/plugin.py | 30 ++- .../models/parakeet_tdt/audio_helpers.cpp | 27 ++- .../models/parakeet_tdt/audio_helpers.h | 1 + src/runtime/models/parakeet_tdt/pipeline.cpp | 66 +++--- src/runtime/models/parakeet_tdt/pipeline.h | 1 + src/runtime/models/parakeet_tdt/plugin.cpp | 5 +- .../models/parakeet_tdt/plugin_helpers.cpp | 87 ++++---- .../models/parakeet_tdt/plugin_helpers.h | 4 +- src/runtime/models/parakeet_tdt/tdt_config.h | 4 + .../test_parakeet_tdt_audio_helpers.cpp | 4 +- .../test_parakeet_tdt_decode_policy.cpp | 34 +++ .../comparators/parakeet_tdt_asr.py | 6 +- .../parakeet_tdt/e2e_plugins/contract.py | 1 - .../e2e_plugins/references/parakeet_tdt_hf.py | 3 +- .../runners/parakeet_tdt_speech.py | 6 +- .../test_parakeet_tdt_contracts.py | 139 +++++++++++- .../parakeet-tdt-0.6b-v3-asr-probe01.json | 4 +- .../parakeet-tdt-0.6b-v3-asr-probe02.json | 4 +- .../parakeet-tdt-0.6b-v3-asr-probe03.json | 4 +- .../parakeet-tdt-0.6b-v3-asr-probe04.json | 4 +- .../parakeet-tdt-0.6b-v3-asr-probe05.json | 4 +- .../parakeet-tdt-0.6b-v3-asr-probe06.json | 4 +- .../parakeet-tdt-0.6b-v3-asr-probe08.json | 4 +- tools/reference/speech.py | 2 +- 30 files changed, 435 insertions(+), 300 deletions(-) diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/checkpoint.py b/python/tensorrt_model_connect/families/parakeet_tdt/checkpoint.py index ee27a93228..68307e2b8a 100644 --- a/python/tensorrt_model_connect/families/parakeet_tdt/checkpoint.py +++ b/python/tensorrt_model_connect/families/parakeet_tdt/checkpoint.py @@ -120,7 +120,9 @@ def load_nemo_archive(model_dir: str | Path) -> tuple[dict, dict]: elif name == "model_weights.ckpt": extracted = tar.extractfile(member) if extracted is not None: - state = torch.load(io.BytesIO(extracted.read()), map_location="cpu", weights_only=False) + state = torch.load( + io.BytesIO(extracted.read()), map_location="cpu", weights_only=True + ) if not isinstance(config, dict): raise FileNotFoundError(f"model_config.yaml not found in {archive}") if not isinstance(state, dict): diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/config.py b/python/tensorrt_model_connect/families/parakeet_tdt/config.py index 84b76789d5..1a89e8429b 100644 --- a/python/tensorrt_model_connect/families/parakeet_tdt/config.py +++ b/python/tensorrt_model_connect/families/parakeet_tdt/config.py @@ -62,7 +62,12 @@ def from_json(cls, text: str) -> "ParakeetTDTConfig": @classmethod def from_dir(cls, model_dir: str | Path) -> "ParakeetTDTConfig": - return cls.from_json((Path(model_dir) / "config.json").read_text(encoding="utf-8")) + config_path = Path(model_dir) / "config.json" + if not config_path.is_file(): + raise FileNotFoundError( + f"Parakeet TDT model directory is missing config.json: {config_path}" + ) + return cls.from_json(config_path.read_text(encoding="utf-8")) def validate_supported_checkpoint(self) -> None: expected = { diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/fastconformer.py b/python/tensorrt_model_connect/families/parakeet_tdt/fastconformer.py index 31e6c99b7f..0f4d2cc5fc 100644 --- a/python/tensorrt_model_connect/families/parakeet_tdt/fastconformer.py +++ b/python/tensorrt_model_connect/families/parakeet_tdt/fastconformer.py @@ -52,7 +52,7 @@ def _load_nemo_archive(path: str): f = tar.extractfile(member) if f: state_dict = torch.load( - io.BytesIO(f.read()), map_location="cpu", weights_only=False + io.BytesIO(f.read()), map_location="cpu", weights_only=True ) elif bn == "model_config.yaml": f = tar.extractfile(member) @@ -89,14 +89,18 @@ def _extract_tokenizer_from_nemo(nemo_path: str, dest_dir: Path) -> None: sp = spm.SentencePieceProcessor() sp.Load(str(tok_model_path)) - # Build a minimal tokenizer.json compatible with HF fast tokenizer - vocab = {sp.IdToPiece(i): i for i in range(sp.GetPieceSize())} + # Unigram vocab is an ordered list: preserve every SentencePiece id + # and its learned score, including duplicate piece strings. + vocab = [ + [sp.IdToPiece(i), float(sp.GetScore(i))] + for i in range(sp.GetPieceSize()) + ] tok_json = { "version": "1.0", "model": { "type": "Unigram", "unk_id": sp.unk_id(), - "vocab": [[piece, 0.0] for piece in vocab], + "vocab": vocab, }, "added_tokens": [], "normalizer": None, @@ -104,9 +108,11 @@ def _extract_tokenizer_from_nemo(nemo_path: str, dest_dir: Path) -> None: "post_processor": None, "decoder": {"type": "Metaspace", "replacement": "\u2581", "add_prefix_space": True}, } - tok_json_path.write_text(json.dumps(tok_json)) - except Exception: - pass + tok_json_path.write_text(json.dumps(tok_json), encoding="utf-8") + except Exception as exc: + raise RuntimeError( + f"Failed to convert Parakeet SentencePiece tokenizer {tok_model_path}" + ) from exc tok_cfg = dest_dir / "tokenizer_config.json" if not tok_cfg.exists(): @@ -126,6 +132,10 @@ def _relative_pe(seq_len: int, d_model: int, max_len: int = 5000) -> np.ndarray: Matches NeMo RelPositionalEncoding: builds table with positive and negative position encodings, where negative uses sin(-k*d) = -sin(k*d). """ + if seq_len <= 0: + raise ValueError(f"seq_len must be positive, got {seq_len}") + if seq_len > max_len: + raise ValueError(f"seq_len={seq_len} exceeds relative-position max_len={max_len}") pos = np.arange(0, max_len, dtype=np.float32)[:, np.newaxis] div = np.exp(np.arange(0, d_model, 2, dtype=np.float32) * -(math.log(10000.0) / d_model)) @@ -198,7 +208,7 @@ def add_subsample_conv(inp, weight, bias, out_channels, *, groups=1): # So Conv2d input is [1, 1, mel_length, mel_bins] (time=H, features=W). # Our mel_input is [mel_bins, mel_length] = [F, T]. Transpose to [T, F]. tr_mel = network.add_shuffle(mel_input) - tr_mel.first_transpose = trt.Permutation([1, 0]) # [F,T] 闂?[T,F] + tr_mel.first_transpose = trt.Permutation([1, 0]) # [F,T] -> [T,F] ri = network.add_shuffle(tr_mel.get_output(0)) ri.reshape_dims = (1, 1, mel_length, num_mel_bins) # [1, 1, T, F] x = ri.get_output(0) @@ -224,9 +234,9 @@ def add_subsample_conv(inp, weight, bias, out_channels, *, groups=1): sub_out_in = int(weights["enc_sub_out_w"].shape[0]) feat_out = sub_out_in // sub_ch # NeMo: x.transpose(1,2).reshape(B,T,-1) on [B,C,T,F] - # = permute(0,2,1,3) 闂?[B,T,C,F], reshape 闂?[T, C*F] + # = permute(0,2,1,3) -> [B,T,C,F], reshape -> [T, C*F] tr = network.add_shuffle(x) - tr.first_transpose = trt.Permutation([0, 2, 1, 3]) # [B,C,T,F] 闂?[B,T,C,F] + tr.first_transpose = trt.Permutation([0, 2, 1, 3]) # [B,C,T,F] -> [B,T,C,F] tr.reshape_dims = (time_out, sub_ch * feat_out) # [T, C*F] out = graph_ops.add_matmul_rhs_constant( network, tr.get_output(0), sub_ch * feat_out, hidden, weights["enc_sub_out_w"], dtype=dtype @@ -597,7 +607,7 @@ def _build_encoder(config, weights, *, precision="fp32", verbose=False): net, (1, 1), np.array([1e-5], dtype=work_np_dtype), dtype=work_np_dtype ) mel = net.add_input("mel_features", trt.float32, (mb, ml)) - # Encoder attention mask: [1, 1, enc_seq] 闂?0.0 for valid, -10000.0 for padded. + # Encoder attention mask: [1, 1, enc_seq] -- 0.0 valid, -10000.0 padded. # Applied additively to self-attention scores before softmax. mask_shape = ( (1, es, es) if bool(weights.get("_encoder_attention_mask_2d", False)) else (1, 1, es) diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/graph_ops.py b/python/tensorrt_model_connect/families/parakeet_tdt/graph_ops.py index f1d74e6d1f..1f10d5eb11 100644 --- a/python/tensorrt_model_connect/families/parakeet_tdt/graph_ops.py +++ b/python/tensorrt_model_connect/families/parakeet_tdt/graph_ops.py @@ -355,7 +355,7 @@ def add_attention_core( ) -> trt.ITensor: """Scaled dot-product attention via TRT native IAttention layer. - Replaces the manual Q@K^T 闁?scale 闁?softmax 闁?@V chain. TRT 10 fuses + Replaces the manual Q@K^T -> scale -> softmax -> @V chain. TRT 10 fuses this into a single kernel when a compatible implementation is available; decomposable=True ensures a correct fallback to primitives otherwise. diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/model_config.py b/python/tensorrt_model_connect/families/parakeet_tdt/model_config.py index 118a57c1a3..72d9d60f0a 100644 --- a/python/tensorrt_model_connect/families/parakeet_tdt/model_config.py +++ b/python/tensorrt_model_connect/families/parakeet_tdt/model_config.py @@ -1,7 +1,7 @@ # SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -"""ModelConfig 闁?parse HF config.json into a typed dataclass.""" +"""Family-private build configuration for Parakeet TDT.""" from __future__ import annotations @@ -12,7 +12,7 @@ @dataclass class ModelConfig: - """Parsed model architecture from HF config.json.""" + """Minimal engine-builder view of the Parakeet TDT configuration.""" model_type: str = "" architectures: list[str] = field(default_factory=list) @@ -30,188 +30,68 @@ class ModelConfig: tie_word_embeddings: bool = False max_position_embeddings: int = 8192 hidden_act: str = "" - - # Explicit head_dim from config.json (0 = not set, fall back to computed). _head_dim: int = 0 - - # Raw JSON dict for family-specific fields raw: dict = field(default_factory=dict, repr=False) @property def head_dim(self) -> int: if self._head_dim > 0: return self._head_dim - if self.num_attention_heads <= 0: - return 0 - return self.hidden_size // self.num_attention_heads + return self.hidden_size // self.num_attention_heads if self.num_attention_heads > 0 else 0 @property def attention_size(self) -> int: return self.num_attention_heads * self.head_dim @staticmethod - def from_json(text: str) -> ModelConfig: - d = json.loads(text) - - # Some multimodal configs nest decoder fields under "text_config". - # Merge text_config into top level so standard key lookup works. - # Preserve top-level model_type and architectures (these identify the - # top-level model, not the nested decoder). - original_raw = d - text_config = d.get("text_config") - if text_config and isinstance(text_config, dict): - top_model_type = d.get("model_type") - top_architectures = d.get("architectures") - merged = {**d, **text_config} - if top_model_type: - merged["model_type"] = top_model_type - if top_architectures: - merged["architectures"] = top_architectures - d = merged - - # Some multimodal configs nest the language decoder config under - # "language_config". Merge into top level like text_config. - if not d.get("hidden_size"): - lang_config = d.get("language_config") - if isinstance(lang_config, dict): - top_model_type = d.get("model_type") - top_architectures = d.get("architectures") - top_vision_config = d.get("vision_config") - merged = {**d, **lang_config} - if top_model_type: - merged["model_type"] = top_model_type - if top_architectures: - merged["architectures"] = top_architectures - if top_vision_config: - merged["vision_config"] = top_vision_config - d = merged - - # Some multimodal configs nest LLM config under "llm_config". - # Merge into top level like text_config, preserving top-level - # model_type, architectures, and vision_config. - if not d.get("hidden_size"): - llm_config = d.get("llm_config") - if isinstance(llm_config, dict): - top_model_type = d.get("model_type") - top_architectures = d.get("architectures") - top_vision_config = d.get("vision_config") - merged = {**d, **llm_config} - if top_model_type: - merged["model_type"] = top_model_type - if top_architectures: - merged["architectures"] = top_architectures - if top_vision_config: - merged["vision_config"] = top_vision_config - d = merged - - # Some multimodal audio/text configs nest the primary decoder config - # under thinker_config.text_config. If top-level hidden_size is - # still missing after the text_config merge above, look there. - if not d.get("hidden_size"): - thinker_cfg = d.get("thinker_config") - if isinstance(thinker_cfg, dict): - thinker_text = thinker_cfg.get("text_config") - if isinstance(thinker_text, dict): - top_model_type = d.get("model_type") - top_architectures = d.get("architectures") - merged = {**d, **thinker_text} - if top_model_type: - merged["model_type"] = top_model_type - if top_architectures: - merged["architectures"] = top_architectures - # Also propagate vision_config from thinker_config - # so VL pipelines can find it. - if "vision_config" not in merged and "vision_config" in thinker_cfg: - merged["vision_config"] = thinker_cfg["vision_config"] - d = merged - - # Handle non-standard config key names: - # GPT-2: n_embd, n_head, n_layer, n_inner - # XGLM/Bloom: d_model, attention_heads, num_layers, ffn_dim - # DistilBERT: dim, n_heads, n_layers, hidden_dim - hidden_size = (d.get("hidden_size", 0) or d.get("n_embd", 0) - or d.get("d_model", 0) or d.get("n_embed", 0) - or d.get("dim", 0)) - num_heads = (d.get("num_attention_heads", 0) or d.get("n_head", 0) - or d.get("attention_heads", 0) or d.get("num_heads", 0) - or d.get("n_heads", 0) or d.get("decoder_attention_heads", 0) or 1) - num_layers = (d.get("num_hidden_layers", 0) or d.get("n_layer", 0) - or d.get("num_layers", 0) or d.get("n_layers", 0)) - intermediate = (d.get("intermediate_size", 0) - or d.get("n_inner", 0) - or d.get("ffn_dim", 0) - or d.get("hidden_dim", 0) - or hidden_size * 4) - - # Norm epsilon: try rms_norm_eps, then layer_norm_epsilon, then - # layer_norm_eps, then norm_epsilon, then norm_eps. - eps = (d.get("rms_norm_eps") - or d.get("layer_norm_epsilon") - or d.get("layer_norm_eps") - or d.get("norm_epsilon") - or d.get("norm_eps") - or 1e-5) - - # rope_theta: check top-level first, then rope_parameters dict - # (some model configs store it there), - # then rope_scaling dict. - rope_theta = d.get("rope_theta", None) - if rope_theta is None: - rope_params = d.get("rope_parameters") - if isinstance(rope_params, dict): - rope_theta = rope_params.get("rope_theta", 10000.0) - else: - rope_scaling = d.get("rope_scaling") - if isinstance(rope_scaling, dict): - rope_theta = rope_scaling.get("rope_theta", 10000.0) - else: - rope_theta = 10000.0 - rope_theta = float(rope_theta) - - architecture = d.get("architecture", "") - architectures = d.get("architectures", []) - if not architectures and architecture: - architectures = [architecture] - + def from_json(text: str) -> "ModelConfig": + raw = json.loads(text) + encoder = raw.get("encoder_config") or {} + hidden_size = int(raw.get("hidden_size") or raw.get("decoder_hidden_size") or 0) + num_heads = int(raw.get("num_attention_heads") or 1) return ModelConfig( - model_type=d.get("model_type", "") or architecture, - architectures=architectures, - vocab_size=d.get("vocab_size", 0), - hidden_size=hidden_size or d.get("num_features", 0), - intermediate_size=intermediate, - num_hidden_layers=num_layers, + model_type=str(raw.get("model_type", "")), + architectures=[str(value) for value in raw.get("architectures", ())], + vocab_size=int(raw.get("vocab_size", 0)), + hidden_size=hidden_size, + intermediate_size=int(raw.get("intermediate_size") or hidden_size * 4), + num_hidden_layers=int(raw.get("num_hidden_layers") or raw.get("num_decoder_layers") or 0), num_attention_heads=num_heads, - num_key_value_heads=d.get("num_key_value_heads", num_heads), - rms_norm_eps=eps, - rope_theta=rope_theta, - bos_token_id=d.get("bos_token_id", -1) or -1, - eos_token_id=d.get("eos_token_id", -1) or -1, - pad_token_id=d.get("pad_token_id", -1) or -1, - tie_word_embeddings=d.get("tie_word_embeddings", False), - max_position_embeddings=d.get("max_position_embeddings", - d.get("n_positions", 8192)), - hidden_act=d.get("hidden_act", "") or d.get("activation_function", ""), - _head_dim=d.get("head_dim", 0), - raw=original_raw, + num_key_value_heads=int(raw.get("num_key_value_heads") or num_heads), + rms_norm_eps=float(raw.get("rms_norm_eps", 1e-5)), + rope_theta=float(raw.get("rope_theta", 10000.0)), + bos_token_id=int(raw.get("bos_token_id", -1) if raw.get("bos_token_id") is not None else -1), + eos_token_id=int(raw.get("eos_token_id", -1) if raw.get("eos_token_id") is not None else -1), + pad_token_id=int(raw.get("pad_token_id", -1) if raw.get("pad_token_id") is not None else -1), + tie_word_embeddings=bool(raw.get("tie_word_embeddings", False)), + max_position_embeddings=int(raw.get("max_position_embeddings") or encoder.get("max_position_embeddings") or 8192), + hidden_act=str(raw.get("hidden_act", "")), + _head_dim=int(raw.get("head_dim", 0)), + raw=raw, ) @classmethod def create_tiny(cls, model_type: str, **overrides) -> "ModelConfig": - """Create a minimal ModelConfig for testing (2 layers, hidden=16, vocab=32).""" defaults = { "model_type": model_type, - "vocab_size": 32, "hidden_size": 16, "intermediate_size": 32, - "num_hidden_layers": 2, "num_attention_heads": 4, - "num_key_value_heads": 4, "rms_norm_eps": 1e-6, - "rope_theta": 10000.0, "max_position_embeddings": 128, + "vocab_size": 32, + "hidden_size": 16, + "intermediate_size": 32, + "num_hidden_layers": 2, + "num_attention_heads": 4, + "num_key_value_heads": 4, + "rms_norm_eps": 1e-6, + "rope_theta": 10000.0, + "max_position_embeddings": 128, } defaults.update(overrides) return cls.from_json(json.dumps(defaults)) @staticmethod - def from_dir(model_dir: str | Path) -> ModelConfig: - model_path = Path(model_dir) - config_path = model_path / "config.json" - if config_path.exists(): - return ModelConfig.from_json(config_path.read_text()) - return ModelConfig.from_json(config_path.read_text()) + def from_dir(model_dir: str | Path) -> "ModelConfig": + config_path = Path(model_dir) / "config.json" + if not config_path.is_file(): + raise FileNotFoundError( + f"Parakeet TDT model directory is missing config.json: {config_path}" + ) + return ModelConfig.from_json(config_path.read_text(encoding="utf-8")) diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/nemo_archive.py b/python/tensorrt_model_connect/families/parakeet_tdt/nemo_archive.py index d9d66da716..4bff723799 100644 --- a/python/tensorrt_model_connect/families/parakeet_tdt/nemo_archive.py +++ b/python/tensorrt_model_connect/families/parakeet_tdt/nemo_archive.py @@ -85,12 +85,50 @@ def resolve_nemo_archive(nemo_path: Path) -> str | None: hidden = _cfg_int(enc_cfg.get("d_model"), defaults.get("enc_hidden"), default=1024) pred_layers = _cfg_int(prednet.get("pred_rnn_layers"), default=1) pred_hidden = _cfg_int(prednet.get("pred_hidden"), defaults.get("pred_hidden"), default=640) - vocab_size = _cfg_int(cfg.get("vocab_size"), defaults.get("vocab_size"), default=1024) + encoder_layers = _cfg_int(enc_cfg.get("n_layers"), default=24) + encoder_heads = _cfg_int(enc_cfg.get("n_heads"), default=8) + ffn_expansion = _cfg_int(enc_cfg.get("ff_expansion_factor"), default=4) + conv_kernel = _cfg_int(enc_cfg.get("conv_kernel_size"), default=9) + subsampling_channels = _cfg_int( + enc_cfg.get("subsampling_conv_channels"), default=256 + ) + preprocessor = cfg.get("preprocessor", {}) + num_mel_bins = _cfg_int(preprocessor.get("features"), default=128) + decoding = cfg.get("decoding", {}) + max_symbols = _cfg_int(decoding.get("max_symbols_per_step"), default=10) + durations = cfg.get("tdt_durations", decoding.get("durations", [0, 1, 2, 3, 4])) + blank_id = _cfg_int(dec_cfg.get("blank_idx"), default=8192) + vocab_size = _cfg_int( + cfg.get("vocab_size"), defaults.get("vocab_size"), default=blank_id + 1 + ) + if vocab_size <= blank_id: + vocab_size = blank_id + 1 + joint = cfg.get("joint", {}) + jointnet = joint.get("jointnet", {}) if isinstance(joint, dict) else {} tmp_dir = tempfile.mkdtemp(prefix="trtmc_nemo_parakeet_tdt_") tmp_path = Path(tmp_dir) synthetic_config = { "model_type": "parakeet_tdt", + "architectures": ["ParakeetForTDT"], + "blank_token_id": blank_id, + "pad_token_id": _cfg_int(cfg.get("pad_id"), default=2), + "durations": [int(value) for value in durations], + "max_symbols_per_step": max_symbols, + "decoder_hidden_size": pred_hidden, + "num_decoder_layers": pred_layers, + "hidden_act": str(jointnet.get("activation", "relu")), + "encoder_config": { + "hidden_size": hidden, + "num_hidden_layers": encoder_layers, + "num_attention_heads": encoder_heads, + "intermediate_size": hidden * ffn_expansion, + "conv_kernel_size": conv_kernel, + "max_position_embeddings": _cfg_int(enc_cfg.get("max_len"), default=5000), + "num_mel_bins": num_mel_bins, + "subsampling_conv_channels": subsampling_channels, + "subsampling_factor": _cfg_int(enc_cfg.get("subsampling_factor"), default=8), + }, "hidden_size": hidden, "num_hidden_layers": pred_layers, "num_attention_heads": 1, diff --git a/python/tensorrt_model_connect/families/parakeet_tdt/plugin.py b/python/tensorrt_model_connect/families/parakeet_tdt/plugin.py index 227f1e6088..769d7c9a18 100644 --- a/python/tensorrt_model_connect/families/parakeet_tdt/plugin.py +++ b/python/tensorrt_model_connect/families/parakeet_tdt/plugin.py @@ -102,16 +102,23 @@ def _load_hf_as_nemo(model_dir: str): raise KeyError(f"HF Parakeet checkpoint is missing normalized tensors: {detail}") normalized.update({dst: state[src] for dst, src in aliases.items()}) nemo_cfg = { - "encoder": {"d_model": 1024, "n_layers": 24, "n_heads": 8, - "ff_expansion_factor": 4, "conv_kernel_size": 9, - "subsampling_conv_channels": 256, "att_context_size": [[-1, -1]], + "encoder": {"d_model": cfg.encoder_hidden_size, + "n_layers": cfg.encoder_layers, + "n_heads": cfg.encoder_heads, + "ff_expansion_factor": cfg.encoder_ffn_size // cfg.encoder_hidden_size, + "conv_kernel_size": cfg.encoder_conv_kernel_size, + "subsampling_conv_channels": cfg.subsampling_channels, + "att_context_size": [[-1, -1]], "conv_norm_type": "batch_norm", "conv_context_size": "symmetric"}, - "preprocessor": {"features": 128}, - "decoder": {"blank_idx": 8192, "prednet": {"pred_hidden": 640, - "pred_rnn_layers": 2, "rnn_hidden_size": 640}}, - "joint": {"jointnet": {"joint_hidden": 640, "activation": "relu"}}, - "decoding": {"max_symbols_per_step": 10}, - "tdt_durations": [0, 1, 2, 3, 4], + "preprocessor": {"features": cfg.num_mel_bins}, + "decoder": {"blank_idx": cfg.blank_id, + "prednet": {"pred_hidden": cfg.decoder_hidden_size, + "pred_rnn_layers": cfg.decoder_layers, + "rnn_hidden_size": cfg.decoder_hidden_size}}, + "joint": {"jointnet": {"joint_hidden": cfg.decoder_hidden_size, + "activation": cfg.joint_activation}}, + "decoding": {"max_symbols_per_step": cfg.max_symbols_per_step}, + "tdt_durations": list(cfg.durations), } return normalized, nemo_cfg @@ -984,7 +991,10 @@ def _build_predictor( next_h.append(hidden) next_c.append(c_new) - pred_output = hidden + # Keep pred_output distinct from the last recurrent state even in FP32; + # TensorRT output names belong to tensors, so aliasing would rename the + # same tensor from pred_output to next_h_{last_layer}. + pred_output = network.add_identity(hidden).get_output(0) if pred_output.dtype != trt.float32: pred_output = network.add_cast(pred_output, trt.float32).get_output(0) pred_output.name = "pred_output" diff --git a/src/runtime/models/parakeet_tdt/audio_helpers.cpp b/src/runtime/models/parakeet_tdt/audio_helpers.cpp index 2e6e2ed18c..9109744af7 100644 --- a/src/runtime/models/parakeet_tdt/audio_helpers.cpp +++ b/src/runtime/models/parakeet_tdt/audio_helpers.cpp @@ -74,7 +74,8 @@ bool is_power_of_two(int32_t value) { } void rfft_power_radix2(const float* x, int32_t n, int32_t n_out, float* power_out, - std::vector>& workspace) { + std::vector>& workspace, + const std::vector>& twiddles) { workspace.resize(static_cast(n)); for (int32_t i = 0; i < n; ++i) { workspace[static_cast(i)] = @@ -93,19 +94,15 @@ void rfft_power_radix2(const float* x, int32_t n, int32_t n_out, float* power_ou } } - const double pi2 = 2.0 * 3.14159265358979323846; for (int32_t length = 2; length <= n; length <<= 1) { - const double angle = -pi2 / static_cast(length); - const std::complex step(std::cos(angle), std::sin(angle)); const int32_t half = length / 2; for (int32_t offset = 0; offset < n; offset += length) { - std::complex twiddle(1.0, 0.0); for (int32_t i = 0; i < half; ++i) { const auto even = workspace[static_cast(offset + i)]; + const auto twiddle = twiddles[static_cast(i * n / length)]; const auto odd = workspace[static_cast(offset + i + half)] * twiddle; workspace[static_cast(offset + i)] = even + odd; workspace[static_cast(offset + i + half)] = even - odd; - twiddle *= step; } } } @@ -119,11 +116,20 @@ void rfft_power_radix2(const float* x, int32_t n, int32_t n_out, float* power_ou class RfftPowerPlan { public: - explicit RfftPowerPlan(int32_t n) : n_(n) {} + explicit RfftPowerPlan(int32_t n) : n_(n) { + if (is_power_of_two(n_)) { + const double pi2 = 2.0 * 3.14159265358979323846; + twiddles_.reserve(static_cast(n_ / 2)); + for (int32_t k = 0; k < n_ / 2; ++k) { + const double angle = -pi2 * static_cast(k) / static_cast(n_); + twiddles_.emplace_back(std::cos(angle), std::sin(angle)); + } + } + } void execute(const float* input, int32_t n_out, float* power_out) { if (is_power_of_two(n_)) { - rfft_power_radix2(input, n_, n_out, power_out, workspace_); + rfft_power_radix2(input, n_, n_out, power_out, workspace_, twiddles_); return; } rfft_power_direct(input, n_, n_out, power_out); @@ -132,6 +138,7 @@ class RfftPowerPlan { private: int32_t n_{0}; std::vector> workspace_; + std::vector> twiddles_; }; std::vector build_center_padded_audio(const float* samples, int32_t n_samples, @@ -518,6 +525,10 @@ int32_t IncrementalMelSpectrogram::available_frames() const { return impl_->available_frames(); } +int32_t IncrementalMelSpectrogram::stable_target_sample_count(bool final) const { + return impl_->stable_target_sample_count(final); +} + int32_t IncrementalMelSpectrogram::frame_count() const { return impl_->frame_count(); } diff --git a/src/runtime/models/parakeet_tdt/audio_helpers.h b/src/runtime/models/parakeet_tdt/audio_helpers.h index 6ec8955050..40958b739a 100644 --- a/src/runtime/models/parakeet_tdt/audio_helpers.h +++ b/src/runtime/models/parakeet_tdt/audio_helpers.h @@ -64,6 +64,7 @@ class IncrementalMelSpectrogram { void reset(); int32_t available_frames() const; + int32_t stable_target_sample_count(bool final = false) const; int32_t frame_count() const; int32_t n_mels() const; float value(int32_t mel_bin, int32_t frame) const; diff --git a/src/runtime/models/parakeet_tdt/pipeline.cpp b/src/runtime/models/parakeet_tdt/pipeline.cpp index 44058499e6..c54b6a39fe 100644 --- a/src/runtime/models/parakeet_tdt/pipeline.cpp +++ b/src/runtime/models/parakeet_tdt/pipeline.cpp @@ -122,6 +122,10 @@ void validate_tdt_core_config(const TdtConfig& config, const MelFilterbank& mel_ if (config.encoder_hidden_size <= 0 || config.pred_hidden_size <= 0 || config.pred_num_layers <= 0) throw std::runtime_error("TdtPipeline: invalid TDT dimensions in config"); + if (config.sample_rate <= 0 || config.mel_hop_length <= 0) + throw std::runtime_error("TdtPipeline: sample rate and mel hop length must be positive"); + if (config.max_symbols_per_step <= 0) + throw std::runtime_error("TdtPipeline: max_symbols_per_step must be positive"); if (config.blank_id < 0) throw std::runtime_error("TdtPipeline: invalid blank token id"); } @@ -437,9 +441,12 @@ TdtPipeline::TdtPipeline(std::unique_ptr encoder, std::unique_ptr(std::move(mel_fb))), stream_(stream), tokenizer_(std::move(tokenizer)), model_id_(std::move(model_id_str)) { + module_options_.runtime_cache_path = runtime_cache_path_.c_str(); validate_tdt_module(encoder_, "encoder"); validate_tdt_module(predictor_, "predictor"); validate_tdt_module(joint_, "joint"); @@ -482,6 +489,8 @@ std::vector TdtPipeline::run_prompt_kernel(const float* encoder_frame) { auto it = outputs.find("prompt_kernel_output"); if (it == outputs.end()) throw std::runtime_error("TdtPipeline: prompt_kernel missing 'prompt_kernel_output'"); + if (it->second.numel() != config_.encoder_hidden_size) + throw std::runtime_error("TdtPipeline: prompt_kernel output size does not match config"); const auto* src = static_cast(it->second.data); const auto count = static_cast(it->second.numel()); return std::vector(src, src + count); @@ -503,35 +512,9 @@ void TdtPipeline::setup_prompt_state(const std::string& language) { std::unique_ptr TdtPipeline::create_transcription_stream(const TranscriptionStreamConfig& cfg) { - (void)make_tdt_streaming_schedule(cfg.att_context_left, cfg.att_context_right, - cfg.input_sample_rate, config_.mel_hop_length, - config_.subsampling_factor); - - setup_prompt_state(cfg.language); - - if (cfg.online_normalization) - throw std::runtime_error("TDT streaming transcription does not support " - "online_normalization for this checkpoint"); - if (!cfg.use_cache || !cfg.use_feature_cache) - throw std::runtime_error("TDT streaming transcription parity requires both encoder cache " - "and feature cache to match NeMo cache-aware streaming"); - if (streaming_encoders_.find(cfg.att_context_right) == streaming_encoders_.end() && - streaming_encoder_sections_.find(cfg.att_context_right) == - streaming_encoder_sections_.end()) { - throw std::runtime_error( - "TDT cache-aware streaming requires a bundle with streaming encoder cache " - "inputs/outputs for the requested att_context_size"); - } - if (!cfg.pad_and_drop_preencoded && - streaming_first_encoders_.find(cfg.att_context_right) == streaming_first_encoders_.end() && - streaming_first_encoder_sections_.find(cfg.att_context_right) == - streaming_first_encoder_sections_.end()) { - throw std::runtime_error( - "TDT cache-aware streaming requires a first-step streaming encoder plan for " - "NeMo pad_and_drop_preencoded=false parity"); - } - (void)streaming_encoder_for(cfg.att_context_right, !cfg.pad_and_drop_preencoded); - return std::make_unique(*this, cfg); + (void)cfg; + throw std::runtime_error( + "Parakeet TDT v3 only provides an offline encoder; streaming transcription is unsupported"); } TextResult TdtPipeline::transcribe(const float* audio_data, int32_t num_samples, @@ -654,6 +637,9 @@ std::vector TdtPipeline::run_encoder(const std::vector& mel, int32 auto it = outputs.find("encoder_output"); if (it == outputs.end()) throw std::runtime_error("TdtPipeline: encoder missing 'encoder_output'"); + if (it->second.numel() <= 0 || + it->second.numel() % config_.encoder_hidden_size != 0) + throw std::runtime_error("TdtPipeline: encoder output size does not match config"); const auto frames = infer_encoder_frames(it->second, config_.encoder_hidden_size); const auto valid_frames = std::min( frames, std::max(1, subsampled_frame_count(actual_frames, config_.causal_downsampling))); @@ -734,6 +720,11 @@ std::vector TdtPipeline::run_streaming_encoder( if (enc_it == outputs.end() || ch_it == outputs.end() || tm_it == outputs.end()) throw std::runtime_error("TdtPipeline: streaming encoder missing required outputs"); + const auto expected_encoder = + static_cast(query_frames) * config_.encoder_hidden_size; + if (enc_it->second.numel() != expected_encoder) + throw std::runtime_error("TdtPipeline: streaming encoder output size does not match config"); + const auto* enc_src = static_cast(enc_it->second.data); const auto enc_count = static_cast(query_frames) * config_.encoder_hidden_size; std::vector enc(enc_src, enc_src + enc_count); @@ -762,6 +753,7 @@ void TdtPipeline::decode_encoder_frames(const std::vector& encoder_output projected = run_prompt_kernel(enc_ptr); enc_frame = projected.data(); } + int32_t symbols_on_frame = 0; while (static_cast(emitted.size()) < token_limit) { const auto logits = run_joint(enc_frame, pred_output.data()); const auto token_count = static_cast(config_.blank_id + 1); @@ -778,11 +770,16 @@ void TdtPipeline::decode_encoder_frames(const std::vector& encoder_output token, duration_index, config_.duration_values, config_.blank_id); if (decision.emit_token) { emitted.push_back(token); + ++symbols_on_frame; pred_output = run_predictor(token, state_h, state_c); } frame += decision.frame_advance; if (decision.frame_advance > 0) break; + if (symbols_on_frame >= config_.max_symbols_per_step) { + ++frame; + break; + } } } } @@ -807,12 +804,17 @@ std::vector TdtPipeline::run_predictor(int32_t token_id, std::vectorsecond.numel() != config_.pred_hidden_size) + throw std::runtime_error("TdtPipeline: predictor output size does not match config"); for (int32_t layer = 0; layer < config_.pred_num_layers; ++layer) { const std::string suffix = "_" + std::to_string(layer); auto h_it = outputs.find("next_h" + suffix); auto c_it = outputs.find("next_c" + suffix); if (h_it == outputs.end() || c_it == outputs.end()) throw std::runtime_error("TdtPipeline: predictor missing next state outputs"); + if (h_it->second.numel() != config_.pred_hidden_size || + c_it->second.numel() != config_.pred_hidden_size) + throw std::runtime_error("TdtPipeline: predictor state output size does not match config"); std::memcpy(state_h.data() + static_cast(layer) * layer_stride, h_it->second.data, layer_stride * sizeof(float)); std::memcpy(state_c.data() + static_cast(layer) * layer_stride, @@ -834,6 +836,10 @@ std::vector TdtPipeline::run_joint(const float* encoder_frame, const floa auto duration_it = outputs.find("duration_logits"); if (token_it == outputs.end() || duration_it == outputs.end()) throw std::runtime_error("TdtPipeline: joint missing token_logits or duration_logits"); + if (token_it->second.numel() != config_.blank_id + 1 || + duration_it->second.numel() != + static_cast(config_.duration_values.size())) + throw std::runtime_error("TdtPipeline: joint output sizes do not match config"); const auto* tokens = static_cast(token_it->second.data); const auto* durations = static_cast(duration_it->second.data); std::vector logits(tokens, tokens + token_it->second.numel()); diff --git a/src/runtime/models/parakeet_tdt/pipeline.h b/src/runtime/models/parakeet_tdt/pipeline.h index 957821e53c..c8b51bacdc 100644 --- a/src/runtime/models/parakeet_tdt/pipeline.h +++ b/src/runtime/models/parakeet_tdt/pipeline.h @@ -90,6 +90,7 @@ class TdtPipeline final : public IPipeline { std::map> streaming_encoders_; std::map> streaming_first_encoders_; IBackend* backend_{nullptr}; + std::string runtime_cache_path_; ModuleCreateOptions module_options_; std::string bundle_path_; TdtConfig config_; diff --git a/src/runtime/models/parakeet_tdt/plugin.cpp b/src/runtime/models/parakeet_tdt/plugin.cpp index f5f805a2e6..aabbc54854 100644 --- a/src/runtime/models/parakeet_tdt/plugin.cpp +++ b/src/runtime/models/parakeet_tdt/plugin.cpp @@ -109,8 +109,6 @@ class ParakeetTDTPlugin final : public IPipelinePlugin { std::map streaming_first_encoder_sections; auto right_contexts = extract_json_int_array(ctx.config_json, "tdt_streaming_right_contexts"); - if (right_contexts.empty()) - right_contexts = {13, 6, 1, 0}; for (int32_t right_context : right_contexts) { const std::string section_name = "streaming_encoder_plan_ctx" + std::to_string(right_context); @@ -156,8 +154,7 @@ class ParakeetTDTPlugin final : public IPipelinePlugin { extract_json_int(json, "tdt_streaming_pre_encode_cache", 9); cfg.streaming_drop_pre_encoded = extract_json_int(json, "tdt_streaming_drop_pre_encoded", 2); - cfg.causal_downsampling = - json.find("\"tdt_causal_downsampling\": true") != std::string::npos; + cfg.causal_downsampling = extract_json_bool(json, "tdt_causal_downsampling", false); cfg.has_prompt_kernel = has_prompt_kernel; cfg.num_prompts = extract_json_int(json, "tdt_num_prompts", 0); cfg.prompt_dictionary = extract_string_int_map(json, "tdt_prompt_dictionary"); diff --git a/src/runtime/models/parakeet_tdt/plugin_helpers.cpp b/src/runtime/models/parakeet_tdt/plugin_helpers.cpp index 8d1e06cb4a..4953eee5d2 100644 --- a/src/runtime/models/parakeet_tdt/plugin_helpers.cpp +++ b/src/runtime/models/parakeet_tdt/plugin_helpers.cpp @@ -10,16 +10,20 @@ #include #include -#include #include #include #include #include #include -#include #if TRTMC_HAS_TVM_FFI #include "plugins/tvm_ffi_module_loader.h" + +#include +#include +#include +#include +#include #endif namespace trtmc { @@ -166,7 +170,7 @@ bool is_bpe_tokenizer_json(const BundleFile& bundle) { auto* tok_data = find_section(bundle, "tokenizer.json"); if (!tok_data || tok_data->empty()) return false; - // Quick string search 闁?avoid full JSON parse just for type detection + // Quick string search avoids a full JSON parse just for type detection. std::string_view json(tok_data->data(), tok_data->size()); return json.find("\"type\":\"BPE\"") != std::string_view::npos || json.find("\"type\": \"BPE\"") != std::string_view::npos; @@ -385,7 +389,7 @@ std::unique_ptr create_clip_tokenizer_from_bundle(const BundleFile& return nullptr; } -// 闁冲厜鍋撻柍鍏夊亾闁冲厜鍋?FFI kernel loading 闁冲厜鍋撻柍鍏夊亾闁冲厜鍋? +// FFI kernel loading. #if TRTMC_HAS_TVM_FFI namespace { @@ -393,15 +397,31 @@ namespace { // Write a bundle section to a temporary .so file, returning the path. std::string write_kernel_so_to_temp(const std::string& global_name, const char* data, std::size_t size) { - std::string safe_name = global_name; - for (auto& c : safe_name) { - if (c == '.') - c = '_'; + (void)global_name; + std::string pattern = "/tmp/trtmc_kernel_XXXXXX.so"; + std::vector writable(pattern.begin(), pattern.end()); + writable.push_back('\0'); + const int fd = ::mkstemps(writable.data(), 3); + if (fd < 0) + throw std::runtime_error("Failed to create a unique FFI kernel temporary file"); + + std::size_t written = 0; + while (written < size) { + const auto count = ::write(fd, data + written, size - written); + if (count < 0 && errno == EINTR) + continue; + if (count <= 0) { + ::close(fd); + std::remove(writable.data()); + throw std::runtime_error("Failed to write the complete FFI kernel temporary file"); + } + written += static_cast(count); + } + if (::close(fd) != 0) { + std::remove(writable.data()); + throw std::runtime_error("Failed to close the FFI kernel temporary file"); } - std::string tmp_path = "/tmp/trtmc_kernel_" + safe_name + ".so"; - std::ofstream ofs(tmp_path, std::ios::binary); - ofs.write(data, static_cast(size)); - return tmp_path; + return writable.data(); } // Load a single kernel entry from the manifest and register it via TVM-FFI. @@ -420,7 +440,15 @@ void load_single_kernel(const BundleFile& bundle, const std::string& obj) { } std::string tmp_path = write_kernel_so_to_temp(global_name, so_sec->data(), so_sec->size()); - if (load_tvm_ffi_module_func(tmp_path, func_name, global_name)) { + bool loaded = false; + try { + loaded = load_tvm_ffi_module_func(tmp_path, func_name, global_name); + } catch (...) { + std::remove(tmp_path.c_str()); + throw; + } + std::remove(tmp_path.c_str()); + if (loaded) { std::cerr << "[ffi] Loaded kernel: " << global_name << '\n'; } else { std::cerr << "[ffi] Failed to load kernel: " << global_name << " from " << section_name @@ -428,19 +456,6 @@ void load_single_kernel(const BundleFile& bundle, const std::string& obj) { } } -// Find the "kernels" JSON array bounds within the manifest string. -// Returns {start_after_bracket, closing_bracket} or {npos, npos}. -std::pair find_kernels_array_bounds(const std::string& s) { - auto pos = s.find("\"kernels\""); - if (pos == std::string::npos) - return {std::string::npos, std::string::npos}; - auto arr_start = s.find('[', pos); - if (arr_start == std::string::npos) - return {std::string::npos, std::string::npos}; - auto arr_end = s.find(']', arr_start); - return {arr_start + 1, arr_end}; -} - } // namespace #endif // TRTMC_HAS_TVM_FFI @@ -451,22 +466,12 @@ void load_ffi_kernels_from_bundle(const BundleFile& bundle) { if (!manifest_sec) return; - std::string manifest_str(manifest_sec->begin(), manifest_sec->end()); - auto [cur, arr_end] = find_kernels_array_bounds(manifest_str); - if (cur == std::string::npos || arr_end == std::string::npos) + const auto manifest = nlohmann::json::parse(manifest_sec->begin(), manifest_sec->end()); + const auto kernels = manifest.find("kernels"); + if (kernels == manifest.end() || !kernels->is_array()) return; - - while (cur < arr_end) { - auto obj_start = manifest_str.find('{', cur); - if (obj_start == std::string::npos || obj_start >= arr_end) - break; - auto obj_end = manifest_str.find('}', obj_start); - if (obj_end == std::string::npos) - break; - - load_single_kernel(bundle, manifest_str.substr(obj_start, obj_end - obj_start + 1)); - cur = obj_end + 1; - } + for (const auto& kernel : *kernels) + load_single_kernel(bundle, kernel.dump()); #else (void)bundle; #endif diff --git a/src/runtime/models/parakeet_tdt/plugin_helpers.h b/src/runtime/models/parakeet_tdt/plugin_helpers.h index 877e96d7ee..4da51dc6dc 100644 --- a/src/runtime/models/parakeet_tdt/plugin_helpers.h +++ b/src/runtime/models/parakeet_tdt/plugin_helpers.h @@ -25,7 +25,7 @@ namespace trtmc { // A loaded TRT engine, ready for inference. -// The stream is owned internally by the module 闂?callers get it via module->stream(). +// The stream is owned internally by the module; callers use module->stream(). struct LoadedModule { std::unique_ptr module; }; @@ -60,7 +60,7 @@ struct DualProfileModules { }; // Load an engine from a serialized plan via the backend and create two -// execution contexts 闂?one per optimization profile 闂?sharing the engine. +// execution contexts, one per optimization profile, sharing the engine. // When the engine has fewer than 2 profiles, `prefill` is left null and // `decode` holds the single-profile context (legacy bundles). DualProfileModules load_dual_profile_modules(IBackend* backend, const std::vector* plan, diff --git a/src/runtime/models/parakeet_tdt/tdt_config.h b/src/runtime/models/parakeet_tdt/tdt_config.h index 61c5186cbd..070826d83f 100644 --- a/src/runtime/models/parakeet_tdt/tdt_config.h +++ b/src/runtime/models/parakeet_tdt/tdt_config.h @@ -83,6 +83,7 @@ inline TdtStreamingSchedule make_tdt_streaming_schedule(int32_t left, int32_t ri out.att_context_left = left; out.att_context_right = right; out.subsampling_factor = subsampling; + out.encoder_frame_ms = hop * subsampling * 1000 / sample_rate; out.valid_encoder_frames = right + 1; out.chunk_ms = out.valid_encoder_frames * out.encoder_frame_ms; out.chunk_samples = sample_rate * out.chunk_ms / 1000; @@ -90,6 +91,9 @@ inline TdtStreamingSchedule make_tdt_streaming_schedule(int32_t left, int32_t ri out.next_chunk_mel_frames = subsampling * out.valid_encoder_frames; out.first_shift_mel_frames = out.first_chunk_mel_frames; out.next_shift_mel_frames = out.next_chunk_mel_frames; + out.next_pre_encode_cache_mel_frames = subsampling + 1; + out.drop_extra_pre_encoded = + out.next_pre_encode_cache_mel_frames - (subsampling - 1); return out; } diff --git a/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_audio_helpers.cpp b/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_audio_helpers.cpp index c866af04eb..f85f901bbd 100644 --- a/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_audio_helpers.cpp +++ b/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_audio_helpers.cpp @@ -8,6 +8,7 @@ #include "runtime/models/parakeet_tdt/audio_helpers.h" #include "utils/wav_reader.h" +#include #include #include #include @@ -131,8 +132,7 @@ std::vector run_resampled_chunks(const std::vector& source_audio, break; } - constexpr int32_t kResampleHalfTaps = 16; - const int32_t stable_target = std::max(0, accepted - kResampleHalfTaps) / 3; + const int32_t stable_target = state.stable_target_sample_count(); const int32_t stable_frames = stable_target >= options.n_fft / 2 ? 1 + (stable_target - options.n_fft / 2) / options.hop_length diff --git a/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_decode_policy.cpp b/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_decode_policy.cpp index 32b86d5e1f..b7944f57f3 100644 --- a/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_decode_policy.cpp +++ b/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_decode_policy.cpp @@ -6,6 +6,7 @@ #include "runtime/models/parakeet_tdt/tdt_config.h" #include +#include namespace { @@ -36,12 +37,45 @@ void test_zero_duration_nonblank_stays_on_frame() { check(decision.frame_advance == 0, "zero-duration nonblank must stay on the frame"); } +void test_invalid_duration_index_is_rejected() { + bool threw = false; + try { + (void)trtmc::make_tdt_greedy_decision(7, 3, {0, 1, 2}, 9); + } catch (const std::out_of_range&) { + threw = true; + } + check(threw, "duration indices outside the table must throw"); +} + +void test_negative_duration_is_rejected() { + bool threw = false; + try { + (void)trtmc::make_tdt_greedy_decision(7, 1, {0, -1, 2}, 9); + } catch (const std::invalid_argument&) { + threw = true; + } + check(threw, "negative duration values must throw"); +} + +void test_streaming_schedule_derives_timing_and_cache_geometry() { + const auto schedule = trtmc::make_tdt_streaming_schedule(20, 3, 8000, 80, 4); + check(schedule.encoder_frame_ms == 40, "encoder frame timing derives from hop and stride"); + check(schedule.chunk_samples == 1280, "chunk samples derive from schedule timing"); + check(schedule.next_pre_encode_cache_mel_frames == 5, + "pre-encode cache derives from subsampling"); + check(schedule.drop_extra_pre_encoded == 2, + "pre-encode drop derives from cache overlap"); +} + } // namespace int main() { test_duration_value_controls_frame_advance(); test_zero_duration_blank_forces_progress_without_emit(); test_zero_duration_nonblank_stays_on_frame(); + test_invalid_duration_index_is_rejected(); + test_negative_duration_is_rejected(); + test_streaming_schedule_derives_timing_and_cache_geometry(); if (failures) { std::cerr << failures << " TDT decode policy test(s) failed\n"; return 1; diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/comparators/parakeet_tdt_asr.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/comparators/parakeet_tdt_asr.py index 1f818fcbf1..31765c7d0e 100644 --- a/tests/e2e/models/parakeet_tdt/e2e_plugins/comparators/parakeet_tdt_asr.py +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/comparators/parakeet_tdt_asr.py @@ -93,8 +93,10 @@ def compare( if not ok: all_pass = False - # Word Error Rate - if trt_transcript and ref_transcript: + # Word/character error rates also cover one-sided empty output. An + # empty hypothesis against non-empty reference must never pass by + # skipping the only semantic correctness metrics. + if trt_transcript or ref_transcript: wer = _compute_wer(ref_transcript, trt_transcript) wer_thresh = thresholds.get("wer", 0.1) wer_ok = wer <= wer_thresh diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/contract.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/contract.py index f9f0c36d93..2e2641be69 100644 --- a/tests/e2e/models/parakeet_tdt/e2e_plugins/contract.py +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/contract.py @@ -68,7 +68,6 @@ def strip_chat_markup(text: str) -> str: cut = min(cut, idx) if cut < len(out): out = out[:cut] - import re out = re.sub(r"(?:\s*#{2,}\s*)+$", "", out).strip() return out diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/references/parakeet_tdt_hf.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/references/parakeet_tdt_hf.py index d69da1ef79..cc533e2677 100644 --- a/tests/e2e/models/parakeet_tdt/e2e_plugins/references/parakeet_tdt_hf.py +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/references/parakeet_tdt_hf.py @@ -20,13 +20,14 @@ PROJECT_DIR = Path(__file__).resolve().parents[6] E2E_DIR = PROJECT_DIR / "tests" / "e2e" +MODEL_DIR = Path(__file__).resolve().parents[2] def _resolve_audio_path(value: str) -> str: path = Path(value) if path.is_file(): return str(path.resolve()) - for base in (E2E_DIR, PROJECT_DIR): + for base in (MODEL_DIR, E2E_DIR, PROJECT_DIR): candidate = base / path if candidate.is_file(): return str(candidate.resolve()) diff --git a/tests/e2e/models/parakeet_tdt/e2e_plugins/runners/parakeet_tdt_speech.py b/tests/e2e/models/parakeet_tdt/e2e_plugins/runners/parakeet_tdt_speech.py index e6024d3088..aa5c049c1c 100644 --- a/tests/e2e/models/parakeet_tdt/e2e_plugins/runners/parakeet_tdt_speech.py +++ b/tests/e2e/models/parakeet_tdt/e2e_plugins/runners/parakeet_tdt_speech.py @@ -177,9 +177,9 @@ def _run_transcribe( audio_input = (case.inputs.get("audio") or case.inputs.get("audio_path") or case.metadata.get("test_input_audio", "")) if audio_input and not os.path.isabs(audio_input): - # Resolve relative to project's tests/e2e/ directory - e2e_dir = Path(__file__).resolve().parents[2] / "e2e" - audio_input = str(e2e_dir / audio_input) + # Manifest audio paths are owned by this model family. + model_dir = Path(__file__).resolve().parents[2] + audio_input = str(model_dir / audio_input) max_new_tokens = case.inputs.get("max_new_tokens", 100) diff --git a/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_contracts.py b/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_contracts.py index dbc017c101..3952d96289 100644 --- a/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_contracts.py +++ b/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_contracts.py @@ -4,12 +4,14 @@ from __future__ import annotations import ast +import io import importlib import importlib.util import json import re import runpy import sys +import tarfile from pathlib import Path from types import ModuleType from types import SimpleNamespace @@ -83,6 +85,55 @@ def test_config_parses_the_published_architecture_and_rejects_drift() -> None: config_mod.ParakeetTDTConfig.from_json(json.dumps(bad)).validate_supported_checkpoint() +def test_config_from_dir_reports_the_missing_family_contract(tmp_path: Path) -> None: + config_mod = _load_module("parakeet_tdt_config_missing", "config.py") + + with pytest.raises(FileNotFoundError, match="Parakeet TDT model directory"): + config_mod.ParakeetTDTConfig.from_dir(tmp_path) + + +def test_family_private_builder_config_only_projects_parakeet_fields() -> None: + model_config = _load_module("parakeet_tdt_model_config", "model_config.py") + + cfg = model_config.ModelConfig.from_json(json.dumps(_hf_config())) + + assert cfg.model_type == "parakeet_tdt" + assert cfg.hidden_size == 640 + assert cfg.num_hidden_layers == 2 + assert cfg.vocab_size == 8193 + assert cfg.raw["encoder_config"]["hidden_size"] == 1024 + + +def test_nemo_checkpoint_load_uses_safe_weight_only_mode( + monkeypatch, tmp_path: Path +) -> None: + checkpoint = _load_module("parakeet_tdt_checkpoint_safe", "checkpoint.py") + archive_path = tmp_path / "model.nemo" + with tarfile.open(archive_path, "w") as archive: + for name, payload in ( + ("model_config.yaml", b"target: test\n"), + ("model_weights.ckpt", b"checkpoint"), + ): + info = tarfile.TarInfo(name) + info.size = len(payload) + archive.addfile(info, io.BytesIO(payload)) + + captured: dict[str, object] = {} + fake_torch = ModuleType("torch") + + def _load(_stream, **kwargs): + captured.update(kwargs) + return {"state_dict": {"weight": np.array([1.0], dtype=np.float32)}} + + fake_torch.load = _load + monkeypatch.setitem(sys.modules, "torch", fake_torch) + + state, _ = checkpoint.load_nemo_archive(tmp_path) + + assert captured == {"map_location": "cpu", "weights_only": True} + assert "weight" in state + + def test_tdt_policy_uses_duration_values_and_forces_zero_duration_progress() -> None: policy = _load_module("parakeet_tdt_decode_policy", "decode_policy.py") @@ -166,6 +217,55 @@ def test_nemo_classifier_uses_tdt_architecture_fields_not_checkpoint_name(tmp_pa assert archive.resolve_model_dir(tmp_path) == tmp_path +def test_nemo_resolution_emits_the_complete_typed_checkpoint_schema( + monkeypatch, tmp_path: Path +) -> None: + archive = _load_module("parakeet_tdt_nemo_archive_schema", "nemo_archive.py") + config_mod = _load_module("parakeet_tdt_config_schema", "config.py") + nemo_cfg = { + "target": "nemo.collections.asr.models.rnnt_bpe_models.EncDecRNNTBPEModel", + "encoder": { + "d_model": 1024, + "n_layers": 24, + "n_heads": 8, + "ff_expansion_factor": 4, + "conv_kernel_size": 9, + "subsampling_conv_channels": 256, + "subsampling_factor": 8, + "max_len": 5000, + }, + "preprocessor": {"features": 128}, + "decoder": { + "blank_idx": 8192, + "prednet": {"pred_hidden": 640, "pred_rnn_layers": 2}, + }, + "joint": { + "num_extra_outputs": 5, + "jointnet": {"activation": "relu"}, + }, + "decoding": {"durations": [0, 1, 2, 3, 4], "max_symbols_per_step": 10}, + "tdt_durations": [0, 1, 2, 3, 4], + "vocab_size": 8193, + } + import yaml + + nemo_path = tmp_path / "checkpoint.nemo" + payload = yaml.safe_dump(nemo_cfg).encode() + with tarfile.open(nemo_path, "w") as tar: + info = tarfile.TarInfo("model_config.yaml") + info.size = len(payload) + tar.addfile(info, io.BytesIO(payload)) + staged = tmp_path / "staged" + staged.mkdir() + monkeypatch.setattr(archive.tempfile, "mkdtemp", lambda **_kwargs: str(staged)) + monkeypatch.setattr(archive, "_symlink_archive", lambda *_args: None) + + resolved = Path(archive.resolve_nemo_archive(nemo_path)) + cfg = config_mod.ParakeetTDTConfig.from_dir(resolved) + + cfg.validate_supported_checkpoint() + + def test_manifest_pins_exact_hugging_face_revision_and_strict_asr_oracle() -> None: manifest_path = Path(__file__).with_name("manifests") / "parakeet-tdt-0.6b-v3.json" raw = json.loads(manifest_path.read_text(encoding="utf-8")) @@ -386,19 +486,23 @@ def test_validation_reference_decodes_tdt_generation_output(monkeypatch) -> None captured: dict[str, object] = {} class FakeSequence: - def __getitem__(self, _index): - return self - def tolist(self): return [16, 23, 42] + sequence = FakeSequence() + + class FakeBatch: + def __getitem__(self, index): + assert index == 0 + return sequence + class FakeModel: def parameters(self): return iter([SimpleNamespace(dtype="fp32")]) def generate(self, **kwargs): captured["generate"] = kwargs - return SimpleNamespace(sequences=FakeSequence()) + return SimpleNamespace(sequences=FakeBatch()) class FakeProcessor: feature_extractor = SimpleNamespace(sampling_rate=16_000) @@ -454,7 +558,7 @@ def __exit__(self, *_args): "max_new_tokens": 50, "return_dict_in_generate": True, } - assert isinstance(captured["decode"][0], FakeSequence) + assert captured["decode"][0] is sequence assert captured["decode"][1] == {"skip_special_tokens": True} @@ -476,3 +580,28 @@ def test_exact_transcript_contract_rejects_any_normalized_difference() -> None: result = contract.plugin.verify(different, reference, case, threshold) assert result.status == "failed" + + +def test_asr_comparator_rejects_one_sided_empty_transcript() -> None: + comparator = importlib.import_module( + "tests.e2e.models.parakeet_tdt.e2e_plugins.comparators.parakeet_tdt_asr" + ) + trt = SimpleNamespace(data={"returncode": 0, "transcript": ""}, text="") + ref = SimpleNamespace(data={"transcript": "expected speech"}, text="") + threshold = SimpleNamespace(metrics={"wer": 0.1, "cer": 0.1}) + stage = SimpleNamespace(name="full_inference") + + result = comparator.plugin.compare(trt, ref, threshold, stage) + + assert result.status == "failed" + assert result.metrics["wer"].value == 1.0 + + +def test_reference_resolves_audio_from_the_owning_model_directory() -> None: + reference = importlib.import_module( + "tests.e2e.models.parakeet_tdt.e2e_plugins.references.parakeet_tdt_hf" + ) + + resolved = Path(reference._resolve_audio_path("data/Recording.wav")) + + assert resolved == (Path(__file__).parent / "data" / "Recording.wav").resolve() diff --git a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe01.json b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe01.json index 0c1b6548d4..59f22565e3 100644 --- a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe01.json +++ b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe01.json @@ -1,7 +1,7 @@ { - "layer_atol": 0.1, - "logit_atol": 0.01, "threshold_overrides": { + "layer_atol": 0.1, + "logit_atol": 0.01, "contract_ned_threshold": 0.1, "contract_wer_threshold": 0.1, "contract_cer_threshold": 0.1, diff --git a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe02.json b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe02.json index 0c1b6548d4..59f22565e3 100644 --- a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe02.json +++ b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe02.json @@ -1,7 +1,7 @@ { - "layer_atol": 0.1, - "logit_atol": 0.01, "threshold_overrides": { + "layer_atol": 0.1, + "logit_atol": 0.01, "contract_ned_threshold": 0.1, "contract_wer_threshold": 0.1, "contract_cer_threshold": 0.1, diff --git a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe03.json b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe03.json index 0c1b6548d4..59f22565e3 100644 --- a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe03.json +++ b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe03.json @@ -1,7 +1,7 @@ { - "layer_atol": 0.1, - "logit_atol": 0.01, "threshold_overrides": { + "layer_atol": 0.1, + "logit_atol": 0.01, "contract_ned_threshold": 0.1, "contract_wer_threshold": 0.1, "contract_cer_threshold": 0.1, diff --git a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe04.json b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe04.json index 0c1b6548d4..59f22565e3 100644 --- a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe04.json +++ b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe04.json @@ -1,7 +1,7 @@ { - "layer_atol": 0.1, - "logit_atol": 0.01, "threshold_overrides": { + "layer_atol": 0.1, + "logit_atol": 0.01, "contract_ned_threshold": 0.1, "contract_wer_threshold": 0.1, "contract_cer_threshold": 0.1, diff --git a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe05.json b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe05.json index 0c1b6548d4..59f22565e3 100644 --- a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe05.json +++ b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe05.json @@ -1,7 +1,7 @@ { - "layer_atol": 0.1, - "logit_atol": 0.01, "threshold_overrides": { + "layer_atol": 0.1, + "logit_atol": 0.01, "contract_ned_threshold": 0.1, "contract_wer_threshold": 0.1, "contract_cer_threshold": 0.1, diff --git a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe06.json b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe06.json index 0c1b6548d4..59f22565e3 100644 --- a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe06.json +++ b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe06.json @@ -1,7 +1,7 @@ { - "layer_atol": 0.1, - "logit_atol": 0.01, "threshold_overrides": { + "layer_atol": 0.1, + "logit_atol": 0.01, "contract_ned_threshold": 0.1, "contract_wer_threshold": 0.1, "contract_cer_threshold": 0.1, diff --git a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe08.json b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe08.json index 0c1b6548d4..59f22565e3 100644 --- a/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe08.json +++ b/tests/e2e/models/parakeet_tdt/thresholds/parakeet-tdt-0.6b-v3-asr-probe08.json @@ -1,7 +1,7 @@ { - "layer_atol": 0.1, - "logit_atol": 0.01, "threshold_overrides": { + "layer_atol": 0.1, + "logit_atol": 0.01, "contract_ned_threshold": 0.1, "contract_wer_threshold": 0.1, "contract_cer_threshold": 0.1, diff --git a/tools/reference/speech.py b/tools/reference/speech.py index 79119ff535..06340ee401 100644 --- a/tools/reference/speech.py +++ b/tools/reference/speech.py @@ -362,7 +362,7 @@ def _run_whisper_asr( ) output_ids = generated.sequences if hasattr(generated, "sequences") else generated if _is_parakeet_tdt_asr(arguments): - decoded = processor.decode(output_ids, skip_special_tokens=True) + decoded = processor.decode(output_ids[0], skip_special_tokens=True) else: decoded = processor.batch_decode(output_ids, skip_special_tokens=True) output_text = decoded[0] if isinstance(decoded, (list, tuple)) else str(decoded) From a1f10df999b03c00e62fb5ddf44ad527ff12760c Mon Sep 17 00:00:00 2001 From: JiaxinD Date: Sun, 30 Aug 2026 17:48:18 -0700 Subject: [PATCH 03/16] style(parakeet): apply runtime formatting Apply the repository clang-format rules to the reviewed runtime checks and schedule coverage. Signed-off-by: JiaxinD --- src/runtime/models/parakeet_tdt/pipeline.cpp | 18 +++++++++--------- src/runtime/models/parakeet_tdt/tdt_config.h | 3 +-- .../test_parakeet_tdt_decode_policy.cpp | 3 +-- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/runtime/models/parakeet_tdt/pipeline.cpp b/src/runtime/models/parakeet_tdt/pipeline.cpp index c54b6a39fe..984e5f362e 100644 --- a/src/runtime/models/parakeet_tdt/pipeline.cpp +++ b/src/runtime/models/parakeet_tdt/pipeline.cpp @@ -442,7 +442,8 @@ TdtPipeline::TdtPipeline(std::unique_ptr encoder, std::unique_ptr(std::move(mel_fb))), stream_(stream), tokenizer_(std::move(tokenizer)), model_id_(std::move(model_id_str)) { @@ -637,8 +638,7 @@ std::vector TdtPipeline::run_encoder(const std::vector& mel, int32 auto it = outputs.find("encoder_output"); if (it == outputs.end()) throw std::runtime_error("TdtPipeline: encoder missing 'encoder_output'"); - if (it->second.numel() <= 0 || - it->second.numel() % config_.encoder_hidden_size != 0) + if (it->second.numel() <= 0 || it->second.numel() % config_.encoder_hidden_size != 0) throw std::runtime_error("TdtPipeline: encoder output size does not match config"); const auto frames = infer_encoder_frames(it->second, config_.encoder_hidden_size); const auto valid_frames = std::min( @@ -720,10 +720,10 @@ std::vector TdtPipeline::run_streaming_encoder( if (enc_it == outputs.end() || ch_it == outputs.end() || tm_it == outputs.end()) throw std::runtime_error("TdtPipeline: streaming encoder missing required outputs"); - const auto expected_encoder = - static_cast(query_frames) * config_.encoder_hidden_size; + const auto expected_encoder = static_cast(query_frames) * config_.encoder_hidden_size; if (enc_it->second.numel() != expected_encoder) - throw std::runtime_error("TdtPipeline: streaming encoder output size does not match config"); + throw std::runtime_error( + "TdtPipeline: streaming encoder output size does not match config"); const auto* enc_src = static_cast(enc_it->second.data); const auto enc_count = static_cast(query_frames) * config_.encoder_hidden_size; @@ -814,7 +814,8 @@ std::vector TdtPipeline::run_predictor(int32_t token_id, std::vectorsecond.numel() != config_.pred_hidden_size || c_it->second.numel() != config_.pred_hidden_size) - throw std::runtime_error("TdtPipeline: predictor state output size does not match config"); + throw std::runtime_error( + "TdtPipeline: predictor state output size does not match config"); std::memcpy(state_h.data() + static_cast(layer) * layer_stride, h_it->second.data, layer_stride * sizeof(float)); std::memcpy(state_c.data() + static_cast(layer) * layer_stride, @@ -837,8 +838,7 @@ std::vector TdtPipeline::run_joint(const float* encoder_frame, const floa if (token_it == outputs.end() || duration_it == outputs.end()) throw std::runtime_error("TdtPipeline: joint missing token_logits or duration_logits"); if (token_it->second.numel() != config_.blank_id + 1 || - duration_it->second.numel() != - static_cast(config_.duration_values.size())) + duration_it->second.numel() != static_cast(config_.duration_values.size())) throw std::runtime_error("TdtPipeline: joint output sizes do not match config"); const auto* tokens = static_cast(token_it->second.data); const auto* durations = static_cast(duration_it->second.data); diff --git a/src/runtime/models/parakeet_tdt/tdt_config.h b/src/runtime/models/parakeet_tdt/tdt_config.h index 070826d83f..ca641c9fb5 100644 --- a/src/runtime/models/parakeet_tdt/tdt_config.h +++ b/src/runtime/models/parakeet_tdt/tdt_config.h @@ -92,8 +92,7 @@ inline TdtStreamingSchedule make_tdt_streaming_schedule(int32_t left, int32_t ri out.first_shift_mel_frames = out.first_chunk_mel_frames; out.next_shift_mel_frames = out.next_chunk_mel_frames; out.next_pre_encode_cache_mel_frames = subsampling + 1; - out.drop_extra_pre_encoded = - out.next_pre_encode_cache_mel_frames - (subsampling - 1); + out.drop_extra_pre_encoded = out.next_pre_encode_cache_mel_frames - (subsampling - 1); return out; } diff --git a/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_decode_policy.cpp b/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_decode_policy.cpp index b7944f57f3..52c4f4a3be 100644 --- a/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_decode_policy.cpp +++ b/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_decode_policy.cpp @@ -63,8 +63,7 @@ void test_streaming_schedule_derives_timing_and_cache_geometry() { check(schedule.chunk_samples == 1280, "chunk samples derive from schedule timing"); check(schedule.next_pre_encode_cache_mel_frames == 5, "pre-encode cache derives from subsampling"); - check(schedule.drop_extra_pre_encoded == 2, - "pre-encode drop derives from cache overlap"); + check(schedule.drop_extra_pre_encoded == 2, "pre-encode drop derives from cache overlap"); } } // namespace From a11829d12f4b66a0a11732edf6b00e4ba02d0522 Mon Sep 17 00:00:00 2001 From: JiaxinD Date: Sun, 30 Aug 2026 18:00:41 -0700 Subject: [PATCH 04/16] fix(parakeet): validate mel geometry and platform support Signed-off-by: JiaxinD --- src/runtime/models/parakeet_tdt/pipeline.cpp | 3 +- .../models/parakeet_tdt/plugin_helpers.cpp | 12 +++++--- src/runtime/models/parakeet_tdt/tdt_config.h | 12 ++++++++ .../test_parakeet_tdt_decode_policy.cpp | 28 +++++++++++++++++++ .../test_parakeet_tdt_contracts.py | 9 ++++++ 5 files changed, 58 insertions(+), 6 deletions(-) diff --git a/src/runtime/models/parakeet_tdt/pipeline.cpp b/src/runtime/models/parakeet_tdt/pipeline.cpp index 984e5f362e..390da8638d 100644 --- a/src/runtime/models/parakeet_tdt/pipeline.cpp +++ b/src/runtime/models/parakeet_tdt/pipeline.cpp @@ -122,8 +122,7 @@ void validate_tdt_core_config(const TdtConfig& config, const MelFilterbank& mel_ if (config.encoder_hidden_size <= 0 || config.pred_hidden_size <= 0 || config.pred_num_layers <= 0) throw std::runtime_error("TdtPipeline: invalid TDT dimensions in config"); - if (config.sample_rate <= 0 || config.mel_hop_length <= 0) - throw std::runtime_error("TdtPipeline: sample rate and mel hop length must be positive"); + validate_tdt_mel_geometry(config, mel_fb.n_freq_bins, mel_fb.n_mel_bins); if (config.max_symbols_per_step <= 0) throw std::runtime_error("TdtPipeline: max_symbols_per_step must be positive"); if (config.blank_id < 0) diff --git a/src/runtime/models/parakeet_tdt/plugin_helpers.cpp b/src/runtime/models/parakeet_tdt/plugin_helpers.cpp index 4953eee5d2..404c3d2a1b 100644 --- a/src/runtime/models/parakeet_tdt/plugin_helpers.cpp +++ b/src/runtime/models/parakeet_tdt/plugin_helpers.cpp @@ -16,7 +16,7 @@ #include #include -#if TRTMC_HAS_TVM_FFI +#if TRTMC_HAS_TVM_FFI && !defined(_WIN32) #include "plugins/tvm_ffi_module_loader.h" #include @@ -390,7 +390,7 @@ std::unique_ptr create_clip_tokenizer_from_bundle(const BundleFile& } // FFI kernel loading. -#if TRTMC_HAS_TVM_FFI +#if TRTMC_HAS_TVM_FFI && !defined(_WIN32) namespace { @@ -458,10 +458,14 @@ void load_single_kernel(const BundleFile& bundle, const std::string& obj) { } // namespace -#endif // TRTMC_HAS_TVM_FFI +#endif // TRTMC_HAS_TVM_FFI && !defined(_WIN32) void load_ffi_kernels_from_bundle(const BundleFile& bundle) { -#if TRTMC_HAS_TVM_FFI +#if TRTMC_HAS_TVM_FFI && defined(_WIN32) + if (find_section(bundle, "kernel_manifest.json")) { + throw std::runtime_error("TVM-FFI bundle kernels are not supported on Windows"); + } +#elif TRTMC_HAS_TVM_FFI const auto* manifest_sec = find_section(bundle, "kernel_manifest.json"); if (!manifest_sec) return; diff --git a/src/runtime/models/parakeet_tdt/tdt_config.h b/src/runtime/models/parakeet_tdt/tdt_config.h index ca641c9fb5..183920ac5d 100644 --- a/src/runtime/models/parakeet_tdt/tdt_config.h +++ b/src/runtime/models/parakeet_tdt/tdt_config.h @@ -96,6 +96,18 @@ inline TdtStreamingSchedule make_tdt_streaming_schedule(int32_t left, int32_t ri return out; } +inline void validate_tdt_mel_geometry(const TdtConfig& config, int32_t filterbank_freq_bins, + int32_t filterbank_mel_bins) { + if (config.sample_rate <= 0 || config.mel_hop_length <= 0 || config.mel_n_fft <= 0 || + config.mel_chunk_length <= 0 || config.mel_length <= 0 || config.num_mel_bins <= 0) { + throw std::invalid_argument("invalid TDT mel dimensions in config"); + } + if (filterbank_freq_bins != config.mel_n_fft / 2 + 1 || + filterbank_mel_bins != config.num_mel_bins) { + throw std::invalid_argument("TDT mel filterbank dimensions do not match config"); + } +} + inline TdtGreedyDecision make_tdt_greedy_decision(int32_t token_id, int32_t duration_index, const std::vector& duration_values, int32_t blank_id) { diff --git a/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_decode_policy.cpp b/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_decode_policy.cpp index 52c4f4a3be..19d35ab25c 100644 --- a/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_decode_policy.cpp +++ b/tests/cpp/models/parakeet_tdt/test_parakeet_tdt_decode_policy.cpp @@ -66,6 +66,32 @@ void test_streaming_schedule_derives_timing_and_cache_geometry() { check(schedule.drop_extra_pre_encoded == 2, "pre-encode drop derives from cache overlap"); } +void test_mel_geometry_accepts_matching_dimensions() { + trtmc::TdtConfig config; + trtmc::validate_tdt_mel_geometry(config, 257, 128); +} + +void test_mel_geometry_rejects_invalid_or_mismatched_dimensions() { + trtmc::TdtConfig config; + config.mel_n_fft = 0; + bool invalid_threw = false; + try { + trtmc::validate_tdt_mel_geometry(config, 257, 128); + } catch (const std::invalid_argument&) { + invalid_threw = true; + } + check(invalid_threw, "non-positive mel dimensions must throw"); + + config.mel_n_fft = 512; + bool mismatch_threw = false; + try { + trtmc::validate_tdt_mel_geometry(config, 256, 128); + } catch (const std::invalid_argument&) { + mismatch_threw = true; + } + check(mismatch_threw, "filterbank dimensions must match the runtime config"); +} + } // namespace int main() { @@ -75,6 +101,8 @@ int main() { test_invalid_duration_index_is_rejected(); test_negative_duration_is_rejected(); test_streaming_schedule_derives_timing_and_cache_geometry(); + test_mel_geometry_accepts_matching_dimensions(); + test_mel_geometry_rejects_invalid_or_mismatched_dimensions(); if (failures) { std::cerr << failures << " TDT decode policy test(s) failed\n"; return 1; diff --git a/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_contracts.py b/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_contracts.py index 3952d96289..62160b3655 100644 --- a/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_contracts.py +++ b/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_contracts.py @@ -288,6 +288,15 @@ def test_manifest_pins_exact_hugging_face_revision_and_strict_asr_oracle() -> No assert values["cer"] <= 0.2 +def test_ffi_kernel_tempfiles_are_explicitly_disabled_on_windows() -> None: + source = ( + REPO_ROOT / "src/runtime/models/parakeet_tdt/plugin_helpers.cpp" + ).read_text(encoding="utf-8") + + assert "#if TRTMC_HAS_TVM_FFI && !defined(_WIN32)" in source + assert "TVM-FFI bundle kernels are not supported on Windows" in source + + def test_hf_reference_propagates_the_manifest_revision(monkeypatch, tmp_path: Path) -> None: reference = importlib.import_module( "tests.e2e.models.parakeet_tdt.e2e_plugins.references.parakeet_tdt_hf" From de2aa6e64a419cab641468f8e98b2c099271d43d Mon Sep 17 00:00:00 2001 From: JiaxinD Date: Tue, 1 Sep 2026 16:14:25 -0700 Subject: [PATCH 05/16] test(catalog): refresh aggregate inventory counts Signed-off-by: JiaxinD --- tests/tools/test_family_specialization.py | 2 +- tests/tools/test_perf_matrix.py | 10 +++++----- tests/tools/test_trtmc_validate.py | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/tools/test_family_specialization.py b/tests/tools/test_family_specialization.py index afbaa6deab..511458c624 100644 --- a/tests/tools/test_family_specialization.py +++ b/tests/tools/test_family_specialization.py @@ -404,7 +404,7 @@ def test_repository_registers_all_current_families() -> None: families = specialization.family_dirs(repo_root, ()) - assert len(families) == 86 + assert len(families) == 88 assert any(family.name == "cosmos3" for family in families) assert any(family.name == "dinov3" for family in families) assert any(family.name == "fast_foundation_stereo" for family in families) diff --git a/tests/tools/test_perf_matrix.py b/tests/tools/test_perf_matrix.py index 2aa7146a22..e14d0a5a06 100644 --- a/tests/tools/test_perf_matrix.py +++ b/tests/tools/test_perf_matrix.py @@ -271,8 +271,8 @@ def test_release_suite_covers_every_non_l0_ready_model_profile() -> None: performance_catalog.validate_release_coverage(cases, excluded_profiles) - assert len(cases) == 111 - assert len(raw_entries) == 81 + assert len(cases) == 112 + assert len(raw_entries) == 82 assert len(raw_additional) == 30 assert excluded_profiles == { "lfm2-1.2b": LFM2_EXCLUSION_REASON, @@ -290,15 +290,15 @@ def test_release_suite_covers_every_non_l0_ready_model_profile() -> None: assert not any("priority" in entry for entry in raw_entries) assert {case["model"] for case in cases} == ready_profiles - set(excluded_profiles) assert not any(performance_catalog.is_l0_profile(case["model"]) for case in cases) - assert len({(case["family"], case["operation"]) for case in cases}) == 81 - assert len({case["family"] for case in cases}) == 79 + assert len({(case["family"], case["operation"]) for case in cases}) == 82 + assert len({case["family"] for case in cases}) == 80 assert [case["operation"] for case in cases if case["family"] == "eagle_vlm"] == [ "embed", "rerank", ] assert Counter(perf_matrix._candidate_timing_scope(case) for case in cases) == { "model_call_wall": 26, - "public_pipeline_call_wall": 85, + "public_pipeline_call_wall": 86, } assert {case["id"] for case in cases if case["baseline"]["asset_loading_included"]} == { "canary.transcribe", diff --git a/tests/tools/test_trtmc_validate.py b/tests/tools/test_trtmc_validate.py index 59f543b05f..dbb53b1105 100644 --- a/tests/tools/test_trtmc_validate.py +++ b/tests/tools/test_trtmc_validate.py @@ -45,7 +45,7 @@ def test_model_workload_catalog_covers_every_ready_model(): task_models=task_models, ) - assert len(catalog["models"]) == len(ready_models) == 118 + assert len(catalog["models"]) == len(ready_models) == 120 assert sum("not_compared_reason" in spec for spec in catalog["models"].values()) == 0 assert all("e2e" not in spec.get("workloads", []) for spec in catalog["models"].values()) assert "reference_cache_identity" not in catalog["models"]["personaplex-7b"] @@ -64,7 +64,7 @@ def test_model_workload_catalog_covers_every_ready_model(): } assert len(qwen_identities) == 1 bindings = trtmc_validate.resolve_bindings(catalog, catalog["models"]) - assert len(bindings) == 119 + assert len(bindings) == 121 assert { binding.model for binding in bindings if binding.workload == "mmlu_continuation_parity" } >= { @@ -256,7 +256,7 @@ def test_every_dataset_backed_validation_binding_has_native_reference_runner(): missing.append((model_name, workload, dataset_kind)) assert not missing - assert len({model for model, _workload in bindings}) == 118 + assert len({model for model, _workload in bindings}) == 120 def test_shadow_gate_metrics_include_plugin_task_accuracy() -> None: From 07b2b3424ad7441589d407290e92de034fd33bfc Mon Sep 17 00:00:00 2001 From: JiaxinD Date: Tue, 1 Sep 2026 16:23:36 -0700 Subject: [PATCH 06/16] test(perf): refresh release row counts Signed-off-by: JiaxinD --- tests/tools/test_perf_matrix.py | 2 +- tests/tools/test_performance_catalog.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/tools/test_perf_matrix.py b/tests/tools/test_perf_matrix.py index e14d0a5a06..1e7b108476 100644 --- a/tests/tools/test_perf_matrix.py +++ b/tests/tools/test_perf_matrix.py @@ -2207,7 +2207,7 @@ def preflight_after_pending_report(cases, options): assert not scratch_root.exists() results = json.loads((output / "results.json").read_text(encoding="utf-8")) rows = {row["id"]: row for row in results["cases"]} - assert len(rows) == 111 + assert len(rows) == 112 assert results["environment_config"]["name"] == "test-gb300" assert results["environment_config"]["execution"]["minimum_gpu_free_fraction"] == 0.0 assert results["environment_config"]["source"] == str(environment.resolve()) diff --git a/tests/tools/test_performance_catalog.py b/tests/tools/test_performance_catalog.py index 873620538c..4c42698628 100644 --- a/tests/tools/test_performance_catalog.py +++ b/tests/tools/test_performance_catalog.py @@ -18,7 +18,7 @@ def test_release_suite_loads_and_selects_models_in_request_order() -> None: selected = suite.select(models=["distilgpt2", "gpt2-125m"]) assert [case["model"] for case in selected] == ["distilgpt2", "gpt2-125m"] - assert len(suite.cases) == 111 + assert len(suite.cases) == 112 def test_release_suite_includes_fast_foundation_stereo() -> None: From 5ea38bcf1532cf56e9687d4ab3686ba8267a076f Mon Sep 17 00:00:00 2001 From: JiaxinD Date: Wed, 16 Sep 2026 18:08:52 -0700 Subject: [PATCH 07/16] test(parakeet): isolate release reference contract Signed-off-by: JiaxinD --- .../test_parakeet_tdt_contracts.py | 133 ---------------- .../tools/test_parakeet_release_reference.py | 150 ++++++++++++++++++ 2 files changed, 150 insertions(+), 133 deletions(-) create mode 100644 tests/tools/test_parakeet_release_reference.py diff --git a/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_contracts.py b/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_contracts.py index 62160b3655..750fcbfffe 100644 --- a/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_contracts.py +++ b/tests/e2e/models/parakeet_tdt/test_parakeet_tdt_contracts.py @@ -9,7 +9,6 @@ import importlib.util import json import re -import runpy import sys import tarfile from pathlib import Path @@ -357,138 +356,6 @@ def test_reference_profile_pins_transformers_with_tdt_support() -> None: assert "transformers==5.9.0" in requirements.splitlines() -def test_release_reference_uses_the_tdt_auto_model_contract(monkeypatch) -> None: - runner = runpy.run_path( - str(REPO_ROOT / "benchmarks/performance/baselines/task_reference.py") - ) - captured: dict[str, object] = {} - - class FakeTensor: - def is_floating_point(self): - return True - - def to(self, *args, **kwargs): - captured.setdefault("input_to", []).append((args, kwargs)) - return self - - class FakeSequences: - def __getitem__(self, _index): - return self - - def detach(self): - return self - - def cpu(self): - return self - - def tolist(self): - return [4, 8, 15] - - class FakeProcessor: - @classmethod - def from_pretrained(cls, model, **kwargs): - captured["processor_load"] = (model, kwargs) - return cls() - - def __call__(self, audio, **kwargs): - captured["processor_call"] = (audio.tolist(), kwargs) - return {"input_features": FakeTensor()} - - def decode(self, sequences, **kwargs): - captured["decode"] = (sequences, kwargs) - return ["Parakeet transcript"] - - class FakeModel: - config = SimpleNamespace(_commit_hash=PINNED_REVISION) - - @classmethod - def from_pretrained(cls, model, **kwargs): - captured["model_load"] = (model, kwargs) - return cls() - - def eval(self): - return self - - def to(self, device): - captured["model_device"] = device - return self - - def parameters(self): - return iter([SimpleNamespace(dtype="fp32")]) - - def generate(self, **kwargs): - captured["generate"] = kwargs - return SimpleNamespace(sequences=FakeSequences()) - - class WrongModel: - @classmethod - def from_pretrained(cls, *_args, **_kwargs): - raise AssertionError("Parakeet TDT must not use AutoModelForSpeechSeq2Seq") - - class InferenceMode: - def __enter__(self): - return None - - def __exit__(self, *_args): - return None - - fake_torch = ModuleType("torch") - fake_torch.float16 = "fp16" - fake_torch.float32 = "fp32" - fake_torch.bfloat16 = "bf16" - fake_torch.device = lambda value: value - fake_torch.inference_mode = InferenceMode - fake_transformers = ModuleType("transformers") - fake_transformers.AutoModelForSpeechSeq2Seq = WrongModel - fake_transformers.AutoModelForTDT = FakeModel - fake_transformers.AutoProcessor = FakeProcessor - fake_engine = ModuleType("tools.validation.engine") - fake_engine._read_wav_float32 = lambda _path: ( - np.array([0.25], dtype=np.float32), - 16_000, - ) - fake_engine._resample_audio = lambda audio, _source_rate, _target_rate: audio - monkeypatch.setitem(sys.modules, "torch", fake_torch) - monkeypatch.setitem(sys.modules, "transformers", fake_transformers) - monkeypatch.setitem(sys.modules, "tools.validation.engine", fake_engine) - - manifest = Path(__file__).with_name("manifests") / "parakeet-tdt-0.6b-v3.json" - arguments = SimpleNamespace( - family="parakeet_tdt", - manifest=manifest, - model="nvidia/parakeet-tdt-0.6b-v3", - revision=PINNED_REVISION, - precision="fp32", - trust_remote_code=False, - local_files_only=True, - ) - session = runner["_load_asr"]( - arguments, - {"audio_path": "data/Recording.wav", "max_new_tokens": 50}, - {"auto_model_class": "AutoModelForTDT"}, - ) - - assert session.invoke() == { - "text": "Parakeet transcript", - "token_ids": [4, 8, 15], - "output_tokens": 3, - } - assert captured["model_load"] == ( - "nvidia/parakeet-tdt-0.6b-v3", - { - "trust_remote_code": False, - "local_files_only": True, - "torch_dtype": "fp32", - "revision": PINNED_REVISION, - }, - ) - assert captured["generate"]["max_new_tokens"] == 50 - assert captured["generate"]["return_dict_in_generate"] is True - assert isinstance(captured["decode"][0], FakeSequences) - assert captured["decode"][1] == {"skip_special_tokens": True} - assert session.resolved_revision == PINNED_REVISION - - def test_validation_reference_decodes_tdt_generation_output(monkeypatch) -> None: from tools.reference import speech diff --git a/tests/tools/test_parakeet_release_reference.py b/tests/tools/test_parakeet_release_reference.py new file mode 100644 index 0000000000..f0485a9fea --- /dev/null +++ b/tests/tools/test_parakeet_release_reference.py @@ -0,0 +1,150 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from pathlib import Path +import runpy +import sys +from types import ModuleType, SimpleNamespace + +import numpy as np + + +REPOSITORY = Path(__file__).resolve().parents[2] + + +def test_release_reference_uses_the_tdt_auto_model_contract(monkeypatch) -> None: + pinned_revision = "541d1f99c6b0c3cd0b11a95167540bb8edefd82b" + runner = runpy.run_path( + str(REPOSITORY / "benchmarks/performance/baselines/task_reference.py") + ) + captured: dict[str, object] = {} + + class FakeTensor: + def is_floating_point(self): + return True + + def to(self, *args, **kwargs): + captured.setdefault("input_to", []).append((args, kwargs)) + return self + + class FakeSequences: + def __getitem__(self, _index): + return self + + def detach(self): + return self + + def cpu(self): + return self + + def tolist(self): + return [4, 8, 15] + + class FakeProcessor: + @classmethod + def from_pretrained(cls, model, **kwargs): + captured["processor_load"] = (model, kwargs) + return cls() + + def __call__(self, audio, **kwargs): + captured["processor_call"] = (audio.tolist(), kwargs) + return {"input_features": FakeTensor()} + + def decode(self, sequences, **kwargs): + captured["decode"] = (sequences, kwargs) + return ["Parakeet transcript"] + + class FakeModel: + config = SimpleNamespace(_commit_hash=pinned_revision) + + @classmethod + def from_pretrained(cls, model, **kwargs): + captured["model_load"] = (model, kwargs) + return cls() + + def eval(self): + return self + + def to(self, device): + captured["model_device"] = device + return self + + def parameters(self): + return iter([SimpleNamespace(dtype="fp32")]) + + def generate(self, **kwargs): + captured["generate"] = kwargs + return SimpleNamespace(sequences=FakeSequences()) + + class WrongModel: + @classmethod + def from_pretrained(cls, *_args, **_kwargs): + raise AssertionError("Parakeet TDT must not use AutoModelForSpeechSeq2Seq") + + class InferenceMode: + def __enter__(self): + return None + + def __exit__(self, *_args): + return None + + fake_torch = ModuleType("torch") + fake_torch.float16 = "fp16" + fake_torch.float32 = "fp32" + fake_torch.bfloat16 = "bf16" + fake_torch.device = lambda value: value + fake_torch.inference_mode = InferenceMode + fake_transformers = ModuleType("transformers") + fake_transformers.AutoModelForSpeechSeq2Seq = WrongModel + fake_transformers.AutoModelForTDT = FakeModel + fake_transformers.AutoProcessor = FakeProcessor + fake_engine = ModuleType("tools.validation.engine") + fake_engine._read_wav_float32 = lambda _path: ( + np.array([0.25], dtype=np.float32), + 16_000, + ) + fake_engine._resample_audio = lambda audio, _source_rate, _target_rate: audio + monkeypatch.setitem(sys.modules, "torch", fake_torch) + monkeypatch.setitem(sys.modules, "transformers", fake_transformers) + monkeypatch.setitem(sys.modules, "tools.validation.engine", fake_engine) + + manifest = ( + REPOSITORY + / "tests/e2e/models/parakeet_tdt/manifests/parakeet-tdt-0.6b-v3.json" + ) + arguments = SimpleNamespace( + family="parakeet_tdt", + manifest=manifest, + model="nvidia/parakeet-tdt-0.6b-v3", + revision=pinned_revision, + precision="fp32", + trust_remote_code=False, + local_files_only=True, + ) + session = runner["_load_asr"]( + arguments, + {"audio_path": "data/Recording.wav", "max_new_tokens": 50}, + {"auto_model_class": "AutoModelForTDT"}, + ) + + assert session.invoke() == { + "text": "Parakeet transcript", + "token_ids": [4, 8, 15], + "output_tokens": 3, + } + assert captured["model_load"] == ( + "nvidia/parakeet-tdt-0.6b-v3", + { + "trust_remote_code": False, + "local_files_only": True, + "torch_dtype": "fp32", + "revision": pinned_revision, + }, + ) + assert captured["generate"]["max_new_tokens"] == 50 + assert captured["generate"]["return_dict_in_generate"] is True + assert isinstance(captured["decode"][0], FakeSequences) + assert captured["decode"][1] == {"skip_special_tokens": True} + assert session.resolved_revision == pinned_revision From 3c8931ef7e87db77a8bbc4c6f3bb9aeda25d49a4 Mon Sep 17 00:00:00 2001 From: JiaxinD Date: Thu, 17 Sep 2026 18:13:50 -0700 Subject: [PATCH 08/16] refactor(parakeet): port family builder contracts Move the native HF builder behind a plain build entry point and family-owned support descriptor. Add CPU coverage for dispatch, unsupported options, checkpoint boundaries, and bundle composition. Local migration checkpoint only: runtime, manifests, E2E, and GPU validation remain incomplete. Keep this branch unpublished until the family is complete. Signed-off-by: JiaxinD --- families/parakeet_tdt/__init__.py | 2 + families/parakeet_tdt/checkpoint.py | 31 ++ families/parakeet_tdt/config.py | 97 ++++ families/parakeet_tdt/engines.py | 613 ++++++++++++++++++++++ families/parakeet_tdt/fastconformer.py | 542 +++++++++++++++++++ families/parakeet_tdt/graph_ops.py | 423 +++++++++++++++ families/parakeet_tdt/model.py | 46 ++ families/parakeet_tdt/model_config.py | 97 ++++ families/parakeet_tdt/requirements.txt | 2 + families/parakeet_tdt/support.py | 12 + families/parakeet_tdt/tests/README.md | 11 + families/parakeet_tdt/tests/config.json | 49 ++ families/parakeet_tdt/tests/test_build.py | 174 ++++++ 13 files changed, 2099 insertions(+) create mode 100644 families/parakeet_tdt/__init__.py create mode 100644 families/parakeet_tdt/checkpoint.py create mode 100644 families/parakeet_tdt/config.py create mode 100644 families/parakeet_tdt/engines.py create mode 100644 families/parakeet_tdt/fastconformer.py create mode 100644 families/parakeet_tdt/graph_ops.py create mode 100644 families/parakeet_tdt/model.py create mode 100644 families/parakeet_tdt/model_config.py create mode 100644 families/parakeet_tdt/requirements.txt create mode 100644 families/parakeet_tdt/support.py create mode 100644 families/parakeet_tdt/tests/README.md create mode 100644 families/parakeet_tdt/tests/config.json create mode 100644 families/parakeet_tdt/tests/test_build.py diff --git a/families/parakeet_tdt/__init__.py b/families/parakeet_tdt/__init__.py new file mode 100644 index 0000000000..52a7a9daf0 --- /dev/null +++ b/families/parakeet_tdt/__init__.py @@ -0,0 +1,2 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 diff --git a/families/parakeet_tdt/checkpoint.py b/families/parakeet_tdt/checkpoint.py new file mode 100644 index 0000000000..5262f39766 --- /dev/null +++ b/families/parakeet_tdt/checkpoint.py @@ -0,0 +1,31 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Checkpoint readers and tensor normalization for Parakeet TDT.""" + +from __future__ import annotations + +import numpy as np + + +class WeightDict(dict): + """Normalized family-owned build tensors.""" + + +def _array(value) -> np.ndarray: + if hasattr(value, "detach"): + value = value.detach().cpu().numpy() + return np.ascontiguousarray(np.asarray(value, dtype=np.float32)) + + +def _transpose(value) -> np.ndarray: + array = _array(value) + if array.ndim != 2: + raise ValueError(f"expected rank-2 weight, got {array.shape}") + return np.ascontiguousarray(array.T) + + +def _transpose_2d(value, name: str, precision: str = "fp32") -> np.ndarray: + """Family graph-builder adapter with the repository's mapper signature.""" + del name, precision + return _transpose(value) diff --git a/families/parakeet_tdt/config.py b/families/parakeet_tdt/config.py new file mode 100644 index 0000000000..1a89e8429b --- /dev/null +++ b/families/parakeet_tdt/config.py @@ -0,0 +1,97 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Typed configuration for the pinned Parakeet TDT checkpoint contract.""" + +from __future__ import annotations + +import json +from dataclasses import dataclass +from pathlib import Path + + +@dataclass(frozen=True) +class ParakeetTDTConfig: + model_type: str + architectures: tuple[str, ...] + vocab_size: int + blank_id: int + pad_id: int + durations: tuple[int, ...] + max_symbols_per_step: int + encoder_hidden_size: int + encoder_layers: int + encoder_heads: int + encoder_ffn_size: int + encoder_conv_kernel_size: int + encoder_max_positions: int + num_mel_bins: int + subsampling_channels: int + subsampling_factor: int + decoder_hidden_size: int + decoder_layers: int + joint_activation: str + raw: dict + + @classmethod + def from_json(cls, text: str) -> "ParakeetTDTConfig": + raw = json.loads(text) + enc = raw.get("encoder_config") or {} + return cls( + model_type=str(raw.get("model_type", "")), + architectures=tuple(str(item) for item in raw.get("architectures", ())), + vocab_size=int(raw.get("vocab_size", 0)), + blank_id=int(raw.get("blank_token_id", -1)), + pad_id=int(raw.get("pad_token_id", -1)), + durations=tuple(int(item) for item in raw.get("durations", ())), + max_symbols_per_step=int(raw.get("max_symbols_per_step", 0)), + encoder_hidden_size=int(enc.get("hidden_size", 0)), + encoder_layers=int(enc.get("num_hidden_layers", 0)), + encoder_heads=int(enc.get("num_attention_heads", 0)), + encoder_ffn_size=int(enc.get("intermediate_size", 0)), + encoder_conv_kernel_size=int(enc.get("conv_kernel_size", 0)), + encoder_max_positions=int(enc.get("max_position_embeddings", 0)), + num_mel_bins=int(enc.get("num_mel_bins", 0)), + subsampling_channels=int(enc.get("subsampling_conv_channels", 0)), + subsampling_factor=int(enc.get("subsampling_factor", 0)), + decoder_hidden_size=int(raw.get("decoder_hidden_size", 0)), + decoder_layers=int(raw.get("num_decoder_layers", 0)), + joint_activation=str(raw.get("hidden_act", "")), + raw=raw, + ) + + @classmethod + def from_dir(cls, model_dir: str | Path) -> "ParakeetTDTConfig": + config_path = Path(model_dir) / "config.json" + if not config_path.is_file(): + raise FileNotFoundError( + f"Parakeet TDT model directory is missing config.json: {config_path}" + ) + return cls.from_json(config_path.read_text(encoding="utf-8")) + + def validate_supported_checkpoint(self) -> None: + expected = { + "model_type": (self.model_type, "parakeet_tdt"), + "architecture": (self.architectures, ("ParakeetForTDT",)), + "vocab_size": (self.vocab_size, 8193), + "blank_token_id": (self.blank_id, 8192), + "durations": (self.durations, (0, 1, 2, 3, 4)), + "encoder_hidden_size": (self.encoder_hidden_size, 1024), + "encoder_layers": (self.encoder_layers, 24), + "encoder_heads": (self.encoder_heads, 8), + "encoder_ffn_size": (self.encoder_ffn_size, 4096), + "encoder_conv_kernel_size": (self.encoder_conv_kernel_size, 9), + "num_mel_bins": (self.num_mel_bins, 128), + "subsampling_factor": (self.subsampling_factor, 8), + "decoder_hidden_size": (self.decoder_hidden_size, 640), + "decoder_layers": (self.decoder_layers, 2), + "joint_activation": (self.joint_activation, "relu"), + "max_symbols_per_step": (self.max_symbols_per_step, 10), + } + mismatches = [ + f"{name}={actual!r}, expected {wanted!r}" + for name, (actual, wanted) in expected.items() + if actual != wanted + ] + if mismatches: + raise ValueError("Unsupported Parakeet TDT checkpoint contract: " + "; ".join(mismatches)) diff --git a/families/parakeet_tdt/engines.py b/families/parakeet_tdt/engines.py new file mode 100644 index 0000000000..e4a65dd3ba --- /dev/null +++ b/families/parakeet_tdt/engines.py @@ -0,0 +1,613 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Family-local TensorRT graphs ported from PR #1060; native HF input only.""" + +from __future__ import annotations +import sys +from pathlib import Path +import numpy as np +import tensorrt as trt +from . import graph_ops +from .checkpoint import WeightDict, _transpose_2d +from .model_config import ModelConfig +from .fastconformer import _build_encoder, _compute_enc_seq_len, _compute_causal_enc_seq_len, _relative_pe, _to_np + + +def _load_hf_as_nemo(model_dir: str): + """Expose the official HF safetensors under the NeMo-style encoder keys. + + The graph builders consume one normalized, family-private layout. Keeping + this conversion explicit avoids choosing a topology from a checkpoint name. + """ + from safetensors.numpy import load_file + + root = Path(model_dir) + state = dict(load_file(root / "model.safetensors")) + if any(key.startswith("prompt_kernel.") for key in state): + raise ValueError("Parakeet TDT native checkpoint does not support prompt_kernel") + from .config import ParakeetTDTConfig + + cfg = ParakeetTDTConfig.from_dir(root) + cfg.validate_supported_checkpoint() + normalized = dict(state) + aliases = { + "encoder.pre_encode.conv.0.weight": "encoder.subsampling.layers.0.weight", + "encoder.pre_encode.conv.0.bias": "encoder.subsampling.layers.0.bias", + "encoder.pre_encode.conv.2.weight": "encoder.subsampling.layers.2.weight", + "encoder.pre_encode.conv.2.bias": "encoder.subsampling.layers.2.bias", + "encoder.pre_encode.conv.3.weight": "encoder.subsampling.layers.3.weight", + "encoder.pre_encode.conv.3.bias": "encoder.subsampling.layers.3.bias", + "encoder.pre_encode.conv.5.weight": "encoder.subsampling.layers.5.weight", + "encoder.pre_encode.conv.5.bias": "encoder.subsampling.layers.5.bias", + "encoder.pre_encode.conv.6.weight": "encoder.subsampling.layers.6.weight", + "encoder.pre_encode.conv.6.bias": "encoder.subsampling.layers.6.bias", + "encoder.pre_encode.out.weight": "encoder.subsampling.linear.weight", + "encoder.pre_encode.out.bias": "encoder.subsampling.linear.bias", + "decoder.prediction.embed.weight": "decoder.embedding.weight", + "joint.enc.weight": "encoder_projector.weight", + "joint.enc.bias": "encoder_projector.bias", + "joint.pred.weight": "decoder.decoder_projector.weight", + "joint.pred.bias": "decoder.decoder_projector.bias", + "joint.joint_net.2.weight": "joint.head.weight", + "joint.joint_net.2.bias": "joint.head.bias", + } + for layer in range(cfg.decoder_layers): + for field in ("weight_ih", "weight_hh", "bias_ih", "bias_hh"): + aliases[f"decoder.prediction.dec_rnn.{field}_l{layer}"] = ( + f"decoder.lstm.{field}_l{layer}") + for layer in range(cfg.encoder_layers): + nk = f"encoder.layers.{layer}" + for nemo, hf in (("linear_q", "q_proj"), ("linear_k", "k_proj"), + ("linear_v", "v_proj"), ("linear_out", "o_proj"), + ("linear_pos", "relative_k_proj")): + aliases[f"{nk}.self_attn.{nemo}.weight"] = f"{nk}.self_attn.{hf}.weight" + aliases[f"{nk}.self_attn.pos_bias_u"] = f"{nk}.self_attn.bias_u" + aliases[f"{nk}.self_attn.pos_bias_v"] = f"{nk}.self_attn.bias_v" + aliases[f"{nk}.conv.batch_norm.weight"] = f"{nk}.conv.norm.weight" + aliases[f"{nk}.conv.batch_norm.bias"] = f"{nk}.conv.norm.bias" + aliases[f"{nk}.conv.batch_norm.running_mean"] = f"{nk}.conv.norm.running_mean" + aliases[f"{nk}.conv.batch_norm.running_var"] = f"{nk}.conv.norm.running_var" + missing = [(dst, src) for dst, src in aliases.items() if src not in state] + if missing: + detail = ", ".join(f"{dst} <- {src}" for dst, src in missing[:8]) + raise KeyError(f"HF Parakeet checkpoint is missing normalized tensors: {detail}") + normalized.update({dst: state[src] for dst, src in aliases.items()}) + nemo_cfg = { + "encoder": {"d_model": cfg.encoder_hidden_size, + "n_layers": cfg.encoder_layers, + "n_heads": cfg.encoder_heads, + "ff_expansion_factor": cfg.encoder_ffn_size // cfg.encoder_hidden_size, + "conv_kernel_size": cfg.encoder_conv_kernel_size, + "subsampling_conv_channels": cfg.subsampling_channels, + "att_context_size": [[-1, -1]], + "conv_norm_type": "batch_norm", "conv_context_size": "symmetric"}, + "preprocessor": {"features": cfg.num_mel_bins}, + "decoder": {"blank_idx": cfg.blank_id, + "prednet": {"pred_hidden": cfg.decoder_hidden_size, + "pred_rnn_layers": cfg.decoder_layers, + "rnn_hidden_size": cfg.decoder_hidden_size}}, + "joint": {"jointnet": {"joint_hidden": cfg.decoder_hidden_size, + "activation": cfg.joint_activation}}, + "decoding": {"max_symbols_per_step": cfg.max_symbols_per_step}, + "tdt_durations": list(cfg.durations), + } + return normalized, nemo_cfg + + +def _cfg_int(*values, default: int) -> int: + for value in values: + if value is not None: + try: + return int(value) + except (TypeError, ValueError): + pass + return default + + +def _cfg_dict(root: dict, *path: str) -> dict: + cur = root + for item in path: + if not isinstance(cur, dict): + return {} + cur = cur.get(item, {}) + return cur if isinstance(cur, dict) else {} + + +def _find_tensor(sd: dict, candidates: list[str], label: str): + for key in candidates: + if key in sd: + return sd[key] + suffix_matches = [] + for key in sd: + for suffix in candidates: + if key.endswith(suffix): + suffix_matches.append(key) + break + if len(suffix_matches) == 1: + return sd[suffix_matches[0]] + if len(suffix_matches) > 1: + raise KeyError(f"Ambiguous tensor for {label}: {suffix_matches}") + raise KeyError(f"Missing tensor for {label}; tried {candidates}") + + +def _find_joint_linear(sd: dict, prefix: str, label: str): + candidates = [ + f"{prefix}.joint_net.1.weight", + f"{prefix}.joint_net.2.weight", + f"{prefix}.joint_net.0.weight", + ] + for key in candidates: + if key in sd: + bias_key = key[:-6] + "bias" + if bias_key not in sd: + raise KeyError(f"Missing tensor for {label} bias: {bias_key}") + return sd[key], sd[bias_key] + + suffixes = [".joint_net.1.weight", ".joint_net.2.weight", ".joint_net.0.weight"] + matches = [key for key in sd if key.startswith(prefix) and any(key.endswith(s) for s in suffixes)] + if len(matches) == 1: + key = matches[0] + bias_key = key[:-6] + "bias" + if bias_key not in sd: + raise KeyError(f"Missing tensor for {label} bias: {bias_key}") + return sd[key], sd[bias_key] + raise KeyError(f"Missing tensor for {label}; tried {candidates}") + + +def _precision_dtypes(precision: str) -> tuple[type[np.generic], object]: + if precision == "fp16": + return np.float16, trt.float16 + if precision == "fp32": + return np.float32, trt.float32 + raise ValueError( + f"Unsupported Parakeet TDT precision {precision!r}; " + "expected fp32 or fp16") + + +def _add_lstm_cell( + network, x, h_prev, c_prev, weights, pfx: str, hidden: int, + dtype=np.float32): + w_ih = graph_ops.add_constant( + network, (hidden, 4 * hidden), weights[f"{pfx}.w_ih_t"], dtype=dtype) + w_hh = graph_ops.add_constant( + network, (hidden, 4 * hidden), weights[f"{pfx}.w_hh_t"], dtype=dtype) + bias = graph_ops.add_constant( + network, (1, 4 * hidden), weights[f"{pfx}.bias"], dtype=dtype) + + xw = network.add_matrix_multiply(x, trt.MatrixOperation.NONE, w_ih, trt.MatrixOperation.NONE) + hw = network.add_matrix_multiply(h_prev, trt.MatrixOperation.NONE, w_hh, trt.MatrixOperation.NONE) + gates = network.add_elementwise(xw.get_output(0), hw.get_output(0), trt.ElementWiseOperation.SUM) + gates = network.add_elementwise(gates.get_output(0), bias, trt.ElementWiseOperation.SUM) + + gate_i = network.add_slice(gates.get_output(0), start=(0, 0), shape=(1, hidden), stride=(1, 1)) + gate_f = network.add_slice(gates.get_output(0), start=(0, hidden), shape=(1, hidden), stride=(1, 1)) + gate_g = network.add_slice( + gates.get_output(0), start=(0, 2 * hidden), shape=(1, hidden), stride=(1, 1)) + gate_o = network.add_slice( + gates.get_output(0), start=(0, 3 * hidden), shape=(1, hidden), stride=(1, 1)) + + i_t = network.add_activation(gate_i.get_output(0), trt.ActivationType.SIGMOID).get_output(0) + f_t = network.add_activation(gate_f.get_output(0), trt.ActivationType.SIGMOID).get_output(0) + g_t = network.add_activation(gate_g.get_output(0), trt.ActivationType.TANH).get_output(0) + o_t = network.add_activation(gate_o.get_output(0), trt.ActivationType.SIGMOID).get_output(0) + + forget = network.add_elementwise(f_t, c_prev, trt.ElementWiseOperation.PROD).get_output(0) + update = network.add_elementwise(i_t, g_t, trt.ElementWiseOperation.PROD).get_output(0) + c_new = network.add_elementwise(forget, update, trt.ElementWiseOperation.SUM).get_output(0) + tanh_c = network.add_activation(c_new, trt.ActivationType.TANH).get_output(0) + h_new = network.add_elementwise(o_t, tanh_c, trt.ElementWiseOperation.PROD).get_output(0) + return h_new, c_new + + +def _build_predictor( + weights: WeightDict, *, precision: str = "fp32", + verbose: bool = False) -> bytes: + pred_hidden = int(weights["_pred_hidden"]) + pred_layers = int(weights["_pred_layers"]) + vocab_total = int(weights["_vocab_total"]) + work_np_dtype, work_trt_dtype = _precision_dtypes(precision) + + logger = trt.Logger(trt.Logger.VERBOSE if verbose else trt.Logger.WARNING) + builder = trt.Builder(logger) + network = builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.STRONGLY_TYPED)) + config = builder.create_builder_config() + config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, 256 << 20) + + token_id = network.add_input("token_id", trt.int32, (1,)) + embedding = graph_ops.add_constant( + network, (vocab_total, pred_hidden), weights["pred_embedding"], + dtype=work_np_dtype) + hidden = network.add_gather(embedding, token_id, 0).get_output(0) + + next_h = [] + next_c = [] + for layer in range(pred_layers): + h_in = network.add_input(f"state_h_{layer}", trt.float32, (1, pred_hidden)) + c_in = network.add_input(f"state_c_{layer}", trt.float32, (1, pred_hidden)) + if work_trt_dtype != trt.float32: + h_in = network.add_cast(h_in, work_trt_dtype).get_output(0) + c_in = network.add_cast(c_in, work_trt_dtype).get_output(0) + hidden, c_new = _add_lstm_cell(network, hidden, h_in, c_in, weights, f"pred.{layer}", + pred_hidden, dtype=work_np_dtype) + next_h.append(hidden) + next_c.append(c_new) + + # Keep pred_output distinct from the last recurrent state even in FP32; + # TensorRT output names belong to tensors, so aliasing would rename the + # same tensor from pred_output to next_h_{last_layer}. + pred_output = network.add_identity(hidden).get_output(0) + if pred_output.dtype != trt.float32: + pred_output = network.add_cast(pred_output, trt.float32).get_output(0) + pred_output.name = "pred_output" + network.mark_output(pred_output) + for layer in range(pred_layers): + h_output = next_h[layer] + c_output = next_c[layer] + if h_output.dtype != trt.float32: + h_output = network.add_cast(h_output, trt.float32).get_output(0) + c_output = network.add_cast(c_output, trt.float32).get_output(0) + h_output.name = f"next_h_{layer}" + c_output.name = f"next_c_{layer}" + network.mark_output(h_output) + network.mark_output(c_output) + + if verbose: + print(f"[trtmc build] Building TDT predictor ({pred_layers}L, h={pred_hidden})", + file=sys.stderr) + plan = builder.build_serialized_network(network, config) + if plan is None: + raise RuntimeError("TDT predictor build failed") + return bytes(plan) + + +def _build_joint( + weights: WeightDict, *, precision: str = "fp32", + verbose: bool = False) -> bytes: + enc_hidden = int(weights["_hidden"]) + pred_hidden = int(weights["_pred_hidden"]) + joint_hidden = int(weights["_joint_hidden"]) + vocab_total = int(weights["_vocab_total"]) + joint_output_size = int(weights["_joint_output_size"]) + duration_count = len(weights["_duration_values"]) + activation = str(weights["_joint_activation"]).lower() + work_np_dtype, work_trt_dtype = _precision_dtypes(precision) + + logger = trt.Logger(trt.Logger.VERBOSE if verbose else trt.Logger.WARNING) + builder = trt.Builder(logger) + network = builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.STRONGLY_TYPED)) + config = builder.create_builder_config() + config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, 256 << 20) + + enc = network.add_input("encoder_frame", trt.float32, (1, enc_hidden)) + pred = network.add_input("pred_output", trt.float32, (1, pred_hidden)) + if work_trt_dtype != trt.float32: + enc = network.add_cast(enc, work_trt_dtype).get_output(0) + pred = network.add_cast(pred, work_trt_dtype).get_output(0) + enc_proj = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant(network, enc, enc_hidden, joint_hidden, + weights["joint_enc_w"], + dtype=work_np_dtype), + joint_hidden, + weights["joint_enc_b"], + dtype=work_np_dtype, + ) + pred_proj = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant(network, pred, pred_hidden, joint_hidden, + weights["joint_pred_w"], + dtype=work_np_dtype), + joint_hidden, + weights["joint_pred_b"], + dtype=work_np_dtype, + ) + joint = network.add_elementwise(enc_proj, pred_proj, trt.ElementWiseOperation.SUM).get_output(0) + if activation == "relu": + joint = network.add_activation(joint, trt.ActivationType.RELU).get_output(0) + elif activation == "tanh": + joint = network.add_activation(joint, trt.ActivationType.TANH).get_output(0) + elif activation == "sigmoid": + joint = network.add_activation(joint, trt.ActivationType.SIGMOID).get_output(0) + else: + raise ValueError(f"Unsupported TDT joint activation: {activation}") + + logits = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant(network, joint, joint_hidden, joint_output_size, + weights["joint_out_w"], + dtype=work_np_dtype), + joint_output_size, + weights["joint_out_b"], + dtype=work_np_dtype, + ) + if logits.dtype != trt.float32: + logits = network.add_cast(logits, trt.float32).get_output(0) + token_slice = network.add_slice(logits, (0, 0), (1, vocab_total), (1, 1)).get_output(0) + duration_slice = network.add_slice( + logits, (0, vocab_total), (1, duration_count), (1, 1)).get_output(0) + token_slice.name = "token_logits" + duration_slice.name = "duration_logits" + network.mark_output(token_slice) + network.mark_output(duration_slice) + + if verbose: + print(f"[trtmc build] Building TDT joint (enc={enc_hidden}, pred={pred_hidden}, " + f"joint={joint_hidden}, vocab={vocab_total})", file=sys.stderr) + plan = builder.build_serialized_network(network, config) + if plan is None: + raise RuntimeError("TDT joint build failed") + return bytes(plan) + + +def _build_mel_filterbank(weights: WeightDict, *, verbose: bool = False) -> bytes | None: + num_mel_bins = int(weights.get("_mel_bins", 128)) + n_fft = 512 + sampling_rate = 16000 + n_freq_bins = 1 + n_fft // 2 + import librosa + filters = librosa.filters.mel( + sr=sampling_rate, n_fft=n_fft, n_mels=num_mel_bins, + fmin=0.0, fmax=sampling_rate / 2.0, norm="slaney", + ).T + filters_flat = np.ascontiguousarray(filters, dtype=np.float32) + header = np.array([n_freq_bins, num_mel_bins], dtype=np.int32) + if verbose: + print(f"[trtmc build] TDT mel filterbank: {n_freq_bins}x{num_mel_bins}", + file=sys.stderr) + return header.tobytes() + filters_flat.tobytes() + + +def _load_weights(model_dir: str, config: ModelConfig, *, precision: str = "fp32") -> tuple[WeightDict, dict]: + del precision + w = WeightDict() + sd, ncfg = _load_hf_as_nemo(model_dir) + + ec = ncfg.get("encoder", {}) + defaults = ncfg.get("model_defaults", {}) + dec_cfg = ncfg.get("decoder", {}) + prednet = dec_cfg.get("prednet", _cfg_dict(dec_cfg, "config_dict", "prednet")) + joint_cfg = ncfg.get("joint", {}) + jointnet = joint_cfg.get("jointnet", _cfg_dict(joint_cfg, "config_dict", "jointnet")) + + hidden = _cfg_int(ec.get("d_model"), defaults.get("enc_hidden"), default=1024) + mel_bins = _cfg_int(ncfg.get("preprocessor", {}).get("features"), ec.get("feat_in"), default=128) + kern = _cfg_int(ec.get("conv_kernel_size"), default=9) + conv_norm_type = str(ec.get("conv_norm_type", "batch_norm")).lower() + conv_context_size = str(ec.get("conv_context_size", "symmetric")).lower() + causal_downsampling = bool(ec.get("causal_downsampling", False)) + enc_heads = _cfg_int(ec.get("n_heads"), default=8) + enc_ffn = _cfg_int(ec.get("ff_expansion_factor"), default=4) * hidden + sub_ch = _cfg_int(ec.get("subsampling_conv_channels"), default=256) + head_dim = hidden // enc_heads + + enc_layers = max(int(k.split(".")[2]) for k in sd if k.startswith("encoder.layers.")) + 1 + mel_length = _cfg_int(config.raw.get("mel_length"), ncfg.get("trtmc_mel_length"), + default=3000) + enc_seq = (_compute_causal_enc_seq_len(mel_length) + if causal_downsampling else _compute_enc_seq_len(mel_length)) + att_contexts = ec.get("att_context_size") or [[-1, -1]] + att_context = att_contexts[0] if isinstance(att_contexts, list) and att_contexts else [70, 13] + att_left = _cfg_int(att_context[0] if len(att_context) > 0 else None, default=70) + att_right = _cfg_int(att_context[1] if len(att_context) > 1 else None, default=13) + + # Streaming knobs are checkpoint-defined. The NeMo config exposes the full + # list of supported att_context_size pairs; drive the per-right-context + # engine set from that list. + streaming_right_contexts = [] + streaming_cache_left = att_left + w["_streaming_right_contexts"] = streaming_right_contexts + w["_streaming_cache_left"] = streaming_cache_left + + pred_hidden = _cfg_int(prednet.get("pred_hidden"), defaults.get("pred_hidden"), default=640) + pred_layers = _cfg_int(prednet.get("pred_rnn_layers"), default=1) + rnn_hidden = _cfg_int(prednet.get("rnn_hidden_size"), default=pred_hidden) + if rnn_hidden != pred_hidden: + raise ValueError( + "Parakeet TDT TDT currently supports predictor LSTMs without " + f"projection (pred_hidden={pred_hidden}, rnn_hidden_size={rnn_hidden})." + ) + joint_hidden = _cfg_int(jointnet.get("joint_hidden"), defaults.get("joint_hidden"), + default=pred_hidden) + joint_activation = str(jointnet.get("activation", "relu")).lower() + + # --- Encoder: same FastConformer tensor layout as the native Parakeet TDT encoder path. --- + w["_enc_layers"] = enc_layers + w["_enc_heads"] = enc_heads + w["_enc_ffn"] = enc_ffn + w["_hidden"] = hidden + w["_mel_bins"] = mel_bins + w["_kern"] = kern + w["_mel_length"] = mel_length + w["_enc_seq"] = enc_seq + w["_sub_ch"] = sub_ch + w["_head_dim"] = head_dim + w["_conv_norm_type"] = conv_norm_type + w["_conv_context_size"] = conv_context_size + w["_causal_downsampling"] = causal_downsampling + w["_encoder_attention_mask_2d"] = True + + w["enc_sub_conv0_w"] = _to_np(sd["encoder.pre_encode.conv.0.weight"]) + w["enc_sub_conv0_b"] = _to_np(sd["encoder.pre_encode.conv.0.bias"]) + for s, (di, pi) in enumerate([(2, 3), (5, 6)]): + w[f"enc_sub_dw{s}_w"] = _to_np(sd[f"encoder.pre_encode.conv.{di}.weight"]) + w[f"enc_sub_dw{s}_b"] = _to_np(sd[f"encoder.pre_encode.conv.{di}.bias"]) + w[f"enc_sub_pw{s}_w"] = _to_np(sd[f"encoder.pre_encode.conv.{pi}.weight"]) + w[f"enc_sub_pw{s}_b"] = _to_np(sd[f"encoder.pre_encode.conv.{pi}.bias"]) + w["enc_sub_out_w"] = _transpose_2d(_to_np(sd["encoder.pre_encode.out.weight"]), "sub") + w["enc_sub_out_b"] = _to_np(sd["encoder.pre_encode.out.bias"]) + + for i in range(enc_layers): + nk = f"encoder.layers.{i}" + pk = f"el.{i}" + for p, n in [("w_q", "linear_q"), ("w_k", "linear_k"), ("w_v", "linear_v"), + ("w_o", "linear_out")]: + w[f"{pk}.{p}"] = _transpose_2d(_to_np(sd[f"{nk}.self_attn.{n}.weight"]), p) + bk = f"{nk}.self_attn.{n}.bias" + w[f"{pk}.b_{p[-1]}"] = _to_np(sd[bk]) if bk in sd else np.zeros(hidden, dtype=np.float32) + w[f"{pk}.pos_bias_u"] = _to_np(sd[f"{nk}.self_attn.pos_bias_u"]) + w[f"{pk}.pos_bias_v"] = _to_np(sd[f"{nk}.self_attn.pos_bias_v"]) + w[f"{pk}.w_pos"] = _transpose_2d(_to_np(sd[f"{nk}.self_attn.linear_pos.weight"]), "pos") + w[f"{pk}.norm_sa"] = _to_np(sd[f"{nk}.norm_self_att.weight"]) + w[f"{pk}.norm_sa_b"] = _to_np(sd[f"{nk}.norm_self_att.bias"]) + for fn, fk in [("ff1", "feed_forward1"), ("ff2", "feed_forward2")]: + w[f"{pk}.{fn}.w1"] = _transpose_2d(_to_np(sd[f"{nk}.{fk}.linear1.weight"]), f"{fn}1") + b1 = f"{nk}.{fk}.linear1.bias" + w[f"{pk}.{fn}.b1"] = _to_np(sd[b1]) if b1 in sd else np.zeros(enc_ffn, dtype=np.float32) + w[f"{pk}.{fn}.w2"] = _transpose_2d(_to_np(sd[f"{nk}.{fk}.linear2.weight"]), f"{fn}2") + b2 = f"{nk}.{fk}.linear2.bias" + w[f"{pk}.{fn}.b2"] = _to_np(sd[b2]) if b2 in sd else np.zeros(hidden, dtype=np.float32) + nm = "norm_feed_forward1" if fn == "ff1" else "norm_feed_forward2" + w[f"{pk}.{fn}.norm"] = _to_np(sd[f"{nk}.{nm}.weight"]) + w[f"{pk}.{fn}.norm_b"] = _to_np(sd[f"{nk}.{nm}.bias"]) + w[f"{pk}.cpw1_w"] = _to_np(sd[f"{nk}.conv.pointwise_conv1.weight"]) + cpw1_b = f"{nk}.conv.pointwise_conv1.bias" + w[f"{pk}.cpw1_b"] = _to_np(sd[cpw1_b]) if cpw1_b in sd else np.zeros(2 * hidden, dtype=np.float32) + w[f"{pk}.cdw_w"] = _to_np(sd[f"{nk}.conv.depthwise_conv.weight"]) + cdw_b = f"{nk}.conv.depthwise_conv.bias" + w[f"{pk}.cdw_b"] = _to_np(sd[cdw_b]) if cdw_b in sd else np.zeros(hidden, dtype=np.float32) + w[f"{pk}.bn_w"] = _to_np(sd[f"{nk}.conv.batch_norm.weight"]) + w[f"{pk}.bn_b"] = _to_np(sd[f"{nk}.conv.batch_norm.bias"]) + w[f"{pk}.bn_m"] = _to_np(sd[f"{nk}.conv.batch_norm.running_mean"]) if f"{nk}.conv.batch_norm.running_mean" in sd else np.zeros(hidden, dtype=np.float32) + w[f"{pk}.bn_v"] = _to_np(sd[f"{nk}.conv.batch_norm.running_var"]) if f"{nk}.conv.batch_norm.running_var" in sd else np.ones(hidden, dtype=np.float32) + w[f"{pk}.cpw2_w"] = _to_np(sd[f"{nk}.conv.pointwise_conv2.weight"]) + cpw2_b = f"{nk}.conv.pointwise_conv2.bias" + w[f"{pk}.cpw2_b"] = _to_np(sd[cpw2_b]) if cpw2_b in sd else np.zeros(hidden, dtype=np.float32) + w[f"{pk}.norm_conv"] = _to_np(sd[f"{nk}.norm_conv.weight"]) + w[f"{pk}.norm_conv_b"] = _to_np(sd[f"{nk}.norm_conv.bias"]) + w[f"{pk}.norm_out"] = _to_np(sd[f"{nk}.norm_out.weight"]) + w[f"{pk}.norm_out_b"] = _to_np(sd[f"{nk}.norm_out.bias"]) + + rpe = _relative_pe(enc_seq, hidden) + for i in range(enc_layers): + proj = rpe @ w[f"el.{i}.w_pos"] + w[f"el.{i}.rpe_proj"] = proj.reshape(2 * enc_seq - 1, enc_heads, head_dim) + + # --- TDT predictor. --- + embed = _to_np(_find_tensor(sd, ["decoder.prediction.embed.weight"], "predictor embedding")) + vocab_total = int(embed.shape[0]) + blank_id = _cfg_int(dec_cfg.get("blank_idx"), default=vocab_total - 1) + if blank_id >= vocab_total: + raise ValueError( + f"TDT blank_id={blank_id} is outside predictor embedding rows={vocab_total}; " + "blank_as_pad=False checkpoints are not supported yet." + ) + vocab = blank_id + w["pred_embedding"] = embed + w["_pred_hidden"] = pred_hidden + w["_pred_layers"] = pred_layers + w["_vocab"] = vocab + w["_vocab_total"] = vocab_total + w["_blank_id"] = blank_id + + for i in range(pred_layers): + pfx = f"pred.{i}" + base_candidates = [ + f"decoder.prediction.dec_rnn.weight_{{kind}}_l{i}", + f"decoder.prediction.dec_rnn.lstm.weight_{{kind}}_l{i}", + f"decoder.prediction.dec_rnn.rnn.weight_{{kind}}_l{i}", + f"decoder.prediction.dec_rnn._rnn.weight_{{kind}}_l{i}", + ] + b_candidates = [ + f"decoder.prediction.dec_rnn.bias_{{kind}}_l{i}", + f"decoder.prediction.dec_rnn.lstm.bias_{{kind}}_l{i}", + f"decoder.prediction.dec_rnn.rnn.bias_{{kind}}_l{i}", + f"decoder.prediction.dec_rnn._rnn.bias_{{kind}}_l{i}", + ] + w_ih = _to_np(_find_tensor(sd, [c.format(kind="ih") for c in base_candidates], + f"predictor layer {i} weight_ih")) + w_hh = _to_np(_find_tensor(sd, [c.format(kind="hh") for c in base_candidates], + f"predictor layer {i} weight_hh")) + b_ih = _to_np(_find_tensor(sd, [c.format(kind="ih") for c in b_candidates], + f"predictor layer {i} bias_ih")) + b_hh = _to_np(_find_tensor(sd, [c.format(kind="hh") for c in b_candidates], + f"predictor layer {i} bias_hh")) + if w_ih.shape != (4 * pred_hidden, pred_hidden) or w_hh.shape != (4 * pred_hidden, pred_hidden): + raise ValueError( + f"Unsupported predictor LSTM layer {i} shapes: " + f"w_ih={w_ih.shape}, w_hh={w_hh.shape}, expected " + f"{(4 * pred_hidden, pred_hidden)}." + ) + w[f"{pfx}.w_ih_t"] = np.ascontiguousarray(w_ih.T.astype(np.float32)) + w[f"{pfx}.w_hh_t"] = np.ascontiguousarray(w_hh.T.astype(np.float32)) + w[f"{pfx}.bias"] = (b_ih + b_hh).astype(np.float32).reshape(1, -1) + + # --- TDT joint. --- + joint_prefix = "joint" + w["joint_enc_w"] = _transpose_2d( + _to_np(_find_tensor(sd, [f"{joint_prefix}.enc.weight"], "joint encoder projection")), + "joint_enc") + w["joint_enc_b"] = _to_np(_find_tensor(sd, [f"{joint_prefix}.enc.bias"], "joint encoder bias")) + w["joint_pred_w"] = _transpose_2d( + _to_np(_find_tensor(sd, [f"{joint_prefix}.pred.weight"], "joint predictor projection")), + "joint_pred") + w["joint_pred_b"] = _to_np(_find_tensor(sd, [f"{joint_prefix}.pred.bias"], "joint predictor bias")) + out_w, out_b = _find_joint_linear(sd, joint_prefix, "joint output") + w["joint_out_w"] = _transpose_2d(_to_np(out_w), "joint_out") + w["joint_out_b"] = _to_np(out_b) + duration_values = tuple(int(x) for x in ncfg.get("tdt_durations", [0, 1, 2, 3, 4])) + joint_output_size = int(w["joint_out_b"].shape[0]) + if joint_output_size != vocab_total + len(duration_values): + raise ValueError( + f"TDT joint output has {joint_output_size} rows; expected " + f"{vocab_total} token rows plus {len(duration_values)} duration rows") + w["_joint_output_size"] = joint_output_size + w["_duration_values"] = duration_values + w["_joint_hidden"] = joint_hidden + w["_joint_activation"] = joint_activation + + config.hidden_size = pred_hidden + config.vocab_size = vocab_total + config.num_hidden_layers = pred_layers + config.num_attention_heads = 1 + config.num_key_value_heads = 1 + + frontend = { + "num_mel_bins": mel_bins, + "max_source_positions": enc_seq, + "encoder_layers": enc_layers, + "mel_length": mel_length, + "subsampling_factor": 8, + "sample_rate": 16000, + } + runtime = { + "hidden_size": pred_hidden, + "num_hidden_layers": pred_layers, + "num_attention_heads": 1, + "num_key_value_heads": 1, + "vocab_size": vocab_total, + "tdt_encoder_hidden_size": hidden, + "tdt_pred_hidden_size": pred_hidden, + "tdt_pred_num_layers": pred_layers, + "tdt_encoder_layers": enc_layers, + "tdt_joint_hidden_size": joint_hidden, + "tdt_vocab_size": vocab, + "tdt_blank_id": blank_id, + "tdt_duration_values": list(duration_values), + "tdt_max_symbols_per_step": _cfg_int(ncfg.get("decoding", {}).get("max_symbols_per_step"), + default=10), + "tdt_causal_downsampling": causal_downsampling, + "tdt_att_context_left": att_left, + "tdt_att_context_right": att_right, + } + return w, {**frontend, **runtime} + + +def compile_engines(model_dir: Path, *, precision: str, verbose: bool): + config = ModelConfig.from_dir(model_dir) + weights, runtime = _load_weights(str(model_dir), config, precision=precision) + mel = _build_mel_filterbank(weights, verbose=verbose) + if mel is None: + raise RuntimeError("Parakeet TDT requires a mel filterbank") + plans = { + "encoder.plan": _build_encoder(config, weights, precision=precision, verbose=verbose), + "predictor.plan": _build_predictor(weights, precision=precision, verbose=verbose), + "joint.plan": _build_joint(weights, precision=precision, verbose=verbose), + "mel_filterbank": mel, + } + runtime.update({ + "tensor_parallel_size": 1, "mel_n_fft": 512, "mel_win_length": 400, + "mel_hop_length": 160, "mel_chunk_length": 30, "mel_sampling_rate": 16000, + "mel_preemph": 0.97, "mel_normalize": "per_feature", + }) + return plans, runtime diff --git a/families/parakeet_tdt/fastconformer.py b/families/parakeet_tdt/fastconformer.py new file mode 100644 index 0000000000..7d6454a1b3 --- /dev/null +++ b/families/parakeet_tdt/fastconformer.py @@ -0,0 +1,542 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations +import math +import sys +import numpy as np +import tensorrt as trt +from . import graph_ops + + +def _to_np(t) -> np.ndarray: + if hasattr(t, "numpy"): + return t.detach().cpu().numpy().astype(np.float32) + return np.asarray(t, dtype=np.float32) + + +def _relative_pe(seq_len: int, d_model: int, max_len: int = 5000) -> np.ndarray: + """Compute relative PE for Transformer-XL attention. + + Matches NeMo RelPositionalEncoding: builds table with positive and + negative position encodings, where negative uses sin(-k*d) = -sin(k*d). + """ + if seq_len <= 0: + raise ValueError(f"seq_len must be positive, got {seq_len}") + if seq_len > max_len: + raise ValueError(f"seq_len={seq_len} exceeds relative-position max_len={max_len}") + pos = np.arange(0, max_len, dtype=np.float32)[:, np.newaxis] + div = np.exp(np.arange(0, d_model, 2, dtype=np.float32) * -(math.log(10000.0) / d_model)) + + pe_pos = np.zeros((max_len, d_model), dtype=np.float32) + pe_pos[:, 0::2] = np.sin(pos * div) + pe_pos[:, 1::2] = np.cos(pos * div) + pe_pos = pe_pos[::-1].copy() + + pe_neg = np.zeros((max_len, d_model), dtype=np.float32) + pe_neg[:, 0::2] = np.sin(-pos * div) + pe_neg[:, 1::2] = np.cos(-pos * div) + pe_neg = pe_neg[1:] + + pe_full = np.concatenate([pe_pos, pe_neg], axis=0) + start = max_len - seq_len + end = max_len + seq_len - 1 + return pe_full[start:end] + + +def _compute_enc_seq_len(mel_length: int) -> int: + """Encoder time output after 3 CausalConv2D stride-2 stages. + + Time dim uses symmetric padding (left=1, right=1): (t+2-3)//2+1 = (t-1)//2+1 + """ + t = mel_length + for _ in range(3): + t = (t + 2 - 3) // 2 + 1 + return t + + +def _compute_causal_enc_seq_len(mel_length: int) -> int: + t = mel_length + for _ in range(3): + t = t // 2 + 1 + return t + + +def _build_subsampling( + network, mel_input, weights, sub_ch, hidden, num_mel_bins, mel_length, dtype=np.float32 +): + causal_downsampling = bool(weights.get("_causal_downsampling", False)) + + def add_subsample_conv(inp, weight, bias, out_channels, *, groups=1): + if causal_downsampling: + pad = network.add_padding_nd(inp, pre_padding=(2, 2), post_padding=(1, 1)) + inp = pad.get_output(0) + padding = (0, 0) + else: + padding = (1, 1) + return graph_ops.add_conv2d( + network, + inp, + weight=weight, + bias=bias, + out_channels=out_channels, + kernel_size=(3, 3), + stride=(2, 2), + padding=padding, + groups=groups, + dtype=dtype, + ) + + # NeMo ConformerEncoder passes audio as [B, T, F] to pre_encode. + # MaskedConvSequential.forward unsqueezes to [B, 1, T, F]. + # So Conv2d input is [1, 1, mel_length, mel_bins] (time=H, features=W). + # Our mel_input is [mel_bins, mel_length] = [F, T]. Transpose to [T, F]. + tr_mel = network.add_shuffle(mel_input) + tr_mel.first_transpose = trt.Permutation([1, 0]) # [F,T] -> [T,F] + ri = network.add_shuffle(tr_mel.get_output(0)) + ri.reshape_dims = (1, 1, mel_length, num_mel_bins) # [1, 1, T, F] + x = ri.get_output(0) + # Standard Conv2d with symmetric padding + ReLU (NOT SiLU, NOT causal) + x = add_subsample_conv(x, weights["enc_sub_conv0_w"], weights["enc_sub_conv0_b"], sub_ch) + x = graph_ops.add_activation(network, x, "relu", dtype=dtype) + for s in range(2): + x = add_subsample_conv( + x, weights[f"enc_sub_dw{s}_w"], weights[f"enc_sub_dw{s}_b"], sub_ch, groups=sub_ch + ) + x = graph_ops.add_conv2d( + network, + x, + weight=weights[f"enc_sub_pw{s}_w"], + bias=weights[f"enc_sub_pw{s}_b"], + out_channels=sub_ch, + kernel_size=(1, 1), + dtype=dtype, + ) + x = graph_ops.add_activation(network, x, "relu", dtype=dtype) + # After convs: [1, C, T_out, F_out] where T=time, F=features + time_out = int(weights.get("_enc_seq", _compute_enc_seq_len(mel_length))) + sub_out_in = int(weights["enc_sub_out_w"].shape[0]) + feat_out = sub_out_in // sub_ch + # NeMo: x.transpose(1,2).reshape(B,T,-1) on [B,C,T,F] + # = permute(0,2,1,3) -> [B,T,C,F], reshape -> [T, C*F] + tr = network.add_shuffle(x) + tr.first_transpose = trt.Permutation([0, 2, 1, 3]) # [B,C,T,F] -> [B,T,C,F] + tr.reshape_dims = (time_out, sub_ch * feat_out) # [T, C*F] + out = graph_ops.add_matmul_rhs_constant( + network, tr.get_output(0), sub_ch * feat_out, hidden, weights["enc_sub_out_w"], dtype=dtype + ) + return graph_ops.add_bias_sum(network, out, hidden, weights["enc_sub_out_b"], dtype=dtype) + + +def _rel_shift(network, x, H, S, dtype=np.float32): + zeros = graph_ops.add_constant( + network, (H, S, 1), np.zeros((H, S, 1), dtype=dtype), dtype=dtype + ) + padded = network.add_concatenation([zeros, x]) + padded.axis = 2 + rs1 = network.add_shuffle(padded.get_output(0)) + rs1.reshape_dims = (H, 2 * S, S) + sl1 = network.add_slice( + rs1.get_output(0), start=(0, 1, 0), shape=(H, 2 * S - 1, S), stride=(1, 1, 1) + ) + rs2 = network.add_shuffle(sl1.get_output(0)) + rs2.reshape_dims = (H, S, 2 * S - 1) + sl2 = network.add_slice(rs2.get_output(0), start=(0, 0, 0), shape=(H, S, S), stride=(1, 1, 1)) + return sl2.get_output(0) + + +def _add_rel_pos_attention( + network, hs, weights, pfx, hidden, H, D, S, rel_pe_proj, eps, enc_mask=None, dtype=np.float32 +): + normed = graph_ops.add_layer_norm( + network, + hs, + hidden, + weights[f"{pfx}.norm_sa"], + weights[f"{pfx}.norm_sa_b"], + eps, + dtype=dtype, + ) + q = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant( + network, normed, hidden, hidden, weights[f"{pfx}.w_q"], dtype=dtype + ), + hidden, + weights[f"{pfx}.b_q"], + dtype=dtype, + ) + k = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant( + network, normed, hidden, hidden, weights[f"{pfx}.w_k"], dtype=dtype + ), + hidden, + weights[f"{pfx}.b_k"], + dtype=dtype, + ) + v = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant( + network, normed, hidden, hidden, weights[f"{pfx}.w_v"], dtype=dtype + ), + hidden, + weights[f"{pfx}.b_v"], + dtype=dtype, + ) + qr = network.add_shuffle(q) + qr.reshape_dims = (S, H, D) + kr = network.add_shuffle(k) + kr.reshape_dims = (S, H, D) + vr = network.add_shuffle(v) + vr.reshape_dims = (S, H, D) + bu = graph_ops.add_constant(network, (1, H, D), weights[f"{pfx}.pos_bias_u"], dtype=dtype) + bv = graph_ops.add_constant(network, (1, H, D), weights[f"{pfx}.pos_bias_v"], dtype=dtype) + qu = network.add_elementwise(qr.get_output(0), bu, trt.ElementWiseOperation.SUM).get_output(0) + qv = network.add_elementwise(qr.get_output(0), bv, trt.ElementWiseOperation.SUM).get_output(0) + qu_t = network.add_shuffle(qu) + qu_t.first_transpose = trt.Permutation([1, 0, 2]) + qv_t = network.add_shuffle(qv) + qv_t.first_transpose = trt.Permutation([1, 0, 2]) + k_t = network.add_shuffle(kr.get_output(0)) + k_t.first_transpose = trt.Permutation([1, 0, 2]) + v_t = network.add_shuffle(vr.get_output(0)) + v_t.first_transpose = trt.Permutation([1, 0, 2]) + cs = network.add_matrix_multiply( + qu_t.get_output(0), + trt.MatrixOperation.NONE, + k_t.get_output(0), + trt.MatrixOperation.TRANSPOSE, + ).get_output(0) + rp_t = network.add_shuffle(rel_pe_proj) + rp_t.first_transpose = trt.Permutation([1, 0, 2]) + ps_raw = network.add_matrix_multiply( + qv_t.get_output(0), + trt.MatrixOperation.NONE, + rp_t.get_output(0), + trt.MatrixOperation.TRANSPOSE, + ).get_output(0) + ps = _rel_shift(network, ps_raw, H, S, dtype=dtype) + total = network.add_elementwise(cs, ps, trt.ElementWiseOperation.SUM).get_output(0) + sc = graph_ops.add_constant( + network, (1, 1, 1), np.array([1.0 / math.sqrt(D)], dtype=dtype), dtype=dtype + ) + scaled = network.add_elementwise(total, sc, trt.ElementWiseOperation.PROD).get_output(0) + # Apply encoder sequence mask: [1, 1, S] added to scores [H, S, S] + if enc_mask is not None: + scaled = network.add_elementwise(scaled, enc_mask, trt.ElementWiseOperation.SUM).get_output( + 0 + ) + # Conformer relative-position attention uses a rel-shifted Q*R term in + # the logits, which native IAttention cannot represent as a plain mask. + sm = network.add_softmax(scaled) + sm.axes = 1 << 2 + ao = network.add_matrix_multiply( + sm.get_output(0), trt.MatrixOperation.NONE, v_t.get_output(0), trt.MatrixOperation.NONE + ).get_output(0) + at = network.add_shuffle(ao) + at.first_transpose = trt.Permutation([1, 0, 2]) + af = network.add_shuffle(at.get_output(0)) + af.reshape_dims = (S, hidden) + return graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant( + network, af.get_output(0), hidden, hidden, weights[f"{pfx}.w_o"], dtype=dtype + ), + hidden, + weights[f"{pfx}.b_o"], + dtype=dtype, + ) + + +def _add_causal_depthwise_conv1d(network, x, weights, pfx, hidden, kern, dtype=np.float32): + pad = kern - 1 + if pad > 0: + zeros = graph_ops.add_constant( + network, (1, hidden, pad), np.zeros((1, hidden, pad), dtype=dtype), dtype=dtype + ) + cat = network.add_concatenation([zeros, x]) + cat.axis = 2 + x = cat.get_output(0) + return graph_ops.add_conv1d( + network, + x, + weight=weights[f"{pfx}.cdw_w"], + bias=weights[f"{pfx}.cdw_b"], + out_channels=hidden, + kernel_size=kern, + groups=hidden, + dtype=dtype, + ) + + +def _add_conv_norm(network, x, weights, pfx, hidden, S, eps, conv_norm_type, dtype=np.float32): + if conv_norm_type == "layer_norm": + r1 = network.add_shuffle(x) + r1.reshape_dims = (hidden, S) + r2 = network.add_shuffle(r1.get_output(0)) + r2.first_transpose = trt.Permutation([1, 0]) + normed = graph_ops.add_layer_norm( + network, + r2.get_output(0), + hidden, + weights[f"{pfx}.bn_w"], + weights[f"{pfx}.bn_b"], + eps, + dtype=dtype, + ) + r3 = network.add_shuffle(normed) + r3.first_transpose = trt.Permutation([1, 0]) + r4 = network.add_shuffle(r3.get_output(0)) + r4.reshape_dims = (1, hidden, S) + return r4.get_output(0) + + bn = network.add_shuffle(x) + bn.reshape_dims = (1, hidden, 1, S) + x = graph_ops.add_batch_norm_2d( + network, + bn.get_output(0), + hidden, + gamma=weights[f"{pfx}.bn_w"], + beta=weights[f"{pfx}.bn_b"], + running_mean=weights[f"{pfx}.bn_m"], + running_var=weights[f"{pfx}.bn_v"], + dtype=dtype, + ) + bo = network.add_shuffle(x) + bo.reshape_dims = (1, hidden, S) + return bo.get_output(0) + + +def _add_conv_module( + network, + hs, + weights, + pfx, + hidden, + kern, + S, + eps, + conv_norm_type="batch_norm", + conv_context_size="symmetric", + dtype=np.float32, +): + normed = graph_ops.add_layer_norm( + network, + hs, + hidden, + weights[f"{pfx}.norm_conv"], + weights[f"{pfx}.norm_conv_b"], + eps, + dtype=dtype, + ) + r1 = network.add_shuffle(normed) + r1.first_transpose = trt.Permutation([1, 0]) + r2 = network.add_shuffle(r1.get_output(0)) + r2.reshape_dims = (1, hidden, S) + x = graph_ops.add_conv1d( + network, + r2.get_output(0), + weight=weights[f"{pfx}.cpw1_w"], + bias=weights[f"{pfx}.cpw1_b"], + out_channels=2 * hidden, + kernel_size=1, + dtype=dtype, + ) + xa = network.add_slice(x, start=(0, 0, 0), shape=(1, hidden, S), stride=(1, 1, 1)).get_output(0) + xb = network.add_slice( + x, start=(0, hidden, 0), shape=(1, hidden, S), stride=(1, 1, 1) + ).get_output(0) + gate = network.add_activation(xb, trt.ActivationType.SIGMOID).get_output(0) + x = network.add_elementwise(xa, gate, trt.ElementWiseOperation.PROD).get_output(0) + if conv_context_size == "causal": + x = _add_causal_depthwise_conv1d(network, x, weights, pfx, hidden, kern, dtype=dtype) + else: + x = graph_ops.add_conv1d( + network, + x, + weight=weights[f"{pfx}.cdw_w"], + bias=weights[f"{pfx}.cdw_b"], + out_channels=hidden, + kernel_size=kern, + padding=kern // 2, + groups=hidden, + dtype=dtype, + ) + x = _add_conv_norm(network, x, weights, pfx, hidden, S, eps, conv_norm_type, dtype=dtype) + x = graph_ops.add_activation(network, x, "silu", dtype=dtype) + x = graph_ops.add_conv1d( + network, + x, + weight=weights[f"{pfx}.cpw2_w"], + bias=weights[f"{pfx}.cpw2_b"], + out_channels=hidden, + kernel_size=1, + dtype=dtype, + ) + r3 = network.add_shuffle(x) + r3.reshape_dims = (hidden, S) + r4 = network.add_shuffle(r3.get_output(0)) + r4.first_transpose = trt.Permutation([1, 0]) + return r4.get_output(0) + + +def _add_half_ffn(network, hs, weights, pfx, hidden, ffn, eps, dtype=np.float32): + normed = graph_ops.add_layer_norm( + network, hs, hidden, weights[f"{pfx}.norm"], weights[f"{pfx}.norm_b"], eps, dtype=dtype + ) + fc1 = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant( + network, normed, hidden, ffn, weights[f"{pfx}.w1"], dtype=dtype + ), + ffn, + weights[f"{pfx}.b1"], + dtype=dtype, + ) + act = graph_ops.add_activation(network, fc1, "silu", dtype=dtype) + fc2 = graph_ops.add_bias_sum( + network, + graph_ops.add_matmul_rhs_constant( + network, act, ffn, hidden, weights[f"{pfx}.w2"], dtype=dtype + ), + hidden, + weights[f"{pfx}.b2"], + dtype=dtype, + ) + half = graph_ops.add_constant(network, (1, 1), np.array([0.5], dtype=dtype), dtype=dtype) + return network.add_elementwise(fc2, half, trt.ElementWiseOperation.PROD).get_output(0) + + +def _add_conformer_block( + network, + hs, + weights, + pfx, + hidden, + H, + D, + ffn, + kern, + S, + rpe, + eps, + enc_mask=None, + conv_norm_type="batch_norm", + conv_context_size="symmetric", + dtype=np.float32, +): + ffn1 = _add_half_ffn(network, hs, weights, f"{pfx}.ff1", hidden, ffn, eps, dtype=dtype) + hs = network.add_elementwise(hs, ffn1, trt.ElementWiseOperation.SUM).get_output(0) + attn = _add_rel_pos_attention( + network, hs, weights, pfx, hidden, H, D, S, rpe, eps, enc_mask, dtype=dtype + ) + hs = network.add_elementwise(hs, attn, trt.ElementWiseOperation.SUM).get_output(0) + conv = _add_conv_module( + network, + hs, + weights, + pfx, + hidden, + kern, + S, + eps, + conv_norm_type=conv_norm_type, + conv_context_size=conv_context_size, + dtype=dtype, + ) + hs = network.add_elementwise(hs, conv, trt.ElementWiseOperation.SUM).get_output(0) + ffn2 = _add_half_ffn(network, hs, weights, f"{pfx}.ff2", hidden, ffn, eps, dtype=dtype) + hs = network.add_elementwise(hs, ffn2, trt.ElementWiseOperation.SUM).get_output(0) + return graph_ops.add_layer_norm( + network, + hs, + hidden, + weights[f"{pfx}.norm_out"], + weights[f"{pfx}.norm_out_b"], + eps, + dtype=dtype, + ) + + +def _build_encoder(config, weights, *, precision="fp32", verbose=False): + el = weights["_enc_layers"] + eh = weights["_enc_heads"] + h = weights["_hidden"] + hd = weights["_head_dim"] + ef = weights["_enc_ffn"] + k = weights["_kern"] + mb = weights["_mel_bins"] + ml = weights["_mel_length"] + es = weights["_enc_seq"] + sc = weights["_sub_ch"] + conv_norm_type = str(weights.get("_conv_norm_type", "batch_norm")).lower() + conv_context_size = str(weights.get("_conv_context_size", "symmetric")).lower() + if precision == "fp16": + work_np_dtype, work_trt_dtype = np.float16, trt.float16 + elif precision == "fp32": + work_np_dtype, work_trt_dtype = np.float32, trt.float32 + else: + raise ValueError( + f"Unsupported streaming encoder precision {precision!r}; expected fp32 or fp16" + ) + + log = trt.Logger(trt.Logger.VERBOSE if verbose else trt.Logger.WARNING) + b = trt.Builder(log) + net = b.create_network(1 << int(trt.NetworkDefinitionCreationFlag.STRONGLY_TYPED)) + tc = b.create_builder_config() + tc.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, 2 << 30) + + eps = graph_ops.add_constant( + net, (1, 1), np.array([1e-5], dtype=work_np_dtype), dtype=work_np_dtype + ) + mel = net.add_input("mel_features", trt.float32, (mb, ml)) + # Encoder attention mask: [1, 1, enc_seq] -- 0.0 valid, -10000.0 padded. + # Applied additively to self-attention scores before softmax. + mask_shape = ( + (1, es, es) if bool(weights.get("_encoder_attention_mask_2d", False)) else (1, 1, es) + ) + enc_mask = net.add_input("encoder_mask", trt.float32, mask_shape) + if work_trt_dtype != trt.float32: + mel = net.add_cast(mel, work_trt_dtype).get_output(0) + enc_mask = net.add_cast(enc_mask, work_trt_dtype).get_output(0) + + hs = _build_subsampling(net, mel, weights, sc, h, mb, ml, dtype=work_np_dtype) + for li in range(el): + pfx = f"el.{li}" + rpe = graph_ops.add_constant( + net, (2 * es - 1, eh, hd), weights[f"{pfx}.rpe_proj"], dtype=work_np_dtype + ) + hs = _add_conformer_block( + net, + hs, + weights, + pfx, + h, + eh, + hd, + ef, + k, + es, + rpe, + eps, + enc_mask, + conv_norm_type=conv_norm_type, + conv_context_size=conv_context_size, + dtype=work_np_dtype, + ) + + output = hs + if output.dtype != trt.float32: + output = net.add_cast(output, trt.float32).get_output(0) + output.name = "encoder_output" + net.mark_output(output) + if verbose: + print( + f"[trtmc build] Building Parakeet TDT encoder ({el}L, h={h}, heads={eh}, seq={es})", + file=sys.stderr, + ) + plan = b.build_serialized_network(net, tc) + if plan is None: + raise RuntimeError("Parakeet TDT encoder build failed") + return bytes(plan) diff --git a/families/parakeet_tdt/graph_ops.py b/families/parakeet_tdt/graph_ops.py new file mode 100644 index 0000000000..2c7a4701a3 --- /dev/null +++ b/families/parakeet_tdt/graph_ops.py @@ -0,0 +1,423 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Family-owned TensorRT graph operations for Python engine builds. + +Tensor names and shapes must stay compatible with the C++ bundle runtime. +""" + +from __future__ import annotations + +import numpy as np +import tensorrt as trt + + +def _cast_back_to_trt_dtype( + network: trt.INetworkDefinition, + tensor: trt.ITensor, + target_dtype: trt.DataType, +) -> trt.ITensor: + """Cast a tensor back to the original TRT runtime dtype after FP32 compute.""" + if tensor.dtype == target_dtype: + return tensor + return network.add_cast(tensor, target_dtype).get_output(0) + + +def add_constant( + network: trt.INetworkDefinition, + shape: tuple[int, ...], + values: np.ndarray, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """Add a constant tensor in the given *dtype* (default float32).""" + weights = trt.Weights(np.ascontiguousarray(values, dtype=dtype)) + layer = network.add_constant(shape, weights) + return layer.get_output(0) + + +def add_matmul_rhs_constant( + network: trt.INetworkDefinition, + lhs: trt.ITensor, + lhs_width: int, + rhs_width: int, + rhs_weights: np.ndarray, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """Matrix multiply: lhs @ rhs_constant. rhs is [lhs_width, rhs_width].""" + rank = len(tuple(lhs.shape)) + rhs_shape = (lhs_width, rhs_width) if rank <= 2 else (1,) * (rank - 2) + (lhs_width, rhs_width) + rhs = add_constant( + network, + rhs_shape, + np.asarray(rhs_weights).reshape(rhs_shape), + dtype=dtype, + ) + rhs = _cast_back_to_trt_dtype(network, rhs, lhs.dtype) + mm = network.add_matrix_multiply( + lhs, + trt.MatrixOperation.NONE, + rhs, + trt.MatrixOperation.NONE, + ) + return _cast_back_to_trt_dtype(network, mm.get_output(0), lhs.dtype) + + +def add_bias_sum( + network: trt.INetworkDefinition, + inp: trt.ITensor, + width: int, + bias: np.ndarray, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """Element-wise add a bias broadcast over all non-feature axes.""" + rank = len(tuple(inp.shape)) + bias_shape = (width,) if rank <= 1 else (1,) * (rank - 1) + (width,) + bias_t = add_constant(network, bias_shape, np.asarray(bias).reshape(bias_shape), dtype=dtype) + bias_t = _cast_back_to_trt_dtype(network, bias_t, inp.dtype) + s = network.add_elementwise(inp, bias_t, trt.ElementWiseOperation.SUM) + return _cast_back_to_trt_dtype(network, s.get_output(0), inp.dtype) + + +def add_layer_norm( + network: trt.INetworkDefinition, + inp: trt.ITensor, + hidden_size: int, + gamma: np.ndarray, + beta: np.ndarray, + eps_tensor: trt.ITensor, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """LayerNorm: gamma * ((x - mean) / sqrt(var + eps)) + beta. + + FP32 precision boundary: when dtype != float32, casts to FP32 before + norm computation for numerical stability, then casts back. + """ + need_cast = dtype != np.float32 + output_dtype = inp.dtype + if need_cast: + inp = network.add_cast(inp, trt.float32).get_output(0) + eps_tensor = network.add_cast(eps_tensor, trt.float32).get_output(0) + # mean = reduce_mean(x) + mean = network.add_reduce(inp, trt.ReduceOperation.AVG, 1 << 1, keep_dims=True) + # x - mean + centered = network.add_elementwise(inp, mean.get_output(0), trt.ElementWiseOperation.SUB) + # variance = mean((x - mean)^2) + sq = network.add_elementwise( + centered.get_output(0), centered.get_output(0), trt.ElementWiseOperation.PROD + ) + var = network.add_reduce(sq.get_output(0), trt.ReduceOperation.AVG, 1 << 1, keep_dims=True) + # sqrt(var + eps) + denom_in = network.add_elementwise(var.get_output(0), eps_tensor, trt.ElementWiseOperation.SUM) + sqrt_l = network.add_unary(denom_in.get_output(0), trt.UnaryOperation.SQRT) + recip = network.add_unary(sqrt_l.get_output(0), trt.UnaryOperation.RECIP) + # normalized = (x - mean) / sqrt(var + eps) + normalized = network.add_elementwise( + centered.get_output(0), recip.get_output(0), trt.ElementWiseOperation.PROD + ) + # gamma * normalized + beta + gamma_t = add_constant(network, (1, hidden_size), gamma, dtype=np.float32) + scaled = network.add_elementwise( + normalized.get_output(0), gamma_t, trt.ElementWiseOperation.PROD + ) + beta_t = add_constant(network, (1, hidden_size), beta, dtype=np.float32) + result = network.add_elementwise(scaled.get_output(0), beta_t, trt.ElementWiseOperation.SUM) + result = result.get_output(0) + if need_cast: + result = _cast_back_to_trt_dtype(network, result, output_dtype) + return result + + +def add_gelu_new( + network: trt.INetworkDefinition, + inp: trt.ITensor, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """GELU (tanh approximation): 0.5*x*(1+tanh(sqrt(2/pi)*(x+0.044715*x^3))). + + Constants are cast to ``inp.dtype`` so the elementwise ops are valid in + a STRONGLY_TYPED network when ``inp`` is bf16 (storage np_dtype is + fp16, runtime trt_dtype is bfloat16) or any other non-matching combo. + """ + target_dtype = inp.dtype + const_shape = (1,) * max(1, len(tuple(inp.shape))) + + def _const(name, value): + c = add_constant(network, const_shape, np.array([value], dtype=np.float32), dtype=dtype) + return _cast_back_to_trt_dtype(network, c, target_dtype) + + # x^3 + x_sq = network.add_elementwise(inp, inp, trt.ElementWiseOperation.PROD) + x_cu = network.add_elementwise(x_sq.get_output(0), inp, trt.ElementWiseOperation.PROD) + # 0.044715 * x^3 + coeff = _const("coeff", 0.044715) + scaled_cube = network.add_elementwise(x_cu.get_output(0), coeff, trt.ElementWiseOperation.PROD) + # x + 0.044715 * x^3 + inner_sum = network.add_elementwise( + inp, scaled_cube.get_output(0), trt.ElementWiseOperation.SUM + ) + # sqrt(2/pi) * (x + 0.044715 * x^3) + sqrt_2_over_pi = _const("sqrt_2_over_pi", np.sqrt(2.0 / np.pi)) + tanh_arg = network.add_elementwise( + sqrt_2_over_pi, inner_sum.get_output(0), trt.ElementWiseOperation.PROD + ) + # tanh(...) + tanh_l = network.add_activation(tanh_arg.get_output(0), trt.ActivationType.TANH) + # 1 + tanh(...) + one = _const("one", 1.0) + one_plus_tanh = network.add_elementwise(one, tanh_l.get_output(0), trt.ElementWiseOperation.SUM) + # 0.5 * x + half = _const("half", 0.5) + half_x = network.add_elementwise(half, inp, trt.ElementWiseOperation.PROD) + # 0.5 * x * (1 + tanh(...)) + result = network.add_elementwise( + half_x.get_output(0), one_plus_tanh.get_output(0), trt.ElementWiseOperation.PROD + ) + return result.get_output(0) + + +def add_activation( + network: trt.INetworkDefinition, + inp: trt.ITensor, + activation_type: str, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """Dispatch activation by name: 'silu', 'gelu_new', 'gelu', 'relu', 'relu2'/'squared_relu'.""" + if activation_type in ("gelu_new", "gelu"): + return add_gelu_new(network, inp, dtype=dtype) + elif activation_type == "relu": + act = network.add_activation(inp, trt.ActivationType.RELU) + return act.get_output(0) + elif activation_type in ("relu2", "squared_relu"): + relu = network.add_activation(inp, trt.ActivationType.RELU) + sq = network.add_elementwise( + relu.get_output(0), relu.get_output(0), trt.ElementWiseOperation.PROD + ) + return sq.get_output(0) + elif activation_type == "silu": + sigmoid = network.add_activation(inp, trt.ActivationType.SIGMOID) + swish = network.add_elementwise(inp, sigmoid.get_output(0), trt.ElementWiseOperation.PROD) + return swish.get_output(0) + else: + raise ValueError(f"Unsupported activation: {activation_type}") + + +# --------------------------------------------------------------------------- +# Conv / Norm / Resize ops for segmentation and audio models +# --------------------------------------------------------------------------- + + +def add_conv2d( + network: trt.INetworkDefinition, + inp: trt.ITensor, + weight: np.ndarray, + bias: np.ndarray | None, + out_channels: int, + kernel_size: tuple[int, int], + stride: tuple[int, int] = (1, 1), + padding: tuple[int, int] = (0, 0), + groups: int = 1, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """2D convolution wrapper. + + Input: [N, C_in, H, W] + Weight: [C_out, C_in/groups, kH, kW] + Output: [N, C_out, H', W'] + """ + conv_w = trt.Weights(np.ascontiguousarray(weight, dtype=dtype)) + conv_b = trt.Weights() + if bias is not None: + conv_b = trt.Weights(np.ascontiguousarray(bias, dtype=dtype)) + + conv = network.add_convolution_nd( + inp, + num_output_maps=out_channels, + kernel_shape=kernel_size, + kernel=conv_w, + bias=conv_b, + ) + conv.stride_nd = stride + conv.padding_nd = padding + conv.num_groups = groups + return conv.get_output(0) + + +def add_batch_norm_2d( + network: trt.INetworkDefinition, + inp: trt.ITensor, + num_channels: int, + gamma: np.ndarray, + beta: np.ndarray, + running_mean: np.ndarray, + running_var: np.ndarray, + eps: float = 1e-5, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """Fused BatchNorm2d: gamma * (x - mean) / sqrt(var + eps) + beta. + + Input: [N, C, H, W] + Output: same shape + + FP32 precision boundary: when dtype != float32, casts to FP32 before + norm computation for numerical stability, then casts back. + """ + need_cast = dtype != np.float32 + output_dtype = inp.dtype + if need_cast: + inp = network.add_cast(inp, trt.float32).get_output(0) + # Fuse into scale + shift + scale = gamma / np.sqrt(running_var + eps) + shift = beta - running_mean * scale + + scale_t = add_constant( + network, + (1, num_channels, 1, 1), + scale.reshape(1, -1, 1, 1).astype(np.float32), + dtype=np.float32, + ) + shift_t = add_constant( + network, + (1, num_channels, 1, 1), + shift.reshape(1, -1, 1, 1).astype(np.float32), + dtype=np.float32, + ) + + scaled = network.add_elementwise(inp, scale_t, trt.ElementWiseOperation.PROD) + result = network.add_elementwise( + scaled.get_output(0), shift_t, trt.ElementWiseOperation.SUM + ).get_output(0) + if need_cast: + result = _cast_back_to_trt_dtype(network, result, output_dtype) + return result + + +def add_conv1d( + network: trt.INetworkDefinition, + inp: trt.ITensor, + weight: np.ndarray, + bias: np.ndarray | None, + out_channels: int, + kernel_size: int, + stride: int = 1, + padding: int = 0, + groups: int = 1, + dtype: np.dtype = np.float32, +) -> trt.ITensor: + """1D convolution via 2D convolution with height=1. + + Input: [N, C_in, L] + Weight: [C_out, C_in/groups, K] + Output: [N, C_out, L'] + """ + # Reshape to [N, C_in, 1, L] + n, c_in, length = inp.shape + reshape_in = network.add_shuffle(inp) + reshape_in.reshape_dims = (n, c_in, 1, length) + + # Weight: [C_out, C_in/groups, K] -> [C_out, C_in/groups, 1, K] + w_4d = weight.reshape(out_channels, -1, 1, kernel_size) + result = add_conv2d( + network, + reshape_in.get_output(0), + w_4d, + bias, + out_channels, + kernel_size=(1, kernel_size), + stride=(1, stride), + padding=(0, padding), + groups=groups, + dtype=dtype, + ) + + # Reshape back to [N, C_out, L'] + out_length = result.shape[3] + reshape_out = network.add_shuffle(result) + reshape_out.reshape_dims = (n, out_channels, out_length) + return reshape_out.get_output(0) + + +# Alias: add_gelu_tanh is the same as add_gelu_new (tanh approximation) +add_gelu_tanh = add_gelu_new + + +def add_attention_core( + network: trt.INetworkDefinition, + q_4d: trt.ITensor, + k_4d: trt.ITensor, + v_4d: trt.ITensor, + causal: bool = False, + mask: trt.ITensor | None = None, + scale: float | None = None, + fp32_accumulation: bool = False, +) -> trt.ITensor: + """Scaled dot-product attention via TRT native IAttention layer. + + Replaces the manual Q@K^T -> scale -> softmax -> @V chain. TRT 10 fuses + this into a single kernel when a compatible implementation is available; + decomposable=True ensures a correct fallback to primitives otherwise. + + NOTE: TRT IAttention computes raw BMM1 = Q @ K^T without any built-in + 1/sqrt(D) scaling. We pre-scale Q by 1/sqrt(D) so that the fused kernel + computes the standard scaled dot-product attention formula. + + Args: + q_4d: Query [B, H, q_seq, D]. + k_4d: Key [B, H, kv_seq, D]. + v_4d: Value [B, H, kv_seq, D]. + causal: Apply causal (autoregressive) mask. Mutually exclusive + with ``mask``. + mask: Optional additive float mask [B, H, q_seq, kv_seq] added + to scaled logits before softmax. Cannot be used with + causal=True. + scale: Optional Q pre-scale factor. Defaults to 1/sqrt(D). + fp32_accumulation: + Cast Q/K/V to FP32 before IAttention, then cast the context + back to the original Q dtype. TRT may still select a + Half-input fused MHA tactic after optimizing the casts, while + keeping the IAttention accumulation/output boundary in FP32. + + Returns: + Context tensor [B, H, q_seq, D]. + """ + output_dtype = q_4d.dtype + if fp32_accumulation and output_dtype != trt.float32: + q_4d = network.add_cast(q_4d, trt.float32).get_output(0) + k_4d = network.add_cast(k_4d, trt.float32).get_output(0) + v_4d = network.add_cast(v_4d, trt.float32).get_output(0) + if mask is not None and mask.dtype != trt.float32: + mask = network.add_cast(mask, trt.float32).get_output(0) + + # Pre-scale Q: TRT IAttention does not apply score scaling itself. + # Match the scale constant's dtype to Q's dtype: in strongly-typed networks + # a FP32 constant mixed with a FP16/BF16 Q causes add_elementwise to emit + # a type-mismatch error and produce a tensor with corrupted dimensions, + # which makes add_attention return None. + if scale is None: + head_dim = q_4d.shape[-1] + scale = float(1.0 / np.sqrt(head_dim)) if head_dim > 0 else 1.0 + # Use FP16 weights directly for FP16; BF16 has no numpy native type so + # create as FP32 and cast; FP32 falls through to the default. + scale_np_dtype = np.float16 if q_4d.dtype == trt.float16 else np.float32 + scale_t = add_constant(network, (1, 1, 1, 1), np.array([[[[scale]]]]), dtype=scale_np_dtype) + if q_4d.dtype == trt.bfloat16: + scale_t = network.add_cast(scale_t, trt.bfloat16).get_output(0) + q_scaled = network.add_elementwise(q_4d, scale_t, trt.ElementWiseOperation.PROD) + + attn = network.add_attention( + q_scaled.get_output(0), + k_4d, + v_4d, + trt.AttentionNormalizationOp.SOFTMAX, + causal, + ) + # Allow TRT to decompose into primitive ops when no fused kernel is + # available (e.g. unsupported head-dim or dtype). This guarantees + # correctness on any configuration at the cost of potential performance. + attn.decomposable = True + if mask is not None and not causal: + attn.mask = mask + return _cast_back_to_trt_dtype(network, attn.get_output(0), output_dtype) + + +# Backward-compatible name used by existing tests and call sites. +_add_attention_core = add_attention_core diff --git a/families/parakeet_tdt/model.py b/families/parakeet_tdt/model.py new file mode 100644 index 0000000000..3f051d108b --- /dev/null +++ b/families/parakeet_tdt/model.py @@ -0,0 +1,46 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Build the native Transformers Parakeet TDT checkpoint into owned sections.""" + +from pathlib import Path + +from .config import ParakeetTDTConfig + + +def build(request, writer): + required = { + "family": "parakeet_tdt", "task": "speech_transcription", "backend": "trt", + "tensor_parallel_size": 1, "context_parallel_size": 1, "max_batch_size": 1, + "max_sequence_length": None, "image_height": None, "image_width": None, + "video_num_frames": None, "fp32_layers": (), "dynamic_kv_cache": False, + "graph_transform": None, + } + for name, expected in required.items(): + if getattr(request, name) != expected: + raise ValueError(f"parakeet_tdt requires {name}={expected!r}") + if request.precision not in {"fp16", "fp32"}: + raise ValueError("parakeet_tdt supports precision=fp16 or fp32") + if request.quantization not in {None, "none"}: + raise ValueError("parakeet_tdt does not support quantization") + + model_dir = Path(request.model_dir) + config = ParakeetTDTConfig.from_dir(model_dir) + config.validate_supported_checkpoint() + for filename in ("model.safetensors", "tokenizer.json"): + if not (model_dir / filename).is_file(): + raise FileNotFoundError(f"parakeet_tdt requires {model_dir / filename}") + + from .engines import compile_engines + + plans, runtime = compile_engines( + model_dir, precision=request.precision, verbose=request.verbose, + ) + writer.set_header(family="parakeet_tdt", task=request.task, backend=request.backend) + writer.add_json("runtime.json", runtime) + for name, data in plans.items(): + writer.add_bytes(name, data) + for filename in ("tokenizer.json", "tokenizer_config.json", "special_tokens_map.json"): + path = model_dir / filename + if path.is_file(): + writer.add_bytes(filename, path.read_bytes()) diff --git a/families/parakeet_tdt/model_config.py b/families/parakeet_tdt/model_config.py new file mode 100644 index 0000000000..72d9d60f0a --- /dev/null +++ b/families/parakeet_tdt/model_config.py @@ -0,0 +1,97 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Family-private build configuration for Parakeet TDT.""" + +from __future__ import annotations + +import json +from dataclasses import dataclass, field +from pathlib import Path + + +@dataclass +class ModelConfig: + """Minimal engine-builder view of the Parakeet TDT configuration.""" + + model_type: str = "" + architectures: list[str] = field(default_factory=list) + vocab_size: int = 0 + hidden_size: int = 0 + intermediate_size: int = 0 + num_hidden_layers: int = 0 + num_attention_heads: int = 1 + num_key_value_heads: int = 1 + rms_norm_eps: float = 1e-5 + rope_theta: float = 10000.0 + bos_token_id: int = -1 + eos_token_id: int = -1 + pad_token_id: int = -1 + tie_word_embeddings: bool = False + max_position_embeddings: int = 8192 + hidden_act: str = "" + _head_dim: int = 0 + raw: dict = field(default_factory=dict, repr=False) + + @property + def head_dim(self) -> int: + if self._head_dim > 0: + return self._head_dim + return self.hidden_size // self.num_attention_heads if self.num_attention_heads > 0 else 0 + + @property + def attention_size(self) -> int: + return self.num_attention_heads * self.head_dim + + @staticmethod + def from_json(text: str) -> "ModelConfig": + raw = json.loads(text) + encoder = raw.get("encoder_config") or {} + hidden_size = int(raw.get("hidden_size") or raw.get("decoder_hidden_size") or 0) + num_heads = int(raw.get("num_attention_heads") or 1) + return ModelConfig( + model_type=str(raw.get("model_type", "")), + architectures=[str(value) for value in raw.get("architectures", ())], + vocab_size=int(raw.get("vocab_size", 0)), + hidden_size=hidden_size, + intermediate_size=int(raw.get("intermediate_size") or hidden_size * 4), + num_hidden_layers=int(raw.get("num_hidden_layers") or raw.get("num_decoder_layers") or 0), + num_attention_heads=num_heads, + num_key_value_heads=int(raw.get("num_key_value_heads") or num_heads), + rms_norm_eps=float(raw.get("rms_norm_eps", 1e-5)), + rope_theta=float(raw.get("rope_theta", 10000.0)), + bos_token_id=int(raw.get("bos_token_id", -1) if raw.get("bos_token_id") is not None else -1), + eos_token_id=int(raw.get("eos_token_id", -1) if raw.get("eos_token_id") is not None else -1), + pad_token_id=int(raw.get("pad_token_id", -1) if raw.get("pad_token_id") is not None else -1), + tie_word_embeddings=bool(raw.get("tie_word_embeddings", False)), + max_position_embeddings=int(raw.get("max_position_embeddings") or encoder.get("max_position_embeddings") or 8192), + hidden_act=str(raw.get("hidden_act", "")), + _head_dim=int(raw.get("head_dim", 0)), + raw=raw, + ) + + @classmethod + def create_tiny(cls, model_type: str, **overrides) -> "ModelConfig": + defaults = { + "model_type": model_type, + "vocab_size": 32, + "hidden_size": 16, + "intermediate_size": 32, + "num_hidden_layers": 2, + "num_attention_heads": 4, + "num_key_value_heads": 4, + "rms_norm_eps": 1e-6, + "rope_theta": 10000.0, + "max_position_embeddings": 128, + } + defaults.update(overrides) + return cls.from_json(json.dumps(defaults)) + + @staticmethod + def from_dir(model_dir: str | Path) -> "ModelConfig": + config_path = Path(model_dir) / "config.json" + if not config_path.is_file(): + raise FileNotFoundError( + f"Parakeet TDT model directory is missing config.json: {config_path}" + ) + return ModelConfig.from_json(config_path.read_text(encoding="utf-8")) diff --git a/families/parakeet_tdt/requirements.txt b/families/parakeet_tdt/requirements.txt new file mode 100644 index 0000000000..df14dad25e --- /dev/null +++ b/families/parakeet_tdt/requirements.txt @@ -0,0 +1,2 @@ +librosa>=0.11.0 +safetensors diff --git a/families/parakeet_tdt/support.py b/families/parakeet_tdt/support.py new file mode 100644 index 0000000000..b3f825e38b --- /dev/null +++ b/families/parakeet_tdt/support.py @@ -0,0 +1,12 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from tensorrt_model_connect.model_support import family_support + +describe = family_support( + model_types=("parakeet_tdt",), + architectures=("ParakeetForTDT",), + tasks=("speech_transcription",), + default_task="speech_transcription", + default_precision="fp32", +) diff --git a/families/parakeet_tdt/tests/README.md b/families/parakeet_tdt/tests/README.md new file mode 100644 index 0000000000..bf397d7e40 --- /dev/null +++ b/families/parakeet_tdt/tests/README.md @@ -0,0 +1,11 @@ +# CPU migration tests + +`config.json` is NVIDIA's configuration from +[`nvidia/parakeet-tdt-0.6b-v3`](https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3/blob/541d1f99c6b0c3cd0b11a95167540bb8edefd82b/config.json), +revision `541d1f99c6b0c3cd0b11a95167540bb8edefd82b`, retrieved September 18, 2026. +The publisher lists the checkpoint under CC BY 4.0. No model weights are included. + +The bundle-composition tests replace TensorRT compilation with byte payloads. +They exercise the real BuildRequest, family dispatch, configuration validation, +and BundleWriter. They do not establish engine validity, numerical equivalence, +transcript quality, GPU execution, or performance. diff --git a/families/parakeet_tdt/tests/config.json b/families/parakeet_tdt/tests/config.json new file mode 100644 index 0000000000..969c65410a --- /dev/null +++ b/families/parakeet_tdt/tests/config.json @@ -0,0 +1,49 @@ +{ + "architectures": [ + "ParakeetForTDT" + ], + "blank_token_id": 8192, + "decoder_hidden_size": 640, + "dtype": "float32", + "durations": [ + 0, + 1, + 2, + 3, + 4 + ], + "encoder_config": { + "activation_dropout": 0.1, + "attention_bias": false, + "attention_dropout": 0.1, + "conv_kernel_size": 9, + "convolution_bias": false, + "dropout": 0.1, + "dropout_positions": 0.0, + "hidden_act": "silu", + "hidden_size": 1024, + "initializer_range": 0.02, + "intermediate_size": 4096, + "layerdrop": 0.1, + "max_position_embeddings": 5000, + "model_type": "parakeet_encoder", + "num_attention_heads": 8, + "num_hidden_layers": 24, + "num_key_value_heads": 8, + "num_mel_bins": 128, + "scale_input": false, + "subsampling_conv_channels": 256, + "subsampling_conv_kernel_size": 3, + "subsampling_conv_stride": 2, + "subsampling_factor": 8 + }, + "hidden_act": "relu", + "initializer_range": 0.02, + "is_encoder_decoder": true, + "max_symbols_per_step": 10, + "model_type": "parakeet_tdt", + "num_decoder_layers": 2, + "pad_token_id": 2, + "transformers_version": "5.6.0.dev0", + "vocab_size": 8193 +} diff --git a/families/parakeet_tdt/tests/test_build.py b/families/parakeet_tdt/tests/test_build.py new file mode 100644 index 0000000000..703c344888 --- /dev/null +++ b/families/parakeet_tdt/tests/test_build.py @@ -0,0 +1,174 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""CPU checks for dispatch and bundle composition, not TensorRT graph proof.""" + +import importlib +import json +import struct +import sys +from dataclasses import replace +from pathlib import Path +from types import SimpleNamespace + +import pytest + +from tensorrt_model_connect.build import BuildRequest +from tensorrt_model_connect.bundle_writer import BundleWriter +from tensorrt_model_connect.model_support import ModelMetadata, resolve_family + + +def request(tmp_path, **changes): + base = BuildRequest( + model_dir=tmp_path / "checkpoint", output_path=tmp_path / "model.bundle", + family="parakeet_tdt", task="speech_transcription", precision="fp16", + ) + return replace(base, **changes) + + +@pytest.mark.parametrize("config", [ + {"model_type": "parakeet_tdt"}, + {"architectures": ["ParakeetForTDT"]}, +]) +def test_discovery_has_one_owner(config): + family, support = resolve_family(ModelMetadata(config, {})) + assert family == "parakeet_tdt" + assert support.tasks == ("speech_transcription",) + assert support.default_task == "speech_transcription" + + +@pytest.mark.parametrize("config", [ + {"model_type": "parakeet_ctc"}, {"model_type": "parakeet"}, + {"architectures": ["ParakeetForRNNT"]}, {}, +]) +def test_discovery_does_not_claim_other_parakeet_topologies(config): + describe = importlib.import_module("families.parakeet_tdt.support").describe + assert describe(ModelMetadata(config, {}, ("parakeet.nemo",))) is None + + +@pytest.mark.parametrize(("option", "value"), [ + ("family", "whisper"), ("task", "transcription"), ("backend", "trt_rtx"), + ("precision", "bf16"), ("tensor_parallel_size", 2), + ("context_parallel_size", 2), ("max_batch_size", 2), + ("max_sequence_length", 128), ("image_height", 224), ("image_width", 224), + ("video_num_frames", 8), ("quantization", "int8"), + ("fp32_layers", (0,)), ("dynamic_kv_cache", True), + ("graph_transform", lambda *args: None), +]) +def test_unsupported_options_fail_before_checkpoint_or_engine_loading(tmp_path, option, value): + build = importlib.import_module("families.parakeet_tdt.model").build + with pytest.raises(ValueError, match=option): + build(request(tmp_path, **{option: value}), BundleWriter(tmp_path / "bad.bundle")) + assert not (tmp_path / "bad.bundle").exists() + + +def test_missing_native_checkpoint_does_not_fall_back_to_nemo(tmp_path): + build = importlib.import_module("families.parakeet_tdt.model").build + req = request(tmp_path) + req.model_dir.mkdir() + (req.model_dir / "legacy.nemo").write_bytes(b"not a supported input") + with pytest.raises(FileNotFoundError, match="config.json"): + build(req, BundleWriter(req.output_path)) + + +@pytest.mark.parametrize("precision", ["fp16", "fp32"]) +def test_build_packages_owned_sections_without_mutating_checkpoint(tmp_path, monkeypatch, precision): + build = importlib.import_module("families.parakeet_tdt.model").build + req = request(tmp_path, precision=precision) + req.model_dir.mkdir() + fixture = Path(__file__).with_name("config.json") + (req.model_dir / "config.json").write_bytes(fixture.read_bytes()) + (req.model_dir / "model.safetensors").write_bytes(b"weights validated in separate tests") + (req.model_dir / "tokenizer.json").write_text('{"model":{"type":"Unigram"}}') + before = {p.name: p.read_bytes() for p in req.model_dir.iterdir()} + seen = [] + + def compile_engines(model_dir, *, precision, verbose): + seen.append((model_dir, precision, verbose)) + return {"encoder.plan": b"encoder", "predictor.plan": b"predictor", + "joint.plan": b"joint", "mel_filterbank": b"mel"}, {"tdt_blank_id": 8192} + + monkeypatch.setitem(sys.modules, "families.parakeet_tdt.engines", + SimpleNamespace(compile_engines=compile_engines)) + writer = BundleWriter(req.output_path) + build(req, writer) + writer.finish() + data = req.output_path.read_bytes() + size = struct.unpack_from(" Date: Fri, 18 Sep 2026 09:08:21 -0700 Subject: [PATCH 09/16] refactor(parakeet): port native audio contracts Add a Task-owned PCM boundary with finite input, channel, rate, and fixed-window validation. Port family-local resampling, mel helpers, and TDT policy tests without changing their assertions. CPU native suites and ASan/UBSan audio input checks pass. Factory, execution pipeline, E2E, and GPU qualification remain pending; keep this migration branch unpublished. Signed-off-by: JiaxinD --- .../parakeet_tdt/runtime/audio_helpers.cpp | 606 ++++++++++++++++++ families/parakeet_tdt/runtime/audio_helpers.h | 90 +++ families/parakeet_tdt/runtime/audio_input.h | 55 ++ families/parakeet_tdt/runtime/resampler.cpp | 146 +++++ families/parakeet_tdt/runtime/resampler.h | 19 + families/parakeet_tdt/runtime/tdt_config.h | 125 ++++ families/parakeet_tdt/tests/README.md | 14 + .../tests/cpp/test_audio_helpers.cpp | 264 ++++++++ .../tests/cpp/test_audio_input.cpp | 79 +++ .../tests/cpp/test_decode_policy.cpp | 111 ++++ families/parakeet_tdt/tests/test_native.py | 33 + 11 files changed, 1542 insertions(+) create mode 100644 families/parakeet_tdt/runtime/audio_helpers.cpp create mode 100644 families/parakeet_tdt/runtime/audio_helpers.h create mode 100644 families/parakeet_tdt/runtime/audio_input.h create mode 100644 families/parakeet_tdt/runtime/resampler.cpp create mode 100644 families/parakeet_tdt/runtime/resampler.h create mode 100644 families/parakeet_tdt/runtime/tdt_config.h create mode 100644 families/parakeet_tdt/tests/cpp/test_audio_helpers.cpp create mode 100644 families/parakeet_tdt/tests/cpp/test_audio_input.cpp create mode 100644 families/parakeet_tdt/tests/cpp/test_decode_policy.cpp create mode 100644 families/parakeet_tdt/tests/test_native.py diff --git a/families/parakeet_tdt/runtime/audio_helpers.cpp b/families/parakeet_tdt/runtime/audio_helpers.cpp new file mode 100644 index 0000000000..a568d71212 --- /dev/null +++ b/families/parakeet_tdt/runtime/audio_helpers.cpp @@ -0,0 +1,606 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "audio_helpers.h" + +#include "families/parakeet_tdt/runtime/resampler.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace trtmc { +namespace tdt { + +namespace { + +std::vector make_hann_window(int32_t length) { + std::vector window(length); + const double pi2 = 2.0 * 3.14159265358979323846; + for (int32_t i = 0; i < length; ++i) { + window[i] = static_cast( + 0.5 * (1.0 - std::cos(pi2 * static_cast(i) / static_cast(length)))); + } + return window; +} + +std::vector make_symmetric_hann_window(int32_t length) { + std::vector window(length); + if (length <= 1) { + return window; + } + const double pi2 = 2.0 * 3.14159265358979323846; + for (int32_t i = 0; i < length; ++i) { + window[i] = static_cast( + 0.5 * (1.0 - std::cos(pi2 * static_cast(i) / static_cast(length - 1)))); + } + return window; +} + +std::vector make_centered_stft_window(int32_t n_fft, int32_t win_length) { + std::vector window(static_cast(n_fft), 0.0F); + const auto inner = make_symmetric_hann_window(win_length); + const int32_t offset = std::max(0, (n_fft - win_length) / 2); + for (int32_t i = 0; i < win_length && offset + i < n_fft; ++i) { + window[static_cast(offset + i)] = inner[static_cast(i)]; + } + return window; +} + +void rfft_power_direct(const float* x, int32_t n, int32_t n_out, float* power_out) { + const double pi2 = 2.0 * 3.14159265358979323846; + for (int32_t k = 0; k < n_out; ++k) { + double re = 0.0; + double im = 0.0; + const double w = pi2 * static_cast(k) / static_cast(n); + for (int32_t t = 0; t < n; ++t) { + const double angle = w * static_cast(t); + re += static_cast(x[t]) * std::cos(angle); + im -= static_cast(x[t]) * std::sin(angle); + } + power_out[k] = static_cast(re * re + im * im); + } +} + +bool is_power_of_two(int32_t value) { + return value > 0 && (value & (value - 1)) == 0; +} + +void rfft_power_radix2(const float* x, int32_t n, int32_t n_out, float* power_out, + std::vector>& workspace, + const std::vector>& twiddles) { + workspace.resize(static_cast(n)); + for (int32_t i = 0; i < n; ++i) { + workspace[static_cast(i)] = + std::complex(static_cast(x[i]), 0.0); + } + + for (int32_t i = 1, j = 0; i < n; ++i) { + int32_t bit = n >> 1; + for (; (j & bit) != 0; bit >>= 1) { + j ^= bit; + } + j ^= bit; + if (i < j) { + std::swap(workspace[static_cast(i)], + workspace[static_cast(j)]); + } + } + + for (int32_t length = 2; length <= n; length <<= 1) { + const int32_t half = length / 2; + for (int32_t offset = 0; offset < n; offset += length) { + for (int32_t i = 0; i < half; ++i) { + const auto even = workspace[static_cast(offset + i)]; + const auto twiddle = twiddles[static_cast(i * n / length)]; + const auto odd = workspace[static_cast(offset + i + half)] * twiddle; + workspace[static_cast(offset + i)] = even + odd; + workspace[static_cast(offset + i + half)] = even - odd; + } + } + } + + const int32_t bins = std::min(n_out, n / 2 + 1); + for (int32_t k = 0; k < bins; ++k) { + power_out[k] = static_cast(std::norm(workspace[static_cast(k)])); + } + std::fill(power_out + bins, power_out + n_out, 0.0F); +} + +class RfftPowerPlan { + public: + explicit RfftPowerPlan(int32_t n) : n_(n) { + if (is_power_of_two(n_)) { + const double pi2 = 2.0 * 3.14159265358979323846; + twiddles_.reserve(static_cast(n_ / 2)); + for (int32_t k = 0; k < n_ / 2; ++k) { + const double angle = -pi2 * static_cast(k) / static_cast(n_); + twiddles_.emplace_back(std::cos(angle), std::sin(angle)); + } + } + } + + void execute(const float* input, int32_t n_out, float* power_out) { + if (is_power_of_two(n_)) { + rfft_power_radix2(input, n_, n_out, power_out, workspace_, twiddles_); + return; + } + rfft_power_direct(input, n_, n_out, power_out); + } + + private: + int32_t n_{0}; + std::vector> workspace_; + std::vector> twiddles_; +}; + +std::vector build_center_padded_audio(const float* samples, int32_t n_samples, + int32_t chunk_length_s, int32_t sample_rate, + int32_t n_fft, float preemphasis) { + const int32_t audio_length = chunk_length_s * sample_rate; + std::vector audio_padded(audio_length, 0.0F); + const int32_t copy_len = std::min(n_samples, audio_length); + if (copy_len > 0) { + if (preemphasis != 0.0F) { + audio_padded[0] = samples[0]; + for (int32_t i = 1; i < copy_len; ++i) { + audio_padded[static_cast(i)] = + samples[i] - preemphasis * samples[i - 1]; + } + } else { + std::memcpy(audio_padded.data(), samples, copy_len * sizeof(float)); + } + } + + const int32_t pad_size = n_fft / 2; + const int32_t padded_length = pad_size + audio_length + pad_size; + std::vector padded(padded_length, 0.0F); + std::memcpy(padded.data() + pad_size, audio_padded.data(), audio_length * sizeof(float)); + return padded; +} + +std::vector make_stft_window(const MelSpectrogramOptions& options) { + const int32_t win_length = options.win_length > 0 ? options.win_length : options.n_fft; + if (options.center_window_in_fft) { + return make_centered_stft_window(options.n_fft, win_length); + } + if (options.symmetric_window) { + return make_symmetric_hann_window(options.n_fft); + } + return make_hann_window(options.n_fft); +} + +std::vector compute_mel_spectrogram(const std::vector& padded, + const std::vector& window, + const float* mel_filters, int32_t n_fft, + int32_t hop_length, int32_t n_freq_bins, + int32_t n_mel_bins, int32_t frames_to_compute, + int32_t& n_frames_raw) { + n_frames_raw = 1 + (static_cast(padded.size()) - n_fft) / hop_length; + std::vector mel_spec(static_cast(n_mel_bins) * n_frames_raw, 0.0F); + std::vector windowed(n_fft); + std::vector frame_power(n_freq_bins); + std::vector frame_mel(n_mel_bins); + RfftPowerPlan fft_plan(n_fft); + + const int32_t computed_frames = std::clamp(frames_to_compute, 0, n_frames_raw); + for (int32_t t = 0; t < computed_frames; ++t) { + const int32_t start = t * hop_length; + for (int32_t i = 0; i < n_fft; ++i) { + windowed[static_cast(i)] = + padded[static_cast(start + i)] * window[static_cast(i)]; + } + + fft_plan.execute(windowed.data(), n_freq_bins, frame_power.data()); + + std::fill(frame_mel.begin(), frame_mel.end(), 0.0F); + for (int32_t f = 0; f < n_freq_bins; ++f) { + const float p = frame_power[static_cast(f)]; + if (p == 0.0F) { + continue; + } + const float* filter_row = mel_filters + static_cast(f) * n_mel_bins; + for (int32_t m = 0; m < n_mel_bins; ++m) { + frame_mel[static_cast(m)] += + p * filter_row[static_cast(m)]; + } + } + for (int32_t m = 0; m < n_mel_bins; ++m) { + mel_spec[static_cast(m) * n_frames_raw + t] = + frame_mel[static_cast(m)]; + } + } + return mel_spec; +} + +void normalize_log_mel_inplace(std::vector& mel_spec) { + float global_max = -1e10F; + for (float& value : mel_spec) { + value = std::log10(std::max(value, 1e-10F)); + if (value > global_max) { + global_max = value; + } + } + + const float floor = global_max - 8.0F; + for (float& value : mel_spec) { + value = std::max(value, floor); + value = (value + 4.0F) / 4.0F; + } +} + +void natural_log_mel_inplace(std::vector& mel_spec) { + constexpr float kLogGuard = 5.960464477539063e-08F; + for (float& value : mel_spec) { + value = std::log(value + kLogGuard); + } +} + +void normalize_per_feature_inplace(std::vector& mel_spec, int32_t n_mel_bins, + int32_t n_frames_raw, int32_t valid_frames) { + if (n_mel_bins <= 0 || n_frames_raw <= 0) { + return; + } + + valid_frames = std::clamp(valid_frames, 0, n_frames_raw); + if (valid_frames <= 0) { + std::fill(mel_spec.begin(), mel_spec.end(), 0.0F); + return; + } + + constexpr float kStdGuard = 1e-5F; + for (int32_t m = 0; m < n_mel_bins; ++m) { + const std::size_t base = static_cast(m) * n_frames_raw; + + double mean = 0.0; + for (int32_t t = 0; t < valid_frames; ++t) + mean += static_cast(mel_spec[base + static_cast(t)]); + mean /= static_cast(valid_frames); + + if (valid_frames == 1) { + mel_spec[base] = 0.0F; + } else { + double var = 0.0; + for (int32_t t = 0; t < valid_frames; ++t) { + const double diff = + static_cast(mel_spec[base + static_cast(t)]) - mean; + var += diff * diff; + } + const double stddev = + std::sqrt(var / static_cast(valid_frames - 1)) + kStdGuard; + for (int32_t t = 0; t < valid_frames; ++t) { + const std::size_t idx = base + static_cast(t); + mel_spec[idx] = + static_cast((static_cast(mel_spec[idx]) - mean) / stddev); + } + } + + for (int32_t t = valid_frames; t < n_frames_raw; ++t) + mel_spec[base + static_cast(t)] = 0.0F; + } +} + +void apply_log_scale_inplace(std::vector& mel_spec, MelLogScale log_scale) { + switch (log_scale) { + case MelLogScale::kNaturalLog: + natural_log_mel_inplace(mel_spec); + break; + case MelLogScale::kLog10Normalized: + normalize_log_mel_inplace(mel_spec); + break; + } +} + +std::vector trim_last_frame(std::vector mel_spec, int32_t n_mel_bins, + int32_t n_frames_raw, int32_t& n_frames_out) { + n_frames_out = n_frames_raw; + if (n_frames_raw <= 1) { + return mel_spec; + } + + n_frames_out = n_frames_raw - 1; + std::vector trimmed(static_cast(n_mel_bins) * n_frames_out); + for (int32_t m = 0; m < n_mel_bins; ++m) { + std::memcpy(trimmed.data() + static_cast(m) * n_frames_out, + mel_spec.data() + static_cast(m) * n_frames_raw, + n_frames_out * sizeof(float)); + } + return trimmed; +} + +} // namespace + +namespace detail { + +std::vector rfft_power(const std::vector& input) { + const int32_t n = static_cast(input.size()); + const int32_t n_out = n / 2 + 1; + std::vector power(static_cast(n_out), 0.0F); + if (n > 0) { + RfftPowerPlan plan(n); + plan.execute(input.data(), n_out, power.data()); + } + return power; +} + +} // namespace detail + +class IncrementalMelSpectrogram::Impl { + public: + Impl(const float* mel_filters, int32_t n_freq_bins, int32_t n_mel_bins, + MelSpectrogramOptions options, int32_t input_sample_rate) + : options_(std::move(options)), input_sample_rate_(input_sample_rate), + n_freq_bins_(n_freq_bins), n_mel_bins_(n_mel_bins), window_(make_stft_window(options_)), + fft_plan_(options_.n_fft), windowed_(static_cast(options_.n_fft)), + frame_power_(static_cast(n_freq_bins)), + frame_mel_(static_cast(n_mel_bins)) { + if (mel_filters == nullptr || n_freq_bins != options_.n_fft / 2 + 1 || n_mel_bins <= 0) { + throw std::invalid_argument("incremental TDT mel requires a complete filterbank"); + } + if (input_sample_rate_ <= 0 || options_.sample_rate <= 0 || options_.n_fft <= 0 || + options_.hop_length <= 0) { + throw std::invalid_argument("incremental TDT mel requires positive dimensions"); + } + if (options_.log_scale != MelLogScale::kNaturalLog || options_.normalize_per_feature) { + throw std::invalid_argument( + "incremental TDT mel only supports natural-log features without normalization"); + } + mel_filters_.assign(mel_filters, + mel_filters + static_cast(n_freq_bins_) * n_mel_bins_); + } + + void accept_audio(const float* samples, int32_t n_samples) { + if (n_samples < 0 || (n_samples > 0 && samples == nullptr)) { + throw std::invalid_argument("incremental TDT mel received invalid audio"); + } + if (n_samples == 0) { + return; + } + raw_audio_.insert(raw_audio_.end(), samples, samples + n_samples); + } + + int32_t target_sample_count() const { + const int64_t converted = + static_cast(raw_audio_.size()) * options_.sample_rate / input_sample_rate_; + const int64_t chunk_limit = + static_cast(options_.chunk_length_s) * options_.sample_rate; + return static_cast(std::min(converted, chunk_limit)); + } + + int32_t stable_target_sample_count(bool final) const { + if (final || input_sample_rate_ == options_.sample_rate) { + return target_sample_count(); + } + constexpr int32_t kResampleHalfTaps = 16; + const int64_t stable_source = + std::max(0, static_cast(raw_audio_.size()) - kResampleHalfTaps); + const int64_t stable_target = stable_source * options_.sample_rate / input_sample_rate_; + return static_cast(std::min(stable_target, target_sample_count())); + } + + int32_t available_frames() const { return target_sample_count() / options_.hop_length; } + + void ensure_resampled_samples(int32_t required_samples, bool final) { + if (!final && required_samples > stable_target_sample_count(false)) { + throw std::runtime_error( + "incremental TDT mel requested samples before resampler lookahead was ready"); + } + const int32_t bounded_required = std::min(required_samples, target_sample_count()); + const int32_t start = static_cast(resampled_audio_.size()); + if (bounded_required <= start) { + return; + } + auto next = resample_linear_range( + raw_audio_.data(), static_cast(raw_audio_.size()), input_sample_rate_, + options_.sample_rate, start, bounded_required - start); + resampled_audio_.insert(resampled_audio_.end(), next.begin(), next.end()); + } + + float preemphasized_sample(int32_t audio_index) const { + if (audio_index < 0 || audio_index >= static_cast(resampled_audio_.size())) { + return 0.0F; + } + const float current = resampled_audio_[static_cast(audio_index)]; + if (options_.preemphasis == 0.0F || audio_index == 0) { + return current; + } + return current - + options_.preemphasis * resampled_audio_[static_cast(audio_index - 1)]; + } + + void compute_frame(int32_t frame) { + const int32_t pad_size = options_.n_fft / 2; + const int32_t frame_start = frame * options_.hop_length - pad_size; + for (int32_t i = 0; i < options_.n_fft; ++i) { + windowed_[static_cast(i)] = + preemphasized_sample(frame_start + i) * window_[static_cast(i)]; + } + fft_plan_.execute(windowed_.data(), n_freq_bins_, frame_power_.data()); + + std::fill(frame_mel_.begin(), frame_mel_.end(), 0.0F); + for (int32_t f = 0; f < n_freq_bins_; ++f) { + const float power = frame_power_[static_cast(f)]; + const float* filter_row = + mel_filters_.data() + static_cast(f) * n_mel_bins_; + for (int32_t m = 0; m < n_mel_bins_; ++m) { + frame_mel_[static_cast(m)] += + power * filter_row[static_cast(m)]; + } + } + constexpr float kLogGuard = 5.960464477539063e-08F; + for (float value : frame_mel_) { + frames_.push_back(std::log(value + kLogGuard)); + } + } + + void ensure_frames(int32_t end_frame, bool final) { + if (end_frame < 0 || end_frame > available_frames()) { + throw std::out_of_range("incremental TDT mel frame request exceeds available audio"); + } + const int32_t current_frames = frame_count(); + if (end_frame <= current_frames) { + return; + } + const int32_t last_frame = end_frame - 1; + const int32_t required_samples = + last_frame * options_.hop_length + options_.n_fft - options_.n_fft / 2; + ensure_resampled_samples(required_samples, final); + for (int32_t frame = current_frames; frame < end_frame; ++frame) { + compute_frame(frame); + } + } + + void reset() { + raw_audio_.clear(); + resampled_audio_.clear(); + frames_.clear(); + } + + int32_t frame_count() const { + return static_cast(frames_.size() / static_cast(n_mel_bins_)); + } + + int32_t n_mels() const { return n_mel_bins_; } + + float value(int32_t mel_bin, int32_t frame) const { + if (mel_bin < 0 || mel_bin >= n_mel_bins_ || frame < 0 || frame >= frame_count()) { + throw std::out_of_range("incremental TDT mel feature index is out of range"); + } + return frames_[static_cast(frame) * n_mel_bins_ + mel_bin]; + } + + IncrementalMelStats stats() const { + return {static_cast(raw_audio_.size()), + static_cast(resampled_audio_.size()), frame_count()}; + } + + MelSpectrogramOptions options_; + int32_t input_sample_rate_{0}; + int32_t n_freq_bins_{0}; + int32_t n_mel_bins_{0}; + std::vector mel_filters_; + std::vector window_; + RfftPowerPlan fft_plan_; + std::vector raw_audio_; + std::vector resampled_audio_; + std::vector frames_; + std::vector windowed_; + std::vector frame_power_; + std::vector frame_mel_; +}; + +IncrementalMelSpectrogram::IncrementalMelSpectrogram(const float* mel_filters, int32_t n_freq_bins, + int32_t n_mel_bins, + MelSpectrogramOptions options, + int32_t input_sample_rate) + : impl_(std::make_unique(mel_filters, n_freq_bins, n_mel_bins, std::move(options), + input_sample_rate)) {} + +IncrementalMelSpectrogram::~IncrementalMelSpectrogram() = default; +IncrementalMelSpectrogram::IncrementalMelSpectrogram(IncrementalMelSpectrogram&&) noexcept = + default; +IncrementalMelSpectrogram& +IncrementalMelSpectrogram::operator=(IncrementalMelSpectrogram&&) noexcept = default; + +void IncrementalMelSpectrogram::accept_audio(const float* samples, int32_t n_samples) { + impl_->accept_audio(samples, n_samples); +} + +void IncrementalMelSpectrogram::ensure_frames(int32_t end_frame, bool final) { + impl_->ensure_frames(end_frame, final); +} + +void IncrementalMelSpectrogram::reset() { + impl_->reset(); +} + +int32_t IncrementalMelSpectrogram::available_frames() const { + return impl_->available_frames(); +} + +int32_t IncrementalMelSpectrogram::stable_target_sample_count(bool final) const { + return impl_->stable_target_sample_count(final); +} + +int32_t IncrementalMelSpectrogram::frame_count() const { + return impl_->frame_count(); +} + +int32_t IncrementalMelSpectrogram::n_mels() const { + return impl_->n_mels(); +} + +float IncrementalMelSpectrogram::value(int32_t mel_bin, int32_t frame) const { + return impl_->value(mel_bin, frame); +} + +IncrementalMelStats IncrementalMelSpectrogram::stats() const { + return impl_->stats(); +} + +MelResult extract_configured_mel_spectrogram(const float* samples, int32_t n_samples, + const float* mel_filters, int32_t n_freq_bins, + int32_t n_mel_bins, + const MelSpectrogramOptions& options) { + const int32_t expected_freq_bins = options.n_fft / 2 + 1; + const int32_t freq_bins = n_freq_bins == expected_freq_bins ? n_freq_bins : expected_freq_bins; + const int32_t chunk_samples = options.chunk_length_s * options.sample_rate; + const int32_t valid_audio = std::min(std::max(n_samples, 0), chunk_samples); + const int32_t pad_size = options.n_fft / 2; + const int32_t frames_to_compute = valid_audio > 0 && options.hop_length > 0 + ? 1 + (pad_size + valid_audio - 1) / options.hop_length + : 0; + const std::vector padded = + build_center_padded_audio(samples, n_samples, options.chunk_length_s, options.sample_rate, + options.n_fft, options.preemphasis); + + int32_t n_frames_raw = 0; + std::vector mel_spec = compute_mel_spectrogram( + padded, make_stft_window(options), mel_filters, options.n_fft, options.hop_length, + freq_bins, n_mel_bins, frames_to_compute, n_frames_raw); + apply_log_scale_inplace(mel_spec, options.log_scale); + if (options.normalize_per_feature) { + const int32_t valid_frames = + (options.hop_length > 0) ? (n_samples / options.hop_length) : 0; + normalize_per_feature_inplace(mel_spec, n_mel_bins, n_frames_raw, valid_frames); + } + + int32_t n_frames_out = 0; + mel_spec = trim_last_frame(std::move(mel_spec), n_mel_bins, n_frames_raw, n_frames_out); + + MelResult result; + result.data = std::move(mel_spec); + result.n_mels = n_mel_bins; + result.n_frames = n_frames_out; + return result; +} + +MelResult extract_tdt_mel_spectrogram(const float* samples, int32_t n_samples, + const float* mel_filters, int32_t n_freq_bins, + int32_t n_mel_bins, int32_t n_fft, int32_t win_length, + int32_t hop_length, int32_t chunk_length_s, + int32_t sample_rate, float preemphasis) { + MelSpectrogramOptions options; + options.n_fft = n_fft; + options.win_length = win_length; + options.hop_length = hop_length; + options.chunk_length_s = chunk_length_s; + options.sample_rate = sample_rate; + options.symmetric_window = true; + options.center_window_in_fft = true; + options.preemphasis = preemphasis; + options.log_scale = MelLogScale::kNaturalLog; + options.normalize_per_feature = true; + return extract_configured_mel_spectrogram(samples, n_samples, mel_filters, n_freq_bins, + n_mel_bins, options); +} + +} // namespace tdt +} // namespace trtmc diff --git a/families/parakeet_tdt/runtime/audio_helpers.h b/families/parakeet_tdt/runtime/audio_helpers.h new file mode 100644 index 0000000000..40958b739a --- /dev/null +++ b/families/parakeet_tdt/runtime/audio_helpers.h @@ -0,0 +1,90 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include +#include +#include + +namespace trtmc { +namespace tdt { + +struct MelResult { + std::vector data; // [n_mels, n_frames] row-major + int32_t n_mels{0}; + int32_t n_frames{0}; +}; + +enum class MelLogScale { + kLog10Normalized, + kNaturalLog, +}; + +struct MelSpectrogramOptions { + int32_t n_fft{400}; + int32_t win_length{0}; + int32_t hop_length{160}; + int32_t chunk_length_s{30}; + int32_t sample_rate{16000}; + bool symmetric_window{false}; + bool center_window_in_fft{false}; + float preemphasis{0.0F}; + MelLogScale log_scale{MelLogScale::kLog10Normalized}; + bool normalize_per_feature{false}; +}; + +namespace detail { + +std::vector rfft_power(const std::vector& input); + +} // namespace detail + +struct IncrementalMelStats { + int64_t accepted_source_samples{0}; + int64_t generated_resampled_samples{0}; + int64_t computed_mel_frames{0}; +}; + +class IncrementalMelSpectrogram { + public: + IncrementalMelSpectrogram(const float* mel_filters, int32_t n_freq_bins, int32_t n_mel_bins, + MelSpectrogramOptions options, int32_t input_sample_rate); + ~IncrementalMelSpectrogram(); + + IncrementalMelSpectrogram(IncrementalMelSpectrogram&&) noexcept; + IncrementalMelSpectrogram& operator=(IncrementalMelSpectrogram&&) noexcept; + IncrementalMelSpectrogram(const IncrementalMelSpectrogram&) = delete; + IncrementalMelSpectrogram& operator=(const IncrementalMelSpectrogram&) = delete; + + void accept_audio(const float* samples, int32_t n_samples); + void ensure_frames(int32_t end_frame, bool final); + void reset(); + + int32_t available_frames() const; + int32_t stable_target_sample_count(bool final = false) const; + int32_t frame_count() const; + int32_t n_mels() const; + float value(int32_t mel_bin, int32_t frame) const; + IncrementalMelStats stats() const; + + private: + class Impl; + std::unique_ptr impl_; +}; + +MelResult extract_configured_mel_spectrogram(const float* samples, int32_t n_samples, + const float* mel_filters, int32_t n_freq_bins, + int32_t n_mel_bins, + const MelSpectrogramOptions& options); + +MelResult extract_tdt_mel_spectrogram(const float* samples, int32_t n_samples, + const float* mel_filters, int32_t n_freq_bins, + int32_t n_mel_bins, int32_t n_fft, int32_t win_length, + int32_t hop_length, int32_t chunk_length_s, + int32_t sample_rate, float preemphasis); + +} // namespace tdt +} // namespace trtmc diff --git a/families/parakeet_tdt/runtime/audio_input.h b/families/parakeet_tdt/runtime/audio_input.h new file mode 100644 index 0000000000..35963a8f50 --- /dev/null +++ b/families/parakeet_tdt/runtime/audio_input.h @@ -0,0 +1,55 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include "families/parakeet_tdt/runtime/resampler.h" +#include "trtmc/internal/audio.h" + +#include +#include +#include +#include +#include + +namespace trtmc::tdt { + +inline std::vector prepare_audio(const internal::SpeechTranscriptionRequest& request) { + const auto& audio = request.audio; + if (request.source_language.has_value()) + throw std::invalid_argument("Parakeet TDT does not support source_language control"); + if (audio.channels == 0 || audio.samples.empty() || audio.samples.data() == nullptr || + audio.samples.size() % audio.channels != 0) + throw std::invalid_argument( + "Parakeet TDT requires complete nonempty interleaved PCM frames"); + const auto rate = audio.sample_rate.value_or(16000); + if (rate == 0 || rate > static_cast(std::numeric_limits::max())) + throw std::invalid_argument("Parakeet TDT input sample rate is out of range"); + const auto frames = audio.samples.size() / audio.channels; + if (frames > static_cast(std::numeric_limits::max()) || + frames > static_cast(rate) * 30) + throw std::invalid_argument("Parakeet TDT supports at most 30 seconds per request"); + + std::vector mono(frames); + for (std::size_t frame = 0; frame < frames; ++frame) { + double sum = 0; + for (std::uint32_t channel = 0; channel < audio.channels; ++channel) { + const auto value = audio.samples[frame * audio.channels + channel]; + if (!std::isfinite(value)) + throw std::invalid_argument("Parakeet TDT PCM must contain only finite samples"); + sum += value; + } + mono[frame] = static_cast(sum / audio.channels); + } + if (rate == 16000) + return mono; + auto result = resample_linear(mono.data(), static_cast(frames), + static_cast(rate), 16000); + if (result.empty()) + throw std::invalid_argument("Parakeet TDT input is shorter than one model-rate sample"); + return result; +} + +} // namespace trtmc::tdt diff --git a/families/parakeet_tdt/runtime/resampler.cpp b/families/parakeet_tdt/runtime/resampler.cpp new file mode 100644 index 0000000000..fda7c33e9b --- /dev/null +++ b/families/parakeet_tdt/runtime/resampler.cpp @@ -0,0 +1,146 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "families/parakeet_tdt/runtime/resampler.h" + +#include +#include +#include +#include + +namespace trtmc::tdt { +namespace { + +std::int32_t output_length(std::int32_t num_samples, std::int32_t source_rate, + std::int32_t target_rate) { + return static_cast(static_cast(num_samples) * target_rate / + source_rate); +} + +double scaled_sinc(double distance, double cutoff) { + constexpr double pi = 3.14159265358979323846; + if (std::abs(distance) < 1.0e-12) + return cutoff; + return cutoff * std::sin(pi * distance * cutoff) / (pi * distance * cutoff); +} + +double hann_window(double distance, std::int32_t half_taps) { + constexpr double pi = 3.14159265358979323846; + const double position = + (distance + static_cast(half_taps)) / (2.0 * static_cast(half_taps)); + return 0.5 * (1.0 - std::cos(2.0 * pi * position)); +} + +float resample_at(const float* samples, std::int32_t num_samples, double source_position, + double cutoff, std::int32_t half_taps) { + const auto center = static_cast(std::floor(source_position)); + const auto low = std::max(0, center - half_taps + 1); + const auto high = std::min(num_samples - 1, center + half_taps); + double value = 0.0; + double weight_sum = 0.0; + for (std::int32_t index = low; index <= high; ++index) { + const auto distance = static_cast(index) - source_position; + const auto weight = scaled_sinc(distance, cutoff) * hann_window(distance, half_taps); + value += static_cast(samples[index]) * weight; + weight_sum += weight; + } + return weight_sum > 1.0e-12 ? static_cast(value / weight_sum) : 0.0F; +} + +struct PhaseTable { + std::int32_t rate_gcd{1}; + std::int32_t phase_count{1}; + std::int32_t half_taps{16}; + std::vector weights; +}; + +PhaseTable make_phase_table(std::int32_t source_rate, std::int32_t target_rate, double cutoff, + std::int32_t half_taps) { + PhaseTable table; + table.rate_gcd = std::gcd(source_rate, target_rate); + table.phase_count = target_rate / table.rate_gcd; + table.half_taps = half_taps; + const auto tap_count = 2 * half_taps; + table.weights.resize(static_cast(table.phase_count) * tap_count); + for (std::int32_t phase = 0; phase < table.phase_count; ++phase) { + const auto fraction = + static_cast(phase * table.rate_gcd) / static_cast(target_rate); + for (std::int32_t tap = 0; tap < tap_count; ++tap) { + const auto offset = tap - half_taps + 1; + const auto distance = static_cast(offset) - fraction; + table.weights[static_cast(phase) * tap_count + tap] = + scaled_sinc(distance, cutoff) * hann_window(distance, half_taps); + } + } + return table; +} + +std::vector resample_phases(const float* samples, std::int32_t num_samples, + std::int32_t source_rate, std::int32_t target_rate, + std::int32_t output_start, std::int32_t output_count, + double cutoff, std::int32_t half_taps) { + const auto table = make_phase_table(source_rate, target_rate, cutoff, half_taps); + const auto tap_count = 2 * half_taps; + std::vector output(static_cast(output_count)); + for (std::int32_t local = 0; local < output_count; ++local) { + const auto index = output_start + local; + const auto numerator = static_cast(index) * source_rate; + const auto center = static_cast(numerator / target_rate); + const auto phase = static_cast(numerator % target_rate) / table.rate_gcd; + const auto* weights = table.weights.data() + static_cast(phase) * tap_count; + const auto first = std::max(-half_taps + 1, -center); + const auto last = std::min(half_taps, num_samples - 1 - center); + double value = 0.0; + double weight_sum = 0.0; + for (std::int32_t offset = first; offset <= last; ++offset) { + const auto weight = weights[offset + half_taps - 1]; + value += static_cast(samples[center + offset]) * weight; + weight_sum += weight; + } + output[static_cast(local)] = + weight_sum > 1.0e-12 ? static_cast(value / weight_sum) : 0.0F; + } + return output; +} + +} // namespace + +std::vector resample_linear(const float* samples, std::int32_t num_samples, + std::int32_t source_rate, std::int32_t target_rate) { + if (num_samples <= 0) + return {}; + return resample_linear_range(samples, num_samples, source_rate, target_rate, 0, + output_length(num_samples, source_rate, target_rate)); +} + +std::vector resample_linear_range(const float* samples, std::int32_t num_samples, + std::int32_t source_rate, std::int32_t target_rate, + std::int32_t output_start, std::int32_t output_count) { + if (samples == nullptr || num_samples <= 0 || source_rate <= 0 || target_rate <= 0) + throw std::invalid_argument("resampler requires samples and positive dimensions"); + const auto full_length = output_length(num_samples, source_rate, target_rate); + const auto start = std::clamp(output_start, 0, full_length); + const auto count = std::clamp(output_count, 0, full_length - start); + if (count == 0) + return {}; + if (source_rate == target_rate) + return {samples + start, samples + start + count}; + constexpr std::int32_t half_taps = 16; + const auto cutoff = + std::min(1.0, static_cast(target_rate) / static_cast(source_rate)); + const auto phase_count = target_rate / std::gcd(source_rate, target_rate); + if (phase_count <= 2048) + return resample_phases(samples, num_samples, source_rate, target_rate, start, count, cutoff, + half_taps); + std::vector output(static_cast(count)); + for (std::int32_t local = 0; local < count; ++local) { + const auto position = static_cast(start + local) * source_rate / target_rate; + output[static_cast(local)] = + resample_at(samples, num_samples, position, cutoff, half_taps); + } + return output; +} + +} // namespace trtmc::tdt diff --git a/families/parakeet_tdt/runtime/resampler.h b/families/parakeet_tdt/runtime/resampler.h new file mode 100644 index 0000000000..73fea1dbc0 --- /dev/null +++ b/families/parakeet_tdt/runtime/resampler.h @@ -0,0 +1,19 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include +#include + +namespace trtmc::tdt { + +std::vector resample_linear(const float* samples, std::int32_t num_samples, + std::int32_t source_rate, std::int32_t target_rate); +std::vector resample_linear_range(const float* samples, std::int32_t num_samples, + std::int32_t source_rate, std::int32_t target_rate, + std::int32_t output_start, std::int32_t output_count); + +} // namespace trtmc::tdt diff --git a/families/parakeet_tdt/runtime/tdt_config.h b/families/parakeet_tdt/runtime/tdt_config.h new file mode 100644 index 0000000000..183920ac5d --- /dev/null +++ b/families/parakeet_tdt/runtime/tdt_config.h @@ -0,0 +1,125 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include +#include +#include +#include +#include + +namespace trtmc { + +struct TdtConfig { + int32_t sample_rate{16000}; + int32_t num_mel_bins{128}; + int32_t mel_n_fft{512}; + int32_t mel_win_length{400}; + int32_t mel_hop_length{160}; + int32_t mel_chunk_length{30}; + float mel_preemph{0.97F}; + int32_t mel_length{3000}; + int32_t encoder_hidden_size{1024}; + int32_t pred_hidden_size{640}; + int32_t pred_num_layers{2}; + int32_t vocab_size{8192}; + int32_t blank_id{8192}; + int32_t max_symbols_per_step{10}; + int32_t encoder_seq_len{375}; + int32_t encoder_layers{24}; + int32_t subsampling_factor{8}; + std::vector duration_values{0, 1, 2, 3, 4}; + + // Retained as inert fields so the family-private offline pipeline shares + // one constructor shape with the repository's speech pipeline machinery. + int32_t att_context_left{-1}; + int32_t att_context_right{-1}; + int32_t streaming_cache_left{0}; + int32_t streaming_time_cache{0}; + int32_t streaming_pre_encode_cache{0}; + int32_t streaming_drop_pre_encoded{0}; + bool causal_downsampling{false}; + bool has_prompt_kernel{false}; + int32_t num_prompts{0}; + std::unordered_map prompt_dictionary; + std::vector supported_right_contexts; +}; + +struct TdtGreedyDecision { + bool emit_token{false}; + int32_t frame_advance{0}; +}; + +// Streaming is deliberately not advertised for v3, but these private fields +// keep the inherited speech-session implementation buildable and fail closed +// unless a bundle contains matching streaming encoder plans. +struct TdtStreamingSchedule { + int32_t att_context_left{70}; + int32_t att_context_right{13}; + int32_t subsampling_factor{8}; + int32_t encoder_frame_ms{80}; + int32_t chunk_ms{1120}; + int32_t chunk_samples{17920}; + int32_t first_chunk_mel_frames{105}; + int32_t next_chunk_mel_frames{112}; + int32_t first_shift_mel_frames{105}; + int32_t next_shift_mel_frames{112}; + int32_t first_pre_encode_cache_mel_frames{0}; + int32_t next_pre_encode_cache_mel_frames{9}; + int32_t valid_encoder_frames{14}; + int32_t drop_extra_pre_encoded{2}; +}; + +inline TdtStreamingSchedule make_tdt_streaming_schedule(int32_t left, int32_t right, + int32_t sample_rate = 16000, + int32_t hop = 160, + int32_t subsampling = 8) { + if (left <= 0 || right < 0 || sample_rate <= 0 || hop <= 0 || subsampling <= 0) + throw std::invalid_argument("invalid private TDT streaming schedule"); + TdtStreamingSchedule out; + out.att_context_left = left; + out.att_context_right = right; + out.subsampling_factor = subsampling; + out.encoder_frame_ms = hop * subsampling * 1000 / sample_rate; + out.valid_encoder_frames = right + 1; + out.chunk_ms = out.valid_encoder_frames * out.encoder_frame_ms; + out.chunk_samples = sample_rate * out.chunk_ms / 1000; + out.first_chunk_mel_frames = 1 + subsampling * right; + out.next_chunk_mel_frames = subsampling * out.valid_encoder_frames; + out.first_shift_mel_frames = out.first_chunk_mel_frames; + out.next_shift_mel_frames = out.next_chunk_mel_frames; + out.next_pre_encode_cache_mel_frames = subsampling + 1; + out.drop_extra_pre_encoded = out.next_pre_encode_cache_mel_frames - (subsampling - 1); + return out; +} + +inline void validate_tdt_mel_geometry(const TdtConfig& config, int32_t filterbank_freq_bins, + int32_t filterbank_mel_bins) { + if (config.sample_rate <= 0 || config.mel_hop_length <= 0 || config.mel_n_fft <= 0 || + config.mel_chunk_length <= 0 || config.mel_length <= 0 || config.num_mel_bins <= 0) { + throw std::invalid_argument("invalid TDT mel dimensions in config"); + } + if (filterbank_freq_bins != config.mel_n_fft / 2 + 1 || + filterbank_mel_bins != config.num_mel_bins) { + throw std::invalid_argument("TDT mel filterbank dimensions do not match config"); + } +} + +inline TdtGreedyDecision make_tdt_greedy_decision(int32_t token_id, int32_t duration_index, + const std::vector& duration_values, + int32_t blank_id) { + if (duration_index < 0 || duration_index >= static_cast(duration_values.size())) + throw std::out_of_range("TDT duration index is outside the configured duration table"); + int32_t advance = duration_values[static_cast(duration_index)]; + if (advance < 0) + throw std::invalid_argument("TDT durations must be non-negative"); + const bool emit = token_id != blank_id; + if (advance == 0 && !emit) + advance = 1; + return {emit, advance}; +} + +} // namespace trtmc diff --git a/families/parakeet_tdt/tests/README.md b/families/parakeet_tdt/tests/README.md index bf397d7e40..0fced073ce 100644 --- a/families/parakeet_tdt/tests/README.md +++ b/families/parakeet_tdt/tests/README.md @@ -9,3 +9,17 @@ The bundle-composition tests replace TensorRT compilation with byte payloads. They exercise the real BuildRequest, family dispatch, configuration validation, and BundleWriter. They do not establish engine validity, numerical equivalence, transcript quality, GPU execution, or performance. + +`test_native.py` compiles three CPU executables with a C++17 compiler (`CXX`, +default `c++`): Task audio-input validation/downmix/resampling, the existing +mel/FFT/incremental-resampling tests, and the existing TDT duration/geometry +tests. The last two retain their original assertions from PR #1060. No CUDA or +TensorRT libraries are used. The audio-input helper is not yet wired to the +pending native family factory/pipeline; these tests do not establish an +end-to-end transcription path or advertise streaming support. + +From the repository root: + +```sh +PYTHONPATH=core/builder:. python -m pytest families/parakeet_tdt/tests -q +``` diff --git a/families/parakeet_tdt/tests/cpp/test_audio_helpers.cpp b/families/parakeet_tdt/tests/cpp/test_audio_helpers.cpp new file mode 100644 index 0000000000..b017b5e066 --- /dev/null +++ b/families/parakeet_tdt/tests/cpp/test_audio_helpers.cpp @@ -0,0 +1,264 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +// Unit tests for TDT-owned audio feature extraction helpers. + +#include "families/parakeet_tdt/runtime/audio_helpers.h" +#include "families/parakeet_tdt/runtime/resampler.h" + +#include +#include +#include +#include +#include + +namespace { + +int g_failures = 0; + +void check(bool condition, const char* name) { + if (!condition) { + std::cerr << "FAIL: " << name << '\n'; + ++g_failures; + } +} + +void check_close(float actual, float expected, float tolerance, const char* name) { + if (std::fabs(actual - expected) > tolerance) { + std::cerr << "FAIL: " << name << " actual=" << actual << " expected=" << expected << '\n'; + ++g_failures; + } +} + +std::vector make_identity_filterbank(int32_t n_freq_bins) { + std::vector filters(static_cast(n_freq_bins) * n_freq_bins, 0.0F); + for (int32_t i = 0; i < n_freq_bins; ++i) { + filters[static_cast(i) * n_freq_bins + i] = 1.0F; + } + return filters; +} + +std::vector reference_rfft_power(const std::vector& input) { + const int32_t n = static_cast(input.size()); + const int32_t n_out = n / 2 + 1; + const double pi2 = 2.0 * 3.14159265358979323846; + std::vector power(static_cast(n_out), 0.0F); + for (int32_t k = 0; k < n_out; ++k) { + double real = 0.0; + double imag = 0.0; + for (int32_t t = 0; t < n; ++t) { + const double angle = + pi2 * static_cast(k) * static_cast(t) / static_cast(n); + real += static_cast(input[static_cast(t)]) * std::cos(angle); + imag -= static_cast(input[static_cast(t)]) * std::sin(angle); + } + power[static_cast(k)] = static_cast(real * real + imag * imag); + } + return power; +} + +void check_vectors_close(const std::vector& actual, const std::vector& expected, + float tolerance, const char* name) { + check(actual.size() == expected.size(), name); + for (std::size_t i = 0; i < std::min(actual.size(), expected.size()); ++i) { + const float scaled_tolerance = tolerance * std::max(1.0F, std::abs(expected[i])); + check_close(actual[i], expected[i], scaled_tolerance, name); + } +} + +void test_tdt_fft_matches_direct_dft() { + std::vector input(512); + for (std::size_t i = 0; i < input.size(); ++i) { + input[i] = static_cast(std::sin(static_cast(i) * 0.17) + + 0.25 * std::cos(static_cast(i) * 0.07)); + } + check_vectors_close(trtmc::tdt::detail::rfft_power(input), reference_rfft_power(input), 1e-5F, + "tdt 512-point FFT matches direct DFT"); +} + +trtmc::tdt::MelSpectrogramOptions make_incremental_options() { + trtmc::tdt::MelSpectrogramOptions options; + options.n_fft = 8; + options.win_length = 6; + options.hop_length = 2; + options.chunk_length_s = 1; + options.sample_rate = 32; + options.symmetric_window = true; + options.center_window_in_fft = true; + options.preemphasis = 0.97F; + options.log_scale = trtmc::tdt::MelLogScale::kNaturalLog; + options.normalize_per_feature = false; + return options; +} + +std::vector make_test_audio(int32_t count) { + std::vector audio(static_cast(count)); + for (int32_t i = 0; i < count; ++i) { + audio[static_cast(i)] = + static_cast(0.35 * std::sin(static_cast(i) * 0.47) + + 0.2 * std::cos(static_cast(i) * 0.19)); + } + return audio; +} + +std::vector materialize_incremental(const trtmc::tdt::IncrementalMelSpectrogram& state) { + std::vector output; + output.reserve(static_cast(state.n_mels()) * state.frame_count()); + for (int32_t mel = 0; mel < state.n_mels(); ++mel) { + for (int32_t frame = 0; frame < state.frame_count(); ++frame) { + output.push_back(state.value(mel, frame)); + } + } + return output; +} + +std::vector run_resampled_chunks(const std::vector& source_audio, + const std::vector& chunk_sizes, + trtmc::tdt::IncrementalMelStats& stats) { + const auto options = make_incremental_options(); + const auto filters = make_identity_filterbank(5); + trtmc::tdt::IncrementalMelSpectrogram state(filters.data(), 5, 5, options, 96); + int32_t accepted = 0; + for (const int32_t chunk_size : chunk_sizes) { + const int32_t take = + std::min(chunk_size, static_cast(source_audio.size()) - accepted); + state.accept_audio(source_audio.data() + accepted, take); + accepted += take; + const bool final = accepted == static_cast(source_audio.size()); + if (final) { + state.ensure_frames(16, true); + break; + } + + const int32_t stable_target = state.stable_target_sample_count(); + const int32_t stable_frames = + stable_target >= options.n_fft / 2 + ? 1 + (stable_target - options.n_fft / 2) / options.hop_length + : 0; + state.ensure_frames(stable_frames, false); + } + stats = state.stats(); + return materialize_incremental(state); +} + +void test_incremental_mel_processes_each_frame_once() { + const auto options = make_incremental_options(); + const auto filters = make_identity_filterbank(5); + const auto audio = make_test_audio(32); + const auto offline = trtmc::tdt::extract_configured_mel_spectrogram( + audio.data(), static_cast(audio.size()), filters.data(), 5, 5, options); + + trtmc::tdt::IncrementalMelSpectrogram state(filters.data(), 5, 5, options, 32); + state.accept_audio(audio.data(), 8); + state.ensure_frames(2, false); + state.accept_audio(audio.data() + 8, 8); + state.ensure_frames(6, false); + state.accept_audio(audio.data() + 16, 16); + state.ensure_frames(16, true); + + check_vectors_close(materialize_incremental(state), offline.data, 1e-5F, + "incremental mel matches one-shot features"); + const auto stats = state.stats(); + check(stats.accepted_source_samples == 32, "incremental mel accepts each source sample once"); + check(stats.generated_resampled_samples == 32, + "incremental mel materializes each identity-rate sample once"); + check(stats.computed_mel_frames == 16, "incremental mel computes each frame once"); +} + +void test_incremental_resample_matches_one_shot() { + const auto options = make_incremental_options(); + const auto filters = make_identity_filterbank(5); + const auto source_audio = make_test_audio(96); + const auto resampled = trtmc::tdt::resample_linear(source_audio.data(), 96, 96, 32); + const auto offline = trtmc::tdt::extract_configured_mel_spectrogram( + resampled.data(), static_cast(resampled.size()), filters.data(), 5, 5, options); + + trtmc::tdt::IncrementalMelSpectrogram state(filters.data(), 5, 5, options, 96); + state.accept_audio(source_audio.data(), 72); + state.ensure_frames(6, false); + state.accept_audio(source_audio.data() + 72, 24); + state.ensure_frames(16, true); + + check_vectors_close(materialize_incremental(state), offline.data, 1e-5F, + "incremental resampling matches one-shot features"); + const auto stats = state.stats(); + check(stats.accepted_source_samples == 96, + "incremental resampling accepts each source sample once"); + check(stats.generated_resampled_samples == 32, + "incremental resampling generates each target sample once"); + check(stats.computed_mel_frames == 16, "incremental resampling computes each mel frame once"); +} + +void test_incremental_resample_is_chunk_size_independent() { + const auto source_audio = make_test_audio(96); + trtmc::tdt::IncrementalMelStats coarse_stats; + trtmc::tdt::IncrementalMelStats irregular_stats; + const auto coarse = run_resampled_chunks(source_audio, {24, 24, 24, 24}, coarse_stats); + const auto irregular = run_resampled_chunks(source_audio, {17, 31, 11, 37}, irregular_stats); + + check_vectors_close(irregular, coarse, 0.0F, + "incremental features are independent of source chunk sizes"); + check(coarse_stats.accepted_source_samples == 96 && + irregular_stats.accepted_source_samples == 96, + "chunk schedules accept each source sample once"); + check(coarse_stats.generated_resampled_samples == 32 && + irregular_stats.generated_resampled_samples == 32, + "chunk schedules generate each resampled sample once"); + check(coarse_stats.computed_mel_frames == 16 && irregular_stats.computed_mel_frames == 16, + "chunk schedules compute each mel frame once"); +} + +void test_tdt_mel_matches_configured_owned_options() { + const std::vector samples{0.0F, 0.1F, -0.2F, 0.4F, -0.1F, 0.0F, 0.2F, -0.3F}; + const int32_t n_fft = 4; + const int32_t n_freq_bins = 3; + const int32_t n_mel_bins = 2; + const std::vector mel_filters{ + 0.5F, 0.1F, 0.2F, 0.7F, 0.3F, 0.4F, + }; + + const auto tdt = trtmc::tdt::extract_tdt_mel_spectrogram( + samples.data(), static_cast(samples.size()), mel_filters.data(), n_freq_bins, + n_mel_bins, n_fft, /*win_length=*/3, /*hop_length=*/2, /*chunk_length_s=*/1, + /*sample_rate=*/8, /*preemphasis=*/0.97F); + + trtmc::tdt::MelSpectrogramOptions options; + options.n_fft = n_fft; + options.win_length = 3; + options.hop_length = 2; + options.chunk_length_s = 1; + options.sample_rate = 8; + options.symmetric_window = true; + options.center_window_in_fft = true; + options.preemphasis = 0.97F; + options.log_scale = trtmc::tdt::MelLogScale::kNaturalLog; + options.normalize_per_feature = true; + const auto configured = trtmc::tdt::extract_configured_mel_spectrogram( + samples.data(), static_cast(samples.size()), mel_filters.data(), n_freq_bins, + n_mel_bins, options); + + check(tdt.n_mels == configured.n_mels, "tdt mel keeps configured mel count"); + check(tdt.n_frames == configured.n_frames, "tdt mel keeps configured frame count"); + check(tdt.data.size() == configured.data.size(), "tdt mel keeps configured data size"); + for (std::size_t i = 0; i < tdt.data.size(); ++i) { + check_close(tdt.data[i], configured.data[i], 1e-6F, "tdt mel value matches configured"); + } +} + +} // namespace + +int main() { + test_tdt_fft_matches_direct_dft(); + test_tdt_mel_matches_configured_owned_options(); + test_incremental_mel_processes_each_frame_once(); + test_incremental_resample_matches_one_shot(); + test_incremental_resample_is_chunk_size_independent(); + + if (g_failures != 0) { + std::cerr << g_failures << " tdt audio helper test(s) failed\n"; + return 1; + } + return 0; +} diff --git a/families/parakeet_tdt/tests/cpp/test_audio_input.cpp b/families/parakeet_tdt/tests/cpp/test_audio_input.cpp new file mode 100644 index 0000000000..ba920a8c1e --- /dev/null +++ b/families/parakeet_tdt/tests/cpp/test_audio_input.cpp @@ -0,0 +1,79 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "families/parakeet_tdt/runtime/audio_input.h" + +#include +#include +#include +#include +#include + +int failures = 0; +void check(bool value, const char* label) { + if (!value) { + std::cerr << label << '\n'; + ++failures; + } +} +template +void rejects(F run, const char* label) { + try { + run(); + check(false, label); + } catch (const std::invalid_argument&) { + } +} + +int main() { + using trtmc::internal::SpeechTranscriptionRequest; + using trtmc::tdt::prepare_audio; + float stereo[] = {1, 3, -2, 2, 4, 2}; + SpeechTranscriptionRequest request; + request.audio = {{stereo, 6}, 16000, 2}; + auto mono = prepare_audio(request); + check(mono == std::vector({2, 0, 3}), "downmix interleaved frames"); + check(stereo[0] == 1 && stereo[1] == 3, "preserve borrowed input"); + request.audio.sample_rate.reset(); + check(prepare_audio(request) == mono, "omitted rate uses model 16 kHz default"); + request.audio.channels = 0; + rejects([&] { prepare_audio(request); }, "reject missing channels"); + request.audio.channels = 4; + rejects([&] { prepare_audio(request); }, "reject partial frame"); + request.audio.channels = 2; + request.audio.sample_rate = 0; + rejects([&] { prepare_audio(request); }, "reject zero rate"); + request.audio.sample_rate = std::numeric_limits::max(); + rejects([&] { prepare_audio(request); }, "reject out-of-range rate"); + request.audio.sample_rate = 16000; + request.source_language = "en"; + rejects([&] { prepare_audio(request); }, "reject unsupported language control"); + request.source_language.reset(); + request.audio.samples = {nullptr, 6}; + rejects([&] { prepare_audio(request); }, "reject null borrowed buffer"); + request.audio.samples = {}; + rejects([&] { prepare_audio(request); }, "reject empty input"); + request.audio.samples = {stereo, 6}; + stereo[0] = std::numeric_limits::quiet_NaN(); + rejects([&] { prepare_audio(request); }, "reject NaN"); + stereo[0] = std::numeric_limits::infinity(); + rejects([&] { prepare_audio(request); }, "reject infinity"); + stereo[0] = stereo[1] = std::numeric_limits::max(); + check(std::isfinite(prepare_audio(request)[0]), "downmix avoids intermediate float overflow"); + std::vector pcm(48000, 0.25F); + request.audio = {{pcm.data(), pcm.size()}, 48000, 1}; + auto resampled = prepare_audio(request); + check(resampled.size() == 16000, "resample 48 kHz to 16 kHz"); + check(std::abs(resampled[8000] - 0.25F) < 1e-6F, "resampling preserves constant signal"); + pcm.resize(16000 * 30); + request.audio = {{pcm.data(), pcm.size()}, 16000, 1}; + check(prepare_audio(request).size() == pcm.size(), "accept exact 30-second window"); + pcm.push_back(0); + request.audio.samples = {pcm.data(), pcm.size()}; + rejects([&] { prepare_audio(request); }, "reject overlong input instead of truncating"); + request.audio.samples = {stereo, static_cast(std::numeric_limits::max()) + 1}; + rejects([&] { prepare_audio(request); }, "reject sample count before narrowing or dereference"); + return failures == 0 ? 0 : 1; +} diff --git a/families/parakeet_tdt/tests/cpp/test_decode_policy.cpp b/families/parakeet_tdt/tests/cpp/test_decode_policy.cpp new file mode 100644 index 0000000000..5897c9e1b5 --- /dev/null +++ b/families/parakeet_tdt/tests/cpp/test_decode_policy.cpp @@ -0,0 +1,111 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "families/parakeet_tdt/runtime/tdt_config.h" + +#include +#include + +namespace { + +int failures = 0; + +void check(bool condition, const char* message) { + if (!condition) { + std::cerr << "FAIL: " << message << '\n'; + ++failures; + } +} + +void test_duration_value_controls_frame_advance() { + const auto decision = trtmc::make_tdt_greedy_decision(7, 2, {0, 1, 3}, 9); + check(decision.emit_token, "nonblank should emit"); + check(decision.frame_advance == 3, "duration table value should advance frames"); +} + +void test_zero_duration_blank_forces_progress_without_emit() { + const auto decision = trtmc::make_tdt_greedy_decision(9, 0, {0, 1, 3}, 9); + check(!decision.emit_token, "blank should not emit"); + check(decision.frame_advance == 1, "zero-duration blank must force progress"); +} + +void test_zero_duration_nonblank_stays_on_frame() { + const auto decision = trtmc::make_tdt_greedy_decision(7, 0, {0, 1, 3}, 9); + check(decision.emit_token, "zero-duration nonblank should emit"); + check(decision.frame_advance == 0, "zero-duration nonblank must stay on the frame"); +} + +void test_invalid_duration_index_is_rejected() { + bool threw = false; + try { + (void)trtmc::make_tdt_greedy_decision(7, 3, {0, 1, 2}, 9); + } catch (const std::out_of_range&) { + threw = true; + } + check(threw, "duration indices outside the table must throw"); +} + +void test_negative_duration_is_rejected() { + bool threw = false; + try { + (void)trtmc::make_tdt_greedy_decision(7, 1, {0, -1, 2}, 9); + } catch (const std::invalid_argument&) { + threw = true; + } + check(threw, "negative duration values must throw"); +} + +void test_streaming_schedule_derives_timing_and_cache_geometry() { + const auto schedule = trtmc::make_tdt_streaming_schedule(20, 3, 8000, 80, 4); + check(schedule.encoder_frame_ms == 40, "encoder frame timing derives from hop and stride"); + check(schedule.chunk_samples == 1280, "chunk samples derive from schedule timing"); + check(schedule.next_pre_encode_cache_mel_frames == 5, + "pre-encode cache derives from subsampling"); + check(schedule.drop_extra_pre_encoded == 2, "pre-encode drop derives from cache overlap"); +} + +void test_mel_geometry_accepts_matching_dimensions() { + trtmc::TdtConfig config; + trtmc::validate_tdt_mel_geometry(config, 257, 128); +} + +void test_mel_geometry_rejects_invalid_or_mismatched_dimensions() { + trtmc::TdtConfig config; + config.mel_n_fft = 0; + bool invalid_threw = false; + try { + trtmc::validate_tdt_mel_geometry(config, 257, 128); + } catch (const std::invalid_argument&) { + invalid_threw = true; + } + check(invalid_threw, "non-positive mel dimensions must throw"); + + config.mel_n_fft = 512; + bool mismatch_threw = false; + try { + trtmc::validate_tdt_mel_geometry(config, 256, 128); + } catch (const std::invalid_argument&) { + mismatch_threw = true; + } + check(mismatch_threw, "filterbank dimensions must match the runtime config"); +} + +} // namespace + +int main() { + test_duration_value_controls_frame_advance(); + test_zero_duration_blank_forces_progress_without_emit(); + test_zero_duration_nonblank_stays_on_frame(); + test_invalid_duration_index_is_rejected(); + test_negative_duration_is_rejected(); + test_streaming_schedule_derives_timing_and_cache_geometry(); + test_mel_geometry_accepts_matching_dimensions(); + test_mel_geometry_rejects_invalid_or_mismatched_dimensions(); + if (failures) { + std::cerr << failures << " TDT decode policy test(s) failed\n"; + return 1; + } + return 0; +} diff --git a/families/parakeet_tdt/tests/test_native.py b/families/parakeet_tdt/tests/test_native.py new file mode 100644 index 0000000000..3b5b9d2002 --- /dev/null +++ b/families/parakeet_tdt/tests/test_native.py @@ -0,0 +1,33 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Compile and execute CPU-owned native contracts without CUDA or TensorRT.""" + +import os +from pathlib import Path +import shutil +import subprocess + +import pytest + + +@pytest.mark.parametrize(("name", "sources"), [ + ("audio_input", ("resampler.cpp",)), + ("audio_helpers", ("audio_helpers.cpp", "resampler.cpp")), + ("decode_policy", ()), +]) +def test_native_cpu_contract(tmp_path, name, sources): + compiler = shutil.which(os.environ.get("CXX", "c++")) + if compiler is None: + pytest.skip("native CPU tests require a C++17 compiler (set CXX)") + family = Path(__file__).resolve().parents[1] + root = family.parents[1] + output = tmp_path / name + subprocess.run([ + compiler, "-std=c++17", "-Wall", "-Wextra", "-Werror", + "-I", str(root), "-I", str(root / "core/runtime/include"), + str(family / "tests/cpp" / f"test_{name}.cpp"), + *(str(family / "runtime" / source) for source in sources), + "-o", str(output), + ], check=True, capture_output=True, text=True, timeout=60) + subprocess.run([str(output)], check=True, capture_output=True, text=True, timeout=60) From 1b5e0040d959ae9ea6f6b6c89b43f7e2717fe85a Mon Sep 17 00:00:00 2001 From: JiaxinD Date: Sat, 19 Sep 2026 09:10:23 -0700 Subject: [PATCH 10/16] refactor(parakeet): port native transcription Connect the family audio frontend to semantic transcription with isolated request state and checked engine outputs. Add the native factory and tokenizer; preserve literal U+0120 during Metaspace decoding. Signed-off-by: JiaxinD --- families/parakeet_tdt/runtime/CMakeLists.txt | 18 + .../parakeet_tdt/runtime/bpe_tokenizer.cpp | 1560 +++++++++++++++++ families/parakeet_tdt/runtime/pipeline.cpp | 299 ++++ families/parakeet_tdt/runtime/pipeline.h | 43 + families/parakeet_tdt/runtime/plugin.cpp | 96 + families/parakeet_tdt/runtime/tokenizer.h | 30 + families/parakeet_tdt/tests/README.md | 25 +- .../parakeet_tdt/tests/cpp/test_pipeline.cpp | 150 ++ .../parakeet_tdt/tests/cpp/test_tokenizer.cpp | 39 + families/parakeet_tdt/tests/test_native.py | 16 +- 10 files changed, 2270 insertions(+), 6 deletions(-) create mode 100644 families/parakeet_tdt/runtime/CMakeLists.txt create mode 100644 families/parakeet_tdt/runtime/bpe_tokenizer.cpp create mode 100644 families/parakeet_tdt/runtime/pipeline.cpp create mode 100644 families/parakeet_tdt/runtime/pipeline.h create mode 100644 families/parakeet_tdt/runtime/plugin.cpp create mode 100644 families/parakeet_tdt/runtime/tokenizer.h create mode 100644 families/parakeet_tdt/tests/cpp/test_pipeline.cpp create mode 100644 families/parakeet_tdt/tests/cpp/test_tokenizer.cpp diff --git a/families/parakeet_tdt/runtime/CMakeLists.txt b/families/parakeet_tdt/runtime/CMakeLists.txt new file mode 100644 index 0000000000..c568d4b407 --- /dev/null +++ b/families/parakeet_tdt/runtime/CMakeLists.txt @@ -0,0 +1,18 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +add_library(trtmc_model_parakeet_tdt SHARED + audio_helpers.cpp bpe_tokenizer.cpp pipeline.cpp plugin.cpp resampler.cpp +) +target_include_directories(trtmc_model_parakeet_tdt PRIVATE + ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/core/runtime/include +) +target_include_directories(trtmc_model_parakeet_tdt SYSTEM PRIVATE ${TRTMC_CUDA_INCLUDE_DIR}) +target_link_libraries(trtmc_model_parakeet_tdt PRIVATE + trtmc_core nlohmann_json::nlohmann_json ${TRTMC_CUDART_LIBRARY} +) +target_compile_options(trtmc_model_parakeet_tdt PRIVATE -Wall -Wextra -Wpedantic) +set_target_properties(trtmc_model_parakeet_tdt PROPERTIES + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" BUILD_RPATH "\$ORIGIN" INSTALL_RPATH "\$ORIGIN" +) +install(TARGETS trtmc_model_parakeet_tdt LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/families/parakeet_tdt/runtime/bpe_tokenizer.cpp b/families/parakeet_tdt/runtime/bpe_tokenizer.cpp new file mode 100644 index 0000000000..d6973e416f --- /dev/null +++ b/families/parakeet_tdt/runtime/bpe_tokenizer.cpp @@ -0,0 +1,1560 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "families/parakeet_tdt/runtime/tokenizer.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace trtmc::parakeet_tdt { +namespace { + +// ─── UTF-8 helpers ─── + +// Decode one UTF-8 codepoint from s starting at pos, advance pos. +inline char32_t utf8_to_char32(const std::string& s, size_t& pos) { + unsigned char c = static_cast(s[pos]); + if (c < 0x80) { + ++pos; + return static_cast(c); + } + if ((c & 0xE0) == 0xC0 && pos + 1 < s.size()) { + char32_t cp = (static_cast(c & 0x1F) << 6) | + static_cast(static_cast(s[pos + 1]) & 0x3F); + pos += 2; + return cp; + } + if ((c & 0xF0) == 0xE0 && pos + 2 < s.size()) { + char32_t cp = (static_cast(c & 0x0F) << 12) | + (static_cast(static_cast(s[pos + 1]) & 0x3F) << 6) | + static_cast(static_cast(s[pos + 2]) & 0x3F); + pos += 3; + return cp; + } + if ((c & 0xF8) == 0xF0 && pos + 3 < s.size()) { + char32_t cp = (static_cast(c & 0x07) << 18) | + (static_cast(static_cast(s[pos + 1]) & 0x3F) << 12) | + (static_cast(static_cast(s[pos + 2]) & 0x3F) << 6) | + static_cast(static_cast(s[pos + 3]) & 0x3F); + pos += 4; + return cp; + } + ++pos; + return 0xFFFD; +} + +inline std::string utf32_to_utf8(char32_t cp) { + std::string r; + if (cp <= 0x7F) { + r.push_back(static_cast(cp)); + } else if (cp <= 0x7FF) { + r.push_back(static_cast(0xC0 | ((cp >> 6) & 0x1F))); + r.push_back(static_cast(0x80 | (cp & 0x3F))); + } else if (cp <= 0xFFFF) { + r.push_back(static_cast(0xE0 | ((cp >> 12) & 0x0F))); + r.push_back(static_cast(0x80 | ((cp >> 6) & 0x3F))); + r.push_back(static_cast(0x80 | (cp & 0x3F))); + } else if (cp <= 0x10FFFF) { + r.push_back(static_cast(0xF0 | ((cp >> 18) & 0x07))); + r.push_back(static_cast(0x80 | ((cp >> 12) & 0x3F))); + r.push_back(static_cast(0x80 | ((cp >> 6) & 0x3F))); + r.push_back(static_cast(0x80 | (cp & 0x3F))); + } + return r; +} + +// Read one UTF-8 codepoint from raw bytes, advance ptr. Returns 0xFFFD on error. +inline char32_t read_utf8(const char*& p, const char* end) { + if (p >= end) + return 0xFFFD; + unsigned char c = static_cast(*p); + if (c < 0x80) { + ++p; + return c; + } + if ((c & 0xE0) == 0xC0 && p + 1 < end) { + char32_t cp = + (static_cast(c & 0x1F) << 6) | (static_cast(p[1]) & 0x3F); + p += 2; + return cp; + } + if ((c & 0xF0) == 0xE0 && p + 2 < end) { + char32_t cp = (static_cast(c & 0x0F) << 12) | + (static_cast(static_cast(p[1]) & 0x3F) << 6) | + (static_cast(p[2]) & 0x3F); + p += 3; + return cp; + } + if ((c & 0xF8) == 0xF0 && p + 3 < end) { + char32_t cp = (static_cast(c & 0x07) << 18) | + (static_cast(static_cast(p[1]) & 0x3F) << 12) | + (static_cast(static_cast(p[2]) & 0x3F) << 6) | + (static_cast(p[3]) & 0x3F); + p += 4; + return cp; + } + ++p; + return 0xFFFD; +} + +// ─── GPT-2 byte encoder: byte value <-> Unicode codepoint ─── + +struct ByteEncoderTables { + // byte -> UTF-8 encoded string (precomputed for speed) + std::string byte_to_utf8[256]; + // Unicode codepoint -> byte value + std::unordered_map cp_to_byte; + + ByteEncoderTables() { + // GPT-2 byte encoder: printable bytes map to themselves, + // others map to 256+ to avoid control chars. + bool direct[256] = {}; + for (int b = 33; b <= 126; ++b) + direct[b] = true; // !"#$...~ + for (int b = 161; b <= 172; ++b) + direct[b] = true; // non-breaking space area + for (int b = 174; b <= 255; ++b) + direct[b] = true; // extended latin + + int n = 0; + for (int b = 0; b < 256; ++b) { + char32_t cp = direct[b] ? static_cast(b) : static_cast(256 + n++); + byte_to_utf8[b] = utf32_to_utf8(cp); + cp_to_byte[cp] = static_cast(b); + } + } +}; + +static const ByteEncoderTables& byte_tables() { + static ByteEncoderTables tables; + return tables; +} + +// ─── Hand-written BPE pre-tokenizer ─── +// +// Supports two regex variants: +// +// GPT-2 (used by GPT-2, Falcon, OPT): +// 'contractions| ?\p{L}+| ?\p{N}+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+ +// +// Qwen3 (used by Qwen3, LLaMA-3, Mistral, Phi): +// (?i:contractions)|[^\r\n\p{L}\p{N}]?\p{L}+|\p{N}| +// ?[^\s\p{L}\p{N}]+[\r\n]*|\s*[\r\n]+|\s+(?!\S)|\s+ +// +// Key differences: Qwen3 allows any non-CR/LF/letter/digit as optional prefix before +// letters, matches single digits, and has explicit newline handling. + +namespace pretok { + +enum class Variant { kGpt2, kQwen3, kBloom, kDeepSeek, kClip }; + +// ── Character classification ── + +struct UnicodeRange { + char32_t lo, hi; +}; + +constexpr UnicodeRange kLetterRanges[] = { + {'A', 'Z'}, {'a', 'z'}, {0xB5, 0xB5}, // µ (micro sign, treated as letter) + {0xC0, 0xD6}, {0xD8, 0xF6}, {0xF8, 0x1BA}, // Latin-1 + Extended A/B + {0x1BC, 0x1BF}, {0x1C4, 0x293}, {0x295, 0x2AF}, // Latin Extended B cont. + {0x370, 0x373}, {0x376, 0x377}, {0x37B, 0x37D}, {0x37F, 0x37F}, // Greek + {0x386, 0x386}, {0x388, 0x38A}, {0x38C, 0x38C}, {0x38E, 0x3A1}, + {0x3A3, 0x3F5}, {0x3F7, 0x481}, {0x48A, 0x52F}, // Greek + Cyrillic + {0x531, 0x556}, {0x559, 0x559}, // Armenian + {0x560, 0x588}, // Armenian lowercase + {0x600, 0x6FF}, // Arabic + {0x900, 0x97F}, // Devanagari + {0xE00, 0xE7F}, // Thai + {0x10A0, 0x10C5}, // Georgian + {0x13A0, 0x13F5}, // Cherokee + {0x1C90, 0x1CBA}, {0x1CBD, 0x1CBF}, // Georgian Extended + {0x1D00, 0x1D2B}, {0x1D6B, 0x1D77}, {0x1D79, 0x1D9A}, // Phonetic Extensions + {0x1E00, 0x1F15}, {0x1F18, 0x1F1D}, {0x1F20, 0x1F45}, // Latin Ext. Additional + Greek Ext. + {0x2C00, 0x2C5F}, // Glagolitic + {0x3040, 0x309F}, // Hiragana + {0x30A0, 0x30FF}, // Katakana + {0x3400, 0x4DBF}, // CJK Extension A + {0x4E00, 0x9FFF}, // CJK Unified Ideographs + {0xAC00, 0xD7AF}, // Hangul Syllables + {0xFB00, 0xFDFF}, // Alphabetic Presentation Forms + Arabic Forms + {0x10000, 0x1007F}, // Linear B Syllabary +}; + +inline bool is_letter(char32_t cp) { + for (const auto& r : kLetterRanges) { + if (cp >= r.lo && cp <= r.hi) + return true; + } + return false; +} + +inline bool is_digit(char32_t cp) { + return (cp >= '0' && cp <= '9'); +} + +inline bool is_whitespace(char32_t cp) { + return cp == ' ' || cp == '\t' || cp == '\n' || cp == '\r' || cp == 0x0B || cp == 0x0C // VT, FF + || cp == 0xA0 // non-breaking space + || cp == 0x2000 || cp == 0x200A // en space through hair space + || cp == 0x3000; // ideographic space +} + +// BLOOM punctuation set: .,!?... +constexpr char32_t kBloomPunct[] = { + '.', ',', '!', '?', + 0x2026, // ellipsis + 0x3002, // ideographic full stop + 0xFF0C, // fullwidth comma + 0x3001, // ideographic comma + 0x0964, // Devanagari danda + 0x06D4, // Arabic full stop + 0x060C, // Arabic comma +}; + +inline bool is_bloom_punct(char32_t cp) { + for (auto c : kBloomPunct) { + if (cp == c) + return true; + } + return false; +} + +inline bool is_newline(char32_t cp) { + return cp == '\n' || cp == '\r'; +} + +// Is this char a valid optional prefix before a word? +// GPT-2/BLOOM: only space (0x20) +// Qwen3: any char except CR, LF, letter, digit +// DeepSeek: any whitespace (\s?) +inline bool is_prefix(char32_t cp, Variant v) { + if (v == Variant::kClip) { + return false; + } + if (v == Variant::kQwen3) { + return !is_newline(cp) && !is_letter(cp) && !is_digit(cp); + } + if (v == Variant::kDeepSeek) { + return is_whitespace(cp); + } + return cp == ' '; +} + +// BLOOM word char: not whitespace and not BLOOM punctuation +inline bool is_bloom_word_char(char32_t cp) { + // The serialized regex is `[^(\s|[.,!?…。,、।۔،])]`. Parentheses and + // the pipe are literal members of that negated character class. + return !is_whitespace(cp) && !is_bloom_punct(cp) && cp != '(' && cp != ')' && cp != '|'; +} + +// ── Scanning helpers (advance pointer past matching chars) ── + +inline void scan_letters(const char*& p, const char* end) { + while (p < end) { + const char* peek = p; + if (!is_letter(read_utf8(peek, end))) + break; + p = peek; + } +} + +inline void scan_digits(const char*& p, const char* end, int max_group = 0) { + int count = 0; + while (p < end) { + if (max_group > 0 && count >= max_group) + break; + const char* peek = p; + if (!is_digit(read_utf8(peek, end))) + break; + p = peek; + ++count; + } +} + +inline void scan_others(const char*& p, const char* end) { + while (p < end) { + const char* peek = p; + char32_t nc = read_utf8(peek, end); + if (is_whitespace(nc) || is_letter(nc) || is_digit(nc)) + break; + p = peek; + } +} + +inline void scan_newlines(const char*& p, const char* end) { + while (p < end) { + const char* peek = p; + if (!is_newline(read_utf8(peek, end))) + break; + p = peek; + } +} + +inline void scan_all_whitespace(const char*& p, const char* end) { + while (p < end) { + const char* peek = p; + if (!is_whitespace(read_utf8(peek, end))) + break; + p = peek; + } +} + +// Qwen3 regex branch: \s*[\r\n]+ +// Consume any leading whitespace up to the first newline, then consume the +// contiguous newline run itself, but stop before whitespace that follows the +// last newline. +inline void scan_qwen3_newline_chunk(char32_t first_cp, const char*& p, const char* end) { + bool saw_newline = is_newline(first_cp); + while (p < end) { + const char* peek = p; + char32_t nc = read_utf8(peek, end); + if (!saw_newline) { + if (is_newline(nc)) { + saw_newline = true; + p = peek; + continue; + } + if (is_whitespace(nc)) { + p = peek; + continue; + } + break; + } + if (!is_newline(nc)) + break; + p = peek; + } +} + +inline void scan_bloom_words(const char*& p, const char* end) { + while (p < end) { + const char* peek = p; + if (!is_bloom_word_char(read_utf8(peek, end))) + break; + p = peek; + } +} + +// Emit whitespace run, leaving last ws char for next token's optional prefix +inline void emit_whitespace_leave_last(const char*& p, const char* end, const char* start, + std::vector& result) { + const char* last_ws_start = start; + while (p < end) { + const char* peek = p; + char32_t nc = read_utf8(peek, end); + if (!is_whitespace(nc)) + break; + last_ws_start = p; + p = peek; + } + if (p < end && last_ws_start > start) { + p = last_ws_start; + } + result.emplace_back(start, p); +} + +// ── Contraction matching ── + +inline bool is_two_char_contraction(char c1, char c2) { + return (c1 == 'r' && c2 == 'e') || (c1 == 'v' && c2 == 'e') || (c1 == 'l' && c2 == 'l'); +} + +// Returns length of contraction suffix after apostrophe ('s 't 'm 'd 're 've 'll) +inline int match_contraction_suffix(const char* p, const char* end) { + if (p >= end) + return 0; + char c = *p; + if (c == 's' || c == 't' || c == 'm' || c == 'd') + return 1; + if (p + 1 < end && is_two_char_contraction(c, p[1])) + return 2; + return 0; +} + +// ── GPT-2/Qwen3 pre-tokenize dispatch helpers ── + +// Handle apostrophe: either contraction or "other" chars run +inline bool try_contraction(char32_t cp, const char*& p, const char* end, const char* start, + std::vector& result) { + if (cp != '\'') + return false; + int suffix = match_contraction_suffix(p, end); + if (suffix > 0) { + p += suffix; + } else { + scan_others(p, end); + } + result.emplace_back(start, p); + return true; +} + +// Handle optional prefix + letter/digit/other run +inline bool try_prefix_run(char32_t cp, const char*& p, const char* end, const char* start, + Variant variant, std::vector& result) { + if (!is_prefix(cp, variant) || p >= end) + return false; + const char* after_prefix = p; + char32_t next_cp = read_utf8(p, end); + + if (is_letter(next_cp)) { + scan_letters(p, end); + result.emplace_back(start, p); + return true; + } + if (is_digit(next_cp)) { + // The regex prefix [^\r\n\p{L}\p{N}]? only applies before \p{L}+ (letters). + // Digits are matched by standalone \p{N} — no prefix. Back up so the + // digit is handled by try_simple_run instead. + if (variant == Variant::kQwen3) { + p = after_prefix; + return false; + } + scan_digits(p, end); + result.emplace_back(start, p); + return true; + } + if (!is_whitespace(next_cp)) { + scan_others(p, end); + if (variant == Variant::kQwen3) + scan_newlines(p, end); + result.emplace_back(start, p); + return true; + } + // Prefix followed by whitespace — back up, let whitespace handler deal with it + p = after_prefix; + return false; +} + +// Check if a whitespace run contains any newline character +inline bool has_newline_in_ws(char32_t first_cp, const char* p, const char* end) { + if (is_newline(first_cp)) + return true; + const char* scan = p; + while (scan < end) { + const char* peek = scan; + char32_t nc = read_utf8(peek, end); + if (!is_whitespace(nc)) + break; + if (is_newline(nc)) + return true; + scan = peek; + } + return false; +} + +// Handle whitespace (Qwen3 newline sequences + general whitespace) +inline bool try_whitespace_run(char32_t cp, const char*& p, const char* end, const char* start, + Variant variant, std::vector& result) { + if (!is_whitespace(cp)) + return false; + + // kClip is selected only for CLIP's Removed + inverted Split contract, + // which retains regex matches and removes the gaps. Whitespace therefore + // never reaches ByteLevel. + if (variant == Variant::kClip) { + scan_all_whitespace(p, end); + return true; + } + + // Qwen3: \s*[\r\n]+ — newline sequences take priority + if (variant == Variant::kQwen3 && has_newline_in_ws(cp, p, end)) { + scan_qwen3_newline_chunk(cp, p, end); + result.emplace_back(start, p); + return true; + } + + // General whitespace: leave last ws char for next token's prefix + emit_whitespace_leave_last(p, end, start, result); + return true; +} + +// Handle letter or digit run (no prefix) +inline bool try_simple_run(char32_t cp, const char*& p, const char* end, const char* start, + Variant variant, std::vector& result, int digit_group = 0) { + if (is_letter(cp)) { + scan_letters(p, end); + result.emplace_back(start, p); + return true; + } + if (is_digit(cp)) { + if (variant == Variant::kQwen3) { + if (digit_group > 1) + scan_digits(p, end, digit_group - 1); + } else if (variant != Variant::kClip) { + scan_digits(p, end); + } + result.emplace_back(start, p); + return true; + } + return false; +} + +// ── Main pre-tokenize functions ── + +std::vector pre_tokenize(const std::string& text, Variant variant, + int digit_group = 0) { + std::vector result; + if (text.empty()) + return result; + + const char* p = text.data(); + const char* end = p + text.size(); + + while (p < end) { + const char* start = p; + char32_t cp = read_utf8(p, end); + + if (try_contraction(cp, p, end, start, result)) + continue; + if (try_prefix_run(cp, p, end, start, variant, result)) + continue; + if (try_whitespace_run(cp, p, end, start, variant, result)) + continue; + if (try_simple_run(cp, p, end, start, variant, result, digit_group)) + continue; + + // Other chars (punctuation/symbols) + scan_others(p, end); + if (variant == pretok::Variant::kQwen3) { + // Qwen3's ` ?[^\s\p{L}\p{N}]+[\r\n]*` keeps trailing newlines + // attached to punctuation/symbol runs even without an optional prefix. + scan_newlines(p, end); + } + result.emplace_back(start, p); + } + + return result; +} + +// Return the end of a BLOOM Split-regex match beginning at `start`. +// The regex is " ?[^(\s|[.,!?...])]+": an optional ASCII space followed by +// one or more non-whitespace, non-punctuation characters. +const char* bloom_match_end(const char* start, const char* end) { + const char* p = start; + char32_t cp = read_utf8(p, end); + if (cp == ' ') { + if (p >= end) + return nullptr; + cp = read_utf8(p, end); + if (!is_bloom_word_char(cp)) + return nullptr; + } else if (!is_bloom_word_char(cp)) { + return nullptr; + } + scan_bloom_words(p, end); + return p; +} + +// BLOOM uses Split(..., behavior="Isolated", invert=false) followed by +// ByteLevel(use_regex=false). Regex matches are isolated, while every +// contiguous unmatched span remains a single pre-token. In particular, +// punctuation and adjacent newlines must stay together so BPE can merge +// strings such as ".\n\n". +std::vector bloom_pre_tokenize(const std::string& text) { + std::vector result; + if (text.empty()) + return result; + + const char* p = text.data(); + const char* end = p + text.size(); + + while (p < end) { + const char* start = p; + if (const char* match_end = bloom_match_end(start, end)) { + result.emplace_back(start, match_end); + p = match_end; + continue; + } + + // Preserve one contiguous unmatched span until the next regex match. + read_utf8(p, end); + while (p < end && bloom_match_end(p, end) == nullptr) + read_utf8(p, end); + result.emplace_back(start, p); + } + + return result; +} + +} // namespace pretok + +// ─── BpeTokenizer implementation ─── + +class BpeTokenizer final : public ITokenizer { + public: + static std::unique_ptr Create(const char* tokenizer_json_data, + std::size_t tokenizer_json_size, + bool add_special_tokens = false) { + auto tokenizer = std::unique_ptr(new BpeTokenizer()); + tokenizer->mAddSpecialTokens = add_special_tokens; + tokenizer->parse_tokenizer_json(tokenizer_json_data, tokenizer_json_size); + return tokenizer; + } + + void encode_segment(const std::string& text, std::vector& result) const { + const auto normalized = normalize_text(text); + if (mIsSentencePiece) { + encode_sentencepiece(normalized, result); + } else if (mIsMetaspace) { + encode_metaspace(normalized, result); + } else { + encode_bytelevel(normalized, result); + } + } + + std::vector encode(const std::string& text) const override { + std::vector result; + if (text.empty()) + return result; + + if (mAddSpecialTokens) { + for (int32_t bos_id : mPostBosIds) + result.push_back(bos_id); + } + + auto segments = split_added_tokens(text); + for (const auto& seg : segments) { + if (seg.added_id >= 0) + result.push_back(seg.added_id); + else + encode_segment(seg.text, result); + } + + if (mAddSpecialTokens) { + for (int32_t eos_id : mPostEosIds) + result.push_back(eos_id); + } + + return result; + } + + std::string decode(const std::vector& ids) const override { + std::string joined = join_vocab_tokens(ids); + switch (mDecoderType) { + case DecoderType::kByteLevel: + return byte_decode(joined); + case DecoderType::kMetaspace: + return decode_metaspace(joined); + case DecoderType::kSequence: + return decode_sequence(joined); + } + return byte_decode(joined); + } + + int32_t id_for_token(std::string_view token) const override { + auto it = mTokenToId.find(std::string(token)); + return it != mTokenToId.end() ? it->second : -1; + } + + std::string token_for_id(int32_t id) const override { + if (id >= 0 && static_cast(id) < mVocab.size()) { + return mVocab[id]; + } + return ""; + } + + private: + BpeTokenizer() = default; + + enum class DecoderType { kByteLevel, kMetaspace, kSequence }; + + std::string normalize_text(const std::string& text) const { + if (!mNormalizeLowercase && !mNormalizeWhitespace) { + return text; + } + + std::string normalized; + normalized.reserve(text.size()); + const char* cursor = text.data(); + const char* end = cursor + text.size(); + bool previous_was_whitespace = false; + while (cursor < end) { + const char* char_start = cursor; + const char32_t cp = read_utf8(cursor, end); + if (mNormalizeWhitespace && pretok::is_whitespace(cp)) { + if (!previous_was_whitespace) { + normalized.push_back(' '); + } + previous_was_whitespace = true; + continue; + } + previous_was_whitespace = false; + if (mNormalizeLowercase && cp >= 'A' && cp <= 'Z') { + normalized.push_back(static_cast(cp - 'A' + 'a')); + } else { + normalized.append(char_start, cursor); + } + } + return normalized; + } + + // ─── Added token segmentation ─── + + struct Segment { + std::string text; + int32_t added_id; /* -1 = normal */ + }; + + std::pair find_longest_added_token(const std::string& text, size_t pos) const { + int32_t best_id = -1; + size_t best_len = 0; + for (const auto& [content, id] : mAddedTokenPatterns) { + if (pos + content.size() <= text.size() && content.size() > best_len && + text.compare(pos, content.size(), content) == 0) { + best_id = id; + best_len = content.size(); + } + } + return {best_id, best_len}; + } + + std::vector split_added_tokens(const std::string& text) const { + std::vector segments; + if (mAddedTokenPatterns.empty()) { + segments.push_back({text, -1}); + return segments; + } + size_t pos = 0; + while (pos < text.size()) { + auto [best_id, best_len] = find_longest_added_token(text, pos); + if (best_id >= 0) { + segments.push_back({text.substr(pos, best_len), best_id}); + pos += best_len; + } else { + if (segments.empty() || segments.back().added_id >= 0) { + segments.push_back({"", -1}); + } + segments.back().text.push_back(text[pos]); + ++pos; + } + } + return segments; + } + + // ─── Encoding helpers ─── + + // Metaspace encode (DeepSeek style): raw UTF-8 char split, BPE merge. + // Spaces are dropped (not in vocab), Ġ (U+0120) used as separator. + void encode_metaspace(const std::string& text, std::vector& result) const { + std::vector chars; + const char* cp = text.data(); + const char* ce = cp + text.size(); + while (cp < ce) { + const char* cs = cp; + read_utf8(cp, ce); + std::string ch(cs, cp); + if (mTokenToId.count(ch)) { + chars.push_back(std::move(ch)); + } + } + auto tokens = apply_merges(std::move(chars)); + for (const auto& token : tokens) { + auto it = mTokenToId.find(token); + if (it != mTokenToId.end()) { + result.push_back(it->second); + } + } + } + + // SentencePiece-style encode: replace spaces with ▁, split to chars, BPE merge. + // Used for Metaspace pre-tokenizer and Sequence decoder models (LLaMA, Mistral, Phi-3). + // Normalize text for SentencePiece: replace spaces with ▁, handle prepend + std::string normalize_sentencepiece(const std::string& text) const { + static const std::string sp = "\xe2\x96\x81"; // U+2581 + std::string out; + if (mSentencePiecePrependAlways) { + out = sp; + } + for (char c : text) { + out += (c == ' ') ? sp : std::string(1, c); + } + // Metaspace prepend_scheme=first: prepend if not already starting with ▁ + if (!mSentencePiecePrependAlways && mSentencePiecePrependIfMissing && + (out.empty() || out.compare(0, sp.size(), sp) != 0)) { + out = sp + out; + } + return out; + } + + void encode_sentencepiece(const std::string& text, std::vector& result) const { + std::string normalized = normalize_sentencepiece(text); + + // Split into UTF-8 characters + std::vector chars; + const char* cp = normalized.data(); + const char* ce = cp + normalized.size(); + while (cp < ce) { + const char* cs = cp; + read_utf8(cp, ce); + chars.emplace_back(cs, cp); + } + + // byte_fallback: replace unknown chars with <0xXX> + if (mByteFallback) { + chars = apply_byte_fallback_encode(std::move(chars)); + } + + // BPE merge and lookup + auto tokens = apply_merges(std::move(chars)); + for (const auto& token : tokens) { + auto it = mTokenToId.find(token); + if (it != mTokenToId.end()) { + result.push_back(it->second); + } + } + } + + // For byte_fallback: replace chars not in vocab with <0xXX> byte tokens + std::vector apply_byte_fallback_encode(std::vector chars) const { + std::vector result; + for (auto& ch : chars) { + if (mTokenToId.count(ch)) { + result.push_back(std::move(ch)); + } else { + // Split into individual bytes as <0xXX> + for (unsigned char byte : ch) { + char buf[8]; + std::snprintf(buf, sizeof(buf), "<0x%02X>", byte); + result.push_back(std::string(buf)); + } + } + } + return result; + } + + void encode_bytelevel(const std::string& text, std::vector& result) const { + std::vector words; + if (!mUsePreTokenizer) { + words = fallback_pre_tokenize(text); + } else if (mPreTokenizerVariant == pretok::Variant::kBloom) { + words = pretok::bloom_pre_tokenize(text); + } else { + words = pretok::pre_tokenize(text, mPreTokenizerVariant, mPreTokenizerDigitGroup); + } + + for (const auto& word : words) { + auto chars = byte_encode(word); + if (!chars.empty() && !mEndOfWordSuffix.empty()) { + chars.back() += mEndOfWordSuffix; + } + auto tokens = apply_merges(std::move(chars)); + for (const auto& token : tokens) { + auto it = mTokenToId.find(token); + if (it != mTokenToId.end()) { + result.push_back(it->second); + } + } + } + } + + // ─── Decoding helpers ─── + + std::string join_vocab_tokens(const std::vector& ids) const { + std::string joined; + for (int32_t id : ids) { + if (mSpecialIds.count(id)) + continue; + if (id >= 0 && static_cast(id) < mVocab.size()) { + joined += mVocab[id]; + } + } + return joined; + } + + std::string decode_metaspace(const std::string& joined) const { + std::string result; + const std::string spiece_char = "\xe2\x96\x81"; // U+2581 + size_t pos = 0; + while (pos < joined.size()) { + if (pos + spiece_char.size() <= joined.size() && + joined.compare(pos, spiece_char.size(), spiece_char) == 0) { + result.push_back(' '); + pos += spiece_char.size(); + } else { + result.push_back(joined[pos]); + ++pos; + } + } + if (!result.empty() && result[0] == ' ') { + result.erase(0, 1); + } + return result; + } + + // ─── Sequence decoder (SentencePiece BPE models: LLaMA, Mistral, Phi-3) ─── + + std::string decode_sequence(const std::string& joined) const { + std::string text = joined; + // Step 1: Apply Replace operations (e.g. ▁ → space) + for (const auto& rep : mSeqDecoderReplaces) { + text = string_replace_all(text, rep.pattern, rep.content); + } + // Step 2: ByteFallback — convert <0xXX> tokens to raw bytes + if (mSeqDecoderByteFallback) { + text = apply_byte_fallback(text); + } + // Step 3: Fuse is implicit (tokens already joined) + // Step 4: Strip leading space + if (mSeqDecoderStripLeft && !text.empty() && text[0] == ' ') { + text.erase(0, 1); + } + return text; + } + + static std::string string_replace_all(const std::string& input, const std::string& from, + const std::string& to) { + if (from.empty()) + return input; + std::string result; + result.reserve(input.size()); + size_t pos = 0; + while (pos < input.size()) { + if (pos + from.size() <= input.size() && input.compare(pos, from.size(), from) == 0) { + result += to; + pos += from.size(); + } else { + result.push_back(input[pos]); + ++pos; + } + } + return result; + } + + static int hex_char_value(char c) { + if (c >= '0' && c <= '9') + return c - '0'; + if (c >= 'a' && c <= 'f') + return c - 'a' + 10; + if (c >= 'A' && c <= 'F') + return c - 'A' + 10; + return -1; + } + + // Try to parse <0xXX> at position pos. Returns parsed byte or -1. + static int try_parse_byte_token(const std::string& text, size_t pos) { + if (pos + 6 > text.size()) + return -1; + if (text[pos] != '<' || text[pos + 1] != '0' || text[pos + 2] != 'x' || + text[pos + 5] != '>') + return -1; + int h = hex_char_value(text[pos + 3]); + int l = hex_char_value(text[pos + 4]); + if (h < 0 || l < 0) + return -1; + return (h << 4) | l; + } + + static std::string apply_byte_fallback(const std::string& text) { + std::string result; + result.reserve(text.size()); + size_t pos = 0; + while (pos < text.size()) { + int byte_val = try_parse_byte_token(text, pos); + if (byte_val >= 0) { + result.push_back(static_cast(byte_val)); + pos += 6; + } else { + result.push_back(text[pos]); + ++pos; + } + } + return result; + } + + // ─── Byte-level encoding ─── + + static std::vector byte_encode(const std::string& text) { + const auto& tables = byte_tables(); + std::vector result; + result.reserve(text.size()); + for (unsigned char byte : text) { + result.push_back(tables.byte_to_utf8[byte]); + } + return result; + } + + static std::string byte_decode(const std::string& text) { + const auto& tables = byte_tables(); + std::string result; + result.reserve(text.size()); + size_t pos = 0; + while (pos < text.size()) { + size_t start = pos; + char32_t cp = utf8_to_char32(text, pos); + auto it = tables.cp_to_byte.find(cp); + if (it != tables.cp_to_byte.end()) { + result.push_back(static_cast(it->second)); + } else { + // Not a GPT-2 byte-encoded codepoint — pass through raw UTF-8 + result.append(text, start, pos - start); + } + } + return result; + } + + // Generic pre-tokenizer used when no GPT-2 pattern is declared. + + static std::vector fallback_pre_tokenize(const std::string& text) { + std::vector result; + if (text.empty()) + return result; + result.push_back(text); + return result; + } + + // ─── BPE merge algorithm ─── + + struct MergeCandidate { + int rank; + std::string first; + std::string second; + }; + + MergeCandidate find_best_merge(const std::vector& tokens) const { + MergeCandidate best{INT_MAX, "", ""}; + for (size_t i = 0; i + 1 < tokens.size(); ++i) { + auto it = + mMergeRank.find(std::make_pair(std::cref(tokens[i]), std::cref(tokens[i + 1]))); + if (it != mMergeRank.end() && it->second < best.rank) { + best = {it->second, tokens[i], tokens[i + 1]}; + } + } + return best; + } + + static std::vector merge_all_pairs(std::vector tokens, + const std::string& first, + const std::string& second) { + std::string merged = first + second; + std::vector result; + result.reserve(tokens.size()); + for (size_t i = 0; i < tokens.size(); ++i) { + if (i + 1 < tokens.size() && tokens[i] == first && tokens[i + 1] == second) { + result.push_back(merged); + ++i; // skip next + } else { + result.push_back(std::move(tokens[i])); + } + } + return result; + } + + // Optimized: merge ALL occurrences of the best pair per pass. + std::vector apply_merges(std::vector tokens) const { + if (tokens.size() <= 1) + return tokens; + + while (true) { + auto best = find_best_merge(tokens); + if (best.rank == INT_MAX) + break; + tokens = merge_all_pairs(std::move(tokens), best.first, best.second); + if (tokens.size() <= 1) + break; + } + + return tokens; + } + + // ─── JSON parsing helpers ─── + + static bool is_eos_content(const std::string& s) { + return s == "<|endoftext|>" || s == "" || s == "<|end_of_text|>"; + } + + void parse_vocab(const nlohmann::json& j) { + auto& vocab_obj = j["model"]["vocab"]; + size_t vocab_size = vocab_obj.size(); + mVocab.resize(vocab_size); + + for (auto& [token, id] : vocab_obj.items()) { + int32_t token_id = id.get(); + if (token_id >= 0 && token_id < static_cast(vocab_size)) { + mVocab[token_id] = token; + mTokenToId[token] = token_id; + } + } + } + + void parse_merges(const nlohmann::json& j) { + if (!j["model"].contains("merges")) + throw std::runtime_error("Invalid tokenizer.json: missing model.merges"); + + auto& merges_arr = j["model"]["merges"]; + mMergeRank.reserve(merges_arr.size()); + + for (size_t i = 0; i < merges_arr.size(); ++i) { + std::string first, second; + + if (merges_arr[i].is_array()) { + auto arr = merges_arr[i].get>(); + if (arr.size() != 2) + continue; + first = std::move(arr[0]); + second = std::move(arr[1]); + } else if (merges_arr[i].is_string()) { + std::string merge_str = merges_arr[i].get(); + auto space_pos = merge_str.find(' '); + if (space_pos == std::string::npos) + continue; + first = merge_str.substr(0, space_pos); + second = merge_str.substr(space_pos + 1); + } else { + continue; + } + + auto pair = std::make_pair(std::move(first), std::move(second)); + mMergeRank[pair] = static_cast(i); + } + } + + void parse_added_tokens(const nlohmann::json& j) { + if (!j.contains("added_tokens")) + return; + for (auto& tok : j["added_tokens"]) { + std::string content = tok["content"].get(); + int32_t id = tok["id"].get(); + + if (id >= 0 && static_cast(id) >= mVocab.size()) { + mVocab.resize(static_cast(id) + 1); + } + if (id >= 0) { + mVocab[id] = content; + mTokenToId[content] = id; + } + + if (tok.value("special", false)) { + mSpecialTokens[content] = id; + mSpecialIds.insert(id); + if (is_eos_content(content)) + mEosId = id; + } + // All added tokens (special and non-special) participate in pre-split + // matching during encode, matching HuggingFace's AddedToken behavior. + // The special flag only controls decode filtering (mSpecialIds) and + // post_processor BOS/EOS insertion. + mAddedTokenPatterns.push_back({content, id}); + } + // Sort by length descending for longest-match-first + std::sort(mAddedTokenPatterns.begin(), mAddedTokenPatterns.end(), + [](const auto& a, const auto& b) { return a.first.size() > b.first.size(); }); + } + + // Parse digit group size from regex pattern like \p{N}{1,3} → 3. + // Returns 0 if no digit grouping found (single digit or unlimited). + static int parse_digit_group(const std::string& regex) { + // Search for "\p{N}{" — the standalone grouped variant, not [^\p{N}] + auto pos = regex.find("\\p{N}{"); + if (pos == std::string::npos) + return 0; + auto open = pos + 6; // after "\\p{N}{" + auto close = regex.find('}', open); + if (close == std::string::npos) + return 0; + auto comma = regex.find(',', open); + if (comma == std::string::npos || comma >= close) + return 0; + return std::stoi(regex.substr(comma + 1, close - comma - 1)); + } + + static bool is_clip_split_regex(const std::string& regex) { + const bool has_boundary_token = regex.find("startoftext") != std::string::npos || + regex.find("endoftext") != std::string::npos; + return has_boundary_token && regex.find("\\p{L}") != std::string::npos && + regex.find("\\p{N}") != std::string::npos; + } + + static pretok::Variant classify_clip_split(const nlohmann::json& split) { + const auto behavior = split.value("behavior", ""); + const bool invert = split.value("invert", false); + if (behavior == "Removed" && invert) + return pretok::Variant::kClip; + if (behavior == "Isolated" && invert) + return pretok::Variant::kGpt2; + throw std::runtime_error("Unsupported CLIP Split contract: behavior=" + behavior + + ", invert=" + (invert ? "true" : "false")); + } + + static bool is_qwen3_split_regex(const std::string& regex) { + return regex.find("[^\r\n") != std::string::npos || + regex.find("[^\\r\\n") != std::string::npos; + } + + static bool is_bloom_split_regex(const std::string& regex) { + return regex.find("[^(\\s") != std::string::npos || + regex.find("[^(\\\\s") != std::string::npos; + } + + // Classify one Split pre-tokenizer from both its pattern and contract. + static pretok::Variant classify_split(const nlohmann::json& split, int& digit_group_out) { + const auto regex = split["pattern"]["Regex"].get(); + if (is_clip_split_regex(regex)) + return classify_clip_split(split); + if (is_qwen3_split_regex(regex)) { + digit_group_out = parse_digit_group(regex); + return pretok::Variant::kQwen3; + } + if (is_bloom_split_regex(regex)) { + return pretok::Variant::kBloom; + } + if (regex.find("\\s?[A-Za-z") != std::string::npos) { + return pretok::Variant::kDeepSeek; + } + return pretok::Variant::kGpt2; + } + + // Detect variant from the Split inside a Sequence pre_tokenizer. + static pretok::Variant detect_split_variant(const nlohmann::json& pt, int& digit_group_out) { + digit_group_out = 0; + if (!pt.contains("pretokenizers")) + return pretok::Variant::kGpt2; + for (auto& sub : pt["pretokenizers"]) { + if (sub.value("type", "") != "Split") + continue; + if (!sub.contains("pattern") || !sub["pattern"].contains("Regex")) + continue; + return classify_split(sub, digit_group_out); + } + return pretok::Variant::kGpt2; + } + + static bool is_space_split_pre_tokenizer(const nlohmann::json& pt, const std::string& pt_type) { + if (pt_type != "Split") + return false; + if (!pt.contains("pattern") || !pt["pattern"].contains("String")) + return false; + return pt["pattern"]["String"].get() == " "; + } + + void detect_pre_tokenizer(const nlohmann::json& j) { + mUsePreTokenizer = true; + mPreTokenizerVariant = pretok::Variant::kGpt2; + + if (!j.contains("pre_tokenizer") || j["pre_tokenizer"].is_null()) + return; + auto& pt = j["pre_tokenizer"]; + std::string pt_type = pt.value("type", ""); + + if (pt_type == "ByteLevel") { + mPreTokenizerVariant = pretok::Variant::kGpt2; + } else if (pt_type == "Sequence") { + int digit_group = 0; + mPreTokenizerVariant = detect_split_variant(pt, digit_group); + mPreTokenizerDigitGroup = digit_group; + } else if (is_space_split_pre_tokenizer(pt, pt_type)) { + // Gemma SentencePiece-BPE tokenizers use a direct Split(" ") + // pre-tokenizer with spaces already normalized to U+2581. + mUsePreTokenizer = false; + } else if (pt_type == "Metaspace") { + mIsMetaspace = true; + mUsePreTokenizer = false; + } else if (pt_type.empty()) { + mUsePreTokenizer = false; + } else { + throw std::runtime_error("Unsupported pre_tokenizer type: " + pt_type); + } + } + + DecoderType classify_decoder_type(const nlohmann::json& j) const { + if (!j.contains("decoder") || j["decoder"].is_null()) { + return mIsMetaspace ? DecoderType::kMetaspace : DecoderType::kByteLevel; + } + std::string dt = j["decoder"].value("type", ""); + if (dt == "ByteLevel") + return DecoderType::kByteLevel; + if (dt == "Metaspace") + return DecoderType::kMetaspace; + if (dt == "Sequence") + return DecoderType::kSequence; + return mIsMetaspace ? DecoderType::kMetaspace : DecoderType::kByteLevel; + } + + void detect_decoder(const nlohmann::json& j) { + mDecoderType = classify_decoder_type(j); + if (mDecoderType == DecoderType::kSequence) { + parse_sequence_decoder(j["decoder"]); + } + // SentencePiece encode: vocab uses ▁ (U+2581) for spaces. + // Detect by: (1) ▁ in vocabulary, or (2) normalizer prepends ▁. + static const std::string spiece_marker = "\xe2\x96\x81"; // U+2581 + mIsSentencePiece = mTokenToId.count(spiece_marker) > 0 || mSentencePiecePrependAlways; + } + + void parse_seq_decoder_replace(const nlohmann::json& sub) { + SeqDecoderReplace rep; + if (sub.contains("pattern") && sub["pattern"].contains("String")) { + rep.pattern = sub["pattern"]["String"].get(); + } + rep.content = sub.value("content", ""); + if (!rep.pattern.empty()) { + mSeqDecoderReplaces.push_back(std::move(rep)); + } + } + + void parse_sequence_decoder(const nlohmann::json& dec) { + if (!dec.contains("decoders")) + return; + for (auto& sub : dec["decoders"]) { + std::string sub_type = sub.value("type", ""); + if (sub_type == "Replace") { + parse_seq_decoder_replace(sub); + } else if (sub_type == "ByteFallback") { + mSeqDecoderByteFallback = true; + } else if (sub_type == "Strip") { + if (sub.value("content", " ") == " " && sub.value("start", 0) > 0) { + mSeqDecoderStripLeft = true; + } + } + // Fuse is implicit (tokens already joined) + } + } + + static std::string optional_model_string(const nlohmann::json& model, const char* key) { + auto it = model.find(key); + if (it != model.end() && it->is_string()) + return it->get(); + return {}; + } + + void parse_tokenizer_json(const char* json_data, std::size_t json_size) { + nlohmann::json j; + try { + j = nlohmann::json::parse(json_data, json_data + json_size); + } catch (const std::exception& e) { + throw std::runtime_error(std::string("Failed to parse tokenizer.json: ") + e.what()); + } + + if (!j.contains("model")) + throw std::runtime_error("Invalid tokenizer.json: missing model"); + auto& model = j["model"]; + if (!model.contains("vocab") || !model["vocab"].is_object()) + throw std::runtime_error("Invalid tokenizer.json: model.vocab must be an object"); + if (!model.contains("merges") || !model["merges"].is_array()) + throw std::runtime_error("Invalid tokenizer.json: model.merges must be an array"); + + mByteFallback = model.value("byte_fallback", false); + mEndOfWordSuffix = optional_model_string(model, "end_of_word_suffix"); + parse_vocab(j); + parse_merges(j); + parse_added_tokens(j); + parse_post_processor(j); + detect_normalizer(j); + detect_pre_tokenizer(j); + detect_decoder(j); + } + + // Detect normalizer: check for Prepend (always prepend ▁) vs none + static bool normalizer_sequence_prepends(const nlohmann::json& norm, + const std::string& norm_type) { + if (norm_type != "Sequence" || !norm.contains("normalizers")) + return false; + for (auto& sub : norm["normalizers"]) { + if (sub.value("type", "") == "Prepend") + return true; + } + return false; + } + + static bool normalizer_replaces_space_with_sentence_piece(const nlohmann::json& norm, + const std::string& norm_type) { + if (norm_type == "Sequence" && norm.contains("normalizers")) { + for (const auto& sub : norm["normalizers"]) { + if (normalizer_replaces_space_with_sentence_piece(sub, sub.value("type", ""))) { + return true; + } + } + return false; + } + if (norm_type != "Replace") + return false; + if (!norm.contains("pattern") || !norm["pattern"].contains("String")) + return false; + if (norm["pattern"]["String"].get() != " ") + return false; + return norm.value("content", "") == "\xe2\x96\x81"; + } + + void detect_normalizer(const nlohmann::json& j) { + if (!j.contains("normalizer") || j["normalizer"].is_null()) + return; + auto& norm = j["normalizer"]; + std::string norm_type = norm.value("type", ""); + detect_text_normalizers(norm); + if (normalizer_sequence_prepends(norm, norm_type)) { + mSentencePiecePrependAlways = true; + } else if (normalizer_replaces_space_with_sentence_piece(norm, norm_type)) { + // Gemma replaces spaces with ▁ but does not prepend ▁ to the + // first token. Preserve the old prepend-if-missing behavior for + // Metaspace-style SentencePiece models. + mSentencePiecePrependIfMissing = false; + } + } + + void detect_text_normalizers(const nlohmann::json& normalizer) { + const std::string type = normalizer.value("type", ""); + if (type == "Sequence" && normalizer.contains("normalizers")) { + for (const auto& child : normalizer["normalizers"]) { + detect_text_normalizers(child); + } + return; + } + if (type == "Lowercase") { + mNormalizeLowercase = true; + return; + } + if (type == "Replace" && normalizer.contains("pattern") && + normalizer["pattern"].contains("Regex") && + normalizer["pattern"]["Regex"].get() == "\\s+" && + normalizer.value("content", "") == " ") { + mNormalizeWhitespace = true; + } + } + + // Parse post_processor to extract BOS/EOS tokens for add_special_tokens + void parse_post_processor(const nlohmann::json& j) { + if (!j.contains("post_processor") || j["post_processor"].is_null()) + return; + auto& pp = j["post_processor"]; + std::string pp_type = pp.value("type", ""); + + if (pp_type == "TemplateProcessing") { + parse_template_post_processor(pp); + } else if (pp_type == "Sequence") { + parse_sequence_post_processor(pp); + } else if (pp_type == "RobertaProcessing") { + parse_roberta_post_processor(pp); + } + // ByteLevel post_processor doesn't add tokens, nothing to do + } + + // Iterate Sequence post_processor's processors array to find TemplateProcessing + void parse_sequence_post_processor(const nlohmann::json& pp) { + if (!pp.contains("processors")) + return; + for (auto& sub : pp["processors"]) { + if (sub.value("type", "") == "TemplateProcessing") { + parse_template_post_processor(sub); + return; // first TemplateProcessing wins + } + } + } + + // RobertaProcessing: {"type":"RobertaProcessing","cls":["",0],"sep":["",2],...} + void parse_roberta_post_processor(const nlohmann::json& pp) { + if (pp.contains("cls") && pp["cls"].is_array() && pp["cls"].size() >= 2) { + int32_t cls_id = pp["cls"][1].get(); + mPostBosIds.push_back(cls_id); + } + if (pp.contains("sep") && pp["sep"].is_array() && pp["sep"].size() >= 2) { + int32_t sep_id = pp["sep"][1].get(); + mPostEosIds.push_back(sep_id); + } + } + + int32_t resolve_special_token_id(const nlohmann::json& entry) const { + if (!entry.contains("SpecialToken")) + return -1; + std::string token_id = entry["SpecialToken"].value("id", ""); + if (token_id.empty()) + return -1; + auto it = mSpecialTokens.find(token_id); + return it != mSpecialTokens.end() ? it->second : -1; + } + + void parse_template_post_processor(const nlohmann::json& pp) { + if (!pp.contains("single")) + return; + bool seen_sequence = false; + for (auto& entry : pp["single"]) { + if (entry.contains("Sequence")) { + seen_sequence = true; + continue; + } + int32_t id = resolve_special_token_id(entry); + if (id < 0) + continue; + if (seen_sequence) { + mPostEosIds.push_back(id); + } else { + mPostBosIds.push_back(id); + } + } + } + + // ─── Data members ─── + + std::vector mVocab; + std::unordered_map mTokenToId; + + struct PairHash { + size_t operator()(const std::pair& p) const { + size_t h1 = std::hash{}(p.first); + size_t h2 = std::hash{}(p.second); + return h1 ^ (h2 * 0x9e3779b97f4a7c15ULL + 0x9e3779b9 + (h1 << 6) + (h1 >> 2)); + } + }; + + std::unordered_map, int, PairHash> mMergeRank; + + std::unordered_map mSpecialTokens; + std::unordered_set mSpecialIds; // O(1) lookup in decode() + int32_t mEosId = -1; + + // Non-special added tokens: matched before pre-tokenization (longest first) + std::vector> mAddedTokenPatterns; + + bool mAddSpecialTokens = false; + bool mUsePreTokenizer = true; + bool mIsMetaspace = false; // Set by detect_pre_tokenizer. + bool mIsSentencePiece = false; + bool mSentencePiecePrependAlways = + false; // true for Normalizer Prepend, false for Metaspace first + bool mSentencePiecePrependIfMissing = true; + bool mByteFallback = false; + bool mNormalizeLowercase = false; + bool mNormalizeWhitespace = false; + std::string mEndOfWordSuffix; + + // Post-processor: BOS/EOS token IDs to add when add_special_tokens=true + // Vectors to support multiple BOS/EOS tokens (e.g. GLM-4: [gMASK] + ) + std::vector mPostBosIds; + std::vector mPostEosIds; + pretok::Variant mPreTokenizerVariant = pretok::Variant::kGpt2; + int mPreTokenizerDigitGroup = 0; // 0=unlimited, 3=\p{N}{1,3} (LLaMA 3.1/GLM-4) + + DecoderType mDecoderType = DecoderType::kByteLevel; + + // Sequence decoder config (parsed from tokenizer.json decoder field) + struct SeqDecoderReplace { + std::string pattern; + std::string content; + }; + std::vector mSeqDecoderReplaces; + bool mSeqDecoderByteFallback = false; + bool mSeqDecoderStripLeft = false; +}; + +} // namespace + +std::unique_ptr CreateBpeTokenizer(const char* tokenizer_json_data, + std::size_t tokenizer_json_size, + bool add_special_tokens) { + return BpeTokenizer::Create(tokenizer_json_data, tokenizer_json_size, add_special_tokens); +} + +} // namespace trtmc::parakeet_tdt diff --git a/families/parakeet_tdt/runtime/pipeline.cpp b/families/parakeet_tdt/runtime/pipeline.cpp new file mode 100644 index 0000000000..480590c786 --- /dev/null +++ b/families/parakeet_tdt/runtime/pipeline.cpp @@ -0,0 +1,299 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +#include "families/parakeet_tdt/runtime/pipeline.h" + +#include "families/parakeet_tdt/runtime/audio_helpers.h" +#include "families/parakeet_tdt/runtime/audio_input.h" + +#include +#include +#include +#include +#include +#include + +namespace trtmc::parakeet_tdt { +namespace { +const internal::ConfigField fields[] = { + {"max_new_tokens", internal::ConfigKind::I64, internal::ConfigValue{int64_t{256}}, + "Maximum emitted transcript tokens"}, +}; +void validate_float_outputs(const TensorMap& outputs) { + for (const auto& item : outputs) { + const auto& tensor = item.second; + if (tensor.dtype != DType::kFloat32 || tensor.data == nullptr || tensor.shape.empty() || + std::any_of(tensor.shape.begin(), tensor.shape.end(), [](auto d) { return d <= 0; })) + throw std::runtime_error("Parakeet TDT requires nonempty FP32 host outputs: " + + item.first); + } +} +Tensor make_tensor(void* data, std::vector shape, DType dtype) { + Tensor t; + t.data = data; + t.shape = std::move(shape); + t.dtype = dtype; + return t; +} + +int32_t infer_encoder_frames(const Tensor& encoder_output, int32_t hidden_size) { + if (hidden_size <= 0) + return 0; + const auto elems = static_cast(encoder_output.numel()); + return elems > 0 ? elems / hidden_size : 0; +} + +int32_t argmax_token(const std::vector& logits) { + if (logits.empty()) + return -1; + return static_cast( + std::distance(logits.begin(), std::max_element(logits.begin(), logits.end()))); +} + +int32_t subsampled_frame_count(int32_t frames, bool causal) { + if (frames <= 0) + return 0; + for (int i = 0; i < 3; ++i) + frames = causal ? (frames / 2 + 1) : ((frames + 2 - 3) / 2 + 1); + return frames; +} +} // namespace +TdtPipeline::TdtPipeline(std::unique_ptr encoder, std::unique_ptr predictor, + std::unique_ptr joint, TdtConfig config, MelFilterbank mel, + std::shared_ptr tokenizer) + : encoder_(std::move(encoder)), predictor_(std::move(predictor)), joint_(std::move(joint)), + config_(std::move(config)), mel_fb_(std::make_unique(std::move(mel))), + tokenizer_(std::move(tokenizer)) { + if (!encoder_ || !predictor_ || !joint_ || !encoder_->ok() || !predictor_->ok() || + !joint_->ok() || !tokenizer_) + throw std::invalid_argument("Parakeet TDT requires three valid engines and a tokenizer"); + validate_tdt_mel_geometry(config_, mel_fb_->n_freq_bins, mel_fb_->n_mel_bins); + if (mel_fb_->data.size() != static_cast(mel_fb_->n_freq_bins) * mel_fb_->n_mel_bins || + config_.sample_rate != 16000 || config_.encoder_hidden_size <= 0 || + config_.pred_hidden_size <= 0 || config_.pred_num_layers <= 0 || config_.blank_id < 0 || + config_.max_symbols_per_step <= 0 || config_.duration_values.empty() || + std::any_of( + config_.duration_values.begin(), config_.duration_values.end(), + [](auto d) { return d < 0; })) + throw std::invalid_argument("invalid Parakeet TDT runtime dimensions"); +} +std::vector TdtPipeline::task_bindings() { + return {internal::bind(*this, fields)}; +} +TextResult TdtPipeline::run(const internal::SpeechTranscriptionRequest& request, + internal::ConfigView options) { + internal::validate_config(fields, options); + const auto limit = internal::config_get(options, fields, "max_new_tokens").value(); + if (limit <= 0 || limit > std::numeric_limits::max()) + throw std::invalid_argument("Parakeet TDT max_new_tokens must be a positive int32"); + const auto audio = tdt::prepare_audio(request); + std::lock_guard lock(mutex_); + const auto start = std::chrono::steady_clock::now(); + int32_t actual_frames = 0; + auto mel = + extract_padded_mel(audio.data(), static_cast(audio.size()), 16000, actual_frames); + if (mel.empty()) + throw std::runtime_error("Parakeet TDT mel extraction returned no features"); + auto encoded = run_encoder(mel, actual_frames); + const auto after_encoder = std::chrono::steady_clock::now(); + std::vector state_h( + static_cast(config_.pred_num_layers) * config_.pred_hidden_size, 0); + auto state_c = state_h; + auto predicted = run_predictor(config_.blank_id, state_h, state_c); + TextResult result; + decode_encoder_frames( + encoded, static_cast(encoded.size() / config_.encoder_hidden_size), + static_cast(limit), predicted, state_h, state_c, result.token_ids); + result.text = tokenizer_->decode(result.token_ids); + result.prefill_ms = std::chrono::duration(after_encoder - start).count(); + result.decode_ms = + std::chrono::duration(std::chrono::steady_clock::now() - after_encoder) + .count(); + return result; +} +std::vector TdtPipeline::extract_padded_mel(const float* audio_data, int32_t num_samples, + int32_t input_sample_rate, + int32_t& actual_frames) const { + const float* samples_ptr = audio_data; + int32_t samples_count = num_samples; + std::vector resampled; + if (input_sample_rate > 0 && input_sample_rate != config_.sample_rate) { + std::cerr << "[tdt] Resampling audio from " << input_sample_rate << " Hz to " + << config_.sample_rate << " Hz" << std::endl; + resampled = + tdt::resample_linear(audio_data, num_samples, input_sample_rate, config_.sample_rate); + samples_ptr = resampled.data(); + samples_count = static_cast(resampled.size()); + } + + tdt::MelResult mel = tdt::extract_tdt_mel_spectrogram( + samples_ptr, samples_count, mel_fb_->data.data(), mel_fb_->n_freq_bins, mel_fb_->n_mel_bins, + config_.mel_n_fft, config_.mel_win_length, config_.mel_hop_length, config_.mel_chunk_length, + config_.sample_rate, config_.mel_preemph); + actual_frames = std::min(mel.n_frames, std::max(0, samples_count / config_.mel_hop_length)); + if (mel.data.empty()) + return {}; + + const int32_t target_frames = config_.mel_length > 0 ? config_.mel_length : mel.n_frames; + std::vector padded(static_cast(mel.n_mels) * target_frames, 0.0F); + const int32_t copy_frames = std::min(mel.n_frames, target_frames); + for (int32_t m = 0; m < mel.n_mels; ++m) { + std::memcpy(padded.data() + static_cast(m) * target_frames, + mel.data.data() + static_cast(m) * mel.n_frames, + static_cast(copy_frames) * sizeof(float)); + } + return padded; +} + +std::vector TdtPipeline::run_encoder(const std::vector& mel, int32_t actual_frames) { + TensorMap inputs; + inputs["mel_features"] = + make_tensor(const_cast(mel.data()), {config_.num_mel_bins, config_.mel_length}, + DType::kFloat32); + + std::vector encoder_mask; + if (encoder_->has_input("encoder_mask")) { + const int32_t max_frames = std::max( + 1, config_.encoder_seq_len > 0 + ? config_.encoder_seq_len + : subsampled_frame_count(config_.mel_length, config_.causal_downsampling)); + int32_t actual_encoder_frames = + std::max(1, subsampled_frame_count(actual_frames, config_.causal_downsampling)); + actual_encoder_frames = std::min(actual_encoder_frames, max_frames); + encoder_mask.assign(static_cast(max_frames) * max_frames, -10000.0F); + for (int32_t q = 0; q < actual_encoder_frames; ++q) { + const int32_t k_begin = + config_.att_context_left < 0 ? 0 : std::max(0, q - config_.att_context_left); + const int32_t k_end = + config_.att_context_right < 0 + ? actual_encoder_frames - 1 + : std::min(actual_encoder_frames - 1, q + config_.att_context_right); + for (int32_t k = k_begin; k <= k_end; ++k) + encoder_mask[static_cast(q) * max_frames + k] = 0.0F; + } + inputs["encoder_mask"] = + make_tensor(encoder_mask.data(), {1, max_frames, max_frames}, DType::kFloat32); + } + + auto outputs = encoder_->forward(inputs); + validate_float_outputs(outputs); + auto it = outputs.find("encoder_output"); + if (it == outputs.end()) + throw std::runtime_error("TdtPipeline: encoder missing 'encoder_output'"); + if (it->second.numel() <= 0 || it->second.numel() % config_.encoder_hidden_size != 0) + throw std::runtime_error("TdtPipeline: encoder output size does not match config"); + const auto frames = infer_encoder_frames(it->second, config_.encoder_hidden_size); + const auto valid_frames = std::min( + frames, std::max(1, subsampled_frame_count(actual_frames, config_.causal_downsampling))); + const auto count = static_cast(valid_frames) * config_.encoder_hidden_size; + const auto* src = static_cast(it->second.data); + return std::vector(src, src + count); +} + +void TdtPipeline::decode_encoder_frames(const std::vector& encoder_output, + int32_t frame_count, int32_t token_limit, + std::vector& pred_output, + std::vector& state_h, std::vector& state_c, + std::vector& emitted) { + int32_t frame = 0; + while (frame < frame_count && static_cast(emitted.size()) < token_limit) { + const float* enc_ptr = + encoder_output.data() + static_cast(frame) * config_.encoder_hidden_size; + const float* enc_frame = enc_ptr; + int32_t symbols_on_frame = 0; + while (static_cast(emitted.size()) < token_limit) { + const auto logits = run_joint(enc_frame, pred_output.data()); + const auto token_count = static_cast(config_.blank_id + 1); + if (logits.size() != token_count + config_.duration_values.size()) + throw std::runtime_error("TdtPipeline: joint output sizes do not match config"); + const std::vector token_logits(logits.begin(), logits.begin() + token_count); + const std::vector duration_logits(logits.begin() + token_count, logits.end()); + const int32_t token = argmax_token(token_logits); + const int32_t duration_index = argmax_token(duration_logits); + if (token < 0) + break; + + const auto decision = make_tdt_greedy_decision( + token, duration_index, config_.duration_values, config_.blank_id); + if (decision.emit_token) { + emitted.push_back(token); + ++symbols_on_frame; + pred_output = run_predictor(token, state_h, state_c); + } + frame += decision.frame_advance; + if (decision.frame_advance > 0) + break; + if (symbols_on_frame >= config_.max_symbols_per_step) { + ++frame; + break; + } + } + } +} + +std::vector TdtPipeline::run_predictor(int32_t token_id, std::vector& state_h, + std::vector& state_c) { + TensorMap inputs; + inputs["token_id"] = make_tensor(&token_id, {1}, DType::kInt32); + const auto layer_stride = static_cast(config_.pred_hidden_size); + for (int32_t layer = 0; layer < config_.pred_num_layers; ++layer) { + const std::string suffix = "_" + std::to_string(layer); + inputs["state_h" + suffix] = + make_tensor(state_h.data() + static_cast(layer) * layer_stride, + {1, config_.pred_hidden_size}, DType::kFloat32); + inputs["state_c" + suffix] = + make_tensor(state_c.data() + static_cast(layer) * layer_stride, + {1, config_.pred_hidden_size}, DType::kFloat32); + } + + auto outputs = predictor_->forward(inputs); + validate_float_outputs(outputs); + auto pred_it = outputs.find("pred_output"); + if (pred_it == outputs.end()) + throw std::runtime_error("TdtPipeline: predictor missing 'pred_output'"); + + if (pred_it->second.numel() != static_cast(config_.pred_hidden_size)) + throw std::runtime_error("TdtPipeline: predictor output size does not match config"); + for (int32_t layer = 0; layer < config_.pred_num_layers; ++layer) { + const std::string suffix = "_" + std::to_string(layer); + auto h_it = outputs.find("next_h" + suffix); + auto c_it = outputs.find("next_c" + suffix); + if (h_it == outputs.end() || c_it == outputs.end()) + throw std::runtime_error("TdtPipeline: predictor missing next state outputs"); + if (h_it->second.numel() != static_cast(config_.pred_hidden_size) || + c_it->second.numel() != static_cast(config_.pred_hidden_size)) + throw std::runtime_error( + "TdtPipeline: predictor state output size does not match config"); + std::memcpy(state_h.data() + static_cast(layer) * layer_stride, + h_it->second.data, layer_stride * sizeof(float)); + std::memcpy(state_c.data() + static_cast(layer) * layer_stride, + c_it->second.data, layer_stride * sizeof(float)); + } + + const auto* pred = static_cast(pred_it->second.data); + return std::vector(pred, pred + config_.pred_hidden_size); +} + +std::vector TdtPipeline::run_joint(const float* encoder_frame, const float* pred_output) { + TensorMap inputs; + inputs["encoder_frame"] = make_tensor(const_cast(encoder_frame), + {1, config_.encoder_hidden_size}, DType::kFloat32); + inputs["pred_output"] = make_tensor(const_cast(pred_output), + {1, config_.pred_hidden_size}, DType::kFloat32); + auto outputs = joint_->forward(inputs); + validate_float_outputs(outputs); + auto token_it = outputs.find("token_logits"); + auto duration_it = outputs.find("duration_logits"); + if (token_it == outputs.end() || duration_it == outputs.end()) + throw std::runtime_error("TdtPipeline: joint missing token_logits or duration_logits"); + if (token_it->second.numel() != static_cast(config_.blank_id) + 1 || + duration_it->second.numel() != config_.duration_values.size()) + throw std::runtime_error("TdtPipeline: joint output sizes do not match config"); + const auto* tokens = static_cast(token_it->second.data); + const auto* durations = static_cast(duration_it->second.data); + std::vector logits(tokens, tokens + token_it->second.numel()); + logits.insert(logits.end(), durations, durations + duration_it->second.numel()); + return logits; +} +} // namespace trtmc::parakeet_tdt diff --git a/families/parakeet_tdt/runtime/pipeline.h b/families/parakeet_tdt/runtime/pipeline.h new file mode 100644 index 0000000000..ff04595000 --- /dev/null +++ b/families/parakeet_tdt/runtime/pipeline.h @@ -0,0 +1,43 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +#pragma once +#include "families/parakeet_tdt/runtime/tdt_config.h" +#include "families/parakeet_tdt/runtime/tokenizer.h" +#include "trtmc/internal/audio.h" +#include "trtmc/internal/model.h" +#include "trtmc/runtime/trt_module.h" + +#include + +namespace trtmc::parakeet_tdt { +struct MelFilterbank { + std::vector data; + int32_t n_freq_bins{0}; + int32_t n_mel_bins{0}; +}; + +class TdtPipeline final : public internal::IModel, public internal::ISpeechTranscription { + public: + TdtPipeline(std::unique_ptr encoder, std::unique_ptr predictor, + std::unique_ptr joint, TdtConfig config, MelFilterbank mel, + std::shared_ptr tokenizer); + const char* task() const noexcept override { return "speech_transcription"; } + std::vector task_bindings() override; + TextResult run(const internal::SpeechTranscriptionRequest&, internal::ConfigView) override; + + private: + std::vector extract_padded_mel(const float*, int32_t, int32_t, int32_t&) const; + std::vector run_encoder(const std::vector&, int32_t); + std::vector run_predictor(int32_t, std::vector&, std::vector&); + std::vector run_joint(const float*, const float*); + void decode_encoder_frames(const std::vector&, int32_t, int32_t, std::vector&, + std::vector&, std::vector&, std::vector&); + std::unique_ptr encoder_, predictor_, joint_; + TdtConfig config_; + std::unique_ptr mel_fb_; + std::shared_ptr tokenizer_; + std::mutex mutex_; +}; +} // namespace trtmc::parakeet_tdt diff --git a/families/parakeet_tdt/runtime/plugin.cpp b/families/parakeet_tdt/runtime/plugin.cpp new file mode 100644 index 0000000000..7d8953b575 --- /dev/null +++ b/families/parakeet_tdt/runtime/plugin.cpp @@ -0,0 +1,96 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +#include "families/parakeet_tdt/runtime/pipeline.h" +#include "trtmc/runtime/family_factory.h" +#include "trtmc/runtime/trt_backend.h" + +#include +#include +#include +#include + +namespace trtmc::parakeet_tdt { +namespace { +std::vector require_section(const BundleReader& reader, const char* name) { + const auto* section = reader.find_section(name); + if (!section || section->length == 0) + throw std::runtime_error(std::string("Parakeet TDT missing section: ") + name); + return reader.read_section(name); +} +std::unique_ptr load_engine(const FamilyContext& context, const char* name) { + auto plan = require_section(context.reader, name); + auto module = context.backend.create_module(plan.data(), plan.size(), {}); + if (!module || !module->ok()) + throw std::runtime_error(std::string("Parakeet TDT failed to load ") + name); + return module; +} +} // namespace +} // namespace trtmc::parakeet_tdt + +extern "C" trtmc::ITask* trtmc_create_family(const trtmc::FamilyContext& context) { + using namespace trtmc; + using namespace trtmc::parakeet_tdt; + if (context.kv_cache_size_bytes != 0) + throw std::invalid_argument("Parakeet TDT does not support kv-cache-size"); + if (context.reader.info().family != "parakeet_tdt" || + context.reader.info().task != "speech_transcription" || + context.reader.info().backend != "trt" || std::string(context.backend.name()) != "trt") + throw std::invalid_argument("Parakeet TDT bundle identity does not match runtime"); + const auto data = require_section(context.reader, "runtime.json"); + const auto raw = nlohmann::json::parse(data.begin(), data.end()); + TdtConfig config; + const std::pair dimensions[] = { + {"tensor_parallel_size", 1}, + {"mel_sampling_rate", 16000}, + {"num_mel_bins", 128}, + {"mel_n_fft", 512}, + {"mel_win_length", 400}, + {"mel_hop_length", 160}, + {"mel_chunk_length", 30}, + {"mel_length", 3000}, + {"tdt_encoder_hidden_size", 1024}, + {"tdt_pred_hidden_size", 640}, + {"tdt_pred_num_layers", 2}, + {"tdt_vocab_size", 8192}, + {"tdt_blank_id", 8192}, + {"tdt_encoder_layers", 24}, + {"max_source_positions", 375}, + {"subsampling_factor", 8}, + {"tdt_max_symbols_per_step", 10}, + {"tdt_att_context_left", -1}, + {"tdt_att_context_right", -1}, + }; + for (const auto& [name, expected] : dimensions) { + if (!raw.at(name).is_number_integer() || raw.at(name) != expected) + throw std::invalid_argument(std::string("unsupported Parakeet TDT dimension: ") + name); + } + if (raw.at("tdt_duration_values") != nlohmann::json({0, 1, 2, 3, 4}) || + raw.at("tdt_causal_downsampling") != false || raw.at("mel_normalize") != "per_feature" || + std::abs(raw.at("mel_preemph").get() - 0.97) > 1e-6) + throw std::invalid_argument("unsupported Parakeet TDT frontend or duration policy"); + + const auto mel = require_section(context.reader, "mel_filterbank"); + constexpr size_t values = 257 * 128; + if (mel.size() != 8 + values * sizeof(float)) + throw std::invalid_argument("invalid Parakeet TDT mel filterbank size"); + MelFilterbank filters; + std::memcpy(&filters.n_freq_bins, mel.data(), 4); + std::memcpy(&filters.n_mel_bins, mel.data() + 4, 4); + validate_tdt_mel_geometry(config, filters.n_freq_bins, filters.n_mel_bins); + filters.data.resize(values); + std::memcpy(filters.data.data(), mel.data() + 8, values * sizeof(float)); + for (float value : filters.data) + if (!std::isfinite(value)) + throw std::invalid_argument("nonfinite Parakeet mel coefficient"); + const auto tokenizer_data = require_section(context.reader, "tokenizer.json"); + auto tokenizer = CreateBpeTokenizer(tokenizer_data.data(), tokenizer_data.size(), false); + if (!tokenizer) + throw std::invalid_argument("Parakeet TDT requires its native BPE tokenizer"); + auto encoder = load_engine(context, "encoder.plan"); + auto predictor = load_engine(context, "predictor.plan"); + auto joint = load_engine(context, "joint.plan"); + return new TdtPipeline(std::move(encoder), std::move(predictor), std::move(joint), + std::move(config), std::move(filters), std::move(tokenizer)); +} diff --git a/families/parakeet_tdt/runtime/tokenizer.h b/families/parakeet_tdt/runtime/tokenizer.h new file mode 100644 index 0000000000..072b12291b --- /dev/null +++ b/families/parakeet_tdt/runtime/tokenizer.h @@ -0,0 +1,30 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include +#include +#include +#include +#include +#include + +namespace trtmc::parakeet_tdt { + +class ITokenizer { + public: + virtual ~ITokenizer() = default; + virtual std::vector encode(const std::string& text) const = 0; + virtual std::string decode(const std::vector& ids) const = 0; + virtual std::int32_t id_for_token(std::string_view token) const = 0; + virtual std::string token_for_id(std::int32_t id) const = 0; +}; + +std::unique_ptr CreateBpeTokenizer(const char* tokenizer_json_data, + std::size_t tokenizer_json_size, + bool add_special_tokens = false); + +} // namespace trtmc::parakeet_tdt diff --git a/families/parakeet_tdt/tests/README.md b/families/parakeet_tdt/tests/README.md index 0fced073ce..5da9517ad7 100644 --- a/families/parakeet_tdt/tests/README.md +++ b/families/parakeet_tdt/tests/README.md @@ -10,13 +10,28 @@ They exercise the real BuildRequest, family dispatch, configuration validation, and BundleWriter. They do not establish engine validity, numerical equivalence, transcript quality, GPU execution, or performance. -`test_native.py` compiles three CPU executables with a C++17 compiler (`CXX`, +`test_native.py` compiles five CPU executables with a C++17 compiler (`CXX`, default `c++`): Task audio-input validation/downmix/resampling, the existing mel/FFT/incremental-resampling tests, and the existing TDT duration/geometry -tests. The last two retain their original assertions from PR #1060. No CUDA or -TensorRT libraries are used. The audio-input helper is not yet wired to the -pending native family factory/pipeline; these tests do not establish an -end-to-end transcription path or advertise streaming support. +tests, semantic transcription pipeline orchestration with fake engines, and BPE +Metaspace decoding. The original mel and duration assertions from PR #1060 are +retained. Pipeline tests need CUDA headers (`CUDA_HOME` or `CUDA_PATH`) but use +no GPU or CUDA/TensorRT libraries. Tokenizer tests need `nlohmann/json.hpp` +(`NLOHMANN_JSON_INCLUDE_DIR`, default `/usr/include`). Missing headers produce +explicit skips, not passing evidence. + +The native pipeline now connects the audio helper to encoder, predictor, joint, +and tokenizer calls. Tests check request state reset, invalid options, malformed +or missing engine outputs, and recovery after failed requests. The family factory +and CMake target are present, but these CPU tests do not prove engine validity, +factory bundle compatibility, model transcript parity, or streaming support. + +An additional September 19, 2026 check compared the pinned official tokenizer +above against Hugging Face `tokenizers==0.22.2`: all 8,193 singleton vocabulary +IDs, 1,000 deterministic random token sequences, and two special/empty cases +matched (9,195 cases). It caught and fixed incorrect conversion of the literal +`Ġ` character to a space. The synthetic regression remains in the repository; +this broader check requires downloading the official tokenizer JSON, not weights. From the repository root: diff --git a/families/parakeet_tdt/tests/cpp/test_pipeline.cpp b/families/parakeet_tdt/tests/cpp/test_pipeline.cpp new file mode 100644 index 0000000000..6fdfecea9c --- /dev/null +++ b/families/parakeet_tdt/tests/cpp/test_pipeline.cpp @@ -0,0 +1,150 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +#include "families/parakeet_tdt/runtime/pipeline.h" + +#include +#include + +using namespace trtmc; +using namespace trtmc::parakeet_tdt; + +class FakeModule final : public ITrtModule { + public: + explicit FakeModule(int role) : role_(role) {} + int calls{0}; + bool reset_seen{false}; + bool malformed{false}; + bool missing{false}; + TensorMap forward(const TensorMap& in) override { + ++calls; + if (missing) + return {}; + if (role_ == 0) + return { + {"encoder_output", {values_, {1, 2}, malformed ? DType::kInt32 : DType::kFloat32}}}; + if (role_ == 1) { + if (*static_cast(in.at("token_id").data) == 2) + reset_seen = *static_cast(in.at("state_h_0").data) == 0; + return {{"pred_output", {values_, {1, malformed ? 1 : 2}, DType::kFloat32}}, + {"next_h_0", {values_, {1, 2}, DType::kFloat32}}, + {"next_c_0", {values_, {1, 2}, DType::kFloat32}}}; + } + return {{"token_logits", {malformed ? nullptr : tokens_, {1, 3}, DType::kFloat32}}, + {"duration_logits", {durations_, {1, 2}, DType::kFloat32}}}; + } + DeviceTensorMap forward_device(const DeviceTensorMap&) override { return {}; } + void forward_device_async(const DeviceTensorMap&) override {} + void forward_async(const TensorMap&) override {} + void sync() override {} + cudaStream_t stream() const override { return nullptr; } + void enable_cuda_graph() override {} + bool cuda_graph_active() const override { return false; } + bool cuda_graph_captured() const override { return false; } + int32_t profile_idx() const override { return 0; } + std::vector input_info() const override { return {}; } + std::vector output_info() const override { return {}; } + bool has_input(const std::string&) const override { return false; } + bool has_output(const std::string&) const override { return true; } + DType tensor_dtype(const std::string&) const override { return DType::kFloat32; } + std::vector tensor_shape(const std::string&) const override { return {}; } + std::vector input_profile_shape(const std::string&, int32_t, + ProfileShapeSelector) const override { + return {}; + } + int32_t optimization_profile_count() const override { return 1; } + void* device_ptr(const std::string&) const override { return nullptr; } + void bind_external(const std::string&, void*) override {} + void bind_external(const std::string&, void*, const std::vector&) override {} + int32_t input_rank(const std::string&) const override { return 0; } + bool input_is_dynamic(const std::string&) const override { return false; } + void reset_execution_context() override {} + void set_timing_label(std::string) override {} + bool ok() const override { return true; } + void keep_alive(std::shared_ptr) override {} + + private: + int role_; + float values_[2]{1, 1}; + float tokens_[3]{2, 0, -1}; + float durations_[2]{0, 1}; +}; + +class FakeTokenizer final : public ITokenizer { + public: + std::vector encode(const std::string&) const override { return {}; } + std::string decode(const std::vector& ids) const override { + return ids == std::vector{0} ? "hello" : "unexpected"; + } + int32_t id_for_token(std::string_view) const override { return -1; } + std::string token_for_id(int32_t) const override { return {}; } +}; + +int main() { + auto encoder = std::make_unique(0); + auto predictor = std::make_unique(1); + auto joint = std::make_unique(2); + auto* enc = encoder.get(); + auto* pred = predictor.get(); + auto* joint_ptr = joint.get(); + TdtConfig cfg; + cfg.num_mel_bins = 2; + cfg.mel_n_fft = 4; + cfg.mel_win_length = 4; + cfg.mel_hop_length = 2; + cfg.mel_length = 8; + cfg.encoder_seq_len = 1; + cfg.encoder_hidden_size = 2; + cfg.pred_hidden_size = 2; + cfg.pred_num_layers = 1; + cfg.blank_id = 2; + cfg.vocab_size = 2; + cfg.duration_values = {0, 1}; + MelFilterbank filters{{1, 1, 1, 1, 1, 1}, 3, 2}; + TdtPipeline pipeline(std::move(encoder), std::move(predictor), std::move(joint), cfg, filters, + std::make_shared()); + auto bindings = pipeline.task_bindings(); + if (bindings.size() != 1 || bindings[0].key.id != "speech_transcription") + return 1; + auto* task = static_cast(bindings[0].implementation); + float pcm[16]{}; + internal::SpeechTranscriptionRequest req{{{pcm, 16}, 16000, 1}, {}}; + for (int i = 0; i < 2; ++i) { + pred->reset_seen = false; + auto result = task->run(req, {}); + if (result.text != "hello" || result.token_ids != std::vector{0} || + !pred->reset_seen) + return 2; + } + internal::ConfigEntry bad{"max_new_tokens", int64_t{0}}; + const int before = enc->calls; + try { + task->run(req, {&bad, 1}); + return 3; + } catch (const std::invalid_argument&) { + } + if (enc->calls != before) + return 4; + for (auto* module : {enc, pred, joint_ptr}) { + module->malformed = true; + try { + task->run(req, {}); + return 5; + } catch (const std::runtime_error&) { + } + module->malformed = false; + module->missing = true; + try { + task->run(req, {}); + return 6; + } catch (const std::runtime_error&) { + } + module->missing = false; + } + // A failed request must not poison the predictor state of the next request. + pred->reset_seen = false; + if (task->run(req, {}).text != "hello" || !pred->reset_seen) + return 7; + std::cout << "semantic pipeline orchestration passed (fake engines)\n"; +} diff --git a/families/parakeet_tdt/tests/cpp/test_tokenizer.cpp b/families/parakeet_tdt/tests/cpp/test_tokenizer.cpp new file mode 100644 index 0000000000..868dda1400 --- /dev/null +++ b/families/parakeet_tdt/tests/cpp/test_tokenizer.cpp @@ -0,0 +1,39 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +#include "families/parakeet_tdt/runtime/tokenizer.h" + +#include +#include +#include +#include + +int main(int argc, char** argv) { + using namespace trtmc::parakeet_tdt; + std::string source = + R"({"model":{"type":"BPE","vocab":{"":0,"":1,"▁hello":2,"▁world":3,"!":4,"▁你好":5,"Ġ":6},"merges":[]},"added_tokens":[{"id":0,"content":"","special":true},{"id":1,"content":"","special":true}],"decoder":{"type":"Metaspace","replacement":"▁","prepend_scheme":"always","split":true}})"; + nlohmann::json cases = {{{"ids", {6}}, {"text", "Ġ"}}, + {{"ids", {2, 3, 4}}, {"text", "hello world!"}}, + {{"ids", {0, 1, 5, 4}}, {"text", "你好!"}}, + {{"ids", nlohmann::json::array()}, {"text", ""}}}; + if (argc == 3) { + std::ifstream input(argv[1]); + std::ostringstream buffer; + buffer << input.rdbuf(); + source = buffer.str(); + std::ifstream golden(argv[2]); + golden >> cases; + } + auto tokenizer = CreateBpeTokenizer(source.data(), source.size(), false); + if (!tokenizer) + return 1; + for (const auto& item : cases) { + const auto ids = item.at("ids").get>(); + if (tokenizer->decode(ids) != item.at("text").get()) { + std::cerr << "decode mismatch for " << item.at("ids") << '\n'; + return 2; + } + } + std::cout << cases.size() << " tokenizer decode cases passed\n"; +} diff --git a/families/parakeet_tdt/tests/test_native.py b/families/parakeet_tdt/tests/test_native.py index 3b5b9d2002..e76a2801a4 100644 --- a/families/parakeet_tdt/tests/test_native.py +++ b/families/parakeet_tdt/tests/test_native.py @@ -1,7 +1,7 @@ # SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -"""Compile and execute CPU-owned native contracts without CUDA or TensorRT.""" +"""Execute native contracts on CPU; pipeline compilation needs CUDA headers only.""" import os from pathlib import Path @@ -15,6 +15,8 @@ ("audio_input", ("resampler.cpp",)), ("audio_helpers", ("audio_helpers.cpp", "resampler.cpp")), ("decode_policy", ()), + ("pipeline", ("pipeline.cpp", "audio_helpers.cpp", "resampler.cpp")), + ("tokenizer", ("bpe_tokenizer.cpp",)), ]) def test_native_cpu_contract(tmp_path, name, sources): compiler = shutil.which(os.environ.get("CXX", "c++")) @@ -23,9 +25,21 @@ def test_native_cpu_contract(tmp_path, name, sources): family = Path(__file__).resolve().parents[1] root = family.parents[1] output = tmp_path / name + includes = [] + if name == "pipeline": + cuda = Path(os.environ.get("CUDA_HOME", os.environ.get("CUDA_PATH", "/usr/local/cuda"))) + if not (cuda / "include/cuda_runtime_api.h").is_file(): + pytest.skip("pipeline contract requires CUDA headers (set CUDA_HOME); no GPU is used") + includes = ["-I", str(cuda / "include")] + if name == "tokenizer": + json_include = Path(os.environ.get("NLOHMANN_JSON_INCLUDE_DIR", "/usr/include")) + if not (json_include / "nlohmann/json.hpp").is_file(): + pytest.skip("tokenizer contract requires nlohmann/json.hpp (set NLOHMANN_JSON_INCLUDE_DIR)") + includes += ["-I", str(json_include)] subprocess.run([ compiler, "-std=c++17", "-Wall", "-Wextra", "-Werror", "-I", str(root), "-I", str(root / "core/runtime/include"), + *includes, str(family / "tests/cpp" / f"test_{name}.cpp"), *(str(family / "runtime" / source) for source in sources), "-o", str(output), From 816b0a7a5f42b10369667339257c46d3f4df9c7d Mon Sep 17 00:00:00 2001 From: JiaxinD Date: Sat, 19 Sep 2026 18:08:52 -0700 Subject: [PATCH 11/16] fix(parakeet): validate native tokenizer contract Exercise real Python bundle writing and native factory loading with fake engines. Reject incompatible tokenizer decoding before engine creation and verify cleanup after partial engine-loading failures. Signed-off-by: JiaxinD --- families/parakeet_tdt/runtime/plugin.cpp | 7 + families/parakeet_tdt/tests/README.md | 13 +- families/parakeet_tdt/tests/cpp/fake_module.h | 70 ++++++++++ .../parakeet_tdt/tests/cpp/test_factory.cpp | 70 ++++++++++ .../parakeet_tdt/tests/cpp/test_pipeline.cpp | 62 +-------- families/parakeet_tdt/tests/test_factory.py | 124 ++++++++++++++++++ 6 files changed, 282 insertions(+), 64 deletions(-) create mode 100644 families/parakeet_tdt/tests/cpp/fake_module.h create mode 100644 families/parakeet_tdt/tests/cpp/test_factory.cpp create mode 100644 families/parakeet_tdt/tests/test_factory.py diff --git a/families/parakeet_tdt/runtime/plugin.cpp b/families/parakeet_tdt/runtime/plugin.cpp index 7d8953b575..13348ce790 100644 --- a/families/parakeet_tdt/runtime/plugin.cpp +++ b/families/parakeet_tdt/runtime/plugin.cpp @@ -85,6 +85,13 @@ extern "C" trtmc::ITask* trtmc_create_family(const trtmc::FamilyContext& context if (!std::isfinite(value)) throw std::invalid_argument("nonfinite Parakeet mel coefficient"); const auto tokenizer_data = require_section(context.reader, "tokenizer.json"); + const auto tokenizer_json = nlohmann::json::parse(tokenizer_data.begin(), tokenizer_data.end()); + if (tokenizer_json.at("model").at("type") != "BPE" || + tokenizer_json.at("decoder").at("type") != "Metaspace" || + tokenizer_json.at("decoder").at("replacement") != "\xe2\x96\x81" || + tokenizer_json.at("decoder").at("prepend_scheme") != "always") + throw std::invalid_argument( + "Parakeet TDT requires its native BPE tokenizer with Metaspace decoding"); auto tokenizer = CreateBpeTokenizer(tokenizer_data.data(), tokenizer_data.size(), false); if (!tokenizer) throw std::invalid_argument("Parakeet TDT requires its native BPE tokenizer"); diff --git a/families/parakeet_tdt/tests/README.md b/families/parakeet_tdt/tests/README.md index 5da9517ad7..fdb29d0c56 100644 --- a/families/parakeet_tdt/tests/README.md +++ b/families/parakeet_tdt/tests/README.md @@ -22,9 +22,16 @@ explicit skips, not passing evidence. The native pipeline now connects the audio helper to encoder, predictor, joint, and tokenizer calls. Tests check request state reset, invalid options, malformed -or missing engine outputs, and recovery after failed requests. The family factory -and CMake target are present, but these CPU tests do not prove engine validity, -factory bundle compatibility, model transcript parity, or streaming support. +or missing engine outputs, and recovery after failed requests. + +`test_factory.py` writes real bundles with the shared Python `BundleWriter`, +then compiles and executes the real C++ `BundleReader` and family factory. +Its 22 cases cover semantic task binding, engine section order/content, +invalid identity/config/tokenizer/frontend data, missing sections, failed engine +loads, and destruction of modules after partial construction failures. Engine +loading is faked; CUDA headers and nlohmann JSON are required as above. This +does not prove TensorRT deserialization, engine validity, model transcript parity, +or streaming support. The E2E/manifest migration remains incomplete. An additional September 19, 2026 check compared the pinned official tokenizer above against Hugging Face `tokenizers==0.22.2`: all 8,193 singleton vocabulary diff --git a/families/parakeet_tdt/tests/cpp/fake_module.h b/families/parakeet_tdt/tests/cpp/fake_module.h new file mode 100644 index 0000000000..8385b47662 --- /dev/null +++ b/families/parakeet_tdt/tests/cpp/fake_module.h @@ -0,0 +1,70 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +#pragma once +#include "trtmc/runtime/trt_module.h" +using namespace trtmc; + +class FakeModule final : public ITrtModule { + public: + explicit FakeModule(int role) : role_(role) { ++live_instances; } + ~FakeModule() override { --live_instances; } + inline static int live_instances{0}; + int calls{0}; + bool reset_seen{false}; + bool malformed{false}; + bool missing{false}; + TensorMap forward(const TensorMap& in) override { + ++calls; + if (missing) + return {}; + if (role_ == 0) + return { + {"encoder_output", {values_, {1, 2}, malformed ? DType::kInt32 : DType::kFloat32}}}; + if (role_ == 1) { + if (*static_cast(in.at("token_id").data) == 2) + reset_seen = *static_cast(in.at("state_h_0").data) == 0; + return {{"pred_output", {values_, {1, malformed ? 1 : 2}, DType::kFloat32}}, + {"next_h_0", {values_, {1, 2}, DType::kFloat32}}, + {"next_c_0", {values_, {1, 2}, DType::kFloat32}}}; + } + return {{"token_logits", {malformed ? nullptr : tokens_, {1, 3}, DType::kFloat32}}, + {"duration_logits", {durations_, {1, 2}, DType::kFloat32}}}; + } + DeviceTensorMap forward_device(const DeviceTensorMap&) override { return {}; } + void forward_device_async(const DeviceTensorMap&) override {} + void forward_async(const TensorMap&) override {} + void sync() override {} + cudaStream_t stream() const override { return nullptr; } + void enable_cuda_graph() override {} + bool cuda_graph_active() const override { return false; } + bool cuda_graph_captured() const override { return false; } + int32_t profile_idx() const override { return 0; } + std::vector input_info() const override { return {}; } + std::vector output_info() const override { return {}; } + bool has_input(const std::string&) const override { return false; } + bool has_output(const std::string&) const override { return true; } + DType tensor_dtype(const std::string&) const override { return DType::kFloat32; } + std::vector tensor_shape(const std::string&) const override { return {}; } + std::vector input_profile_shape(const std::string&, int32_t, + ProfileShapeSelector) const override { + return {}; + } + int32_t optimization_profile_count() const override { return 1; } + void* device_ptr(const std::string&) const override { return nullptr; } + void bind_external(const std::string&, void*) override {} + void bind_external(const std::string&, void*, const std::vector&) override {} + int32_t input_rank(const std::string&) const override { return 0; } + bool input_is_dynamic(const std::string&) const override { return false; } + void reset_execution_context() override {} + void set_timing_label(std::string) override {} + bool ok() const override { return true; } + void keep_alive(std::shared_ptr) override {} + + private: + int role_; + float values_[2]{1, 1}; + float tokens_[3]{2, 0, -1}; + float durations_[2]{0, 1}; +}; diff --git a/families/parakeet_tdt/tests/cpp/test_factory.cpp b/families/parakeet_tdt/tests/cpp/test_factory.cpp new file mode 100644 index 0000000000..fdee4c999a --- /dev/null +++ b/families/parakeet_tdt/tests/cpp/test_factory.cpp @@ -0,0 +1,70 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +#include "families/parakeet_tdt/tests/cpp/fake_module.h" +#include "trtmc/internal/model.h" +#include "trtmc/runtime/family_factory.h" +#include "trtmc/runtime/trt_backend.h" + +#include +#include + +class FakeBackend final : public IBackend { + public: + int calls{0}; + int fail_at{0}; + std::unique_ptr create_module(const void* data, size_t size, + const ModuleCreateOptions&) override { + const std::string payload(static_cast(data), size); + const char* expected[] = {"encoder", "predictor", "joint"}; + if (calls >= 3 || payload != expected[calls]) + throw std::runtime_error("incorrect engine section order or content"); + ++calls; + return calls == fail_at ? nullptr : std::make_unique(calls - 1); + } + std::unique_ptr + create_module_prebound(const void*, size_t, const ModuleCreateOptions&, + const std::vector&) override { + throw std::runtime_error("unexpected prebound call"); + } + BackendDualProfileModules create_dual_profile_modules(const void*, size_t, + const ModuleCreateOptions&) override { + throw std::runtime_error("unexpected dual profile call"); + } + const char* name() const override { return "trt"; } +}; + +int main(int argc, char** argv) { + if (argc != 5) + return 1; + FakeBackend backend; + const std::string mode = argv[4]; + backend.fail_at = mode == "fail-engine" ? 1 + : mode == "fail-predictor" ? 2 + : mode == "fail-joint" ? 3 + : 0; + const auto kv = std::string(argv[4]) == "kv" ? 1U : 0U; + const std::string expected_error = argv[2]; + try { + BundleReader reader(argv[1]); + std::unique_ptr task(trtmc_create_family({reader, backend, kv})); + if (!expected_error.empty()) + throw std::logic_error("factory accepted invalid bundle"); + auto* model = dynamic_cast(task.get()); + if (!model || model->task_bindings().size() != 1 || + model->task_bindings()[0].key.id != "speech_transcription") + return 2; + } catch (const std::exception& error) { + if (expected_error.empty() || + std::string(error.what()).find(expected_error) == std::string::npos) { + std::cerr << error.what() << '\n'; + return 3; + } + } + if (backend.calls != std::stoi(argv[3])) + return 4; + if (FakeModule::live_instances != 0) + return 5; + std::cout << "factory bundle contract passed\n"; +} diff --git a/families/parakeet_tdt/tests/cpp/test_pipeline.cpp b/families/parakeet_tdt/tests/cpp/test_pipeline.cpp index 6fdfecea9c..e704d3de32 100644 --- a/families/parakeet_tdt/tests/cpp/test_pipeline.cpp +++ b/families/parakeet_tdt/tests/cpp/test_pipeline.cpp @@ -3,6 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ #include "families/parakeet_tdt/runtime/pipeline.h" +#include "families/parakeet_tdt/tests/cpp/fake_module.h" #include #include @@ -10,67 +11,6 @@ using namespace trtmc; using namespace trtmc::parakeet_tdt; -class FakeModule final : public ITrtModule { - public: - explicit FakeModule(int role) : role_(role) {} - int calls{0}; - bool reset_seen{false}; - bool malformed{false}; - bool missing{false}; - TensorMap forward(const TensorMap& in) override { - ++calls; - if (missing) - return {}; - if (role_ == 0) - return { - {"encoder_output", {values_, {1, 2}, malformed ? DType::kInt32 : DType::kFloat32}}}; - if (role_ == 1) { - if (*static_cast(in.at("token_id").data) == 2) - reset_seen = *static_cast(in.at("state_h_0").data) == 0; - return {{"pred_output", {values_, {1, malformed ? 1 : 2}, DType::kFloat32}}, - {"next_h_0", {values_, {1, 2}, DType::kFloat32}}, - {"next_c_0", {values_, {1, 2}, DType::kFloat32}}}; - } - return {{"token_logits", {malformed ? nullptr : tokens_, {1, 3}, DType::kFloat32}}, - {"duration_logits", {durations_, {1, 2}, DType::kFloat32}}}; - } - DeviceTensorMap forward_device(const DeviceTensorMap&) override { return {}; } - void forward_device_async(const DeviceTensorMap&) override {} - void forward_async(const TensorMap&) override {} - void sync() override {} - cudaStream_t stream() const override { return nullptr; } - void enable_cuda_graph() override {} - bool cuda_graph_active() const override { return false; } - bool cuda_graph_captured() const override { return false; } - int32_t profile_idx() const override { return 0; } - std::vector input_info() const override { return {}; } - std::vector output_info() const override { return {}; } - bool has_input(const std::string&) const override { return false; } - bool has_output(const std::string&) const override { return true; } - DType tensor_dtype(const std::string&) const override { return DType::kFloat32; } - std::vector tensor_shape(const std::string&) const override { return {}; } - std::vector input_profile_shape(const std::string&, int32_t, - ProfileShapeSelector) const override { - return {}; - } - int32_t optimization_profile_count() const override { return 1; } - void* device_ptr(const std::string&) const override { return nullptr; } - void bind_external(const std::string&, void*) override {} - void bind_external(const std::string&, void*, const std::vector&) override {} - int32_t input_rank(const std::string&) const override { return 0; } - bool input_is_dynamic(const std::string&) const override { return false; } - void reset_execution_context() override {} - void set_timing_label(std::string) override {} - bool ok() const override { return true; } - void keep_alive(std::shared_ptr) override {} - - private: - int role_; - float values_[2]{1, 1}; - float tokens_[3]{2, 0, -1}; - float durations_[2]{0, 1}; -}; - class FakeTokenizer final : public ITokenizer { public: std::vector encode(const std::string&) const override { return {}; } diff --git a/families/parakeet_tdt/tests/test_factory.py b/families/parakeet_tdt/tests/test_factory.py new file mode 100644 index 0000000000..e48af05cb3 --- /dev/null +++ b/families/parakeet_tdt/tests/test_factory.py @@ -0,0 +1,124 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Real Python bundle writer -> C++ reader/factory, with fake engine loading.""" + +import json +import os +from pathlib import Path +import shutil +import struct +import subprocess + +import pytest + +from tensorrt_model_connect.bundle_writer import BundleWriter + + +@pytest.fixture(scope="module") +def factory_runner(tmp_path_factory): + compiler = shutil.which(os.environ.get("CXX", "c++")) + cuda = Path(os.environ.get("CUDA_HOME", os.environ.get("CUDA_PATH", "/usr/local/cuda"))) + json_include = Path(os.environ.get("NLOHMANN_JSON_INCLUDE_DIR", "/usr/include")) + if not compiler or not (cuda / "include/cuda_runtime_api.h").is_file(): + pytest.skip("factory contract requires C++17 and CUDA headers; no GPU is used") + if not (json_include / "nlohmann/json.hpp").is_file(): + pytest.skip("factory contract requires nlohmann/json.hpp (set NLOHMANN_JSON_INCLUDE_DIR)") + family = Path(__file__).resolve().parents[1] + root = family.parents[1] + output = tmp_path_factory.mktemp("factory") / "factory" + subprocess.run([ + compiler, "-std=c++17", "-Wall", "-Wextra", "-Werror", + "-I", str(root), "-I", str(root / "core"), + "-I", str(root / "core/runtime/include"), + "-I", str(cuda / "include"), "-I", str(json_include), + str(family / "tests/cpp/test_factory.cpp"), + *(str(family / "runtime" / name) for name in ( + "plugin.cpp", "pipeline.cpp", "bpe_tokenizer.cpp", "audio_helpers.cpp", "resampler.cpp", + )), + str(root / "core/runtime/bundle/bundle_format.cpp"), "-o", str(output), + ], check=True, capture_output=True, text=True, timeout=120) + return output + + +@pytest.mark.parametrize(("change", "error", "calls"), [ + ("valid", "", 3), + ("wrong-family", "identity", 0), + ("wrong-task", "identity", 0), + ("wrong-backend", "identity", 0), + ("kv", "kv-cache-size", 0), + ("dimension", "dimension", 0), + ("fractional-dimension", "dimension", 0), + ("policy", "duration policy", 0), + ("mel-length", "filterbank size", 0), + ("mel-nonfinite", "nonfinite", 0), + ("tokenizer-type", "native BPE tokenizer", 0), + ("tokenizer-decoder", "native BPE tokenizer", 0), + ("tokenizer-replacement", "native BPE tokenizer", 0), + ("tokenizer-prepend", "native BPE tokenizer", 0), + ("missing-runtime", "missing section", 0), + ("missing-tokenizer", "missing section", 0), + ("missing-encoder", "missing section", 0), + ("missing-predictor", "missing section", 1), + ("missing-joint", "missing section", 2), + ("fail-engine", "failed to load encoder.plan", 1), + ("fail-predictor", "failed to load predictor.plan", 2), + ("fail-joint", "failed to load joint.plan", 3), +]) +def test_native_factory_bundle_contract(tmp_path, factory_runner, change, error, calls): + runtime = { + "tensor_parallel_size": 1, "mel_sampling_rate": 16000, "num_mel_bins": 128, + "mel_n_fft": 512, "mel_win_length": 400, "mel_hop_length": 160, + "mel_chunk_length": 30, "mel_length": 3000, "tdt_encoder_hidden_size": 1024, + "tdt_pred_hidden_size": 640, "tdt_pred_num_layers": 2, "tdt_vocab_size": 8192, + "tdt_blank_id": 8192, "tdt_encoder_layers": 24, "max_source_positions": 375, + "subsampling_factor": 8, "tdt_max_symbols_per_step": 10, + "tdt_att_context_left": -1, "tdt_att_context_right": -1, + "tdt_duration_values": [0, 1, 2, 3, 4], "tdt_causal_downsampling": False, + "mel_normalize": "per_feature", "mel_preemph": 0.97, + } + tokenizer = { + "model": {"type": "BPE", "vocab": {"▁hello": 0}, "merges": []}, + "decoder": {"type": "Metaspace", "replacement": "▁", "prepend_scheme": "always"}, + } + if change == "dimension": + runtime["tdt_blank_id"] = 1024 + if change == "fractional-dimension": + runtime["tdt_blank_id"] = 8192.0 + if change == "policy": + runtime["tdt_duration_values"] = [0, 2] + if change == "tokenizer-type": + tokenizer["model"]["type"] = "Unigram" + if change == "tokenizer-decoder": + tokenizer["decoder"]["type"] = "ByteLevel" + if change == "tokenizer-replacement": + tokenizer["decoder"]["replacement"] = "_" + if change == "tokenizer-prepend": + tokenizer["decoder"]["prepend_scheme"] = "never" + mel = struct.pack(" Date: Sun, 20 Sep 2026 02:27:04 -0700 Subject: [PATCH 12/16] test(parakeet): migrate public SDK parity workflow Port all eight family-owned audio cases and the pinned TDT reference to the semantic speech transcription SDK. Preserve the exact transcript gate and fail explicitly when a selected E2E lacks runtime prerequisites. Signed-off-by: JiaxinD --- families/parakeet_tdt/README.md | 40 +++ families/parakeet_tdt/requirements.txt | 1 + families/parakeet_tdt/runtime/CMakeLists.txt | 9 + families/parakeet_tdt/tests/README.md | 2 +- .../parakeet_tdt/tests/data/Recording.wav | Bin 0 -> 798798 bytes .../tests/data/asr_probes/README.md | 21 ++ .../asr_probes/generate_asr_probe_inputs.py | 232 ++++++++++++++++ .../tests/data/asr_probes/manifest.json | 100 +++++++ .../tests/manifests/parakeet-tdt-0.6b-v3.json | 143 ++++++++++ families/parakeet_tdt/tests/sdk_consumer.cpp | 46 ++++ families/parakeet_tdt/tests/test_e2e.py | 250 ++++++++++++++++++ 11 files changed, 843 insertions(+), 1 deletion(-) create mode 100644 families/parakeet_tdt/README.md create mode 100644 families/parakeet_tdt/tests/data/Recording.wav create mode 100644 families/parakeet_tdt/tests/data/asr_probes/README.md create mode 100644 families/parakeet_tdt/tests/data/asr_probes/generate_asr_probe_inputs.py create mode 100644 families/parakeet_tdt/tests/data/asr_probes/manifest.json create mode 100644 families/parakeet_tdt/tests/manifests/parakeet-tdt-0.6b-v3.json create mode 100644 families/parakeet_tdt/tests/sdk_consumer.cpp create mode 100644 families/parakeet_tdt/tests/test_e2e.py diff --git a/families/parakeet_tdt/README.md b/families/parakeet_tdt/README.md new file mode 100644 index 0000000000..8b84c9e959 --- /dev/null +++ b/families/parakeet_tdt/README.md @@ -0,0 +1,40 @@ +# Parakeet TDT 0.6B v3 + +This family targets the native Hugging Face Transformers checkpoint +`nvidia/parakeet-tdt-0.6b-v3` at revision +`541d1f99c6b0c3cd0b11a95167540bb8edefd82b` (publisher license: CC BY 4.0). +It exposes the public `SpeechTranscription` Task for one audio request at a time, +with FP16 or FP32 TensorRT engines and a fixed 30-second input window. Runtime +input accepts interleaved PCM, downmixes channels, and resamples to 16 kHz. +Longer audio, language controls, streaming, quantization and multi-GPU execution +are rejected or not exposed. NeMo archives are not a build input for this port. + +The migration has CPU contract coverage; GPU conversion and transcript parity +remain unverified. Do not interpret the presence of the manifest as qualification. + +## Validation + +Install this family's `requirements.txt` in its isolated build/reference +environment. The pinned Transformers version provides `AutoModelForTDT`, which +is not available in the repository's base Transformers 5.2.0 environment. + +Build with `TRTMC_BUILD_TESTS=ON` to produce `test_parakeet_tdt_sdk_cpp`. +After caching the pinned Hugging Face snapshot, select the E2E explicitly: + +```sh +TRTMC_RUNTIME_ROOT=/path/to/runtime \ +TRTMC_NATIVE_BUILD_DIR=/path/to/native/build \ +PYTHONPATH=core/builder:. python -m pytest families/parakeet_tdt/tests/test_e2e.py \ + --e2e-testcase parakeet-tdt-0.6b-v3 -v +``` + +`--e2e-model parakeet_tdt` selects all eight audio cases. An explicit selection +fails when dependencies, artifacts or CUDA are unavailable; an ordinary CPU +test run reports these E2Es as skipped. The test invokes the public C++ SDK +consumer, records native/reference evidence, and requires exact transcript +agreement after the original case/whitespace normalization. It does not relax +the old PR's exact-transcript gate to a shape-only or approximate comparison. + +`TRTMC_PARAKEET_TDT_MODEL_DIR` may point to a prepared copy of that same pinned +snapshot. Record its provenance when using the override. The tests do not +download model weights automatically. Audio fixture generation is family-local. diff --git a/families/parakeet_tdt/requirements.txt b/families/parakeet_tdt/requirements.txt index df14dad25e..ebf147fd12 100644 --- a/families/parakeet_tdt/requirements.txt +++ b/families/parakeet_tdt/requirements.txt @@ -1,2 +1,3 @@ librosa>=0.11.0 safetensors +transformers==5.17.0 diff --git a/families/parakeet_tdt/runtime/CMakeLists.txt b/families/parakeet_tdt/runtime/CMakeLists.txt index c568d4b407..9c7ba6df9f 100644 --- a/families/parakeet_tdt/runtime/CMakeLists.txt +++ b/families/parakeet_tdt/runtime/CMakeLists.txt @@ -16,3 +16,12 @@ set_target_properties(trtmc_model_parakeet_tdt PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" BUILD_RPATH "\$ORIGIN" INSTALL_RPATH "\$ORIGIN" ) install(TARGETS trtmc_model_parakeet_tdt LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + +if(TRTMC_BUILD_TESTS) + add_executable(test_parakeet_tdt_sdk_cpp ../tests/sdk_consumer.cpp) + target_link_libraries(test_parakeet_tdt_sdk_cpp PRIVATE trtmc_c nlohmann_json::nlohmann_json) + target_compile_options(test_parakeet_tdt_sdk_cpp PRIVATE -Wall -Wextra -Wpedantic -Werror) + set_target_properties(test_parakeet_tdt_sdk_cpp PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" + ) +endif() diff --git a/families/parakeet_tdt/tests/README.md b/families/parakeet_tdt/tests/README.md index fdb29d0c56..1c3062f60a 100644 --- a/families/parakeet_tdt/tests/README.md +++ b/families/parakeet_tdt/tests/README.md @@ -31,7 +31,7 @@ invalid identity/config/tokenizer/frontend data, missing sections, failed engine loads, and destruction of modules after partial construction failures. Engine loading is faked; CUDA headers and nlohmann JSON are required as above. This does not prove TensorRT deserialization, engine validity, model transcript parity, -or streaming support. The E2E/manifest migration remains incomplete. +or streaming support. An additional September 19, 2026 check compared the pinned official tokenizer above against Hugging Face `tokenizers==0.22.2`: all 8,193 singleton vocabulary diff --git a/families/parakeet_tdt/tests/data/Recording.wav b/families/parakeet_tdt/tests/data/Recording.wav new file mode 100644 index 0000000000000000000000000000000000000000..db2716e6881c858133ca20f3417af83719266b37 GIT binary patch literal 798798 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∨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�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 literal 0 HcmV?d00001 diff --git a/families/parakeet_tdt/tests/data/asr_probes/README.md b/families/parakeet_tdt/tests/data/asr_probes/README.md new file mode 100644 index 0000000000..b41549c1cb --- /dev/null +++ b/families/parakeet_tdt/tests/data/asr_probes/README.md @@ -0,0 +1,21 @@ +# ASR Probe Inputs + +These WAV files are generated from the existing ASR fixture at +`../Recording.wav` from the owning model family data folder. They exercise TensorRT Model Connect audio +input handling paths and TRT-vs-reference transcript parity. They are not +intended to benchmark ASR model quality. + +| ID | File | SR | Ch | Duration | Readiness | Model Connect path | +|---|---|---:|---:|---:|---|---| +| probe_01_clean_48k_stereo_baseline | `probe_01_clean_48k_stereo_baseline.wav` | 48000 | 2 | 4.16s | ready_now | WAV decode + stereo input + model-specific resample. | +| probe_02_clean_16k_mono_no_resample | `probe_02_clean_16k_mono_no_resample.wav` | 16000 | 1 | 4.16s | ready_now | WAV decode without model-side downmix; should avoid 48k->16k resample in ASR preprocessing. | +| probe_03_clean_48k_mono_resample | `probe_03_clean_48k_mono_resample.wav` | 48000 | 1 | 4.16s | ready_now | WAV decode + 48k->16k resample, without stereo downmix. | +| probe_04_clean_48k_stereo_gain_skew | `probe_04_clean_48k_stereo_gain_skew.wav` | 48000 | 2 | 4.16s | ready_now | Stereo downmix should be robust when L/R channels are not identical. | +| probe_05_low_volume_48k_stereo | `probe_05_low_volume_48k_stereo.wav` | 48000 | 2 | 4.16s | ready_now | PCM int16 decode + float normalization + ASR preprocessing. | +| probe_06_leading_trailing_silence_48k_stereo | `probe_06_leading_trailing_silence_48k_stereo.wav` | 48000 | 2 | 6.16s | ready_now | Longer waveform decode + silence handling + transcript stability. | +| probe_08_noisy_48k_stereo_snr20 | `probe_08_noisy_48k_stereo_snr20.wav` | 48000 | 2 | 4.16s | nightly_optional | PCM decode + preprocessing under non-clean waveform. | + +Use `manifest.json` for detailed purpose and notes. Re-run +`generate_asr_probe_inputs.py` from this directory to regenerate the WAVs. + + diff --git a/families/parakeet_tdt/tests/data/asr_probes/generate_asr_probe_inputs.py b/families/parakeet_tdt/tests/data/asr_probes/generate_asr_probe_inputs.py new file mode 100644 index 0000000000..0c2ec152fe --- /dev/null +++ b/families/parakeet_tdt/tests/data/asr_probes/generate_asr_probe_inputs.py @@ -0,0 +1,232 @@ +#!/usr/bin/env python3 +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Generate ASR probe WAV inputs for TensorRT Model Connect E2E coverage.""" + +from __future__ import annotations + +import json +import shutil +import wave +from pathlib import Path + +import numpy as np + + +ROOT = Path(__file__).resolve().parent +SOURCE = ROOT.parent / "Recording.wav" + + +def read_wav(path: Path) -> tuple[int, np.ndarray]: + with wave.open(str(path), "rb") as wav: + channels = wav.getnchannels() + sample_width = wav.getsampwidth() + sample_rate = wav.getframerate() + frames = wav.readframes(wav.getnframes()) + if sample_width != 2: + raise ValueError(f"Only int16 WAV is supported, got sample_width={sample_width}") + audio_i16 = np.frombuffer(frames, dtype=" None: + audio = np.asarray(audio, dtype=np.float32) + if audio.ndim == 1: + audio = audio[:, None] + audio_i16 = np.clip(audio, -1.0, 1.0) + audio_i16 = np.round(audio_i16 * 32767.0).astype(" np.ndarray: + if audio.ndim == 1: + return audio + return audio.mean(axis=1) + + +def stereo_from_mono(audio: np.ndarray, *, right_gain: float = 1.0) -> np.ndarray: + audio = mono(audio) + return np.stack([audio, audio * right_gain], axis=1) + + +def resample_linear(audio: np.ndarray, src_rate: int, dst_rate: int) -> np.ndarray: + if src_rate == dst_rate: + return audio.copy() + if audio.ndim == 1: + audio_2d = audio[:, None] + else: + audio_2d = audio + src_n = audio_2d.shape[0] + dst_n = int(round(src_n * dst_rate / src_rate)) + src_x = np.arange(src_n, dtype=np.float64) + dst_x = np.linspace(0, src_n - 1, dst_n, dtype=np.float64) + channels = [ + np.interp(dst_x, src_x, audio_2d[:, c]).astype(np.float32) + for c in range(audio_2d.shape[1]) + ] + out = np.stack(channels, axis=1) + return out[:, 0] if audio.ndim == 1 else out + + +def add_white_noise(audio: np.ndarray, snr_db: float, seed: int = 20260611) -> np.ndarray: + rng = np.random.default_rng(seed) + signal_power = float(np.mean(np.square(audio))) or 1e-12 + noise_power = signal_power / (10.0 ** (snr_db / 10.0)) + noise = rng.normal(0.0, np.sqrt(noise_power), size=audio.shape).astype(np.float32) + return np.clip(audio + noise, -1.0, 1.0) + + +def main() -> None: + sample_rate, original = read_wav(SOURCE) + mono_48k = mono(original) + mono_16k = resample_linear(mono_48k, sample_rate, 16000) + silence_48k = np.zeros((sample_rate,), dtype=np.float32) + cases: list[dict[str, object]] = [] + + def add_case( + name: str, + sample_rate_hz: int, + audio: np.ndarray, + *, + purpose: str, + model_connect_path: str, + readiness: str, + notes: str, + ) -> None: + file_name = f"{name}.wav" + write_wav(ROOT / file_name, sample_rate_hz, audio) + channels = 1 if audio.ndim == 1 else audio.shape[1] + duration_s = round(float(audio.shape[0]) / sample_rate_hz, 3) + cases.append( + { + "id": name, + "file": file_name, + "sample_rate_hz": sample_rate_hz, + "channels": channels, + "duration_s": duration_s, + "purpose": purpose, + "model_connect_path": model_connect_path, + "readiness": readiness, + "contract_oracle": ( + "Compare TRT transcript with reference backend transcript; " + "do not judge model accuracy." + ), + "notes": notes, + } + ) + + shutil.copyfile(SOURCE, ROOT / "probe_01_clean_48k_stereo_baseline.wav") + cases.append( + { + "id": "probe_01_clean_48k_stereo_baseline", + "file": "probe_01_clean_48k_stereo_baseline.wav", + "sample_rate_hz": sample_rate, + "channels": original.shape[1], + "duration_s": round(float(original.shape[0]) / sample_rate, 3), + "purpose": "Current smoke input copied as baseline.", + "model_connect_path": "WAV decode + stereo input + model-specific resample.", + "readiness": "ready_now", + "contract_oracle": ( + "Compare TRT transcript with reference backend transcript; " + "do not judge model accuracy." + ), + "notes": "Expected transcript is the existing short weather sentence.", + } + ) + + add_case( + "probe_02_clean_16k_mono_no_resample", + 16000, + mono_16k, + purpose="Cover native 16k mono path.", + model_connect_path=( + "WAV decode without model-side downmix; should avoid 48k->16k " + "resample in ASR preprocessing." + ), + readiness="ready_now", + notes="Useful to isolate resampling differences from core decode/runtime differences.", + ) + add_case( + "probe_03_clean_48k_mono_resample", + 48000, + mono_48k, + purpose="Cover mono 48k resample path.", + model_connect_path="WAV decode + 48k->16k resample, without stereo downmix.", + readiness="ready_now", + notes="Separates resample handling from stereo downmix handling.", + ) + add_case( + "probe_04_clean_48k_stereo_gain_skew", + 48000, + stereo_from_mono(mono_48k, right_gain=0.55), + purpose="Cover stereo-to-mono with asymmetric channel levels.", + model_connect_path="Stereo downmix should be robust when L/R channels are not identical.", + readiness="ready_now", + notes="Still the same speech content; intended to catch channel handling mistakes.", + ) + add_case( + "probe_05_low_volume_48k_stereo", + 48000, + np.clip(stereo_from_mono(mono_48k) * 0.12, -1.0, 1.0), + purpose="Cover low-amplitude PCM handling.", + model_connect_path="PCM int16 decode + float normalization + ASR preprocessing.", + readiness="ready_now", + notes="Reference and TRT should see the same low-volume input.", + ) + add_case( + "probe_06_leading_trailing_silence_48k_stereo", + 48000, + np.concatenate( + [ + stereo_from_mono(silence_48k), + stereo_from_mono(mono_48k), + stereo_from_mono(silence_48k), + ] + ), + purpose="Cover non-speech padding around valid speech.", + model_connect_path="Longer waveform decode + silence handling + transcript stability.", + readiness="ready_now", + notes="Detects unexpected trimming, transcript drift, or EOS issues.", + ) + add_case( + "probe_08_noisy_48k_stereo_snr20", + 48000, + add_white_noise(stereo_from_mono(mono_48k), snr_db=20.0), + purpose="Cover deterministic noisy input handling.", + model_connect_path="PCM decode + preprocessing under non-clean waveform.", + readiness="nightly_optional", + notes="Use only as TRT-vs-reference parity; do not evaluate model noise robustness.", + ) + + manifest = { + "source_audio": "families/parakeet_tdt/tests/data/Recording.wav", + "source_properties": { + "sample_rate_hz": sample_rate, + "channels": int(original.shape[1]), + "duration_s": round(float(original.shape[0]) / sample_rate, 3), + }, + "principle": ( + "These probes test Model Connect input handling and TRT-vs-reference " + "contract parity, not model accuracy." + ), + "recommended_metrics": [ + "CER for ASR-specific character-level transcript parity", + "WER substitution/insertion/deletion breakdown for ASR failure triage", + "no-speech/blank-audio state reporting for future ASR contract work", + ], + "cases": cases, + } + (ROOT / "manifest.json").write_text( + json.dumps(manifest, indent=2) + "\n", + encoding="utf-8", + ) + + +if __name__ == "__main__": + main() diff --git a/families/parakeet_tdt/tests/data/asr_probes/manifest.json b/families/parakeet_tdt/tests/data/asr_probes/manifest.json new file mode 100644 index 0000000000..d91920c4bd --- /dev/null +++ b/families/parakeet_tdt/tests/data/asr_probes/manifest.json @@ -0,0 +1,100 @@ +{ + "source_audio": "tests/e2e/models/parakeet_tdt/data/Recording.wav", + "source_properties": { + "sample_rate_hz": 48000, + "channels": 2, + "duration_s": 4.16 + }, + "principle": "These probes test Model Connect input handling and TRT-vs-reference contract parity, not model accuracy.", + "recommended_metrics": [ + "CER for ASR-specific character-level transcript parity", + "WER substitution/insertion/deletion breakdown for ASR failure triage", + "no-speech/blank-audio state reporting for future ASR contract work" + ], + "cases": [ + { + "id": "probe_01_clean_48k_stereo_baseline", + "file": "probe_01_clean_48k_stereo_baseline.wav", + "sample_rate_hz": 48000, + "channels": 2, + "duration_s": 4.16, + "purpose": "Current smoke input copied as baseline.", + "model_connect_path": "WAV decode + stereo input + model-specific resample.", + "readiness": "ready_now", + "contract_oracle": "Compare TRT transcript with reference backend transcript; do not judge model accuracy.", + "notes": "Expected transcript is the existing short weather sentence." + }, + { + "id": "probe_02_clean_16k_mono_no_resample", + "file": "probe_02_clean_16k_mono_no_resample.wav", + "sample_rate_hz": 16000, + "channels": 1, + "duration_s": 4.16, + "purpose": "Cover native 16k mono path.", + "model_connect_path": "WAV decode without model-side downmix; should avoid 48k->16k resample in ASR preprocessing.", + "readiness": "ready_now", + "contract_oracle": "Compare TRT transcript with reference backend transcript; do not judge model accuracy.", + "notes": "Useful to isolate resampling differences from core decode/runtime differences." + }, + { + "id": "probe_03_clean_48k_mono_resample", + "file": "probe_03_clean_48k_mono_resample.wav", + "sample_rate_hz": 48000, + "channels": 1, + "duration_s": 4.16, + "purpose": "Cover mono 48k resample path.", + "model_connect_path": "WAV decode + 48k->16k resample, without stereo downmix.", + "readiness": "ready_now", + "contract_oracle": "Compare TRT transcript with reference backend transcript; do not judge model accuracy.", + "notes": "Separates resample handling from stereo downmix handling." + }, + { + "id": "probe_04_clean_48k_stereo_gain_skew", + "file": "probe_04_clean_48k_stereo_gain_skew.wav", + "sample_rate_hz": 48000, + "channels": 2, + "duration_s": 4.16, + "purpose": "Cover stereo-to-mono with asymmetric channel levels.", + "model_connect_path": "Stereo downmix should be robust when L/R channels are not identical.", + "readiness": "ready_now", + "contract_oracle": "Compare TRT transcript with reference backend transcript; do not judge model accuracy.", + "notes": "Still the same speech content; intended to catch channel handling mistakes." + }, + { + "id": "probe_05_low_volume_48k_stereo", + "file": "probe_05_low_volume_48k_stereo.wav", + "sample_rate_hz": 48000, + "channels": 2, + "duration_s": 4.16, + "purpose": "Cover low-amplitude PCM handling.", + "model_connect_path": "PCM int16 decode + float normalization + ASR preprocessing.", + "readiness": "ready_now", + "contract_oracle": "Compare TRT transcript with reference backend transcript; do not judge model accuracy.", + "notes": "Reference and TRT should see the same low-volume input." + }, + { + "id": "probe_06_leading_trailing_silence_48k_stereo", + "file": "probe_06_leading_trailing_silence_48k_stereo.wav", + "sample_rate_hz": 48000, + "channels": 2, + "duration_s": 6.16, + "purpose": "Cover non-speech padding around valid speech.", + "model_connect_path": "Longer waveform decode + silence handling + transcript stability.", + "readiness": "ready_now", + "contract_oracle": "Compare TRT transcript with reference backend transcript; do not judge model accuracy.", + "notes": "Detects unexpected trimming, transcript drift, or EOS issues." + }, + { + "id": "probe_08_noisy_48k_stereo_snr20", + "file": "probe_08_noisy_48k_stereo_snr20.wav", + "sample_rate_hz": 48000, + "channels": 2, + "duration_s": 4.16, + "purpose": "Cover deterministic noisy input handling.", + "model_connect_path": "PCM decode + preprocessing under non-clean waveform.", + "readiness": "nightly_optional", + "contract_oracle": "Compare TRT transcript with reference backend transcript; do not judge model accuracy.", + "notes": "Use only as TRT-vs-reference parity; do not evaluate model noise robustness." + } + ] +} diff --git a/families/parakeet_tdt/tests/manifests/parakeet-tdt-0.6b-v3.json b/families/parakeet_tdt/tests/manifests/parakeet-tdt-0.6b-v3.json new file mode 100644 index 0000000000..4f65e1e6ae --- /dev/null +++ b/families/parakeet_tdt/tests/manifests/parakeet-tdt-0.6b-v3.json @@ -0,0 +1,143 @@ +{ + "name": "parakeet-tdt-0.6b-v3", + "hf_id": "nvidia/parakeet-tdt-0.6b-v3", + "hf_revision": "541d1f99c6b0c3cd0b11a95167540bb8edefd82b", + "bundle": "parakeet-tdt-0.6b-v3.bundle", + "family": "parakeet_tdt", + "precision": "fp16", + "testcases": [ + { + "name": "parakeet-tdt-0.6b-v3", + "trace_id": "IT-E2E-PRKTTDT-01", + "reference_family": "asr_parakeet_tdt", + "user_contract": "exact_transcript", + "test_type": "transcription", + "reference_precision": "fp32", + "prompt": "test", + "max_new_tokens": 50, + "test_input_audio": "data/Recording.wav", + "premerge": true + }, + { + "name": "parakeet-tdt-0.6b-v3-asr-probe01", + "trace_id": "IT-E2E-PRKTTDT-ASR-01", + "reference_family": "asr_parakeet_tdt", + "user_contract": "exact_transcript", + "test_type": "transcription", + "ci_tier": "nightly_only", + "l0_replacement": "parakeet-tdt-0.6b-v3", + "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", + "prompt": "test", + "max_new_tokens": 50, + "test_input_audio": "data/asr_probes/probe_01_clean_48k_stereo_baseline.wav", + "asr_probe_id": "probe_01_clean_48k_stereo_baseline", + "asr_probe_readiness": "ready_now", + "asr_probe_purpose": "Current smoke input copied as baseline.", + "notes": "Nightly ASR coverage probe for Model Connect input handling: WAV decode + stereo input + model-specific resample." + }, + { + "name": "parakeet-tdt-0.6b-v3-asr-probe02", + "trace_id": "IT-E2E-PRKTTDT-ASR-02", + "reference_family": "asr_parakeet_tdt", + "user_contract": "exact_transcript", + "test_type": "transcription", + "ci_tier": "nightly_only", + "l0_replacement": "parakeet-tdt-0.6b-v3", + "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", + "prompt": "test", + "max_new_tokens": 50, + "test_input_audio": "data/asr_probes/probe_02_clean_16k_mono_no_resample.wav", + "asr_probe_id": "probe_02_clean_16k_mono_no_resample", + "asr_probe_readiness": "ready_now", + "asr_probe_purpose": "Cover native 16k mono path.", + "notes": "Nightly ASR coverage probe for Model Connect input handling: WAV decode without model-side downmix; should avoid 48k->16k resample in ASR preprocessing." + }, + { + "name": "parakeet-tdt-0.6b-v3-asr-probe03", + "trace_id": "IT-E2E-PRKTTDT-ASR-03", + "reference_family": "asr_parakeet_tdt", + "user_contract": "exact_transcript", + "test_type": "transcription", + "ci_tier": "nightly_only", + "l0_replacement": "parakeet-tdt-0.6b-v3", + "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", + "prompt": "test", + "max_new_tokens": 50, + "test_input_audio": "data/asr_probes/probe_03_clean_48k_mono_resample.wav", + "asr_probe_id": "probe_03_clean_48k_mono_resample", + "asr_probe_readiness": "ready_now", + "asr_probe_purpose": "Cover mono 48k resample path.", + "notes": "Nightly ASR coverage probe for Model Connect input handling: WAV decode + 48k->16k resample, without stereo downmix." + }, + { + "name": "parakeet-tdt-0.6b-v3-asr-probe04", + "trace_id": "IT-E2E-PRKTTDT-ASR-04", + "reference_family": "asr_parakeet_tdt", + "user_contract": "exact_transcript", + "test_type": "transcription", + "ci_tier": "nightly_only", + "l0_replacement": "parakeet-tdt-0.6b-v3", + "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", + "prompt": "test", + "max_new_tokens": 50, + "test_input_audio": "data/asr_probes/probe_04_clean_48k_stereo_gain_skew.wav", + "asr_probe_id": "probe_04_clean_48k_stereo_gain_skew", + "asr_probe_readiness": "ready_now", + "asr_probe_purpose": "Cover stereo-to-mono with asymmetric channel levels.", + "notes": "Nightly ASR coverage probe for Model Connect input handling: Stereo downmix should be robust when L/R channels are not identical." + }, + { + "name": "parakeet-tdt-0.6b-v3-asr-probe05", + "trace_id": "IT-E2E-PRKTTDT-ASR-05", + "reference_family": "asr_parakeet_tdt", + "user_contract": "exact_transcript", + "test_type": "transcription", + "ci_tier": "nightly_only", + "l0_replacement": "parakeet-tdt-0.6b-v3", + "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", + "prompt": "test", + "max_new_tokens": 50, + "test_input_audio": "data/asr_probes/probe_05_low_volume_48k_stereo.wav", + "asr_probe_id": "probe_05_low_volume_48k_stereo", + "asr_probe_readiness": "ready_now", + "asr_probe_purpose": "Cover low-amplitude PCM handling.", + "notes": "Nightly ASR coverage probe for Model Connect input handling: PCM int16 decode + float normalization + ASR preprocessing." + }, + { + "name": "parakeet-tdt-0.6b-v3-asr-probe06", + "trace_id": "IT-E2E-PRKTTDT-ASR-06", + "reference_family": "asr_parakeet_tdt", + "user_contract": "exact_transcript", + "test_type": "transcription", + "ci_tier": "nightly_only", + "l0_replacement": "parakeet-tdt-0.6b-v3", + "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", + "prompt": "test", + "max_new_tokens": 50, + "test_input_audio": "data/asr_probes/probe_06_leading_trailing_silence_48k_stereo.wav", + "asr_probe_id": "probe_06_leading_trailing_silence_48k_stereo", + "asr_probe_readiness": "ready_now", + "asr_probe_purpose": "Cover non-speech padding around valid speech.", + "notes": "Nightly ASR coverage probe for Model Connect input handling: Longer waveform decode + silence handling + transcript stability." + }, + { + "name": "parakeet-tdt-0.6b-v3-asr-probe08", + "trace_id": "IT-E2E-PRKTTDT-ASR-08", + "reference_family": "asr_parakeet_tdt", + "user_contract": "exact_transcript", + "test_type": "transcription", + "ci_tier": "nightly_only", + "l0_replacement": "parakeet-tdt-0.6b-v3", + "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", + "prompt": "test", + "max_new_tokens": 50, + "test_input_audio": "data/asr_probes/probe_08_noisy_48k_stereo_snr20.wav", + "asr_probe_id": "probe_08_noisy_48k_stereo_snr20", + "asr_probe_readiness": "nightly_optional", + "asr_probe_purpose": "Cover deterministic noisy input handling.", + "notes": "Nightly ASR coverage probe for Model Connect input handling: PCM decode + preprocessing under non-clean waveform." + } + ], + "task": "speech_transcription", + "tensor_parallel_size": 1 +} diff --git a/families/parakeet_tdt/tests/sdk_consumer.cpp b/families/parakeet_tdt/tests/sdk_consumer.cpp new file mode 100644 index 0000000000..f681732162 --- /dev/null +++ b/families/parakeet_tdt/tests/sdk_consumer.cpp @@ -0,0 +1,46 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +#include +#include +#include +#include +#include +#include + +int main(int argc, char** argv) { + if (argc != 7) { + std::cerr << "Usage: consumer BUNDLE RUNTIME_ROOT PCM_F32 RATE CHANNELS MAX_TOKENS\n"; + return 2; + } + try { + const auto rate = std::stoul(argv[4]); + const auto channels = std::stoul(argv[5]); + const auto limit = std::stoll(argv[6]); + if (rate > UINT32_MAX || !rate || channels > UINT32_MAX || !channels || limit <= 0) + throw std::invalid_argument("invalid audio metadata or token limit"); + std::ifstream input(argv[3], std::ios::binary | std::ios::ate); + const auto bytes = input.tellg(); + if (!input || bytes <= 0 || bytes % sizeof(float) != 0) + throw std::invalid_argument("input must be nonempty float32 PCM"); + std::vector pcm(static_cast(bytes) / sizeof(float)); + input.seekg(0); + input.read(reinterpret_cast(pcm.data()), bytes); + if (!input) + throw std::runtime_error("incomplete PCM input"); + trtmc::LoadOptions options; + options.runtime_root = argv[2]; + auto model = trtmc::Model::load(argv[1], options); + const auto task = model.task(); + trtmc::SpeechTranscriptionRequest request{{{pcm.data(), pcm.size()}, + static_cast(rate), + static_cast(channels)}, + {}}; + auto result = task.run(request, {{"max_new_tokens", static_cast(limit)}}); + std::cout << nlohmann::json({{"text", std::string(result.text())}}).dump() << '\n'; + } catch (const std::exception& error) { + std::cerr << error.what() << '\n'; + return 1; + } +} diff --git a/families/parakeet_tdt/tests/test_e2e.py b/families/parakeet_tdt/tests/test_e2e.py new file mode 100644 index 0000000000..b734ad7f2c --- /dev/null +++ b/families/parakeet_tdt/tests/test_e2e.py @@ -0,0 +1,250 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Pinned reference parity through the public speech transcription SDK.""" + +import json +import math +import os +from pathlib import Path +import subprocess +import wave + +import numpy as np +import pytest + +from tensorrt_model_connect import BuildRequest, build +from tools.e2e_evidence import evidence_stage, record_evidence + +FAMILY = "parakeet_tdt" +TASKS = frozenset({"speech_transcription"}) +TEST_ROOT = Path(__file__).resolve().parent +MANIFEST_ROOT = TEST_ROOT / "manifests" + +def _case_index() -> dict[str, tuple[Path, dict, dict]]: + result = {} + for path in sorted(MANIFEST_ROOT.glob("*.json")): + manifest = json.loads(path.read_text(encoding="utf-8")) + assert manifest["family"] == FAMILY + assert manifest["task"] in TASKS + for case in manifest["testcases"]: + name = str(case["name"]) + assert name not in result + result[name] = (path, manifest, case) + return result + + +CASES = _case_index() + + +def _selected_cases(config) -> tuple[list[str], bool]: + model_filters = set() + for raw in config.getoption("--e2e-model") or []: + model_filters.update((item.strip() for item in str(raw).split(",") if item.strip())) + models_file = config.getoption("--e2e-models-file") + if models_file: + model_filters.update( + ( + line.strip() + for line in Path(models_file).read_text(encoding="utf-8").splitlines() + if line.strip() and (not line.lstrip().startswith("#")) + ) + ) + testcase_filters = set() + for raw in config.getoption("--e2e-testcase") or []: + testcase_filters.update((item.strip() for item in str(raw).split(",") if item.strip())) + if not model_filters and (not testcase_filters): + return (sorted(CASES), False) + selected = [] + for name, (_, manifest, _) in CASES.items(): + model_match = ( + not model_filters + or FAMILY in model_filters + or name in model_filters + or (manifest["name"] in model_filters) + ) + testcase_match = not testcase_filters or name in testcase_filters + if model_match and testcase_match: + selected.append(name) + return (sorted(selected), True) + + +def pytest_generate_tests(metafunc) -> None: + if "case_name" in metafunc.fixturenames: + names, enabled = _selected_cases(metafunc.config) + parameters = names + if not enabled: + parameters = [ + pytest.param( + name, + marks=pytest.mark.skip( + reason="direct E2E requires one of the three explicit E2E selectors" + ), + ) + for name in names + ] + metafunc.parametrize("case_name", parameters, ids=names) + + +def _required_path(value: str | None, label: str) -> Path: + assert value, f"selected {FAMILY} E2E requires {label}" + path = Path(value) + assert path.exists(), f"selected {FAMILY} E2E {label} does not exist: {path}" + return path + + +def _model_dir(manifest: dict) -> Path: + explicit = os.environ.get(f"TRTMC_{FAMILY.upper()}_MODEL_DIR") + if explicit: + return _required_path(explicit, f"TRTMC_{FAMILY.upper()}_MODEL_DIR") + from huggingface_hub import snapshot_download + + try: + snapshot = snapshot_download( + repo_id=manifest["hf_id"], revision=manifest["hf_revision"], local_files_only=True + ) + except Exception as error: + raise AssertionError( + f"selected {FAMILY} E2E requires the exact cached checkpoint {manifest['hf_id']}" + ) from error + return Path(snapshot) + + +def _audio(case): + path = TEST_ROOT / case["test_input_audio"] + if not path.is_file(): + from families.parakeet_tdt.tests.data.asr_probes.generate_asr_probe_inputs import main + main() + with wave.open(str(path), "rb") as source: + assert source.getsampwidth() == 2, "Parakeet fixtures must use PCM16" + rate, channels = source.getframerate(), source.getnchannels() + audio = np.frombuffer(source.readframes(source.getnframes()), dtype=" Date: Sun, 20 Sep 2026 02:33:55 -0700 Subject: [PATCH 13/16] fix(parakeet): satisfy current family contracts Make unsupported build options explicit, use the standard KV rejection contract, remove retired manifest orchestration and set the family-owned builder optimization policy. Preserve all eight strict transcript parity cases. Signed-off-by: JiaxinD --- families/parakeet_tdt/__init__.py | 2 + families/parakeet_tdt/engines.py | 2 + families/parakeet_tdt/fastconformer.py | 1 + families/parakeet_tdt/model.py | 27 +++-- families/parakeet_tdt/runtime/plugin.cpp | 2 +- .../tests/data/asr_probes/manifest.json | 2 +- .../tests/manifests/parakeet-tdt-0.6b-v3.json | 104 ++---------------- families/parakeet_tdt/tests/test_build.py | 9 +- families/parakeet_tdt/tests/test_e2e.py | 3 +- 9 files changed, 42 insertions(+), 110 deletions(-) diff --git a/families/parakeet_tdt/__init__.py b/families/parakeet_tdt/__init__.py index 52a7a9daf0..1f89c21a5a 100644 --- a/families/parakeet_tdt/__init__.py +++ b/families/parakeet_tdt/__init__.py @@ -1,2 +1,4 @@ # SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 + +"""Family-owned Parakeet TDT implementation.""" diff --git a/families/parakeet_tdt/engines.py b/families/parakeet_tdt/engines.py index e4a65dd3ba..0f58c2134a 100644 --- a/families/parakeet_tdt/engines.py +++ b/families/parakeet_tdt/engines.py @@ -212,6 +212,7 @@ def _build_predictor( builder = trt.Builder(logger) network = builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.STRONGLY_TYPED)) config = builder.create_builder_config() + config.builder_optimization_level = 1 config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, 256 << 20) token_id = network.add_input("token_id", trt.int32, (1,)) @@ -277,6 +278,7 @@ def _build_joint( builder = trt.Builder(logger) network = builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.STRONGLY_TYPED)) config = builder.create_builder_config() + config.builder_optimization_level = 1 config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, 256 << 20) enc = network.add_input("encoder_frame", trt.float32, (1, enc_hidden)) diff --git a/families/parakeet_tdt/fastconformer.py b/families/parakeet_tdt/fastconformer.py index 7d6454a1b3..5c990fe1ac 100644 --- a/families/parakeet_tdt/fastconformer.py +++ b/families/parakeet_tdt/fastconformer.py @@ -485,6 +485,7 @@ def _build_encoder(config, weights, *, precision="fp32", verbose=False): b = trt.Builder(log) net = b.create_network(1 << int(trt.NetworkDefinitionCreationFlag.STRONGLY_TYPED)) tc = b.create_builder_config() + tc.builder_optimization_level = 1 tc.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, 2 << 30) eps = graph_ops.add_constant( diff --git a/families/parakeet_tdt/model.py b/families/parakeet_tdt/model.py index 3f051d108b..d526901a29 100644 --- a/families/parakeet_tdt/model.py +++ b/families/parakeet_tdt/model.py @@ -9,15 +9,24 @@ def build(request, writer): - required = { - "family": "parakeet_tdt", "task": "speech_transcription", "backend": "trt", - "tensor_parallel_size": 1, "context_parallel_size": 1, "max_batch_size": 1, - "max_sequence_length": None, "image_height": None, "image_width": None, - "video_num_frames": None, "fp32_layers": (), "dynamic_kv_cache": False, - "graph_transform": None, - } - for name, expected in required.items(): - if getattr(request, name) != expected: + if request.dynamic_kv_cache: + raise NotImplementedError("parakeet_tdt does not support dynamic_kv_cache") + required = ( + ("family", request.family, "parakeet_tdt"), + ("task", request.task, "speech_transcription"), + ("backend", request.backend, "trt"), + ("tensor_parallel_size", request.tensor_parallel_size, 1), + ("context_parallel_size", request.context_parallel_size, 1), + ("max_batch_size", request.max_batch_size, 1), + ("max_sequence_length", request.max_sequence_length, None), + ("image_height", request.image_height, None), + ("image_width", request.image_width, None), + ("video_num_frames", request.video_num_frames, None), + ("fp32_layers", request.fp32_layers, ()), + ("graph_transform", request.graph_transform, None), + ) + for name, actual, expected in required: + if actual != expected: raise ValueError(f"parakeet_tdt requires {name}={expected!r}") if request.precision not in {"fp16", "fp32"}: raise ValueError("parakeet_tdt supports precision=fp16 or fp32") diff --git a/families/parakeet_tdt/runtime/plugin.cpp b/families/parakeet_tdt/runtime/plugin.cpp index 13348ce790..ae7d277f14 100644 --- a/families/parakeet_tdt/runtime/plugin.cpp +++ b/families/parakeet_tdt/runtime/plugin.cpp @@ -33,7 +33,7 @@ extern "C" trtmc::ITask* trtmc_create_family(const trtmc::FamilyContext& context using namespace trtmc; using namespace trtmc::parakeet_tdt; if (context.kv_cache_size_bytes != 0) - throw std::invalid_argument("Parakeet TDT does not support kv-cache-size"); + throw std::invalid_argument("parakeet_tdt does not support --kv-cache-size"); if (context.reader.info().family != "parakeet_tdt" || context.reader.info().task != "speech_transcription" || context.reader.info().backend != "trt" || std::string(context.backend.name()) != "trt") diff --git a/families/parakeet_tdt/tests/data/asr_probes/manifest.json b/families/parakeet_tdt/tests/data/asr_probes/manifest.json index d91920c4bd..8116e9fa5f 100644 --- a/families/parakeet_tdt/tests/data/asr_probes/manifest.json +++ b/families/parakeet_tdt/tests/data/asr_probes/manifest.json @@ -1,5 +1,5 @@ { - "source_audio": "tests/e2e/models/parakeet_tdt/data/Recording.wav", + "source_audio": "families/parakeet_tdt/tests/data/Recording.wav", "source_properties": { "sample_rate_hz": 48000, "channels": 2, diff --git a/families/parakeet_tdt/tests/manifests/parakeet-tdt-0.6b-v3.json b/families/parakeet_tdt/tests/manifests/parakeet-tdt-0.6b-v3.json index 4f65e1e6ae..c16922082d 100644 --- a/families/parakeet_tdt/tests/manifests/parakeet-tdt-0.6b-v3.json +++ b/families/parakeet_tdt/tests/manifests/parakeet-tdt-0.6b-v3.json @@ -8,134 +8,44 @@ "testcases": [ { "name": "parakeet-tdt-0.6b-v3", - "trace_id": "IT-E2E-PRKTTDT-01", - "reference_family": "asr_parakeet_tdt", - "user_contract": "exact_transcript", - "test_type": "transcription", - "reference_precision": "fp32", - "prompt": "test", "max_new_tokens": 50, "test_input_audio": "data/Recording.wav", "premerge": true }, { "name": "parakeet-tdt-0.6b-v3-asr-probe01", - "trace_id": "IT-E2E-PRKTTDT-ASR-01", - "reference_family": "asr_parakeet_tdt", - "user_contract": "exact_transcript", - "test_type": "transcription", - "ci_tier": "nightly_only", - "l0_replacement": "parakeet-tdt-0.6b-v3", - "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", - "prompt": "test", "max_new_tokens": 50, - "test_input_audio": "data/asr_probes/probe_01_clean_48k_stereo_baseline.wav", - "asr_probe_id": "probe_01_clean_48k_stereo_baseline", - "asr_probe_readiness": "ready_now", - "asr_probe_purpose": "Current smoke input copied as baseline.", - "notes": "Nightly ASR coverage probe for Model Connect input handling: WAV decode + stereo input + model-specific resample." + "test_input_audio": "data/asr_probes/probe_01_clean_48k_stereo_baseline.wav" }, { "name": "parakeet-tdt-0.6b-v3-asr-probe02", - "trace_id": "IT-E2E-PRKTTDT-ASR-02", - "reference_family": "asr_parakeet_tdt", - "user_contract": "exact_transcript", - "test_type": "transcription", - "ci_tier": "nightly_only", - "l0_replacement": "parakeet-tdt-0.6b-v3", - "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", - "prompt": "test", "max_new_tokens": 50, - "test_input_audio": "data/asr_probes/probe_02_clean_16k_mono_no_resample.wav", - "asr_probe_id": "probe_02_clean_16k_mono_no_resample", - "asr_probe_readiness": "ready_now", - "asr_probe_purpose": "Cover native 16k mono path.", - "notes": "Nightly ASR coverage probe for Model Connect input handling: WAV decode without model-side downmix; should avoid 48k->16k resample in ASR preprocessing." + "test_input_audio": "data/asr_probes/probe_02_clean_16k_mono_no_resample.wav" }, { "name": "parakeet-tdt-0.6b-v3-asr-probe03", - "trace_id": "IT-E2E-PRKTTDT-ASR-03", - "reference_family": "asr_parakeet_tdt", - "user_contract": "exact_transcript", - "test_type": "transcription", - "ci_tier": "nightly_only", - "l0_replacement": "parakeet-tdt-0.6b-v3", - "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", - "prompt": "test", "max_new_tokens": 50, - "test_input_audio": "data/asr_probes/probe_03_clean_48k_mono_resample.wav", - "asr_probe_id": "probe_03_clean_48k_mono_resample", - "asr_probe_readiness": "ready_now", - "asr_probe_purpose": "Cover mono 48k resample path.", - "notes": "Nightly ASR coverage probe for Model Connect input handling: WAV decode + 48k->16k resample, without stereo downmix." + "test_input_audio": "data/asr_probes/probe_03_clean_48k_mono_resample.wav" }, { "name": "parakeet-tdt-0.6b-v3-asr-probe04", - "trace_id": "IT-E2E-PRKTTDT-ASR-04", - "reference_family": "asr_parakeet_tdt", - "user_contract": "exact_transcript", - "test_type": "transcription", - "ci_tier": "nightly_only", - "l0_replacement": "parakeet-tdt-0.6b-v3", - "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", - "prompt": "test", "max_new_tokens": 50, - "test_input_audio": "data/asr_probes/probe_04_clean_48k_stereo_gain_skew.wav", - "asr_probe_id": "probe_04_clean_48k_stereo_gain_skew", - "asr_probe_readiness": "ready_now", - "asr_probe_purpose": "Cover stereo-to-mono with asymmetric channel levels.", - "notes": "Nightly ASR coverage probe for Model Connect input handling: Stereo downmix should be robust when L/R channels are not identical." + "test_input_audio": "data/asr_probes/probe_04_clean_48k_stereo_gain_skew.wav" }, { "name": "parakeet-tdt-0.6b-v3-asr-probe05", - "trace_id": "IT-E2E-PRKTTDT-ASR-05", - "reference_family": "asr_parakeet_tdt", - "user_contract": "exact_transcript", - "test_type": "transcription", - "ci_tier": "nightly_only", - "l0_replacement": "parakeet-tdt-0.6b-v3", - "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", - "prompt": "test", "max_new_tokens": 50, - "test_input_audio": "data/asr_probes/probe_05_low_volume_48k_stereo.wav", - "asr_probe_id": "probe_05_low_volume_48k_stereo", - "asr_probe_readiness": "ready_now", - "asr_probe_purpose": "Cover low-amplitude PCM handling.", - "notes": "Nightly ASR coverage probe for Model Connect input handling: PCM int16 decode + float normalization + ASR preprocessing." + "test_input_audio": "data/asr_probes/probe_05_low_volume_48k_stereo.wav" }, { "name": "parakeet-tdt-0.6b-v3-asr-probe06", - "trace_id": "IT-E2E-PRKTTDT-ASR-06", - "reference_family": "asr_parakeet_tdt", - "user_contract": "exact_transcript", - "test_type": "transcription", - "ci_tier": "nightly_only", - "l0_replacement": "parakeet-tdt-0.6b-v3", - "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", - "prompt": "test", "max_new_tokens": 50, - "test_input_audio": "data/asr_probes/probe_06_leading_trailing_silence_48k_stereo.wav", - "asr_probe_id": "probe_06_leading_trailing_silence_48k_stereo", - "asr_probe_readiness": "ready_now", - "asr_probe_purpose": "Cover non-speech padding around valid speech.", - "notes": "Nightly ASR coverage probe for Model Connect input handling: Longer waveform decode + silence handling + transcript stability." + "test_input_audio": "data/asr_probes/probe_06_leading_trailing_silence_48k_stereo.wav" }, { "name": "parakeet-tdt-0.6b-v3-asr-probe08", - "trace_id": "IT-E2E-PRKTTDT-ASR-08", - "reference_family": "asr_parakeet_tdt", - "user_contract": "exact_transcript", - "test_type": "transcription", - "ci_tier": "nightly_only", - "l0_replacement": "parakeet-tdt-0.6b-v3", - "l0_replacement_reason": "ASR probe matrix runs in nightly; PR L0 uses the base ASR model for the same runtime path.", - "prompt": "test", "max_new_tokens": 50, - "test_input_audio": "data/asr_probes/probe_08_noisy_48k_stereo_snr20.wav", - "asr_probe_id": "probe_08_noisy_48k_stereo_snr20", - "asr_probe_readiness": "nightly_optional", - "asr_probe_purpose": "Cover deterministic noisy input handling.", - "notes": "Nightly ASR coverage probe for Model Connect input handling: PCM decode + preprocessing under non-clean waveform." + "test_input_audio": "data/asr_probes/probe_08_noisy_48k_stereo_snr20.wav" } ], "task": "speech_transcription", diff --git a/families/parakeet_tdt/tests/test_build.py b/families/parakeet_tdt/tests/test_build.py index 703c344888..e52c59f148 100644 --- a/families/parakeet_tdt/tests/test_build.py +++ b/families/parakeet_tdt/tests/test_build.py @@ -52,7 +52,7 @@ def test_discovery_does_not_claim_other_parakeet_topologies(config): ("context_parallel_size", 2), ("max_batch_size", 2), ("max_sequence_length", 128), ("image_height", 224), ("image_width", 224), ("video_num_frames", 8), ("quantization", "int8"), - ("fp32_layers", (0,)), ("dynamic_kv_cache", True), + ("fp32_layers", (0,)), ("graph_transform", lambda *args: None), ]) def test_unsupported_options_fail_before_checkpoint_or_engine_loading(tmp_path, option, value): @@ -71,6 +71,13 @@ def test_missing_native_checkpoint_does_not_fall_back_to_nemo(tmp_path): build(req, BundleWriter(req.output_path)) +def test_dynamic_kv_cache_is_explicitly_unsupported(tmp_path): + build = importlib.import_module("families.parakeet_tdt.model").build + req = request(tmp_path, dynamic_kv_cache=True) + with pytest.raises(NotImplementedError, match="does not support dynamic_kv_cache"): + build(req, BundleWriter(req.output_path)) + + @pytest.mark.parametrize("precision", ["fp16", "fp32"]) def test_build_packages_owned_sections_without_mutating_checkpoint(tmp_path, monkeypatch, precision): build = importlib.import_module("families.parakeet_tdt.model").build diff --git a/families/parakeet_tdt/tests/test_e2e.py b/families/parakeet_tdt/tests/test_e2e.py index b734ad7f2c..aceb7d8e15 100644 --- a/families/parakeet_tdt/tests/test_e2e.py +++ b/families/parakeet_tdt/tests/test_e2e.py @@ -166,7 +166,8 @@ def test_official_checkpoint_e2e(case_name, tmp_path): bundle = tmp_path / manifest["bundle"] with evidence_stage("build"): build(BuildRequest(model_dir=model_dir, output_path=bundle, family=FAMILY, - task=manifest["task"], precision=manifest["precision"])) + task=manifest["task"], precision=manifest["precision"], + tensor_parallel_size=int(manifest["tensor_parallel_size"]))) audio, rate, channels = _audio(case) pcm = tmp_path / "input.f32" audio.astype(" Date: Sun, 20 Sep 2026 02:44:39 -0700 Subject: [PATCH 14/16] fix(parakeet): declare performance qualification gap Signed-off-by: JiaxinD --- apps/benchmark/performance/release.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/benchmark/performance/release.yaml b/apps/benchmark/performance/release.yaml index 28ea3b5f9a..28880f7659 100644 --- a/apps/benchmark/performance/release.yaml +++ b/apps/benchmark/performance/release.yaml @@ -18,6 +18,11 @@ defaults: asset_loading_included: false excluded_profiles: + - model: parakeet-tdt-0.6b-v3 + reason: >- + The family-local migration has no release-performance workload or receipt + yet. Target-GPU engine conversion and exact-transcript E2E parity remain + unverified; no performance qualification is claimed. - model: s1-mini-fp16 reason: >- families/s1_mini has no release-performance workload or receipt yet; From d1b28ee432f9f9b504a986a2209a687dbf04ad33 Mon Sep 17 00:00:00 2001 From: JiaxinD Date: Mon, 21 Sep 2026 09:20:12 -0700 Subject: [PATCH 15/16] fix(parakeet): build SDK consumer in GPU E2E Signed-off-by: JiaxinD --- families/parakeet_tdt/tests/README.md | 7 +++ families/parakeet_tdt/tests/test_build.py | 21 --------- families/parakeet_tdt/tests/test_e2e.py | 16 +++++-- families/parakeet_tdt/tests/test_gpu_ci.py | 48 +++++++++++++++++++++ families/parakeet_tdt/tests/test_support.py | 37 ++++++++++++++++ 5 files changed, 105 insertions(+), 24 deletions(-) create mode 100644 families/parakeet_tdt/tests/test_gpu_ci.py create mode 100644 families/parakeet_tdt/tests/test_support.py diff --git a/families/parakeet_tdt/tests/README.md b/families/parakeet_tdt/tests/README.md index 1c3062f60a..c985c94c04 100644 --- a/families/parakeet_tdt/tests/README.md +++ b/families/parakeet_tdt/tests/README.md @@ -45,3 +45,10 @@ From the repository root: ```sh PYTHONPATH=core/builder:. python -m pytest families/parakeet_tdt/tests -q ``` + +The selected E2E builds `test_parakeet_tdt_sdk_cpp` in the configured +`TRTMC_NATIVE_BUILD_DIR` before invoking the public SDK consumer. Community GPU +builds the family DSO and registered CTests, so an unregistered consumer cannot +be assumed to exist. `test_gpu_ci.py` checks the selected pinned checkpoint and +uses a real minimal CMake build to verify the consumer helper. Checkpoint +identity tests live in `test_support.py` for public CPU discovery. diff --git a/families/parakeet_tdt/tests/test_build.py b/families/parakeet_tdt/tests/test_build.py index e52c59f148..1b0596daeb 100644 --- a/families/parakeet_tdt/tests/test_build.py +++ b/families/parakeet_tdt/tests/test_build.py @@ -15,7 +15,6 @@ from tensorrt_model_connect.build import BuildRequest from tensorrt_model_connect.bundle_writer import BundleWriter -from tensorrt_model_connect.model_support import ModelMetadata, resolve_family def request(tmp_path, **changes): @@ -26,26 +25,6 @@ def request(tmp_path, **changes): return replace(base, **changes) -@pytest.mark.parametrize("config", [ - {"model_type": "parakeet_tdt"}, - {"architectures": ["ParakeetForTDT"]}, -]) -def test_discovery_has_one_owner(config): - family, support = resolve_family(ModelMetadata(config, {})) - assert family == "parakeet_tdt" - assert support.tasks == ("speech_transcription",) - assert support.default_task == "speech_transcription" - - -@pytest.mark.parametrize("config", [ - {"model_type": "parakeet_ctc"}, {"model_type": "parakeet"}, - {"architectures": ["ParakeetForRNNT"]}, {}, -]) -def test_discovery_does_not_claim_other_parakeet_topologies(config): - describe = importlib.import_module("families.parakeet_tdt.support").describe - assert describe(ModelMetadata(config, {}, ("parakeet.nemo",))) is None - - @pytest.mark.parametrize(("option", "value"), [ ("family", "whisper"), ("task", "transcription"), ("backend", "trt_rtx"), ("precision", "bf16"), ("tensor_parallel_size", 2), diff --git a/families/parakeet_tdt/tests/test_e2e.py b/families/parakeet_tdt/tests/test_e2e.py index aceb7d8e15..c3135b88e7 100644 --- a/families/parakeet_tdt/tests/test_e2e.py +++ b/families/parakeet_tdt/tests/test_e2e.py @@ -150,12 +150,22 @@ def _reference(model_dir, audio, rate, channels, max_new_tokens): return {"text": decoded[0] if isinstance(decoded, (list, tuple)) else str(decoded)} +def _sdk_consumer_binary() -> Path: + native = _required_path(os.environ.get("TRTMC_NATIVE_BUILD_DIR"), "TRTMC_NATIVE_BUILD_DIR") + subprocess.run( + ["cmake", "--build", str(native), "--parallel", "8", "--target", "test_parakeet_tdt_sdk_cpp"], + check=True, + timeout=600, + ) + consumer = native / "test_parakeet_tdt_sdk_cpp" + assert consumer.is_file(), "native build did not produce the family-owned SDK consumer" + return consumer + + def test_official_checkpoint_e2e(case_name, tmp_path): _, manifest, case = CASES[case_name] runtime = _required_path(os.environ.get("TRTMC_RUNTIME_ROOT"), "TRTMC_RUNTIME_ROOT") - native = _required_path(os.environ.get("TRTMC_NATIVE_BUILD_DIR"), "TRTMC_NATIVE_BUILD_DIR") - consumer = native / "test_parakeet_tdt_sdk_cpp" - assert consumer.is_file(), "build the family-owned SDK consumer" + consumer = _sdk_consumer_binary() assert (runtime / "libtrtmc_model_parakeet_tdt.so").is_file() assert (runtime / "libtrtmc_backend_trt.so").is_file() import torch diff --git a/families/parakeet_tdt/tests/test_gpu_ci.py b/families/parakeet_tdt/tests/test_gpu_ci.py new file mode 100644 index 0000000000..a3d141f964 --- /dev/null +++ b/families/parakeet_tdt/tests/test_gpu_ci.py @@ -0,0 +1,48 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Keep the transcription proof executable in the family GPU plan.""" + +from pathlib import Path +import shutil +import subprocess + +import pytest + +from tools.community_gpu_ci import family_plan +from families.parakeet_tdt.tests import test_e2e + + +def test_transcription_is_selected_with_its_pinned_checkpoint(): + plan = family_plan(Path(__file__).resolve().parents[3], "parakeet_tdt") + assert "parakeet-tdt-0.6b-v3" in plan.testcases + assert ( + "nvidia/parakeet-tdt-0.6b-v3", + "541d1f99c6b0c3cd0b11a95167540bb8edefd82b", + ) in plan.checkpoints + + +def test_transcription_consumer_is_built_outside_isolated_runtime(tmp_path, monkeypatch): + if not shutil.which("cmake") or not shutil.which("cc"): + pytest.skip("native build probe requires CMake and a C compiler") + source = tmp_path / "source" + source.mkdir() + (source / "probe.c").write_text("int main(void) { return 0; }\n") + (source / "CMakeLists.txt").write_text( + "cmake_minimum_required(VERSION 3.18)\nproject(probe C)\n" + "add_executable(test_parakeet_tdt_sdk_cpp probe.c)\n" + "set_target_properties(test_parakeet_tdt_sdk_cpp PROPERTIES " + 'RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}")\n' + ) + build_dir = tmp_path / "build" + subprocess.run(["cmake", "-S", str(source), "-B", str(build_dir)], check=True) + monkeypatch.setenv("TRTMC_NATIVE_BUILD_DIR", str(build_dir)) + binary = test_e2e._sdk_consumer_binary() + assert binary.parent == build_dir + subprocess.run([str(binary)], check=True) + + +def test_transcription_consumer_requires_native_build(monkeypatch): + monkeypatch.delenv("TRTMC_NATIVE_BUILD_DIR", raising=False) + with pytest.raises(AssertionError, match="TRTMC_NATIVE_BUILD_DIR"): + test_e2e._sdk_consumer_binary() diff --git a/families/parakeet_tdt/tests/test_support.py b/families/parakeet_tdt/tests/test_support.py new file mode 100644 index 0000000000..d861b9ca8e --- /dev/null +++ b/families/parakeet_tdt/tests/test_support.py @@ -0,0 +1,37 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Dependency-free checkpoint identity for the public CPU gate.""" + +import importlib +import pytest + +from tensorrt_model_connect.model_support import ModelMetadata, resolve_family + + +@pytest.mark.parametrize( + "config", + [ + {"model_type": "parakeet_tdt"}, + {"architectures": ["ParakeetForTDT"]}, + ], +) +def test_discovery_has_one_owner(config): + family, support = resolve_family(ModelMetadata(config, {})) + assert family == "parakeet_tdt" + assert support.tasks == ("speech_transcription",) + assert support.default_task == "speech_transcription" + + +@pytest.mark.parametrize( + "config", + [ + {"model_type": "parakeet_ctc"}, + {"model_type": "parakeet"}, + {"architectures": ["ParakeetForRNNT"]}, + {}, + ], +) +def test_discovery_does_not_claim_other_parakeet_topologies(config): + describe = importlib.import_module("families.parakeet_tdt.support").describe + assert describe(ModelMetadata(config, {}, ("parakeet.nemo",))) is None From 12060d488c5c8d654413f0f75ac57eba3e144d5c Mon Sep 17 00:00:00 2001 From: JiaxinD Date: Thu, 24 Sep 2026 20:58:29 -0700 Subject: [PATCH 16/16] fix(parakeet): generate probes outside source tree Signed-off-by: JiaxinD --- .../asr_probes/generate_asr_probe_inputs.py | 10 ++++--- families/parakeet_tdt/tests/test_e2e.py | 28 +++++++++++++++---- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/families/parakeet_tdt/tests/data/asr_probes/generate_asr_probe_inputs.py b/families/parakeet_tdt/tests/data/asr_probes/generate_asr_probe_inputs.py index 0c2ec152fe..ab432fb08c 100644 --- a/families/parakeet_tdt/tests/data/asr_probes/generate_asr_probe_inputs.py +++ b/families/parakeet_tdt/tests/data/asr_probes/generate_asr_probe_inputs.py @@ -82,7 +82,9 @@ def add_white_noise(audio: np.ndarray, snr_db: float, seed: int = 20260611) -> n return np.clip(audio + noise, -1.0, 1.0) -def main() -> None: +def main(output_dir: Path | None = None) -> None: + output_dir = ROOT if output_dir is None else output_dir + output_dir.mkdir(parents=True, exist_ok=True) sample_rate, original = read_wav(SOURCE) mono_48k = mono(original) mono_16k = resample_linear(mono_48k, sample_rate, 16000) @@ -100,7 +102,7 @@ def add_case( notes: str, ) -> None: file_name = f"{name}.wav" - write_wav(ROOT / file_name, sample_rate_hz, audio) + write_wav(output_dir / file_name, sample_rate_hz, audio) channels = 1 if audio.ndim == 1 else audio.shape[1] duration_s = round(float(audio.shape[0]) / sample_rate_hz, 3) cases.append( @@ -121,7 +123,7 @@ def add_case( } ) - shutil.copyfile(SOURCE, ROOT / "probe_01_clean_48k_stereo_baseline.wav") + shutil.copyfile(SOURCE, output_dir / "probe_01_clean_48k_stereo_baseline.wav") cases.append( { "id": "probe_01_clean_48k_stereo_baseline", @@ -222,7 +224,7 @@ def add_case( ], "cases": cases, } - (ROOT / "manifest.json").write_text( + (output_dir / "manifest.json").write_text( json.dumps(manifest, indent=2) + "\n", encoding="utf-8", ) diff --git a/families/parakeet_tdt/tests/test_e2e.py b/families/parakeet_tdt/tests/test_e2e.py index c3135b88e7..aa2b37792b 100644 --- a/families/parakeet_tdt/tests/test_e2e.py +++ b/families/parakeet_tdt/tests/test_e2e.py @@ -110,11 +110,13 @@ def _model_dir(manifest: dict) -> Path: return Path(snapshot) -def _audio(case): +def _audio(case, generated_root): path = TEST_ROOT / case["test_input_audio"] if not path.is_file(): from families.parakeet_tdt.tests.data.asr_probes.generate_asr_probe_inputs import main - main() + path = generated_root / path.name + if not path.is_file(): + main(generated_root) with wave.open(str(path), "rb") as source: assert source.getsampwidth() == 2, "Parakeet fixtures must use PCM16" rate, channels = source.getframerate(), source.getnchannels() @@ -178,7 +180,7 @@ def test_official_checkpoint_e2e(case_name, tmp_path): build(BuildRequest(model_dir=model_dir, output_path=bundle, family=FAMILY, task=manifest["task"], precision=manifest["precision"], tensor_parallel_size=int(manifest["tensor_parallel_size"]))) - audio, rate, channels = _audio(case) + audio, rate, channels = _audio(case, tmp_path / "audio-probes") pcm = tmp_path / "input.f32" audio.astype(" 0 and rate > 0 and channels > 0 + assert list(source_root.iterdir()) == [] + assert len(list(output.glob("*.wav"))) == 7

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 NC-C1B_gQJ8Zn= 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