Explorar el Código

SVI Доработка типов; 100.0%

SVI hace 8 meses
padre
commit
0f764f0711
Se han modificado 100 ficheros con 1890 adiciones y 941 borrados
  1. 2 0
      v2/docs/helpers.md
  2. 8 8
      v2/go.mod
  3. 18 18
      v2/go.sum
  4. 10 0
      v2/kc/helpers/helpers.go
  5. 11 0
      v2/kern.go
  6. 88 72
      v2/kern_test.go
  7. 2 0
      v2/vendor/github.com/dgraph-io/ristretto/v2/CHANGELOG.md
  8. 1 1
      v2/vendor/github.com/dgraph-io/ristretto/v2/README.md
  9. 11 3
      v2/vendor/github.com/dgraph-io/ristretto/v2/cache.go
  10. 3 1
      v2/vendor/github.com/dgraph-io/ristretto/v2/z/z.go
  11. 0 8
      v2/vendor/github.com/valyala/fasthttp/args.go
  12. 68 85
      v2/vendor/github.com/valyala/fasthttp/client.go
  13. 56 44
      v2/vendor/github.com/valyala/fasthttp/fs.go
  14. 110 221
      v2/vendor/github.com/valyala/fasthttp/header.go
  15. 168 0
      v2/vendor/github.com/valyala/fasthttp/headerscanner.go
  16. 1 1
      v2/vendor/github.com/valyala/fasthttp/http.go
  17. 1 1
      v2/vendor/github.com/valyala/fasthttp/reuseport/reuseport.go
  18. 31 0
      v2/vendor/github.com/valyala/fasthttp/reuseport/reuseport_solaris.go
  19. 1 0
      v2/vendor/github.com/valyala/fasthttp/strings.go
  20. 5 21
      v2/vendor/github.com/valyala/fasthttp/zstd.go
  21. 1 0
      v2/vendor/go.opentelemetry.io/otel/.codespellignore
  22. 19 9
      v2/vendor/go.opentelemetry.io/otel/.golangci.yml
  23. 3 0
      v2/vendor/go.opentelemetry.io/otel/.lycheeignore
  24. 90 1
      v2/vendor/go.opentelemetry.io/otel/CHANGELOG.md
  25. 1 1
      v2/vendor/go.opentelemetry.io/otel/CODEOWNERS
  26. 54 7
      v2/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md
  27. 30 0
      v2/vendor/go.opentelemetry.io/otel/LICENSE
  28. 2 5
      v2/vendor/go.opentelemetry.io/otel/Makefile
  29. 7 0
      v2/vendor/go.opentelemetry.io/otel/README.md
  30. 203 0
      v2/vendor/go.opentelemetry.io/otel/SECURITY-INSIGHTS.yml
  31. 6 6
      v2/vendor/go.opentelemetry.io/otel/attribute/encoder.go
  32. 4 4
      v2/vendor/go.opentelemetry.io/otel/attribute/filter.go
  33. 8 8
      v2/vendor/go.opentelemetry.io/otel/attribute/internal/attribute.go
  34. 4 3
      v2/vendor/go.opentelemetry.io/otel/attribute/iterator.go
  35. 1 1
      v2/vendor/go.opentelemetry.io/otel/attribute/key.go
  36. 1 1
      v2/vendor/go.opentelemetry.io/otel/attribute/kv.go
  37. 10 10
      v2/vendor/go.opentelemetry.io/otel/attribute/set.go
  38. 4 4
      v2/vendor/go.opentelemetry.io/otel/attribute/value.go
  39. 2 2
      v2/vendor/go.opentelemetry.io/otel/baggage/baggage.go
  40. 2 2
      v2/vendor/go.opentelemetry.io/otel/codes/codes.go
  41. 2 2
      v2/vendor/go.opentelemetry.io/otel/dependencies.Dockerfile
  42. 4 4
      v2/vendor/go.opentelemetry.io/otel/internal/global/internal_logging.go
  43. 1 0
      v2/vendor/go.opentelemetry.io/otel/internal/global/trace.go
  44. 30 0
      v2/vendor/go.opentelemetry.io/otel/metric/LICENSE
  45. 3 3
      v2/vendor/go.opentelemetry.io/otel/propagation/baggage.go
  46. 2 2
      v2/vendor/go.opentelemetry.io/otel/propagation/propagation.go
  47. 3 3
      v2/vendor/go.opentelemetry.io/otel/propagation/trace_context.go
  48. 0 4
      v2/vendor/go.opentelemetry.io/otel/semconv/v1.34.0/MIGRATION.md
  49. 0 3
      v2/vendor/go.opentelemetry.io/otel/semconv/v1.34.0/README.md
  50. 41 0
      v2/vendor/go.opentelemetry.io/otel/semconv/v1.37.0/MIGRATION.md
  51. 3 0
      v2/vendor/go.opentelemetry.io/otel/semconv/v1.37.0/README.md
  52. 452 219
      v2/vendor/go.opentelemetry.io/otel/semconv/v1.37.0/attribute_group.go
  53. 2 2
      v2/vendor/go.opentelemetry.io/otel/semconv/v1.37.0/doc.go
  54. 31 0
      v2/vendor/go.opentelemetry.io/otel/semconv/v1.37.0/error_type.go
  55. 1 1
      v2/vendor/go.opentelemetry.io/otel/semconv/v1.37.0/exception.go
  56. 2 2
      v2/vendor/go.opentelemetry.io/otel/semconv/v1.37.0/schema.go
  57. 30 0
      v2/vendor/go.opentelemetry.io/otel/trace/LICENSE
  58. 3 3
      v2/vendor/go.opentelemetry.io/otel/trace/auto.go
  59. 2 2
      v2/vendor/go.opentelemetry.io/otel/trace/config.go
  60. 38 0
      v2/vendor/go.opentelemetry.io/otel/trace/hex.go
  61. 1 1
      v2/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/attr.go
  62. 3 3
      v2/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/id.go
  63. 2 2
      v2/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/value.go
  64. 2 2
      v2/vendor/go.opentelemetry.io/otel/trace/noop.go
  65. 1 1
      v2/vendor/go.opentelemetry.io/otel/trace/noop/noop.go
  66. 99 57
      v2/vendor/go.opentelemetry.io/otel/trace/trace.go
  67. 3 3
      v2/vendor/go.opentelemetry.io/otel/trace/tracestate.go
  68. 1 1
      v2/vendor/go.opentelemetry.io/otel/version.go
  69. 4 4
      v2/vendor/go.opentelemetry.io/otel/versions.yaml
  70. 3 0
      v2/vendor/golang.org/x/sys/unix/mkerrors.sh
  71. 1 55
      v2/vendor/golang.org/x/sys/unix/syscall_darwin.go
  72. 30 14
      v2/vendor/golang.org/x/sys/unix/zerrors_linux.go
  73. 2 0
      v2/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
  74. 2 0
      v2/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
  75. 2 0
      v2/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
  76. 2 0
      v2/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
  77. 2 0
      v2/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go
  78. 2 0
      v2/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
  79. 2 0
      v2/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
  80. 2 0
      v2/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
  81. 2 0
      v2/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
  82. 2 0
      v2/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go
  83. 2 0
      v2/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
  84. 2 0
      v2/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
  85. 2 0
      v2/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
  86. 2 0
      v2/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
  87. 2 0
      v2/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
  88. 1 0
      v2/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
  89. 1 0
      v2/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
  90. 1 0
      v2/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
  91. 1 0
      v2/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
  92. 1 0
      v2/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go
  93. 1 0
      v2/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
  94. 1 0
      v2/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
  95. 1 0
      v2/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
  96. 1 0
      v2/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
  97. 1 0
      v2/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go
  98. 1 0
      v2/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
  99. 1 0
      v2/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
  100. 1 0
      v2/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go

+ 2 - 0
v2/docs/helpers.md

@@ -10,6 +10,8 @@ export NFQWS_OPT="
 " & sudo /opt/zapret/init.d/sysv/zapret start
 " & sudo /opt/zapret/init.d/sysv/zapret start
 ```
 ```
 
 
+Порт 'SOCKS': 987
+
 ## Языковые модели
 ## Языковые модели
 
 
 ```text
 ```text

+ 8 - 8
v2/go.mod

@@ -12,7 +12,7 @@ require (
 require (
 require (
 	github.com/andybalholm/brotli v1.2.0 // indirect
 	github.com/andybalholm/brotli v1.2.0 // indirect
 	github.com/cespare/xxhash/v2 v2.3.0 // indirect
 	github.com/cespare/xxhash/v2 v2.3.0 // indirect
-	github.com/dgraph-io/ristretto/v2 v2.2.0 // indirect
+	github.com/dgraph-io/ristretto/v2 v2.3.0 // indirect
 	github.com/dustin/go-humanize v1.0.1 // indirect
 	github.com/dustin/go-humanize v1.0.1 // indirect
 	github.com/go-logr/logr v1.4.3 // indirect
 	github.com/go-logr/logr v1.4.3 // indirect
 	github.com/go-logr/stdr v1.2.2 // indirect
 	github.com/go-logr/stdr v1.2.2 // indirect
@@ -23,12 +23,12 @@ require (
 	github.com/mattn/go-runewidth v0.0.16 // indirect
 	github.com/mattn/go-runewidth v0.0.16 // indirect
 	github.com/rivo/uniseg v0.4.7 // indirect
 	github.com/rivo/uniseg v0.4.7 // indirect
 	github.com/valyala/bytebufferpool v1.0.0 // indirect
 	github.com/valyala/bytebufferpool v1.0.0 // indirect
-	github.com/valyala/fasthttp v1.64.0 // indirect
+	github.com/valyala/fasthttp v1.65.0 // indirect
 	go.opentelemetry.io/auto/sdk v1.1.0 // indirect
 	go.opentelemetry.io/auto/sdk v1.1.0 // indirect
-	go.opentelemetry.io/otel v1.37.0 // indirect
-	go.opentelemetry.io/otel/metric v1.37.0 // indirect
-	go.opentelemetry.io/otel/trace v1.37.0 // indirect
-	golang.org/x/net v0.42.0 // indirect
-	golang.org/x/sys v0.34.0 // indirect
-	google.golang.org/protobuf v1.36.6 // indirect
+	go.opentelemetry.io/otel v1.38.0 // indirect
+	go.opentelemetry.io/otel/metric v1.38.0 // indirect
+	go.opentelemetry.io/otel/trace v1.38.0 // indirect
+	golang.org/x/net v0.43.0 // indirect
+	golang.org/x/sys v0.35.0 // indirect
+	google.golang.org/protobuf v1.36.8 // indirect
 )
 )

+ 18 - 18
v2/go.sum

@@ -11,8 +11,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/dgraph-io/badger/v4 v4.8.0 h1:JYph1ChBijCw8SLeybvPINizbDKWZ5n/GYbz2yhN/bs=
 github.com/dgraph-io/badger/v4 v4.8.0 h1:JYph1ChBijCw8SLeybvPINizbDKWZ5n/GYbz2yhN/bs=
 github.com/dgraph-io/badger/v4 v4.8.0/go.mod h1:U6on6e8k/RTbUWxqKR0MvugJuVmkxSNc79ap4917h4w=
 github.com/dgraph-io/badger/v4 v4.8.0/go.mod h1:U6on6e8k/RTbUWxqKR0MvugJuVmkxSNc79ap4917h4w=
-github.com/dgraph-io/ristretto/v2 v2.2.0 h1:bkY3XzJcXoMuELV8F+vS8kzNgicwQFAaGINAEJdWGOM=
-github.com/dgraph-io/ristretto/v2 v2.2.0/go.mod h1:RZrm63UmcBAaYWC1DotLYBmTvgkrs0+XhBd7Npn7/zI=
+github.com/dgraph-io/ristretto/v2 v2.3.0 h1:qTQ38m7oIyd4GAed/QkUZyPFNMnvVWyazGXRwvOt5zk=
+github.com/dgraph-io/ristretto/v2 v2.3.0/go.mod h1:gpoRV3VzrEY1a9dWAYV6T1U7YzfgttXdd/ZzL1s9OZM=
 github.com/dgryski/go-farm v0.0.0-20240924180020-3414d57e47da h1:aIftn67I1fkbMa512G+w+Pxci9hJPB8oMnkcP3iZF38=
 github.com/dgryski/go-farm v0.0.0-20240924180020-3414d57e47da h1:aIftn67I1fkbMa512G+w+Pxci9hJPB8oMnkcP3iZF38=
 github.com/dgryski/go-farm v0.0.0-20240924180020-3414d57e47da/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
 github.com/dgryski/go-farm v0.0.0-20240924180020-3414d57e47da/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
 github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
 github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
@@ -44,23 +44,23 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
 github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
 github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
 github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
 github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
 github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
 github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
-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/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
+github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
 github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
 github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
 github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
 github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
-github.com/valyala/fasthttp v1.64.0 h1:QBygLLQmiAyiXuRhthf0tuRkqAFcrC42dckN2S+N3og=
-github.com/valyala/fasthttp v1.64.0/go.mod h1:dGmFxwkWXSK0NbOSJuF7AMVzU+lkHz0wQVvVITv2UQA=
+github.com/valyala/fasthttp v1.65.0 h1:j/u3uzFEGFfRxw79iYzJN+TteTJwbYkru9uDp3d0Yf8=
+github.com/valyala/fasthttp v1.65.0/go.mod h1:P/93/YkKPMsKSnATEeELUCkG8a7Y+k99uxNHVbKINr4=
 github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU=
 github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU=
 github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E=
 github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E=
 github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
 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/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
-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/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/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4=
-go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0=
+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/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
+go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
+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=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 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-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
@@ -68,8 +68,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs=
-golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8=
+golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
+golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -77,8 +77,8 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA=
-golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
+golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
+golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -87,8 +87,8 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
-google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
+google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc=
+google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las=
 honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las=

+ 10 - 0
v2/kc/helpers/helpers.go

@@ -16,6 +16,11 @@ var (
 	IsStageProd  bool
 	IsStageProd  bool
 )
 )
 
 
+// FnAssert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert)
+//
+//	(isCond bool, msgFormat string, args ...any)
+type FnAssert func(isCond bool, msgFormat string, args ...any)
+
 // Assert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert)
 // Assert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert)
 func Assert(isCond bool, msgFormat string, args ...any) {
 func Assert(isCond bool, msgFormat string, args ...any) {
 	if isCond {
 	if isCond {
@@ -28,6 +33,11 @@ func Assert(isCond bool, msgFormat string, args ...any) {
 	fmt.Print(msg)
 	fmt.Print(msg)
 }
 }
 
 
+// FnHassert -- проверяет с жёстким падением условие
+//
+//	(isCond bool, msgFormat string, args ...any)
+type FnHassert func(isCond bool, msgFormat string, args ...any)
+
 // Hassert -- проверка на правильность утверждения с безусловным падением в панику (hard assert)
 // Hassert -- проверка на правильность утверждения с безусловным падением в панику (hard assert)
 func Hassert(isCond bool, msgFormat string, args ...any) {
 func Hassert(isCond bool, msgFormat string, args ...any) {
 	if isCond {
 	if isCond {

+ 11 - 0
v2/kern.go

@@ -4,6 +4,7 @@ package kern
 import (
 import (
 	"context"
 	"context"
 
 
+	"gitp78su.ipnodns.ru/svi/kern/v2/kc/helpers"
 	. "gitp78su.ipnodns.ru/svi/kern/v2/kc/helpers"
 	. "gitp78su.ipnodns.ru/svi/kern/v2/kc/helpers"
 	"gitp78su.ipnodns.ru/svi/kern/v2/kc/local_ctx"
 	"gitp78su.ipnodns.ru/svi/kern/v2/kc/local_ctx"
 	"gitp78su.ipnodns.ru/svi/kern/v2/kc/log_buf"
 	"gitp78su.ipnodns.ru/svi/kern/v2/kc/log_buf"
@@ -187,3 +188,13 @@ func MakeSome[T any](some T) Option[T] {
 func MakeNone[T any]() Option[T] {
 func MakeNone[T any]() Option[T] {
 	return NewNone[T]()
 	return NewNone[T]()
 }
 }
+
+// GetFnHassert -- возвращает ссылку на функцию Hassert
+func GetFnHassert() helpers.FnHassert {
+	return helpers.Hassert
+}
+
+// GetFnAssert -- возвращает ссылку на функцию Hassert
+func GetFnAssert() helpers.FnAssert {
+	return helpers.Assert
+}

+ 88 - 72
v2/kern_test.go

@@ -46,92 +46,108 @@ func (sf *tester) newModBad() {
 func (sf *tester) new() {
 func (sf *tester) new() {
 	sf.t.Log("new")
 	sf.t.Log("new")
 	ctx := GetKernelCtx()
 	ctx := GetKernelCtx()
-	if ctx == nil {
-		sf.t.Fatalf("new(): IKernelCtx==nil")
-	}
-	store := GetKernelStoreKv()
-	res := store.Delete("test_builders")
-	if res.IsErr() {
-		sf.t.Fatalf("new(): get empty key, store, err=%v", res.Err())
-	}
+	{
+		if ctx == nil {
+			sf.t.Fatalf("new(): IKernelCtx==nil")
+		}
+		store := GetKernelStoreKv()
+		res := store.Delete("test_builders")
+		if res.IsErr() {
+			sf.t.Fatalf("new(): get empty key, store, err=%v", res.Err())
+		}
+		safeBool := NewSafeBool()
+		if safeBool == nil {
+			sf.t.Fatalf("new(): ISafeBool==nil")
+		}
 
 
-	safeBool := NewSafeBool()
-	if safeBool == nil {
-		sf.t.Fatalf("new(): ISafeBool==nil")
-	}
+		kernBus := GetKernelBusLocal()
+		if kernBus == nil {
+			sf.t.Fatalf("new(): (local) IKernelBus==nil")
+		}
 
 
-	kernBus := GetKernelBusLocal()
-	if kernBus == nil {
-		sf.t.Fatalf("new(): (local) IKernelBus==nil")
-	}
+		kernBusHttp := GetKernelBusHttp()
+		if kernBusHttp == nil {
+			sf.t.Fatalf("new(): (http) IKernelBus==nil")
+		}
 
 
-	kernBusHttp := GetKernelBusHttp()
-	if kernBusHttp == nil {
-		sf.t.Fatalf("new(): (http) IKernelBus==nil")
 	}
 	}
+	{
+		monLocal := GetMonolitLocal("mon_local")
+		if monLocal == nil {
+			sf.t.Fatalf("new(): (local) IKernelMonolit==nil")
+		}
 
 
-	monLocal := GetMonolitLocal("mon_local")
-	if monLocal == nil {
-		sf.t.Fatalf("new(): (local) IKernelMonolit==nil")
-	}
+		monHttp := GetMonolitHttp("mon_http")
+		if monHttp == nil {
+			sf.t.Fatalf("new(): (http) IKernelMonolit==nil")
+		}
 
 
-	monHttp := GetMonolitHttp("mon_http")
-	if monHttp == nil {
-		sf.t.Fatalf("new(): (http) IKernelMonolit==nil")
-	}
+		mod := NewKernelModule("test_mod")
+		if mod == nil {
+			sf.t.Fatalf("new(): IKernelModule==nil")
+		}
 
 
-	mod := NewKernelModule("test_mod")
-	if mod == nil {
-		sf.t.Fatalf("new(): IKernelModule==nil")
-	}
+		clientLocal := NewClientBusLocal()
+		if clientLocal == nil {
+			sf.t.Fatalf("new(): (local) IBusClient==nil")
+		}
+		clientHttp := NewClientBusHttp("test_url")
+		if clientHttp == nil {
+			sf.t.Fatalf("new(): (http) IBusClient==nil")
+		}
 
 
-	clientLocal := NewClientBusLocal()
-	if clientLocal == nil {
-		sf.t.Fatalf("new(): (local) IBusClient==nil")
-	}
-	clientHttp := NewClientBusHttp("test_url")
-	if clientHttp == nil {
-		sf.t.Fatalf("new(): (http) IBusClient==nil")
 	}
 	}
+	{
+		modServHttp := GetModuleServHttp()
+		if modServHttp == nil {
+			sf.t.Fatalf("new(): modServHttp==nil")
+		}
 
 
-	modServHttp := GetModuleServHttp()
-	if modServHttp == nil {
-		sf.t.Fatalf("new(): modServHttp==nil")
-	}
+		modKernelCtx := GetModuleKernelCtx()
+		if modKernelCtx == nil {
+			sf.t.Fatalf("new(): modKernelCtx==nil")
+		}
+		modKernelKeeper := GetModuleKernelKeeper()
+		if modKernelKeeper == nil {
+			sf.t.Fatalf("new(): modKernelKeeper==nil")
+		}
+		modWui := GetModuleWui()
+		if modWui == nil {
+			sf.t.Fatalf("new(): modWui==nil")
+		}
 
 
-	modKernelCtx := GetModuleKernelCtx()
-	if modKernelCtx == nil {
-		sf.t.Fatalf("new(): modKernelCtx==nil")
-	}
-	modKernelKeeper := GetModuleKernelKeeper()
-	if modKernelKeeper == nil {
-		sf.t.Fatalf("new(): modKernelKeeper==nil")
-	}
-	modWui := GetModuleWui()
-	if modWui == nil {
-		sf.t.Fatalf("new(): modWui==nil")
+		logBuf := NewLogBuf(true)
+		if logBuf == nil {
+			sf.t.Fatalf("new(): ILogBuf==nil")
+		}
+		boolReact := NewSafeBoolReact()
+		if boolReact == nil {
+			sf.t.Fatalf("new(): ISafeBoolReact==nil")
+		}
+		safeInt := NewSafeInt()
+		if safeInt == nil {
+			sf.t.Fatalf("new(): ISafeInt==nil")
+		}
+		lCtx := NewLocalCtx(ctx.Ctx())
+		if lCtx == nil {
+			sf.t.Fatalf("new(): ILocalCtx==nil")
+		}
 	}
 	}
+	{
+		safeStr := NewSafeString()
+		if safeStr == nil {
+			sf.t.Fatalf("new(): ISafeStr==nil")
+		}
 
 
-	logBuf := NewLogBuf(true)
-	if logBuf == nil {
-		sf.t.Fatalf("new(): ILogBuf==nil")
-	}
-	boolReact := NewSafeBoolReact()
-	if boolReact == nil {
-		sf.t.Fatalf("new(): ISafeBoolReact==nil")
-	}
-	safeInt := NewSafeInt()
-	if safeInt == nil {
-		sf.t.Fatalf("new(): ISafeInt==nil")
-	}
-	lCtx := NewLocalCtx(ctx.Ctx())
-	if lCtx == nil {
-		sf.t.Fatalf("new(): ILocalCtx==nil")
-	}
+		fnHassert := GetFnHassert()
+		if fnHassert == nil {
+			sf.t.Fatalf("new(): Hassert==nil")
+		}
 
 
-	safeStr := NewSafeString()
-	if safeStr == nil {
-		sf.t.Fatalf("new(): ISafeStr==nil")
+		fnAssert := GetFnAssert()
+		if fnAssert == nil {
+			sf.t.Fatalf("new(): Assert==nil")
+		}
 	}
 	}
 
 
 	_ = MakeOk("test ok")
 	_ = MakeOk("test ok")

+ 2 - 0
v2/vendor/github.com/dgraph-io/ristretto/v2/CHANGELOG.md

@@ -10,6 +10,8 @@ adhere to [Semantic Versioning](http://semver.org/spec/v2.0.0.html) starting v1.
 **Changed**
 **Changed**
 
 
 - Remove dependency: github.com/pkg/errors (#443)
 - Remove dependency: github.com/pkg/errors (#443)
+- Add public Cache.RemainingCost() method
+- Add support for uint keys
 
 
 **Fixed**
 **Fixed**
 
 

+ 1 - 1
v2/vendor/github.com/dgraph-io/ristretto/v2/README.md

@@ -144,7 +144,7 @@ This trace is described as "references to a CODASYL database for a one hour peri
   alt="Graph showing throughput comparison for mixed workload">
   alt="Graph showing throughput comparison for mixed workload">
 </p>
 </p>
 
 
-### Throughput ffor Read Workload
+### Throughput for Read Workload
 
 
 <p align="center">
 <p align="center">
   <img src="https://raw.githubusercontent.com/hypermodeinc/ristretto/main/benchmarks/Throughput%20-%20Read%20(Zipfian).svg"
   <img src="https://raw.githubusercontent.com/hypermodeinc/ristretto/main/benchmarks/Throughput%20-%20Read%20(Zipfian).svg"

+ 11 - 3
v2/vendor/github.com/dgraph-io/ristretto/v2/cache.go

@@ -207,15 +207,15 @@ func NewCache[K Key, V any](config *Config[K, V]) (*Cache[K, V], error) {
 	case config.NumCounters == 0:
 	case config.NumCounters == 0:
 		return nil, errors.New("NumCounters can't be zero")
 		return nil, errors.New("NumCounters can't be zero")
 	case config.NumCounters < 0:
 	case config.NumCounters < 0:
-		return nil, errors.New("NumCounters can't be negative number")
+		return nil, errors.New("NumCounters can't be negative")
 	case config.MaxCost == 0:
 	case config.MaxCost == 0:
 		return nil, errors.New("MaxCost can't be zero")
 		return nil, errors.New("MaxCost can't be zero")
 	case config.MaxCost < 0:
 	case config.MaxCost < 0:
-		return nil, errors.New("MaxCost can't be be negative number")
+		return nil, errors.New("MaxCost can't be negative")
 	case config.BufferItems == 0:
 	case config.BufferItems == 0:
 		return nil, errors.New("BufferItems can't be zero")
 		return nil, errors.New("BufferItems can't be zero")
 	case config.BufferItems < 0:
 	case config.BufferItems < 0:
-		return nil, errors.New("BufferItems can't be be negative number")
+		return nil, errors.New("BufferItems can't be negative")
 	case config.TtlTickerDurationInSec == 0:
 	case config.TtlTickerDurationInSec == 0:
 		config.TtlTickerDurationInSec = bucketDurationSecs
 		config.TtlTickerDurationInSec = bucketDurationSecs
 	}
 	}
@@ -489,6 +489,14 @@ func (c *Cache[K, V]) UpdateMaxCost(maxCost int64) {
 	c.cachePolicy.UpdateMaxCost(maxCost)
 	c.cachePolicy.UpdateMaxCost(maxCost)
 }
 }
 
 
+// RemainingCost returns the remaining cost capacity (MaxCost - Used) of an existing cache.
+func (c *Cache[K, V]) RemainingCost() int64 {
+	if c == nil {
+		return 0
+	}
+	return c.cachePolicy.Cap()
+}
+
 // processItems is ran by goroutines processing the Set buffer.
 // processItems is ran by goroutines processing the Set buffer.
 func (c *Cache[K, V]) processItems() {
 func (c *Cache[K, V]) processItems() {
 	startTs := make(map[uint64]time.Time)
 	startTs := make(map[uint64]time.Time)

+ 3 - 1
v2/vendor/github.com/dgraph-io/ristretto/v2/z/z.go

@@ -13,7 +13,7 @@ import (
 )
 )
 
 
 type Key interface {
 type Key interface {
-	uint64 | string | []byte | byte | int | int32 | uint32 | int64
+	uint64 | string | []byte | byte | int | uint | int32 | uint32 | int64
 }
 }
 
 
 // TODO: Figure out a way to re-use memhash for the second uint64 hash,
 // TODO: Figure out a way to re-use memhash for the second uint64 hash,
@@ -34,6 +34,8 @@ func KeyToHash[K Key](key K) (uint64, uint64) {
 		return MemHash(k), xxhash.Sum64(k)
 		return MemHash(k), xxhash.Sum64(k)
 	case byte:
 	case byte:
 		return uint64(k), 0
 		return uint64(k), 0
+	case uint:
+		return uint64(k), 0
 	case int:
 	case int:
 		return uint64(k), 0
 		return uint64(k), 0
 	case int32:
 	case int32:

+ 0 - 8
v2/vendor/github.com/valyala/fasthttp/args.go

@@ -644,11 +644,3 @@ func peekAllArgBytesToDst(dst [][]byte, h []argsKV, k []byte) [][]byte {
 	}
 	}
 	return dst
 	return dst
 }
 }
-
-func peekArgsKeys(dst [][]byte, h []argsKV) [][]byte {
-	for i, n := 0, len(h); i < n; i++ {
-		kv := &h[i]
-		dst = append(dst, kv.key)
-	}
-	return dst
-}

+ 68 - 85
v2/vendor/github.com/valyala/fasthttp/client.go

@@ -510,81 +510,78 @@ func (c *Client) Do(req *Request, resp *Response) error {
 	}
 	}
 
 
 	c.mOnce.Do(func() {
 	c.mOnce.Do(func() {
-		c.mLock.Lock()
 		c.m = make(map[string]*HostClient)
 		c.m = make(map[string]*HostClient)
 		c.ms = make(map[string]*HostClient)
 		c.ms = make(map[string]*HostClient)
-		c.mLock.Unlock()
 	})
 	})
+	hc, err := c.hostClient(host, isTLS)
+	if err != nil {
+		return err
+	}
 
 
-	startCleaner := false
+	atomic.AddInt32(&hc.pendingClientRequests, 1)
+	defer atomic.AddInt32(&hc.pendingClientRequests, -1)
+	return hc.Do(req, resp)
+}
 
 
-	c.mLock.RLock()
+func (c *Client) hostClient(host []byte, isTLS bool) (*HostClient, error) {
 	m := c.m
 	m := c.m
 	if isTLS {
 	if isTLS {
 		m = c.ms
 		m = c.ms
 	}
 	}
-	hc := m[string(host)]
-	if hc != nil {
-		atomic.AddInt32(&hc.pendingClientRequests, 1)
-		defer atomic.AddInt32(&hc.pendingClientRequests, -1)
-	}
-	c.mLock.RUnlock()
-	if hc == nil {
-		c.mLock.Lock()
-		hc = m[string(host)]
-		if hc == nil {
-			hc = &HostClient{
-				Addr:                          AddMissingPort(string(host), isTLS),
-				Transport:                     c.Transport,
-				Name:                          c.Name,
-				NoDefaultUserAgentHeader:      c.NoDefaultUserAgentHeader,
-				Dial:                          c.Dial,
-				DialTimeout:                   c.DialTimeout,
-				DialDualStack:                 c.DialDualStack,
-				IsTLS:                         isTLS,
-				TLSConfig:                     c.TLSConfig,
-				MaxConns:                      c.MaxConnsPerHost,
-				MaxIdleConnDuration:           c.MaxIdleConnDuration,
-				MaxConnDuration:               c.MaxConnDuration,
-				MaxIdemponentCallAttempts:     c.MaxIdemponentCallAttempts,
-				ReadBufferSize:                c.ReadBufferSize,
-				WriteBufferSize:               c.WriteBufferSize,
-				ReadTimeout:                   c.ReadTimeout,
-				WriteTimeout:                  c.WriteTimeout,
-				MaxResponseBodySize:           c.MaxResponseBodySize,
-				DisableHeaderNamesNormalizing: c.DisableHeaderNamesNormalizing,
-				DisablePathNormalizing:        c.DisablePathNormalizing,
-				MaxConnWaitTimeout:            c.MaxConnWaitTimeout,
-				RetryIf:                       c.RetryIf,
-				RetryIfErr:                    c.RetryIfErr,
-				ConnPoolStrategy:              c.ConnPoolStrategy,
-				StreamResponseBody:            c.StreamResponseBody,
-				clientReaderPool:              &c.readerPool,
-				clientWriterPool:              &c.writerPool,
-			}
 
 
-			if c.ConfigureClient != nil {
-				if err := c.ConfigureClient(hc); err != nil {
-					c.mLock.Unlock()
-					return err
-				}
-			}
+	c.mLock.RLock()
+	hc, exist := m[string(host)]
+	c.mLock.RUnlock()
+	if exist {
+		return hc, nil
+	}
+	c.mLock.Lock()
+	defer c.mLock.Unlock()
+	hc, exist = m[string(host)]
+	if exist {
+		return hc, nil
+	}
+	hc = &HostClient{
+		Addr:                          AddMissingPort(string(host), isTLS),
+		Transport:                     c.Transport,
+		Name:                          c.Name,
+		NoDefaultUserAgentHeader:      c.NoDefaultUserAgentHeader,
+		Dial:                          c.Dial,
+		DialTimeout:                   c.DialTimeout,
+		DialDualStack:                 c.DialDualStack,
+		IsTLS:                         isTLS,
+		TLSConfig:                     c.TLSConfig,
+		MaxConns:                      c.MaxConnsPerHost,
+		MaxIdleConnDuration:           c.MaxIdleConnDuration,
+		MaxConnDuration:               c.MaxConnDuration,
+		MaxIdemponentCallAttempts:     c.MaxIdemponentCallAttempts,
+		ReadBufferSize:                c.ReadBufferSize,
+		WriteBufferSize:               c.WriteBufferSize,
+		ReadTimeout:                   c.ReadTimeout,
+		WriteTimeout:                  c.WriteTimeout,
+		MaxResponseBodySize:           c.MaxResponseBodySize,
+		DisableHeaderNamesNormalizing: c.DisableHeaderNamesNormalizing,
+		DisablePathNormalizing:        c.DisablePathNormalizing,
+		MaxConnWaitTimeout:            c.MaxConnWaitTimeout,
+		RetryIf:                       c.RetryIf,
+		RetryIfErr:                    c.RetryIfErr,
+		ConnPoolStrategy:              c.ConnPoolStrategy,
+		StreamResponseBody:            c.StreamResponseBody,
+		clientReaderPool:              &c.readerPool,
+		clientWriterPool:              &c.writerPool,
+	}
 
 
-			m[string(host)] = hc
-			if len(m) == 1 {
-				startCleaner = true
-			}
+	if c.ConfigureClient != nil {
+		if err := c.ConfigureClient(hc); err != nil {
+			return nil, err
 		}
 		}
-		atomic.AddInt32(&hc.pendingClientRequests, 1)
-		defer atomic.AddInt32(&hc.pendingClientRequests, -1)
-		c.mLock.Unlock()
 	}
 	}
 
 
-	if startCleaner {
+	m[string(host)] = hc
+	if len(m) == 1 {
 		go c.mCleaner(m)
 		go c.mCleaner(m)
 	}
 	}
-
-	return hc.Do(req, resp)
+	return hc, nil
 }
 }
 
 
 // CloseIdleConnections closes any connections which were previously
 // CloseIdleConnections closes any connections which were previously
@@ -1846,22 +1843,15 @@ func (c *HostClient) AcquireWriter(conn net.Conn) *bufio.Writer {
 	var v any
 	var v any
 	if c.clientWriterPool != nil {
 	if c.clientWriterPool != nil {
 		v = c.clientWriterPool.Get()
 		v = c.clientWriterPool.Get()
-		if v == nil {
-			n := c.WriteBufferSize
-			if n <= 0 {
-				n = defaultWriteBufferSize
-			}
-			return bufio.NewWriterSize(conn, n)
-		}
 	} else {
 	} else {
 		v = c.writerPool.Get()
 		v = c.writerPool.Get()
-		if v == nil {
-			n := c.WriteBufferSize
-			if n <= 0 {
-				n = defaultWriteBufferSize
-			}
-			return bufio.NewWriterSize(conn, n)
+	}
+	if v == nil {
+		n := c.WriteBufferSize
+		if n <= 0 {
+			n = defaultWriteBufferSize
 		}
 		}
+		return bufio.NewWriterSize(conn, n)
 	}
 	}
 
 
 	bw := v.(*bufio.Writer)
 	bw := v.(*bufio.Writer)
@@ -1881,22 +1871,15 @@ func (c *HostClient) AcquireReader(conn net.Conn) *bufio.Reader {
 	var v any
 	var v any
 	if c.clientReaderPool != nil {
 	if c.clientReaderPool != nil {
 		v = c.clientReaderPool.Get()
 		v = c.clientReaderPool.Get()
-		if v == nil {
-			n := c.ReadBufferSize
-			if n <= 0 {
-				n = defaultReadBufferSize
-			}
-			return bufio.NewReaderSize(conn, n)
-		}
 	} else {
 	} else {
 		v = c.readerPool.Get()
 		v = c.readerPool.Get()
-		if v == nil {
-			n := c.ReadBufferSize
-			if n <= 0 {
-				n = defaultReadBufferSize
-			}
-			return bufio.NewReaderSize(conn, n)
+	}
+	if v == nil {
+		n := c.ReadBufferSize
+		if n <= 0 {
+			n = defaultReadBufferSize
 		}
 		}
+		return bufio.NewReaderSize(conn, n)
 	}
 	}
 
 
 	br := v.(*bufio.Reader)
 	br := v.(*bufio.Reader)

+ 56 - 44
v2/vendor/github.com/valyala/fasthttp/fs.go

@@ -553,16 +553,12 @@ type fsFile struct {
 
 
 func (ff *fsFile) NewReader() (io.Reader, error) {
 func (ff *fsFile) NewReader() (io.Reader, error) {
 	if ff.isBig() {
 	if ff.isBig() {
-		r, err := ff.bigFileReader()
-		if err != nil {
-			ff.decReadersCount()
-		}
-		return r, err
+		return ff.bigFileReader()
 	}
 	}
-	return ff.smallFileReader()
+	return ff.smallFileReader(), nil
 }
 }
 
 
-func (ff *fsFile) smallFileReader() (io.Reader, error) {
+func (ff *fsFile) smallFileReader() io.Reader {
 	v := ff.h.smallFileReaderPool.Get()
 	v := ff.h.smallFileReaderPool.Get()
 	if v == nil {
 	if v == nil {
 		v = &fsSmallFileReader{}
 		v = &fsSmallFileReader{}
@@ -571,9 +567,9 @@ func (ff *fsFile) smallFileReader() (io.Reader, error) {
 	r.ff = ff
 	r.ff = ff
 	r.endPos = ff.contentLength
 	r.endPos = ff.contentLength
 	if r.startPos > 0 {
 	if r.startPos > 0 {
-		return nil, errors.New("bug: fsSmallFileReader with non-nil startPos found in the pool")
+		panic("bug: fsSmallFileReader with non-nil startPos found in the pool")
 	}
 	}
-	return r, nil
+	return r
 }
 }
 
 
 // Files bigger than this size are sent with sendfile.
 // Files bigger than this size are sent with sendfile.
@@ -631,12 +627,12 @@ func (ff *fsFile) Release() {
 }
 }
 
 
 func (ff *fsFile) decReadersCount() {
 func (ff *fsFile) decReadersCount() {
-	ff.h.cacheManager.WithLock(func() {
-		ff.readersCount--
-		if ff.readersCount < 0 {
-			ff.readersCount = 0
-		}
-	})
+	ff.h.cacheManager.Lock()
+	ff.readersCount--
+	if ff.readersCount < 0 {
+		panic("bug: fsFile.readersCount < 0")
+	}
+	ff.h.cacheManager.Unlock()
 }
 }
 
 
 // bigFileReader attempts to trigger sendfile
 // bigFileReader attempts to trigger sendfile
@@ -796,9 +792,10 @@ func (r *fsSmallFileReader) WriteTo(w io.Writer) (int64, error) {
 }
 }
 
 
 type cacheManager interface {
 type cacheManager interface {
-	WithLock(work func())
-	GetFileFromCache(cacheKind CacheKind, path string) (*fsFile, bool)
-	SetFileToCache(cacheKind CacheKind, path string, ff *fsFile) *fsFile
+	Lock()
+	Unlock()
+	GetFileFromCache(cacheKind CacheKind, path []byte) (*fsFile, bool)
+	SetFileToCache(cacheKind CacheKind, path []byte, ff *fsFile) *fsFile
 }
 }
 
 
 var (
 var (
@@ -842,19 +839,22 @@ type noopCacheManager struct {
 	cacheLock sync.Mutex
 	cacheLock sync.Mutex
 }
 }
 
 
-func (n *noopCacheManager) WithLock(work func()) {
+func (n *noopCacheManager) Lock() {
 	n.cacheLock.Lock()
 	n.cacheLock.Lock()
+}
 
 
-	work()
-
+func (n *noopCacheManager) Unlock() {
 	n.cacheLock.Unlock()
 	n.cacheLock.Unlock()
 }
 }
 
 
-func (*noopCacheManager) GetFileFromCache(cacheKind CacheKind, path string) (*fsFile, bool) {
+func (*noopCacheManager) GetFileFromCache(cacheKind CacheKind, path []byte) (*fsFile, bool) {
 	return nil, false
 	return nil, false
 }
 }
 
 
-func (*noopCacheManager) SetFileToCache(cacheKind CacheKind, path string, ff *fsFile) *fsFile {
+func (n *noopCacheManager) SetFileToCache(cacheKind CacheKind, path []byte, ff *fsFile) *fsFile {
+	n.cacheLock.Lock()
+	ff.readersCount++
+	n.cacheLock.Unlock()
 	return ff
 	return ff
 }
 }
 
 
@@ -867,11 +867,11 @@ type inMemoryCacheManager struct {
 	cacheLock     sync.Mutex
 	cacheLock     sync.Mutex
 }
 }
 
 
-func (cm *inMemoryCacheManager) WithLock(work func()) {
+func (cm *inMemoryCacheManager) Lock() {
 	cm.cacheLock.Lock()
 	cm.cacheLock.Lock()
+}
 
 
-	work()
-
+func (cm *inMemoryCacheManager) Unlock() {
 	cm.cacheLock.Unlock()
 	cm.cacheLock.Unlock()
 }
 }
 
 
@@ -889,11 +889,11 @@ func (cm *inMemoryCacheManager) getFsCache(cacheKind CacheKind) map[string]*fsFi
 	return fileCache
 	return fileCache
 }
 }
 
 
-func (cm *inMemoryCacheManager) GetFileFromCache(cacheKind CacheKind, path string) (*fsFile, bool) {
+func (cm *inMemoryCacheManager) GetFileFromCache(cacheKind CacheKind, path []byte) (*fsFile, bool) {
 	fileCache := cm.getFsCache(cacheKind)
 	fileCache := cm.getFsCache(cacheKind)
 
 
 	cm.cacheLock.Lock()
 	cm.cacheLock.Lock()
-	ff, ok := fileCache[path]
+	ff, ok := fileCache[string(path)]
 	if ok {
 	if ok {
 		ff.readersCount++
 		ff.readersCount++
 	}
 	}
@@ -902,13 +902,13 @@ func (cm *inMemoryCacheManager) GetFileFromCache(cacheKind CacheKind, path strin
 	return ff, ok
 	return ff, ok
 }
 }
 
 
-func (cm *inMemoryCacheManager) SetFileToCache(cacheKind CacheKind, path string, ff *fsFile) *fsFile {
+func (cm *inMemoryCacheManager) SetFileToCache(cacheKind CacheKind, path []byte, ff *fsFile) *fsFile {
 	fileCache := cm.getFsCache(cacheKind)
 	fileCache := cm.getFsCache(cacheKind)
 
 
 	cm.cacheLock.Lock()
 	cm.cacheLock.Lock()
-	ff1, ok := fileCache[path]
+	ff1, ok := fileCache[string(path)]
 	if !ok {
 	if !ok {
-		fileCache[path] = ff
+		fileCache[string(path)] = ff
 		ff.readersCount++
 		ff.readersCount++
 	} else {
 	} else {
 		ff1.readersCount++
 		ff1.readersCount++
@@ -1005,14 +1005,31 @@ func cleanCacheNolock(
 	return pendingFiles, filesToRelease
 	return pendingFiles, filesToRelease
 }
 }
 
 
-func (h *fsHandler) pathToFilePath(path string) string {
+func (h *fsHandler) pathToFilePath(path []byte, hasTrailingSlash bool) string {
 	if _, ok := h.filesystem.(*osFS); !ok {
 	if _, ok := h.filesystem.(*osFS); !ok {
 		if len(path) < 1 {
 		if len(path) < 1 {
-			return path
+			return ""
+		} else if len(path) == 1 && path[0] == '/' {
+			return ""
+		}
+		if hasTrailingSlash {
+			return string(path[1 : len(path)-1])
 		}
 		}
-		return path[1:]
+		return string(path[1:])
+	}
+
+	// Use byte buffer pool to avoid string concatenation allocations
+	b := bytebufferpool.Get()
+	defer bytebufferpool.Put(b)
+
+	b.B = append(b.B, h.root...)
+	if hasTrailingSlash {
+		b.B = append(b.B, path[:len(path)-1]...)
+	} else {
+		b.B = append(b.B, path...)
 	}
 	}
-	return filepath.FromSlash(h.root + path)
+
+	return filepath.FromSlash(string(b.B))
 }
 }
 
 
 func (h *fsHandler) filePathToCompressed(filePath string) string {
 func (h *fsHandler) filePathToCompressed(filePath string) string {
@@ -1071,15 +1088,9 @@ func (h *fsHandler) handleRequest(ctx *RequestCtx) {
 		}
 		}
 	}
 	}
 
 
-	originalPathStr := string(path)
-	pathStr := originalPathStr
-	if hasTrailingSlash {
-		pathStr = originalPathStr[:len(originalPathStr)-1]
-	}
-
-	ff, ok := h.cacheManager.GetFileFromCache(fileCacheKind, originalPathStr)
+	ff, ok := h.cacheManager.GetFileFromCache(fileCacheKind, path)
 	if !ok {
 	if !ok {
-		filePath := h.pathToFilePath(pathStr)
+		filePath := h.pathToFilePath(path, hasTrailingSlash)
 
 
 		var err error
 		var err error
 		ff, err = h.openFSFile(filePath, mustCompress, fileEncoding)
 		ff, err = h.openFSFile(filePath, mustCompress, fileEncoding)
@@ -1112,7 +1123,7 @@ func (h *fsHandler) handleRequest(ctx *RequestCtx) {
 			return
 			return
 		}
 		}
 
 
-		ff = h.cacheManager.SetFileToCache(fileCacheKind, originalPathStr, ff)
+		ff = h.cacheManager.SetFileToCache(fileCacheKind, path, ff)
 	}
 	}
 
 
 	if !ctx.IfModifiedSince(ff.lastModified) {
 	if !ctx.IfModifiedSince(ff.lastModified) {
@@ -1123,6 +1134,7 @@ func (h *fsHandler) handleRequest(ctx *RequestCtx) {
 
 
 	r, err := ff.NewReader()
 	r, err := ff.NewReader()
 	if err != nil {
 	if err != nil {
+		ff.decReadersCount()
 		ctx.Logger().Printf("cannot obtain file reader for path=%q: %v", path, err)
 		ctx.Logger().Printf("cannot obtain file reader for path=%q: %v", path, err)
 		ctx.Error("Internal Server Error", StatusInternalServerError)
 		ctx.Error("Internal Server Error", StatusInternalServerError)
 		return
 		return

+ 110 - 221
v2/vendor/github.com/valyala/fasthttp/header.go

@@ -7,7 +7,6 @@ import (
 	"fmt"
 	"fmt"
 	"io"
 	"io"
 	"iter"
 	"iter"
-	"log/slog"
 	"sync"
 	"sync"
 	"sync/atomic"
 	"sync/atomic"
 	"time"
 	"time"
@@ -194,7 +193,33 @@ func (h *ResponseHeader) PeekCookie(key string) []byte {
 // It may be negative:
 // It may be negative:
 // -1 means Transfer-Encoding: chunked.
 // -1 means Transfer-Encoding: chunked.
 // -2 means Transfer-Encoding: identity.
 // -2 means Transfer-Encoding: identity.
-func (h *header) ContentLength() int {
+func (h *ResponseHeader) ContentLength() int {
+	return h.contentLength
+}
+
+// ContentLength returns Content-Length header value.
+//
+// It may be negative:
+// -1 means Transfer-Encoding: chunked.
+// -2 means Transfer-Encoding: identity.
+func (h *RequestHeader) ContentLength() int {
+	if h.disableSpecialHeader {
+		// Parse Content-Length from raw headers when special headers are disabled
+		v := peekArgBytes(h.h, strContentLength)
+		if len(v) == 0 {
+			// Check for Transfer-Encoding: chunked
+			te := peekArgBytes(h.h, strTransferEncoding)
+			if bytes.Equal(te, strChunked) {
+				return -1 // chunked
+			}
+			return -2 // identity
+		}
+		n, err := parseContentLength(v)
+		if err != nil {
+			return -2 // identity on parse error
+		}
+		return n
+	}
 	return h.contentLength
 	return h.contentLength
 }
 }
 
 
@@ -501,6 +526,35 @@ func validHeaderValueByte(c byte) bool {
 	return validHeaderValueByteTable[c] == 1
 	return validHeaderValueByteTable[c] == 1
 }
 }
 
 
+// isValidHeaderKey returns true if a is a valid header key.
+func isValidHeaderKey(a []byte) bool {
+	if len(a) == 0 {
+		return false
+	}
+
+	// See if a looks like a header key. If not, return it unchanged.
+	noCanon := false
+	for _, c := range a {
+		if validHeaderFieldByte(c) {
+			continue
+		}
+		// Don't canonicalize.
+		if c == ' ' {
+			// We accept invalid headers with a space before the
+			// colon, but must not canonicalize them.
+			// See https://go.dev/issue/34540.
+			noCanon = true
+			continue
+		}
+		return false
+	}
+	if noCanon {
+		return true
+	}
+
+	return true
+}
+
 // VisitHeaderParams calls f for each parameter in the given header bytes.
 // VisitHeaderParams calls f for each parameter in the given header bytes.
 // It stops processing when f returns false or an invalid parameter is found.
 // It stops processing when f returns false or an invalid parameter is found.
 // Parameter values may be quoted, in which case \ is treated as an escape
 // Parameter values may be quoted, in which case \ is treated as an escape
@@ -1966,9 +2020,25 @@ func (h *ResponseHeader) peekAll(key []byte) [][]byte {
 // either though ReleaseRequest or your request handler returning.
 // either though ReleaseRequest or your request handler returning.
 // Any future calls to the Peek* will modify the returned value.
 // Any future calls to the Peek* will modify the returned value.
 // Do not store references to returned value. Make copies instead.
 // Do not store references to returned value. Make copies instead.
-func (h *header) PeekKeys() [][]byte {
+func (h *RequestHeader) PeekKeys() [][]byte {
 	h.mulHeader = h.mulHeader[:0]
 	h.mulHeader = h.mulHeader[:0]
-	h.mulHeader = peekArgsKeys(h.mulHeader, h.h)
+	for key := range h.All() {
+		h.mulHeader = append(h.mulHeader, key)
+	}
+	return h.mulHeader
+}
+
+// PeekKeys return all header keys.
+//
+// The returned value is valid until the request is released,
+// either though ReleaseRequest or your request handler returning.
+// Any future calls to the Peek* will modify the returned value.
+// Do not store references to returned value. Make copies instead.
+func (h *ResponseHeader) PeekKeys() [][]byte {
+	h.mulHeader = h.mulHeader[:0]
+	for key := range h.All() {
+		h.mulHeader = append(h.mulHeader, key)
+	}
 	return h.mulHeader
 	return h.mulHeader
 }
 }
 
 
@@ -2105,8 +2175,8 @@ func (h *header) tryReadTrailer(r *bufio.Reader, n int) error {
 		return fmt.Errorf("error when reading response trailer: %w", err)
 		return fmt.Errorf("error when reading response trailer: %w", err)
 	}
 	}
 	b = mustPeekBuffered(r)
 	b = mustPeekBuffered(r)
-	trailers, headersLen, errParse := parseTrailer(b, h.h, h.disableNormalizing)
-	h.h = trailers
+	hh, headersLen, errParse := parseTrailer(b, h.h, h.disableNormalizing)
+	h.h = hh
 	if errParse != nil {
 	if errParse != nil {
 		if err == io.EOF {
 		if err == io.EOF {
 			return err
 			return err
@@ -2599,7 +2669,7 @@ func parseTrailer(src []byte, dest []argsKV, disableNormalizing bool) ([]argsKV,
 	if s.err != nil {
 	if s.err != nil {
 		return dest, 0, s.err
 		return dest, 0, s.err
 	}
 	}
-	return dest, s.hLen, nil
+	return dest, s.r, nil
 }
 }
 
 
 func isBadTrailer(key []byte) bool {
 func isBadTrailer(key []byte) bool {
@@ -2611,24 +2681,30 @@ func isBadTrailer(key []byte) bool {
 	case 'a':
 	case 'a':
 		return caseInsensitiveCompare(key, strAuthorization)
 		return caseInsensitiveCompare(key, strAuthorization)
 	case 'c':
 	case 'c':
-		if len(key) > len(HeaderContentType) && caseInsensitiveCompare(key[:8], strContentType[:8]) {
+		// Security fix: Changed > to >= to properly block Content-Type header in trailers
+		if len(key) >= len(HeaderContentType) && caseInsensitiveCompare(key[:8], strContentType[:8]) {
 			// skip compare prefix 'Content-'
 			// skip compare prefix 'Content-'
 			return caseInsensitiveCompare(key[8:], strContentEncoding[8:]) ||
 			return caseInsensitiveCompare(key[8:], strContentEncoding[8:]) ||
 				caseInsensitiveCompare(key[8:], strContentLength[8:]) ||
 				caseInsensitiveCompare(key[8:], strContentLength[8:]) ||
 				caseInsensitiveCompare(key[8:], strContentType[8:]) ||
 				caseInsensitiveCompare(key[8:], strContentType[8:]) ||
 				caseInsensitiveCompare(key[8:], strContentRange[8:])
 				caseInsensitiveCompare(key[8:], strContentRange[8:])
 		}
 		}
-		return caseInsensitiveCompare(key, strConnection)
+		return caseInsensitiveCompare(key, strConnection) ||
+			// Security: Block Cookie header in trailers to prevent session hijacking
+			caseInsensitiveCompare(key, strCookie)
 	case 'e':
 	case 'e':
 		return caseInsensitiveCompare(key, strExpect)
 		return caseInsensitiveCompare(key, strExpect)
 	case 'h':
 	case 'h':
 		return caseInsensitiveCompare(key, strHost)
 		return caseInsensitiveCompare(key, strHost)
 	case 'k':
 	case 'k':
 		return caseInsensitiveCompare(key, strKeepAlive)
 		return caseInsensitiveCompare(key, strKeepAlive)
+	case 'l':
+		// Security: Block Location header in trailers to prevent redirect attacks
+		return caseInsensitiveCompare(key, strLocation)
 	case 'm':
 	case 'm':
 		return caseInsensitiveCompare(key, strMaxForwards)
 		return caseInsensitiveCompare(key, strMaxForwards)
 	case 'p':
 	case 'p':
-		if len(key) > len(HeaderProxyConnection) && caseInsensitiveCompare(key[:6], strProxyConnection[:6]) {
+		if len(key) >= len(HeaderProxyConnection) && caseInsensitiveCompare(key[:6], strProxyConnection[:6]) {
 			// skip compare prefix 'Proxy-'
 			// skip compare prefix 'Proxy-'
 			return caseInsensitiveCompare(key[6:], strProxyConnection[6:]) ||
 			return caseInsensitiveCompare(key[6:], strProxyConnection[6:]) ||
 				caseInsensitiveCompare(key[6:], strProxyAuthenticate[6:]) ||
 				caseInsensitiveCompare(key[6:], strProxyAuthenticate[6:]) ||
@@ -2636,12 +2712,19 @@ func isBadTrailer(key []byte) bool {
 		}
 		}
 	case 'r':
 	case 'r':
 		return caseInsensitiveCompare(key, strRange)
 		return caseInsensitiveCompare(key, strRange)
+	case 's':
+		// Security: Block Set-Cookie header in trailers
+		return caseInsensitiveCompare(key, strSetCookie)
 	case 't':
 	case 't':
 		return caseInsensitiveCompare(key, strTE) ||
 		return caseInsensitiveCompare(key, strTE) ||
 			caseInsensitiveCompare(key, strTrailer) ||
 			caseInsensitiveCompare(key, strTrailer) ||
 			caseInsensitiveCompare(key, strTransferEncoding)
 			caseInsensitiveCompare(key, strTransferEncoding)
 	case 'w':
 	case 'w':
 		return caseInsensitiveCompare(key, strWWWAuthenticate)
 		return caseInsensitiveCompare(key, strWWWAuthenticate)
+	case 'x':
+		// Security: Block X-Forwarded-* and X-Real-IP headers to prevent IP spoofing
+		return (len(key) >= 11 && caseInsensitiveCompare(key[:11], []byte("x-forwarded"))) ||
+			(len(key) >= 9 && caseInsensitiveCompare(key[:9], []byte("x-real-ip")))
 	}
 	}
 	return false
 	return false
 }
 }
@@ -2916,7 +2999,7 @@ func (h *ResponseHeader) parseHeaders(buf []byte) (int, error) {
 		h.connectionClose = !hasHeaderValue(v, strKeepAlive)
 		h.connectionClose = !hasHeaderValue(v, strKeepAlive)
 	}
 	}
 
 
-	return len(buf) - len(s.b), nil
+	return s.r, nil
 }
 }
 
 
 func (h *RequestHeader) parseHeaders(buf []byte) (int, error) {
 func (h *RequestHeader) parseHeaders(buf []byte) (int, error) {
@@ -3046,7 +3129,7 @@ func (h *RequestHeader) parseHeaders(buf []byte) (int, error) {
 		v := peekArgBytes(h.h, strConnection)
 		v := peekArgBytes(h.h, strConnection)
 		h.connectionClose = !hasHeaderValue(v, strKeepAlive)
 		h.connectionClose = !hasHeaderValue(v, strKeepAlive)
 	}
 	}
-	return s.hLen, nil
+	return s.r, nil
 }
 }
 
 
 func (h *RequestHeader) collectCookies() {
 func (h *RequestHeader) collectCookies() {
@@ -3082,164 +3165,6 @@ func parseContentLength(b []byte) (int, error) {
 	return v, nil
 	return v, nil
 }
 }
 
 
-type headerScanner struct {
-	err error
-
-	b     []byte
-	key   []byte
-	value []byte
-
-	// hLen stores header subslice len
-	hLen int
-
-	// by checking whether the next line contains a colon or not to tell
-	// it's a header entry or a multi line value of current header entry.
-	// the side effect of this operation is that we know the index of the
-	// next colon and new line, so this can be used during next iteration,
-	// instead of find them again.
-	nextColon   int
-	nextNewLine int
-
-	initialized bool
-
-	// This is only used to print the deprecated newline separator warning.
-	// TODO: Remove this again once the newline separator is removed.
-	warned bool
-}
-
-// DeprecatedNewlineIncludeContext is used to control whether the context of the
-// header is included in the warning message about the deprecated newline
-// separator.
-// Warning: this can potentially leak sensitive information such as auth headers.
-var DeprecatedNewlineIncludeContext atomic.Bool
-
-// TODO: Remove this again once the newline separator is removed.
-var warnedAboutDeprecatedNewlineSeparatorLimiter atomic.Int64
-
-func (s *headerScanner) next() bool {
-	if !s.initialized {
-		s.nextColon = -1
-		s.nextNewLine = -1
-		s.initialized = true
-	}
-	bLen := len(s.b)
-	if bLen >= 2 && s.b[0] == rChar && s.b[1] == nChar {
-		s.b = s.b[2:]
-		s.hLen += 2
-		return false
-	}
-	if bLen >= 1 && s.b[0] == nChar {
-		s.b = s.b[1:]
-		s.hLen++
-		return false
-	}
-	var n int
-	if s.nextColon >= 0 {
-		n = s.nextColon
-		s.nextColon = -1
-	} else {
-		n = bytes.IndexByte(s.b, ':')
-
-		// There can't be a \n inside the header name, check for this.
-		x := bytes.IndexByte(s.b, nChar)
-		if x < 0 {
-			// A header name should always at some point be followed by a \n
-			// even if it's the one that terminates the header block.
-			s.err = errNeedMore
-			return false
-		}
-		if x < n {
-			// There was a \n before the :
-			s.err = errInvalidName
-			return false
-		}
-
-		// If the character before '\n' isn't '\r', print a warning.
-		if !s.warned && x > 1 && s.b[x-1] != rChar {
-			// Only warn once per second.
-			now := time.Now().Unix()
-			if warnedAboutDeprecatedNewlineSeparatorLimiter.Load() < now {
-				if warnedAboutDeprecatedNewlineSeparatorLimiter.Swap(now) < now {
-					if DeprecatedNewlineIncludeContext.Load() {
-						// Include 20 characters after the '\n'.
-						xx := x + 20
-						if len(s.b) < xx {
-							xx = len(s.b)
-						}
-						slog.Error("Deprecated newline only separator found in header", "context", fmt.Sprintf("%q", s.b[:xx]))
-					} else {
-						slog.Error("Deprecated newline only separator found in header")
-					}
-					s.warned = true
-				}
-			}
-		}
-	}
-	if n < 0 {
-		s.err = errNeedMore
-		return false
-	}
-	s.key = s.b[:n]
-	n++
-	for len(s.b) > n && (s.b[n] == ' ' || s.b[n] == '\t') {
-		n++
-		// the newline index is a relative index, and lines below trimmed `s.b` by `n`,
-		// so the relative newline index also shifted forward. it's safe to decrease
-		// to a minus value, it means it's invalid, and will find the newline again.
-		s.nextNewLine--
-	}
-	s.hLen += n
-	s.b = s.b[n:]
-	if s.nextNewLine >= 0 {
-		n = s.nextNewLine
-		s.nextNewLine = -1
-	} else {
-		n = bytes.IndexByte(s.b, nChar)
-	}
-	if n < 0 {
-		s.err = errNeedMore
-		return false
-	}
-	for n+1 < len(s.b) {
-		if s.b[n+1] != ' ' && s.b[n+1] != '\t' {
-			break
-		}
-		d := bytes.IndexByte(s.b[n+1:], nChar)
-		if d <= 0 {
-			break
-		} else if d == 1 && s.b[n+1] == rChar {
-			break
-		}
-		e := n + d + 1
-		if c := bytes.IndexByte(s.b[n+1:e], ':'); c >= 0 {
-			s.nextColon = c
-			s.nextNewLine = d - c - 1
-			break
-		}
-		n = e
-	}
-	if n >= len(s.b) {
-		s.err = errNeedMore
-		return false
-	}
-	s.value = s.b[:n]
-	s.hLen += n + 1
-	s.b = s.b[n+1:]
-
-	if n > 0 && s.value[n-1] == rChar {
-		n--
-	}
-	for n > 0 && (s.value[n-1] == ' ' || s.value[n-1] == '\t') {
-		n--
-	}
-	s.value = s.value[:n]
-	if bytes.Contains(s.b, strCRLF) {
-		s.value = normalizeHeaderValue(s.value)
-	}
-
-	return true
-}
-
 type headerValueScanner struct {
 type headerValueScanner struct {
 	b     []byte
 	b     []byte
 	value []byte
 	value []byte
@@ -3308,46 +3233,6 @@ func getHeaderKeyBytes(bufK []byte, key string, disableNormalizing bool) []byte
 	return bufK
 	return bufK
 }
 }
 
 
-func normalizeHeaderValue(ov []byte) (nv []byte) {
-	nv = ov
-	length := len(ov)
-	if length <= 0 {
-		return
-	}
-	write := 0
-	shrunk := 0
-	once := false
-	lineStart := false
-	for read := 0; read < length; read++ {
-		c := ov[read]
-		switch {
-		case c == rChar || c == nChar:
-			shrunk++
-			if c == nChar {
-				lineStart = true
-				once = false
-			}
-			continue
-		case lineStart && (c == '\t' || c == ' '):
-			if !once {
-				c = ' '
-				once = true
-			} else {
-				shrunk++
-				continue
-			}
-		default:
-			lineStart = false
-		}
-		nv[write] = c
-		write++
-	}
-
-	nv = nv[:length-shrunk]
-
-	return
-}
-
 func normalizeHeaderKey(b []byte, disableNormalizing bool) {
 func normalizeHeaderKey(b []byte, disableNormalizing bool) {
 	if disableNormalizing {
 	if disableNormalizing {
 		return
 		return
@@ -3358,17 +3243,22 @@ func normalizeHeaderKey(b []byte, disableNormalizing bool) {
 		return
 		return
 	}
 	}
 
 
-	b[0] = toUpperTable[b[0]]
-	for i := 1; i < n; i++ {
-		p := &b[i]
-		if *p == '-' {
-			i++
-			if i < n {
-				b[i] = toUpperTable[b[i]]
-			}
-			continue
+	// If the header isn't valid, we don't normalize it.
+	for _, c := range b {
+		if !validHeaderFieldByte(c) {
+			return
+		}
+	}
+
+	upper := true
+	for i, c := range b {
+		if upper {
+			c = toUpperTable[c]
+		} else {
+			c = toLowerTable[c]
 		}
 		}
-		*p = toLowerTable[*p]
+		upper = c == '-'
+		b[i] = c
 	}
 	}
 }
 }
 
 
@@ -3460,7 +3350,6 @@ func copyTrailer(dst, src [][]byte) [][]byte {
 
 
 var (
 var (
 	errNeedMore    = errors.New("need more data: cannot find trailing lf")
 	errNeedMore    = errors.New("need more data: cannot find trailing lf")
-	errInvalidName = errors.New("invalid header name")
 	errSmallBuffer = errors.New("small read buffer. Increase ReadBufferSize")
 	errSmallBuffer = errors.New("small read buffer. Increase ReadBufferSize")
 )
 )
 
 

+ 168 - 0
v2/vendor/github.com/valyala/fasthttp/headerscanner.go

@@ -0,0 +1,168 @@
+package fasthttp
+
+import (
+	"bytes"
+	"errors"
+	"fmt"
+)
+
+type headerScanner struct {
+	initialized bool
+
+	b []byte
+	r int
+
+	key   []byte
+	value []byte
+
+	err error
+}
+
+func (s *headerScanner) next() bool {
+	if !s.initialized {
+		if bytes.HasPrefix(s.b, strCRLF) {
+			s.r = 2
+			return false
+		}
+
+		i := bytes.Index(s.b, strCRLFCRLF)
+		if i < 0 {
+			s.err = errNeedMore
+			return false
+		}
+		i += 4
+
+		s.b = s.b[:i]
+		if len(s.b) > 0 && (s.b[0] == ' ' || s.b[0] == '\t') {
+			s.err = errors.New("invalid headers, headers cannot start with space or tab")
+			return false
+		}
+
+		s.initialized = true
+	}
+
+	kv, err := s.readContinuedLineSlice()
+	if len(kv) == 0 {
+		s.err = err
+		return false
+	}
+
+	// Key ends at first colon.
+	k, v, ok := bytes.Cut(kv, strColon)
+	if !ok {
+		s.err = fmt.Errorf("malformed MIME header line: %q", kv)
+		return false
+	}
+	if !isValidHeaderKey(k) {
+		s.err = fmt.Errorf("malformed MIME header line: %q", kv)
+		return false
+	}
+
+	// Skip initial spaces in value.
+	v = bytes.TrimLeft(v, " \t")
+
+	s.key = k
+	s.value = v
+
+	if err != nil {
+		s.err = err
+		return false
+	}
+
+	return true
+}
+
+// readLine reads a line from b, starting at s.r, and returns it.
+func (s *headerScanner) readLine() (line []byte) {
+	searchStart := 0
+
+	for {
+		if i := bytes.IndexByte(s.b[s.r+searchStart:], '\n'); i >= 0 {
+			i += searchStart
+			line = s.b[s.r : s.r+i+1]
+			s.r += i + 1
+			break
+		}
+
+		searchStart = len(s.b) - s.r
+	}
+
+	if len(line) == 0 {
+		return
+	}
+
+	// drop \n and possible preceding \r
+	if line[len(line)-1] == '\n' {
+		drop := 1
+		if len(line) > 1 && line[len(line)-2] == '\r' {
+			drop = 2
+		}
+		line = line[:len(line)-drop]
+	}
+	return
+}
+
+// readContinuedLineSlice reads continued lines from b until it finds a line
+// that does not start with a space or tab, or it reaches the end of b.
+func (s *headerScanner) readContinuedLineSlice() ([]byte, error) {
+	line := s.readLine()
+	if len(line) == 0 { // blank line - no continuation
+		return line, nil
+	}
+
+	if bytes.IndexByte(line, ':') < 0 {
+		return nil, fmt.Errorf("malformed MIME header: missing colon: %q", line)
+	}
+
+	// If the line doesn't start with a space or tab, we are done.
+	if len(s.b)-s.r > 1 {
+		peek := s.b[s.r : s.r+2]
+		if len(peek) > 0 && (isASCIILetter(peek[0]) || peek[0] == '\n') ||
+			len(peek) == 2 && peek[0] == '\r' && peek[1] == '\n' {
+			return trim(line), nil
+		}
+	}
+
+	mline := trim(line)
+
+	// Read continuation lines.
+	for s.skipSpace() {
+		mline = append(mline, ' ')
+		line := s.readLine()
+		mline = append(mline, trim(line)...)
+	}
+	return mline, nil
+}
+
+// skipSpace skips one or multiple spaces and tabs in b.
+func (s *headerScanner) skipSpace() bool {
+	skipped := false
+	for {
+		c := s.b[s.r]
+		if c != ' ' && c != '\t' {
+			break
+		}
+		s.r++
+		skipped = true
+	}
+	return skipped
+}
+
+func isASCIILetter(b byte) bool {
+	b |= 0x20 // Make lower case.
+	return 'a' <= b && b <= 'z'
+}
+
+// trim returns s with leading and trailing spaces and tabs removed.
+// It does not assume Unicode or UTF-8.
+func trim(s []byte) []byte {
+	i := 0
+	for i < len(s) && (s[i] == ' ' || s[i] == '\t') {
+		i++
+	}
+	n := len(s)
+	for n > i && (s[n-1] == ' ' || s[n-1] == '\t') {
+		n--
+	}
+	return s[i:n]
+}

+ 1 - 1
v2/vendor/github.com/valyala/fasthttp/http.go

@@ -1451,7 +1451,7 @@ func (resp *Response) ReadLimitBody(r *bufio.Reader, maxBodySize int) error {
 	if err != nil {
 	if err != nil {
 		return err
 		return err
 	}
 	}
-	if resp.Header.StatusCode() == StatusContinue {
+	if resp.Header.statusCode == StatusContinue {
 		// Read the next response according to http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html .
 		// Read the next response according to http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html .
 		if err = resp.Header.Read(r); err != nil {
 		if err = resp.Header.Read(r); err != nil {
 			return err
 			return err

+ 1 - 1
v2/vendor/github.com/valyala/fasthttp/reuseport/reuseport.go

@@ -1,4 +1,4 @@
-//go:build !windows && !aix
+//go:build !windows && !aix && !solaris
 
 
 // Package reuseport provides TCP net.Listener with SO_REUSEPORT support.
 // Package reuseport provides TCP net.Listener with SO_REUSEPORT support.
 //
 //

+ 31 - 0
v2/vendor/github.com/valyala/fasthttp/reuseport/reuseport_solaris.go

@@ -0,0 +1,31 @@
+//go:build solaris
+
+package reuseport
+
+import (
+	"context"
+	"net"
+	"syscall"
+
+	"golang.org/x/sys/unix"
+)
+
+const (
+	_SO_REUSEPORT = 0x100e
+)
+
+var listenConfig = net.ListenConfig{
+	Control: func(network, address string, c syscall.RawConn) (err error) {
+		return c.Control(func(fd uintptr) {
+			err = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_REUSEADDR, 1)
+			if err == nil {
+				err = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, _SO_REUSEPORT, 1)
+			}
+		})
+	},
+}
+
+// Listen returns a TCP listener with the SO_REUSEADDR and SO_REUSEPORT options set.
+func Listen(network, addr string) (net.Listener, error) {
+	return listenConfig.Listen(context.Background(), network, addr)
+}

+ 1 - 0
v2/vendor/github.com/valyala/fasthttp/strings.go

@@ -17,6 +17,7 @@ var (
 	strSlashDotDotBackSlash     = []byte(`/..\`)
 	strSlashDotDotBackSlash     = []byte(`/..\`)
 	strBackSlashDotDotBackSlash = []byte(`\..\`)
 	strBackSlashDotDotBackSlash = []byte(`\..\`)
 	strCRLF                     = []byte("\r\n")
 	strCRLF                     = []byte("\r\n")
+	strCRLFCRLF                 = []byte("\r\n\r\n")
 	strHTTP                     = []byte("http")
 	strHTTP                     = []byte("http")
 	strHTTPS                    = []byte("https")
 	strHTTPS                    = []byte("https")
 	strHTTP11                   = []byte("HTTP/1.1")
 	strHTTP11                   = []byte("HTTP/1.1")

+ 5 - 21
v2/vendor/github.com/valyala/fasthttp/zstd.go

@@ -21,7 +21,6 @@ const (
 
 
 var (
 var (
 	zstdDecoderPool            sync.Pool
 	zstdDecoderPool            sync.Pool
-	zstdEncoderPool            sync.Pool
 	realZstdWriterPoolMap      = newCompressWriterPoolMap()
 	realZstdWriterPoolMap      = newCompressWriterPoolMap()
 	stacklessZstdWriterPoolMap = newCompressWriterPoolMap()
 	stacklessZstdWriterPoolMap = newCompressWriterPoolMap()
 )
 )
@@ -42,21 +41,6 @@ func releaseZstdReader(zr *zstd.Decoder) {
 	zstdDecoderPool.Put(zr)
 	zstdDecoderPool.Put(zr)
 }
 }
 
 
-func acquireZstdWriter(w io.Writer, level int) (*zstd.Encoder, error) {
-	v := zstdEncoderPool.Get()
-	if v == nil {
-		return zstd.NewWriter(w, zstd.WithEncoderLevel(zstd.EncoderLevel(level)))
-	}
-	zw := v.(*zstd.Encoder)
-	zw.Reset(w)
-	return zw, nil
-}
-
-func releaseZstdWriter(zw *zstd.Encoder) { //nolint:unused
-	zw.Close()
-	zstdEncoderPool.Put(zw)
-}
-
 func acquireStacklessZstdWriter(w io.Writer, compressLevel int) stackless.Writer {
 func acquireStacklessZstdWriter(w io.Writer, compressLevel int) stackless.Writer {
 	nLevel := normalizeZstdCompressLevel(compressLevel)
 	nLevel := normalizeZstdCompressLevel(compressLevel)
 	p := stacklessZstdWriterPoolMap[nLevel]
 	p := stacklessZstdWriterPoolMap[nLevel]
@@ -71,9 +55,9 @@ func acquireStacklessZstdWriter(w io.Writer, compressLevel int) stackless.Writer
 	return sw
 	return sw
 }
 }
 
 
-func releaseStacklessZstdWriter(zf stackless.Writer, zstdDefault int) {
+func releaseStacklessZstdWriter(zf stackless.Writer, level int) {
 	zf.Close()
 	zf.Close()
-	nLevel := normalizeZstdCompressLevel(zstdDefault)
+	nLevel := normalizeZstdCompressLevel(level)
 	p := stacklessZstdWriterPoolMap[nLevel]
 	p := stacklessZstdWriterPoolMap[nLevel]
 	p.Put(zf)
 	p.Put(zf)
 }
 }
@@ -83,7 +67,7 @@ func acquireRealZstdWriter(w io.Writer, level int) *zstd.Encoder {
 	p := realZstdWriterPoolMap[nLevel]
 	p := realZstdWriterPoolMap[nLevel]
 	v := p.Get()
 	v := p.Get()
 	if v == nil {
 	if v == nil {
-		zw, err := acquireZstdWriter(w, level)
+		zw, err := zstd.NewWriter(w, zstd.WithEncoderLevel(zstd.EncoderLevel(level)))
 		if err != nil {
 		if err != nil {
 			panic(err)
 			panic(err)
 		}
 		}
@@ -94,7 +78,7 @@ func acquireRealZstdWriter(w io.Writer, level int) *zstd.Encoder {
 	return zw
 	return zw
 }
 }
 
 
-func releaseRealZstdWrter(zw *zstd.Encoder, level int) {
+func releaseRealZstdWriter(zw *zstd.Encoder, level int) {
 	zw.Close()
 	zw.Close()
 	nLevel := normalizeZstdCompressLevel(level)
 	nLevel := normalizeZstdCompressLevel(level)
 	p := realZstdWriterPoolMap[nLevel]
 	p := realZstdWriterPoolMap[nLevel]
@@ -144,7 +128,7 @@ func nonblockingWriteZstd(ctxv any) {
 	ctx := ctxv.(*compressCtx)
 	ctx := ctxv.(*compressCtx)
 	zw := acquireRealZstdWriter(ctx.w, ctx.level)
 	zw := acquireRealZstdWriter(ctx.w, ctx.level)
 	zw.Write(ctx.p) //nolint:errcheck
 	zw.Write(ctx.p) //nolint:errcheck
-	releaseRealZstdWrter(zw, ctx.level)
+	releaseRealZstdWriter(zw, ctx.level)
 }
 }
 
 
 // AppendZstdBytes appends zstd src to dst and returns the resulting dst.
 // AppendZstdBytes appends zstd src to dst and returns the resulting dst.

+ 1 - 0
v2/vendor/go.opentelemetry.io/otel/.codespellignore

@@ -7,3 +7,4 @@ ans
 nam
 nam
 valu
 valu
 thirdparty
 thirdparty
+addOpt

+ 19 - 9
v2/vendor/go.opentelemetry.io/otel/.golangci.yml

@@ -10,6 +10,7 @@ linters:
     - depguard
     - depguard
     - errcheck
     - errcheck
     - errorlint
     - errorlint
+    - gocritic
     - godot
     - godot
     - gosec
     - gosec
     - govet
     - govet
@@ -86,6 +87,18 @@ linters:
           deny:
           deny:
             - pkg: go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal
             - pkg: go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal
               desc: Do not use cross-module internal packages.
               desc: Do not use cross-module internal packages.
+    gocritic:
+      disabled-checks:
+        - appendAssign
+        - commentedOutCode
+        - dupArg
+        - hugeParam
+        - importShadow
+        - preferDecodeRune
+        - rangeValCopy
+        - unnamedResult
+        - whyNoLint
+      enable-all: true
     godot:
     godot:
       exclude:
       exclude:
         # Exclude links.
         # Exclude links.
@@ -167,7 +180,10 @@ linters:
             - fmt.Print
             - fmt.Print
             - fmt.Printf
             - fmt.Printf
             - fmt.Println
             - fmt.Println
+        - name: unused-parameter
+        - name: unused-receiver
         - name: unnecessary-stmt
         - name: unnecessary-stmt
+        - name: use-any
         - name: useless-break
         - name: useless-break
         - name: var-declaration
         - name: var-declaration
         - name: var-naming
         - name: var-naming
@@ -224,10 +240,6 @@ linters:
       - linters:
       - linters:
           - gosec
           - gosec
         text: 'G402: TLS MinVersion too low.'
         text: 'G402: TLS MinVersion too low.'
-    paths:
-      - third_party$
-      - builtin$
-      - examples$
 issues:
 issues:
   max-issues-per-linter: 0
   max-issues-per-linter: 0
   max-same-issues: 0
   max-same-issues: 0
@@ -237,14 +249,12 @@ formatters:
     - goimports
     - goimports
     - golines
     - golines
   settings:
   settings:
+    gofumpt:
+      extra-rules: true
     goimports:
     goimports:
       local-prefixes:
       local-prefixes:
-        - go.opentelemetry.io
+        - go.opentelemetry.io/otel
     golines:
     golines:
       max-len: 120
       max-len: 120
   exclusions:
   exclusions:
     generated: lax
     generated: lax
-    paths:
-      - third_party$
-      - builtin$
-      - examples$

+ 3 - 0
v2/vendor/go.opentelemetry.io/otel/.lycheeignore

@@ -2,5 +2,8 @@ http://localhost
 http://jaeger-collector
 http://jaeger-collector
 https://github.com/open-telemetry/opentelemetry-go/milestone/
 https://github.com/open-telemetry/opentelemetry-go/milestone/
 https://github.com/open-telemetry/opentelemetry-go/projects
 https://github.com/open-telemetry/opentelemetry-go/projects
+# Weaver model URL for semantic-conventions repository.
+https?:\/\/github\.com\/open-telemetry\/semantic-conventions\/archive\/refs\/tags\/[^.]+\.zip\[[^]]+]
 file:///home/runner/work/opentelemetry-go/opentelemetry-go/libraries
 file:///home/runner/work/opentelemetry-go/opentelemetry-go/libraries
 file:///home/runner/work/opentelemetry-go/opentelemetry-go/manual
 file:///home/runner/work/opentelemetry-go/opentelemetry-go/manual
+http://4.3.2.1:78/user/123

+ 90 - 1
v2/vendor/go.opentelemetry.io/otel/CHANGELOG.md

@@ -11,6 +11,93 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
 <!-- Released section -->
 <!-- Released section -->
 <!-- Don't change this section unless doing release -->
 <!-- Don't change this section unless doing release -->
 
 
+## [1.38.0/0.60.0/0.14.0/0.0.13] 2025-08-29
+
+This release is the last to support [Go 1.23].
+The next release will require at least [Go 1.24].
+
+### Added
+
+- Add native histogram exemplar support in `go.opentelemetry.io/otel/exporters/prometheus`. (#6772)
+- Add template attribute functions to the `go.opentelmetry.io/otel/semconv/v1.34.0` package. (#6939)
+  - `ContainerLabel`
+  - `DBOperationParameter`
+  - `DBSystemParameter`
+  - `HTTPRequestHeader`
+  - `HTTPResponseHeader`
+  - `K8SCronJobAnnotation`
+  - `K8SCronJobLabel`
+  - `K8SDaemonSetAnnotation`
+  - `K8SDaemonSetLabel`
+  - `K8SDeploymentAnnotation`
+  - `K8SDeploymentLabel`
+  - `K8SJobAnnotation`
+  - `K8SJobLabel`
+  - `K8SNamespaceAnnotation`
+  - `K8SNamespaceLabel`
+  - `K8SNodeAnnotation`
+  - `K8SNodeLabel`
+  - `K8SPodAnnotation`
+  - `K8SPodLabel`
+  - `K8SReplicaSetAnnotation`
+  - `K8SReplicaSetLabel`
+  - `K8SStatefulSetAnnotation`
+  - `K8SStatefulSetLabel`
+  - `ProcessEnvironmentVariable`
+  - `RPCConnectRPCRequestMetadata`
+  - `RPCConnectRPCResponseMetadata`
+  - `RPCGRPCRequestMetadata`
+  - `RPCGRPCResponseMetadata`
+- Add `ErrorType` attribute helper function to the `go.opentelmetry.io/otel/semconv/v1.34.0` package. (#6962)
+- Add `WithAllowKeyDuplication` in `go.opentelemetry.io/otel/sdk/log` which can be used to disable deduplication for log records. (#6968)
+- Add `WithCardinalityLimit` option to configure the cardinality limit in `go.opentelemetry.io/otel/sdk/metric`. (#6996, #7065, #7081, #7164, #7165, #7179)
+- Add `Clone` method to `Record` in `go.opentelemetry.io/otel/log` that returns a copy of the record with no shared state. (#7001)
+- Add experimental self-observability span and batch span processor metrics in `go.opentelemetry.io/otel/sdk/trace`.
+  Check the `go.opentelemetry.io/otel/sdk/trace/internal/x` package documentation for more information. (#7027, #6393, #7209)
+- The `go.opentelemetry.io/otel/semconv/v1.36.0` package.
+  The package contains semantic conventions from the `v1.36.0` version of the OpenTelemetry Semantic Conventions.
+  See the [migration documentation](./semconv/v1.36.0/MIGRATION.md) for information on how to upgrade from `go.opentelemetry.io/otel/semconv/v1.34.0.`(#7032, #7041)
+- Add support for configuring Prometheus name translation using `WithTranslationStrategy` option in `go.opentelemetry.io/otel/exporters/prometheus`. The current default translation strategy when UTF-8 mode is enabled is `NoUTF8EscapingWithSuffixes`, but a future release will change the default strategy to `UnderscoreEscapingWithSuffixes` for compliance with the specification. (#7111)
+- Add experimental self-observability log metrics in `go.opentelemetry.io/otel/sdk/log`.
+  Check the `go.opentelemetry.io/otel/sdk/log/internal/x` package documentation for more information. (#7121)
+- Add experimental self-observability trace exporter metrics in `go.opentelemetry.io/otel/exporters/stdout/stdouttrace`.
+  Check the `go.opentelemetry.io/otel/exporters/stdout/stdouttrace/internal/x` package documentation for more information. (#7133)
+- Support testing of [Go 1.25]. (#7187)
+- The `go.opentelemetry.io/otel/semconv/v1.37.0` package.
+  The package contains semantic conventions from the `v1.37.0` version of the OpenTelemetry Semantic Conventions.
+  See the [migration documentation](./semconv/v1.37.0/MIGRATION.md) for information on how to upgrade from `go.opentelemetry.io/otel/semconv/v1.36.0.`(#7254)
+
+### Changed
+
+- Optimize `TraceIDFromHex` and `SpanIDFromHex` in `go.opentelemetry.io/otel/sdk/trace`. (#6791)
+- Change `AssertEqual` in `go.opentelemetry.io/otel/log/logtest` to accept `TestingT` in order to support benchmarks and fuzz tests. (#6908)
+- Change `DefaultExemplarReservoirProviderSelector` in `go.opentelemetry.io/otel/sdk/metric` to use `runtime.GOMAXPROCS(0)` instead of `runtime.NumCPU()` for the `FixedSizeReservoirProvider` default size. (#7094)
+
+### Fixed
+
+- `SetBody` method of `Record` in `go.opentelemetry.io/otel/sdk/log` now deduplicates key-value collections (`log.Value` of `log.KindMap` from `go.opentelemetry.io/otel/log`). (#7002)
+- Fix `go.opentelemetry.io/otel/exporters/prometheus` to not append a suffix if it's already present in metric name. (#7088)
+- Fix the `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` self-observability component type and name. (#7195)
+- Fix partial export count metric in `go.opentelemetry.io/otel/exporters/stdout/stdouttrace`. (#7199)
+
+### Deprecated
+
+- Deprecate `WithoutUnits` and `WithoutCounterSuffixes` options, preferring `WithTranslationStrategy` instead. (#7111)
+- Deprecate support for `OTEL_GO_X_CARDINALITY_LIMIT` environment variable in `go.opentelemetry.io/otel/sdk/metric`. Use `WithCardinalityLimit` option instead. (#7166)
+
+## [0.59.1] 2025-07-21
+
+### Changed
+
+- Retract `v0.59.0` release of `go.opentelemetry.io/otel/exporters/prometheus` module which appends incorrect unit suffixes. (#7046)
+- Change `go.opentelemetry.io/otel/exporters/prometheus` to no longer deduplicate suffixes when UTF8 is enabled.
+  It is recommended to disable unit and counter suffixes in the exporter, and manually add suffixes if you rely on the existing behavior. (#7044)
+
+### Fixed
+
+- Fix `go.opentelemetry.io/otel/exporters/prometheus` to properly handle unit suffixes when the unit is in brackets.
+  E.g. `{spans}`. (#7044)
+
 ## [1.37.0/0.59.0/0.13.0] 2025-06-25
 ## [1.37.0/0.59.0/0.13.0] 2025-06-25
 
 
 ### Added
 ### Added
@@ -3343,7 +3430,8 @@ It contains api and sdk for trace and meter.
 - CircleCI build CI manifest files.
 - CircleCI build CI manifest files.
 - CODEOWNERS file to track owners of this project.
 - CODEOWNERS file to track owners of this project.
 
 
-[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.37.0...HEAD
+[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...HEAD
+[1.38.0/0.60.0/0.14.0/0.0.13]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.38.0
 [1.37.0/0.59.0/0.13.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.37.0
 [1.37.0/0.59.0/0.13.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.37.0
 [0.12.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/log/v0.12.2
 [0.12.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/log/v0.12.2
 [0.12.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/log/v0.12.1
 [0.12.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/log/v0.12.1
@@ -3439,6 +3527,7 @@ It contains api and sdk for trace and meter.
 
 
 <!-- Released section ended -->
 <!-- Released section ended -->
 
 
+[Go 1.25]: https://go.dev/doc/go1.25
 [Go 1.24]: https://go.dev/doc/go1.24
 [Go 1.24]: https://go.dev/doc/go1.24
 [Go 1.23]: https://go.dev/doc/go1.23
 [Go 1.23]: https://go.dev/doc/go1.23
 [Go 1.22]: https://go.dev/doc/go1.22
 [Go 1.22]: https://go.dev/doc/go1.22

+ 1 - 1
v2/vendor/go.opentelemetry.io/otel/CODEOWNERS

@@ -12,6 +12,6 @@
 #  https://help.github.com/en/articles/about-code-owners
 #  https://help.github.com/en/articles/about-code-owners
 #
 #
 
 
-* @MrAlias @XSAM @dashpole @pellared @dmathieu
+* @MrAlias @XSAM @dashpole @pellared @dmathieu @flc1125
 
 
 CODEOWNERS @MrAlias @pellared @dashpole @XSAM @dmathieu
 CODEOWNERS @MrAlias @pellared @dashpole @XSAM @dmathieu

+ 54 - 7
v2/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md

@@ -192,6 +192,35 @@ should have `go test -bench` output in their description.
 should have [`benchstat`](https://pkg.go.dev/golang.org/x/perf/cmd/benchstat)
 should have [`benchstat`](https://pkg.go.dev/golang.org/x/perf/cmd/benchstat)
 output in their description.
 output in their description.
 
 
+## Dependencies
+
+This project uses [Go Modules] for dependency management. All modules will use
+`go.mod` to explicitly list all direct and indirect dependencies, ensuring a
+clear dependency graph. The `go.sum` file for each module will be committed to
+the repository and used to verify the integrity of downloaded modules,
+preventing malicious tampering.
+
+This project uses automated dependency update tools (i.e. dependabot,
+renovatebot) to manage updates to dependencies. This ensures that dependencies
+are kept up-to-date with the latest security patches and features and are
+reviewed before being merged. If you would like to propose a change to a
+dependency it should be done through a pull request that updates the `go.mod`
+file and includes a description of the change.
+
+See the [versioning and compatibility](./VERSIONING.md) policy for more details
+about dependency compatibility.
+
+[Go Modules]: https://pkg.go.dev/cmd/go#hdr-Modules__module_versions__and_more
+
+### Environment Dependencies
+
+This project does not partition dependencies based on the environment (i.e.
+`development`, `staging`, `production`).
+
+Only the dependencies explicitly included in the released modules have be
+tested and verified to work with the released code. No other guarantee is made
+about the compatibility of other dependencies.
+
 ## Documentation
 ## Documentation
 
 
 Each (non-internal, non-test) package must be documented using
 Each (non-internal, non-test) package must be documented using
@@ -233,6 +262,10 @@ For a non-comprehensive but foundational overview of these best practices
 the [Effective Go](https://golang.org/doc/effective_go.html) documentation
 the [Effective Go](https://golang.org/doc/effective_go.html) documentation
 is an excellent starting place.
 is an excellent starting place.
 
 
+We also recommend following the
+[Go Code Review Comments](https://go.dev/wiki/CodeReviewComments)
+that collects common comments made during reviews of Go code.
+
 As a convenience for developers building this project the `make precommit`
 As a convenience for developers building this project the `make precommit`
 will format, lint, validate, and in some cases fix the changes you plan to
 will format, lint, validate, and in some cases fix the changes you plan to
 submit. This check will need to pass for your changes to be able to be
 submit. This check will need to pass for your changes to be able to be
@@ -586,6 +619,10 @@ See also:
 
 
 ### Testing
 ### Testing
 
 
+We allow using [`testify`](https://github.com/stretchr/testify) even though
+it is seen as non-idiomatic according to
+the [Go Test Comments](https://go.dev/wiki/TestComments#assert-libraries) page.
+
 The tests should never leak goroutines.
 The tests should never leak goroutines.
 
 
 Use the term `ConcurrentSafe` in the test name when it aims to verify the
 Use the term `ConcurrentSafe` in the test name when it aims to verify the
@@ -640,13 +677,6 @@ should be canceled.
 
 
 ## Approvers and Maintainers
 ## Approvers and Maintainers
 
 
-### Triagers
-
-- [Alex Kats](https://github.com/akats7), Capital One
-- [Cheng-Zhen Yang](https://github.com/scorpionknifes), Independent
-
-### Approvers
-
 ### Maintainers
 ### Maintainers
 
 
 - [Damien Mathieu](https://github.com/dmathieu), Elastic ([GPG](https://keys.openpgp.org/search?q=5A126B972A81A6CE443E5E1B408B8E44F0873832))
 - [Damien Mathieu](https://github.com/dmathieu), Elastic ([GPG](https://keys.openpgp.org/search?q=5A126B972A81A6CE443E5E1B408B8E44F0873832))
@@ -655,6 +685,21 @@ should be canceled.
 - [Sam Xie](https://github.com/XSAM), Splunk ([GPG](https://keys.openpgp.org/search?q=AEA033782371ABB18EE39188B8044925D6FEEBEA))
 - [Sam Xie](https://github.com/XSAM), Splunk ([GPG](https://keys.openpgp.org/search?q=AEA033782371ABB18EE39188B8044925D6FEEBEA))
 - [Tyler Yahn](https://github.com/MrAlias), Splunk ([GPG](https://keys.openpgp.org/search?q=0x46B0F3E1A8B1BA5A))
 - [Tyler Yahn](https://github.com/MrAlias), Splunk ([GPG](https://keys.openpgp.org/search?q=0x46B0F3E1A8B1BA5A))
 
 
+For more information about the maintainer role, see the [community repository](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#maintainer).
+
+### Approvers
+
+- [Flc](https://github.com/flc1125), Independent
+
+For more information about the approver role, see the [community repository](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#approver).
+
+### Triagers
+
+- [Alex Kats](https://github.com/akats7), Capital One
+- [Cheng-Zhen Yang](https://github.com/scorpionknifes), Independent
+
+For more information about the triager role, see the [community repository](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#triager).
+
 ### Emeritus
 ### Emeritus
 
 
 - [Aaron Clawson](https://github.com/MadVikingGod)
 - [Aaron Clawson](https://github.com/MadVikingGod)
@@ -665,6 +710,8 @@ should be canceled.
 - [Josh MacDonald](https://github.com/jmacd)
 - [Josh MacDonald](https://github.com/jmacd)
 - [Liz Fong-Jones](https://github.com/lizthegrey)
 - [Liz Fong-Jones](https://github.com/lizthegrey)
 
 
+For more information about the emeritus role, see the [community repository](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#emeritus-maintainerapprovertriager).
+
 ### Become an Approver or a Maintainer
 ### Become an Approver or a Maintainer
 
 
 See the [community membership document in OpenTelemetry community
 See the [community membership document in OpenTelemetry community

+ 30 - 0
v2/vendor/go.opentelemetry.io/otel/LICENSE

@@ -199,3 +199,33 @@
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    See the License for the specific language governing permissions and
    limitations under the License.
    limitations under the License.
+
+--------------------------------------------------------------------------------
+
+Copyright 2009 The Go Authors.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+   * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+   * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+   * Neither the name of Google LLC nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ 2 - 5
v2/vendor/go.opentelemetry.io/otel/Makefile

@@ -34,9 +34,6 @@ $(TOOLS)/%: $(TOOLS_MOD_DIR)/go.mod | $(TOOLS)
 MULTIMOD = $(TOOLS)/multimod
 MULTIMOD = $(TOOLS)/multimod
 $(TOOLS)/multimod: PACKAGE=go.opentelemetry.io/build-tools/multimod
 $(TOOLS)/multimod: PACKAGE=go.opentelemetry.io/build-tools/multimod
 
 
-SEMCONVGEN = $(TOOLS)/semconvgen
-$(TOOLS)/semconvgen: PACKAGE=go.opentelemetry.io/build-tools/semconvgen
-
 CROSSLINK = $(TOOLS)/crosslink
 CROSSLINK = $(TOOLS)/crosslink
 $(TOOLS)/crosslink: PACKAGE=go.opentelemetry.io/build-tools/crosslink
 $(TOOLS)/crosslink: PACKAGE=go.opentelemetry.io/build-tools/crosslink
 
 
@@ -71,7 +68,7 @@ GOVULNCHECK = $(TOOLS)/govulncheck
 $(TOOLS)/govulncheck: PACKAGE=golang.org/x/vuln/cmd/govulncheck
 $(TOOLS)/govulncheck: PACKAGE=golang.org/x/vuln/cmd/govulncheck
 
 
 .PHONY: tools
 .PHONY: tools
-tools: $(CROSSLINK) $(GOLANGCI_LINT) $(MISSPELL) $(GOCOVMERGE) $(STRINGER) $(PORTO) $(SEMCONVGEN) $(VERIFYREADMES) $(MULTIMOD) $(SEMCONVKIT) $(GOTMPL) $(GORELEASE)
+tools: $(CROSSLINK) $(GOLANGCI_LINT) $(MISSPELL) $(GOCOVMERGE) $(STRINGER) $(PORTO) $(VERIFYREADMES) $(MULTIMOD) $(SEMCONVKIT) $(GOTMPL) $(GORELEASE)
 
 
 # Virtualized python tools via docker
 # Virtualized python tools via docker
 
 
@@ -284,7 +281,7 @@ semconv-generate: $(SEMCONVKIT)
 	docker run --rm \
 	docker run --rm \
 		-u $(DOCKER_USER) \
 		-u $(DOCKER_USER) \
 		--env HOME=/tmp/weaver \
 		--env HOME=/tmp/weaver \
-		--mount 'type=bind,source=$(PWD)/semconv,target=/home/weaver/templates/registry/go,readonly' \
+		--mount 'type=bind,source=$(PWD)/semconv/templates,target=/home/weaver/templates,readonly' \
 		--mount 'type=bind,source=$(PWD)/semconv/${TAG},target=/home/weaver/target' \
 		--mount 'type=bind,source=$(PWD)/semconv/${TAG},target=/home/weaver/target' \
 		--mount 'type=bind,source=$(HOME)/.weaver,target=/tmp/weaver/.weaver' \
 		--mount 'type=bind,source=$(HOME)/.weaver,target=/tmp/weaver/.weaver' \
 		$(WEAVER_IMAGE) registry generate \
 		$(WEAVER_IMAGE) registry generate \

+ 7 - 0
v2/vendor/go.opentelemetry.io/otel/README.md

@@ -53,18 +53,25 @@ Currently, this project supports the following environments.
 
 
 | OS       | Go Version | Architecture |
 | OS       | Go Version | Architecture |
 |----------|------------|--------------|
 |----------|------------|--------------|
+| Ubuntu   | 1.25       | amd64        |
 | Ubuntu   | 1.24       | amd64        |
 | Ubuntu   | 1.24       | amd64        |
 | Ubuntu   | 1.23       | amd64        |
 | Ubuntu   | 1.23       | amd64        |
+| Ubuntu   | 1.25       | 386          |
 | Ubuntu   | 1.24       | 386          |
 | Ubuntu   | 1.24       | 386          |
 | Ubuntu   | 1.23       | 386          |
 | Ubuntu   | 1.23       | 386          |
+| Ubuntu   | 1.25       | arm64        |
 | Ubuntu   | 1.24       | arm64        |
 | Ubuntu   | 1.24       | arm64        |
 | Ubuntu   | 1.23       | arm64        |
 | Ubuntu   | 1.23       | arm64        |
+| macOS 13 | 1.25       | amd64        |
 | macOS 13 | 1.24       | amd64        |
 | macOS 13 | 1.24       | amd64        |
 | macOS 13 | 1.23       | amd64        |
 | macOS 13 | 1.23       | amd64        |
+| macOS    | 1.25       | arm64        |
 | macOS    | 1.24       | arm64        |
 | macOS    | 1.24       | arm64        |
 | macOS    | 1.23       | arm64        |
 | macOS    | 1.23       | arm64        |
+| Windows  | 1.25       | amd64        |
 | Windows  | 1.24       | amd64        |
 | Windows  | 1.24       | amd64        |
 | Windows  | 1.23       | amd64        |
 | Windows  | 1.23       | amd64        |
+| Windows  | 1.25       | 386          |
 | Windows  | 1.24       | 386          |
 | Windows  | 1.24       | 386          |
 | Windows  | 1.23       | 386          |
 | Windows  | 1.23       | 386          |
 
 

+ 203 - 0
v2/vendor/go.opentelemetry.io/otel/SECURITY-INSIGHTS.yml

@@ -0,0 +1,203 @@
+header:
+  schema-version: "1.0.0"
+  expiration-date: "2026-08-04T00:00:00.000Z"
+  last-updated: "2025-08-04"
+  last-reviewed: "2025-08-04"
+  commit-hash: 69e81088ad40f45a0764597326722dea8f3f00a8
+  project-url: https://github.com/open-telemetry/opentelemetry-go
+  project-release: "v1.37.0"
+  changelog: https://github.com/open-telemetry/opentelemetry-go/blob/69e81088ad40f45a0764597326722dea8f3f00a8/CHANGELOG.md
+  license: https://github.com/open-telemetry/opentelemetry-go/blob/69e81088ad40f45a0764597326722dea8f3f00a8/LICENSE
+
+project-lifecycle:
+  status: active
+  bug-fixes-only: false
+  core-maintainers:
+    - https://github.com/dmathieu
+    - https://github.com/dashpole
+    - https://github.com/pellared
+    - https://github.com/XSAM
+    - https://github.com/MrAlias
+  release-process: |
+    See https://github.com/open-telemetry/opentelemetry-go/blob/69e81088ad40f45a0764597326722dea8f3f00a8/RELEASING.md
+
+contribution-policy:
+  accepts-pull-requests: true
+  accepts-automated-pull-requests: true
+  automated-tools-list:
+    - automated-tool: dependabot
+      action: allowed
+      comment: Automated dependency updates are accepted.
+    - automated-tool: renovatebot
+      action: allowed
+      comment: Automated dependency updates are accepted.
+    - automated-tool: opentelemetrybot
+      action: allowed
+      comment: Automated OpenTelemetry actions are accepted.
+  contributing-policy: https://github.com/open-telemetry/opentelemetry-go/blob/69e81088ad40f45a0764597326722dea8f3f00a8/CONTRIBUTING.md
+  code-of-conduct: https://github.com/open-telemetry/.github/blob/ffa15f76b65ec7bcc41f6a0b277edbb74f832206/CODE_OF_CONDUCT.md
+
+documentation:
+  - https://pkg.go.dev/go.opentelemetry.io/otel
+  - https://opentelemetry.io/docs/instrumentation/go/
+
+distribution-points:
+  - pkg:golang/go.opentelemetry.io/otel
+  - pkg:golang/go.opentelemetry.io/otel/bridge/opencensus
+  - pkg:golang/go.opentelemetry.io/otel/bridge/opencensus/test
+  - pkg:golang/go.opentelemetry.io/otel/bridge/opentracing
+  - pkg:golang/go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc
+  - pkg:golang/go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp
+  - pkg:golang/go.opentelemetry.io/otel/exporters/otlp/otlptrace
+  - pkg:golang/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc
+  - pkg:golang/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp
+  - pkg:golang/go.opentelemetry.io/otel/exporters/stdout/stdoutmetric
+  - pkg:golang/go.opentelemetry.io/otel/exporters/stdout/stdouttrace
+  - pkg:golang/go.opentelemetry.io/otel/exporters/zipkin
+  - pkg:golang/go.opentelemetry.io/otel/metric
+  - pkg:golang/go.opentelemetry.io/otel/sdk
+  - pkg:golang/go.opentelemetry.io/otel/sdk/metric
+  - pkg:golang/go.opentelemetry.io/otel/trace
+  - pkg:golang/go.opentelemetry.io/otel/exporters/prometheus
+  - pkg:golang/go.opentelemetry.io/otel/log
+  - pkg:golang/go.opentelemetry.io/otel/log/logtest
+  - pkg:golang/go.opentelemetry.io/otel/sdk/log
+  - pkg:golang/go.opentelemetry.io/otel/sdk/log/logtest
+  - pkg:golang/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc
+  - pkg:golang/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp
+  - pkg:golang/go.opentelemetry.io/otel/exporters/stdout/stdoutlog
+  - pkg:golang/go.opentelemetry.io/otel/schema
+
+security-artifacts:
+  threat-model:
+    threat-model-created: false
+    comment: |
+      No formal threat model created yet.
+  self-assessment:
+    self-assessment-created: false
+    comment: |
+      No formal self-assessment yet.
+
+security-testing:
+  - tool-type: sca
+    tool-name: Dependabot
+    tool-version: latest
+    tool-url: https://github.com/dependabot
+    tool-rulesets:
+      - built-in
+    integration:
+      ad-hoc: false
+      ci: true
+      before-release: true
+    comment: |
+      Automated dependency updates.
+  - tool-type: sast
+    tool-name: golangci-lint
+    tool-version: latest
+    tool-url: https://github.com/golangci/golangci-lint
+    tool-rulesets:
+      - built-in
+    integration:
+      ad-hoc: false
+      ci: true
+      before-release: true
+    comment: |
+      Static analysis in CI.
+  - tool-type: fuzzing
+    tool-name: OSS-Fuzz
+    tool-version: latest
+    tool-url: https://github.com/google/oss-fuzz
+    tool-rulesets:
+      - default
+    integration:
+      ad-hoc: false
+      ci: false
+      before-release: false
+    comment: |
+      OpenTelemetry Go is integrated with OSS-Fuzz for continuous fuzz testing. See https://github.com/google/oss-fuzz/tree/f0f9b221190c6063a773bea606d192ebfc3d00cf/projects/opentelemetry-go for more details.
+  - tool-type: sast
+    tool-name: CodeQL
+    tool-version: latest
+    tool-url: https://github.com/github/codeql
+    tool-rulesets:
+      - default
+    integration:
+      ad-hoc: false
+      ci: true
+      before-release: true
+    comment: |
+      CodeQL static analysis is run in CI for all commits and pull requests to detect security vulnerabilities in the Go source code. See https://github.com/open-telemetry/opentelemetry-go/blob/d5b5b059849720144a03ca5c87561bfbdb940119/.github/workflows/codeql-analysis.yml for workflow details.
+  - tool-type: sca
+    tool-name: govulncheck
+    tool-version: latest
+    tool-url: https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck
+    tool-rulesets:
+      - default
+    integration:
+      ad-hoc: false
+      ci: true
+      before-release: true
+    comment: |
+      govulncheck is run in CI to detect known vulnerabilities in Go modules and code paths. See https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/.github/workflows/ci.yml for workflow configuration.
+
+security-assessments:
+  - auditor-name: 7ASecurity
+    auditor-url: https://7asecurity.com
+    auditor-report: https://7asecurity.com/reports/pentest-report-opentelemetry.pdf
+    report-year: 2023
+    comment: |
+      This independent penetration test by 7ASecurity covered OpenTelemetry repositories including opentelemetry-go. The assessment focused on codebase review, threat modeling, and vulnerability identification. See the report for details of findings and recommendations applicable to opentelemetry-go. No critical vulnerabilities were found for this repository.
+
+security-contacts:
+  - type: email
+    value: cncf-opentelemetry-security@lists.cncf.io
+    primary: true
+  - type: website
+    value: https://github.com/open-telemetry/opentelemetry-go/security/policy
+    primary: false
+
+vulnerability-reporting:
+  accepts-vulnerability-reports: true
+  email-contact: cncf-opentelemetry-security@lists.cncf.io
+  security-policy: https://github.com/open-telemetry/opentelemetry-go/security/policy
+  comment: |
+    Security issues should be reported via email or GitHub security policy page.
+
+dependencies:
+  third-party-packages: true
+  dependencies-lists:
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/bridge/opencensus/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/bridge/opencensus/test/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/bridge/opentracing/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/exporters/otlp/otlplog/otlploggrpc/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/exporters/otlp/otlplog/otlploghttp/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/exporters/otlp/otlpmetric/otlpmetrichttp/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/exporters/otlp/otlptrace/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/exporters/otlp/otlptrace/otlptracegrpc/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/exporters/otlp/otlptrace/otlptracehttp/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/exporters/prometheus/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/exporters/stdout/stdoutlog/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/exporters/stdout/stdoutmetric/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/exporters/stdout/stdouttrace/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/exporters/zipkin/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/internal/tools/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/log/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/log/logtest/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/metric/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/schema/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/sdk/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/sdk/log/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/sdk/log/logtest/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/sdk/metric/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/trace/go.mod
+    - https://github.com/open-telemetry/opentelemetry-go/blob/v1.37.0/trace/internal/telemetry/test/go.mod
+  dependencies-lifecycle:
+    policy-url: https://github.com/open-telemetry/opentelemetry-go/blob/69e81088ad40f45a0764597326722dea8f3f00a8/CONTRIBUTING.md
+    comment: |
+      Dependency lifecycle managed via go.mod and renovatebot.
+  env-dependencies-policy:
+    policy-url: https://github.com/open-telemetry/opentelemetry-go/blob/69e81088ad40f45a0764597326722dea8f3f00a8/CONTRIBUTING.md
+    comment: |
+      See contributing policy for environment usage.

+ 6 - 6
v2/vendor/go.opentelemetry.io/otel/attribute/encoder.go

@@ -78,7 +78,7 @@ func DefaultEncoder() Encoder {
 	defaultEncoderOnce.Do(func() {
 	defaultEncoderOnce.Do(func() {
 		defaultEncoderInstance = &defaultAttrEncoder{
 		defaultEncoderInstance = &defaultAttrEncoder{
 			pool: sync.Pool{
 			pool: sync.Pool{
-				New: func() interface{} {
+				New: func() any {
 					return &bytes.Buffer{}
 					return &bytes.Buffer{}
 				},
 				},
 			},
 			},
@@ -96,11 +96,11 @@ func (d *defaultAttrEncoder) Encode(iter Iterator) string {
 	for iter.Next() {
 	for iter.Next() {
 		i, keyValue := iter.IndexedAttribute()
 		i, keyValue := iter.IndexedAttribute()
 		if i > 0 {
 		if i > 0 {
-			_, _ = buf.WriteRune(',')
+			_ = buf.WriteByte(',')
 		}
 		}
 		copyAndEscape(buf, string(keyValue.Key))
 		copyAndEscape(buf, string(keyValue.Key))
 
 
-		_, _ = buf.WriteRune('=')
+		_ = buf.WriteByte('=')
 
 
 		if keyValue.Value.Type() == STRING {
 		if keyValue.Value.Type() == STRING {
 			copyAndEscape(buf, keyValue.Value.AsString())
 			copyAndEscape(buf, keyValue.Value.AsString())
@@ -122,14 +122,14 @@ func copyAndEscape(buf *bytes.Buffer, val string) {
 	for _, ch := range val {
 	for _, ch := range val {
 		switch ch {
 		switch ch {
 		case '=', ',', escapeChar:
 		case '=', ',', escapeChar:
-			_, _ = buf.WriteRune(escapeChar)
+			_ = buf.WriteByte(escapeChar)
 		}
 		}
 		_, _ = buf.WriteRune(ch)
 		_, _ = buf.WriteRune(ch)
 	}
 	}
 }
 }
 
 
-// Valid returns true if this encoder ID was allocated by
-// `NewEncoderID`.  Invalid encoder IDs will not be cached.
+// Valid reports whether this encoder ID was allocated by
+// [NewEncoderID]. Invalid encoder IDs will not be cached.
 func (id EncoderID) Valid() bool {
 func (id EncoderID) Valid() bool {
 	return id.value != 0
 	return id.value != 0
 }
 }

+ 4 - 4
v2/vendor/go.opentelemetry.io/otel/attribute/filter.go

@@ -15,8 +15,8 @@ type Filter func(KeyValue) bool
 //
 //
 // If keys is empty a deny-all filter is returned.
 // If keys is empty a deny-all filter is returned.
 func NewAllowKeysFilter(keys ...Key) Filter {
 func NewAllowKeysFilter(keys ...Key) Filter {
-	if len(keys) <= 0 {
-		return func(kv KeyValue) bool { return false }
+	if len(keys) == 0 {
+		return func(KeyValue) bool { return false }
 	}
 	}
 
 
 	allowed := make(map[Key]struct{}, len(keys))
 	allowed := make(map[Key]struct{}, len(keys))
@@ -34,8 +34,8 @@ func NewAllowKeysFilter(keys ...Key) Filter {
 //
 //
 // If keys is empty an allow-all filter is returned.
 // If keys is empty an allow-all filter is returned.
 func NewDenyKeysFilter(keys ...Key) Filter {
 func NewDenyKeysFilter(keys ...Key) Filter {
-	if len(keys) <= 0 {
-		return func(kv KeyValue) bool { return true }
+	if len(keys) == 0 {
+		return func(KeyValue) bool { return true }
 	}
 	}
 
 
 	forbid := make(map[Key]struct{}, len(keys))
 	forbid := make(map[Key]struct{}, len(keys))

+ 8 - 8
v2/vendor/go.opentelemetry.io/otel/attribute/internal/attribute.go

@@ -12,7 +12,7 @@ import (
 )
 )
 
 
 // BoolSliceValue converts a bool slice into an array with same elements as slice.
 // BoolSliceValue converts a bool slice into an array with same elements as slice.
-func BoolSliceValue(v []bool) interface{} {
+func BoolSliceValue(v []bool) any {
 	var zero bool
 	var zero bool
 	cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))).Elem()
 	cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))).Elem()
 	reflect.Copy(cp, reflect.ValueOf(v))
 	reflect.Copy(cp, reflect.ValueOf(v))
@@ -20,7 +20,7 @@ func BoolSliceValue(v []bool) interface{} {
 }
 }
 
 
 // Int64SliceValue converts an int64 slice into an array with same elements as slice.
 // Int64SliceValue converts an int64 slice into an array with same elements as slice.
-func Int64SliceValue(v []int64) interface{} {
+func Int64SliceValue(v []int64) any {
 	var zero int64
 	var zero int64
 	cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))).Elem()
 	cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))).Elem()
 	reflect.Copy(cp, reflect.ValueOf(v))
 	reflect.Copy(cp, reflect.ValueOf(v))
@@ -28,7 +28,7 @@ func Int64SliceValue(v []int64) interface{} {
 }
 }
 
 
 // Float64SliceValue converts a float64 slice into an array with same elements as slice.
 // Float64SliceValue converts a float64 slice into an array with same elements as slice.
-func Float64SliceValue(v []float64) interface{} {
+func Float64SliceValue(v []float64) any {
 	var zero float64
 	var zero float64
 	cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))).Elem()
 	cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))).Elem()
 	reflect.Copy(cp, reflect.ValueOf(v))
 	reflect.Copy(cp, reflect.ValueOf(v))
@@ -36,7 +36,7 @@ func Float64SliceValue(v []float64) interface{} {
 }
 }
 
 
 // StringSliceValue converts a string slice into an array with same elements as slice.
 // StringSliceValue converts a string slice into an array with same elements as slice.
-func StringSliceValue(v []string) interface{} {
+func StringSliceValue(v []string) any {
 	var zero string
 	var zero string
 	cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))).Elem()
 	cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))).Elem()
 	reflect.Copy(cp, reflect.ValueOf(v))
 	reflect.Copy(cp, reflect.ValueOf(v))
@@ -44,7 +44,7 @@ func StringSliceValue(v []string) interface{} {
 }
 }
 
 
 // AsBoolSlice converts a bool array into a slice into with same elements as array.
 // AsBoolSlice converts a bool array into a slice into with same elements as array.
-func AsBoolSlice(v interface{}) []bool {
+func AsBoolSlice(v any) []bool {
 	rv := reflect.ValueOf(v)
 	rv := reflect.ValueOf(v)
 	if rv.Type().Kind() != reflect.Array {
 	if rv.Type().Kind() != reflect.Array {
 		return nil
 		return nil
@@ -57,7 +57,7 @@ func AsBoolSlice(v interface{}) []bool {
 }
 }
 
 
 // AsInt64Slice converts an int64 array into a slice into with same elements as array.
 // AsInt64Slice converts an int64 array into a slice into with same elements as array.
-func AsInt64Slice(v interface{}) []int64 {
+func AsInt64Slice(v any) []int64 {
 	rv := reflect.ValueOf(v)
 	rv := reflect.ValueOf(v)
 	if rv.Type().Kind() != reflect.Array {
 	if rv.Type().Kind() != reflect.Array {
 		return nil
 		return nil
@@ -70,7 +70,7 @@ func AsInt64Slice(v interface{}) []int64 {
 }
 }
 
 
 // AsFloat64Slice converts a float64 array into a slice into with same elements as array.
 // AsFloat64Slice converts a float64 array into a slice into with same elements as array.
-func AsFloat64Slice(v interface{}) []float64 {
+func AsFloat64Slice(v any) []float64 {
 	rv := reflect.ValueOf(v)
 	rv := reflect.ValueOf(v)
 	if rv.Type().Kind() != reflect.Array {
 	if rv.Type().Kind() != reflect.Array {
 		return nil
 		return nil
@@ -83,7 +83,7 @@ func AsFloat64Slice(v interface{}) []float64 {
 }
 }
 
 
 // AsStringSlice converts a string array into a slice into with same elements as array.
 // AsStringSlice converts a string array into a slice into with same elements as array.
-func AsStringSlice(v interface{}) []string {
+func AsStringSlice(v any) []string {
 	rv := reflect.ValueOf(v)
 	rv := reflect.ValueOf(v)
 	if rv.Type().Kind() != reflect.Array {
 	if rv.Type().Kind() != reflect.Array {
 		return nil
 		return nil

+ 4 - 3
v2/vendor/go.opentelemetry.io/otel/attribute/iterator.go

@@ -25,8 +25,8 @@ type oneIterator struct {
 	attr KeyValue
 	attr KeyValue
 }
 }
 
 
-// Next moves the iterator to the next position. Returns false if there are no
-// more attributes.
+// Next moves the iterator to the next position.
+// Next reports whether there are more attributes.
 func (i *Iterator) Next() bool {
 func (i *Iterator) Next() bool {
 	i.idx++
 	i.idx++
 	return i.idx < i.Len()
 	return i.idx < i.Len()
@@ -106,7 +106,8 @@ func (oi *oneIterator) advance() {
 	}
 	}
 }
 }
 
 
-// Next returns true if there is another attribute available.
+// Next moves the iterator to the next position.
+// Next reports whether there is another attribute available.
 func (m *MergeIterator) Next() bool {
 func (m *MergeIterator) Next() bool {
 	if m.one.done && m.two.done {
 	if m.one.done && m.two.done {
 		return false
 		return false

+ 1 - 1
v2/vendor/go.opentelemetry.io/otel/attribute/key.go

@@ -117,7 +117,7 @@ func (k Key) StringSlice(v []string) KeyValue {
 	}
 	}
 }
 }
 
 
-// Defined returns true for non-empty keys.
+// Defined reports whether the key is not empty.
 func (k Key) Defined() bool {
 func (k Key) Defined() bool {
 	return len(k) != 0
 	return len(k) != 0
 }
 }

+ 1 - 1
v2/vendor/go.opentelemetry.io/otel/attribute/kv.go

@@ -13,7 +13,7 @@ type KeyValue struct {
 	Value Value
 	Value Value
 }
 }
 
 
-// Valid returns if kv is a valid OpenTelemetry attribute.
+// Valid reports whether kv is a valid OpenTelemetry attribute.
 func (kv KeyValue) Valid() bool {
 func (kv KeyValue) Valid() bool {
 	return kv.Key.Defined() && kv.Value.Type() != INVALID
 	return kv.Key.Defined() && kv.Value.Type() != INVALID
 }
 }

+ 10 - 10
v2/vendor/go.opentelemetry.io/otel/attribute/set.go

@@ -31,11 +31,11 @@ type (
 
 
 	// Distinct is a unique identifier of a Set.
 	// Distinct is a unique identifier of a Set.
 	//
 	//
-	// Distinct is designed to be ensures equivalence stability: comparisons
-	// will return the save value across versions. For this reason, Distinct
-	// should always be used as a map key instead of a Set.
+	// Distinct is designed to ensure equivalence stability: comparisons will
+	// return the same value across versions. For this reason, Distinct should
+	// always be used as a map key instead of a Set.
 	Distinct struct {
 	Distinct struct {
-		iface interface{}
+		iface any
 	}
 	}
 
 
 	// Sortable implements sort.Interface, used for sorting KeyValue.
 	// Sortable implements sort.Interface, used for sorting KeyValue.
@@ -70,7 +70,7 @@ func (d Distinct) reflectValue() reflect.Value {
 	return reflect.ValueOf(d.iface)
 	return reflect.ValueOf(d.iface)
 }
 }
 
 
-// Valid returns true if this value refers to a valid Set.
+// Valid reports whether this value refers to a valid Set.
 func (d Distinct) Valid() bool {
 func (d Distinct) Valid() bool {
 	return d.iface != nil
 	return d.iface != nil
 }
 }
@@ -120,7 +120,7 @@ func (l *Set) Value(k Key) (Value, bool) {
 	return Value{}, false
 	return Value{}, false
 }
 }
 
 
-// HasValue tests whether a key is defined in this set.
+// HasValue reports whether a key is defined in this set.
 func (l *Set) HasValue(k Key) bool {
 func (l *Set) HasValue(k Key) bool {
 	if l == nil {
 	if l == nil {
 		return false
 		return false
@@ -155,7 +155,7 @@ func (l *Set) Equivalent() Distinct {
 	return l.equivalent
 	return l.equivalent
 }
 }
 
 
-// Equals returns true if the argument set is equivalent to this set.
+// Equals reports whether the argument set is equivalent to this set.
 func (l *Set) Equals(o *Set) bool {
 func (l *Set) Equals(o *Set) bool {
 	return l.Equivalent() == o.Equivalent()
 	return l.Equivalent() == o.Equivalent()
 }
 }
@@ -344,7 +344,7 @@ func computeDistinct(kvs []KeyValue) Distinct {
 
 
 // computeDistinctFixed computes a Distinct for small slices. It returns nil
 // computeDistinctFixed computes a Distinct for small slices. It returns nil
 // if the input is too large for this code path.
 // if the input is too large for this code path.
-func computeDistinctFixed(kvs []KeyValue) interface{} {
+func computeDistinctFixed(kvs []KeyValue) any {
 	switch len(kvs) {
 	switch len(kvs) {
 	case 1:
 	case 1:
 		return [1]KeyValue(kvs)
 		return [1]KeyValue(kvs)
@@ -373,7 +373,7 @@ func computeDistinctFixed(kvs []KeyValue) interface{} {
 
 
 // computeDistinctReflect computes a Distinct using reflection, works for any
 // computeDistinctReflect computes a Distinct using reflection, works for any
 // size input.
 // size input.
-func computeDistinctReflect(kvs []KeyValue) interface{} {
+func computeDistinctReflect(kvs []KeyValue) any {
 	at := reflect.New(reflect.ArrayOf(len(kvs), keyValueType)).Elem()
 	at := reflect.New(reflect.ArrayOf(len(kvs), keyValueType)).Elem()
 	for i, keyValue := range kvs {
 	for i, keyValue := range kvs {
 		*(at.Index(i).Addr().Interface().(*KeyValue)) = keyValue
 		*(at.Index(i).Addr().Interface().(*KeyValue)) = keyValue
@@ -387,7 +387,7 @@ func (l *Set) MarshalJSON() ([]byte, error) {
 }
 }
 
 
 // MarshalLog is the marshaling function used by the logging system to represent this Set.
 // MarshalLog is the marshaling function used by the logging system to represent this Set.
-func (l Set) MarshalLog() interface{} {
+func (l Set) MarshalLog() any {
 	kvs := make(map[string]string)
 	kvs := make(map[string]string)
 	for _, kv := range l.ToSlice() {
 	for _, kv := range l.ToSlice() {
 		kvs[string(kv.Key)] = kv.Value.Emit()
 		kvs[string(kv.Key)] = kv.Value.Emit()

+ 4 - 4
v2/vendor/go.opentelemetry.io/otel/attribute/value.go

@@ -22,7 +22,7 @@ type Value struct {
 	vtype    Type
 	vtype    Type
 	numeric  uint64
 	numeric  uint64
 	stringly string
 	stringly string
-	slice    interface{}
+	slice    any
 }
 }
 
 
 const (
 const (
@@ -199,8 +199,8 @@ func (v Value) asStringSlice() []string {
 
 
 type unknownValueType struct{}
 type unknownValueType struct{}
 
 
-// AsInterface returns Value's data as interface{}.
-func (v Value) AsInterface() interface{} {
+// AsInterface returns Value's data as any.
+func (v Value) AsInterface() any {
 	switch v.Type() {
 	switch v.Type() {
 	case BOOL:
 	case BOOL:
 		return v.AsBool()
 		return v.AsBool()
@@ -262,7 +262,7 @@ func (v Value) Emit() string {
 func (v Value) MarshalJSON() ([]byte, error) {
 func (v Value) MarshalJSON() ([]byte, error) {
 	var jsonVal struct {
 	var jsonVal struct {
 		Type  string
 		Type  string
-		Value interface{}
+		Value any
 	}
 	}
 	jsonVal.Type = v.Type().String()
 	jsonVal.Type = v.Type().String()
 	jsonVal.Value = v.AsInterface()
 	jsonVal.Value = v.AsInterface()

+ 2 - 2
v2/vendor/go.opentelemetry.io/otel/baggage/baggage.go

@@ -812,7 +812,7 @@ var safeKeyCharset = [utf8.RuneSelf]bool{
 // validateBaggageName checks if the string is a valid OpenTelemetry Baggage name.
 // validateBaggageName checks if the string is a valid OpenTelemetry Baggage name.
 // Baggage name is a valid, non-empty UTF-8 string.
 // Baggage name is a valid, non-empty UTF-8 string.
 func validateBaggageName(s string) bool {
 func validateBaggageName(s string) bool {
-	if len(s) == 0 {
+	if s == "" {
 		return false
 		return false
 	}
 	}
 
 
@@ -828,7 +828,7 @@ func validateBaggageValue(s string) bool {
 
 
 // validateKey checks if the string is a valid W3C Baggage key.
 // validateKey checks if the string is a valid W3C Baggage key.
 func validateKey(s string) bool {
 func validateKey(s string) bool {
-	if len(s) == 0 {
+	if s == "" {
 		return false
 		return false
 	}
 	}
 
 

+ 2 - 2
v2/vendor/go.opentelemetry.io/otel/codes/codes.go

@@ -67,7 +67,7 @@ func (c *Code) UnmarshalJSON(b []byte) error {
 		return errors.New("nil receiver passed to UnmarshalJSON")
 		return errors.New("nil receiver passed to UnmarshalJSON")
 	}
 	}
 
 
-	var x interface{}
+	var x any
 	if err := json.Unmarshal(b, &x); err != nil {
 	if err := json.Unmarshal(b, &x); err != nil {
 		return err
 		return err
 	}
 	}
@@ -102,5 +102,5 @@ func (c *Code) MarshalJSON() ([]byte, error) {
 	if !ok {
 	if !ok {
 		return nil, fmt.Errorf("invalid code: %d", *c)
 		return nil, fmt.Errorf("invalid code: %d", *c)
 	}
 	}
-	return []byte(fmt.Sprintf("%q", str)), nil
+	return fmt.Appendf(nil, "%q", str), nil
 }
 }

+ 2 - 2
v2/vendor/go.opentelemetry.io/otel/dependencies.Dockerfile

@@ -1,4 +1,4 @@
 # This is a renovate-friendly source of Docker images.
 # This is a renovate-friendly source of Docker images.
-FROM python:3.13.5-slim-bullseye@sha256:5b9fc0d8ef79cfb5f300e61cb516e0c668067bbf77646762c38c94107e230dbc AS python
-FROM otel/weaver:v0.15.2@sha256:b13acea09f721774daba36344861f689ac4bb8d6ecd94c4600b4d590c8fb34b9 AS weaver
+FROM python:3.13.6-slim-bullseye@sha256:e98b521460ee75bca92175c16247bdf7275637a8faaeb2bcfa19d879ae5c4b9a AS python
+FROM otel/weaver:v0.17.1@sha256:32523b5e44fb44418786347e9f7dde187d8797adb6d57a2ee99c245346c3cdfe AS weaver
 FROM avtodev/markdown-lint:v1@sha256:6aeedc2f49138ce7a1cd0adffc1b1c0321b841dc2102408967d9301c031949ee AS markdown
 FROM avtodev/markdown-lint:v1@sha256:6aeedc2f49138ce7a1cd0adffc1b1c0321b841dc2102408967d9301c031949ee AS markdown

+ 4 - 4
v2/vendor/go.opentelemetry.io/otel/internal/global/internal_logging.go

@@ -41,22 +41,22 @@ func GetLogger() logr.Logger {
 
 
 // Info prints messages about the general state of the API or SDK.
 // Info prints messages about the general state of the API or SDK.
 // This should usually be less than 5 messages a minute.
 // This should usually be less than 5 messages a minute.
-func Info(msg string, keysAndValues ...interface{}) {
+func Info(msg string, keysAndValues ...any) {
 	GetLogger().V(4).Info(msg, keysAndValues...)
 	GetLogger().V(4).Info(msg, keysAndValues...)
 }
 }
 
 
 // Error prints messages about exceptional states of the API or SDK.
 // Error prints messages about exceptional states of the API or SDK.
-func Error(err error, msg string, keysAndValues ...interface{}) {
+func Error(err error, msg string, keysAndValues ...any) {
 	GetLogger().Error(err, msg, keysAndValues...)
 	GetLogger().Error(err, msg, keysAndValues...)
 }
 }
 
 
 // Debug prints messages about all internal changes in the API or SDK.
 // Debug prints messages about all internal changes in the API or SDK.
-func Debug(msg string, keysAndValues ...interface{}) {
+func Debug(msg string, keysAndValues ...any) {
 	GetLogger().V(8).Info(msg, keysAndValues...)
 	GetLogger().V(8).Info(msg, keysAndValues...)
 }
 }
 
 
 // Warn prints messages about warnings in the API or SDK.
 // Warn prints messages about warnings in the API or SDK.
 // Not an error but is likely more important than an informational event.
 // Not an error but is likely more important than an informational event.
-func Warn(msg string, keysAndValues ...interface{}) {
+func Warn(msg string, keysAndValues ...any) {
 	GetLogger().V(1).Info(msg, keysAndValues...)
 	GetLogger().V(1).Info(msg, keysAndValues...)
 }
 }

+ 1 - 0
v2/vendor/go.opentelemetry.io/otel/internal/global/trace.go

@@ -26,6 +26,7 @@ import (
 	"sync/atomic"
 	"sync/atomic"
 
 
 	"go.opentelemetry.io/auto/sdk"
 	"go.opentelemetry.io/auto/sdk"
+
 	"go.opentelemetry.io/otel/attribute"
 	"go.opentelemetry.io/otel/attribute"
 	"go.opentelemetry.io/otel/codes"
 	"go.opentelemetry.io/otel/codes"
 	"go.opentelemetry.io/otel/trace"
 	"go.opentelemetry.io/otel/trace"

+ 30 - 0
v2/vendor/go.opentelemetry.io/otel/metric/LICENSE

@@ -199,3 +199,33 @@
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    See the License for the specific language governing permissions and
    limitations under the License.
    limitations under the License.
+
+--------------------------------------------------------------------------------
+
+Copyright 2009 The Go Authors.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+   * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+   * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+   * Neither the name of Google LLC nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ 3 - 3
v2/vendor/go.opentelemetry.io/otel/propagation/baggage.go

@@ -20,7 +20,7 @@ type Baggage struct{}
 var _ TextMapPropagator = Baggage{}
 var _ TextMapPropagator = Baggage{}
 
 
 // Inject sets baggage key-values from ctx into the carrier.
 // Inject sets baggage key-values from ctx into the carrier.
-func (b Baggage) Inject(ctx context.Context, carrier TextMapCarrier) {
+func (Baggage) Inject(ctx context.Context, carrier TextMapCarrier) {
 	bStr := baggage.FromContext(ctx).String()
 	bStr := baggage.FromContext(ctx).String()
 	if bStr != "" {
 	if bStr != "" {
 		carrier.Set(baggageHeader, bStr)
 		carrier.Set(baggageHeader, bStr)
@@ -30,7 +30,7 @@ func (b Baggage) Inject(ctx context.Context, carrier TextMapCarrier) {
 // Extract returns a copy of parent with the baggage from the carrier added.
 // Extract returns a copy of parent with the baggage from the carrier added.
 // If carrier implements [ValuesGetter] (e.g. [HeaderCarrier]), Values is invoked
 // If carrier implements [ValuesGetter] (e.g. [HeaderCarrier]), Values is invoked
 // for multiple values extraction. Otherwise, Get is called.
 // for multiple values extraction. Otherwise, Get is called.
-func (b Baggage) Extract(parent context.Context, carrier TextMapCarrier) context.Context {
+func (Baggage) Extract(parent context.Context, carrier TextMapCarrier) context.Context {
 	if multiCarrier, ok := carrier.(ValuesGetter); ok {
 	if multiCarrier, ok := carrier.(ValuesGetter); ok {
 		return extractMultiBaggage(parent, multiCarrier)
 		return extractMultiBaggage(parent, multiCarrier)
 	}
 	}
@@ -38,7 +38,7 @@ func (b Baggage) Extract(parent context.Context, carrier TextMapCarrier) context
 }
 }
 
 
 // Fields returns the keys who's values are set with Inject.
 // Fields returns the keys who's values are set with Inject.
-func (b Baggage) Fields() []string {
+func (Baggage) Fields() []string {
 	return []string{baggageHeader}
 	return []string{baggageHeader}
 }
 }
 
 

+ 2 - 2
v2/vendor/go.opentelemetry.io/otel/propagation/propagation.go

@@ -20,7 +20,7 @@ type TextMapCarrier interface {
 	// must never be done outside of a new major release.
 	// must never be done outside of a new major release.
 
 
 	// Set stores the key-value pair.
 	// Set stores the key-value pair.
-	Set(key string, value string)
+	Set(key, value string)
 	// DO NOT CHANGE: any modification will not be backwards compatible and
 	// DO NOT CHANGE: any modification will not be backwards compatible and
 	// must never be done outside of a new major release.
 	// must never be done outside of a new major release.
 
 
@@ -88,7 +88,7 @@ func (hc HeaderCarrier) Values(key string) []string {
 }
 }
 
 
 // Set stores the key-value pair.
 // Set stores the key-value pair.
-func (hc HeaderCarrier) Set(key string, value string) {
+func (hc HeaderCarrier) Set(key, value string) {
 	http.Header(hc).Set(key, value)
 	http.Header(hc).Set(key, value)
 }
 }
 
 

+ 3 - 3
v2/vendor/go.opentelemetry.io/otel/propagation/trace_context.go

@@ -36,7 +36,7 @@ var (
 )
 )
 
 
 // Inject injects the trace context from ctx into carrier.
 // Inject injects the trace context from ctx into carrier.
-func (tc TraceContext) Inject(ctx context.Context, carrier TextMapCarrier) {
+func (TraceContext) Inject(ctx context.Context, carrier TextMapCarrier) {
 	sc := trace.SpanContextFromContext(ctx)
 	sc := trace.SpanContextFromContext(ctx)
 	if !sc.IsValid() {
 	if !sc.IsValid() {
 		return
 		return
@@ -77,7 +77,7 @@ func (tc TraceContext) Extract(ctx context.Context, carrier TextMapCarrier) cont
 	return trace.ContextWithRemoteSpanContext(ctx, sc)
 	return trace.ContextWithRemoteSpanContext(ctx, sc)
 }
 }
 
 
-func (tc TraceContext) extract(carrier TextMapCarrier) trace.SpanContext {
+func (TraceContext) extract(carrier TextMapCarrier) trace.SpanContext {
 	h := carrier.Get(traceparentHeader)
 	h := carrier.Get(traceparentHeader)
 	if h == "" {
 	if h == "" {
 		return trace.SpanContext{}
 		return trace.SpanContext{}
@@ -151,6 +151,6 @@ func extractPart(dst []byte, h *string, n int) bool {
 }
 }
 
 
 // Fields returns the keys who's values are set with Inject.
 // Fields returns the keys who's values are set with Inject.
-func (tc TraceContext) Fields() []string {
+func (TraceContext) Fields() []string {
 	return []string{traceparentHeader, tracestateHeader}
 	return []string{traceparentHeader, tracestateHeader}
 }
 }

+ 0 - 4
v2/vendor/go.opentelemetry.io/otel/semconv/v1.34.0/MIGRATION.md

@@ -1,4 +0,0 @@
-<!-- Generated. DO NOT MODIFY. -->
-# Migration from v1.33.0 to v1.34.0
-
-The `go.opentelemetry.io/otel/semconv/v1.34.0` package should be a drop-in replacement for `go.opentelemetry.io/otel/semconv/v1.33.0`.

+ 0 - 3
v2/vendor/go.opentelemetry.io/otel/semconv/v1.34.0/README.md

@@ -1,3 +0,0 @@
-# Semconv v1.34.0
-
-[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/semconv/v1.34.0)](https://pkg.go.dev/go.opentelemetry.io/otel/semconv/v1.34.0)

+ 41 - 0
v2/vendor/go.opentelemetry.io/otel/semconv/v1.37.0/MIGRATION.md

@@ -0,0 +1,41 @@
+<!-- Generated. DO NOT MODIFY. -->
+# Migration from v1.36.0 to v1.37.0
+
+The `go.opentelemetry.io/otel/semconv/v1.37.0` package should be a drop-in replacement for `go.opentelemetry.io/otel/semconv/v1.36.0` with the following exceptions.
+
+## Removed
+
+The following declarations have been removed.
+Refer to the [OpenTelemetry Semantic Conventions documentation] for deprecation instructions.
+
+If the type is not listed in the documentation as deprecated, it has been removed in this version due to lack of applicability or use.
+If you use any of these non-deprecated declarations in your Go application, please [open an issue] describing your use-case.
+
+- `ContainerRuntime`
+- `ContainerRuntimeKey`
+- `GenAIOpenAIRequestServiceTierAuto`
+- `GenAIOpenAIRequestServiceTierDefault`
+- `GenAIOpenAIRequestServiceTierKey`
+- `GenAIOpenAIResponseServiceTier`
+- `GenAIOpenAIResponseServiceTierKey`
+- `GenAIOpenAIResponseSystemFingerprint`
+- `GenAIOpenAIResponseSystemFingerprintKey`
+- `GenAISystemAWSBedrock`
+- `GenAISystemAnthropic`
+- `GenAISystemAzureAIInference`
+- `GenAISystemAzureAIOpenAI`
+- `GenAISystemCohere`
+- `GenAISystemDeepseek`
+- `GenAISystemGCPGemini`
+- `GenAISystemGCPGenAI`
+- `GenAISystemGCPVertexAI`
+- `GenAISystemGroq`
+- `GenAISystemIBMWatsonxAI`
+- `GenAISystemKey`
+- `GenAISystemMistralAI`
+- `GenAISystemOpenAI`
+- `GenAISystemPerplexity`
+- `GenAISystemXai`
+
+[OpenTelemetry Semantic Conventions documentation]: https://github.com/open-telemetry/semantic-conventions
+[open an issue]: https://github.com/open-telemetry/opentelemetry-go/issues/new?template=Blank+issue

+ 3 - 0
v2/vendor/go.opentelemetry.io/otel/semconv/v1.37.0/README.md

@@ -0,0 +1,3 @@
+# Semconv v1.37.0
+
+[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/semconv/v1.37.0)](https://pkg.go.dev/go.opentelemetry.io/otel/semconv/v1.37.0)

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 452 - 219
v2/vendor/go.opentelemetry.io/otel/semconv/v1.37.0/attribute_group.go


+ 2 - 2
v2/vendor/go.opentelemetry.io/otel/semconv/v1.34.0/doc.go → v2/vendor/go.opentelemetry.io/otel/semconv/v1.37.0/doc.go

@@ -4,6 +4,6 @@
 // Package semconv implements OpenTelemetry semantic conventions.
 // Package semconv implements OpenTelemetry semantic conventions.
 //
 //
 // OpenTelemetry semantic conventions are agreed standardized naming
 // OpenTelemetry semantic conventions are agreed standardized naming
-// patterns for OpenTelemetry things. This package represents the v1.34.0
+// patterns for OpenTelemetry things. This package represents the v1.37.0
 // version of the OpenTelemetry semantic conventions.
 // version of the OpenTelemetry semantic conventions.
-package semconv // import "go.opentelemetry.io/otel/semconv/v1.34.0"
+package semconv // import "go.opentelemetry.io/otel/semconv/v1.37.0"

+ 31 - 0
v2/vendor/go.opentelemetry.io/otel/semconv/v1.37.0/error_type.go

@@ -0,0 +1,31 @@
+// Copyright The OpenTelemetry Authors
+// SPDX-License-Identifier: Apache-2.0
+
+package semconv // import "go.opentelemetry.io/otel/semconv/v1.37.0"
+
+import (
+	"fmt"
+	"reflect"
+
+	"go.opentelemetry.io/otel/attribute"
+)
+
+// ErrorType returns an [attribute.KeyValue] identifying the error type of err.
+func ErrorType(err error) attribute.KeyValue {
+	if err == nil {
+		return ErrorTypeOther
+	}
+	t := reflect.TypeOf(err)
+	var value string
+	if t.PkgPath() == "" && t.Name() == "" {
+		// Likely a builtin type.
+		value = t.String()
+	} else {
+		value = fmt.Sprintf("%s.%s", t.PkgPath(), t.Name())
+	}
+
+	if value == "" {
+		return ErrorTypeOther
+	}
+	return ErrorTypeKey.String(value)
+}

+ 1 - 1
v2/vendor/go.opentelemetry.io/otel/semconv/v1.34.0/exception.go → v2/vendor/go.opentelemetry.io/otel/semconv/v1.37.0/exception.go

@@ -1,7 +1,7 @@
 // Copyright The OpenTelemetry Authors
 // Copyright The OpenTelemetry Authors
 // SPDX-License-Identifier: Apache-2.0
 // SPDX-License-Identifier: Apache-2.0
 
 
-package semconv // import "go.opentelemetry.io/otel/semconv/v1.34.0"
+package semconv // import "go.opentelemetry.io/otel/semconv/v1.37.0"
 
 
 const (
 const (
 	// ExceptionEventName is the name of the Span event representing an exception.
 	// ExceptionEventName is the name of the Span event representing an exception.

+ 2 - 2
v2/vendor/go.opentelemetry.io/otel/semconv/v1.34.0/schema.go → v2/vendor/go.opentelemetry.io/otel/semconv/v1.37.0/schema.go

@@ -1,9 +1,9 @@
 // Copyright The OpenTelemetry Authors
 // Copyright The OpenTelemetry Authors
 // SPDX-License-Identifier: Apache-2.0
 // SPDX-License-Identifier: Apache-2.0
 
 
-package semconv // import "go.opentelemetry.io/otel/semconv/v1.34.0"
+package semconv // import "go.opentelemetry.io/otel/semconv/v1.37.0"
 
 
 // SchemaURL is the schema URL that matches the version of the semantic conventions
 // SchemaURL is the schema URL that matches the version of the semantic conventions
 // that this package defines. Semconv packages starting from v1.4.0 must declare
 // that this package defines. Semconv packages starting from v1.4.0 must declare
 // non-empty schema URL in the form https://opentelemetry.io/schemas/<version>
 // non-empty schema URL in the form https://opentelemetry.io/schemas/<version>
-const SchemaURL = "https://opentelemetry.io/schemas/1.34.0"
+const SchemaURL = "https://opentelemetry.io/schemas/1.37.0"

+ 30 - 0
v2/vendor/go.opentelemetry.io/otel/trace/LICENSE

@@ -199,3 +199,33 @@
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    See the License for the specific language governing permissions and
    limitations under the License.
    limitations under the License.
+
+--------------------------------------------------------------------------------
+
+Copyright 2009 The Go Authors.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+   * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+   * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+   * Neither the name of Google LLC nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ 3 - 3
v2/vendor/go.opentelemetry.io/otel/trace/auto.go

@@ -20,7 +20,7 @@ import (
 
 
 	"go.opentelemetry.io/otel/attribute"
 	"go.opentelemetry.io/otel/attribute"
 	"go.opentelemetry.io/otel/codes"
 	"go.opentelemetry.io/otel/codes"
-	semconv "go.opentelemetry.io/otel/semconv/v1.34.0"
+	semconv "go.opentelemetry.io/otel/semconv/v1.37.0"
 	"go.opentelemetry.io/otel/trace/embedded"
 	"go.opentelemetry.io/otel/trace/embedded"
 	"go.opentelemetry.io/otel/trace/internal/telemetry"
 	"go.opentelemetry.io/otel/trace/internal/telemetry"
 )
 )
@@ -39,7 +39,7 @@ type autoTracerProvider struct{ embedded.TracerProvider }
 
 
 var _ TracerProvider = autoTracerProvider{}
 var _ TracerProvider = autoTracerProvider{}
 
 
-func (p autoTracerProvider) Tracer(name string, opts ...TracerOption) Tracer {
+func (autoTracerProvider) Tracer(name string, opts ...TracerOption) Tracer {
 	cfg := NewTracerConfig(opts...)
 	cfg := NewTracerConfig(opts...)
 	return autoTracer{
 	return autoTracer{
 		name:      name,
 		name:      name,
@@ -81,7 +81,7 @@ func (t autoTracer) Start(ctx context.Context, name string, opts ...SpanStartOpt
 // Expected to be implemented in eBPF.
 // Expected to be implemented in eBPF.
 //
 //
 //go:noinline
 //go:noinline
-func (t *autoTracer) start(
+func (*autoTracer) start(
 	ctx context.Context,
 	ctx context.Context,
 	spanPtr *autoSpan,
 	spanPtr *autoSpan,
 	psc *SpanContext,
 	psc *SpanContext,

+ 2 - 2
v2/vendor/go.opentelemetry.io/otel/trace/config.go

@@ -73,7 +73,7 @@ func (cfg *SpanConfig) Timestamp() time.Time {
 	return cfg.timestamp
 	return cfg.timestamp
 }
 }
 
 
-// StackTrace checks whether stack trace capturing is enabled.
+// StackTrace reports whether stack trace capturing is enabled.
 func (cfg *SpanConfig) StackTrace() bool {
 func (cfg *SpanConfig) StackTrace() bool {
 	return cfg.stackTrace
 	return cfg.stackTrace
 }
 }
@@ -154,7 +154,7 @@ func (cfg *EventConfig) Timestamp() time.Time {
 	return cfg.timestamp
 	return cfg.timestamp
 }
 }
 
 
-// StackTrace checks whether stack trace capturing is enabled.
+// StackTrace reports whether stack trace capturing is enabled.
 func (cfg *EventConfig) StackTrace() bool {
 func (cfg *EventConfig) StackTrace() bool {
 	return cfg.stackTrace
 	return cfg.stackTrace
 }
 }

+ 38 - 0
v2/vendor/go.opentelemetry.io/otel/trace/hex.go

@@ -0,0 +1,38 @@
+// Copyright The OpenTelemetry Authors
+// SPDX-License-Identifier: Apache-2.0
+
+package trace // import "go.opentelemetry.io/otel/trace"
+
+const (
+	// hexLU is a hex lookup table of the 16 lowercase hex digits.
+	// The character values of the string are indexed at the equivalent
+	// hexadecimal value they represent. This table efficiently encodes byte data
+	// into a string representation of hexadecimal.
+	hexLU = "0123456789abcdef"
+
+	// hexRev is a reverse hex lookup table for lowercase hex digits.
+	// The table is efficiently decodes a hexadecimal string into bytes.
+	// Valid hexadecimal characters are indexed at their respective values. All
+	// other invalid ASCII characters are represented with '\xff'.
+	//
+	// The '\xff' character is used as invalid because no valid character has
+	// the upper 4 bits set. Meaning, an efficient validation can be performed
+	// over multiple character parsing by checking these bits remain zero.
+	hexRev = "" +
+		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
+		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
+		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
+		"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\xff\xff\xff\xff\xff\xff" +
+		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
+		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
+		"\xff\x0a\x0b\x0c\x0d\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
+		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
+		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
+		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
+		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
+		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
+		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
+		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
+		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
+		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
+)

+ 1 - 1
v2/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/attr.go

@@ -52,7 +52,7 @@ func Map(key string, value ...Attr) Attr {
 	return Attr{key, MapValue(value...)}
 	return Attr{key, MapValue(value...)}
 }
 }
 
 
-// Equal returns if a is equal to b.
+// Equal reports whether a is equal to b.
 func (a Attr) Equal(b Attr) bool {
 func (a Attr) Equal(b Attr) bool {
 	return a.Key == b.Key && a.Value.Equal(b.Value)
 	return a.Key == b.Key && a.Value.Equal(b.Value)
 }
 }

+ 3 - 3
v2/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/id.go

@@ -22,7 +22,7 @@ func (tid TraceID) String() string {
 	return hex.EncodeToString(tid[:])
 	return hex.EncodeToString(tid[:])
 }
 }
 
 
-// IsEmpty returns false if id contains at least one non-zero byte.
+// IsEmpty reports whether the TraceID contains only zero bytes.
 func (tid TraceID) IsEmpty() bool {
 func (tid TraceID) IsEmpty() bool {
 	return tid == [traceIDSize]byte{}
 	return tid == [traceIDSize]byte{}
 }
 }
@@ -50,7 +50,7 @@ func (sid SpanID) String() string {
 	return hex.EncodeToString(sid[:])
 	return hex.EncodeToString(sid[:])
 }
 }
 
 
-// IsEmpty returns true if the span ID contains at least one non-zero byte.
+// IsEmpty reports whether the SpanID contains only zero bytes.
 func (sid SpanID) IsEmpty() bool {
 func (sid SpanID) IsEmpty() bool {
 	return sid == [spanIDSize]byte{}
 	return sid == [spanIDSize]byte{}
 }
 }
@@ -82,7 +82,7 @@ func marshalJSON(id []byte) ([]byte, error) {
 }
 }
 
 
 // unmarshalJSON inflates trace id from hex string, possibly enclosed in quotes.
 // unmarshalJSON inflates trace id from hex string, possibly enclosed in quotes.
-func unmarshalJSON(dst []byte, src []byte) error {
+func unmarshalJSON(dst, src []byte) error {
 	if l := len(src); l >= 2 && src[0] == '"' && src[l-1] == '"' {
 	if l := len(src); l >= 2 && src[0] == '"' && src[l-1] == '"' {
 		src = src[1 : l-1]
 		src = src[1 : l-1]
 	}
 	}

+ 2 - 2
v2/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/value.go

@@ -257,10 +257,10 @@ func (v Value) Kind() ValueKind {
 	}
 	}
 }
 }
 
 
-// Empty returns if v does not hold any value.
+// Empty reports whether v does not hold any value.
 func (v Value) Empty() bool { return v.Kind() == ValueKindEmpty }
 func (v Value) Empty() bool { return v.Kind() == ValueKindEmpty }
 
 
-// Equal returns if v is equal to w.
+// Equal reports whether v is equal to w.
 func (v Value) Equal(w Value) bool {
 func (v Value) Equal(w Value) bool {
 	k1 := v.Kind()
 	k1 := v.Kind()
 	k2 := w.Kind()
 	k2 := w.Kind()

+ 2 - 2
v2/vendor/go.opentelemetry.io/otel/trace/noop.go

@@ -26,7 +26,7 @@ type noopTracerProvider struct{ embedded.TracerProvider }
 var _ TracerProvider = noopTracerProvider{}
 var _ TracerProvider = noopTracerProvider{}
 
 
 // Tracer returns noop implementation of Tracer.
 // Tracer returns noop implementation of Tracer.
-func (p noopTracerProvider) Tracer(string, ...TracerOption) Tracer {
+func (noopTracerProvider) Tracer(string, ...TracerOption) Tracer {
 	return noopTracer{}
 	return noopTracer{}
 }
 }
 
 
@@ -37,7 +37,7 @@ var _ Tracer = noopTracer{}
 
 
 // Start carries forward a non-recording Span, if one is present in the context, otherwise it
 // Start carries forward a non-recording Span, if one is present in the context, otherwise it
 // creates a no-op Span.
 // creates a no-op Span.
-func (t noopTracer) Start(ctx context.Context, name string, _ ...SpanStartOption) (context.Context, Span) {
+func (noopTracer) Start(ctx context.Context, _ string, _ ...SpanStartOption) (context.Context, Span) {
 	span := SpanFromContext(ctx)
 	span := SpanFromContext(ctx)
 	if _, ok := span.(nonRecordingSpan); !ok {
 	if _, ok := span.(nonRecordingSpan); !ok {
 		// span is likely already a noopSpan, but let's be sure
 		// span is likely already a noopSpan, but let's be sure

+ 1 - 1
v2/vendor/go.opentelemetry.io/otel/trace/noop/noop.go

@@ -51,7 +51,7 @@ type Tracer struct{ embedded.Tracer }
 // If ctx contains a span context, the returned span will also contain that
 // If ctx contains a span context, the returned span will also contain that
 // span context. If the span context in ctx is for a non-recording span, that
 // span context. If the span context in ctx is for a non-recording span, that
 // span instance will be returned directly.
 // span instance will be returned directly.
-func (t Tracer) Start(ctx context.Context, _ string, _ ...trace.SpanStartOption) (context.Context, trace.Span) {
+func (Tracer) Start(ctx context.Context, _ string, _ ...trace.SpanStartOption) (context.Context, trace.Span) {
 	span := trace.SpanFromContext(ctx)
 	span := trace.SpanFromContext(ctx)
 
 
 	// If the parent context contains a non-zero span context, that span
 	// If the parent context contains a non-zero span context, that span

+ 99 - 57
v2/vendor/go.opentelemetry.io/otel/trace/trace.go

@@ -4,8 +4,6 @@
 package trace // import "go.opentelemetry.io/otel/trace"
 package trace // import "go.opentelemetry.io/otel/trace"
 
 
 import (
 import (
-	"bytes"
-	"encoding/hex"
 	"encoding/json"
 	"encoding/json"
 )
 )
 
 
@@ -38,21 +36,47 @@ var (
 	_          json.Marshaler = nilTraceID
 	_          json.Marshaler = nilTraceID
 )
 )
 
 
-// IsValid checks whether the trace TraceID is valid. A valid trace ID does
+// IsValid reports whether the trace TraceID is valid. A valid trace ID does
 // not consist of zeros only.
 // not consist of zeros only.
 func (t TraceID) IsValid() bool {
 func (t TraceID) IsValid() bool {
-	return !bytes.Equal(t[:], nilTraceID[:])
+	return t != nilTraceID
 }
 }
 
 
 // MarshalJSON implements a custom marshal function to encode TraceID
 // MarshalJSON implements a custom marshal function to encode TraceID
 // as a hex string.
 // as a hex string.
 func (t TraceID) MarshalJSON() ([]byte, error) {
 func (t TraceID) MarshalJSON() ([]byte, error) {
-	return json.Marshal(t.String())
+	b := [32 + 2]byte{0: '"', 33: '"'}
+	h := t.hexBytes()
+	copy(b[1:], h[:])
+	return b[:], nil
 }
 }
 
 
 // String returns the hex string representation form of a TraceID.
 // String returns the hex string representation form of a TraceID.
 func (t TraceID) String() string {
 func (t TraceID) String() string {
-	return hex.EncodeToString(t[:])
+	h := t.hexBytes()
+	return string(h[:])
+}
+
+// hexBytes returns the hex string representation form of a TraceID.
+func (t TraceID) hexBytes() [32]byte {
+	return [32]byte{
+		hexLU[t[0x0]>>4], hexLU[t[0x0]&0xf],
+		hexLU[t[0x1]>>4], hexLU[t[0x1]&0xf],
+		hexLU[t[0x2]>>4], hexLU[t[0x2]&0xf],
+		hexLU[t[0x3]>>4], hexLU[t[0x3]&0xf],
+		hexLU[t[0x4]>>4], hexLU[t[0x4]&0xf],
+		hexLU[t[0x5]>>4], hexLU[t[0x5]&0xf],
+		hexLU[t[0x6]>>4], hexLU[t[0x6]&0xf],
+		hexLU[t[0x7]>>4], hexLU[t[0x7]&0xf],
+		hexLU[t[0x8]>>4], hexLU[t[0x8]&0xf],
+		hexLU[t[0x9]>>4], hexLU[t[0x9]&0xf],
+		hexLU[t[0xa]>>4], hexLU[t[0xa]&0xf],
+		hexLU[t[0xb]>>4], hexLU[t[0xb]&0xf],
+		hexLU[t[0xc]>>4], hexLU[t[0xc]&0xf],
+		hexLU[t[0xd]>>4], hexLU[t[0xd]&0xf],
+		hexLU[t[0xe]>>4], hexLU[t[0xe]&0xf],
+		hexLU[t[0xf]>>4], hexLU[t[0xf]&0xf],
+	}
 }
 }
 
 
 // SpanID is a unique identity of a span in a trace.
 // SpanID is a unique identity of a span in a trace.
@@ -63,21 +87,38 @@ var (
 	_         json.Marshaler = nilSpanID
 	_         json.Marshaler = nilSpanID
 )
 )
 
 
-// IsValid checks whether the SpanID is valid. A valid SpanID does not consist
+// IsValid reports whether the SpanID is valid. A valid SpanID does not consist
 // of zeros only.
 // of zeros only.
 func (s SpanID) IsValid() bool {
 func (s SpanID) IsValid() bool {
-	return !bytes.Equal(s[:], nilSpanID[:])
+	return s != nilSpanID
 }
 }
 
 
 // MarshalJSON implements a custom marshal function to encode SpanID
 // MarshalJSON implements a custom marshal function to encode SpanID
 // as a hex string.
 // as a hex string.
 func (s SpanID) MarshalJSON() ([]byte, error) {
 func (s SpanID) MarshalJSON() ([]byte, error) {
-	return json.Marshal(s.String())
+	b := [16 + 2]byte{0: '"', 17: '"'}
+	h := s.hexBytes()
+	copy(b[1:], h[:])
+	return b[:], nil
 }
 }
 
 
 // String returns the hex string representation form of a SpanID.
 // String returns the hex string representation form of a SpanID.
 func (s SpanID) String() string {
 func (s SpanID) String() string {
-	return hex.EncodeToString(s[:])
+	b := s.hexBytes()
+	return string(b[:])
+}
+
+func (s SpanID) hexBytes() [16]byte {
+	return [16]byte{
+		hexLU[s[0]>>4], hexLU[s[0]&0xf],
+		hexLU[s[1]>>4], hexLU[s[1]&0xf],
+		hexLU[s[2]>>4], hexLU[s[2]&0xf],
+		hexLU[s[3]>>4], hexLU[s[3]&0xf],
+		hexLU[s[4]>>4], hexLU[s[4]&0xf],
+		hexLU[s[5]>>4], hexLU[s[5]&0xf],
+		hexLU[s[6]>>4], hexLU[s[6]&0xf],
+		hexLU[s[7]>>4], hexLU[s[7]&0xf],
+	}
 }
 }
 
 
 // TraceIDFromHex returns a TraceID from a hex string if it is compliant with
 // TraceIDFromHex returns a TraceID from a hex string if it is compliant with
@@ -85,65 +126,58 @@ func (s SpanID) String() string {
 // https://www.w3.org/TR/trace-context/#trace-id
 // https://www.w3.org/TR/trace-context/#trace-id
 // nolint:revive // revive complains about stutter of `trace.TraceIDFromHex`.
 // nolint:revive // revive complains about stutter of `trace.TraceIDFromHex`.
 func TraceIDFromHex(h string) (TraceID, error) {
 func TraceIDFromHex(h string) (TraceID, error) {
-	t := TraceID{}
 	if len(h) != 32 {
 	if len(h) != 32 {
-		return t, errInvalidTraceIDLength
+		return [16]byte{}, errInvalidTraceIDLength
 	}
 	}
-
-	if err := decodeHex(h, t[:]); err != nil {
-		return t, err
+	var b [16]byte
+	invalidMark := byte(0)
+	for i := 0; i < len(h); i += 4 {
+		b[i/2] = (hexRev[h[i]] << 4) | hexRev[h[i+1]]
+		b[i/2+1] = (hexRev[h[i+2]] << 4) | hexRev[h[i+3]]
+		invalidMark |= hexRev[h[i]] | hexRev[h[i+1]] | hexRev[h[i+2]] | hexRev[h[i+3]]
 	}
 	}
-
-	if !t.IsValid() {
-		return t, errNilTraceID
+	// If the upper 4 bits of any byte are not zero, there was an invalid hex
+	// character since invalid hex characters are 0xff in hexRev.
+	if invalidMark&0xf0 != 0 {
+		return [16]byte{}, errInvalidHexID
+	}
+	// If we didn't set any bits, then h was all zeros.
+	if invalidMark == 0 {
+		return [16]byte{}, errNilTraceID
 	}
 	}
-	return t, nil
+	return b, nil
 }
 }
 
 
 // SpanIDFromHex returns a SpanID from a hex string if it is compliant
 // SpanIDFromHex returns a SpanID from a hex string if it is compliant
 // with the w3c trace-context specification.
 // with the w3c trace-context specification.
 // See more at https://www.w3.org/TR/trace-context/#parent-id
 // See more at https://www.w3.org/TR/trace-context/#parent-id
 func SpanIDFromHex(h string) (SpanID, error) {
 func SpanIDFromHex(h string) (SpanID, error) {
-	s := SpanID{}
 	if len(h) != 16 {
 	if len(h) != 16 {
-		return s, errInvalidSpanIDLength
-	}
-
-	if err := decodeHex(h, s[:]); err != nil {
-		return s, err
+		return [8]byte{}, errInvalidSpanIDLength
 	}
 	}
-
-	if !s.IsValid() {
-		return s, errNilSpanID
+	var b [8]byte
+	invalidMark := byte(0)
+	for i := 0; i < len(h); i += 4 {
+		b[i/2] = (hexRev[h[i]] << 4) | hexRev[h[i+1]]
+		b[i/2+1] = (hexRev[h[i+2]] << 4) | hexRev[h[i+3]]
+		invalidMark |= hexRev[h[i]] | hexRev[h[i+1]] | hexRev[h[i+2]] | hexRev[h[i+3]]
 	}
 	}
-	return s, nil
-}
-
-func decodeHex(h string, b []byte) error {
-	for _, r := range h {
-		switch {
-		case 'a' <= r && r <= 'f':
-			continue
-		case '0' <= r && r <= '9':
-			continue
-		default:
-			return errInvalidHexID
-		}
+	// If the upper 4 bits of any byte are not zero, there was an invalid hex
+	// character since invalid hex characters are 0xff in hexRev.
+	if invalidMark&0xf0 != 0 {
+		return [8]byte{}, errInvalidHexID
 	}
 	}
-
-	decoded, err := hex.DecodeString(h)
-	if err != nil {
-		return err
+	// If we didn't set any bits, then h was all zeros.
+	if invalidMark == 0 {
+		return [8]byte{}, errNilSpanID
 	}
 	}
-
-	copy(b, decoded)
-	return nil
+	return b, nil
 }
 }
 
 
 // TraceFlags contains flags that can be set on a SpanContext.
 // TraceFlags contains flags that can be set on a SpanContext.
 type TraceFlags byte //nolint:revive // revive complains about stutter of `trace.TraceFlags`.
 type TraceFlags byte //nolint:revive // revive complains about stutter of `trace.TraceFlags`.
 
 
-// IsSampled returns if the sampling bit is set in the TraceFlags.
+// IsSampled reports whether the sampling bit is set in the TraceFlags.
 func (tf TraceFlags) IsSampled() bool {
 func (tf TraceFlags) IsSampled() bool {
 	return tf&FlagsSampled == FlagsSampled
 	return tf&FlagsSampled == FlagsSampled
 }
 }
@@ -160,12 +194,20 @@ func (tf TraceFlags) WithSampled(sampled bool) TraceFlags { // nolint:revive  //
 // MarshalJSON implements a custom marshal function to encode TraceFlags
 // MarshalJSON implements a custom marshal function to encode TraceFlags
 // as a hex string.
 // as a hex string.
 func (tf TraceFlags) MarshalJSON() ([]byte, error) {
 func (tf TraceFlags) MarshalJSON() ([]byte, error) {
-	return json.Marshal(tf.String())
+	b := [2 + 2]byte{0: '"', 3: '"'}
+	h := tf.hexBytes()
+	copy(b[1:], h[:])
+	return b[:], nil
 }
 }
 
 
 // String returns the hex string representation form of TraceFlags.
 // String returns the hex string representation form of TraceFlags.
 func (tf TraceFlags) String() string {
 func (tf TraceFlags) String() string {
-	return hex.EncodeToString([]byte{byte(tf)}[:])
+	h := tf.hexBytes()
+	return string(h[:])
+}
+
+func (tf TraceFlags) hexBytes() [2]byte {
+	return [2]byte{hexLU[tf>>4], hexLU[tf&0xf]}
 }
 }
 
 
 // SpanContextConfig contains mutable fields usable for constructing
 // SpanContextConfig contains mutable fields usable for constructing
@@ -201,13 +243,13 @@ type SpanContext struct {
 
 
 var _ json.Marshaler = SpanContext{}
 var _ json.Marshaler = SpanContext{}
 
 
-// IsValid returns if the SpanContext is valid. A valid span context has a
+// IsValid reports whether the SpanContext is valid. A valid span context has a
 // valid TraceID and SpanID.
 // valid TraceID and SpanID.
 func (sc SpanContext) IsValid() bool {
 func (sc SpanContext) IsValid() bool {
 	return sc.HasTraceID() && sc.HasSpanID()
 	return sc.HasTraceID() && sc.HasSpanID()
 }
 }
 
 
-// IsRemote indicates whether the SpanContext represents a remotely-created Span.
+// IsRemote reports whether the SpanContext represents a remotely-created Span.
 func (sc SpanContext) IsRemote() bool {
 func (sc SpanContext) IsRemote() bool {
 	return sc.remote
 	return sc.remote
 }
 }
@@ -228,7 +270,7 @@ func (sc SpanContext) TraceID() TraceID {
 	return sc.traceID
 	return sc.traceID
 }
 }
 
 
-// HasTraceID checks if the SpanContext has a valid TraceID.
+// HasTraceID reports whether the SpanContext has a valid TraceID.
 func (sc SpanContext) HasTraceID() bool {
 func (sc SpanContext) HasTraceID() bool {
 	return sc.traceID.IsValid()
 	return sc.traceID.IsValid()
 }
 }
@@ -249,7 +291,7 @@ func (sc SpanContext) SpanID() SpanID {
 	return sc.spanID
 	return sc.spanID
 }
 }
 
 
-// HasSpanID checks if the SpanContext has a valid SpanID.
+// HasSpanID reports whether the SpanContext has a valid SpanID.
 func (sc SpanContext) HasSpanID() bool {
 func (sc SpanContext) HasSpanID() bool {
 	return sc.spanID.IsValid()
 	return sc.spanID.IsValid()
 }
 }
@@ -270,7 +312,7 @@ func (sc SpanContext) TraceFlags() TraceFlags {
 	return sc.traceFlags
 	return sc.traceFlags
 }
 }
 
 
-// IsSampled returns if the sampling bit is set in the SpanContext's TraceFlags.
+// IsSampled reports whether the sampling bit is set in the SpanContext's TraceFlags.
 func (sc SpanContext) IsSampled() bool {
 func (sc SpanContext) IsSampled() bool {
 	return sc.traceFlags.IsSampled()
 	return sc.traceFlags.IsSampled()
 }
 }
@@ -302,7 +344,7 @@ func (sc SpanContext) WithTraceState(state TraceState) SpanContext {
 	}
 	}
 }
 }
 
 
-// Equal is a predicate that determines whether two SpanContext values are equal.
+// Equal reports whether two SpanContext values are equal.
 func (sc SpanContext) Equal(other SpanContext) bool {
 func (sc SpanContext) Equal(other SpanContext) bool {
 	return sc.traceID == other.traceID &&
 	return sc.traceID == other.traceID &&
 		sc.spanID == other.spanID &&
 		sc.spanID == other.spanID &&

+ 3 - 3
v2/vendor/go.opentelemetry.io/otel/trace/tracestate.go

@@ -80,7 +80,7 @@ func checkKeyRemain(key string) bool {
 //
 //
 // param n is remain part length, should be 255 in simple-key or 13 in system-id.
 // param n is remain part length, should be 255 in simple-key or 13 in system-id.
 func checkKeyPart(key string, n int) bool {
 func checkKeyPart(key string, n int) bool {
-	if len(key) == 0 {
+	if key == "" {
 		return false
 		return false
 	}
 	}
 	first := key[0] // key's first char
 	first := key[0] // key's first char
@@ -102,7 +102,7 @@ func isAlphaNum(c byte) bool {
 //
 //
 // param n is remain part length, should be 240 exactly.
 // param n is remain part length, should be 240 exactly.
 func checkKeyTenant(key string, n int) bool {
 func checkKeyTenant(key string, n int) bool {
-	if len(key) == 0 {
+	if key == "" {
 		return false
 		return false
 	}
 	}
 	return isAlphaNum(key[0]) && len(key[1:]) <= n && checkKeyRemain(key[1:])
 	return isAlphaNum(key[0]) && len(key[1:]) <= n && checkKeyRemain(key[1:])
@@ -191,7 +191,7 @@ func ParseTraceState(ts string) (TraceState, error) {
 	for ts != "" {
 	for ts != "" {
 		var memberStr string
 		var memberStr string
 		memberStr, ts, _ = strings.Cut(ts, listDelimiters)
 		memberStr, ts, _ = strings.Cut(ts, listDelimiters)
-		if len(memberStr) == 0 {
+		if memberStr == "" {
 			continue
 			continue
 		}
 		}
 
 

+ 1 - 1
v2/vendor/go.opentelemetry.io/otel/version.go

@@ -5,5 +5,5 @@ package otel // import "go.opentelemetry.io/otel"
 
 
 // Version is the current release version of OpenTelemetry in use.
 // Version is the current release version of OpenTelemetry in use.
 func Version() string {
 func Version() string {
-	return "1.37.0"
+	return "1.38.0"
 }
 }

+ 4 - 4
v2/vendor/go.opentelemetry.io/otel/versions.yaml

@@ -3,7 +3,7 @@
 
 
 module-sets:
 module-sets:
   stable-v1:
   stable-v1:
-    version: v1.37.0
+    version: v1.38.0
     modules:
     modules:
       - go.opentelemetry.io/otel
       - go.opentelemetry.io/otel
       - go.opentelemetry.io/otel/bridge/opencensus
       - go.opentelemetry.io/otel/bridge/opencensus
@@ -22,11 +22,11 @@ module-sets:
       - go.opentelemetry.io/otel/sdk/metric
       - go.opentelemetry.io/otel/sdk/metric
       - go.opentelemetry.io/otel/trace
       - go.opentelemetry.io/otel/trace
   experimental-metrics:
   experimental-metrics:
-    version: v0.59.0
+    version: v0.60.0
     modules:
     modules:
       - go.opentelemetry.io/otel/exporters/prometheus
       - go.opentelemetry.io/otel/exporters/prometheus
   experimental-logs:
   experimental-logs:
-    version: v0.13.0
+    version: v0.14.0
     modules:
     modules:
       - go.opentelemetry.io/otel/log
       - go.opentelemetry.io/otel/log
       - go.opentelemetry.io/otel/log/logtest
       - go.opentelemetry.io/otel/log/logtest
@@ -36,7 +36,7 @@ module-sets:
       - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp
       - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp
       - go.opentelemetry.io/otel/exporters/stdout/stdoutlog
       - go.opentelemetry.io/otel/exporters/stdout/stdoutlog
   experimental-schema:
   experimental-schema:
-    version: v0.0.12
+    version: v0.0.13
     modules:
     modules:
       - go.opentelemetry.io/otel/schema
       - go.opentelemetry.io/otel/schema
 excluded-modules:
 excluded-modules:

+ 3 - 0
v2/vendor/golang.org/x/sys/unix/mkerrors.sh

@@ -349,6 +349,9 @@ struct ltchars {
 #define _HIDIOCGRAWPHYS		HIDIOCGRAWPHYS(_HIDIOCGRAWPHYS_LEN)
 #define _HIDIOCGRAWPHYS		HIDIOCGRAWPHYS(_HIDIOCGRAWPHYS_LEN)
 #define _HIDIOCGRAWUNIQ		HIDIOCGRAWUNIQ(_HIDIOCGRAWUNIQ_LEN)
 #define _HIDIOCGRAWUNIQ		HIDIOCGRAWUNIQ(_HIDIOCGRAWUNIQ_LEN)
 
 
+// Renamed in v6.16, commit c6d732c38f93 ("net: ethtool: remove duplicate defines for family info")
+#define ETHTOOL_FAMILY_NAME	ETHTOOL_GENL_NAME
+#define ETHTOOL_FAMILY_VERSION	ETHTOOL_GENL_VERSION
 '
 '
 
 
 includes_NetBSD='
 includes_NetBSD='

+ 1 - 55
v2/vendor/golang.org/x/sys/unix/syscall_darwin.go

@@ -602,14 +602,9 @@ func Connectx(fd int, srcIf uint32, srcAddr, dstAddr Sockaddr, associd SaeAssocI
 	return
 	return
 }
 }
 
 
-// sys	connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error)
 const minIovec = 8
 const minIovec = 8
 
 
 func Readv(fd int, iovs [][]byte) (n int, err error) {
 func Readv(fd int, iovs [][]byte) (n int, err error) {
-	if !darwinKernelVersionMin(11, 0, 0) {
-		return 0, ENOSYS
-	}
-
 	iovecs := make([]Iovec, 0, minIovec)
 	iovecs := make([]Iovec, 0, minIovec)
 	iovecs = appendBytes(iovecs, iovs)
 	iovecs = appendBytes(iovecs, iovs)
 	n, err = readv(fd, iovecs)
 	n, err = readv(fd, iovecs)
@@ -618,9 +613,6 @@ func Readv(fd int, iovs [][]byte) (n int, err error) {
 }
 }
 
 
 func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) {
 func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) {
-	if !darwinKernelVersionMin(11, 0, 0) {
-		return 0, ENOSYS
-	}
 	iovecs := make([]Iovec, 0, minIovec)
 	iovecs := make([]Iovec, 0, minIovec)
 	iovecs = appendBytes(iovecs, iovs)
 	iovecs = appendBytes(iovecs, iovs)
 	n, err = preadv(fd, iovecs, offset)
 	n, err = preadv(fd, iovecs, offset)
@@ -629,10 +621,6 @@ func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) {
 }
 }
 
 
 func Writev(fd int, iovs [][]byte) (n int, err error) {
 func Writev(fd int, iovs [][]byte) (n int, err error) {
-	if !darwinKernelVersionMin(11, 0, 0) {
-		return 0, ENOSYS
-	}
-
 	iovecs := make([]Iovec, 0, minIovec)
 	iovecs := make([]Iovec, 0, minIovec)
 	iovecs = appendBytes(iovecs, iovs)
 	iovecs = appendBytes(iovecs, iovs)
 	if raceenabled {
 	if raceenabled {
@@ -644,10 +632,6 @@ func Writev(fd int, iovs [][]byte) (n int, err error) {
 }
 }
 
 
 func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) {
 func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) {
-	if !darwinKernelVersionMin(11, 0, 0) {
-		return 0, ENOSYS
-	}
-
 	iovecs := make([]Iovec, 0, minIovec)
 	iovecs := make([]Iovec, 0, minIovec)
 	iovecs = appendBytes(iovecs, iovs)
 	iovecs = appendBytes(iovecs, iovs)
 	if raceenabled {
 	if raceenabled {
@@ -707,45 +691,7 @@ func readvRacedetect(iovecs []Iovec, n int, err error) {
 	}
 	}
 }
 }
 
 
-func darwinMajorMinPatch() (maj, min, patch int, err error) {
-	var un Utsname
-	err = Uname(&un)
-	if err != nil {
-		return
-	}
-
-	var mmp [3]int
-	c := 0
-Loop:
-	for _, b := range un.Release[:] {
-		switch {
-		case b >= '0' && b <= '9':
-			mmp[c] = 10*mmp[c] + int(b-'0')
-		case b == '.':
-			c++
-			if c > 2 {
-				return 0, 0, 0, ENOTSUP
-			}
-		case b == 0:
-			break Loop
-		default:
-			return 0, 0, 0, ENOTSUP
-		}
-	}
-	if c != 2 {
-		return 0, 0, 0, ENOTSUP
-	}
-	return mmp[0], mmp[1], mmp[2], nil
-}
-
-func darwinKernelVersionMin(maj, min, patch int) bool {
-	actualMaj, actualMin, actualPatch, err := darwinMajorMinPatch()
-	if err != nil {
-		return false
-	}
-	return actualMaj > maj || actualMaj == maj && (actualMin > min || actualMin == min && actualPatch >= patch)
-}
-
+//sys	connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error)
 //sys	sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error)
 //sys	sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error)
 
 
 //sys	shmat(id int, addr uintptr, flag int) (ret uintptr, err error)
 //sys	shmat(id int, addr uintptr, flag int) (ret uintptr, err error)

+ 30 - 14
v2/vendor/golang.org/x/sys/unix/zerrors_linux.go

@@ -328,6 +328,8 @@ const (
 	AUDIT_KERNEL                                = 0x7d0
 	AUDIT_KERNEL                                = 0x7d0
 	AUDIT_KERNEL_OTHER                          = 0x524
 	AUDIT_KERNEL_OTHER                          = 0x524
 	AUDIT_KERN_MODULE                           = 0x532
 	AUDIT_KERN_MODULE                           = 0x532
+	AUDIT_LANDLOCK_ACCESS                       = 0x58f
+	AUDIT_LANDLOCK_DOMAIN                       = 0x590
 	AUDIT_LAST_FEATURE                          = 0x1
 	AUDIT_LAST_FEATURE                          = 0x1
 	AUDIT_LAST_KERN_ANOM_MSG                    = 0x707
 	AUDIT_LAST_KERN_ANOM_MSG                    = 0x707
 	AUDIT_LAST_USER_MSG                         = 0x4af
 	AUDIT_LAST_USER_MSG                         = 0x4af
@@ -492,6 +494,7 @@ const (
 	BPF_F_BEFORE                                = 0x8
 	BPF_F_BEFORE                                = 0x8
 	BPF_F_ID                                    = 0x20
 	BPF_F_ID                                    = 0x20
 	BPF_F_NETFILTER_IP_DEFRAG                   = 0x1
 	BPF_F_NETFILTER_IP_DEFRAG                   = 0x1
+	BPF_F_PREORDER                              = 0x40
 	BPF_F_QUERY_EFFECTIVE                       = 0x1
 	BPF_F_QUERY_EFFECTIVE                       = 0x1
 	BPF_F_REDIRECT_FLAGS                        = 0x19
 	BPF_F_REDIRECT_FLAGS                        = 0x19
 	BPF_F_REPLACE                               = 0x4
 	BPF_F_REPLACE                               = 0x4
@@ -528,6 +531,7 @@ const (
 	BPF_LDX                                     = 0x1
 	BPF_LDX                                     = 0x1
 	BPF_LEN                                     = 0x80
 	BPF_LEN                                     = 0x80
 	BPF_LL_OFF                                  = -0x200000
 	BPF_LL_OFF                                  = -0x200000
+	BPF_LOAD_ACQ                                = 0x100
 	BPF_LSH                                     = 0x60
 	BPF_LSH                                     = 0x60
 	BPF_MAJOR_VERSION                           = 0x1
 	BPF_MAJOR_VERSION                           = 0x1
 	BPF_MAXINSNS                                = 0x1000
 	BPF_MAXINSNS                                = 0x1000
@@ -555,6 +559,7 @@ const (
 	BPF_RET                                     = 0x6
 	BPF_RET                                     = 0x6
 	BPF_RSH                                     = 0x70
 	BPF_RSH                                     = 0x70
 	BPF_ST                                      = 0x2
 	BPF_ST                                      = 0x2
+	BPF_STORE_REL                               = 0x110
 	BPF_STX                                     = 0x3
 	BPF_STX                                     = 0x3
 	BPF_SUB                                     = 0x10
 	BPF_SUB                                     = 0x10
 	BPF_TAG_SIZE                                = 0x8
 	BPF_TAG_SIZE                                = 0x8
@@ -844,9 +849,9 @@ const (
 	DM_UUID_FLAG                                = 0x4000
 	DM_UUID_FLAG                                = 0x4000
 	DM_UUID_LEN                                 = 0x81
 	DM_UUID_LEN                                 = 0x81
 	DM_VERSION                                  = 0xc138fd00
 	DM_VERSION                                  = 0xc138fd00
-	DM_VERSION_EXTRA                            = "-ioctl (2025-01-17)"
+	DM_VERSION_EXTRA                            = "-ioctl (2025-04-28)"
 	DM_VERSION_MAJOR                            = 0x4
 	DM_VERSION_MAJOR                            = 0x4
-	DM_VERSION_MINOR                            = 0x31
+	DM_VERSION_MINOR                            = 0x32
 	DM_VERSION_PATCHLEVEL                       = 0x0
 	DM_VERSION_PATCHLEVEL                       = 0x0
 	DT_BLK                                      = 0x6
 	DT_BLK                                      = 0x6
 	DT_CHR                                      = 0x2
 	DT_CHR                                      = 0x2
@@ -937,9 +942,6 @@ const (
 	EPOLL_CTL_MOD                               = 0x3
 	EPOLL_CTL_MOD                               = 0x3
 	EPOLL_IOC_TYPE                              = 0x8a
 	EPOLL_IOC_TYPE                              = 0x8a
 	EROFS_SUPER_MAGIC_V1                        = 0xe0f5e1e2
 	EROFS_SUPER_MAGIC_V1                        = 0xe0f5e1e2
-	ESP_V4_FLOW                                 = 0xa
-	ESP_V6_FLOW                                 = 0xc
-	ETHER_FLOW                                  = 0x12
 	ETHTOOL_BUSINFO_LEN                         = 0x20
 	ETHTOOL_BUSINFO_LEN                         = 0x20
 	ETHTOOL_EROMVERS_LEN                        = 0x20
 	ETHTOOL_EROMVERS_LEN                        = 0x20
 	ETHTOOL_FAMILY_NAME                         = "ethtool"
 	ETHTOOL_FAMILY_NAME                         = "ethtool"
@@ -1213,6 +1215,7 @@ const (
 	FAN_EVENT_INFO_TYPE_DFID_NAME               = 0x2
 	FAN_EVENT_INFO_TYPE_DFID_NAME               = 0x2
 	FAN_EVENT_INFO_TYPE_ERROR                   = 0x5
 	FAN_EVENT_INFO_TYPE_ERROR                   = 0x5
 	FAN_EVENT_INFO_TYPE_FID                     = 0x1
 	FAN_EVENT_INFO_TYPE_FID                     = 0x1
+	FAN_EVENT_INFO_TYPE_MNT                     = 0x7
 	FAN_EVENT_INFO_TYPE_NEW_DFID_NAME           = 0xc
 	FAN_EVENT_INFO_TYPE_NEW_DFID_NAME           = 0xc
 	FAN_EVENT_INFO_TYPE_OLD_DFID_NAME           = 0xa
 	FAN_EVENT_INFO_TYPE_OLD_DFID_NAME           = 0xa
 	FAN_EVENT_INFO_TYPE_PIDFD                   = 0x4
 	FAN_EVENT_INFO_TYPE_PIDFD                   = 0x4
@@ -1231,9 +1234,12 @@ const (
 	FAN_MARK_IGNORED_SURV_MODIFY                = 0x40
 	FAN_MARK_IGNORED_SURV_MODIFY                = 0x40
 	FAN_MARK_IGNORE_SURV                        = 0x440
 	FAN_MARK_IGNORE_SURV                        = 0x440
 	FAN_MARK_INODE                              = 0x0
 	FAN_MARK_INODE                              = 0x0
+	FAN_MARK_MNTNS                              = 0x110
 	FAN_MARK_MOUNT                              = 0x10
 	FAN_MARK_MOUNT                              = 0x10
 	FAN_MARK_ONLYDIR                            = 0x8
 	FAN_MARK_ONLYDIR                            = 0x8
 	FAN_MARK_REMOVE                             = 0x2
 	FAN_MARK_REMOVE                             = 0x2
+	FAN_MNT_ATTACH                              = 0x1000000
+	FAN_MNT_DETACH                              = 0x2000000
 	FAN_MODIFY                                  = 0x2
 	FAN_MODIFY                                  = 0x2
 	FAN_MOVE                                    = 0xc0
 	FAN_MOVE                                    = 0xc0
 	FAN_MOVED_FROM                              = 0x40
 	FAN_MOVED_FROM                              = 0x40
@@ -1255,6 +1261,7 @@ const (
 	FAN_REPORT_DIR_FID                          = 0x400
 	FAN_REPORT_DIR_FID                          = 0x400
 	FAN_REPORT_FD_ERROR                         = 0x2000
 	FAN_REPORT_FD_ERROR                         = 0x2000
 	FAN_REPORT_FID                              = 0x200
 	FAN_REPORT_FID                              = 0x200
+	FAN_REPORT_MNT                              = 0x4000
 	FAN_REPORT_NAME                             = 0x800
 	FAN_REPORT_NAME                             = 0x800
 	FAN_REPORT_PIDFD                            = 0x80
 	FAN_REPORT_PIDFD                            = 0x80
 	FAN_REPORT_TARGET_FID                       = 0x1000
 	FAN_REPORT_TARGET_FID                       = 0x1000
@@ -1274,6 +1281,7 @@ const (
 	FIB_RULE_PERMANENT                          = 0x1
 	FIB_RULE_PERMANENT                          = 0x1
 	FIB_RULE_UNRESOLVED                         = 0x4
 	FIB_RULE_UNRESOLVED                         = 0x4
 	FIDEDUPERANGE                               = 0xc0189436
 	FIDEDUPERANGE                               = 0xc0189436
+	FSCRYPT_ADD_KEY_FLAG_HW_WRAPPED             = 0x1
 	FSCRYPT_KEY_DESCRIPTOR_SIZE                 = 0x8
 	FSCRYPT_KEY_DESCRIPTOR_SIZE                 = 0x8
 	FSCRYPT_KEY_DESC_PREFIX                     = "fscrypt:"
 	FSCRYPT_KEY_DESC_PREFIX                     = "fscrypt:"
 	FSCRYPT_KEY_DESC_PREFIX_SIZE                = 0x8
 	FSCRYPT_KEY_DESC_PREFIX_SIZE                = 0x8
@@ -1582,7 +1590,6 @@ const (
 	IPV6_DONTFRAG                               = 0x3e
 	IPV6_DONTFRAG                               = 0x3e
 	IPV6_DROP_MEMBERSHIP                        = 0x15
 	IPV6_DROP_MEMBERSHIP                        = 0x15
 	IPV6_DSTOPTS                                = 0x3b
 	IPV6_DSTOPTS                                = 0x3b
-	IPV6_FLOW                                   = 0x11
 	IPV6_FREEBIND                               = 0x4e
 	IPV6_FREEBIND                               = 0x4e
 	IPV6_HDRINCL                                = 0x24
 	IPV6_HDRINCL                                = 0x24
 	IPV6_HOPLIMIT                               = 0x34
 	IPV6_HOPLIMIT                               = 0x34
@@ -1633,7 +1640,6 @@ const (
 	IPV6_TRANSPARENT                            = 0x4b
 	IPV6_TRANSPARENT                            = 0x4b
 	IPV6_UNICAST_HOPS                           = 0x10
 	IPV6_UNICAST_HOPS                           = 0x10
 	IPV6_UNICAST_IF                             = 0x4c
 	IPV6_UNICAST_IF                             = 0x4c
-	IPV6_USER_FLOW                              = 0xe
 	IPV6_V6ONLY                                 = 0x1a
 	IPV6_V6ONLY                                 = 0x1a
 	IPV6_VERSION                                = 0x60
 	IPV6_VERSION                                = 0x60
 	IPV6_VERSION_MASK                           = 0xf0
 	IPV6_VERSION_MASK                           = 0xf0
@@ -1695,7 +1701,6 @@ const (
 	IP_TTL                                      = 0x2
 	IP_TTL                                      = 0x2
 	IP_UNBLOCK_SOURCE                           = 0x25
 	IP_UNBLOCK_SOURCE                           = 0x25
 	IP_UNICAST_IF                               = 0x32
 	IP_UNICAST_IF                               = 0x32
-	IP_USER_FLOW                                = 0xd
 	IP_XFRM_POLICY                              = 0x11
 	IP_XFRM_POLICY                              = 0x11
 	ISOFS_SUPER_MAGIC                           = 0x9660
 	ISOFS_SUPER_MAGIC                           = 0x9660
 	ISTRIP                                      = 0x20
 	ISTRIP                                      = 0x20
@@ -1817,7 +1822,11 @@ const (
 	LANDLOCK_ACCESS_FS_WRITE_FILE               = 0x2
 	LANDLOCK_ACCESS_FS_WRITE_FILE               = 0x2
 	LANDLOCK_ACCESS_NET_BIND_TCP                = 0x1
 	LANDLOCK_ACCESS_NET_BIND_TCP                = 0x1
 	LANDLOCK_ACCESS_NET_CONNECT_TCP             = 0x2
 	LANDLOCK_ACCESS_NET_CONNECT_TCP             = 0x2
+	LANDLOCK_CREATE_RULESET_ERRATA              = 0x2
 	LANDLOCK_CREATE_RULESET_VERSION             = 0x1
 	LANDLOCK_CREATE_RULESET_VERSION             = 0x1
+	LANDLOCK_RESTRICT_SELF_LOG_NEW_EXEC_ON      = 0x2
+	LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF    = 0x1
+	LANDLOCK_RESTRICT_SELF_LOG_SUBDOMAINS_OFF   = 0x4
 	LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET         = 0x1
 	LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET         = 0x1
 	LANDLOCK_SCOPE_SIGNAL                       = 0x2
 	LANDLOCK_SCOPE_SIGNAL                       = 0x2
 	LINUX_REBOOT_CMD_CAD_OFF                    = 0x0
 	LINUX_REBOOT_CMD_CAD_OFF                    = 0x0
@@ -2493,6 +2502,10 @@ const (
 	PR_FP_EXC_UND                               = 0x40000
 	PR_FP_EXC_UND                               = 0x40000
 	PR_FP_MODE_FR                               = 0x1
 	PR_FP_MODE_FR                               = 0x1
 	PR_FP_MODE_FRE                              = 0x2
 	PR_FP_MODE_FRE                              = 0x2
+	PR_FUTEX_HASH                               = 0x4e
+	PR_FUTEX_HASH_GET_IMMUTABLE                 = 0x3
+	PR_FUTEX_HASH_GET_SLOTS                     = 0x2
+	PR_FUTEX_HASH_SET_SLOTS                     = 0x1
 	PR_GET_AUXV                                 = 0x41555856
 	PR_GET_AUXV                                 = 0x41555856
 	PR_GET_CHILD_SUBREAPER                      = 0x25
 	PR_GET_CHILD_SUBREAPER                      = 0x25
 	PR_GET_DUMPABLE                             = 0x3
 	PR_GET_DUMPABLE                             = 0x3
@@ -2652,6 +2665,10 @@ const (
 	PR_TAGGED_ADDR_ENABLE                       = 0x1
 	PR_TAGGED_ADDR_ENABLE                       = 0x1
 	PR_TASK_PERF_EVENTS_DISABLE                 = 0x1f
 	PR_TASK_PERF_EVENTS_DISABLE                 = 0x1f
 	PR_TASK_PERF_EVENTS_ENABLE                  = 0x20
 	PR_TASK_PERF_EVENTS_ENABLE                  = 0x20
+	PR_TIMER_CREATE_RESTORE_IDS                 = 0x4d
+	PR_TIMER_CREATE_RESTORE_IDS_GET             = 0x2
+	PR_TIMER_CREATE_RESTORE_IDS_OFF             = 0x0
+	PR_TIMER_CREATE_RESTORE_IDS_ON              = 0x1
 	PR_TIMING_STATISTICAL                       = 0x0
 	PR_TIMING_STATISTICAL                       = 0x0
 	PR_TIMING_TIMESTAMP                         = 0x1
 	PR_TIMING_TIMESTAMP                         = 0x1
 	PR_TSC_ENABLE                               = 0x1
 	PR_TSC_ENABLE                               = 0x1
@@ -2732,6 +2749,7 @@ const (
 	PTRACE_SETREGSET                            = 0x4205
 	PTRACE_SETREGSET                            = 0x4205
 	PTRACE_SETSIGINFO                           = 0x4203
 	PTRACE_SETSIGINFO                           = 0x4203
 	PTRACE_SETSIGMASK                           = 0x420b
 	PTRACE_SETSIGMASK                           = 0x420b
+	PTRACE_SET_SYSCALL_INFO                     = 0x4212
 	PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG     = 0x4210
 	PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG     = 0x4210
 	PTRACE_SINGLESTEP                           = 0x9
 	PTRACE_SINGLESTEP                           = 0x9
 	PTRACE_SYSCALL                              = 0x18
 	PTRACE_SYSCALL                              = 0x18
@@ -2982,6 +3000,7 @@ const (
 	RTPROT_NTK                                  = 0xf
 	RTPROT_NTK                                  = 0xf
 	RTPROT_OPENR                                = 0x63
 	RTPROT_OPENR                                = 0x63
 	RTPROT_OSPF                                 = 0xbc
 	RTPROT_OSPF                                 = 0xbc
+	RTPROT_OVN                                  = 0x54
 	RTPROT_RA                                   = 0x9
 	RTPROT_RA                                   = 0x9
 	RTPROT_REDIRECT                             = 0x1
 	RTPROT_REDIRECT                             = 0x1
 	RTPROT_RIP                                  = 0xbd
 	RTPROT_RIP                                  = 0xbd
@@ -3336,7 +3355,7 @@ const (
 	TASKSTATS_GENL_NAME                         = "TASKSTATS"
 	TASKSTATS_GENL_NAME                         = "TASKSTATS"
 	TASKSTATS_GENL_VERSION                      = 0x1
 	TASKSTATS_GENL_VERSION                      = 0x1
 	TASKSTATS_TYPE_MAX                          = 0x6
 	TASKSTATS_TYPE_MAX                          = 0x6
-	TASKSTATS_VERSION                           = 0xf
+	TASKSTATS_VERSION                           = 0x10
 	TCIFLUSH                                    = 0x0
 	TCIFLUSH                                    = 0x0
 	TCIOFF                                      = 0x2
 	TCIOFF                                      = 0x2
 	TCIOFLUSH                                   = 0x2
 	TCIOFLUSH                                   = 0x2
@@ -3406,8 +3425,6 @@ const (
 	TCP_TX_DELAY                                = 0x25
 	TCP_TX_DELAY                                = 0x25
 	TCP_ULP                                     = 0x1f
 	TCP_ULP                                     = 0x1f
 	TCP_USER_TIMEOUT                            = 0x12
 	TCP_USER_TIMEOUT                            = 0x12
-	TCP_V4_FLOW                                 = 0x1
-	TCP_V6_FLOW                                 = 0x5
 	TCP_WINDOW_CLAMP                            = 0xa
 	TCP_WINDOW_CLAMP                            = 0xa
 	TCP_ZEROCOPY_RECEIVE                        = 0x23
 	TCP_ZEROCOPY_RECEIVE                        = 0x23
 	TFD_TIMER_ABSTIME                           = 0x1
 	TFD_TIMER_ABSTIME                           = 0x1
@@ -3530,8 +3547,6 @@ const (
 	UDP_NO_CHECK6_RX                            = 0x66
 	UDP_NO_CHECK6_RX                            = 0x66
 	UDP_NO_CHECK6_TX                            = 0x65
 	UDP_NO_CHECK6_TX                            = 0x65
 	UDP_SEGMENT                                 = 0x67
 	UDP_SEGMENT                                 = 0x67
-	UDP_V4_FLOW                                 = 0x2
-	UDP_V6_FLOW                                 = 0x6
 	UMOUNT_NOFOLLOW                             = 0x8
 	UMOUNT_NOFOLLOW                             = 0x8
 	USBDEVICE_SUPER_MAGIC                       = 0x9fa2
 	USBDEVICE_SUPER_MAGIC                       = 0x9fa2
 	UTIME_NOW                                   = 0x3fffffff
 	UTIME_NOW                                   = 0x3fffffff
@@ -3574,7 +3589,7 @@ const (
 	WDIOS_TEMPPANIC                             = 0x4
 	WDIOS_TEMPPANIC                             = 0x4
 	WDIOS_UNKNOWN                               = -0x1
 	WDIOS_UNKNOWN                               = -0x1
 	WEXITED                                     = 0x4
 	WEXITED                                     = 0x4
-	WGALLOWEDIP_A_MAX                           = 0x3
+	WGALLOWEDIP_A_MAX                           = 0x4
 	WGDEVICE_A_MAX                              = 0x8
 	WGDEVICE_A_MAX                              = 0x8
 	WGPEER_A_MAX                                = 0xa
 	WGPEER_A_MAX                                = 0xa
 	WG_CMD_MAX                                  = 0x1
 	WG_CMD_MAX                                  = 0x1
@@ -3688,6 +3703,7 @@ const (
 	XDP_SHARED_UMEM                             = 0x1
 	XDP_SHARED_UMEM                             = 0x1
 	XDP_STATISTICS                              = 0x7
 	XDP_STATISTICS                              = 0x7
 	XDP_TXMD_FLAGS_CHECKSUM                     = 0x2
 	XDP_TXMD_FLAGS_CHECKSUM                     = 0x2
+	XDP_TXMD_FLAGS_LAUNCH_TIME                  = 0x4
 	XDP_TXMD_FLAGS_TIMESTAMP                    = 0x1
 	XDP_TXMD_FLAGS_TIMESTAMP                    = 0x1
 	XDP_TX_METADATA                             = 0x2
 	XDP_TX_METADATA                             = 0x2
 	XDP_TX_RING                                 = 0x3
 	XDP_TX_RING                                 = 0x3

+ 2 - 0
v2/vendor/golang.org/x/sys/unix/zerrors_linux_386.go

@@ -68,6 +68,7 @@ const (
 	CS8                              = 0x30
 	CS8                              = 0x30
 	CSIZE                            = 0x30
 	CSIZE                            = 0x30
 	CSTOPB                           = 0x40
 	CSTOPB                           = 0x40
+	DM_MPATH_PROBE_PATHS             = 0xfd12
 	ECCGETLAYOUT                     = 0x81484d11
 	ECCGETLAYOUT                     = 0x81484d11
 	ECCGETSTATS                      = 0x80104d12
 	ECCGETSTATS                      = 0x80104d12
 	ECHOCTL                          = 0x200
 	ECHOCTL                          = 0x200
@@ -360,6 +361,7 @@ const (
 	SO_OOBINLINE                     = 0xa
 	SO_OOBINLINE                     = 0xa
 	SO_PASSCRED                      = 0x10
 	SO_PASSCRED                      = 0x10
 	SO_PASSPIDFD                     = 0x4c
 	SO_PASSPIDFD                     = 0x4c
+	SO_PASSRIGHTS                    = 0x53
 	SO_PASSSEC                       = 0x22
 	SO_PASSSEC                       = 0x22
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEERCRED                      = 0x11
 	SO_PEERCRED                      = 0x11

+ 2 - 0
v2/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go

@@ -68,6 +68,7 @@ const (
 	CS8                              = 0x30
 	CS8                              = 0x30
 	CSIZE                            = 0x30
 	CSIZE                            = 0x30
 	CSTOPB                           = 0x40
 	CSTOPB                           = 0x40
+	DM_MPATH_PROBE_PATHS             = 0xfd12
 	ECCGETLAYOUT                     = 0x81484d11
 	ECCGETLAYOUT                     = 0x81484d11
 	ECCGETSTATS                      = 0x80104d12
 	ECCGETSTATS                      = 0x80104d12
 	ECHOCTL                          = 0x200
 	ECHOCTL                          = 0x200
@@ -361,6 +362,7 @@ const (
 	SO_OOBINLINE                     = 0xa
 	SO_OOBINLINE                     = 0xa
 	SO_PASSCRED                      = 0x10
 	SO_PASSCRED                      = 0x10
 	SO_PASSPIDFD                     = 0x4c
 	SO_PASSPIDFD                     = 0x4c
+	SO_PASSRIGHTS                    = 0x53
 	SO_PASSSEC                       = 0x22
 	SO_PASSSEC                       = 0x22
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEERCRED                      = 0x11
 	SO_PEERCRED                      = 0x11

+ 2 - 0
v2/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go

@@ -68,6 +68,7 @@ const (
 	CS8                              = 0x30
 	CS8                              = 0x30
 	CSIZE                            = 0x30
 	CSIZE                            = 0x30
 	CSTOPB                           = 0x40
 	CSTOPB                           = 0x40
+	DM_MPATH_PROBE_PATHS             = 0xfd12
 	ECCGETLAYOUT                     = 0x81484d11
 	ECCGETLAYOUT                     = 0x81484d11
 	ECCGETSTATS                      = 0x80104d12
 	ECCGETSTATS                      = 0x80104d12
 	ECHOCTL                          = 0x200
 	ECHOCTL                          = 0x200
@@ -366,6 +367,7 @@ const (
 	SO_OOBINLINE                     = 0xa
 	SO_OOBINLINE                     = 0xa
 	SO_PASSCRED                      = 0x10
 	SO_PASSCRED                      = 0x10
 	SO_PASSPIDFD                     = 0x4c
 	SO_PASSPIDFD                     = 0x4c
+	SO_PASSRIGHTS                    = 0x53
 	SO_PASSSEC                       = 0x22
 	SO_PASSSEC                       = 0x22
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEERCRED                      = 0x11
 	SO_PEERCRED                      = 0x11

+ 2 - 0
v2/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go

@@ -68,6 +68,7 @@ const (
 	CS8                              = 0x30
 	CS8                              = 0x30
 	CSIZE                            = 0x30
 	CSIZE                            = 0x30
 	CSTOPB                           = 0x40
 	CSTOPB                           = 0x40
+	DM_MPATH_PROBE_PATHS             = 0xfd12
 	ECCGETLAYOUT                     = 0x81484d11
 	ECCGETLAYOUT                     = 0x81484d11
 	ECCGETSTATS                      = 0x80104d12
 	ECCGETSTATS                      = 0x80104d12
 	ECHOCTL                          = 0x200
 	ECHOCTL                          = 0x200
@@ -359,6 +360,7 @@ const (
 	SO_OOBINLINE                     = 0xa
 	SO_OOBINLINE                     = 0xa
 	SO_PASSCRED                      = 0x10
 	SO_PASSCRED                      = 0x10
 	SO_PASSPIDFD                     = 0x4c
 	SO_PASSPIDFD                     = 0x4c
+	SO_PASSRIGHTS                    = 0x53
 	SO_PASSSEC                       = 0x22
 	SO_PASSSEC                       = 0x22
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEERCRED                      = 0x11
 	SO_PEERCRED                      = 0x11

+ 2 - 0
v2/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go

@@ -68,6 +68,7 @@ const (
 	CS8                              = 0x30
 	CS8                              = 0x30
 	CSIZE                            = 0x30
 	CSIZE                            = 0x30
 	CSTOPB                           = 0x40
 	CSTOPB                           = 0x40
+	DM_MPATH_PROBE_PATHS             = 0xfd12
 	ECCGETLAYOUT                     = 0x81484d11
 	ECCGETLAYOUT                     = 0x81484d11
 	ECCGETSTATS                      = 0x80104d12
 	ECCGETSTATS                      = 0x80104d12
 	ECHOCTL                          = 0x200
 	ECHOCTL                          = 0x200
@@ -353,6 +354,7 @@ const (
 	SO_OOBINLINE                     = 0xa
 	SO_OOBINLINE                     = 0xa
 	SO_PASSCRED                      = 0x10
 	SO_PASSCRED                      = 0x10
 	SO_PASSPIDFD                     = 0x4c
 	SO_PASSPIDFD                     = 0x4c
+	SO_PASSRIGHTS                    = 0x53
 	SO_PASSSEC                       = 0x22
 	SO_PASSSEC                       = 0x22
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEERCRED                      = 0x11
 	SO_PEERCRED                      = 0x11

+ 2 - 0
v2/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go

@@ -68,6 +68,7 @@ const (
 	CS8                              = 0x30
 	CS8                              = 0x30
 	CSIZE                            = 0x30
 	CSIZE                            = 0x30
 	CSTOPB                           = 0x40
 	CSTOPB                           = 0x40
+	DM_MPATH_PROBE_PATHS             = 0x2000fd12
 	ECCGETLAYOUT                     = 0x41484d11
 	ECCGETLAYOUT                     = 0x41484d11
 	ECCGETSTATS                      = 0x40104d12
 	ECCGETSTATS                      = 0x40104d12
 	ECHOCTL                          = 0x200
 	ECHOCTL                          = 0x200
@@ -359,6 +360,7 @@ const (
 	SO_OOBINLINE                     = 0x100
 	SO_OOBINLINE                     = 0x100
 	SO_PASSCRED                      = 0x11
 	SO_PASSCRED                      = 0x11
 	SO_PASSPIDFD                     = 0x4c
 	SO_PASSPIDFD                     = 0x4c
+	SO_PASSRIGHTS                    = 0x53
 	SO_PASSSEC                       = 0x22
 	SO_PASSSEC                       = 0x22
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEERCRED                      = 0x12
 	SO_PEERCRED                      = 0x12

+ 2 - 0
v2/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go

@@ -68,6 +68,7 @@ const (
 	CS8                              = 0x30
 	CS8                              = 0x30
 	CSIZE                            = 0x30
 	CSIZE                            = 0x30
 	CSTOPB                           = 0x40
 	CSTOPB                           = 0x40
+	DM_MPATH_PROBE_PATHS             = 0x2000fd12
 	ECCGETLAYOUT                     = 0x41484d11
 	ECCGETLAYOUT                     = 0x41484d11
 	ECCGETSTATS                      = 0x40104d12
 	ECCGETSTATS                      = 0x40104d12
 	ECHOCTL                          = 0x200
 	ECHOCTL                          = 0x200
@@ -359,6 +360,7 @@ const (
 	SO_OOBINLINE                     = 0x100
 	SO_OOBINLINE                     = 0x100
 	SO_PASSCRED                      = 0x11
 	SO_PASSCRED                      = 0x11
 	SO_PASSPIDFD                     = 0x4c
 	SO_PASSPIDFD                     = 0x4c
+	SO_PASSRIGHTS                    = 0x53
 	SO_PASSSEC                       = 0x22
 	SO_PASSSEC                       = 0x22
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEERCRED                      = 0x12
 	SO_PEERCRED                      = 0x12

+ 2 - 0
v2/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go

@@ -68,6 +68,7 @@ const (
 	CS8                              = 0x30
 	CS8                              = 0x30
 	CSIZE                            = 0x30
 	CSIZE                            = 0x30
 	CSTOPB                           = 0x40
 	CSTOPB                           = 0x40
+	DM_MPATH_PROBE_PATHS             = 0x2000fd12
 	ECCGETLAYOUT                     = 0x41484d11
 	ECCGETLAYOUT                     = 0x41484d11
 	ECCGETSTATS                      = 0x40104d12
 	ECCGETSTATS                      = 0x40104d12
 	ECHOCTL                          = 0x200
 	ECHOCTL                          = 0x200
@@ -359,6 +360,7 @@ const (
 	SO_OOBINLINE                     = 0x100
 	SO_OOBINLINE                     = 0x100
 	SO_PASSCRED                      = 0x11
 	SO_PASSCRED                      = 0x11
 	SO_PASSPIDFD                     = 0x4c
 	SO_PASSPIDFD                     = 0x4c
+	SO_PASSRIGHTS                    = 0x53
 	SO_PASSSEC                       = 0x22
 	SO_PASSSEC                       = 0x22
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEERCRED                      = 0x12
 	SO_PEERCRED                      = 0x12

+ 2 - 0
v2/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go

@@ -68,6 +68,7 @@ const (
 	CS8                              = 0x30
 	CS8                              = 0x30
 	CSIZE                            = 0x30
 	CSIZE                            = 0x30
 	CSTOPB                           = 0x40
 	CSTOPB                           = 0x40
+	DM_MPATH_PROBE_PATHS             = 0x2000fd12
 	ECCGETLAYOUT                     = 0x41484d11
 	ECCGETLAYOUT                     = 0x41484d11
 	ECCGETSTATS                      = 0x40104d12
 	ECCGETSTATS                      = 0x40104d12
 	ECHOCTL                          = 0x200
 	ECHOCTL                          = 0x200
@@ -359,6 +360,7 @@ const (
 	SO_OOBINLINE                     = 0x100
 	SO_OOBINLINE                     = 0x100
 	SO_PASSCRED                      = 0x11
 	SO_PASSCRED                      = 0x11
 	SO_PASSPIDFD                     = 0x4c
 	SO_PASSPIDFD                     = 0x4c
+	SO_PASSRIGHTS                    = 0x53
 	SO_PASSSEC                       = 0x22
 	SO_PASSSEC                       = 0x22
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEERCRED                      = 0x12
 	SO_PEERCRED                      = 0x12

+ 2 - 0
v2/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go

@@ -68,6 +68,7 @@ const (
 	CS8                              = 0x300
 	CS8                              = 0x300
 	CSIZE                            = 0x300
 	CSIZE                            = 0x300
 	CSTOPB                           = 0x400
 	CSTOPB                           = 0x400
+	DM_MPATH_PROBE_PATHS             = 0x2000fd12
 	ECCGETLAYOUT                     = 0x41484d11
 	ECCGETLAYOUT                     = 0x41484d11
 	ECCGETSTATS                      = 0x40104d12
 	ECCGETSTATS                      = 0x40104d12
 	ECHOCTL                          = 0x40
 	ECHOCTL                          = 0x40
@@ -414,6 +415,7 @@ const (
 	SO_OOBINLINE                     = 0xa
 	SO_OOBINLINE                     = 0xa
 	SO_PASSCRED                      = 0x14
 	SO_PASSCRED                      = 0x14
 	SO_PASSPIDFD                     = 0x4c
 	SO_PASSPIDFD                     = 0x4c
+	SO_PASSRIGHTS                    = 0x53
 	SO_PASSSEC                       = 0x22
 	SO_PASSSEC                       = 0x22
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEERCRED                      = 0x15
 	SO_PEERCRED                      = 0x15

+ 2 - 0
v2/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go

@@ -68,6 +68,7 @@ const (
 	CS8                              = 0x300
 	CS8                              = 0x300
 	CSIZE                            = 0x300
 	CSIZE                            = 0x300
 	CSTOPB                           = 0x400
 	CSTOPB                           = 0x400
+	DM_MPATH_PROBE_PATHS             = 0x2000fd12
 	ECCGETLAYOUT                     = 0x41484d11
 	ECCGETLAYOUT                     = 0x41484d11
 	ECCGETSTATS                      = 0x40104d12
 	ECCGETSTATS                      = 0x40104d12
 	ECHOCTL                          = 0x40
 	ECHOCTL                          = 0x40
@@ -418,6 +419,7 @@ const (
 	SO_OOBINLINE                     = 0xa
 	SO_OOBINLINE                     = 0xa
 	SO_PASSCRED                      = 0x14
 	SO_PASSCRED                      = 0x14
 	SO_PASSPIDFD                     = 0x4c
 	SO_PASSPIDFD                     = 0x4c
+	SO_PASSRIGHTS                    = 0x53
 	SO_PASSSEC                       = 0x22
 	SO_PASSSEC                       = 0x22
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEERCRED                      = 0x15
 	SO_PEERCRED                      = 0x15

+ 2 - 0
v2/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go

@@ -68,6 +68,7 @@ const (
 	CS8                              = 0x300
 	CS8                              = 0x300
 	CSIZE                            = 0x300
 	CSIZE                            = 0x300
 	CSTOPB                           = 0x400
 	CSTOPB                           = 0x400
+	DM_MPATH_PROBE_PATHS             = 0x2000fd12
 	ECCGETLAYOUT                     = 0x41484d11
 	ECCGETLAYOUT                     = 0x41484d11
 	ECCGETSTATS                      = 0x40104d12
 	ECCGETSTATS                      = 0x40104d12
 	ECHOCTL                          = 0x40
 	ECHOCTL                          = 0x40
@@ -418,6 +419,7 @@ const (
 	SO_OOBINLINE                     = 0xa
 	SO_OOBINLINE                     = 0xa
 	SO_PASSCRED                      = 0x14
 	SO_PASSCRED                      = 0x14
 	SO_PASSPIDFD                     = 0x4c
 	SO_PASSPIDFD                     = 0x4c
+	SO_PASSRIGHTS                    = 0x53
 	SO_PASSSEC                       = 0x22
 	SO_PASSSEC                       = 0x22
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEERCRED                      = 0x15
 	SO_PEERCRED                      = 0x15

+ 2 - 0
v2/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go

@@ -68,6 +68,7 @@ const (
 	CS8                              = 0x30
 	CS8                              = 0x30
 	CSIZE                            = 0x30
 	CSIZE                            = 0x30
 	CSTOPB                           = 0x40
 	CSTOPB                           = 0x40
+	DM_MPATH_PROBE_PATHS             = 0xfd12
 	ECCGETLAYOUT                     = 0x81484d11
 	ECCGETLAYOUT                     = 0x81484d11
 	ECCGETSTATS                      = 0x80104d12
 	ECCGETSTATS                      = 0x80104d12
 	ECHOCTL                          = 0x200
 	ECHOCTL                          = 0x200
@@ -350,6 +351,7 @@ const (
 	SO_OOBINLINE                     = 0xa
 	SO_OOBINLINE                     = 0xa
 	SO_PASSCRED                      = 0x10
 	SO_PASSCRED                      = 0x10
 	SO_PASSPIDFD                     = 0x4c
 	SO_PASSPIDFD                     = 0x4c
+	SO_PASSRIGHTS                    = 0x53
 	SO_PASSSEC                       = 0x22
 	SO_PASSSEC                       = 0x22
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEERCRED                      = 0x11
 	SO_PEERCRED                      = 0x11

+ 2 - 0
v2/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go

@@ -68,6 +68,7 @@ const (
 	CS8                              = 0x30
 	CS8                              = 0x30
 	CSIZE                            = 0x30
 	CSIZE                            = 0x30
 	CSTOPB                           = 0x40
 	CSTOPB                           = 0x40
+	DM_MPATH_PROBE_PATHS             = 0xfd12
 	ECCGETLAYOUT                     = 0x81484d11
 	ECCGETLAYOUT                     = 0x81484d11
 	ECCGETSTATS                      = 0x80104d12
 	ECCGETSTATS                      = 0x80104d12
 	ECHOCTL                          = 0x200
 	ECHOCTL                          = 0x200
@@ -422,6 +423,7 @@ const (
 	SO_OOBINLINE                     = 0xa
 	SO_OOBINLINE                     = 0xa
 	SO_PASSCRED                      = 0x10
 	SO_PASSCRED                      = 0x10
 	SO_PASSPIDFD                     = 0x4c
 	SO_PASSPIDFD                     = 0x4c
+	SO_PASSRIGHTS                    = 0x53
 	SO_PASSSEC                       = 0x22
 	SO_PASSSEC                       = 0x22
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEEK_OFF                      = 0x2a
 	SO_PEERCRED                      = 0x11
 	SO_PEERCRED                      = 0x11

+ 2 - 0
v2/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go

@@ -71,6 +71,7 @@ const (
 	CS8                              = 0x30
 	CS8                              = 0x30
 	CSIZE                            = 0x30
 	CSIZE                            = 0x30
 	CSTOPB                           = 0x40
 	CSTOPB                           = 0x40
+	DM_MPATH_PROBE_PATHS             = 0x2000fd12
 	ECCGETLAYOUT                     = 0x41484d11
 	ECCGETLAYOUT                     = 0x41484d11
 	ECCGETSTATS                      = 0x40104d12
 	ECCGETSTATS                      = 0x40104d12
 	ECHOCTL                          = 0x200
 	ECHOCTL                          = 0x200
@@ -461,6 +462,7 @@ const (
 	SO_OOBINLINE                     = 0x100
 	SO_OOBINLINE                     = 0x100
 	SO_PASSCRED                      = 0x2
 	SO_PASSCRED                      = 0x2
 	SO_PASSPIDFD                     = 0x55
 	SO_PASSPIDFD                     = 0x55
+	SO_PASSRIGHTS                    = 0x5c
 	SO_PASSSEC                       = 0x1f
 	SO_PASSSEC                       = 0x1f
 	SO_PEEK_OFF                      = 0x26
 	SO_PEEK_OFF                      = 0x26
 	SO_PEERCRED                      = 0x40
 	SO_PEERCRED                      = 0x40

+ 1 - 0
v2/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go

@@ -462,4 +462,5 @@ const (
 	SYS_GETXATTRAT                   = 464
 	SYS_GETXATTRAT                   = 464
 	SYS_LISTXATTRAT                  = 465
 	SYS_LISTXATTRAT                  = 465
 	SYS_REMOVEXATTRAT                = 466
 	SYS_REMOVEXATTRAT                = 466
+	SYS_OPEN_TREE_ATTR               = 467
 )
 )

+ 1 - 0
v2/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go

@@ -385,4 +385,5 @@ const (
 	SYS_GETXATTRAT              = 464
 	SYS_GETXATTRAT              = 464
 	SYS_LISTXATTRAT             = 465
 	SYS_LISTXATTRAT             = 465
 	SYS_REMOVEXATTRAT           = 466
 	SYS_REMOVEXATTRAT           = 466
+	SYS_OPEN_TREE_ATTR          = 467
 )
 )

+ 1 - 0
v2/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go

@@ -426,4 +426,5 @@ const (
 	SYS_GETXATTRAT                   = 464
 	SYS_GETXATTRAT                   = 464
 	SYS_LISTXATTRAT                  = 465
 	SYS_LISTXATTRAT                  = 465
 	SYS_REMOVEXATTRAT                = 466
 	SYS_REMOVEXATTRAT                = 466
+	SYS_OPEN_TREE_ATTR               = 467
 )
 )

+ 1 - 0
v2/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go

@@ -329,4 +329,5 @@ const (
 	SYS_GETXATTRAT              = 464
 	SYS_GETXATTRAT              = 464
 	SYS_LISTXATTRAT             = 465
 	SYS_LISTXATTRAT             = 465
 	SYS_REMOVEXATTRAT           = 466
 	SYS_REMOVEXATTRAT           = 466
+	SYS_OPEN_TREE_ATTR          = 467
 )
 )

+ 1 - 0
v2/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go

@@ -325,4 +325,5 @@ const (
 	SYS_GETXATTRAT              = 464
 	SYS_GETXATTRAT              = 464
 	SYS_LISTXATTRAT             = 465
 	SYS_LISTXATTRAT             = 465
 	SYS_REMOVEXATTRAT           = 466
 	SYS_REMOVEXATTRAT           = 466
+	SYS_OPEN_TREE_ATTR          = 467
 )
 )

+ 1 - 0
v2/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go

@@ -446,4 +446,5 @@ const (
 	SYS_GETXATTRAT                   = 4464
 	SYS_GETXATTRAT                   = 4464
 	SYS_LISTXATTRAT                  = 4465
 	SYS_LISTXATTRAT                  = 4465
 	SYS_REMOVEXATTRAT                = 4466
 	SYS_REMOVEXATTRAT                = 4466
+	SYS_OPEN_TREE_ATTR               = 4467
 )
 )

+ 1 - 0
v2/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go

@@ -376,4 +376,5 @@ const (
 	SYS_GETXATTRAT              = 5464
 	SYS_GETXATTRAT              = 5464
 	SYS_LISTXATTRAT             = 5465
 	SYS_LISTXATTRAT             = 5465
 	SYS_REMOVEXATTRAT           = 5466
 	SYS_REMOVEXATTRAT           = 5466
+	SYS_OPEN_TREE_ATTR          = 5467
 )
 )

+ 1 - 0
v2/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go

@@ -376,4 +376,5 @@ const (
 	SYS_GETXATTRAT              = 5464
 	SYS_GETXATTRAT              = 5464
 	SYS_LISTXATTRAT             = 5465
 	SYS_LISTXATTRAT             = 5465
 	SYS_REMOVEXATTRAT           = 5466
 	SYS_REMOVEXATTRAT           = 5466
+	SYS_OPEN_TREE_ATTR          = 5467
 )
 )

+ 1 - 0
v2/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go

@@ -446,4 +446,5 @@ const (
 	SYS_GETXATTRAT                   = 4464
 	SYS_GETXATTRAT                   = 4464
 	SYS_LISTXATTRAT                  = 4465
 	SYS_LISTXATTRAT                  = 4465
 	SYS_REMOVEXATTRAT                = 4466
 	SYS_REMOVEXATTRAT                = 4466
+	SYS_OPEN_TREE_ATTR               = 4467
 )
 )

+ 1 - 0
v2/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go

@@ -453,4 +453,5 @@ const (
 	SYS_GETXATTRAT                   = 464
 	SYS_GETXATTRAT                   = 464
 	SYS_LISTXATTRAT                  = 465
 	SYS_LISTXATTRAT                  = 465
 	SYS_REMOVEXATTRAT                = 466
 	SYS_REMOVEXATTRAT                = 466
+	SYS_OPEN_TREE_ATTR               = 467
 )
 )

+ 1 - 0
v2/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go

@@ -425,4 +425,5 @@ const (
 	SYS_GETXATTRAT              = 464
 	SYS_GETXATTRAT              = 464
 	SYS_LISTXATTRAT             = 465
 	SYS_LISTXATTRAT             = 465
 	SYS_REMOVEXATTRAT           = 466
 	SYS_REMOVEXATTRAT           = 466
+	SYS_OPEN_TREE_ATTR          = 467
 )
 )

+ 1 - 0
v2/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go

@@ -425,4 +425,5 @@ const (
 	SYS_GETXATTRAT              = 464
 	SYS_GETXATTRAT              = 464
 	SYS_LISTXATTRAT             = 465
 	SYS_LISTXATTRAT             = 465
 	SYS_REMOVEXATTRAT           = 466
 	SYS_REMOVEXATTRAT           = 466
+	SYS_OPEN_TREE_ATTR          = 467
 )
 )

+ 1 - 0
v2/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go

@@ -330,4 +330,5 @@ const (
 	SYS_GETXATTRAT              = 464
 	SYS_GETXATTRAT              = 464
 	SYS_LISTXATTRAT             = 465
 	SYS_LISTXATTRAT             = 465
 	SYS_REMOVEXATTRAT           = 466
 	SYS_REMOVEXATTRAT           = 466
+	SYS_OPEN_TREE_ATTR          = 467
 )
 )

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio