En bref : La prompt injection représente la menace la plus critique pour les systèmes d’IA, exploitant la confusion entre instructions et données. Les attaques indirectes, via des documents ou emails contaminés, sont particulièrement insidieuses et difficiles à détecter. Les dirigeants, DSI et DAF doivent impérativement adopter une stratégie de défense multicouche, au-delà des mesures traditionnelles, pour sécuriser leurs déploiements LLM.
Prompt Injection : Pourquoi cette faille est-elle la menace IA N°1 ?
La “prompt injection” est une vulnérabilité de sécurité qui manipule le comportement d’un grand modèle de langage (LLM) en insérant des entrées malveillantes. Contrairement aux failles logicielles classiques, elle n’exploite pas une erreur de code, mais la capacité intrinsèque des LLM à traiter le langage naturel. Le modèle interprète des instructions adverses comme légitimes, contournant ses directives initiales.
Cette vulnérabilité est devenue la menace la plus exploitée dans les systèmes d’IA modernes. L’OWASP LLM Top 10 la classe systématiquement comme la vulnérabilité la plus critique (LLM01). En 2025, CrowdStrike a documenté des acteurs de la menace injectant des prompts malveillants dans des outils d’IA générative légitimes chez plus de 90 organisations, les utilisant pour voler des identifiants et des cryptomonnaies. Le rapport a clairement indiqué : “Les prompts sont le nouveau malware”.
Le problème fondamental réside dans la conception même des LLM : ils ne distinguent pas clairement les instructions du développeur des entrées de l’utilisateur. Cette absence de séparation permet à un attaquant de “court-circuiter” les instructions originales du système en injectant ses propres commandes.
Attaques indirectes : Le cheval de Troie des LLM en entreprise
La prompt injection se divise en deux catégories : directe et indirecte. La prompt injection directe survient quand un attaquant insère des commandes malveillantes directement dans le prompt de l’utilisateur. C’est l’équivalent d’un “jailbreak” où l’utilisateur tente de contourner les restrictions du modèle.
L’attaque indirecte est plus insidieuse et représente un risque accru pour les entreprises. Dans ce scénario, des instructions malveillantes sont dissimulées dans des contenus externes (pages web, documents, emails) que le LLM est amené à traiter. L’utilisateur interagit innocemment avec un contenu qui, à son insu, contient un prompt hostile. Le système d’IA, sans distinguer les commandes cachées, exécute ces instructions en même temps que sa tâche principale.
Comment les documents et emails deviennent des vecteurs d’attaque
Les LLM d’entreprise sont souvent connectés à des sources de données internes : bases de connaissances, référentiels de documents, systèmes de gestion de la relation client (CRM) et, de plus en plus, les emails. Cette intégration, pensée pour augmenter la productivité, ouvre des brèches significatives.
Un attaquant peut dissimuler des instructions de prompt injection dans :
- Des documents PDF ou Word : Un fichier apparemment anodin, téléchargé ou partagé en interne, peut contenir du texte blanc sur fond blanc, des caractères Unicode non imprimables, ou des métadonnées piégées. Si un LLM est chargé de résumer ce document, il peut exécuter les instructions cachées.
- Des emails : Un email reçu, même d’une source apparemment légitime, peut contenir un prompt malveillant. Si un assistant IA est configuré pour résumer des emails ou extraire des informations, il peut interpréter ces instructions cachées comme des commandes. Un exemple concret a montré comment un email pouvait manipuler un assistant IA pour qu’il reconstruise et présente un lien de phishing à l’utilisateur final.
- Des pages web ou des forums : Si un LLM est utilisé pour naviguer ou résumer du contenu web, une page web piégée peut injecter des commandes.
Ces attaques sont dangereuses car elles exploitent la confiance implicite dans les sources de données. Un système d’IA traitant des millions de documents ou d’emails ne peut pas humainement valider chaque fragment de texte. Les attaquants n’ont pas besoin d’accéder directement au LLM ; ils ciblent les données qu’il consomme.
Conséquences pour l’entreprise
Les impacts d’une prompt injection réussie sont variés et graves :
- Exfiltration de données : Le LLM peut être contraint de divulguer des informations sensibles (données clients, secrets commerciaux, identifiants API, code source propriétaire) en contournant les contrôles d’accès. En 2023, des ingénieurs chez Samsung ont involontairement entraîné un modèle public avec du code source propriétaire en le collant dans ChatGPT pour débogage.
- Ingénierie sociale et désinformation : Un LLM compromis peut être utilisé pour générer des messages de phishing crédibles, propager de fausses informations ou manipuler d’autres systèmes. Un chatbot de DPD a été dupé en 2024 pour écrire un poème dénigrant l’entreprise, provoquant un incident de relations publiques viral.
- Exécution de code non autorisée : Si le LLM est connecté à des outils ou des API, une injection peut entraîner l’exécution de commandes système ou des actions non autorisées.
- Déni de service (DoS) : Les attaquants peuvent surcharger le système ou le rendre inopérant.
- Contournement des contrôles de sécurité : Les filtres de sécurité traditionnels sont souvent inefficaces car l’attaque opère au niveau sémantique, pas au niveau réseau ou application.
Défenses réelles contre la prompt injection : Au-delà du prompt système
La simple instruction au LLM d’ignorer les prompts malveillants est insuffisante. C’est une contrainte comportementale, non structurelle, qu’un attaquant peut contourner. Une stratégie de défense multicouche est indispensable.
1. Séparation stricte des instructions et des données
Le principe fondamental est de ne jamais traiter les instructions du système et les entrées de l’utilisateur (ou les données externes) de la même manière.
- Isolation du contenu non fiable : Les données provenant de sources externes (emails, documents téléchargés, contenu web) doivent être traitées comme non fiables et isolées. Google, par exemple, utilise des classificateurs de contenu pour identifier et signaler les entrées suspectes avant qu’elles n’atteignent le modèle principal.
- “Guardrail LLM” ou modèle de quarantaine : Un LLM secondaire, dit “de garde” ou “de quarantaine”, peut être utilisé pour lire et résumer le contenu non fiable. Ce modèle ne dispose d’aucune capacité d’action. Le modèle principal, privilégié, ne reçoit alors que des résumés structurés ou des étiquettes, rompant le chemin des instructions injectées. Ce modèle de garde doit lui-même être protégé contre la prompt injection.
2. Validation et assainissement des entrées et sorties
- Filtrage sémantique des entrées : Au lieu de simples filtres par mots-clés (facilement contournables), des filtres sémantiques analysent l’intention derrière le prompt. Cela permet de détecter les tentatives de manipulation même si elles utilisent un langage non explicitement “interdit”.
- Validation des sorties : Les sorties du LLM doivent être validées et assainies avant d’être envoyées à des systèmes backend ou présentées à l’utilisateur. Cela inclut l’encodage des sorties pour prévenir l’exécution de scripts malveillants (XSS) ou les injections SQL.
- Renforcement des instructions de sécurité : Intégrer des instructions de sécurité ciblées directement dans le traitement des prompts, rappelant au modèle de privilégier la sécurité et d’ignorer les commandes adverses.
3. Contrôles d’accès et principe du moindre privilège
- Accès à privilège minimum : Les agents IA et les outils connectés au LLM doivent opérer avec le strict minimum de permissions nécessaires à leur fonction. Si un agent n’a pas besoin d’envoyer des emails, il ne doit pas avoir cette capacité.
- Séparation des données sensibles : Les clés API, identifiants, détails de base de données ne doivent jamais être intégrés dans les prompts système. Ils doivent être stockés dans des systèmes externes sécurisés.
- Autorisation au niveau utilisateur : Appliquer des contrôles d’autorisation basés sur l’identité de l’utilisateur (ex: OAuth) pour s’assurer que les actions sont exécutées sous l’identité spécifique de l’utilisateur.
- Approbation humaine : Pour les opérations sensibles, une approbation humaine explicite reste une défense essentielle.
4. Surveillance continue et réponse aux incidents
- Journalisation détaillée : Maintenir des journaux complets de toutes les interactions avec le LLM pour l’audit et la conformité.
- Détection d’anomalies : Surveiller en temps réel les comportements anormaux du LLM. Une dérive par rapport au comportement attendu peut indiquer une injection.
- Red Teaming : Tester régulièrement les systèmes LLM avec des attaques simulées pour évaluer leur résilience. Cela inclut des tests pour les chemins d’injection indirecte, la traduction, l’encodage et la reconstruction multi-tours.
Recommandations de l’OWASP LLM Top 10 (version 2025)
L’OWASP LLM Top 10 est la référence pour comprendre et atténuer les risques de sécurité liés aux LLM. La version 2025 (LLM01:2025) maintient la prompt injection comme la vulnérabilité la plus critique.
Les recommandations de l’OWASP pour LLM01: Prompt Injection incluent :
- Concevoir avec l’attente d’une injection : Partir du principe que les attaques par injection de prompt sont inévitables.
- Isoler le contenu non fiable : Utiliser des techniques comme le contrôle de flux d’informations (IFC) et le marquage des données pour empêcher les données non fiables d’influencer les processus critiques du modèle.
- Renforcer les instructions de sécurité : Intégrer des directives de sécurité explicites dans les prompts système pour rappeler au LLM de rester concentré sur sa tâche et d’ignorer les instructions contradictoires.
- Mettre en œuvre des “Prompt Shields” : Des contrôles basés sur des politiques pour imposer des limites strictes au comportement du modèle.
- Filtrage bidirectionnel : Appliquer un filtrage rigoureux à la fois sur les entrées et les sorties du modèle.
- Minimiser l’accès aux outils : Restreindre les permissions des outils connectés au LLM au strict nécessaire.
- Surveillance et journalisation : Maintenir une surveillance continue du comportement du LLM et des journaux détaillés.
- Formation des utilisateurs : Sensibiliser les employés aux risques de l’injection de prompt, en particulier les formes indirectes.
Il est crucial de comprendre que les défenses traditionnelles de cybersécurité ne suffisent pas pour les LLM. La sécurité des applications IA exige une approche nouvelle, intégrant la psychologie, l’ingénierie des prompts et l’intervention humaine (Human-In-The-Loop).
Criteres de decision pour une defense robuste contre la prompt injection
La mise en place d’une défense efficace contre la prompt injection ne se limite pas à l’implémentation d’une solution unique. Elle implique des choix stratégiques basés sur le contexte d’utilisation du LLM, la sensibilité des données traitées et l’exposition aux sources externes.
| Critère / Approche | Contexte d’Application | Avantages
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------