From 62e3d81473e6ad9a97340e557a26f835add2dfd6 Mon Sep 17 00:00:00 2001
From: Daria Dovzhikova
Date: Tue, 27 Aug 2024 11:11:21 +0300
Subject: [PATCH 01/15] Updated the docs page to include http.route attribute
support warning
---
docs/instrumentations/golang/golang.mdx | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/docs/instrumentations/golang/golang.mdx b/docs/instrumentations/golang/golang.mdx
index d58722106..ec3e3ee1b 100644
--- a/docs/instrumentations/golang/golang.mdx
+++ b/docs/instrumentations/golang/golang.mdx
@@ -19,7 +19,10 @@ The following go modules will be auto instrumented by Odigos:
### HTTP Frameworks
-- [`github.com/gin-gonic/gin`](https://pkg.go.dev/github.com/gin-gonic/gin) *. HTTP web framework
+Please note that in order for the `http.route` parameter to be properly extracted by Go auto instrumentation,
+you should use Go 1.22 or above.
+
+- [`github.com/gin-gonic/gin`](https://pkg.go.dev/github.com/gin-gonic/gin) HTTP web framework ⭐️
- [`net/http`](https://pkg.go.dev/net/http) go standard library for http server and client
### HTTP Clients
@@ -28,19 +31,19 @@ The following go modules will be auto instrumented by Odigos:
### Database Clients, ORMs, and data access libraries
-- [`github.com/gocql/gocql`](https://pkg.go.dev/github.com/gocql/gocql) * versions `>= v1.0.0`. database client library for Apache Cassandra
-- [`github.com/elastic/go-elasticsearch/v8`](https://pkg.go.dev/github.com/elastic/go-elasticsearch/v8) * versions >= v8.0.0
+- [`github.com/gocql/gocql`](https://pkg.go.dev/github.com/gocql/gocql) ⭐️ versions `>= v1.0.0`. database client library for Apache Cassandra
+- [`github.com/elastic/go-elasticsearch/v8`](https://pkg.go.dev/github.com/elastic/go-elasticsearch/v8) ⭐️ versions >= v8.0.0
- [`database/sql`](https://pkg.go.dev/database/sql) go standard library for SQL database access
### Messaging Systems Clients
-- [`github.com/rabbitmq/amqp091-go`](https://pkg.go.dev/github.com/rabbitmq/amqp091-go) * versions `>= v1.4.0`. messaging client for RabbitMQ
+- [`github.com/rabbitmq/amqp091-go`](https://pkg.go.dev/github.com/rabbitmq/amqp091-go) ⭐️ versions `>= v1.4.0`. messaging client for RabbitMQ
- [`github.com/segmentio/kafka-go`](https://pkg.go.dev/github.com/segmentio/kafka-go) versions `>= v0.4.1`. messaging client for Apache Kafka
-- [`github.com/apache/pulsar-client-go`](https://pkg.go.dev/github.com/apache/pulsar-client-go) * versions `>= v0.12.0`. messaging client for Apache Pulsar
-- [`github.com/IBM/sarama`](https://pkg.go.dev/github.com/IBM/sarama) * versions `>= v1.40.0`. messaging client for Apache Kafka
+- [`github.com/apache/pulsar-client-go`](https://pkg.go.dev/github.com/apache/pulsar-client-go) ⭐️ versions `>= v0.12.0`. messaging client for Apache Pulsar
+- [`github.com/IBM/sarama`](https://pkg.go.dev/github.com/IBM/sarama) ⭐️ versions `>= v1.40.0`. messaging client for Apache Kafka
### RPC (Remote Procedure Call)
- [`google.golang.org/grpc`](https://pkg.go.dev/google.golang.org/grpc) versions `>= v1.14.0`. rpc client and server for gRPC framework
-modules marked with * are available in odigos pro only.
+Modules marked with ⭐️ are available in Odigos Pro only.
\ No newline at end of file
From deb58b1bdf03b100eb1881652615c331ed8d92de Mon Sep 17 00:00:00 2001
From: Daria Dovzhikova
Date: Thu, 29 Aug 2024 16:49:58 +0300
Subject: [PATCH 02/15] Updated the logo
---
assets/logo.png | Bin 12414 -> 15711 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/assets/logo.png b/assets/logo.png
index 6d1dbde05916c17ea6b439e7a627cee524008d7d..ca6d9c7ade15d0f1353a6488d96d11dc4d2dee1a 100644
GIT binary patch
literal 15711
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%0DjIc7AGk4WniExP^J<0_)ps@dVp#wdGv
zAa|QwMK$Qx_e|9kV$#i%Pxxby>je{I=`B~PorY
znJpMm3{UGPPtWdBu4g~#YwBxti{m(qD_d$dS`s)}{Dkyz3)uKxeZazwNEqpX+-96#
z#`Kok3C;@rq$oVQnOH3;Nt3XOKvva$8Z{>}pY+QsDhGet1!8RW7OGS0CXJ=QxHHRo
zqAIkhxQ;fvEGS4)zOnw@n)u)^Tj^-XL{=5mOug|A#;&5YAfq(0-tS;JZRl0PmV`pA
zhplv{TwLqCI9fU{EqK@&yh{DW9tQNOJa=}gEyi8jWXfCb>yUrN`)6qJp$!a|
zYuE($Z~=StuWMrGCDD1-YqyeD9}{X%YPI-7ICNAO|M0zD1lO$C!|x@NTo!G`@vLD<
zIl{gohh8&E!jz-wG2g5$MD8mvmmppH1mZlbyi0Yr2B9n-ZPLP;Dn~igs`U*QEtO%)
zfwN&Kc^P?;n2gEBo~@zhV>!9|;y)FE%sepM^M%;)fCGBYMlP5w68}~fd+mpf9$0)!
z-x_|~=OCcaI6JJThBdaCQNkk1#@e-gdUBSiMP`J2NSZL8F0UZTH8ez=y=_)Yv9JAF
z!!0ku#78UWb_+YU`e^PC-YUZ7YxfrH05rrB}|QMG!cgj^5W=$
zBkj|rj{4tt-X{`QOG|Q4e{-yN5!Q!E=^{Rs*k=RcgVn*A7{=f(MChHwOJ*hS}&%8j^+OPPYaI7_%?{WMV{3>
zzZKd;%D>LqL5>c90SG>rBn?XJQ^(o435wmp8k@uNJ(5;tCsWMO|!oo*hsukMAhu+3TJjyks48DLBI6WIi{U
z#Q!J5vzga&OIP(()T_B|eBajDX5cLukQzPfBgym;0U-&Vd^)pwgo))-^LRwgDWDg*
zSZ^17^%6>Ud8Vqd7Zj62l^8uWqp;;@J;(oC#pS=Xhuk7?D6Om7QZNF`ivj4if5xv*
zBWa~&{Zt`pbj*?JwV{Htj5o518HD-9eDPQbp$?&MWB
z0}Lt#Mo_>`8tLWu49aMKDFnlETX1#y{8YO8b>>oe_|_
zarupW+_C0RS60C)LBOjS#~*s;eVi3P%A#w(0qm#*e%a6J?|w{-_Ui2~lC4=+1M!?~
z93FH8P+Gbdhb{MOX#NG{XSuTlBp|Z-d<`%$QDGc*yq^K@QmJ~M1ZQB4^#2%BlWCU%
z%EYyexwHWKP2xWC{2=yWv1w(PM2;so{A{Am__O{RAbh>~nd70*O!TeK0l*;W;#>vn
ze?DLStuCwYi6q`}WqWu9gaAZ}nZwE(jI5GpjyG$BzwI+m4_I(C)@(Ju=s`vSl00DQ
zvC_62azS2_*N#GS!N&{NJbB*L4*TDXKWPNNhd_Z!*LbB~EUThRLrTNt7=Q99s{iA`
zq+dwmpuNUD6;u4K76smJ^`zAnG1s90i3tGm!(t+9hwgYkYh`tGl`hNa{5+a6UFz`Uz(Gr5f_JEY|N-QvGef=g=c$SH42r9zYqcXfFmOZ87}{yZOKTc`DlA#
z<~N5CgIwTjw%?cG)|p`b7iLA#KLG8(YCZRB{0ZQ164G}8%_yL~ajf`V?riOO90JH7
z^q?wEdpoZn_f(|Gde?Y)oHWMB0e)A%V(6ccxm|Gsjx%rHApt<{*a^sHKMp=#|9Cw@
z1XaYT@>fd>=q$K*0F71F+c{L@m9~#bBp^TP320-5cx53E6x1&DmE>V`%(V%0fNYL|
zRpS9FAAoz!*A5Fs?_J3XIHIon71t*DC2y%zDOsVf!Ua53XbmVJpf^j;O1z`b4=+O6
zn?jaSoG#cE^gBQC@SGDa_S{Kx=WF}dfI9T78iLT~p^M#C*VU-hM{oS=NwJOai|wro
zd(y@E)|?C=;LDpa#ywt}x!fLn|A@BFbu{P~IG()+0
zdR@Pb5AY#FCP29fdXt$t4amuD`Tpl78Uow^T*?&?=#!QU#s4pOlXUk)i&yX0f{jLyZ`_I
From 5b4f8ba4f66b5a9fbe0279df9d9fd1a9a07e1bb2 Mon Sep 17 00:00:00 2001
From: Daria Dovzhikova
Date: Thu, 21 Nov 2024 14:33:43 +0200
Subject: [PATCH 03/15] Update README.md
---
README.md | 85 +++++++++++++++++++++++++++++++++++--------------------
1 file changed, 55 insertions(+), 30 deletions(-)
diff --git a/README.md b/README.md
index d1e80dafc..f4a2b12bd 100644
--- a/README.md
+++ b/README.md
@@ -10,35 +10,59 @@
-
Generate distributed traces for any application in k8s without code changes.
+## What is Odigos?
+
+Odigos is an open-source distributed tracing solution that revolutionizes observability for Kubernetes environments. It provides instant tracing capabilities without requiring any code changes to your applications.
+
+## Key Features
+
+* **Code-Free Instrumentation**: Set up distributed tracing in minutes, eliminating manual code modifications.
+* **Multi-Language Support**: Works with Java, Python, .NET, Node.js, and Go applications.
+* **eBPF-Powered**: Utilizes eBPF technology for high-performance instrumentation, especially for Go applications.
+* **OpenTelemetry Compatible**: Generates traces in OpenTelemetry format for broad tool compatibility.
+* **Vendor Agnostic**: Integrates with various monitoring solutions, avoiding vendor lock-in.
+* **Automatic Scaling**: Manages and scales OpenTelemetry collectors based on data volume.
+* **User-Friendly Management**: Offers a web UI for easy configuration and management.
+
+## Why Choose Odigos?
+
+1. **Efficiency**: Over 20x faster than manual instrumentation at higher percentiles.
+2. **Simplicity**: Implement distributed tracing with minimal effort and complexity.
+3. **Performance**: Separates data recording and processing to minimize runtime impact.
+4. **Community-Backed**: With 3,000+ GitHub stars and growing contributor base.
+
+Odigos empowers platform engineers, DevOps professionals, and SREs to enhance their observability strategies quickly and effectively, making it an ideal solution for modern cloud-native environments.
+
+## Features
### ✨ Language Agnostic Auto-instrumentation
-Odigos supports any application written in Java, Python, .NET, Node.js, and **Go**.
+Odigos supports any application written in Java, Python, .NET, Node.js, and **Go**.
Historically, compiled languages like Go have been difficult to instrument without code changes. Odigos solves this problem by uniquely leveraging [eBPF](https://ebpf.io).
![Works on any application](assets/choose_apps.png)
-
### 🤝 Keep your existing observability tools
-Odigos currently supports all the popular managed and open-source destinations.
+
+Odigos currently supports all the popular managed and open-source destinations.
By producing data in the [OpenTelemetry](https://opentelemetry.io) format, Odigos can be used with any observability tool that supports OTLP.
For a complete list of supported destinations, see [here](#supported-destinations).
![Works with any observability tool](assets/choose_dest.png)
-### 🎛️ Collectors Management
-Odigos automatically scales OpenTelemetry collectors based on observability data volume.
+### 🎛️ Collectors Management
+
+Odigos automatically scales OpenTelemetry collectors based on observability data volume.
Manage and configure collectors via a convenient web UI.
![Collectors Management](assets/overview_page.png)
@@ -48,7 +72,6 @@ Manage and configure collectors via a convenient web UI.
Installing Odigos takes less than 5 minutes and requires no code changes.
Download our [CLI](https://docs.odigos.io/installation) and run the following command:
-
```bash
odigos install
```
@@ -61,32 +84,34 @@ For more details, see our [quickstart guide](https://docs.odigos.io/intro).
### Managed
-| | Traces | Metrics | Logs |
-|-------------------------| ------- | ------- |------|
-| New Relic | ✅ | ✅ | ✅ |
-| Datadog | ✅ | ✅ | ✅ |
-| Grafana Cloud | ✅ | ✅ | ✅ |
-| Honeycomb | ✅ | ✅ | ✅ |
-| Chronosphere | ✅ | ✅ | |
-| Logz.io | ✅ | ✅ | ✅ |
-| qryn.cloud | ✅ | ✅ | ✅ |
-| OpsVerse | ✅ | ✅ | ✅ |
-| Dynatrace | ✅ | ✅ | ✅ |
-| AWS S3 | ✅ | ✅ | ✅ |
-| Google Cloud Monitoring | ✅ | | ✅ |
-| Google Cloud Storage | ✅ | | ✅ |
-| Azure Blob Storage | ✅ | | ✅ |
-| Splunk | ✅ | | |
-| Lightstep | ✅ | | |
-| Sentry | ✅ | | |
-| Axiom | ✅ | | ✅ |
-| Sumo Logic | ✅ | ✅ | ✅ |
-| Coralogix | ✅ | ✅ | ✅ |
+
+| | Traces | Metrics | Logs |
+| ------------------------- | -------- | --------- | ------ |
+| New Relic | ✅ | ✅ | ✅ |
+| Datadog | ✅ | ✅ | ✅ |
+| Grafana Cloud | ✅ | ✅ | ✅ |
+| Honeycomb | ✅ | ✅ | ✅ |
+| Chronosphere | ✅ | ✅ | |
+| Logz.io | ✅ | ✅ | ✅ |
+| qryn.cloud | ✅ | ✅ | ✅ |
+| OpsVerse | ✅ | ✅ | ✅ |
+| Dynatrace | ✅ | ✅ | ✅ |
+| AWS S3 | ✅ | ✅ | ✅ |
+| Google Cloud Monitoring | ✅ | | ✅ |
+| Google Cloud Storage | ✅ | | ✅ |
+| Azure Blob Storage | ✅ | | ✅ |
+| Splunk | ✅ | | |
+| Lightstep | ✅ | | |
+| Sentry | ✅ | | |
+| Axiom | ✅ | | ✅ |
+| Sumo Logic | ✅ | ✅ | ✅ |
+| Coralogix | ✅ | ✅ | ✅ |
### Open Source
+
| | Traces | Metrics | Logs |
-| ------------- | ------ | ------- | ---- |
+| --------------- | -------- | --------- | ------ |
| Prometheus | | ✅ | |
| Tempo | ✅ | | |
| Loki | | | ✅ |
From 9433a827814bb20073a763d29e3347175dfc92a1 Mon Sep 17 00:00:00 2001
From: Daria Dovzhikova
Date: Thu, 21 Nov 2024 14:51:35 +0200
Subject: [PATCH 04/15] Update README.md
Co-authored-by: Amir Blum
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index f4a2b12bd..ea4b932ae 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,7 @@
## What is Odigos?
-Odigos is an open-source distributed tracing solution that revolutionizes observability for Kubernetes environments. It provides instant tracing capabilities without requiring any code changes to your applications.
+Odigos is an open-source distributed tracing solution that revolutionizes observability for Kubernetes environments. It provides instant distributed tracing, metrics and log capabilities without requiring any code changes to your applications.
## Key Features
From afd3165fe5c7218d4c8aaa3612170d7ba3061c6d Mon Sep 17 00:00:00 2001
From: Daria Dovzhikova
Date: Thu, 21 Nov 2024 14:51:47 +0200
Subject: [PATCH 05/15] Update README.md
Co-authored-by: Amir Blum
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index ea4b932ae..0ccfe49ca 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,7 @@ Odigos is an open-source distributed tracing solution that revolutionizes observ
* **Code-Free Instrumentation**: Set up distributed tracing in minutes, eliminating manual code modifications.
* **Multi-Language Support**: Works with Java, Python, .NET, Node.js, and Go applications.
* **eBPF-Powered**: Utilizes eBPF technology for high-performance instrumentation, especially for Go applications.
-* **OpenTelemetry Compatible**: Generates traces in OpenTelemetry format for broad tool compatibility.
+* **OpenTelemetry Compatible**: Generates traces, metrics and logs in OpenTelemetry format for broad tool compatibility.
* **Vendor Agnostic**: Integrates with various monitoring solutions, avoiding vendor lock-in.
* **Automatic Scaling**: Manages and scales OpenTelemetry collectors based on data volume.
* **User-Friendly Management**: Offers a web UI for easy configuration and management.
From 70e053842196d8ace7d09f8da7668c2ce6dd83e4 Mon Sep 17 00:00:00 2001
From: Daria Dovzhikova
Date: Thu, 21 Nov 2024 15:18:58 +0200
Subject: [PATCH 06/15] Updated the readme file
---
README.md | 85 ++++++++++++++++++++-----------------------------------
1 file changed, 30 insertions(+), 55 deletions(-)
diff --git a/README.md b/README.md
index 0ccfe49ca..d1e80dafc 100644
--- a/README.md
+++ b/README.md
@@ -10,59 +10,35 @@
+
Generate distributed traces for any application in k8s without code changes.
-## What is Odigos?
-
-Odigos is an open-source distributed tracing solution that revolutionizes observability for Kubernetes environments. It provides instant distributed tracing, metrics and log capabilities without requiring any code changes to your applications.
-
-## Key Features
-
-* **Code-Free Instrumentation**: Set up distributed tracing in minutes, eliminating manual code modifications.
-* **Multi-Language Support**: Works with Java, Python, .NET, Node.js, and Go applications.
-* **eBPF-Powered**: Utilizes eBPF technology for high-performance instrumentation, especially for Go applications.
-* **OpenTelemetry Compatible**: Generates traces, metrics and logs in OpenTelemetry format for broad tool compatibility.
-* **Vendor Agnostic**: Integrates with various monitoring solutions, avoiding vendor lock-in.
-* **Automatic Scaling**: Manages and scales OpenTelemetry collectors based on data volume.
-* **User-Friendly Management**: Offers a web UI for easy configuration and management.
-
-## Why Choose Odigos?
-
-1. **Efficiency**: Over 20x faster than manual instrumentation at higher percentiles.
-2. **Simplicity**: Implement distributed tracing with minimal effort and complexity.
-3. **Performance**: Separates data recording and processing to minimize runtime impact.
-4. **Community-Backed**: With 3,000+ GitHub stars and growing contributor base.
-
-Odigos empowers platform engineers, DevOps professionals, and SREs to enhance their observability strategies quickly and effectively, making it an ideal solution for modern cloud-native environments.
-
-## Features
### ✨ Language Agnostic Auto-instrumentation
-Odigos supports any application written in Java, Python, .NET, Node.js, and **Go**.
+Odigos supports any application written in Java, Python, .NET, Node.js, and **Go**.
Historically, compiled languages like Go have been difficult to instrument without code changes. Odigos solves this problem by uniquely leveraging [eBPF](https://ebpf.io).
![Works on any application](assets/choose_apps.png)
-### 🤝 Keep your existing observability tools
-Odigos currently supports all the popular managed and open-source destinations.
+### 🤝 Keep your existing observability tools
+Odigos currently supports all the popular managed and open-source destinations.
By producing data in the [OpenTelemetry](https://opentelemetry.io) format, Odigos can be used with any observability tool that supports OTLP.
For a complete list of supported destinations, see [here](#supported-destinations).
![Works with any observability tool](assets/choose_dest.png)
-### 🎛️ Collectors Management
-
-Odigos automatically scales OpenTelemetry collectors based on observability data volume.
+### 🎛️ Collectors Management
+Odigos automatically scales OpenTelemetry collectors based on observability data volume.
Manage and configure collectors via a convenient web UI.
![Collectors Management](assets/overview_page.png)
@@ -72,6 +48,7 @@ Manage and configure collectors via a convenient web UI.
Installing Odigos takes less than 5 minutes and requires no code changes.
Download our [CLI](https://docs.odigos.io/installation) and run the following command:
+
```bash
odigos install
```
@@ -84,34 +61,32 @@ For more details, see our [quickstart guide](https://docs.odigos.io/intro).
### Managed
-
-| | Traces | Metrics | Logs |
-| ------------------------- | -------- | --------- | ------ |
-| New Relic | ✅ | ✅ | ✅ |
-| Datadog | ✅ | ✅ | ✅ |
-| Grafana Cloud | ✅ | ✅ | ✅ |
-| Honeycomb | ✅ | ✅ | ✅ |
-| Chronosphere | ✅ | ✅ | |
-| Logz.io | ✅ | ✅ | ✅ |
-| qryn.cloud | ✅ | ✅ | ✅ |
-| OpsVerse | ✅ | ✅ | ✅ |
-| Dynatrace | ✅ | ✅ | ✅ |
-| AWS S3 | ✅ | ✅ | ✅ |
-| Google Cloud Monitoring | ✅ | | ✅ |
-| Google Cloud Storage | ✅ | | ✅ |
-| Azure Blob Storage | ✅ | | ✅ |
-| Splunk | ✅ | | |
-| Lightstep | ✅ | | |
-| Sentry | ✅ | | |
-| Axiom | ✅ | | ✅ |
-| Sumo Logic | ✅ | ✅ | ✅ |
-| Coralogix | ✅ | ✅ | ✅ |
+| | Traces | Metrics | Logs |
+|-------------------------| ------- | ------- |------|
+| New Relic | ✅ | ✅ | ✅ |
+| Datadog | ✅ | ✅ | ✅ |
+| Grafana Cloud | ✅ | ✅ | ✅ |
+| Honeycomb | ✅ | ✅ | ✅ |
+| Chronosphere | ✅ | ✅ | |
+| Logz.io | ✅ | ✅ | ✅ |
+| qryn.cloud | ✅ | ✅ | ✅ |
+| OpsVerse | ✅ | ✅ | ✅ |
+| Dynatrace | ✅ | ✅ | ✅ |
+| AWS S3 | ✅ | ✅ | ✅ |
+| Google Cloud Monitoring | ✅ | | ✅ |
+| Google Cloud Storage | ✅ | | ✅ |
+| Azure Blob Storage | ✅ | | ✅ |
+| Splunk | ✅ | | |
+| Lightstep | ✅ | | |
+| Sentry | ✅ | | |
+| Axiom | ✅ | | ✅ |
+| Sumo Logic | ✅ | ✅ | ✅ |
+| Coralogix | ✅ | ✅ | ✅ |
### Open Source
-
| | Traces | Metrics | Logs |
-| --------------- | -------- | --------- | ------ |
+| ------------- | ------ | ------- | ---- |
| Prometheus | | ✅ | |
| Tempo | ✅ | | |
| Loki | | | ✅ |
From b9d1a260b53eef0653c766050e67229ee98d03a5 Mon Sep 17 00:00:00 2001
From: Daria Dovzhikova
Date: Thu, 21 Nov 2024 15:19:52 +0200
Subject: [PATCH 07/15] Update README.md
---
README.md | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 73 insertions(+)
diff --git a/README.md b/README.md
index d1e80dafc..15a32b6c6 100644
--- a/README.md
+++ b/README.md
@@ -20,6 +20,33 @@
Demo Video • Documentation • Join Slack Community
+<<<<<<< Updated upstream
+=======
+## What is Odigos?
+
+Odigos is an open-source distributed tracing solution that revolutionizes observability for Kubernetes environments. It provides instant tracing capabilities without requiring any code changes to your applications.
+
+## Key Features
+
+* **Code-Free Instrumentation**: Set up distributed tracing in minutes, eliminating manual code modifications.
+* **Multi-Language Support**: Works with Java, Python, .NET, Node.js, and Go applications.
+* **eBPF-Powered**: Utilizes eBPF technology for high-performance instrumentation of Go applications. eBPF-based instrumentation for Java, Python, .NET, and Node.js is available in the commercial edition.
+* **OpenTelemetry Compatible**: Generates traces in OpenTelemetry format for broad tool compatibility.
+* **Vendor Agnostic**: Integrates with various monitoring solutions, avoiding vendor lock-in.
+* **Automatic Scaling**: Manages and scales OpenTelemetry collectors based on data volume.
+* **User-Friendly Management**: Offers a web UI for easy configuration and management.
+* **Opinionated Defaults**: Supplies common defaults and best practices out-of-the-box, requiring no deep knowledge of OpenTelemetry.
+
+## Why Choose Odigos
+
+1. **Simplicity**: Implement distributed tracing with minimal effort and complexity.
+2. **Performance**: Separates data recording and processing to minimize runtime impact.
+3. **Community-Backed**: With 3,000+ GitHub stars and growing contributor base.
+
+Odigos empowers platform engineers, DevOps professionals, and SREs to enhance their observability strategies quickly and effectively, making it an ideal solution for modern cloud-native environments.
+
+## Features
+>>>>>>> Stashed changes
### ✨ Language Agnostic Auto-instrumentation
@@ -61,6 +88,7 @@ For more details, see our [quickstart guide](https://docs.odigos.io/intro).
### Managed
+<<<<<<< Updated upstream
| | Traces | Metrics | Logs |
|-------------------------| ------- | ------- |------|
| New Relic | ✅ | ✅ | ✅ |
@@ -93,8 +121,53 @@ For more details, see our [quickstart guide](https://docs.odigos.io/intro).
| Jaeger | ✅ | | |
| SigNoz | ✅ | ✅ | ✅ |
| qryn | ✅ | ✅ | ✅ |
+=======
+
+
+
+| | Traces | Metrics | Logs |
+| ------------------------- | -------- | --------- | ------ |
+| Axiom | ✅ | | ✅ |
+| AWS S3 | ✅ | ✅ | ✅ |
+| Azure Blob Storage | ✅ | | ✅ |
+| Chronosphere | ✅ | ✅ | |
+| Coralogix | ✅ | ✅ | ✅ |
+| Datadog | ✅ | ✅ | ✅ |
+| Dynatrace | ✅ | ✅ | ✅ |
+| Elastic APM | ✅ | | ✅ |
+| Gigapipe | ✅ | ✅ | ✅ |
+| Google Cloud Monitoring | ✅ | | ✅ |
+| Google Cloud Storage | ✅ | | ✅ |
+| Grafana Cloud | ✅ | ✅ | ✅ |
+| Honeycomb | ✅ | ✅ | ✅ |
+| Lightstep | ✅ | | |
+| Logz.io | ✅ | ✅ | ✅ |
+| New Relic | ✅ | ✅ | ✅ |
+| OpsVerse | ✅ | ✅ | ✅ |
+| qryn.cloud | ✅ | ✅ | ✅ |
+| Sentry | ✅ | | |
+| Splunk | ✅ | | |
+| Sumo Logic | ✅ | ✅ | ✅ |
+
+### Open Source
+
+
+
+
+| Backend | Traces | Metrics | Logs |
+| --------------- | -------- | --------- | ------ |
+| ClickHouse | ✅ | ✅ | ✅ |
+>>>>>>> Stashed changes
| Elasticsearch | ✅ | | ✅ |
+| Jaeger | ✅ | | |
+| Loki | | | ✅ |
+| OTLP (gRPC) | ✅ | ✅ | ✅ |
+| OTLP (HTTP) | ✅ | ✅ | ✅ |
+| Prometheus | | ✅ | |
| Quickwit | ✅ | | ✅ |
+| qryn | ✅ | ✅ | ✅ |
+| SigNoz | ✅ | ✅ | ✅ |
+| Tempo | ✅ | | |
Can't find the destination you need? Help us by following our quick [add new destination](https://docs.odigos.io/adding-new-dest) guide and submitting a PR.
From 83c2219156211b61b40de4ba959975fffa3cc668 Mon Sep 17 00:00:00 2001
From: Daria Dovzhikova
Date: Sun, 24 Nov 2024 09:51:00 +0200
Subject: [PATCH 08/15] Update README.md
Co-authored-by: Amir Blum
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 15a32b6c6..fab30106c 100644
--- a/README.md
+++ b/README.md
@@ -24,7 +24,7 @@
=======
## What is Odigos?
-Odigos is an open-source distributed tracing solution that revolutionizes observability for Kubernetes environments. It provides instant tracing capabilities without requiring any code changes to your applications.
+Odigos is an open-source distributed tracing solution that revolutionizes observability for Kubernetes environments. It provides instant distributed tracing, metrics and log capabilities without requiring any code changes to your applications.
## Key Features
From 26641addedad54ff9d3ac5542e370d22e385eba4 Mon Sep 17 00:00:00 2001
From: Daria Dovzhikova
Date: Sun, 24 Nov 2024 09:51:08 +0200
Subject: [PATCH 09/15] Update README.md
Co-authored-by: Amir Blum
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index fab30106c..0d0fe976e 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ Odigos is an open-source distributed tracing solution that revolutionizes observ
* **Code-Free Instrumentation**: Set up distributed tracing in minutes, eliminating manual code modifications.
* **Multi-Language Support**: Works with Java, Python, .NET, Node.js, and Go applications.
* **eBPF-Powered**: Utilizes eBPF technology for high-performance instrumentation of Go applications. eBPF-based instrumentation for Java, Python, .NET, and Node.js is available in the commercial edition.
-* **OpenTelemetry Compatible**: Generates traces in OpenTelemetry format for broad tool compatibility.
+* **OpenTelemetry Compatible**: Generates traces, metrics and logs in OpenTelemetry format for broad tool compatibility.
* **Vendor Agnostic**: Integrates with various monitoring solutions, avoiding vendor lock-in.
* **Automatic Scaling**: Manages and scales OpenTelemetry collectors based on data volume.
* **User-Friendly Management**: Offers a web UI for easy configuration and management.
From 46f42b238be0ac6f703489c181ac0d4aee0fae8a Mon Sep 17 00:00:00 2001
From: Daria Dovzhikova
Date: Sun, 24 Nov 2024 09:58:06 +0200
Subject: [PATCH 10/15] clean up after merge
---
README.md | 59 ++++++++++---------------------------------------------
1 file changed, 10 insertions(+), 49 deletions(-)
diff --git a/README.md b/README.md
index 0d0fe976e..8d0efe28d 100644
--- a/README.md
+++ b/README.md
@@ -10,28 +10,25 @@
-
Generate distributed traces for any application in k8s without code changes.
-<<<<<<< Updated upstream
-=======
## What is Odigos?
-Odigos is an open-source distributed tracing solution that revolutionizes observability for Kubernetes environments. It provides instant distributed tracing, metrics and log capabilities without requiring any code changes to your applications.
+Odigos is an open-source distributed tracing solution that revolutionizes observability for Kubernetes environments. It provides instant tracing capabilities without requiring any code changes to your applications.
## Key Features
* **Code-Free Instrumentation**: Set up distributed tracing in minutes, eliminating manual code modifications.
* **Multi-Language Support**: Works with Java, Python, .NET, Node.js, and Go applications.
* **eBPF-Powered**: Utilizes eBPF technology for high-performance instrumentation of Go applications. eBPF-based instrumentation for Java, Python, .NET, and Node.js is available in the commercial edition.
-* **OpenTelemetry Compatible**: Generates traces, metrics and logs in OpenTelemetry format for broad tool compatibility.
+* **OpenTelemetry Compatible**: Generates traces in OpenTelemetry format for broad tool compatibility.
* **Vendor Agnostic**: Integrates with various monitoring solutions, avoiding vendor lock-in.
* **Automatic Scaling**: Manages and scales OpenTelemetry collectors based on data volume.
* **User-Friendly Management**: Offers a web UI for easy configuration and management.
@@ -46,26 +43,26 @@ Odigos is an open-source distributed tracing solution that revolutionizes observ
Odigos empowers platform engineers, DevOps professionals, and SREs to enhance their observability strategies quickly and effectively, making it an ideal solution for modern cloud-native environments.
## Features
->>>>>>> Stashed changes
### ✨ Language Agnostic Auto-instrumentation
-Odigos supports any application written in Java, Python, .NET, Node.js, and **Go**.
+Odigos supports any application written in Java, Python, .NET, Node.js, and **Go**.
Historically, compiled languages like Go have been difficult to instrument without code changes. Odigos solves this problem by uniquely leveraging [eBPF](https://ebpf.io).
![Works on any application](assets/choose_apps.png)
-
### 🤝 Keep your existing observability tools
-Odigos currently supports all the popular managed and open-source destinations.
+
+Odigos currently supports all the popular managed and open-source destinations.
By producing data in the [OpenTelemetry](https://opentelemetry.io) format, Odigos can be used with any observability tool that supports OTLP.
For a complete list of supported destinations, see [here](#supported-destinations).
![Works with any observability tool](assets/choose_dest.png)
-### 🎛️ Collectors Management
-Odigos automatically scales OpenTelemetry collectors based on observability data volume.
+### 🎛️ Collectors Management
+
+Odigos automatically scales OpenTelemetry collectors based on observability data volume.
Manage and configure collectors via a convenient web UI.
![Collectors Management](assets/overview_page.png)
@@ -75,7 +72,6 @@ Manage and configure collectors via a convenient web UI.
Installing Odigos takes less than 5 minutes and requires no code changes.
Download our [CLI](https://docs.odigos.io/installation) and run the following command:
-
```bash
odigos install
```
@@ -88,40 +84,6 @@ For more details, see our [quickstart guide](https://docs.odigos.io/intro).
### Managed
-<<<<<<< Updated upstream
-| | Traces | Metrics | Logs |
-|-------------------------| ------- | ------- |------|
-| New Relic | ✅ | ✅ | ✅ |
-| Datadog | ✅ | ✅ | ✅ |
-| Grafana Cloud | ✅ | ✅ | ✅ |
-| Honeycomb | ✅ | ✅ | ✅ |
-| Chronosphere | ✅ | ✅ | |
-| Logz.io | ✅ | ✅ | ✅ |
-| qryn.cloud | ✅ | ✅ | ✅ |
-| OpsVerse | ✅ | ✅ | ✅ |
-| Dynatrace | ✅ | ✅ | ✅ |
-| AWS S3 | ✅ | ✅ | ✅ |
-| Google Cloud Monitoring | ✅ | | ✅ |
-| Google Cloud Storage | ✅ | | ✅ |
-| Azure Blob Storage | ✅ | | ✅ |
-| Splunk | ✅ | | |
-| Lightstep | ✅ | | |
-| Sentry | ✅ | | |
-| Axiom | ✅ | | ✅ |
-| Sumo Logic | ✅ | ✅ | ✅ |
-| Coralogix | ✅ | ✅ | ✅ |
-
-### Open Source
-
-| | Traces | Metrics | Logs |
-| ------------- | ------ | ------- | ---- |
-| Prometheus | | ✅ | |
-| Tempo | ✅ | | |
-| Loki | | | ✅ |
-| Jaeger | ✅ | | |
-| SigNoz | ✅ | ✅ | ✅ |
-| qryn | ✅ | ✅ | ✅ |
-=======
@@ -154,10 +116,9 @@ For more details, see our [quickstart guide](https://docs.odigos.io/intro).
-| Backend | Traces | Metrics | Logs |
+| | Traces | Metrics | Logs |
| --------------- | -------- | --------- | ------ |
| ClickHouse | ✅ | ✅ | ✅ |
->>>>>>> Stashed changes
| Elasticsearch | ✅ | | ✅ |
| Jaeger | ✅ | | |
| Loki | | | ✅ |
From 2e064ba7ef3c7a9839a0f703e93a61b04738d165 Mon Sep 17 00:00:00 2001
From: Daria Dovzhikova
Date: Sun, 24 Nov 2024 12:33:06 +0200
Subject: [PATCH 11/15] Update README.md
Co-authored-by: Amir Blum
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 8d0efe28d..bf976d30b 100644
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@ Odigos is an open-source distributed tracing solution that revolutionizes observ
* **Code-Free Instrumentation**: Set up distributed tracing in minutes, eliminating manual code modifications.
* **Multi-Language Support**: Works with Java, Python, .NET, Node.js, and Go applications.
-* **eBPF-Powered**: Utilizes eBPF technology for high-performance instrumentation of Go applications. eBPF-based instrumentation for Java, Python, .NET, and Node.js is available in the commercial edition.
+* **eBPF-Powered**: Utilizes eBPF technology for high-performance instrumentation of Go applications. eBPF-based instrumentation for Java, Python, and Node.js is available in the enterprise edition.
* **OpenTelemetry Compatible**: Generates traces in OpenTelemetry format for broad tool compatibility.
* **Vendor Agnostic**: Integrates with various monitoring solutions, avoiding vendor lock-in.
* **Automatic Scaling**: Manages and scales OpenTelemetry collectors based on data volume.
From fa0a957dfb9a962ee18822e19abd8f01e6699cc6 Mon Sep 17 00:00:00 2001
From: Daria Dovzhikova
Date: Sun, 24 Nov 2024 12:49:42 +0200
Subject: [PATCH 12/15] Update README.md
Co-authored-by: Amir Blum
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index bf976d30b..d1c965e7c 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,7 @@
## What is Odigos?
-Odigos is an open-source distributed tracing solution that revolutionizes observability for Kubernetes environments. It provides instant tracing capabilities without requiring any code changes to your applications.
+Odigos is an open-source distributed tracing solution that revolutionizes observability for Kubernetes environments. It provides instant distributed tracing, metrics and log capabilities without requiring any code changes to your applications.
## Key Features
From a61467a6ca89921501eeb9847c56f34798e993f8 Mon Sep 17 00:00:00 2001
From: Daria Dovzhikova
Date: Sun, 24 Nov 2024 12:49:49 +0200
Subject: [PATCH 13/15] Update README.md
Co-authored-by: Amir Blum
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index d1c965e7c..d8a74d7e2 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,7 @@ Odigos is an open-source distributed tracing solution that revolutionizes observ
* **Code-Free Instrumentation**: Set up distributed tracing in minutes, eliminating manual code modifications.
* **Multi-Language Support**: Works with Java, Python, .NET, Node.js, and Go applications.
* **eBPF-Powered**: Utilizes eBPF technology for high-performance instrumentation of Go applications. eBPF-based instrumentation for Java, Python, and Node.js is available in the enterprise edition.
-* **OpenTelemetry Compatible**: Generates traces in OpenTelemetry format for broad tool compatibility.
+* **OpenTelemetry Compatible**: Generates traces, metrics and logs in OpenTelemetry format for broad tool compatibility.
* **Vendor Agnostic**: Integrates with various monitoring solutions, avoiding vendor lock-in.
* **Automatic Scaling**: Manages and scales OpenTelemetry collectors based on data volume.
* **User-Friendly Management**: Offers a web UI for easy configuration and management.
From c0d63ab8efc181a723f5864dc49f78ce0f7dc36e Mon Sep 17 00:00:00 2001
From: Daria Dovzhikova
Date: Sun, 24 Nov 2024 16:37:13 +0200
Subject: [PATCH 14/15] Screenshots update
---
README.md | 10 +++-------
assets/choose_destination.png | Bin 0 -> 449748 bytes
assets/choose_sources.png | Bin 0 -> 444806 bytes
assets/serviceMap.png | Bin 0 -> 342768 bytes
4 files changed, 3 insertions(+), 7 deletions(-)
create mode 100644 assets/choose_destination.png
create mode 100644 assets/choose_sources.png
create mode 100644 assets/serviceMap.png
diff --git a/README.md b/README.md
index bf976d30b..ea7b5bfef 100644
--- a/README.md
+++ b/README.md
@@ -49,7 +49,7 @@ Odigos empowers platform engineers, DevOps professionals, and SREs to enhance th
Odigos supports any application written in Java, Python, .NET, Node.js, and **Go**.
Historically, compiled languages like Go have been difficult to instrument without code changes. Odigos solves this problem by uniquely leveraging [eBPF](https://ebpf.io).
-![Works on any application](assets/choose_apps.png)
+![Works on any application](assets/choose_sources.png)
### 🤝 Keep your existing observability tools
@@ -58,14 +58,14 @@ By producing data in the [OpenTelemetry](https://opentelemetry.io) format, Odigo
For a complete list of supported destinations, see [here](#supported-destinations).
-![Works with any observability tool](assets/choose_dest.png)
+![Works with any observability tool](assets/choose_destination.png)
### 🎛️ Collectors Management
Odigos automatically scales OpenTelemetry collectors based on observability data volume.
Manage and configure collectors via a convenient web UI.
-![Collectors Management](assets/overview_page.png)
+![Collectors Management](assets/serviceMap.png)
## Installation
@@ -85,8 +85,6 @@ For more details, see our [quickstart guide](https://docs.odigos.io/intro).
### Managed
-
-
| | Traces | Metrics | Logs |
| ------------------------- | -------- | --------- | ------ |
| Axiom | ✅ | | ✅ |
@@ -114,8 +112,6 @@ For more details, see our [quickstart guide](https://docs.odigos.io/intro).
### Open Source
-
-
| | Traces | Metrics | Logs |
| --------------- | -------- | --------- | ------ |
| ClickHouse | ✅ | ✅ | ✅ |
diff --git a/assets/choose_destination.png b/assets/choose_destination.png
new file mode 100644
index 0000000000000000000000000000000000000000..a0a08ae1a0caf104e4b28f9d0f0d9e698454cd54
GIT binary patch
literal 449748
zcmb5VX;{+R*9NQ|Er-f6tsF?RtQ@FJ(^N>)v`oz=b0jl0b4tybq0BL-2GblV&7))+Pc1m1*J}H(`O@6W&+MOm2k>t~BB^G_69XFomB9bvn<57nWR~`WPu0
z37VuS3rZ+|P(QLE^if@=z&zr~oL%IugbXwBOSWInm4B(5|DyZH!-~^Bt9b)1hnBvl
z0@u4-49`|^pCHRusbP2WKKCXkgAG+f&F;XZJdVdmnu@6W|9>mD`g;ERFa)vVjVJOV
zdRfaIU|z)4#pMnHvh!r5=s(UFxXk$zd*dqcEm)a|0PSr7XD}xH8IvgZW+`%9fiy4t
zQ!SKhpN8N%!2Wp>m3(G|lo=Su8|IItJIR|9a|N~siftjhEeu{um5ean+X8ue>0kCX
z(iwKL2x*Mtk-?l6FlRK32xBNTsQ8--?CT5eWd$fh%sHHzf001@c+mzPjN2jOd2Bon
zLfIYuYu5spO9FF)qsA6lDC+{Rf7F3W{+mFr1qlF%!-jCzGl`=bbGOCbC#}`3ZgI%}
zB6PUj3(0L71re3fV2VE_xPc+U*~4i8yvxo1vX-l`hy4PAmmTvHWh&qj3RRAq27}-n
z9hrYVcC4OjisW|EUm_WhIp@b{4*!UdgkjsOi(UW_lnH>dx*%{bNJ1k_5Cq%a*!0J+
zB@D>CB98Yzuaw~Qdtmx8GYqk|2eGyZ*y#i8;PE?@0E9cRJ4yU~S2+R9S!?0Zm^7gE
zKgu8y7(AQHo8!+@isa0y^O!pfB5%U=rM%3=1{Wk=@1M`1RqN)tCdBQ~=Ugw|3UY^t
zXY~ZYE98%iim$07*3}WA`ik5w8cF@%bft@9Gif9UXFU_o>CMl|Gu9zO={63{+F;Si5dM$P^Y{ZBjgO`YGt>CTIY3&r_%{?RbLP?z9CtRCP34su%lycH
zW{U*Dc5HbYwuqcyZt%ZJt8wEhn9T=#3y<4C#j#UdvP#9@Ben;S8I)4q>i^4D?f>sq
z%fH_i{`qekR7ogJdXGB(G=uri@DY)Ed|PVcw$Q&%Bv+d)vVC8$x|Q%RNZRLYF4R~h
z&fHiW82(qW^iKO@ozHy_6_gi!&s#)t7Xz$k{>6S;^+31xt&gryuHjhoIrs=D+vi^t
zoIrtYKL<0PqY#V+;*PxG^D3dA|G@(c%0~VRgjH`BCEq{-OfwebM_&T=jtarPg9t`bwL+Az5agzqdv
zc)mABw4QaM`whtWGygW?Y|Cj*ae>2>bSVDV&;Kuy!EiV{p4Uf(Ga7hb)y|Y&vQD-<(c@{Cz+9g+W7F&v_!J
zS?#HuDK_xNi^<=GbYF5LvJejx49t`ElHGEQI7O4~JxRS|sMUr!R(2wd&{h=DcrL}K
zBjSncxZsWIkj_|1)JjRZ*h>HKKnMv2Nq^81o;JbJ&tQijd
z@!4shpE|_WYI?nS(`iQkfQ`;oBA@|H8R|bDl?BxdygD9vWsqlUb!i7-V7<<;nl=re}t(oZMNV^0-u!Rx|sK|
zKJ6$jip!H@=U>Q&PE*O!L1O$d0a9|t7{Z)!<5XTjX6WkpYm!#On#=S2$G-q+W-oK`
z!Tne@Y)mGG;HZE|(cEmyuVqic9yzn0uu_H$f#
zdm(F#5AXq7BpAVs6;)~7*Sw3oKFXuCVAV2L-ek5x*Y=+{k6vjASl}C4z%@S1k}X%dqsh879RN`k0Vps0-*OZ9v!
zh2GJ)U^K11#;33rJ!rkZH*2#^!{`3E&tTdDiPBJ|-awkXK*qFVsxRKNKo*jmpdZ4C
zj~g5e@yDyrJ1G+*#dl{km$5EY!FdU(o9!(pAXemp>PT3rJmbb;pN)R!ulBNVN^Y&v
zR1(78&^WEgVACKRQYB~ezadb
zSj*^7ih1eN+;U~j=$XW*^Q-k#8zMs)@l9s
zzzWRu0^0m{-K~6AE_!g_h7xP7(Z}XMn0DZcigTUAbuh;rVrugz9*W#lJj#ZO?|_vo
z*46H(u2}C{q=g?a@nW2ZFciNS*W$NApgVFIW)1wKZOUM-o}{+aHj!WC(vm&j`kNTmFCik*^;K%pd&NursS{V
z$B=2^Hh~%ZF@ej~QnI8{L&E)s@Wyn>Ylc*R;F`!+;6OUAMa0R3Em4v(rr)c59mIZRbY2JIxsAx^OviZO?pmDW!pN=0d@x
zp-DnuX1ANFNq;|U@Cs?@uJnyEmyY4$-^>i3D6+pO5oF|JN?jPcxx$m);Os?uMS8f_
zd-{MfrZCRI{dI06_^o5xGgd{1dK!$$$vmqLm?JKL9DDA6{Y6Z;_1>1X0A(UP
z4(~;bh5Z#J6G`L4d@qaID+eMe8G`6%U%}UJU@@ig>g|kBX?P40ma<#(9TRbU~P@r7v
z9M+r*u$qcwxg@298B>Z7S0fXSo+93uD2}7LjI*(FUe(LX{WZo7T64nF8SAwf7^~4o
z8v6;kj>X*U8Y6QA&}CpbYKgbR!}RkU-YJT8pGfwapk;N~Oo<*w1>sul2sM)h47Qz+
z@nGJ2FV$!bW{#EFr&llCDD)d3|JaqO;TYAv8tSWjOOK&H{T#l`vx#Ld4UvVX?ZC@#
zS%V}@LcpGiJ*gIVlWgY~cwz*XQc9xR;4a{RIxF&pf)?Ear)
z=i?;-_#A=WU%vST@)wz)5bSXxH|v+ndxrk@8-6;7fI`{)TsOgfw|HI>^AHfop#v4c
zx@F4QMtqX4J#b?!%vH2XNT^#YHC04;W@*&F?+JITqCx-xjBW6+TdGMM`~G^TT&uhG
zZRE&U=1?ohv*UjCu;mh`2lgEakr|5cZ`wcnjjayqMF#v*b`tW&!8XQTI^g$h3f)If
z*M>Lbp5+2}8Z$1VQs`0Cv72nf6JvzyDY_$mY3^52p{a|`VNd0enm|+=go8RgGzD6smAkZ}VJm7lrztUXf+$B2nuLJ|AOa$?R1*|mZ
zV-JLL)7k!wr)`VaBJNT1U~JdUqsMsb3=oQ
z6MC~6ceuP8!5t?c5z`)_uCV{kk?*$q*bh}}`ryBHbrktXnPS~=?05t-9;^kpjA9P(
zlc52APJ?jc6UEiF(&5M%^6_#<$=l{Kty;StiWI@H@xDgdt
z-sUIoimwU4-2z~10_~hLiz1??9>cASJOfI3sLf2DG+r)n)~^EhKP=EXSK;YVDzYt0
z)8T3PB}vX`o!#4lf92WLJAril;{&xuKWmNVKP6B5s|*|qH#wD=0~m{P
zYpR1#KBjc|3lfiKtW+J(zL4o8D;za#4fIu;soB>NiJcvOW#_aY>JkZWtEwpvXiU@E
zEWIh*Bg4wJx)$=R7zmz)Wft0Q@fR}}0doK?Jb
z0|so2HcBA7m+frHu{XBgm&G8KcMw((TsspmmqpbG+qk-V?7zVcRaFv4tTw*zZ13nB
zXxnJ!2eVH1|EelR;5B%2xx9(LxN%xN2>W_pffv?dc-;`>Zb2?v)R`N5op!=F)n0?l
zp9(4(dH%qTj`$p
z>RQiHuF0B;7Laph=@&dkOQ(f{H4_yJY2Zi5PjuWYyB4X<;woG1;5%Md=wwS|l`-mu
zTdg*DH#@bFK^J@|n4dnS`43$K7dgC|EnYr&ZLzHKn6s?s6|>1InU0!UcmB>+6B2L?
zXn$`@!C`%S@+-UnN
z;`UU{AJvjGw=31)?LMW#P>zALHsj9s%{v{HM;v7?^VJQ!vLOK4#%?}~{HkLX
zfA@;3t0Xv+h826?L90rowPYEZ027}@7KjB;6AfSOD?F_)4}%Bf9(_D|cwSffZ4-cQ
znzt}k#I)@pX!Vuyib7}2ZBb?2Aml6NUUHPGuBY|sng@GWfzt*d9Adx4Fw|L=I#e4)
z114S^-o8EcvbPSq5gyXR<>iyLQL!~FNxY8F&guk<=d;M`V-4$rlh;Wdu)krka1(BP
zE+v}0!}KlTL@o@JPF&whc{@(VK#@%aNbX`(Q;?KZ1dTq{SvytUYaCdG&mW*ptH))Z;1grGDB9>A+1*Eih`J(U
z=zguE)+Q+{{2G4fU7cF^H&$?raDe&60U1qS@AHl8_ygl+8)o=ovChc*eZ#$X05VF5
zQos9&Wt96@?xwn9z7KH&%K>ut_sNM`kW~YZLOOhD!A^v-IrmaX&D#pkE>?pcsu9pd
zfEpCAJW<9ud3wc;Rs`RMT7!DMdQiRpa@~muM>s4O^+BoX2(;n~6jV$9JM?c#XJ@HK
z;-a8>PcXJyZoG{;k@xfgl4_LxgQ$b+15w)eBimc6XH+Zc!D7fL=DuA;etc#*5a-4m
zXz1YaDbs7ly!7dwYv7l38{A>D*!VWWglk4Cp;1(o`h5lEFebP?7+QxuTK!kvV4V?a
zM3?9^n6MHvX%GClbcxnMYv4Ti>IMa}P9T@-tlF;ua~DKIfl_xT>Yv65%f5P9p#E)X
z^sCqS!bI5{`&342seuSWBh=v$(5kt}HL7km=05&ro9!zE?l#~+P0oVz6W0Wvud~Ja
z-8XVvk_?4u&SSj7$5x8{`iV^z51+xs
zqu1QZ2tmr)9#%%V#30D|5szT`{{l|y_?{WEM8g9B^);-&=(6@*d1!+Fq^C34l&iC??d76JwQ^qKjfe2+ReEUmZ-wZcFdVh|lHpaJn
z5WOR{o2=q#esEtwv-n~}b4WS!&@jD$m%OZc2A769FEy)={XK?|;~!SJNr2g?s`f&n
z1M4^
zZ?ErpT;V8+#z1t6nW^6cW^G2MDs|D-b;D*TEi=>7eAHI+=dwlk$)Q%rk63yK&|BU#
zd_B&+QLkaPs(^b~Gzm!IfmWx8cJ(K}(@&CkMX;q@8n0-ZSH>K`SPsggyNkaB@6-3<
z5@?NRE^!$H+UN9xQI|UgzP?-JLrUu3F^bTM1|#Ba8a)lH#{LmMdEzOz7C83d+?1K3
zGE)42;6{9W2ianAald=`=>|ZJ!j|V+&Sqov+Ng}5>fM(jjv|4jvK0CxiLEX(bFEY0
zZYu!*hF9}1f|6Cqs<#^PcuahJyxr{HXB(4~E{2fa0~^6&yUa{k`OGZTbQsh%JGV@U
z5$yqh`yFsT=XQ(D*K43(MvQjET=rC5S+1&@xBI2s(n>FOiY%E7p
z^hHKYiPfBe#Y6hx>Gi0gv3u?5=8a+UgYzHT@G=9KL7F`PF(24H@6`GbF44+Rj9$b>$PUGiHV?rY^s6DoMk@CC_4TZkqBJWOn?`gB{@W8L95Tc5d+>RZ4|Xi}|Nst~EciRNGKC)3GyvvtczS9P9GShbwKJVj=Jy4+6Cu8pC5)=3-1=TYYib#P1+h{{$y-_oc
zAo>ldGYHr0^Jkpqk2!7g3}{>BNzKK-gP&Lj>}MUm&ckaJ(0VXsQxiJCRu2=!MxSmp
zD;7A(8;A?v$qi2NiFJ|zlc>7LzweL25$RDeJ0t`kRBx5(97BNo8ir?%HMZffOSWBm
zFMVZS`buahFo{ei#f3dv^_yWhwi3F>=AZI$#plm5-k&Q1J2j$#$44d)?INqjX*U?U
z%P*{_o(@0I8D-%5Q(zlTE1e9FZZiZ&^#$2-lHEa2Sqq@eZ+ndSt|iyp#>9f-$$a%`
zAB(i4rs?!O592~RTQ-tTxL3YCz=`10J$SxWw<6-w&ORG@=fgSNuXTz3VKcA+)9}K4
z8z>;JB*iSc1ZrCQ#(XW*3B9%R!210g!{O}7j3W;|5k7FNqN!yeP#?;)BGf4{#@5&g
z$SMhD{|>I0wNOPuPof+|w0p^8+(2uick<2UiF%pMTfKgZy!?fUY!t<1z!0N5X;pUz
za+`-&f=+7wvR`#(JJWf?BfP@Opq@12J;kjQ`b3WS-x0@@hDTw}gN6<-V~;%x5@{&a
zXl?2oH4o1^*fLV9^CTk0O%tCL#d|38ZP+p$yy(bBWOMBw8-)Yg4@{jeO6kZ?2TPe`
zGS2GD(SoJ)t0d1wib_$q6F%z3G#&AzMiGPPmfylAaJBl>&^KGr^R7`_hK_%^o#6+I
zCa?|0SYU2cD(ZfFU`2A3N9x_SUecxDWUBv%mjnyj^d&;b0K_0{U!e8pU8}=qXMl;4
zkp+7Zezv(mk3jyfCL)NctG_GA={y5-Z7c6cn?)}tI_C}!>w5o(JSwqnD7kl_<@vnMOjXYp%R4*EFm1nEnEyp|hUlD$-3tB9!*vrs%I*e4q$061##GZTt
zuAuu9ZTkrab_we`FAtabMov(0zJyRU=JUG3UY$Ioi*y161<
zCU{FT5ecj1r`er$_2FctAL2!R+xk$h{^Uc;@
zWn2(E7y8VfR8p3d0mBhs3;B1rtD=Hq&;q#fKznYJZ^(zi;3~EEYtiW?jb;TeeQMHt
z+Bc<{T(sIPod&Egq*>1jUKlTb!JHiMDIfSjU4NpVO`tiUn$UI;v?-aU$+aqRny`LR
zne(ZaTf0DtUEOy#
zU8Qh`IAJorzx}lDA4u@uY)v7ZFQhB{V)e{o+er&kZIhZCtEBZ5g!j+!ZfbVm<>)yd
zaMBC7k_$gY)G-&>`7w3Ibz;Q*M`ggFilNqb!}okZ<%a^QBY#NLnhUrH70op!Tyxa+>}l0?oR#lXY59oYS2jdb-5J
zr1k@L33|VzV?~^KFTe`4>L7!^9IBt`w5_bOeO525w~&3ZNqCK{(H&JHTV#~{V-_o?S);YR^nrojQ#A+
zs(@12jishi4^UQ^Y5Q$-6ZZXKG*}I7I+`5qvdl)kC;MX%G
zzw!Px#?cyM<6_F2&Dd-$g$>*}ZUsJIIK+2NwvE>3gFu~4%2_A1D7|IHKx5z|EEnZJ
zyoOb=yyP(F;W~J*GVFpLKs~j&3U%7hK*BDP+*)OzWw>f<<;~Qik`ntxV4sy3AF$H)
zPkL@d4vEUMUIy0%WifAF@lL$={Ys!J6y7$nKCV(?_00WK|z+eTk%
zx~gd-$G&XV)v)*cZGQZ2CRUy|~YRn+Ex
z*=X)^ZBXt&-Oi{9daTTh4Ytcw1mdB!XGc$>Tv<}(zxTKUaW8fUy8dXLn@$|;zu4=|
zwhstuFCB;soe8f~Vum|>?1|8#4of#rsTNI4C^KtOU6!??*oqM(DI8|>(0w9Kd}6*+
z$oSD7t2Y(L%C%zVzY4hCef;7nl3jpET$UQeuI0j~tv*IrZM2tT9=)mAdP)Gk%~W1D
z9{-U?=)Oy|1>|$}q~%^QADv8j(!_GO`!SYvB6)CN)5NvbY#xl
z`oIr>nNbWT_e1x|PH~TtX^FIs7tFetMg$ay9C#z;y3*C~;2h-Q6jH3O`Qkg{L1^Vc
z`UEu6?aBkv&9NS1AmTj>6`2!O^NULx~So~7|*05p`k|F5XzP*->mc}#YeUeg>w8NK~q
zVMw51Me0mTyo8QcTed*`LyfENTBfIIfEZG>E*Yv
zwY1y=Pk>`#`hza-1J?eG#uFVQch~D`4?Sb0oD_U=z5<-TIWtk`&88kl(Hg4|ms7S{
z9p#67uT-rEF)y499|!(=HcaqKY+06O9UeLtboZkaEDWcMnxU-w3;!&-nf~nXbF}<8
zdQZ@~yZm02I#E?|sImBoLpXj76Anefx2HKAdF<0ST}>CEPW|)4uYabKv^ry_DQ2I;%>%dBza=(lUFi*qK-o
z^#Jg)C)(y7$E+)90hZIGt65IQwfMaqKYB-F8@joh;;Kx`LK(^vAwL;EhcTMy-}<#k
znwYh#^AYV1+XYzTf&3QWTI;LjL*9*H5ZTG61t?tG7B%4b<2P%$evh@loYkHB1rp#C
zd(Wb#TylGdUZ~%}FpNlojbJm`?uf@mh0$%5C%qkp&u=&uiy_KY6z|bgS_$S%PGxdo
z2*XRR|3Jmjjnq`7PJKhq)rj%)Nh9IKOL;QAChy~hKj5$CiKs;i2yx#1k$isP2_
zZnJdgJ|zvE9@v2{>LVy=^>;||W8_fgSKD>U$9eKog6sQ7Fo>*@;U`~j?RDQ_{LGmP
z(gDUhXGDK9W_5m2+d&VXP!F~Ct@?ceJEas>7iCHhkYhkSbK6X
zuasD)mGS#^HOE(E$Dk#xew)fa=N7Mb94$0@j1S*-=ykJ$Dzola3;GXa!A}43NGcwS
zMg$(IgFk~P9sHgqp+0il?t(8}FmU*ZCi8Xnvizd*V^rlvoBnv*w)yHtQkkNt>ZH*C
zV*vXYrWR@Rg1BP2mU(9#6PizIuhcT_hF*>=UN36rX)WeE4gn3OaPqbLfU!S9jgV_(
zjARe5&_FXjv7AAUf@zE8Twq;Yh0dN|H)Re#rRq$@6%W4s>!y!i3=WyD`NN!d8|O26J_sA{(`U<=BP
zTMv7=5Y<{ZQ$9y4#U2rxRVYf(t
ztKEwR-jm>)zwAky2RVHw9q!$^K&K*j>@%rW_MgIOem}x~T#7LHy)4|auu!CU3}F7<
zrI&r+VuC!{1naCvz5Y8vvOV)hhkZFP;^gpwsCx{%7_Gqc+S+T4CK3ft(m$n3?9v|j
zj6H2a4}D>FQ4*A?k38nDy1g}O&CL+P<24<1cK9|h8
zqszZu+Ne#^9y@F1y#=M@nESG`A=vDP{XHH>>NN~+7oU1^NjWn{S!yc37@gwu$F9ld
zS0^f8Fs=ifCH7c6m`;QZFA1e=0IH9PC@b&`3cmw^8}8>{6Sg!)bhgMKI~CDs6_{Jdm(CHx6C6h
zGfK#rG(eBIOKGm$-GhLDVV0`K7-{qO@#8$%3>j&QVxv8j$
zJAUYDsw!c3E}knf6Af#WK3#84iI)mp{v
z9W!1=1TC{I#`Z^Y_*B%V@-_@`>i3%vr!SSy?<9o)BmFr>?;GFNKid-76wq=-?aM7N
zoR!Y*l7yjS#yww3~P3OTL&_nweQ+P-_eQ7zQVP{nnBi_K66KU>~{
zjG1F+_l2JF6Qev|UTo}lI(Rzjy(Q(dSE=Q7dC|fMU5Dzg$t2Tv4{IcshBDhaTK-_^
zE**-vWT;80hqlk`-Mek2QOVrykF&y`=;#y@^0k)(Qreeos${=FLb4$qU
zVV{=CR|8VYC@+N14%>7QjZ_uojGT{BhQ)yT{H|D@K^8fVZ*|@H*K5v6mQ(c*Ql(6^
zmol~1FAZt6_JW?%mV&LXLp0
zMj@dB4_Bu)pZHVG(eFzW2Rp3|I+HyrITc!Ke5>imxP)PD1}a5jtA0i2g%ssv8sPI!>HFoJyV?X6No1a|pK_
zNNp;OD0g%C$@$QpmN%LNxE5kGF>P#J5G;2Ufo5fX(s|{wiR#(E)-s!v;%ir~G_oht
z{b1(68_8VKh%oxW8CLj8OyzF$m4l>Cqsl*Tj{TxqK{SY@>$sPCos8Qx?k5>Lq)Ncj
z{n&g<*cb7y0d>krFD@f*;+}sB9EoEszCsl1>E^IUDyf~T+eK%9!g@ZziRVP!Sh~tq
z9fo7UQ~JbFmV-FIL4)@Yn*^n2qd;v)#?027KPafk#r154kvz`&0|2=c)`&Rozvr24
z-R&T<&KhNq07N@u^mv%qWm^jWhG@0X?)21LEHe@TtSmxkZWdNc!+ii7l!!9!-&d?C
z3E*W-f&@*mL15p$4e2jA(@HOBkyz#;yL{bc3N{)(M;l$fuBZDwjd<)WIo&pFpDl4S
zgNj6k!r>*5KPG1yg?w&kr^M@?!Y0a|yHNqAqLWTDp=IR8;Yin2-8)}K*K_`mt@w1j
zT0T;fg2HyHk5+6#)6!l`<_>c(SkXCTxX3)hB08Ivmi_RQF}(WyO^?E>Vf
z<>Mczd0~xzJgI(;k}tpi_#S!LJOe8xrt$u+Wo)YBg)lX&@p+=;#`^w25cC;hUOBMB
zQa<{D9Qe{;PxIOdu&cmi>$w9{pAJ7i7<$LE&pRUC@=)~s1Z3mWCs$_0t}Cx_x>Yw_
zl^#Rwat~g2_(?JUrTMgDQ@>Y6HrG9#=lc7~wOavpOxJ?}KFHk|Ykzh!@mJO!SN}qz
zyX!~rcZQA$t``;9Fp>T3m46tvCUfY=U!73!dmUEUQ5WPF5Tw}FMpg7of-!?pAeeKb
zk=d|+O{HzrCnLK^r!ME;fq#T*>v<8|HB$~bt+&GjNs2KF(8AxO4P;?B;fKuFqGR3A
z(q=l=d}m+iG%{daeo*dSIv?mBWRG1
z_k8DFRx*8O=+omANAQvhW2wY6drcOWs=S^?No^%Wt=#H{B^~W%IfNZc{eD|gs82`8
z?A3x-s0)nYkt!ssue|x~rsr%S!SYQBvzJf5!%EKakMKd|P-S7CABpd+>b#W$t&@r!
zJ2VHmmJN^48yzvllb<_W?sQG4zdBu-EcJtOIcGlls{`P3prd4{hE?!02Ll7^tLJ5Z
ze1mM1*Q8S6_2I6efc@^-uPncc=~^M`J9a%kynhQAxNkEOt
z%;^rm)RluCn;;Pwxp%VAL^jps*>p?jZD+$N>LB$|f4ko4E`^w1vqzoSpCc56=W24J
zqysaTeO~uZ#>Iu2kfz?3u_r7cy2e@BfnUK;eM2(
zPUf^9DN2yag9f&S*8nB3W=7@rC?i)n*`ZM5!HvSYa8tvRi*F6wejtn)*TbIXv+{&f
z=XbwzdTBjgcNl<)BA!=;jLo0abrq=%%w>Nc*}rt~!rG>WJ1N|y2TvHVJ7hmIDl6x%
zu)fN!a@jqeL^`b3{Y=}M?O@r_90u{S$b8qvu#uH-zghjZCUB#MG!DSbm00Jr?F5{(
zS#E9WxT(Hhe7$mrr**Ys6In_->oj$_c;lHX^CsJF3F>O)^mocRzNTZy{S~~B
z*I8u<4?S$W{9IXt;GA=vw#Ho9q-}19r;m1Gz$brEg@blL{!qj=JA-;=DE|XeT4MQw
zScy3Bsdj}(cFnz$E@&T}{>IA=N7Cc<(!%7(da)d~3+kw!4K-`?Uqr53yw`eHn{00cR71$
zH>$Ir?J-QqyKWO>uIw<96dqNocBI54E7J_3iF;O&u5{S&QfLWWx=qhhuo&>oP8kTF
za?F>O^KQCRVikbci*tSQ!e{jIh~FCu9_=_^7S#EkigJ+gE#Qhjghas)I#c#H0iI7n
z`fMT?!Ok+GM~Bzvx&kRb?t43(P$0%^99O~eYo_~82VRD>c~uiEN0xS`PwFL||`
z0{J22j5TB!giUM6M46uZ;F_IKR^yg0wEpNCSa4Zu_1;Jt>+Je2nXN2K8NZH>Wj{IV
z{ZZoPs!_rD1>19aV=|W?ABymu=LFWhX{aRW2{Gdo&pVR*;UT+vNuuQOq!_7o%uPsW
zul+4$A_3hTxIWT}PPt>c{w{v&+vZqT8pN^*Ic&;bs^
zplYozKaEP-pDS5AgnbJn^GiMn5-QRf-m-l%;-CtJjXffA^f&tcvLkcLDqmrXnmWSKf=Ewj+{KS!^9sVyWFr5?!ztc%m(pZcd`HisIBSrt-t?
z3v0Cx-W&wh1yQ4eJh#~=Pzo#QcD=4Sg*2gELuUv^;LlqZzFGrOeMU*XK2R-}^XR!T
zFWhHJ?ML=?v$-Ng4;xqd@<7&sAER#v@@hUT)Tf&^%NP+gIeBSeftNv^hCl7k_+5#Dm`~$!CsHH*eguKaFAXE1$ak#qYvK+siMdYf(P8v0
z{g)DFPZ185j|e3F@QJ8!3L1B5ocGH}8#|8K{z(Is{23LWhjbZ#`u_YcgCEMl-srhi
zZ;a<`SxUn%?LC+yo@tyRbR7LqXvtzSs22VFtg=E;Q?u6!Ge!7RArcj#iHtvsD%(=l
zRKDaDTIroH+!Q+AgPSc@)`0nErU`#7v$huuc9T7A-?#D7-HuY8YUo$I_K1GT?~>o@
z*}X{-}DRJUH-gHdLRzF`-MC4iVXK7OMcZ}ju061(w0Nn
z$qebOi8!0$Q{0_mfIIqd^&81C0-XD}&-GHd?-^xGQVTF6exm!x$$lpDP7KaZ;lHe$*V)?R4dd%bT%smBj$X-J0momI!m~cMa;nROsFoHoqif1-P4Cp&3hVQtWV8NZg(k
zOd6QE;{MG1*}J{0HmOEILgokg`H95)=T5GdYQV-{90w{6*&Ye+6If|}Q(~#M%Dx8V
zxyJkeH7A{pFeQX^MZ8Po_-4xnx~n
zvIuG3nqL24^iFnrI|<${;=yPr4aSo|?J|U-z@M2~U&YtSCQQi)Igl>^4<`u8L2)%jr?}0lgxIfioftyA8#hV1FyT{f;aQc`K=SpY
zg4(`;C+%EI5BilvwAuWU^h{AL?_fxa!~}in0#ACDhcH(k@MWKSpbAywi~=
z)Mj8i_=wf6=Ku{WLw(KJzVC2Ct2(xjz5AnIF!)=9Z>Y++XJ){P
zve7&~u1B0@l6Qa>e3I;y4m=?tS2NKk?&j3^@yUdJSi_a4bK4qbQMJl?-k{HD8FWYf
z(%#J|wZTGk0;v$J2`@<=F6!-nv-ax*)kE%v89pjseylpYrQZWG!Pe^z0na~gvE%Lw
zPC1Jou{PAtvEFoe`c7fjP`n%N{mY$p;}nIvr=RKJEu6GAb5ikZaZk5DZ0T@jE(#i&
zu|ay8$!B_a?`mRCORi=qvHL42_k17Yl+dx?IOW>6EFaJx)p{Bd|4dmy`1@flTqta;
z#!*sh2)DptM&+6@=N&(ODprw
z#TcEO#M}+R
z*umqv9p&VlECRQ;=OWv69s$44c}-c$H=GC_u_QMWoXKmj@6&rt$g9odqRIK9*
zdEvE-RQp?j&PHciYTo_)J=xLHfG(8ylK4Ktp}vOC^kj%W>n*gXM)=ZPT?Wk72<|YqqoZk}oSUb0p*z
zE#O@pJzIu3CfNwk;{RbJu;x1MV@@Kgd%i)?aZ}>h#bcda^)e@ZKwm)l3rq$@=NNCc(p0*
zVR(s0O1aXKt|WH#Gv%rRs{$GN6n!{!;=K87`Jm`yUl{><2=98ZBEvIS&NDVlNSNVI_;yukn^nf?O3ZtFZ-AXP5ZqR|*
z@tVx}qc4lcc8AuYTJPQ<@0SD~P6-}uU&<8f&GM74ih=li9I_^
z3q%_g0^cdIUOV8+hm*U+OZRop8>&czXe;%)^smnVR@s+fd#1H|%xAHMPv}~nJ!#bM
znC5tM{K{{?b2xX7X#f4Fd->;nD@E8YmLxyC`B0pjul6+wlY)Ngn^vn^_vS$a;vh*Vfq%v;x44
z3I7jE=l#g$`$zrSRP9!3kG6CeRlA5<#Ya)qVb5A6W`z*3i`u1DjFxJ()D~3i5j$3`
zAZDTnlGrgG&+~l$gZr2JeO>Q!&g)#=C!kU4p|opmV`ffL6~G-mmkhzRK74AQmCc}+
zH3VVR3AskrUDKU8oC_t@t^~jJ+A(&9Xb0Cf3MAk*x!2-1N-7c4clyV_`#40u1>Xi9
z0$=`5VGnAT)s()ziuW|=Q0GUbb6%o*_BvwpQVU-;m#j&f+ZdO3w5ZFV9O{2sNN
zRRMu>yC{bKSG3GBY!x1{+9N-%?V5lW05KzYWmPkFABrf=q{lHEu^OON1>rh;zTo^xjI~kglh@
z;1XhY{K~Q@&I@fgyvhb0)na8k}xcwGyh`vC8f9I2a#nW>}dDvh$QrUU^V_@G(kX`DpNXJz5bUHiJMWgMhD0-i2r!
zDPBDm7DF`dHe9injCyC-WvOFxr<{gq!S~NrygIk`lZ0>u+p!DPXHDu_walX&vmMh$
zdU7oGto>(ISA)&7+#3*k7oVP9W;3~v8M_U`Q&cEZ4`Sm9jv=-u(mjzhfBK5pba`;E
zfM#EDG%+|%c`k_XtVufY>HLv5mO!4FMb`)X3zRV`w|~lUt6bkr?1M&ASZ_sKSn7@(
zQ$?9gzPq^!xlS|X
zcX<1L-r8Rruq08d*yb0A`7jG^I*r37bh$!WB9A;!I8~;h*}2a)v5sF3T{1Uc9z+2^h7-gC@P1e1rxJ6Q4^g>y%-t_CW5UhtN2yQMEg
zmHl8rUCXADbLx;A9h+~#?+u^MzvdgHotID2+NUDCx#la8ufvPfi^He)7BxO3tC;nWl6UO_Z+bjXrP5!x_V~#N#FK=C7Lu_(MJ}dI;PQE!42H;Bk
z(FgNjDD`(3&To1z5qQ`tH%4Zt3Hs{usJ3**YIU|$r2sf~b+)8&bGG8%5i*-Ev^m5T
zINws^`!9U5oCIYZM!Z$=hI=}C=HNW1H3Z`4Suee#Pvr*9a=o6t@CqRWyp{D}J&_GI
zw{<*#^lbs;lcUh*{}-G3e^G;uASUVSbA@hh*yP4tpp9xl2m!rvnO@75QAbHG=BE|7
z)$a(#Ed5m@?*$2Sds1Aa+5c%iOJ1Ral@IdOi2#vgTybEM^`fnBPke!fVhh^F$}%jm7gb!)C?*y
zR=2B;WoH#|crkq?O(lQpGng9wIiS^HyIHBUDCUazGvBkWLIC~FoGz5tX0A8#)&}D)
zHNBu-Q8>!@VUSf#i*l$c&jS!=8g>2^(klC920Skuz|By}4)CeE!kZRmGyjlZ5&GcJ
zbm91KMZ>Z_C;085=!iw91cRf@BB!N2^r;;I6Y8wN_FM&r-o}Q-pvg~
z9`%HKNzBxLF>HUGh4(gZJR|0YlQ#j0$G~={)xhJYnW*<(q4~`79Y;+Q+#mOMA1-*D
zKY?T94*ymS-jo&=ePCZ=jTg?dIe8;uO#OLgY4{RWNww=$kF6ixpYbr+W1<3RTd_0P
z9}dyr=oFYd;d-KY#Q1v1jnZw`;S-TGcBz5`KeBzs@2hIyCjHy`$K6R4FrfPO%NSsm
zAJ=G7NJ9U9YSb5-Cr(+$Gp0@5Qh$W>V%_SXG55>f!5$W8d($5~Q<2wAy(Mu$3US6S
zh6ckfwKg{@npy35;DL8L@vVr9q2}|$y#2alQP5LPESh#{_3H3G5Ev?Vo7Lfl
z@P_#R=1NbE)@}fo{jk8^GuB+nK8o#+0k2b3PquYyX>2ngoI)^Rig0U_#f4DG4%@5r
z0Z{0hO|CVbceV&srqpRfuQ*hzu%X9Vb0GIY@d~&F-ZfaF)g=p0Gn*f+oBXWYO5OCN
z#9z-XgZ=~`278w#oD>iyMco&3y*?+S)gqu}UZg@VKtZT?+;h%w+I&DhB{Ujjw4X&Y
zbkTG8t|+81&(0bcSl)^qqMOb>;RLIr>pac32myC=8sQHg4FxQMq$i@usZY;5a4Mg;
z%<&-R%~=N)64B;M!C0-MABUXKJK*3FK=1(^hM2s#Dd`d&S6TV1pv1ZuG3nh@E;+%f^P*&a29=Egn0Da
zBIdE@(K+vDhJ$eLS)^K@f@Gc?fq#fOZF{5wJYLaM88Rb&@@GZv;gr&}oGuB(y5@zb
zbOWLlVxbqWTLV8{T>t;_?Hur^CA)xyOg=HqH{Y$f>v63Y4Xy`XK+#7olSk#ee?ICR
zF6sQJctuN)Hyeq&j`aLka04&`^Hv?>dBV`f%MJr4y9}05Vr#FQ&gCew@1wKLy{`YW
z3Y+>Pth&i=9@@rBU9qHOs%K0;?CJbIvWcYgCnJ@*nQ?w-Fxo?-bKqKfJ+cNEM%J
z{%ru2$`C7M&bTH1I%~wc@eJ)#8H$MjIFh4oK$fi+s(P=F<@cba|(2&1^i>oeJCB2=gSLANE<+Xq%E5%j~V6Gt?
zsN{BFY#0&4bOu-|<|CkxjE)vIl75TNYcgLPRLLbreZ~l1K$*%NiIRt22OQmkH^)bl
z3I!S)^N9UVrvd&S5K*T(>ZP5bw}dP)EEf^f8`0y7I;PMf_G2|^7+#@kX*x!bdvul*O{6r)O656Dc%46QLU-GHkc6qAw4Ih
z;p{zSx7JUh3m(k5bEDn0T;ZObi~iQ9SnD^squz-^9nCU=IT%HICZ-R)z`ra
zM9G;tWT>!4(16yk;a<#vI+yX^)9rT+3|nu934hXTr}wmmbiW@A_{W`Q2!#0&YVHjM
z{17NHs*;tN1svjIIDyjAuC5N%s@VOy;x|2&v-wGJrRaY5W}DW3kZaG$|MSrvG_`(B>FVUt`OVySib_(K%xLed*c
z_G7%@Y2ovu$&F!yet|hp&_7N6RvM~4wFpi3ZsHZhSGm%kb-m+X*N1eOxmq8}C=)?TZAypS`Ks<(eHvQZLt6Ts&*`*-TQ
zt+ng^Qa}71KYuG$pAWGrhwKe923}qBYSNtYwb(vk+80C4WMF+%$1INVHi4{L{*rW)IYct3!hF%CuS{7Zs1ibT9Qol2`sXo^+Eiq6
zrefuTsi#4j3ti)0=dbNpST^sNy$QE9bRJ?zsyZl~dMYaL1xv>}Me>;x6cI#lkUG$(
zkd+q|{}wMNw9b4bu3efl44kYpGnd~W*$(TK&Wuw$bOa6Dsa#_
zM4-9VWC&yPUR%T#Ve_UxbNd^fFM-|%n(KNA=lKHH>2Eu`kuZYa=@nKQ0#iDbTYY
zd+;SBi@Pu#aPpe!0oIH*5s26MJ^F1tUK-NzQORB?|GBp^N0NAeja*ByU}GNX+f2o(
z!&kAfZvQ!O(Lv8;>K(WhQB^wKm|$CCIt>qHr3H6>yUul?r@AFxiM)@_WM)qC=69nY
z!cMv%=|jxFj>SfdUqCvn7Hy>#`|i&g-@bZS$~{`~95^9D>U;1ILU(KIZD_lquRDnG
zU^y?#d@=q!GHB`GDn{z~?#@(U<(w|kjyJR>1oDCvv#UuzTmbmuH(yn;+wsn(to^{{
z;^nd=p&5Au5VI*_4BBj1)KOs%PAKF*JRH4gu~5qRneHt(LZE!#|HdV@yQXVmV#q;2X
z0Rf`l!18t0j$D;h8N-gG7dZ6o4T09@y~ZjFA!QLuY_A$*P8Q{u^m2q75@^_e?jrlk
z2vFuxfv$%h6yFeK`l|Q8{Ap!Gz$kZ>!^vumBa013Tb*CQ2|pXJ#`}791TcQy9w`0j
zX@2dh21``couuW)r=hQPYVYo7)xF|sc?nM_T+896{a|Ip_!gqLH9AH3Ze3`ekmt@b
z)1w2;Jfw(~IQVcecLjkuJzD(a4`W`GqdRL2wq18DeiWZ22sX}64dOcPC;VjBnZ3;#
zWf;)w7guz(u#$2TBDtB89B}Dh#5a#5)wqYUONTsx5sORBF+UN6Z~5XxGTuTuwkGQ0
z`S=q|;NrPZ%Fm&M1LL$OS0g%TLO7z<;{v!KH%lf*7nBtJhSJr
za|B!mI~(peiugDeRn$B${rHpMiF%24UbBS-@6R=|7qA?)bnTDcFlzXsqJe4^tHmkw|e}YA`fi
zxYe{$@8eWmFDK(w^a-
zrg6-kN&WI?Et2fKJ;l84WTn2E%$|YQ1tsZ24m<1+^Byp}m*^~Yp5rTnUrYFF5N64K
zr=Yo_>bFYB^ALQk=2_B4?yslr)gf;KDzZU;u#W+P?)eW`{x@sM
z9cZ(5W$fq?9%t|;!4j`L(1~u*c&in)k~m;9P9CPtkIcl^1}+Q~+Eu8v`9WLVxbs=a
zJwAa_*I1a{g^vJVk9icl2D?LpK|0}tAzp?kM=H6P@aK)L<_$>XaTZqi8v2MsxhqAFIPVby!uDu*vzYAHr;RcvB)GtRda*k@gI(mg?-i$n}jaS
z8fs?0Q==aZ`EP`UZIon<;#E3|S<=L>qDR{*IHXCvJ_lnP(KDZ7To;#G>obZn)yp4%
z_nh!vN+QxWdk)XJ5yW3&T?}8R{r=+JqXa0*PD$nD$nII~oKB+fnobFa%_)HCneoym
zI0MxAVwvt!mc%YCtHRsSyQpq;%O&y1*m#{d*sCRrg)^+`*X~u;N}-u6U0=
zF8=dIRv|^Gys>YCbzqek9jqaL_}OArXEk77y14UrJ1>4XSca;#6AY7KuTYiTWqEvP
z%&ic7!GJm7rWcmPmO`YM
z%L{SM(~1NMIXjJ;Q9qHgKYUshR5;6T3PiRg2auv;e-nCwqmS(dI1bZ@U32-lUfgf$
z3art$*^Sb|_WW*yYo1b#GBT&=$~+U*FotpdS(w_?_3_N7jYLxJf=LE-*BZE&$AdST
z3~4`;Yng2gxgg<{!8YrVCf?{<-FQ0*{hv&vk9G&LOkYsDO~=EdV
zcIukMGgX+XZRguJXh-EogeXEk9pCNhDG!%rIRG`BOr_GVa`ER1=EE5}38W1%lHbnb
zs}F?Az@^6wUfN1x<#t>{s1RBLkoJ
zxG{{22SJ;^?A)m~$FLx6I?n>W)Iz5f*oK+OA@IY#ZW&LS(S2#9i2ubE%CESKwJD>A
zj~ai3+BEE4qht`#unHdO1>$LK8}E%=Jbvf2?6^*q;(_Ix#Md4H8Q^nOmDiX0{Tvw~
zqcCCEhslro*G|itp*=NrlW=bf8@`Sc9>gt_^}?~T?4orZq^OSb1Gz84qJ{h98aIuW
zR*$9)_w!&v^wg`$?_KV+2np>c*^TGy00rB<%c2w*$nMDUu-{`|nRe>Mw7k6482kE1fH9C;Uq*
z2gKiTv{Mb>TdnWCw?F$4a`M~W8NkZrzpl?bDqbl_v`ZBQFIdgWa}#T(TaGx6LB#hi_LY8HJSd3f}?_WT8y`$24&8YL)sc6|;r8
z-UxVemCx)yzR*l-^LV}Y2^d#ExAob-{Rs}k{3izmfSwP}-@AZsm&xA0(7J&{SO>cw
z`2bAeUHU^n2xkMo9`dRNQF=af{y?8eDgmGHiUcYt$V5gXp
zvobm=Y;^v8b)z2ZS{LguTb%%+pimkT0-ZMrY+Vtb-3~vw2n?xncW0XrN3^YJ=fl05
z60&cnfI7rUY>owAgZS0g=Axd*op>D=1o#LJ^!jnvxVgC1WCw$pn{f+hM*RbDAs&_o26kg
zVB?jA#SRxz_q6?i65J@vW1OF<=|9IRqr&PhlFPgk