-La implementación recomendada actualmente para Mainnet-Beta es:
+El despliegue recomendado actualmente para Mainnet-Beta es:
```bash
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.rpm.sh | sudo -E bash
sudo yum install doublezero
@@ -70,7 +74,7 @@ sudo yum install doublezero
-La implementación recomendada actualmente para Testnet es:
+El despliegue recomendado actualmente para Testnet es:
```bash
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero-testnet/setup.rpm.sh | sudo -E bash
sudo yum install doublezero
@@ -81,24 +85,24 @@ sudo yum install doublezero
??? info "Solo para usuarios existentes: Cambiar un paquete de *Testnet a Mainnet-Beta*, o de *Mainnet-Beta a Testnet*"
- Cuando instala desde uno de los repositorios de paquetes anteriores, es específico para DoubleZero **Testnet** o **DoubleZero Mainnet Beta**. Si cambia de red en algún momento, necesitará eliminar los repositorios de paquetes previamente instalados y actualizar al repositorio de destino.
+ Cuando instalas desde uno de los repositorios de paquetes anteriores, es específico para DoubleZero **Testnet** o **DoubleZero Mainnet Beta**. Si cambias de red en algún momento, necesitarás eliminar los repositorios de paquetes previamente instalados y actualizar al repositorio destino.
- Este ejemplo le guiará a través de la migración de Testnet a Mainnet-Beta
+ Este ejemplo recorrerá la migración de Testnet a Mainnet-Beta
Los mismos pasos pueden completarse para pasar de Mainnet-Beta a Testnet, reemplazando el paso 3 con el comando de instalación para Testnet indicado anteriormente.
- 1. Encontrar los archivos de repositorio antiguos
+ 1. Encontrar archivos de repositorio antiguos
- Primero, localice cualquier archivo de configuración de repositorio de DoubleZero existente en su sistema:
+ Primero, localiza cualquier archivo de configuración de repositorio de DoubleZero existente en tu sistema:
`find /etc/apt | grep doublezero`
`find /usr/share/keyrings/ | grep doublezero`
- 2. Eliminar los archivos de repositorio antiguos
+ 2. Eliminar archivos de repositorio antiguos
- Elimine los archivos de repositorio antiguos encontrados en el paso anterior, por ejemplo
+ Elimina los archivos de repositorio antiguos encontrados en el paso anterior, por ejemplo
```
sudo rm /etc/apt/sources.list.d/malbeclabs-doublezero.list
@@ -106,7 +110,7 @@ sudo yum install doublezero
```
3. Instalar desde el nuevo repositorio
- Agregue el nuevo repositorio de Mainnet-Beta e instale el paquete más reciente:
+ Añade el nuevo repositorio de Mainnet-Beta e instala el paquete más reciente:
```
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.deb.sh | sudo -E bash
@@ -120,7 +124,7 @@ sudo yum install doublezero
#### Verificar el estado de `doublezerod`
-Después de instalar el paquete, se instala, activa e inicia una nueva unidad de systemd. Para ver el estado puede ejecutar:
+Después de instalar el paquete, se instala, activa e inicia una nueva unidad de systemd. Para ver el estado puedes ejecutar:
```
sudo systemctl status doublezerod
```
@@ -129,7 +133,7 @@ sudo systemctl status doublezerod
### Configurar el firewall para GRE y BGP
-DoubleZero utiliza túneles GRE (protocolo IP 47) y enrutamiento BGP (tcp/179 en direcciones link-local). Asegúrese de que su firewall permita estos protocolos:
+DoubleZero utiliza túneles GRE (protocolo IP 47) y enrutamiento BGP (tcp/179 en direcciones link-local). Asegúrate de que tu firewall permita estos protocolos:
Permitir GRE y BGP a través de iptables:
@@ -156,16 +160,16 @@ sudo ufw allow out on doublezero0 from 169.254.0.0/16 to 169.254.0.0/16 port 179
-## 2. Crear una nueva identidad de DoubleZero
+## 2. Crear una nueva identidad DoubleZero
-Cree una identidad de DoubleZero en su servidor con el siguiente comando:
+Crea una identidad DoubleZero en tu servidor con el siguiente comando:
```bash
doublezero keygen
```
!!! info
- Si tiene un ID existente que desea utilizar, puede seguir estos pasos opcionales.
+ Si tienes un ID existente que deseas utilizar, puedes seguir estos pasos opcionales.
Crear el directorio de configuración de doublezero
@@ -173,14 +177,14 @@ doublezero keygen
mkdir -p ~/.config/doublezero
```
- Copie o vincule el `id.json` que desea usar con DoubleZero al directorio de configuración de doublezero.
+ Copia o enlaza el `id.json` que deseas usar con DoubleZero al directorio de configuración de doublezero.
```
sudo cp ~/.config/doublezero/
```
-## 3. Obtener la identidad de DoubleZero del servidor
+## 3. Obtener la identidad DoubleZero del servidor
-Revise su identidad de DoubleZero. Esta identidad se utilizará para crear la conexión entre su máquina y DoubleZero
+Revisa tu identidad DoubleZero. Esta identidad se utilizará para crear la conexión entre tu máquina y DoubleZero
```bash
doublezero address
@@ -191,15 +195,15 @@ doublezero address
YourDoubleZeroAddress11111111111111111111111111111
```
-## 4. Verificar que doublezerod ha descubierto los dispositivos DZ
+## 4. Verificar que doublezerod ha descubierto dispositivos DZ
-Antes de conectarse, asegúrese de que `doublezerod` haya descubierto y hecho ping a cada uno de los switches DZ de testnet disponibles:
+Antes de conectar, asegúrate de que `doublezerod` haya descubierto y hecho ping a cada uno de los switches DZ de testnet disponibles:
```
doublezero latency
```
-Salida de ejemplo:
+Ejemplo de salida:
```
$ doublezero latency
@@ -213,19 +217,19 @@ $ doublezero latency
9uhh2D5c14WJjbwgM7BudztdoPZYCjbvqcTPgEKtTMZE | sg1-dz01 | 180.87.102.98 | 176.66ms | 176.76ms | 176.72ms | true
```
-Si no se devuelven dispositivos en la salida, espere 10-20 segundos y vuelva a intentar.
+Si no se devuelven dispositivos en la salida, espera 10-20 segundos y vuelve a intentar.
## 5. Desconectarse de DoubleZero
-En las siguientes secciones configurará su entorno de DoubleZero. Para asegurar el éxito, desconecte la sesión actual. Esto evitará problemas relacionados con múltiples túneles abiertos en su máquina.
+En las siguientes secciones configurarás tu entorno DoubleZero. Para garantizar el éxito, desconecta la sesión actual. Esto evitará problemas relacionados con múltiples túneles abiertos en tu máquina.
-Verificar
+Verifica
```bash
doublezero status
```
-si está `up` ejecute:
+si está `up` ejecuta:
```bash
doublezero disconnect
@@ -233,14 +237,14 @@ doublezero disconnect
### Siguiente paso: Tenant
-La conexión a DoubleZero variará según su caso de uso. En DoubleZero, los Tenants son grupos que tienen perfiles de usuario similares. Los ejemplos incluyen Blockchains, Capas de Transferencia de Datos, etc.
+La conexión a DoubleZero variará según tu caso de uso. En DoubleZero, los Tenants son grupos que tienen perfiles de usuario similares. Los ejemplos incluyen Blockchains, Capas de Transferencia de Datos, etc.
-### [Proceda a elegir su tenant aquí](tenant.md)
+### [Continúa para elegir tu tenant aquí](tenant.md)
# Opcional: Habilitar métricas de Prometheus
-Los operadores familiarizados con las métricas de Prometheus pueden querer habilitarlas para el monitoreo de DoubleZero. Esto proporciona visibilidad sobre el rendimiento del cliente de DoubleZero, el estado de la conexión y la salud operativa.
+Los operadores familiarizados con métricas de Prometheus pueden querer habilitarlas para el monitoreo de DoubleZero. Esto proporciona visibilidad sobre el rendimiento del cliente DoubleZero, el estado de la conexión y la salud operativa.
## Qué métricas están disponibles
@@ -252,20 +256,20 @@ DoubleZero expone varias métricas clave:
## Habilitar métricas de Prometheus
-Para habilitar las métricas de Prometheus en el cliente de DoubleZero siga estos pasos:
+Para habilitar las métricas de Prometheus en el cliente de DoubleZero sigue estos pasos:
### 1. Modificar el comando de inicio del servicio systemd de doublezerod
-Cree o edite la configuración de sobreescritura de systemd:
+Crea o edita la configuración de override de systemd:
```bash
sudo mkdir -p /etc/systemd/system/doublezerod.service.d/
sudo nano /etc/systemd/system/doublezerod.service.d/override.conf
```
-Reemplace con esta configuración:
+Reemplaza con esta configuración:
-Tenga en cuenta que el flag `-env` debe apuntar a `testnet` o `mainnet-beta` dependiendo de qué red desea recopilar datos. En el bloque de ejemplo se usa `testnet`. Puede reemplazarlo por `mainnet-beta` si es necesario.
+Ten en cuenta que el flag `-env` debe apuntar a `testnet` o `mainnet-beta` dependiendo de qué red deseas recopilar datos. En el bloque de ejemplo se usa `testnet`. Puedes cambiarlo por `mainnet-beta` si es necesario.
```ini
[Service]
@@ -281,9 +285,9 @@ sudo systemctl restart doublezerod
sudo systemctl status doublezerod
```
-### 3. Verificar que las métricas estén disponibles
+### 3. Verificar que las métricas están disponibles
-Compruebe que el endpoint de métricas esté respondiendo:
+Prueba que el endpoint de métricas está respondiendo:
```bash
curl -s localhost:2113/metrics | grep doublezero
@@ -310,15 +314,15 @@ Si las métricas no aparecen:
5. **Verificar el puerto**: `netstat -tlnp | grep 2113`
-## Configurar el servidor de Prometheus
+## Configurar el servidor Prometheus
La configuración y la seguridad están fuera del alcance de esta documentación.
-Grafana es una excelente opción para la visualización y tiene documentación disponible [aquí](https://grafana.com/docs/alloy/latest/collect/prometheus-metrics/) que detalla cómo recopilar métricas de Prometheus.
+Grafana es una excelente opción para visualización y tiene documentación disponible [aquí](https://grafana.com/docs/alloy/latest/collect/prometheus-metrics/) que detalla cómo recopilar métricas de Prometheus.
## Dashboard de Grafana (Opcional)
-Para la visualización, puede crear un dashboard de Grafana utilizando las métricas de DoubleZero. Los paneles comunes incluyen:
+Para visualización, puedes crear un dashboard de Grafana usando las métricas de DoubleZero. Los paneles comunes incluyen:
- Estado de la sesión a lo largo del tiempo
- Información de compilación
- Tendencias de latencia de conexión
-- Monitoreo de tasas de error
\ No newline at end of file
+- Monitoreo de tasa de errores
\ No newline at end of file
diff --git a/docs/setup.fr.md b/docs/setup.fr.md
index 881d4d9..05c12cb 100644
--- a/docs/setup.fr.md
+++ b/docs/setup.fr.md
@@ -1,7 +1,11 @@
+---
+description: Guide étape par étape pour installer doublezerod et connecter votre validateur ou nœud au réseau DoubleZero.
+---
+
# Comment configurer DoubleZero
!!! info "Terminologie"
- Vous découvrez DoubleZero ? Consultez le [Glossaire](glossary.md) pour les définitions de termes comme [doublezerod](glossary.md#doublezerod), [IBRL](glossary.md#ibrl-increase-bandwidth-reduce-latency) et [DZD](glossary.md#dzd-doublezero-device).
+ Nouveau sur DoubleZero ? Consultez le [Glossaire](glossary.md) pour les définitions de termes comme [doublezerod](glossary.md#doublezerod), [IBRL](glossary.md#ibrl-increase-bandwidth-reduce-latency) et [DZD](glossary.md#dzd-doublezero-device).
!!! warning "En me connectant à DoubleZero, j'accepte les [Conditions d'utilisation de DoubleZero](https://doublezero.xyz/terms-protocol)"
@@ -11,7 +15,7 @@
Pour les validateurs : DoubleZero doit être installé directement sur votre hôte validateur, pas dans un conteneur.
- Connectivité Internet avec une adresse IP publique (pas de NAT)
- Serveur x86_64
-- OS supporté : Ubuntu 22.04+ ou Debian 11+, ou Rocky Linux / RHEL 9+
+- Système d'exploitation pris en charge : Ubuntu 22.04+ ou Debian 11+, ou Rocky Linux / RHEL 9+
- Privilèges root ou sudo sur le serveur où DoubleZero sera exécuté
- Optionnel mais utile : jq et curl pour le débogage
@@ -19,7 +23,7 @@
DoubleZero Testnet et DoubleZero Mainnet-Beta sont des réseaux physiquement distincts. Veuillez choisir le réseau approprié lors de l'installation.
-Lors de l'intégration à DoubleZero, vous établirez une **identité DoubleZero**, représentée par une clé publique appelée l'**ID DoubleZero**. Cette clé fait partie de la façon dont DoubleZero reconnaît votre machine.
+Lors de l'intégration à DoubleZero, vous établirez une **identité DoubleZero**, représentée par une clé publique appelée **DoubleZero ID**. Cette clé fait partie de la manière dont DoubleZero reconnaît votre machine.
## 1. Installer les paquets DoubleZero
@@ -27,12 +31,12 @@ Lors de l'intégration à DoubleZero, vous établirez une **identité DoubleZero
!!! info "Versions actuelles"
| Paquet | Mainnet-Beta | Testnet |
- |--------|-------------|---------|
+ |---------|-------------|---------|
| `doublezero` | `MAINNET_CLIENT_VERSION` | `TESTNET_CLIENT_VERSION` |
-Suivez ces étapes selon votre système d'exploitation :
+Suivez ces étapes en fonction de votre système d'exploitation :
### Ubuntu / Debian
@@ -81,7 +85,7 @@ sudo yum install doublezero
??? info "Utilisateurs existants uniquement : Changer un paquet de *Testnet vers Mainnet-Beta*, ou de *Mainnet-Beta vers Testnet*"
- Lorsque vous installez à partir de l'un des dépôts de paquets ci-dessus, il est spécifique à DoubleZero **Testnet** ou **DoubleZero Mainnet Beta**. Si vous changez de réseau à un moment donné, vous devrez supprimer les dépôts de paquets précédemment installés et mettre à jour vers le dépôt cible.
+ Lorsque vous installez depuis l'un des dépôts de paquets ci-dessus, celui-ci est spécifique à DoubleZero **Testnet** ou **DoubleZero Mainnet Beta**. Si vous changez de réseau à un moment donné, vous devrez supprimer les dépôts de paquets précédemment installés et mettre à jour vers le dépôt cible.
Cet exemple vous guidera à travers la migration de Testnet vers Mainnet-Beta
@@ -90,7 +94,7 @@ sudo yum install doublezero
1. Trouver les anciens fichiers de dépôt
- Tout d'abord, localisez tous les fichiers de configuration de dépôt DoubleZero existants sur votre système :
+ Tout d'abord, localisez les fichiers de configuration de dépôt DoubleZero existants sur votre système :
`find /etc/apt | grep doublezero`
@@ -106,7 +110,7 @@ sudo yum install doublezero
```
3. Installer depuis le nouveau dépôt
- Ajoutez le nouveau dépôt Mainnet-Beta et installez la dernière version du paquet :
+ Ajoutez le nouveau dépôt Mainnet-Beta et installez le dernier paquet :
```
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.deb.sh | sudo -E bash
@@ -225,7 +229,7 @@ Vérifiez
doublezero status
```
-si le statut est `up`, exécutez :
+s'il est `up`, exécutez :
```bash
doublezero disconnect
@@ -233,9 +237,9 @@ doublezero disconnect
### Étape suivante : Tenant
-La connexion à DoubleZero diffère selon votre cas d'utilisation. Sur DoubleZero, les Tenants sont des groupes ayant des profils utilisateurs similaires. Les exemples incluent les Blockchains, les couches de transfert de données, etc.
+La connexion à DoubleZero diffère selon votre cas d'utilisation. Sur DoubleZero, les Tenants sont des groupes ayant des profils utilisateur similaires. Les exemples incluent les Blockchains, les couches de transfert de données, etc.
-### [Procédez au choix de votre tenant ici](tenant.md)
+### [Cliquez ici pour choisir votre tenant](tenant.md)
# Optionnel : Activer les métriques Prometheus
@@ -246,9 +250,9 @@ Les opérateurs familiers avec les métriques Prometheus peuvent souhaiter les a
DoubleZero expose plusieurs métriques clés :
- **Informations de build** : Version, hash de commit et date de build
-- **Statut de session** : Si la session DoubleZero est active
+- **Statut de session** : Indique si la session DoubleZero est active
- **Métriques de connexion** : Latence et informations de connectivité
-- **Données de performance** : Débit et taux d'erreurs
+- **Données de performance** : Débit et taux d'erreur
## Activer les métriques Prometheus
@@ -265,7 +269,7 @@ sudo nano /etc/systemd/system/doublezerod.service.d/override.conf
Remplacez par cette configuration :
-Notez que le flag `-env` doit pointer vers `testnet` ou `mainnet-beta` selon le réseau depuis lequel vous souhaitez collecter des données. Dans le bloc d'exemple, `testnet` est utilisé. Vous pouvez le remplacer par `mainnet-beta` si nécessaire.
+Notez que le flag `-env` doit pointer vers `testnet` ou `mainnet-beta` selon le réseau dont vous souhaitez collecter les données. Dans le bloc d'exemple, `testnet` est utilisé. Vous pouvez le remplacer par `mainnet-beta` si nécessaire.
```ini
[Service]
@@ -305,7 +309,7 @@ Si les métriques n'apparaissent pas :
1. **Vérifier le statut du service** : `sudo systemctl status doublezerod`
2. **Vérifier la configuration** : `sudo systemctl cat doublezerod`
-3. **Consulter les journaux** : `sudo journalctl -u doublezerod -f`
+3. **Consulter les logs** : `sudo journalctl -u doublezerod -f`
4. **Tester le point de terminaison** : `curl -v localhost:2113/metrics`
5. **Vérifier le port** : `netstat -tlnp | grep 2113`
@@ -321,4 +325,4 @@ Pour la visualisation, vous pouvez créer un tableau de bord Grafana en utilisan
- Statut de session dans le temps
- Informations de build
- Tendances de latence de connexion
-- Surveillance du taux d'erreurs
\ No newline at end of file
+- Surveillance du taux d'erreur
\ No newline at end of file
diff --git a/docs/setup.it.md b/docs/setup.it.md
index 712e94c..a0948c3 100644
--- a/docs/setup.it.md
+++ b/docs/setup.it.md
@@ -1,17 +1,21 @@
+---
+description: Guida passo-passo per installare doublezerod e connettere il tuo validatore o nodo alla rete DoubleZero.
+---
+
# Come configurare DoubleZero
!!! info "Terminologia"
Sei nuovo su DoubleZero? Consulta il [Glossario](glossary.md) per le definizioni di termini come [doublezerod](glossary.md#doublezerod), [IBRL](glossary.md#ibrl-increase-bandwidth-reduce-latency) e [DZD](glossary.md#dzd-doublezero-device).
-!!! warning "Collegandomi a DoubleZero accetto i [Termini di Servizio di DoubleZero](https://doublezero.xyz/terms-protocol)"
+!!! warning "Connettendomi a DoubleZero accetto i [Termini di Servizio di DoubleZero](https://doublezero.xyz/terms-protocol)"
## Prerequisiti
!!! warning inline end
Per i validatori: DoubleZero deve essere installato direttamente sull'host del validatore, non in un container.
-- Connettività Internet con un indirizzo IP pubblico (senza NAT)
+- Connettività Internet con un indirizzo IP pubblico (no NAT)
- Server x86_64
-- SO supportato: Ubuntu 22.04+ o Debian 11+, oppure Rocky Linux / RHEL 9+
+- Sistema operativo supportato: Ubuntu 22.04+ o Debian 11+, oppure Rocky Linux / RHEL 9+
- Privilegi root o sudo sul server dove verrà eseguito DoubleZero
- Opzionale ma utile: jq e curl per il debug
@@ -81,16 +85,16 @@ sudo yum install doublezero
??? info "Solo utenti esistenti: Cambiare un pacchetto da *Testnet a Mainnet-Beta*, o da *Mainnet-Beta a Testnet*"
- Quando installi da uno dei repository di pacchetti sopra indicati, è specifico per DoubleZero **Testnet** o **DoubleZero Mainnet Beta**. Se cambi rete in qualsiasi momento, dovrai rimuovere i repository di pacchetti precedentemente installati e aggiornare al repository di destinazione.
+ Quando installi da uno dei repository di pacchetti sopra indicati, esso è specifico per DoubleZero **Testnet** o **DoubleZero Mainnet Beta**. Se cambi rete in qualsiasi momento, dovrai rimuovere i repository di pacchetti precedentemente installati e aggiornare al repository di destinazione.
Questo esempio illustrerà la migrazione da Testnet a Mainnet-Beta
- Gli stessi passaggi possono essere completati per passare da Mainnet-Beta a Testnet, sostituendo il passaggio 3 con il comando di installazione per Testnet indicato sopra.
+ Gli stessi passaggi possono essere completati per passare da Mainnet-Beta a Testnet, sostituendo il passaggio 3 con il comando di installazione per Testnet sopra indicato.
1. Trovare i vecchi file del repository
- Per prima cosa, individua tutti i file di configurazione del repository DoubleZero esistenti sul tuo sistema:
+ Per prima cosa, individua eventuali file di configurazione del repository DoubleZero esistenti sul tuo sistema:
`find /etc/apt | grep doublezero`
@@ -118,9 +122,9 @@ sudo yum install doublezero
-#### Verificare lo stato di `doublezerod`
+#### Controllare lo stato di `doublezerod`
-Dopo l'installazione del pacchetto, una nuova unità systemd viene installata, attivata e avviata. Per visualizzare lo stato puoi eseguire:
+Dopo l'installazione del pacchetto, viene installata, attivata e avviata una nuova unit systemd. Per vedere lo stato puoi eseguire:
```
sudo systemctl status doublezerod
```
@@ -173,7 +177,7 @@ doublezero keygen
mkdir -p ~/.config/doublezero
```
- Copia o collega il file `id.json` che vuoi utilizzare con DoubleZero nella directory di configurazione di doublezero.
+ Copia o collega il file `id.json` che vuoi usare con DoubleZero nella directory di configurazione di doublezero.
```
sudo cp ~/.config/doublezero/
@@ -219,7 +223,7 @@ Se nell'output non vengono restituiti dispositivi, attendi 10-20 secondi e ripro
Nelle prossime sezioni configurerai il tuo ambiente DoubleZero. Per garantire il successo, disconnetti la sessione corrente. Questo eviterà problemi legati a tunnel multipli aperti sulla tua macchina.
-Verifica
+Controlla
```bash
doublezero status
@@ -233,9 +237,9 @@ doublezero disconnect
### Prossimo passo: Tenant
-La connessione a DoubleZero varierà in base al tuo caso d'uso. Su DoubleZero, i Tenant sono gruppi che hanno profili utente simili. Esempi includono Blockchain, Data Transfer Layer, ecc.
+La connessione a DoubleZero varia in base al tuo caso d'uso. Su DoubleZero, i Tenant sono gruppi che hanno profili utente simili. Esempi includono Blockchain, Data Transfer Layer, ecc.
-### [Procedi per scegliere il tuo tenant qui](tenant.md)
+### [Procedi a scegliere il tuo tenant qui](tenant.md)
# Opzionale: Abilitare le metriche Prometheus
@@ -252,9 +256,9 @@ DoubleZero espone diverse metriche chiave:
## Abilitare le metriche Prometheus
-Per abilitare le metriche Prometheus sul client DoubleZero, segui questi passaggi:
+Per abilitare le metriche Prometheus sul client DoubleZero segui questi passaggi:
-### 1. Modificare il comando di avvio del servizio systemd doublezerod
+### 1. Modificare il comando di avvio del servizio systemd di doublezerod
Crea o modifica la configurazione di override di systemd:
@@ -283,7 +287,7 @@ sudo systemctl status doublezerod
### 3. Verificare che le metriche siano disponibili
-Testa che l'endpoint delle metriche stia rispondendo:
+Verifica che l'endpoint delle metriche stia rispondendo:
```bash
curl -s localhost:2113/metrics | grep doublezero
@@ -301,9 +305,9 @@ doublezero_session_is_up 0
```
## Risoluzione dei problemi
-Se le metriche non vengono visualizzate:
+Se le metriche non compaiono:
-1. **Verifica lo stato del servizio**: `sudo systemctl status doublezerod`
+1. **Controlla lo stato del servizio**: `sudo systemctl status doublezerod`
2. **Verifica la configurazione**: `sudo systemctl cat doublezerod`
3. **Controlla i log**: `sudo journalctl -u doublezerod -f`
4. **Testa l'endpoint**: `curl -v localhost:2113/metrics`
@@ -312,7 +316,7 @@ Se le metriche non vengono visualizzate:
## Configurare il server Prometheus
-La configurazione e la sicurezza esulano dall'ambito di questa documentazione.
+La configurazione e la sicurezza vanno oltre lo scopo di questa documentazione.
Grafana è un'eccellente opzione per la visualizzazione e dispone di documentazione disponibile [qui](https://grafana.com/docs/alloy/latest/collect/prometheus-metrics/) che descrive come raccogliere le metriche Prometheus.
## Dashboard Grafana (Opzionale)
diff --git a/docs/setup.ja.md b/docs/setup.ja.md
index dfd3ddd..60a008d 100644
--- a/docs/setup.ja.md
+++ b/docs/setup.ja.md
@@ -1,27 +1,31 @@
-# DoubleZero のセットアップ方法
+---
+description: doublezerodのインストールおよびバリデーターやノードをDoubleZeroネットワークに接続するためのステップバイステップガイド。
+---
+
+# DoubleZeroのセットアップ方法
!!! info "用語について"
- DoubleZero を初めて使いますか?[doublezerod](glossary.md#doublezerod)、[IBRL](glossary.md#ibrl-increase-bandwidth-reduce-latency)、[DZD](glossary.md#dzd-doublezero-device) などの用語の定義については [用語集](glossary.md) をご覧ください。
+ DoubleZeroが初めてですか?[doublezerod](glossary.md#doublezerod)、[IBRL](glossary.md#ibrl-increase-bandwidth-reduce-latency)、[DZD](glossary.md#dzd-doublezero-device)などの用語の定義は[用語集](glossary.md)を参照してください。
-!!! warning "DoubleZero に接続することにより、[DoubleZero 利用規約](https://doublezero.xyz/terms-protocol)に同意したものとみなされます"
+!!! warning "DoubleZeroに接続することにより、[DoubleZero利用規約](https://doublezero.xyz/terms-protocol)に同意したものとみなされます"
## 前提条件
!!! warning inline end
- バリデーターの場合:DoubleZero はコンテナ内ではなく、バリデーターホストに直接インストールする必要があります。
-- パブリック IP アドレスを持つインターネット接続(NAT なし)
-- x86_64 サーバー
-- 対応 OS:Ubuntu 22.04 以降または Debian 11 以降、もしくは Rocky Linux / RHEL 9 以降
-- DoubleZero を実行するサーバーでの root または sudo 権限
-- オプションですが便利:デバッグ用の jq と curl
+ バリデーターの場合:DoubleZeroはコンテナ内ではなく、バリデーターホストに直接インストールする必要があります。
+- パブリックIPアドレスを持つインターネット接続(NATなし)
+- x86_64サーバー
+- サポートされるOS: Ubuntu 22.04以降またはDebian 11以降、またはRocky Linux / RHEL 9以降
+- DoubleZeroを実行するサーバーでのrootまたはsudo権限
+- オプションですが便利: デバッグ用のjqとcurl
-## DoubleZero への接続
+## DoubleZeroへの接続
-DoubleZero Testnet と DoubleZero Mainnet-Beta は物理的に異なるネットワークです。インストール時に適切なネットワークを選択してください。
+DoubleZero TestnetとDoubleZero Mainnet-Betaは物理的に異なるネットワークです。インストール時に適切なネットワークを選択してください。
-DoubleZero にオンボーディングする際、**DoubleZero ID** と呼ばれる公開鍵で表される **DoubleZero アイデンティティ**を確立します。この鍵は、DoubleZero がお使いのマシンを認識するための手段の一部です。
+DoubleZeroにオンボーディングする際、**DoubleZero ID**と呼ばれる公開鍵で表される**DoubleZero アイデンティティ**を確立します。この鍵は、DoubleZeroがあなたのマシンを認識する方法の一部です。
-## 1. DoubleZero パッケージのインストール
+## 1. DoubleZeroパッケージのインストール
@@ -38,7 +42,7 @@ DoubleZero にオンボーディングする際、**DoubleZero ID** と呼ばれ
-Mainnet-Beta の現在の推奨デプロイメントは以下の通りです:
+Mainnet-Betaの現在推奨されるデプロイ方法:
```bash
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.deb.sh | sudo -E bash
sudo apt-get install doublezero
@@ -48,7 +52,7 @@ sudo apt-get install doublezero
-Testnet の現在の推奨デプロイメントは以下の通りです:
+Testnetの現在推奨されるデプロイ方法:
```bash
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero-testnet/setup.deb.sh | sudo -E bash
sudo apt-get install doublezero
@@ -60,7 +64,7 @@ sudo apt-get install doublezero
-Mainnet-Beta の現在の推奨デプロイメントは以下の通りです:
+Mainnet-Betaの現在推奨されるデプロイ方法:
```bash
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.rpm.sh | sudo -E bash
sudo yum install doublezero
@@ -70,7 +74,7 @@ sudo yum install doublezero
-Testnet の現在の推奨デプロイメントは以下の通りです:
+Testnetの現在推奨されるデプロイ方法:
```bash
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero-testnet/setup.rpm.sh | sudo -E bash
sudo yum install doublezero
@@ -80,17 +84,17 @@ sudo yum install doublezero
-??? info "既存ユーザーのみ:パッケージを *Testnet から Mainnet-Beta*、または *Mainnet-Beta から Testnet* に変更する"
- 上記のパッケージリポジトリからインストールする場合、DoubleZero **Testnet** または **DoubleZero Mainnet Beta** に固有のものとなります。ネットワークを切り替える場合は、以前インストールしたパッケージリポジトリを削除し、ターゲットリポジトリに更新する必要があります。
+??? info "既存ユーザーのみ:パッケージを*TestnetからMainnet-Beta*、または*Mainnet-BetaからTestnet*に変更する"
+ 上記のパッケージリポジトリからインストールする場合、それはDoubleZero **Testnet**または**DoubleZero Mainnet Beta**に固有のものです。ネットワークを切り替える場合は、以前インストールしたパッケージリポジトリを削除し、対象のリポジトリに更新する必要があります。
- この例では、Testnet から Mainnet-Beta への移行手順を説明します。
+ この例では、TestnetからMainnet-Betaへの移行手順を説明します。
- Mainnet-Beta から Testnet への移行も同じ手順で行えますが、ステップ 3 を上記の Testnet 用インストールコマンドに置き換えてください。
+ Mainnet-BetaからTestnetへの移行も同じ手順で実行できます。その場合、ステップ3を上記のTestnet用インストールコマンドに置き換えてください。
1. 古いリポジトリファイルの検索
- まず、システム上の既存の DoubleZero リポジトリ設定ファイルを見つけます:
+ まず、システム上の既存のDoubleZeroリポジトリ設定ファイルを見つけます:
`find /etc/apt | grep doublezero`
@@ -106,7 +110,7 @@ sudo yum install doublezero
```
3. 新しいリポジトリからのインストール
- 新しい Mainnet-Beta リポジトリを追加し、最新パッケージをインストールします:
+ 新しいMainnet-Betaリポジトリを追加し、最新パッケージをインストールします:
```
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.deb.sh | sudo -E bash
@@ -118,20 +122,20 @@ sudo yum install doublezero
-#### `doublezerod` のステータス確認
+#### `doublezerod`のステータス確認
-パッケージのインストール後、新しい systemd ユニットがインストール、有効化、起動されます。ステータスを確認するには以下を実行してください:
+パッケージのインストール後、新しいsystemdユニットがインストール、有効化、起動されます。ステータスを確認するには以下を実行します:
```
sudo systemctl status doublezerod
```
-### GRE および BGP のファイアウォール設定
+### GREおよびBGP用のファイアウォール設定
-DoubleZero は GRE トンネリング(IP プロトコル 47)および BGP ルーティング(リンクローカルアドレス上の tcp/179)を使用します。ファイアウォールでこれらのプロトコルを許可してください:
+DoubleZeroはGREトンネリング(IPプロトコル47)とBGPルーティング(リンクローカルアドレスのtcp/179)を使用します。ファイアウォールでこれらのプロトコルが許可されていることを確認してください:
-iptables で GRE と BGP を許可する:
+iptablesでGREとBGPを許可する:
@@ -144,7 +148,7 @@ sudo iptables -A OUTPUT -o doublezero0 -s 169.254.0.0/16 -d 169.254.0.0/16 -p tc
-または UFW で GRE と BGP を許可する:
+またはUFWでGREとBGPを許可する:
@@ -156,31 +160,31 @@ sudo ufw allow out on doublezero0 from 169.254.0.0/16 to 169.254.0.0/16 port 179
-## 2. 新しい DoubleZero アイデンティティの作成
+## 2. 新しいDoubleZeroアイデンティティの作成
-以下のコマンドでサーバー上に DoubleZero アイデンティティを作成します:
+以下のコマンドでサーバー上にDoubleZeroアイデンティティを作成します:
```bash
doublezero keygen
```
!!! info
- 既存の ID を使用したい場合は、以下のオプション手順に従ってください。
+ 使用したい既存のIDがある場合は、以下のオプション手順に従ってください。
- doublezero 設定ディレクトリの作成
+ doublezero設定ディレクトリを作成します
```
mkdir -p ~/.config/doublezero
```
- DoubleZero で使用したい `id.json` を doublezero 設定ディレクトリにコピーまたはリンクします。
+ DoubleZeroで使用したい`id.json`をdoublezero設定ディレクトリにコピーまたはリンクします。
```
sudo cp ~/.config/doublezero/
```
-## 3. サーバーの DoubleZero アイデンティティの取得
+## 3. サーバーのDoubleZeroアイデンティティの確認
-DoubleZero アイデンティティを確認します。このアイデンティティは、お使いのマシンと DoubleZero 間の接続を作成するために使用されます。
+DoubleZeroアイデンティティを確認します。このアイデンティティは、あなたのマシンとDoubleZero間の接続を作成するために使用されます。
```bash
doublezero address
@@ -191,9 +195,9 @@ doublezero address
YourDoubleZeroAddress11111111111111111111111111111
```
-## 4. doublezerod が DZ デバイスを検出したか確認する
+## 4. doublezerodがDZデバイスを検出したことを確認
-接続する前に、`doublezerod` が利用可能な DZ テストネットスイッチをすべて検出し、ping したことを確認してください:
+接続する前に、`doublezerod`が利用可能なすべてのDZテストネットスイッチを検出し、pingを実行したことを確認してください:
```
doublezero latency
@@ -213,19 +217,19 @@ $ doublezero latency
9uhh2D5c14WJjbwgM7BudztdoPZYCjbvqcTPgEKtTMZE | sg1-dz01 | 180.87.102.98 | 176.66ms | 176.76ms | 176.72ms | true
```
-出力にデバイスが表示されない場合は、10〜20 秒待ってから再試行してください。
+出力にデバイスが表示されない場合は、10〜20秒待ってから再試行してください。
-## 5. DoubleZero からの切断
+## 5. DoubleZeroからの切断
-次のセクションで DoubleZero 環境を設定します。成功を確実にするために、現在のセッションを切断してください。これにより、マシン上で複数のトンネルが開いていることに関連する問題を回避できます。
+次のセクションでは、DoubleZero環境を設定します。成功を確実にするために、現在のセッションを切断してください。これにより、マシン上で複数のトンネルが開かれることに関連する問題を回避できます。
-確認
+確認:
```bash
doublezero status
```
-`up` の場合は以下を実行してください:
+`up`の場合は以下を実行:
```bash
doublezero disconnect
@@ -233,39 +237,39 @@ doublezero disconnect
### 次のステップ:テナント
-DoubleZero への接続は、ユースケースによって異なります。DoubleZero では、テナントは類似したユーザープロファイルを持つグループです。例としては、ブロックチェーン、データ転送レイヤーなどがあります。
+DoubleZeroへの接続は、ユースケースによって異なります。DoubleZeroでは、テナントは類似したユーザープロファイルを持つグループです。例としては、ブロックチェーン、データ転送レイヤーなどがあります。
### [こちらからテナントを選択してください](tenant.md)
-# オプション:Prometheus メトリクスの有効化
+# オプション:Prometheusメトリクスの有効化
-Prometheus メトリクスに精通しているオペレーターは、DoubleZero モニタリング用にメトリクスを有効化できます。これにより、DoubleZero クライアントのパフォーマンス、接続ステータス、運用状態を可視化できます。
+Prometheusメトリクスに精通しているオペレーターは、DoubleZeroの監視のためにメトリクスを有効にしたい場合があります。これにより、DoubleZeroクライアントのパフォーマンス、接続ステータス、運用状況の可視性が得られます。
## 利用可能なメトリクス
-DoubleZero はいくつかの主要なメトリクスを公開しています:
-- **ビルド情報**:バージョン、コミットハッシュ、ビルド日時
-- **セッションステータス**:DoubleZero セッションがアクティブかどうか
-- **接続メトリクス**:レイテンシーと接続性に関する情報
-- **パフォーマンスデータ**:スループットとエラー率
+DoubleZeroはいくつかの重要なメトリクスを公開します:
+- **ビルド情報**: バージョン、コミットハッシュ、ビルド日
+- **セッションステータス**: DoubleZeroセッションがアクティブかどうか
+- **接続メトリクス**: レイテンシと接続情報
+- **パフォーマンスデータ**: スループットとエラーレート
-## Prometheus メトリクスの有効化
+## Prometheusメトリクスの有効化
-DoubleZero クライアントで Prometheus メトリクスを有効にするには、以下の手順に従ってください:
+DoubleZeroクライアントでPrometheusメトリクスを有効にするには、以下の手順に従ってください:
-### 1. doublezerod systemd サービスの起動コマンドを変更する
+### 1. doublezerod systemdサービスの起動コマンドを変更
-systemd オーバーライド設定を作成または編集します:
+systemdオーバーライド設定を作成または編集します:
```bash
sudo mkdir -p /etc/systemd/system/doublezerod.service.d/
sudo nano /etc/systemd/system/doublezerod.service.d/override.conf
```
-以下の設定に置き換えてください:
+以下の設定に置き換えます:
-`-env` フラグは、データを収集したいネットワークに応じて `testnet` または `mainnet-beta` を指定する必要があることに注意してください。以下のサンプルブロックでは `testnet` を使用しています。必要に応じて `mainnet-beta` に置き換えてください。
+`-env`フラグは、データを収集したいネットワークに応じて`testnet`または`mainnet-beta`を指定する必要があります。以下のサンプルブロックでは`testnet`を使用しています。必要に応じて`mainnet-beta`に変更できます。
```ini
[Service]
@@ -281,7 +285,7 @@ sudo systemctl restart doublezerod
sudo systemctl status doublezerod
```
-### 3. メトリクスが利用可能か確認する
+### 3. メトリクスが利用可能か確認
メトリクスエンドポイントが応答していることをテストします:
@@ -303,22 +307,22 @@ doublezero_session_is_up 0
メトリクスが表示されない場合:
-1. **サービスステータスの確認**:`sudo systemctl status doublezerod`
-2. **設定の確認**:`sudo systemctl cat doublezerod`
-3. **ログの確認**:`sudo journalctl -u doublezerod -f`
-4. **エンドポイントのテスト**:`curl -v localhost:2113/metrics`
-5. **ポートの確認**:`netstat -tlnp | grep 2113`
+1. **サービスステータスの確認**: `sudo systemctl status doublezerod`
+2. **設定の確認**: `sudo systemctl cat doublezerod`
+3. **ログの確認**: `sudo journalctl -u doublezerod -f`
+4. **エンドポイントのテスト**: `curl -v localhost:2113/metrics`
+5. **ポートの確認**: `netstat -tlnp | grep 2113`
-## Prometheus サーバーの設定
+## Prometheusサーバーの設定
-設定とセキュリティについては、このドキュメントの範囲外です。
-Grafana は可視化のための優れた選択肢であり、Prometheus メトリクスの収集方法について説明したドキュメントが[こちら](https://grafana.com/docs/alloy/latest/collect/prometheus-metrics/)にあります。
+設定およびセキュリティについては、本ドキュメントの範囲外です。
+Grafanaは可視化の優れた選択肢であり、Prometheusメトリクスの収集方法を詳しく説明した[ドキュメント](https://grafana.com/docs/alloy/latest/collect/prometheus-metrics/)が利用可能です。
-## Grafana ダッシュボード(オプション)
+## Grafanaダッシュボード(オプション)
-可視化のために、DoubleZero メトリクスを使用して Grafana ダッシュボードを作成できます。一般的なパネルには以下が含まれます:
+可視化のために、DoubleZeroメトリクスを使用してGrafanaダッシュボードを作成できます。一般的なパネルには以下が含まれます:
- 時系列でのセッションステータス
- ビルド情報
-- 接続レイテンシーの推移
-- エラー率のモニタリング
\ No newline at end of file
+- 接続レイテンシの傾向
+- エラーレートの監視
\ No newline at end of file
diff --git a/docs/setup.ko.md b/docs/setup.ko.md
index 7b44cf1..442cb2b 100644
--- a/docs/setup.ko.md
+++ b/docs/setup.ko.md
@@ -1,25 +1,29 @@
+---
+description: doublezerod를 설치하고 밸리데이터 또는 노드를 DoubleZero 네트워크에 연결하는 단계별 가이드.
+---
+
# DoubleZero 설정 방법
!!! info "용어 안내"
- DoubleZero가 처음이신가요? [용어집](glossary.md)에서 [doublezerod](glossary.md#doublezerod), [IBRL](glossary.md#ibrl-increase-bandwidth-reduce-latency), [DZD](glossary.md#dzd-doublezero-device) 등의 용어 정의를 확인하세요.
+ DoubleZero가 처음이신가요? [doublezerod](glossary.md#doublezerod), [IBRL](glossary.md#ibrl-increase-bandwidth-reduce-latency), [DZD](glossary.md#dzd-doublezero-device) 등의 용어 정의는 [용어집](glossary.md)을 참고하세요.
!!! warning "DoubleZero에 연결함으로써 [DoubleZero 서비스 약관](https://doublezero.xyz/terms-protocol)에 동의합니다"
## 사전 요구 사항
!!! warning inline end
- 검증자의 경우: DoubleZero는 컨테이너가 아닌 검증자 호스트에 직접 설치해야 합니다.
-- 공인 IP 주소를 사용한 인터넷 연결 (NAT 불가)
+ 밸리데이터의 경우: DoubleZero는 컨테이너가 아닌 밸리데이터 호스트에 직접 설치해야 합니다.
+- 공인 IP 주소를 사용하는 인터넷 연결 (NAT 불가)
- x86_64 서버
- 지원 OS: Ubuntu 22.04+ 또는 Debian 11+, 또는 Rocky Linux / RHEL 9+
-- DoubleZero를 실행할 서버에서의 Root 또는 sudo 권한
-- 선택 사항이지만 유용함: 디버깅을 위한 jq 및 curl
+- DoubleZero가 실행될 서버에서의 Root 또는 sudo 권한
+- 선택 사항(디버깅에 유용): jq 및 curl
-## DoubleZero에 연결하기
+## DoubleZero 연결
-DoubleZero Testnet과 DoubleZero Mainnet-Beta는 물리적으로 별도의 네트워크입니다. 설치 시 적절한 네트워크를 선택하세요.
+DoubleZero Testnet과 DoubleZero Mainnet-Beta는 물리적으로 별개의 네트워크입니다. 설치 시 적절한 네트워크를 선택하세요.
-DoubleZero에 온보딩할 때 **DoubleZero ID**라고 하는 공개 키로 표현되는 **DoubleZero 신원**을 설정하게 됩니다. 이 키는 DoubleZero가 귀하의 머신을 인식하는 방식의 일부입니다.
+DoubleZero에 온보딩할 때 **DoubleZero ID**라 불리는 공개 키로 표현되는 **DoubleZero 아이덴티티**를 생성하게 됩니다. 이 키는 DoubleZero가 귀하의 머신을 식별하는 방법의 일부입니다.
## 1. DoubleZero 패키지 설치
@@ -32,13 +36,13 @@ DoubleZero에 온보딩할 때 **DoubleZero ID**라고 하는 공개 키로 표
-운영 체제에 따라 다음 단계를 따르세요:
+운영 체제에 따라 아래 단계를 따르세요:
### Ubuntu / Debian
-Mainnet-Beta의 현재 권장 배포 방법:
+Mainnet-Beta에 대한 현재 권장 배포 방법:
```bash
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.deb.sh | sudo -E bash
sudo apt-get install doublezero
@@ -48,7 +52,7 @@ sudo apt-get install doublezero
-Testnet의 현재 권장 배포 방법:
+Testnet에 대한 현재 권장 배포 방법:
```bash
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero-testnet/setup.deb.sh | sudo -E bash
sudo apt-get install doublezero
@@ -60,7 +64,7 @@ sudo apt-get install doublezero
-Mainnet-Beta의 현재 권장 배포 방법:
+Mainnet-Beta에 대한 현재 권장 배포 방법:
```bash
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.rpm.sh | sudo -E bash
sudo yum install doublezero
@@ -70,7 +74,7 @@ sudo yum install doublezero
-Testnet의 현재 권장 배포 방법:
+Testnet에 대한 현재 권장 배포 방법:
```bash
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero-testnet/setup.rpm.sh | sudo -E bash
sudo yum install doublezero
@@ -81,16 +85,16 @@ sudo yum install doublezero
??? info "기존 사용자 전용: *Testnet에서 Mainnet-Beta로* 또는 *Mainnet-Beta에서 Testnet으로* 패키지 변경"
- 위의 패키지 저장소 중 하나에서 설치하면 해당 패키지는 DoubleZero **Testnet** 또는 **DoubleZero Mainnet Beta** 전용입니다. 네트워크를 변경하는 경우 이전에 설치된 패키지 저장소를 제거하고 대상 저장소로 업데이트해야 합니다.
+ 위의 패키지 저장소 중 하나에서 설치하면 해당 패키지는 DoubleZero **Testnet** 또는 **DoubleZero Mainnet Beta** 전용입니다. 네트워크를 전환하는 경우 이전에 설치된 패키지 저장소를 제거하고 대상 저장소로 업데이트해야 합니다.
- 이 예제에서는 Testnet에서 Mainnet-Beta로의 마이그레이션을 안내합니다.
+ 이 예시는 Testnet에서 Mainnet-Beta로의 마이그레이션을 안내합니다.
- 동일한 단계를 통해 Mainnet-Beta에서 Testnet으로 이동할 수 있으며, 3단계를 위의 Testnet 설치 명령으로 대체하면 됩니다.
+ Mainnet-Beta에서 Testnet으로 이동하는 경우에도 동일한 단계를 수행할 수 있으며, 3단계를 위의 Testnet 설치 명령어로 대체하면 됩니다.
1. 기존 저장소 파일 찾기
- 먼저 시스템에 있는 기존 DoubleZero 저장소 구성 파일을 찾으세요:
+ 먼저, 시스템에 있는 기존 DoubleZero 저장소 설정 파일을 찾으세요:
`find /etc/apt | grep doublezero`
@@ -98,7 +102,7 @@ sudo yum install doublezero
2. 기존 저장소 파일 제거
- 이전 단계에서 찾은 기존 저장소 파일을 제거하세요. 예를 들어:
+ 이전 단계에서 찾은 기존 저장소 파일을 제거하세요. 예시:
```
sudo rm /etc/apt/sources.list.d/malbeclabs-doublezero.list
@@ -127,7 +131,7 @@ sudo systemctl status doublezerod
-### GRE 및 BGP를 위한 방화벽 구성
+### GRE 및 BGP를 위한 방화벽 설정
DoubleZero는 GRE 터널링(IP 프로토콜 47)과 BGP 라우팅(링크-로컬 주소의 tcp/179)을 사용합니다. 방화벽에서 이러한 프로토콜을 허용하는지 확인하세요:
@@ -156,31 +160,31 @@ sudo ufw allow out on doublezero0 from 169.254.0.0/16 to 169.254.0.0/16 port 179
-## 2. 새 DoubleZero 신원 생성
+## 2. 새 DoubleZero 아이덴티티 생성
-다음 명령으로 서버에 DoubleZero 신원을 생성하세요:
+다음 명령어로 서버에 DoubleZero 아이덴티티를 생성하세요:
```bash
doublezero keygen
```
!!! info
- 사용하려는 기존 ID가 있는 경우 다음 선택 단계를 따를 수 있습니다.
+ 사용하려는 기존 ID가 있는 경우 다음 선택적 단계를 따를 수 있습니다.
- doublezero 구성 디렉터리 생성
+ doublezero 설정 디렉토리 생성
```
mkdir -p ~/.config/doublezero
```
- DoubleZero에 사용할 `id.json`을 doublezero 구성 디렉터리에 복사하거나 링크하세요.
+ DoubleZero에서 사용할 `id.json`을 doublezero 설정 디렉토리로 복사하거나 링크하세요.
```
sudo cp ~/.config/doublezero/
```
-## 3. 서버의 DoubleZero 신원 확인
+## 3. 서버의 DoubleZero 아이덴티티 확인
-DoubleZero 신원을 확인하세요. 이 신원은 귀하의 머신과 DoubleZero 간의 연결을 생성하는 데 사용됩니다.
+DoubleZero 아이덴티티를 확인하세요. 이 아이덴티티는 귀하의 머신과 DoubleZero 간의 연결을 생성하는 데 사용됩니다.
```bash
doublezero address
@@ -191,9 +195,9 @@ doublezero address
YourDoubleZeroAddress11111111111111111111111111111
```
-## 4. doublezerod가 DZ 장치를 발견했는지 확인
+## 4. doublezerod가 DZ 디바이스를 발견했는지 확인
-연결하기 전에 `doublezerod`가 사용 가능한 각 DZ 테스트넷 스위치를 발견하고 핑했는지 확인하세요:
+연결하기 전에, `doublezerod`가 사용 가능한 각 DZ 테스트넷 스위치를 발견하고 핑했는지 확인하세요:
```
doublezero latency
@@ -213,11 +217,11 @@ $ doublezero latency
9uhh2D5c14WJjbwgM7BudztdoPZYCjbvqcTPgEKtTMZE | sg1-dz01 | 180.87.102.98 | 176.66ms | 176.76ms | 176.72ms | true
```
-출력에 장치가 반환되지 않으면 10-20초 기다린 후 다시 시도하세요.
+출력에 디바이스가 반환되지 않으면 10-20초 기다린 후 다시 시도하세요.
## 5. DoubleZero 연결 해제
-다음 섹션에서 DoubleZero 환경을 설정합니다. 성공을 보장하기 위해 현재 세션의 연결을 해제하세요. 이렇게 하면 머신에서 여러 터널이 열리는 것과 관련된 문제를 방지할 수 있습니다.
+다음 섹션에서 DoubleZero 환경을 설정하게 됩니다. 성공을 보장하기 위해 현재 세션의 연결을 해제하세요. 이렇게 하면 머신에서 여러 터널이 열린 것과 관련된 문제를 방지할 수 있습니다.
확인
@@ -225,7 +229,7 @@ $ doublezero latency
doublezero status
```
-`up` 상태인 경우 다음을 실행하세요:
+`up` 상태이면 다음을 실행하세요:
```bash
doublezero disconnect
@@ -233,20 +237,20 @@ doublezero disconnect
### 다음 단계: 테넌트
-DoubleZero 연결은 사용 사례에 따라 다릅니다. DoubleZero에서 테넌트는 유사한 사용자 프로필을 가진 그룹입니다. 블록체인, 데이터 전송 레이어 등이 그 예입니다.
+DoubleZero 연결은 사용 사례에 따라 달라집니다. DoubleZero에서 테넌트는 유사한 사용자 프로필을 가진 그룹입니다. 예시로는 블록체인, 데이터 전송 레이어 등이 있습니다.
### [여기에서 테넌트를 선택하세요](tenant.md)
# 선택 사항: Prometheus 메트릭 활성화
-Prometheus 메트릭에 익숙한 운영자는 DoubleZero 모니터링을 위해 메트릭을 활성화할 수 있습니다. 이를 통해 DoubleZero 클라이언트 성능, 연결 상태 및 운영 상태를 확인할 수 있습니다.
+Prometheus 메트릭에 익숙한 운영자는 DoubleZero 모니터링을 위해 메트릭을 활성화할 수 있습니다. 이를 통해 DoubleZero 클라이언트 성능, 연결 상태 및 운영 상태에 대한 가시성을 확보할 수 있습니다.
## 사용 가능한 메트릭
DoubleZero는 여러 주요 메트릭을 노출합니다:
- **빌드 정보**: 버전, 커밋 해시 및 빌드 날짜
-- **세션 상태**: DoubleZero 세션이 활성 상태인지 여부
+- **세션 상태**: DoubleZero 세션의 활성 여부
- **연결 메트릭**: 지연 시간 및 연결 정보
- **성능 데이터**: 처리량 및 오류율
@@ -254,18 +258,18 @@ DoubleZero는 여러 주요 메트릭을 노출합니다:
DoubleZero 클라이언트에서 Prometheus 메트릭을 활성화하려면 다음 단계를 따르세요:
-### 1. doublezerod systemd 서비스 시작 명령 수정
+### 1. doublezerod systemd 서비스 시작 명령어 수정
-systemd 오버라이드 구성을 생성하거나 편집하세요:
+systemd 오버라이드 설정을 생성하거나 편집하세요:
```bash
sudo mkdir -p /etc/systemd/system/doublezerod.service.d/
sudo nano /etc/systemd/system/doublezerod.service.d/override.conf
```
-다음 구성으로 교체하세요:
+다음 설정으로 교체하세요:
-`-env` 플래그는 데이터를 수집하려는 네트워크에 따라 `testnet` 또는 `mainnet-beta`를 가리켜야 합니다. 아래 샘플 블록에서는 `testnet`이 사용됩니다. 필요한 경우 `mainnet-beta`로 교체할 수 있습니다.
+`-env` 플래그는 데이터를 수집하려는 네트워크에 따라 `testnet` 또는 `mainnet-beta`를 가리켜야 합니다. 샘플 블록에서는 `testnet`이 사용되었습니다. 필요한 경우 `mainnet-beta`로 교체할 수 있습니다.
```ini
[Service]
@@ -301,23 +305,23 @@ doublezero_session_is_up 0
```
## 문제 해결
-메트릭이 표시되지 않는 경우:
+메트릭이 나타나지 않는 경우:
1. **서비스 상태 확인**: `sudo systemctl status doublezerod`
-2. **구성 확인**: `sudo systemctl cat doublezerod`
+2. **설정 확인**: `sudo systemctl cat doublezerod`
3. **로그 확인**: `sudo journalctl -u doublezerod -f`
4. **엔드포인트 테스트**: `curl -v localhost:2113/metrics`
5. **포트 확인**: `netstat -tlnp | grep 2113`
-## Prometheus 서버 구성
+## Prometheus 서버 설정
-구성 및 보안은 이 문서의 범위를 벗어납니다.
-Grafana는 시각화를 위한 훌륭한 옵션이며, Prometheus 메트릭을 수집하는 방법을 설명하는 문서를 [여기](https://grafana.com/docs/alloy/latest/collect/prometheus-metrics/)에서 확인할 수 있습니다.
+설정 및 보안은 이 문서의 범위를 벗어납니다.
+Grafana는 시각화를 위한 훌륭한 옵션이며, Prometheus 메트릭을 수집하는 방법을 설명하는 문서가 [여기](https://grafana.com/docs/alloy/latest/collect/prometheus-metrics/)에 있습니다.
## Grafana 대시보드 (선택 사항)
-시각화를 위해 DoubleZero 메트릭을 사용하여 Grafana 대시보드를 생성할 수 있습니다. 일반적인 패널에는 다음이 포함됩니다:
+시각화를 위해 DoubleZero 메트릭을 사용하여 Grafana 대시보드를 생성할 수 있습니다. 일반적인 패널은 다음과 같습니다:
- 시간에 따른 세션 상태
- 빌드 정보
- 연결 지연 시간 추이
diff --git a/docs/setup.md b/docs/setup.md
index 1fcf4c1..7ca5216 100644
--- a/docs/setup.md
+++ b/docs/setup.md
@@ -1,3 +1,7 @@
+---
+description: Step-by-step guide to installing doublezerod and connecting your validator or node to the DoubleZero network.
+---
+
# How to set up DoubleZero
!!! info "Terminology"
diff --git a/docs/setup.pt.md b/docs/setup.pt.md
index 8ed5e37..11f1c4c 100644
--- a/docs/setup.pt.md
+++ b/docs/setup.pt.md
@@ -1,17 +1,21 @@
+---
+description: Guia passo a passo para instalar o doublezerod e conectar seu validador ou nó à rede DoubleZero.
+---
+
# Como configurar o DoubleZero
!!! info "Terminologia"
Novo no DoubleZero? Consulte o [Glossário](glossary.md) para definições de termos como [doublezerod](glossary.md#doublezerod), [IBRL](glossary.md#ibrl-increase-bandwidth-reduce-latency) e [DZD](glossary.md#dzd-doublezero-device).
-!!! warning "Ao conectar-se ao DoubleZero, concordo com os [Termos de Serviço do DoubleZero](https://doublezero.xyz/terms-protocol)"
+!!! warning "Ao conectar-me ao DoubleZero, concordo com os [Termos de Serviço do DoubleZero](https://doublezero.xyz/terms-protocol)"
## Pré-requisitos
!!! warning inline end
Para validadores: o DoubleZero precisa ser instalado diretamente no host do seu validador, não em um contêiner.
-- Conectividade com a Internet com endereço IP público (sem NAT)
+- Conectividade com a internet com um endereço IP público (sem NAT)
- Servidor x86_64
-- SO suportado: Ubuntu 22.04+ ou Debian 11+, ou Rocky Linux / RHEL 9+
+- Sistema operacional compatível: Ubuntu 22.04+ ou Debian 11+, ou Rocky Linux / RHEL 9+
- Privilégios root ou sudo no servidor onde o DoubleZero será executado
- Opcional, mas útil: jq e curl para depuração
@@ -19,9 +23,9 @@
O DoubleZero Testnet e o DoubleZero Mainnet-Beta são redes fisicamente distintas. Por favor, escolha a rede apropriada durante a instalação.
-Ao integrar-se ao DoubleZero, você estabelecerá uma **identidade DoubleZero**, representada por uma chave pública chamada **DoubleZero ID**. Esta chave faz parte de como o DoubleZero reconhece sua máquina.
+Ao ingressar no DoubleZero, você estabelecerá uma **identidade DoubleZero**, representada por uma chave pública chamada **DoubleZero ID**. Essa chave faz parte de como o DoubleZero reconhece sua máquina.
-## 1. Instalar os Pacotes DoubleZero
+## 1. Instalar os Pacotes do DoubleZero
@@ -32,7 +36,7 @@ Ao integrar-se ao DoubleZero, você estabelecerá uma **identidade DoubleZero**,
-Siga estas etapas dependendo do seu sistema operacional:
+Siga estes passos de acordo com o seu sistema operacional:
### Ubuntu / Debian
@@ -81,16 +85,16 @@ sudo yum install doublezero
??? info "Apenas para Usuários Existentes: Alterar um pacote de *Testnet para Mainnet-Beta*, ou *Mainnet-Beta para Testnet*"
- Quando você instala a partir de um dos repositórios de pacotes acima, ele é específico para o DoubleZero **Testnet** ou **DoubleZero Mainnet Beta**. Se você trocar de rede em algum momento, precisará remover os repositórios de pacotes previamente instalados e atualizar para o repositório de destino.
+ Quando você instala a partir de um dos repositórios de pacotes acima, ele é específico para o DoubleZero **Testnet** ou **DoubleZero Mainnet Beta**. Se você trocar de rede em algum momento, precisará remover os repositórios de pacotes instalados anteriormente e atualizar para o repositório de destino.
Este exemplo mostrará a migração de Testnet para Mainnet-Beta
- As mesmas etapas podem ser realizadas para migrar de Mainnet-Beta para Testnet, substituindo a etapa 3 pelo comando de instalação para Testnet acima.
+ Os mesmos passos podem ser realizados para migrar de Mainnet-Beta para Testnet, substituindo o passo 3 pelo comando de instalação para Testnet acima.
1. Encontrar Arquivos de Repositório Antigos
- Primeiro, localize quaisquer arquivos de configuração de repositório DoubleZero existentes no seu sistema:
+ Primeiro, localize quaisquer arquivos de configuração de repositório do DoubleZero existentes no seu sistema:
`find /etc/apt | grep doublezero`
@@ -98,7 +102,7 @@ sudo yum install doublezero
2. Remover Arquivos de Repositório Antigos
- Remova os arquivos de repositório antigos encontrados na etapa anterior, por exemplo
+ Remova os arquivos de repositório antigos encontrados no passo anterior, por exemplo
```
sudo rm /etc/apt/sources.list.d/malbeclabs-doublezero.list
@@ -129,7 +133,7 @@ sudo systemctl status doublezerod
### Configurar Firewall para GRE e BGP
-O DoubleZero usa tunelamento GRE (protocolo IP 47) e roteamento BGP (tcp/179 em endereços link-local). Certifique-se de que seu firewall permita esses protocolos:
+O DoubleZero utiliza tunelamento GRE (protocolo IP 47) e roteamento BGP (tcp/179 em endereços link-local). Certifique-se de que seu firewall permita esses protocolos:
Permitir GRE e BGP através do iptables:
@@ -165,15 +169,15 @@ doublezero keygen
```
!!! info
- Se você tiver um ID existente que gostaria de usar, pode seguir estas etapas opcionais.
+ Se você possui um ID existente que gostaria de usar, pode seguir estes passos opcionais.
- Crie o diretório de configuração do doublezero
+ Criar diretório de configuração do doublezero
```
mkdir -p ~/.config/doublezero
```
- Copie ou vincule o `id.json` que deseja usar com o DoubleZero para o diretório de configuração do doublezero.
+ Copie ou crie um link do `id.json` que você deseja usar com o DoubleZero para o diretório de configuração do doublezero.
```
sudo cp ~/.config/doublezero/
@@ -225,7 +229,7 @@ Verifique
doublezero status
```
-se estiver `up`, execute:
+se estiver `up` execute:
```bash
doublezero disconnect
@@ -240,32 +244,32 @@ A conexão ao DoubleZero será diferente com base no seu caso de uso. No DoubleZ
# Opcional: Habilitar Métricas Prometheus
-Operadores familiarizados com métricas Prometheus podem querer habilitá-las para o monitoramento do DoubleZero. Isso fornece visibilidade sobre o desempenho do cliente DoubleZero, status da conexão e saúde operacional.
+Operadores familiarizados com métricas Prometheus podem querer habilitá-las para monitoramento do DoubleZero. Isso fornece visibilidade sobre o desempenho do cliente DoubleZero, status da conexão e saúde operacional.
## Quais Métricas Estão Disponíveis
O DoubleZero expõe várias métricas importantes:
- **Informações de Build**: Versão, hash do commit e data de build
-- **Status da Sessão**: Se a sessão DoubleZero está ativa
-- **Métricas de Conexão**: Informações de latência e conectividade
-- **Dados de Desempenho**: Taxa de transferência e taxas de erro
+- **Status da Sessão**: Se a sessão do DoubleZero está ativa
+- **Métricas de Conexão**: Latência e informações de conectividade
+- **Dados de Desempenho**: Throughput e taxas de erro
## Habilitar Métricas Prometheus
-Para habilitar métricas Prometheus no cliente DoubleZero, siga estas etapas:
+Para habilitar as métricas Prometheus no cliente DoubleZero, siga estes passos:
### 1. Modificar o comando de inicialização do serviço systemd do doublezerod
-Crie ou edite a configuração de substituição do systemd:
+Crie ou edite a configuração de override do systemd:
```bash
sudo mkdir -p /etc/systemd/system/doublezerod.service.d/
sudo nano /etc/systemd/system/doublezerod.service.d/override.conf
```
-Substitua com esta configuração:
+Substitua por esta configuração:
-Observe que a flag `-env` precisa apontar para `testnet` ou `mainnet-beta`, dependendo de qual rede você deseja coletar dados. No bloco de exemplo, `testnet` é usado. Você pode substituí-lo por `mainnet-beta` se necessário.
+Note que a flag `-env` precisa apontar para `testnet` ou `mainnet-beta` dependendo de qual rede você deseja coletar dados. No bloco de exemplo, `testnet` é utilizado. Você pode substituí-lo por `mainnet-beta` se necessário.
```ini
[Service]
@@ -312,8 +316,8 @@ Se as métricas não estiverem aparecendo:
## Configurar Servidor Prometheus
-A configuração e segurança estão fora do escopo desta documentação.
-O Grafana é uma excelente opção para visualização e possui documentação disponível [aqui](https://grafana.com/docs/alloy/latest/collect/prometheus-metrics/) detalhando como coletar métricas Prometheus.
+Configuração e segurança estão além do escopo desta documentação.
+Grafana é uma excelente opção para visualização e possui documentação disponível [aqui](https://grafana.com/docs/alloy/latest/collect/prometheus-metrics/) detalhando como coletar métricas Prometheus.
## Dashboard Grafana (Opcional)
diff --git a/docs/setup.zh.md b/docs/setup.zh.md
index 74b15b5..0af0759 100644
--- a/docs/setup.zh.md
+++ b/docs/setup.zh.md
@@ -1,7 +1,11 @@
+---
+description: 安装 doublezerod 并将您的验证者或节点连接到 DoubleZero 网络的分步指南。
+---
+
# 如何设置 DoubleZero
-!!! info "术语"
- 初次接触 DoubleZero?请参阅[术语表](glossary.md),了解 [doublezerod](glossary.md#doublezerod)、[IBRL](glossary.md#ibrl-increase-bandwidth-reduce-latency) 和 [DZD](glossary.md#dzd-doublezero-device) 等术语的定义。
+!!! info "术语说明"
+ 刚接触 DoubleZero?请参阅[术语表](glossary.md)了解 [doublezerod](glossary.md#doublezerod)、[IBRL](glossary.md#ibrl-increase-bandwidth-reduce-latency) 和 [DZD](glossary.md#dzd-doublezero-device) 等术语的定义。
!!! warning "连接到 DoubleZero 即表示我同意 [DoubleZero 服务条款](https://doublezero.xyz/terms-protocol)"
@@ -9,15 +13,15 @@
## 前提条件
!!! warning inline end
对于验证者:DoubleZero 需要直接安装在您的验证者主机上,而不是在容器中。
-- 具有公网 IP 地址的互联网连接(无 NAT)
+- 具有公共 IP 地址的互联网连接(无 NAT)
- x86_64 服务器
- 支持的操作系统:Ubuntu 22.04+ 或 Debian 11+,或 Rocky Linux / RHEL 9+
-- 运行 DoubleZero 的服务器上的 root 或 sudo 权限
+- 运行 DoubleZero 的服务器上的 Root 或 sudo 权限
- 可选但有用:用于调试的 jq 和 curl
## 连接到 DoubleZero
-DoubleZero Testnet 和 DoubleZero Mainnet-Beta 是物理上独立的网络。请在安装过程中选择适当的网络。
+DoubleZero Testnet 和 DoubleZero Mainnet-Beta 是物理上独立的网络。请在安装过程中选择合适的网络。
加入 DoubleZero 时,您将建立一个 **DoubleZero 身份**,由一个称为 **DoubleZero ID** 的公钥表示。此密钥是 DoubleZero 识别您机器的方式之一。
@@ -32,13 +36,13 @@ DoubleZero Testnet 和 DoubleZero Mainnet-Beta 是物理上独立的网络。请
-请根据您的操作系统执行以下步骤:
+根据您的操作系统按照以下步骤操作:
### Ubuntu / Debian
-当前推荐的 Mainnet-Beta 部署方式为:
+当前推荐的 Mainnet-Beta 部署方式:
```bash
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.deb.sh | sudo -E bash
sudo apt-get install doublezero
@@ -48,7 +52,7 @@ sudo apt-get install doublezero
-当前推荐的 Testnet 部署方式为:
+当前推荐的 Testnet 部署方式:
```bash
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero-testnet/setup.deb.sh | sudo -E bash
sudo apt-get install doublezero
@@ -60,7 +64,7 @@ sudo apt-get install doublezero
-当前推荐的 Mainnet-Beta 部署方式为:
+当前推荐的 Mainnet-Beta 部署方式:
```bash
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.rpm.sh | sudo -E bash
sudo yum install doublezero
@@ -70,7 +74,7 @@ sudo yum install doublezero
-当前推荐的 Testnet 部署方式为:
+当前推荐的 Testnet 部署方式:
```bash
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero-testnet/setup.rpm.sh | sudo -E bash
sudo yum install doublezero
@@ -83,14 +87,14 @@ sudo yum install doublezero
??? info "仅限现有用户:将软件包从 *Testnet 切换到 Mainnet-Beta*,或从 *Mainnet-Beta 切换到 Testnet*"
当您从上述某个软件包仓库安装时,它特定于 DoubleZero **Testnet** 或 **DoubleZero Mainnet Beta**。如果您在任何时候切换网络,您需要移除之前安装的软件包仓库并更新到目标仓库。
- 本示例将演示从 Testnet 到 Mainnet-Beta 的迁移
+ 本示例将演示从 Testnet 迁移到 Mainnet-Beta 的过程
- 从 Mainnet-Beta 迁移到 Testnet 也可以完成相同的步骤,只需将步骤 3 替换为上述 Testnet 的安装命令即可。
+ 同样的步骤也可用于从 Mainnet-Beta 迁移到 Testnet,只需将步骤 3 替换为上述 Testnet 的安装命令即可。
1. 查找旧的仓库文件
- 首先,找到系统上所有现有的 DoubleZero 仓库配置文件:
+ 首先,找到系统上现有的 DoubleZero 仓库配置文件:
`find /etc/apt | grep doublezero`
@@ -98,7 +102,7 @@ sudo yum install doublezero
2. 移除旧的仓库文件
- 移除上一步中找到的旧仓库文件,例如
+ 移除在上一步中找到的旧仓库文件,例如
```
sudo rm /etc/apt/sources.list.d/malbeclabs-doublezero.list
@@ -106,7 +110,7 @@ sudo yum install doublezero
```
3. 从新仓库安装
- 添加新的 Mainnet-Beta 仓库并安装最新的软件包:
+ 添加新的 Mainnet-Beta 仓库并安装最新软件包:
```
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.deb.sh | sudo -E bash
@@ -120,7 +124,7 @@ sudo yum install doublezero
#### 检查 `doublezerod` 的状态
-软件包安装后,将安装、激活并启动一个新的 systemd 单元。要查看状态,您可以运行:
+软件包安装后,会安装、激活并启动一个新的 systemd 单元。要查看状态,您可以运行:
```
sudo systemctl status doublezerod
```
@@ -158,14 +162,14 @@ sudo ufw allow out on doublezero0 from 169.254.0.0/16 to 169.254.0.0/16 port 179
## 2. 创建新的 DoubleZero 身份
-使用以下命令在服务器上创建 DoubleZero 身份:
+使用以下命令在您的服务器上创建 DoubleZero 身份:
```bash
doublezero keygen
```
!!! info
- 如果您有现有的 ID 想要使用,可以按照以下可选步骤操作。
+ 如果您有想要使用的现有 ID,可以按照以下可选步骤操作。
创建 doublezero 配置目录
@@ -180,7 +184,7 @@ doublezero keygen
```
## 3. 获取服务器的 DoubleZero 身份
-查看您的 DoubleZero 身份。此身份将用于在您的机器和 DoubleZero 之间创建连接。
+查看您的 DoubleZero 身份。此身份将用于在您的机器和 DoubleZero 之间创建连接
```bash
doublezero address
@@ -213,11 +217,11 @@ $ doublezero latency
9uhh2D5c14WJjbwgM7BudztdoPZYCjbvqcTPgEKtTMZE | sg1-dz01 | 180.87.102.98 | 176.66ms | 176.76ms | 176.72ms | true
```
-如果输出中未返回任何设备,请等待 10-20 秒后重试。
+如果输出中没有返回设备,请等待 10-20 秒后重试。
-## 5. 断开与 DoubleZero 的连接
+## 5. 断开 DoubleZero 连接
-在接下来的章节中,您将设置 DoubleZero 环境。为确保成功,请断开当前会话。这将避免因机器上打开多个隧道而导致的问题。
+在接下来的章节中,您将设置 DoubleZero 环境。为确保成功,请断开当前会话。这将避免与机器上打开多个隧道相关的问题。
检查
@@ -233,14 +237,14 @@ doublezero disconnect
### 下一步:租户
-连接到 DoubleZero 的方式将因您的使用场景而异。在 DoubleZero 上,租户是具有相似用户配置文件的组。示例包括区块链、数据传输层等。
+连接到 DoubleZero 的方式会因您的使用场景而异。在 DoubleZero 上,租户是具有相似用户配置文件的群组。例如区块链、数据传输层等。
### [点击此处选择您的租户](tenant.md)
# 可选:启用 Prometheus 指标
-熟悉 Prometheus 指标的运营者可能希望为 DoubleZero 监控启用这些指标。这可以提供对 DoubleZero 客户端性能、连接状态和运行健康状况的可见性。
+熟悉 Prometheus 指标的运营者可能希望为 DoubleZero 监控启用它们。这提供了对 DoubleZero 客户端性能、连接状态和运行健康状况的可视化。
## 可用的指标
@@ -265,7 +269,7 @@ sudo nano /etc/systemd/system/doublezerod.service.d/override.conf
替换为以下配置:
-请注意,`-env` 标志需要指向 `testnet` 或 `mainnet-beta`,具体取决于您要从哪个网络收集数据。在示例代码块中使用的是 `testnet`。如果需要,您可以将其替换为 `mainnet-beta`。
+请注意 `-env` 标志需要指向 `testnet` 或 `mainnet-beta`,具体取决于您要从哪个网络收集数据。在示例代码块中使用的是 `testnet`。如果需要,您可以将其替换为 `mainnet-beta`。
```ini
[Service]
@@ -317,8 +321,8 @@ Grafana 是一个出色的可视化选项,其文档可在[此处](https://graf
## Grafana 仪表板(可选)
-对于可视化,您可以使用 DoubleZero 指标创建 Grafana 仪表板。常见面板包括:
-- 会话状态随时间变化
+为了可视化,您可以使用 DoubleZero 指标创建 Grafana 仪表板。常见的面板包括:
+- 会话状态随时间的变化
- 构建信息
- 连接延迟趋势
- 错误率监控
\ No newline at end of file
diff --git a/docs/tenant.md b/docs/tenant.md
index 94b6b39..ab533b3 100644
--- a/docs/tenant.md
+++ b/docs/tenant.md
@@ -1,3 +1,7 @@
+---
+description: Choose the DoubleZero tenant and connection path that matches your use case — Solana validators, RPCs, Shelby, or a new protocol.
+---
+
# Tenants
Tenants on DoubleZero are groups of users with similar profiles and connection requirements, typically representing different blockchain ecosystems, data transfer layers, or distributed systems.
diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md
index f6d60bb..7a6c3da 100644
--- a/docs/troubleshooting.md
+++ b/docs/troubleshooting.md
@@ -1,3 +1,7 @@
+---
+description: Diagnose common DoubleZero connection issues with reference commands, expected outputs, and where to get further support.
+---
+
# Troubleshooting
This guide will cover a variety of issues, and is ongoing. If you complete the guide you can seek further support in the [DoubleZero Tech](https://discord.com/channels/1341597747932958802/1344323790464880701) discord.
diff --git a/get-pip.py b/get-pip.py
deleted file mode 100644
index 7c7e9cb..0000000
--- a/get-pip.py
+++ /dev/null
@@ -1,26947 +0,0 @@
-#!/usr/bin/env python
-#
-# Hi There!
-#
-# You may be wondering what this giant blob of binary data here is, you might
-# even be worried that we're up to something nefarious (good for you for being
-# paranoid!). This is a base85 encoding of a zip file, this zip file contains
-# an entire copy of pip (version 25.2).
-#
-# Pip is a thing that installs packages, pip itself is a package that someone
-# might want to install, especially if they're looking to run this get-pip.py
-# script. Pip has a lot of code to deal with the security of installing
-# packages, various edge cases on various platforms, and other such sort of
-# "tribal knowledge" that has been encoded in its code base. Because of this
-# we basically include an entire copy of pip inside this blob. We do this
-# because the alternatives are attempt to implement a "minipip" that probably
-# doesn't do things correctly and has weird edge cases, or compress pip itself
-# down into a single file.
-#
-# If you're wondering how this is created, it is generated using
-# `scripts/generate.py` in https://github.com/pypa/get-pip.
-
-import sys
-
-this_python = sys.version_info[:2]
-min_version = (3, 9)
-if this_python < min_version:
- message_parts = [
- "This script does not work on Python {}.{}.".format(*this_python),
- "The minimum supported Python version is {}.{}.".format(*min_version),
- "Please use https://bootstrap.pypa.io/pip/{}.{}/get-pip.py instead.".format(*this_python),
- ]
- print("ERROR: " + " ".join(message_parts))
- sys.exit(1)
-
-
-import os.path
-import pkgutil
-import shutil
-import tempfile
-import argparse
-import importlib
-from base64 import b85decode
-
-
-def include_setuptools(args):
- """
- Install setuptools only if absent, not excluded and when using Python <3.12.
- """
- cli = not args.no_setuptools
- env = not os.environ.get("PIP_NO_SETUPTOOLS")
- absent = not importlib.util.find_spec("setuptools")
- python_lt_3_12 = this_python < (3, 12)
- return cli and env and absent and python_lt_3_12
-
-
-def include_wheel(args):
- """
- Install wheel only if absent, not excluded and when using Python <3.12.
- """
- cli = not args.no_wheel
- env = not os.environ.get("PIP_NO_WHEEL")
- absent = not importlib.util.find_spec("wheel")
- python_lt_3_12 = this_python < (3, 12)
- return cli and env and absent and python_lt_3_12
-
-
-def determine_pip_install_arguments():
- pre_parser = argparse.ArgumentParser()
- pre_parser.add_argument("--no-setuptools", action="store_true")
- pre_parser.add_argument("--no-wheel", action="store_true")
- pre, args = pre_parser.parse_known_args()
-
- args.append("pip")
-
- if include_setuptools(pre):
- args.append("setuptools")
-
- if include_wheel(pre):
- args.append("wheel")
-
- return ["install", "--upgrade", "--force-reinstall"] + args
-
-
-def monkeypatch_for_cert(tmpdir):
- """Patches `pip install` to provide default certificate with the lowest priority.
-
- This ensures that the bundled certificates are used unless the user specifies a
- custom cert via any of pip's option passing mechanisms (config, env-var, CLI).
-
- A monkeypatch is the easiest way to achieve this, without messing too much with
- the rest of pip's internals.
- """
- from pip._internal.commands.install import InstallCommand
-
- # We want to be using the internal certificates.
- cert_path = os.path.join(tmpdir, "cacert.pem")
- with open(cert_path, "wb") as cert:
- cert.write(pkgutil.get_data("pip._vendor.certifi", "cacert.pem"))
-
- install_parse_args = InstallCommand.parse_args
-
- def cert_parse_args(self, args):
- if not self.parser.get_default_values().cert:
- # There are no user provided cert -- force use of bundled cert
- self.parser.defaults["cert"] = cert_path # calculated above
- return install_parse_args(self, args)
-
- InstallCommand.parse_args = cert_parse_args
-
-
-def bootstrap(tmpdir):
- monkeypatch_for_cert(tmpdir)
-
- # Execute the included pip and use it to install the latest pip and
- # any user-requested packages from PyPI.
- from pip._internal.cli.main import main as pip_entry_point
- args = determine_pip_install_arguments()
- sys.exit(pip_entry_point(args))
-
-
-def main():
- tmpdir = None
- try:
- # Create a temporary working directory
- tmpdir = tempfile.mkdtemp()
-
- # Unpack the zipfile into the temporary directory
- pip_zip = os.path.join(tmpdir, "pip.zip")
- with open(pip_zip, "wb") as fp:
- fp.write(b85decode(DATA.replace(b"\n", b"")))
-
- # Add the zipfile to sys.path so that we can import it
- sys.path.insert(0, pip_zip)
-
- # Run the bootstrap
- bootstrap(tmpdir=tmpdir)
- finally:
- # Clean up our temporary working directory
- if tmpdir:
- shutil.rmtree(tmpdir, ignore_errors=True)
-
-
-DATA = b"""
-P)h>@6aWAK2mo!S{#s3Wt_Jr2003bD000jF003}la4%n9X>MtBUtcb8c|DLpOT<77h41q#LNB_YQ&<$
-Wpx{ODA|AYn471yGJJ4o^By}nH<4r3y3}kqDJU(8>d4v$UNhih-AdMxnLL|x>HDwa#Lik1&``i5ys{O
-6sSI)T>I~Zf4%g85bU`V2$qWlFv@RkY9x~v^sKS3gG9N1J<_0cB*dyy6ync@J?@2`+)m|?_73SDNH1m
-Q44N##Nyp9zk}k_QAiaw;m`t${CQjcuD2R10cRV;bZN1QB}GB28VNlJ?WVAM;q3xy0Hs>m)Lv)OR-z_
-kJT=cefN`4j(o;KdD7}B;~neQ)O!@oH>?){D;D59n!zJ*0OWIP)h>@6aWAK2mo!S{#tMMuh+Z*00344
-000jF003}la4%n9ZDDC{Utcb8d0kRVZ`&{ozWY}Y>A}w6x;YO^fgN`(b{hsmkm;C+EeWC=&-?Ww6}xG
-tlOFsY{3x1&j|n^%bl>sHMezi0IQbhwS%PsL*f~aY2^Jr(
-->p)--qr&r|06wh_J-^zioU^jr0+!=aW4nhPeobk*_rwE$UrRTF%uPDhR9M-K~vi3o9aPFu(U7!^k`W
-x6h>k&oK#&LP;J12Kqozi_UZ*<5gUDHflV(D$5
->Ngu-j_8O}-GQayT6qQ_`U(Y(5Jc!MA_5XQK;CTEzILQ%Xs!nw#k_qM*6|!Zx_q%18hbh`kOD>^skBu
-Fv(VE>^-plXGz~WsF|4^#(oqV6-A5cpJ1QY-O00;nWrv6$b9NL@J0ssK21pojQ0001RX>c!JUvOz~Ep
-l~kZe?;`UoLQYeN@3t+dvS#`zr=>s4W>6K`)J(suBt+7m_C7P*Jqn*kiKP-Zi^x8Vm97ow4HtB3d7k_
-3q4@H*elL48zF=v&JLfMrOWj!LOBr%+xKI0%}z!@JG>}1_`+;3bd#_png);=!({95G*;RP$dHWYgu6q
-(t+~ynt(SH?HY@OEPW4OnY^LsOzICFR+LuN#(GM7QZkTw`wq@akA00W41?epJ|6vouG$k?r;H||RV}?
-*sZ#kCvNdME!C~h4tZH0`K5PA&Ue9*HC8mrN1Vf$HG5Ce46>%u6si1CaYaR$F^`9v?oe%x
-HmCkq%ube_QHI0%9qi-C=B-bUMXJOVfd-_|$+b+3)Z0O+yk8>=Bq!}P%@9d#Ko6vo06kjO(e0jq+Er3
-1Fog}EJ_-N6?)U^D8GrE&<1){$hBjq*{q%TM@5v3{zM8>CqoYQCvE5$ay0=NE`9J~qnI`PcFDOH5RWU
-L{{4^7Fdq_jtz1n~(#}@eZqB#XNvZR(?$m1Ea}yok5^+y9u5{fs*t?vel|#FCj^!z1;M(wpdA}3Fy6v
-@1|`VP3ETIX!9sXF!^+P7IZW3&r7vRE18kw(YAvVXVR}PmCn(=muOr{Rn|jrt}I`IgUDcZH4}^J&HQ4
-r5cBDDNhaDxM#H}le2avLdHz``or9UGuR7Q{QWQH|-}g-Vv488rDx`+r$OcX<+oY0CKBScE(q
-OYH%+3ORI-+t}Fpfg@dzoOrXIx!Q*=&Fog7m%eVG$KD<+J>6@3s6e~1QY-O00;nWrv6&Z$G|nf0000U
-0RR9D0001RX>c!ac`kH$aAjmAj&U%1)EvFVxRjSzi=C
->J@cMk87yJyz4~-Qcqlg}hXv}1CF`fEox?~SG{pae%Dy$pBG>tnWs3{>FohpTZSG@fe-hAmws@4PFv7
-Mv`H@JnAXTbgKqwrl)IWaYE>+%OsO9KQH000080BxrJS`BUSY&Zb`0RI6102u%P0B~t=FJEbHbY*gGV
-Qep7UukY>bYEXCaCvo6!AitH486}+g!Qroon8cWL64rqlQ)qv+oo+`Ix{4xOTmvft*+w1T=EEymzS5G
-^8`)P&pIkbFlCdRayLg5@77)Z?^5SnhsFz(_JIdEKqS#uQGSCDc+L
-soerpw6J(yuVII!C7b}u8@K>~$Qkl)R)*@YZCXf1>s5u{}*Dxjlzn!*BNA;k4U#vU0{YZf*+QtvkKXc
-D38Xbmz%=um^@b_s$AqiT^uT@R$=eDrOe>avtjThKL$%qaEE_1M8{GPTuke_Zmy&Jz`<4^08Sj12$)E-e568UO$QaA|NaUukZ1WpZv|Y%gMUX>4R)Wo~vZ
-aCzMtU31*F@m;?Hp&!C)c}(J`&P}eJ*p?GbU0GwxX)~G|21nu~Ry>jgKuH%>|Gm2lfCNFF>`tFj&DcD
-GyNmta#gb7Jz3R%UV5jw6DVusPYRx(&3btz`D^*i*T{blOCh8%5E{$xb$VmSww6cT!
-{-EB9?9HRE;NXu?$|Cw8rBuCD>j-8RboYPr6t%B{Oqr563~Ll33JgT9x%HCyIQRf(K7aC^R&g^;3nQ|
-5XClk#ou;Lfy=d|L?vqz|p=NnA>vi!IM@FJZNRj-oq&UoK9w*FT-U{_ENKj|sbwjc#BYtB1C1)9g;vM
-I+M|sBn}wy%SQQ5-o|J&Fz5V9)K3h3U$a8E@xGflLkH7WevR7yh`(`OcgLz12Ko+w4%=J;v9~n*CSjD
-owZpigCiL--ohNMPM4KRt!wluI{onK{m0Ye@V#<<7Nq!
-BS4#2xPO96svdM+&wUG0w%7*3Rs9NmXtSDvg3vmAiHq3P+4++D^@HD$E>jIsAH+GiQ34^~G;s7oltV9
-A_0B-v&F3jp%T0BMoxnpft$RyScgj;A!Oq^$gV4E*4YJ+dEo|v#jQO@V>>#$q5*ffklh1jrocxEf
-cn->w+!+%yidQ;tK9I?BBypg3mWbN+}>4)GX$Jw_uF|i08kPqSkE00oAvV@XW-+F-Eo(CR+Tx}vmu0Kf
-7z&~Wp%j2w#aZY+q};uUH>YLt+pexLA7xR#2Q*hqQ;ZJ`Sde4Tp;p-}f7p?o=W2rV#cy`-Vjs+
-L%ltWR|7vA?m}89P*$bi)2^;Z9Y)eA%wmf!pnMvfu?fF9Jt}(lj^{12O~8;$2j+?CIq(aG}{3n7CZ*N
-^s83`;>9;!d59OkqH4RE-|@1d;)w)eAe@3)L8V}Q4V!`+uv`kR!L_yrZ}t0^-&zHIAO$I~t=#jf{0$&
-MJl5<`mtZe7_8-{xhAXa7&mcjaYE$0oip75T2@@&7%0`7LXpYTrwuLsZ%WyDuT)I;u
-53L63;9Oi!1-CQ}bw+d#anoBJ9gabIF|-=Go_vW~hz=dQojsAP(3@J@fn`x|I^LXN;^KxJ$zARr)QL6
-m~Uz4H%}E{^H#YUBtB8+pRUck{QMj)3ggS>VwG5t#YY9#Q+~_!;IR3s%@H>)wq2*R>5t@v$j~
-jQ(FwEP8?6T{vnswz-tAkDAPYdsP)fm9Hw4HA3dA43ghRI)mIcOFPG&tM5kEV=c1TG)Xfq~ot!=}`U}
-?0BE|h2rF$;xrRkEEuEtL(!%-3?Sz`%V7~
-O0hXWU`;*U?eJ`UC*Fa+DkwSM52uPZr>{Q!xEfJJ&rhjGE8=K*cNY!C2dd2H2-^eUvm`x=SRi)TUg!+
-eqGeN|apI_MGHBXH(YDZb~S5u@eGx@ffXYOj6O)Vg`B4w(ZjJk4~mpCo9!w=X6-}-C|gsF_G25Rk
-SQYfC2RC+s$SX>KzU=TJnsb&}bg`cdN~6!hEp9lF*lgwFE5K&?C6;5ujid32Nm|=@H`~~iINeuWk#LP4wx2CU#wXVm2Ty@AJ1-{7j}de*Y37jBB<$OhFt8~
-R@N>rW-uIYE+#F8TlPeL!Cq5-D}NJaD5D#H!mtGYRB)zdX$$d-eHwT#+(MT*>dO$aMG?V^dG3O1cG%N
-%IzGN1pCyI%!Kc5MN9+M2z53u`N9N+~|)2tSUcmrEwT+3JPluqL`SiHxgU*`
-?JqgqFu-Yx$W4K9jlan}a@UYpXaXPOG#OQ*CDa5&aS+O{Z~toJXu5@yC$_$F%t^@64Vb*=|z^%YV!*1oY^5bo*wb%)oL?=rx_Cg(qK&Jcrk(Thc=JCPkkkyrkxl5(P)ep1zyp(#
-$CL<*52>whIS91tJ!VlhfK4e!Qjd0qXMs*C~PsKr76uhJzvf4Ob`9-C#bV%5KBj9Xc%I{_>7b^p)eJ}
-35_8=VPM7qKMFW!6bS<>LiXL-NjIQ|XIKMHISkv3K8sNjvu%JVrZ^+7a%uCZM?nJs{Ts<1n(>Q0aB9W
-52wm9IT)7|=7o}u1L6YTL6c2Cxi9
-;i1RInID69`X!7Tv*ZP3so4SZ}d7Dxf`M;VG?|uvhRI3!j
-yS-q-*p%}wii@NG!^T!yv8`}crkil_&UrqJ}I!IAG$;xK*tcj(XfF$LJl95q6D@DEn)Cj_2SV~aLr<^
-}t^_!^3&cz|@5m%2JIfu6@ni`4kSF&0{GeK6B1Mt+H%W1agi*~dgZk<3Ygil%JtN@!Mr;(_f&e#7fh?
-db#|@M9=9Vb0A?Gd12=G2L@{iyxwxnK*_ToxAa7c$``}MEn>LJxq?#(_+51<3O{lJ281kpOvjqppn$oFsj#1+g-MH(0)#+}^PT#5UR>xisqnp
-5)3iUC&t+dm`?JKY?hwVja*!#ifdlbCP;XjhW)MfM>oNmrJf5(bxX4<}#mL*UfBfxq#a=h`qFUNUlzs
-Z}?k_#Gee3LPl{hO;-Wxub$322y{1P$aDl=aw1TPE!*H?*Py=P0T9ek{ViO*HY*3g9cO|%(T(AQ7_#r
-_j1G-`OZA1P*JEn|Zt12Fe%G`e)3S0$vMHU5`4y{zqZ82_C&@7r(!7l#YOw*fx@yGuAc;|Y368Jpggk
-bW_lhnUA_fODz`hW?B0egghGY2wCw=Md{Pe!=!7LjJ!6o8%>Q4(E+N+e06Ph@v=^vXRg={0C4=0|XQR
-000O8ZKnQOuGux}3=9AOd?)|_761SMaA|NaUukZ1WpZv|Y%gPBV`ybAaCzNYZI9c=5&nL^VynOiRmeQ
-oaNJgaiaO3YcHx)6cHj?(1F;fU()uVa!zE8v+Wz-GGrJ_0B6U7DOnz&ig#G)MPSwDpy-2Udd
-c;)K2BqWHLEBTbE`hl4M<1b*Yj>=v`sTO2|Anm8`VM?b(?h+e*95^s;&UXieUH&&+0{^G)+;tfO1Vig
-q+af54-gs15~|H{(z8gJ-1BMV#EIJT+xp$knwZs&OSZwpsgLZe~K~l`4x;;ct@5o$8O=sM3P*+bGtR&
-RUWynVVd%WTt;sOfF=G3Fk74)u)vzSRu{67x@kLq#w3QWzTe`c+@<5ZVwRV8(qH3Yunksr(K
-mR*_7ubcHR@%@&idt#(n%Uq2uX3^tH?TQ2(wQ9w)W5<+-nV@ORCf7Po?P)5IrPT)6I;jlFcXmepph~f
-593$SS>Lrgw39C3sre|kw-oE($#p~p6@7}ylUO#ztf%OwpYHWzfx!|2=salJK91qN{swkZc`v1~aXSGwbUsKoB{$i^yP!AQ}B*H5O?c&k38dZTO=K@n%GO
-j;{AKwC+kK#CN3?EPR$?IrSFP7+ITAq_UENtwnBw$R$#9;(zCMkjdxbJ+_v{RHT&(
--+3x-&UL$3@vyh9k|eS!ThBrYV2d^X+T@;LR%Ttmz|*+hH*KfDzJik=sdQunI5svW$BDIttWi7FZKR{
-)Zp)&-oz4&Vg_k96p1l!*SJpF63Yl{RG2@xG>_t}{_YnPiMShG;q#61G^~g%>YFmk=YMK3Lbgojd*VV
-RTr_~&Nz7ijl*vlLQjM%7L!Gjc%s-Wn{P;K#qQ|i)N5)L;Ldsx)uUsuh}fZRu7p;WYwEcWBumtbfm=~
-;t8z1dQJz5$PzMpPq!5t%tJUYBx1`92^g^Rzo{B};I#G&PB9toH=^fGej&=>6{#@IINdA}R0_5+8e#h
-WtO%4DS>n!E$wO*?dtO!o@0hv@4C~#C
-zjk9=hfNApfbPOR}EK*Yu7Y9=LQqk(N&aq>50KreNstAn7@90vrpRaMye`S}
-JC)yo)*&x=DL&rvae?v|S$0nbX7|Xfvm?EH-VNurGzbD2hNx9_4zFKq1LVWgCf*u_fPpGmrk_H`NON
-37xVJr{89JtX#Ti+cs#$l>ZJ8mokg|H<-LUd&eY*TVPs)4
-YetD|GYn^|Hb%#J;}{eQtP35L9lR{Itp(kBFoZJy^S#TO5T(yoFMgIpFG$jGcnjnH{*su#N=<7P^w7iDS6CcSv(q
-8^UvGHu`_fzFRyMErxxVz&bLilDYi6H2>t=RRnNuG|t9m1vI0YAG#HD*-uWC?lB<=}dj1f-`gQVNb%9
-ejf$`76IdY^$yRtn_fK1eWz)T`x6Gd5&xZbxYw6TL^>Bb2W?%03WEUGXJ|eCvp_Wfp1*-_1!8fSw%fn
-;^`+w6N3iTwxLD=~K?sV`0mDV#4}_<+#0XrlB0&vi&SzZR@jx{k-Am@tZO7-H<}zchDN)x&kduhaR#z
-zX?I7~M$+H7lL@`jtCJGoF+x8UXTzEJ*Xj)_tPE%9Xbm$GOyxuJ_M9r7usl%owuOzS(C5MhI*HC|=Ut
-e}!O6jl8^-r~m#YMb{MSSjKD+J1^`58SNd0FFAbfhbgy2Hw(vj%}RcnW(S#1G;)rb&nhZfQxyi@lAdG
-aN&RuBHQ~L9r;lq+ycBQp$FXJC#YVFzBH!QLG7MEER@Tidanp?fa(A`6Bgm9NfO2WB*`5_FKK$I_$Cs
-zHHRTE;Sy(O}XUMKi*LF)4%WR`ZX%3#qZejy%&?=d{@E^=x~Ei@?onL^=YF6cht~}|31Ve|06lKLj;6
-6f}#rBl56(P9IKN3oN%JdFNW7vQMjNpkn;m5%wLtc?|k=@_srY^nd}zua#Yx>^3WfkkMrk+yMv0lv!}
-h4?m}(!7Hvq9@_^23)thjz=12*AT+GLb-z`o-u)zWD#wt$Lvff04S^7*~Y|zqC;D%{j+;h1Z{~=gWNh
-jl*Q=?p`yOR}%q=EtpBwi4ra4j{O14=Gz-Fql-vr$5UB}eD8o_~j*Q2ybH>77+hLO3P2u@Uv7WI9yuS
-K?dFkX*)sR@QZ@=dxUF&sDX$8xx(Y#wNc224g;F>XoQvbP0lfxuly2<0mgp`uDG&qfv~t9BTb|GxfbooR;$ZkOa)tU-M
-SM?&qOh3M)%yOQCc`{BTJ)>)N
-Ijk_ZB%s{zPyJXzlTCYt_9e@M0miY^}L;0nxevKC^r(TpKE^{}RM}t=Tbb%g=zrlUG
-Z<(;RER=*&R6JDvI8Zz0G`E{=m+xM0|0^d6==I;eL;7gB`t4qvx~P~&JU*c*3Hq%lv()Nih~u7>*UC$
-7GNb^iYS^Os>rh%GT99dn-@rdXf{bQTO~T;t6&_R{tf!$?s@I%1zxrOd+Dub%PH0?6!bJAM>9{jxw3E
-r#$vRP^F>575{4qW>78oxrI)cRm?rJr@rAr&E69cFY2m_;=^0BtDAV{|kwq$;=*!Oq;rQ*?+b4)0@>!
-p*Kp~U_)6pWtybG&6xrGaP>Os7mt}}=XJg|0b&~|E571~5Unc^cSB@f3d3$iU?I(05Z12;sGgcSOWCw
-^{4s=TU*fvxCny!4YWF|TZJVqJ`tvI?bEC?Asp%C*b*i-w#Qy?F)ms3^8tc8^zxnRXoL~8MYF9ti8lL
-IjC+8!(ZhMzo07sqw;lVeLA5kzMk8S9B@|Z^JC-j2>x{c{MCk+m{rO#cAMW4wVXCeAI#Lz(Z=tj49>(
-U(08^$fiWbfJ7fk^zz^tA$Hl=K5Av8*?OZ!p|B2*|Q_UdJ!DPq_mVWtRy3pt;6YB3F9>TY$g`*Pu_Q$
-V>WaCyaB|8LtkmjB&<1y{wOHpWqRb{C5q1HQY=B<%!~CPmV
-AW?>jw#iCPV$ofk?P%3!`YU3kid7odG7(>fMtQfDcc@xsE2}7^aIIjr{q0;;|lj6Rp5|K!?s#1Wt755ui0ribEs
-973u;t?Y!$~djWijH1a#dZ_~!DvM9L=>%e^{$dpB+_kJRJDlnyr_A<8jZ|%8f+O?N>=u}tXRdFw4VxP
-->JRQpjSnfXfYBGq5O&jM5yN@;D3S*Oe?8q}?(GV}$T
-zdsq3aLjBC66x3i0r%ipdKFNbp7Iz-
->f`W)YYvj=xjJ_q&C@`nYfGq*nUeYmog0i!FFr@K{yI8)cX4@jdO{oTWThYjzz#MtE
-1`d{#7AiC7aXWWvG!G0kv2o8<4T4jy=2bRYH@$MKE0X;J5U37pyw0ObzRC;x=vTT;@$b>Psiu;;5I96
-;!Ll)-m6+}#cydMdCm3N$J2SB(pu{0i_d9Q@8WDJPV>98DsuJ?9$1hz4`hC)H?X`uoPCH4qu!pKpW0>
-7=i@703Ja{9D&o3^OWM`=wh(zyZR
-0HcA4z_QAi!BBaxJ3f0mB{Be>2uNarB?`cg8$~k9r?}k;Z?LdZ-lg1KTQj8&?U~#(JZQUA2;8EFH!c6
-?^9i`8k5c5a#>`)^`t@CSfJZEM7t7BhtyEV8Sb**1Ss9aaAjF&*R_-4>e95Sc^Z+mL%9B&-S9MUsZ$MkM0I^J(0)=(>YM4~V;Atdi%q0$#)@`FZ~mLvY-E}?^Qu6G&&W=P7De(j&h05a(NYX2079
-vSj$389jM90&glCevmCqt|!dA${Gh>Y$+?Xk>DE{}d*cFLboS7sHkV1R9|~H0QhSX*MLgX=f?n(PtwXvzx6-9p9gfE`(5E@
-Z6s#7!*-I%+En&;d>|JOf)KaUE;=0gRAU2wv$5nTHXwri8sWGPAUfB4p{=dWzLWMjV;}@gjrQK~5P_G
-?)oato~PA6gk-l{b3hHZ(0|wb|uH62JB?iJcErk;0P^p;|z_^Zl9RY&uZlN}&a!KOqBUe|QW+Vs~8k;W12vSM40OaXCiVMdI2)cQWbi^uK985#vM4cW~Ce^%t}V&s*e
-M-o6q)$yH2o?4Gg{S&F)fS6_%4T}$EXTX3S$4z8NK6C#~mt64AVpqR`g#h$6?q~6Qr68JoLl$r7lPHD
--kHlInReoENvdh8&g)!V~^-!ca6JJeQBp8xRpjpuKR1o^Q{T8=!+1`55))~ZNCY*7Oy0`sFvO?9nUSC
-~D+X6tZLL7M@#=(0Mvv1B}PZ7$~w$l{(t6)^9}Lkhd6ZRFbyxo#&jCBUkUE8f^(tN0;B%}`)L#>}2tPqYN0bp{2%!c$5#)prK60X
-zS)Oq-paJIb*gay@!CLcxU}Iri?d=J^CNMH4WB|D~+XoFE1@9z+to6Ix9_fa!&_x0|aZ5D>6?fcR(l7
-l@x6Hz~lfyFQpzOPnhRftL9=+9TQ($Sz6scv86Z+A3;-Aw!E8LZEuyX7`n+&OkyJrDXdg_I8XF$1LiM
-HHgS%YIJY2hZs7V(}+ne{HyrIfIx6m>?BwQtL8-vJg}6o}cY4Y4?A(uzH0>#s6VtQDc_)bQR
-t8$Z{L0{H9T@&1?C~dpzDNp1jRAz_c6T9A>)pu%({9)O2l)`X{SYzPZ#B$h;7+eSg)1lkMDl$jg_V0k
-%n8k6D^cIf>)`to)f`siG(v=*Sg4e2^u8EcWE|(d&Zd=K0oQtUgk0E>Rx7($n3@5>SamAvk)0n
-8-L*(o~UlF@mPDQT~$f0ypFbDOSOlWLuwTEOPFW94(Df{Z)t41SFL%Z>F$4+=Ide{{8ptpK`z913RV1
-CtA9szP8k{GSrvpwSj(>{|CFyB?WNV&whQr|y{d-#EZEmdlyo<%=oV?5w{;9%%t|T_e68u}0lm1WDoU
-AK?FsIK2^q?|zm{G`OZkZL+CRXk$mKO_2mz6ORiW3vX5s7LI5%cptXL%yalhe;uocH}S4;E_T|<0eY9
-CSKGvLRA4&jylUwo+2JE)$hiXDzL?Xp)+8*Equ4=8!M9wFFV9Sn}Ux1%;{VeM@{>3iy_q2;#?so2mNKzVK7=P927D#n@}C+sn$DEwgKdQP^fqycmh-xy^yzG^Z~
-tj3#u~iUHp=d?_wS9F{#|$7g_l>iu(&R7P|ZzGw;=ecpNtK9DzEWw@%Y2MvvN3q_KJP-
-1J|+Qxh9wr}mhBTby2WnVaT2IqE&_6cUUaoi%QSH4wu!r+$^P)GZRz32zHpMSYT_x5w*)H`W}+B?4?R
-?j&fFt~E1Wx}2D_f3
-@yWAsvwrMl8vZ=iF)Kgdc*(3mbFhw3nc{^_MnTq`2K9k`3F1RUe6DpuoTjDTQlfFwf!(Xisd(6?Ye5v
-pnRzEeX?3ZHA)+#zaEO`m3eAMdB+J~u_yUIvEF(vw1mXB
-?U;+b_J|$h=KF^!;gkXDwSz+gl_?%>ic<*M@t@Y7FgeNNMl!DVH{S*Nq)Ce}_zLRWQAC^G$dwYdwpC)
-X_d2zeV7GNrv3iWpPtsSs3%qiG%6zr#!_|c_Qimf!axP;aWV}u
-I=|6t_b~f?hbN+wwtj!PKdwoMH<_>G!*(tbwp=w74k}Ylilkr1K_Pf6sGu-
-wzHW`lj2S=`^&vmeMZrZ~i<@dGb2bnN>4X+w062kaBFOL8P82M^fXk3KSD~{Y(#%akB3+ju-^&8~z}^
-7zo3OIzkW)1iDj@40528XL_<&zWB>*X~!#vQfppm8qK{K;o0d3I?vuGmt`1a=9WitV2YqS$jWB6j2Bh|b;|IN|sjgkM^D{N4CW*eE)+P%haSb)pt>h|!7q&py7HP
-1Pa-Mj-hC;(YW1b@i0A#~enjrAgUK&bg|65lyjNhj4H~UV}9*SQexI6CkVhazBnti%rs?4z0o~*rrlc
-cK5;=RskXdTV{h2ZRK9!a|ad-q6`RE;2aTja$Sr5sk8ZEe$bgNUoF1j&P#0}&k$OriLFk?Z%T=jSu=z
-PM|C2ci2N;K;7l)eOj5?{a2sD-u{if1J^p1~{tq-l>}r2Y8t4P}|_(fNFcDR%(9)d!UD)A1&RfrBYT$
-#9{jr6jPm=#t~X?jjG8%XK{jKfrT(;Bov;|0DnundO60)U)^l@aVzPyX)$*@8G4E3!mrv7oDxnZ3S}s=Qc
-0>z@$elqSVe*3{~RKB^)%ZVg^7=CzEF}T?rfT7cA{%P5UJ0+|X(BwTkLGDqL>#gYCBis8us()dS^Wa6{pI&-VIC1UZl
-li4bZz8Q*yn3aBS{(hb{Dz?2zwPTb7i?c?)>VUnLWF0FtV)so(2pe!TpvOh{pH@}_|q3?!)t6$tOwey
-7$Uk5Fr&r(PhlLsu7d}CM8pH&Q54!==RA%dx-(dRs2(T5=>GsvO9KQH000080BxrJS`A5tEZrag04{L
-=02=@R0B~t=FJEbHbY*gGVQepDcw=R7bZKvHb1ras-97Dc<3@7-^%P@lQcKz-*7n`Gu9(Pm@~+mq<^5
-13t?#a6g#v*gi4zF$Fo3i)!>UxC;Zk{xyhGmPo+SM-GZ=hP)SjzS7nQvtftjA3o}T`mk>`1*A49n=;w
-)97R5B99GSAAzGAj$Q4#L}DA^oGH%Vn&@DvQcQinkvwF2%d|m!ilwqR2$NT4#A7=6SXfLAoiHak>!qG
-5!`e>v-)?EpnDFbfSnuM4D7mUE*Rz7<)PDDyg825~wP3s|c4Y%>
-DDYZ(;WxY(?51$4{HKc1aVpT9bN{=@5c-;cx_1QjHj4zxOVK%^}9nU>Jg&*h)XIF~D#7Iwhb>0OY-(R
-uZ1AA~!ZE0|HE^N;+r-7$~Dr4N)T1LwqwNSB5%sS&*z@;m$?UON_w9spCw)+>z*tO4@)6b2cn;gL&@juwpLNMx|<=
-1F#c?8S>T%cVCIUv#y%gU-F5(k)MD=XLa_hC}~PS)2|KL0_$txEKH@WcSlq5~R1smw73NxXxh`C?(F~
-^=Y1G`M@d_J$(?pmrE&Tu-eFSLSieQ1hVe>A`W0wRm7nMVm?$bPEziP!agW)brcDy$aaPWnrHcnBsnS
-+ko>6Da-XS4ItOJqh)*Q~F)Pz>DY7|oaU71YhfGQL0PLdJm?0P*w9CqzQ6O+DsTAlR<%`n*;Lr;J8v#
-L=X$*TE)@?3<_@S(|34>Gwi2~)BhDjMof)+$kjN=4}Q8Oce1L_XdQ}hhF1<2@9jK|`B3DQdhxilDp{z
-Psk%}A)h4E10dOBf3PAVYu{fgZran?$;Vf&W0}tPvJ#5+ELf0Bc}fau3oipxM!w$WuVYyM}FJp4v|JabdTkY=DON
-t7@g`V%p$ttzPOCa9?UTRU2Fy*ix(gt#HZuTD5Qj^4|6$P4Wi6R)XV+I87B;GO)7i98Ifg?zo)r>@JR
-E3G`z*VUVv=*
-uT7~6lQdCqW?kDLQz;;;G(7o!T9dKBf-L~QGG-hJy0-HiyAV-7H|5wRDr-o)8Qq;v+g1>HB?z-u(M;~qEg_
-$=SSvNl?4TI;s@TW3p6cHL5c>uhPsuiM)1ovrOk=+^c-w63@HhTm2X>LdlxJk^S~U&eLY9r%;6sXJ+!
-zLgAcZQzLmF+ufojGHy`aHl)_z)DH7JcPHAsK%W=vxz16O>^&R%W!sJizU(Z*236bJ-eQWE9Ys&RPf4
-cK=K^efC@?oJuyE}VH{7hG}+W8&l7RR%8WD*X)w(LBUWy?OypgVS~pCaW3GJD!_{`FV<6TCtg!917@I
-#XXO22sgw6GIe|VTtFu;+sDlio*p#Ax(
-)re%=vF#Q11%%+(Ap}iTx96Pl_kx;`z67yXW=1Z~@h}Z$qm&V+hd84TaW=L8oNs2i?{ApmnW-Y*V{;M
-eS;?fXZO@vkXK?B>XxSu3A<6X*3wN=6NuY4xgt5`6=@ZH{glTBoWLfPO>#ivRfYJg7(9?_l6AMtp&65
-bQIwvEK2Z<$Rkwngx$vH6r(G1a?twR#_wf{-h+_FD@6w;bbGp={*^U7&AcrQrS9<}A<
-tB*Wr6beMENMGe}{Z#C3;5Mx;OekoJ2-mJO1Uu3HUO>}WXuGd&?z^7Z?jKHHUfb8|hCZeZq{I+X`_QH
-y>8(a8exBJ+1_c}Z{b`L%unP71h%Be4W%WAEyzA^mf-gDqb?M;O6P;5DTH_+gRy9W0eLlB*+_6G6DuQ
-g#}q*s88PvOWWH8H^K|CF{xBZV%mT#8%^4p3uIoJprGmNdek?MB>Kii3x;@#`>$^%+zKs%O1$KvJnvT
-9@8V0fTSATEGy&EV~1{h-ekB{RUYoJC+FJT}Ua;PS3<|zWS}0gTzLdkt_n3Gf4fl4C8qm64&~kgWu5E
-6-2aOmVuqccpSs(UcVT_Vgx-^AsHQgvHT$w^
-gvg@JUp1JDHOl(`f~A6jdXZcSzhWf(cJrsR}pZ#*?LRffH5l*m0g?A57Lk9;`IZC2$3=qvd@&vZ+DefEwM;@ll9XShVY(0F
-otL!D1VD1`XTKx=K#+j2G5aTh1`i0G2DWTJFlCr?CoHD(O^DIRvMY0RC+|)^JK!*#+dfG^qedG&xQrf9LL`d7Y!c;qTx4U|
-Ce?-mNflVNiaM7;6PVb*uj3I!z*A_1J}@lo0aO&Q83gf2$h{2X68&Ak8tNfx71={-6M-p8t`_wlBjp6
-JQ%TfxM>xynU7VGQtjZU0e(+FF6=goSH~Dl)92U5AWFA$!(jDy`=g7f#Ou6);Z@5>NmuCo6H{%&SN+V
-K_=}IjeZO40$^ZyfD3DB1j(jshPY6lKX47n=lHJ})S;Q3khOr7mG_F5z=7378+gX2vVnI>hc_9#Bnhf
-*uL#G%oEXK`#MR)1~j1r6+HH@;A}lIvr-g#d0VoDB=O3V~JwlkYOnDCb2@y-H*bCtbsv8P%|94b<`>?
-EFTe8dUchK2i}WovEt`*mB)|zmzgTDT#V{pM2EqahFMUi?K&d)O<)`Hdq@X8SFlAPFn_9gXAK22vP&-
-FMQaOd0wuIp$o90SIyHiMvM0ItmWw}B?p^yJ1S{um`WT^WQ*-FhMLu|G(GWjYXR+^@+jyi6(-!Jhut9
-~Yd6n#LP*+>dR=)N#XgFmEG;VY%T_%&-bbeT_YRlOoa9o$D+e+{*V1G9@V+I>{UL!j
-Im4I{h3YsqE^*AyQpvY`$4v7AFwZH(NMfLR6J(G$5?9D_$hn2bo7rPlm&G&f;)xIZJH+n*;LWltl(M<
-$VGrTG-b)t^`PbDuz_B}Tx&L-?!yg5bg%`rUYipz#&{Zg>;=75#oBQ#O;j=hjr-T2yxwbf_`RwnBF|X
-{AqXE$6mEo${>csag&~pxbH!wbbgcgWn%C{omSRIcMYSkqQ0lOX9OP3bc0#+1$};>(LToANg7G8S)vA
-iN@J=$E`2QnGQj*Y159+joNW;*OgKh02t<2eM^y;o@iXvcq~7HBNdI&o*1*W^hs4e+G3o7a~kIHx{}|
-OVFd$C!z=<}9;Z&~gDaJ$Xlkkn*y^gdf_~Svs+^9cjpwzV-IX!A1a~->UucB2n^=R=*SdzpIV17Y6_r)H<26Pb?x
-|MkjGVS9025y1Ql{4?gxbLpL##Uh6Q8ZSyaY3-q)5)ZOp;A!EFVQwjP(P^I9tm^`y-$xN?TjEzIbNcd
-dHtCfZ7-0)xKvQFEAhgi^-Mm&Mq7Y?Vw>`26QEb`#OTW9<-k&a>W)s1z!7RHf$6dbr6{9n_5pBV$aYJ
-MW6ZnXz{o0Lt!Uar0|5c^&xj{>xeUR*z+Zctic|!*e?U?*)a`zys)sxEDt|TxM`<;%JFTrKMu!$AsPZwH*W&}#j^~L^`PuBi)xvLU1r
-T?Snw1Rwp8y
-F8I)${;*oZ-r-D5aiG8AG55N}l#Ke&=orB4f(KSuvRP09j?w4gv7U_?
-J%$0b+k(5{`O`=8VOvjJUFDwi`HU`2!#@9fbNP?4vGRPMvShIf%0F2J&ol9I9I1macodg>#FV`9RTruVJKrwC{>(?IIql^|vOIznWiE$9}a4_xF_Hx)OF
-TmPZkUA)=31ScBIl9VbPv$TwPBm3!G)fCLz!92_oV?Rhip5ztcqlF8+~gf_9VIAbkb@s@j%GNnMW=68
-k9$%}BpfPe=4Z`}$ce{d{8hE5Xb*RbDGVv|jzVJ#jE@{S6ZA`MF-okqrK#(s@+;Gc2nM4Bz}0wODj{T
-9dno*lXGr3dj)b_D6(=Gq`tWKX8#r+bXB?f^d~jK@3O~E8ttuDK)+7_=1*u3&XBB|c)@4HBDA=Yr(_E
-@7fn5pfI5jWPSGWaR{>Y_Y+m^#GxBls%A<;PH=W^iJ$gG&E9em}|X`=B~Gq
-SJ^vsy9X(5G)u|XoH#0$R!#@dI;RT1Zj=38p|C30+?6JjKSd`Tr-s^C+kWZ820X$?&hw{Sxi#`IIXEz
-8JSuURa-e_<&Z_9qNJzsxeqp6i~$oiIX68!lIkihz##*buFt_aIZvHZ`j97oH#Gg~lW2<3*U7VI-L!=
-!8<(!@3`H;MOHH6I;vs=_E#w2lN~Nqw6K7v$jW(ggAmfv@B#reLa}F$O^EMrr5YIaNAK#RO@xANpB?d0Jgu1XJmCHaftbep;-gigf&(A
-Cp?K(Emh~3B&D4Zfis(D^*ZUZ+%Hdle1HD>@^t#@SdiA@099tlfyC
-~DKC!B6xL72?dWP9LHr{vVSoM=c6$os|;eKC615LNkiezY1KXr%a)Xx&NcTCO8qF$nV1?d-3r&~yVyZ5el>7K67m|@ESo6!AMq1vvF<|9Cq-5#R2N_L3l
-7^H~8&$crYtq5WeMeWLTpy;1E$9;hK!tC~0)%R@ToHr820+u2tlNx+RosaB)uYbxBLG?8%_|)WUmZGz
--m(o%Zw;L^t2
-|`q1{Xb*8IcL|s0ug-I)06X1v#$CEwcBZwG6)g%{O52hmkz=pO&6;e?Uxp_4TiQ{hL
-Go=>+yYaDo280q2MQQ+M#4py8Y-GzF$gr&&IrFIBk`t^!^AM0>7jjlF~^fj(sg!-pqAR(izAwC%qcL;
-sxFox-a3lI$Z;{tajWI>#g&FbWF}D#a%i$QvwwrK>np-I6fZ(;$L_D~tNIxteO=G2OkPlXh$+>1+7{<
-JA(Nk!2%Ql{E7P@&Tch8Z<)ve8Lg$R_LVZo}m9=?wRM71Ggz=&Kc%#C$@6uxk&+oS{GEEZD_GjHA<74
-wpJ22g!DnQv1EfS+stgYZL(&{p`&o`Yy+-ostcD7E#O;Ir|MKd7=mKeQq!CU8#831o(N2pQ>@h$J4Z0
-FGVwXy-S#dkzLRgrnHsc@cUEZqzN$AyC!G@^I;)Ak7}sytj(L)>epLOgb1V!a&7r+qZpMSi$VoZQ?QZ
-QW=GCb;_hvbt6NHCV^>){g4r|E!j5Af(;)nXnxh`X*-}P6YRKR518;09^=2u%~Qsm?#Nc*NeCLdWB_E>x;Hn7%lDdGg`S<@EFqm#63NPTsuvJUf8OQ@>!}-(dQ~iVHi}I?7?Fw1yv|oZp?H?&?Ihz>gj$fai$GP
-bRo6#BJj>Y8?7R(VC;S@H<=$56>{#uWxCZ7g9xC-jg5%O1P6b822Ee8sQ2@!Mf)vJyoGf?Z
-Mr%uXwHjt0@2vDmT+rR}XPWPyI{h1u1)rytF$wlSwSe)7J$q=nEIYt+Z|+)mFo%qo{31bywGB1){&ds
-Gp_Mi3X4g9Wed~n4sB*Irkh|5jrC*L#KdPtZvbOp8==cqU<14^tc_++Ng|hBdr6DlaI#)$mBLmLVo{=
-_`buzurVKbI2eEZPGMdylM?yd+{D^2yPt?R&!=xsFD@utK#6d1_Wt7
-aAIudDOwQ*5)8i3X(JWBtv=^4S)ed5UtSB&GX6of7Yd4!$WRAh(0t@b_^VW%r5>8|TsiRT9~`JVJ
-Mfbxz0Juxexp-CP_0Y=sz@Z%7FjSegUNV%*>O3v=`@X0VDzcJcMM;{+>(`R-F2fgus?K;ugf!L`5~5{
-Ra;L}xH4s%G@K=##?OMC{LZ!l{;%>xq&yvgP&8c;r`$cALShJc|MIF0Q1p`
-p^GL#zOUPbzxuK+>eU8Hq|Pu>Qnr2U2I~4OY3pXNQ>QTecVs#=HYXJwvy!c(Db|8jU+Cq;T(In)!Eg6
-gSK7M!?2&3_Y=-kyew9_uHX$7-%?D%*tuvN#$Mu+aixD*d)YJn82`V&YANtrUi~0DsjdE#I2z0FbUUj
-Hy@4CeT`lbi0V>?KiwHK3YyXs17AN@RV;MCv;xp7Uj=8y6A6E)DdU%?R0(PF*L445W?lxnsdyuZ-ZtR
-K=COM72P{8vA#t;`vp&F#XkHwQLNGJ7NTkEiF~!D#hx6QD80V@di#V;Ck@r{I
-`FvQ7zHC)Y5%A^gZaq9KQ%b{^dG-2%tQ^%puS(U6u)t_Y*k4CqL%U{O1
-4G&GA=lwX@kdx3^7O*9S^$n3i~=)59pFh~6D;j{4=c4#Pp^3@YqhzKhOx9~4sxa`pZ2d`oL?6ZBHsdN
-RDE}fjfeW0pi;%Jd=EwOjKW}&`3pS&5m&YBabmY3YDL(_zN?2!+eguQ#98ltwOyC!vv4c>W@!s7N+RX
-Gui4e4ZK^Sl~UEzQLF>GSvJFWB=(!c|vQ^l;vx_Up2CHmTa$Z{#8fH@LY-KI!1wqqlZs0F3QYkE_xz?
-Dz}q^Z%nIea)3V!p_rSX?>Lux!d@sA9OUE@4*StH^*}_9gJ?ObEUpSn-e(Tn`Iov1g7T~_p})jl;u>b
-pKyJ2js>}0fbE12<&Ju6uytVD-Xd|vOL`!Cn7gqKVu_xxr*m56p*wx_aA16dla4OEbl*W{)PYRHTrjPR&06xcxz#Nrd!%r)n^rsCCrQ8#fu#43Ie+P}yq4{>pLQKA_yw
-vV46L>(_E`=ch+1tjbM0v7iNU#7m2@|6AltfxpcJD+e!e#5%j?5V)^+Utiz49T1m+~0`1;rWS0ksUAD
-r-5MAsD7_x}Xbym8l>N)Gf@f(>gFs~;OO7HD@2Gy|{v0t5-7L)p)80oyL{!>fXR_%_rD-wiUPsMIl$~qJ3T
-{-&B~*J+6Y;c65ZT`PEL?Z=Dt|UQR`INUB_+C0bA<2vnH~UsIKTiT5@z9FfGUxY(PC!8O!>Scb5Tt4I
-bHh(@ivusbEM8&SOI9OIQbdew!qEhhkequT&fiQNcEEZ=;E5=}6*MTrqS?C%e@l>nbZ;!wBzx2O+YVwenv7k
-b1)8J{-$8BJbTj$tY7R6dko;^c`UT@ZcA7{^G`b^R7zR!wm9f#^!Mb&Y&yw9G1s*NzYI_}^xzWPG-*a
-2iF(2YQJ-Pr?sq{h!IxyE$sk-qX4=wnR%ekINQbg50dM!2g|?^7>saKd1G1)Iqbq4*}mIU7NTC%P^$s
-9zDxHRbw|I>?x;ZbHoY(k41$jfN1DVK|~Wg8$Ujf&SV50#Hi>1QY-O00;nWrv6&&p3pDp0000|
-0RR9M0001RX>c!JX>N37a&BR4FKuCIZZ2?nJ&-|51ThSS@BI~FPA+JB5!3-adi3N?q;#k0OrX=2B%=)
-YDA&~G0FCQ;)UBUab>Bi_i(Ap|1gi@*orCP)o6EVRWsN4jeWrR$kAENvTKk!xy!t*gsaQ6aKbTr
-Uw7>4(S1bR0{LH@!BsWQ|YVd}m$Bgn+mR6v)Y{lgBTlrx+W7!xv*suiYZVNEfz{A)*G#at
-ne8i)xe6xtVm?&UUJ+YkLc>QFA1+p}2?pr$>7QJZ8Ei&@Zg-?8x2JZk<9b7UjLwuF5qQ|IMK_<{=8~^|s0001RX>c!JX>N37a&BR4FK~Hqa&Ky7V{|TX
-dDU6pZ`?QzexJWW=RRZ%%s4G@#bpP`9(J)^T!6hruq|*8K`_wR@{AgfoctL^
-0Hbs#X`SGLL8og)hbvwAhi1nJueXosUTq*6ilUmu?EWGo-I=QI^C%gDo+gXb`YTb3BrWH|%;(O7!q3?
-tjafe>2ZT$L^I?Vk0UiQ`cS*S*vs^|3+--1|W#J>k=#9k;jYP?g=ypzoz)2CF0R8APhyGneiMW2~6pE
-3BkQ`YgWBfmZvqs=0`Caw2}d!s*t4?hpGi+flv@=s|k77f|tcd|Kp0Sa
-BGwLJ8MMC*3zy!Y28}4YwOHhZ$7Uuq9t4Y$TnJcD>B;%I9A0Z*bbhnTA<*9;mQ)uxM2{DdGb{{v0pGy
-Sh7|dhL21t28+tD@t!}4b${r67}nt0ZayfqS~P2`2UCl61Gd&qo5RYh0+Zl(W|2lu-LCqqrMkR+!HRL
-K3PV?*85H}E2MfmiA{>XPvD+lq{81ODQpJKj6d{!OP;78l)!?7?PSj7yJ94aeoJF@g&6~t+w8if;SO|
-yc-@p6YisH`x!+zIFELbi~k$}j8_dVzdk6_Fi4X4K$1?r4*UZW3RQ53&{Da`Ez%R|Fj*@
-&*sSLKGXCHn`rqykRB4C2)|OHvCzqJ$R$1EB(C)ade7$JX^E2M;$%
-M~5Z0ds>PXUn8Li!veq}5o`VAR7)ihv81SM%PW9E6Tmg5r2t5flqlOY4(tf7S-?SYUR-;(^4Aco_CpL
-D4F#M|O)%-?UU(ZZ58-uHqV^n8OUbANC?#(>6=;FSJbA950}QIEiX?c^vCOH-g
-%{AvbT8CV=oXLwklv6cx5ePvMi(ZD5k7NcToXY(F1uN193xV?eBX$DlUSGeRTZ&ng6U7P&bI;v84aLJzs2jTnnv1QKa?e4DT9g380UxW`glm9T9YzR!iGC1>AiSfmM+(AQw2YK7Kf;XWgW<^v1g1?!BhU
-$;*nH?*e%w`1@GI=H*Tg+q)D^(|4cj@_+tu}TBW*oc=*HCeDs8sc?ix^L8Ejil`!8$cGfOab3BeaeVx
-X5Bv4r3NEQ;p(-MgE2Z?Ati+F}cuh7AsL*AQ@y+OJ_G1eCtMdH?>0sXX%vn~3{KTII!)AztVSSBG)&2&VyP{rrT-oTz{^9QJ-dNvb!l^ejdLHL5
-!x9$=2x56~F|&4Y;=XLut~J?{eBpT;urMbv}e8o@D)9sxw)O==B$hG8~Ld5Jw_haGy%@bEN($0f%1H7
-k$T73^}3i8e7lhRp?Vgvxda@HDXDxfBkJY3d
-(8hcGaqJHfK$kx&4G@PN{Vj);L3=qziSuRC_kxos3t5RD*DiLrp&M10LXoa=pJW$Y}R3-WQe-kT?Pin
-MRp7aACw(TFlZbcLmkEHVJB^#SR@2zB-62F-HaXWBN=#z7?bIBL~^m-(46E7z_KTCNcc*GiYZ$>v|gf
-Go-n<7X*dsU@-_~1Bl;4zB31!Ajs}I8ak{*tGH?cz+i
-!FSKwBw+v3h$bfiiOWr_u_ciFuR&0`yyW+agZXyX3N-`>!gR-0@AoKbXd^3It<&Tx-zS?9^$Q-Ac=%4
-aU2(GI!?I!~LwJBEKA$0U|51{3n%aUfHE#PUH&Y+tdj$G?XvCRje3!scBO7GV9)b=j00D+g4eY>PxN?E1q`m2EZ>!kP$mfYQ
-Us0+BU;;ga%~I9f0ORv_w5OMyg!IM!)JfkOr(Hhkyy4=-Iw(>E%R1aH1UQ5^WGRg^ys-GEhW?%?iTwj
-?h&OP_T%S^ePpB0BfmVn6cA9DtN1ADStR?boyvwcWT7+VB6iI+(08_;Fg*O`o$yD%2If*?Z>;^1)53y
-RtNyc~XG@gy;J^{;_;06}AfjjYy?4&!OnepheYfGmy#)Kq8jI6`cD(&ngr|
-Y23W%&XmV&xOmSGw(6XBPzxO+HAvqMCWVd>-#o;+;&i$scl{=QEWv9EArzsP=Mz)$|buD$Kg{;+L;m(
-Rob1inz~mt?Efh6*rmQ`bTw8i;@__m04b8N^!*oF6
-@zo(1!+e{mbv`!&+sOI9^r=TwBTjdRXXMMooHpf-A#w`1PfzIKoBqT_3u|$1Dd|sopgyygR<8*gI<)J+1_Z
-FZ!{41+r{o;Huq?N^9!+W@NX94Y7UMos5g=k5jMf&0V{707bStX`FFul&AB0H$$FMy$}0k2DZ`iP;e*
-XArr(>mKBVF79Z&tfSlQXyq=64|_rZuw!ulx|n-DlSY>9dowv-i)w*_?f|Ieqpki*%cbiYWYQ8QyP^I+#!l37)C0Aq(?@T_2
-dND8yYNQ%shOyaNJQ`myJ8EccN#ae(8+kDb3o%U_pkw*2$y>E`rwxgz74TuyOaJ}39NAQM`Z7-hmQg-
-+85`JjX&XYes{p+TQ-WbNSTLtwG>gAFT0t}g+%rn+zivwnJ*12hgp!2t-Ow&;PLu=nkORA0%gFskPFL
-TS>b!R!G=Iby9p{mebC;Kd)2IHCZ-1d^u(T@e8jSWw)YlbZ|RpsRpN_=F6#Il5#oz=>>l9nJB$W+pBm
-YO?HfdGgogii%wibWCp|Erg^7ASTsCJzB^Yzt4Gt{POnVylo|<{Uxh9?!N!X59ZtI_^KyJMolGhp{s-
-O;g*s*tYQh0`>q)da?bXg6|#P+**>c^OgTe~(=AMPn#@Q>HtJ`@F2xBFb5@BWKEiCM2{EVNH7yj`>O=
-3hFo;oWn0n~r0tY!erphMn7d;ZJ>;1fITa&^mKO6^{r^^02aevAp^T^*aQzE}YT<=n2HUlkQ4L+uN9~(oMbozB}
-7dqS%_NufoW-R3#&LlZ#+Xj-T*DeOHCG_4hmEBP>|BS!&X=qORv7N2Afm4e
-*2v-5KW9C8#Yo%onwF_;M6`o4{G)q2pLhaDqVC1YSQtJ`5t8p~}^+qT4mf7BAEjG)gIWQpx+aqi2rEF
-N5M$5-r!%)@+tz-I@A&)Qr!ooJwmMI#wC)TY=<5{PaEQi2PAaf5I+q(ik>dT30crHqjJ8RmJU{7VP
-W*)D7Na;B^PuJ})d`3HJz#!FaLhnLv0yZCN
-c1lShx=jNtGNqdL>v(c6sI$D$2Y-`W=_F>dq(irWUOOxEpV7?hA3OE0S+`*^Qd{@9t%H^l8nBbz-13N
-Ku)=*?IfWxy}G@*1twm3`YE5x|vu8d!1l!w4TXqqJ3+MiiZyE<
-d%aisSYbO0oAoup<4)rKs}iB?fKlHg~qT>RBLY~G+t$v+XN9%cN+({9b$IQNBvS
-AGCo)->XM}yRnpRmzjhnI?`-th$MU*sWlWXnLK;_
-(qEI(QFRMZ*tW`Y64Spld>I*kUd7?54a9Ov2(b`$i_jjxZ}cxOuhyfOyIR{Q3@U#Rk0GIyP!r2NrI~2V?8+;524_
-aWGjxwRkA`OFD+yce(1tTE_;q&^E#F9o7$l2Qc6G4~w<%+*_ugq_rJ?Wm_Hf=?EoL+Zse+$3W~i(d$2
-|XJ8TLeM+261~s^xle!5sE$@{S{9iye55W0?~9w0eT^*`jL0YUa`p^h*v^y-5-MyS;brj^1Oa5X}M11
-|%h^x3$?@jnk-ERP<#xuu;w$gRs9%lszO-6wClLzRm_Cvp*yg#NhQPp@HRjrj8^J
-LNo$QLb)ik=9+rNWX{7D6CJu_MLIvuSJ7{(4EJ<$zVWFnyb_sw6sSvIIspv_ZPdD)d8)eyOwj3)&1|wEp?x{HOH!_s@SgPhY
-(HiKcE)lBL~Px=kXHlkNnrr1DlY+H7OO9&B*b-`euhSiHiG^QS&}dp2_j=Ahp~_!Eamtfs@6Z&POBy|4%|a`pP^&AJ>ZP
-iv7?;bilLws+lkk3Kwx$z&ad`9!y)?t3$m#w65z*4AhWqoqllA>ta=)oqr1TGHgb+%RfEA6AS10Z>Z=
-1QY-O00;nWrv6&t>%1Yo3jhGwD*yl<0001RX>c!JX>N37a&BR4FL!8VWo%z!b!lv5WpXZXdEFXoZ`{W
-5`~8YFjUYUPVr?UK+5;{?Ys-OwBn~7e{a^^hirl+n#3N}gDOqvz-#at=
KSWmZqe#X>*P@fK%U$^N5=%pU4WPwuYBXW`AD^VM20CkAr8x&78^C{}TwmhI
-+*0u|7cDUyY(!wM%StHff34-v;=E8ZbGVM8=LPS%!GzHAR`%jZAPL)xJ|i_}MF}=gUJm_O2o6v7qC2o(PfZhDXpgnFcWahqU;iO;PQ~|%6YC8s1*Is_DxgCj5suCj{Hhw-e
-g`0UT3`9%R6ulmu=VNLV8YERhb)J1_cXkk!Az<4&GmZsB#EWvw~J&L+2bGV@uXI8H~*VT<3Nr{JUDAm
-_^67CQ7B?8b8uloKd{Uvh`|}iTxgM?3%0-u(lIv-W*$yXxv5ddw%lAlas$?>BTqe6ZiJ$n-ds_5?uY}
-ho9e`oxc40`6(d#2MYL1$f4>17l^hJ?<;V__fzw@NZ8WM#cH)G#ExZoQ}-MU&C(dl4FjiMvy<=HC1`E
-4V(>uJekDK%$Fdd};`;-z4ZmKZ9~mHi=OFq9gxyJzveR^*LJnz8o~2
-LCX7slM%js&OBKBnn_QoOq#B#khY{)}1fM=2Q#Txj-X2xZb)s(X{wU1#77?{E_wFA2pQ==W_RHxn?
-8S>G%!ahiOT^*cw3EsWGHY+a*?tGdaUsvw$h&S3TJpZ&GbjX1&;r9c9(nzl%Fy`7>IC3W&y*P-ikkh4
-{oK@IGqSBv=US^Xiid=cT9*(+1Vpx)%)Z664Ji>ci`Z29A*vEo-EbrmKL~$@m6GvmUREeiSXLJSqiez
-i@s<_F*9v1|tQMk>=rzUy(-A*`Q7|aUj1@Zj@lB-`P?>1L9%LY%aq7(|ts@)e1uYxmqQA{=FV7ilkzX
-}KpR!jCQAN9Yi-x+Qcn|Tn0cRmLIhIVvLD7ZA1hbfmQVSP2o3+$nK5!v33v_0eP^Ce=25}VLFm{^}vS
-bNF9z|@KQ}62#zlX?9fq=YW6pQ5r;@5R%B;t@m!bt*B*G`V1?>#7PAYK}~|sn>T
-{)Wz5OO^UQ_B67>fWOJ+?2RM;VCy=P03Rpj8dj0$l^UNY+Xx1Y`h{^`!|HwFpQ7g6CDBTf~Mo$tv2_<
-)C7neQZho2OL@MG?xwv>dH&el6bIIuL9mpiJYrMJ-+V6noM{%$B%DqhfXaRX~
-wYI~@y#lx_O7R>xkTw1LbiBT;ClyY~QL9C6JRH}DF?5@mk(b+avR6GH3lLm}Pp-E6|6e)skU?rJGtlP
-sB4VRX?{nl$I^APC`pXW&sK^zcX^jbJ&f?(NCq6SUUWq@to-M0d44gck6J3djV~Fbv#dojs$d65FA8!
-SmhoN?IJxtp=858&13&Fx{o_RyJx!lQYYK&!P)bQPWu1$WHQKY2i78Ds4wP?LVz3XxB9-?
--Qnmc;w@;Ww4^9*s5-Ji%iacAAi82au{X^{Bap{IfjeM}9i;JKkZqDC}Ib*!^dtsE@BP_z50xdh
-)`nzr46Mrg8SSPWA;2~C5pR87aGLcD6&cG??Rvva9ZEl)5CBR*8AnFE)EY!+rr-u2~<=NPRbLtKPlw)
-n&p#UjERO|9J>NyJWmBa41}e%f_F4}=HL(^QL|-tevl#~Pc0;vW6&D@muA_=jlUz`tHd@EI77nshWC6
-=5_{ODS!lxJ>n=Ekuj05Uo^wrK?z6trDYwK7aaGo$|{5K$|No5%slW*@bx!wzEuZ&B{XH+BoDP@r*JV
-TV4{FTEZrkw)JXnXY^ie({|lRq4)$PgI^vvxoP#r4?EFZ2l}6}0aAPK>AXa-6LO_@r)#HQ=2iZoHobS
-pz$7wE(8wva8X-S$tL2#a855VH1`P
-|~{5$P9ozL!s3}jn{Fa$lUl6|Ksqn4Km+k`N)a4t6Y;-gg952-zF;
-7@*&qvX1>4z@Z)kPja}U1CQqt28nr3sO`nkA|a$Jy0=Y_&9%QSaYRl*bZn#(s`OSd@EUI9}fuc|!i9b9*jr%~}^RVVOK;i>e
-hXOo5vpoTi$e35;H5~;>#ut}pyc&!e?W4m*?_uaH&
-m(bb>=jAsbtZ2m{`u~XhwDGI8ZFq{QAai2EqJU**UcoVQj1gS#j_t@%pD=x+l!4La+o%Oaf@zL7gq`vml_+P9{3mL$XX&BEPufR;on;)oCc9O8
-A-lS7E4w95z0Len@bNvRy>i*uPgG`ab5()9bRLeA|HDHBvN7+nIXE#;pZUxk7a$HiDww%S>kqtVa>#Q
-b3Vpmz$hcR>_YXj!!iR;Q+=OW-c5)4M@%|!#AJc^^j_hrnOegkj;e&XlI!OJw5m2N)`w=pTY+x3V%CP
-qI8sXptriVvK4V}Qipm{a`3j{1SXp?rqze5Oab-
-Y%d2FLkFP0+FJc5-m$KZs^BXm^=TDeJ$dO1rP-o6e8!Rn2v0i}$ncdR!H_GOXwPH(Syn=hJNZn4O8d>
-69H7%}rf3ykOAY?LkBO)_Hty>LEso3=G}eEtiaLzX`y8;2p1f@8(PN@F(Yx3{_8gBdo_RAf0hpb#V)b
-1ai?e!~UQy={nK!PINE>#wh5(bpdN7`mYfKNC0m(2AR$-^sllyl4fR^RFaIH`Amg2Et4LzUt2sK)={a
-xBDaAGVuk>FBfh0?++y!jqSz^ZJy(kXV1pMixWE+V_M+AfP5^@|Mf+XJf&k9RL6TaA|NaU
-ukZ1WpZv|Y%gPMX)j-2X>MtBUtcb8c_oZ74g(rfczF|*SohJr-pVW
-e08mQ<1QY-O00;nWrv6&TRWc!JX>N37a&BR4FJo+JFJX0bZ)0z5aBO9CX>V
->WaCx0s-H+Qg5`Xt!!BZbrLcMB}M_*kaNEdg(<(fs3;vNh`=E}6qMkaM6wYvuHkG~myNTeihlKLTQlb
-r9F-wc^7%ihZ)uZcNPLt6R7lqR$@vX<8)oceUrWSq3J4b&kQA8M>#21_noFsy#c
-VX*$i@F9
-~Q$Zt~Im_W%0KadW+a-tg7wd_=lNkH|fir61`!%E8m2(tTk_tl#}K7Xj*e)#wO`@7F~8G#Id9D*>H-Y
-TaweiVar5m&{J5;1ZLd8CSCDriqk6|;g`#WXt2>w`;!;1XP%XQ)~ApAR2@`;-*~Ty^!#TRfB%v+CAQQ
-bFw35#=W4ye)OxaFZ9CSF7zn0R#}Cd_v?zZ3}x6B00#cJEhRzwHLW@d~V4r$Cf?UtcB7Ld-i;%lvH!1
-SfRM$^L#y%;<=MOBnTSUaBcD=vE3=3J8)vNUHAwLlp{u!pl7xs+9>iro3ucNf9x^LRcjDrh%<1|AL19
-bBDIG788N^bNs=QEVC$EOlEH?MDPu-l+r$`(%rj_N&1pkws==n46KmR=m@5hRk_YTosF9A&sm7l`j!I?_pV6kLr_rvi05xzuohKt*+Tu$f6oZ*Vb5{FeR)iqo24r<=HJ1Ns1iaKZ
-0x$#WNI|Ez`ALezdVoyfUXw>Jg|E(C-R5=0$S0sWG{|84b3x(Sg|HRDb-S2g{lYDL6RS8ag?H{>5|X0
-Z^pGHZ-VS;g;eLosEBPgH%b;T-Kje$BGFzaKVhwI08*QrNV&BkOipqND+`{>UjM8fU?br0dP9-^!d}9
-vLpxi3wU3DAtt1B)L2r#9>|sOjeYjQG5oX&0TK^S&5mp1rG&PP0Ro&S9KJWhu|Pxi_Kb?JB(D{nT875
-A)SS?G>}a8RvI(LaFk4%iHP)UezinXO{4W$dcvlDDwjUx~HB|;
-hb+q$3b%1?jX-+#RO^r`yi-TV8gO`(PSI9G@G$>Br=wY0SC1yx5~1T}Hp&J?gyHBuZa_y)Y(0)#~wyE
-0+CT|}S?lMB=?k)0hI9=Yr^;Hib$1804QAa-`6kCfZ!POu$moqRCm+4ucyofVs(w^rfjxF*Sp3>|!^$
-f%>{&r9;?O!Z%#rFI{@{T#}?7rdP@%AbdkJ&XZdw4Iq1_@x(!-$vrT#Kq!y6|qD>=6KwM(VLMYe`LXC
-TU>+tuC!qM3|uP9#i2gteKp!jE8EFgPS?_Io0xP(rNX40T)NVIYa<_viB4V`L{er~
-5?siN34&?9^Cs6o-M#8TcT}Ir}60*<%4tfz#MjTS`h!X(mmgMIm!79saJ4Oh1BMj85G0O^q%o?)x2cQ
-H-O^3EE1K-`OZ-%C#$UpEs
-RKZjn0T&~UuwfKt;-(P=yV>&Nz-00{oNu&6lWd?E1-a2H8_o`%OVCJn|M5~Kx--|J*%*HRI+Pz0+qUS
-X_Qavcu4X?LychqW->3%z7Ld$<`wrZ2^fBz^z1z$G%t56f4#
-N3Z(xAgdf%+@Nx)7yuo<4XHgCjbyRh#(!^OFO?fC~p6GnFzMtN|M9fddF?Xc6hMgx7ueZf<%;UF{bkQ
-JmOJ@?9Kgc!KPBKPQ;1y|4T;sT6@cMjjNVkY0i!#;bYJe(Uo1L-6av0>CFR=dmm%Du*{CdON*e47WnJ
-Hs1*8_a$oufwy@=*i{v_Bt#$ZPJGg4-qLa#DK8=HbAJQFkE!QUDPtS`DzqGSP`bqpTef?p9_VxDe+H^-knz=E~<=4_Z&>)&BcI+B(ogEr2xAEX;6AIs|F{e<9({s1`JCS%hf8v_CW@?#6qz;
-6xk(X(C2kWu0Y$8A{J+S_@b)Os_J7=!Kk^&p*$`@OamgpORMgfjBn74=2E9jA*?E64!S*Xjfep%Y{{*
-_Pa5{3FK3efCu*8Q+?k51ADjeql=Uorpg>?UjXHUgI?iksjmTH_Ss9W}fxyX8EVxy1F4)rWu0zZ}mPA
-*4Fv%U&M#f@*ypIZxUDq_GhX;SK~IL-D7ZrQ*krsK0?k+y);cDi;=@aj=G2ErP6+Oru>=YCP4<;k{
-4JO)7n|kRm6h1n?LLPHYNm#_$P{g;iK7MI(*$LFWa`_kC;pRmT!%caPQ(UGgpV3XuU)~`9)7zetGb?5
-~^5Ar6@zPyzywO~vAdB%SC|)>g_JiZ1;V%j$*BI$*#A$2-CqQk0yO*G5&!PLg3uz34S0pN9~
-b8<_LV#1_PmRIBrSq~pe5R7Ba1pxTCbbtfA4Qdy)AEY1$wA($jan!W;pK|T@VBp!b*0jw_B0MEJ}p6Q
-%0{wCL)*ktBYKv(gr~=8m)}pGR{{;UKq(aQ`=0N9Pp{mMXq#eN278r(d)HJ*S()%q|=qES9O+W!dO}V
-w$+>6*RQz|kz9)CvnOAjsffQ9Ng=J@%l8?GR6Ca6yZnUI(lhVZt)
-n;0o9+ZcR10SyB}Fir&=yyWsFukYZOFa7GT>SdlD!{DT1nuBzwTSxTH?M&HI7DG
-$v`bw@uk>vJgnPl&@*@_%!j-j>CY+=DyENz8+JYsmR@9%H#r|$Lc{`&p=_UVCNJk4*e_|^QLw|1Wvzb
-tM)EZR%&=l73K=Qr1j_k3~t$lu*QEv}}c$q*CrC6ZotUGf(qE~Vp9mOrkI(Z;V_DX~tq%~f=#vex=M#
-id{ygtWE1koiuV&yZXyqu$<~k@6ut3`?ICD
-R0l7N{w&jnJccjc_$^PLS(z6ZuYBz&zOAxRg={Tzo*BKKvXoSxsDDYv)A7@|LdIiNo7N+KLj;hKHv7k
-YChz51+1%{OFUrko>HD#+6TK7(r)8{is8X!SXsZSDO^naV$GJ*ve!DeSyA12E7*`Y4+tWWwi^|T|5(Z`XgKDRC-?Mu|O5Q
-9uslQHvr&17|)!Xx*$YtM*nn|5&R;f{3*vh=dq4B??P3Im{l*$c3;wcvp(y44*R!L9%M>?n$sth-C1T
-gx=3QW6)Up~%Qee4%9g*`8tFT$k7Cg+@KVi?bglI;5}C?fI3THe4cef~G}0J}&f;v9hC>he6X6}VY+>
-4^Hfdkr91Q0hiBN_DTk%_e7L@h
-Q%5{?hk1N^jS&2#^(442ML|9U!fR;1tZx`4j}P|nOeCGg;4zB1$vT{?62Y8U+z1QD
-HskW-lm)5g4rS1iJi`94%uw2zHGU=Vu#a%EPfmzPBaIA=P^c{zI-hT|L~g-|^d&_rECWB^8Ie&i^>h;
-XEEAp<+od#Tgz?Qkm;ABHH54*}?*P|;a%Ors1iskcTtT8oEhPCDQ#g@l<5;BbeJnqY~sW%|%(Ah=%CF?R|BMK+%D3LzLE|tRtUBa_rAcNw$Ne{e
-HdU>(7B=lFA)yb{X;&L?{Vh9K5l?lwjx|2x9gnAejUR_PF=g$Jces@qkuNC?9O#UxKGI;-XgY#Wn*5>zzvU#jq
->GFEQF7}lEm@Z7ok()d0z`VrU9yGQ>QTfic(o(HR)lCnF%~9AJwv>@55Vox&icA5FDPbg4+pu#eGw^#
-{n^-?%@MTFwQ+aX+u`V6|5CC;>GqiA_r_vQ7!e2Y+vmctC;p+P0>8Ha0+XO<#0*AQ92PD2*%D>3{QVS
-E$sRuGemVd((Zjr2<#mffTMYP&T(d?d{t8o_^nZ~2b}HX^I)tVg9gQci7YN+Z>
-{bSYRY7IXc2mGRc4@n~<-dpV6ZS!}ZDEmx(RM1=WcW5^DIrDa3d6D?Vs+!Mv1)cyjp3z*tD4q%Yu>pQ
-h-$+n!bTJ!RH$Vl$+jI)SO*hJ)%vd80^ug`=xa%3QaBUKGe9C6;2rWXG)xsd}&_eBDXM
-!o0ep{WEbVRAAltLQ_oE7nA4`+YoD;VoVzGQLn@ZVvrulx={r9OO+(Du*V;6*>s_hK`tZz!F3|27n^L
-k8z_2}g4j*tu)Q(GS;S_b-p>m2lq$5O}m`U{AJE*tMUUP6(SC@WGveSCyw?fJM_Y|TBxc}OzV-LFu8a
-_ahmM;auqf1N`jrJCs%~&9cTnAlx!>}ySX+ZRP?EE-me|8c9z-kqYT9KrlOpnp$L^{!CR^hG|8e{9^q
-gi)0*sYyv+OsYzy-~<9l3g%LAw-6|WLCjqVQ}~%lAYLFE>kkvn6IRuZwcPA@=60?wOqkX*q_|~v5x=z
-=EM0v9{Ba*{Nm>Niod%)e|);Xei-QRA^syQ4CbPpFzJE#=m{R-U@M&@dPgNneGli9jsPnOoUu1HWW52
-FLjgkz|EVdCYJ)a&e1x${Z;I7%x2E}aenxJ8dYbL?4PqmFv!D(Z%}@F^XEu|OS}C}nSRo4ZLZK~|)9#mAv5Q!Ex+?OEX|t+
-pr|`di^qNG_?@R8J$av2#i^R`Y>*%L>i(rYH_2_+(LDCPmjST3cG&^22nv)Hn&_vhm~j_-}T?;504N0{PJ;ryYNUW-yOs@JSS
-<-{M}v2o?HYT`Y6zAb>;|M%$LU!ql$weM%
-w#r)fNx>CABoittk05ior@lx?#wuTARJb5PVa&HGMXaZ6uZt>29Kq&VdBDE4?DS{0O2j%GNT2i^Xz38
-_(ENssru&Vh(=N5Az3mcf%6engx;gSwRH~=5X7V4a$n{6l`u|J#IM8iQ9VhLsvps7ELQ(=H0{5w>B*c
-8sv92Yp2mGbTm#5|KAja~hU%rn115ir?1QY-O00;nWrv6%SwSB@EA^-p&eEc!JX>N37a&
-BR4FJo+JFJo5L0P8a+N*PwMRG9HGt<-4ujy$-QFKr*(n`-%xoWbqs8w3b)OA&^SM|Zc#X_r9l@-%$
-m20)ol~!4;no`a5JS((qQx;P_RFie1{#=yJpH)`WO^d{@`H&{djSc+Filg)tY6t_t
-jbNYkqqN%;$3?E%W0Pn^i;gbDFPp&CpEG2HH%|0FCl&vqIF$lcNIG^B7h
-ro#gs}YXB|8$t{pgS;eb#dXwU82?KWQKu%?mP18L4hfa!g88kJd5>N9irdd^{-EmpWvul6gUG4O{sTO
-*%?UqZRx|6CZJ6q)CGz}WOJwG{1j*pICoFqTIJR1U0H%VPhlT`(~?p+s%WjWJ%9nZ^ZnKlW~Z&Q`I0r
-w-79&_P6t+QgL-xH&+J-;}6^ZI%6;^_Rv$@%U^%
-dDQ7Ca^P_ast$NaDdbd3v_76I)?sVQCUBsrA?B-!NCD=D^;agtrOl(iN>|)^YV^cw8&M)mTZ^xHSNZM
-8hxi;mxUf5DENna9zV|zE^I()M~nz*l)6xB`pzB2-0L7dpoT})bt8
-47WoPHkDDnD#tRhyU-Rfa!}`D#$Lc*i_~2JD`!JpZ+v`Uvihl=w)rW_1y~?wuKNt)S+~8$)@YrB{nci
-50lR)Xy-?5qjW4i>54si!x4eji=HyGjE;~Op1Yv6)~Lk3k*<>YrgZKwkEr_^YqfX%O$zu=$?4(VNOwyU8U5CT#`MiE^Z+6bY?>1-xQ?
-aPNOL&ezeE6YMm7kYY=%s`|im1eo(n%86DzC)?UTYIc{$QxyM`OVFIQqaeQqy#28ucm-TAi*FSr7owKWLAlB~Siz7<7r722pOud|i~Fl=#s7(LPZxky
-nAV7M&63ro1ciGM&}JCvkMjTZ~#Qft08d(59eoEs*MRT}?IBuQE_Ot>TI$qk5&M**u%7yM+c}1xj3vE
-OA2w2*3o$^%}?t#EfMND2PEv#J)fq%0Q`LS^-k(Bok64cVg7-UlKim8qg0GJpvjo+`Lg>n5~0dkSGM%
-4}VEDZ2(@;7@S2RsL_b&a%AWdc7cJ0-+|fxyBCUo`Nnh
-yLXO=qZXQ6f042R_Gvi~-ID&_LH+0RmuxRi9dTeWB*f+VvmQ=a$y)x}4@{#hqp=2HNM30XM(+_4MT2%
-H)`T{zdg8oIwO+?~gSa*ft5M-^YJDISZSb(s){~HvR3|mm#<-XuTU5ovmR|(yFywFwrOOAJ~b8Zk`0?
-2Me9AlCiamF5@^h<`x1L%Z&+ER)Hnr2+$$lMhHZHfsxxBMqYuK=YA1>J&ev5U>M`q7>Wl-3X}D9f)>M
-G!x>TgU=$8wYb>B}faqzewYK%=={j%NZ1x7}Hfr<=cKo_n00rkD0zA8IRh6ss8hsb#x~a1n`7l781tq
-OsPe8E(9<6fwWMXwQ1I<{N)`0Mm)g|x(J$nRd42S?b0o*?TL1(}#(YKP3j%}bTgg
-#Ux?a9z7ZnLT^$k%b3RvAu(g)uS)A4^lx@7EOxoB$)0{`)$E@d2b}o#p^?KePy(k%JR$KXavwHru&-@
-EEKek$(vB2CGks63QIJp^{%3~9_A0=xhXWph*^)yaQdoSeNrdiCnp(N9OOkDj0WpiafB;HituP*}CuZ-(4
-9m{L&0gES;hi-5acq%@Gd9hKF_gv|kBCS|?fM)v4azyu=<%M602<+^BE1o@>ui|5%b@GDpaWMHdx6I*
-WqY|Pm#Yv4J1LeaGf3K!Z%YE3KiOf}h3*D|-F1noaZ|G+*t2W^j92XitY_uXpI`FaKT2Z>K$&~wd`w5
-w5PdlJdd!D`f5i(bOAkB~bFLuo;%#?38b1b&02>mDQgyBi?^3C8D_Jd{>E#zj;^D(D_m<8d)2Al09i6
-)e-LEM_DROZCgq+3T0DpAXf^+1Z;j26cS)^5W(3(JLc2eK@(k1@mnXa6XXD*SPq}B;AuJ4TKRu2-$%L
-S{^i;l?EIx%4}*@mw(iUmr=TIN>m_`BH-_QjvrNe7hQ$umWrJ?KPUFGK}(g)t%eRr8fscMzr3Yf&s^b>%&^GdajOJ
-Oc{Sr{_y-K_&?)OqRDd-o6qPTnO;}!7UJ57;$mndl<=_5g
-d=}(eF0b^9w(n>-~_`I7D2_<%*mHwqu#kjozR_mOzbL5Y&5a4}mf=P=Z;syV$uWW<1&%erLBmego|pT
-0+hGQ})P7K@-QVF|Ft@2*wWUSl$5dL3}--IG8vded>3+FPkoaz@}gfWHqVn
-Xtm4cFmoBo0mM+bd0YkX+{XDA`8H_ru6LWgnbx~an_Jlu-UeVXw}>bTC6dfGRn*oVJfcsc1`~6s$6tJ
-LiC7!svFP3GKdz`^3?;W%2y+)w1NEoMbiJ>VPK{eSxL?Ne$+iU7*Zy>VO5bJ6^-`q`=&Y-Tj->$>j3%
-o=fmVgSQ!g$qPSIypXxeXa=L*S;@PHtBsO7%xQKR68%
-1@w7Yl^>N@K^u1$OI!W!$x%21p63F*fEf?lwN21_(Jv=OAk4<@5%>G7!76c7_VN1Kk7l2bwB*ra%d+n
->u0k+xL!_0$-E(k?hWXVl<(<1%(};ftG{CG}|yh#{xzp?qS3|M9y>1Qx5v~o^~i2A!DtHlj5H{{4>En
-so|nNvM#+cBV}0nd2sELYz;(&ji8Vp^R&~BiNi+m_+P&sfZa4*3{^iH&|v_4yBlOH{G1HHs>GB3ema;
-4Cn45|4m@2wlmxfc3TzyZl~=H(A9N`ZZFys~htrdvMjAHN47A+iBZXkmUyFXB$r_zTu|N5jb0ty{1cf
-n{>D<9AO;G(@Yt=hHf2EE+us`dHzry@_$e+;^ot4wIb<_JGQ2vvVmlb?a)Ap)N^9cAy$
-jcdBJtetBiOe%M~pCNAKzdqDD-lJ7Jxbc014HyX+$+5)|
-2UZ?jVDyrh7952{+H$2=Wu1Xa%4cACmKNfVIz2g6Uw`?`$`fM1G&H}_(do+p9dGba8fZ=x2wr@Wry1G
-l27u@ub-L8yf(Vyxsx+~vdN7|R_6tq7R>R@H1-kBHif$?HWujdimzU=RJHhp-ae>60rl?b08|@N3f@D
-?0!Ucz2J~hSaoL9+)oe9#aHF;U({
-91YP9N4B}g2Vhtjr{%YOWhV6V@j1#+4Bz3^mh*aYW`N3o)|(@1TzVk28V@`cW!-!VmymWNY`3-GKF|l
-Pxn18EZ_Y1XAN_RlASUrsTHSCMDRzYT#?P^YS7sGOE$~o=O5bWkWx2jysI2j^H!A_ph@?e&tML#O8Er
-);&S?Fdw^8Or5PSm0rr~yRK(?^w!GH9A@f<`BZ^xzs<6Sk85J+j)86wJ$l0X;%xsmLXuq)q@xrAX*n6
-veN`)HFxB2>ga1#eY|HxJ4d;`|;y59TEPMsX;u#g^akAB8Rrf(<3jC!k7)s4@_?CAd6zJd%*lebK>_T
-hTcNZK-8WKzn8s~cl5qXDmgWw!#=u-%jxAqw%Hg)#`yoA9YMMg@08
-R3sQY(T=Kcah6*VmM*f7s)I&gB0SPbjh`mg0;|9*)21=ev+=D25ArZ#TqEff2MYt-+w_38PMPM2ulDZ
-|NS3ZLmNtRPf&tX7_HM(_)iJaahF|vwtpgUA+yvAZ;|i6Zhu#u}Zd@Y@ZKNWq#g?3e7*KRJrP+wR3ui
-?JC&{|FMc-!hEuLKy0e$xcqAgav?S?3s`5uNjTCKV9bX`?walzE3dCzHA2~Ix@1Y~OP0!KpBc4wQ`o|_5LX9PwP_!8P!1(y`gz7a_X>)&TwVV_$*zS4##N=T-O`-s&s3wqSM^K47l^U19faXp=a)q#)Dq9s+HZXg&sp@odq(G(-
-BY9*1S5}Ay(ot*2*VGA8wwuUt{A)wR-o#7j{hcS8-rh+%U9HfZcKV=T8;DF*)%Yr=SOW*FqkUY6`hS#
--Hj1%X(Wua}e#10I!81@3)YqR&bWPoI^U_j{&bN6z<{CCrvcuU=|;`dEXOLshuOi}c$!vLvzAqo0k
-v$aSN;zFob>EP_c2^if&sQ9GQl|&z<
-AiE2KkRwrDb2%EPXlwypC8ulGzhjG(rwrO8+1S+_3+IB?cnjpi$!nOx{u7g;l
-EG?V&jU9C#IXv<0lY&|f%&D}q9|E1pw-v&zvmYe@(c##%X{%VMi)&Gz#aTVU>I%cRGvOzIZNS1Vt>%DL@`UPRfiH78)Tc)9}(?c)>{SATW9?P`)h8`&}lQ)y}({vP*{#l*kz>495Zxp4}%}CWOjm2
-;5RNY%Q+OH}#@e0^4CQU^Dco&Om*qo{hHvqHKsjvMtdm)hsHl?TRpH?-p0&E?{_I4-eJT)=Ud^r>UVh
-1gCg@0V@XU$_x5U