Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package v2ray-core for openSUSE:Factory 
checked in at 2023-10-24 20:09:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/v2ray-core (Old)
 and      /work/SRC/openSUSE:Factory/.v2ray-core.new.24901 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "v2ray-core"

Tue Oct 24 20:09:40 2023 rev:23 rq:1119977 version:5.8.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/v2ray-core/v2ray-core.changes    2023-06-25 
21:42:17.925061764 +0200
+++ /work/SRC/openSUSE:Factory/.v2ray-core.new.24901/v2ray-core.changes 
2023-10-24 20:09:45.215570597 +0200
@@ -1,0 +2,11 @@
+Sun Oct  8 13:35:54 UTC 2023 - Hillwood Yang <hillw...@opensuse.org>
+
+- Update version to 5.8.0
+  * DNS over QUIC should not have "http/1.1" and "h2" ALPNs
+  * Migrate to quic-go v0.36.0
+  * Fix: parse for the CipherType of Shadowsocks in simplified config
+  * Fix protocol matching in routing
+  * Fix CI breakage in 5.7.0
+- Build by golang 1.20, workaround build error on golang 1.21
+ 
+-------------------------------------------------------------------

Old:
----
  v2ray-core-5.7.0.tar.gz

New:
----
  v2ray-core-5.8.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ v2ray-core.spec ++++++
--- /var/tmp/diff_new_pack.0imCuR/_old  2023-10-24 20:09:46.195606228 +0200
+++ /var/tmp/diff_new_pack.0imCuR/_new  2023-10-24 20:09:46.195606228 +0200
@@ -25,7 +25,7 @@
 %define   import_path     github.com/v2fly/v2ray-core/v5
 
 Name:           v2ray-core
-Version:        5.7.0
+Version:        5.8.0
 Release:        0
 Summary:        Network tools for building a computer network
 License:        MIT
@@ -44,6 +44,7 @@
 BuildRequires:  systemd-rpm-macros
 # This package (v4.37.3+) can not be built with go version < 1.16
 BuildRequires:  unzip
+BuildRequires:  go1.20
 BuildRequires:  pkgconfig(systemd)
 AutoReqProv:    Off
 Provides:       v2ray = %{version}-%{release}



++++++ v2ray-core-5.7.0.tar.gz -> v2ray-core-5.8.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/.github/linters/.golangci.yml 
new/v2ray-core-5.8.0/.github/linters/.golangci.yml
--- old/v2ray-core-5.7.0/.github/linters/.golangci.yml  2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/.github/linters/.golangci.yml  2023-10-06 
22:45:26.000000000 +0200
@@ -52,3 +52,9 @@
       - name: blank-imports
         severity: warning
         disabled: true
+  depguard:
+    rules:
+      Main:
+        deny:
+          - pkg: "github.com/pkg/errors"
+            desc: Should be replaced by standard lib errors package
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/.github/workflows/linter.yml 
new/v2ray-core-5.8.0/.github/workflows/linter.yml
--- old/v2ray-core-5.7.0/.github/workflows/linter.yml   2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/.github/workflows/linter.yml   2023-10-06 
22:45:26.000000000 +0200
@@ -20,7 +20,7 @@
     runs-on: ubuntu-latest
     steps:
       - name: Set up Go 1.x
-        uses: actions/setup-go@v3
+        uses: actions/setup-go@v4
         with:
           go-version: ^1.19
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/.github/workflows/release.yml 
new/v2ray-core-5.8.0/.github/workflows/release.yml
--- old/v2ray-core-5.7.0/.github/workflows/release.yml  2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/.github/workflows/release.yml  2023-10-06 
22:45:26.000000000 +0200
@@ -74,6 +74,8 @@
             goarch: arm64
           - goos: linux
             goarch: riscv64
+          - goos: linux
+            goarch: loong64
           - goos: windows
             goarch: arm64
           - goos: android
@@ -117,9 +119,9 @@
           echo "ASSET_NAME=$_NAME" >> $GITHUB_ENV
 
       - name: Set up Go
-        uses: actions/setup-go@v3
+        uses: actions/setup-go@v4
         with:
-          go-version: ^1.20
+          go-version: ^1.21
 
       - name: Get project dependencies
         run: go mod download
@@ -185,9 +187,9 @@
           fetch-depth: 0
 
       - name: Set up Go
-        uses: actions/setup-go@v3
+        uses: actions/setup-go@v4
         with:
-          go-version: ^1.20
+          go-version: ^1.21
 
       - uses: actions/download-artifact@v3
         with:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/.github/workflows/stale.yml 
new/v2ray-core-5.8.0/.github/workflows/stale.yml
--- old/v2ray-core-5.7.0/.github/workflows/stale.yml    2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/.github/workflows/stale.yml    2023-10-06 
22:45:26.000000000 +0200
@@ -8,7 +8,7 @@
   stale:
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/stale@v7
+      - uses: actions/stale@v8
         with:
           repo-token: ${{ secrets.GITHUB_TOKEN }}
           stale-issue-message: "This issue is stale because it has been open 
120 days with no activity. Remove stale label or comment or this will be closed 
in 5 days"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/.github/workflows/test.yml 
new/v2ray-core-5.8.0/.github/workflows/test.yml
--- old/v2ray-core-5.7.0/.github/workflows/test.yml     2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/.github/workflows/test.yml     2023-10-06 
22:45:26.000000000 +0200
@@ -28,7 +28,7 @@
         os: [windows-latest, ubuntu-latest, macos-latest]
     steps:
       - name: Set up Go 1.x
-        uses: actions/setup-go@v3
+        uses: actions/setup-go@v4
         with:
           go-version: ^1.19
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/app/dns/nameserver_doh.go 
new/v2ray-core-5.8.0/app/dns/nameserver_doh.go
--- old/v2ray-core-5.7.0/app/dns/nameserver_doh.go      2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/app/dns/nameserver_doh.go      2023-10-06 
22:45:26.000000000 +0200
@@ -231,7 +231,7 @@
                        }
 
                        dnsCtx = session.ContextWithContent(dnsCtx, 
&session.Content{
-                               Protocol:       "https",
+                               Protocol:       "tls",
                                SkipDNSResolve: true,
                        })
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/app/dns/nameserver_quic.go 
new/v2ray-core-5.8.0/app/dns/nameserver_quic.go
--- old/v2ray-core-5.7.0/app/dns/nameserver_quic.go     2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/app/dns/nameserver_quic.go     2023-10-06 
22:45:26.000000000 +0200
@@ -11,7 +11,6 @@
 
        "github.com/quic-go/quic-go"
        "golang.org/x/net/dns/dnsmessage"
-       "golang.org/x/net/http2"
 
        "github.com/v2fly/v2ray-core/v5/common"
        "github.com/v2fly/v2ray-core/v5/common/buf"
@@ -25,7 +24,7 @@
 )
 
 // NextProtoDQ - During connection establishment, DNS/QUIC support is indicated
-// by selecting the ALPN token "dq" in the crypto handshake.
+// by selecting the ALPN token "doq" in the crypto handshake.
 const NextProtoDQ = "doq"
 
 const handshakeIdleTimeout = time.Second * 8
@@ -378,12 +377,23 @@
 }
 
 func (s *QUICNameServer) openConnection(ctx context.Context) (quic.Connection, 
error) {
-       tlsConfig := tls.Config{}
+       tlsConfig := tls.Config{
+               ServerName: func() string {
+                       switch s.destination.Address.Family() {
+                       case net.AddressFamilyIPv4, net.AddressFamilyIPv6:
+                               return s.destination.Address.IP().String()
+                       case net.AddressFamilyDomain:
+                               return s.destination.Address.Domain()
+                       default:
+                               panic("unknown address family")
+                       }
+               }(),
+       }
        quicConfig := &quic.Config{
                HandshakeIdleTimeout: handshakeIdleTimeout,
        }
 
-       conn, err := quic.DialAddrContext(ctx, s.destination.NetAddr(), 
tlsConfig.GetTLSConfig(tls.WithNextProto("http/1.1", http2.NextProtoTLS, 
NextProtoDQ)), quicConfig)
+       conn, err := quic.DialAddr(ctx, s.destination.NetAddr(), 
tlsConfig.GetTLSConfig(tls.WithNextProto(NextProtoDQ)), quicConfig)
        if err != nil {
                return nil, err
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/app/router/weight.go 
new/v2ray-core-5.8.0/app/router/weight.go
--- old/v2ray-core-5.7.0/app/router/weight.go   2023-05-31 11:45:19.000000000 
+0200
+++ new/v2ray-core-5.8.0/app/router/weight.go   2023-10-06 22:45:26.000000000 
+0200
@@ -4,6 +4,7 @@
        "regexp"
        "strconv"
        "strings"
+       "sync"
 )
 
 type weightScaler func(value, weight float64) float64
@@ -26,10 +27,13 @@
        cache         map[string]float64
        scaler        weightScaler
        defaultWeight float64
+       mu            sync.Mutex
 }
 
 // Get gets the weight of specified tag
 func (s *WeightManager) Get(tag string) float64 {
+       s.mu.Lock()
+       defer s.mu.Unlock()
        weight, ok := s.cache[tag]
        if ok {
                return weight
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/common/protocol/http/sniff.go 
new/v2ray-core-5.8.0/common/protocol/http/sniff.go
--- old/v2ray-core-5.7.0/common/protocol/http/sniff.go  2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/common/protocol/http/sniff.go  2023-10-06 
22:45:26.000000000 +0200
@@ -11,25 +11,12 @@
 
 type version byte
 
-const (
-       HTTP1 version = iota
-       HTTP2
-)
-
 type SniffHeader struct {
-       version version
-       host    string
+       host string
 }
 
 func (h *SniffHeader) Protocol() string {
-       switch h.version {
-       case HTTP1:
-               return "http1"
-       case HTTP2:
-               return "http2"
-       default:
-               return "unknown"
-       }
+       return "http1"
 }
 
 func (h *SniffHeader) Domain() string {
@@ -62,9 +49,7 @@
                return nil, err
        }
 
-       sh := &SniffHeader{
-               version: HTTP1,
-       }
+       sh := &SniffHeader{}
 
        headers := bytes.Split(b, []byte{'\n'})
        for i := 1; i < len(headers); i++ {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/v2ray-core-5.7.0/common/protocol/quic/cipher_suite.go 
new/v2ray-core-5.8.0/common/protocol/quic/cipher_suite.go
--- old/v2ray-core-5.7.0/common/protocol/quic/cipher_suite.go   1970-01-01 
01:00:00.000000000 +0100
+++ new/v2ray-core-5.8.0/common/protocol/quic/cipher_suite.go   2023-10-06 
22:45:26.000000000 +0200
@@ -0,0 +1,23 @@
+package quic
+
+import (
+       "crypto"
+       "crypto/cipher"
+       _ "crypto/tls"
+       _ "unsafe"
+)
+
+// copied from github.com/quic-go/quic-go/internal/qtls/cipher_suite_go121.go
+
+type cipherSuiteTLS13 struct {
+       ID     uint16
+       KeyLen int
+       AEAD   func(key, fixedNonce []byte) cipher.AEAD
+       Hash   crypto.Hash
+}
+
+// github.com/quic-go/quic-go/internal/handshake/cipher_suite.go describes 
these cipher suite implementations are copied from the standard library 
crypto/tls package.
+// So we can user go:linkname to implement the same feature.
+
+//go:linkname aeadAESGCMTLS13 crypto/tls.aeadAESGCMTLS13
+func aeadAESGCMTLS13(key, nonceMask []byte) cipher.AEAD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/common/protocol/quic/qtls_go119.go 
new/v2ray-core-5.8.0/common/protocol/quic/qtls_go119.go
--- old/v2ray-core-5.7.0/common/protocol/quic/qtls_go119.go     2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/common/protocol/quic/qtls_go119.go     1970-01-01 
01:00:00.000000000 +0100
@@ -1,18 +0,0 @@
-//go:build go1.19 && !go1.20
-
-package quic
-
-import (
-       "crypto/cipher"
-
-       "github.com/quic-go/qtls-go1-19"
-)
-
-type (
-       // A CipherSuiteTLS13 is a cipher suite for TLS 1.3
-       CipherSuiteTLS13 = qtls.CipherSuiteTLS13
-)
-
-func AEADAESGCMTLS13(key, fixedNonce []byte) cipher.AEAD {
-       return qtls.AEADAESGCMTLS13(key, fixedNonce)
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/common/protocol/quic/qtls_go120.go 
new/v2ray-core-5.8.0/common/protocol/quic/qtls_go120.go
--- old/v2ray-core-5.7.0/common/protocol/quic/qtls_go120.go     2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/common/protocol/quic/qtls_go120.go     1970-01-01 
01:00:00.000000000 +0100
@@ -1,18 +0,0 @@
-//go:build go1.20
-
-package quic
-
-import (
-       "crypto/cipher"
-
-       "github.com/quic-go/qtls-go1-20"
-)
-
-type (
-       // A CipherSuiteTLS13 is a cipher suite for TLS 1.3
-       CipherSuiteTLS13 = qtls.CipherSuiteTLS13
-)
-
-func AEADAESGCMTLS13(key, fixedNonce []byte) cipher.AEAD {
-       return qtls.AEADAESGCMTLS13(key, fixedNonce)
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/common/protocol/quic/sniff.go 
new/v2ray-core-5.8.0/common/protocol/quic/sniff.go
--- old/v2ray-core-5.7.0/common/protocol/quic/sniff.go  2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/common/protocol/quic/sniff.go  2023-10-06 
22:45:26.000000000 +0200
@@ -37,10 +37,10 @@
 var (
        quicSaltOld  = []byte{0xaf, 0xbf, 0xec, 0x28, 0x99, 0x93, 0xd2, 0x4c, 
0x9e, 0x97, 0x86, 0xf1, 0x9c, 0x61, 0x11, 0xe0, 0x43, 0x90, 0xa8, 0x99}
        quicSalt     = []byte{0x38, 0x76, 0x2c, 0xf7, 0xf5, 0x59, 0x34, 0xb3, 
0x4d, 0x17, 0x9a, 0xe6, 0xa4, 0xc8, 0x0c, 0xad, 0xcc, 0xbb, 0x7f, 0x0a}
-       initialSuite = &CipherSuiteTLS13{
+       initialSuite = &cipherSuiteTLS13{
                ID:     tls.TLS_AES_128_GCM_SHA256,
                KeyLen: 16,
-               AEAD:   AEADAESGCMTLS13,
+               AEAD:   aeadAESGCMTLS13,
                Hash:   crypto.SHA256,
        }
        errNotQuic        = errors.New("not quic")
@@ -153,7 +153,7 @@
 
        key := hkdfExpandLabel(crypto.SHA256, secret, []byte{}, "quic key", 16)
        iv := hkdfExpandLabel(crypto.SHA256, secret, []byte{}, "quic iv", 12)
-       cipher := AEADAESGCMTLS13(key, iv)
+       cipher := aeadAESGCMTLS13(key, iv)
        nonce := cache.Extend(int32(cipher.NonceSize()))
        binary.BigEndian.PutUint64(nonce[len(nonce)-8:], uint64(packetNumber))
        decrypted, err := cipher.Open(b[extHdrLen:extHdrLen], nonce, data, 
b[:extHdrLen])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/core.go new/v2ray-core-5.8.0/core.go
--- old/v2ray-core-5.7.0/core.go        2023-05-31 11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/core.go        2023-10-06 22:45:26.000000000 +0200
@@ -18,7 +18,7 @@
 )
 
 var (
-       version  = "5.7.0"
+       version  = "5.8.0"
        build    = "Custom"
        codename = "V2Fly, a community-driven edition of V2Ray."
        intro    = "A unified platform for anti-censorship."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/go.mod new/v2ray-core-5.8.0/go.mod
--- old/v2ray-core-5.7.0/go.mod 2023-05-31 11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/go.mod 2023-10-06 22:45:26.000000000 +0200
@@ -1,39 +1,37 @@
 module github.com/v2fly/v2ray-core/v5
 
-go 1.19
+go 1.20
 
 require (
        github.com/adrg/xdg v0.4.0
        github.com/go-chi/chi/v5 v5.0.8
        github.com/go-chi/render v1.0.2
-       github.com/go-playground/validator/v10 v10.11.2
+       github.com/go-playground/validator/v10 v10.14.1
        github.com/golang/mock v1.6.0
-       github.com/golang/protobuf v1.5.2
+       github.com/golang/protobuf v1.5.3
        github.com/google/go-cmp v0.5.9
        github.com/gorilla/websocket v1.5.0
-       github.com/jhump/protoreflect v1.15.0
-       github.com/miekg/dns v1.1.51
+       github.com/jhump/protoreflect v1.15.1
+       github.com/miekg/dns v1.1.54
        github.com/mustafaturan/bus v1.0.2
        github.com/pelletier/go-toml v1.9.5
-       github.com/pires/go-proxyproto v0.6.2
-       github.com/quic-go/qtls-go1-19 v0.3.2
-       github.com/quic-go/qtls-go1-20 v0.2.2
-       github.com/quic-go/quic-go v0.33.0
-       github.com/refraction-networking/utls v1.3.2
+       github.com/pires/go-proxyproto v0.7.0
+       github.com/quic-go/quic-go v0.38.1
+       github.com/refraction-networking/utls v1.5.2
        github.com/seiflotfy/cuckoofilter v0.0.0-20220411075957-e3b120b3f5fb
-       github.com/stretchr/testify v1.8.2
+       github.com/stretchr/testify v1.8.4
        github.com/v2fly/BrowserBridge v0.0.0-20210430233438-0570fc1d7d08
        github.com/v2fly/VSign v0.0.0-20201108000810-e2adc24bf848
        github.com/v2fly/ss-bloomring v0.0.0-20210312155135-28617310f63e
        github.com/xiaokangwang/VLite v0.0.0-20220418190619-cff95160a432
-       go.starlark.net v0.0.0-20220817180228-f738f5508c12
-       go4.org/netipx v0.0.0-20220812043211-3cc044ffd68d
-       golang.org/x/crypto v0.6.0
-       golang.org/x/net v0.7.0
-       golang.org/x/sync v0.1.0
-       golang.org/x/sys v0.5.0
-       google.golang.org/grpc v1.53.0
-       google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8
+       go.starlark.net v0.0.0-20230612165344-9532f5667272
+       go4.org/netipx v0.0.0-20230303233057-f1b76eb4bb35
+       golang.org/x/crypto v0.12.0
+       golang.org/x/net v0.14.0
+       golang.org/x/sync v0.2.0
+       golang.org/x/sys v0.11.0
+       google.golang.org/grpc v1.57.0
+       google.golang.org/protobuf v1.31.0
        gopkg.in/yaml.v3 v3.0.1
        h12.io/socks v1.0.3
 )
@@ -41,38 +39,40 @@
 require (
        github.com/aead/cmac v0.0.0-20160719120800-7af84192f0b1 // indirect
        github.com/ajg/form v1.5.1 // indirect
-       github.com/andybalholm/brotli v1.0.4 // indirect
+       github.com/andybalholm/brotli v1.0.5 // indirect
        github.com/boljen/go-bitmap v0.0.0-20151001105940-23cd2fb0ce7d // 
indirect
-       github.com/bufbuild/protocompile v0.2.1-0.20230123224550-da57cd758c2f 
// indirect
+       github.com/bufbuild/protocompile v0.5.1 // indirect
+       github.com/cloudflare/circl v1.3.3 // indirect
        github.com/davecgh/go-spew v1.1.1 // indirect
-       github.com/dgryski/go-metro v0.0.0-20200812162917-85c65e2d0165 // 
indirect
+       github.com/dgryski/go-metro v0.0.0-20211217172704-adc40b04c140 // 
indirect
        github.com/ebfe/bcrypt_pbkdf v0.0.0-20140212075826-3c8d2dcb253a // 
indirect
-       github.com/gaukas/godicttls v0.0.3 // indirect
+       github.com/gabriel-vasile/mimetype v1.4.2 // indirect
+       github.com/gaukas/godicttls v0.0.4 // indirect
        github.com/go-playground/locales v0.14.1 // indirect
        github.com/go-playground/universal-translator v0.18.1 // indirect
-       github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // 
indirect
-       github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect
-       github.com/klauspost/compress v1.15.15 // indirect
-       github.com/klauspost/cpuid v1.2.3 // indirect
-       github.com/klauspost/reedsolomon v1.9.3 // indirect
-       github.com/leodido/go-urn v1.2.1 // indirect
+       github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // 
indirect
+       github.com/google/pprof v0.0.0-20230602150820-91b7bce49751 // indirect
+       github.com/klauspost/compress v1.16.7 // indirect
+       github.com/klauspost/cpuid/v2 v2.2.5 // indirect
+       github.com/klauspost/reedsolomon v1.11.7 // indirect
+       github.com/leodido/go-urn v1.2.4 // indirect
        github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 // 
indirect
        github.com/mustafaturan/monoton v1.0.0 // indirect
-       github.com/onsi/ginkgo/v2 v2.2.0 // indirect
+       github.com/onsi/ginkgo/v2 v2.10.0 // indirect
        github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
-       github.com/pion/dtls/v2 v2.2.4 // indirect
+       github.com/pion/dtls/v2 v2.2.7 // indirect
        github.com/pion/logging v0.2.2 // indirect
-       github.com/pion/sctp v1.7.6 // indirect
-       github.com/pion/transport/v2 v2.0.0 // indirect
-       github.com/pion/udp v0.1.4 // indirect
-       github.com/pkg/errors v0.9.1 // indirect
+       github.com/pion/randutil v0.1.0 // indirect
+       github.com/pion/sctp v1.8.7 // indirect
+       github.com/pion/transport/v2 v2.2.1 // indirect
        github.com/pmezard/go-difflib v1.0.0 // indirect
+       github.com/quic-go/qtls-go1-20 v0.3.3 // indirect
        github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 // 
indirect
        github.com/secure-io/siv-go v0.0.0-20180922214919-5ff40651e2c4 // 
indirect
-       github.com/xtaci/smux v1.5.15 // indirect
-       golang.org/x/exp v0.0.0-20221205204356-47842c84f3db // indirect
-       golang.org/x/mod v0.7.0 // indirect
-       golang.org/x/text v0.7.0 // indirect
-       golang.org/x/tools v0.3.0 // indirect
-       google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // 
indirect
+       github.com/xtaci/smux v1.5.24 // indirect
+       golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 // indirect
+       golang.org/x/mod v0.10.0 // indirect
+       golang.org/x/text v0.12.0 // indirect
+       golang.org/x/tools v0.9.3 // indirect
+       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20230530153820-e85fd2cbaebc // indirect
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/go.sum new/v2ray-core-5.8.0/go.sum
--- old/v2ray-core-5.7.0/go.sum 2023-05-31 11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/go.sum 2023-10-06 22:45:26.000000000 +0200
@@ -23,8 +23,8 @@
 github.com/ajg/form v1.5.1/go.mod 
h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=
 github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod 
h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod 
h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/andybalholm/brotli v1.0.4 
h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY=
-github.com/andybalholm/brotli v1.0.4/go.mod 
h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
+github.com/andybalholm/brotli v1.0.5 
h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs=
+github.com/andybalholm/brotli v1.0.5/go.mod 
h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
 github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod 
h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
 github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod 
h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
 github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod 
h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
@@ -34,14 +34,16 @@
 github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod 
h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
 github.com/boljen/go-bitmap v0.0.0-20151001105940-23cd2fb0ce7d 
h1:zsO4lp+bjv5XvPTF58Vq+qgmZEYZttJK+CWtSZhKenI=
 github.com/boljen/go-bitmap v0.0.0-20151001105940-23cd2fb0ce7d/go.mod 
h1:f1iKL6ZhUWvbk7PdWVmOaak10o86cqMUYEmn1CZNGEI=
-github.com/bufbuild/protocompile v0.2.1-0.20230123224550-da57cd758c2f 
h1:IXSA5gow10s7zIOJfPOpXDtNBWCTA0715BDAhoJBXEs=
-github.com/bufbuild/protocompile v0.2.1-0.20230123224550-da57cd758c2f/go.mod 
h1:tleDrpPTlLUVmgnEoN6qBliKWqJaZFJXqZdFjTd+ocU=
+github.com/bufbuild/protocompile v0.5.1 
h1:mixz5lJX4Hiz4FpqFREJHIXLfaLBntfaJv1h+/jS+Qg=
+github.com/bufbuild/protocompile v0.5.1/go.mod 
h1:G5iLmavmF4NsYtpZFvE3B/zFch2GIY8+wjsYLR/lc40=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod 
h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 github.com/cespare/xxhash v1.1.0/go.mod 
h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
 github.com/chzyer/logex v1.1.10/go.mod 
h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
 github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod 
h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
 github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod 
h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
 github.com/client9/misspell v0.3.4/go.mod 
h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/cloudflare/circl v1.3.3 
h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs=
+github.com/cloudflare/circl v1.3.3/go.mod 
h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
 github.com/coreos/bbolt v1.3.2/go.mod 
h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
 github.com/coreos/etcd v3.3.13+incompatible/go.mod 
h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
 github.com/coreos/go-semver v0.3.0/go.mod 
h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
@@ -53,8 +55,9 @@
 github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod 
h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
 github.com/dgryski/go-metro v0.0.0-20180109044635-280f6062b5bc/go.mod 
h1:c9O8+fpSOX1DM8cPNSkX/qsBWdkD4yd2dpciOWQjpBw=
-github.com/dgryski/go-metro v0.0.0-20200812162917-85c65e2d0165 
h1:BS21ZUJ/B5X2UVUbczfmdWH7GapPWAhxcMsDnjJTU1E=
 github.com/dgryski/go-metro v0.0.0-20200812162917-85c65e2d0165/go.mod 
h1:c9O8+fpSOX1DM8cPNSkX/qsBWdkD4yd2dpciOWQjpBw=
+github.com/dgryski/go-metro v0.0.0-20211217172704-adc40b04c140 
h1:y7y0Oa6UawqTFPCDw9JG6pdKt4F9pAhHv0B7FMGaGD0=
+github.com/dgryski/go-metro v0.0.0-20211217172704-adc40b04c140/go.mod 
h1:c9O8+fpSOX1DM8cPNSkX/qsBWdkD4yd2dpciOWQjpBw=
 github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod 
h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
 github.com/ebfe/bcrypt_pbkdf v0.0.0-20140212075826-3c8d2dcb253a 
h1:YtdtTUN1iH97s+6PUjLnaiKSQj4oG1/EZ3N9bx6g4kU=
 github.com/ebfe/bcrypt_pbkdf v0.0.0-20140212075826-3c8d2dcb253a/go.mod 
h1:/CZpbhAusDOobpcb9yubw46kdYjq0zRC0Wpg9a9zFQM=
@@ -63,8 +66,10 @@
 github.com/fatih/color v1.7.0/go.mod 
h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
 github.com/fsnotify/fsnotify v1.4.7/go.mod 
h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 github.com/fsnotify/fsnotify v1.4.9/go.mod 
h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
-github.com/gaukas/godicttls v0.0.3 
h1:YNDIf0d9adcxOijiLrEzpfZGAkNwLRzPaG6OjU7EITk=
-github.com/gaukas/godicttls v0.0.3/go.mod 
h1:l6EenT4TLWgTdwslVb4sEMOCf7Bv0JAK67deKr9/NCI=
+github.com/gabriel-vasile/mimetype v1.4.2 
h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
+github.com/gabriel-vasile/mimetype v1.4.2/go.mod 
h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA=
+github.com/gaukas/godicttls v0.0.4 
h1:NlRaXb3J6hAnTmWdsEKb9bcSBD6BvcIjdGdeb0zfXbk=
+github.com/gaukas/godicttls v0.0.4/go.mod 
h1:l6EenT4TLWgTdwslVb4sEMOCf7Bv0JAK67deKr9/NCI=
 github.com/ghodss/yaml v1.0.0/go.mod 
h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/go-chi/chi/v5 v5.0.8 h1:lD+NLqFcAi1ovnVZpsnObHGW4xb4J8lNmoYVfECH1Y0=
 github.com/go-chi/chi/v5 v5.0.8/go.mod 
h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8=
@@ -74,16 +79,17 @@
 github.com/go-kit/kit v0.8.0/go.mod 
h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
 github.com/go-logfmt/logfmt v0.3.0/go.mod 
h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
 github.com/go-logfmt/logfmt v0.4.0/go.mod 
h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
+github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
 github.com/go-playground/assert/v2 v2.2.0 
h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
 github.com/go-playground/locales v0.14.1 
h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
 github.com/go-playground/locales v0.14.1/go.mod 
h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
 github.com/go-playground/universal-translator v0.18.1 
h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
 github.com/go-playground/universal-translator v0.18.1/go.mod 
h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
-github.com/go-playground/validator/v10 v10.11.2 
h1:q3SHpufmypg+erIExEKUmsgmhDTyhcJ38oeKGACXohU=
-github.com/go-playground/validator/v10 v10.11.2/go.mod 
h1:NieE624vt4SCTJtD87arVLvdmjPAeV8BQlHtMnw9D7s=
+github.com/go-playground/validator/v10 v10.14.1 
h1:9c50NUPC30zyuKprjL3vNZ0m5oG+jU0zvx4AqHGnv4k=
+github.com/go-playground/validator/v10 v10.14.1/go.mod 
h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
 github.com/go-stack/stack v1.8.0/go.mod 
h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
-github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 
h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I=
-github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod 
h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
+github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 
h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
+github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod 
h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
 github.com/gogo/protobuf v1.1.1/go.mod 
h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 github.com/gogo/protobuf v1.2.1/go.mod 
h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
 github.com/golang-collections/go-datastructures 
v0.0.0-20150211160725-59788d5eb259/go.mod 
h1:9Qcha0gTWLw//0VNka1Cbnjvg3pNKGFdAm7E9sBabxE=
@@ -104,8 +110,8 @@
 github.com/golang/protobuf v1.4.0/go.mod 
h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
 github.com/golang/protobuf v1.4.1/go.mod 
h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
 github.com/golang/protobuf v1.5.0/go.mod 
h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
-github.com/golang/protobuf v1.5.2 
h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
-github.com/golang/protobuf v1.5.2/go.mod 
h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
+github.com/golang/protobuf v1.5.3 
h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
+github.com/golang/protobuf v1.5.3/go.mod 
h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod 
h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/btree v1.0.0/go.mod 
h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/go-cmp v0.2.0/go.mod 
h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
@@ -121,8 +127,8 @@
 github.com/google/martian v2.1.0+incompatible/go.mod 
h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
 github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod 
h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
 github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod 
h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
-github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 
h1:yAJXTCF9TqKcTiHJAE8dj7HMvPfh66eeA2JYW7eFpSE=
-github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod 
h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20230602150820-91b7bce49751 
h1:hR7/MlvK23p6+lIw9SN1TigNLn9ZnF3W4SYRKq2gAHs=
+github.com/google/pprof v0.0.0-20230602150820-91b7bce49751/go.mod 
h1:Jh3hGz2jkYak8qXPD19ryItVnUgpgeqzdkY/D0EaeuA=
 github.com/google/renameio v0.1.0/go.mod 
h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
 github.com/googleapis/gax-go/v2 v2.0.4/go.mod 
h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
 github.com/googleapis/gax-go/v2 v2.0.5/go.mod 
h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
@@ -157,10 +163,9 @@
 github.com/hashicorp/mdns v1.0.0/go.mod 
h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
 github.com/hashicorp/memberlist v0.1.3/go.mod 
h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
 github.com/hashicorp/serf v0.8.2/go.mod 
h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
-github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod 
h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
 github.com/inconshreveable/mousetrap v1.0.0/go.mod 
h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
-github.com/jhump/protoreflect v1.15.0 
h1:U5T5/2LF0AZQFP9T4W5GfBjBaTruomrKobiR4E+oA/Q=
-github.com/jhump/protoreflect v1.15.0/go.mod 
h1:qww51KYjD2hoCl/ohxw5cK2LSssFczrbO1t8Ld2TENs=
+github.com/jhump/protoreflect v1.15.1 
h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c=
+github.com/jhump/protoreflect v1.15.1/go.mod 
h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo=
 github.com/jonboulle/clockwork v0.1.0/go.mod 
h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
 github.com/json-iterator/go v1.1.6/go.mod 
h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
 github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod 
h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
@@ -168,21 +173,23 @@
 github.com/julienschmidt/httprouter v1.2.0/go.mod 
h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
 github.com/kisielk/errcheck v1.1.0/go.mod 
h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
 github.com/kisielk/gotool v1.0.0/go.mod 
h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/klauspost/compress v1.15.15 
h1:EF27CXIuDsYJ6mmvtBRlEuB2UVOqHG1tAXgZ7yIO+lw=
-github.com/klauspost/compress v1.15.15/go.mod 
h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4=
-github.com/klauspost/cpuid v1.2.3 
h1:CCtW0xUnWGVINKvE/WWOYKdsPV6mawAtvQuSl8guwQs=
+github.com/klauspost/compress v1.16.7 
h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
+github.com/klauspost/compress v1.16.7/go.mod 
h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
 github.com/klauspost/cpuid v1.2.3/go.mod 
h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
-github.com/klauspost/reedsolomon v1.9.3 
h1:N/VzgeMfHmLc+KHMD1UL/tNkfXAt8FnUqlgXGIduwAY=
+github.com/klauspost/cpuid/v2 v2.2.5 
h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg=
+github.com/klauspost/cpuid/v2 v2.2.5/go.mod 
h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
 github.com/klauspost/reedsolomon v1.9.3/go.mod 
h1:CwCi+NUr9pqSVktrkN+Ondf06rkhYZ/pcNv7fu+8Un4=
+github.com/klauspost/reedsolomon v1.11.7 
h1:9uaHU0slncktTEEg4+7Vl7q7XUNMBUOK4R9gnKhMjAU=
+github.com/klauspost/reedsolomon v1.11.7/go.mod 
h1:4bXRN+cVzMdml6ti7qLouuYi32KHJ5MGv0Qd8a47h6A=
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod 
h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod 
h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
+github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
 github.com/kr/pretty v0.1.0/go.mod 
h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
 github.com/kr/text v0.1.0/go.mod 
h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
-github.com/leodido/go-urn v1.2.1 
h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w=
-github.com/leodido/go-urn v1.2.1/go.mod 
h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
+github.com/leodido/go-urn v1.2.4 
h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
+github.com/leodido/go-urn v1.2.4/go.mod 
h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
 github.com/lunixbochs/struc v0.0.0-20190916212049-a5c72983bc42/go.mod 
h1:vy1vK6wD6j7xX6O6hXe621WabdtNkou2h7uRtTfRMyg=
 github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 
h1:EnfXoSqDfSNJv0VBNqY/88RNnhSGYkrHaO0mmFGbVsc=
 github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40/go.mod 
h1:vy1vK6wD6j7xX6O6hXe621WabdtNkou2h7uRtTfRMyg=
@@ -191,8 +198,8 @@
 github.com/mattn/go-isatty v0.0.3/go.mod 
h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
 github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod 
h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
 github.com/miekg/dns v1.0.14/go.mod 
h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
-github.com/miekg/dns v1.1.51 h1:0+Xg7vObnhrz/4ZCZcZh7zPXlmU0aveS2HDBd0m0qSo=
-github.com/miekg/dns v1.1.51/go.mod 
h1:2Z9d3CP1LQWihRZUf29mQ19yDThaI4DAYzte2CaQW5c=
+github.com/miekg/dns v1.1.54 h1:5jon9mWcb0sFJGpnI99tOMhCPyJ+RPVz5b63MQG0VWI=
+github.com/miekg/dns v1.1.54/go.mod 
h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY=
 github.com/mitchellh/cli v1.0.0/go.mod 
h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
 github.com/mitchellh/go-homedir v1.0.0/go.mod 
h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
 github.com/mitchellh/go-homedir v1.1.0/go.mod 
h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
@@ -212,9 +219,9 @@
 github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod 
h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo=
 github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c/go.mod 
h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM=
 github.com/oklog/ulid v1.3.1/go.mod 
h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
-github.com/onsi/ginkgo/v2 v2.2.0 
h1:3ZNA3L1c5FYDFTTxbFeVGGD8jYvjYauHD30YgLxVsNI=
-github.com/onsi/ginkgo/v2 v2.2.0/go.mod 
h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk=
-github.com/onsi/gomega v1.20.1 h1:PA/3qinGoukvymdIDV8pii6tiZgC8kbmJO6Z5+b002Q=
+github.com/onsi/ginkgo/v2 v2.10.0 
h1:sfUl4qgLdvkChZrWCYndY2EAu9BRIw1YphNAzy1VNWs=
+github.com/onsi/ginkgo/v2 v2.10.0/go.mod 
h1:UDQOh5wbQUlMnkLfVaIUMtQ1Vus92oM+P2JX1aulgcE=
+github.com/onsi/gomega v1.27.7 h1:fVih9JD6ogIiHUN6ePK7HJidyEDpWGVB5mzM7cWNXoU=
 github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod 
h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
 github.com/patrickmn/go-cache v2.1.0+incompatible 
h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
 github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod 
h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
@@ -224,23 +231,23 @@
 github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2 
h1:JhzVVoYvbOACxoUmOs6V/G4D5nPVUW73rKvXxP4XUJc=
 github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod 
h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE=
 github.com/pion/dtls/v2 v2.0.0-rc.7/go.mod 
h1:U199DvHpRBN0muE9+tVN4TMy1jvEhZIZ63lk4xkvVSk=
-github.com/pion/dtls/v2 v2.2.4 h1:YSfYwDQgrxMYXLBc/m7PFY5BVtWlNm/DN4qoU2CbcWg=
-github.com/pion/dtls/v2 v2.2.4/go.mod 
h1:WGKfxqhrddne4Kg3p11FUMJrynkOY4lb25zHNO49wuw=
+github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8=
+github.com/pion/dtls/v2 v2.2.7/go.mod 
h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s=
 github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY=
 github.com/pion/logging v0.2.2/go.mod 
h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms=
-github.com/pion/sctp v1.7.6 h1:8qZTdJtbKfAns/Hv5L0PAj8FyXcsKhMH1pKUCGisQg4=
+github.com/pion/randutil v0.1.0 h1:CFG1UdESneORglEsnimhUjf33Rwjubwj6xfiOXBa3mA=
+github.com/pion/randutil v0.1.0/go.mod 
h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8=
 github.com/pion/sctp v1.7.6/go.mod 
h1:ichkYQ5tlgCQwEwvgfdcAolqx1nHbYCxo4D7zK/K0X8=
-github.com/pion/transport v0.8.10 
h1:lTiobMEw2PG6BH/mgIVqTV2mBp/mPT+IJLaN8ZxgdHk=
+github.com/pion/sctp v1.8.7 h1:JnABvFakZueGAn4KU/4PSKg+GWbF6QWbKTWZOSGJjXw=
+github.com/pion/sctp v1.8.7/go.mod 
h1:g1Ul+ARqZq5JEmoFy87Q/4CePtKnTJ1QCL9dBBdN6AU=
 github.com/pion/transport v0.8.10/go.mod 
h1:tBmha/UCjpum5hqTWhfAEs3CO4/tHSg0MYRhSzR+CZ8=
-github.com/pion/transport/v2 v2.0.0 
h1:bsMYyqHCbkvHwj+eNCFBuxtlKndKfyGI2vaQmM3fIE4=
-github.com/pion/transport/v2 v2.0.0/go.mod 
h1:HS2MEBJTwD+1ZI2eSXSvHJx/HnzQqRy2/LXxt6eVMHc=
-github.com/pion/udp v0.1.4 h1:OowsTmu1Od3sD6i3fQUJxJn2fEvJO6L1TidgadtbTI8=
-github.com/pion/udp v0.1.4/go.mod 
h1:G8LDo56HsFwC24LIcnT4YIDU5qcB6NepqqjP0keL2us=
-github.com/pires/go-proxyproto v0.6.2 
h1:KAZ7UteSOt6urjme6ZldyFm4wDe/z0ZUP0Yv0Dos0d8=
-github.com/pires/go-proxyproto v0.6.2/go.mod 
h1:Odh9VFOZJCf9G8cLW5o435Xf1J95Jw9Gw5rnCjcwzAY=
+github.com/pion/transport/v2 v2.1.0/go.mod 
h1:AdSw4YBZVDkZm8fpoz+fclXyQwANWmZAlDuQdctTThQ=
+github.com/pion/transport/v2 v2.2.1 
h1:7qYnCBlpgSJNYMbLCKuSY9KbQdBFoETvPNETv0y4N7c=
+github.com/pion/transport/v2 v2.2.1/go.mod 
h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g=
+github.com/pires/go-proxyproto v0.7.0 
h1:IukmRewDQFWC7kfnb66CSomk2q/seBuilHBYFwyq0Hs=
+github.com/pires/go-proxyproto v0.7.0/go.mod 
h1:Vz/1JPY/OACxWGQNIRY2BeyDmpoaWmEP40O9LbuiFR4=
 github.com/pkg/errors v0.8.0/go.mod 
h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.8.1/go.mod 
h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 github.com/pkg/errors v0.9.1/go.mod 
h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pmezard/go-difflib v1.0.0 
h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod 
h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -255,19 +262,16 @@
 github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod 
h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
 github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod 
h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
 github.com/prometheus/tsdb v0.7.1/go.mod 
h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
-github.com/quic-go/qtls-go1-19 v0.3.2 
h1:tFxjCFcTQzK+oMxG6Zcvp4Dq8dx4yD3dDiIiyc86Z5U=
-github.com/quic-go/qtls-go1-19 v0.3.2/go.mod 
h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI=
-github.com/quic-go/qtls-go1-20 v0.2.2 
h1:WLOPx6OY/hxtTxKV1Zrq20FtXtDEkeY00CGQm8GEa3E=
-github.com/quic-go/qtls-go1-20 v0.2.2/go.mod 
h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM=
-github.com/quic-go/quic-go v0.33.0 
h1:ItNoTDN/Fm/zBlq769lLJc8ECe9gYaW40veHCCco7y0=
-github.com/quic-go/quic-go v0.33.0/go.mod 
h1:YMuhaAV9/jIu0XclDXwZPAsP/2Kgr5yMYhe9oxhhOFA=
-github.com/refraction-networking/utls v1.3.2 
h1:o+AkWB57mkcoW36ET7uJ002CpBWHu0KPxi6vzxvPnv8=
-github.com/refraction-networking/utls v1.3.2/go.mod 
h1:fmoaOww2bxzzEpIKOebIsnBvjQpqP7L2vcm/9KUfm/E=
+github.com/quic-go/qtls-go1-20 v0.3.3 
h1:17/glZSLI9P9fDAeyCHBFSWSqJcwx1byhLwP5eUIDCM=
+github.com/quic-go/qtls-go1-20 v0.3.3/go.mod 
h1:X9Nh97ZL80Z+bX/gUXMbipO6OxdiDi58b/fMC9mAL+k=
+github.com/quic-go/quic-go v0.38.1 
h1:M36YWA5dEhEeT+slOu/SwMEucbYd0YFidxG3KlGPZaE=
+github.com/quic-go/quic-go v0.38.1/go.mod 
h1:ijnZM7JsFIkp4cRyjxJNIzdSfCLmUMg9wdyhGmg+SN4=
+github.com/refraction-networking/utls v1.5.2 
h1:l6diiLbEoRqdQ+/osPDO0z0lTc8O8VZV+p82N+Hi+ws=
+github.com/refraction-networking/utls v1.5.2/go.mod 
h1:SPuDbBmgLGp8s+HLNc83FuavwZCFoMmExj+ltUHiHUw=
 github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 
h1:f/FNXud6gA3MNr8meMVVGxhp+QBTqY91tM8HjEuMjGg=
 github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3/go.mod 
h1:HgjTstvQsPGkxUsCd2KWxErBblirPizecHcpD3ffK+s=
 github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod 
h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
 github.com/rogpeppe/go-internal v1.3.0/go.mod 
h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/rogpeppe/go-internal v1.8.0 
h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=
 github.com/russross/blackfriday/v2 v2.0.1/go.mod 
h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod 
h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
 github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod 
h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
@@ -304,9 +308,10 @@
 github.com/stretchr/testify v1.7.0/go.mod 
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.1/go.mod 
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.8.0/go.mod 
h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
-github.com/stretchr/testify v1.8.1/go.mod 
h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.8.2 
h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8=
 github.com/stretchr/testify v1.8.2/go.mod 
h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
+github.com/stretchr/testify v1.8.3/go.mod 
h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
+github.com/stretchr/testify v1.8.4 
h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
+github.com/stretchr/testify v1.8.4/go.mod 
h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
 github.com/subosito/gotenv v1.2.0/go.mod 
h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
 github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod 
h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
 github.com/txthinking/runnergroup v0.0.0-20200327135940-540a793bb997/go.mod 
h1:CLUSJbazqETbaR+i0YAhXBICV9TrKH93pziccMhmhpM=
@@ -322,21 +327,22 @@
 github.com/xiaokangwang/VLite v0.0.0-20220418190619-cff95160a432 
h1:I/ATawgO2RerCq9ACwL0wBB8xNXZdE3J+93MCEHReRs=
 github.com/xiaokangwang/VLite v0.0.0-20220418190619-cff95160a432/go.mod 
h1:QN7Go2ftTVfx0aCTh9RXHV8pkpi0FtmbwQw40dy61wQ=
 github.com/xtaci/smux v1.5.12/go.mod 
h1:OMlQbT5vcgl2gb49mFkYo6SMf+zP3rcjcwQz7ZU7IGY=
-github.com/xtaci/smux v1.5.15 h1:6hMiXswcleXj5oNfcJc+DXS8Vj36XX2LaX98udog6Kc=
 github.com/xtaci/smux v1.5.15/go.mod 
h1:OMlQbT5vcgl2gb49mFkYo6SMf+zP3rcjcwQz7ZU7IGY=
+github.com/xtaci/smux v1.5.24 h1:77emW9dtnOxxOQ5ltR+8BbsX1kzcOxQ5gB+aaV9hXOY=
+github.com/xtaci/smux v1.5.24/go.mod 
h1:OMlQbT5vcgl2gb49mFkYo6SMf+zP3rcjcwQz7ZU7IGY=
 github.com/yuin/goldmark v1.2.1/go.mod 
h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.3.5/go.mod 
h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 github.com/yuin/goldmark v1.4.13/go.mod 
h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
 go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
 go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
 go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
-go.starlark.net v0.0.0-20220817180228-f738f5508c12 
h1:xOBJXWGEDwU5xSDxH6macxO11Us0AH2fTa9rmsbbF7g=
-go.starlark.net v0.0.0-20220817180228-f738f5508c12/go.mod 
h1:VZcBMdr3cT3PnBoWunTabuSEXwVAH+ZJ5zxfs3AdASk=
+go.starlark.net v0.0.0-20230612165344-9532f5667272 
h1:2/wtqS591wZyD2OsClsVBKRPEvBsQt/Js+fsCiYhwu8=
+go.starlark.net v0.0.0-20230612165344-9532f5667272/go.mod 
h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds=
 go.uber.org/atomic v1.4.0/go.mod 
h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
 go.uber.org/multierr v1.1.0/go.mod 
h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
 go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
-go4.org/netipx v0.0.0-20220812043211-3cc044ffd68d 
h1:ggxwEf5eu0l8v+87VhX1czFh8zJul3hK16Gmruxn7hw=
-go4.org/netipx v0.0.0-20220812043211-3cc044ffd68d/go.mod 
h1:tgPU4N2u9RByaTN3NC2p9xOzyFpte4jYwsIIRF7XlSc=
+go4.org/netipx v0.0.0-20230303233057-f1b76eb4bb35 
h1:nJAwRlGWZZDOD+6wni9KVUNHMpHko/OnRwsrCYeAzPo=
+go4.org/netipx v0.0.0-20230303233057-f1b76eb4bb35/go.mod 
h1:TQvodOM+hJTioNQJilmLXu08JNb8i+ccq418+KWu1/Y=
 golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod 
h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod 
h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod 
h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@@ -348,16 +354,16 @@
 golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod 
h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod 
h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/crypto v0.5.0/go.mod 
h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU=
-golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc=
-golang.org/x/crypto v0.6.0/go.mod 
h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
+golang.org/x/crypto v0.8.0/go.mod 
h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE=
+golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk=
+golang.org/x/crypto v0.12.0/go.mod 
h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod 
h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
 golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod 
h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
 golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod 
h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
-golang.org/x/exp v0.0.0-20221205204356-47842c84f3db 
h1:D/cFflL63o2KSLJIwjlcIt8PR064j/xsmdEJL/YvY/o=
-golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod 
h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
+golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 
h1:k/i9J1pBpvlfR+9QsetwPyERsqu1GIbi967PQMq3Ivc=
+golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1/go.mod 
h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w=
 golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod 
h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod 
h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
 golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod 
h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -374,8 +380,9 @@
 golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod 
h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
-golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA=
-golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk=
+golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -395,11 +402,11 @@
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod 
h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod 
h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod 
h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
-golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
-golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
-golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
-golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
-golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
+golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
+golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
+golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
+golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14=
+golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod 
h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -411,8 +418,9 @@
 golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI=
+golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -429,7 +437,6 @@
 golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -440,27 +447,29 @@
 golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
 golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM=
+golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
-golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
+golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
+golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
+golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod 
h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
-golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
-golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
 golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
+golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
+golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc=
+golang.org/x/text v0.12.0/go.mod 
h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -485,8 +494,9 @@
 golang.org/x/tools v0.1.0/go.mod 
h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
 golang.org/x/tools v0.1.1/go.mod 
h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
 golang.org/x/tools v0.1.12/go.mod 
h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
-golang.org/x/tools v0.3.0 h1:SrNbZl6ECOS1qFzgTdQfWXZM9XBkiA6tkFrH9YSTPHM=
-golang.org/x/tools v0.3.0/go.mod 
h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k=
+golang.org/x/tools v0.6.0/go.mod 
h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
+golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM=
+golang.org/x/tools v0.9.3/go.mod 
h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
 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-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -510,15 +520,15 @@
 google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod 
h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
 google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod 
h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
 google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod 
h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
-google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f 
h1:BWUVssLB0HVOSY78gIdvk1dTVYtT1y8SBWtPYuTJ/6w=
-google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod 
h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc 
h1:XSJ8Vk1SWuNr8S18z1NZSziL0CPIXLCCMDOEFtHBOFc=
+google.golang.org/genproto/googleapis/rpc 
v0.0.0-20230530153820-e85fd2cbaebc/go.mod 
h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
 google.golang.org/grpc v1.19.0/go.mod 
h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.1/go.mod 
h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
 google.golang.org/grpc v1.21.1/go.mod 
h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
 google.golang.org/grpc v1.23.0/go.mod 
h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
 google.golang.org/grpc v1.27.0/go.mod 
h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc=
-google.golang.org/grpc v1.53.0/go.mod 
h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw=
+google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw=
+google.golang.org/grpc v1.57.0/go.mod 
h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod 
h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod 
h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod 
h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -529,13 +539,13 @@
 google.golang.org/protobuf v1.25.0/go.mod 
h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
 google.golang.org/protobuf v1.26.0-rc.1/go.mod 
h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
 google.golang.org/protobuf v1.26.0/go.mod 
h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 
h1:KR8+MyP7/qOlV+8Af01LtjL04bu7on42eVsxT4EyBQk=
-google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod 
h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+google.golang.org/protobuf v1.31.0 
h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
+google.golang.org/protobuf v1.31.0/go.mod 
h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod 
h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 
h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c 
h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
 gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
 gopkg.in/resty.v1 v1.12.0/go.mod 
h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/proxy/http/server.go 
new/v2ray-core-5.8.0/proxy/http/server.go
--- old/v2ray-core-5.7.0/proxy/http/server.go   2023-05-31 11:45:19.000000000 
+0200
+++ new/v2ray-core-5.8.0/proxy/http/server.go   2023-10-06 22:45:26.000000000 
+0200
@@ -242,9 +242,7 @@
                request.Header.Set("User-Agent", "")
        }
 
-       content := &session.Content{
-               Protocol: "http/1.1",
-       }
+       content := &session.Content{}
 
        content.SetAttribute(":method", strings.ToUpper(request.Method))
        content.SetAttribute(":path", request.URL.Path)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/proxy/shadowsocks/config.go 
new/v2ray-core-5.8.0/proxy/shadowsocks/config.go
--- old/v2ray-core-5.7.0/proxy/shadowsocks/config.go    2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/proxy/shadowsocks/config.go    2023-10-06 
22:45:26.000000000 +0200
@@ -6,11 +6,9 @@
        "crypto/cipher"
        "crypto/md5"
        "crypto/sha1"
-       "encoding/json"
        "io"
        "strings"
 
-       "github.com/golang/protobuf/jsonpb"
        "golang.org/x/crypto/chacha20poly1305"
        "golang.org/x/crypto/hkdf"
 
@@ -212,27 +210,13 @@
        return nil
 }
 
-func (c *CipherType) UnmarshalJSONPB(unmarshaler *jsonpb.Unmarshaler, bytes 
[]byte) error {
-       var method string
-
-       if err := json.Unmarshal(bytes, &method); err != nil {
-               return err
-       }
-
-       if *c = CipherFromString(method); *c == CipherType_UNKNOWN {
-               return newError("unknown cipher method: ", method)
-       }
-
-       return nil
-}
-
 func CipherFromString(c string) CipherType {
        switch strings.ToLower(c) {
-       case "aes-128-gcm", "aead_aes_128_gcm":
+       case "aes-128-gcm", "aes_128_gcm", "aead_aes_128_gcm":
                return CipherType_AES_128_GCM
-       case "aes-256-gcm", "aead_aes_256_gcm":
+       case "aes-256-gcm", "aes_256_gcm", "aead_aes_256_gcm":
                return CipherType_AES_256_GCM
-       case "chacha20-poly1305", "aead_chacha20_poly1305", 
"chacha20-ietf-poly1305":
+       case "chacha20-poly1305", "chacha20_poly1305", 
"aead_chacha20_poly1305", "chacha20-ietf-poly1305":
                return CipherType_CHACHA20_POLY1305
        case "none", "plain":
                return CipherType_NONE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/v2ray-core-5.7.0/proxy/shadowsocks/simplified/config.go 
new/v2ray-core-5.8.0/proxy/shadowsocks/simplified/config.go
--- old/v2ray-core-5.7.0/proxy/shadowsocks/simplified/config.go 2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/proxy/shadowsocks/simplified/config.go 2023-10-06 
22:45:26.000000000 +0200
@@ -2,6 +2,9 @@
 
 import (
        "context"
+       "encoding/json"
+
+       "github.com/golang/protobuf/jsonpb"
 
        "github.com/v2fly/v2ray-core/v5/common"
        "github.com/v2fly/v2ray-core/v5/common/protocol"
@@ -9,6 +12,20 @@
        "github.com/v2fly/v2ray-core/v5/proxy/shadowsocks"
 )
 
+func (c *CipherTypeWrapper) UnmarshalJSONPB(unmarshaler *jsonpb.Unmarshaler, 
bytes []byte) error {
+       var method string
+
+       if err := json.Unmarshal(bytes, &method); err != nil {
+               return err
+       }
+
+       if c.Value = shadowsocks.CipherFromString(method); c.Value == 
shadowsocks.CipherType_UNKNOWN {
+               return newError("unknown cipher method: ", method)
+       }
+
+       return nil
+}
+
 func init() {
        common.Must(common.RegisterConfig((*ServerConfig)(nil), func(ctx 
context.Context, config interface{}) (interface{}, error) {
                simplifiedServer := config.(*ServerConfig)
@@ -16,7 +33,7 @@
                        User: &protocol.User{
                                Account: 
serial.ToTypedMessage(&shadowsocks.Account{
                                        Password:   simplifiedServer.Password,
-                                       CipherType: simplifiedServer.Method,
+                                       CipherType: 
simplifiedServer.Method.Value,
                                }),
                        },
                        Network:        simplifiedServer.Networks.GetNetwork(),
@@ -37,7 +54,7 @@
                                                {
                                                        Account: 
serial.ToTypedMessage(&shadowsocks.Account{
                                                                Password:       
                simplifiedClient.Password,
-                                                               CipherType:     
                simplifiedClient.Method,
+                                                               CipherType:     
                simplifiedClient.Method.Value,
                                                                
ExperimentReducedIvHeadEntropy: simplifiedClient.ExperimentReducedIvHeadEntropy,
                                                        }),
                                                },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/v2ray-core-5.7.0/proxy/shadowsocks/simplified/config.pb.go 
new/v2ray-core-5.8.0/proxy/shadowsocks/simplified/config.pb.go
--- old/v2ray-core-5.7.0/proxy/shadowsocks/simplified/config.pb.go      
2023-05-31 11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/proxy/shadowsocks/simplified/config.pb.go      
2023-10-06 22:45:26.000000000 +0200
@@ -1,3 +1,9 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+//     protoc-gen-go v1.30.0
+//     protoc        v3.21.12
+// source: proxy/shadowsocks/simplified/config.proto
+
 package simplified
 
 import (
@@ -23,7 +29,7 @@
        sizeCache     protoimpl.SizeCache
        unknownFields protoimpl.UnknownFields
 
-       Method         shadowsocks.CipherType    
`protobuf:"varint,1,opt,name=method,proto3,enum=v2ray.core.proxy.shadowsocks.CipherType"
 json:"method,omitempty"`
+       Method         *CipherTypeWrapper        
`protobuf:"bytes,1,opt,name=method,proto3" json:"method,omitempty"`
        Password       string                    
`protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
        Networks       *net.NetworkList          
`protobuf:"bytes,3,opt,name=networks,proto3" json:"networks,omitempty"`
        PacketEncoding packetaddr.PacketAddrType 
`protobuf:"varint,4,opt,name=packet_encoding,json=packetEncoding,proto3,enum=v2ray.core.net.packetaddr.PacketAddrType"
 json:"packet_encoding,omitempty"`
@@ -61,11 +67,11 @@
        return file_proxy_shadowsocks_simplified_config_proto_rawDescGZIP(), 
[]int{0}
 }
 
-func (x *ServerConfig) GetMethod() shadowsocks.CipherType {
+func (x *ServerConfig) GetMethod() *CipherTypeWrapper {
        if x != nil {
                return x.Method
        }
-       return shadowsocks.CipherType(0)
+       return nil
 }
 
 func (x *ServerConfig) GetPassword() string {
@@ -94,11 +100,11 @@
        sizeCache     protoimpl.SizeCache
        unknownFields protoimpl.UnknownFields
 
-       Address                        *net.IPOrDomain        
`protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
-       Port                           uint32                 
`protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
-       Method                         shadowsocks.CipherType 
`protobuf:"varint,3,opt,name=method,proto3,enum=v2ray.core.proxy.shadowsocks.CipherType"
 json:"method,omitempty"`
-       Password                       string                 
`protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"`
-       ExperimentReducedIvHeadEntropy bool                   
`protobuf:"varint,90001,opt,name=experiment_reduced_iv_head_entropy,json=experimentReducedIvHeadEntropy,proto3"
 json:"experiment_reduced_iv_head_entropy,omitempty"`
+       Address                        *net.IPOrDomain    
`protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
+       Port                           uint32             
`protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
+       Method                         *CipherTypeWrapper 
`protobuf:"bytes,3,opt,name=method,proto3" json:"method,omitempty"`
+       Password                       string             
`protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"`
+       ExperimentReducedIvHeadEntropy bool               
`protobuf:"varint,90001,opt,name=experiment_reduced_iv_head_entropy,json=experimentReducedIvHeadEntropy,proto3"
 json:"experiment_reduced_iv_head_entropy,omitempty"`
 }
 
 func (x *ClientConfig) Reset() {
@@ -147,11 +153,11 @@
        return 0
 }
 
-func (x *ClientConfig) GetMethod() shadowsocks.CipherType {
+func (x *ClientConfig) GetMethod() *CipherTypeWrapper {
        if x != nil {
                return x.Method
        }
-       return shadowsocks.CipherType(0)
+       return nil
 }
 
 func (x *ClientConfig) GetPassword() string {
@@ -168,6 +174,53 @@
        return false
 }
 
+type CipherTypeWrapper struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       Value shadowsocks.CipherType 
`protobuf:"varint,1,opt,name=value,proto3,enum=v2ray.core.proxy.shadowsocks.CipherType"
 json:"value,omitempty"`
+}
+
+func (x *CipherTypeWrapper) Reset() {
+       *x = CipherTypeWrapper{}
+       if protoimpl.UnsafeEnabled {
+               mi := 
&file_proxy_shadowsocks_simplified_config_proto_msgTypes[2]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *CipherTypeWrapper) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CipherTypeWrapper) ProtoMessage() {}
+
+func (x *CipherTypeWrapper) ProtoReflect() protoreflect.Message {
+       mi := &file_proxy_shadowsocks_simplified_config_proto_msgTypes[2]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use CipherTypeWrapper.ProtoReflect.Descriptor instead.
+func (*CipherTypeWrapper) Descriptor() ([]byte, []int) {
+       return file_proxy_shadowsocks_simplified_config_proto_rawDescGZIP(), 
[]int{2}
+}
+
+func (x *CipherTypeWrapper) GetValue() shadowsocks.CipherType {
+       if x != nil {
+               return x.Value
+       }
+       return shadowsocks.CipherType(0)
+}
+
 var File_proxy_shadowsocks_simplified_config_proto protoreflect.FileDescriptor
 
 var file_proxy_shadowsocks_simplified_config_proto_rawDesc = []byte{
@@ -185,35 +238,37 @@
        0x6f, 0x6e, 0x2f, 0x6e, 0x65, 0x74, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x65, 
0x74, 0x61, 0x64, 0x64,
        0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 
0x74, 0x6f, 0x1a, 0x1e,
        0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 
0x73, 0x6f, 0x63, 0x6b,
-       0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 
0x74, 0x6f, 0x22, 0xa0,
+       0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 
0x74, 0x6f, 0x22, 0xae,
        0x02, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 
0x66, 0x69, 0x67, 0x12,
-       0x40, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 
0x01, 0x28, 0x0e, 0x32,
-       0x28, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 
0x2e, 0x70, 0x72, 0x6f,
-       0x78, 0x79, 0x2e, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x73, 0x6f, 0x63, 
0x6b, 0x73, 0x2e, 0x43,
-       0x69, 0x70, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x6d, 
0x65, 0x74, 0x68, 0x6f,
-       0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 
0x64, 0x18, 0x02, 0x20,
-       0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 
0x64, 0x12, 0x3e, 0x0a,
-       0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x03, 0x20, 
0x01, 0x28, 0x0b, 0x32,
-       0x22, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 
0x2e, 0x63, 0x6f, 0x6d,
-       0x6d, 0x6f, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x4e, 0x65, 0x74, 0x77, 
0x6f, 0x72, 0x6b, 0x4c,
-       0x69, 0x73, 0x74, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 
0x73, 0x12, 0x52, 0x0a,
-       0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 
0x64, 0x69, 0x6e, 0x67,
-       0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x76, 0x32, 0x72, 
0x61, 0x79, 0x2e, 0x63,
-       0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x61, 0x63, 0x6b, 
0x65, 0x74, 0x61, 0x64,
-       0x64, 0x72, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x64, 0x64, 
0x72, 0x54, 0x79, 0x70,
-       0x65, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x63, 
0x6f, 0x64, 0x69, 0x6e,
-       0x67, 0x3a, 0x1e, 0x82, 0xb5, 0x18, 0x09, 0x0a, 0x07, 0x69, 0x6e, 0x62, 
0x6f, 0x75, 0x6e, 0x64,
-       0x82, 0xb5, 0x18, 0x0d, 0x12, 0x0b, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 
0x73, 0x6f, 0x63, 0x6b,
-       0x73, 0x22, 0xac, 0x02, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 
0x43, 0x6f, 0x6e, 0x66,
-       0x69, 0x67, 0x12, 0x3b, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 
0x73, 0x18, 0x01, 0x20,
-       0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 
0x63, 0x6f, 0x72, 0x65,
-       0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 
0x49, 0x50, 0x4f, 0x72,
-       0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 
0x65, 0x73, 0x73, 0x12,
-       0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 
0x0d, 0x52, 0x04, 0x70,
-       0x6f, 0x72, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 
0x64, 0x18, 0x03, 0x20,
-       0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 
0x63, 0x6f, 0x72, 0x65,
-       0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x73, 0x68, 0x61, 0x64, 0x6f, 
0x77, 0x73, 0x6f, 0x63,
-       0x6b, 0x73, 0x2e, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 
0x65, 0x52, 0x06, 0x6d,
+       0x52, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 
0x01, 0x28, 0x0b, 0x32,
+       0x3a, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 
0x2e, 0x70, 0x72, 0x6f,
+       0x78, 0x79, 0x2e, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x73, 0x6f, 0x63, 
0x6b, 0x73, 0x2e, 0x73,
+       0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2e, 0x43, 0x69, 
0x70, 0x68, 0x65, 0x72,
+       0x54, 0x79, 0x70, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x52, 
0x06, 0x6d, 0x65, 0x74,
+       0x68, 0x6f, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 
0x6f, 0x72, 0x64, 0x18,
+       0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 
0x6f, 0x72, 0x64, 0x12,
+       0x3e, 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 
0x03, 0x20, 0x01, 0x28,
+       0x0b, 0x32, 0x22, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 
0x72, 0x65, 0x2e, 0x63,
+       0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x4e, 0x65, 
0x74, 0x77, 0x6f, 0x72,
+       0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 
0x72, 0x6b, 0x73, 0x12,
+       0x52, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x6e, 
0x63, 0x6f, 0x64, 0x69,
+       0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x76, 
0x32, 0x72, 0x61, 0x79,
+       0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x61, 
0x63, 0x6b, 0x65, 0x74,
+       0x61, 0x64, 0x64, 0x72, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 
0x64, 0x64, 0x72, 0x54,
+       0x79, 0x70, 0x65, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 
0x6e, 0x63, 0x6f, 0x64,
+       0x69, 0x6e, 0x67, 0x3a, 0x1a, 0x82, 0xb5, 0x18, 0x16, 0x0a, 0x07, 0x69, 
0x6e, 0x62, 0x6f, 0x75,
+       0x6e, 0x64, 0x12, 0x0b, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x73, 0x6f, 
0x63, 0x6b, 0x73, 0x22,
+       0xba, 0x02, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 
0x6e, 0x66, 0x69, 0x67,
+       0x12, 0x3b, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 
0x01, 0x20, 0x01, 0x28,
+       0x0b, 0x32, 0x21, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 
0x72, 0x65, 0x2e, 0x63,
+       0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x49, 0x50, 
0x4f, 0x72, 0x44, 0x6f,
+       0x6d, 0x61, 0x69, 0x6e, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 
0x73, 0x12, 0x12, 0x0a,
+       0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 
0x04, 0x70, 0x6f, 0x72,
+       0x74, 0x12, 0x52, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 
0x03, 0x20, 0x01, 0x28,
+       0x0b, 0x32, 0x3a, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 
0x72, 0x65, 0x2e, 0x70,
+       0x72, 0x6f, 0x78, 0x79, 0x2e, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x73, 
0x6f, 0x63, 0x6b, 0x73,
+       0x2e, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2e, 
0x43, 0x69, 0x70, 0x68,
+       0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 
0x72, 0x52, 0x06, 0x6d,
        0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 
0x73, 0x77, 0x6f, 0x72,
        0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 
0x73, 0x77, 0x6f, 0x72,
        0x64, 0x12, 0x4c, 0x0a, 0x22, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 
0x65, 0x6e, 0x74, 0x5f,
@@ -221,19 +276,24 @@
        0x65, 0x6e, 0x74, 0x72, 0x6f, 0x70, 0x79, 0x18, 0x91, 0xbf, 0x05, 0x20, 
0x01, 0x28, 0x08, 0x52,
        0x1e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 
0x65, 0x64, 0x75, 0x63,
        0x65, 0x64, 0x49, 0x76, 0x48, 0x65, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, 
0x6f, 0x70, 0x79, 0x3a,
-       0x1f, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x62, 0x6f, 
0x75, 0x6e, 0x64, 0x82,
-       0xb5, 0x18, 0x0d, 0x12, 0x0b, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x73, 
0x6f, 0x63, 0x6b, 0x73,
-       0x42, 0x96, 0x01, 0x0a, 0x2b, 0x63, 0x6f, 0x6d, 0x2e, 0x76, 0x32, 0x72, 
0x61, 0x79, 0x2e, 0x63,
-       0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x73, 0x68, 
0x61, 0x64, 0x6f, 0x77,
-       0x73, 0x6f, 0x63, 0x6b, 0x73, 0x2e, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x69, 
0x66, 0x69, 0x65, 0x64,
-       0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 
0x6f, 0x6d, 0x2f, 0x76,
-       0x32, 0x66, 0x6c, 0x79, 0x2f, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2d, 0x63, 
0x6f, 0x72, 0x65, 0x2f,
-       0x76, 0x35, 0x2f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x73, 0x68, 0x61, 
0x64, 0x6f, 0x77, 0x73,
-       0x6f, 0x63, 0x6b, 0x73, 0x2f, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 
0x69, 0x65, 0x64, 0xaa,
-       0x02, 0x27, 0x56, 0x32, 0x52, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x72, 0x65, 
0x2e, 0x50, 0x72, 0x6f,
-       0x78, 0x79, 0x2e, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x73, 0x6f, 0x63, 
0x6b, 0x73, 0x2e, 0x53,
-       0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x62, 0x06, 0x70, 
0x72, 0x6f, 0x74, 0x6f,
-       0x33,
+       0x1b, 0x82, 0xb5, 0x18, 0x17, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x62, 0x6f, 
0x75, 0x6e, 0x64, 0x12,
+       0x0b, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x73, 0x6f, 0x63, 0x6b, 0x73, 
0x22, 0x53, 0x0a, 0x11,
+       0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x57, 0x72, 
0x61, 0x70, 0x70, 0x65,
+       0x72, 0x12, 0x3e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 
0x20, 0x01, 0x28, 0x0e,
+       0x32, 0x28, 0x2e, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 
0x65, 0x2e, 0x70, 0x72,
+       0x6f, 0x78, 0x79, 0x2e, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x73, 0x6f, 
0x63, 0x6b, 0x73, 0x2e,
+       0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 
0x76, 0x61, 0x6c, 0x75,
+       0x65, 0x42, 0x96, 0x01, 0x0a, 0x2b, 0x63, 0x6f, 0x6d, 0x2e, 0x76, 0x32, 
0x72, 0x61, 0x79, 0x2e,
+       0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x73, 
0x68, 0x61, 0x64, 0x6f,
+       0x77, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x2e, 0x73, 0x69, 0x6d, 0x70, 0x6c, 
0x69, 0x66, 0x69, 0x65,
+       0x64, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 
0x63, 0x6f, 0x6d, 0x2f,
+       0x76, 0x32, 0x66, 0x6c, 0x79, 0x2f, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2d, 
0x63, 0x6f, 0x72, 0x65,
+       0x2f, 0x76, 0x35, 0x2f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x73, 0x68, 
0x61, 0x64, 0x6f, 0x77,
+       0x73, 0x6f, 0x63, 0x6b, 0x73, 0x2f, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x69, 
0x66, 0x69, 0x65, 0x64,
+       0xaa, 0x02, 0x27, 0x56, 0x32, 0x52, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x72, 
0x65, 0x2e, 0x50, 0x72,
+       0x6f, 0x78, 0x79, 0x2e, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x73, 0x6f, 
0x63, 0x6b, 0x73, 0x2e,
+       0x53, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x62, 0x06, 
0x70, 0x72, 0x6f, 0x74,
+       0x6f, 0x33,
 }
 
 var (
@@ -248,26 +308,28 @@
        return file_proxy_shadowsocks_simplified_config_proto_rawDescData
 }
 
-var file_proxy_shadowsocks_simplified_config_proto_msgTypes = 
make([]protoimpl.MessageInfo, 2)
+var file_proxy_shadowsocks_simplified_config_proto_msgTypes = 
make([]protoimpl.MessageInfo, 3)
 var file_proxy_shadowsocks_simplified_config_proto_goTypes = []interface{}{
        (*ServerConfig)(nil),           // 0: 
v2ray.core.proxy.shadowsocks.simplified.ServerConfig
        (*ClientConfig)(nil),           // 1: 
v2ray.core.proxy.shadowsocks.simplified.ClientConfig
-       (shadowsocks.CipherType)(0),    // 2: 
v2ray.core.proxy.shadowsocks.CipherType
+       (*CipherTypeWrapper)(nil),      // 2: 
v2ray.core.proxy.shadowsocks.simplified.CipherTypeWrapper
        (*net.NetworkList)(nil),        // 3: v2ray.core.common.net.NetworkList
        (packetaddr.PacketAddrType)(0), // 4: 
v2ray.core.net.packetaddr.PacketAddrType
        (*net.IPOrDomain)(nil),         // 5: v2ray.core.common.net.IPOrDomain
+       (shadowsocks.CipherType)(0),    // 6: 
v2ray.core.proxy.shadowsocks.CipherType
 }
 var file_proxy_shadowsocks_simplified_config_proto_depIdxs = []int32{
-       2, // 0: 
v2ray.core.proxy.shadowsocks.simplified.ServerConfig.method:type_name -> 
v2ray.core.proxy.shadowsocks.CipherType
+       2, // 0: 
v2ray.core.proxy.shadowsocks.simplified.ServerConfig.method:type_name -> 
v2ray.core.proxy.shadowsocks.simplified.CipherTypeWrapper
        3, // 1: 
v2ray.core.proxy.shadowsocks.simplified.ServerConfig.networks:type_name -> 
v2ray.core.common.net.NetworkList
        4, // 2: 
v2ray.core.proxy.shadowsocks.simplified.ServerConfig.packet_encoding:type_name 
-> v2ray.core.net.packetaddr.PacketAddrType
        5, // 3: 
v2ray.core.proxy.shadowsocks.simplified.ClientConfig.address:type_name -> 
v2ray.core.common.net.IPOrDomain
-       2, // 4: 
v2ray.core.proxy.shadowsocks.simplified.ClientConfig.method:type_name -> 
v2ray.core.proxy.shadowsocks.CipherType
-       5, // [5:5] is the sub-list for method output_type
-       5, // [5:5] is the sub-list for method input_type
-       5, // [5:5] is the sub-list for extension type_name
-       5, // [5:5] is the sub-list for extension extendee
-       0, // [0:5] is the sub-list for field type_name
+       2, // 4: 
v2ray.core.proxy.shadowsocks.simplified.ClientConfig.method:type_name -> 
v2ray.core.proxy.shadowsocks.simplified.CipherTypeWrapper
+       6, // 5: 
v2ray.core.proxy.shadowsocks.simplified.CipherTypeWrapper.value:type_name -> 
v2ray.core.proxy.shadowsocks.CipherType
+       6, // [6:6] is the sub-list for method output_type
+       6, // [6:6] is the sub-list for method input_type
+       6, // [6:6] is the sub-list for extension type_name
+       6, // [6:6] is the sub-list for extension extendee
+       0, // [0:6] is the sub-list for field type_name
 }
 
 func init() { file_proxy_shadowsocks_simplified_config_proto_init() }
@@ -300,6 +362,18 @@
                                return nil
                        }
                }
+               
file_proxy_shadowsocks_simplified_config_proto_msgTypes[2].Exporter = func(v 
interface{}, i int) interface{} {
+                       switch v := v.(*CipherTypeWrapper); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
        }
        type x struct{}
        out := protoimpl.TypeBuilder{
@@ -307,7 +381,7 @@
                        GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
                        RawDescriptor: 
file_proxy_shadowsocks_simplified_config_proto_rawDesc,
                        NumEnums:      0,
-                       NumMessages:   2,
+                       NumMessages:   3,
                        NumExtensions: 0,
                        NumServices:   0,
                },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/v2ray-core-5.7.0/proxy/shadowsocks/simplified/config.proto 
new/v2ray-core-5.8.0/proxy/shadowsocks/simplified/config.proto
--- old/v2ray-core-5.7.0/proxy/shadowsocks/simplified/config.proto      
2023-05-31 11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/proxy/shadowsocks/simplified/config.proto      
2023-10-06 22:45:26.000000000 +0200
@@ -16,7 +16,7 @@
   option (v2ray.core.common.protoext.message_opt).type = "inbound";
   option (v2ray.core.common.protoext.message_opt).short_name = "shadowsocks";
 
-  v2ray.core.proxy.shadowsocks.CipherType method = 1;
+  CipherTypeWrapper method = 1;
   string password = 2;
   v2ray.core.common.net.NetworkList networks = 3;
   v2ray.core.net.packetaddr.PacketAddrType packet_encoding = 4;
@@ -28,7 +28,11 @@
 
   v2ray.core.common.net.IPOrDomain address = 1;
   uint32 port = 2;
-  v2ray.core.proxy.shadowsocks.CipherType method = 3;
+  CipherTypeWrapper method = 3;
   string password = 4;
   bool experiment_reduced_iv_head_entropy = 90001;
+}
+
+message CipherTypeWrapper {
+  v2ray.core.proxy.shadowsocks.CipherType value = 1;
 }
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/v2ray-core-5.7.0/proxy/shadowsocks/simplified/errors.generated.go 
new/v2ray-core-5.8.0/proxy/shadowsocks/simplified/errors.generated.go
--- old/v2ray-core-5.7.0/proxy/shadowsocks/simplified/errors.generated.go       
1970-01-01 01:00:00.000000000 +0100
+++ new/v2ray-core-5.8.0/proxy/shadowsocks/simplified/errors.generated.go       
2023-10-06 22:45:26.000000000 +0200
@@ -0,0 +1,9 @@
+package simplified
+
+import "github.com/v2fly/v2ray-core/v5/common/errors"
+
+type errPathObjHolder struct{}
+
+func newError(values ...interface{}) *errors.Error {
+       return errors.New(values...).WithPathObj(errPathObjHolder{})
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/release/friendly-filenames.json 
new/v2ray-core-5.8.0/release/friendly-filenames.json
--- old/v2ray-core-5.7.0/release/friendly-filenames.json        2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/release/friendly-filenames.json        2023-10-06 
22:45:26.000000000 +0200
@@ -18,6 +18,7 @@
   "linux-mipsle": { "friendlyName": "linux-mips32le" },
   "linux-mips": { "friendlyName": "linux-mips32" },
   "linux-riscv64": { "friendlyName": "linux-riscv64" },
+  "linux-loong64": { "friendlyName": "linux-loong64" },
   "openbsd-386": { "friendlyName": "openbsd-32" },
   "openbsd-amd64": { "friendlyName": "openbsd-64" },
   "openbsd-arm6": { "friendlyName": "openbsd-arm32-v6" },
@@ -28,4 +29,4 @@
   "windows-arm64": { "friendlyName": "windows-arm64-v8a" },
   "windows-arm7": { "friendlyName": "windows-arm32-v7a" },
   "android-arm64": { "friendlyName": "android-arm64-v8a" }
-}
\ No newline at end of file
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/release/user-package.sh 
new/v2ray-core-5.8.0/release/user-package.sh
--- old/v2ray-core-5.7.0/release/user-package.sh        2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/release/user-package.sh        2023-10-06 
22:45:26.000000000 +0200
@@ -95,7 +95,7 @@
 
 for arg in "$@"; do
        case $arg in
-       386 | arm* | mips* | ppc64* | riscv64 | s390x)
+       386 | arm* | mips* | ppc64* | riscv64 | loong64 | s390x)
                GOARCH=$arg
                ;;
        windows)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/transport/internet/quic/dialer.go 
new/v2ray-core-5.8.0/transport/internet/quic/dialer.go
--- old/v2ray-core-5.7.0/transport/internet/quic/dialer.go      2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/transport/internet/quic/dialer.go      2023-10-06 
22:45:26.000000000 +0200
@@ -150,7 +150,6 @@
        }
 
        quicConfig := &quic.Config{
-               ConnectionIDLength:   12,
                HandshakeIdleTimeout: time.Second * 8,
                MaxIdleTimeout:       time.Second * 30,
                KeepAlivePeriod:      time.Second * 15,
@@ -162,7 +161,12 @@
                return nil, err
        }
 
-       conn, err := quic.DialContext(context.Background(), sysConn, destAddr, 
"", tlsConfig.GetTLSConfig(tls.WithDestination(dest)), quicConfig)
+       tr := quic.Transport{
+               Conn:               sysConn,
+               ConnectionIDLength: 12,
+       }
+
+       conn, err := tr.Dial(context.Background(), destAddr, 
tlsConfig.GetTLSConfig(tls.WithDestination(dest)), quicConfig)
        if err != nil {
                sysConn.Close()
                return nil, err
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/v2ray-core-5.7.0/transport/internet/quic/hub.go 
new/v2ray-core-5.8.0/transport/internet/quic/hub.go
--- old/v2ray-core-5.7.0/transport/internet/quic/hub.go 2023-05-31 
11:45:19.000000000 +0200
+++ new/v2ray-core-5.8.0/transport/internet/quic/hub.go 2023-10-06 
22:45:26.000000000 +0200
@@ -17,7 +17,7 @@
 // Listener is an internet.Listener that listens for TCP connections.
 type Listener struct {
        rawConn  *sysConn
-       listener quic.Listener
+       listener *quic.Listener
        done     *done.Instance
        addConn  internet.ConnHandler
 }
@@ -102,7 +102,6 @@
        }
 
        quicConfig := &quic.Config{
-               ConnectionIDLength:    12,
                HandshakeIdleTimeout:  time.Second * 8,
                MaxIdleTimeout:        time.Second * 45,
                MaxIncomingStreams:    32,
@@ -116,7 +115,12 @@
                return nil, err
        }
 
-       qListener, err := quic.Listen(conn, tlsConfig.GetTLSConfig(), 
quicConfig)
+       tr := quic.Transport{
+               Conn:               conn,
+               ConnectionIDLength: 12,
+       }
+
+       qListener, err := tr.Listen(tlsConfig.GetTLSConfig(), quicConfig)
        if err != nil {
                conn.Close()
                return nil, err
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/v2ray-core-5.7.0/transport/internet/request/roundtripper/httprt/httprt.go 
new/v2ray-core-5.8.0/transport/internet/request/roundtripper/httprt/httprt.go
--- 
old/v2ray-core-5.7.0/transport/internet/request/roundtripper/httprt/httprt.go   
    2023-05-31 11:45:19.000000000 +0200
+++ 
new/v2ray-core-5.8.0/transport/internet/request/roundtripper/httprt/httprt.go   
    2023-10-06 22:45:26.000000000 +0200
@@ -75,8 +75,7 @@
        listener net.Listener
        assembly request.TransportServerAssembly
 
-       listenAddress net.Addr
-       config        *ServerConfig
+       config *ServerConfig
 }
 
 func (h *httpTripperServer) OnTransportServerAssemblyReady(assembly 
request.TransportServerAssembly) {

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/v2ray-core/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.v2ray-core.new.24901/vendor.tar.gz differ: char 13, 
line 1

Reply via email to