mirror of
https://github.com/luxfi/mpc.git
synced 2026-09-24 00:26:24 +00:00
mpc: recover airgapCommand reference in cmd/mpcd
commit 24b8a5d ("Fireblocks-parity gas station + smart-transfer +
fee-bump") added a reference to airgapCommand() in cmd/mpcd/main.go
without committing the supporting source. cmd/mpcd has not built on any
descendant of feat/canonical-intent-cto since.
cmd/mpcd/airgap_command.go is the operator surface for airgapped
hardware wallet workflows (Coldcard, Foundation Passport, Keystone Pro,
NGRAVE Zero):
mpcd airgap devices — list reserved provider names
mpcd airgap fips-check <provider> — verify FIPS 140 validation
mpcd airgap sign --provider X ... — drive a file-mediated ceremony
The signing ceremony is file-mediated: the challenge is written to a
working directory, the operator hand-carries the file to the offline
device via microSD or QR, and the signed response is dropped back into
the same directory. Polled until --timeout (default 30m) or context
cancellation. crypto/rand session IDs, 0o600 file modes, automatic
cleanup of the session's req/resp pair on exit.
The provider list is the canonical reservation already documented in
luxfi/hsm: coldcard, foundation, keystone, ngrave. In-process Signer
construction for these names is gated on a downstream luxfi/hsm release
that exports the airgap factory cases; until then this subcommand owns
the ceremony orchestration directly. The /v1/mpc/sign path is
unaffected.
FIPS gating mirrors the policy table in luxfi/hsm/factory.go:
RequireFIPSProvider — personal hardware wallets are never FIPS 140
validated and fail closed at provisioning.
Stdlib + urfave/cli/v3 only. No new module deps.
Build: cmd/mpcd builds clean on this branch.
Smoke: airgap devices / fips-check {coldcard,aws} all return correctly.
Baseline: pre-existing pkg/api regulator + pkg/custody json_extract
failures present on parent commit, unchanged by this diff.
This commit is contained in:
@@ -0,0 +1,288 @@
|
||||
// Copyright (C) 2020-2026, Lux Industries Inc. All rights reserved.
|
||||
// See the file LICENSE for licensing terms.
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"crypto/rand"
|
||||
"encoding/hex"
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/urfave/cli/v3"
|
||||
)
|
||||
|
||||
// airgapCommand returns the `mpcd airgap` subcommand tree, the operator
|
||||
// surface for working with airgapped hardware wallets (Coldcard,
|
||||
// Foundation Passport, Keystone Pro, NGRAVE Zero).
|
||||
//
|
||||
// The signing ceremony is file-mediated: mpcd writes the challenge to a
|
||||
// working directory, the operator hand-carries it to the offline device
|
||||
// via microSD or QR, and the signed response is dropped back into the
|
||||
// same directory. This file owns the ceremony orchestration; in-process
|
||||
// Signer construction for these devices is gated on a luxfi/hsm release
|
||||
// that exports the airgap factory cases.
|
||||
//
|
||||
// The subcommands here are intentionally narrow:
|
||||
//
|
||||
// mpcd airgap devices — list reserved provider names
|
||||
// mpcd airgap fips-check <provider> — verify FIPS validation status
|
||||
// mpcd airgap sign --provider X ... — drive a file-mediated ceremony
|
||||
//
|
||||
// Real key material never leaves the offline device. The host only sees
|
||||
// challenge/response bytes.
|
||||
func airgapCommand() *cli.Command {
|
||||
return &cli.Command{
|
||||
Name: "airgap",
|
||||
Usage: "Operator workflows for airgapped hardware wallet signers",
|
||||
Commands: []*cli.Command{
|
||||
airgapDevicesCommand(),
|
||||
airgapFIPSCheckCommand(),
|
||||
airgapSignCommand(),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// airgapProviders is the canonical set of airgap-capable provider names
|
||||
// reserved by luxfi/hsm. Adding entries here is a contract change — they
|
||||
// must round-trip through hsm.NewSigner once the airgap surface is
|
||||
// published downstream.
|
||||
func airgapProviders() []string {
|
||||
return []string{"coldcard", "foundation", "keystone", "ngrave"}
|
||||
}
|
||||
|
||||
func isAirgapProvider(p string) bool {
|
||||
for _, candidate := range airgapProviders() {
|
||||
if candidate == p {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func airgapDevicesCommand() *cli.Command {
|
||||
return &cli.Command{
|
||||
Name: "devices",
|
||||
Usage: "List supported airgapped wallet providers",
|
||||
Action: func(_ context.Context, _ *cli.Command) error {
|
||||
for _, p := range airgapProviders() {
|
||||
fmt.Println(p)
|
||||
}
|
||||
return nil
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// airgapFIPSCheckCommand surfaces the documented luxfi/hsm FIPS policy.
|
||||
// Personal hardware wallets (the airgap set, plus ledger/trezor/gridplus)
|
||||
// are NEVER FIPS 140 validated — operators preparing a FIPS-restricted
|
||||
// deployment must select a different provider. We fail closed so
|
||||
// misconfiguration shows up at provisioning, not on the first signature.
|
||||
func airgapFIPSCheckCommand() *cli.Command {
|
||||
return &cli.Command{
|
||||
Name: "fips-check",
|
||||
Usage: "Verify a signer provider is FIPS 140 validated",
|
||||
ArgsUsage: "<provider>",
|
||||
Action: func(_ context.Context, c *cli.Command) error {
|
||||
if c.NArg() != 1 {
|
||||
return errors.New("airgap fips-check: exactly one provider name required")
|
||||
}
|
||||
provider := strings.ToLower(strings.TrimSpace(c.Args().Get(0)))
|
||||
validated := map[string]string{
|
||||
"aws": "AWS KMS / CloudHSM, CMVP cert #4523 / #3380",
|
||||
"gcp": "Google Cloud HSM (Marvell LiquidSecurity), CMVP cert #4399",
|
||||
"azure": "Azure Key Vault Premium / Managed HSM, CMVP cert #4399 / #4153",
|
||||
"yubihsm": "YubiHSM 2 (FIPS firmware), CMVP cert #4148",
|
||||
"pkcs11": "validation depends on configured vendor library — verify CMVP listing",
|
||||
"kmip": "validation depends on configured KMS server — verify CMVP listing",
|
||||
}
|
||||
if cert, ok := validated[provider]; ok {
|
||||
fmt.Printf("OK: %s — %s\n", provider, cert)
|
||||
return nil
|
||||
}
|
||||
rejected := map[string]string{
|
||||
"local": "in-memory ECDSA, dev only",
|
||||
"mldsa": "ML-DSA / FIPS 204 module validation in progress (not yet on CMVP active list)",
|
||||
"tr31": "key-block adapter — backing KBPK must come from a FIPS provider",
|
||||
"nitrokey": "Nitrokey HSM 2 holds CC EAL4+ but is not FIPS 140 validated",
|
||||
"zymbit": "Zymbit SCM is not FIPS 140 validated",
|
||||
"coldcard": "personal hardware wallet, not FIPS 140 validated",
|
||||
"foundation": "personal hardware wallet, not FIPS 140 validated",
|
||||
"keystone": "personal hardware wallet, not FIPS 140 validated",
|
||||
"ngrave": "personal hardware wallet, not FIPS 140 validated",
|
||||
"ledger": "personal hardware wallet, not FIPS 140 validated",
|
||||
"trezor": "personal hardware wallet, not FIPS 140 validated",
|
||||
"gridplus": "personal hardware wallet, not FIPS 140 validated",
|
||||
"lattice": "personal hardware wallet, not FIPS 140 validated",
|
||||
}
|
||||
if reason, ok := rejected[provider]; ok {
|
||||
return fmt.Errorf("%s is not FIPS 140 validated: %s", provider, reason)
|
||||
}
|
||||
return fmt.Errorf("unknown provider %q", provider)
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// airgapSignCommand orchestrates a file-mediated signing ceremony. The
|
||||
// challenge bytes (PSBT for Coldcard/Foundation, UR-encoded CBOR for
|
||||
// Keystone/NGRAVE, or raw payload for generic flows) are written to
|
||||
// <work-dir>/<session>.req. The operator carries the file to the offline
|
||||
// device, signs, and drops the response at <work-dir>/<session>.resp.
|
||||
// We poll for the response file until --timeout or context cancellation.
|
||||
//
|
||||
// On success the response bytes are written to --signature-out (or hex
|
||||
// to stdout if unspecified). The work directory is cleaned of the
|
||||
// session's req/resp pair on exit.
|
||||
func airgapSignCommand() *cli.Command {
|
||||
return &cli.Command{
|
||||
Name: "sign",
|
||||
Usage: "Drive a file-mediated signing ceremony with an airgapped wallet",
|
||||
Flags: []cli.Flag{
|
||||
&cli.StringFlag{
|
||||
Name: "provider",
|
||||
Usage: "Airgapped provider: coldcard|foundation|keystone|ngrave",
|
||||
Required: true,
|
||||
Sources: cli.EnvVars("MPC_HSM_SIGNER"),
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "device-id",
|
||||
Usage: "Operator-facing device identifier (routes concurrent ceremonies)",
|
||||
Sources: cli.EnvVars("MPC_HSM_AIRGAP_DEVICE_ID"),
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "challenge-file",
|
||||
Usage: "Path to the challenge payload to sign (PSBT/UR/raw)",
|
||||
Required: true,
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "work-dir",
|
||||
Usage: "Directory used to ferry challenge/response files",
|
||||
Value: filepath.Join(os.TempDir(), "mpcd-airgap"),
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "format",
|
||||
Usage: "Wire format hint: psbt|bbqr|ur|json (advisory only)",
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "signature-out",
|
||||
Usage: "Path to write the resulting signature (default: stdout, hex)",
|
||||
},
|
||||
&cli.DurationFlag{
|
||||
Name: "timeout",
|
||||
Usage: "Maximum time to wait for the operator to return the signed response",
|
||||
Value: 30 * time.Minute,
|
||||
},
|
||||
},
|
||||
Action: runAirgapSign,
|
||||
}
|
||||
}
|
||||
|
||||
func runAirgapSign(ctx context.Context, c *cli.Command) error {
|
||||
provider := strings.ToLower(strings.TrimSpace(c.String("provider")))
|
||||
if !isAirgapProvider(provider) {
|
||||
return fmt.Errorf("airgap sign: provider %q is not airgapped (use one of %v)",
|
||||
provider, airgapProviders())
|
||||
}
|
||||
|
||||
challengeBytes, err := os.ReadFile(c.String("challenge-file"))
|
||||
if err != nil {
|
||||
return fmt.Errorf("airgap sign: read challenge: %w", err)
|
||||
}
|
||||
if len(challengeBytes) == 0 {
|
||||
return errors.New("airgap sign: challenge file is empty")
|
||||
}
|
||||
|
||||
workDir := c.String("work-dir")
|
||||
if err := os.MkdirAll(workDir, 0o700); err != nil {
|
||||
return fmt.Errorf("airgap sign: create work dir: %w", err)
|
||||
}
|
||||
|
||||
sessionID, err := newAirgapSessionID()
|
||||
if err != nil {
|
||||
return fmt.Errorf("airgap sign: %w", err)
|
||||
}
|
||||
|
||||
reqPath := filepath.Join(workDir, sessionID+".req")
|
||||
respPath := filepath.Join(workDir, sessionID+".resp")
|
||||
metaPath := reqPath + ".meta"
|
||||
|
||||
if err := os.WriteFile(reqPath, challengeBytes, 0o600); err != nil {
|
||||
return fmt.Errorf("airgap sign: write challenge: %w", err)
|
||||
}
|
||||
defer func() {
|
||||
_ = os.Remove(reqPath)
|
||||
_ = os.Remove(metaPath)
|
||||
_ = os.Remove(respPath)
|
||||
}()
|
||||
|
||||
meta := fmt.Sprintf("session=%s\nprovider=%s\ndevice=%s\nformat=%s\nbytes=%d\n",
|
||||
sessionID, provider, c.String("device-id"), c.String("format"), len(challengeBytes))
|
||||
if err := os.WriteFile(metaPath, []byte(meta), 0o600); err != nil {
|
||||
return fmt.Errorf("airgap sign: write metadata: %w", err)
|
||||
}
|
||||
|
||||
fmt.Fprintf(os.Stderr,
|
||||
"airgap: challenge written to %s\nairgap: drop signed response at %s\nairgap: timeout %s\n",
|
||||
reqPath, respPath, c.Duration("timeout"))
|
||||
|
||||
signCtx, cancel := context.WithTimeout(ctx, c.Duration("timeout"))
|
||||
defer cancel()
|
||||
|
||||
signature, err := awaitAirgapResponse(signCtx, respPath)
|
||||
if err != nil {
|
||||
return fmt.Errorf("airgap sign: ceremony failed: %w", err)
|
||||
}
|
||||
|
||||
if out := c.String("signature-out"); out != "" {
|
||||
if err := os.WriteFile(out, signature, 0o600); err != nil {
|
||||
return fmt.Errorf("airgap sign: write signature: %w", err)
|
||||
}
|
||||
fmt.Printf("Signature written to %s (%d bytes)\n", out, len(signature))
|
||||
return nil
|
||||
}
|
||||
fmt.Println(hex.EncodeToString(signature))
|
||||
return nil
|
||||
}
|
||||
|
||||
// awaitAirgapResponse polls the configured response path until it
|
||||
// appears, returning its contents. The ticker cadence is fixed at
|
||||
// 500ms — a stricter SLA isn't useful when the bound is human-mediated
|
||||
// minutes, and a looser one delays kiosk integrations.
|
||||
func awaitAirgapResponse(ctx context.Context, respPath string) ([]byte, error) {
|
||||
const pollEvery = 500 * time.Millisecond
|
||||
ticker := time.NewTicker(pollEvery)
|
||||
defer ticker.Stop()
|
||||
for {
|
||||
data, err := os.ReadFile(respPath)
|
||||
if err == nil {
|
||||
if len(data) == 0 {
|
||||
return nil, errors.New("airgap: response file is empty")
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
if !os.IsNotExist(err) {
|
||||
return nil, fmt.Errorf("airgap: read response: %w", err)
|
||||
}
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return nil, ctx.Err()
|
||||
case <-ticker.C:
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// newAirgapSessionID returns a 16-byte hex session identifier from
|
||||
// crypto/rand. Collisions across concurrent ceremonies are negligible.
|
||||
func newAirgapSessionID() (string, error) {
|
||||
const size = 16
|
||||
buf := make([]byte, size)
|
||||
if _, err := rand.Read(buf); err != nil {
|
||||
return "", fmt.Errorf("session id: %w", err)
|
||||
}
|
||||
return hex.EncodeToString(buf), nil
|
||||
}
|
||||
+131
-28
@@ -1,3 +1,5 @@
|
||||
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.6-20250425153114-8976f5be98c1.1/go.mod h1:avRlCjnFzl98VPaeCtJ24RrV/wwHFzB8sWXhj26+n/U=
|
||||
buf.build/go/protovalidate v0.12.0/go.mod h1:q3PFfbzI05LeqxSwq+begW2syjy2Z6hLxZSkP1OH/D0=
|
||||
capnproto.org/go/capnp/v3 v3.1.0-alpha.2/go.mod h1:2vT5D2dtG8sJGEoEKU17e+j7shdaYp1Myl8X03B3hmc=
|
||||
cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw=
|
||||
cel.dev/expr v0.25.1/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4=
|
||||
@@ -20,25 +22,139 @@ cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmW
|
||||
cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
|
||||
cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
|
||||
cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
|
||||
cloud.google.com/go/accessapproval v1.9.0/go.mod h1:GLlfSKe9gJN28w2CVfR9J8eWZgFruNutEU+GAx1iXHo=
|
||||
cloud.google.com/go/accesscontextmanager v1.10.0/go.mod h1:F6ajq/ZMZ0bYpOr3LRtBQrhI0l1i80Esg7b128YNVas=
|
||||
cloud.google.com/go/aiplatform v1.122.0/go.mod h1:Z0QhICmtYNxf0fbl/axHrVXCGcfdYuedH5NK+GwVu1I=
|
||||
cloud.google.com/go/analytics v0.31.0/go.mod h1:3nTQB3QiqS9Z07tbj+8Q2Yf9HQnSP256tkpwFilY7qs=
|
||||
cloud.google.com/go/apigateway v1.8.0/go.mod h1:G/+yRp7QCx2JDnw5awoCqpOOxeFS1EU2YU1kIip/0BE=
|
||||
cloud.google.com/go/apigeeconnect v1.8.0/go.mod h1:1SwzPtTk3T2nmEmYQB3vxO6kdSE22HGPOvoWIzyXjmg=
|
||||
cloud.google.com/go/apigeeregistry v0.11.0/go.mod h1:UR0cACaSYm2nocg3R6mKNBY83atd9pz1HqLADp40lF8=
|
||||
cloud.google.com/go/appengine v1.10.0/go.mod h1:IStRRjdbvxAesIPg8vWSCfz4SgEroFHyNZh2oYwoyOQ=
|
||||
cloud.google.com/go/area120 v0.11.0/go.mod h1:/Q8MRFwW+enSQrxsmrKZtEh+E+LuVh7Ytg3tCkzq2lw=
|
||||
cloud.google.com/go/artifactregistry v1.21.0/go.mod h1:IhMxwuMpzlVJjpTodjz1eZXMxvMxXS9/vgG5hbnYUz0=
|
||||
cloud.google.com/go/asset v1.23.0/go.mod h1:LTL+e6J4kc493wnt5uSlC3Dss+S6b9QgK5cBxjTghqw=
|
||||
cloud.google.com/go/assuredworkloads v1.14.0/go.mod h1:eSvUapoU9yH71+XZ4WNOXQAXqKj1X1xbPPudXGxDCbA=
|
||||
cloud.google.com/go/automl v1.16.0/go.mod h1:01pqJU9T8xQ6JW4zcP9zgtnKLDugRrtJrO5Mcl5S0rg=
|
||||
cloud.google.com/go/baremetalsolution v1.5.0/go.mod h1:e4+LWVqGObMTL1R6HVqWNA+Km32H/qvf573xB47T+bM=
|
||||
cloud.google.com/go/batch v1.15.0/go.mod h1:/3beOUtaLJChD59xNgCgXxEeXrtv5EDLMzUVYr9aiqo=
|
||||
cloud.google.com/go/beyondcorp v1.3.0/go.mod h1:8yO8ZZOF8ZNfRHcQ1nB6PjZx+9f9ey38uKcQZcM4VSA=
|
||||
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
|
||||
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
|
||||
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
|
||||
cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
|
||||
cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
|
||||
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
|
||||
cloud.google.com/go/bigquery v1.75.0/go.mod h1:zNCHWok+hfTgKCwNqT+V7GH/YmFFgZqjzljKCZBJTWc=
|
||||
cloud.google.com/go/bigtable v1.45.0/go.mod h1:Ztklmotutn5zkAYzsn2w8ye8wvy+azwyGwYmujW5JHg=
|
||||
cloud.google.com/go/billing v1.22.0/go.mod h1:nQVTVqWyw8YK0QScVV1pXr9KrvjvM7cabIQr6tLJMys=
|
||||
cloud.google.com/go/binaryauthorization v1.11.0/go.mod h1:2GBJK67zdEkeXGpnHYDXa21cngrYL99jR+Z688gom5c=
|
||||
cloud.google.com/go/certificatemanager v1.10.0/go.mod h1:dfJSJnWK2wgw2BTQ5oaAalombcajsviqsA6liniLL/U=
|
||||
cloud.google.com/go/channel v1.22.0/go.mod h1:Eodq1pGB6UnpVB622T0NGf2qvW9aJYGqaojcW8IS6UU=
|
||||
cloud.google.com/go/cloudbuild v1.26.0/go.mod h1:gKgjpgxUSqlX4TLVPoCYYAskEtHdbNpnTMEL2vUMT1s=
|
||||
cloud.google.com/go/clouddms v1.9.0/go.mod h1:O0P8OX8QBK0UFlDJx+Xd32aHi3qltjel4q67YyZPJIg=
|
||||
cloud.google.com/go/cloudtasks v1.14.0/go.mod h1:mFzsLKuM4gzzmlbu1363510Fjm5ZJR+8mH1C2w5roJo=
|
||||
cloud.google.com/go/compute v1.58.0/go.mod h1:5/1KiFDIdFPcx/Fw6pFQpcQaBGc6MGtgSfczeLFBj7o=
|
||||
cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k=
|
||||
cloud.google.com/go/contactcenterinsights v1.18.0/go.mod h1:uvgwG1ey82pNIxZ6r4gfu0bZZ+EiVdUqxKa7b/Ilw+A=
|
||||
cloud.google.com/go/container v1.47.0/go.mod h1:ySZKwTx9fTEqo1YiWN09SrM96a/dgpxXsi1tEzWGQd0=
|
||||
cloud.google.com/go/containeranalysis v0.15.0/go.mod h1:CgPFsUrNm5vZDlxW4DBdeYTW9KVtZVJLzHOtERyuEVc=
|
||||
cloud.google.com/go/datacatalog v1.27.0/go.mod h1:YTI11pFlC5HCj4CphEf+qWCy/z9udd7o0HVN6c2Povg=
|
||||
cloud.google.com/go/dataflow v0.12.0/go.mod h1:jcNeMiDW4pVYYKLi4jFkJmPwtq2A8OIF0CCqoh9K6yI=
|
||||
cloud.google.com/go/dataform v0.15.0/go.mod h1:buNB3+hgOk+RhmONRw13Mk7uqANhRYGJOUVWDx63PtM=
|
||||
cloud.google.com/go/datafusion v1.9.0/go.mod h1:sJzQ3KEt3pVmQzlO1RDnujdf5gB2agNzlKt0svOEj40=
|
||||
cloud.google.com/go/datalabeling v0.10.0/go.mod h1:2JlC6SFzPXTAjK8XSbdeRJYLjk6QV4+AyCxJZlc4Ju4=
|
||||
cloud.google.com/go/dataplex v1.30.0/go.mod h1:GgV6b+1viq2nMtr+AUzKNUbaR+tKGxdhVaMN8TPPu0w=
|
||||
cloud.google.com/go/dataproc/v2 v2.17.0/go.mod h1:lUY58QBxs6IIScAo9ZZKSOxx3imkHBxz6dow9f4fSRM=
|
||||
cloud.google.com/go/dataqna v0.10.0/go.mod h1:TJ6nt/jAilxNYzzbPMa4CsxO+l/9glfiNYb0Oarbvho=
|
||||
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
|
||||
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
|
||||
cloud.google.com/go/datastore v1.22.0/go.mod h1:aopSX+Whx0lHspWWBj+AjWt68/zjYsPfDe3LjWtqZg8=
|
||||
cloud.google.com/go/datastream v1.16.0/go.mod h1:9gPqghndibXcAXA7Y+PdbkoyTkGT95UbuoXk1vNdt1g=
|
||||
cloud.google.com/go/deploy v1.28.0/go.mod h1:1x7W4Ql3uvz/1ljPTxES33/D4ss8ro/Q5pyhOzXaXvA=
|
||||
cloud.google.com/go/dialogflow v1.78.0/go.mod h1:H+SCvWiah4SNalfbG9P4wGYaxlyemLa8OFD/ljKSlRA=
|
||||
cloud.google.com/go/dlp v1.30.0/go.mod h1:HVcPCYTniHItHfk8LqepllS6fGE0hmYCtGHvQE+wSpU=
|
||||
cloud.google.com/go/documentai v1.44.0/go.mod h1:ePqAOw0PvlezPoysTeP7TImdSzx52lErU3k1f4LrxWM=
|
||||
cloud.google.com/go/domains v0.11.0/go.mod h1:jvi1QTJYy1w14K+3nBYjYJPaTHi1Zuv0y8wQkFqV8AE=
|
||||
cloud.google.com/go/edgecontainer v1.5.0/go.mod h1:5iCEsaMo8lw6wwJzt33fyfxKqpm/r1iMoXyFzAG9kHQ=
|
||||
cloud.google.com/go/errorreporting v0.5.0/go.mod h1:l7UT6tcjSmR37Pn8TjSrKYtoiPyOMAmWuCceowHMY+w=
|
||||
cloud.google.com/go/essentialcontacts v1.8.0/go.mod h1:/nlPxHm9vyDSZyWHB1CQYkRV44VEp8VjPlqoeGweApE=
|
||||
cloud.google.com/go/eventarc v1.19.0/go.mod h1:xO4c0cMGNC47wZPJVe7gpABvOLJF+Wt6ze2n6KM70ak=
|
||||
cloud.google.com/go/filestore v1.11.0/go.mod h1:SOM0F8N/VIQaI8/KLbc1evVqX8S9KQmGdLYuj9HaQns=
|
||||
cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
|
||||
cloud.google.com/go/firestore v1.21.0/go.mod h1:1xH6HNcnkf/gGyR8udd6pFO4Z7GWJSwLKQMx/u6UrP4=
|
||||
cloud.google.com/go/functions v1.20.0/go.mod h1:TW6jT0+yQsnI9ICkhJfz7HDFzdwtTaTOlKi1c9wQTqA=
|
||||
cloud.google.com/go/gkebackup v1.9.0/go.mod h1:Rzxd7vr7h5Tsr9VHnexiK5LtFKGc+4LHRN9KI1osGXU=
|
||||
cloud.google.com/go/gkeconnect v0.13.0/go.mod h1:C06HGlhVhE6Og1QA9hQRO4wLyxItldAnq16kIQpG/ws=
|
||||
cloud.google.com/go/gkehub v0.17.0/go.mod h1:PAznKTCcvzLy2cJVb+tulfwaQUABlhYYRw5r3hMsgAI=
|
||||
cloud.google.com/go/gkemulticloud v1.7.0/go.mod h1:Cei8ayrpfxRDivJLCiQbFvmieBTldPf9sAd5vYdVvWI=
|
||||
cloud.google.com/go/gsuiteaddons v1.8.0/go.mod h1:iObYcSP07RXsRaflrKn/o6hQ+Ygzem3Nd9PovowChAg=
|
||||
cloud.google.com/go/iap v1.13.0/go.mod h1:/EMWDLYdDGelUxucj9drtP8SyY1L1RfzbqeUnWCoaNA=
|
||||
cloud.google.com/go/ids v1.6.0/go.mod h1:mSTbYgnZUQM3triYR96y+m07C4i7bAkMEZYbwDyTSTg=
|
||||
cloud.google.com/go/iot v1.9.0/go.mod h1:Yj14ToMHIR2+IIdoWY2ziYNKbFnrlV/YahmcFhxWQlQ=
|
||||
cloud.google.com/go/language v1.15.0/go.mod h1:4Q+axu8ZalG3KQKuoDisLKMoTxaM51fLOwLNOR8R4I4=
|
||||
cloud.google.com/go/lifesciences v0.11.0/go.mod h1:LIgB118ExLb5A4MwPuMB9U1i5S6vIa6D4aVz6iXhScQ=
|
||||
cloud.google.com/go/logging v1.14.0/go.mod h1:jmI+Try/fZeOTOAer3wVYOuPf9WX9PyzhlSDoBAi4HM=
|
||||
cloud.google.com/go/managedidentities v1.8.0/go.mod h1:/YZXzgEYRzmYa/wLWr+5/2hXhg6wTJolpSCCoDDQ6II=
|
||||
cloud.google.com/go/maps v1.31.0/go.mod h1:mWhSlc7r3FdTfh+9grRnmAy24yoHzQHSd9qPGeWFFe8=
|
||||
cloud.google.com/go/mediatranslation v0.10.0/go.mod h1:zNtvcd8C5YEX7nW9dX0mOa4upqmzu8DGpuzgvvXb7mE=
|
||||
cloud.google.com/go/memcache v1.12.0/go.mod h1:LfD72uuBN2xkj307WIFn4am3x4nsfKoADA7sL5Ww2KU=
|
||||
cloud.google.com/go/metastore v1.15.0/go.mod h1:iKjrQqKUFc5yw0VVQjh/rHU3ASW4GAQpSXqhMPn2cXQ=
|
||||
cloud.google.com/go/monitoring v1.25.0/go.mod h1:wlj6rX+JGyusw/8+2duW4cJ6kmDHGmde3zMTJuG3Jpc=
|
||||
cloud.google.com/go/networkconnectivity v1.22.0/go.mod h1:E7lmnd1M04GM6ZjZPtWqYUWsJX40uHYlYpvqKJ5weqU=
|
||||
cloud.google.com/go/networkmanagement v1.24.0/go.mod h1:rbVzje/eG7/w+iWIdbNMT25dU/89rA91X2iqI4cRniY=
|
||||
cloud.google.com/go/networksecurity v0.12.0/go.mod h1:/xkjQdYYGHZGlpE+kF43RMJFx2Ak5FcUXEYXkBzuWHE=
|
||||
cloud.google.com/go/notebooks v1.13.0/go.mod h1:ODeLG8Kzaxsh/jaQVGRzPj/5qTyrxetHfp4qBp4IytU=
|
||||
cloud.google.com/go/optimization v1.8.0/go.mod h1:JjunBI7Gg+rI1kOu5Qhtk8xetbLKeAsRcxpOelFL1HQ=
|
||||
cloud.google.com/go/orchestration v1.12.0/go.mod h1:z5NJIg6gM6mDcvnjNeUXhQYr08cBCeuQ3l3OCedGZ1A=
|
||||
cloud.google.com/go/orgpolicy v1.16.0/go.mod h1:l88jhhDM/KYN0FJF87m5Gub1qcOFkN94efA2uhy+U0s=
|
||||
cloud.google.com/go/osconfig v1.17.0/go.mod h1:iveYW1fYygItJeJwbQ/fkzYAzLEbXOQnr7+eBmH9MJ0=
|
||||
cloud.google.com/go/oslogin v1.15.0/go.mod h1:hZPTJtRwb0f2SNvqOVqb2QoF6z1C1s6yvSx23jUnnFk=
|
||||
cloud.google.com/go/phishingprotection v0.10.0/go.mod h1:6SxFjbwfY0UPbX8px45qFuejcqo6xaLliYBqnSNUYQs=
|
||||
cloud.google.com/go/policytroubleshooter v1.12.0/go.mod h1:9YkZq/rC3wMBmBW3bhPux8haEss0t0C8e1xxs1kawws=
|
||||
cloud.google.com/go/privatecatalog v0.11.0/go.mod h1:2Y+RuSNZWsM+tfHVI0/Lx0AbRW5jsliIr771Z/vvR/0=
|
||||
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
|
||||
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
|
||||
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
|
||||
cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
|
||||
cloud.google.com/go/pubsub v1.50.2/go.mod h1:jyCWeZdGFqd4mitSsBERnJcpqaHBsxQoPkNvjj4sp0w=
|
||||
cloud.google.com/go/pubsub/v2 v2.5.1/go.mod h1:Pd+qeabMX+576vQJhTN7TelE4k6kJh15dLU/ptOQ/UA=
|
||||
cloud.google.com/go/pubsublite v1.8.2/go.mod h1:4r8GSa9NznExjuLPEJlF1VjOPOpgf3IT6k8x/YgaOPI=
|
||||
cloud.google.com/go/recaptchaenterprise/v2 v2.22.0/go.mod h1:3jHDVYA4b/hlrISmTYjk4cXZWZLk4PenhH+NyrlYhRQ=
|
||||
cloud.google.com/go/recommendationengine v0.10.0/go.mod h1:548mK1fxhG12vg4kHrLfWKX9BC7fsq2udo1YsED4L2s=
|
||||
cloud.google.com/go/recommender v1.14.0/go.mod h1:21EuILd1jr+9X/aHcf7it+nWvB6VH+/ALz2vPqm4Dog=
|
||||
cloud.google.com/go/redis v1.19.0/go.mod h1:vdL4FIUmY5DFGORAb/iBrpJWoWxygEpT9Ls8wK+8bsk=
|
||||
cloud.google.com/go/resourcemanager v1.11.0/go.mod h1:jBdKCDtskipgmN1BC9wJnBzlGG7HpVIQ60cT9LEMgeQ=
|
||||
cloud.google.com/go/resourcesettings v1.8.3/go.mod h1:BzgfXFHIWOOmHe6ZV9+r3OWfpHJgnqXy8jqwx4zTMLw=
|
||||
cloud.google.com/go/retail v1.27.0/go.mod h1:aDziApdysNZudAlkRvbPv4pdPwR/hc3sPsYWCpeJOnc=
|
||||
cloud.google.com/go/run v1.17.0/go.mod h1:24NIu/ueXZFL3OyKJfkhp1j3VJDAEukuclpBSiL9pa0=
|
||||
cloud.google.com/go/scheduler v1.12.0/go.mod h1:A11HxINAugN6GqEYx36OVcc78dL6UHTT+1YXPZj2KBI=
|
||||
cloud.google.com/go/security v1.20.0/go.mod h1:a/4VUEX2QdSolTbtqlNoCGGyBHc198XEvvBtaM14SKM=
|
||||
cloud.google.com/go/securitycenter v1.40.0/go.mod h1:zxPwtKVAu6kBRQDYWFi6MdDmT72mI/N4CdTs77ktCjQ=
|
||||
cloud.google.com/go/servicedirectory v1.13.0/go.mod h1:W1BVLsabUKHRkU/pVf1xY7v4JRIfZ7ly6+GoJyoCOeQ=
|
||||
cloud.google.com/go/shell v1.9.0/go.mod h1:baiOHQUhZxzUL3DhLDdE0F9puPPmubxtTRfsgL96WpQ=
|
||||
cloud.google.com/go/spanner v1.89.0/go.mod h1:okNuxnp1wdPaVoM5M28Al2irKZLkHhZ2Z+DW6/ZJWGw=
|
||||
cloud.google.com/go/speech v1.31.0/go.mod h1:8U80+TvXb17d7L/5jDLC3BGGKTrVqR7jFX0SvTkXs30=
|
||||
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
|
||||
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
|
||||
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
|
||||
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
||||
cloud.google.com/go/storage v1.56.0/go.mod h1:Tpuj6t4NweCLzlNbw9Z9iwxEkrSem20AetIeH/shgVU=
|
||||
cloud.google.com/go/storagetransfer v1.14.0/go.mod h1:AXV3Zq+8CDDYa5VlFB4xCnve/LnuHRnCKh2ZP8bVFm4=
|
||||
cloud.google.com/go/talent v1.9.0/go.mod h1:NW4daUY2mJAFrQ5C5+LrR+RoOyHgjQXKXDhhMxvpe9w=
|
||||
cloud.google.com/go/texttospeech v1.17.0/go.mod h1:qXUktcF2pHd2Gh9GcY2NFEtZPnIeC+kKVPC3wes7LSk=
|
||||
cloud.google.com/go/tpu v1.9.0/go.mod h1:MeJ0QXume/iLq+DEk9LcD62l6HynG5KZdW38pOkF7RU=
|
||||
cloud.google.com/go/trace v1.12.0/go.mod h1:TOYfyeoyCGsSH0ifXD6Aius24uQI9xV3RyvOdljFIyg=
|
||||
cloud.google.com/go/translate v1.13.0/go.mod h1:gNfroOEKGH2eAu1hm24Ex8E4e2bTiUDkWZWsfuMVGj0=
|
||||
cloud.google.com/go/video v1.28.0/go.mod h1:ZjAJB+69e6A8fTr9ut+agY8gyWQP4+L+DLgSLO14RqE=
|
||||
cloud.google.com/go/videointelligence v1.13.0/go.mod h1:jZ25omw+UDsubcHHyzKFR/h1lb+6NrqCoFTaN2rAtD0=
|
||||
cloud.google.com/go/vision/v2 v2.10.0/go.mod h1:zyF6oZkvg4S0yCPAUcCVLKs+x2xqTBU0w1CI9+dlTA4=
|
||||
cloud.google.com/go/vmmigration v1.11.0/go.mod h1:C8eGJ9LJE6KSInDCLQY349NK2KpebPIaahR/fin/xJQ=
|
||||
cloud.google.com/go/vmwareengine v1.4.0/go.mod h1:fuz8B0EIb8CwioqmBSRCTZ4MQDT94Q0OiF4pPE/57Uc=
|
||||
cloud.google.com/go/vpcaccess v1.9.0/go.mod h1:AYFkpistDjSc9FooHo3ezICbRsDoIyyoAbeXD1rDFOE=
|
||||
cloud.google.com/go/webrisk v1.12.0/go.mod h1:oLNOZ1L/abccgx/OHi6us3YKHTsxYZKYd4eWv+hyvJQ=
|
||||
cloud.google.com/go/websecurityscanner v1.8.0/go.mod h1:2FS2WQ+RaL6O3/HaGBl9JHkSbhKLRulmRNEHRS15Plw=
|
||||
cloud.google.com/go/workflows v1.15.0/go.mod h1:2UOYVoNLYsroRbG3Ok6eBliFPThf5ronyqlD64NFLx8=
|
||||
codeberg.org/go-fonts/dejavu v0.4.0/go.mod h1:abni088lmhQJvso2Lsb7azCKzwkfcnttl6tL1UTWKzg=
|
||||
codeberg.org/go-fonts/latin-modern v0.4.0/go.mod h1:BF68mZznJ9QHn+hic9ks2DaFl4sR5YhfM6xTYaP9vNw=
|
||||
codeberg.org/go-fonts/liberation v0.5.0/go.mod h1:zS/2e1354/mJ4pGzIIaEtm/59VFCFnYC7YV6YdGl5GU=
|
||||
@@ -71,6 +187,8 @@ github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwS
|
||||
github.com/DataDog/zstd v1.5.7/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw=
|
||||
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.30.0/go.mod h1:P4WPRUkOhJC13W//jWpyfJNDAIpvRbAUIYLX/4jtlE0=
|
||||
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.31.0/go.mod h1:P4WPRUkOhJC13W//jWpyfJNDAIpvRbAUIYLX/4jtlE0=
|
||||
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0/go.mod h1:ZPpqegjbE99EPKsu3iUWV22A04wzGPcAY/ziSIQEEgs=
|
||||
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0/go.mod h1:cSgYe11MCNYunTnRXrKiR/tHc0eoKjICUuWpNZoVCOo=
|
||||
github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
|
||||
github.com/Joker/jade v1.1.3/go.mod h1:T+2WLyt7VH6Lp0TRxQrUYEs64nRc83wkMQrfeIQKduM=
|
||||
github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
|
||||
@@ -99,6 +217,7 @@ github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHG
|
||||
github.com/andybalholm/stroke v0.0.0-20221221101821-bd29b49d73f0/go.mod h1:ccdDYaY5+gO+cbnQdFxEXqfy0RkoV25H3jLXUDNM3wg=
|
||||
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
|
||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
||||
github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
|
||||
github.com/apapsch/go-jsonmerge/v2 v2.0.0/go.mod h1:lvDnEdqiQrp0O42VQGgmlKpxL1AP2+08jFMw88y4klk=
|
||||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
||||
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
||||
@@ -328,6 +447,7 @@ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Z
|
||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
|
||||
github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
|
||||
github.com/google/cel-go v0.25.0/go.mod h1:hjEb6r5SuOSlhCHmFoLzu8HGCERvIsDAbxDAyNU/MmI=
|
||||
github.com/google/flatbuffers v25.2.10+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
|
||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
@@ -338,11 +458,13 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
|
||||
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-pkcs11 v0.3.0/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY=
|
||||
github.com/google/go-querystring v1.2.0/go.mod h1:8IFJqpSRITyJ8QhQ13bmbeMBDfmeEJZD5A0egEOmkqU=
|
||||
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
||||
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
|
||||
github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
|
||||
github.com/google/martian/v3 v3.3.3/go.mod h1:iEPrYcgCF7jA9OtScMFQyAlZZ4YXTKEtJ1E6RWzmBA0=
|
||||
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
@@ -382,6 +504,8 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.4/go.mod h1:6Nz966r3vQYCqIzWsuEl
|
||||
github.com/gtank/merlin v0.1.1-0.20191105220539-8318aed1a79f/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s=
|
||||
github.com/gtank/ristretto255 v0.1.2/go.mod h1:Ph5OpO6c7xKUGROZfWVLiJf9icMDwUeIvY4OmlYW69o=
|
||||
github.com/guptarohit/asciigraph v0.5.5/go.mod h1:dYl5wwK4gNsnFf9Zp+l06rFiDZ5YtXM6x7SRWZ3KGag=
|
||||
github.com/hanzoai/kms/sdk/go v1.0.0/go.mod h1:kPPvEuE3K+fcOY+S6hiNO8nffxDNChvC1Uc4fR5Y+xk=
|
||||
github.com/hanzoai/tygoja v0.0.2/go.mod h1:o+poSPLJ5S3SMtdz7gJHaL/6P6tjGBZcfQMl0SUIBr4=
|
||||
github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
|
||||
github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
|
||||
github.com/hashicorp/go-bexpr v0.1.15/go.mod h1:HGKbAByHn2aJWUV47gL7+IjLK79iU3EZIbOwCXJZLoE=
|
||||
@@ -418,6 +542,7 @@ github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq
|
||||
github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
|
||||
github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8=
|
||||
github.com/hydrogen18/memlistener v1.0.0/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE=
|
||||
github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho=
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20250417193237-f615e6bd150b/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw=
|
||||
@@ -472,14 +597,10 @@ github.com/luxfi/address v1.0.1/go.mod h1:5j3Eh66v9zvv1GbNdZwt+23krV8JlSDaRzmWZU
|
||||
github.com/luxfi/ai v0.0.0-20251225021023-3f15131f2bd1/go.mod h1:4+FVvnCo1QqM3NaVUte0da4zgH2IblVLmUxKQi0BwE0=
|
||||
github.com/luxfi/api v1.0.1/go.mod h1:N2Ymyqo3SoB6/DmPXRV6W377k2qNqZujSP/B8fbIB9U=
|
||||
github.com/luxfi/atomic v0.0.1/go.mod h1:UzFk1K7VXjJhjm2c4Yiu5HydKbWi36kFtrlDKbm8MG8=
|
||||
github.com/luxfi/atomic v1.0.0 h1:xUV60MuzRvXngaQ1sM0yVC2v4TRoLlUGkkH7M9PS4yw=
|
||||
github.com/luxfi/atomic v1.0.0/go.mod h1:0G2mTlQ6TXWHICUHrUUPu1/qAiIyR4gSZ2tva9ci/bI=
|
||||
github.com/luxfi/bft v0.1.0/go.mod h1:IUT167Erk2h8z36197Yrmu/3CBIsZku5WlEG8O2NMp4=
|
||||
github.com/luxfi/cache v1.1.0/go.mod h1:9GvlEEE9rFPaaWxvVpSPwW8ZMo2+8VMNNcuPa4AwzPg=
|
||||
github.com/luxfi/cache v1.2.0/go.mod h1:Esn48WMB3JL/+UOdCEV2Chyjr1MG3SSckXWLhB/P080=
|
||||
github.com/luxfi/codec v1.1.2/go.mod h1:T+DV0Jau5bi+8wMcaoj51zS1rgt80VovQKzaN2CV5Mg=
|
||||
github.com/luxfi/codec v1.1.4 h1:Yl8ZalMNkqo7cD6R9AjczAajkLOmsjyZ9+DASVYHrvg=
|
||||
github.com/luxfi/codec v1.1.4/go.mod h1:oGQ3j6E8c2P0pL0irYtWkrB1hmDUFIE0puXHK4gV5KI=
|
||||
github.com/luxfi/compress v0.0.2/go.mod h1:cfa7L3STdZdsMwJc9faZML1modLNh1n2u72n/DOfuNU=
|
||||
github.com/luxfi/compress v0.0.4/go.mod h1:/eN0eca98igoE6DDsLv/4w7n1gsQKwa+HUTxmWz/iWw=
|
||||
github.com/luxfi/concurrent v0.0.2/go.mod h1:SwEDrQXVAXgBiObXVg0pfmLzU1xsa9ZeBRptkBdyNUU=
|
||||
@@ -492,8 +613,6 @@ github.com/luxfi/consensus v1.22.62/go.mod h1:sEAGM6n/tGXx7Sd5d7F22862rqT8n2y+Z1
|
||||
github.com/luxfi/consensus v1.22.67/go.mod h1:mUffRVhwE3zz8bHwAIXT0xSroqOceszepHl8Tp6GwrI=
|
||||
github.com/luxfi/const v1.4.1/go.mod h1:qWfecjdImPY3kXsy3UAe4ZVpMcsp2/iUlHwUMPVREoI=
|
||||
github.com/luxfi/constants v1.4.2/go.mod h1:xk+0eA7UY1GkHrmI7yqR+9LDe4TUe3p1VfRvs6cJbNM=
|
||||
github.com/luxfi/constants v1.4.7 h1:e/Qs+DQP3pugle3Zncq6fZCxKgqqtbyD/z7Gm4ZjsYg=
|
||||
github.com/luxfi/constants v1.4.7/go.mod h1:hOszZ2NDQ8gMZKncfcZ67PXkb5OIbnwAzXC3oFbQwW0=
|
||||
github.com/luxfi/container v0.0.2/go.mod h1:nnK+TxHmGry0mGnfun4jx0tLqWJgV/GbZXTETMuFJn4=
|
||||
github.com/luxfi/coreth v0.15.71/go.mod h1:Z/OTRrw+q+uSNrCh1Fg0hkMf1fRquzbTQelx7wR0HOM=
|
||||
github.com/luxfi/crypto v1.17.28/go.mod h1:v6eaW5ejuzW2gecChWKQqx4CtVhoM1b+e40ro/6WVPg=
|
||||
@@ -501,28 +620,20 @@ github.com/luxfi/crypto v1.17.36/go.mod h1:UHzltsXPDF/tGcmTiL/DbkClAflr3YmvOaXlw
|
||||
github.com/luxfi/crypto v1.17.37/go.mod h1:vu+pCHdyPQZULzrA+K+lTFYrg8vOtNdu+/5Vko8RzZ0=
|
||||
github.com/luxfi/crypto v1.17.38/go.mod h1:G2t1GQvPsrwnzwyVEj0LQDuX2AWZVI5kEAPyVeicc5o=
|
||||
github.com/luxfi/crypto v1.17.39/go.mod h1:mChLWmW4CLR1wAN6CeJTveCzUv0DTzGQnYgq01x3W0U=
|
||||
github.com/luxfi/crypto v1.17.45 h1:uGK0y4+aLipE/M0YIQ5hcsWv0ZG0E4cPv03a94K/eLE=
|
||||
github.com/luxfi/crypto v1.17.45/go.mod h1:GnAkhQ7HNs3X0Tzx5nOONS3kl0yRmWHbDcRO5ffILsg=
|
||||
github.com/luxfi/czmq/v4 v4.2.2/go.mod h1:WFY9ldUbeU900P8bcIRr7Jim23veOhJL5A5zSpTogdU=
|
||||
github.com/luxfi/database v1.17.35/go.mod h1:dYxaF30KGJQzuxA3VH7+WGU5/dhwRyzLgzSk9F3wje0=
|
||||
github.com/luxfi/database v1.17.38/go.mod h1:q6BJNN+47VtkmkGrswQmC0ikERYAdlmZCYhGTXkF4mM=
|
||||
github.com/luxfi/database v1.17.39/go.mod h1:iHE5evTMxltmYGe3QkewrZv1xgGrDBbqcv0y4NkDJcI=
|
||||
github.com/luxfi/database v1.17.40/go.mod h1:du1q0PemBc0gZcdtHhsARs6mIsZM3a5R/C040DVYLCM=
|
||||
github.com/luxfi/database v1.17.42/go.mod h1:0nArLBm0r42J103oHR2xkAe8+mftuz5jtFgNylU1hgg=
|
||||
github.com/luxfi/database v1.17.44 h1:hfiTls7sqbweW+o4iaZqB8P997paC+vpgWmhN6v5MJ0=
|
||||
github.com/luxfi/database v1.17.44/go.mod h1:6Ey5y3I0WNLHbxIlIdFqUuKfBg+b0fAgTA8FgRgQ8zg=
|
||||
github.com/luxfi/evm v0.8.30/go.mod h1:S0fChMeuWV4XqY4OB6RozqvyHcm+imJCKyqsMY713hY=
|
||||
github.com/luxfi/fhe v1.7.6-0.20260106060801-28e308e4c2f8/go.mod h1:SVO5KV3GKMW5U0XeQSV4x7fryNWHsCjyhhhAoIPCpG8=
|
||||
github.com/luxfi/fhe v1.7.7 h1:RP26i3CxvNy2y/3LKiJPgd9uR5MrlG/MvQnv5rkQFhk=
|
||||
github.com/luxfi/fhe v1.7.7/go.mod h1:FHfGNgKL5ZLcnKVKFVNLDJOBbQyQm5DGpVrMnY8ASJo=
|
||||
github.com/luxfi/filesystem v0.0.1/go.mod h1:OQVSU6XNwqrr1AI+MqkID2taHUclx7NYmmr3svgttec=
|
||||
github.com/luxfi/formatting v1.0.0/go.mod h1:lswh6dPQ4E9Q+nZLwispV+Jdthr5R1PkYTBA/LhuSgE=
|
||||
github.com/luxfi/formatting v1.0.1/go.mod h1:mYzNf5DJOiqSSKUPzNj5dKy4tstFbN3pZlkI5716eKc=
|
||||
github.com/luxfi/genesis v1.5.21/go.mod h1:XI1T2oMh/VS/f+LWMWPDQIEhEneCNVHodhn2Qr3rFMU=
|
||||
github.com/luxfi/genesis v1.5.22/go.mod h1:ernOqYxKPEZnwu/QvgJ9y4Lb+IUpfoOtZ3/DubzExv0=
|
||||
github.com/luxfi/geth v1.16.73/go.mod h1:CPzps7Zp3I7Og3KT3m+Qs41WW8z+YPGx1TOJQnHdBHY=
|
||||
github.com/luxfi/geth v1.16.79 h1:MtP8ZUuSVZDjmZDa1kTJCl0PpG8+wGbQft652GO6a3A=
|
||||
github.com/luxfi/geth v1.16.79/go.mod h1:6xNi4sHoh0v1kBf0TOjmFhBg5+4umbSqrwiFZsDanZ0=
|
||||
github.com/luxfi/go-bip32 v1.0.2/go.mod h1:bc7/LXDKAJQZ/F0Xjf5yXaTZxY9/ssLb4FC+Hxn/cDk=
|
||||
github.com/luxfi/go-bip39 v1.1.2/go.mod h1:96de9VkR2kY/ASAnhMtvt3TSh+PZkAFAngNj0GjRGDo=
|
||||
github.com/luxfi/gpu v0.30.0/go.mod h1:7pFsHqra1Vrmy2aGXVEPKeKsPR+Bn+QmBXuByK3fdPA=
|
||||
@@ -541,17 +652,11 @@ github.com/luxfi/log v1.2.1/go.mod h1:0vJzb4Hl9fvgwWDMKcbCD/SYH3bO0iSmgZMcYdfdl1
|
||||
github.com/luxfi/log v1.4.0/go.mod h1:64IE3xRMJcpkQwnPUfJw3pDj7wU0kRS7BZ9wM7R72jk=
|
||||
github.com/luxfi/lpm v1.0.5/go.mod h1:dS/NS6muB9zlHWbO/VeCMYCe53YwIjXDHg/jif7TejI=
|
||||
github.com/luxfi/math v1.2.2/go.mod h1:C8STnF2H+D6rqBPt248CiWY2TGuJgdtv/+4UqrT15iM=
|
||||
github.com/luxfi/math v1.2.4 h1:iVz7s0gToCNUU/2cLT8gUa8MLzc0YRp4jBmeXBeKdXk=
|
||||
github.com/luxfi/math v1.2.4/go.mod h1:i+Am9YvFsqDE75ZW8MPE62XCXGukXNiN/7mD9SKxxZY=
|
||||
github.com/luxfi/math/safe v0.0.1/go.mod h1:EejrmOJHh03YAD8+Zww8cPcMR1K3Q2I7w1dX4sMloeo=
|
||||
github.com/luxfi/mdns v0.1.0 h1:VB3mQcETc9j5SY1S6lAgFtuGr/rjWuDgPYnxS+OKWMQ=
|
||||
github.com/luxfi/mdns v0.1.0/go.mod h1:/3dheKVjUk2yiS/ocH1IDzeLXOIe+kpVsErIGDOZdiQ=
|
||||
github.com/luxfi/metric v1.4.9/go.mod h1:JlAAc4Jm5apoU2DHEgt57UHD7+8AjMdpP2rQJ/zaACY=
|
||||
github.com/luxfi/metric v1.4.10/go.mod h1:3OIQ+e6mciesm3cik3Q4CSOAvTlBy4JA0ZoKzCB9APo=
|
||||
github.com/luxfi/metric v1.4.11/go.mod h1:EAFmkzd5EX654G48HXKIsyJufOUa4sxmOJKvwSRbjng=
|
||||
github.com/luxfi/metric v1.4.12/go.mod h1:EAFmkzd5EX654G48HXKIsyJufOUa4sxmOJKvwSRbjng=
|
||||
github.com/luxfi/metric v1.5.1 h1:6tVarXMnNR3Xzud8FYUHjtXabTll3HI/OEqG0tgLAcI=
|
||||
github.com/luxfi/metric v1.5.1/go.mod h1:PkD4D4JoGuyKtfUkqPNYkrg9xKrJeNVZFdW/5XvAe/A=
|
||||
github.com/luxfi/mock v0.1.0/go.mod h1:izF+9K0gGzFC9zERn6Po37v46eLdPB+EIsDjL3GLk+U=
|
||||
github.com/luxfi/net v0.0.1/go.mod h1:JTPsJHaUcpF0HruczW14FlUTjPk78xF73XGSMQa86NA=
|
||||
github.com/luxfi/netrunner v1.14.35/go.mod h1:vfeCr7L49R9yoSjZCpZe2+xtoNdPt4fstEtbKt7Jtls=
|
||||
@@ -585,8 +690,6 @@ github.com/luxfi/staking v1.0.0/go.mod h1:E+fm3upfQTOu0fLCr3Uo4xYgAm7r/vEzgcUpNA
|
||||
github.com/luxfi/staking v1.1.0/go.mod h1:xwYacmreoKoy31ELT6QPno6b5M8q7bg4zJrmmt524X4=
|
||||
github.com/luxfi/sys v0.0.0-20260110090042-50187ec5ffd8/go.mod h1:Y0UwjnEJYSbGM7IvJbKYLf8BWNVLfT8Oz00bEiDITHw=
|
||||
github.com/luxfi/threshold v1.5.1/go.mod h1:OsWmH2foqB2K4vVpHTjSHrVM4oveSzqOZb/k+fqNsYY=
|
||||
github.com/luxfi/threshold v1.6.0 h1:pq/n1iYowws+CXe/+slJodjPlJ152hFF94luHp2E82c=
|
||||
github.com/luxfi/threshold v1.6.0/go.mod h1:XWSfWM3n/tVggluh/LH7is4vYL85zmyMHCqfz2qrYVU=
|
||||
github.com/luxfi/timer v1.0.1/go.mod h1:PQ15H3AEUfvWVf0kv5WhIGPWmhr9BxBv/VKLyyekpk4=
|
||||
github.com/luxfi/tls v1.0.0/go.mod h1:QZXWuYFZPfGA9AyRIBXgIuXPrmvWWHtQkJtplZnTlWc=
|
||||
github.com/luxfi/tls v1.0.2/go.mod h1:t6Fr+KYKDZEz1KxciGHzRrj/KsQIx8V3iG/8YiSqpvU=
|
||||
@@ -596,8 +699,6 @@ github.com/luxfi/units v1.0.0/go.mod h1:tma28v4ed1tupdS0kpSeyO+u1wWK/g1NqODPbN1Y
|
||||
github.com/luxfi/upgrade v1.0.0/go.mod h1:DZF7dO4erhUEKf907B2e65k4/vGkCPkUngpvIEUS3eI=
|
||||
github.com/luxfi/utils v1.1.0/go.mod h1:ABqhBdGNig0CaDcnNYldv1byS0BTNi5IKPbJSPF1p98=
|
||||
github.com/luxfi/utils v1.1.1/go.mod h1:DL7634uXEcCu2tCBll0bmX0SVnMJeABbmhm5NkLMu78=
|
||||
github.com/luxfi/utils v1.1.4 h1:8OY0jXCkpp6OotN1Y++6DATJkvtEwzq2k0p56imJlAk=
|
||||
github.com/luxfi/utils v1.1.4/go.mod h1:c3yz1RjzrB+cs5GZm+q1T3/2cCKElO9vxm9yRRtgSEM=
|
||||
github.com/luxfi/utxo v0.0.1/go.mod h1:cwkUv/J6zNohRI7+xrj03wi39bm6CYkek+6XRhQrPTU=
|
||||
github.com/luxfi/utxo v0.2.3/go.mod h1:I23ZJND7kU6NUklD2nY24mU93jQXBPGu1c9Y1hjX9Vk=
|
||||
github.com/luxfi/validators v1.0.0/go.mod h1:QGppjtI/gqprbplWc10J+4OIK8UYWpv+53mfH2aKhy4=
|
||||
@@ -615,14 +716,11 @@ github.com/luxfi/warp v1.18.2/go.mod h1:qu3TZv98repNhIDf04I6pzXePSgHjzP+JoSfWmF4
|
||||
github.com/luxfi/warp v1.18.4/go.mod h1:5kXaZGYBBzOFyzPoDukVynvTTPskElrA8EQ5TVgovqc=
|
||||
github.com/luxfi/warp v1.18.5/go.mod h1:SFyC529HDvbP/TWRAdYQSyJUliMa5JKFRtBrTLEElp4=
|
||||
github.com/luxfi/zap v0.0.0-20260126200933-22a2a4c72dfb/go.mod h1:uvmQO9kVvOfBcqPhY52wx5Z1O6L/4Mv2tBrJDc3gVgM=
|
||||
github.com/luxfi/zap v0.2.0 h1:RzvOkp3EoN5UCkpnqfObHLM1sEHy7YcxXKuermhE/VA=
|
||||
github.com/luxfi/zap v0.2.0/go.mod h1:2hydPSa/XMCMtfW6/DC9M5Bt03N5h75QwCV5Vypsqr4=
|
||||
github.com/luxfi/zapdb v1.0.0 h1:u8TF4g/bWew5mQwiR/Mcu+QIFYTT6BP5Ty8oBaDgalA=
|
||||
github.com/luxfi/zapdb v1.0.0/go.mod h1:tT2WF2iSabQHrAYe9l7LHscaIBfN2YtCbdgOrCyCI2A=
|
||||
github.com/luxfi/zapdb/v4 v4.9.1/go.mod h1:gYJjLcFCxmUATZ6Zg7iZHwAbgBMxGVP1g8UOWomK70Y=
|
||||
github.com/luxfi/zapdb/v4 v4.9.3 h1:KV1DrbZqtZsZvrWyPw5D8WHR0DxzqW2jHjqx6obxgoM=
|
||||
github.com/luxfi/zapdb/v4 v4.9.3/go.mod h1:BrpLaDeYy+smON4ASDPCFKWrQ58CXhy3WNEPGna7vuU=
|
||||
github.com/luxfi/zmq/v4 v4.2.2/go.mod h1:omy8ymZAhx60lx/nPsWT6uOV11uNFVnjtls+Hi5KqaU=
|
||||
github.com/lyft/protoc-gen-star/v2 v2.0.4-0.20230330145011-496ad1ac90a4/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk=
|
||||
github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
|
||||
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
|
||||
github.com/mailgun/raymond/v2 v2.0.48/go.mod h1:lsgvL50kgt1ylcFJYZiULi5fjPBkkhNfj4KA0W54Z18=
|
||||
@@ -791,6 +889,7 @@ github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH
|
||||
github.com/spiffe/go-spiffe/v2 v2.6.0/go.mod h1:gm2SeUoMZEtpnzPNs2Csc0D/gX33k1xIx7lEzqblHEs=
|
||||
github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad/go.mod h1:qLr4V1qq6nMqFKkMo8ZTx3f+BZEkzsRUY10Xsm2mwU0=
|
||||
github.com/status-im/keycard-go v0.3.3/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg=
|
||||
github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo=
|
||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
|
||||
@@ -843,6 +942,7 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
|
||||
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
|
||||
github.com/zeebo/errs v1.4.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4=
|
||||
go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
|
||||
go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ=
|
||||
@@ -853,6 +953,7 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
|
||||
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
|
||||
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
|
||||
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
|
||||
go.opentelemetry.io/contrib/detectors/gcp v1.38.0/go.mod h1:SU+iU7nu5ud4oCb3LQOhIZ3nRLj6FNVrKgtflbaf2ts=
|
||||
go.opentelemetry.io/contrib/detectors/gcp v1.39.0/go.mod h1:t/OGqzHBa5v6RHZwrDBJ2OirWc+4q/w2fTbLZwAKjTk=
|
||||
@@ -1290,6 +1391,7 @@ google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaL
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20251222181119-0a764e51fe1b/go.mod h1:Xa7le7qx2vmqB/SzWUBa7KdMjpdpAHlh5QCSnjessQk=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20260120221211-b8f7ae30c516/go.mod h1:p3MLuOwURrGBRoEyFHBT3GjUwaCQVKeNqqWxlcISGdw=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY=
|
||||
google.golang.org/genproto/googleapis/bytestream v0.0.0-20260319201613-d00831a3d3e7/go.mod h1:6TABGosqSqU2l1+fJ3jdvOYPPVryeKybxYF0cCZkTBE=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20251222181119-0a764e51fe1b/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20260120221211-b8f7ae30c516/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ=
|
||||
@@ -1317,6 +1419,7 @@ google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQ
|
||||
google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U=
|
||||
google.golang.org/grpc v1.79.1/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
|
||||
google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
|
||||
google.golang.org/grpc/examples v0.0.0-20250407062114-b368379ef8f6/go.mod h1:6ytKWczdvnpnO+m+JiG9NjEDzR1FJfsnmJdG7B8QVZ8=
|
||||
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
|
||||
|
||||
Reference in New Issue
Block a user