From 450d3caaa1a73d33ec675cc01607ee7ba644dfe7 Mon Sep 17 00:00:00 2001
From: ismail simsek
Date: Mon, 6 Oct 2025 15:45:47 +0200
Subject: [PATCH 01/39] fix e2e tests for QueryEditor.spec.ts (#515)
---
tests/QueryEditor.spec.ts | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/tests/QueryEditor.spec.ts b/tests/QueryEditor.spec.ts
index 4650ae08..88a54ba6 100644
--- a/tests/QueryEditor.spec.ts
+++ b/tests/QueryEditor.spec.ts
@@ -21,5 +21,10 @@ test('QueryEditor smoke test', async ({ panelEditPage, page }) => {
await panelEditPage.getByGrafanaSelector(components.QueryEditor.Repository.input).fill('grafana-github-datasource');
await panelEditPage.refreshPanel();
- await expect(page.getByRole('cell', { name: 'grafana-github-datasource v1.5.7' })).toBeVisible();
+ try {
+ // Newer versions of table view uses gridcell instead of cell
+ await expect(page.getByRole('gridcell', { name: 'grafana-github-datasource v1.5.7' })).toBeVisible();
+ } catch (error) {
+ await expect(page.getByRole('cell', { name: 'grafana-github-datasource v1.5.7' })).toBeVisible();
+ }
});
From 31ea30a0d2eaf48ca46cca3fa21cd4ae98f795f0 Mon Sep 17 00:00:00 2001
From: ismail simsek
Date: Mon, 6 Oct 2025 15:55:33 +0200
Subject: [PATCH 02/39] Add updatedAt time field to pull request queries (#507)
Fixes: https://github.com/grafana/github-datasource/issues/506
---
.changeset/proud-items-compare.md | 5 +++++
pkg/models/pull_requests.go | 4 +++-
src/constants.ts | 1 +
3 files changed, 9 insertions(+), 1 deletion(-)
create mode 100644 .changeset/proud-items-compare.md
diff --git a/.changeset/proud-items-compare.md b/.changeset/proud-items-compare.md
new file mode 100644
index 00000000..8b234651
--- /dev/null
+++ b/.changeset/proud-items-compare.md
@@ -0,0 +1,5 @@
+---
+'grafana-github-datasource': minor
+---
+
+Add UpdatedAt time field to pull request queries
diff --git a/pkg/models/pull_requests.go b/pkg/models/pull_requests.go
index c0e8e097..33001f89 100644
--- a/pkg/models/pull_requests.go
+++ b/pkg/models/pull_requests.go
@@ -10,12 +10,14 @@ const (
PullRequestCreatedAt
// PullRequestMergedAt is used when filtering when a Pull Request was merged
PullRequestMergedAt
+ // PullRequestUpdatedAt is used when filtering when a Pull Request was updated
+ PullRequestUpdatedAt
// PullRequestNone is used when the results are not filtered by time. Without any other filters, using this could easily cause an access token to be rate limited
PullRequestNone
)
func (d PullRequestTimeField) String() string {
- return [...]string{"closed", "created", "merged"}[d]
+ return [...]string{"closed", "created", "merged", "updated"}[d]
}
// ListPullRequestsOptions are the available options when listing pull requests in a time range
diff --git a/src/constants.ts b/src/constants.ts
index a141e8cc..bbd2d559 100644
--- a/src/constants.ts
+++ b/src/constants.ts
@@ -38,6 +38,7 @@ export enum PullRequestTimeField {
ClosedAt,
CreatedAt,
MergedAt,
+ UpdatedAt,
None,
}
From 521a706433898dfac1ee869dc6d9383044ccb52d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 6 Oct 2025 13:58:58 +0000
Subject: [PATCH 03/39] Upgrade grafana-plugin-sdk-go (deps): Bump
github.com/grafana/grafana-plugin-sdk-go from 0.279.0 to 0.280.0 (#513)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Bumps
[github.com/grafana/grafana-plugin-sdk-go](https://github.com/grafana/grafana-plugin-sdk-go)
from 0.279.0 to 0.280.0.
Release notes
Sourced from github.com/grafana/grafana-plugin-sdk-go's
releases.
v0.280.0
What's Changed
Compatibility
❯ gorelease -base v0.279.0 -version v0.280.0
github.com/grafana/grafana-plugin-sdk-go/backend
compatible changes
HTTPSettings.SigV4SessionToken: added
github.com/grafana/grafana-plugin-sdk-go/backend/httpclient
compatible changes
SigV4Config.SessionToken: added
github.com/grafana/grafana-plugin-sdk-go/build
incompatible changes
E2E: removed
GetBuildInfo: changed from InfoGetterFunc to
github.com/grafana/grafana-plugin-sdk-go/build/buildinfo.GetterFunc
Info: changed from Info to
github.com/grafana/grafana-plugin-sdk-go/build/buildinfo.Info
InfoGetter: changed from InfoGetter to
github.com/grafana/grafana-plugin-sdk-go/build/buildinfo.Getter
InfoGetterFunc: changed from InfoGetterFunc to
github.com/grafana/grafana-plugin-sdk-go/build/buildinfo.GetterFunc
github.com/grafana/grafana-plugin-sdk-go/build/buildinfo
compatible changes
package added
github.com/grafana/grafana-plugin-sdk-go/data
incompatible changes
ArrowToJSON: changed from
func(github.com/apache/arrow-go/v18/arrow.Record, FrameInclude) ([]byte,
error) to func(github.com/apache/arrow-go/v18/arrow.RecordBatch,
FrameInclude) ([]byte, error)
FromArrowRecord: changed from
func(github.com/apache/arrow-go/v18/arrow.Record) (*Frame, error) to
func(github.com/apache/arrow-go/v18/arrow.RecordBatch) (*Frame,
error)
github.com/grafana/grafana-plugin-sdk-go/experimental/e2e/mage
compatible changes
package added
</tr></table>
... (truncated)
Commits
896568c
Feat: add session token support for sigv4 to support auth service (#1410)
7abb93a
upgade github.com/prometheus/client_golang v1.23.0 => v1.23.2 (#1406)
39c18dd
Build: Rename build/info to build/buildinfo (#1405)
0882e1c
E2E: Move e2e mage targets to new package (#1404)
7bb0803
Build: Move build info to new package (#1399)
8167436
chore(deps): Update module github.com/getkin/kin-openapi to v0.133.0 (#1402)
582752c
chore(deps): Update OpenTelemetry packages (#1387)
b31c8c9
chore(deps): Update module github.com/apache/arrow-go/v18 to v18.4.1 (#1396)
189431b
chore(deps): Update module github.com/stretchr/testify to v1.11.1 (#1398)
4683740
chore(deps): Update module github.com/grafana/pyroscope-go/godeltaprof
to v0....
- Additional commits viewable in compare
view
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
go.mod | 61 +++++++++++---------------
go.sum | 133 +++++++++++++++++++++++----------------------------------
2 files changed, 79 insertions(+), 115 deletions(-)
diff --git a/go.mod b/go.mod
index 7ec0f74e..6faf2d98 100644
--- a/go.mod
+++ b/go.mod
@@ -5,28 +5,23 @@ go 1.25
require (
github.com/bradleyfalzon/ghinstallation/v2 v2.14.0
github.com/google/go-github/v72 v72.0.0
- github.com/grafana/grafana-plugin-sdk-go v0.279.0
+ github.com/grafana/grafana-plugin-sdk-go v0.280.0
github.com/influxdata/tdigest v0.0.1
github.com/pkg/errors v0.9.1
github.com/shurcooL/githubv4 v0.0.0-20230305132112-efb623903184
- github.com/stretchr/testify v1.10.0
+ github.com/stretchr/testify v1.11.1
golang.org/x/oauth2 v0.30.0
pgregory.net/rapid v1.0.0
)
require (
github.com/BurntSushi/toml v1.5.0 // indirect
- github.com/apache/arrow-go/v18 v18.4.0 // indirect
- github.com/cenkalti/backoff/v5 v5.0.2 // indirect
- github.com/chromedp/cdproto v0.0.0-20250803210736-d308e07a266d // indirect
+ github.com/apache/arrow-go/v18 v18.4.1 // indirect
+ github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
- github.com/elazarl/goproxy v1.7.2 // indirect
github.com/fatih/color v1.15.0 // indirect
- github.com/getkin/kin-openapi v0.132.0 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
- github.com/go-openapi/jsonpointer v0.21.0 // indirect
- github.com/go-openapi/swag v0.23.0 // indirect
github.com/goccy/go-json v0.10.5 // indirect
github.com/gogo/googleapis v1.4.1 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
@@ -34,27 +29,20 @@ require (
github.com/google/go-github/v69 v69.0.0 // indirect
github.com/google/go-querystring v1.1.0 // indirect
github.com/google/uuid v1.6.0 // indirect
- github.com/gorilla/mux v1.8.1 // indirect
github.com/grafana/otel-profiling-go v0.5.1 // indirect
- github.com/grafana/pyroscope-go/godeltaprof v0.1.8 // indirect
+ github.com/grafana/pyroscope-go/godeltaprof v0.1.9 // indirect
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0 // indirect
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2 // indirect
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1 // indirect
+ github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect
github.com/jaegertracing/jaeger-idl v0.5.0 // indirect
- github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/compress v1.18.0 // indirect
- github.com/klauspost/cpuid/v2 v2.2.11 // indirect
- github.com/mailru/easyjson v0.7.7 // indirect
+ github.com/klauspost/cpuid/v2 v2.3.0 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
- github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
- github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037 // indirect
- github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90 // indirect
- github.com/perimeterx/marshmallow v1.1.5 // indirect
github.com/pierrec/lz4/v4 v4.1.22 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
@@ -64,23 +52,24 @@ require (
github.com/urfave/cli v1.22.17 // indirect
github.com/zeebo/xxh3 v1.0.2 // indirect
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.62.0 // indirect
- go.opentelemetry.io/contrib/propagators/jaeger v1.37.0 // indirect
- go.opentelemetry.io/contrib/samplers/jaegerremote v0.31.0 // indirect
- go.opentelemetry.io/otel v1.37.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0 // indirect
- go.opentelemetry.io/otel/metric v1.37.0 // indirect
- go.opentelemetry.io/otel/sdk v1.37.0 // indirect
- go.opentelemetry.io/otel/trace v1.37.0 // indirect
- go.opentelemetry.io/proto/otlp v1.7.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0 // indirect
+ go.opentelemetry.io/contrib/propagators/jaeger v1.38.0 // indirect
+ go.opentelemetry.io/contrib/samplers/jaegerremote v0.32.0 // indirect
+ go.opentelemetry.io/otel v1.38.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 // indirect
+ go.opentelemetry.io/otel/metric v1.38.0 // indirect
+ go.opentelemetry.io/otel/sdk v1.38.0 // indirect
+ go.opentelemetry.io/otel/trace v1.38.0 // indirect
+ go.opentelemetry.io/proto/otlp v1.7.1 // indirect
+ go.yaml.in/yaml/v2 v2.4.2 // indirect
golang.org/x/exp v0.0.0-20250811191247-51f88131bc50 // indirect
golang.org/x/mod v0.27.0 // indirect
golang.org/x/sync v0.16.0 // indirect
golang.org/x/tools v0.36.0 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20250811230008-5f3141c8851a // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 // indirect
gopkg.in/fsnotify/fsnotify.v1 v1.4.7 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
@@ -103,15 +92,15 @@ require (
github.com/oklog/run v1.1.0 // indirect
github.com/olekukonko/tablewriter v0.0.5 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
- github.com/prometheus/client_golang v1.23.0 // indirect
+ github.com/prometheus/client_golang v1.23.2 // indirect
github.com/prometheus/client_model v0.6.2 // indirect
- github.com/prometheus/common v0.65.0 // indirect
+ github.com/prometheus/common v0.66.1 // indirect
github.com/prometheus/procfs v0.16.1 // indirect
github.com/shurcooL/graphql v0.0.0-20220606043923-3cf50f8a0a29 // indirect
golang.org/x/net v0.43.0 // indirect
golang.org/x/sys v0.35.0 // indirect
golang.org/x/text v0.28.0 // indirect
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
- google.golang.org/grpc v1.74.2 // indirect
- google.golang.org/protobuf v1.36.7 // indirect
+ google.golang.org/grpc v1.75.0 // indirect
+ google.golang.org/protobuf v1.36.8 // indirect
)
diff --git a/go.sum b/go.sum
index 2a6ece3c..94011349 100644
--- a/go.sum
+++ b/go.sum
@@ -3,8 +3,8 @@ github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ=
github.com/andybalholm/brotli v1.2.0/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY=
-github.com/apache/arrow-go/v18 v18.4.0 h1:/RvkGqH517iY8bZKc4FD5/kkdwXJGjxf28JIXbJ/oB0=
-github.com/apache/arrow-go/v18 v18.4.0/go.mod h1:Aawvwhj8x2jURIzD9Moy72cF0FyJXOpkYpdmGRHcw14=
+github.com/apache/arrow-go/v18 v18.4.1 h1:q/jVkBWCJOB9reDgaIZIdruLQUb1kbkvOnOFezVH1C4=
+github.com/apache/arrow-go/v18 v18.4.1/go.mod h1:tLyFubsAl17bvFdUAy24bsSvA/6ww95Iqi67fTpGu3E=
github.com/apache/thrift v0.22.0 h1:r7mTJdj51TMDe6RtcmNdQxgn9XcyfGDOzegMDRg47uc=
github.com/apache/thrift v0.22.0/go.mod h1:1e7J/O1Ae6ZQMTYdy9xa3w9k+XHWPfRvdPyJeynQ+/g=
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de h1:FxWPpzIjnTlhPwqqXc4/vE0f7GvRjuAsbW+HOIe8KnA=
@@ -15,14 +15,12 @@ github.com/bradleyfalzon/ghinstallation/v2 v2.14.0 h1:0D4vKCHOvYrDU8u61TnE2JfNT4
github.com/bradleyfalzon/ghinstallation/v2 v2.14.0/go.mod h1:LOVmdZYVZ8jqdr4n9wWm1ocDiMz9IfMGfRkaYC1a52A=
github.com/bufbuild/protocompile v0.14.1 h1:iA73zAf/fyljNjQKwYzUHD6AD4R8KMasmwa/FBatYVw=
github.com/bufbuild/protocompile v0.14.1/go.mod h1:ppVdAIhbr2H8asPk6k4pY7t9zB1OU5DoEw9xY/FUi1c=
-github.com/cenkalti/backoff/v5 v5.0.2 h1:rIfFVxEf1QsI7E1ZHfp/B4DF/6QBAUhmgkxc0H7Zss8=
-github.com/cenkalti/backoff/v5 v5.0.2/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
+github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=
+github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE=
github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ=
-github.com/chromedp/cdproto v0.0.0-20250803210736-d308e07a266d h1:ZtA1sedVbEW7EW80Iz2GR3Ye6PwbJAJXjv7D74xG6HU=
-github.com/chromedp/cdproto v0.0.0-20250803210736-d308e07a266d/go.mod h1:NItd7aLkcfOA/dcMXvl8p1u+lQqioRMq/SqDp71Pb/k=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo=
github.com/cpuguy83/go-md2man/v2 v2.0.7/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
@@ -30,8 +28,6 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/elazarl/goproxy v1.7.2 h1:Y2o6urb7Eule09PjlhQRGNsqRfPmYI3KKQLFpCAV3+o=
-github.com/elazarl/goproxy v1.7.2/go.mod h1:82vkLNir0ALaW14Rc399OTTjyNREgmdL2cVoIbS6XaE=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
@@ -39,20 +35,12 @@ github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/getkin/kin-openapi v0.132.0 h1:3ISeLMsQzcb5v26yeJrBcdTCEQTag36ZjaGk7MIRUwk=
-github.com/getkin/kin-openapi v0.132.0/go.mod h1:3OlG51PCYNsPByuiMB0t4fjnNlIDnaEDsjiKUV8nL58=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
-github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=
-github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY=
-github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=
-github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=
-github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM=
-github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=
github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4=
github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0=
@@ -83,20 +71,18 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e h1:JKmoR8x90Iww1ks85zJ1lfDGgIiMDuIptTOhJq+zKyg=
github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
-github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
-github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
-github.com/grafana/grafana-plugin-sdk-go v0.279.0 h1:/KCrsZkj9pEGwIGovqAz1A8rjI2A2YT+ZpvgfZN0LAA=
-github.com/grafana/grafana-plugin-sdk-go v0.279.0/go.mod h1:/7oGN6Z7DGTGaLHhgIYrRr6Wvmdsb3BLw5hL4Kbjy88=
+github.com/grafana/grafana-plugin-sdk-go v0.280.0 h1:QahmLvtM56evdxJSuGu+osnd0ejBmdxnTwqAOk8h22c=
+github.com/grafana/grafana-plugin-sdk-go v0.280.0/go.mod h1:Z15Wiq3c4I0tzHYrLYpOqrO8u3+2RJ+HN2Q9uiZTILA=
github.com/grafana/otel-profiling-go v0.5.1 h1:stVPKAFZSa7eGiqbYuG25VcqYksR6iWvF3YH66t4qL8=
github.com/grafana/otel-profiling-go v0.5.1/go.mod h1:ftN/t5A/4gQI19/8MoWurBEtC6gFw8Dns1sJZ9W4Tls=
-github.com/grafana/pyroscope-go/godeltaprof v0.1.8 h1:iwOtYXeeVSAeYefJNaxDytgjKtUuKQbJqgAIjlnicKg=
-github.com/grafana/pyroscope-go/godeltaprof v0.1.8/go.mod h1:2+l7K7twW49Ct4wFluZD3tZ6e0SjanjcUUBPVD/UuGU=
+github.com/grafana/pyroscope-go/godeltaprof v0.1.9 h1:c1Us8i6eSmkW+Ez05d3co8kasnuOY813tbMN8i/a3Og=
+github.com/grafana/pyroscope-go/godeltaprof v0.1.9/go.mod h1:2+l7K7twW49Ct4wFluZD3tZ6e0SjanjcUUBPVD/UuGU=
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0 h1:QGLs/O40yoNK9vmy4rhUGBVyMf1lISBGtXRpsu/Qu/o=
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0/go.mod h1:hM2alZsMUni80N33RBe6J0e423LB+odMj7d3EMP9l20=
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2 h1:sGm2vDRFUrQJO/Veii4h4zG2vvqG6uWNkBHSTqXOZk0=
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2/go.mod h1:wd1YpapPLivG6nQgbf7ZkG1hhSOXDhhn4MLTknx2aAc=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1 h1:X5VWvz21y3gzm9Nw/kaUeku/1+uBhcekkmy4IkffJww=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1/go.mod h1:Zanoh4+gvIgluNqcfMVTJueD4wSS5hT7zTt4Mrutd90=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnVTyacbefKhmbLhIhU=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs=
github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=
github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
github.com/hashicorp/go-plugin v1.7.0 h1:YghfQH/0QmPNc/AZMTFE3ac8fipZyZECHdDPshfk+mA=
@@ -109,8 +95,6 @@ github.com/jaegertracing/jaeger-idl v0.5.0 h1:zFXR5NL3Utu7MhPg8ZorxtCBjHrL3ReM1V
github.com/jaegertracing/jaeger-idl v0.5.0/go.mod h1:ON90zFo9eoyXrt9F/KN8YeF3zxcnujaisMweFY/rg5k=
github.com/jhump/protoreflect v1.17.0 h1:qOEr613fac2lOuTgWN4tPAtLL7fUSbuJL5X5XumQh94=
github.com/jhump/protoreflect v1.17.0/go.mod h1:h9+vUUL38jiBzck8ck+6G/aeMX8Z4QUY/NiJPwPNi+8=
-github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
-github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/jtolds/gls v4.2.1+incompatible h1:fSuqC+Gmlu6l/ZYAoZzx2pyucC8Xza35fpRVWLVmUEE=
@@ -121,8 +105,8 @@ github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK
github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE=
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
-github.com/klauspost/cpuid/v2 v2.2.11 h1:0OwqZRYI2rFrjS4kvkDnqJkKHdHaRnCm68/DY4OxRzU=
-github.com/klauspost/cpuid/v2 v2.2.11/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
+github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
+github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
@@ -131,8 +115,6 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg=
github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
-github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
-github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/mattetti/filebuffer v1.0.1 h1:gG7pyfnSIZCxdoKq+cPa8T0hhYtD9NxCdI4D7PTjRLM=
github.com/mattetti/filebuffer v1.0.1/go.mod h1:YdMURNDOttIiruleeVr6f56OrMc+MydEnTcXwtkxNVs=
github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
@@ -159,20 +141,12 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
-github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
-github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
-github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037 h1:G7ERwszslrBzRxj//JalHPu/3yz+De2J+4aLtSRlHiY=
-github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037/go.mod h1:2bpvgLBZEtENV5scfDFEtB/5+1M4hkQhDQrccEJ/qGw=
-github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90 h1:bQx3WeLcUWy+RletIKwUIt4x3t8n2SxavmoclizMb8c=
-github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90/go.mod h1:y5+oSEHCPT/DGrS++Wc/479ERge0zTFxaF8PbGKcg2o=
github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA=
github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU=
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
-github.com/perimeterx/marshmallow v1.1.5 h1:a2LALqQ1BlHM8PZblsDdidgv1mWi1DgC2UmX50IvK2s=
-github.com/perimeterx/marshmallow v1.1.5/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw=
github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU=
github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
@@ -180,12 +154,12 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/prometheus/client_golang v1.23.0 h1:ust4zpdl9r4trLY/gSjlm07PuiBq2ynaXXlptpfy8Uc=
-github.com/prometheus/client_golang v1.23.0/go.mod h1:i/o0R9ByOnHX0McrTMTyhYvKE4haaf2mW08I+jGAjEE=
+github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o=
+github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg=
github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
-github.com/prometheus/common v0.65.0 h1:QDwzd+G1twt//Kwj/Ww6E9FQq1iVMmODnILtW1t2VzE=
-github.com/prometheus/common v0.65.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8=
+github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs=
+github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA=
github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
@@ -217,10 +191,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
-github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
-github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0=
-github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY=
+github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
+github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/unknwon/bra v0.0.0-20200517080246-1e3013ecaff8 h1:aVGB3YnaS/JNfOW3tiHIlmNmTDg618va+eT0mVomgyI=
github.com/unknwon/bra v0.0.0-20200517080246-1e3013ecaff8/go.mod h1:fVle4kNr08ydeohzYafr20oZzbAkhQT39gKK/pFQ5M4=
github.com/unknwon/com v1.0.1 h1:3d1LTxD+Lnf3soQiD4Cp/0BRB+Rsa/+RTvz8GMMzIXs=
@@ -238,38 +211,40 @@ github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0=
github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA=
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM=
-go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.62.0 h1:wCeciVlAfb5DC8MQl/DlmAv/FVPNpQgFvI/71+hatuc=
-go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.62.0/go.mod h1:WfEApdZDMlLUAev/0QQpr8EJ/z0VWDKYZ5tF5RH5T1U=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 h1:Hf9xI/XLML9ElpiHVDNwvqI0hIFlzV8dgIr35kV1kRU=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0/go.mod h1:NfchwuyNoMcZ5MLHwPrODwUF1HWCXWrL31s8gSAdIKY=
-go.opentelemetry.io/contrib/propagators/jaeger v1.37.0 h1:pW+qDVo0jB0rLsNeaP85xLuz20cvsECUcN7TE+D8YTM=
-go.opentelemetry.io/contrib/propagators/jaeger v1.37.0/go.mod h1:x7bd+t034hxLTve1hF9Yn9qQJlO/pP8H5pWIt7+gsFM=
-go.opentelemetry.io/contrib/samplers/jaegerremote v0.31.0 h1:l8XCsDh7L6Z7PB+vlw1s4ufNab+ayT2RMNdvDE/UyPc=
-go.opentelemetry.io/contrib/samplers/jaegerremote v0.31.0/go.mod h1:XAOSk4bqj5vtoiY08bexeiafzxdXeLlxKFnwscvn8Fc=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 h1:YH4g8lQroajqUwWbq/tr2QX1JFmEXaDLgG+ew9bLMWo=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0/go.mod h1:fvPi2qXDqFs8M4B4fmJhE92TyQs9Ydjlg3RvfUp+NbQ=
+go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0 h1:2pn7OzMewmYRiNtv1doZnLo3gONcnMHlFnmOR8Vgt+8=
+go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0/go.mod h1:rjbQTDEPQymPE0YnRQp9/NuPwwtL0sesz/fnqRW/v84=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg=
+go.opentelemetry.io/contrib/propagators/jaeger v1.38.0 h1:nXGeLvT1QtCAhkASkP/ksjkTKZALIaQBIW+JSIw1KIc=
+go.opentelemetry.io/contrib/propagators/jaeger v1.38.0/go.mod h1:oMvOXk78ZR3KEuPMBgp/ThAMDy9ku/eyUVztr+3G6Wo=
+go.opentelemetry.io/contrib/samplers/jaegerremote v0.32.0 h1:oPW/SRFyHgIgxrvNhSBzqvZER2N5kRlci3/rGTOuyWo=
+go.opentelemetry.io/contrib/samplers/jaegerremote v0.32.0/go.mod h1:B9Oka5QVD0bnmZNO6gBbBta6nohD/1Z+f9waH2oXyBs=
go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo=
-go.opentelemetry.io/otel v1.37.0 h1:9zhNfelUvx0KBfu/gb+ZgeAfAgtWrfHJZcAqFC228wQ=
-go.opentelemetry.io/otel v1.37.0/go.mod h1:ehE/umFRLnuLa/vSccNq9oS1ErUlkkK71gMcN34UG8I=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0 h1:Ahq7pZmv87yiyn3jeFz/LekZmPLLdKejuO3NcK9MssM=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0/go.mod h1:MJTqhM0im3mRLw1i8uGHnCvUEeS7VwRyxlLC78PA18M=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0 h1:EtFWSnwW9hGObjkIdmlnWSydO+Qs8OwzfzXLUPg4xOc=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0/go.mod h1:QjUEoiGCPkvFZ/MjK6ZZfNOS6mfVEVKYE99dFhuN2LI=
+go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
+go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 h1:lwI4Dc5leUqENgGuQImwLo4WnuXFPetmPpkLi2IrX54=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0/go.mod h1:Kz/oCE7z5wuyhPxsXDuaPteSWqjSBD5YaSdbxZYGbGk=
go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM=
-go.opentelemetry.io/otel/metric v1.37.0 h1:mvwbQS5m0tbmqML4NqK+e3aDiO02vsf/WgbsdpcPoZE=
-go.opentelemetry.io/otel/metric v1.37.0/go.mod h1:04wGrZurHYKOc+RKeye86GwKiTb9FKm1WHtO+4EVr2E=
+go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
+go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E=
-go.opentelemetry.io/otel/sdk v1.37.0 h1:ItB0QUqnjesGRvNcmAcU0LyvkVyGJ2xftD29bWdDvKI=
-go.opentelemetry.io/otel/sdk v1.37.0/go.mod h1:VredYzxUvuo2q3WRcDnKDjbdvmO0sCzOvVAiY+yUkAg=
-go.opentelemetry.io/otel/sdk/metric v1.37.0 h1:90lI228XrB9jCMuSdA0673aubgRobVZFhbjxHHspCPc=
-go.opentelemetry.io/otel/sdk/metric v1.37.0/go.mod h1:cNen4ZWfiD37l5NhS+Keb5RXVWZWpRE+9WyVCpbo5ps=
+go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E=
+go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg=
+go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM=
+go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA=
go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ=
-go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4=
-go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0=
-go.opentelemetry.io/proto/otlp v1.7.0 h1:jX1VolD6nHuFzOYso2E73H85i92Mv8JQYk0K9vz09os=
-go.opentelemetry.io/proto/otlp v1.7.0/go.mod h1:fSKjH6YJ7HDlwzltzyMj036AJ3ejJLCgCSHGj4efDDo=
+go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
+go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
+go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4=
+go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
+go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI=
+go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
@@ -328,14 +303,14 @@ gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJ
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
-google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822 h1:oWVWY3NzT7KJppx2UKhKmzPq4SRe0LdCijVRwvGeikY=
-google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822/go.mod h1:h3c4v36UTKzUiuaOKQ6gr3S+0hovBtUrXzTG/i3+XEc=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250811230008-5f3141c8851a h1:tPE/Kp+x9dMSwUm/uM0JKK0IfdiJkwAbSMSeZBXXJXc=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250811230008-5f3141c8851a/go.mod h1:gw1tLEfykwDz2ET4a12jcXt4couGAm7IwsVaTy0Sflo=
-google.golang.org/grpc v1.74.2 h1:WoosgB65DlWVC9FqI82dGsZhWFNBSLjQ84bjROOpMu4=
-google.golang.org/grpc v1.74.2/go.mod h1:CtQ+BGjaAIXHs/5YS3i473GqwBBa1zGQNevxdeBEXrM=
-google.golang.org/protobuf v1.36.7 h1:IgrO7UwFQGJdRNXH/sQux4R1Dj1WAKcLElzeeRaXV2A=
-google.golang.org/protobuf v1.36.7/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
+google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 h1:BIRfGDEjiHRrk0QKZe3Xv2ieMhtgRGeLcZQ0mIVn4EY=
+google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5/go.mod h1:j3QtIyytwqGr1JUDtYXwtMXWPKsEa5LtzIFN1Wn5WvE=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 h1:eaY8u2EuxbRv7c3NiGK0/NedzVsCcV6hDuU5qPX5EGE=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5/go.mod h1:M4/wBTSeyLxupu3W3tJtOgB14jILAS/XWPSSa3TAlJc=
+google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4=
+google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ=
+google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc=
+google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
From 2a34ce50442635103356a2aab3c2b75eb64f7078 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Mon, 6 Oct 2025 14:20:01 +0000
Subject: [PATCH 04/39] chore: bump @grafana/create-plugin configuration to
5.26.9 (#512)
Bumps
[`@grafana/create-plugin`](https://github.com/grafana/plugin-tools/tree/main/packages/create-plugin)
configuration from 5.25.8 to 5.26.9.
**Notes for reviewer:**
This is an auto-generated PR which ran `@grafana/create-plugin update`.
Please consult the create-plugin
[CHANGELOG.md](https://github.com/grafana/plugin-tools/blob/main/packages/create-plugin/CHANGELOG.md)
to understand what may have changed.
Please review the changes thoroughly before merging.
Co-authored-by: grafana-plugins-platform-bot[bot] <144369747+grafana-plugins-platform-bot[bot]@users.noreply.github.com>
Co-authored-by: ismail simsek
---
.config/.cprc.json | 2 +-
.config/bundler/externals.ts | 43 ++
.config/docker-compose-base.yaml | 2 +-
.config/webpack/webpack.config.ts | 46 +--
.gitignore | 8 +
.yarn/install-state.gz | Bin 1434773 -> 0 bytes
package.json | 13 +-
src/components/Filters.tsx | 4 +-
yarn.lock | 627 ++++++++++++++++--------------
9 files changed, 403 insertions(+), 342 deletions(-)
create mode 100644 .config/bundler/externals.ts
delete mode 100644 .yarn/install-state.gz
diff --git a/.config/.cprc.json b/.config/.cprc.json
index c71181ca..c09f2588 100644
--- a/.config/.cprc.json
+++ b/.config/.cprc.json
@@ -1,3 +1,3 @@
{
- "version": "5.25.8"
+ "version": "5.26.9"
}
diff --git a/.config/bundler/externals.ts b/.config/bundler/externals.ts
new file mode 100644
index 00000000..3a287d58
--- /dev/null
+++ b/.config/bundler/externals.ts
@@ -0,0 +1,43 @@
+import type { Configuration, ExternalItemFunctionData } from 'webpack';
+
+type ExternalsType = Configuration['externals'];
+
+export const externals: ExternalsType = [
+ // Required for dynamic publicPath resolution
+ { 'amd-module': 'module' },
+ 'lodash',
+ 'jquery',
+ 'moment',
+ 'slate',
+ 'emotion',
+ '@emotion/react',
+ '@emotion/css',
+ 'prismjs',
+ 'slate-plain-serializer',
+ '@grafana/slate-react',
+ 'react',
+ 'react-dom',
+ 'react-redux',
+ 'redux',
+ 'rxjs',
+ 'i18next',
+ 'react-router',
+ 'd3',
+ 'angular',
+ /^@grafana\/ui/i,
+ /^@grafana\/runtime/i,
+ /^@grafana\/data/i,
+
+ // Mark legacy SDK imports as external if their name starts with the "grafana/" prefix
+ ({ request }: ExternalItemFunctionData, callback: (error?: Error, result?: string) => void) => {
+ const prefix = 'grafana/';
+ const hasPrefix = (request: string) => request.indexOf(prefix) === 0;
+ const stripPrefix = (request: string) => request.slice(prefix.length);
+
+ if (request && hasPrefix(request)) {
+ return callback(undefined, stripPrefix(request));
+ }
+
+ callback();
+ },
+];
diff --git a/.config/docker-compose-base.yaml b/.config/docker-compose-base.yaml
index 4392cabb..09740092 100644
--- a/.config/docker-compose-base.yaml
+++ b/.config/docker-compose-base.yaml
@@ -7,7 +7,7 @@ services:
context: .
args:
grafana_image: ${GRAFANA_IMAGE:-grafana-enterprise}
- grafana_version: ${GRAFANA_VERSION:-12.1.0}
+ grafana_version: ${GRAFANA_VERSION:-12.2.0}
development: ${DEVELOPMENT:-false}
anonymous_auth_enabled: ${ANONYMOUS_AUTH_ENABLED:-true}
ports:
diff --git a/.config/webpack/webpack.config.ts b/.config/webpack/webpack.config.ts
index b340cf44..4fa645f1 100644
--- a/.config/webpack/webpack.config.ts
+++ b/.config/webpack/webpack.config.ts
@@ -19,9 +19,11 @@ import VirtualModulesPlugin from 'webpack-virtual-modules';
import { BuildModeWebpackPlugin } from './BuildModeWebpackPlugin.ts';
import { DIST_DIR, SOURCE_DIR } from './constants.ts';
import { getCPConfigVersion, getEntries, getPackageJson, getPluginJson, hasReadme, isWSL } from './utils.ts';
+import { externals } from '../bundler/externals.ts';
const pluginJson = getPluginJson();
const cpVersion = getCPConfigVersion();
+const pluginVersion = getPackageJson().version;
const virtualPublicPath = new VirtualModulesPlugin({
'node_modules/grafana-public-path.js': `
@@ -54,44 +56,7 @@ const config = async (env: Env): Promise => {
entry: await getEntries(),
- externals: [
- // Required for dynamic publicPath resolution
- { 'amd-module': 'module' },
- 'lodash',
- 'jquery',
- 'moment',
- 'slate',
- 'emotion',
- '@emotion/react',
- '@emotion/css',
- 'prismjs',
- 'slate-plain-serializer',
- '@grafana/slate-react',
- 'react',
- 'react-dom',
- 'react-redux',
- 'redux',
- 'rxjs',
- 'react-router',
- 'd3',
- 'angular',
- /^@grafana\/ui/i,
- /^@grafana\/runtime/i,
- /^@grafana\/data/i,
-
- // Mark legacy SDK imports as external if their name starts with the "grafana/" prefix
- ({ request }, callback) => {
- const prefix = 'grafana/';
- const hasPrefix = (request: string) => request.indexOf(prefix) === 0;
- const stripPrefix = (request: string) => request.substr(prefix.length);
-
- if (request && hasPrefix(request)) {
- return callback(undefined, stripPrefix(request));
- }
-
- callback();
- },
- ],
+ externals,
// Support WebAssembly according to latest spec - makes WebAssembly module async
experiments: {
@@ -195,7 +160,8 @@ const config = async (env: Env): Promise => {
virtualPublicPath,
// Insert create plugin version information into the bundle
new webpack.BannerPlugin({
- banner: '/* [create-plugin] version: ' + cpVersion + ' */',
+ banner: `/* [create-plugin] version: ${cpVersion} */
+ /* [create-plugin] plugin: ${pluginJson.id}@${pluginVersion} */`,
raw: true,
entryOnly: true,
}),
@@ -225,7 +191,7 @@ const config = async (env: Env): Promise => {
rules: [
{
search: /\%VERSION\%/g,
- replace: getPackageJson().version,
+ replace: pluginVersion,
},
{
search: /\%TODAY\%/g,
diff --git a/.gitignore b/.gitignore
index 7d513061..8588801e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,11 @@ mage_output_file.go
# provisioning
/provisioning/
+
+.pnp.*
+.yarn/*
+!.yarn/patches
+!.yarn/plugins
+!.yarn/releases
+!.yarn/sdks
+!.yarn/versions
diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz
deleted file mode 100644
index f2390cb6e4f9a4425f118262e7e6217b7b2c5a13..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1434773
zcmV(?K-a$?iwFP!000006Rf@4&b3LB9%LJPY>zOuh2R4IBMz8xY%?Nf&H%v)a1R-g
zk)9fQx<_4YTh<84cMf`1Gr&Qev{y^D`@i~2^{#j2CgRz}|Mf3_^W$It>Zf1-AM@Lv
z|Hps#^Y4E1H~-W5-TBKO|J~pH`1Sdl`SBM&{`cS9`QLtX|J|?V=l}Kd`+ofQKmPsv
z_UE5|^Xngfq5tP^e*BZ4fA^c;&R_ocPyeu7jC@>Em!7#EX^$vxFXeb4PR|!@k!a($
zQ+4cJ4!L3`yw02Drc1-mTt43Cc_vGErr)>h)sEMFoo3I?Te{8|)k^OC&5wWfH|N(s
zz4`ffzxnZB)K9s>7qtDz3bxe*C_<(MEEvmwfyDH!FQ=&Xb@Q
z&-~qf$Jgz&n5aBeFM`Q(U0eI@9B5OH<$e_W7G)
zy(ZrXl?Y+pXMrM6g$Z5e%M&%M6OZnttyz7!#{D1Eo9RfuTc
zCg%Na8*@=y8=8CXnI@&L_iwd{`Npm!wc(L)?tH%YyXUSnjXhlBdNsRUYM)bdBi6Dz
zYj})8TNhca_A1*~oe$samZh!FbMI#--hK3r_K+!)AF*$rf0#^Nx?>!Rrxx3zXV2u+
z!eiQLr#z}*DaWj`b{#L#MK9O6&la(IEtcSSCYr6Uy%i?$Plu15mov`3HDa*3l*`ppWl{|UK
zc29(Nshx%WAZyEYy}a(@*KaqioOa*ONpT$Tqem>dUT4I)eD(GF_W5-VuZyGRbD{1z
za&q0gw(nIQ8RsQTyrM{4YD|@$&9=Ac*{$>N0^U?CmSYk-{PmG#N`9XwzRHu?X?)Jz
z?zZ$1+cxX3_iuJ3Q|wgZ#4_1Q=SrW`Q8;jp)CZyK5@vTxUIFJjBLS?G(QGyt&^#KfhUmt$lbuJ3Q3KO`&4
zukKZ{bGjOTzg@1l{QLP{8Ftlrt-Sa2E7ZYdqUth8VjCIS{*Fg?ygYm78tdgxlimv4_gtN*VLSKN>nHWJYgC84W*0gs5w@-EYP(lX
zl@wAbDGUhm7mOz@6R7z
zr8(6y;rKM8hb(`
z;|lxHR;eRuBX0)_`5t|8SUYDraf7RtAGS(g_pNXpy61gef9f`qr}w0uo3Gxdc)sJI
zD>uvGof5p&Ye%QOVvbN1wQ$|*881!s#+kFlZoJf0M0@lk?&w>2yO+z%eO40cby`QQ>jB6y{Ytz5RG
zlzI)iZ*Ha(*~;fVA__aQ&g9M~+nb9xsqT5W?Kt}cHttLw*=vUH&PTm|p??1HPyYJn
z`MH1m^ZM!6|K{_LfANq0ppN*gNAV~#`vF{7v2(kX?Xfl+OS><%x806|3s0*pM&I2k
zvVbv6nzVPv)s}O)Q>YK?Vb2J1PG#$Ms->i?H|xGjYu48l>3*AnmXqEwdC4#rD=-Aui*aU8oyQ%oHU2Fzk
zkLl}<{-##F3C-IfDC`dHlQU&8z;d|!R>b(b8im^J;3K?Usn)74iMIG`-=6$g_-pps
zYrhJdTuYOAk%wM7ZxdZVbIf?HQ{Q(4EDQhdYirh>w{ASK9c{6Ljws6Li);INp~2iW
zvZ+^?lh&@Tq1)s!62>zk(k&;C7Ahbsq1Lmfyob_*?C$;A?>1-qh4=sCzpUT>=0E&A
zzy0}FKmGi>AAi!n`svUA`sY7vSF}=Tbh@6BG^Tqq?rh4H?^^IZVt!qM?$KFnwaGcJrbweMcCT5r*;OD|B-`s(OZ1yc0hFWhrK{@Z`|
zxA**R{_Ow1IsWX{f8PG^ly#N+B^S>2Ab^~!-G`$INKYS?6Z5dm*iXLT2Ce}-E()?*L~bG^zw3?&DW#7o7vvyjvid#
zqBNC!E|~}4ywm$wsJxRAW|C{(0unaIQl!eqNl?h&b=J^%$t&V03C&d7Jgnuwt&`vL
zAjel8_f__G75CfjYjBav^d0-~C60Elukt~2u>-;T336@9}lI{?(^9@d36
zI#Na3Y@z+8N{NcAceU6_vHbdcs;;9b;^w-LcD>(YcY6r~W=GeSSMrFiO4+XWDVUrm
zc>#0nYt^p%7>d(tKKA;t*}CueSvu|m7#t|}TjDrXd!~CC%`ZIvk3ac&{^sA$Z-4yD
zKmRuCUtXIbJSS*(ivQRK-z1ynxjcs~!
zRHO8E(;c0_WwADkO1stBE1g`f-1p8K&xIP3`P(mMg)OJvtBGd;n~ZZ@04tv7=c4h<
z$ribT6DMDs0S{M9jI+&KMM^l=vS#sodHfct8{U9-V$A`CRqZWdx-RV_p>JQW_He{PaZL1rYq1-dasZaJeQX^0()=KhJM}{5QW}SaoWC^=H5T*&n>T_AL{!Bm-no
z#Y@ke9}(Y~RNAj@?vO
zM$zWE);UD8@7MkJWeXniorlkocpXCG+NqSP4R@xOET%J2k~E4lJKLJVJ#c8bZSHp>&nfihS+`=>k?Qa9`@4@n
zqI%7IeZ32Wh&%NL^_)8f@VA73%UWh{2HqiF(wl6uGeja+k=|G9V#z(tr+gOB|5x`3
z)7e^M?zAa9-&;&i&a1EA|N3k}VjHvS<@I=iSn@orv+wCXwXU>cDFAME^cAQD3q>l;
zIkb4DW*{^iHWu)ZNHNmxT&R%gvCu6m9-AgUWwCOOd>RnF=_=cR0e3|>wP=(%h
zI~(OotT$-wE;$SBQk-rdZOL0-ciU>dr`~X0QI&n|uDZQv(2#j2in!SCy`zy*e6h~=
zl^1DkN<>Gjy^`vfB+n>``gGS$rHA(|s>j%O`kB?BvLxHme`rpRQ8oPCk$-%_@4J(`6j*N?)UQU1(NsO
z$zbf96CE9wlp?b*WGrW#@FX(oPvy^
zZFaNdtlm7=yTQSIkAI8UTI+^9m+2$H2c@yReGXb0s!N=1F92ow;jE<2>K(M=8BI>?
zd8Q=Sj)Q*px{4|!N=^v(-KVqPTKA0awG8cXun4InDziY{o$-<^cQvcy`4d&>tYM7G6E31fMJAPfh^=U!`*%I%*41sI-1zOZ@ZxtMluBJ3r6w
ze*8)O^y@!(ON>`cNso?rZ|(*87NJeY#Ly-6sN+)){du2_Y7iX_`
z>Y>1cF6H(B4ud96)byFmsjQk52j=rNI^&B7NJ&`sR&nw)(T_M)NP5}4%ovWn
z-|A(6QR~gtwRz5&>I6>rIb-kY5#oJ(iyrV8>lnE9M{}DV^VvqUdFkva=KQ+Km^?`U
zMx*#zvqkzMe?rlV*S0$7b^+71UAN+e^F_DFA;E?0bAA1u#*mN|R%plCOWXu3fZ?3I
zeSna0@f}o;G1qK<34Q$ow={)AOJO+i8*;&Sf|uQd2FkCU01|f}qdK15)=)E1>LJ0-
zKEhb;vHTr96!G2>QHez}WM;jOy!Iy#FvzqRXoBadtn@X@`|Qrv?i`DEKD>?Wl6c?)
zO@}s~6vFUk&&48(LZ}nx*OS$xxo!irc`NAxj_@0A=Mvuf{BAl^m6dzPJ>t9Fw)1k(
zPhX>}f>y(ZYbAi^qm850s)N!{p&i^sb?GdyZM+WGyrn-=h@72VHoss
z`Si1!kfWjQ-c<64!T7cqJ2$;8yXnoMCjIfutY?vBgJOJu
zPS@%;AhxPjBs;%#0N4zqORxD3(_*GekaW}fdi~=d6Y(%^lsc5M4p&-bQhX$l2HOSI
z)J|^d2jSP7fEqM7_p|*ud(O}^BG796e5n=WTU|hz?y_8Q^JKv7?JIj!92C~u1i{uG4u&@lJaNtey5y%vvCMiL|8t1T_J6;YJxOT0Zy@B5WJ~*)I*bav1
zpTA!JwjAmy9n%8^iN4iQfaxIOm9-yuVug-L-dz(0=Ks0%PGc210~sH7{RW2hqz|CE
zMw6zEHMM0yPqtVTwAbiPg+po`maj|d`RKyLHQHqiJle{EOtoG=ec|azvX?U)7M3gE
z+8Jqq_AwR}%oBLJj>NeG#%Ax~%YD|KJOMk>iZY9h`wW7UT%}uXe*ONp9a1LJ9kycg
zp|^lFaGb|huWsopvv+$XYO#p@ZtgUZD{H5G^z^bHL0uTM@_MMkRrDHq0PwwMojSCz
zMB$r3d-wT9UlvR>X%4y3azvd=9pXjnwz`^B#LkrzjyEl-uC{(hRTeT|W?6=u6)~
z63uFpoENJCV(XmQ%quiU46;6b5Tb_c0vdXX`)&@qPYtF!mK{KRbRV~A&?Xed#XpQ(iNF-K#@9ZVOH1AMKvAJizc&Ych2TNk>QIDBst-FUj}
zLX@5k+Snmcx1^834VGRg@#u@-gnhmKAv$#_5oYX9kGyZ7
zHoMo-V}X{8I=N~SPqH-zeS5UddDTY`I>Ni*V{!j5uFky{uw6qXb@~df1(xMY
z(YwJV72mToXU>u=uJx)Um-dGU?ibL_0oS$8!x#FAQW8y|M7;hqRJT&CAr;l8om}Xhds`rpZ$X8Z;9o>@U#Q|u0l%QPkc0A6KZ`ThT8CH@Vqw%o->c-a%TRRz
zpSp+ER6huW!CsPNEfwfbxVEF{9lzH<9@1&ZgE%*tNX73x%CKL%ya{S$w*Z=|$fum>6%Hj)ELb>6kRybK2h?;HS6a3_bOzJU4N?}eBK
z{6;LXb1b#!t-4E~M1Z?xZMZ44FL!o`5=c+DMv0j?X~kfLiqBhT08
zXYO91LH9CTYA)K#qo!`4)t;yACa>+-y*ql~=`4Sjwk>DZv)k(h2k$gbeGT13)zNDL
zC*IiejLKzYyguwJ!+ufF6+k5TWazy%G1roo#BMg7fukhK`(smB9tnpSpQ1vUhEO%pP<+(FFL5T`Q^9HSC7n
znYO{luEk&PUtibUZEs!H$9h56KlAB6WN*Lwq6%BI!)+JI2$=Zw(ibG9TV)iwH
zDtmn#%!7`2p_(E)>pt0$UT~osUV=rmjP0-Mx9z9xOfzdK_`UU>av1yPPaSCKa!IR0
zIdgNrWF&pSb$__g0&8s4()#K$q7q3)jdmDs-tx7&lmLIL
zEVV~A3T4xJ48Ej{-frmH<>`u}6Khy_~|AX03!ii1<_`z~qsAZpz)H
z-g1|__o?DCelYB@z6E|*F5fLhvVFzfXfh({k
zlzbZd4~N8R`N&}*_Sxv+>Q!CU{dN5bV2s92pN%L4MByBuP;gvQz7c5SKDxp~s+sI(
z>QEYouU>0lghxkDhnDvpeV-dda#6CPS5TT82-5*~0LfFwiBL!_^XvP|Q<~vO>605V
zJbP~!e!MS)_GGtZ-~4D#6psDOf#HjZuvpHrk74=sn@i>EF2={Y&@-`)^Q=1JD>D{h
zlX&L47i1nE*6;b#XPXh=1KD#TrU4KEt3lv)KQ!D9f#!@9HE)+(-tQ3}{(brq;*qTZ
zB=K6DID1ZG)vR|IihnT%?Xsv!ksUH?ABEw-^g|GKMWUe>5bjCZ~AY?ZkZKF8@n8(XhO
zd7Jd*ulbjP!UaaKBXEX719u%XbNUA>OwW~wX&92+W#WB9ad~NU2!gq~#x~SJzt72n
z0b3Q6%*X0t4f`m;P8
ztKs=uo$3WX14UiIrOi9{THBZCL#)F2_&xlb<$0I|O+?!mz>UsE{TU+dU)Mjifr-=h
zaYU#nLZGJS1DTKQcY%Q*X+z0O?}mbPL17DP)!g&$YFCPoE=Q37T?|8st1+zsSIXKb
z81$sk;bnUPTe*Fl>=*i%AOG~PfBv)oc>d;BKmM!V`>a2|_`_{;l3Q(jL(Tx`{1S@kFI~vxHahdCTVG3ZH*%^_us$MSw>xCkF`YrHx)JnQW?u*WI
zE?x8laFJdbW4ml{X!mj774=Z_cY
z$G`f$J?Q`W<)8oc&p-Zje*X98S3kkE`QyL-`+xiQKf&7j$A8$R2u70jCpH3MCx#Fd
z*3i$*Wi|T=&$WAH)`NPmrNg#Z>64Ev?SWrLqFi2{=^fYJc@0^k!F#x1QMCnMYY7re
zT5@rh-ub#Ig@Yfl7a)ok${uH1ipIU}2;|aL@tz@TX;*UsAwyK*f(ikimvXlXUr>+u
z$2GVh$1$1Z!eCx<3if6tqO6<)YxXu{aV&nirVShxz2rOzZY~^mL
zva`I(A^bbDSqX_jX#a!S7W6t^1$B%C@7>E6Ja)wQAWI_=Vp4otUc!b)&?Ck9zNmWB
z3+-9Gxh0UWKFLvUn0Wah84qZCYWDlY@;&mcO|+oV46~VB&@bA(FTlt~R3PZUk&@@{
zNeHJynB;|Hs|6o(46>tNIJ^E|%jUoM!mwE&HprRG7Oj&Aj2jwQ6NBlUeObCFI~D*)
zyC-g)wty3C;xyiI)Iy1TXaN)0jO3(x(gtC=97oT)>*7iiWJ)L?kRaamJ=ddp5a>Fv
zDf%JOut6uMm6zYtqE!#_gLAVfs{+Ph0w7jrgL*!1!ub&&+8_tFZ@wQvcEjt!3|GQ+
zG?alzDm!D4czDhGy4FJK8;q4DyyIhLZ8cx+tkk%n7r2@npN1P+K0!3eWy5d1H1GJ=S0cqq8}Q_yk5AA9KRPXsQT#ge
z5>l)m*)odtQizs$LGE~*P{U{W+K5H#1Mg7XgMD84#$b$(`MA=cz}VYDWWgJ}vwp#W|lZ#IRK~uOQ04)?Rd0F5$$-F;Jrdw@`4|XcQ)eCL{+6C(N^c23sej=XfPDa
zb%oChr03$h;spsrGnh24ew9yE7LWilU8jO@2+Z1>Nrf6}sX%)0L&36M5ftm+a}CfzJ-xB&-ng4u
z5DW1xV&*O%JwRhd&qJ-cWaXn`$&%AZ5E`6Uy+iiu?NesA7V;sFszQ{L5(NFv9M6hLb@7u!0Cdk^+1Em=Relm*uC8%%K
zW2|kpP2&LoP2&+$2Y_wp_1)7C*>q**Da2NlqST*q8ouTNfQFXry)+Q`ql>@B3V;L8
zNkwwTzT?D!oFJ+KYDtLXbn&4E*^M;0)pZ5taC?F>$qPmy%7p_ZKuT4pLjiA`FZXQ2
z=cEMlS#ywWz$_?d8`=Y-J(73o1>uxPd_^sbX{6(=eqKm%Yzxz<%<+DfiK(A>^*6X9X
zM14o%5Yd6NjHiNN&L>327Q{tZTJ(^5LQwKdq5X
z+LdA3&|sG#2piG_ymENh87#A~44+dc1U_aPq#zxd3AU94HyYHevUO*HfhV-!2PzJq
zK#(cE+a^Z^ZgMgSisG*u*2UnrV`ZGIfpk$|$Qsc6yHxiL%K8ughhLG6k6vuPi9GL4ecx-mkB5PIj{syal2D)Jb;&w?W4MO(&nV^ue;?
zYk7adf)P6nx#P-{YgYIGa277xU419EFOJ$pnFH^+7{RfjFL>H-KE5H}GwH0zh^7_$
zA*VKp%V6x-A4<_%Yk01tA6$7S_I=aWK(kh
zI)*-AP(n=JHZ}g9i8iIrSHC(x<_=QiY*;?Lxr=E7G;gO723D+7X08i?sNjB~qz&g>
zkDWr04g6v~Sf5WvKmR1nCG_X@INvHmsy%X
z+be1oW}lWekfL-c`T9m44K;uo
z7?kLKG(r`1Aen&U+5P+X|2U1U?rsC>BOi$mYKFLHsHcn8hQ+^+MlrOgwU8*FD&W__
zPWnev%Z7N@?P|yEPUh+g%`LZp?lXBVhf9+lcr{4T{d=04>f8W89NB9lp>-iWL;VD7
z22^YA#ee~)XU+)zBjcW0b!5fTxYFIkOuOPDk(@vN-GpR9DKgrjQ;aj}O
zVqf3OR1vENCQU89J|XsD7?$Jm5zNfeV^sSNlEqw?A)Z=?96?k30Lr@dA0bRi9TW~)pK{3Pyc3IOJw0c&ENG8r=GnCa
zLs5sifC!?YcMqMl`Q=lzHXHJk3oo7pecVu9>g#SKwk3)qLTLve>N=m>e}wgqxV^O#
zydV@8)Cf`vs5T=7l&nJ<4D|xk1TW_xi#OJ1M}x=E+o~W{WuMFbp^8(`qH$z
zpW9R4!+(09oSWslzLx3TJ-HBt)s9H-Ab*9ZYm8^=_K&u3F1qAA{0Wj?i?>hYiw<9m
zfNy~C+u?V>gpSKb#32WRhLpz})Z@bZ4X|AMbrA%`sB8WR#T^1fR1f5NX*Wx-JIw;|
zGjpO@86ycM{UZX_^SmKwR``bmR&hbbv7Za*yWo~>C>7<#JA<N~!5oS=Kxfo!@V<~CR*WQ~m++jpp3l?waDVy5)_(jSlGP2P2@gjtc5HGkP
zVGTwq)kByw6rpSt`$DOW!A3A}Y~8eR@P6GogPKJ|Qm}vgnkHLq7oW54mN_3{1j@Xj
zBJ=^cl3+?caS?ZTAIu5iAm11>uT(5QI`W*{=>In~kq3Lr_eNM^$_`=lN#8?vh*e5>
zaHdZqYIb|fLDt*_=qb%N5&d~K-*cu>85gXhejGVd2l3Q$;a|qZijir%8wqOBn5$rW
z1Mn-LtG!_q)U^O%EHtg(hj8A&d@a>RxD$py*$|UqRswwP5Bjw$=oiqbK-9q(Fe;z%
zX!kb+1Dy%FM#w=+kzJ~53
zw!*pBac{MC?v23~RuC03ue^Ii5L`ki%ATNy{{7gdXFd&g_Cp{wcD^@+3dp5^KeLSK
z`9sXGya(-#I&wu3S+S7VtCHWZe{VYtg^mNKc8v0IMuhi9>=q$q8Qel&1<5)sln$C_
z9>J)xZy{Kz81@h;0Dmk`)e&+3fVy=YU9$6C$V7^?~GGsYAOyr~F>SgR5#DK#M(3mLrc
zd+H3XYD~C{q^}jh&>2XY8F_#P`thVs1A@8SZ0Zl6F1G6!NA)#
z+*1eTbRV@F=z@m;#1KY#u|W5K3db-4AMXV=ln|TQ&ILEqD^NZz`qK>R^rtF6+n*%0uXw
zVXP=!%mghU+C)errthhbJr6J$#DC|&7P#M8t6rwWhNZV!E}D6SJtGptP)9!mR*c5W
zDcXuJ>eb85gVZO!}A$Z3+B@{f)PTNNb-L9EOviCOt$$puC27Nw_eakhS_ra
z%!3zb!2_?zVoZ#Z>dRV#&esHQ(J@~V3SlI5EHqZ6bu{VBCCPKW;j%-rl)^l}r1~E2
zu>+gW*Zuo)@>nex0;%54@VhvVw#;~$F3*n^uF~lL)c=ty1p3&1nGRi*tn!ZCx
zm?gy@=4|09H%1F0<%_8m8ETlep?iT@1~~Th{@s{v>kqzmu=EBu&N>;(Ao7f7N+?FR+3QXxxPA2cbBg7DawBHySs+~=<`nsyzkx}ERM_hG(X
zRJt!P0atZH6lT*cPVeL}Ovw-8zx9cq*iLl7uWozH@L0ajS?aHy
z?sS%#-DlDO!X{V3jic^BLPO79%SUoSMzxmfDAM+lSX-d?`MQ4AOZGN$+09=<^rYwP
zX9H5>Kt%v#1^$pd1DTOSiK-{8ZPB^KcFc?_YoM3CvsliYk
ztH@gPaV&fv6LJ{hW!6|dpZJI*UU2^L-5AFjhabk@h+>K)8Y^_)pMhzNA8B5@<_xbs
zX7)LQT1E&zPt`p4`Z!<$0x9-|6j^f*Bo+J-hOr7wz&SU4vGSjx$h_0tTNzU&&xQaV
zm=LVs=$&TyD;8kxVh^KBI!-=LKmD1)2^&IT#u1X;!0s{*6`UX9Iq
z5U^f-<5<(WBLH6E+*FHZn2yz-BY7z8B0Aq;OT#hp86GhZSz_?%sMV-mZ)mRR8V%;7
z>%b6x55AOl%kxrLP0;5`_L(We>K1?o;4<+n+ml1q+*ggq+)2^n~{P%
zA?0Xb8xHu{7!O)!>lB7}p$yi}ilhU&q-;~lFYZA6MoA?oer(cWw&P!t3iZa;$9
z6`&Wg3Icg37+wq<(U7*O7iR*@{@>fI=`1Z~q|oC9BXD)Xb7TI)Lk{ePmh@rZ6tg3AixtBbG!)#m%<>o=D60>f*a8wd$QEbkLIZDYy1t)x+UTZ8TgDDFO2!PM{5%7
z`N2#DOxQZBeM>wfl41Y=Qs?2b<|O!3ShBA_1UxR=+6HeF8UbA}Xi7?5#xdL!noIXTx_u2FRo3_8(xo$_!EU^O{
z80Z_w^KwTp7(w!K$Y4;GEtLc*+jif*G3HjmFpwvywJo3k?ZQ^(_r330bCMCyGls1e
zFZPJpm?C={w|e!hK0=TSRkI5k8Jl?%P(`8C-&w0KQ$dN_rasCgVTw$LiJk;%q7Qt%8DZmK`Fbu}~0mu>6IWZtCWxHeMcA3|7}@a~~JKSrDwrv}do`&;|dzx;3ht^WOA{^|c&fB8TDkz4$a
zfBgG$H5Nr2puhDTNG;&NT*(%X7pjRsJfRx%0F(}3QqkiaT_QzCFgqgp`HkLGMt7Uf
zNj+qm>WNmwkD!R_5I}zwZo0qF%e&6kxoAPJGIQh9Hz&Q4Y1eNcSwV%J&6l5sNijAOi
zg)<@-$GDnyV+ekcIi8KOK-r}0Otu6GR{SIWoNrnE+UAT`jno+xe(LeI7O%*jt$i_l
ze-`KY%G3IQ=e3U#LHE_RWTA;`Y@BpAnLKT&8TmV`*WG;pTOpRz^5x01M}RW{$K@
z4(SlIzk7ZiG=OWts(CFU&;1jiV7ywW?U2cz@jL$c>BxSCfgC)&bi_7t@0ty7XY91k
zljKDM_|=f+>hsgya%5kvL-e0Y5X3n*v1c_H_^9ukXVrQG
zZ}l@9+K+=;0kX%7*6jeTYZ(e9%U
zVm4pZiurHU;_Y|E&DxEHkP_ch8!8*B&Ru`2{{DB)b>cov!?xlyC0%YhKf&!!W&2|6x
zdwtXwwA0tN9v4xTOm^43oXL6zfhAih=aO?hvE3)}ZNf8lyE22O%G!{n@u#CvA#btg
z7^!;9{0}y~jTkevDN3g$U^xs>2Y8i4}#B!Aj5
zdppaoGimY7XYL&wNqt;B$SoGkXGV$xfl+2xyRneQEWj7zoZWtJN@FLSP3d1lyV`J1
zj?(0rXKj70EoHBMFO86y=SmZ@&D##9V<~P*osr?XCrs>}R`_A*U)jwV!L*#d7zx(*mDRbZN3N!;
zNSZ{ojsCCgD^r>V0t{k`=}XXT5Z3ey;4ixTt$WR1{>Oj)r~mmM{_(&4*MF|R?*Cf<
z@4x=r&cFW4mjJ*2`0s!HKCc?oU
z=$Q!$0T$%?E^1S)H2uKO54xyiN+#XDk6Oc^=4|3eMrBr{Z|4N4f;0JeL`v|2SlrINUF~Y8
z=iTJ=&7Iv9b%n>h_94oJ`mjm-`<-nTPROB$yyTY-`yGj$*7keO%0ythZuO_?p7nt@
zCcphFJtBeoDPLugAtMo+w|M7QHM1f4t
zymy;U+6+7{IOJBlbFgg(Z3S%92}WS#O57hEQF*mQq`dCktf|D%L##3Sq4x>Bi)%-g
z;}}^tPG+@yuqLS~{;m$u&gY*=h#rz^(>G7j2R0>dBS;Is<%~P&3hr2U34)Z?kvhbB
zgi+Mu96Petek>KoM~OLOtV6g108F+?!YSGo4r@@PkKh-p|Fd^7?X%Sb7kp`P*F*LT^jqd533s%@
zwVUe3dfm}qOiersWF^OaUc6dI+Bxs3uwi1Hkaz&zkUt^tbFi{Xzdqg`!i<>RV)GM5~-ExDOi^||RKWo>`<
zXwc+h3nqO2y!X33kI&+A(cT5a
zZiavSB_gWihDW^lbG3!mt$8MRGcAa-#!oG`zF!)lE1t;;P@x@YM$2
z+1);q@yyut$zc|EFtRJ*5dS<_@SXOEmY==>tY41UQGCiz1JSI9kHLBC7Jo^R1?6rx
z=Clv>FsdbAy5k%KAyotd1!uF8>haF#QBA7(}}N#Z<3Zocli?vzqW}d
zT?_Jp2MaWoAnidQUf#(Ga&0R{!8;mHKm22TG`SNdkCHJ_Zrb`m$rxrD*h^@3(!)m_
zL8vJf1JP_4kF;(3oa(;^{xhh@KJoDuAM1IVg~I}H9kZKME;P#r4(zVB1H@8K{Gqx4
zH$ce0@m=NZOTeUJF~wZzgFk3|S%du?)DKQ;*zw-)Cp&Bo!bQIpZUib5Np*Jm8j^^BIe8*17@vJg
zhO^9|?W4Hys(j<=-g+98vX=AHA$~!|a=24(xBIPB+4;4CnlUoKXV&j0Yc^1099D3t
z6n7UbT@SJ`($dFRnuGF7Y;OQu2S=W{2Z(g~7grsBN)cjd49>A#?ucP@Tp74gX4qrS
z*)1^3eI~Y0{^#dEKN;vw5r^y{AJBJh_bHOH8<9Rz%NsUE_BY
z$G%a@%%FGrrq91?@P;_;V;gk;Joh1%FlPcr5r+H)wk+t+JsSAa7Iz-4>_tYq-_MFJ
zeULt>-FnNNYr4w(;%UsDwa?#;I}JeP?JdVKghub-;=4^hb0zJVZ)mk7Kn|KHR;I~h
zNT3t$6K2`!GTQLo$}I{WiNix_AD8FQMF+V}`vg#)9Y@rz`X?BJ2AacK21AMHOh(lj
z)^<%)2~@0k4+w^l+W~^luxp^hYwtPKSKspvkTew~XQ&wOr-luq80R-7yxl^G9bg8(
z5D5Sv4fzv{K|WC80DYK`qE231EGi^{IPsr`#09AkT~ah6=VK|bKsj@H>{@Sk??RYl
z;l8YdbS6_Igw&PG<>=%LD90xR;5D+}+rJwtH!!<32&|6i&t8rZQJt_+N3l(LED&&SDr{EGd^#1{m^y@Jt`?G$-X0j1GxOofM%w7W@A>N2~F-qYsZZjNWHzGdc|EV
zPOun$brJ>2fOh8q;{EygbW=rJR^S?7)R$19_vUCgOSp4PBp)h*WB{u7K5J&6BJ(ED4OKrACx3AG5e
zAeyGxf>X{Wfbwk^z*pxN+vfa&bAqaea$jR+7QY*36Ec0%m&UmH@m_UcCvUyAs_=Ync~11rW42E9
z%h+IG7Ps4&T)Uh$SUDGR_gh#w`IHC*7ww0?{$0T{OfUCkd5mFN?B63-bapkQU1ROg
zlt;bs#A*D-^Kg!MjBnGjLwJ+jWO-i9Z|AkK5u)Hwxhwo#gi=^ml8FTn2v|VgxAy(o
zd{BE9N-oq?nZHLi#>aXa)rA;(XYAdse1i!zv_bDqbIacN1a==hx5>HN^o_}j4Mn+5o)B<{#_uSOLaRhTGA@x58FvfyiT7eQ`Ly)N
zcsA{DWr6dk#H_B?#|bOC@%9c|erRP!7F3CX<6O77z$>Hrsl;Aie9qB5dB)DU&hHfR
zGw%Yh=VyERH(a|neZ5bYNNV$izzkWb%%y|9N_j8_=**#gJ@!P{dV;EwOhNSVF*ms5
z$k{A6dr+l^Dc2K*RPl&7{`39!bY8!;WE>fv!^*N++nT4`K?21*wiuFR8u5rF=j2`k
z=yY3KkxYSZYI9AQ_ClH~vTGupjEwZ$Pt_5Sq>j-C(9%5=-ulnq-)|`_gICn$31a4_
zcS_Xe0g0Y-B+u36-6^(R#yZw~w0K7;MKy{RvhU$?hFM$~GJL{igliQ5Yn>w~l0oeh
zM%CxFr$2vw)|dHb^1((u!~$r-0lu>CjW`U^bp=N+XQF%uhkG3vu%nS8wYz$<-17<+
zll$2kv?|p*&q_ZWm8a?Sd+jL38zoaB?RQQq|4rp&rjj!+l7LTPGW_nG=dC5~^=#PG
z4|y`1ECwmC)!MqZ!S4c$7W*2PxyH0tZQip$0>!Y>(qTVDw3G`jfUIO@TE8c5Ij$rof?<2M%j;qf`
zwMx|&G`NGBCfAT7%#eQGOfvEaycwKs#vp7?O{x))h#R)pM|7;FUv(>Ptf2U!xR1)9
zxg0>5uRk0E*~YXB2||Jc(&OlQl&4(O*&WmAz|O^D=j`9Vzqrt*--c|s<%$EDOUm=~
zv^bH^+GUI*C*R7WytU{zD=y;f&
zyx%$3&!eV(RdOXx+LsM0l?7nv=
z^7=P}3f{bamsjJObw|ferZL_-ER@kJfMw;|@fygfWy>(mnRxfL&su-0O8A%m^3VT|
z`;Y(juYdU;|6?|t|M!3YpZ@*d@|#cpz2oT#g!ite2?eDCE){9EZ1^f^tHx~C>2s=0
zuvFtEP|L{@0VgUoF9|I1^@DTXDyRL;q(ais^X5
z&Qrvt4qp;M?wzCWbG)0hl^kbG1Mp72(KiGq_e}0@BhYbT{#l?>tR(_ojWd}`;FQsv
zZIkxB-y>@1erKBM?~6ZG7k(zO-fT7(Y?fwq)SI!GY#1Lt@XVMuGWU+gm*ZfbMt3^e
zfivZ(FA;5yb%`HVJr1v`R{|d=;xD05j0f#&RIaSuf5(ukq)SYW1h+e4@4k5Z?zK?L
z&5b%8_o2%!9PfRNn2wgb(`{>ExtZgktfao=LpzG^G-pMu9o8Y-*cyj1m<(Bb4&K>NcyNt@zD5i=
z+t@*%j$_a|5ZKcWPXs|Bu--Q3rTz2uvJ?_7CIJLDW60^~+t>2dwxD*%lePvZU`O;i
zJC(cL_IYa%_98S4Y4&Ycedkk?x6zEy`bnBGm^@1L5&C}6{-qi4rnY|`Pfr?AHm-e{
z-Kwy@NV#4!cbf#10quX?L7)ITqs@GC#y5tbcP(#jejlq*FKGzWp&`z5_lDKSp5Ef-
z$Cm)fuXo=AfZ6j;2(FyDfpD{iy#4j%s`JFG`+(0n@u7KnMkxT8CcaUiZaZyKhdWCb
ztvH;bA}tenVKS~eCd96jLU6RnaF?cS?yW^sYTB^hNf#2p>$){tT!J@f&G$jU2|F}M
zcuhou{K;c#5wsPaoJ&IX@#<;=A@w^MOLxAuxn}EBfG^*(s9gdp<5HvYwZG=@hVgNJ
z9#4Ek-@(tnOve6TWR;Gbw)yMYw)HjG6*qq}HkaU&MGJ-E>|vHcrF(UxMMEA>fB@?#
z6txN~`SB*ITUXExOWY_ehWM!dd()W{4=kx}Il_9YE4jFqF!(g26RKEo`cjmq0nuW|
z<=lU+jW*BqMJqJ|)DEAbaa4Q>=uNJ8(6W-V(@ugVtoZ-9+sN!ck5?v6w8K@LuixP=
z>#D79u8JzmE@(cj&c;G#jlsW?9JyH2OQqfepyZKN3r-21R_
za)^r`7i6{HN!MUMBs5t#zw(fSTQSBRiiYfGh^cJ;R5%TP+35d
zy7SbEo;fIZ&m`8L%OlRO~0x0TQ=kzAeTp
zhGZ&rv^`J^2$7)Ta6|Z8!H@s;FaP@2zx*Hm$g}_JU;pkSHTcF5LD&U^>SiI+d`x?g
z3*4VW)w3p9@cqoPy2~CsQUREw#0kzf0Ihw_#{M+HFPse_SoXC38vm+Vs|p-sxb=4bdcwB%#LHXP
zwr{^-cHZWWG0{|?0&0+u+F7sQR`~fVy#xIMX=IY$CTCMLRd=s?YoiAiTYx0sCu1~m
zZ|5>8YNy``e7!o_RwiDf_dfPr8H)mlr>QL*BHa;b!!`gxF|?6KQ~&*yd`DmCd8h?%
za5$y8qd#d`3oPx5BO#|5ke4g9Wnz_F^(gAg^IkLxMR^N8nNZ#Fk{JDXJK4XaI|96l
zg_yjh@i*a(__wl9f9I9P_qK(ew6l-yL@ZCMXTH);J1M8n)A|}K+6Zp=2LN77M*q;g
z`hiq0Qy$g$^-#{hRrD*H|A)3{9q05{=bq7(^B@%X)&7<|;Qz-v_8(=z?;rl|?>1B0
z&=3AaiSsmUAJccwrtyvcgZg6K$aO`FIx1`r>L81NT0v4p6Y}Z>HeF6ct)DL&(g>+F
zh1Yh@IFbS!XTmKCxs3LHFRKM{9~3-z)pL+@#ea3-Ne_Q?i`CqK*=I^Jy&MQumNu|E
zAMH%8&Q5@|oMi;=?dwQTY%bfDlbZej&2J`9tT~nE`Bx#uMky|H#(fKxkfE2m2*6Mb|
zu>PQFBQMEOT{jQ$l($}DAUXc?F9x_%3Sjbf;K8-D#Xd%Dp}^%i`m|c@InOjBVd^&!
zOqn!Cfq3Y80Vi#y_)I>Oxk-Gn;Lq}%m3iA37mD*GE<%;WIn4epD+akC-q2<)!}B&f
z!NEL)3px&2_Loi^rls96zo)^NOk8%`ZyghvYYp?=Y=Z^KTX4;`5wgX*Y-?2H
zZE|3j-?#7ic}%$}a~Kp176EuF7H=lKQxm$8@s3IirK$DCK}4{)k72eZLt!s2$7&nG
zN*1EcV0qR0(yDcQ5QY(Soa;3tFiK6BVw7C@ooui>2h)d7;MvmJ@fFD^IXt>RWEhW*
zhRouEaE-FpC8rJ`F?d`*c<`PdVGFfR2f!n8v0V1T?L|DVk9uuS=$X^gOonJ+rZg3^sv63?YAi}lx{^V)}-L{5~T<;aC!<+y=Mrhe+_xRn-V_9-FKU|H*
zMxawZ#~HKlsPqpH6V7`^eBKu6<-920`A{$9O|v-If;P-iP4zTc62B^6DETp9KKJ(FLxDbxA0KS$=J1Vcrk^=$Gy#yVj0Lbi=Guz9NnSzR$YQb0Fsdw47HU0)y?
z3Y1|nBA9zWtkXVXVQKsM`E&L>0bPfptqwaw0_)8Lr&9X^{?<^#W-O?l_9F?^R$r}v
z3$H6JzY4P+HXM7)wVDa-1pXeQK4|#)q)x|4<^ywTN>=?IGYY}%geqa+w%$&L^|jVU
znNNRnTjl@+JY~gS&r!C&(ZtJ3->?O=9Nc?WaerCL7dY=kUt7
zCS~n+vK$PB^~B-4(y7N1OQIV|__`g$a&U=A_mTaKpdN>nmqGS8Kz|>|{Br}n>kUOVG=;;vvJ7G0!vN3o=*-9rLy!uFckGJ4cJum4dr
zNY}9us1uE`98QUSa+^`cbhF=GpBSykm&RzE%<+vg&&~xga>?C(hMKIOFU>mlX%r*Z
zBFW{gm#yxU4aR0#q4PArP7qJ4T}Ot?5nzWf)2*tt8=X@D3GvPW*GX1k0#~P68v>%}
z>RI=9f_Qm>a1QmCq*K3rp0V)PTFFox(GQ!=zqI0Z{?>LwV
z{tghR#-`D216AQDfU?tePbEvr>}z^w?P$R6Jrq5RA!22-KI{86b#A^rTZs0y8Mqv7Rvyr@{LM3u
z9Rw%nSUD51p8BXeW1R1@eA|I5s+6u#!!=j?G_o!`=`YSf{rmh01@Iwzely+an}rF`_=rKt{%z<7+-doCedmuV$LnloOM-{)APxNHWk65il|$Ymx!06A
zIrA@zpK}y82cWPR{6(OM$%H`y3P#M&7rmR$^_ou7ba3upbz+zdy`o`6Va))J9LPbf
zr-YJclfo6TUk|;};5GP}efs2O55%zY_n5oh7T$Vn^<^ekYZ(-uG4_#mqBk!JObtCt
zJE&QD>u_axLSca&gT2|=2$;rzah2c#i|1{&aW`M67ut00%}-@KP+oj&hx|@<{Sr9V
zqL~lYlGCBiI;CxxlyeGg+sf0jV2RHos>w}LmxHq4J(ujQrtUTZGxEut18
z-}&s3#c=>Sa^i5RSoY#nzRy1*_x@qf0{WTK*|qzTKcS{rFV<~LonmhFYt>%?LAvj?
z%r*80X*Ti+*5Wqd6BlNh^gRftty4>-uh|wXTUloZ-0SKu$9tQU!q_aPO^w`4ABv}P
zoZlA%?;(dD@b}IQ4CZeql$t5!Z`MM?^!dTA5~73i%ESjO_ndozq-zXEhFQEP8)jt3
zx{41)zsGB!pQmMZ#?WRrC@T)Jr@zk+XAaY7?3MQZ7=g7K@G$mh48omz81b9(KcY3d
z8iAXU%WzytZ!CnpWX;Feg=jf&W|mnKe%dYilxy|2dVed%lzAv{0?he2CjMfMM9`>fvqG7owDIIVQxp9?jNpF?3^bBHPYLymP@Pu$+EfpnGA*sg%DoIak?
z$kiS^(bu)t5A2h{bdd&T%()m!j03V#d)V8H&Q$(hlM6H@3DIKm=iBy>&oOnDgPn)A
z=c-R0kkItyZfFa4R!dq-yXX^T8_
zK5zR&V0nKxu3jWo4qw?r56#GZuhVUQE$`%cM`(BWJll|^5*gLY-n;u~EV|0}x6mtF
zr|Qu5i`6eorA2tCK7B5z6HV`O-famoneNTsn7{qyzvRFFYyHzd{pG*>XL9Z0&7oh4
zU7%>mPw?pIzMnswvCJzFjIB=^d4`{3(Fq_gRNW};-iPaww#O(|iI
zaqVw~p#JiI{^RrXU;p7B|N4*r@ZY|q!GGqHmFwGRM1v4mOEk$zO$C@jF;=W7y*iFs-PUb
z8@IKaKTk@x(YIWLwL9oC5F>JuEecdF%4o-t!_^51+%j6Cd~@Z|H1ZfVR{d0Dmz
zrE$GL?ahcLDT~z<%eVKrIv94%_rcZE+wYBu$h8NPA_~qpp$cArp7XpF`k%e0#f=c!
z_U-%Rj%?PqY_KtE9pb;l$=O*#_M8Z^t?$#<0VaPE0?O|i=k1o+IZwCSJ7FLbzaLBb-DDypp*bEcK%C85
zyK5j@m$+=!0cqmm{oRfJc%r#e@VA(+n|9Ajpm?t+odFC9lcPHc*j2_T3B3c66xnz+
zwkQ6jwi^rj2W*QT#cB+S{GBH{FC+KdQ9Ev%k0!&A^ZVz2I)7X=UF*Cg1kQbJj>aTQ
zJi9v|kas!+QT_?9=vIUWc8^q4G8%)Cru4^<9p255{$aAp4wmk1BQ;^VmCgI8YP<
z6wzYP9nQ*QJO}Agm-Fhvy1z+(#gZZkJjQsjV
zFf?oNmze>vRR-gBeb|uJtJ^{2OfFB=@4ab`0pd?^*!AG(Z@k3@lbj1pDbir}bCuk{
zx1M6)I|{W&DC&tKr1!R!X6|i1Vv07tC6x=H>bGq~c~}+t1!5a>6L9?tBewfj%$)7QhW}l>foIJbZi=
z7jfz?^Xe;x+isTS)8NTcW{EduwM}&n`(0~uKpSBD2={RvUp6wFN@{ak+MsbwDj&q@2u37e3=1*NvfV?WoeX=aHH-%U6!dBOGtSBe*WbC7?(P}ZAjiE2iicw)#j}M%K^JNVU>W(8oceqcJ243J?>yW4;NIH
z96Ycfc=@8j6LU6E@151{8`-xo%t`j1nM3Z+&!0X*^ceTaRR?@ZCx~Jd(a)$?XN~OH
zIYYeO&wq#yk3*EN>XYUDy*XGu0*Cfue0`29sIObDs=IM`!uGohqUjymx@8^H6
zg4Gbw9quo8>s+69$J><1X+|V?`R+U0BPG+TFI^4Vd7Iibp~Z5;)Z)ua
zP5Ee#xE3fcIJzAs^;d;)_fd-BZ+biL#P5yQWAesEuKhMCnX+$qDtf=+HDHgqdfVet
z2HG{D3~?Em`i|&mpEYewGmktI8s<82_g9-6)?*dra6)&ppDTb*fQ60+5aM?r-~`D#
z?&p?&^S)>`$rg_@0*(f;GiE{#rE9KxR>w-S1j!bX;vS>ca_LA8$Jwp-OE!F%c#gvS0yBCh#a;D8*=O~QB3Ihkhj_xn3b&`$ZTuCd}?BrazQ
z1_hB0)_$N{D-1$ldZ4bf;*8c+&*y~Ue<
zdfGGp-R(Y~5*;*j*&Nw?@U-jz4x!_?B>U9e5t_<+xY>IdZDGpX*`e)Htm%iR)kdza
zeY_Z-SM-+mbMwiT26O!MMg5PBbnun?y>TxLUum~2X}l-_=aCVWH|LhC3erCN2kp4I
zT3$J=t+Mv!4V3L!qjVn?A|p$bAqC6B;HZG36_M%m_buwzj0gmSyiIuVRje?Gr44S>Lt=T`62;Mfy1e@fwXCxut}qB6Eu12cAen!Z{=BQ^@WEuuJ#m^`?M>pf1tg`rY?;7R=4;494ezanMh(;I3r&
z^e70w*~iD0zDqpsiTntL1JY0SbHw+~_{@#rT??T%49%|-cLw7y#Y8E3bP}m^O`_TB
zcc8Ef(h@O{@w5fKobaB#_^%=RjIG`_`04b-*?@7O*xdxddmRPnD5(hnK9c?Q-b|%iFyboWv@N$D*
z$m7)P7Rj^emE{W6&K*<$HPZLq+l?XN{OoiU&^DXYIdgHEXl(*|_`NBE(5-h|s`gc-
zAD?7yM>7Qv-dp1=kdZnR=guCEr8xFv42}ASjr*h_M;=Rz>4KfJ#6P<1l)GNvK_X`O
z**)#tPRJNi(9b|g4CaupeDBykzbmBip$0ik-YoK82|~g;TP{l+Z&Z|4(Q-^mXzj+6`^hio=`t
zm7?s7SthRh4mXM!<&C%67r%sKJpm{IO^u0eKquh;J?G^_u6M?x@RuEcMd~ZhPidsWO=Hj5~cDHT+#HdTgtlbwmiamIy#{~%r
zn6-_Eq(=!+W1Gv|mL)CJPPT_*ae&d;ef++EnR4B~R(u=%98O(Mnl>W$?)M#e-Kmes
zI+ceqKg^i1*jb)j>ftApK*H!YJm=9l``a};Whcgvx-K4}%|0^P#bUdb1(%_plUk#3
z$~kx9-^d5(sB*vAz-KqZKxS57szIl|?vot)d)fv_12wf>DnkP?WQRMlyk1R)ig||b
z@&+6bt-)o2bT}M7Xq0cX-;>7s!xOVg`C1lOeoXIbK^H%tPh|jWF^AIa9ODpF9o3D|
z#hB9lr4j8rQz&v;C)#*wtWa#7l3z~%H`!S``dk@41(=lGpU)4guTve~_?#P4Q{hG2
zVfR#nG?n#?@1`N{Xd~vld?Rc!VmM)Zg5Cz?)MJ`9+w~|4tmoD+TX5&9ax_$2Z2HDb
zPvt6gzu)&SdY%xf;cc`g`#ZhSv0{&sO1wVa=yPC@d)W}wE?cz$G
zs#w407BBkde1;B@0yqY;UE8}*l!PYh@5DK=1Igyj3Ainr*vZHNK63Fm2j&DPhBL-p
zeNbQ862t$<#3lkQC3lPWio(5`F(r{zP91*RCPVOe+90t(^rd(BzVuf0_xt*ffyib>BvEq$~?59<|rNcOQ8ccWCbs&hGS%KSEyn_0^sqZht>U@tzp2yze{X
zW5n!+!YE(Z#SPDiv%GHLJoULFcAH#n>mXAfJ^CbeDd%kcFli1EJle
VP2l_d
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
7y?+?5P>Ur{d64Chbet
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