<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.lololand.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Maintenance+script</id>
	<title>Loic Wiki - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.lololand.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Maintenance+script"/>
	<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php/Sp%C3%A9cial:Contributions/Maintenance_script"/>
	<updated>2026-05-25T19:35:58Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Ollama&amp;diff=132</id>
		<title>Trace install tas - Ollama</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Ollama&amp;diff=132"/>
		<updated>2026-03-27T23:44:01Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Mise à jour Ollama AMD+NVIDIA, CLI et supervision&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - Ollama =&lt;br /&gt;
&lt;br /&gt;
== Rôle ==&lt;br /&gt;
API locale de modèles LLM avec deux instances distinctes :&lt;br /&gt;
* une instance AMD/ROCm sur la Radeon RX 7900&lt;br /&gt;
* une instance NVIDIA/CUDA sur la GeForce RTX 3070&lt;br /&gt;
&lt;br /&gt;
== Accès ==&lt;br /&gt;
=== Instance AMD / ROCm ===&lt;br /&gt;
* Local : http://10.8.0.1:11434&lt;br /&gt;
* Depuis le terminal local : `OLLAMA_HOST=http://127.0.0.1:11434`&lt;br /&gt;
* Public : https://lololand.hopto.org:25434&lt;br /&gt;
&lt;br /&gt;
=== Instance NVIDIA / CUDA ===&lt;br /&gt;
* Local : http://10.8.0.1:11435&lt;br /&gt;
* Depuis le terminal local : `OLLAMA_HOST=http://127.0.0.1:11435`&lt;br /&gt;
* Pas d&#039;exposition publique dédiée documentée à ce stade&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
* 11434/tcp : serveur Ollama AMD / ROCm&lt;br /&gt;
* 11435/tcp : serveur Ollama NVIDIA / CUDA&lt;br /&gt;
* 25434/tcp : proxy public Caddy vers l&#039;instance AMD/ROCm, protégé par basicauth&lt;br /&gt;
&lt;br /&gt;
== Exécution / runtime ==&lt;br /&gt;
=== AMD / ROCm ===&lt;br /&gt;
* Service systemd user : `/home/loic/.config/systemd/user/ollama.service`&lt;br /&gt;
* Conteneur : `ollama_roc`&lt;br /&gt;
* Image : `docker.io/ollama/ollama:rocm`&lt;br /&gt;
* Devices : `/dev/kfd`, `/dev/dri`&lt;br /&gt;
&lt;br /&gt;
=== NVIDIA / CUDA ===&lt;br /&gt;
* Service systemd user : `/home/loic/.config/systemd/user/ollama-nvidia.service`&lt;br /&gt;
* Conteneur : `ollama_nv`&lt;br /&gt;
* Image : `docker.io/ollama/ollama:latest`&lt;br /&gt;
* Intégration GPU : Podman + NVIDIA Container Toolkit + CDI&lt;br /&gt;
* Device CDI utilisé : `nvidia.com/gpu=all`&lt;br /&gt;
&lt;br /&gt;
== Chemins de configuration ==&lt;br /&gt;
* `/home/loic/.config/systemd/user/ollama.service`&lt;br /&gt;
* `/home/loic/.config/systemd/user/ollama-nvidia.service`&lt;br /&gt;
* `/etc/caddy/Caddyfile`&lt;br /&gt;
* `/home/loic/.bashrc` (alias CLI)&lt;br /&gt;
* `/home/loic/upgrade/ollama-dual-gpu-plan.md`&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance ==&lt;br /&gt;
* Stockage modèles partagé entre les deux instances : `/media/loic/nem/ollama`&lt;br /&gt;
* Montage conteneur : `/media/loic/nem/ollama -&amp;gt; /root/.ollama`&lt;br /&gt;
&lt;br /&gt;
== Dépendances ==&lt;br /&gt;
* Caddy 25434 -&amp;gt; 11434 avec basicauth pour l&#039;instance AMD/ROCm&lt;br /&gt;
* NVIDIA driver 580 open pour la RTX 3070&lt;br /&gt;
* NVIDIA Container Toolkit&lt;br /&gt;
* CDI NVIDIA généré dans `/var/run/cdi/nvidia.yaml`&lt;br /&gt;
* clients comme Open WebUI&lt;br /&gt;
&lt;br /&gt;
== Remarques ==&lt;br /&gt;
* L&#039;instance NVIDIA n&#039;a fonctionné correctement qu&#039;après mise en place de NVIDIA Container Toolkit et CDI.&lt;br /&gt;
* Le stockage de modèles est partagé entre les deux serveurs pour éviter les doublons disque.&lt;br /&gt;
* Par prudence, éviter les `ollama pull` simultanés sur les deux instances.&lt;br /&gt;
* Faire préférentiellement les opérations d&#039;écriture (`pull`, `rm`, création de modèles) sur une seule instance à la fois.&lt;br /&gt;
* Le proxy public documenté actuellement cible uniquement l&#039;instance AMD/ROCm.&lt;br /&gt;
&lt;br /&gt;
== Utilisation CLI ==&lt;br /&gt;
=== Sélection explicite du serveur ===&lt;br /&gt;
Pour cibler un serveur particulier depuis le terminal local, utiliser `OLLAMA_HOST`.&lt;br /&gt;
&lt;br /&gt;
Exemples :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OLLAMA_HOST=http://127.0.0.1:11434 ollama list&lt;br /&gt;
OLLAMA_HOST=http://127.0.0.1:11434 ollama run qwen3&lt;br /&gt;
&lt;br /&gt;
OLLAMA_HOST=http://127.0.0.1:11435 ollama list&lt;br /&gt;
OLLAMA_HOST=http://127.0.0.1:11435 ollama run qwen3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Alias shell ===&lt;br /&gt;
Alias ajoutés dans `/home/loic/.bashrc` :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias ollama-amd=&#039;OLLAMA_HOST=http://127.0.0.1:11434 ollama&#039;&lt;br /&gt;
alias ollama-nvidia=&#039;OLLAMA_HOST=http://127.0.0.1:11435 ollama&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemples :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama-amd list&lt;br /&gt;
ollama-amd run qwen3&lt;br /&gt;
&lt;br /&gt;
ollama-nvidia list&lt;br /&gt;
ollama-nvidia run qwen3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemples de tests ==&lt;br /&gt;
=== Test basique de disponibilité ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl http://127.0.0.1:11434/api/tags&lt;br /&gt;
curl http://127.0.0.1:11435/api/tags&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Questions de test ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OLLAMA_HOST=http://127.0.0.1:11434 ollama run qwen3 &amp;quot;Donne-moi un résumé en 3 phrases de la différence entre ROCm et CUDA.&amp;quot;&lt;br /&gt;
OLLAMA_HOST=http://127.0.0.1:11435 ollama run qwen3 &amp;quot;Donne-moi un résumé en 3 phrases de la différence entre ROCm et CUDA.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OLLAMA_HOST=http://127.0.0.1:11434 ollama run qwen3 &amp;quot;Écris un haïku sur les GPU.&amp;quot;&lt;br /&gt;
OLLAMA_HOST=http://127.0.0.1:11435 ollama run qwen3 &amp;quot;Écris un haïku sur les GPU.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vérifier le GPU utilisé côté NVIDIA ===&lt;br /&gt;
Les logs de `ollama-nvidia.service` doivent montrer une détection CUDA du type :&lt;br /&gt;
* `library=CUDA`&lt;br /&gt;
* `description=&amp;quot;NVIDIA GeForce RTX 3070&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
== Supervision / diagnostic ==&lt;br /&gt;
=== État des services ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user status ollama.service&lt;br /&gt;
systemctl --user status ollama-nvidia.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Journaux ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
journalctl --user -u ollama.service -n 100 --no-pager&lt;br /&gt;
journalctl --user -u ollama-nvidia.service -n 100 --no-pager&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vérifier la carte NVIDIA ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nvidia-smi&lt;br /&gt;
watch -n 1 nvidia-smi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vérifier que CDI voit le GPU ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nvidia-ctk cdi list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conteneurs actifs ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
podman ps | grep -E &#039;ollama_roc|ollama_nv&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Contrôler la réponse API ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl http://127.0.0.1:11434/api/tags&lt;br /&gt;
curl http://127.0.0.1:11435/api/tags&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Données / emplacements à sauvegarder ==&lt;br /&gt;
* `/media/loic/nem/ollama`&lt;br /&gt;
* `/home/loic/.config/systemd/user/ollama.service`&lt;br /&gt;
* `/home/loic/.config/systemd/user/ollama-nvidia.service`&lt;br /&gt;
* `/etc/caddy/Caddyfile`&lt;br /&gt;
* `/home/loic/.bashrc`&lt;br /&gt;
&lt;br /&gt;
== Sauvegarde ==&lt;br /&gt;
* Sauvegarder le répertoire de modèles partagé `/media/loic/nem/ollama`.&lt;br /&gt;
* Sauvegarder les deux services systemd user Ollama.&lt;br /&gt;
* Sauvegarder la configuration Caddy liée à `25434`.&lt;br /&gt;
&lt;br /&gt;
== Restauration ==&lt;br /&gt;
* Restaurer `/media/loic/nem/ollama`.&lt;br /&gt;
* Restaurer les fichiers systemd user `ollama.service` et `ollama-nvidia.service`.&lt;br /&gt;
* Recharger systemd user puis relancer les services :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user restart ollama.service&lt;br /&gt;
systemctl --user restart ollama-nvidia.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Vérifier ensuite `curl http://127.0.0.1:11434/api/tags` et `curl http://127.0.0.1:11435/api/tags`.&lt;br /&gt;
&lt;br /&gt;
== Maintenance documentaire ==&lt;br /&gt;
Lors d&#039;un changement de port, de proxy public, de stockage des modèles, de pilote GPU, de toolkit NVIDIA, d&#039;alias shell ou d&#039;architecture AMD/NVIDIA, mettre à jour cette page et la page centrale [[Trace install tas]].&lt;br /&gt;
&lt;br /&gt;
== Trace documentaire ==&lt;br /&gt;
Cette page fait partie de [[Trace install tas]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas&amp;diff=131</id>
		<title>Trace install tas</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas&amp;diff=131"/>
		<updated>2026-03-24T20:37:26Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Ajout du lien Syncthing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas =&lt;br /&gt;
&lt;br /&gt;
Cette page sert de &#039;&#039;&#039;trace d&#039;installation et de configuration&#039;&#039;&#039; pour les principales briques logicielles déployées sur la machine &#039;&#039;&#039;tas&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Références transverses ==&lt;br /&gt;
* [[Architecture logicielle de tas]]&lt;br /&gt;
&lt;br /&gt;
== Procédure de maintenance documentaire ==&lt;br /&gt;
À chaque évolution de configuration du serveur, il faut &#039;&#039;&#039;réappliquer cette procédure de documentation&#039;&#039;&#039;.&lt;br /&gt;
Concrètement, lors d&#039;un ajout, d&#039;une suppression ou d&#039;une modification de service, il faut mettre à jour :&lt;br /&gt;
* cette page centrale&lt;br /&gt;
* la page spécifique de la brique concernée&lt;br /&gt;
* la documentation Markdown locale quand elle existe&lt;br /&gt;
* les références Homepage et Caddy si les ports ou URLs changent&lt;br /&gt;
* la page [[Architecture logicielle de tas]] si la cartographie évolue&lt;br /&gt;
&lt;br /&gt;
== Pages spécifiques ==&lt;br /&gt;
* [[Trace install tas - Open WebUI]]&lt;br /&gt;
* [[Trace install tas - Dependency-Track]]&lt;br /&gt;
* [[Trace install tas - Vaultwarden]]&lt;br /&gt;
* [[Trace install tas - Uptime Kuma]]&lt;br /&gt;
* [[Trace install tas - Scriberr]]&lt;br /&gt;
* [[Trace install tas - Social Analyzer]]&lt;br /&gt;
* [[Trace install tas - Immich]]&lt;br /&gt;
* [[Trace install tas - Headscale]]&lt;br /&gt;
* [[Trace install tas - CyberChef]]&lt;br /&gt;
* [[Trace install tas - Beszel]]&lt;br /&gt;
* [[Trace install tas - Paperless-ngx]]&lt;br /&gt;
* [[Trace install tas - Karakeep]]&lt;br /&gt;
* [[Trace install tas - Nextcloud]]&lt;br /&gt;
* [[Trace install tas - Homepage]]&lt;br /&gt;
* [[Trace install tas - MediaWiki]]&lt;br /&gt;
* [[Trace install tas - n8n]]&lt;br /&gt;
* [[Trace install tas - Ollama]]&lt;br /&gt;
* [[Trace install tas - Node-RED]]&lt;br /&gt;
* [[Trace install tas - Syncthing]]&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Syncthing&amp;diff=130</id>
		<title>Trace install tas - Syncthing</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Syncthing&amp;diff=130"/>
		<updated>2026-03-24T20:36:45Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Création de la page Syncthing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - Syncthing =&lt;br /&gt;
&lt;br /&gt;
== Rôle ==&lt;br /&gt;
Synchronisation de fichiers pair-à-pair (P2P) auto-hébergée.&lt;br /&gt;
&lt;br /&gt;
== Accès ==&lt;br /&gt;
* Local : http://10.8.0.1:8384&lt;br /&gt;
* Public : bloc Caddy préparé pour https://lololand.hopto.org:25699 mais non activé à ce stade&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
* 8384/tcp : interface web&lt;br /&gt;
* 22000/tcp : synchronisation&lt;br /&gt;
* 22000/udp : QUIC / synchronisation&lt;br /&gt;
* 21027/udp : découverte locale&lt;br /&gt;
&lt;br /&gt;
== Exécution / runtime ==&lt;br /&gt;
Quadlet systemd user : /home/loic/.config/containers/systemd/syncthing.container ; service syncthing.service ; conteneur syncthing&lt;br /&gt;
&lt;br /&gt;
== Chemins de configuration ==&lt;br /&gt;
* /home/loic/.config/containers/systemd/syncthing.container&lt;br /&gt;
* /home/loic/syncthing/config&lt;br /&gt;
* /home/loic/syncthing/data1&lt;br /&gt;
* /home/loic/syncthing/data2&lt;br /&gt;
* /home/loic/syncthing/caddy-syncthing.snippet&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance ==&lt;br /&gt;
* /home/loic/syncthing/config -&amp;gt; /config&lt;br /&gt;
* /home/loic/syncthing/data1 -&amp;gt; /data1&lt;br /&gt;
* /home/loic/syncthing/data2 -&amp;gt; /data2&lt;br /&gt;
&lt;br /&gt;
== Image ==&lt;br /&gt;
* lscr.io/linuxserver/syncthing:latest&lt;br /&gt;
* AutoUpdate=registry&lt;br /&gt;
&lt;br /&gt;
== Identité locale ==&lt;br /&gt;
* Device ID : QMSABWE-HEUNW3E-CMOLFFB-4UMJ2IH-VLMQDHR-UZYQG25-MBJ3U47-OLGSWQE&lt;br /&gt;
&lt;br /&gt;
== Remarques ==&lt;br /&gt;
* L&#039;interface Syncthing écoute actuellement sur 0.0.0.0:8384 côté hôte.&lt;br /&gt;
* Le projet recommande de définir un mot de passe sur l&#039;interface web lors de la première configuration.&lt;br /&gt;
* Le bloc Caddy préparé n&#039;est pas encore injecté dans /etc/caddy/Caddyfile.&lt;br /&gt;
&lt;br /&gt;
== Données / emplacements à sauvegarder ==&lt;br /&gt;
* /home/loic/syncthing/config&lt;br /&gt;
* /home/loic/syncthing/data1&lt;br /&gt;
* /home/loic/syncthing/data2&lt;br /&gt;
* /home/loic/.config/containers/systemd/syncthing.container&lt;br /&gt;
* /home/loic/syncthing/caddy-syncthing.snippet&lt;br /&gt;
&lt;br /&gt;
== Sauvegarde ==&lt;br /&gt;
* Sauvegarder /home/loic/syncthing et le quadlet syncthing.container.&lt;br /&gt;
&lt;br /&gt;
== Restauration ==&lt;br /&gt;
* Restaurer /home/loic/syncthing et /home/loic/.config/containers/systemd/syncthing.container.&lt;br /&gt;
* Recharger systemd utilisateur puis relancer syncthing :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user restart syncthing&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maintenance documentaire ==&lt;br /&gt;
Lors d&#039;un changement de ports, d&#039;exposition Caddy, de chemins de données ou de politique de synchro, mettre à jour cette page, la page centrale trace install tas et la carte Homepage.&lt;br /&gt;
&lt;br /&gt;
== Trace documentaire ==&lt;br /&gt;
Cette page fait partie de [[Trace install tas]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Homepage&amp;diff=128</id>
		<title>Trace install tas - Homepage</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Homepage&amp;diff=128"/>
		<updated>2026-03-22T15:07:57Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Ajout procédure d&amp;#039;ajout de carte&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - Homepage =&lt;br /&gt;
&lt;br /&gt;
== Rôle ==&lt;br /&gt;
Tableau de bord des services.&lt;br /&gt;
&lt;br /&gt;
== Accès ==&lt;br /&gt;
* Local : http://10.8.0.1:8097&lt;br /&gt;
* Public : https://lololand.hopto.org:25697&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
8097 local, 25697 public via Caddy&lt;br /&gt;
&lt;br /&gt;
== Exécution / runtime ==&lt;br /&gt;
Quadlet systemd user : /home/loic/.config/containers/systemd/homepage.container ; conteneur systemd-homepage&lt;br /&gt;
&lt;br /&gt;
== Chemins de configuration ==&lt;br /&gt;
* /home/loic/.config/containers/systemd/homepage.container&lt;br /&gt;
* /home/loic/homepage-config/services.yaml&lt;br /&gt;
* /home/loic/homepage-config/settings.yaml&lt;br /&gt;
* /home/loic/homepage-config/custom.js&lt;br /&gt;
* /home/loic/homepage-config/custom.css&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance ==&lt;br /&gt;
* /home/loic/homepage-config -&amp;gt; /app/config&lt;br /&gt;
&lt;br /&gt;
== Dépendances ==&lt;br /&gt;
* Caddy pour l&#039;exposition publique&lt;br /&gt;
* liste des services documentée dans services.yaml&lt;br /&gt;
&lt;br /&gt;
== Remarques ==&lt;br /&gt;
Image ghcr.io/gethomepage/homepage:latest avec AutoUpdate=registry. HOMEPAGE_ALLOWED_HOSTS configuré. Le dashboard porte les liens publics et internes des services.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données / emplacements à sauvegarder ==&lt;br /&gt;
* Configuration dans /home/loic/homepage-config&lt;br /&gt;
* Pas de base de données applicative dédiée documentée&lt;br /&gt;
&lt;br /&gt;
== Sauvegarde ==&lt;br /&gt;
* Sauvegarder /home/loic/homepage-config (services.yaml, settings.yaml, custom.js, custom.css).&lt;br /&gt;
* Exporter aussi le quadlet /home/loic/.config/containers/systemd/homepage.container.&lt;br /&gt;
&lt;br /&gt;
== Restauration ==&lt;br /&gt;
* Restaurer /home/loic/homepage-config.&lt;br /&gt;
* Relancer le service utilisateur associé à homepage si nécessaire.&lt;br /&gt;
&lt;br /&gt;
== Maintenance documentaire ==&lt;br /&gt;
Lors d&#039;un changement de carte, port, lien public/interne ou custom.js/custom.css, mettre à jour cette page et la page centrale trace install tas.&lt;br /&gt;
&lt;br /&gt;
== Trace documentaire ==&lt;br /&gt;
Cette page fait partie de [[Trace install tas]].&lt;br /&gt;
&lt;br /&gt;
== Procédure d&#039;ajout d&#039;une carte (avec double lien HTTPS / Interne) ==&lt;br /&gt;
Pour ajouter un nouveau service au tableau de bord avec les boutons de liens distincts (externe et interne), il faut modifier deux fichiers :&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;Déclarer le service&#039;&#039;&#039; dans &amp;lt;code&amp;gt;/home/loic/homepage-config/services.yaml&amp;lt;/code&amp;gt; :&lt;br /&gt;
Ajouter la carte sous le groupe désiré (ex: Infrastructure). Il est indispensable de définir l&#039;attribut &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, car c&#039;est lui qui sert de repère au script d&#039;injection.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    - Mon Service:&lt;br /&gt;
        id: mon-service&lt;br /&gt;
        icon: icone.png&lt;br /&gt;
        href: https://lololand.hopto.org:PORT_EXT&lt;br /&gt;
        description: Description (Port interne PORT_INT)&lt;br /&gt;
        siteMonitor: http://10.8.0.1:PORT_INT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;Configurer les liens doubles&#039;&#039;&#039; dans &amp;lt;code&amp;gt;/home/loic/homepage-config/custom.js&amp;lt;/code&amp;gt; :&lt;br /&gt;
Éditer le dictionnaire &amp;lt;code&amp;gt;links&amp;lt;/code&amp;gt; au début du fichier en y ajoutant la correspondance entre l&#039;&amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; de la carte et ses deux URLs :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &#039;mon-service&#039;: { external: &#039;https://lololand.hopto.org:PORT_EXT&#039;, internal: &#039;http://10.8.0.1:PORT_INT&#039; },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. &#039;&#039;&#039;Appliquer les modifications&#039;&#039;&#039; :&lt;br /&gt;
Redémarrer le conteneur pour que la configuration YAML soit rechargée (le JS et le CSS sont rechargés automatiquement au rafraîchissement de la page par le navigateur) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user restart homepage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note : L&#039;apparence des boutons est gérée globalement par les classes CSS personnalisées (.oc-dual-link, .oc-external, .oc-internal) définies dans &amp;lt;code&amp;gt;/home/loic/homepage-config/custom.css&amp;lt;/code&amp;gt;.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Accueil&amp;diff=122</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Accueil&amp;diff=122"/>
		<updated>2026-03-20T20:28:24Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Mise à jour de la page d&amp;#039;accueil avec les principales rubriques&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bienvenue sur le Wiki documentaire de tas =&lt;br /&gt;
&lt;br /&gt;
Ce wiki centralise la documentation technique, la traçabilité d&#039;installation et les modèles d&#039;architecture du serveur &#039;&#039;&#039;tas&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== 🏗️ Architecture et Installation ==&lt;br /&gt;
Cette section regroupe la cartographie du système et le suivi des déploiements.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[Trace install tas]]&#039;&#039;&#039; : Le point d&#039;entrée principal recensant toutes les briques logicielles installées (Nextcloud, MediaWiki, Open WebUI, Ollama, etc.), leurs rôles et leurs ports.&lt;br /&gt;
* &#039;&#039;&#039;[[Architecture logicielle de tas]]&#039;&#039;&#039; : La cartographie logique décrivant l&#039;exposition des services via Caddy et les interactions entre composants.&lt;br /&gt;
* &#039;&#039;&#039;[[Installation conteneurisée standard sur tas]]&#039;&#039;&#039; : Les règles et bonnes pratiques pour déployer de nouveaux services (Podman, systemd, Caddy).&lt;br /&gt;
* &#039;&#039;&#039;[[Schéma d&#039;architecture cliquable de tas]]&#039;&#039;&#039; : Une vue visuelle et interactive de l&#039;infrastructure.&lt;br /&gt;
* &#039;&#039;&#039;[[Tests de représentations d&#039;architecture de tas]]&#039;&#039;&#039; : Différentes approches visuelles (couches, mindmap, accès publics) pour cartographier le serveur.&lt;br /&gt;
&lt;br /&gt;
== 📊 Modélisation et Diagrammes ==&lt;br /&gt;
Le wiki est configuré pour générer dynamiquement différents types de diagrammes (Mermaid, PlantUML, BPMN, D2, Graphviz).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[Index des modèles de schémas]]&#039;&#039;&#039; : Le catalogue complet de tous les exemples de diagrammes disponibles.&lt;br /&gt;
* &#039;&#039;&#039;[[Déploiement Mermaid PlantUML BPMN JS]]&#039;&#039;&#039; : La documentation technique expliquant comment le support de ces diagrammes a été intégré au wiki.&lt;br /&gt;
&lt;br /&gt;
=== Outils de modélisation intégrés ===&lt;br /&gt;
* &#039;&#039;&#039;Mermaid&#039;&#039;&#039; : Pour les diagrammes rapides (flowchart, séquence, Gantt, mindmap...).&lt;br /&gt;
* &#039;&#039;&#039;D2&#039;&#039;&#039; et &#039;&#039;&#039;Graphviz&#039;&#039;&#039; : Pour les schémas d&#039;architecture physique et logicielle.&lt;br /&gt;
* &#039;&#039;&#039;PlantUML&#039;&#039;&#039; : Pour l&#039;UML et les diagrammes techniques.&lt;br /&gt;
* &#039;&#039;&#039;BPMN JS&#039;&#039;&#039; : Pour les workflows et processus métiers natifs.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Administration ==&lt;br /&gt;
* [https://lololand.hopto.org:25697 Homepage] : Le portail des services.&lt;br /&gt;
* Les modifications de configuration d&#039;infrastructure doivent toujours être reportées dans [[Trace install tas]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Index_des_mod%C3%A8les_de_sch%C3%A9mas&amp;diff=119</id>
		<title>Index des modèles de schémas</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Index_des_mod%C3%A8les_de_sch%C3%A9mas&amp;diff=119"/>
		<updated>2026-03-20T11:40:47Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Mise à jour de l&amp;#039;index des modèles avec D2 et Graphviz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Index des modèles de schémas =&lt;br /&gt;
&lt;br /&gt;
Cette page liste les &#039;&#039;&#039;modèles / exemples de schémas&#039;&#039;&#039; disponibles dans le wiki.&lt;br /&gt;
&lt;br /&gt;
== Documentation générale ==&lt;br /&gt;
* [[Déploiement Mermaid PlantUML BPMN JS]] — documentation détaillée du déploiement et du fonctionnement des technologies de diagrammes intégrées&lt;br /&gt;
* [[Tests de représentations d&#039;architecture de tas]] — différentes représentations Mermaid de l&#039;architecture de tas&lt;br /&gt;
&lt;br /&gt;
== Mermaid ==&lt;br /&gt;
=== Workflow / flowchart ===&lt;br /&gt;
* [[Exemple Mermaid]] — flowchart simple de workflow&lt;br /&gt;
&lt;br /&gt;
=== Sequence ===&lt;br /&gt;
* [[Exemple Mermaid Sequence]] — diagramme de séquence&lt;br /&gt;
&lt;br /&gt;
=== State ===&lt;br /&gt;
* [[Exemple Mermaid State]] — diagramme d&#039;états&lt;br /&gt;
&lt;br /&gt;
=== Entité-relation ===&lt;br /&gt;
* [[Exemple Mermaid ER]] — diagramme ER&lt;br /&gt;
&lt;br /&gt;
=== Gantt ===&lt;br /&gt;
* [[Exemple Mermaid Gantt]] — planning / projet&lt;br /&gt;
&lt;br /&gt;
=== Git graph ===&lt;br /&gt;
* [[Exemple Mermaid Gitgraph]] — historique de branches Git&lt;br /&gt;
&lt;br /&gt;
=== Class diagram ===&lt;br /&gt;
* [[Exemple Mermaid Class Diagram]] — diagramme de classes&lt;br /&gt;
&lt;br /&gt;
=== Journey ===&lt;br /&gt;
* [[Exemple Mermaid Journey]] — parcours utilisateur / processus&lt;br /&gt;
&lt;br /&gt;
=== Pie ===&lt;br /&gt;
* [[Exemple Mermaid Pie]] — répartition en pourcentages&lt;br /&gt;
&lt;br /&gt;
=== Mindmap ===&lt;br /&gt;
* [[Exemple Mermaid Mindmap]] — carte mentale&lt;br /&gt;
&lt;br /&gt;
=== Timeline ===&lt;br /&gt;
* [[Exemple Mermaid Timeline]] — frise chronologique&lt;br /&gt;
&lt;br /&gt;
== PlantUML ==&lt;br /&gt;
* [[Exemple PlantUML]] — exemple simple de workflow / activité&lt;br /&gt;
&lt;br /&gt;
== BPMN ==&lt;br /&gt;
* [[Exemple BPMN JS]] — exemple BPMN rendu avec bpmn-js&lt;br /&gt;
&lt;br /&gt;
== D2 ==&lt;br /&gt;
* [[Exemple D2 - système d&#039;information fictif]] — démonstration D2 sur un SI fictif (physique + logiciel)&lt;br /&gt;
* [[Exemple D2 - architecture logicielle fictive]] — architecture logicielle fictive orientée composants logiciels&lt;br /&gt;
&lt;br /&gt;
== Graphviz ==&lt;br /&gt;
* [[Exemple Graphviz - architecture logicielle fictive]] — architecture logicielle fictive représentée en DOT / Graphviz&lt;br /&gt;
&lt;br /&gt;
== Conseils d&#039;usage ==&lt;br /&gt;
* utiliser &#039;&#039;&#039;Mermaid&#039;&#039;&#039; pour les schémas rapides et textuels&lt;br /&gt;
* utiliser &#039;&#039;&#039;PlantUML&#039;&#039;&#039; pour les diagrammes UML et techniques&lt;br /&gt;
* utiliser &#039;&#039;&#039;BPMN JS&#039;&#039;&#039; pour les workflows BPMN métiers&lt;br /&gt;
* utiliser &#039;&#039;&#039;D2&#039;&#039;&#039; pour l&#039;architecture physique et logique d&#039;un système d&#039;information&lt;br /&gt;
* utiliser &#039;&#039;&#039;Graphviz&#039;&#039;&#039; pour comparer des dépendances, flux et graphes de composants&lt;br /&gt;
&lt;br /&gt;
== Remarque sur cette instance MediaWiki ==&lt;br /&gt;
Pour les rendus SVG D2 / Graphviz, la méthode actuellement fonctionnelle dans ce wiki consiste à afficher l&#039;URL directe du fichier SVG servi sous `/images/...`.&lt;br /&gt;
&lt;br /&gt;
== Évolutions possibles ==&lt;br /&gt;
Cette page peut servir de point d&#039;entrée pour ajouter ensuite :&lt;br /&gt;
* des comparatifs entre moteurs&lt;br /&gt;
* des modèles réutilisables&lt;br /&gt;
* des conventions de nommage par type de schéma&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Exemple_Graphviz_-_architecture_logicielle_fictive&amp;diff=118</id>
		<title>Exemple Graphviz - architecture logicielle fictive</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Exemple_Graphviz_-_architecture_logicielle_fictive&amp;diff=118"/>
		<updated>2026-03-20T05:06:57Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Création exemple Graphviz d&amp;#039;architecture logicielle fictive&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Exemple Graphviz - architecture logicielle fictive =&lt;br /&gt;
&lt;br /&gt;
Cette page montre une architecture &#039;&#039;&#039;logicielle fictive&#039;&#039;&#039; représentée en &#039;&#039;&#039;Graphviz / DOT&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Rendu graphique ==&lt;br /&gt;
https://lololand.hopto.org:25698/images/graphviz-logiciel-fictif.svg&lt;br /&gt;
&lt;br /&gt;
== Source DOT ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
digraph SI_Fictif {&lt;br /&gt;
  rankdir=LR;&lt;br /&gt;
  graph [fontname=&amp;quot;Arial&amp;quot;, bgcolor=&amp;quot;white&amp;quot;, pad=&amp;quot;0.2&amp;quot;, nodesep=&amp;quot;0.5&amp;quot;, ranksep=&amp;quot;0.8&amp;quot;];&lt;br /&gt;
  node [shape=box, style=&amp;quot;rounded,filled&amp;quot;, fillcolor=&amp;quot;#E8F0FE&amp;quot;, color=&amp;quot;#2563EB&amp;quot;, fontname=&amp;quot;Arial&amp;quot;];&lt;br /&gt;
  edge [color=&amp;quot;#64748B&amp;quot;, fontname=&amp;quot;Arial&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
  users [label=&amp;quot;Utilisateurs&amp;quot;, shape=oval, fillcolor=&amp;quot;#DCFCE7&amp;quot;, URL=&amp;quot;https://example.org/users&amp;quot;];&lt;br /&gt;
  web [label=&amp;quot;Portail Web&amp;quot;, URL=&amp;quot;https://www.nginx.com/&amp;quot;];&lt;br /&gt;
  api [label=&amp;quot;API Gateway&amp;quot;, URL=&amp;quot;https://konghq.com/&amp;quot;];&lt;br /&gt;
  auth [label=&amp;quot;Auth / IAM&amp;quot;, URL=&amp;quot;https://www.keycloak.org/&amp;quot;];&lt;br /&gt;
  crm [label=&amp;quot;CRM métier&amp;quot;, URL=&amp;quot;https://www.suitecrm.com/&amp;quot;];&lt;br /&gt;
  erp [label=&amp;quot;ERP métier&amp;quot;, URL=&amp;quot;https://www.odoo.com/&amp;quot;];&lt;br /&gt;
  wiki [label=&amp;quot;Wiki documentaire&amp;quot;, URL=&amp;quot;https://www.mediawiki.org/&amp;quot;];&lt;br /&gt;
  mq [label=&amp;quot;Bus d&#039;événements&amp;quot;, URL=&amp;quot;https://kafka.apache.org/&amp;quot;];&lt;br /&gt;
  cache [label=&amp;quot;Cache distribué&amp;quot;, URL=&amp;quot;https://redis.io/&amp;quot;];&lt;br /&gt;
  db [label=&amp;quot;Base PostgreSQL&amp;quot;, URL=&amp;quot;https://www.postgresql.org/&amp;quot;];&lt;br /&gt;
  search [label=&amp;quot;Moteur de recherche&amp;quot;, URL=&amp;quot;https://www.meilisearch.com/&amp;quot;];&lt;br /&gt;
  obs [label=&amp;quot;Observabilité&amp;quot;, URL=&amp;quot;https://grafana.com/&amp;quot;];&lt;br /&gt;
  cicd [label=&amp;quot;CI/CD&amp;quot;, URL=&amp;quot;https://about.gitlab.com/&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
  users -&amp;gt; web [label=&amp;quot;utilise&amp;quot;];&lt;br /&gt;
  web -&amp;gt; api [label=&amp;quot;HTTPS&amp;quot;];&lt;br /&gt;
  api -&amp;gt; auth [label=&amp;quot;OIDC&amp;quot;];&lt;br /&gt;
  api -&amp;gt; crm;&lt;br /&gt;
  api -&amp;gt; erp;&lt;br /&gt;
  api -&amp;gt; wiki;&lt;br /&gt;
  crm -&amp;gt; db;&lt;br /&gt;
  crm -&amp;gt; cache;&lt;br /&gt;
  erp -&amp;gt; db;&lt;br /&gt;
  wiki -&amp;gt; search;&lt;br /&gt;
  crm -&amp;gt; mq;&lt;br /&gt;
  erp -&amp;gt; mq;&lt;br /&gt;
  obs -&amp;gt; api;&lt;br /&gt;
  obs -&amp;gt; crm;&lt;br /&gt;
  obs -&amp;gt; erp;&lt;br /&gt;
  cicd -&amp;gt; web;&lt;br /&gt;
  cicd -&amp;gt; api;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Références directes ==&lt;br /&gt;
* [https://www.nginx.com/ NGINX]&lt;br /&gt;
* [https://konghq.com/ Kong]&lt;br /&gt;
* [https://www.keycloak.org/ Keycloak]&lt;br /&gt;
* [https://www.suitecrm.com/ SuiteCRM]&lt;br /&gt;
* [https://www.odoo.com/ Odoo]&lt;br /&gt;
* [https://www.mediawiki.org/ MediaWiki]&lt;br /&gt;
* [https://kafka.apache.org/ Apache Kafka]&lt;br /&gt;
* [https://redis.io/ Redis]&lt;br /&gt;
* [https://www.postgresql.org/ PostgreSQL]&lt;br /&gt;
* [https://www.meilisearch.com/ Meilisearch]&lt;br /&gt;
* [https://grafana.com/ Grafana]&lt;br /&gt;
* [https://about.gitlab.com/ GitLab]&lt;br /&gt;
&lt;br /&gt;
== Remarque ==&lt;br /&gt;
Le rendu Graphviz est affiché ici via l&#039;URL directe du SVG servi sous `/images/...`, comme pour D2 dans cette instance.&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Exemple_D2_-_architecture_logicielle_fictive&amp;diff=117</id>
		<title>Exemple D2 - architecture logicielle fictive</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Exemple_D2_-_architecture_logicielle_fictive&amp;diff=117"/>
		<updated>2026-03-19T22:13:06Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Création exemple D2 d&amp;#039;architecture logicielle fictive&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Exemple D2 - architecture logicielle fictive =&lt;br /&gt;
&lt;br /&gt;
Cette page montre une architecture &#039;&#039;&#039;logicielle fictive&#039;&#039;&#039; représentée en &#039;&#039;&#039;D2&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Rendu graphique ==&lt;br /&gt;
https://lololand.hopto.org:25698/images/d2-logiciel-fictif.svg&lt;br /&gt;
&lt;br /&gt;
== Source D2 ==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-d2&amp;quot;&amp;gt;&lt;br /&gt;
direction: right&lt;br /&gt;
&lt;br /&gt;
users: Utilisateurs {&lt;br /&gt;
  shape: person&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
web: Portail Web {&lt;br /&gt;
  link: &amp;quot;https://www.nginx.com/&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
api: API Gateway {&lt;br /&gt;
  link: &amp;quot;https://konghq.com/&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
auth: Service d&#039;authentification {&lt;br /&gt;
  link: &amp;quot;https://www.keycloak.org/&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
crm: CRM métier {&lt;br /&gt;
  link: &amp;quot;https://www.suitecrm.com/&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
erp: ERP métier {&lt;br /&gt;
  link: &amp;quot;https://www.odoo.com/&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wiki: Wiki documentaire {&lt;br /&gt;
  link: &amp;quot;https://www.mediawiki.org/&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
mq: Bus d&#039;événements {&lt;br /&gt;
  link: &amp;quot;https://kafka.apache.org/&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
cache: Cache distribué {&lt;br /&gt;
  link: &amp;quot;https://redis.io/&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
db: Base PostgreSQL {&lt;br /&gt;
  link: &amp;quot;https://www.postgresql.org/&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
search: Moteur de recherche {&lt;br /&gt;
  link: &amp;quot;https://www.meilisearch.com/&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
obs: Observabilité {&lt;br /&gt;
  link: &amp;quot;https://grafana.com/&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ci: CI/CD {&lt;br /&gt;
  link: &amp;quot;https://about.gitlab.com/&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
users -&amp;gt; web: utilise&lt;br /&gt;
web -&amp;gt; api: HTTPS&lt;br /&gt;
api -&amp;gt; auth: OAuth2 / OIDC&lt;br /&gt;
api -&amp;gt; crm&lt;br /&gt;
api -&amp;gt; erp&lt;br /&gt;
api -&amp;gt; wiki&lt;br /&gt;
crm -&amp;gt; db&lt;br /&gt;
crm -&amp;gt; cache&lt;br /&gt;
erp -&amp;gt; db&lt;br /&gt;
wiki -&amp;gt; search&lt;br /&gt;
crm -&amp;gt; mq&lt;br /&gt;
erp -&amp;gt; mq&lt;br /&gt;
obs -&amp;gt; api&lt;br /&gt;
obs -&amp;gt; crm&lt;br /&gt;
obs -&amp;gt; erp&lt;br /&gt;
ci -&amp;gt; web&lt;br /&gt;
ci -&amp;gt; api&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Références directes ==&lt;br /&gt;
* [https://www.nginx.com/ NGINX]&lt;br /&gt;
* [https://konghq.com/ Kong]&lt;br /&gt;
* [https://www.keycloak.org/ Keycloak]&lt;br /&gt;
* [https://www.suitecrm.com/ SuiteCRM]&lt;br /&gt;
* [https://www.odoo.com/ Odoo]&lt;br /&gt;
* [https://www.mediawiki.org/ MediaWiki]&lt;br /&gt;
* [https://kafka.apache.org/ Apache Kafka]&lt;br /&gt;
* [https://redis.io/ Redis]&lt;br /&gt;
* [https://www.postgresql.org/ PostgreSQL]&lt;br /&gt;
* [https://www.meilisearch.com/ Meilisearch]&lt;br /&gt;
* [https://grafana.com/ Grafana]&lt;br /&gt;
* [https://about.gitlab.com/ GitLab]&lt;br /&gt;
&lt;br /&gt;
== Remarque ==&lt;br /&gt;
Dans cette instance MediaWiki, le rendu SVG est affiché via l&#039;URL directe du fichier servi sous `/images/...`.&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Exemple_D2_-_syst%C3%A8me_d%27information_fictif&amp;diff=115</id>
		<title>Exemple D2 - système d&#039;information fictif</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Exemple_D2_-_syst%C3%A8me_d%27information_fictif&amp;diff=115"/>
		<updated>2026-03-19T21:57:35Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Affichage D2 via URL directe du SVG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Exemple D2 - système d&#039;information fictif =&lt;br /&gt;
&lt;br /&gt;
Cette page montre une démonstration de &#039;&#039;&#039;D2&#039;&#039;&#039; sur un &#039;&#039;&#039;système d&#039;information fictif&#039;&#039;&#039;, et non sur ton serveur.&lt;br /&gt;
&lt;br /&gt;
== Rendu graphique ==&lt;br /&gt;
https://lololand.hopto.org:25698/images/d2-fictif.svg&lt;br /&gt;
&lt;br /&gt;
== Source D2 ==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-d2&amp;quot;&amp;gt;&lt;br /&gt;
direction: right&lt;br /&gt;
&lt;br /&gt;
users: Utilisateurs {&lt;br /&gt;
  shape: person&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
internet: Internet {&lt;br /&gt;
  shape: cloud&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
company: Entreprise Fictive Alphacorp {&lt;br /&gt;
  shape: rectangle&lt;br /&gt;
&lt;br /&gt;
  hq: Siège social&lt;br /&gt;
  dc: Datacenter principal&lt;br /&gt;
  branch: Agence régionale&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
network: Réseau et sécurité {&lt;br /&gt;
  fw: Pare-feu&lt;br /&gt;
  vpn: VPN&lt;br /&gt;
  lb: Reverse Proxy&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
apps: Applications métiers {&lt;br /&gt;
  portal: Portail interne&lt;br /&gt;
  crm: CRM&lt;br /&gt;
  erp: ERP&lt;br /&gt;
  wiki: Wiki documentaire&lt;br /&gt;
  helpdesk: Helpdesk&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
data: Données {&lt;br /&gt;
  db1: Base PostgreSQL&lt;br /&gt;
  db2: Base MariaDB&lt;br /&gt;
  storage: Stockage documentaire&lt;br /&gt;
  backup: Sauvegarde hors site&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ops: Exploitation {&lt;br /&gt;
  monitoring: Supervision&lt;br /&gt;
  logging: Centralisation logs&lt;br /&gt;
  cicd: CI/CD&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
users -&amp;gt; internet: accès web&lt;br /&gt;
internet -&amp;gt; fw&lt;br /&gt;
fw -&amp;gt; vpn&lt;br /&gt;
fw -&amp;gt; lb&lt;br /&gt;
lb -&amp;gt; portal&lt;br /&gt;
lb -&amp;gt; crm&lt;br /&gt;
lb -&amp;gt; erp&lt;br /&gt;
lb -&amp;gt; wiki&lt;br /&gt;
lb -&amp;gt; helpdesk&lt;br /&gt;
portal -&amp;gt; db1&lt;br /&gt;
crm -&amp;gt; db1&lt;br /&gt;
erp -&amp;gt; db2&lt;br /&gt;
wiki -&amp;gt; storage&lt;br /&gt;
helpdesk -&amp;gt; db2&lt;br /&gt;
monitoring -&amp;gt; portal&lt;br /&gt;
monitoring -&amp;gt; crm&lt;br /&gt;
monitoring -&amp;gt; erp&lt;br /&gt;
logging -&amp;gt; portal&lt;br /&gt;
logging -&amp;gt; crm&lt;br /&gt;
logging -&amp;gt; erp&lt;br /&gt;
storage -&amp;gt; backup&lt;br /&gt;
hq -&amp;gt; dc&lt;br /&gt;
branch -&amp;gt; vpn&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remarque ==&lt;br /&gt;
Dans cette instance MediaWiki, la méthode fonctionnelle pour afficher un SVG dans une page consiste à utiliser directement l&#039;URL du fichier SVG servi par `/images/...` sur une ligne seule, avec `$wgAllowExternalImages = true`.&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Test_affichage_SVG_externe&amp;diff=114</id>
		<title>Test affichage SVG externe</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Test_affichage_SVG_externe&amp;diff=114"/>
		<updated>2026-03-19T21:57:11Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Test affichage SVG via URL externe&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Test affichage SVG externe =&lt;br /&gt;
&lt;br /&gt;
== URL Special:Redirect/file ==&lt;br /&gt;
https://lololand.hopto.org:25698/wiki/Special:Redirect/file/Minimal.svg&lt;br /&gt;
&lt;br /&gt;
== URL images directe ==&lt;br /&gt;
https://lololand.hopto.org:25698/images/a/a8/Minimal.svg&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Test_affichage_SVG_embarqu%C3%A9&amp;diff=113</id>
		<title>Test affichage SVG embarqué</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Test_affichage_SVG_embarqu%C3%A9&amp;diff=113"/>
		<updated>2026-03-19T21:56:35Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Test affichage SVG via object&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Test affichage SVG embarqué =&lt;br /&gt;
&lt;br /&gt;
Cette page teste l&#039;affichage d&#039;un SVG servi par MediaWiki via une balise HTML `&amp;lt;object&amp;gt;`.&lt;br /&gt;
&lt;br /&gt;
== Objet SVG ==&lt;br /&gt;
&amp;lt;object data=&amp;quot;/images/a/a8/Minimal.svg&amp;quot; type=&amp;quot;image/svg+xml&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;240&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Le navigateur n&#039;a pas pu afficher le SVG. Fichier direct : &amp;lt;a href=&amp;quot;/images/a/a8/Minimal.svg&amp;quot;&amp;gt;Minimal.svg&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Référence directe ==&lt;br /&gt;
* [https://lololand.hopto.org:25698/images/a/a8/Minimal.svg Minimal.svg]&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Test_affichage_SVG_natif&amp;diff=112</id>
		<title>Test affichage SVG natif</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Test_affichage_SVG_natif&amp;diff=112"/>
		<updated>2026-03-19T21:47:36Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Retest affichage SVG natif après activation du rendu natif&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Test_affichage_SVG_natif&amp;diff=111</id>
		<title>Test affichage SVG natif</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Test_affichage_SVG_natif&amp;diff=111"/>
		<updated>2026-03-19T21:41:50Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Création test affichage SVG natif&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Test affichage SVG natif =&lt;br /&gt;
&lt;br /&gt;
== Variante 1 ==&lt;br /&gt;
[[File:Minimal.svg|thumb|300px|Test SVG File]]&lt;br /&gt;
&lt;br /&gt;
== Variante 2 ==&lt;br /&gt;
[[Fichier:Minimal.svg|thumb|300px|Test SVG Fichier]]&lt;br /&gt;
&lt;br /&gt;
== Variante 3 ==&lt;br /&gt;
[[Media:Minimal.svg]]&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Fichier:Minimal.svg&amp;diff=110</id>
		<title>Fichier:Minimal.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Fichier:Minimal.svg&amp;diff=110"/>
		<updated>2026-03-19T21:41:15Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : == Description ==
Import test SVG minimal
&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Import test SVG minimal&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Exemple_D2_-_syst%C3%A8me_d%27information_fictif&amp;diff=109</id>
		<title>Exemple D2 - système d&#039;information fictif</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Exemple_D2_-_syst%C3%A8me_d%27information_fictif&amp;diff=109"/>
		<updated>2026-03-19T21:34:05Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Forçage affichage image D2 en vignette&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Exemple D2 - système d&#039;information fictif =&lt;br /&gt;
&lt;br /&gt;
Cette page montre une démonstration de &#039;&#039;&#039;D2&#039;&#039;&#039; sur un &#039;&#039;&#039;système d&#039;information fictif&#039;&#039;&#039;, et non sur ton serveur.&lt;br /&gt;
&lt;br /&gt;
== Rendu graphique ==&lt;br /&gt;
[[Fichier:D2-fictif.png|vignette|1200px|center|Architecture D2 d&#039;un système d&#039;information fictif]]&lt;br /&gt;
&lt;br /&gt;
== Source D2 ==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-d2&amp;quot;&amp;gt;&lt;br /&gt;
direction: right&lt;br /&gt;
&lt;br /&gt;
users: Utilisateurs {&lt;br /&gt;
  shape: person&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
internet: Internet {&lt;br /&gt;
  shape: cloud&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
company: Entreprise Fictive Alphacorp {&lt;br /&gt;
  shape: rectangle&lt;br /&gt;
&lt;br /&gt;
  hq: Siège social&lt;br /&gt;
  dc: Datacenter principal&lt;br /&gt;
  branch: Agence régionale&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
network: Réseau et sécurité {&lt;br /&gt;
  fw: Pare-feu&lt;br /&gt;
  vpn: VPN&lt;br /&gt;
  lb: Reverse Proxy&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
apps: Applications métiers {&lt;br /&gt;
  portal: Portail interne&lt;br /&gt;
  crm: CRM&lt;br /&gt;
  erp: ERP&lt;br /&gt;
  wiki: Wiki documentaire&lt;br /&gt;
  helpdesk: Helpdesk&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
data: Données {&lt;br /&gt;
  db1: Base PostgreSQL&lt;br /&gt;
  db2: Base MariaDB&lt;br /&gt;
  storage: Stockage documentaire&lt;br /&gt;
  backup: Sauvegarde hors site&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ops: Exploitation {&lt;br /&gt;
  monitoring: Supervision&lt;br /&gt;
  logging: Centralisation logs&lt;br /&gt;
  cicd: CI/CD&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
users -&amp;gt; internet: accès web&lt;br /&gt;
internet -&amp;gt; fw&lt;br /&gt;
fw -&amp;gt; vpn&lt;br /&gt;
fw -&amp;gt; lb&lt;br /&gt;
lb -&amp;gt; portal&lt;br /&gt;
lb -&amp;gt; crm&lt;br /&gt;
lb -&amp;gt; erp&lt;br /&gt;
lb -&amp;gt; wiki&lt;br /&gt;
lb -&amp;gt; helpdesk&lt;br /&gt;
portal -&amp;gt; db1&lt;br /&gt;
crm -&amp;gt; db1&lt;br /&gt;
erp -&amp;gt; db2&lt;br /&gt;
wiki -&amp;gt; storage&lt;br /&gt;
helpdesk -&amp;gt; db2&lt;br /&gt;
monitoring -&amp;gt; portal&lt;br /&gt;
monitoring -&amp;gt; crm&lt;br /&gt;
monitoring -&amp;gt; erp&lt;br /&gt;
logging -&amp;gt; portal&lt;br /&gt;
logging -&amp;gt; crm&lt;br /&gt;
logging -&amp;gt; erp&lt;br /&gt;
storage -&amp;gt; backup&lt;br /&gt;
hq -&amp;gt; dc&lt;br /&gt;
branch -&amp;gt; vpn&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remarque ==&lt;br /&gt;
Le rendu graphique est importé comme vrai fichier MediaWiki pour garantir un affichage correct dans la page.&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Exemple_D2_-_syst%C3%A8me_d%27information_fictif&amp;diff=108</id>
		<title>Exemple D2 - système d&#039;information fictif</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Exemple_D2_-_syst%C3%A8me_d%27information_fictif&amp;diff=108"/>
		<updated>2026-03-19T21:33:41Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Correction de l&amp;#039;inclusion image D2 via namespace Fichier&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Exemple D2 - système d&#039;information fictif =&lt;br /&gt;
&lt;br /&gt;
Cette page montre une démonstration de &#039;&#039;&#039;D2&#039;&#039;&#039; sur un &#039;&#039;&#039;système d&#039;information fictif&#039;&#039;&#039;, et non sur ton serveur.&lt;br /&gt;
&lt;br /&gt;
== Rendu graphique ==&lt;br /&gt;
[[Fichier:D2-fictif.png|1200px|center|Architecture D2 d&#039;un système d&#039;information fictif]]&lt;br /&gt;
&lt;br /&gt;
== Source D2 ==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-d2&amp;quot;&amp;gt;&lt;br /&gt;
direction: right&lt;br /&gt;
&lt;br /&gt;
users: Utilisateurs {&lt;br /&gt;
  shape: person&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
internet: Internet {&lt;br /&gt;
  shape: cloud&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
company: Entreprise Fictive Alphacorp {&lt;br /&gt;
  shape: rectangle&lt;br /&gt;
&lt;br /&gt;
  hq: Siège social&lt;br /&gt;
  dc: Datacenter principal&lt;br /&gt;
  branch: Agence régionale&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
network: Réseau et sécurité {&lt;br /&gt;
  fw: Pare-feu&lt;br /&gt;
  vpn: VPN&lt;br /&gt;
  lb: Reverse Proxy&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
apps: Applications métiers {&lt;br /&gt;
  portal: Portail interne&lt;br /&gt;
  crm: CRM&lt;br /&gt;
  erp: ERP&lt;br /&gt;
  wiki: Wiki documentaire&lt;br /&gt;
  helpdesk: Helpdesk&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
data: Données {&lt;br /&gt;
  db1: Base PostgreSQL&lt;br /&gt;
  db2: Base MariaDB&lt;br /&gt;
  storage: Stockage documentaire&lt;br /&gt;
  backup: Sauvegarde hors site&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ops: Exploitation {&lt;br /&gt;
  monitoring: Supervision&lt;br /&gt;
  logging: Centralisation logs&lt;br /&gt;
  cicd: CI/CD&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
users -&amp;gt; internet: accès web&lt;br /&gt;
internet -&amp;gt; fw&lt;br /&gt;
fw -&amp;gt; vpn&lt;br /&gt;
fw -&amp;gt; lb&lt;br /&gt;
lb -&amp;gt; portal&lt;br /&gt;
lb -&amp;gt; crm&lt;br /&gt;
lb -&amp;gt; erp&lt;br /&gt;
lb -&amp;gt; wiki&lt;br /&gt;
lb -&amp;gt; helpdesk&lt;br /&gt;
portal -&amp;gt; db1&lt;br /&gt;
crm -&amp;gt; db1&lt;br /&gt;
erp -&amp;gt; db2&lt;br /&gt;
wiki -&amp;gt; storage&lt;br /&gt;
helpdesk -&amp;gt; db2&lt;br /&gt;
monitoring -&amp;gt; portal&lt;br /&gt;
monitoring -&amp;gt; crm&lt;br /&gt;
monitoring -&amp;gt; erp&lt;br /&gt;
logging -&amp;gt; portal&lt;br /&gt;
logging -&amp;gt; crm&lt;br /&gt;
logging -&amp;gt; erp&lt;br /&gt;
storage -&amp;gt; backup&lt;br /&gt;
hq -&amp;gt; dc&lt;br /&gt;
branch -&amp;gt; vpn&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remarque ==&lt;br /&gt;
Le rendu graphique est importé comme vrai fichier MediaWiki pour garantir un affichage correct dans la page.&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Fichier:D2-fictif.png&amp;diff=107</id>
		<title>Fichier:D2-fictif.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Fichier:D2-fictif.png&amp;diff=107"/>
		<updated>2026-03-19T21:33:12Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : == Description ==
Import démo D2 PNG
&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Import démo D2 PNG&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Exemple_D2_-_syst%C3%A8me_d%27information_fictif&amp;diff=106</id>
		<title>Exemple D2 - système d&#039;information fictif</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Exemple_D2_-_syst%C3%A8me_d%27information_fictif&amp;diff=106"/>
		<updated>2026-03-19T21:33:12Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Utilisation d&amp;#039;un vrai fichier wiki pour la démo D2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Exemple D2 - système d&#039;information fictif =&lt;br /&gt;
&lt;br /&gt;
Cette page montre une démonstration de &#039;&#039;&#039;D2&#039;&#039;&#039; sur un &#039;&#039;&#039;système d&#039;information fictif&#039;&#039;&#039;, et non sur ton serveur.&lt;br /&gt;
&lt;br /&gt;
== Rendu graphique ==&lt;br /&gt;
[[File:d2-fictif.png|1200px|center|Architecture D2 d&#039;un système d&#039;information fictif]]&lt;br /&gt;
&lt;br /&gt;
== Source D2 ==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-d2&amp;quot;&amp;gt;&lt;br /&gt;
direction: right&lt;br /&gt;
&lt;br /&gt;
users: Utilisateurs {&lt;br /&gt;
  shape: person&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
internet: Internet {&lt;br /&gt;
  shape: cloud&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
company: Entreprise Fictive Alphacorp {&lt;br /&gt;
  shape: rectangle&lt;br /&gt;
&lt;br /&gt;
  hq: Siège social&lt;br /&gt;
  dc: Datacenter principal&lt;br /&gt;
  branch: Agence régionale&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
network: Réseau et sécurité {&lt;br /&gt;
  fw: Pare-feu&lt;br /&gt;
  vpn: VPN&lt;br /&gt;
  lb: Reverse Proxy&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
apps: Applications métiers {&lt;br /&gt;
  portal: Portail interne&lt;br /&gt;
  crm: CRM&lt;br /&gt;
  erp: ERP&lt;br /&gt;
  wiki: Wiki documentaire&lt;br /&gt;
  helpdesk: Helpdesk&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
data: Données {&lt;br /&gt;
  db1: Base PostgreSQL&lt;br /&gt;
  db2: Base MariaDB&lt;br /&gt;
  storage: Stockage documentaire&lt;br /&gt;
  backup: Sauvegarde hors site&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ops: Exploitation {&lt;br /&gt;
  monitoring: Supervision&lt;br /&gt;
  logging: Centralisation logs&lt;br /&gt;
  cicd: CI/CD&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
users -&amp;gt; internet: accès web&lt;br /&gt;
internet -&amp;gt; fw&lt;br /&gt;
fw -&amp;gt; vpn&lt;br /&gt;
fw -&amp;gt; lb&lt;br /&gt;
lb -&amp;gt; portal&lt;br /&gt;
lb -&amp;gt; crm&lt;br /&gt;
lb -&amp;gt; erp&lt;br /&gt;
lb -&amp;gt; wiki&lt;br /&gt;
lb -&amp;gt; helpdesk&lt;br /&gt;
portal -&amp;gt; db1&lt;br /&gt;
crm -&amp;gt; db1&lt;br /&gt;
erp -&amp;gt; db2&lt;br /&gt;
wiki -&amp;gt; storage&lt;br /&gt;
helpdesk -&amp;gt; db2&lt;br /&gt;
monitoring -&amp;gt; portal&lt;br /&gt;
monitoring -&amp;gt; crm&lt;br /&gt;
monitoring -&amp;gt; erp&lt;br /&gt;
logging -&amp;gt; portal&lt;br /&gt;
logging -&amp;gt; crm&lt;br /&gt;
logging -&amp;gt; erp&lt;br /&gt;
storage -&amp;gt; backup&lt;br /&gt;
hq -&amp;gt; dc&lt;br /&gt;
branch -&amp;gt; vpn&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remarque ==&lt;br /&gt;
Le rendu graphique est importé comme vrai fichier MediaWiki pour garantir un affichage correct dans la page.&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Exemple_D2_-_syst%C3%A8me_d%27information_fictif&amp;diff=105</id>
		<title>Exemple D2 - système d&#039;information fictif</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Exemple_D2_-_syst%C3%A8me_d%27information_fictif&amp;diff=105"/>
		<updated>2026-03-19T21:28:08Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Utilisation d&amp;#039;un SVG servi localement pour la démo D2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Exemple D2 - système d&#039;information fictif =&lt;br /&gt;
&lt;br /&gt;
Cette page montre une démonstration de &#039;&#039;&#039;D2&#039;&#039;&#039; sur un &#039;&#039;&#039;système d&#039;information fictif&#039;&#039;&#039;, et non sur ton serveur.&lt;br /&gt;
&lt;br /&gt;
== Rendu graphique ==&lt;br /&gt;
https://lololand.hopto.org:25698/images/d2-fictif.svg&lt;br /&gt;
&lt;br /&gt;
== Source D2 ==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-d2&amp;quot;&amp;gt;&lt;br /&gt;
direction: right&lt;br /&gt;
&lt;br /&gt;
users: Utilisateurs {&lt;br /&gt;
  shape: person&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
internet: Internet {&lt;br /&gt;
  shape: cloud&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
company: Entreprise Fictive Alphacorp {&lt;br /&gt;
  shape: rectangle&lt;br /&gt;
&lt;br /&gt;
  hq: Siège social&lt;br /&gt;
  dc: Datacenter principal&lt;br /&gt;
  branch: Agence régionale&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
network: Réseau et sécurité {&lt;br /&gt;
  fw: Pare-feu&lt;br /&gt;
  vpn: VPN&lt;br /&gt;
  lb: Reverse Proxy&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
apps: Applications métiers {&lt;br /&gt;
  portal: Portail interne&lt;br /&gt;
  crm: CRM&lt;br /&gt;
  erp: ERP&lt;br /&gt;
  wiki: Wiki documentaire&lt;br /&gt;
  helpdesk: Helpdesk&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
data: Données {&lt;br /&gt;
  db1: Base PostgreSQL&lt;br /&gt;
  db2: Base MariaDB&lt;br /&gt;
  storage: Stockage documentaire&lt;br /&gt;
  backup: Sauvegarde hors site&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ops: Exploitation {&lt;br /&gt;
  monitoring: Supervision&lt;br /&gt;
  logging: Centralisation logs&lt;br /&gt;
  cicd: CI/CD&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
users -&amp;gt; internet: accès web&lt;br /&gt;
internet -&amp;gt; fw&lt;br /&gt;
fw -&amp;gt; vpn&lt;br /&gt;
fw -&amp;gt; lb&lt;br /&gt;
lb -&amp;gt; portal&lt;br /&gt;
lb -&amp;gt; crm&lt;br /&gt;
lb -&amp;gt; erp&lt;br /&gt;
lb -&amp;gt; wiki&lt;br /&gt;
lb -&amp;gt; helpdesk&lt;br /&gt;
portal -&amp;gt; db1&lt;br /&gt;
crm -&amp;gt; db1&lt;br /&gt;
erp -&amp;gt; db2&lt;br /&gt;
wiki -&amp;gt; storage&lt;br /&gt;
helpdesk -&amp;gt; db2&lt;br /&gt;
monitoring -&amp;gt; portal&lt;br /&gt;
monitoring -&amp;gt; crm&lt;br /&gt;
monitoring -&amp;gt; erp&lt;br /&gt;
logging -&amp;gt; portal&lt;br /&gt;
logging -&amp;gt; crm&lt;br /&gt;
logging -&amp;gt; erp&lt;br /&gt;
storage -&amp;gt; backup&lt;br /&gt;
hq -&amp;gt; dc&lt;br /&gt;
branch -&amp;gt; vpn&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remarque ==&lt;br /&gt;
Le rendu graphique est servi comme fichier SVG par MediaWiki, pour garantir un affichage visible dans la page.&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Exemple_D2_-_syst%C3%A8me_d%27information_fictif&amp;diff=104</id>
		<title>Exemple D2 - système d&#039;information fictif</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Exemple_D2_-_syst%C3%A8me_d%27information_fictif&amp;diff=104"/>
		<updated>2026-03-19T21:24:26Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Correction du rendu D2 en image SVG embarquée&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Exemple D2 - système d&#039;information fictif =&lt;br /&gt;
&lt;br /&gt;
Cette page montre une démonstration de &#039;&#039;&#039;D2&#039;&#039;&#039; sur un &#039;&#039;&#039;système d&#039;information fictif&#039;&#039;&#039;, et non sur ton serveur.&lt;br /&gt;
&lt;br /&gt;
== Rendu graphique ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;oc-diagram oc-d2-rendered&amp;quot;&amp;gt;&amp;lt;img alt=&amp;quot;Diagramme D2 fictif&amp;quot; style=&amp;quot;max-width:100%;height:auto;display:block&amp;quot; src=&amp;quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIGRhdGEtZDItdmVyc2lvbj0idjAuNy4xIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0IiB2aWV3Qm94PSIwIDAgMTg4MiAzMjE2Ij48c3ZnIGNsYXNzPSJkMi03NjE4MjE5NDMgZDItc3ZnIiB3aWR0aD0iMTg4MiIgaGVpZ2h0PSIzMjE2IiB2aWV3Qm94PSItMTAzIC0xMDEgMTg4MiAzMjE2Ij48cmVjdCB4PSItMTAzLjAwMDAwMCIgeT0iLTEwMS4wMDAwMDAiIHdpZHRoPSIxODgyLjAwMDAwMCIgaGVpZ2h0PSIzMjE2LjAwMDAwMCIgcng9IjAuMDAwMDAwIiBmaWxsPSIjRkZGRkZGIiBjbGFzcz0iIGZpbGwtTjciIHN0cm9rZS13aWR0aD0iMCIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWwouZDItNzYxODIxOTQzIC50ZXh0IHsKCWZvbnQtZmFtaWx5OiAiZDItNzYxODIxOTQzLWZvbnQtcmVndWxhciI7Cn0KQGZvbnQtZmFjZSB7Cglmb250LWZhbWlseTogZDItNzYxODIxOTQzLWZvbnQtcmVndWxhcjsKCXNyYzogdXJsKCJkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtiYXNlNjQsZDA5R1JnQUJBQUFBQUJJTUFBb0FBQUFBRzF3QUFndUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJQVXk4eUFBQUE5QUFBQUdBQUFBQmdYZC9WbzJOdFlYQUFBQUZVQUFBQXJ3QUFBT2dGOWdVZ1oyeDVaZ0FBQWdRQUFBc1lBQUFQY0VrY256MW9aV0ZrQUFBTkhBQUFBRFlBQUFBMkc0VWUzMmhvWldFQUFBMVVBQUFBSkFBQUFDUUtoQVg0YUcxMGVBQUFEWGdBQUFEQUFBQUEyR1RZQ29sc2IyTmhBQUFPT0FBQUFHNEFBQUJ1Y1M1dFZHMWhlSEFBQUE2b0FBQUFJQUFBQUNBQVRnRDJibUZ0WlFBQURzZ0FBQU1qQUFBSUZBYkRWVTF3YjNOMEFBQVI3QUFBQUIwQUFBQWcvOUVBTWdBREFna0JrQUFGQUFBQ2lnSllBQUFBU3dLS0FsZ0FBQUZlQURJQkl3QUFBZ3NGQXdNRUF3SUNCR0FBQXZjQUFBQURBQUFBQUFBQUFBQkJSRUpQQUVBQUlQLy9BdTcvQmdBQUE5Z0JFU0FBQVo4QUFBQUFBZVlDbEFBQUFDQUFBM2ljZE0xSkxnUnhIRURoci9yZnB0Wm9NMlVxODFoS3VZRkVoRVJFSW1KdEtVN2dXbXdSN21Ganh5SGtKeEhiZnR1MytKQkpNclExZlNEWGtiUVVTcFZESjg1Y3VITGp6b1B2Q1A1ZjdjaXBjNWV1M2JyM0ZSR2Zra2I4eEh1OHhXdTh4SE04eFdNYy93bmR5aHlvN2FzMEpFMDlldlhwTjZCbFVOdVFZU002Um8wWk4ySFNsR2t6WnVYbXpGdXdhRWxoMllwVmE5WnQyTFJsMjQ1ZGUwcCtBUUFBLy84QkFBRC8vekNBSXdRQWVKeU1WMnR3RzlWM1AvZnVXbXRaa3UyMUhtdkxraVh0MnBJbFdaYXQxV3B0NnhWYmt0KzJiTWwyL0lpZGx4TW5jVWdUcHlTVDRIOVNHa2d5WlFDVngwQkxFaGhnaHNrTWxETE1RQm0rUWFGdWVSV0dnUUp0aHVrSHc1UlhjVTJuUEx6cTdFcDJiTnJPOU5POXMzdjNQSDduZDM1bkw1VEFGQUFXOENOQWdCb3FvQXFNQUR6dG9Cc2NMaGRIaWJ3b2Nnd2h1aEJOVGFGL2xuSUk5UVhKVUloczdmcW02OXpGaTJqeUFuNWs0M2pIUFFzTGI4MmRQU3Zkdi9xMUZFRHZmdzBZQ0FCc3hUbFFBdzJncDNpWDArbmlWQ3BDeitzNUYwZTlZM3ZMVm1XdkpDdnNuOSthdXpVVit5R08vbWgrWHJ5anZmME9hUnJuTms2dXJBQUFFREFOZ090eERtZ3dBeWZIeGdkTUpxTkJSUm1WUmNVUmZDQWtCSjBjUjI5dXB0OU1IR3B2OVljSDRpZjdMK3dmNng4YU9yUTBQamM3c1lSejl1Nk8xblFGcVJsTzdwcndvSE1kZ2ZhV2pmVjRWN1FkQUJBRTgrdTRGbDhESzBBSjYzUUt3VkNJRDVnWXl1bmtXSlhLYURDWitFQklaRlFxbE1uY1BUQjRUemF5eCtJemQzbGlzM3hnSnVidnR6VzdEbWhISDE4ODluaW0xUjZ5c0oxbk1wbHpYWTFzMEJjQUFLemtFc1E1S0pVeFVUSXhHbFNjYXl2dVp4Ky9jZjNSOFlIVHAwK2ZIc0M1bTlldS8xWHl2dVhsZTVYWXBnSFFMWndEalZJZm84UElHem1qd3ppTnprdWYvZnd6YXNXNTd2ZDd2dS9aT3Z1eGd2M3RzN1J5OHBkZmNLNzdWcmYwK2VZNUhOaTBLVmVkcHpuYVFVOW5VZXZZbVBRQnprbmZJZjNHU1NSSTcyeWVoeGR3VHE2dGZINDZLeGVxNk85ZG5JT1NvaDNqZEJiWmNHN2pWVG1jb3A4LzRKeU1LMC96ZXBPSjRVTWhVUzk3QzRaRWppSTR3c1daVEVaNmV2NkNsdEdTV3FOMitkQndLVUVHbDhYbElFbFFPQ2M5emFaWU5zV2l1WTJUNkdqVG92ZFI2WGswOXFoM3NVbDZiTXVIRCtkQVgvREI4RTZuSU9lemFYbml1eDZTb05JVDMvZVFwR3h2L21wZ01ZaXlHeWZSOVN1dFI0TFN6V0o5TkFvZWhtMU00emo2TnJWZTd6OFJ1M3o4K0lHSjdPNkpPWnlySCs5ZG1KZCtRNzJkM1QyaVV1TmdmZ2FmeHRkQUJ4NkFoa0JJK1k1VnlGUENPbDNOdU1ncWhielViVVlOaG5lM0hKdWNQTll5aVlpWjg5YWU0NUdlaTVuc2hkNk9JOTNNdUdCaWRaVVZnZmJFWFdQbkgzamcvTmhkaVZ0VGliTEpoL1lkZld4MDlMR2pjN2twcmJlcGhOeWxVbS94ekk1elVBN005bzdSYzhUMlZONUxIQW1QSkorYnUzSDJ4RkFtTTNRQzU3alI1T0FzTGYwck1rcmZvS240cnM1Z29YNmUvRHI2QVY4RG45SVhMbEdKV2dnNm5hN2IrUlM3Uk02VFllcXduQjJxVEozeEJyaTlmR2V2dGRVMlo0dTZoYmx3ZUo3ejFmVTFpd2xId0R6cmpOYUg1clZDVTBlREw5ekNObHJLM1RwUFYwc2c3ZlBWaDZ5T1lKUE5iZFkwVnZvNlc0UGpBVUN3TzcrT20zRk8xaWlsUDJtZUx2UmtTTm1xVkNpUldJeGwzU2x2VTdkN0pIWk1HMW8raXU2Vy9wQ2VjVHBuMHVpU2RQSG9jZ2lRbkJRbWNBNTBBRHl4alkvRVJ4OU5IYTJxMVpOVkZ2cm8rRC9pbkhTajQxQkh4NkVPZEVEaE9RT0FmOEU1Y1B6dXUyMFdPS0tnY3hUeDlIMFRLYlZCVFdxcU5UT0RNOXBxTGFtdUtrdU5YSjAvcUs0b0phbXEwdjA0SnowaEhCT0V4U0E2SkQwUlhDenNOazZpKzV4OVRtZWZVN3BUNGRNNmVnbXRnUm5xQVJoV0ZpVXhxRUJOdVJUZ2pUUW5PM1FGUXFLZ2lOUWIwZEVIbjZDOWpaNStxNTA5MkRFMWtxUUlkdFRFeGJoeit3UGF2czZSY2RyV3h0a043U2IzSFRQU0p4MFdUeGRydTFJUjhic2JBRU1tdjQ1K3hTdWdCM3VoMmh6RjBieVJLdmd5S0k0S2xKWVZHTG5aUGp0QmRXV3dJOTI0OTBCNGIzY2tIVTdaZG5IMnVOWmhEZUNWTnlhdHJzdW5zbWRpcVlYcGtZT3NQVzloQ3B4cXpxK2pGOUVhV1A0dnJkMXNqS3BkUnlLZGk3R1dWSTNINkxjMnBWelpCTnRocW5lTWFDTkxJNW1sQ011RTlOWCs4YmJzZ3RVZ1doMHkvLzM1ZGZUWlpnNEZ6QlRqTG9IZkJFc1V0aHo5MTh5SjhIN1JFN09UMlNSRldBWnJka1ZzN1hXdXVMTmJlKys1OU9sWW5Ubjcra1pidThXZFNrZ1d4cDl0MjMwUXNCTC9QNkExcUFiYmpnemtSbk5zdFRYaFVLQkNUT2V4V0h4ZW5EMkVzUFEzSmJ1N3VYQ3QxWlorQjVIeGRuNVVHMTFLanl6RmxvL29hdFJEZTR4MHlGQ0huUDFEYVFXbk9nQVV4eDhYNWpJbmlFS3dpQlBIR2hWZDM5ZlZsZXBqUEpWVnRaYmt3Z0o2SmxZeTFMOWJUY1cxYzBNSmFWYVpvYjY4SFgyTDFxQVZvakMweFNMQnVXMVJqUEpHcmpoVVdWZWhCc1dhRTRIYk1xWXY2Z2ZyTEp6NXo2bVRUa2RWRGF1dmRnWEdXZzMxdXB2ek5OTXlFbkN4dXFxRzFybng4Y2lKUVU4MDR2VkdvcUh1TWQ0L1Z1Nm9ORmNQZkptTTI5cE5wS2JSWW12V2tZYWtWeGoyVUNYeFNzRVdISFRUbWxvRFV5ZEdmWU4rOUZKY0VDSVJRWWhMVjZOTzFreVNlby9SMWF4Z2t3RkFuK0tWb2xwdmNsU2VLZ28vNlV5RzRJWUNRejJacHBhR2NBTmVlV1BlNGQ4L0s3MkwzTW1ZczBGNkN2SjVTQUhBeS9nVjdBUjVScXVBWDRZdDI2dDRCYlNGbWNicmVVclB1U2hqWnBUNFlPYVoxNllmbU1FclVoMkNONlYvK2JkamYxTDhKcjhPLzRSWG9LS0FzU0pQUlNMY2JIWm55dFVrUldsS1RkcDJBUi9lZUVSUEl4UWp5WUl2L0NOYVUzU0Y1bVVwa2F1eEl4dHFhODBrS2NJKzZHMkxWemlIbXdiNk1rM05vV1NteVI5S290VnV6dC9hNUE1dXBqZ2dQVlZjTnJGQ2EwV3NpajYyWTVXa0NHNTRDeXpGMkE2c2lwei9kN1FHRlZDN2cvTTdkY0ZvTUtHSzhFSTh2aENPSEk3SEQwZmlRMFB4MlBCd3NWOGpTNW1ScFVoeUlUdDI1TWhZZGdFVXplSFJyMml0MksrM28xT1k2SFF4UnYxMnpaRWpkYVM5Y3dmQ2U5dllCSXZQS3BJVHIzZkUzc012dDFrYXI1ektuSW5WbWNlZlJhb2RtaVByQW84KzIvUlRJb2lLK1MzeWl6eE5iTmNGZEptMERuZ0s0ckRMZ1V1N1B0Z1NodmRlbUxRMEt1Smd0VFp2RENIVmJXWFk1TTRjV2l2KzVSV3lLU3BiQWVpYVhyZVZxZFFhS215SkdyUTYyUndxNnlYSlFFeGFLZkRJa2w5SGw5Q2EvQWZCN0p5M3lyajkzYlF0RE5zUGczT2MyNTcwdHJRNCtGcTJ5ek9WOWcxYkdtdEM5bVp2WFVzdGwvUzUwMXFYUmF4eCtHdzFMRk9tY3dqdWNOck9CUFhWSGd0ak5XcDBEckhaMWRXbytLL09yNk1VUGlIUE80WEhuQ0NLdkNJMlczeitaamphTzFpV3VuVEo0ZEhWYVNzTmZ1MTBMOUxGU3E1ZVRVaHJ2bFkxR2FNMGlxMkIvRHA2SDYzS3ZOdlJFM1JSaXI4YzZzMTZXNXhoVnNhRkhkVHVuMFZCNmROa3pPVkZVNUo1c0xFRmtOeUQ2Ty9RNnYrYzE2Ky9PTDVIdzJoSURWTzJaL1I1dENwOVc5L0xjYjMxeUNDWjVUd0E4Q3RvOWY4M3I1KzhNdFpiV2s2UnBaWHFnWkZCTlYxS2xsWlFQY04vT3QrdHJsQ1RwWlZsU2JRcWZjVW1XRGJCb3BwdE96TXE0WklORFNsTytnMFFsQU9ndjBhclVBUEFpeTZlS2JvU2VZcmhpbmNnaWlwLzh1R3BUazIxanRTWU5PR0poMjlNOWVqTTVhU3VXdHNsZmIybzl4Z01IdjNpanorZE1qVVpqVjdtbElLak51OVhNS2pkemdsUjNBRkhPWjZ1dEdvclN3MXFkNmhDOCtiNFFVMk5odFFZeW5hUHZFcjdVeCtxeUU1Y0V2YlZvNitrLzdEMXNvNWVPOUp0ckxVTSttUWRWT1lab2NOT0dUV2dJSWhLNFg5N0xzalBBVUVhQUwyS0x5ajZLSTlWSVJRU1pSRk9QL1RIVFozbStEMUo5SWxReWxSdXZKMHNjTG9lQVAwdC9qTTVmbDZJNFdJN3U3WWFYUlp2M3RpNDczSjNKTnFZdFBnYloySlRoeE4zRHByYmFsNXIzZmZuZC9KaXQ4L3VieElXeGlOM1hVbGpzZ2NRdU9FTFZJSE04bjFFRkhpamUvV0xlRnoyVlpiZmgwYngyL0p6QnZHb0RHa2kwazlQRVlkLys4c3RiWWRuMGVybVBTYVRRYXN5WC9KL2ovdEJ4Sy9JOXlGYUVZWkNiTlUyVzNXMXpZYjdyVFhWZFhYVk5WWUFsRCtGbzlCRzZHUWJlcGZJbEYvdnVCOUgvMEo4VG42M2dxUHdZT0VkSWIvejNOK0JvKzduUlBodkFBQUEvLzhCQUFELy81R0lRZlFBQVFBQUFBSUxoVVhQSzcxZkR6ejFBQU1ENkFBQUFBRFlYYUNoQUFBQUFOMW1MemIrT3Y3YkNHOER5QUFBQUFNQUFnQUFBQUFBQUFBQkFBQUQyUDd2QUFBSW1QNDYvam9JYndBQkFBQUFBQUFBQUFBQUFBQUFBQUFBTm5pY0hNd2hTME5oR01YeC96bHZFRVFVRExvZzQ0SXJVNXpsb29nWVRRckNVOFJIc0pyOUVHTFJidmQ3bUsvRll2QWJHTldWc2ZhTzNYRGdoQjkvdjNCREIyNG92aVI5U3V0NzBodWtma2svazFvaDlVUDZtL1FUNlNQU3I3UStJYjNGbmgrNWRvR3l5YmJtdEI0VDZwaDRuMFA5TTlHSW9lWWN1Q0dZY2E0L2drcVVNOEs3aEllOWpkN2ZFbnBqUjhIQURSZjZZczJmRFBUTyt2TDN2ZVdtWEduS1NNZU1kY2NxTXdMcUI5UUhxTjBDQUFELy93RUFBUC8vWVBZcXB3QUFBQ3dBTEFCUUFJWUF0Z0RVQU9vQS9nRVdBU0lCTWdGa0FZWUJxQUhxQWhJQ1ZnSjZBcFlDMEFNSUF6d0RhZ09jQTlBRDhnUmVCSUFFakFTbUJNSUU5QVVXQlVJRmRnV3FCY29HQ2dZd0JsSUdiZ2FvQnRRSEJBY1FCeHdITkFkZUIyb0hlZ2VHQjV3SHFnZTRBQUFBQVFBQUFEWUFqQUFNQUdZQUJ3QUJBQUFBQUFBQUFBQUFBQUFBQUFRQUEzaWNuSlRkVGh0WEZJVS9COXR0VkRVWEZZcklEVHFYYlpXTTNRaWlCSzVNQ1lwVmhGT1AweCtwcWpSNHhqOWlQRFB5REZDcVBrQ3YreFo5aTF6MU9mb1FWYStyczd3Tk5xb1VnUkN3enB5OTkxbG5yN1VQc01tL2JGQ3JQd1QrYXY1Z3VNWjJjOC93QXg0MW54cmU0TGp4dCtINlNreUR1UEdiNFNaZk52cUdQK0o5L1EvREg3TlQvOW53UTdicVI0WS80WGw5MC9Dbkc0NS9ERDlpaC9jTFhJT1gvRzY0eGhhRjRRZHM4cFBoRFI1ak5XdDFIdE0yM09BenRnMDMyUVlHVEtsSW1aSXh4akZpeXBoejVpU1VoQ1RNbVRJaUljYlJwVU5LcGE4WmtaQmovTDlmSTBJcTVrU3FPS0hDa1JLU0VsRXlzWXEvS2l2bnJVNGNhVFczdlE0VkV5Sk9sWEZHUklZaloweE9Sc0taNmxSVUZPelJva1hKVUh3TEtrb0NTcWFrQk9UTUdkT2l4eEhIREpnd3BjUnhwRXFlV1VqT2lJcExJcDN2TE1KM1praENSbW1zenNtSXhkT0pYNkxzTHNjNGVoU0tYYTE4dkZiaEtZN3ZsTzI1NVlyOWlrQy9ib1haK3JsTE5oRVg2bWVxcnFUYXVaU0NFKzM2Y3p0OEsxeXhoN3RYZjlhWmZMaEhzZjVYcW56S3VmU1BwVlFtSmhuT2JkRWhsSU5DOXdUSGdkWmRRblhrZTdvTWVFT1Bkd3kwN3RDblQ0Y1RCblI1cmR3ZWZSeGYwK09FUTJWMGhSZDdSM0xNQ1QvaStJYXVZbnp0eFBxelVDemhGd3B6ZHltT2M5MWpScUdlZSthQjdwcm9obmRYMk05UXZ1YU9VamxEelpHUGROSXYwNXhGak0wVmhSak8xTXVsTjByclgyeU9tT2t1WHR1YmZUOE5Gelo3eXltK0l0Y01lN2N1T0hubEZvdytwR3B3eXpPWCtnbUlpTWs1VmNTUW5Ca3RLcTdFK3kwUjU2UTREdFc5TjVxU2lzNTFqai9uU2k1Sm1JbEJsMHgxNWhUNkc1bHZRdU0rWFBPOXM3Y2tWcjVuZW5aOXEvdWM0dFNyRzQzZXFYdkx2ZEM2bkt3bzBESlY4eFUzRGNVMU0rOG5tcWxWL3FGeVM3MXVPYy9vazBqMVZEZTQvUTQ4SjZETkRydnNNOUU1USsxYzJCdlIxanZSNWhYNzZzRVppYUpHY25WaUZYWUplTUV1dTd6aXhWck5Eb2NjMEdQL0Rod1hXVDBPZUgxcloxMm5aUlZuZGY0VW03YjRPcDVkcjE3ZVc2L1A3K0RMTHpSUk55OWpYOXI0Ymw5WXRSdi9ueEF4ODF6YzF1cWQzQk9DL3dBQUFQLy9BUUFBLy84SFcwd3dBSGljWW1CbUFJUC81eGlNR0xBQUFBQUFBUC8vQVFBQS8vOHZBUUlEQUFBQSIpOwp9Ci5kMi03NjE4MjE5NDMgLnRleHQtYm9sZCB7Cglmb250LWZhbWlseTogImQyLTc2MTgyMTk0My1mb250LWJvbGQiOwp9CkBmb250LWZhY2UgewoJZm9udC1mYW1pbHk6IGQyLTc2MTgyMTk0My1mb250LWJvbGQ7CglzcmM6IHVybCgiZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7YmFzZTY0LGQwOUdSZ0FCQUFBQUFCSVlBQW9BQUFBQUd5d0FBZ3VGQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUFV5OHlBQUFBOUFBQUFHQUFBQUJnWHhIWHJtTnRZWEFBQUFGVUFBQUFyd0FBQU9nRjlnVWdaMng1WmdBQUFnUUFBQXNaQUFBUEtFd2JGeFpvWldGa0FBQU5JQUFBQURZQUFBQTJHMzhlMUdob1pXRUFBQTFZQUFBQUpBQUFBQ1FLZndYMWFHMTBlQUFBRFh3QUFBREJBQUFBMkdxS0NEcHNiMk5oQUFBT1FBQUFBRzRBQUFCdWJ2QnJJRzFoZUhBQUFBNndBQUFBSUFBQUFDQUFUZ0QzYm1GdFpRQUFEdEFBQUFNb0FBQUlLZ2p3VmtGd2IzTjBBQUFSK0FBQUFCMEFBQUFnLzlFQU1nQURBaW9DdkFBRkFBQUNpZ0pZQUFBQVN3S0tBbGdBQUFGZUFESUJLUUFBQWdzSEF3TUVBd0lDQkdBQUF2Y0FBQUFEQUFBQUFBQUFBQUJCUkVKUEFDQUFJUC8vQXU3L0JnQUFBOWdCRVNBQUFaOEFBQUFBQWZBQ2xBQUFBQ0FBQTNpY2RNMUpMZ1J4SEVEaHIvcmZwdFpvTTJVcTgxaEt1WUZFaEVSRUltSnRLVTdnV213UjdtRmp4eUhrSnhIYmZ0dTMrSkJKTXJRMWZTRFhrYlFVU3BWREo4NWN1SExqem9QdkNQNWY3Y2lwYzVldTNicjNGUkdma2tiOHhIdTh4V3U4eEhNOHhXTWMvd25keWh5bzdhczBKRTA5ZXZYcE42QmxVTnVRWVNNNlJvMFpOMkhTbEdrelp1WG16RnV3YUVsaDJZcFZhOVp0MkxSbDI0NWRlMHArQVFBQS8vOEJBQUQvL3pDQUl3UUFlSnhzVjJ0c0c5bDFQdmR5eUpFb1VoSWZ3NWY0SG5HR2xFUks1SEJJUFNoUnNpaEtsa2s5YlZtTzliS3pzZVhJbGwxYnJ1U05EQWZ3UGxxSGpyY3J4WGJzWk9NR0cvVGxCRmdFQ1RacGxhQkJzNmtSQXluZ3BDbUtydmZSaFZ2c0FsMTFJU3gyMTlLd3VFTlNENk0vN0N2Y3VUem56SGUrN3p0M1FBbERBUGc0WGdVRmxFTVY2SUVCRUhRZW5VL2dlWmFPQy9FNGExYkVlYVNqaDdCZStzSHJmSUFLQktnNjkyM1g4OVBUS0R1RlY3ZE9IODBlUC83cGRGdWI5TnJQZmk1ZFJ4ZCtEb0R6WHdEZ2JweURjdEFCR0dpQjV6aWVWYWtVQnNIQThpejlwUG9iVmRvYUxhV3hmdkh3allmZjhmL0dqL29UaWZDOEVEMGp2WWh6V3d0Mzd3SUFLQ0FMZ0JNNEJ6cXdnWmZVSmtSTUpzYW9vaGw1VWJFS0lSSVRveHpMNm9TSXZHYmZTWjN1RFBvajNhbnp2ZE05c1hBa21oNjlsR2dmeFRsSE9say9Xa1ZwRDNSMUh3eWdsK3RZemkyTmo5ZjdBQkNFOGh1NENkK0dHZ0NsbCtQRWFDd21SRXhtbXVOWXIwckZHRTFDSkJZM3E5RGt5TFhSUTlkSGtzOTVCcXh4dG1GLy9WaWZQMmtaR05Ga3ZuWG05TGVIQmUrVTJSR1oydmZjdVZycnhBeGd1ZjRNem9HNmdHeXhlaFhMQzVFWXFac1UvT1p6cnc0UDNaZ0oycHRIUTZIUlpqdk9wVzZjTy9kcTc2Si9ZbURnaUE5SWZWa0E5REhPUVlYY0g4YkRDQXpMZUpnc3VpMDlmZndZVmVIYzh0V3YzVnplUHZ2Zk12YTd6bWJSWGVtejk5L0h1ZVZieTF0UU9vY1BsV0lLakNBS09sYkg2cklyNzYydXZvZHpUNTl1TGFCcWFiMTBGdDdGT1ZESVozWFpGZEtrWXE3M2NRNlVoWDBQazExQkdPZTIxcGQzY3Z3UTU4QWxQemVZVEdZaEZvc2JCQjFMSUk2ek5NM3lQT3ZFREpQOXkxTnF2WnBTNjlRbjc3MUVseXNvY1hKNE1rcFJaVFRPU1kvdEhVNW5oeDE1dHhZK2RnOE91ZTUrL3ZsZDE5Q2crK05TRG9LeG9aRERMSENjU041RndiTW1FOE5rYi8xdEowVlY1c2lpMU9LYzlBK3ZSTC9lK21SckFmVjhNN2JjK2w4QXhUNDE0Unhvd0xpblR5eXp6YXQzK3k2bTB3czl3MzFMbllrVXp2RVRnNW5qalcramtWbWhEdVFZb1h3L3ZvZHZRd1Z3QUw0Q0xiMkVPOGpMOGR1Y2t0bHJLdkpKaGNhNkJ3YTZ1d2NHa08za0srenM1UU12am8rL2VPRGN0SGt3d1BncWJmcTIweGRuajgvUEg1KzlLRDMrU3NiMG8ydHozeG9jdlBuVnEzOVg0M1hTMUZ5NXRsajdLTTVCSlpoM0s0UUlqVlJma0VmMm81N3pxYVM0K29QTHc1blc5dmJXRE03NXhnZjZKczNTMDQ4K1FqUGhwaWFPWU1ubU43QWEzNFk2V1FkOFhDNVVqSEk4SDhKN1JjRVlUV1p6QVNWazdMd1NPY2lPK1VOQm9mNlFKOEcxblVvMW42czc0TzdrdVdCTDNjRzJkT3U4cGluMEZTZm5kYmdjK3RyS3huUmpiRHphVURkcHJYSFpuVTZkMTNLd0p6YlJEQWoyNXpmd29LeDNrbC9VQ1RwWmV2SWZLalJ3NWFYVjFuZzg4YzJybXB1dm95bHBaU2FUbVVGbnBPKy9maE5RL25NQUxPQWNhQUVFeFM2dUtYN3g2KzhNVkptcnFFcExaZmJtUCtHYzlDL2lpVmpzaElpYVpBNVhBaWpjT0FlZVozNjNLd0tyS1BnWHJYajUwcTJncWxKRnFRM3E5T1cwMnFDbWFDMGR2TDd3czg0eXJaSlNhY3ZhY1U3Nm5YQXlHajBwb0xEMHUvQ3NLSjZNb1BEV0F2SnoyZHJhTENmOUcyQ295MitnMzZOTnNBSUxZUFlTY3NSbFdHbGVCcG5Sc1NSZlBCS0xpN0wvL0NJMTlNSUtaZ091emxxeGNhNTErc1NTbW5MMWxsbDlob0dFUzNNNE9UQmU1ZUV0ekRGSDdmeDU2UVBCenA0M0d3NnI2eDBXczh6TnJ2d0dOdUUxTUJJbGtzNnlOS3NUR0hxYmtpcWU5Sm4xRW1ORlBaNXVCNlc1c0VJNVV0N0VlR05pZXB5TGpUVUVqSDZOeHkzaXRmc1ptNlBqVHpLSExpV1gwcG1YZ3IvVlY4cGFyODF2b0RXMENiWm5QYlRBbGhManJUMW51L3IrTkJYcXRmZXdiakdaYkxLRURLMitNVTM3eFpIUmhYYW5lZHFSNmVyTU1sVXo3cHFDcnZqOEJ0ckVhMkFBZHdrck9UQlBSTDZOVW9tVW4weWNiWnVPQnBxdHFwVWxOV1ZMWXd1dk45UWIyVmlqNWh1WGhpOTIyQzJadjlucUR0dllKYVAxdC9ySzd0NzlQWURsMnQ5RG0yQXA0ck5IclI2aUFsSzdRcEFsalZ5OTUvZDFuMjdybld5a3NQUkhkVG9zeHNMYzFKMGY4dzNlbUtaallXUjRJWm1jU3hsODVUSEJjOFRtUkswQnNiSGdoeFlBdElBZmtKVjRZUHdaVFJHcjFuMXAzNzdhb1c1WHRMcEdhOVBVT0k4Y1FaZlBLR3ZFc2FoR2RWcXA5SERPQzlKVk1odTkrU0NtMFNZMFFodjB5OGh3WXBRQVFjZ2tsbDdCTERCczBjeTh2TndIUWkralNxWFk1VkNHb2t0NE9mbklKNjFUemIyR0dyZkZGbWlkRWhzOFB4bWt5NlBqY1lkTDd3ME1UUnhMTGZjN2VON2g0UGxBcEpQM0NWYVBwcWI5a2EyNUllR250SDVYVGFTYTBxZnFFNE4relZ5RjE5alNYNnV1TWhuMGJkM0NjQWc5cUF2d0FiOC9VQ2V0MUZyTjFRcUZ4V3AzRkxEcElzMldPU3JQSTdva0JKMWNKYTNyV3FIdEJ5TEQrMWNjYnJ2Zmd0ZnVIN0hXejAxS0Q1RW41cmVhcFRjZ240YzRBTHlOSDJFT0lnQkFnd0RYdG1NNzhScG9Dbk5LaUF2RUgybW02d2IxM1hzLyt2dnZuVXZpTlduKzF3K2wvL2pIM3VmSitmd0cwdU0xcUNvd3J1UkRoQVQvbkdsYjBaVXJhWlZlNDlNY1BZRFpyVCthOVFpZFVkS0ZQQW9IMnBTOVJDY1EreURkM2ZNbTlQYmFSVFNjRG90ZEJrOS9lT2pBaXNQdGF5TC9OYUwxVGxldzN1OE5sMTZ2U1hxanVKUndRcHRGbklvNWR1TzBwS2JjMlcyZzBIclNHZHlEVTRIdk1uZXFucm54N0ZoQmFYYVprbWRUcWJQSjVId3FOWjhNaGtMQlVEQlkxR3I3d3VqSXhmYkZiR2RYaGtpMjRETjkySVEyd1FCT0FQTk9kVEw5T043TUdIWnNodFRwMk05L2FUWXhIWE1uYk1wQkxqWldYMmYwdjRuL09teGovL3pDb2FWa2pYWHdMMUR0dHNrUUwraERtM0o4TjRCU2pNdGhTeUlTNG9KT3Nkc0wwQ21WZForM1lBZ2R4TkUrMkRhRE4yOWxMQzdaRUJ6dThOWTRxdDF4Z3lKZjBBMjBDZm85ZlN5b3RJQndUWVpqN0dxTDFscHRiemVpOWNPUnNGSjVoYUlDRWVsZFFNRGtOOUQzMENid01uOTI1aWhYbUtQYndjZ1VkV0xHcUhvVVBzbnQ4eVpkSHFjalpITzIrVThkYWpuczJtZUwybHBhT0hkN1lGYkR1U2FzTldhRHptUlFhMnBiQWoxanZHWGNhT0l0MXNvS3RpWFVQVm5Ra0M2L2dlYnhBcmtKa1BrcHNtSThMc2dYd0IwRGhvbkJWRWIzL09JaTY5QlkxV1pEWFBQVnNRZG5WQys4Y09FM2RUNFZOYWZTRkdJbDhodm9NN1JPZUxaSEE3cWk3ZjdyOFA0VnA5dk9tVmFXS2hTdWZzM2NKSXBLNzRnQm13UDFTZFU5dmdaQVJHOG9qOWFMTTlsY25LaHhRZkhqdjFydEpOT3ozS0R1dXY1OXRQNmhMOHZ6V2QrSFVuWEpKL0U2V2kvTzVKM2Y3WXJBRnI4cGFIcDErZFVtbFZwRjBkcnkrSlhtOGlxYW9zdnB4ajlidkIra3RUUkZWOUFOYVAySnI0L2ordGtuOHRybmV5SlZ2OFdtL2Y0MCs1YWNyeElBYmFCMXNBSUlCbjVYR3RxOGs2Znk5bzNYR3RRbU5WV21ML1BlZnVYYnJ6VnB6QnFxM0ZqT0kvdy9RMHc5dzlRelEvbi9IV0VhR0tiZU5FTGlhdklkYUF1dEU1WHQ4Q0FlM3dORkpWNHllYXBzdEw3TTUxZlR2MXp0cmRDcnFUSmRlZUw2ZlhQejRLOVUxRG1rckhYWTBILyt3WnYyc2Izc0g2U0tqa1BrenBuUEYrYVdvaFZ6QkRHZ0lZbzAvKysrU1BZQlFSb0EvVHYrbXV5RFpIeUtzVmljbUczNjJtSzB6M3Q2Y1JHZFBhcTJHN2MyRndzY2NBS2dEL0RMWUNmbk8zREJGb3AzRkZuVnhLVUZ4amQ4T1IwT2VPT1dvY2JqcWVTVTJEWVJ0U1JNWHorWXZYd3EyQmptYllNUklYSzBYVHg3TnFaUUxwTzQ5ZkFBZVZDWWZFL0VSWUdwLy9UQjdDeloxK1puVUF5L1JmYk5Ca0doZlREejRKN2l4T2Fkb2liaDkyaTk5QTNTdFlMV3BXcEErUi9pRmhqRmo4aDNqRTQyZzRMaCtFSWhueThVd2kxMUxGdEgvaEVxZHVFRWRDaGFTUXdGSHplcmYvTGxPemp4M1dNL0pjOStoUlB3eThJekEzbldkK2ZMT05IMzAyUHdmd0FBQVAvL0FRQUEvLzlCUURKVUFBQUFBQUVBQUFBQ0M0VXlRa0UvWHc4ODlRQUJBK2dBQUFBQTJGMmdoQUFBQUFEZFppODIvamYreEFodEEvRUFBUUFEQUFJQUFBQUFBQUFBQVFBQUE5ais3d0FBQ0pqK04vNDNDRzBBQVFBQUFBQUFBQUFBQUFBQUFBQUFBRFo0bkJ6TW9Vb0VZUlRGOGY4OUE0dml1SzZ3eXFZTitvSGc3azVWY0NiY01pQjRRVkNEd2VoVEdId0QrMVN6RnF2TlpQZHBuUEl0TStGd3lvKy92cmpsRjlUa1hrK0VXaXE5RUVxRVNrTHZoRzBJVFFqMWhEcEM5NFErcVBSTWFNMnBPcTYxenYvRmhxa09PRmVEMng5SkRXZWFrT3lCaFk0NTBSVnVjeTZVY0Z2aXhTT3VHdGRxdEQ1NGU4UHRteU43NVZDWDFOcWpMSFpZU0V5MVN6bjB4czFvTldOcE42enNqbjJiNDVBL0lRLy9zd1VBQVAvL0FRQUEvLzg3Z0NFWEFBQUFBQUFBTEFBc0FGQUFoQUN3QU5RQTZnRCtBUlFCSUFFd0FXSUJoQUdtQWVJQ0NBSklBbVlDZ2dLOEF2UURKZ05TQTRRRHVBUGVCRVlFYUFSMEJJd0VxQVRhQlB3RktBVllCWXdGckFYb0JnNEdNQVpNQm9RR3NBYmdCdXdHK0FjUUJ6d0hTQWRXQjJJSGVBZUdCNVFBQUFBQkFBQUFOZ0NRQUF3QVl3QUhBQUVBQUFBQUFBQUFBQUFBQUFBQUJBQURlSnljbE05dUcxVVV4bjlPYk5NS3dRSkZWYnFKN29KRmtlallWRW5WTml1SDFJcEZGQWVQQzBKQ1NCUFArSTh5bmhsNUpnN2hDVmp6RnJ4RlZ6d0V6NEZZby9sODdOZ0YwU2FLa254Mzd2bnpuWE8rYzRFZC9tYWJTdlVoOEVjOU1WeGhyMzV1ZUlzSDlSUEQyN1RyVzRhclBLbjlhYmhHV0pzYnJ2TjVyV2Y0STk1V2Z6UDhnUDNxVDRZZnNsdHRHLzZZWjlVZHc1OXNPLzR5L0NuN3ZGM2dDcnpnVjhNVmRza01iN0hEajRhM2VZVEZyRlI1Uk5Od2pjL1lNMXhuRCtnem9TQm1Rc0lJeDVBSkk2NllFWkhqRXpGandwQ0lFRWVIRmpHRnZpWUVRbzdSZjM0TjhDbVlFU2ppbUFKSGpFOU1RTTdZSXY0aXI1UnpaUnpxTkxPN0ZnVmpBaTdrY1VsQWdpTmxSRXBDeEtYaUZCUmt2S0pCZzV5QitHWVU1SGprVElqeFNKa3hva0dYTnFmMEdUTWh4OUZXcEpLWlQ4cVFnbXNDNVhkbVVYWm1RRVJDYnF5dVNBakYwNGxmSk84T3B6aTZaTEpkajN5NkVlRkxITi9KdStTV3l2WXJQUDI2TldhYmVaZHNBdWJxWjZ5dXhMcTUxZ1RIdWkzenR2aFd1T0FWN2w3OTJXVHkvaDZGK2w4bzhnVlhtbitvU1NWaWt1RGNMaTE4S2NoM2ozRWM2ZHpCVjBlK3AwT2ZFN3E4b2E5eml4NDlXcHpScDhOcitYYnA0ZmlhTG1jY3k2TWp2TGhyU3pGbi9JRGpHenF5S1dOSDFwL0Z4Q0orSmpOMTUrSTRVeDFUTXZXOFpPNnAxa2dWM24zQzVRNmxHK3JJNVRQUUhwV1dUdk5MdEdjQkkxTkZKb1pUOVhLcGpkejZGNW9pcHFxbG5PM3RmYmtOYzl1OTVSYmZrR3FIUzdVdU9KV1RXekI2MzFTOWR6UnpyUitQZ0pDVUMxa01TSm5Tb09CR3ZNOEp1Q0xHY2F6dW5XaExDbG9ybnpMUGpWUVNNUldERG9uaXpNajBOekRkK01aOXNLRjdaMjlKS1ArUzZlV3FxdnRrY2VyVjdZemVxSHZMTzkrNkhLMU5vR0ZUVGRmVU5CRFh4TFFmYWFmVytmdnl6Zlc2cFR6bGlKU1k4Rjh2d0RNOG11eHp3Q0ZqWlJqb1ptNnZRMU12UkpPWEhLcjZTeUpaRGFYbnlDSWM0UEdjQXc1NHlmTjMrcmhrNG95TFczRlp6OTNpbUNPNkhINVFGUXY3TGtlOFhuMzcvNnkvaTJsVHRUaWVyazR2N2ozRkozZFE2eGZhczl2M3NxZUpsWk9ZVzdUYnJUZ2pZRnB5Y2J2ck5ibkhlUDhBQUFELy93RUFBUC8vOUxkUFVYaWNZbUJtQUlQLzV4aU1HTEFBQUFBQUFQLy9BUUFBLy84dkFRSURBQUFBIik7Cn0KLmQyLTc2MTgyMTk0MyAudGV4dC1pdGFsaWMgewoJZm9udC1mYW1pbHk6ICJkMi03NjE4MjE5NDMtZm9udC1pdGFsaWMiOwp9CkBmb250LWZhY2UgewoJZm9udC1mYW1pbHk6IGQyLTc2MTgyMTk0My1mb250LWl0YWxpYzsKCXNyYzogdXJsKCJkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtiYXNlNjQsZDA5R1JnQUJBQUFBQUJJMEFBb0FBQUFBSEJnQUFSaFJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJQVXk4eUFBQUE5QUFBQUdBQUFBQmdXMVNWZUdOdFlYQUFBQUZVQUFBQXJ3QUFBT2dGOWdVZ1oyeDVaZ0FBQWdRQUFBczBBQUFRREdiUE9HUm9aV0ZrQUFBTk9BQUFBRFlBQUFBMkc3VXIybWhvWldFQUFBMXdBQUFBSkFBQUFDUUxlQWphYUcxMGVBQUFEWlFBQUFER0FBQUEyR0dSQm1ac2IyTmhBQUFPWEFBQUFHNEFBQUJ1ZFdSeFNHMWhlSEFBQUE3TUFBQUFJQUFBQUNBQVRnRDJibUZ0WlFBQUR1d0FBQU1tQUFBSU1nbnRWek53YjNOMEFBQVNGQUFBQUNBQUFBQWcvOFlBTWdBREFlRUJrQUFGQUFBQ2lnSlkvL0VBU3dLS0FsZ0FSQUZlQURJQkl3QUFBZ3NGQXdNRUF3a0NCQ0FBQUhjQUFBQURBQUFBQUFBQUFBQkJSRUpQQUFFQUlQLy9BdTcvQmdBQUE5Z0JFU0FBQVpNQUFBQUFBZVlDbEFBQUFDQUFBM2ljZE0xSkxnUnhIRURoci9yZnB0Wm9NMlVxODFoS3VZRkVoRVJFSW1KdEtVN2dXbXdSN21Ganh5SGtKeEhiZnR1MytKQkpNclExZlNEWGtiUVVTcFZESjg1Y3VITGp6b1B2Q1A1ZjdjaXBjNWV1M2JyM0ZSR2Zra2I4eEh1OHhXdTh4SE04eFdNYy93bmR5aHlvN2FzMEpFMDlldlhwTjZCbFVOdVFZU002Um8wWk4ySFNsR2t6WnVYbXpGdXdhRWxoMllwVmE5WnQyTFJsMjQ1ZGUwcCtBUUFBLy84QkFBRC8vekNBSXdRQWVKeDhWMzlzRytYNWY1LzNMcjdFY1p6WTV4KzE4OE94ejc1TDdMT2QrR3hmRXNmTzc4Uko3S1JKbWpTMCtkV2ZORTFhUWtvTC9iYjlBczNFZ05GaXFnNEVRaXNhVEFMeHg3VENwQ0ZOVEFPMlpXT1Z0cWtNTmpha1VVaFJPd1NOc2c0UU9VOTNkaHluay9hUGZUcjdmWjczODNrK3orZDVYMVNBbkFqaG8vZ2lJbEFSS2tWNlpFUklvTzBFSVlnaVl5WUVqbU1vU3VSb21uS2VoZVd6ejVFZHV6NnRlZUZyM2tiMlBQeEsvejluWHNVWDErZmhvY2tISDVSMlAzcmd3TTZiTnlVMy9Qa21RZ2poOUxzSXdYczRoWXFRRGlHYUVqaVc1UmlWQ2tDZ0dZNmhyalc5clNiVkpHa1ZwTi9EL2wySklmMW5zM0J5WVNGNHVLSHhibWtJcDlZWHJseEJpRUFNUXJnYXA1QU9XZVZuZ1JZQ0pxTkJwYUlvay9MTkVFSWdIQXF5ek9ZRHMvVGo2WGxQaHhPRTdwN1RBMDFUVTd1NituYlBMVTRkVGZiZWgxTjlQWHduWDBocTJocDZKM2s0MFNONkErczN1aEtCcUx4dlFJM3BOZXpGenlNYlFnVU9sZzBGWTFnSW1Nd1V5eklPTFRZYVRDWWhFQmJOS2hVNCtnK0Y2M2FkU1RRTWJRdlRZYlpwdXQzcDZJdlVkRlF6emtsTnh3TUR5WXYzOTRqdTJtb3V1ditCNXNoa3FMbzhZUFBLM0NpWXdnbzNkQjRpaGhNQzRRMEUvL2ZZdWRGTDk0eU5qWjd1dUh0ZkdLZStlL0wrMXcrMDduaDZ6K1JzWnA5eWpES2NRc1ZLelNnN0pWQU1aYWVZSlRoY0lsMXozOUorSVFDcnhhbTI5OXB2dCtmOXZ5anYvMFQyMzk1YkpWODI0MVRiSiszUyt4dXhaemRpQzRTZEZnaUd0aFBNMGtBRDFEUWtsd1phcEE5aU9DWGRCT1A2QWpSSXk1azFhQTJuRUpGWnd5d05MTWxGM05nclhNQXBWSkNOUnpGTEF5ZkFVSUpUNjVjMzl2WnpuRUlXNVhmYUxJaEt4bkJZWkNpQ0lXVGRVQVN6Tk5sb0lydmZubHpxVHhSWk5lVGdML21vaVZScEMvdHdTdnJCbzQvQzN2VUZXT1FQZXk1SUw4SEVCWDZXbDg1bll4L0VxU3pUdEZrSWg1WG91YWdEVDd0SmxWYmQxYitVdk9naFZhWHFicHlTSmg2clB5TEF4UG9DdkhoT09CeVFMdVhxNWxWNE1lVFhqU0hvVGVtOU1iSFk5L0NPMldEYjlJSERpZmdCbk9vYjIzNTN2ZlFWOUd3ZmJCU1Uza0RONlNrOGhaOUhwWWhIeUJXSVlYbHRSbDFtQjh2bFZHY3lHclNZMmxBY01LR2RNVWZmZ1B6WisrK1JrNWFSbmI2eDQ5MTlCNEtlZ1NQdHV0RmdhWGxKZ1QwVTJYZWlhYy94eU43alRYdFB2Si9ZVGo4NTE1ODYzdFY1YWlUK3hHS3Z5dU1oaVdoeEZndUhVNmdFbVRheFVEUkRiRUh6K3NTOVIwZU9qY3d2aXAzN3B2YjN4MmR3cW50azkxR2RkQTFNMGcwWUhlNE8rek42MUtUWFFNTFBJemRDTWdaUjJYVW95SElLbkhBNDEwUXFsUXpUbk9uZTZ4MExOWTJWbzJMemtOZVZjRWRDRTVISWpFMndkUHRjb2NwNlo4SWZqQnpVTkRWNVBJSE9CbWZBNUxQMmlvSGhRTERHVjFWcnF5dG4vU1p2UlkvWXREdUlBQTJtMTVRNm01UytEUVdWS3N1cFpQTGtSeFZVN1o5VGtYMEQvVVd0WFEyN2pFT0o0WXF6bXRtRFJyOEZGcVRIdkk3dTVNUWNYSkRtenArVThRd2poTnNVZnBCQUNMVEpsRlVPbklzTWxoY1VFcVFsWlAzcER1a1ZuSkl1aG82RVEvY0VZVjZST3dJMGpSREI0eFN5Wi9TdVVsR1p0YlRKWU14R1lZaGdXRlFVT0YyMFhVMFFKR211TTczVVV3U2t3V000bjVSVzkxRVlTSzFkOXhwT1NjOEU1ME9oK1NETVNzOEU1OExodVNETXJpL0FVODVCamt0dzBqMktwcmowR253RnE4Z2dWOWJzeUJtWElBb0VJMmZpQW1GUnpMbllhNjBKdm05SzRLSTZrbzd0YVNra21YRTlPK2prallFS1owZklWcS9aUGRwOWNrS29zVWNsYTl6bGIvWDUvOEk2M0wyVGdaWm9Sc08yOUJwOGlaZVJVWjRpY3NVWmlxRUZTa2FxYUVtTHVRMWhLMTU5ZzR2cUNFUEwrU1Jud3M0ZFhpVjl5TmtScXFxcmRRd3hQb09ncWJGSDhmS2JNNVdlWFdOeTZsWjM3NlFRaTdwZDExa0hBdVJLcjhGbFdFVVZXOUJ0S2lycnloOE03dWVUZTBKOHM4bExzNVYxWStIR3B1cXd5V0ZOYWc1T2RoNGI5VHNzZFdaajUwSkhlN2RWRnpDNDBBWjNtTXZEc3NuZC95YXZTVStVc2NsVWxyMEIxNTNzY2RYVGI2NDMzRWtmVnJEOEFsYVJGYm55OHlrZGFGZmxKZ3doS09OQVJ2akoyS3kzZjZKT2JLdlNGRWp2RkZWM3VDc2J6VldWUTgrbU1hR3ZaVUpUbXNON3VoYUdlZC8yUUlXZ2JkbnVzdWdFb3cxY3hkdEtLdXB0b3dpUUJ5RTRoNjhpczZ4SnBnWG5keVNsREFQUGFFdHhXMW5wUU5UcTFwZXJ5M1gyMmtMZFhzMitVWGk1c1dDb2I2U2tXS1RVQWM5SVRCcVhPWU8wRTFaaEZkbVFMNy9qUlZHbFlyYXFUNlVpdHJEM2F2MFk0NnpvcW9uMWFTM3NEbjkwdTZkM29wNk42UWk2NVNCOXJKRVpjbmhNOVJWTW0xRGwveHRiR1RJN0VxMkhXSDVzdE9PK3V3S3lIb25wZzJEM3VQL0FPbXE3eCtzaWtVelAyUkNDRC9CeWRvWnM2cEJTQmtrb0tNTWtiT2VUZFdWazdUQWZDeFhHRXMwa0dhK0krN3J3OHMwbzQyOXJzRG1sM3dGdjJGYlM3L1pKTDZmVGNrejBEYjZNV1JSQUNLbVFFTi9NOVRsZVJwcE1mOHY1YUlhaktOdjU1QXorZXZ5dDR3T1RDMWE4TEZVQ3ZDdDkrdm5pS1FTSVQ2K2hiL0F5MHN0c2hZSVpTeklhc3FVKzBxWTZsVHdEb0NOVUZLaE5taGFkQmMrdFAwVVZFWHJBRVpMTTVjVTNZRlgyV0RsbkJxSTVDMVMxQldrKzZEMHRGTW1Pc0UzMUJmNXhWelJNa3JGa2xDUjdqSEcrUythZzJ4VDNkTUZLcjdOZXJPR0Z0Z1pkbFNHZmg4Mm5UWjVoRlczTDM4T2ROTXNaYTRkOVcxaFdNdHhKY3E3LzRFTllSYVdvTXI4Zk1pYVNPUkpsbXZ6cTRCVGZOeFVZbk9iN3A5emVJU0Vja0Q4MGgzWjNIUnYxWlQ1YjJ4YzYyM3M2RmpyYnU1Vno2TzIwQUYvQ2FxYTNxYndkYXpHanVCWkZiL0VwOWVNdEtzSTE2bE5hUE1BMjAxaHYrMUcrVDEzQnI3WGF2TmtHdHgyNkJKQTFLdll6bDMwRGo2QjRzWkt6UUpRTjVJNmUyTm9SWUxkWFlkZTRMOStUSDcrVWJ5aFhMdDNQK25PV3ZKNEUyR3JJbWJxY2hsVlVsbGNYTThWdTFLT1lyRXg0TGNieU1xc3pZWXZDeWlRZkxlb3NiSWxJVnhDa3YwMnZ3UmxZUmR5ZHMvdk8wUzFQN3N6Z2ZyRiswbEpuYm1YZDBkb0dYeVBmeS92NktueTBZR2ZydzlXeFlOMndKbGpEMm1wOGpKV3pXV08xbmphWHM2ckdZUFhhcWxpOW81bjNkcnJrUFRlbjEyQWN6K2M4UFN6S3ppUW9icFRuNlcrMEJrbG83Q2xPT052S1Qybk9OQklWRHEyMVdGZm0xN1I0UzYwbG9HOHNlT1NSbUhSRHI2K3FVaGVJVktrY3V5RzlCbC9BaXV3SDVzM3pRTGJqNkt5dHY1cnJobmhsRDkrVmtBZGh6UTVOdTZpejBSQ1dydElXV2FZd0xsbjdHQ0hUZ3hHRTRCK3c4dC9uZ3JNOUNTZXBJa21kazM0eUthM0RpblNkNldlY3ZVNndTTmJNMm02RThHOWdSVGtYNUsvZGZDSVlJbk5Qb29oWkpsRUdBR1JwZWRsRC9Ub3Nud2FzWlEvRy96NnRWZDVXbHA2QUZlbGpSNmZEMGVtQXFyd25LNmladU5NWlo2VGJDTkpYRVlJL1pYaGdhRTR3WjFPSkFtVm1zbmN5aXVML3VudkFYYWlseU5McTB0R1I1WDJEZktGT1RaWTU2Q25Bbjh5Yk9LT2gxamovcjF1TEpwL0p4SnVQSVFUcHQ5Sit1QVlyeUlvUXBXaEdNZjh0akdpeFNsMnR0ZWoxcmphTGZpVEJ5cWNtblV2L1JFTDYyQktKLzVHaUdvdWlBUWF1UzEvWWt3eVRjSUJ1L1pZL3lTT0UwdW5NakNSS01TczdEYUpRRVAwMjkvNDlvaWozUGlTL1J5RHZBeDdDLzYvY1dVU0Jac1N3S0JBQ1pTMzUzc3k5NmxFeGN0OVpUU3Q4Rk5BNDF0OXFsZmQvR3lGNEJ6OHVyMlBFR0pFMUFDNW5EcFNkVWhmT25KL3lDNkhxTmdmSDc2d2JIbmNQbng0Qmc4WTNkR3J2WFQ2KzJXNnJZMnZ2Nmd4TnpTekUyelAzbkk5QURSYjVEaVFUekdnK0xQa29PNS9TUDB2UHdBL3hyK1hmS0JBZ0RwY2JwT1FMeE1Gdm44dDVPN29DS3h2M0o5dWU1RjVZVVlRRHFBZjNvOHY0c295TlZyU2NNZndINkNyR2JLaGtjTC9aWkxGdk0xbXFFU0FkYmtLL0lrcmxPRFFubXIvL25mWkYzUFJTL1Uva09DSGNBUnFpYU9PM2NlWmxQKzd3UHR1TS9nTUFBUC8vQVFBQS8vOGVubGwxQUFFQUFBQUJHRkVGSEZGL1h3ODg5UUFCQStnQUFBQUEyRjJnekFBQUFBRGRaaTgzL3IzKzNRZ2RBOGtBQWdBREFBSUFBQUFBQUFBQUFRQUFBOWorN3dBQUNFRCt2ZjI4Q0IwRDZBREMvOUVBQUFBQUFBQUFBQUFBQURaNG5Cek9zUzZEWVJqRjhmODVIWkVRUStueURJLzZobG9sUkZjNkVoR3JWU0l4V2R5Ryt6QlpqTVVpa1pnc0VrTmRnTVFnSmRKNDVmMkdzNTN6eS9FRmF6eUMvc3FUUjZUWDJmWUJxVzlTcjZUUFNXYWtua25ma1Q1ck8rbExoaDZRK21YZXArenJrME4vY2VKVkdxOFF1cUh2TG8zZTZhdkh3TXZJY3dRZmhONElmdGpvQk9FRndoMGFkOHUwYm5WTTZLck10TXZRaTJ4cHpJNGYyTk4xZWRHNDNMZGV6WVNlSm1XcSt1R28zRllYR0FGTHdPWS9BQUFBLy84QkFBRC8vOGV3THpFQUFBQUFBQzRBTGdCU0FJb0F2QURlQVBZQkRBRW1BVFFCUkFGeUFaZ0J2QUgrQWlZQ1pnS09BcXdDNWdNZUExWURoQU84QS9ZRUhnUm1CSkFFbkFTMkJOZ0ZHZ1ZFQlhJRnJBWG1CZ1FHUUFadUJwb0d1QWJ5Qng0SFRnZGFCMllIZmdlb0I3WUh4Z2ZVQitvSCtBZ0dBQUFBQVFBQUFEWUFqQUFNQUdZQUJ3QUJBQUFBQUFBQUFBQUFBQUFBQUFRQUEzaWNuSlRiVGh0WEZJWS9COXR0ZXJxb1VFUnUwTDVNcFdSTW94QWw0Y3FVb0l5S2NPcHhlcENxU29NOVBvanh6TWd6bUpJbjZIWGZvbStScXo1R242THFkYlYvTDRNZFJVRWdCUHg3OWpyOGE2MS9iV0NULzlpZ1ZyOEwvTjJjRzY2eDNmelo4QjIrYUI0WjNtQy8rWm5oT2c4Yi94aHVNR2k4TmR6a1FhTnIrQlBlMWY4MC9DbFA2cjhadnN0Vy9kRHc1enl1YnhyK2NzUHhyK0d2ZU1LN0JhN0JNLzR3WEdPTHd2QWROdm5WOEFiM3NKaTFPdmZZTWR6Z2E3WU5OOWtHZWt5b1NKbVFNY0l4Wk1LSU0yWWtsRVFrekpnd0pHR0FJNlJOU3FXdkdiR1FZL1RCcnpFUkZUTmlSUnhUNFVpSlNJa3BHVnZFdC9MS2VhMk1RNTFtZHRlbVlrek1pVHhPaWNsdzVJekl5VWc0Vlp5S2lvSVh0R2hSMGhmZmdvcVNnSklKS1FFNU0wYTA2SERJRVQzR1RDaHhIQ3FTWnhhUk02VGluRmo1blZuNHp2Ukp5Q2lOMVJrWkEvRjA0cGZJTytRSVI0ZEN0cXVSajlZaVBNVHhvN3c5dDF5MjN4TG8xNjB3VzgrN1pCTXpWejlUZFNYVnpia21PTmF0ejl2bUIrR0tGN2hiOVdlZHlmVTlHdWgvcGNnbm5HbitBMDBxRTVNTTU3Wm9FMGxCa2J1UFkxL25rRWdkK1ltUUhxL284SWFlem0yNmRHbHpUSStRbC9MdDBNWHhIUjJPT1pCSEtMeTRPNVJpanZrRngvZUVzdkd4RSt2UFltSUp2MU9ZdWt0eG5LbU9LWVY2N3BrSHFqVlJoVGVmc04raGZFMGRwWHo2MmlOdjZUUy9USHNXTXpKVkZHSTRWUytYMmlpdGZ3TlR4RlMxK05sZTNmdHRtTnZ1TGJmNGdsdzc3Tlc2NE9RbnQyQjAzVlNEOXpSenJwK0FtQUU1SjdMb2t6T2xSY1dGZUw4bTVvd1V4NEc2OTBwYlV0Rys5UEY1THFTU2hLa1loR1NLTTZQUTM5aDBFeG4zL3BydW5iMGxBL2w3cHFlWFZkMG1pMU92cm1iMFJ0MWIza1hXNVdSbEFpMmJhcjZpcHI2NFpxYjlSRHUxeWorU2I2blhMZWNSb2VJdWR2dERyOEFPejlsbGo3R3k5SFV6djd6enI0UzMyRk1IVGtsa05aU21mUTJQQ2RnbDRDbTc3UEtjcCsvMWNzbkdHUiszeG1jMWY1c0Q5dW13ZDIwMUM5c08rN3hjaS9ieHpIK0o3WTdxY1R5NlBEMjc5VFFmM0VDMTMyamZydDdOcmlibnB6RzNhRmZiY1V6TTFITnhXNnMxdWZzRS93TUFBUC8vQVFBQS8vOXlvVkZBQUFBQUF3QUEvL1VBQVAvT0FESUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQT09Iik7Cn1dXT48L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbLnNoYXBlIHsKICBzaGFwZS1yZW5kZXJpbmc6IGdlb21ldHJpY1ByZWNpc2lvbjsKICBzdHJva2UtbGluZWpvaW46IHJvdW5kOwp9Ci5jb25uZWN0aW9uIHsKICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsKfQouYmxlbmQgewogIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsKICBvcGFjaXR5OiAwLjU7Cn0KCgkJLmQyLTc2MTgyMTk0MyAuZmlsbC1OMXtmaWxsOiMwQTBGMjU7fQoJCS5kMi03NjE4MjE5NDMgLmZpbGwtTjJ7ZmlsbDojNjc2QzdFO30KCQkuZDItNzYxODIxOTQzIC5maWxsLU4ze2ZpbGw6Izk0OTlBQjt9CgkJLmQyLTc2MTgyMTk0MyAuZmlsbC1ONHtmaWxsOiNDRkQyREQ7fQoJCS5kMi03NjE4MjE5NDMgLmZpbGwtTjV7ZmlsbDojREVFMUVCO30KCQkuZDItNzYxODIxOTQzIC5maWxsLU42e2ZpbGw6I0VFRjFGODt9CgkJLmQyLTc2MTgyMTk0MyAuZmlsbC1ON3tmaWxsOiNGRkZGRkY7fQoJCS5kMi03NjE4MjE5NDMgLmZpbGwtQjF7ZmlsbDojMEQzMkIyO30KCQkuZDItNzYxODIxOTQzIC5maWxsLUIye2ZpbGw6IzBEMzJCMjt9CgkJLmQyLTc2MTgyMTk0MyAuZmlsbC1CM3tmaWxsOiNFM0U5RkQ7fQoJCS5kMi03NjE4MjE5NDMgLmZpbGwtQjR7ZmlsbDojRTNFOUZEO30KCQkuZDItNzYxODIxOTQzIC5maWxsLUI1e2ZpbGw6I0VERjBGRDt9CgkJLmQyLTc2MTgyMTk0MyAuZmlsbC1CNntmaWxsOiNGN0Y4RkU7fQoJCS5kMi03NjE4MjE5NDMgLmZpbGwtQUEye2ZpbGw6IzRBNkZGMzt9CgkJLmQyLTc2MTgyMTk0MyAuZmlsbC1BQTR7ZmlsbDojRURGMEZEO30KCQkuZDItNzYxODIxOTQzIC5maWxsLUFBNXtmaWxsOiNGN0Y4RkU7fQoJCS5kMi03NjE4MjE5NDMgLmZpbGwtQUI0e2ZpbGw6I0VERjBGRDt9CgkJLmQyLTc2MTgyMTk0MyAuZmlsbC1BQjV7ZmlsbDojRjdGOEZFO30KCQkuZDItNzYxODIxOTQzIC5zdHJva2UtTjF7c3Ryb2tlOiMwQTBGMjU7fQoJCS5kMi03NjE4MjE5NDMgLnN0cm9rZS1OMntzdHJva2U6IzY3NkM3RTt9CgkJLmQyLTc2MTgyMTk0MyAuc3Ryb2tlLU4ze3N0cm9rZTojOTQ5OUFCO30KCQkuZDItNzYxODIxOTQzIC5zdHJva2UtTjR7c3Ryb2tlOiNDRkQyREQ7fQoJCS5kMi03NjE4MjE5NDMgLnN0cm9rZS1ONXtzdHJva2U6I0RFRTFFQjt9CgkJLmQyLTc2MTgyMTk0MyAuc3Ryb2tlLU42e3N0cm9rZTojRUVGMUY4O30KCQkuZDItNzYxODIxOTQzIC5zdHJva2UtTjd7c3Ryb2tlOiNGRkZGRkY7fQoJCS5kMi03NjE4MjE5NDMgLnN0cm9rZS1CMXtzdHJva2U6IzBEMzJCMjt9CgkJLmQyLTc2MTgyMTk0MyAuc3Ryb2tlLUIye3N0cm9rZTojMEQzMkIyO30KCQkuZDItNzYxODIxOTQzIC5zdHJva2UtQjN7c3Ryb2tlOiNFM0U5RkQ7fQoJCS5kMi03NjE4MjE5NDMgLnN0cm9rZS1CNHtzdHJva2U6I0UzRTlGRDt9CgkJLmQyLTc2MTgyMTk0MyAuc3Ryb2tlLUI1e3N0cm9rZTojRURGMEZEO30KCQkuZDItNzYxODIxOTQzIC5zdHJva2UtQjZ7c3Ryb2tlOiNGN0Y4RkU7fQoJCS5kMi03NjE4MjE5NDMgLnN0cm9rZS1BQTJ7c3Ryb2tlOiM0QTZGRjM7fQoJCS5kMi03NjE4MjE5NDMgLnN0cm9rZS1BQTR7c3Ryb2tlOiNFREYwRkQ7fQoJCS5kMi03NjE4MjE5NDMgLnN0cm9rZS1BQTV7c3Ryb2tlOiNGN0Y4RkU7fQoJCS5kMi03NjE4MjE5NDMgLnN0cm9rZS1BQjR7c3Ryb2tlOiNFREYwRkQ7fQoJCS5kMi03NjE4MjE5NDMgLnN0cm9rZS1BQjV7c3Ryb2tlOiNGN0Y4RkU7fQoJCS5kMi03NjE4MjE5NDMgLmJhY2tncm91bmQtY29sb3ItTjF7YmFja2dyb3VuZC1jb2xvcjojMEEwRjI1O30KCQkuZDItNzYxODIxOTQzIC5iYWNrZ3JvdW5kLWNvbG9yLU4ye2JhY2tncm91bmQtY29sb3I6IzY3NkM3RTt9CgkJLmQyLTc2MTgyMTk0MyAuYmFja2dyb3VuZC1jb2xvci1OM3tiYWNrZ3JvdW5kLWNvbG9yOiM5NDk5QUI7fQoJCS5kMi03NjE4MjE5NDMgLmJhY2tncm91bmQtY29sb3ItTjR7YmFja2dyb3VuZC1jb2xvcjojQ0ZEMkREO30KCQkuZDItNzYxODIxOTQzIC5iYWNrZ3JvdW5kLWNvbG9yLU41e2JhY2tncm91bmQtY29sb3I6I0RFRTFFQjt9CgkJLmQyLTc2MTgyMTk0MyAuYmFja2dyb3VuZC1jb2xvci1ONntiYWNrZ3JvdW5kLWNvbG9yOiNFRUYxRjg7fQoJCS5kMi03NjE4MjE5NDMgLmJhY2tncm91bmQtY29sb3ItTjd7YmFja2dyb3VuZC1jb2xvcjojRkZGRkZGO30KCQkuZDItNzYxODIxOTQzIC5iYWNrZ3JvdW5kLWNvbG9yLUIxe2JhY2tncm91bmQtY29sb3I6IzBEMzJCMjt9CgkJLmQyLTc2MTgyMTk0MyAuYmFja2dyb3VuZC1jb2xvci1CMntiYWNrZ3JvdW5kLWNvbG9yOiMwRDMyQjI7fQoJCS5kMi03NjE4MjE5NDMgLmJhY2tncm91bmQtY29sb3ItQjN7YmFja2dyb3VuZC1jb2xvcjojRTNFOUZEO30KCQkuZDItNzYxODIxOTQzIC5iYWNrZ3JvdW5kLWNvbG9yLUI0e2JhY2tncm91bmQtY29sb3I6I0UzRTlGRDt9CgkJLmQyLTc2MTgyMTk0MyAuYmFja2dyb3VuZC1jb2xvci1CNXtiYWNrZ3JvdW5kLWNvbG9yOiNFREYwRkQ7fQoJCS5kMi03NjE4MjE5NDMgLmJhY2tncm91bmQtY29sb3ItQjZ7YmFja2dyb3VuZC1jb2xvcjojRjdGOEZFO30KCQkuZDItNzYxODIxOTQzIC5iYWNrZ3JvdW5kLWNvbG9yLUFBMntiYWNrZ3JvdW5kLWNvbG9yOiM0QTZGRjM7fQoJCS5kMi03NjE4MjE5NDMgLmJhY2tncm91bmQtY29sb3ItQUE0e2JhY2tncm91bmQtY29sb3I6I0VERjBGRDt9CgkJLmQyLTc2MTgyMTk0MyAuYmFja2dyb3VuZC1jb2xvci1BQTV7YmFja2dyb3VuZC1jb2xvcjojRjdGOEZFO30KCQkuZDItNzYxODIxOTQzIC5iYWNrZ3JvdW5kLWNvbG9yLUFCNHtiYWNrZ3JvdW5kLWNvbG9yOiNFREYwRkQ7fQoJCS5kMi03NjE4MjE5NDMgLmJhY2tncm91bmQtY29sb3ItQUI1e2JhY2tncm91bmQtY29sb3I6I0Y3RjhGRTt9CgkJLmQyLTc2MTgyMTk0MyAuY29sb3ItTjF7Y29sb3I6IzBBMEYyNTt9CgkJLmQyLTc2MTgyMTk0MyAuY29sb3ItTjJ7Y29sb3I6IzY3NkM3RTt9CgkJLmQyLTc2MTgyMTk0MyAuY29sb3ItTjN7Y29sb3I6Izk0OTlBQjt9CgkJLmQyLTc2MTgyMTk0MyAuY29sb3ItTjR7Y29sb3I6I0NGRDJERDt9CgkJLmQyLTc2MTgyMTk0MyAuY29sb3ItTjV7Y29sb3I6I0RFRTFFQjt9CgkJLmQyLTc2MTgyMTk0MyAuY29sb3ItTjZ7Y29sb3I6I0VFRjFGODt9CgkJLmQyLTc2MTgyMTk0MyAuY29sb3ItTjd7Y29sb3I6I0ZGRkZGRjt9CgkJLmQyLTc2MTgyMTk0MyAuY29sb3ItQjF7Y29sb3I6IzBEMzJCMjt9CgkJLmQyLTc2MTgyMTk0MyAuY29sb3ItQjJ7Y29sb3I6IzBEMzJCMjt9CgkJLmQyLTc2MTgyMTk0MyAuY29sb3ItQjN7Y29sb3I6I0UzRTlGRDt9CgkJLmQyLTc2MTgyMTk0MyAuY29sb3ItQjR7Y29sb3I6I0UzRTlGRDt9CgkJLmQyLTc2MTgyMTk0MyAuY29sb3ItQjV7Y29sb3I6I0VERjBGRDt9CgkJLmQyLTc2MTgyMTk0MyAuY29sb3ItQjZ7Y29sb3I6I0Y3RjhGRTt9CgkJLmQyLTc2MTgyMTk0MyAuY29sb3ItQUEye2NvbG9yOiM0QTZGRjM7fQoJCS5kMi03NjE4MjE5NDMgLmNvbG9yLUFBNHtjb2xvcjojRURGMEZEO30KCQkuZDItNzYxODIxOTQzIC5jb2xvci1BQTV7Y29sb3I6I0Y3RjhGRTt9CgkJLmQyLTc2MTgyMTk0MyAuY29sb3ItQUI0e2NvbG9yOiNFREYwRkQ7fQoJCS5kMi03NjE4MjE5NDMgLmNvbG9yLUFCNXtjb2xvcjojRjdGOEZFO30uYXBwZW5kaXggdGV4dC50ZXh0e2ZpbGw6IzBBMEYyNX0ubWR7LS1jb2xvci1mZy1kZWZhdWx0OiMwQTBGMjU7LS1jb2xvci1mZy1tdXRlZDojNjc2QzdFOy0tY29sb3ItZmctc3VidGxlOiM5NDk5QUI7LS1jb2xvci1jYW52YXMtZGVmYXVsdDojRkZGRkZGOy0tY29sb3ItY2FudmFzLXN1YnRsZTojRUVGMUY4Oy0tY29sb3ItYm9yZGVyLWRlZmF1bHQ6IzBEMzJCMjstLWNvbG9yLWJvcmRlci1tdXRlZDojMEQzMkIyOy0tY29sb3ItbmV1dHJhbC1tdXRlZDojRUVGMUY4Oy0tY29sb3ItYWNjZW50LWZnOiMwRDMyQjI7LS1jb2xvci1hY2NlbnQtZW1waGFzaXM6IzBEMzJCMjstLWNvbG9yLWF0dGVudGlvbi1zdWJ0bGU6IzY3NkM3RTstLWNvbG9yLWRhbmdlci1mZzpyZWQ7fS5za2V0Y2gtb3ZlcmxheS1CMXtmaWxsOnVybCgjc3RyZWFrcy1kYXJrZXItZDItNzYxODIxOTQzKTttaXgtYmxlbmQtbW9kZTpsaWdodGVufS5za2V0Y2gtb3ZlcmxheS1CMntmaWxsOnVybCgjc3RyZWFrcy1kYXJrZXItZDItNzYxODIxOTQzKTttaXgtYmxlbmQtbW9kZTpsaWdodGVufS5za2V0Y2gtb3ZlcmxheS1CM3tmaWxsOnVybCgjc3RyZWFrcy1icmlnaHQtZDItNzYxODIxOTQzKTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LUI0e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi03NjE4MjE5NDMpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0uc2tldGNoLW92ZXJsYXktQjV7ZmlsbDp1cmwoI3N0cmVha3MtYnJpZ2h0LWQyLTc2MTgyMTk0Myk7bWl4LWJsZW5kLW1vZGU6ZGFya2VufS5za2V0Y2gtb3ZlcmxheS1CNntmaWxsOnVybCgjc3RyZWFrcy1icmlnaHQtZDItNzYxODIxOTQzKTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LUFBMntmaWxsOnVybCgjc3RyZWFrcy1kYXJrLWQyLTc2MTgyMTk0Myk7bWl4LWJsZW5kLW1vZGU6b3ZlcmxheX0uc2tldGNoLW92ZXJsYXktQUE0e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi03NjE4MjE5NDMpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0uc2tldGNoLW92ZXJsYXktQUE1e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi03NjE4MjE5NDMpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0uc2tldGNoLW92ZXJsYXktQUI0e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi03NjE4MjE5NDMpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0uc2tldGNoLW92ZXJsYXktQUI1e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi03NjE4MjE5NDMpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0uc2tldGNoLW92ZXJsYXktTjF7ZmlsbDp1cmwoI3N0cmVha3MtZGFya2VyLWQyLTc2MTgyMTk0Myk7bWl4LWJsZW5kLW1vZGU6bGlnaHRlbn0uc2tldGNoLW92ZXJsYXktTjJ7ZmlsbDp1cmwoI3N0cmVha3MtZGFyay1kMi03NjE4MjE5NDMpO21peC1ibGVuZC1tb2RlOm92ZXJsYXl9LnNrZXRjaC1vdmVybGF5LU4ze2ZpbGw6dXJsKCNzdHJlYWtzLW5vcm1hbC1kMi03NjE4MjE5NDMpO21peC1ibGVuZC1tb2RlOmNvbG9yLWJ1cm59LnNrZXRjaC1vdmVybGF5LU40e2ZpbGw6dXJsKCNzdHJlYWtzLW5vcm1hbC1kMi03NjE4MjE5NDMpO21peC1ibGVuZC1tb2RlOmNvbG9yLWJ1cm59LnNrZXRjaC1vdmVybGF5LU41e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi03NjE4MjE5NDMpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0uc2tldGNoLW92ZXJsYXktTjZ7ZmlsbDp1cmwoI3N0cmVha3MtYnJpZ2h0LWQyLTc2MTgyMTk0Myk7bWl4LWJsZW5kLW1vZGU6ZGFya2VufS5za2V0Y2gtb3ZlcmxheS1ON3tmaWxsOnVybCgjc3RyZWFrcy1icmlnaHQtZDItNzYxODIxOTQzKTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LmxpZ2h0LWNvZGV7ZGlzcGxheTogYmxvY2t9LmRhcmstY29kZXtkaXNwbGF5OiBub25lfV1dPjwvc3R5bGU+PGcgY2xhc3M9ImRYTmxjbk09Ij48ZyBjbGFzcz0ic2hhcGUiID48cGF0aCBkPSJNIDIwOSAxNDkgSCAxMTIgViAxNDggQyAxMTIgMTM3IDEyMyAxMjcgMTM5IDEyMiBDIDEzMCAxMTggMTI1IDExMSAxMjUgMTA0IEMgMTI1IDkzIDE0MSA4MyAxNjAgODMgQyAxODAgODMgMTk2IDkzIDE5NiAxMDQgQyAxOTYgMTExIDE5MSAxMTcgMTgxIDEyMSBDIDE5OCAxMjYgMjA4IDEzNiAyMDggMTQ3IFYgMTQ4IEggMjA5IFoiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0UzRTlGRCIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CMyIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iMTYwLjUwMDAwMCIgeT0iMTcwLjAwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij5VdGlsaXNhdGV1cnM8L3RleHQ+PC9nPjxnIGNsYXNzPSJhVzUwWlhKdVpYUT0iPjxnIGNsYXNzPSJzaGFwZSIgPjxwYXRoIGQ9Ik0gNTE1IDEwMyBDIDUxNSAxMDQgNTE0IDEwNSA1MTMgMTA1IEMgNTAyIDEwNiA0OTQgMTE3IDQ5NCAxMzEgQyA0OTQgMTQ2IDUwMyAxNTggNTE1IDE1OCBIIDU5NiBDIDYwOSAxNTggNjE5IDE0NSA2MTkgMTMwIEMgNjE5IDExNSA2MDkgMTAzIDU5NyAxMDIgQyA1OTYgMTAyIDU5NSAxMDEgNTk1IDEwMCBDIDU5MiA4NSA1ODAgNzQgNTY1IDc0IEMgNTU1IDc0IDU0NyA3OSA1NDEgODYgQyA1NDAgODcgNTM5IDg3IDUzOSA4NyBDIDUzNyA4NiA1MzUgODYgNTMyIDg2IEMgNTI0IDg2IDUxNiA5MyA1MTUgMTAzIFoiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0ZGRkZGRiIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1ONyIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iNTU2LjU5NzAwMCIgeT0iMTM3LjUxNjAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij5JbnRlcm5ldDwvdGV4dD48L2c+PGcgY2xhc3M9IlkyOXRjR0Z1ZVE9PSI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iMzUuMDAwMDAwIiB5PSIyNzYuMDAwMDAwIiB3aWR0aD0iMjUwLjAwMDAwMCIgaGVpZ2h0PSIzNzguMDAwMDAwIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9IiNFM0U5RkQiIGNsYXNzPSIgc3Ryb2tlLUIxIGZpbGwtQjQiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIC8+PC9nPjx0ZXh0IHg9IjE2MC4wMDAwMDAiIHk9IjI2My4wMDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0IGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjI4cHgiPkVudHJlcHJpc2UgRmljdGl2ZSBBbHBoYWNvcnA8L3RleHQ+PC9nPjxnIGNsYXNzPSJibVYwZDI5eWF3PT0iPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9IjU3LjAwMDAwMCIgeT0iODY2LjAwMDAwMCIgd2lkdGg9IjIwNi4wMDAwMDAiIGhlaWdodD0iMzc4LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRTNFOUZEIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI0IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxNjAuMDAwMDAwIiB5PSI4NTMuMDAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToyOHB4Ij5Sw6lzZWF1IGV0IHPDqWN1cml0w6k8L3RleHQ+PC9nPjxnIGNsYXNzPSJZWEJ3Y3c9PSI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iNDEuMDAwMDAwIiB5PSIxMzMwLjAwMDAwMCIgd2lkdGg9IjIzOC4wMDAwMDAiIGhlaWdodD0iNjMwLjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRTNFOUZEIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI0IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxNjAuMDAwMDAwIiB5PSIxMzE3LjAwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MjhweCI+QXBwbGljYXRpb25zIG3DqXRpZXJzPC90ZXh0PjwvZz48ZyBjbGFzcz0iWkdGMFlRPT0iPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9IjI0LjAwMDAwMCIgeT0iMjA0Ni4wMDAwMDAiIHdpZHRoPSIyNzMuMDAwMDAwIiBoZWlnaHQ9IjUwNC4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0UzRTlGRCIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNCIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iMTYwLjUwMDAwMCIgeT0iMjAzMy4wMDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0IGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjI4cHgiPkRvbm7DqWVzPC90ZXh0PjwvZz48ZyBjbGFzcz0iYjNCeiI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iNDEuMDAwMDAwIiB5PSIyNjM2LjAwMDAwMCIgd2lkdGg9IjIzOC4wMDAwMDAiIGhlaWdodD0iMzc4LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRTNFOUZEIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI0IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxNjAuMDAwMDAwIiB5PSIyNjIzLjAwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MjhweCI+RXhwbG9pdGF0aW9uPC90ZXh0PjwvZz48ZyBjbGFzcz0iWm5jPSI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iNzQyLjAwMDAwMCIgeT0iODMuMDAwMDAwIiB3aWR0aD0iNjQuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRjdGOEZFIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI2IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSI3NzQuMDAwMDAwIiB5PSIxMjEuNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPmZ3PC90ZXh0PjwvZz48ZyBjbGFzcz0iZG5CdSI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iOTU1LjAwMDAwMCIgeT0iMjA5LjAwMDAwMCIgd2lkdGg9IjcyLjAwMDAwMCIgaGVpZ2h0PSI2Ni4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0Y3RjhGRSIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNiIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iOTkxLjAwMDAwMCIgeT0iMjQ3LjUwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij52cG48L3RleHQ+PC9nPjxnIGNsYXNzPSJiR0k9Ij48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSI5NjIuMDAwMDAwIiB5PSI3My4wMDAwMDAiIHdpZHRoPSI1OC4wMDAwMDAiIGhlaWdodD0iNjYuMDAwMDAwIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9IiNGN0Y4RkUiIGNsYXNzPSIgc3Ryb2tlLUIxIGZpbGwtQjYiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIC8+PC9nPjx0ZXh0IHg9Ijk5MS4wMDAwMDAiIHk9IjExMS41MDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0LWJvbGQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+bGI8L3RleHQ+PC9nPjxnIGNsYXNzPSJjRzl5ZEdGcyI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iMTE3MS4wMDAwMDAiIHk9IjYwNy4wMDAwMDAiIHdpZHRoPSI4OC4wMDAwMDAiIGhlaWdodD0iNjYuMDAwMDAwIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9IiNGN0Y4RkUiIGNsYXNzPSIgc3Ryb2tlLUIxIGZpbGwtQjYiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIC8+PC9nPjx0ZXh0IHg9IjEyMTUuMDAwMDAwIiB5PSI2NDUuNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPnBvcnRhbDwvdGV4dD48L2c+PGcgY2xhc3M9IlkzSnQiPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9IjExNzkuMDAwMDAwIiB5PSI0ODEuMDAwMDAwIiB3aWR0aD0iNzIuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRjdGOEZFIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI2IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxMjE1LjAwMDAwMCIgeT0iNTE5LjUwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij5jcm08L3RleHQ+PC9nPjxnIGNsYXNzPSJaWEp3Ij48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSIxMTgwLjAwMDAwMCIgeT0iMzU1LjAwMDAwMCIgd2lkdGg9IjY5LjAwMDAwMCIgaGVpZ2h0PSI2Ni4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0Y3RjhGRSIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNiIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iMTIxNC41MDAwMDAiIHk9IjM5My41MDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0LWJvbGQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+ZXJwPC90ZXh0PjwvZz48ZyBjbGFzcz0iZDJscmFRPT0iPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9IjExNzcuMDAwMDAwIiB5PSIxMjYuMDAwMDAwIiB3aWR0aD0iNzUuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRjdGOEZFIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI2IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxMjE0LjUwMDAwMCIgeT0iMTY0LjUwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij53aWtpPC90ZXh0PjwvZz48ZyBjbGFzcz0iYUdWc2NHUmxjMnM9Ij48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSIxMTYwLjAwMDAwMCIgeT0iMC4wMDAwMDAiIHdpZHRoPSIxMDkuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRjdGOEZFIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI2IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxMjE0LjUwMDAwMCIgeT0iMzguNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPmhlbHBkZXNrPC90ZXh0PjwvZz48ZyBjbGFzcz0iWkdJeCI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iMTM5MC4wMDAwMDAiIHk9IjUyNC4wMDAwMDAiIHdpZHRoPSI3Mi4wMDAwMDAiIGhlaWdodD0iNjYuMDAwMDAwIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9IiNGN0Y4RkUiIGNsYXNzPSIgc3Ryb2tlLUIxIGZpbGwtQjYiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIC8+PC9nPjx0ZXh0IHg9IjE0MjYuMDAwMDAwIiB5PSI1NjIuNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPmRiMTwvdGV4dD48L2c+PGcgY2xhc3M9IlpHSXkiPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9IjEzOTAuMDAwMDAwIiB5PSIyNzIuMDAwMDAwIiB3aWR0aD0iNzIuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRjdGOEZFIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI2IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxNDI2LjAwMDAwMCIgeT0iMzEwLjUwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij5kYjI8L3RleHQ+PC9nPjxnIGNsYXNzPSJjM1J2Y21GblpRPT0iPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9IjEzNzYuMDAwMDAwIiB5PSI2My4wMDAwMDAiIHdpZHRoPSI5OS4wMDAwMDAiIGhlaWdodD0iNjYuMDAwMDAwIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9IiNGN0Y4RkUiIGNsYXNzPSIgc3Ryb2tlLUIxIGZpbGwtQjYiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIC8+PC9nPjx0ZXh0IHg9IjE0MjUuNTAwMDAwIiB5PSIxMDEuNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPnN0b3JhZ2U8L3RleHQ+PC9nPjxnIGNsYXNzPSJiVzl1YVhSdmNtbHVadz09Ij48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSI5MjguMDAwMDAwIiB5PSIzNTguMDAwMDAwIiB3aWR0aD0iMTI1LjAwMDAwMCIgaGVpZ2h0PSI2Ni4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0Y3RjhGRSIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNiIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iOTkwLjUwMDAwMCIgeT0iMzk2LjUwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij5tb25pdG9yaW5nPC90ZXh0PjwvZz48ZyBjbGFzcz0iYkc5bloybHVadz09Ij48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSI5NDIuMDAwMDAwIiB5PSI1NTcuMDAwMDAwIiB3aWR0aD0iOTguMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRjdGOEZFIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI2IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSI5OTEuMDAwMDAwIiB5PSI1OTUuNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPmxvZ2dpbmc8L3RleHQ+PC9nPjxnIGNsYXNzPSJZbUZqYTNWdyI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iMTU4Mi4wMDAwMDAiIHk9IjYzLjAwMDAwMCIgd2lkdGg9Ijk2LjAwMDAwMCIgaGVpZ2h0PSI2Ni4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0Y3RjhGRSIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNiIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iMTYzMC4wMDAwMDAiIHk9IjEwMS41MDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0LWJvbGQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+YmFja3VwPC90ZXh0PjwvZz48ZyBjbGFzcz0iYUhFPSI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iMTI5LjAwMDAwMCIgeT0iNzA0LjAwMDAwMCIgd2lkdGg9IjYzLjAwMDAwMCIgaGVpZ2h0PSI2Ni4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0Y3RjhGRSIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNiIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iMTYwLjUwMDAwMCIgeT0iNzQyLjUwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij5ocTwvdGV4dD48L2c+PGcgY2xhc3M9IlpHTT0iPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9IjUyNi4wMDAwMDAiIHk9IjcwNC4wMDAwMDAiIHdpZHRoPSI2My4wMDAwMDAiIGhlaWdodD0iNjYuMDAwMDAwIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9IiNGN0Y4RkUiIGNsYXNzPSIgc3Ryb2tlLUIxIGZpbGwtQjYiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIC8+PC9nPjx0ZXh0IHg9IjU1Ny41MDAwMDAiIHk9Ijc0Mi41MDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0LWJvbGQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+ZGM8L3RleHQ+PC9nPjxnIGNsYXNzPSJZbkpoYm1ObyI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iNzI3LjAwMDAwMCIgeT0iMjE5LjAwMDAwMCIgd2lkdGg9Ijk0LjAwMDAwMCIgaGVpZ2h0PSI2Ni4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0Y3RjhGRSIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNiIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iNzc0LjAwMDAwMCIgeT0iMjU3LjUwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij5icmFuY2g8L3RleHQ+PC9nPjxnIGNsYXNzPSJZMjl0Y0dGdWVTNW9jUT09Ij48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSI5Ni4wMDAwMDAiIHk9IjMwNi4wMDAwMDAiIHdpZHRoPSIxMjguMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRURGMEZEIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI1IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxNjAuMDAwMDAwIiB5PSIzNDQuNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPlNpw6hnZSBzb2NpYWw8L3RleHQ+PC9nPjxnIGNsYXNzPSJZMjl0Y0dGdWVTNWtZdz09Ij48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSI2NS4wMDAwMDAiIHk9IjQzMi4wMDAwMDAiIHdpZHRoPSIxOTAuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRURGMEZEIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI1IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxNjAuMDAwMDAwIiB5PSI0NzAuNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPkRhdGFjZW50ZXIgcHJpbmNpcGFsPC90ZXh0PjwvZz48ZyBjbGFzcz0iWTI5dGNHRnVlUzVpY21GdVkyZz0iPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9Ijc3LjAwMDAwMCIgeT0iNTU4LjAwMDAwMCIgd2lkdGg9IjE2Ny4wMDAwMDAiIGhlaWdodD0iNjYuMDAwMDAwIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9IiNFREYwRkQiIGNsYXNzPSIgc3Ryb2tlLUIxIGZpbGwtQjUiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIC8+PC9nPjx0ZXh0IHg9IjE2MC41MDAwMDAiIHk9IjU5Ni41MDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0LWJvbGQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+QWdlbmNlIHLDqWdpb25hbGU8L3RleHQ+PC9nPjxnIGNsYXNzPSJibVYwZDI5eWF5NW1kdz09Ij48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSIxMDguMDAwMDAwIiB5PSI4OTYuMDAwMDAwIiB3aWR0aD0iMTA1LjAwMDAwMCIgaGVpZ2h0PSI2Ni4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0VERjBGRCIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iMTYwLjUwMDAwMCIgeT0iOTM0LjUwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij5QYXJlLWZldTwvdGV4dD48L2c+PGcgY2xhc3M9ImJtVjBkMjl5YXk1MmNHND0iPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9IjEyMy4wMDAwMDAiIHk9IjEwMjIuMDAwMDAwIiB3aWR0aD0iNzUuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRURGMEZEIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI1IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxNjAuNTAwMDAwIiB5PSIxMDYwLjUwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij5WUE48L3RleHQ+PC9nPjxnIGNsYXNzPSJibVYwZDI5eWF5NXNZZz09Ij48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSI4Ny4wMDAwMDAiIHk9IjExNDguMDAwMDAwIiB3aWR0aD0iMTQ2LjAwMDAwMCIgaGVpZ2h0PSI2Ni4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0VERjBGRCIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iMTYwLjAwMDAwMCIgeT0iMTE4Ni41MDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0LWJvbGQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+UmV2ZXJzZSBQcm94eTwvdGV4dD48L2c+PGcgY2xhc3M9IllYQndjeTV3YjNKMFlXdz0iPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9Ijg2LjAwMDAwMCIgeT0iMTM2MC4wMDAwMDAiIHdpZHRoPSIxNDguMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRURGMEZEIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI1IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxNjAuMDAwMDAwIiB5PSIxMzk4LjUwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij5Qb3J0YWlsIGludGVybmU8L3RleHQ+PC9nPjxnIGNsYXNzPSJZWEJ3Y3k1amNtMD0iPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9IjEyMi4wMDAwMDAiIHk9IjE0ODYuMDAwMDAwIiB3aWR0aD0iNzYuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRURGMEZEIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI1IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxNjAuMDAwMDAwIiB5PSIxNTI0LjUwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij5DUk08L3RleHQ+PC9nPjxnIGNsYXNzPSJZWEJ3Y3k1bGNuQT0iPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9IjEyNC4wMDAwMDAiIHk9IjE2MTIuMDAwMDAwIiB3aWR0aD0iNzIuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRURGMEZEIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI1IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxNjAuMDAwMDAwIiB5PSIxNjUwLjUwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij5FUlA8L3RleHQ+PC9nPjxnIGNsYXNzPSJZWEJ3Y3k1M2FXdHAiPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9IjcxLjAwMDAwMCIgeT0iMTczOC4wMDAwMDAiIHdpZHRoPSIxNzguMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRURGMEZEIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI1IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxNjAuMDAwMDAwIiB5PSIxNzc2LjUwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij5XaWtpIGRvY3VtZW50YWlyZTwvdGV4dD48L2c+PGcgY2xhc3M9IllYQndjeTVvWld4d1pHVnphdz09Ij48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSIxMDUuMDAwMDAwIiB5PSIxODY0LjAwMDAwMCIgd2lkdGg9IjExMS4wMDAwMDAiIGhlaWdodD0iNjYuMDAwMDAwIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9IiNFREYwRkQiIGNsYXNzPSIgc3Ryb2tlLUIxIGZpbGwtQjUiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIC8+PC9nPjx0ZXh0IHg9IjE2MC41MDAwMDAiIHk9IjE5MDIuNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPkhlbHBkZXNrPC90ZXh0PjwvZz48ZyBjbGFzcz0iWkdGMFlTNWtZakU9Ij48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSI3OC4wMDAwMDAiIHk9IjIwNzYuMDAwMDAwIiB3aWR0aD0iMTY0LjAwMDAwMCIgaGVpZ2h0PSI2Ni4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0VERjBGRCIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iMTYwLjAwMDAwMCIgeT0iMjExNC41MDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0LWJvbGQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+QmFzZSBQb3N0Z3JlU1FMPC90ZXh0PjwvZz48ZyBjbGFzcz0iWkdGMFlTNWtZakk9Ij48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSI5MC4wMDAwMDAiIHk9IjIyMDIuMDAwMDAwIiB3aWR0aD0iMTQxLjAwMDAwMCIgaGVpZ2h0PSI2Ni4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0VERjBGRCIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iMTYwLjUwMDAwMCIgeT0iMjI0MC41MDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0LWJvbGQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+QmFzZSBNYXJpYURCPC90ZXh0PjwvZz48ZyBjbGFzcz0iWkdGMFlTNXpkRzl5WVdkbCI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iNTQuMDAwMDAwIiB5PSIyMzI4LjAwMDAwMCIgd2lkdGg9IjIxMy4wMDAwMDAiIGhlaWdodD0iNjYuMDAwMDAwIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9IiNFREYwRkQiIGNsYXNzPSIgc3Ryb2tlLUIxIGZpbGwtQjUiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIC8+PC9nPjx0ZXh0IHg9IjE2MC41MDAwMDAiIHk9IjIzNjYuNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPlN0b2NrYWdlIGRvY3VtZW50YWlyZTwvdGV4dD48L2c+PGcgY2xhc3M9IlpHRjBZUzVpWVdOcmRYQT0iPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9IjY0LjAwMDAwMCIgeT0iMjQ1NC4wMDAwMDAiIHdpZHRoPSIxOTMuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRURGMEZEIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI1IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxNjAuNTAwMDAwIiB5PSIyNDkyLjUwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij5TYXV2ZWdhcmRlIGhvcnMgc2l0ZTwvdGV4dD48L2c+PGcgY2xhc3M9ImIzQnpMbTF2Ym1sMGIzSnBibWM9Ij48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSI5Ni4wMDAwMDAiIHk9IjI2NjYuMDAwMDAwIiB3aWR0aD0iMTI5LjAwMDAwMCIgaGVpZ2h0PSI2Ni4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0VERjBGRCIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iMTYwLjUwMDAwMCIgeT0iMjcwNC41MDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0LWJvbGQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+U3VwZXJ2aXNpb248L3RleHQ+PC9nPjxnIGNsYXNzPSJiM0J6TG14dloyZHBibWM9Ij48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSI3MS4wMDAwMDAiIHk9IjI3OTIuMDAwMDAwIiB3aWR0aD0iMTc4LjAwMDAwMCIgaGVpZ2h0PSI2Ni4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0VERjBGRCIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iMTYwLjAwMDAwMCIgeT0iMjgzMC41MDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0LWJvbGQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+Q2VudHJhbGlzYXRpb24gbG9nczwvdGV4dD48L2c+PGcgY2xhc3M9ImIzQnpMbU5wWTJRPSI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iMTE4LjAwMDAwMCIgeT0iMjkxOC4wMDAwMDAiIHdpZHRoPSI4NC4wMDAwMDAiIGhlaWdodD0iNjYuMDAwMDAwIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9IiNFREYwRkQiIGNsYXNzPSIgc3Ryb2tlLUIxIGZpbGwtQjUiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIC8+PC9nPjx0ZXh0IHg9IjE2MC4wMDAwMDAiIHk9IjI5NTYuNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPkNJL0NEPC90ZXh0PjwvZz48ZyBjbGFzcz0iS0hWelpYSnpJQzBtWjNRN0lHbHVkR1Z5Ym1WMEtWc3dYUT09Ij48bWFya2VyIGlkPSJtay1kMi03NjE4MjE5NDMtMzQ4ODM3ODEzNCIgbWFya2VyV2lkdGg9IjEwLjAwMDAwMCIgbWFya2VySGVpZ2h0PSIxMi4wMDAwMDAiIHJlZlg9IjcuMDAwMDAwIiByZWZZPSI2LjAwMDAwMCIgdmlld0JveD0iMC4wMDAwMDAgMC4wMDAwMDAgMTAuMDAwMDAwIDEyLjAwMDAwMCIgb3JpZW50PSJhdXRvIiBtYXJrZXJVbml0cz0idXNlclNwYWNlT25Vc2UiPiA8cG9seWdvbiBwb2ludHM9IjAuMDAwMDAwLDAuMDAwMDAwIDEwLjAwMDAwMCw2LjAwMDAwMCAwLjAwMDAwMCwxMi4wMDAwMDAiIGZpbGw9IiMwRDMyQjIiIGNsYXNzPSJjb25uZWN0aW9uIGZpbGwtQjEiIHN0cm9rZS13aWR0aD0iMiIgLz4gPC9tYXJrZXI+PHBhdGggZD0iTSAxOTIuMDAwMDAwIDExNi4wMDAwMDAgQyAyOTQuMDAwMDAwIDExNi4wMDAwMDAgNDI1LjIwMDAxMiAxMTYuMDAwMDAwIDQ5NC4wMDAwMDAgMTE2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSJub25lIiBjbGFzcz0iY29ubmVjdGlvbiBzdHJva2UtQjEiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIG1hcmtlci1lbmQ9InVybCgjbWstZDItNzYxODIxOTQzLTM0ODgzNzgxMzQpIiBtYXNrPSJ1cmwoI2QyLTc2MTgyMTk0MykiIC8+PHRleHQgeD0iMzQ0LjUwMDAwMCIgeT0iMTIyLjAwMDAwMCIgZmlsbD0iIzY3NkM3RSIgY2xhc3M9InRleHQtaXRhbGljIGZpbGwtTjIiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPmFjY8OocyB3ZWI8L3RleHQ+PC9nPjxnIGNsYXNzPSJLR2x1ZEdWeWJtVjBJQzBtWjNRN0lHWjNLVnN3WFE9PSI+PHBhdGggZD0iTSA2MTguMDAwMDAwIDExNi4wMDAwMDAgQyA2NjIuMDAwMDAwIDExNi4wMDAwMDAgNjg3LjI5OTk4OCAxMTYuMDAwMDAwIDczOC41MDAwMDAgMTE2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSJub25lIiBjbGFzcz0iY29ubmVjdGlvbiBzdHJva2UtQjEiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIG1hcmtlci1lbmQ9InVybCgjbWstZDItNzYxODIxOTQzLTM0ODgzNzgxMzQpIiBtYXNrPSJ1cmwoI2QyLTc2MTgyMTk0MykiIC8+PC9nPjxnIGNsYXNzPSJLR1ozSUMwbVozUTdJSFp3YmlsYk1GMD0iPjxwYXRoIGQ9Ik0gODA3LjE5NzM3NyAxMzcuMDU3Nzg1IEMgODYwLjcwMDAxMiAxNzAuMzk5OTk0IDg5MC41MDAwMDAgMTg3LjY4ODk5NSA5NTAuOTg0OTU4IDIyMC41Mzg5NDYiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0ibm9uZSIgY2xhc3M9ImNvbm5lY3Rpb24gc3Ryb2tlLUIxIiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiBtYXJrZXItZW5kPSJ1cmwoI21rLWQyLTc2MTgyMTk0My0zNDg4Mzc4MTM0KSIgbWFzaz0idXJsKCNkMi03NjE4MjE5NDMpIiAvPjwvZz48ZyBjbGFzcz0iS0daM0lDMG1aM1E3SUd4aUtWc3dYUT09Ij48cGF0aCBkPSJNIDgwNy40ODk3ODcgMTEyLjc5ODEzOCBDIDg2MC43MDAwMTIgMTA3LjQwMDAwMiA4OTEuOTAwMDI0IDEwNi4wMDAwMDAgOTU3LjUwMDAwMCAxMDYuMDAwMDAwIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9Im5vbmUiIGNsYXNzPSJjb25uZWN0aW9uIHN0cm9rZS1CMSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgbWFya2VyLWVuZD0idXJsKCNtay1kMi03NjE4MjE5NDMtMzQ4ODM3ODEzNCkiIG1hc2s9InVybCgjZDItNzYxODIxOTQzKSIgLz48L2c+PGcgY2xhc3M9IktHeGlJQzBtWjNRN0lIQnZjblJoYkNsYk1GMD0iPjxwYXRoIGQ9Ik0gMTAxOS43OTkxNTAgMTQwLjUyMDU5NSBDIDEwODguOTAwMDI0IDIyMS4zOTk5OTQgMTEyNi4zMDAwNDkgMzE1LjAwMDAwMCAxMjA0LjQ1MjkwMiA2MDMuMTM5NDg0IiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9Im5vbmUiIGNsYXNzPSJjb25uZWN0aW9uIHN0cm9rZS1CMSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgbWFya2VyLWVuZD0idXJsKCNtay1kMi03NjE4MjE5NDMtMzQ4ODM3ODEzNCkiIG1hc2s9InVybCgjZDItNzYxODIxOTQzKSIgLz48L2c+PGcgY2xhc3M9IktHeGlJQzBtWjNRN0lHTnliU2xiTUYwPSI+PHBhdGggZD0iTSAxMDIxLjkxNDIxNCAxMzcuNDE0MjEzIEMgMTA4OS4zMDAwNDkgMjA0LjgwMDAwMyAxMTI1LjY5OTk1MSAyNzMuNzk5OTg4IDEyMDEuMTA5Nzk5IDQ3Ny4yNDkzNTUiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0ibm9uZSIgY2xhc3M9ImNvbm5lY3Rpb24gc3Ryb2tlLUIxIiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiBtYXJrZXItZW5kPSJ1cmwoI21rLWQyLTc2MTgyMTk0My0zNDg4Mzc4MTM0KSIgbWFzaz0idXJsKCNkMi03NjE4MjE5NDMpIiAvPjwvZz48ZyBjbGFzcz0iS0d4aUlDMG1aM1E3SUdWeWNDbGJNRjA9Ij48cGF0aCBkPSJNIDEwMjIuMDMzNTE2IDEzMS4yODM4NzMgQyAxMDg5LjMwMDA0OSAxODcuNjAwMDA2IDExMjQuMzAwMDQ5IDIzMi42MDAwMDYgMTE5My40ODg3MzQgMzUxLjU0MjQyOCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSJub25lIiBjbGFzcz0iY29ubmVjdGlvbiBzdHJva2UtQjEiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIG1hcmtlci1lbmQ9InVybCgjbWstZDItNzYxODIxOTQzLTM0ODgzNzgxMzQpIiBtYXNrPSJ1cmwoI2QyLTc2MTgyMTk0MykiIC8+PC9nPjxnIGNsYXNzPSJLR3hpSUMwbVozUTdJSGRwYTJrcFd6QmQiPjxwYXRoIGQ9Ik0gMTAyMi4zMTU0NTUgMTIwLjA4OTEyMCBDIDEwODkuMzAwMDQ5IDE1MS4wNTAwMDMgMTEyMC42OTk5NTEgMTU5LjAwMDAwMCAxMTczLjUwMDAwMCAxNTkuMDAwMDAwIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9Im5vbmUiIGNsYXNzPSJjb25uZWN0aW9uIHN0cm9rZS1CMSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgbWFya2VyLWVuZD0idXJsKCNtay1kMi03NjE4MjE5NDMtMzQ4ODM3ODEzNCkiIG1hc2s9InVybCgjZDItNzYxODIxOTQzKSIgLz48L2c+PGcgY2xhc3M9IktHeGlJQzBtWjNRN0lHaGxiSEJrWlhOcktWc3dYUT09Ij48cGF0aCBkPSJNIDEwMjIuMTg3MTEwIDg2LjY3NTkxNSBDIDEwODkuMzAwMDQ5IDQzLjk0OTAwMSAxMTE3LjMwMDA0OSAzMy4wMDAwMDAgMTE1Ni41MDAwMDAgMzMuMDAwMDAwIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9Im5vbmUiIGNsYXNzPSJjb25uZWN0aW9uIHN0cm9rZS1CMSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgbWFya2VyLWVuZD0idXJsKCNtay1kMi03NjE4MjE5NDMtMzQ4ODM3ODEzNCkiIG1hc2s9InVybCgjZDItNzYxODIxOTQzKSIgLz48L2c+PGcgY2xhc3M9IktIQnZjblJoYkNBdEptZDBPeUJrWWpFcFd6QmQiPjxwYXRoIGQ9Ik0gMTI2MS41MDAwMDAgNjQwLjAwMDAwMCBDIDEzMDkuOTAwMDI0IDY0MC4wMDAwMDAgMTMzNS45MDAwMjQgNjI5LjIwMDk4OSAxMzg2LjM4NTM4OSA1ODguNTE4NzkzIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9Im5vbmUiIGNsYXNzPSJjb25uZWN0aW9uIHN0cm9rZS1CMSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgbWFya2VyLWVuZD0idXJsKCNtay1kMi03NjE4MjE5NDMtMzQ4ODM3ODEzNCkiIG1hc2s9InVybCgjZDItNzYxODIxOTQzKSIgLz48L2c+PGcgY2xhc3M9IktHTnliU0F0Sm1kME95QmtZakVwV3pCZCI+PHBhdGggZD0iTSAxMjUzLjUwMDAwMCA1MTQuMDAwMDAwIEMgMTMwOC4zMDAwNDkgNTE0LjAwMDAwMCAxMzM1LjkwMDAyNCA1MTkuNTkzOTk0IDEzODUuODA4NzM2IDU0MC40MjkwMDciIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0ibm9uZSIgY2xhc3M9ImNvbm5lY3Rpb24gc3Ryb2tlLUIxIiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiBtYXJrZXItZW5kPSJ1cmwoI21rLWQyLTc2MTgyMTk0My0zNDg4Mzc4MTM0KSIgbWFzaz0idXJsKCNkMi03NjE4MjE5NDMpIiAvPjwvZz48ZyBjbGFzcz0iS0dWeWNDQXRKbWQwT3lCa1lqSXBXekJkIj48cGF0aCBkPSJNIDEyNTAuNTAwMDAwIDM4OC4wMDAwMDAgQyAxMzA3LjY5OTk1MSAzODguMDAwMDAwIDEzMzUuOTAwMDI0IDM3Ny4yMDA5ODkgMTM4Ni4zODUzODggMzM2LjUxODgyMiIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSJub25lIiBjbGFzcz0iY29ubmVjdGlvbiBzdHJva2UtQjEiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIG1hcmtlci1lbmQ9InVybCgjbWstZDItNzYxODIxOTQzLTM0ODgzNzgxMzQpIiBtYXNrPSJ1cmwoI2QyLTc2MTgyMTk0MykiIC8+PC9nPjxnIGNsYXNzPSJLSGRwYTJrZ0xTWm5kRHNnYzNSdmNtRm5aU2xiTUYwPSI+PHBhdGggZD0iTSAxMjUzLjUwMDAwMCAxNTkuMDAwMDAwIEMgMTMwOC4zMDAwNDkgMTU5LjAwMDAwMCAxMzMzLjMwMDA0OSAxNTIuMzk5OTk0IDEzNzMuMDg2ODczIDEyOC4wODU4MDEiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0ibm9uZSIgY2xhc3M9ImNvbm5lY3Rpb24gc3Ryb2tlLUIxIiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiBtYXJrZXItZW5kPSJ1cmwoI21rLWQyLTc2MTgyMTk0My0zNDg4Mzc4MTM0KSIgbWFzaz0idXJsKCNkMi03NjE4MjE5NDMpIiAvPjwvZz48ZyBjbGFzcz0iS0dobGJIQmtaWE5ySUMwbVozUTdJR1JpTWlsYk1GMD0iPjxwYXRoIGQ9Ik0gMTI3MC41MDAwMDAgMzMuMDAwMDAwIEMgMTMxMS42OTk5NTEgMzMuMDAwMDAwIDEzNDAuNjk5OTUxIDgwLjgwMDAwMyAxNDEyLjA3NjY2OCAyNjguMjYxODAyIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9Im5vbmUiIGNsYXNzPSJjb25uZWN0aW9uIHN0cm9rZS1CMSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgbWFya2VyLWVuZD0idXJsKCNtay1kMi03NjE4MjE5NDMtMzQ4ODM3ODEzNCkiIG1hc2s9InVybCgjZDItNzYxODIxOTQzKSIgLz48L2c+PGcgY2xhc3M9IktHMXZibWwwYjNKcGJtY2dMU1puZERzZ2NHOXlkR0ZzS1Zzd1hRPT0iPjxwYXRoIGQ9Ik0gMTAyMS44NTc4NzIgNDI1LjQ2ODM5NSBDIDEwODkuMzAwMDQ5IDQ5OC4zOTk5OTQgMTEyMi4zMDAwNDkgNTM1LjAwMDAwMCAxMTgyLjg2MTI1NyA2MDMuOTkzODM0IiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9Im5vbmUiIGNsYXNzPSJjb25uZWN0aW9uIHN0cm9rZS1CMSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgbWFya2VyLWVuZD0idXJsKCNtay1kMi03NjE4MjE5NDMtMzQ4ODM3ODEzNCkiIG1hc2s9InVybCgjZDItNzYxODIxOTQzKSIgLz48L2c+PGcgY2xhc3M9IktHMXZibWwwYjNKcGJtY2dMU1puZERzZ1kzSnRLVnN3WFE9PSI+PHBhdGggZD0iTSAxMDU0LjM5NzM2NiA0MTMuNjMyNDU2IEMgMTA5NS42OTk5NTEgNDI3LjM5OTk5NCAxMTIwLjkwMDAyNCA0NDIuMDY2MDEwIDExNzUuMzI4NDIyIDQ4My44OTU1NzIiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0ibm9uZSIgY2xhc3M9ImNvbm5lY3Rpb24gc3Ryb2tlLUIxIiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiBtYXJrZXItZW5kPSJ1cmwoI21rLWQyLTc2MTgyMTk0My0zNDg4Mzc4MTM0KSIgbWFzaz0idXJsKCNkMi03NjE4MjE5NDMpIiAvPjwvZz48ZyBjbGFzcz0iS0cxdmJtbDBiM0pwYm1jZ0xTWm5kRHNnWlhKd0tWc3dYUT09Ij48cGF0aCBkPSJNIDEwMjEuODU3ODcyIDM1Ni41MzE2MDUgQyAxMDg5LjMwMDA0OSAyODMuNjAwMDA2IDExMjIuMzAwMDQ5IDI4My4wMDAwMDAgMTE4Mi44NjEyNTcgMzUxLjk5MzgzNCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSJub25lIiBjbGFzcz0iY29ubmVjdGlvbiBzdHJva2UtQjEiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIG1hcmtlci1lbmQ9InVybCgjbWstZDItNzYxODIxOTQzLTM0ODgzNzgxMzQpIiBtYXNrPSJ1cmwoI2QyLTc2MTgyMTk0MykiIC8+PC9nPjxnIGNsYXNzPSJLR3h2WjJkcGJtY2dMU1puZERzZ2NHOXlkR0ZzS1Zzd1hRPT0iPjxwYXRoIGQ9Ik0gMTA0MC4xNDUyNTYgNjI0LjEzNzE2MSBDIDEwOTIuOTAwMDI0IDY2MC41OTk5NzYgMTExOS4zMDAwNDkgNjY2LjQ0Mzk3MCAxMTY2LjY0NTkyNCA2NTMuMjkyNTQ1IiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9Im5vbmUiIGNsYXNzPSJjb25uZWN0aW9uIHN0cm9rZS1CMSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgbWFya2VyLWVuZD0idXJsKCNtay1kMi03NjE4MjE5NDMtMzQ4ODM3ODEzNCkiIG1hc2s9InVybCgjZDItNzYxODIxOTQzKSIgLz48L2c+PGcgY2xhc3M9IktHeHZaMmRwYm1jZ0xTWm5kRHNnWTNKdEtWc3dYUT09Ij48cGF0aCBkPSJNIDEwNDIuNDk2MjU3IDU5My4wNzgzMDIgQyAxMDkzLjMwMDA0OSA1OTYuMTkwOTc5IDExMjAuOTAwMDI0IDU4NS45MzI5ODMgMTE3NS4zMjg0MjEgNTQ0LjEwMzQ1MCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSJub25lIiBjbGFzcz0iY29ubmVjdGlvbiBzdHJva2UtQjEiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIG1hcmtlci1lbmQ9InVybCgjbWstZDItNzYxODIxOTQzLTM0ODgzNzgxMzQpIiBtYXNrPSJ1cmwoI2QyLTc2MTgyMTk0MykiIC8+PC9nPjxnIGNsYXNzPSJLR3h2WjJkcGJtY2dMU1puZERzZ1pYSndLVnN3WFE9PSI+PHBhdGggZD0iTSAxMDQyLjMxNDMzNyA1NjYuNzcwNDY0IEMgMTA5My4zMDAwNDkgNTQzLjEyMjAwOSAxMTIzLjMwMDA0OSA1MTMuNzk5MDExIDExODguMTUzOTQ1IDQyNC4yMzk3NTciIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0ibm9uZSIgY2xhc3M9ImNvbm5lY3Rpb24gc3Ryb2tlLUIxIiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiBtYXJrZXItZW5kPSJ1cmwoI21rLWQyLTc2MTgyMTk0My0zNDg4Mzc4MTM0KSIgbWFzaz0idXJsKCNkMi03NjE4MjE5NDMpIiAvPjwvZz48ZyBjbGFzcz0iS0hOMGIzSmhaMlVnTFNabmREc2dZbUZqYTNWd0tWc3dYUT09Ij48cGF0aCBkPSJNIDE0NzYuNTAwMDAwIDk2LjAwMDAwMCBDIDE1MTcuNjk5OTUxIDk2LjAwMDAwMCAxNTM5LjMwMDA0OSA5Ni4wMDAwMDAgMTU3OC41MDAwMDAgOTYuMDAwMDAwIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9Im5vbmUiIGNsYXNzPSJjb25uZWN0aW9uIHN0cm9rZS1CMSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgbWFya2VyLWVuZD0idXJsKCNtay1kMi03NjE4MjE5NDMtMzQ4ODM3ODEzNCkiIG1hc2s9InVybCgjZDItNzYxODIxOTQzKSIgLz48L2c+PGcgY2xhc3M9IktHaHhJQzBtWjNRN0lHUmpLVnN3WFE9PSI+PHBhdGggZD0iTSAxOTQuNTAwMDAwIDczNy4wMDAwMDAgQyAyOTQuNTAwMDAwIDczNy4wMDAwMDAgNDMwLjcwMDAxMiA3MzcuMDAwMDAwIDUyMS41MDAwMDAgNzM3LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSJub25lIiBjbGFzcz0iY29ubmVjdGlvbiBzdHJva2UtQjEiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIG1hcmtlci1lbmQ9InVybCgjbWstZDItNzYxODIxOTQzLTM0ODgzNzgxMzQpIiBtYXNrPSJ1cmwoI2QyLTc2MTgyMTk0MykiIC8+PC9nPjxnIGNsYXNzPSJLR0p5WVc1amFDQXRKbWQwT3lCMmNHNHBXekJkIj48cGF0aCBkPSJNIDgyMi41MDAwMDAgMjUyLjAwMDAwMCBDIDg2My43MDAwMTIgMjUyLjAwMDAwMCA4OTAuNTAwMDAwIDI1MC42MTk5OTUgOTUwLjUxNDc4MCAyNDUuNDQ2NTM1IiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9Im5vbmUiIGNsYXNzPSJjb25uZWN0aW9uIHN0cm9rZS1CMSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgbWFya2VyLWVuZD0idXJsKCNtay1kMi03NjE4MjE5NDMtMzQ4ODM3ODEzNCkiIG1hc2s9InVybCgjZDItNzYxODIxOTQzKSIgLz48L2c+PG1hc2sgaWQ9ImQyLTc2MTgyMTk0MyIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iLTEwMyIgeT0iLTEwMSIgd2lkdGg9IjE4ODIiIGhlaWdodD0iMzIxNiI+CjxyZWN0IHg9Ii0xMDMiIHk9Ii0xMDEiIHdpZHRoPSIxODgyIiBoZWlnaHQ9IjMyMTYiIGZpbGw9IndoaXRlIj48L3JlY3Q+CjxyZWN0IHg9IjMwOS4wMDAwMDAiIHk9IjEwNi4wMDAwMDAiIHdpZHRoPSI3MSIgaGVpZ2h0PSIyMSIgZmlsbD0iYmxhY2siPjwvcmVjdD4KPC9tYXNrPjwvc3ZnPjwvc3ZnPgo=&amp;quot; /&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Source D2 ==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-d2&amp;quot;&amp;gt;&lt;br /&gt;
direction: right&lt;br /&gt;
&lt;br /&gt;
users: Utilisateurs {&lt;br /&gt;
  shape: person&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
internet: Internet {&lt;br /&gt;
  shape: cloud&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
company: Entreprise Fictive Alphacorp {&lt;br /&gt;
  shape: rectangle&lt;br /&gt;
&lt;br /&gt;
  hq: Siège social&lt;br /&gt;
  dc: Datacenter principal&lt;br /&gt;
  branch: Agence régionale&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
network: Réseau et sécurité {&lt;br /&gt;
  fw: Pare-feu&lt;br /&gt;
  vpn: VPN&lt;br /&gt;
  lb: Reverse Proxy&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
apps: Applications métiers {&lt;br /&gt;
  portal: Portail interne&lt;br /&gt;
  crm: CRM&lt;br /&gt;
  erp: ERP&lt;br /&gt;
  wiki: Wiki documentaire&lt;br /&gt;
  helpdesk: Helpdesk&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
data: Données {&lt;br /&gt;
  db1: Base PostgreSQL&lt;br /&gt;
  db2: Base MariaDB&lt;br /&gt;
  storage: Stockage documentaire&lt;br /&gt;
  backup: Sauvegarde hors site&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ops: Exploitation {&lt;br /&gt;
  monitoring: Supervision&lt;br /&gt;
  logging: Centralisation logs&lt;br /&gt;
  cicd: CI/CD&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
users -&amp;gt; internet: accès web&lt;br /&gt;
internet -&amp;gt; fw&lt;br /&gt;
fw -&amp;gt; vpn&lt;br /&gt;
fw -&amp;gt; lb&lt;br /&gt;
lb -&amp;gt; portal&lt;br /&gt;
lb -&amp;gt; crm&lt;br /&gt;
lb -&amp;gt; erp&lt;br /&gt;
lb -&amp;gt; wiki&lt;br /&gt;
lb -&amp;gt; helpdesk&lt;br /&gt;
portal -&amp;gt; db1&lt;br /&gt;
crm -&amp;gt; db1&lt;br /&gt;
erp -&amp;gt; db2&lt;br /&gt;
wiki -&amp;gt; storage&lt;br /&gt;
helpdesk -&amp;gt; db2&lt;br /&gt;
monitoring -&amp;gt; portal&lt;br /&gt;
monitoring -&amp;gt; crm&lt;br /&gt;
monitoring -&amp;gt; erp&lt;br /&gt;
logging -&amp;gt; portal&lt;br /&gt;
logging -&amp;gt; crm&lt;br /&gt;
logging -&amp;gt; erp&lt;br /&gt;
storage -&amp;gt; backup&lt;br /&gt;
hq -&amp;gt; dc&lt;br /&gt;
branch -&amp;gt; vpn&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remarque ==&lt;br /&gt;
Le rendu ci-dessus a été généré à partir du code D2 puis embarqué comme image SVG pour garantir un affichage visible dans MediaWiki.&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Exemple_D2_-_syst%C3%A8me_d%27information_fictif&amp;diff=103</id>
		<title>Exemple D2 - système d&#039;information fictif</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Exemple_D2_-_syst%C3%A8me_d%27information_fictif&amp;diff=103"/>
		<updated>2026-03-19T21:19:39Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Remplacement de la démo D2 par un rendu SVG visible&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Exemple D2 - système d&#039;information fictif =&lt;br /&gt;
&lt;br /&gt;
Cette page montre une démonstration de &#039;&#039;&#039;D2&#039;&#039;&#039; sur un &#039;&#039;&#039;système d&#039;information fictif&#039;&#039;&#039;, et non sur ton serveur.&lt;br /&gt;
&lt;br /&gt;
== Rendu graphique ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;oc-diagram oc-d2-rendered&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; xmlns:xlink=&amp;quot;http://www.w3.org/1999/xlink&amp;quot; data-d2-version=&amp;quot;v0.7.1&amp;quot; preserveAspectRatio=&amp;quot;xMinYMin meet&amp;quot; viewBox=&amp;quot;0 0 1882 3216&amp;quot;&amp;gt;&amp;lt;svg class=&amp;quot;d2-761821943 d2-svg&amp;quot; width=&amp;quot;1882&amp;quot; height=&amp;quot;3216&amp;quot; viewBox=&amp;quot;-103 -101 1882 3216&amp;quot;&amp;gt;&amp;lt;rect x=&amp;quot;-103.000000&amp;quot; y=&amp;quot;-101.000000&amp;quot; width=&amp;quot;1882.000000&amp;quot; height=&amp;quot;3216.000000&amp;quot; rx=&amp;quot;0.000000&amp;quot; fill=&amp;quot;#FFFFFF&amp;quot; class=&amp;quot; fill-N7&amp;quot; stroke-width=&amp;quot;0&amp;quot; /&amp;gt;&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&amp;lt;![CDATA[&lt;br /&gt;
.d2-761821943 .text {&lt;br /&gt;
	font-family: &amp;quot;d2-761821943-font-regular&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: d2-761821943-font-regular;&lt;br /&gt;
	src: url(&amp;quot;data:application/font-woff;base64,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&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
.d2-761821943 .text-bold {&lt;br /&gt;
	font-family: &amp;quot;d2-761821943-font-bold&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: d2-761821943-font-bold;&lt;br /&gt;
	src: url(&amp;quot;data:application/font-woff;base64,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&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
.d2-761821943 .text-italic {&lt;br /&gt;
	font-family: &amp;quot;d2-761821943-font-italic&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: d2-761821943-font-italic;&lt;br /&gt;
	src: url(&amp;quot;data:application/font-woff;base64,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&amp;quot;);&lt;br /&gt;
}]]&amp;gt;&amp;lt;/style&amp;gt;&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&amp;lt;![CDATA[.shape {&lt;br /&gt;
  shape-rendering: geometricPrecision;&lt;br /&gt;
  stroke-linejoin: round;&lt;br /&gt;
}&lt;br /&gt;
.connection {&lt;br /&gt;
  stroke-linecap: round;&lt;br /&gt;
  stroke-linejoin: round;&lt;br /&gt;
}&lt;br /&gt;
.blend {&lt;br /&gt;
  mix-blend-mode: multiply;&lt;br /&gt;
  opacity: 0.5;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
		.d2-761821943 .fill-N1{fill:#0A0F25;}&lt;br /&gt;
		.d2-761821943 .fill-N2{fill:#676C7E;}&lt;br /&gt;
		.d2-761821943 .fill-N3{fill:#9499AB;}&lt;br /&gt;
		.d2-761821943 .fill-N4{fill:#CFD2DD;}&lt;br /&gt;
		.d2-761821943 .fill-N5{fill:#DEE1EB;}&lt;br /&gt;
		.d2-761821943 .fill-N6{fill:#EEF1F8;}&lt;br /&gt;
		.d2-761821943 .fill-N7{fill:#FFFFFF;}&lt;br /&gt;
		.d2-761821943 .fill-B1{fill:#0D32B2;}&lt;br /&gt;
		.d2-761821943 .fill-B2{fill:#0D32B2;}&lt;br /&gt;
		.d2-761821943 .fill-B3{fill:#E3E9FD;}&lt;br /&gt;
		.d2-761821943 .fill-B4{fill:#E3E9FD;}&lt;br /&gt;
		.d2-761821943 .fill-B5{fill:#EDF0FD;}&lt;br /&gt;
		.d2-761821943 .fill-B6{fill:#F7F8FE;}&lt;br /&gt;
		.d2-761821943 .fill-AA2{fill:#4A6FF3;}&lt;br /&gt;
		.d2-761821943 .fill-AA4{fill:#EDF0FD;}&lt;br /&gt;
		.d2-761821943 .fill-AA5{fill:#F7F8FE;}&lt;br /&gt;
		.d2-761821943 .fill-AB4{fill:#EDF0FD;}&lt;br /&gt;
		.d2-761821943 .fill-AB5{fill:#F7F8FE;}&lt;br /&gt;
		.d2-761821943 .stroke-N1{stroke:#0A0F25;}&lt;br /&gt;
		.d2-761821943 .stroke-N2{stroke:#676C7E;}&lt;br /&gt;
		.d2-761821943 .stroke-N3{stroke:#9499AB;}&lt;br /&gt;
		.d2-761821943 .stroke-N4{stroke:#CFD2DD;}&lt;br /&gt;
		.d2-761821943 .stroke-N5{stroke:#DEE1EB;}&lt;br /&gt;
		.d2-761821943 .stroke-N6{stroke:#EEF1F8;}&lt;br /&gt;
		.d2-761821943 .stroke-N7{stroke:#FFFFFF;}&lt;br /&gt;
		.d2-761821943 .stroke-B1{stroke:#0D32B2;}&lt;br /&gt;
		.d2-761821943 .stroke-B2{stroke:#0D32B2;}&lt;br /&gt;
		.d2-761821943 .stroke-B3{stroke:#E3E9FD;}&lt;br /&gt;
		.d2-761821943 .stroke-B4{stroke:#E3E9FD;}&lt;br /&gt;
		.d2-761821943 .stroke-B5{stroke:#EDF0FD;}&lt;br /&gt;
		.d2-761821943 .stroke-B6{stroke:#F7F8FE;}&lt;br /&gt;
		.d2-761821943 .stroke-AA2{stroke:#4A6FF3;}&lt;br /&gt;
		.d2-761821943 .stroke-AA4{stroke:#EDF0FD;}&lt;br /&gt;
		.d2-761821943 .stroke-AA5{stroke:#F7F8FE;}&lt;br /&gt;
		.d2-761821943 .stroke-AB4{stroke:#EDF0FD;}&lt;br /&gt;
		.d2-761821943 .stroke-AB5{stroke:#F7F8FE;}&lt;br /&gt;
		.d2-761821943 .background-color-N1{background-color:#0A0F25;}&lt;br /&gt;
		.d2-761821943 .background-color-N2{background-color:#676C7E;}&lt;br /&gt;
		.d2-761821943 .background-color-N3{background-color:#9499AB;}&lt;br /&gt;
		.d2-761821943 .background-color-N4{background-color:#CFD2DD;}&lt;br /&gt;
		.d2-761821943 .background-color-N5{background-color:#DEE1EB;}&lt;br /&gt;
		.d2-761821943 .background-color-N6{background-color:#EEF1F8;}&lt;br /&gt;
		.d2-761821943 .background-color-N7{background-color:#FFFFFF;}&lt;br /&gt;
		.d2-761821943 .background-color-B1{background-color:#0D32B2;}&lt;br /&gt;
		.d2-761821943 .background-color-B2{background-color:#0D32B2;}&lt;br /&gt;
		.d2-761821943 .background-color-B3{background-color:#E3E9FD;}&lt;br /&gt;
		.d2-761821943 .background-color-B4{background-color:#E3E9FD;}&lt;br /&gt;
		.d2-761821943 .background-color-B5{background-color:#EDF0FD;}&lt;br /&gt;
		.d2-761821943 .background-color-B6{background-color:#F7F8FE;}&lt;br /&gt;
		.d2-761821943 .background-color-AA2{background-color:#4A6FF3;}&lt;br /&gt;
		.d2-761821943 .background-color-AA4{background-color:#EDF0FD;}&lt;br /&gt;
		.d2-761821943 .background-color-AA5{background-color:#F7F8FE;}&lt;br /&gt;
		.d2-761821943 .background-color-AB4{background-color:#EDF0FD;}&lt;br /&gt;
		.d2-761821943 .background-color-AB5{background-color:#F7F8FE;}&lt;br /&gt;
		.d2-761821943 .color-N1{color:#0A0F25;}&lt;br /&gt;
		.d2-761821943 .color-N2{color:#676C7E;}&lt;br /&gt;
		.d2-761821943 .color-N3{color:#9499AB;}&lt;br /&gt;
		.d2-761821943 .color-N4{color:#CFD2DD;}&lt;br /&gt;
		.d2-761821943 .color-N5{color:#DEE1EB;}&lt;br /&gt;
		.d2-761821943 .color-N6{color:#EEF1F8;}&lt;br /&gt;
		.d2-761821943 .color-N7{color:#FFFFFF;}&lt;br /&gt;
		.d2-761821943 .color-B1{color:#0D32B2;}&lt;br /&gt;
		.d2-761821943 .color-B2{color:#0D32B2;}&lt;br /&gt;
		.d2-761821943 .color-B3{color:#E3E9FD;}&lt;br /&gt;
		.d2-761821943 .color-B4{color:#E3E9FD;}&lt;br /&gt;
		.d2-761821943 .color-B5{color:#EDF0FD;}&lt;br /&gt;
		.d2-761821943 .color-B6{color:#F7F8FE;}&lt;br /&gt;
		.d2-761821943 .color-AA2{color:#4A6FF3;}&lt;br /&gt;
		.d2-761821943 .color-AA4{color:#EDF0FD;}&lt;br /&gt;
		.d2-761821943 .color-AA5{color:#F7F8FE;}&lt;br /&gt;
		.d2-761821943 .color-AB4{color:#EDF0FD;}&lt;br /&gt;
		.d2-761821943 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-761821943);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-761821943);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-761821943);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-761821943);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-761821943);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-761821943);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-761821943);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-761821943);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-761821943);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-761821943);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-761821943);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-761821943);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-761821943);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-761821943);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-761821943);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-761821943);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-761821943);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-761821943);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]&amp;gt;&amp;lt;/style&amp;gt;&amp;lt;g class=&amp;quot;dXNlcnM=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;path d=&amp;quot;M 209 149 H 112 V 148 C 112 137 123 127 139 122 C 130 118 125 111 125 104 C 125 93 141 83 160 83 C 180 83 196 93 196 104 C 196 111 191 117 181 121 C 198 126 208 136 208 147 V 148 H 209 Z&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#E3E9FD&amp;quot; class=&amp;quot; stroke-B1 fill-B3&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.500000&amp;quot; y=&amp;quot;170.000000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;Utilisateurs&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;aW50ZXJuZXQ=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;path d=&amp;quot;M 515 103 C 515 104 514 105 513 105 C 502 106 494 117 494 131 C 494 146 503 158 515 158 H 596 C 609 158 619 145 619 130 C 619 115 609 103 597 102 C 596 102 595 101 595 100 C 592 85 580 74 565 74 C 555 74 547 79 541 86 C 540 87 539 87 539 87 C 537 86 535 86 532 86 C 524 86 516 93 515 103 Z&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#FFFFFF&amp;quot; class=&amp;quot; stroke-B1 fill-N7&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;556.597000&amp;quot; y=&amp;quot;137.516000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;Internet&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;Y29tcGFueQ==&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;35.000000&amp;quot; y=&amp;quot;276.000000&amp;quot; width=&amp;quot;250.000000&amp;quot; height=&amp;quot;378.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#E3E9FD&amp;quot; class=&amp;quot; stroke-B1 fill-B4&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.000000&amp;quot; y=&amp;quot;263.000000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:28px&amp;quot;&amp;gt;Entreprise Fictive Alphacorp&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;bmV0d29yaw==&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;57.000000&amp;quot; y=&amp;quot;866.000000&amp;quot; width=&amp;quot;206.000000&amp;quot; height=&amp;quot;378.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#E3E9FD&amp;quot; class=&amp;quot; stroke-B1 fill-B4&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.000000&amp;quot; y=&amp;quot;853.000000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:28px&amp;quot;&amp;gt;Réseau et sécurité&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;YXBwcw==&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;41.000000&amp;quot; y=&amp;quot;1330.000000&amp;quot; width=&amp;quot;238.000000&amp;quot; height=&amp;quot;630.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#E3E9FD&amp;quot; class=&amp;quot; stroke-B1 fill-B4&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.000000&amp;quot; y=&amp;quot;1317.000000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:28px&amp;quot;&amp;gt;Applications métiers&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;ZGF0YQ==&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;24.000000&amp;quot; y=&amp;quot;2046.000000&amp;quot; width=&amp;quot;273.000000&amp;quot; height=&amp;quot;504.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#E3E9FD&amp;quot; class=&amp;quot; stroke-B1 fill-B4&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.500000&amp;quot; y=&amp;quot;2033.000000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:28px&amp;quot;&amp;gt;Données&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;b3Bz&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;41.000000&amp;quot; y=&amp;quot;2636.000000&amp;quot; width=&amp;quot;238.000000&amp;quot; height=&amp;quot;378.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#E3E9FD&amp;quot; class=&amp;quot; stroke-B1 fill-B4&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.000000&amp;quot; y=&amp;quot;2623.000000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:28px&amp;quot;&amp;gt;Exploitation&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;Znc=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;742.000000&amp;quot; y=&amp;quot;83.000000&amp;quot; width=&amp;quot;64.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;774.000000&amp;quot; y=&amp;quot;121.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;fw&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;dnBu&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;955.000000&amp;quot; y=&amp;quot;209.000000&amp;quot; width=&amp;quot;72.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;991.000000&amp;quot; y=&amp;quot;247.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;vpn&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;bGI=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;962.000000&amp;quot; y=&amp;quot;73.000000&amp;quot; width=&amp;quot;58.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;991.000000&amp;quot; y=&amp;quot;111.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;lb&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;cG9ydGFs&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;1171.000000&amp;quot; y=&amp;quot;607.000000&amp;quot; width=&amp;quot;88.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;1215.000000&amp;quot; y=&amp;quot;645.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;portal&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;Y3Jt&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;1179.000000&amp;quot; y=&amp;quot;481.000000&amp;quot; width=&amp;quot;72.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;1215.000000&amp;quot; y=&amp;quot;519.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;crm&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;ZXJw&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;1180.000000&amp;quot; y=&amp;quot;355.000000&amp;quot; width=&amp;quot;69.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;1214.500000&amp;quot; y=&amp;quot;393.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;erp&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;d2lraQ==&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;1177.000000&amp;quot; y=&amp;quot;126.000000&amp;quot; width=&amp;quot;75.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;1214.500000&amp;quot; y=&amp;quot;164.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;wiki&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;aGVscGRlc2s=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;1160.000000&amp;quot; y=&amp;quot;0.000000&amp;quot; width=&amp;quot;109.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;1214.500000&amp;quot; y=&amp;quot;38.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;helpdesk&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;ZGIx&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;1390.000000&amp;quot; y=&amp;quot;524.000000&amp;quot; width=&amp;quot;72.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;1426.000000&amp;quot; y=&amp;quot;562.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;db1&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;ZGIy&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;1390.000000&amp;quot; y=&amp;quot;272.000000&amp;quot; width=&amp;quot;72.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;1426.000000&amp;quot; y=&amp;quot;310.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;db2&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;c3RvcmFnZQ==&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;1376.000000&amp;quot; y=&amp;quot;63.000000&amp;quot; width=&amp;quot;99.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;1425.500000&amp;quot; y=&amp;quot;101.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;storage&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;bW9uaXRvcmluZw==&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;928.000000&amp;quot; y=&amp;quot;358.000000&amp;quot; width=&amp;quot;125.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;990.500000&amp;quot; y=&amp;quot;396.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;monitoring&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;bG9nZ2luZw==&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;942.000000&amp;quot; y=&amp;quot;557.000000&amp;quot; width=&amp;quot;98.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;991.000000&amp;quot; y=&amp;quot;595.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;logging&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;YmFja3Vw&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;1582.000000&amp;quot; y=&amp;quot;63.000000&amp;quot; width=&amp;quot;96.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;1630.000000&amp;quot; y=&amp;quot;101.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;backup&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;aHE=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;129.000000&amp;quot; y=&amp;quot;704.000000&amp;quot; width=&amp;quot;63.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.500000&amp;quot; y=&amp;quot;742.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;hq&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;ZGM=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;526.000000&amp;quot; y=&amp;quot;704.000000&amp;quot; width=&amp;quot;63.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;557.500000&amp;quot; y=&amp;quot;742.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;dc&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;YnJhbmNo&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;727.000000&amp;quot; y=&amp;quot;219.000000&amp;quot; width=&amp;quot;94.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#F7F8FE&amp;quot; class=&amp;quot; stroke-B1 fill-B6&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;774.000000&amp;quot; y=&amp;quot;257.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;branch&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;Y29tcGFueS5ocQ==&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;96.000000&amp;quot; y=&amp;quot;306.000000&amp;quot; width=&amp;quot;128.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.000000&amp;quot; y=&amp;quot;344.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;Siège social&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;Y29tcGFueS5kYw==&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;65.000000&amp;quot; y=&amp;quot;432.000000&amp;quot; width=&amp;quot;190.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.000000&amp;quot; y=&amp;quot;470.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;Datacenter principal&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;Y29tcGFueS5icmFuY2g=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;77.000000&amp;quot; y=&amp;quot;558.000000&amp;quot; width=&amp;quot;167.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.500000&amp;quot; y=&amp;quot;596.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;Agence régionale&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;bmV0d29yay5mdw==&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;108.000000&amp;quot; y=&amp;quot;896.000000&amp;quot; width=&amp;quot;105.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.500000&amp;quot; y=&amp;quot;934.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;Pare-feu&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;bmV0d29yay52cG4=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;123.000000&amp;quot; y=&amp;quot;1022.000000&amp;quot; width=&amp;quot;75.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.500000&amp;quot; y=&amp;quot;1060.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;VPN&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;bmV0d29yay5sYg==&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;87.000000&amp;quot; y=&amp;quot;1148.000000&amp;quot; width=&amp;quot;146.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.000000&amp;quot; y=&amp;quot;1186.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;Reverse Proxy&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;YXBwcy5wb3J0YWw=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;86.000000&amp;quot; y=&amp;quot;1360.000000&amp;quot; width=&amp;quot;148.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.000000&amp;quot; y=&amp;quot;1398.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;Portail interne&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;YXBwcy5jcm0=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;122.000000&amp;quot; y=&amp;quot;1486.000000&amp;quot; width=&amp;quot;76.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.000000&amp;quot; y=&amp;quot;1524.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;CRM&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;YXBwcy5lcnA=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;124.000000&amp;quot; y=&amp;quot;1612.000000&amp;quot; width=&amp;quot;72.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.000000&amp;quot; y=&amp;quot;1650.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;ERP&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;YXBwcy53aWtp&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;71.000000&amp;quot; y=&amp;quot;1738.000000&amp;quot; width=&amp;quot;178.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.000000&amp;quot; y=&amp;quot;1776.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;Wiki documentaire&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;YXBwcy5oZWxwZGVzaw==&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;105.000000&amp;quot; y=&amp;quot;1864.000000&amp;quot; width=&amp;quot;111.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.500000&amp;quot; y=&amp;quot;1902.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;Helpdesk&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;ZGF0YS5kYjE=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;78.000000&amp;quot; y=&amp;quot;2076.000000&amp;quot; width=&amp;quot;164.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.000000&amp;quot; y=&amp;quot;2114.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;Base PostgreSQL&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;ZGF0YS5kYjI=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;90.000000&amp;quot; y=&amp;quot;2202.000000&amp;quot; width=&amp;quot;141.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.500000&amp;quot; y=&amp;quot;2240.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;Base MariaDB&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;ZGF0YS5zdG9yYWdl&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;54.000000&amp;quot; y=&amp;quot;2328.000000&amp;quot; width=&amp;quot;213.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.500000&amp;quot; y=&amp;quot;2366.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;Stockage documentaire&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;ZGF0YS5iYWNrdXA=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;64.000000&amp;quot; y=&amp;quot;2454.000000&amp;quot; width=&amp;quot;193.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.500000&amp;quot; y=&amp;quot;2492.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;Sauvegarde hors site&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;b3BzLm1vbml0b3Jpbmc=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;96.000000&amp;quot; y=&amp;quot;2666.000000&amp;quot; width=&amp;quot;129.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.500000&amp;quot; y=&amp;quot;2704.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;Supervision&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;b3BzLmxvZ2dpbmc=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;71.000000&amp;quot; y=&amp;quot;2792.000000&amp;quot; width=&amp;quot;178.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.000000&amp;quot; y=&amp;quot;2830.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;Centralisation logs&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;b3BzLmNpY2Q=&amp;quot;&amp;gt;&amp;lt;g class=&amp;quot;shape&amp;quot; &amp;gt;&amp;lt;rect x=&amp;quot;118.000000&amp;quot; y=&amp;quot;2918.000000&amp;quot; width=&amp;quot;84.000000&amp;quot; height=&amp;quot;66.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;#EDF0FD&amp;quot; class=&amp;quot; stroke-B1 fill-B5&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;text x=&amp;quot;160.000000&amp;quot; y=&amp;quot;2956.500000&amp;quot; fill=&amp;quot;#0A0F25&amp;quot; class=&amp;quot;text-bold fill-N1&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;CI/CD&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KHVzZXJzIC0mZ3Q7IGludGVybmV0KVswXQ==&amp;quot;&amp;gt;&amp;lt;marker id=&amp;quot;mk-d2-761821943-3488378134&amp;quot; markerWidth=&amp;quot;10.000000&amp;quot; markerHeight=&amp;quot;12.000000&amp;quot; refX=&amp;quot;7.000000&amp;quot; refY=&amp;quot;6.000000&amp;quot; viewBox=&amp;quot;0.000000 0.000000 10.000000 12.000000&amp;quot; orient=&amp;quot;auto&amp;quot; markerUnits=&amp;quot;userSpaceOnUse&amp;quot;&amp;gt; &amp;lt;polygon points=&amp;quot;0.000000,0.000000 10.000000,6.000000 0.000000,12.000000&amp;quot; fill=&amp;quot;#0D32B2&amp;quot; class=&amp;quot;connection fill-B1&amp;quot; stroke-width=&amp;quot;2&amp;quot; /&amp;gt; &amp;lt;/marker&amp;gt;&amp;lt;path d=&amp;quot;M 192.000000 116.000000 C 294.000000 116.000000 425.200012 116.000000 494.000000 116.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;text x=&amp;quot;344.500000&amp;quot; y=&amp;quot;122.000000&amp;quot; fill=&amp;quot;#676C7E&amp;quot; class=&amp;quot;text-italic fill-N2&amp;quot; style=&amp;quot;text-anchor:middle;font-size:16px&amp;quot;&amp;gt;accès web&amp;lt;/text&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KGludGVybmV0IC0mZ3Q7IGZ3KVswXQ==&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 618.000000 116.000000 C 662.000000 116.000000 687.299988 116.000000 738.500000 116.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KGZ3IC0mZ3Q7IHZwbilbMF0=&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 807.197377 137.057785 C 860.700012 170.399994 890.500000 187.688995 950.984958 220.538946&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KGZ3IC0mZ3Q7IGxiKVswXQ==&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 807.489787 112.798138 C 860.700012 107.400002 891.900024 106.000000 957.500000 106.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KGxiIC0mZ3Q7IHBvcnRhbClbMF0=&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1019.799150 140.520595 C 1088.900024 221.399994 1126.300049 315.000000 1204.452902 603.139484&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KGxiIC0mZ3Q7IGNybSlbMF0=&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1021.914214 137.414213 C 1089.300049 204.800003 1125.699951 273.799988 1201.109799 477.249355&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KGxiIC0mZ3Q7IGVycClbMF0=&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1022.033516 131.283873 C 1089.300049 187.600006 1124.300049 232.600006 1193.488734 351.542428&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KGxiIC0mZ3Q7IHdpa2kpWzBd&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1022.315455 120.089120 C 1089.300049 151.050003 1120.699951 159.000000 1173.500000 159.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KGxiIC0mZ3Q7IGhlbHBkZXNrKVswXQ==&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1022.187110 86.675915 C 1089.300049 43.949001 1117.300049 33.000000 1156.500000 33.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KHBvcnRhbCAtJmd0OyBkYjEpWzBd&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1261.500000 640.000000 C 1309.900024 640.000000 1335.900024 629.200989 1386.385389 588.518793&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KGNybSAtJmd0OyBkYjEpWzBd&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1253.500000 514.000000 C 1308.300049 514.000000 1335.900024 519.593994 1385.808736 540.429007&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KGVycCAtJmd0OyBkYjIpWzBd&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1250.500000 388.000000 C 1307.699951 388.000000 1335.900024 377.200989 1386.385388 336.518822&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KHdpa2kgLSZndDsgc3RvcmFnZSlbMF0=&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1253.500000 159.000000 C 1308.300049 159.000000 1333.300049 152.399994 1373.086873 128.085801&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KGhlbHBkZXNrIC0mZ3Q7IGRiMilbMF0=&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1270.500000 33.000000 C 1311.699951 33.000000 1340.699951 80.800003 1412.076668 268.261802&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KG1vbml0b3JpbmcgLSZndDsgcG9ydGFsKVswXQ==&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1021.857872 425.468395 C 1089.300049 498.399994 1122.300049 535.000000 1182.861257 603.993834&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KG1vbml0b3JpbmcgLSZndDsgY3JtKVswXQ==&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1054.397366 413.632456 C 1095.699951 427.399994 1120.900024 442.066010 1175.328422 483.895572&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KG1vbml0b3JpbmcgLSZndDsgZXJwKVswXQ==&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1021.857872 356.531605 C 1089.300049 283.600006 1122.300049 283.000000 1182.861257 351.993834&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KGxvZ2dpbmcgLSZndDsgcG9ydGFsKVswXQ==&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1040.145256 624.137161 C 1092.900024 660.599976 1119.300049 666.443970 1166.645924 653.292545&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KGxvZ2dpbmcgLSZndDsgY3JtKVswXQ==&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1042.496257 593.078302 C 1093.300049 596.190979 1120.900024 585.932983 1175.328421 544.103450&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KGxvZ2dpbmcgLSZndDsgZXJwKVswXQ==&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1042.314337 566.770464 C 1093.300049 543.122009 1123.300049 513.799011 1188.153945 424.239757&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KHN0b3JhZ2UgLSZndDsgYmFja3VwKVswXQ==&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 1476.500000 96.000000 C 1517.699951 96.000000 1539.300049 96.000000 1578.500000 96.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KGhxIC0mZ3Q7IGRjKVswXQ==&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 194.500000 737.000000 C 294.500000 737.000000 430.700012 737.000000 521.500000 737.000000&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;g class=&amp;quot;KGJyYW5jaCAtJmd0OyB2cG4pWzBd&amp;quot;&amp;gt;&amp;lt;path d=&amp;quot;M 822.500000 252.000000 C 863.700012 252.000000 890.500000 250.619995 950.514780 245.446535&amp;quot; stroke=&amp;quot;#0D32B2&amp;quot; fill=&amp;quot;none&amp;quot; class=&amp;quot;connection stroke-B1&amp;quot; style=&amp;quot;stroke-width:2;&amp;quot; marker-end=&amp;quot;url(#mk-d2-761821943-3488378134)&amp;quot; mask=&amp;quot;url(#d2-761821943)&amp;quot; /&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;mask id=&amp;quot;d2-761821943&amp;quot; maskUnits=&amp;quot;userSpaceOnUse&amp;quot; x=&amp;quot;-103&amp;quot; y=&amp;quot;-101&amp;quot; width=&amp;quot;1882&amp;quot; height=&amp;quot;3216&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;rect x=&amp;quot;-103&amp;quot; y=&amp;quot;-101&amp;quot; width=&amp;quot;1882&amp;quot; height=&amp;quot;3216&amp;quot; fill=&amp;quot;white&amp;quot;&amp;gt;&amp;lt;/rect&amp;gt;&lt;br /&gt;
&amp;lt;rect x=&amp;quot;309.000000&amp;quot; y=&amp;quot;106.000000&amp;quot; width=&amp;quot;71&amp;quot; height=&amp;quot;21&amp;quot; fill=&amp;quot;black&amp;quot;&amp;gt;&amp;lt;/rect&amp;gt;&lt;br /&gt;
&amp;lt;/mask&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;/svg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Source D2 ==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-d2&amp;quot;&amp;gt;&lt;br /&gt;
direction: right&lt;br /&gt;
&lt;br /&gt;
users: Utilisateurs {&lt;br /&gt;
  shape: person&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
internet: Internet {&lt;br /&gt;
  shape: cloud&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
company: Entreprise Fictive Alphacorp {&lt;br /&gt;
  shape: rectangle&lt;br /&gt;
&lt;br /&gt;
  hq: Siège social&lt;br /&gt;
  dc: Datacenter principal&lt;br /&gt;
  branch: Agence régionale&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
network: Réseau et sécurité {&lt;br /&gt;
  fw: Pare-feu&lt;br /&gt;
  vpn: VPN&lt;br /&gt;
  lb: Reverse Proxy&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
apps: Applications métiers {&lt;br /&gt;
  portal: Portail interne&lt;br /&gt;
  crm: CRM&lt;br /&gt;
  erp: ERP&lt;br /&gt;
  wiki: Wiki documentaire&lt;br /&gt;
  helpdesk: Helpdesk&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
data: Données {&lt;br /&gt;
  db1: Base PostgreSQL&lt;br /&gt;
  db2: Base MariaDB&lt;br /&gt;
  storage: Stockage documentaire&lt;br /&gt;
  backup: Sauvegarde hors site&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ops: Exploitation {&lt;br /&gt;
  monitoring: Supervision&lt;br /&gt;
  logging: Centralisation logs&lt;br /&gt;
  cicd: CI/CD&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
users -&amp;gt; internet: accès web&lt;br /&gt;
internet -&amp;gt; fw&lt;br /&gt;
fw -&amp;gt; vpn&lt;br /&gt;
fw -&amp;gt; lb&lt;br /&gt;
lb -&amp;gt; portal&lt;br /&gt;
lb -&amp;gt; crm&lt;br /&gt;
lb -&amp;gt; erp&lt;br /&gt;
lb -&amp;gt; wiki&lt;br /&gt;
lb -&amp;gt; helpdesk&lt;br /&gt;
portal -&amp;gt; db1&lt;br /&gt;
crm -&amp;gt; db1&lt;br /&gt;
erp -&amp;gt; db2&lt;br /&gt;
wiki -&amp;gt; storage&lt;br /&gt;
helpdesk -&amp;gt; db2&lt;br /&gt;
monitoring -&amp;gt; portal&lt;br /&gt;
monitoring -&amp;gt; crm&lt;br /&gt;
monitoring -&amp;gt; erp&lt;br /&gt;
logging -&amp;gt; portal&lt;br /&gt;
logging -&amp;gt; crm&lt;br /&gt;
logging -&amp;gt; erp&lt;br /&gt;
storage -&amp;gt; backup&lt;br /&gt;
hq -&amp;gt; dc&lt;br /&gt;
branch -&amp;gt; vpn&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remarque ==&lt;br /&gt;
Le rendu ci-dessus a été généré à partir du code D2 pour fournir une démonstration visuelle fiable dans le wiki.&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Index_des_mod%C3%A8les_de_sch%C3%A9mas&amp;diff=102</id>
		<title>Index des modèles de schémas</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Index_des_mod%C3%A8les_de_sch%C3%A9mas&amp;diff=102"/>
		<updated>2026-03-19T21:10:37Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Mise à jour de l&amp;#039;index des modèles avec D2 fictif&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Index des modèles de schémas =&lt;br /&gt;
&lt;br /&gt;
Cette page liste les &#039;&#039;&#039;modèles / exemples de schémas&#039;&#039;&#039; disponibles dans le wiki.&lt;br /&gt;
&lt;br /&gt;
== Documentation générale ==&lt;br /&gt;
* [[Déploiement Mermaid PlantUML BPMN JS]] — documentation détaillée du déploiement et du fonctionnement des trois technologies&lt;br /&gt;
&lt;br /&gt;
== Mermaid ==&lt;br /&gt;
=== Workflow / flowchart ===&lt;br /&gt;
* [[Exemple Mermaid]] — flowchart simple de workflow&lt;br /&gt;
&lt;br /&gt;
=== Sequence ===&lt;br /&gt;
* [[Exemple Mermaid Sequence]] — diagramme de séquence&lt;br /&gt;
&lt;br /&gt;
=== State ===&lt;br /&gt;
* [[Exemple Mermaid State]] — diagramme d&#039;états&lt;br /&gt;
&lt;br /&gt;
=== Entité-relation ===&lt;br /&gt;
* [[Exemple Mermaid ER]] — diagramme ER&lt;br /&gt;
&lt;br /&gt;
=== Gantt ===&lt;br /&gt;
* [[Exemple Mermaid Gantt]] — planning / projet&lt;br /&gt;
&lt;br /&gt;
=== Git graph ===&lt;br /&gt;
* [[Exemple Mermaid Gitgraph]] — historique de branches Git&lt;br /&gt;
&lt;br /&gt;
=== Class diagram ===&lt;br /&gt;
* [[Exemple Mermaid Class Diagram]] — diagramme de classes&lt;br /&gt;
&lt;br /&gt;
=== Journey ===&lt;br /&gt;
* [[Exemple Mermaid Journey]] — parcours utilisateur / processus&lt;br /&gt;
&lt;br /&gt;
=== Pie ===&lt;br /&gt;
* [[Exemple Mermaid Pie]] — répartition en pourcentages&lt;br /&gt;
&lt;br /&gt;
=== Mindmap ===&lt;br /&gt;
* [[Exemple Mermaid Mindmap]] — carte mentale&lt;br /&gt;
&lt;br /&gt;
=== Timeline ===&lt;br /&gt;
* [[Exemple Mermaid Timeline]] — frise chronologique&lt;br /&gt;
&lt;br /&gt;
== PlantUML ==&lt;br /&gt;
* [[Exemple PlantUML]] — exemple simple de workflow / activité&lt;br /&gt;
&lt;br /&gt;
== BPMN ==&lt;br /&gt;
* [[Exemple BPMN JS]] — exemple BPMN rendu avec bpmn-js&lt;br /&gt;
&lt;br /&gt;
== D2 ==&lt;br /&gt;
* [[Exemple D2 - système d&#039;information fictif]] — démonstration D2 sur un SI fictif (physique + logiciel)&lt;br /&gt;
&lt;br /&gt;
== Conseils d&#039;usage ==&lt;br /&gt;
* utiliser &#039;&#039;&#039;Mermaid&#039;&#039;&#039; pour les schémas rapides et textuels&lt;br /&gt;
* utiliser &#039;&#039;&#039;PlantUML&#039;&#039;&#039; pour les diagrammes UML et techniques&lt;br /&gt;
* utiliser &#039;&#039;&#039;BPMN JS&#039;&#039;&#039; pour les workflows BPMN métiers&lt;br /&gt;
* utiliser &#039;&#039;&#039;D2&#039;&#039;&#039; pour l&#039;architecture physique et logicielle d&#039;un système d&#039;information&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Exemple_D2_-_syst%C3%A8me_d%27information_fictif&amp;diff=101</id>
		<title>Exemple D2 - système d&#039;information fictif</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Exemple_D2_-_syst%C3%A8me_d%27information_fictif&amp;diff=101"/>
		<updated>2026-03-19T21:10:37Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Création de la démo D2 sur SI fictif&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Exemple D2 - système d&#039;information fictif =&lt;br /&gt;
&lt;br /&gt;
Cette page montre une démonstration de &#039;&#039;&#039;D2&#039;&#039;&#039; sur un &#039;&#039;&#039;système d&#039;information fictif&#039;&#039;&#039;, et non sur ton serveur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-d2&amp;quot;&amp;gt;&lt;br /&gt;
direction: right&lt;br /&gt;
&lt;br /&gt;
users: Utilisateurs {&lt;br /&gt;
  shape: person&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
internet: Internet {&lt;br /&gt;
  shape: cloud&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
company: Entreprise Fictive Alphacorp {&lt;br /&gt;
  shape: rectangle&lt;br /&gt;
&lt;br /&gt;
  hq: Siège social&lt;br /&gt;
  dc: Datacenter principal&lt;br /&gt;
  branch: Agence régionale&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
network: Réseau &amp;amp; sécurité {&lt;br /&gt;
  fw: Pare-feu&lt;br /&gt;
  vpn: VPN&lt;br /&gt;
  lb: Reverse Proxy&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
apps: Applications métiers {&lt;br /&gt;
  portal: Portail interne&lt;br /&gt;
  crm: CRM&lt;br /&gt;
  erp: ERP&lt;br /&gt;
  wiki: Wiki documentaire&lt;br /&gt;
  helpdesk: Helpdesk&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
data: Données {&lt;br /&gt;
  db1: Base PostgreSQL&lt;br /&gt;
  db2: Base MariaDB&lt;br /&gt;
  storage: Stockage documentaire&lt;br /&gt;
  backup: Sauvegarde hors site&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ops: Exploitation {&lt;br /&gt;
  monitoring: Supervision&lt;br /&gt;
  logging: Centralisation logs&lt;br /&gt;
  cicd: CI/CD&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
users -&amp;gt; internet: accès web&lt;br /&gt;
internet -&amp;gt; fw&lt;br /&gt;
fw -&amp;gt; vpn&lt;br /&gt;
fw -&amp;gt; lb&lt;br /&gt;
lb -&amp;gt; portal&lt;br /&gt;
lb -&amp;gt; crm&lt;br /&gt;
lb -&amp;gt; erp&lt;br /&gt;
lb -&amp;gt; wiki&lt;br /&gt;
lb -&amp;gt; helpdesk&lt;br /&gt;
portal -&amp;gt; db1&lt;br /&gt;
crm -&amp;gt; db1&lt;br /&gt;
erp -&amp;gt; db2&lt;br /&gt;
wiki -&amp;gt; storage&lt;br /&gt;
helpdesk -&amp;gt; db2&lt;br /&gt;
monitoring -&amp;gt; portal&lt;br /&gt;
monitoring -&amp;gt; crm&lt;br /&gt;
monitoring -&amp;gt; erp&lt;br /&gt;
logging -&amp;gt; portal&lt;br /&gt;
logging -&amp;gt; crm&lt;br /&gt;
logging -&amp;gt; erp&lt;br /&gt;
storage -&amp;gt; backup&lt;br /&gt;
hq -&amp;gt; dc&lt;br /&gt;
branch -&amp;gt; vpn&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Le diagramme est écrit dans un bloc &amp;lt;code&amp;gt;&amp;amp;lt;pre class=&amp;quot;oc-d2&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt; puis transformé en SVG par le moteur de rendu D2.&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=MediaWiki:Common.js&amp;diff=100</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=MediaWiki:Common.js&amp;diff=100"/>
		<updated>2026-03-19T21:10:36Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Correction du rendu D2 via Kroki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(function () {&lt;br /&gt;
  function loadScript(src) {&lt;br /&gt;
    return new Promise(function (resolve, reject) {&lt;br /&gt;
      if ([].some.call(document.scripts, function (s) { return s.src === src; })) return resolve();&lt;br /&gt;
      var script = document.createElement(&#039;script&#039;);&lt;br /&gt;
      script.src = src;&lt;br /&gt;
      script.async = true;&lt;br /&gt;
      script.onload = resolve;&lt;br /&gt;
      script.onerror = reject;&lt;br /&gt;
      document.head.appendChild(script);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function escapeHtml(str) {&lt;br /&gt;
    return str.replace(/[&amp;amp;&amp;lt;&amp;gt;&amp;quot;&#039;]/g, function (m) {&lt;br /&gt;
      return ({ &#039;&amp;amp;&#039;: &#039;&amp;amp;amp;&#039;, &#039;&amp;lt;&#039;: &#039;&amp;amp;lt;&#039;, &#039;&amp;gt;&#039;: &#039;&amp;amp;gt;&#039;, &#039;&amp;quot;&#039;: &#039;&amp;amp;quot;&#039;, &amp;quot;&#039;&amp;quot;: &#039;&amp;amp;#39;&#039; })[m];&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderMermaid() {&lt;br /&gt;
    var blocks = document.querySelectorAll(&#039;pre.oc-mermaid&#039;);&lt;br /&gt;
    if (!blocks.length || !window.mermaid) return Promise.resolve();&lt;br /&gt;
    mermaid.initialize({ startOnLoad: false, securityLevel: &#039;loose&#039;, theme: &#039;default&#039; });&lt;br /&gt;
    return Promise.all(Array.from(blocks).map(function (block, idx) {&lt;br /&gt;
      if (block.dataset.ocRendered) return Promise.resolve();&lt;br /&gt;
      block.dataset.ocRendered = &#039;1&#039;;&lt;br /&gt;
      var wrapper = document.createElement(&#039;div&#039;);&lt;br /&gt;
      wrapper.className = &#039;oc-diagram oc-mermaid-rendered&#039;;&lt;br /&gt;
      var source = block.textContent.trim();&lt;br /&gt;
      block.style.display = &#039;none&#039;;&lt;br /&gt;
      block.parentNode.insertBefore(wrapper, block);&lt;br /&gt;
      return mermaid.render(&#039;oc-mermaid-&#039; + idx + &#039;-&#039; + Date.now(), source).then(function (result) {&lt;br /&gt;
        wrapper.innerHTML = result.svg;&lt;br /&gt;
      }).catch(function (err) {&lt;br /&gt;
        wrapper.innerHTML = &#039;&amp;lt;div class=&amp;quot;oc-diagram-error&amp;quot;&amp;gt;Mermaid error: &#039; + escapeHtml(String(err)) + &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      });&lt;br /&gt;
    }));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderPlantUML() {&lt;br /&gt;
    var blocks = document.querySelectorAll(&#039;pre.oc-plantuml&#039;);&lt;br /&gt;
    if (!blocks.length || !window.plantumlEncoder) return;&lt;br /&gt;
    blocks.forEach(function (block) {&lt;br /&gt;
      if (block.dataset.ocRendered) return;&lt;br /&gt;
      block.dataset.ocRendered = &#039;1&#039;;&lt;br /&gt;
      var src = block.textContent.trim();&lt;br /&gt;
      var encoded = plantumlEncoder.encode(src);&lt;br /&gt;
      var img = document.createElement(&#039;img&#039;);&lt;br /&gt;
      img.className = &#039;oc-diagram oc-plantuml-rendered&#039;;&lt;br /&gt;
      img.alt = &#039;PlantUML diagram&#039;;&lt;br /&gt;
      img.src = &#039;https://kroki.io/plantuml/svg/&#039; + encoded;&lt;br /&gt;
      var wrap = document.createElement(&#039;div&#039;);&lt;br /&gt;
      wrap.className = &#039;oc-diagram-wrap&#039;;&lt;br /&gt;
      wrap.appendChild(img);&lt;br /&gt;
      block.style.display = &#039;none&#039;;&lt;br /&gt;
      block.parentNode.insertBefore(wrap, block);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderBPMN() {&lt;br /&gt;
    var blocks = document.querySelectorAll(&#039;.oc-bpmn-container&#039;);&lt;br /&gt;
    if (!blocks.length || !window.BpmnJS) return;&lt;br /&gt;
    blocks.forEach(function (container) {&lt;br /&gt;
      if (container.dataset.ocRendered) return;&lt;br /&gt;
      var source = container.querySelector(&#039;pre.oc-bpmn-xml&#039;);&lt;br /&gt;
      var mount = container.querySelector(&#039;.oc-bpmn-viewer&#039;);&lt;br /&gt;
      if (!source || !mount) return;&lt;br /&gt;
      container.dataset.ocRendered = &#039;1&#039;;&lt;br /&gt;
      var xml = source.textContent.trim();&lt;br /&gt;
      source.style.display = &#039;none&#039;;&lt;br /&gt;
      var viewer = new BpmnJS({ container: mount, keyboard: { bindTo: document } });&lt;br /&gt;
      viewer.importXML(xml).then(function () {&lt;br /&gt;
        var canvas = viewer.get(&#039;canvas&#039;);&lt;br /&gt;
        canvas.zoom(&#039;fit-viewport&#039;, &#039;auto&#039;);&lt;br /&gt;
      }).catch(function (err) {&lt;br /&gt;
        mount.innerHTML = &#039;&amp;lt;div class=&amp;quot;oc-diagram-error&amp;quot;&amp;gt;BPMN error: &#039; + escapeHtml(String(err)) + &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderD2() {&lt;br /&gt;
    var blocks = document.querySelectorAll(&#039;pre.oc-d2&#039;);&lt;br /&gt;
    if (!blocks.length) return Promise.resolve();&lt;br /&gt;
    return Promise.all(Array.from(blocks).map(function (block) {&lt;br /&gt;
      if (block.dataset.ocRendered) return Promise.resolve();&lt;br /&gt;
      block.dataset.ocRendered = &#039;1&#039;;&lt;br /&gt;
      var source = block.textContent.trim();&lt;br /&gt;
      var wrapper = document.createElement(&#039;div&#039;);&lt;br /&gt;
      wrapper.className = &#039;oc-diagram oc-d2-rendered&#039;;&lt;br /&gt;
      block.style.display = &#039;none&#039;;&lt;br /&gt;
      block.parentNode.insertBefore(wrapper, block);&lt;br /&gt;
      return fetch(&#039;https://kroki.io/d2/svg&#039;, {&lt;br /&gt;
        method: &#039;POST&#039;,&lt;br /&gt;
        headers: {&lt;br /&gt;
          &#039;Content-Type&#039;: &#039;text/plain&#039;,&lt;br /&gt;
          &#039;Accept&#039;: &#039;image/svg+xml&#039;&lt;br /&gt;
        },&lt;br /&gt;
        body: source&lt;br /&gt;
      }).then(function (res) {&lt;br /&gt;
        if (!res.ok) throw new Error(&#039;HTTP &#039; + res.status);&lt;br /&gt;
        return res.text();&lt;br /&gt;
      }).then(function (svg) {&lt;br /&gt;
        wrapper.innerHTML = svg;&lt;br /&gt;
      }).catch(function (err) {&lt;br /&gt;
        wrapper.innerHTML = &#039;&amp;lt;div class=&amp;quot;oc-diagram-error&amp;quot;&amp;gt;D2 error: &#039; + escapeHtml(String(err)) + &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      });&lt;br /&gt;
    }));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function boot() {&lt;br /&gt;
    Promise.all([&lt;br /&gt;
      loadScript(&#039;https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js&#039;),&lt;br /&gt;
      loadScript(&#039;https://cdn.jsdelivr.net/npm/plantuml-encoder/dist/plantuml-encoder.min.js&#039;),&lt;br /&gt;
      loadScript(&#039;https://cdn.jsdelivr.net/npm/bpmn-js@18/dist/bpmn-navigated-viewer.production.min.js&#039;)&lt;br /&gt;
    ]).then(function () {&lt;br /&gt;
      return renderMermaid();&lt;br /&gt;
    }).then(function () {&lt;br /&gt;
      renderPlantUML();&lt;br /&gt;
      renderBPMN();&lt;br /&gt;
      return renderD2();&lt;br /&gt;
    }).catch(function (err) {&lt;br /&gt;
      console.error(&#039;Diagram integration failed&#039;, err);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (document.readyState === &#039;loading&#039;) document.addEventListener(&#039;DOMContentLoaded&#039;, boot);&lt;br /&gt;
  else boot();&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Index_des_mod%C3%A8les_de_sch%C3%A9mas&amp;diff=99</id>
		<title>Index des modèles de schémas</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Index_des_mod%C3%A8les_de_sch%C3%A9mas&amp;diff=99"/>
		<updated>2026-03-19T21:00:51Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Ajout du lien D2 dans l&amp;#039;index des modèles&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Index des modèles de schémas =&lt;br /&gt;
&lt;br /&gt;
Cette page liste les &#039;&#039;&#039;modèles / exemples de schémas&#039;&#039;&#039; disponibles dans le wiki.&lt;br /&gt;
&lt;br /&gt;
== Documentation générale ==&lt;br /&gt;
* [[Déploiement Mermaid PlantUML BPMN JS]] — documentation détaillée du déploiement et du fonctionnement des trois technologies&lt;br /&gt;
&lt;br /&gt;
== Mermaid ==&lt;br /&gt;
=== Workflow / flowchart ===&lt;br /&gt;
* [[Exemple Mermaid]] — flowchart simple de workflow&lt;br /&gt;
&lt;br /&gt;
=== Sequence ===&lt;br /&gt;
* [[Exemple Mermaid Sequence]] — diagramme de séquence&lt;br /&gt;
&lt;br /&gt;
=== State ===&lt;br /&gt;
* [[Exemple Mermaid State]] — diagramme d&#039;états&lt;br /&gt;
&lt;br /&gt;
=== Entité-relation ===&lt;br /&gt;
* [[Exemple Mermaid ER]] — diagramme ER&lt;br /&gt;
&lt;br /&gt;
=== Gantt ===&lt;br /&gt;
* [[Exemple Mermaid Gantt]] — planning / projet&lt;br /&gt;
&lt;br /&gt;
=== Git graph ===&lt;br /&gt;
* [[Exemple Mermaid Gitgraph]] — historique de branches Git&lt;br /&gt;
&lt;br /&gt;
=== Class diagram ===&lt;br /&gt;
* [[Exemple Mermaid Class Diagram]] — diagramme de classes&lt;br /&gt;
&lt;br /&gt;
=== Journey ===&lt;br /&gt;
* [[Exemple Mermaid Journey]] — parcours utilisateur / processus&lt;br /&gt;
&lt;br /&gt;
=== Pie ===&lt;br /&gt;
* [[Exemple Mermaid Pie]] — répartition en pourcentages&lt;br /&gt;
&lt;br /&gt;
=== Mindmap ===&lt;br /&gt;
* [[Exemple Mermaid Mindmap]] — carte mentale&lt;br /&gt;
&lt;br /&gt;
=== Timeline ===&lt;br /&gt;
* [[Exemple Mermaid Timeline]] — frise chronologique&lt;br /&gt;
&lt;br /&gt;
== PlantUML ==&lt;br /&gt;
* [[Exemple PlantUML]] — exemple simple de workflow / activité&lt;br /&gt;
&lt;br /&gt;
== BPMN ==&lt;br /&gt;
* [[Exemple BPMN JS]] — exemple BPMN rendu avec bpmn-js&lt;br /&gt;
&lt;br /&gt;
== D2 ==&lt;br /&gt;
* [[Exemple D2 - architecture SI]] — démonstration D2 pour représenter une architecture physique et logicielle&lt;br /&gt;
&lt;br /&gt;
== Conseils d&#039;usage ==&lt;br /&gt;
* utiliser &#039;&#039;&#039;Mermaid&#039;&#039;&#039; pour les schémas rapides et textuels&lt;br /&gt;
* utiliser &#039;&#039;&#039;PlantUML&#039;&#039;&#039; pour les diagrammes UML et techniques&lt;br /&gt;
* utiliser &#039;&#039;&#039;BPMN JS&#039;&#039;&#039; pour les workflows BPMN métiers&lt;br /&gt;
* utiliser &#039;&#039;&#039;D2&#039;&#039;&#039; pour l&#039;architecture physique et logicielle d&#039;un système d&#039;information&lt;br /&gt;
&lt;br /&gt;
== Évolutions possibles ==&lt;br /&gt;
Cette page peut servir de point d&#039;entrée pour ajouter ensuite :&lt;br /&gt;
* d&#039;autres diagrammes Mermaid&lt;br /&gt;
* des modèles réutilisables&lt;br /&gt;
* des conventions de nommage par type de schéma&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Exemple_D2_-_architecture_SI&amp;diff=98</id>
		<title>Exemple D2 - architecture SI</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Exemple_D2_-_architecture_SI&amp;diff=98"/>
		<updated>2026-03-19T21:00:51Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Création de la démonstration D2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Exemple D2 - architecture SI =&lt;br /&gt;
&lt;br /&gt;
Cette page montre une démonstration de &#039;&#039;&#039;D2&#039;&#039;&#039; intégrée dans MediaWiki pour représenter une architecture &#039;&#039;&#039;physique et logicielle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-d2&amp;quot;&amp;gt;&lt;br /&gt;
direction: right&lt;br /&gt;
&lt;br /&gt;
internet: Internet {&lt;br /&gt;
  shape: cloud&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
caddy: Caddy Reverse Proxy {&lt;br /&gt;
  shape: hexagon&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
homepage: Homepage {&lt;br /&gt;
  shape: rectangle&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wiki: MediaWiki {&lt;br /&gt;
  shape: rectangle&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server: Serveur tas {&lt;br /&gt;
  shape: sql_table&lt;br /&gt;
&lt;br /&gt;
  vm: Hôte Linux&lt;br /&gt;
  podman: Podman + services&lt;br /&gt;
&lt;br /&gt;
  openwebui: Open WebUI&lt;br /&gt;
  ollama: Ollama&lt;br /&gt;
  nextcloud: Nextcloud&lt;br /&gt;
  paperless: Paperless&lt;br /&gt;
  karakeep: Karakeep&lt;br /&gt;
  immich: Immich&lt;br /&gt;
  headscale: Headscale&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
internet -&amp;gt; caddy: accès public&lt;br /&gt;
caddy -&amp;gt; homepage: 25697&lt;br /&gt;
caddy -&amp;gt; wiki: 25698&lt;br /&gt;
caddy -&amp;gt; openwebui: 25680&lt;br /&gt;
caddy -&amp;gt; ollama: 25434&lt;br /&gt;
caddy -&amp;gt; nextcloud: 25696&lt;br /&gt;
caddy -&amp;gt; paperless: 25694&lt;br /&gt;
caddy -&amp;gt; karakeep: 25695&lt;br /&gt;
caddy -&amp;gt; immich: 25688&lt;br /&gt;
caddy -&amp;gt; headscale: 25689&lt;br /&gt;
homepage -&amp;gt; wiki: doc / liens&lt;br /&gt;
openwebui -&amp;gt; ollama: LLM local&lt;br /&gt;
podman -&amp;gt; openwebui&lt;br /&gt;
podman -&amp;gt; ollama&lt;br /&gt;
podman -&amp;gt; nextcloud&lt;br /&gt;
podman -&amp;gt; paperless&lt;br /&gt;
podman -&amp;gt; karakeep&lt;br /&gt;
podman -&amp;gt; immich&lt;br /&gt;
podman -&amp;gt; headscale&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Le diagramme est écrit en texte dans un bloc &amp;lt;code&amp;gt;&amp;amp;lt;pre class=&amp;quot;oc-d2&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt;, puis rendu automatiquement dans le navigateur.&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=MediaWiki:Common.css&amp;diff=97</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=MediaWiki:Common.css&amp;diff=97"/>
		<updated>2026-03-19T21:00:50Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Ajout des styles D2 dans Common.css&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;.oc-diagram, .oc-diagram-wrap {&lt;br /&gt;
  margin: 1rem 0;&lt;br /&gt;
  padding: 0.75rem;&lt;br /&gt;
  border: 1px solid #cbd5e1;&lt;br /&gt;
  border-radius: 0.75rem;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
  overflow: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.oc-plantuml-rendered {&lt;br /&gt;
  max-width: 100%;&lt;br /&gt;
  height: auto;&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.oc-bpmn-viewer {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  min-height: 520px;&lt;br /&gt;
  border: 1px solid #e2e8f0;&lt;br /&gt;
  border-radius: 0.5rem;&lt;br /&gt;
  background: #fafafa;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.oc-d2-rendered svg {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: auto;&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.oc-diagram-error {&lt;br /&gt;
  color: #991b1b;&lt;br /&gt;
  background: #fef2f2;&lt;br /&gt;
  border: 1px solid #fecaca;&lt;br /&gt;
  padding: 0.75rem;&lt;br /&gt;
  border-radius: 0.5rem;&lt;br /&gt;
  white-space: pre-wrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pre.oc-mermaid,&lt;br /&gt;
pre.oc-plantuml,&lt;br /&gt;
pre.oc-bpmn-xml,&lt;br /&gt;
pre.oc-d2 {&lt;br /&gt;
  background: #f8fafc;&lt;br /&gt;
  border: 1px dashed #cbd5e1;&lt;br /&gt;
  padding: 0.75rem;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=MediaWiki:Common.js&amp;diff=96</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=MediaWiki:Common.js&amp;diff=96"/>
		<updated>2026-03-19T21:00:50Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Ajout du support D2 dans Common.js&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(function () {&lt;br /&gt;
  function loadScript(src) {&lt;br /&gt;
    return new Promise(function (resolve, reject) {&lt;br /&gt;
      if ([].some.call(document.scripts, function (s) { return s.src === src; })) return resolve();&lt;br /&gt;
      var script = document.createElement(&#039;script&#039;);&lt;br /&gt;
      script.src = src;&lt;br /&gt;
      script.async = true;&lt;br /&gt;
      script.onload = resolve;&lt;br /&gt;
      script.onerror = reject;&lt;br /&gt;
      document.head.appendChild(script);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function escapeHtml(str) {&lt;br /&gt;
    return str.replace(/[&amp;amp;&amp;lt;&amp;gt;&amp;quot;&#039;]/g, function (m) {&lt;br /&gt;
      return ({ &#039;&amp;amp;&#039;: &#039;&amp;amp;amp;&#039;, &#039;&amp;lt;&#039;: &#039;&amp;amp;lt;&#039;, &#039;&amp;gt;&#039;: &#039;&amp;amp;gt;&#039;, &#039;&amp;quot;&#039;: &#039;&amp;amp;quot;&#039;, &amp;quot;&#039;&amp;quot;: &#039;&amp;amp;#39;&#039; })[m];&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderMermaid() {&lt;br /&gt;
    var blocks = document.querySelectorAll(&#039;pre.oc-mermaid&#039;);&lt;br /&gt;
    if (!blocks.length || !window.mermaid) return Promise.resolve();&lt;br /&gt;
    mermaid.initialize({ startOnLoad: false, securityLevel: &#039;loose&#039;, theme: &#039;default&#039; });&lt;br /&gt;
    return Promise.all(Array.from(blocks).map(function (block, idx) {&lt;br /&gt;
      if (block.dataset.ocRendered) return Promise.resolve();&lt;br /&gt;
      block.dataset.ocRendered = &#039;1&#039;;&lt;br /&gt;
      var wrapper = document.createElement(&#039;div&#039;);&lt;br /&gt;
      wrapper.className = &#039;oc-diagram oc-mermaid-rendered&#039;;&lt;br /&gt;
      var source = block.textContent.trim();&lt;br /&gt;
      block.style.display = &#039;none&#039;;&lt;br /&gt;
      block.parentNode.insertBefore(wrapper, block);&lt;br /&gt;
      return mermaid.render(&#039;oc-mermaid-&#039; + idx + &#039;-&#039; + Date.now(), source).then(function (result) {&lt;br /&gt;
        wrapper.innerHTML = result.svg;&lt;br /&gt;
      }).catch(function (err) {&lt;br /&gt;
        wrapper.innerHTML = &#039;&amp;lt;div class=&amp;quot;oc-diagram-error&amp;quot;&amp;gt;Mermaid error: &#039; + escapeHtml(String(err)) + &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      });&lt;br /&gt;
    }));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderPlantUML() {&lt;br /&gt;
    var blocks = document.querySelectorAll(&#039;pre.oc-plantuml&#039;);&lt;br /&gt;
    if (!blocks.length || !window.plantumlEncoder) return;&lt;br /&gt;
    blocks.forEach(function (block) {&lt;br /&gt;
      if (block.dataset.ocRendered) return;&lt;br /&gt;
      block.dataset.ocRendered = &#039;1&#039;;&lt;br /&gt;
      var src = block.textContent.trim();&lt;br /&gt;
      var encoded = plantumlEncoder.encode(src);&lt;br /&gt;
      var img = document.createElement(&#039;img&#039;);&lt;br /&gt;
      img.className = &#039;oc-diagram oc-plantuml-rendered&#039;;&lt;br /&gt;
      img.alt = &#039;PlantUML diagram&#039;;&lt;br /&gt;
      img.src = &#039;https://kroki.io/plantuml/svg/&#039; + encoded;&lt;br /&gt;
      var wrap = document.createElement(&#039;div&#039;);&lt;br /&gt;
      wrap.className = &#039;oc-diagram-wrap&#039;;&lt;br /&gt;
      wrap.appendChild(img);&lt;br /&gt;
      block.style.display = &#039;none&#039;;&lt;br /&gt;
      block.parentNode.insertBefore(wrap, block);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderBPMN() {&lt;br /&gt;
    var blocks = document.querySelectorAll(&#039;.oc-bpmn-container&#039;);&lt;br /&gt;
    if (!blocks.length || !window.BpmnJS) return;&lt;br /&gt;
    blocks.forEach(function (container) {&lt;br /&gt;
      if (container.dataset.ocRendered) return;&lt;br /&gt;
      var source = container.querySelector(&#039;pre.oc-bpmn-xml&#039;);&lt;br /&gt;
      var mount = container.querySelector(&#039;.oc-bpmn-viewer&#039;);&lt;br /&gt;
      if (!source || !mount) return;&lt;br /&gt;
      container.dataset.ocRendered = &#039;1&#039;;&lt;br /&gt;
      var xml = source.textContent.trim();&lt;br /&gt;
      source.style.display = &#039;none&#039;;&lt;br /&gt;
      var viewer = new BpmnJS({ container: mount, keyboard: { bindTo: document } });&lt;br /&gt;
      viewer.importXML(xml).then(function () {&lt;br /&gt;
        var canvas = viewer.get(&#039;canvas&#039;);&lt;br /&gt;
        canvas.zoom(&#039;fit-viewport&#039;, &#039;auto&#039;);&lt;br /&gt;
      }).catch(function (err) {&lt;br /&gt;
        mount.innerHTML = &#039;&amp;lt;div class=&amp;quot;oc-diagram-error&amp;quot;&amp;gt;BPMN error: &#039; + escapeHtml(String(err)) + &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  async function renderD2() {&lt;br /&gt;
    var blocks = document.querySelectorAll(&#039;pre.oc-d2&#039;);&lt;br /&gt;
    if (!blocks.length) return;&lt;br /&gt;
    let D2Ctor;&lt;br /&gt;
    try {&lt;br /&gt;
      const mod = await import(&#039;https://esm.sh/@terrastruct/d2&#039;);&lt;br /&gt;
      D2Ctor = mod.D2;&lt;br /&gt;
    } catch (err) {&lt;br /&gt;
      blocks.forEach(function (block) {&lt;br /&gt;
        if (block.dataset.ocRendered) return;&lt;br /&gt;
        block.dataset.ocRendered = &#039;1&#039;;&lt;br /&gt;
        var wrapper = document.createElement(&#039;div&#039;);&lt;br /&gt;
        wrapper.className = &#039;oc-diagram-error&#039;;&lt;br /&gt;
        wrapper.textContent = &#039;D2 import error: &#039; + String(err);&lt;br /&gt;
        block.parentNode.insertBefore(wrapper, block);&lt;br /&gt;
      });&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    const d2 = new D2Ctor();&lt;br /&gt;
    for (const block of blocks) {&lt;br /&gt;
      if (block.dataset.ocRendered) continue;&lt;br /&gt;
      block.dataset.ocRendered = &#039;1&#039;;&lt;br /&gt;
      const source = block.textContent.trim();&lt;br /&gt;
      const wrapper = document.createElement(&#039;div&#039;);&lt;br /&gt;
      wrapper.className = &#039;oc-diagram oc-d2-rendered&#039;;&lt;br /&gt;
      block.style.display = &#039;none&#039;;&lt;br /&gt;
      block.parentNode.insertBefore(wrapper, block);&lt;br /&gt;
      try {&lt;br /&gt;
        const result = await d2.compile(source);&lt;br /&gt;
        const svg = await d2.render(result.diagram, { themeID: 8, darkThemeID: 200 });&lt;br /&gt;
        wrapper.innerHTML = svg;&lt;br /&gt;
      } catch (err) {&lt;br /&gt;
        wrapper.innerHTML = &#039;&amp;lt;div class=&amp;quot;oc-diagram-error&amp;quot;&amp;gt;D2 error: &#039; + escapeHtml(String(err)) + &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function boot() {&lt;br /&gt;
    Promise.all([&lt;br /&gt;
      loadScript(&#039;https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js&#039;),&lt;br /&gt;
      loadScript(&#039;https://cdn.jsdelivr.net/npm/plantuml-encoder/dist/plantuml-encoder.min.js&#039;),&lt;br /&gt;
      loadScript(&#039;https://cdn.jsdelivr.net/npm/bpmn-js@18/dist/bpmn-navigated-viewer.production.min.js&#039;)&lt;br /&gt;
    ]).then(function () {&lt;br /&gt;
      return renderMermaid();&lt;br /&gt;
    }).then(function () {&lt;br /&gt;
      renderPlantUML();&lt;br /&gt;
      renderBPMN();&lt;br /&gt;
      return renderD2();&lt;br /&gt;
    }).catch(function (err) {&lt;br /&gt;
      console.error(&#039;Diagram integration failed&#039;, err);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (document.readyState === &#039;loading&#039;) document.addEventListener(&#039;DOMContentLoaded&#039;, boot);&lt;br /&gt;
  else boot();&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Architecture_tas_-_vue_par_couches&amp;diff=95</id>
		<title>Architecture tas - vue par couches</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Architecture_tas_-_vue_par_couches&amp;diff=95"/>
		<updated>2026-03-18T23:28:00Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Vue par couches avec emoji et double liens&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architecture tas - vue par couches =&lt;br /&gt;
&lt;br /&gt;
Version en couches avec &#039;&#039;&#039;emoji&#039;&#039;&#039; et &#039;&#039;&#039;double navigation&#039;&#039;&#039;:&lt;br /&gt;
* un nœud vers le service web&lt;br /&gt;
* un nœud vers la documentation wiki correspondante&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-mermaid&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TB&lt;br /&gt;
    User[👤 Utilisateur] --&amp;gt; Caddy[🌐 Caddy]&lt;br /&gt;
    Caddy --&amp;gt; Homepage[🏠 Homepage]&lt;br /&gt;
    Caddy --&amp;gt; Wiki[📚 MediaWiki]&lt;br /&gt;
&lt;br /&gt;
    Homepage --&amp;gt; Apps[🧩 Services applicatifs]&lt;br /&gt;
    Wiki --&amp;gt; Docs[📝 Documentation]&lt;br /&gt;
&lt;br /&gt;
    subgraph Apps[🧩 Services applicatifs]&lt;br /&gt;
      direction LR&lt;br /&gt;
      OpenWebUI[🧠 Open WebUI]&lt;br /&gt;
      Ollama[🤖 Ollama]&lt;br /&gt;
      Nextcloud[☁️ Nextcloud]&lt;br /&gt;
      N8N[⚙️ n8n]&lt;br /&gt;
      Vaultwarden[🔐 Vaultwarden]&lt;br /&gt;
      Paperless[🗂️ Paperless]&lt;br /&gt;
      Karakeep[🔖 Karakeep]&lt;br /&gt;
      Immich[🖼️ Immich]&lt;br /&gt;
      Uptime[📈 Uptime Kuma]&lt;br /&gt;
      Beszel[📊 Beszel]&lt;br /&gt;
      Headscale[🌍 Headscale]&lt;br /&gt;
      DT[🧬 Dependency-Track]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    subgraph Docs[📝 Documentation]&lt;br /&gt;
      direction LR&lt;br /&gt;
      DocOpenWebUI[📝 Doc Open WebUI]&lt;br /&gt;
      DocOllama[📝 Doc Ollama]&lt;br /&gt;
      DocNextcloud[📝 Doc Nextcloud]&lt;br /&gt;
      DocN8N[📝 Doc n8n]&lt;br /&gt;
      DocVaultwarden[📝 Doc Vaultwarden]&lt;br /&gt;
      DocPaperless[📝 Doc Paperless]&lt;br /&gt;
      DocKarakeep[📝 Doc Karakeep]&lt;br /&gt;
      DocImmich[📝 Doc Immich]&lt;br /&gt;
      DocUptime[📝 Doc Uptime Kuma]&lt;br /&gt;
      DocBeszel[📝 Doc Beszel]&lt;br /&gt;
      DocHeadscale[📝 Doc Headscale]&lt;br /&gt;
      DocDT[📝 Doc Dependency-Track]&lt;br /&gt;
      Trace[📝 Trace install tas]&lt;br /&gt;
      Archi[📝 Architecture logique]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    OpenWebUI --&amp;gt; Ollama&lt;br /&gt;
&lt;br /&gt;
    DocOpenWebUI -. doc .-&amp;gt; OpenWebUI&lt;br /&gt;
    DocOllama -. doc .-&amp;gt; Ollama&lt;br /&gt;
    DocNextcloud -. doc .-&amp;gt; Nextcloud&lt;br /&gt;
    DocN8N -. doc .-&amp;gt; N8N&lt;br /&gt;
    DocVaultwarden -. doc .-&amp;gt; Vaultwarden&lt;br /&gt;
    DocPaperless -. doc .-&amp;gt; Paperless&lt;br /&gt;
    DocKarakeep -. doc .-&amp;gt; Karakeep&lt;br /&gt;
    DocImmich -. doc .-&amp;gt; Immich&lt;br /&gt;
    DocUptime -. doc .-&amp;gt; Uptime&lt;br /&gt;
    DocBeszel -. doc .-&amp;gt; Beszel&lt;br /&gt;
    DocHeadscale -. doc .-&amp;gt; Headscale&lt;br /&gt;
    DocDT -. doc .-&amp;gt; DT&lt;br /&gt;
&lt;br /&gt;
    click Homepage &amp;quot;https://lololand.hopto.org:25697&amp;quot; &amp;quot;Ouvrir Homepage&amp;quot;&lt;br /&gt;
    click Wiki &amp;quot;https://lololand.hopto.org:25698&amp;quot; &amp;quot;Ouvrir MediaWiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    click OpenWebUI &amp;quot;https://lololand.hopto.org:25680&amp;quot; &amp;quot;Service Open WebUI&amp;quot;&lt;br /&gt;
    click Ollama &amp;quot;https://lololand.hopto.org:25434&amp;quot; &amp;quot;Service Ollama&amp;quot;&lt;br /&gt;
    click Nextcloud &amp;quot;https://lololand.hopto.org:25696&amp;quot; &amp;quot;Service Nextcloud&amp;quot;&lt;br /&gt;
    click N8N &amp;quot;https://lololand.hopto.org:25678&amp;quot; &amp;quot;Service n8n&amp;quot;&lt;br /&gt;
    click Vaultwarden &amp;quot;https://lololand.hopto.org:25682&amp;quot; &amp;quot;Service Vaultwarden&amp;quot;&lt;br /&gt;
    click Paperless &amp;quot;https://lololand.hopto.org:25694&amp;quot; &amp;quot;Service Paperless&amp;quot;&lt;br /&gt;
    click Karakeep &amp;quot;https://lololand.hopto.org:25695&amp;quot; &amp;quot;Service Karakeep&amp;quot;&lt;br /&gt;
    click Immich &amp;quot;https://lololand.hopto.org:25688&amp;quot; &amp;quot;Service Immich&amp;quot;&lt;br /&gt;
    click Uptime &amp;quot;https://lololand.hopto.org:25683&amp;quot; &amp;quot;Service Uptime Kuma&amp;quot;&lt;br /&gt;
    click Beszel &amp;quot;https://lololand.hopto.org:25693&amp;quot; &amp;quot;Service Beszel&amp;quot;&lt;br /&gt;
    click Headscale &amp;quot;https://lololand.hopto.org:25689&amp;quot; &amp;quot;Service Headscale&amp;quot;&lt;br /&gt;
    click DT &amp;quot;https://lololand.hopto.org:25681&amp;quot; &amp;quot;Service Dependency-Track&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    click DocOpenWebUI &amp;quot;https://lololand.hopto.org:25698/index.php?title=Trace_install_tas_-_Open_WebUI&amp;quot; &amp;quot;Documentation Open WebUI&amp;quot;&lt;br /&gt;
    click DocOllama &amp;quot;https://lololand.hopto.org:25698/index.php?title=Trace_install_tas_-_Ollama&amp;quot; &amp;quot;Documentation Ollama&amp;quot;&lt;br /&gt;
    click DocNextcloud &amp;quot;https://lololand.hopto.org:25698/index.php?title=Trace_install_tas_-_Nextcloud&amp;quot; &amp;quot;Documentation Nextcloud&amp;quot;&lt;br /&gt;
    click DocN8N &amp;quot;https://lololand.hopto.org:25698/index.php?title=Trace_install_tas_-_n8n&amp;quot; &amp;quot;Documentation n8n&amp;quot;&lt;br /&gt;
    click DocVaultwarden &amp;quot;https://lololand.hopto.org:25698/index.php?title=Trace_install_tas_-_Vaultwarden&amp;quot; &amp;quot;Documentation Vaultwarden&amp;quot;&lt;br /&gt;
    click DocPaperless &amp;quot;https://lololand.hopto.org:25698/index.php?title=Trace_install_tas_-_Paperless-ngx&amp;quot; &amp;quot;Documentation Paperless&amp;quot;&lt;br /&gt;
    click DocKarakeep &amp;quot;https://lololand.hopto.org:25698/index.php?title=Trace_install_tas_-_Karakeep&amp;quot; &amp;quot;Documentation Karakeep&amp;quot;&lt;br /&gt;
    click DocImmich &amp;quot;https://lololand.hopto.org:25698/index.php?title=Trace_install_tas_-_Immich&amp;quot; &amp;quot;Documentation Immich&amp;quot;&lt;br /&gt;
    click DocUptime &amp;quot;https://lololand.hopto.org:25698/index.php?title=Trace_install_tas_-_Uptime_Kuma&amp;quot; &amp;quot;Documentation Uptime Kuma&amp;quot;&lt;br /&gt;
    click DocBeszel &amp;quot;https://lololand.hopto.org:25698/index.php?title=Trace_install_tas_-_Beszel&amp;quot; &amp;quot;Documentation Beszel&amp;quot;&lt;br /&gt;
    click DocHeadscale &amp;quot;https://lololand.hopto.org:25698/index.php?title=Trace_install_tas_-_Headscale&amp;quot; &amp;quot;Documentation Headscale&amp;quot;&lt;br /&gt;
    click DocDT &amp;quot;https://lololand.hopto.org:25698/index.php?title=Trace_install_tas_-_Dependency-Track&amp;quot; &amp;quot;Documentation Dependency-Track&amp;quot;&lt;br /&gt;
    click Trace &amp;quot;https://lololand.hopto.org:25698/index.php?title=Trace_install_tas&amp;quot; &amp;quot;Trace install tas&amp;quot;&lt;br /&gt;
    click Archi &amp;quot;https://lololand.hopto.org:25698/index.php?title=Architecture_logicielle_de_tas&amp;quot; &amp;quot;Architecture logique de tas&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Astuce de lecture ==&lt;br /&gt;
* Les nœuds de gauche / centraux ouvrent les &#039;&#039;&#039;services&#039;&#039;&#039;&lt;br /&gt;
* Les nœuds commençant par &#039;&#039;&#039;Doc&#039;&#039;&#039; ouvrent la &#039;&#039;&#039;documentation wiki&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Tests_de_repr%C3%A9sentations_d%27architecture_de_tas&amp;diff=93</id>
		<title>Tests de représentations d&#039;architecture de tas</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Tests_de_repr%C3%A9sentations_d%27architecture_de_tas&amp;diff=93"/>
		<updated>2026-03-18T23:12:51Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Ajout index des représentations d&amp;#039;architecture&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Tests de représentations d&#039;architecture de tas =&lt;br /&gt;
&lt;br /&gt;
Cette page regroupe plusieurs représentations alternatives pour tester la lisibilité.&lt;br /&gt;
&lt;br /&gt;
* [[Schéma d&#039;architecture cliquable de tas]] — première version dense&lt;br /&gt;
* [[Architecture tas - vue par couches]] — version par couches&lt;br /&gt;
* [[Architecture tas - accès publics]] — version centrée sur les ports publics&lt;br /&gt;
* [[Architecture tas - services et documentation]] — version minimaliste&lt;br /&gt;
* [[Architecture tas - mindmap]] — version carte mentale&lt;br /&gt;
&lt;br /&gt;
== Conseil ==&lt;br /&gt;
Tester chaque vue selon l&#039;usage :&lt;br /&gt;
* exploitation réseau : accès publics&lt;br /&gt;
* vue d&#039;ensemble : vue par couches&lt;br /&gt;
* navigation rapide : services et documentation&lt;br /&gt;
* exploration : mindmap&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Architecture_tas_-_mindmap&amp;diff=92</id>
		<title>Architecture tas - mindmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Architecture_tas_-_mindmap&amp;diff=92"/>
		<updated>2026-03-18T23:12:51Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Ajout vue architecture mindmap&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architecture tas - mindmap =&lt;br /&gt;
&lt;br /&gt;
Version &#039;&#039;&#039;mindmap&#039;&#039;&#039; pour tester une lecture plus navigationnelle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-mermaid&amp;quot;&amp;gt;&lt;br /&gt;
mindmap&lt;br /&gt;
  root((tas))&lt;br /&gt;
    Accès&lt;br /&gt;
      Caddy&lt;br /&gt;
      Homepage&lt;br /&gt;
      MediaWiki&lt;br /&gt;
    Services web&lt;br /&gt;
      Open WebUI&lt;br /&gt;
      Nextcloud&lt;br /&gt;
      Vaultwarden&lt;br /&gt;
      Paperless&lt;br /&gt;
      Karakeep&lt;br /&gt;
      Immich&lt;br /&gt;
      Headscale&lt;br /&gt;
      Uptime Kuma&lt;br /&gt;
      Beszel&lt;br /&gt;
      Dependency-Track&lt;br /&gt;
      n8n&lt;br /&gt;
      Ollama&lt;br /&gt;
    Documentation&lt;br /&gt;
      Trace install tas&lt;br /&gt;
      Architecture logicielle de tas&lt;br /&gt;
      Index des modèles de schémas&lt;br /&gt;
      Déploiement Mermaid PlantUML BPMN JS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Liens directs ==&lt;br /&gt;
* [https://lololand.hopto.org:25697 Homepage]&lt;br /&gt;
* [https://lololand.hopto.org:25698 MediaWiki]&lt;br /&gt;
* [https://lololand.hopto.org:25698/index.php?title=Trace_install_tas Trace install tas]&lt;br /&gt;
* [https://lololand.hopto.org:25698/index.php?title=Architecture_logicielle_de_tas Architecture logicielle de tas]&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Architecture_tas_-_services_et_documentation&amp;diff=91</id>
		<title>Architecture tas - services et documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Architecture_tas_-_services_et_documentation&amp;diff=91"/>
		<updated>2026-03-18T23:12:51Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Ajout vue architecture services et documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architecture tas - services et documentation =&lt;br /&gt;
&lt;br /&gt;
Vue minimaliste séparant les &#039;&#039;&#039;services&#039;&#039;&#039; et la &#039;&#039;&#039;documentation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-mermaid&amp;quot;&amp;gt;&lt;br /&gt;
flowchart LR&lt;br /&gt;
    Homepage[Homepage] --&amp;gt; Services[Services web]&lt;br /&gt;
    Wiki[MediaWiki] --&amp;gt; Documentation[Pages de doc]&lt;br /&gt;
&lt;br /&gt;
    Services --&amp;gt; S1[Open WebUI]&lt;br /&gt;
    Services --&amp;gt; S2[Nextcloud]&lt;br /&gt;
    Services --&amp;gt; S3[Vaultwarden]&lt;br /&gt;
    Services --&amp;gt; S4[Paperless]&lt;br /&gt;
    Services --&amp;gt; S5[Karakeep]&lt;br /&gt;
    Services --&amp;gt; S6[Immich]&lt;br /&gt;
    Services --&amp;gt; S7[Headscale]&lt;br /&gt;
    Services --&amp;gt; S8[Uptime Kuma]&lt;br /&gt;
    Services --&amp;gt; S9[Beszel]&lt;br /&gt;
&lt;br /&gt;
    Documentation --&amp;gt; D1[Trace install tas]&lt;br /&gt;
    Documentation --&amp;gt; D2[Architecture logicielle]&lt;br /&gt;
    Documentation --&amp;gt; D3[Index des modèles]&lt;br /&gt;
    Documentation --&amp;gt; D4[Déploiement diagrammes]&lt;br /&gt;
&lt;br /&gt;
    click Homepage &amp;quot;https://lololand.hopto.org:25697&amp;quot; &amp;quot;Homepage&amp;quot;&lt;br /&gt;
    click Wiki &amp;quot;https://lololand.hopto.org:25698&amp;quot; &amp;quot;MediaWiki&amp;quot;&lt;br /&gt;
    click S1 &amp;quot;https://lololand.hopto.org:25680&amp;quot; &amp;quot;Open WebUI&amp;quot;&lt;br /&gt;
    click S2 &amp;quot;https://lololand.hopto.org:25696&amp;quot; &amp;quot;Nextcloud&amp;quot;&lt;br /&gt;
    click S3 &amp;quot;https://lololand.hopto.org:25682&amp;quot; &amp;quot;Vaultwarden&amp;quot;&lt;br /&gt;
    click S4 &amp;quot;https://lololand.hopto.org:25694&amp;quot; &amp;quot;Paperless&amp;quot;&lt;br /&gt;
    click S5 &amp;quot;https://lololand.hopto.org:25695&amp;quot; &amp;quot;Karakeep&amp;quot;&lt;br /&gt;
    click S6 &amp;quot;https://lololand.hopto.org:25688&amp;quot; &amp;quot;Immich&amp;quot;&lt;br /&gt;
    click S7 &amp;quot;https://lololand.hopto.org:25689&amp;quot; &amp;quot;Headscale&amp;quot;&lt;br /&gt;
    click S8 &amp;quot;https://lololand.hopto.org:25683&amp;quot; &amp;quot;Uptime Kuma&amp;quot;&lt;br /&gt;
    click S9 &amp;quot;https://lololand.hopto.org:25693&amp;quot; &amp;quot;Beszel&amp;quot;&lt;br /&gt;
    click D1 &amp;quot;https://lololand.hopto.org:25698/index.php?title=Trace_install_tas&amp;quot; &amp;quot;Trace install tas&amp;quot;&lt;br /&gt;
    click D2 &amp;quot;https://lololand.hopto.org:25698/index.php?title=Architecture_logicielle_de_tas&amp;quot; &amp;quot;Architecture logique&amp;quot;&lt;br /&gt;
    click D3 &amp;quot;https://lololand.hopto.org:25698/index.php?title=Index_des_modèles_de_schémas&amp;quot; &amp;quot;Index des modèles&amp;quot;&lt;br /&gt;
    click D4 &amp;quot;https://lololand.hopto.org:25698/index.php?title=Déploiement_Mermaid_PlantUML_BPMN_JS&amp;quot; &amp;quot;Déploiement diagrammes&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Architecture_tas_-_acc%C3%A8s_publics&amp;diff=90</id>
		<title>Architecture tas - accès publics</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Architecture_tas_-_acc%C3%A8s_publics&amp;diff=90"/>
		<updated>2026-03-18T23:12:50Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Ajout vue architecture accès publics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architecture tas - accès publics =&lt;br /&gt;
&lt;br /&gt;
Vue focalisée sur les &#039;&#039;&#039;ports publics&#039;&#039;&#039; et leur destination locale.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-mermaid&amp;quot;&amp;gt;&lt;br /&gt;
flowchart LR&lt;br /&gt;
    Internet --&amp;gt; Caddy&lt;br /&gt;
    Caddy --&amp;gt; P25680[25680 → Open WebUI]&lt;br /&gt;
    Caddy --&amp;gt; P25434[25434 → Ollama]&lt;br /&gt;
    Caddy --&amp;gt; P25696[25696 → Nextcloud]&lt;br /&gt;
    Caddy --&amp;gt; P25678[25678 → n8n]&lt;br /&gt;
    Caddy --&amp;gt; P25682[25682 → Vaultwarden]&lt;br /&gt;
    Caddy --&amp;gt; P25694[25694 → Paperless]&lt;br /&gt;
    Caddy --&amp;gt; P25695[25695 → Karakeep]&lt;br /&gt;
    Caddy --&amp;gt; P25688[25688 → Immich]&lt;br /&gt;
    Caddy --&amp;gt; P25683[25683 → Uptime Kuma]&lt;br /&gt;
    Caddy --&amp;gt; P25693[25693 → Beszel]&lt;br /&gt;
    Caddy --&amp;gt; P25689[25689 → Headscale]&lt;br /&gt;
    Caddy --&amp;gt; P25681[25681 → DT Front]&lt;br /&gt;
    Caddy --&amp;gt; P25692[25692 → DT API]&lt;br /&gt;
    Caddy --&amp;gt; P25697[25697 → Homepage]&lt;br /&gt;
    Caddy --&amp;gt; P25698[25698 → MediaWiki]&lt;br /&gt;
&lt;br /&gt;
    click P25680 &amp;quot;https://lololand.hopto.org:25680&amp;quot; &amp;quot;Open WebUI&amp;quot;&lt;br /&gt;
    click P25434 &amp;quot;https://lololand.hopto.org:25434&amp;quot; &amp;quot;Ollama&amp;quot;&lt;br /&gt;
    click P25696 &amp;quot;https://lololand.hopto.org:25696&amp;quot; &amp;quot;Nextcloud&amp;quot;&lt;br /&gt;
    click P25678 &amp;quot;https://lololand.hopto.org:25678&amp;quot; &amp;quot;n8n&amp;quot;&lt;br /&gt;
    click P25682 &amp;quot;https://lololand.hopto.org:25682&amp;quot; &amp;quot;Vaultwarden&amp;quot;&lt;br /&gt;
    click P25694 &amp;quot;https://lololand.hopto.org:25694&amp;quot; &amp;quot;Paperless&amp;quot;&lt;br /&gt;
    click P25695 &amp;quot;https://lololand.hopto.org:25695&amp;quot; &amp;quot;Karakeep&amp;quot;&lt;br /&gt;
    click P25688 &amp;quot;https://lololand.hopto.org:25688&amp;quot; &amp;quot;Immich&amp;quot;&lt;br /&gt;
    click P25683 &amp;quot;https://lololand.hopto.org:25683&amp;quot; &amp;quot;Uptime Kuma&amp;quot;&lt;br /&gt;
    click P25693 &amp;quot;https://lololand.hopto.org:25693&amp;quot; &amp;quot;Beszel&amp;quot;&lt;br /&gt;
    click P25689 &amp;quot;https://lololand.hopto.org:25689&amp;quot; &amp;quot;Headscale&amp;quot;&lt;br /&gt;
    click P25681 &amp;quot;https://lololand.hopto.org:25681&amp;quot; &amp;quot;Dependency-Track Frontend&amp;quot;&lt;br /&gt;
    click P25692 &amp;quot;https://lololand.hopto.org:25692&amp;quot; &amp;quot;Dependency-Track API&amp;quot;&lt;br /&gt;
    click P25697 &amp;quot;https://lololand.hopto.org:25697&amp;quot; &amp;quot;Homepage&amp;quot;&lt;br /&gt;
    click P25698 &amp;quot;https://lololand.hopto.org:25698&amp;quot; &amp;quot;MediaWiki&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Architecture_tas_-_vue_par_couches&amp;diff=89</id>
		<title>Architecture tas - vue par couches</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Architecture_tas_-_vue_par_couches&amp;diff=89"/>
		<updated>2026-03-18T23:12:50Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Ajout vue architecture par couches&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architecture tas - vue par couches =&lt;br /&gt;
&lt;br /&gt;
Version plus lisible en &#039;&#039;&#039;couches&#039;&#039;&#039; : entrée, portail, services, documentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-mermaid&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TB&lt;br /&gt;
    User[Utilisateur] --&amp;gt; Caddy[Caddy]&lt;br /&gt;
    Caddy --&amp;gt; Homepage[Homepage 25697]&lt;br /&gt;
    Caddy --&amp;gt; Wiki[MediaWiki 25698]&lt;br /&gt;
&lt;br /&gt;
    Homepage --&amp;gt; Apps[Services applicatifs]&lt;br /&gt;
    Wiki --&amp;gt; Docs[Documentation]&lt;br /&gt;
&lt;br /&gt;
    subgraph Apps[Services applicatifs]&lt;br /&gt;
      direction LR&lt;br /&gt;
      OpenWebUI[Open WebUI 25680]&lt;br /&gt;
      Ollama[Ollama 25434]&lt;br /&gt;
      Nextcloud[Nextcloud 25696]&lt;br /&gt;
      N8N[n8n 25678]&lt;br /&gt;
      Vaultwarden[Vaultwarden 25682]&lt;br /&gt;
      Paperless[Paperless 25694]&lt;br /&gt;
      Karakeep[Karakeep 25695]&lt;br /&gt;
      Immich[Immich 25688]&lt;br /&gt;
      Uptime[Uptime Kuma 25683]&lt;br /&gt;
      Beszel[Beszel 25693]&lt;br /&gt;
      Headscale[Headscale 25689]&lt;br /&gt;
      DT[Dependency-Track 25681/25692]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    subgraph Docs[Documentation]&lt;br /&gt;
      direction TB&lt;br /&gt;
      Trace[Trace install tas]&lt;br /&gt;
      Archi[Architecture logicielle de tas]&lt;br /&gt;
      Models[Index des modèles]&lt;br /&gt;
      Diagrammes[Déploiement Mermaid/PlantUML/BPMN]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    OpenWebUI --&amp;gt; Ollama&lt;br /&gt;
&lt;br /&gt;
    click Homepage &amp;quot;https://lololand.hopto.org:25697&amp;quot; &amp;quot;Homepage&amp;quot;&lt;br /&gt;
    click Wiki &amp;quot;https://lololand.hopto.org:25698&amp;quot; &amp;quot;MediaWiki&amp;quot;&lt;br /&gt;
    click OpenWebUI &amp;quot;https://lololand.hopto.org:25680&amp;quot; &amp;quot;Open WebUI&amp;quot;&lt;br /&gt;
    click Ollama &amp;quot;https://lololand.hopto.org:25434&amp;quot; &amp;quot;Ollama&amp;quot;&lt;br /&gt;
    click Nextcloud &amp;quot;https://lololand.hopto.org:25696&amp;quot; &amp;quot;Nextcloud&amp;quot;&lt;br /&gt;
    click N8N &amp;quot;https://lololand.hopto.org:25678&amp;quot; &amp;quot;n8n&amp;quot;&lt;br /&gt;
    click Vaultwarden &amp;quot;https://lololand.hopto.org:25682&amp;quot; &amp;quot;Vaultwarden&amp;quot;&lt;br /&gt;
    click Paperless &amp;quot;https://lololand.hopto.org:25694&amp;quot; &amp;quot;Paperless&amp;quot;&lt;br /&gt;
    click Karakeep &amp;quot;https://lololand.hopto.org:25695&amp;quot; &amp;quot;Karakeep&amp;quot;&lt;br /&gt;
    click Immich &amp;quot;https://lololand.hopto.org:25688&amp;quot; &amp;quot;Immich&amp;quot;&lt;br /&gt;
    click Uptime &amp;quot;https://lololand.hopto.org:25683&amp;quot; &amp;quot;Uptime Kuma&amp;quot;&lt;br /&gt;
    click Beszel &amp;quot;https://lololand.hopto.org:25693&amp;quot; &amp;quot;Beszel&amp;quot;&lt;br /&gt;
    click Headscale &amp;quot;https://lololand.hopto.org:25689&amp;quot; &amp;quot;Headscale&amp;quot;&lt;br /&gt;
    click DT &amp;quot;https://lololand.hopto.org:25681&amp;quot; &amp;quot;Dependency-Track&amp;quot;&lt;br /&gt;
    click Trace &amp;quot;https://lololand.hopto.org:25698/index.php?title=Trace_install_tas&amp;quot; &amp;quot;Trace install tas&amp;quot;&lt;br /&gt;
    click Archi &amp;quot;https://lololand.hopto.org:25698/index.php?title=Architecture_logicielle_de_tas&amp;quot; &amp;quot;Architecture logicielle&amp;quot;&lt;br /&gt;
    click Models &amp;quot;https://lololand.hopto.org:25698/index.php?title=Index_des_modèles_de_schémas&amp;quot; &amp;quot;Index des modèles&amp;quot;&lt;br /&gt;
    click Diagrammes &amp;quot;https://lololand.hopto.org:25698/index.php?title=Déploiement_Mermaid_PlantUML_BPMN_JS&amp;quot; &amp;quot;Déploiement diagrammes&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Sch%C3%A9ma_d%27architecture_cliquable_de_tas&amp;diff=85</id>
		<title>Schéma d&#039;architecture cliquable de tas</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Sch%C3%A9ma_d%27architecture_cliquable_de_tas&amp;diff=85"/>
		<updated>2026-03-18T22:51:15Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Création du schéma d&amp;#039;architecture cliquable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Schéma d&#039;architecture cliquable de tas =&lt;br /&gt;
&lt;br /&gt;
Cette page propose un schéma Mermaid de l&#039;architecture logicielle de &#039;&#039;&#039;tas&#039;&#039;&#039; avec des liens cliquables vers :&lt;br /&gt;
* les services web&lt;br /&gt;
* les pages de documentation du wiki&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;oc-mermaid&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
    Internet[Internet / Utilisateur] --&amp;gt; Caddy[Caddy reverse proxy]&lt;br /&gt;
    Caddy --&amp;gt; Homepage[Homepage]&lt;br /&gt;
    Caddy --&amp;gt; Wiki[MediaWiki]&lt;br /&gt;
&lt;br /&gt;
    subgraph LLM[LLM / IA]&lt;br /&gt;
      Ollama[Ollama]&lt;br /&gt;
      OpenWebUI[Open WebUI]&lt;br /&gt;
      OpenWebUI --&amp;gt; Ollama&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    subgraph Productivite[Productivité / collaboration]&lt;br /&gt;
      Nextcloud[Nextcloud]&lt;br /&gt;
      N8N[n8n]&lt;br /&gt;
      Vaultwarden[Vaultwarden]&lt;br /&gt;
      MediaWikiNode[MediaWiki]&lt;br /&gt;
      HomepageNode[Homepage]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    subgraph Docs[Documentation]&lt;br /&gt;
      Trace[Trace install tas]&lt;br /&gt;
      Archi[Architecture logique de tas]&lt;br /&gt;
      Models[Index des modèles de schémas]&lt;br /&gt;
      Deploy[Déploiement Mermaid PlantUML BPMN JS]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    subgraph Donnees[Documents / contenus]&lt;br /&gt;
      Paperless[Paperless-ngx]&lt;br /&gt;
      Karakeep[Karakeep]&lt;br /&gt;
      Immich[Immich]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    subgraph Supervision[Supervision / observabilité]&lt;br /&gt;
      Uptime[Uptime Kuma]&lt;br /&gt;
      Beszel[Beszel]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    subgraph ReseauIdentite[Réseau / identité / outils]&lt;br /&gt;
      Headscale[Headscale + UI]&lt;br /&gt;
      CyberChef[CyberChef]&lt;br /&gt;
      SocialAnalyzer[Social Analyzer]&lt;br /&gt;
      DT[Dependency-Track]&lt;br /&gt;
      Scriberr[Scriberr]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    Caddy --&amp;gt; OpenWebUI&lt;br /&gt;
    Caddy --&amp;gt; Nextcloud&lt;br /&gt;
    Caddy --&amp;gt; N8N&lt;br /&gt;
    Caddy --&amp;gt; Vaultwarden&lt;br /&gt;
    Caddy --&amp;gt; MediaWikiNode&lt;br /&gt;
    Caddy --&amp;gt; Paperless&lt;br /&gt;
    Caddy --&amp;gt; Karakeep&lt;br /&gt;
    Caddy --&amp;gt; Immich&lt;br /&gt;
    Caddy --&amp;gt; Uptime&lt;br /&gt;
    Caddy --&amp;gt; Beszel&lt;br /&gt;
    Caddy --&amp;gt; Headscale&lt;br /&gt;
    Caddy --&amp;gt; CyberChef&lt;br /&gt;
    Caddy --&amp;gt; SocialAnalyzer&lt;br /&gt;
    Caddy --&amp;gt; DT&lt;br /&gt;
    Caddy --&amp;gt; Scriberr&lt;br /&gt;
    Caddy --&amp;gt; Ollama&lt;br /&gt;
    Caddy --&amp;gt; HomepageNode&lt;br /&gt;
&lt;br /&gt;
    Wiki --&amp;gt; Trace&lt;br /&gt;
    Wiki --&amp;gt; Archi&lt;br /&gt;
    Wiki --&amp;gt; Models&lt;br /&gt;
    Wiki --&amp;gt; Deploy&lt;br /&gt;
&lt;br /&gt;
    click Homepage &amp;quot;https://lololand.hopto.org:25697&amp;quot; &amp;quot;Ouvrir Homepage&amp;quot;&lt;br /&gt;
    click Wiki &amp;quot;https://lololand.hopto.org:25698&amp;quot; &amp;quot;Ouvrir MediaWiki&amp;quot;&lt;br /&gt;
    click OpenWebUI &amp;quot;https://lololand.hopto.org:25680&amp;quot; &amp;quot;Ouvrir Open WebUI&amp;quot;&lt;br /&gt;
    click Ollama &amp;quot;https://lololand.hopto.org:25434&amp;quot; &amp;quot;Ouvrir Ollama&amp;quot;&lt;br /&gt;
    click Nextcloud &amp;quot;https://lololand.hopto.org:25696&amp;quot; &amp;quot;Ouvrir Nextcloud&amp;quot;&lt;br /&gt;
    click N8N &amp;quot;https://lololand.hopto.org:25678&amp;quot; &amp;quot;Ouvrir n8n&amp;quot;&lt;br /&gt;
    click Vaultwarden &amp;quot;https://lololand.hopto.org:25682&amp;quot; &amp;quot;Ouvrir Vaultwarden&amp;quot;&lt;br /&gt;
    click MediaWikiNode &amp;quot;https://lololand.hopto.org:25698&amp;quot; &amp;quot;Ouvrir MediaWiki&amp;quot;&lt;br /&gt;
    click Paperless &amp;quot;https://lololand.hopto.org:25694&amp;quot; &amp;quot;Ouvrir Paperless-ngx&amp;quot;&lt;br /&gt;
    click Karakeep &amp;quot;https://lololand.hopto.org:25695&amp;quot; &amp;quot;Ouvrir Karakeep&amp;quot;&lt;br /&gt;
    click Immich &amp;quot;https://lololand.hopto.org:25688&amp;quot; &amp;quot;Ouvrir Immich&amp;quot;&lt;br /&gt;
    click Uptime &amp;quot;https://lololand.hopto.org:25683&amp;quot; &amp;quot;Ouvrir Uptime Kuma&amp;quot;&lt;br /&gt;
    click Beszel &amp;quot;https://lololand.hopto.org:25693&amp;quot; &amp;quot;Ouvrir Beszel&amp;quot;&lt;br /&gt;
    click Headscale &amp;quot;https://lololand.hopto.org:25689&amp;quot; &amp;quot;Ouvrir Headscale&amp;quot;&lt;br /&gt;
    click CyberChef &amp;quot;https://lololand.hopto.org:25691&amp;quot; &amp;quot;Ouvrir CyberChef&amp;quot;&lt;br /&gt;
    click SocialAnalyzer &amp;quot;https://lololand.hopto.org:25686&amp;quot; &amp;quot;Ouvrir Social Analyzer&amp;quot;&lt;br /&gt;
    click DT &amp;quot;https://lololand.hopto.org:25681&amp;quot; &amp;quot;Ouvrir Dependency-Track&amp;quot;&lt;br /&gt;
    click Scriberr &amp;quot;https://lololand.hopto.org:25684&amp;quot; &amp;quot;Ouvrir Scriberr&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    click Trace &amp;quot;https://lololand.hopto.org:25698/index.php?title=Trace_install_tas&amp;quot; &amp;quot;Voir la trace d&#039;installation&amp;quot;&lt;br /&gt;
    click Archi &amp;quot;https://lololand.hopto.org:25698/index.php?title=Architecture_logicielle_de_tas&amp;quot; &amp;quot;Voir l&#039;architecture détaillée&amp;quot;&lt;br /&gt;
    click Models &amp;quot;https://lololand.hopto.org:25698/index.php?title=Index_des_modèles_de_schémas&amp;quot; &amp;quot;Voir l&#039;index des modèles&amp;quot;&lt;br /&gt;
    click Deploy &amp;quot;https://lololand.hopto.org:25698/index.php?title=Déploiement_Mermaid_PlantUML_BPMN_JS&amp;quot; &amp;quot;Voir le déploiement des diagrammes&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Liens directs utiles ==&lt;br /&gt;
* [[Trace install tas]]&lt;br /&gt;
* [[Architecture logicielle de tas]]&lt;br /&gt;
* [[Index des modèles de schémas]]&lt;br /&gt;
* [[Déploiement Mermaid PlantUML BPMN JS]]&lt;br /&gt;
&lt;br /&gt;
== Remarque ==&lt;br /&gt;
Si l&#039;architecture évolue, il faut mettre à jour en parallèle :&lt;br /&gt;
* cette page&lt;br /&gt;
* [[Trace install tas]]&lt;br /&gt;
* [[Architecture logicielle de tas]]&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas&amp;diff=84</id>
		<title>Trace install tas</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas&amp;diff=84"/>
		<updated>2026-03-18T22:48:54Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Phase 3 : ajout du lien vers l&amp;#039;architecture&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas =&lt;br /&gt;
&lt;br /&gt;
Cette page sert de &#039;&#039;&#039;trace d&#039;installation et de configuration&#039;&#039;&#039; pour les principales briques logicielles déployées sur la machine &#039;&#039;&#039;tas&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Références transverses ==&lt;br /&gt;
* [[Architecture logicielle de tas]]&lt;br /&gt;
&lt;br /&gt;
== Procédure de maintenance documentaire ==&lt;br /&gt;
À chaque évolution de configuration du serveur, il faut &#039;&#039;&#039;réappliquer cette procédure de documentation&#039;&#039;&#039;.&lt;br /&gt;
Concrètement, lors d&#039;un ajout, d&#039;une suppression ou d&#039;une modification de service, il faut mettre à jour :&lt;br /&gt;
* cette page centrale&lt;br /&gt;
* la page spécifique de la brique concernée&lt;br /&gt;
* la documentation Markdown locale quand elle existe&lt;br /&gt;
* les références Homepage et Caddy si les ports ou URLs changent&lt;br /&gt;
* la page [[Architecture logicielle de tas]] si la cartographie évolue&lt;br /&gt;
&lt;br /&gt;
== Pages spécifiques ==&lt;br /&gt;
* [[Trace install tas - Open WebUI]]&lt;br /&gt;
* [[Trace install tas - Dependency-Track]]&lt;br /&gt;
* [[Trace install tas - Vaultwarden]]&lt;br /&gt;
* [[Trace install tas - Uptime Kuma]]&lt;br /&gt;
* [[Trace install tas - Scriberr]]&lt;br /&gt;
* [[Trace install tas - Social Analyzer]]&lt;br /&gt;
* [[Trace install tas - Immich]]&lt;br /&gt;
* [[Trace install tas - Headscale]]&lt;br /&gt;
* [[Trace install tas - CyberChef]]&lt;br /&gt;
* [[Trace install tas - Beszel]]&lt;br /&gt;
* [[Trace install tas - Paperless-ngx]]&lt;br /&gt;
* [[Trace install tas - Karakeep]]&lt;br /&gt;
* [[Trace install tas - Nextcloud]]&lt;br /&gt;
* [[Trace install tas - Homepage]]&lt;br /&gt;
* [[Trace install tas - MediaWiki]]&lt;br /&gt;
* [[Trace install tas - n8n]]&lt;br /&gt;
* [[Trace install tas - Ollama]]&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Architecture_logicielle_de_tas&amp;diff=83</id>
		<title>Architecture logicielle de tas</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Architecture_logicielle_de_tas&amp;diff=83"/>
		<updated>2026-03-18T22:48:17Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Création de la cartographie d&amp;#039;architecture de tas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Architecture logicielle de tas =&lt;br /&gt;
&lt;br /&gt;
Cette page décrit la cartographie logique actuelle des principales briques logicielles de la machine &#039;&#039;&#039;tas&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Vue d&#039;ensemble ==&lt;br /&gt;
* &#039;&#039;&#039;Caddy&#039;&#039;&#039; sert de reverse proxy d&#039;entrée publique&lt;br /&gt;
* les applications sont majoritairement déployées en &#039;&#039;&#039;conteneurs Podman&#039;&#039;&#039;, souvent gérés par des &#039;&#039;&#039;services/quadlets&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Homepage&#039;&#039;&#039; sert de portail de navigation&lt;br /&gt;
* &#039;&#039;&#039;MediaWiki&#039;&#039;&#039; sert de base documentaire et de trace d&#039;installation&lt;br /&gt;
&lt;br /&gt;
== Chaîne d&#039;exposition ==&lt;br /&gt;
Le schéma général est le suivant :&lt;br /&gt;
* utilisateur -&amp;gt; Caddy -&amp;gt; port local applicatif -&amp;gt; conteneur / service&lt;br /&gt;
&lt;br /&gt;
Exemples :&lt;br /&gt;
* 25680 -&amp;gt; 8080 -&amp;gt; Open WebUI&lt;br /&gt;
* 25681 -&amp;gt; 8081 -&amp;gt; Dependency-Track Frontend&lt;br /&gt;
* 25692 -&amp;gt; 8092 -&amp;gt; Dependency-Track API&lt;br /&gt;
* 25689 -&amp;gt; 8090 ou 8089 -&amp;gt; Headscale UI / API selon le chemin&lt;br /&gt;
* 25697 -&amp;gt; 8097 -&amp;gt; Homepage&lt;br /&gt;
* 25698 -&amp;gt; 8098 -&amp;gt; MediaWiki&lt;br /&gt;
&lt;br /&gt;
== Briques de présentation ==&lt;br /&gt;
=== Homepage ===&lt;br /&gt;
* portail de services&lt;br /&gt;
* configuration dans `/home/loic/homepage-config`&lt;br /&gt;
* lien entre vision publique et liens internes&lt;br /&gt;
&lt;br /&gt;
=== MediaWiki ===&lt;br /&gt;
* documentation technique&lt;br /&gt;
* exemples Mermaid / PlantUML / BPMN JS&lt;br /&gt;
* trace install tas et pages par brique&lt;br /&gt;
&lt;br /&gt;
== Briques LLM ==&lt;br /&gt;
=== Ollama ===&lt;br /&gt;
* moteur local d&#039;inférence LLM&lt;br /&gt;
* port local 11434&lt;br /&gt;
* port public 25434 protégé par basicauth&lt;br /&gt;
&lt;br /&gt;
=== Open WebUI ===&lt;br /&gt;
* interface d&#039;accès aux modèles&lt;br /&gt;
* exposé sur 8080 / 25680&lt;br /&gt;
* dépend fonctionnellement d&#039;Ollama&lt;br /&gt;
&lt;br /&gt;
== Briques productivité / plateforme ==&lt;br /&gt;
=== Nextcloud ===&lt;br /&gt;
* fichiers / groupware&lt;br /&gt;
* dépend de MariaDB et Redis&lt;br /&gt;
* exposé sur 8096 / 25696&lt;br /&gt;
&lt;br /&gt;
=== n8n ===&lt;br /&gt;
* automatisation / workflows&lt;br /&gt;
* exposé sur 5678 / 25678&lt;br /&gt;
&lt;br /&gt;
=== MediaWiki ===&lt;br /&gt;
* documentation / wiki&lt;br /&gt;
* dépend de MariaDB dédiée&lt;br /&gt;
* exposé sur 8098 / 25698&lt;br /&gt;
&lt;br /&gt;
== Briques sécurité / identité ==&lt;br /&gt;
=== Vaultwarden ===&lt;br /&gt;
* gestionnaire de mots de passe&lt;br /&gt;
* exposé sur 8082 / 25682&lt;br /&gt;
&lt;br /&gt;
=== Headscale + Headscale UI ===&lt;br /&gt;
* plan de contrôle Tailscale self-hosted&lt;br /&gt;
* API sur 8089, UI sur 8090&lt;br /&gt;
* route publique unifiée 25689 avec routage conditionnel&lt;br /&gt;
&lt;br /&gt;
== Briques supervision / observabilité ==&lt;br /&gt;
=== Uptime Kuma ===&lt;br /&gt;
* supervision disponibilité&lt;br /&gt;
* 8083 / 25683&lt;br /&gt;
&lt;br /&gt;
=== Beszel ===&lt;br /&gt;
* monitoring léger&lt;br /&gt;
* hub sur 8093 / 25693&lt;br /&gt;
* agent local avec socket Podman rootless en lecture seule&lt;br /&gt;
&lt;br /&gt;
== Briques documentaires / données ==&lt;br /&gt;
=== Paperless-ngx ===&lt;br /&gt;
* GED / OCR&lt;br /&gt;
* dépend de Redis&lt;br /&gt;
* 8094 / 25694&lt;br /&gt;
&lt;br /&gt;
=== Karakeep ===&lt;br /&gt;
* bookmarks / capture web&lt;br /&gt;
* dépend de Meilisearch et d&#039;un navigateur auxiliaire&lt;br /&gt;
* 8095 / 25695&lt;br /&gt;
&lt;br /&gt;
=== Immich ===&lt;br /&gt;
* photos / vidéos&lt;br /&gt;
* dépend de Redis, Postgres et d&#039;un composant ML ROCm&lt;br /&gt;
* 8088 / 25688&lt;br /&gt;
&lt;br /&gt;
== Briques techniques / outillage ==&lt;br /&gt;
=== CyberChef ===&lt;br /&gt;
* outils de transformation de données&lt;br /&gt;
* 8091 / 25691&lt;br /&gt;
&lt;br /&gt;
=== Social Analyzer ===&lt;br /&gt;
* analyse OSINT / profils sociaux&lt;br /&gt;
* dépend d&#039;un hub Selenium et d&#039;un noeud Firefox&lt;br /&gt;
* 8086 / 25686&lt;br /&gt;
&lt;br /&gt;
=== Dependency-Track ===&lt;br /&gt;
* frontend et API distincts&lt;br /&gt;
* 8081 / 25681 pour l&#039;UI&lt;br /&gt;
* 8092 / 25692 pour l&#039;API&lt;br /&gt;
* historique bundled encore visible dans l&#039;état actuel&lt;br /&gt;
&lt;br /&gt;
== Réseaux internes identifiés ==&lt;br /&gt;
* `dt-net`&lt;br /&gt;
* `nextcloud-net`&lt;br /&gt;
* `paperless-net`&lt;br /&gt;
* `karakeep-net`&lt;br /&gt;
* `mediawiki_default`&lt;br /&gt;
* `immich_default`&lt;br /&gt;
* `social-analyzer_default`&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance notables ==&lt;br /&gt;
* `nextcloud-data`, `nextcloud-html`, `nextcloud-db`&lt;br /&gt;
* `paperless-data`, `paperless-media`, `paperless-redis-data`&lt;br /&gt;
* `karakeep-data`, `karakeep-meili-data`&lt;br /&gt;
* `beszel-data`&lt;br /&gt;
* `vaultwarden_data`&lt;br /&gt;
* `uptime-kuma`&lt;br /&gt;
* `n8n_data`&lt;br /&gt;
* données MediaWiki dans `/home/loic/mediawiki/app` et `/home/loic/mediawiki/db`&lt;br /&gt;
&lt;br /&gt;
== Principe de maintenance ==&lt;br /&gt;
Lorsqu&#039;une brique évolue, il faut mettre à jour :&lt;br /&gt;
* [[Trace install tas]]&lt;br /&gt;
* la page spécifique de la brique&lt;br /&gt;
* la présente cartographie si l&#039;architecture change&lt;br /&gt;
* Homepage et Caddy si les points d&#039;exposition changent&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Vaultwarden&amp;diff=82</id>
		<title>Trace install tas - Vaultwarden</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Vaultwarden&amp;diff=82"/>
		<updated>2026-03-18T22:48:17Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Phase 3 : sauvegarde, restauration et persistance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - Vaultwarden =&lt;br /&gt;
&lt;br /&gt;
== Rôle ==&lt;br /&gt;
Gestionnaire de mots de passe compatible Bitwarden.&lt;br /&gt;
&lt;br /&gt;
== Accès ==&lt;br /&gt;
* Local : http://10.8.0.1:8082&lt;br /&gt;
* Public : https://lololand.hopto.org:25682&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
8082 local, 25682 public&lt;br /&gt;
&lt;br /&gt;
== Exécution / runtime ==&lt;br /&gt;
Quadlet /home/loic/.config/containers/systemd/vaultwarden.container ; conteneur vaultwarden-user&lt;br /&gt;
&lt;br /&gt;
== Chemins de configuration ==&lt;br /&gt;
* /home/loic/.config/containers/systemd/vaultwarden.container&lt;br /&gt;
* /home/loic/.config/containers/systemd/vaultwarden.env&lt;br /&gt;
* /home/loic/containers/vaultwarden&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance ==&lt;br /&gt;
* vaultwarden_data:/data&lt;br /&gt;
&lt;br /&gt;
== Dépendances ==&lt;br /&gt;
* Caddy 25682 -&amp;gt; 8082&lt;br /&gt;
&lt;br /&gt;
== Remarques ==&lt;br /&gt;
DOMAIN configuré sur l&#039;URL publique. SIGNUPS_ALLOWED=true actuellement. Service sensible ; traiter tout changement avec précaution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données / emplacements à sauvegarder ==&lt;br /&gt;
* Coffre / données : volume vaultwarden_data&lt;br /&gt;
* Paramètres : vaultwarden.container et vaultwarden.env&lt;br /&gt;
&lt;br /&gt;
== Sauvegarde ==&lt;br /&gt;
* Sauvegarder le volume vaultwarden_data.&lt;br /&gt;
* Exporter le quadlet vaultwarden.container et le fichier vaultwarden.env.&lt;br /&gt;
&lt;br /&gt;
== Restauration ==&lt;br /&gt;
* Restaurer le volume vaultwarden_data.&lt;br /&gt;
* Restaurer le quadlet / env puis relancer le service.&lt;br /&gt;
&lt;br /&gt;
== Maintenance documentaire ==&lt;br /&gt;
Lors d&#039;un changement de domaine, token admin, politique d&#039;inscription ou volume de données, mettre à jour cette page.&lt;br /&gt;
&lt;br /&gt;
== Trace documentaire ==&lt;br /&gt;
Cette page fait partie de [[Trace install tas]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Uptime_Kuma&amp;diff=81</id>
		<title>Trace install tas - Uptime Kuma</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Uptime_Kuma&amp;diff=81"/>
		<updated>2026-03-18T22:48:17Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Phase 3 : sauvegarde, restauration et persistance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - Uptime Kuma =&lt;br /&gt;
&lt;br /&gt;
== Rôle ==&lt;br /&gt;
Supervision et disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Accès ==&lt;br /&gt;
* Local : http://10.8.0.1:8083&lt;br /&gt;
* Public : https://lololand.hopto.org:25683&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
8083 local, 25683 public&lt;br /&gt;
&lt;br /&gt;
== Exécution / runtime ==&lt;br /&gt;
Quadlet /home/loic/.config/containers/systemd/uptime-kuma.container ; conteneur uptime-kuma&lt;br /&gt;
&lt;br /&gt;
== Chemins de configuration ==&lt;br /&gt;
* /home/loic/.config/containers/systemd/uptime-kuma.container&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance ==&lt;br /&gt;
* uptime-kuma:/app/data&lt;br /&gt;
&lt;br /&gt;
== Dépendances ==&lt;br /&gt;
* Caddy 25683 -&amp;gt; 8083&lt;br /&gt;
&lt;br /&gt;
== Remarques ==&lt;br /&gt;
Ajout d&#039;un host statique lololand.hopto.org via PodmanArgs. Peut centraliser la supervision des autres briques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données / emplacements à sauvegarder ==&lt;br /&gt;
* Données applicatives : volume uptime-kuma&lt;br /&gt;
&lt;br /&gt;
== Sauvegarde ==&lt;br /&gt;
* Sauvegarder le volume uptime-kuma.&lt;br /&gt;
* Exporter le quadlet uptime-kuma.container.&lt;br /&gt;
&lt;br /&gt;
== Restauration ==&lt;br /&gt;
* Restaurer le volume uptime-kuma.&lt;br /&gt;
* Relancer le service puis vérifier les moniteurs.&lt;br /&gt;
&lt;br /&gt;
== Maintenance documentaire ==&lt;br /&gt;
Lors d&#039;un changement de moniteurs, de volume ou d&#039;URL publique, mettre à jour cette page.&lt;br /&gt;
&lt;br /&gt;
== Trace documentaire ==&lt;br /&gt;
Cette page fait partie de [[Trace install tas]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Social_Analyzer&amp;diff=80</id>
		<title>Trace install tas - Social Analyzer</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Social_Analyzer&amp;diff=80"/>
		<updated>2026-03-18T22:48:16Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Phase 3 : sauvegarde, restauration et persistance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - Social Analyzer =&lt;br /&gt;
&lt;br /&gt;
== Rôle ==&lt;br /&gt;
OSINT / analyse de profils sociaux.&lt;br /&gt;
&lt;br /&gt;
== Accès ==&lt;br /&gt;
* Local : http://10.8.0.1:8086&lt;br /&gt;
* Public : https://lololand.hopto.org:25686&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
8086 applicatif, 4444 Selenium hub, 9002 VNC Firefox, 25686 public Caddy&lt;br /&gt;
&lt;br /&gt;
== Exécution / runtime ==&lt;br /&gt;
Stack docker-compose dans /home/loic/clawd/social-analyzer/docker-compose.yml ; conteneurs social-analyzer_social-analyzer_1, social-analyzer_hub_1, web-automation_firefox&lt;br /&gt;
&lt;br /&gt;
== Chemins de configuration ==&lt;br /&gt;
* /home/loic/clawd/social-analyzer/docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance ==&lt;br /&gt;
* /dev/shm monté dans le noeud Firefox&lt;br /&gt;
&lt;br /&gt;
== Dépendances ==&lt;br /&gt;
* hub Selenium&lt;br /&gt;
* node-firefox Selenium&lt;br /&gt;
* Caddy 25686 -&amp;gt; 8086&lt;br /&gt;
&lt;br /&gt;
== Remarques ==&lt;br /&gt;
Le service Homepage pointait historiquement aussi vers 8085 pour Social Analyser, alors que la stack courante expose 8086. Cette divergence doit être surveillée et corrigée si nécessaire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données / emplacements à sauvegarder ==&lt;br /&gt;
* Configuration principale : /home/loic/clawd/social-analyzer/docker-compose.yml&lt;br /&gt;
* Pas de volume persistant applicatif notable confirmé dans cette passe&lt;br /&gt;
&lt;br /&gt;
== Sauvegarde ==&lt;br /&gt;
* Sauvegarder /home/loic/clawd/social-analyzer/docker-compose.yml et le code / contexte de build si modifié.&lt;br /&gt;
* Sauvegarder les éventuels fichiers .env associés s&#039;ils existent.&lt;br /&gt;
&lt;br /&gt;
== Restauration ==&lt;br /&gt;
* Restaurer le dossier /home/loic/clawd/social-analyzer puis relancer docker-compose / podman-compose selon la méthode utilisée.&lt;br /&gt;
&lt;br /&gt;
== Maintenance documentaire ==&lt;br /&gt;
Lors d&#039;une évolution de la stack Selenium, du port exposé ou de la route Caddy, mettre à jour cette page et Homepage.&lt;br /&gt;
&lt;br /&gt;
== Trace documentaire ==&lt;br /&gt;
Cette page fait partie de [[Trace install tas]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Scriberr&amp;diff=79</id>
		<title>Trace install tas - Scriberr</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Scriberr&amp;diff=79"/>
		<updated>2026-03-18T22:48:16Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Phase 3 : sauvegarde, restauration et persistance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - Scriberr =&lt;br /&gt;
&lt;br /&gt;
== Rôle ==&lt;br /&gt;
Service de transcription / speech-to-text.&lt;br /&gt;
&lt;br /&gt;
== Accès ==&lt;br /&gt;
* Local : http://10.8.0.1:8084&lt;br /&gt;
* Public : https://lololand.hopto.org:25684&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
8084 local, 25684 public&lt;br /&gt;
&lt;br /&gt;
== Exécution / runtime ==&lt;br /&gt;
Service exposé par Caddy et référencé par Homepage ; méthode de lancement exacte non encore documentée ici&lt;br /&gt;
&lt;br /&gt;
== Chemins de configuration ==&lt;br /&gt;
* /etc/caddy/Caddyfile&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance ==&lt;br /&gt;
* Non documenté précisément à ce stade&lt;br /&gt;
&lt;br /&gt;
== Dépendances ==&lt;br /&gt;
* Caddy 25684 -&amp;gt; 8084&lt;br /&gt;
&lt;br /&gt;
== Remarques ==&lt;br /&gt;
La brique est visible côté proxy et dashboard, mais la source d&#039;installation/service devrait être documentée plus précisément lors d&#039;une prochaine passe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données / emplacements à sauvegarder ==&lt;br /&gt;
* Chemins de données non confirmés dans cette passe&lt;br /&gt;
&lt;br /&gt;
== Sauvegarde ==&lt;br /&gt;
* Sauvegarder les fichiers de service/compose lorsqu&#039;ils seront identifiés précisément.&lt;br /&gt;
* À ce stade, sauvegarder au minimum la documentation et la configuration Caddy associée.&lt;br /&gt;
&lt;br /&gt;
== Restauration ==&lt;br /&gt;
* Restaurer la méthode de lancement documentée une fois identifiée, puis vérifier 8084/25684.&lt;br /&gt;
&lt;br /&gt;
== Maintenance documentaire ==&lt;br /&gt;
Dès que la stack ou le service exact est identifié, compléter cette page avec les chemins, volumes et variables.&lt;br /&gt;
&lt;br /&gt;
== Trace documentaire ==&lt;br /&gt;
Cette page fait partie de [[Trace install tas]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Paperless-ngx&amp;diff=78</id>
		<title>Trace install tas - Paperless-ngx</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Paperless-ngx&amp;diff=78"/>
		<updated>2026-03-18T22:48:16Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Phase 3 : sauvegarde, restauration et persistance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - Paperless-ngx =&lt;br /&gt;
&lt;br /&gt;
== Rôle ==&lt;br /&gt;
GED / OCR documentaire.&lt;br /&gt;
&lt;br /&gt;
== Accès ==&lt;br /&gt;
* Local : http://10.8.0.1:8094&lt;br /&gt;
* Public : https://lololand.hopto.org:25694&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
8094 local, 25694 public&lt;br /&gt;
&lt;br /&gt;
== Exécution / runtime ==&lt;br /&gt;
Quadlets systemd user : paperless.container et paperless-broker.container ; conteneur principal systemd-paperless&lt;br /&gt;
&lt;br /&gt;
== Chemins de configuration ==&lt;br /&gt;
* /home/loic/.config/containers/systemd/paperless.container&lt;br /&gt;
* /home/loic/paperless/consume&lt;br /&gt;
* /home/loic/paperless/export&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance ==&lt;br /&gt;
* paperless-data:/usr/src/paperless/data&lt;br /&gt;
* paperless-media:/usr/src/paperless/media&lt;br /&gt;
* /home/loic/paperless/export -&amp;gt; /usr/src/paperless/export&lt;br /&gt;
* /home/loic/paperless/consume -&amp;gt; /usr/src/paperless/consume&lt;br /&gt;
&lt;br /&gt;
== Dépendances ==&lt;br /&gt;
* paperless-broker.service&lt;br /&gt;
* réseau paperless-net&lt;br /&gt;
* redis via PAPERLESS_REDIS&lt;br /&gt;
* Caddy 25694 -&amp;gt; 8094&lt;br /&gt;
&lt;br /&gt;
== Remarques ==&lt;br /&gt;
OCR configuré sur fra+eng. Service important pour la persistance documentaire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données / emplacements à sauvegarder ==&lt;br /&gt;
* Métadonnées / application : volume paperless-data&lt;br /&gt;
* Documents : volume paperless-media&lt;br /&gt;
* Répertoires locaux : /home/loic/paperless/export et /home/loic/paperless/consume&lt;br /&gt;
&lt;br /&gt;
== Sauvegarde ==&lt;br /&gt;
* Sauvegarder les volumes paperless-data, paperless-media, paperless-redis-data.&lt;br /&gt;
* Sauvegarder /home/loic/paperless/export et /home/loic/paperless/consume.&lt;br /&gt;
&lt;br /&gt;
== Restauration ==&lt;br /&gt;
* Restaurer les volumes paperless-data, paperless-media, paperless-redis-data.&lt;br /&gt;
* Restaurer /home/loic/paperless/export et /home/loic/paperless/consume puis relancer les services.&lt;br /&gt;
&lt;br /&gt;
== Maintenance documentaire ==&lt;br /&gt;
Lors d&#039;un changement de répertoires consume/export, OCR, broker Redis ou volumes, mettre à jour cette page.&lt;br /&gt;
&lt;br /&gt;
== Trace documentaire ==&lt;br /&gt;
Cette page fait partie de [[Trace install tas]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Open_WebUI&amp;diff=77</id>
		<title>Trace install tas - Open WebUI</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Open_WebUI&amp;diff=77"/>
		<updated>2026-03-18T22:48:15Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Phase 3 : sauvegarde, restauration et persistance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - Open WebUI =&lt;br /&gt;
&lt;br /&gt;
== Rôle ==&lt;br /&gt;
Interface web vers les LLM locaux.&lt;br /&gt;
&lt;br /&gt;
== Accès ==&lt;br /&gt;
* Local : http://10.8.0.1:8080&lt;br /&gt;
* Public : https://lololand.hopto.org:25680&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
8080 local, 25680 public&lt;br /&gt;
&lt;br /&gt;
== Exécution / runtime ==&lt;br /&gt;
Conteneur open-webui (image ghcr.io/open-webui/open-webui:main) ; exposition Caddy active&lt;br /&gt;
&lt;br /&gt;
== Chemins de configuration ==&lt;br /&gt;
* /etc/caddy/Caddyfile&lt;br /&gt;
* /home/loic/clawd/RAG_openWebUI.md&lt;br /&gt;
* /home/loic/openwebui.tar.gz&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance ==&lt;br /&gt;
* Non documenté précisément à ce stade&lt;br /&gt;
&lt;br /&gt;
== Dépendances ==&lt;br /&gt;
* Ollama pour l&#039;inférence locale&lt;br /&gt;
* Caddy 25680 -&amp;gt; 8080&lt;br /&gt;
&lt;br /&gt;
== Remarques ==&lt;br /&gt;
Le conteneur est actif mais les détails de la méthode de lancement ne sont pas encore documentés dans un quadlet local identifié.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données / emplacements à sauvegarder ==&lt;br /&gt;
* Volume Podman nommé open-webui présent sur l&#039;hôte&lt;br /&gt;
* Chemins de lancement exacts encore à confirmer&lt;br /&gt;
&lt;br /&gt;
== Sauvegarde ==&lt;br /&gt;
* Sauvegarder le volume Podman open-webui s&#039;il correspond bien à l&#039;instance active.&lt;br /&gt;
* Sauvegarder les fichiers documentaires ou compose/quadlet dès qu&#039;ils seront identifiés précisément.&lt;br /&gt;
&lt;br /&gt;
== Restauration ==&lt;br /&gt;
* Restaurer le volume open-webui puis relancer le conteneur/service actif.&lt;br /&gt;
* Vérifier ensuite la connexion à Ollama et le proxy Caddy.&lt;br /&gt;
&lt;br /&gt;
== Maintenance documentaire ==&lt;br /&gt;
Dès que le fichier de service exact ou le compose est identifié, l&#039;ajouter ici avec les volumes et variables. Mettre à jour cette page à chaque changement d&#039;image, de backend LLM ou de proxy.&lt;br /&gt;
&lt;br /&gt;
== Trace documentaire ==&lt;br /&gt;
Cette page fait partie de [[Trace install tas]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Ollama&amp;diff=76</id>
		<title>Trace install tas - Ollama</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Ollama&amp;diff=76"/>
		<updated>2026-03-18T22:48:15Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Phase 3 : sauvegarde, restauration et persistance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - Ollama =&lt;br /&gt;
&lt;br /&gt;
== Rôle ==&lt;br /&gt;
API locale de modèles LLM.&lt;br /&gt;
&lt;br /&gt;
== Accès ==&lt;br /&gt;
* Local : http://10.8.0.1:11434&lt;br /&gt;
* Public : https://lololand.hopto.org:25434&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
11434 local, 25434 public avec basicauth&lt;br /&gt;
&lt;br /&gt;
== Exécution / runtime ==&lt;br /&gt;
Conteneur ollama_roc (image docker.io/ollama/ollama:rocm)&lt;br /&gt;
&lt;br /&gt;
== Chemins de configuration ==&lt;br /&gt;
* /etc/caddy/Caddyfile&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance ==&lt;br /&gt;
* Non documenté précisément à ce stade&lt;br /&gt;
&lt;br /&gt;
== Dépendances ==&lt;br /&gt;
* Caddy 25434 -&amp;gt; 11434&lt;br /&gt;
* basicauth sur les accès publics&lt;br /&gt;
* clients comme Open WebUI&lt;br /&gt;
&lt;br /&gt;
== Remarques ==&lt;br /&gt;
Point central de l&#039;inférence locale. Le proxy public est protégé par basicauth et une variante localhost/127.0.0.1 TLS internal est aussi configurée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données / emplacements à sauvegarder ==&lt;br /&gt;
* Données modèles Ollama non confirmées précisément dans cette passe&lt;br /&gt;
* Proxy public documenté dans /etc/caddy/Caddyfile&lt;br /&gt;
&lt;br /&gt;
== Sauvegarde ==&lt;br /&gt;
* Sauvegarder les modèles et données Ollama dès que leur chemin exact est confirmé sur cette instance.&lt;br /&gt;
* Sauvegarder aussi la configuration Caddy liée à 25434.&lt;br /&gt;
&lt;br /&gt;
== Restauration ==&lt;br /&gt;
* Restaurer les données modèles puis relancer le conteneur ollama_roc.&lt;br /&gt;
* Vérifier l&#039;accès local 11434 et le proxy 25434 avec basicauth.&lt;br /&gt;
&lt;br /&gt;
== Maintenance documentaire ==&lt;br /&gt;
Lors d&#039;un changement de modèle, d&#039;image ROCm, de basicauth ou d&#039;URL publique, mettre à jour cette page.&lt;br /&gt;
&lt;br /&gt;
== Trace documentaire ==&lt;br /&gt;
Cette page fait partie de [[Trace install tas]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Nextcloud&amp;diff=75</id>
		<title>Trace install tas - Nextcloud</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Nextcloud&amp;diff=75"/>
		<updated>2026-03-18T22:48:14Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Phase 3 : sauvegarde, restauration et persistance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - Nextcloud =&lt;br /&gt;
&lt;br /&gt;
== Rôle ==&lt;br /&gt;
Stockage de fichiers et groupware.&lt;br /&gt;
&lt;br /&gt;
== Accès ==&lt;br /&gt;
* Local : http://10.8.0.1:8096&lt;br /&gt;
* Public : https://lololand.hopto.org:25696&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
8096 local, 25696 public&lt;br /&gt;
&lt;br /&gt;
== Exécution / runtime ==&lt;br /&gt;
Quadlets systemd user : nextcloud.container, nextcloud-db.container, nextcloud-redis.container ; conteneurs systemd-nextcloud, nextcloud-db, nextcloud-redis&lt;br /&gt;
&lt;br /&gt;
== Chemins de configuration ==&lt;br /&gt;
* /home/loic/.config/containers/systemd/nextcloud.container&lt;br /&gt;
* /home/loic/.config/containers/systemd/nextcloud-db.container&lt;br /&gt;
* /home/loic/.config/containers/systemd/nextcloud-redis.container&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance ==&lt;br /&gt;
* nextcloud-html:/var/www/html&lt;br /&gt;
* nextcloud-data:/var/www/html/data&lt;br /&gt;
* nextcloud-db:/var/lib/mysql&lt;br /&gt;
&lt;br /&gt;
== Dépendances ==&lt;br /&gt;
* nextcloud-db.service&lt;br /&gt;
* nextcloud-redis.service&lt;br /&gt;
* réseau nextcloud-net&lt;br /&gt;
* Caddy 25696 -&amp;gt; 8096&lt;br /&gt;
&lt;br /&gt;
== Remarques ==&lt;br /&gt;
Trusted domains configurés pour localhost, 127.0.0.1 et lololand.hopto.org. PHP_MEMORY_LIMIT et PHP_UPLOAD_LIMIT à 1024M.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données / emplacements à sauvegarder ==&lt;br /&gt;
* HTML applicatif : volume nextcloud-html&lt;br /&gt;
* Données utilisateurs : volume nextcloud-data&lt;br /&gt;
* Base MariaDB : volume nextcloud-db&lt;br /&gt;
&lt;br /&gt;
== Sauvegarde ==&lt;br /&gt;
* Sauvegarder les volumes nextcloud-html, nextcloud-data et nextcloud-db.&lt;br /&gt;
* Exporter les quadlets nextcloud.container, nextcloud-db.container et nextcloud-redis.container.&lt;br /&gt;
&lt;br /&gt;
== Restauration ==&lt;br /&gt;
* Restaurer les volumes nextcloud-html, nextcloud-data et nextcloud-db.&lt;br /&gt;
* Redémarrer les services nextcloud-db, nextcloud-redis puis nextcloud.&lt;br /&gt;
&lt;br /&gt;
== Maintenance documentaire ==&lt;br /&gt;
Lors d&#039;un changement de base, redis, volumes ou trusted domains, mettre à jour cette page et la trace centrale.&lt;br /&gt;
&lt;br /&gt;
== Trace documentaire ==&lt;br /&gt;
Cette page fait partie de [[Trace install tas]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_n8n&amp;diff=74</id>
		<title>Trace install tas - n8n</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_n8n&amp;diff=74"/>
		<updated>2026-03-18T22:48:14Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Phase 3 : sauvegarde, restauration et persistance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - n8n =&lt;br /&gt;
&lt;br /&gt;
== Rôle ==&lt;br /&gt;
Automatisation low-code / workflows.&lt;br /&gt;
&lt;br /&gt;
== Accès ==&lt;br /&gt;
* Local : http://10.8.0.1:5678&lt;br /&gt;
* Public : https://lololand.hopto.org:25678&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
5678 local, 25678 public&lt;br /&gt;
&lt;br /&gt;
== Exécution / runtime ==&lt;br /&gt;
Quadlet /home/loic/.config/containers/systemd/n8n.container ; conteneur n8n&lt;br /&gt;
&lt;br /&gt;
== Chemins de configuration ==&lt;br /&gt;
* /home/loic/.config/containers/systemd/n8n.container&lt;br /&gt;
* /home/loic/prog/n8n_conf&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance ==&lt;br /&gt;
* n8n_data:/home/node/.n8n&lt;br /&gt;
&lt;br /&gt;
== Dépendances ==&lt;br /&gt;
* Caddy 25678 -&amp;gt; 5678&lt;br /&gt;
* WEBHOOK_URL public configurée&lt;br /&gt;
&lt;br /&gt;
== Remarques ==&lt;br /&gt;
N8N_HOST=lololand.hopto.org, WEBHOOK_URL configurée sur l&#039;URL publique. Timezone Europe/Paris.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données / emplacements à sauvegarder ==&lt;br /&gt;
* Volume principal : n8n_data&lt;br /&gt;
* Configuration runtime : quadlet n8n.container&lt;br /&gt;
&lt;br /&gt;
== Sauvegarde ==&lt;br /&gt;
* Sauvegarder le volume n8n_data.&lt;br /&gt;
* Exporter le quadlet /home/loic/.config/containers/systemd/n8n.container.&lt;br /&gt;
&lt;br /&gt;
== Restauration ==&lt;br /&gt;
* Restaurer le volume n8n_data.&lt;br /&gt;
* Relancer le service n8n et vérifier WEBHOOK_URL.&lt;br /&gt;
&lt;br /&gt;
== Maintenance documentaire ==&lt;br /&gt;
Lors d&#039;un changement d&#039;URL publique, de volume n8n_data ou de webhooks, mettre à jour cette page.&lt;br /&gt;
&lt;br /&gt;
== Trace documentaire ==&lt;br /&gt;
Cette page fait partie de [[Trace install tas]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_MediaWiki&amp;diff=73</id>
		<title>Trace install tas - MediaWiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_MediaWiki&amp;diff=73"/>
		<updated>2026-03-18T22:48:14Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Phase 3 : sauvegarde, restauration et persistance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - MediaWiki =&lt;br /&gt;
&lt;br /&gt;
== Rôle ==&lt;br /&gt;
Wiki collaboratif et base documentaire.&lt;br /&gt;
&lt;br /&gt;
== Accès ==&lt;br /&gt;
* Local : http://10.8.0.1:8098&lt;br /&gt;
* Public : https://lololand.hopto.org:25698&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
8098 local, 25698 public via Caddy&lt;br /&gt;
&lt;br /&gt;
== Exécution / runtime ==&lt;br /&gt;
Stack compose dans /home/loic/mediawiki ; conteneurs mediawiki-app et mediawiki-db&lt;br /&gt;
&lt;br /&gt;
== Chemins de configuration ==&lt;br /&gt;
* /home/loic/mediawiki/compose.yaml&lt;br /&gt;
* /home/loic/mediawiki/.env&lt;br /&gt;
* /home/loic/mediawiki/app/LocalSettings.php&lt;br /&gt;
* /home/loic/mediawiki/docs/README.md&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance ==&lt;br /&gt;
* ./app -&amp;gt; /var/www/html&lt;br /&gt;
* ./db -&amp;gt; /var/lib/mysql&lt;br /&gt;
&lt;br /&gt;
== Dépendances ==&lt;br /&gt;
* MariaDB dédiée (mediawiki-db)&lt;br /&gt;
* Caddy 25698 -&amp;gt; 8098&lt;br /&gt;
&lt;br /&gt;
== Remarques ==&lt;br /&gt;
Le wiki héberge la documentation d&#039;installation, la trace logicielle et les intégrations Mermaid / PlantUML / BPMN JS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données / emplacements à sauvegarder ==&lt;br /&gt;
* Données wiki : /home/loic/mediawiki/app&lt;br /&gt;
* Base : /home/loic/mediawiki/db&lt;br /&gt;
&lt;br /&gt;
== Sauvegarde ==&lt;br /&gt;
* Sauvegarder /home/loic/mediawiki/app, /home/loic/mediawiki/.env et /home/loic/mediawiki/docs.&lt;br /&gt;
* Sauvegarder la base MariaDB via dump ou en copiant /home/loic/mediawiki/db après arrêt propre.&lt;br /&gt;
&lt;br /&gt;
== Restauration ==&lt;br /&gt;
* Restaurer /home/loic/mediawiki/app, /home/loic/mediawiki/.env et /home/loic/mediawiki/db.&lt;br /&gt;
* Relancer la stack compose puis vérifier LocalSettings.php et l&#039;accès wiki.&lt;br /&gt;
&lt;br /&gt;
== Maintenance documentaire ==&lt;br /&gt;
Lors d&#039;un ajout d&#039;extensions, d&#039;un changement de compose, de variables .env, de Caddy ou de structure documentaire, mettre à jour cette page et les pages de documentation associées.&lt;br /&gt;
&lt;br /&gt;
== Trace documentaire ==&lt;br /&gt;
Cette page fait partie de [[Trace install tas]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Karakeep&amp;diff=72</id>
		<title>Trace install tas - Karakeep</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Karakeep&amp;diff=72"/>
		<updated>2026-03-18T22:48:14Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Phase 3 : sauvegarde, restauration et persistance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - Karakeep =&lt;br /&gt;
&lt;br /&gt;
== Rôle ==&lt;br /&gt;
Gestionnaire de bookmarks / lecture différée / capture web.&lt;br /&gt;
&lt;br /&gt;
== Accès ==&lt;br /&gt;
* Local : http://10.8.0.1:8095&lt;br /&gt;
* Public : https://lololand.hopto.org:25695&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
8095 local, 25695 public&lt;br /&gt;
&lt;br /&gt;
== Exécution / runtime ==&lt;br /&gt;
Quadlets : karakeep.container, karakeep-meilisearch.container, chrome auxiliaire ; conteneur principal systemd-karakeep&lt;br /&gt;
&lt;br /&gt;
== Chemins de configuration ==&lt;br /&gt;
* /home/loic/.config/containers/systemd/karakeep.container&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance ==&lt;br /&gt;
* karakeep-data:/data&lt;br /&gt;
&lt;br /&gt;
== Dépendances ==&lt;br /&gt;
* karakeep-meilisearch.service&lt;br /&gt;
* karakeep-chrome.service&lt;br /&gt;
* réseau karakeep-net&lt;br /&gt;
* MEILI_ADDR interne&lt;br /&gt;
* Caddy 25695 -&amp;gt; 8095&lt;br /&gt;
&lt;br /&gt;
== Remarques ==&lt;br /&gt;
Architecture multi-conteneurs avec moteur de recherche Meilisearch et navigateur auxiliaire pour le crawling.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données / emplacements à sauvegarder ==&lt;br /&gt;
* Données applicatives : volume karakeep-data&lt;br /&gt;
* Index de recherche : volume karakeep-meili-data&lt;br /&gt;
&lt;br /&gt;
== Sauvegarde ==&lt;br /&gt;
* Sauvegarder les volumes karakeep-data et karakeep-meili-data.&lt;br /&gt;
* Exporter le quadlet karakeep.container et les éventuels auxiliaires liés.&lt;br /&gt;
&lt;br /&gt;
== Restauration ==&lt;br /&gt;
* Restaurer les volumes karakeep-data et karakeep-meili-data.&lt;br /&gt;
* Relancer Meilisearch, le navigateur auxiliaire puis Karakeep.&lt;br /&gt;
&lt;br /&gt;
== Maintenance documentaire ==&lt;br /&gt;
Lors d&#039;un changement de secrets, de Meilisearch, de chrome auxiliaire ou de politique d&#039;inscription, mettre à jour cette page.&lt;br /&gt;
&lt;br /&gt;
== Trace documentaire ==&lt;br /&gt;
Cette page fait partie de [[Trace install tas]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Immich&amp;diff=71</id>
		<title>Trace install tas - Immich</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Immich&amp;diff=71"/>
		<updated>2026-03-18T22:48:13Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Phase 3 : sauvegarde, restauration et persistance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - Immich =&lt;br /&gt;
&lt;br /&gt;
== Rôle ==&lt;br /&gt;
Gestionnaire photo / vidéo.&lt;br /&gt;
&lt;br /&gt;
== Accès ==&lt;br /&gt;
* Local : http://10.8.0.1:8088&lt;br /&gt;
* Public : https://lololand.hopto.org:25688&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
8088 applicatif, 25688 public&lt;br /&gt;
&lt;br /&gt;
== Exécution / runtime ==&lt;br /&gt;
Stack docker-compose dans /home/loic/immich/docker-compose.yml ; conteneurs immich_server, immich_microservices, immich_machine_learning, immich_redis, immich_postgres&lt;br /&gt;
&lt;br /&gt;
== Chemins de configuration ==&lt;br /&gt;
* /home/loic/immich/docker-compose.yml&lt;br /&gt;
* /home/loic/immich/.env si présent&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance ==&lt;br /&gt;
* ${UPLOAD_LOCATION} -&amp;gt; /usr/src/app/upload&lt;br /&gt;
* ${DB_DATA_LOCATION} -&amp;gt; /var/lib/postgresql/data&lt;br /&gt;
* /home/loic/immich/ml-cache -&amp;gt; /cache&lt;br /&gt;
&lt;br /&gt;
== Dépendances ==&lt;br /&gt;
* redis&lt;br /&gt;
* postgres pgvector&lt;br /&gt;
* machine learning ROCm&lt;br /&gt;
* Caddy 25688 -&amp;gt; 8088&lt;br /&gt;
&lt;br /&gt;
== Remarques ==&lt;br /&gt;
Architecture multi-conteneurs avec accélération ROCm pour la partie machine learning.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données / emplacements à sauvegarder ==&lt;br /&gt;
* Photos/vidéos : ${UPLOAD_LOCATION}&lt;br /&gt;
* Base Postgres : ${DB_DATA_LOCATION}&lt;br /&gt;
* Cache ML : /home/loic/immich/ml-cache&lt;br /&gt;
&lt;br /&gt;
== Sauvegarde ==&lt;br /&gt;
* Sauvegarder ${UPLOAD_LOCATION}, ${DB_DATA_LOCATION} et /home/loic/immich/ml-cache.&lt;br /&gt;
* Sauvegarder /home/loic/immich/docker-compose.yml et le .env associé.&lt;br /&gt;
&lt;br /&gt;
== Restauration ==&lt;br /&gt;
* Restaurer les répertoires d&#039;upload, la base Postgres et le cache ML si souhaité.&lt;br /&gt;
* Relancer ensuite la stack Immich complète.&lt;br /&gt;
&lt;br /&gt;
== Maintenance documentaire ==&lt;br /&gt;
Lors d&#039;un changement de volumes photo, base, cache ML ou version IMMICH_VERSION, mettre à jour cette page.&lt;br /&gt;
&lt;br /&gt;
== Trace documentaire ==&lt;br /&gt;
Cette page fait partie de [[Trace install tas]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Homepage&amp;diff=70</id>
		<title>Trace install tas - Homepage</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Homepage&amp;diff=70"/>
		<updated>2026-03-18T22:48:13Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script : Phase 3 : sauvegarde, restauration et persistance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - Homepage =&lt;br /&gt;
&lt;br /&gt;
== Rôle ==&lt;br /&gt;
Tableau de bord des services.&lt;br /&gt;
&lt;br /&gt;
== Accès ==&lt;br /&gt;
* Local : http://10.8.0.1:8097&lt;br /&gt;
* Public : https://lololand.hopto.org:25697&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
8097 local, 25697 public via Caddy&lt;br /&gt;
&lt;br /&gt;
== Exécution / runtime ==&lt;br /&gt;
Quadlet systemd user : /home/loic/.config/containers/systemd/homepage.container ; conteneur systemd-homepage&lt;br /&gt;
&lt;br /&gt;
== Chemins de configuration ==&lt;br /&gt;
* /home/loic/.config/containers/systemd/homepage.container&lt;br /&gt;
* /home/loic/homepage-config/services.yaml&lt;br /&gt;
* /home/loic/homepage-config/settings.yaml&lt;br /&gt;
* /home/loic/homepage-config/custom.js&lt;br /&gt;
* /home/loic/homepage-config/custom.css&lt;br /&gt;
&lt;br /&gt;
== Volumes / persistance ==&lt;br /&gt;
* /home/loic/homepage-config -&amp;gt; /app/config&lt;br /&gt;
&lt;br /&gt;
== Dépendances ==&lt;br /&gt;
* Caddy pour l&#039;exposition publique&lt;br /&gt;
* liste des services documentée dans services.yaml&lt;br /&gt;
&lt;br /&gt;
== Remarques ==&lt;br /&gt;
Image ghcr.io/gethomepage/homepage:latest avec AutoUpdate=registry. HOMEPAGE_ALLOWED_HOSTS configuré. Le dashboard porte les liens publics et internes des services.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données / emplacements à sauvegarder ==&lt;br /&gt;
* Configuration dans /home/loic/homepage-config&lt;br /&gt;
* Pas de base de données applicative dédiée documentée&lt;br /&gt;
&lt;br /&gt;
== Sauvegarde ==&lt;br /&gt;
* Sauvegarder /home/loic/homepage-config (services.yaml, settings.yaml, custom.js, custom.css).&lt;br /&gt;
* Exporter aussi le quadlet /home/loic/.config/containers/systemd/homepage.container.&lt;br /&gt;
&lt;br /&gt;
== Restauration ==&lt;br /&gt;
* Restaurer /home/loic/homepage-config.&lt;br /&gt;
* Relancer le service utilisateur associé à homepage si nécessaire.&lt;br /&gt;
&lt;br /&gt;
== Maintenance documentaire ==&lt;br /&gt;
Lors d&#039;un changement de carte, port, lien public/interne ou custom.js/custom.css, mettre à jour cette page et la page centrale trace install tas.&lt;br /&gt;
&lt;br /&gt;
== Trace documentaire ==&lt;br /&gt;
Cette page fait partie de [[Trace install tas]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
</feed>