Merge pull request #29461 from podman-container-tools/renovate/golang.org-x-crypto-0.x

Update module golang.org/x/crypto to v0.55.0
This commit is contained in:
Matt Heon 2026-08-11 18:03:48 -04:00 • committed by GitHub
commit 86bf912fc5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 670 additions and 446 deletions

8
go.mod
View file

@ -68,7 +68,7 @@ require (
go.podman.io/common v0.69.0
go.podman.io/image/v5 v5.41.0
go.podman.io/storage v1.64.0
golang.org/x/crypto v0.54.0
golang.org/x/crypto v0.55.0
golang.org/x/net v0.57.0
golang.org/x/sync v0.22.0
golang.org/x/sys v0.47.0
@ -182,10 +182,10 @@ require (
go.opentelemetry.io/otel/trace v1.44.0 // indirect
go.yaml.in/yaml/v2 v2.4.4 // indirect
go.yaml.in/yaml/v3 v3.0.5 // indirect
golang.org/x/mod v0.37.0 // indirect
golang.org/x/mod v0.38.0 // indirect
golang.org/x/oauth2 v0.36.0 // indirect
golang.org/x/text v0.40.0 // indirect
golang.org/x/tools v0.47.0 // indirect
golang.org/x/text v0.41.0 // indirect
golang.org/x/tools v0.48.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect

16
go.sum
View file

@ -453,8 +453,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M=
golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw=
golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk=
golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M=
golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis=
golang.org/x/exp v0.0.0-20260603202125-055de637280b h1:v1uXiEBHo8QA0LiGCo7UgHMzHT4Kdfpl2zmtH5vaP1Q=
golang.org/x/exp v0.0.0-20260603202125-055de637280b/go.mod h1:d2fgXJLVs4dYDHUk5lwMIfzRzSrWCfGZb0ZqeLa/Vcw=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
@ -463,8 +463,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ=
golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0=
golang.org/x/mod v0.38.0 h1:MECBjubtXD7yj4HrhIUcywNaGeNVUdfVnxmPajOk4yk=
golang.org/x/mod v0.38.0/go.mod h1:V6Xz0pq8TQ3dGqVQ1FVHuelZpAL0uNhSkk9ogYP3c40=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
@ -534,8 +534,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs=
golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY=
golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8=
golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
@ -543,8 +543,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q=
golang.org/x/tools v0.47.0/go.mod h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA=
golang.org/x/tools v0.48.0 h1:3+hClM1aLL5mjMKm5ovokw9epgRXPuu2tILgismM6RE=
golang.org/x/tools v0.48.0/go.mod h1:08xX0orndb/F7jJxGDicx061tyd5pcMto75YMAXr6lk=
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-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

View file

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build (!amd64 && !loong64 && !ppc64le && !ppc64 && !s390x) || !gc || purego
//go:build (!amd64 && !loong64 && !ppc64le && !ppc64 && !riscv64 && !s390x) || !gc || purego
package poly1305

View file

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build gc && !purego && (amd64 || loong64 || ppc64 || ppc64le)
//go:build gc && !purego && (amd64 || loong64 || ppc64 || ppc64le || riscv64)
package poly1305

View file

@ -0,0 +1,158 @@
// Copyright 2026 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build gc && !purego
#define LOAD64U(base, offset, t0, t1, t2, t3, dst) \
MOVBU (offset+0*1)(base), t0; \
MOVBU (offset+1*1)(base), t1; \
MOVBU (offset+2*1)(base), t2; \
MOVBU (offset+3*1)(base), t3; \
SLL $8, t1; \
SLL $16, t2; \
SLL $24, t3; \
OR t1, t0; \
OR t3, t2; \
OR t2, t0, dst; \
MOVBU (offset+4*1)(base), t0; \
MOVBU (offset+5*1)(base), t1; \
MOVBU (offset+6*1)(base), t2; \
MOVBU (offset+7*1)(base), t3; \
SLL $32, t0; \
SLL $40, t1; \
SLL $48, t2; \
SLL $56, t3; \
OR t1, t0; \
OR t3, t2; \
OR t2, t0; \
OR t0, dst
// func update(state *macState, msg []byte)
TEXT ·update(SB), $0-32
MOV state+0(FP), X5
MOV msg_base+8(FP), X6
MOV msg_len+16(FP), X7
MOV $16, X8
AND $7, X6, X28
MOV (0*8)(X5), X9 // h0
MOV (1*8)(X5), X10 // h1
MOV (2*8)(X5), X11 // h2
MOV (3*8)(X5), X12 // r0
MOV (4*8)(X5), X13 // r1
BLT X7, X8, tail
loop:
BEQZ X28, aligned_load
LOAD64U(X6, 0*8, X16, X18, X19, X20, X15) // msg[0:8]
LOAD64U(X6, 1*8, X16, X18, X19, X20, X17) // msg[8:16]
JMP block
aligned_load:
MOV (0*8)(X6), X15 // msg[0:8]
MOV (1*8)(X6), X17 // msg[8:16]
block:
ADD X15, X9 // h0 (x1 + y1 = z1', if z1' < x1 then z1' overflow)
SLTU X15, X9, X19 // h0.carry
ADD X17, X10, X22
SLTU X17, X22, X23
ADD X22, X19, X10 // h1
SLTU X22, X10, X19
OR X23, X19 // h1.carry
ADD $1, X19
ADD X19, X11 // h2
ADD $16, X6 // msg = msg[16:]
multiply:
MULHU X9, X12, X16 // h0r0.hi
MUL X9, X12, X15 // h0r0.lo
MULHU X10, X12, X17 // h1r0.hi
MUL X10, X12, X14 // h1r0.lo
ADD X14, X16
SLTU X14, X16, X19
ADD X19, X17
MUL X11, X12, X20
ADD X17, X20
MULHU X9, X13, X17 // h0r1.hi
MUL X9, X13, X14 // h0r1.lo
ADD X14, X16
SLTU X14, X16, X19
ADD X19, X17
MOV X17, X9
MUL X11, X13, X21 // h2r1
MULHU X10, X13, X17 // h1r1.hi
MUL X10, X13, X14 // h1r1.lo
ADD X14, X20
ADD X17, X21, X22
SLTU X14, X20, X19
ADD X22, X19, X21
ADD X9, X20
SLTU X9, X20, X19
ADD X19, X21
AND $3, X20, X11
AND $-4, X20, X18
ADD X18, X15, X9
ADD X21, X16, X22
SLTU X18, X9, X19
SLTU X21, X22, X23
ADD X22, X19, X10
SLTU X22, X10, X19
OR X19, X23, X19
ADD X19, X11
SLL $62, X21, X22
SRL $2, X20, X23
SRL $2, X21, X21
OR X22, X23, X20
ADD X20, X9, X9
ADD X21, X10, X22
SLTU X20, X9, X19
SLTU X21, X22, X23
ADD X22, X19, X10
SLTU X22, X10, X19
OR X19, X23, X19
ADD X19, X11, X11
SUB $16, X7, X7
BGE X7, X8, loop
tail:
BEQ X7, X0, done
MOV $1, X15
MOV $0, X16
ADD X7, X6, X6
flush_buffer:
MOVBU -1(X6), X20
SRL $56, X15, X19
SLL $8, X16, X23
SLL $8, X15, X15
OR X19, X23, X16
XOR X20, X15
SUB $1, X7, X7
SUB $1, X6, X6
BNE X7, X0, flush_buffer
ADD X15, X9
SLTU X15, X9, X19
ADD X16, X10, X22
SLTU X16, X22, X23
ADD X22, X19, X10
SLTU X22, X10, X19
OR X23, X19
ADD X19, X11
MOV $16, X7
JMP multiply
done:
MOV X9, (0*8)(X5) // h0
MOV X10, (1*8)(X5)
MOV X11, (2*8)(X5)
RET

View file

@ -104,7 +104,7 @@ func (r *keyring) Unlock(passphrase []byte) error {
if !r.locked {
return errors.New("agent: not locked")
}
if 1 != subtle.ConstantTimeCompare(passphrase, r.passphrase) {
if subtle.ConstantTimeCompare(passphrase, r.passphrase) != 1 {
return fmt.Errorf("agent: incorrect passphrase")
}

View file

@ -246,10 +246,10 @@ func setConstraints(key *AddedKey, constraintBytes []byte) error {
// on arbitrary inputs; the CRT coefficient recomputation is cubic in
// |p| and can consume excessive CPU on oversized keys.
func checkRSAKeyParams(N, E, P, Q *big.Int) error {
if N.BitLen() > 8192 {
if N.BitLen() > 16384 {
return errors.New("agent: RSA modulus too large")
}
if P.BitLen() > 4096 || Q.BitLen() > 4096 {
if P.BitLen() > 8192 || Q.BitLen() > 8192 {
return errors.New("agent: RSA prime too large")
}
if E.BitLen() > 24 {

View file

@ -229,15 +229,20 @@ func parseCert(in []byte, privAlgo string) (*Certificate, error) {
return nil, err
}
c.Reserved = g.Reserved
// Reject a certificate whose signature key is itself a certificate before
// parsing it. Certificates signed by certificates are not supported (see
// PROTOCOL.certkeys), and rejecting after ParsePublicKey returns would allow
// a chain of nested certificates to recurse once per level, exhausting the
// goroutine stack.
if sigAlgo, _, ok := parseString(g.SignatureKey); !ok {
return nil, errShortRead
} else if _, ok := certKeyAlgoNames[string(sigAlgo)]; ok {
return nil, fmt.Errorf("ssh: the signature key type %q is invalid for certificates", sigAlgo)
}
k, err := ParsePublicKey(g.SignatureKey)
if err != nil {
return nil, err
}
// The Type() function is intended to return only certificate key types, but
// we use certKeyAlgoNames anyway for safety, to match [Certificate.Type].
if _, ok := certKeyAlgoNames[k.Type()]; ok {
return nil, fmt.Errorf("ssh: the signature key type %q is invalid for certificates", k.Type())
}
c.SignatureKey = k
c.Signature, rest, ok = parseSignatureBody(g.Signature)
if !ok || len(rest) > 0 {

View file

@ -216,6 +216,10 @@ type channel struct {
// packetPool has a buffer for each extended channel ID to
// save allocations during writes.
packetPool map[uint32][]byte
// closeOnce guards close so it is idempotent: closing the internal Go
// channels (msg, incomingRequests) more than once would panic.
closeOnce sync.Once
}
// writePacket sends a packet. If the packet is a channel close, it updates
@ -340,7 +344,18 @@ func (ch *channel) handleData(packet []byte) error {
if extended == 1 {
ch.extPending.write(data)
} else if extended > 0 {
// discard other extended data.
// RFC 4254, Section 5.2 defines no extended data types other
// than stderr (type 1, handled above) and this package provides
// no API to read them, so the data is discarded. Credit its
// window back immediately: it can never be read, so the
// deduction above would otherwise shrink the window permanently.
// adjustWindow returns io.EOF if the local side has already
// sent a channel close; ignore it like ReadExtended does, since
// an error returned here would terminate the mux read loop and
// tear down the whole connection.
if err := ch.adjustWindow(length); err != nil && err != io.EOF {
return err
}
} else {
ch.pending.write(data)
}
@ -393,17 +408,19 @@ func (c *channel) ReadExtended(data []byte, extended uint32) (n int, err error)
}
func (c *channel) close() {
c.pending.eof()
c.extPending.eof()
close(c.msg)
close(c.incomingRequests)
c.writeMu.Lock()
// This is not necessary for a normal channel teardown, but if
// there was another error, it is.
c.sentClose = true
c.writeMu.Unlock()
// Unblock writers.
c.remoteWin.close()
c.closeOnce.Do(func() {
c.pending.eof()
c.extPending.eof()
close(c.msg)
close(c.incomingRequests)
c.writeMu.Lock()
// This is not necessary for a normal channel teardown, but if
// there was another error, it is.
c.sentClose = true
c.writeMu.Unlock()
// Unblock writers.
c.remoteWin.close()
})
}
// responseMessageReceived is called when a success or failure message is
@ -493,19 +510,20 @@ func (ch *channel) handlePacket(packet []byte) error {
func (m *mux) newChannel(chanType string, direction channelDirection, extraData []byte) *channel {
ch := &channel{
remoteWin: window{Cond: newCond()},
myWindow: channelWindowSize,
pending: newBuffer(),
extPending: newBuffer(),
direction: direction,
incomingRequests: make(chan *Request, chanSize),
msg: make(chan interface{}, chanSize),
chanType: chanType,
extraData: extraData,
mux: m,
packetPool: make(map[uint32][]byte),
remoteWin: window{Cond: newCond()},
myWindow: channelWindowSize,
maxIncomingPayload: channelMaxPacket,
pending: newBuffer(),
extPending: newBuffer(),
direction: direction,
incomingRequests: make(chan *Request, chanSize),
msg: make(chan interface{}, chanSize),
chanType: chanType,
extraData: extraData,
mux: m,
packetPool: make(map[uint32][]byte),
}
ch.localId = m.chanList.add(ch)
m.chanList.add(ch)
return ch
}
@ -529,7 +547,6 @@ func (ch *channel) Accept() (Channel, <-chan *Request, error) {
if ch.decided {
return nil, nil, errDecidedAlready
}
ch.maxIncomingPayload = channelMaxPacket
confirm := channelOpenConfirmMsg{
PeersID: ch.remoteId,
MyID: ch.localId,

View file

@ -798,7 +798,7 @@ func (g *gssAPIWithMICCallback) auth(session []byte, user string, c packetConn,
return authFailure, nil, fmt.Errorf("GSS-API Error:\n"+
"Major Status: %d\n"+
"Minor Status: %d\n"+
"Error Message: %s\n", userAuthGSSAPIErrorResp.MajorStatus, userAuthGSSAPIErrorResp.MinorStatus,
"Error Message: %q\n", userAuthGSSAPIErrorResp.MajorStatus, userAuthGSSAPIErrorResp.MinorStatus,
userAuthGSSAPIErrorResp.Message)
case msgUserAuthGSSAPIToken:
userAuthGSSAPITokenReq := &userAuthGSSAPIToken{}

View file

@ -419,7 +419,7 @@ type AlgorithmNegotiationError struct {
}
func (a *AlgorithmNegotiationError) Error() string {
return fmt.Sprintf("ssh: no common algorithm for %s; we offered: %v, peer offered: %v",
return fmt.Sprintf("ssh: no common algorithm for %s; we offered: %q, peer offered: %q",
a.What, a.SupportedAlgorithms, a.RequestedAlgorithms)
}
@ -544,7 +544,7 @@ func (c *Config) SetDefaults() {
if c.Rand == nil {
c.Rand = rand.Reader
}
if c.Ciphers == nil {
if len(c.Ciphers) == 0 {
c.Ciphers = defaultCiphers
}
var ciphers []string
@ -556,7 +556,7 @@ func (c *Config) SetDefaults() {
}
c.Ciphers = ciphers
if c.KeyExchanges == nil {
if len(c.KeyExchanges) == 0 {
c.KeyExchanges = defaultKexAlgos
}
var kexs []string
@ -571,7 +571,7 @@ func (c *Config) SetDefaults() {
}
c.KeyExchanges = kexs
if c.MACs == nil {
if len(c.MACs) == 0 {
c.MACs = defaultMACs
}
var macs []string

View file

@ -17,7 +17,7 @@ type OpenChannelError struct {
}
func (e *OpenChannelError) Error() string {
return fmt.Sprintf("ssh: rejected: %s (%s)", e.Reason, e.Message)
return fmt.Sprintf("ssh: rejected: %s (%q)", e.Reason, e.Message)
}
// ConnMetadata holds metadata for the connection.

View file

@ -162,7 +162,7 @@ func newClientTransport(conn keyingTransport, clientVersion, serverVersion []byt
t.remoteAddr = addr
t.hostKeyCallback = config.HostKeyCallback
t.bannerCallback = config.BannerCallback
if config.HostKeyAlgorithms != nil {
if len(config.HostKeyAlgorithms) > 0 {
t.hostKeyAlgorithms = config.HostKeyAlgorithms
} else {
t.hostKeyAlgorithms = defaultHostKeyAlgos

View file

@ -485,10 +485,11 @@ func parseRSA(in []byte) (out PublicKey, rest []byte, err error) {
return nil, nil, err
}
// 8192 bits is also the maximum RSA key size accepted by crypto/tls for
// signature verification:
// https://github.com/golang/go/blob/69801b25/src/crypto/tls/handshake_client.go#L1096
if w.N.BitLen() > 8192 {
// 16384 bits is the largest RSA key OpenSSH will generate (ssh-keygen
// caps -b at 16384), so it is the practical upper bound for keys seen on
// the wire. Rejecting anything larger bounds the CPU spent verifying an
// attacker-supplied key and signature, mitigating a denial of service.
if w.N.BitLen() > 16384 {
return nil, nil, errors.New("ssh: rsa modulus too large")
}
if w.E.BitLen() > 24 {
@ -1669,13 +1670,13 @@ func parseOpenSSHPrivateKey(key []byte, decrypt openSSHDecryptFunc) (crypto.Priv
}
// Mirror the validation done in parseRSA for public keys: cap the
// modulus at the same limit enforced by crypto/tls, reject oversized
// or invalid exponents, and additionally bound the prime factors to
// modulus at the OpenSSH-generated maximum, reject oversized or
// invalid exponents, and additionally bound the prime factors to
// avoid the expensive CRT coefficient recomputation in pk.Precompute.
if key.N.BitLen() > 8192 {
if key.N.BitLen() > 16384 {
return nil, errors.New("ssh: rsa modulus too large")
}
if key.P.BitLen() > 4096 || key.Q.BitLen() > 4096 {
if key.P.BitLen() > 8192 || key.Q.BitLen() > 8192 {
return nil, errors.New("ssh: rsa prime too large")
}
if key.E.BitLen() > 24 {

View file

@ -44,16 +44,7 @@ type disconnectMsg struct {
}
func (d *disconnectMsg) Error() string {
return fmt.Sprintf("ssh: disconnect, reason %d: %q", d.Reason, sanitizeString(d.Message))
}
func sanitizeString(s string) string {
return strings.Map(func(r rune) rune {
if r == '\t' || (r >= ' ' && r < 0x7f) {
return r
}
return -1
}, s)
return fmt.Sprintf("ssh: disconnect, reason %d: %q", d.Reason, d.Message)
}
// See RFC 4253, section 7.1.

View file

@ -32,18 +32,21 @@ type chanList struct {
offset uint32
}
// Assigns a channel ID to the given channel.
func (c *chanList) add(ch *channel) uint32 {
// add stores the given channel and assigns its localId while holding the
// lock, so that getChan can never return a channel whose localId is not yet
// initialized.
func (c *chanList) add(ch *channel) {
c.Lock()
defer c.Unlock()
for i := range c.chans {
if c.chans[i] == nil {
c.chans[i] = ch
return uint32(i) + c.offset
ch.localId = uint32(i) + c.offset
return
}
}
c.chans = append(c.chans, ch)
return uint32(len(c.chans)-1) + c.offset
ch.localId = uint32(len(c.chans)-1) + c.offset
}
// getChan returns the channel for the given ID.
@ -343,8 +346,6 @@ func (m *mux) OpenChannel(chanType string, extra []byte) (Channel, <-chan *Reque
func (m *mux) openChannel(chanType string, extra []byte) (*channel, error) {
ch := m.newChannel(chanType, channelOutbound, extra)
ch.maxIncomingPayload = channelMaxPacket
open := channelOpenMsg{
ChanType: chanType,
PeersWindow: ch.myWindow,

View file

@ -26,10 +26,16 @@ type Permissions struct {
// defines "force-command" (only allow the given command to
// execute) and "source-address" (only allow connections from
// the given address). The SSH package currently only enforces
// the "source-address" critical option. It is up to server
// implementations to enforce other critical options, such as
// "force-command", by checking them after the SSH handshake
// is successful. In general, SSH servers should reject
// the "source-address" critical option: it is validated against
// the client's remote address whenever it is present in the
// Permissions returned by any authentication callback. Its value
// is a comma-separated list of IP addresses and CIDR blocks;
// consistently with OpenSSH, a connection whose remote address is
// not an IP address, such as a Unix domain socket, never matches
// the list and is rejected when the option is present. It is up
// to server implementations to enforce other critical options,
// such as "force-command", by checking them after the SSH
// handshake is successful. In general, SSH servers should reject
// connections that specify critical options that are unknown
// or not supported.
CriticalOptions map[string]string
@ -223,7 +229,9 @@ type ServerConfig struct {
// Permissions object can be the same object, optionally modified, or a
// completely new object. If VerifiedPublicKeyCallback is non-nil,
// PublicKeyCallback is not allowed to return a PartialSuccessError, which
// can instead be returned by VerifiedPublicKeyCallback.
// can instead be returned by VerifiedPublicKeyCallback. The
// signatureAlgorithm argument is the format of the signature that was
// successfully verified.
//
// VerifiedPublicKeyCallback does not affect which authentication methods
// are included in the list of methods that can be attempted by the client.
@ -442,6 +450,10 @@ func (s *connection) serverHandshake(config *ServerConfig) (*Permissions, error)
return perms, err
}
// checkSourceAddress matches addr against sourceAddrs, a comma-separated list
// of IP addresses and CIDR blocks. Consistently with OpenSSH, a remote address
// that is not IP-based, such as a Unix domain socket, never matches the list
// and is rejected.
func checkSourceAddress(addr net.Addr, sourceAddrs string) error {
if addr == nil {
return errors.New("ssh: no address known for client, but source-address match required")
@ -449,7 +461,7 @@ func checkSourceAddress(addr net.Addr, sourceAddrs string) error {
tcpAddr, ok := addr.(*net.TCPAddr)
if !ok {
return fmt.Errorf("ssh: remote address %v is not an TCP address when checking source-address match", addr)
return fmt.Errorf("ssh: remote address %v is not a TCP address when checking source-address match", addr)
}
for _, sourceAddr := range strings.Split(sourceAddrs, ",") {
@ -472,6 +484,21 @@ func checkSourceAddress(addr net.Addr, sourceAddrs string) error {
return fmt.Errorf("ssh: remote address %v is not allowed because of source-address restriction", addr)
}
// checkSourceAddressCriticalOption enforces the source-address critical
// option, if present in perms, as documented in Permissions.CriticalOptions.
// A present but empty value matches no address, so it denies authentication,
// consistently with OpenSSH, rather than being treated as absent.
func checkSourceAddressCriticalOption(addr net.Addr, perms *Permissions) error {
if perms == nil {
return nil
}
saco, ok := perms.CriticalOptions[sourceAddressCriticalOption]
if !ok {
return nil
}
return checkSourceAddress(addr, saco)
}
func gssExchangeToken(gssapiConfig *GSSAPIWithMICConfig, token []byte, s *connection,
sessionID []byte, userAuthReq userAuthRequestMsg) (authErr error, perms *Permissions, err error) {
gssAPIServer := gssapiConfig.Server
@ -685,7 +712,7 @@ userAuthLoop:
}
if userAuthReq.Service != serviceSSH {
return nil, errors.New("ssh: client attempted to negotiate for unknown service: " + userAuthReq.Service)
return nil, fmt.Errorf("ssh: client attempted to negotiate for unknown service: %q", userAuthReq.Service)
}
if s.user != userAuthReq.User && partialSuccessReturned {
@ -771,7 +798,8 @@ userAuthLoop:
pubKey, err := ParsePublicKey(pubKeyData)
if err != nil {
return nil, err
authErr = err
break
}
candidate, ok := cache.get(s.user, pubKeyData)
@ -784,13 +812,14 @@ userAuthLoop:
return nil, errors.New("ssh: invalid library usage: PublicKeyCallback must not return partial success when VerifiedPublicKeyCallback is defined")
}
if (candidate.result == nil || isPartialSuccessError) &&
candidate.perms != nil &&
candidate.perms.CriticalOptions != nil &&
candidate.perms.CriticalOptions[sourceAddressCriticalOption] != "" {
if err := checkSourceAddress(
s.RemoteAddr(),
candidate.perms.CriticalOptions[sourceAddressCriticalOption]); err != nil {
// This check is authoritative for the Permissions returned by
// PublicKeyCallback: the check at the end of the auth loop sees
// the final Permissions, which VerifiedPublicKeyCallback may
// have replaced, and is skipped on partial success. It also
// makes public key queries fail before the client signs when
// PublicKeyCallback supplies the restriction.
if candidate.result == nil || isPartialSuccessError {
if err := checkSourceAddressCriticalOption(s.RemoteAddr(), candidate.perms); err != nil {
candidate.result = err
}
}
@ -864,14 +893,7 @@ userAuthLoop:
// Only call VerifiedPublicKeyCallback after the key has been accepted
// and successfully verified. If authErr is non-nil, the key is not
// considered verified and the callback must not run.
perms, authErr = config.VerifiedPublicKeyCallback(s, pubKey, perms, algo)
}
if authErr == nil && perms != nil && perms.CriticalOptions != nil {
if saco := perms.CriticalOptions[sourceAddressCriticalOption]; saco != "" {
if err := checkSourceAddress(s.RemoteAddr(), saco); err != nil {
authErr = err
}
}
perms, authErr = config.VerifiedPublicKeyCallback(s, pubKey, perms, sig.Format)
}
}
case "gssapi-with-mic":
@ -925,6 +947,17 @@ userAuthLoop:
authErr = fmt.Errorf("ssh: unknown method %q", userAuthReq.Method)
}
// The source-address critical option is enforced on the Permissions
// returned by any authentication callback. Permissions returned
// together with a PartialSuccessError skip this check: that is safe
// because they are required to be nil, as enforced in the partial
// success handling below.
if authErr == nil {
if err := checkSourceAddressCriticalOption(s.RemoteAddr(), perms); err != nil {
authErr = err
}
}
authErrs = append(authErrs, authErr)
if config.AuthLogCallback != nil {

View file

@ -118,24 +118,28 @@ func parseGSSAPIPayload(payload []byte) (*userAuthRequestGSSAPI, error) {
OIDS: make([]asn1.ObjectIdentifier, n),
}
for i := 0; i < int(n); i++ {
var (
desiredMech []byte
err error
)
var desiredMech []byte
desiredMech, rest, ok = parseString(rest)
if !ok {
return nil, errors.New("parse string failed")
}
if rest, err = asn1.Unmarshal(desiredMech, &s.OIDS[i]); err != nil {
trailing, err := asn1.Unmarshal(desiredMech, &s.OIDS[i])
if err != nil {
return nil, err
}
if len(trailing) != 0 {
return nil, errors.New("trailing bytes after OID")
}
}
if len(rest) != 0 {
return nil, errors.New("trailing bytes after mechanisms")
}
return s, nil
}
// See RFC 4462 section 3.6.
func buildMIC(sessionID string, username string, service string, authMethod string) []byte {
out := make([]byte, 0, 0)
out := make([]byte, 0)
out = appendString(out, sessionID)
out = append(out, msgUserAuthRequest)
out = appendString(out, username)

View file

@ -58,6 +58,7 @@ func (c *Client) dialStreamLocal(socketPath string) (Channel, error) {
return nil, err
}
go DiscardRequests(in)
go io.Copy(io.Discard, ch.Stderr())
return ch, err
}
@ -79,6 +80,7 @@ func (l *unixListener) Accept() (net.Conn, error) {
return nil, err
}
go DiscardRequests(incoming)
go io.Copy(io.Discard, ch.Stderr())
return &chanConn{
Channel: ch,

View file

@ -332,6 +332,7 @@ func (l *tcpListener) Accept() (net.Conn, error) {
return nil, err
}
go DiscardRequests(incoming)
go io.Copy(io.Discard, ch.Stderr())
return &chanConn{
Channel: ch,
@ -495,6 +496,7 @@ func (c *Client) dial(laddr string, lport int, raddr string, rport int) (Channel
return nil, err
}
go DiscardRequests(in)
go io.Copy(io.Discard, ch.Stderr())
return ch, nil
}

View file

@ -30,6 +30,7 @@ import (
"slices"
"strconv"
"strings"
"sync"
"golang.org/x/tools/internal/typesinternal"
)
@ -126,7 +127,8 @@ func For(obj types.Object) (Path, error) {
// An Encoder amortizes the cost of encoding the paths of multiple objects.
// The zero value of an Encoder is ready to use.
type Encoder struct {
pkgIndex map[*types.Package]*pkgIndex
pkgIndexMu sync.Mutex
pkgIndex map[*types.Package]*pkgIndex
}
// A traversal encapsulates the state of a single traversal of the object/type graph.
@ -191,6 +193,8 @@ type pkgIndex struct {
// For returns the path to an object relative to its package,
// or an error if the object is not accessible from the package's Scope.
//
// For is safe for concurrent use.
//
// The For function guarantees to return a path only for the following objects:
// - package-level types
// - exported package-level non-types
@ -320,6 +324,9 @@ func (enc *Encoder) For(obj types.Object) (Path, error) {
panic(obj)
}
enc.pkgIndexMu.Lock()
defer enc.pkgIndexMu.Unlock()
// 4. Search the object/type graph for the path to
// the var (field/param/result) or method.
ix, ok := enc.pkgIndex[pkg]

View file

@ -12,386 +12,387 @@ type pkginfo struct {
}
var deps = [...]pkginfo{
{"archive/tar", "\x03{\x03F>\x01\n\x01&\x01\x01\x02\x05\b\x02\x01\x02\x02\r"},
{"archive/zip", "\x02\x04j\x0e\x03\x12\x022>\x01-\x05\x01\x0f\x03\x02\x0f\x04"},
{"bufio", "\x03{\x87\x01F\x15"},
{"bytes", "~*]\x03\fJ\x02\x02"},
{"archive/tar", "\x03|\x03F>\x01\n\x01&\x01\x01\x02\x05\b\x02\x01\x02\x02\r"},
{"archive/zip", "\x02\x04k\x0e\x03\x12\x022>\x01-\x05\x01\x0f\x03\x02\x0f\x04"},
{"bufio", "\x03|\x87\x01F\x15"},
{"bytes", "\x7f*]\x03\fJ\x02\x02"},
{"cmp", ""},
{"compress/bzip2", "\x02\x02\x81\x02C"},
{"compress/flate", "\x02|\x03\x84\x01\f\x034\x02\x03"},
{"compress/gzip", "\x02\x04j\x0e\x03\x14pW"},
{"compress/lzw", "\x02|\x03\x84\x01"},
{"compress/zlib", "\x02\x04j\x0e\x03\x12\x01q"},
{"container/heap", "\xc9\x02"},
{"compress/bzip2", "\x02\x02\x82\x02C"},
{"compress/flate", "\x02}\x03\x84\x01\f\x034\x02\x03"},
{"compress/gzip", "\x02\x04k\x0e\x03\x14pW"},
{"compress/lzw", "\x02}\x03\x84\x01"},
{"compress/zlib", "\x02\x04k\x0e\x03\x12\x01q"},
{"container/heap", "\xca\x02"},
{"container/list", ""},
{"container/ring", ""},
{"context", "~]r\x01\x0e"},
{"crypto", "\x93\x01rE"},
{"crypto/aes", "\x10\v\n\xa5\x02"},
{"crypto/cipher", "\x03\"\x01\x01 \x13$+\\"},
{"crypto/des", "\x10\x17 7+\xa1\x01\x03"},
{"crypto/dsa", "G\x034\x87\x01\r"},
{"crypto/ecdh", "\x03\v\r\x11\x04\x17\x03\x10$\x87\x01"},
{"crypto/ecdsa", "\x0e\x05\x03\x05\x01\x11\b\v\x06\x01\x03\x0f\x01$\x87\x01\r\x05O\x01"},
{"crypto/ed25519", "\x0e \x12\a\x03\t\a$I>E"},
{"crypto/elliptic", "5I\x87\x01\r;"},
{"crypto/fips140", "$\x05\x9e\x01\x9b\x01"},
{"crypto/hkdf", "1\x15\x017\x15"},
{"crypto/hmac", "\x1b\x17\x14\x01\x139"},
{"crypto/hpke", "\x03\v\x02\x03\x04\x01\r\x01\x05\x1f\x06\a\x01\x01%\x03\x12\x16\x9f\x01\x1d"},
{"crypto/internal/boring", "\x0e\x02\x0eu"},
{"crypto/internal/boring/bbig", "\x1b\xf7\x01P"},
{"crypto/internal/boring/bcache", "\xce\x02\x14"},
{"context", "\x7f]r\x01\x0e"},
{"crypto", "\x94\x01rE"},
{"crypto/aes", "\x10\v\v\xa5\x02"},
{"crypto/cipher", "\x03#\x01\x01 \x13$+\\"},
{"crypto/des", "\x10\x18 7+\xa1\x01\x03"},
{"crypto/dsa", "H\x034\x87\x01\r"},
{"crypto/ecdh", "\x03\v\r\x12\x04\x17\x03\x10$\x87\x01"},
{"crypto/ecdsa", "\x0e\x05\x03\x05\x01\x12\b\v\x06\x01\x03\x0f\x01$\x87\x01\r\x05O\x01"},
{"crypto/ed25519", "\x0e!\x12\a\x03\t\a$I>E"},
{"crypto/elliptic", "6I\x87\x01\r;"},
{"crypto/fips140", "%\x05\x9e\x01\x9b\x01"},
{"crypto/hkdf", "2\x15\x017\x15"},
{"crypto/hmac", "\x1b\x18\x14\x01\x139"},
{"crypto/hpke", "\x03\v\x02\x03\x04\x01\x0e\x01\x05\x1f\x06\a\x01\x01%\x03\x12\x16\x9f\x01\x1d"},
{"crypto/internal/boring", "\x0e\x02\x0ev"},
{"crypto/internal/boring/bbig", "\x1b\xf8\x01P"},
{"crypto/internal/boring/bcache", "\xcf\x02\x14"},
{"crypto/internal/boring/sig", ""},
{"crypto/internal/constanttime", ""},
{"crypto/internal/cryptotest", "\x03\r\v\t%\x11\x1a\r\x12\x12!\x04\x06\n\x19\x01\x11\x11\x1d\x01\a\x03\x02\b\x02\x01\x05\f"},
{"crypto/internal/cryptotest/wycheproof", "\x0e\x12S\x01\f\x01r@\x05\x03\x15\x10"},
{"crypto/internal/entropy", "L"},
{"crypto/internal/entropy/v1.0.0", "E9\x96\x01:\x14"},
{"crypto/internal/fips140", "D:\xc2\x01\v\x17"},
{"crypto/internal/fips140/aes", "\x03!\x03\x02\x14\x05\x01\x01\x055\x96\x016"},
{"crypto/internal/fips140/aes/gcm", "$\x01\x02\x02\x02\x12\x05\x01\x065\x93\x01"},
{"crypto/internal/fips140/alias", "\xe2\x02"},
{"crypto/internal/fips140/bigmod", ")\x19\x01\x065\x96\x01"},
{"crypto/internal/fips140/check", "$\x0e\a\t\x02\xc1\x01]"},
{"crypto/internal/fips140/check/checktest", ")\x97\x02\""},
{"crypto/internal/fips140/drbg", "\x03 \x01\x01\x04\x14\x05\n2\x87\x01\x0f9\x01"},
{"crypto/internal/fips140/ecdh", "\x03!\x05\x02\n\r<\x87\x01\x0f9"},
{"crypto/internal/fips140/ecdsa", "\x03!\x04\x01\x02\a\x03\x06C\x15r\x0f9"},
{"crypto/internal/fips140/ed25519", "\x03!\x05\x02\x04\fC\xcc\x01\x03"},
{"crypto/internal/fips140/edwards25519", "\x1f\n\a\x12<\x96\x019"},
{"crypto/internal/fips140/edwards25519/field", ")\x14\x05<\x96\x01"},
{"crypto/internal/fips140/hkdf", "\x03!\x05\t\aE\x15"},
{"crypto/internal/fips140/hmac", "\x03!\x15\x01\x01C\x15"},
{"crypto/internal/fips140/mldsa", "\x03\x1c\x05\x05\x02\x0e\x01\x03\x05<\x96\x019"},
{"crypto/internal/fips140/mlkem", "\x03!\x05\x02\x0f\x03\x05<\xcf\x01"},
{"crypto/internal/fips140/nistec", "\x1f\n\r\f<\x96\x01,\r\x15"},
{"crypto/internal/fips140/nistec/fiat", ")\x14A\x96\x01"},
{"crypto/internal/fips140/pbkdf2", "\x03!\x05\t\aE\x15"},
{"crypto/internal/fips140/rsa", "\x03\x1c\x05\x04\x01\x02\x0e\x01\x01\x02A\x15rH"},
{"crypto/internal/fips140/sha256", "\x03!\x1e\x01\x065\x15\x81\x01"},
{"crypto/internal/fips140/sha3", "\x03!\x19\x05\x01;\x96\x01N"},
{"crypto/internal/fips140/sha512", "\x03!\x1e\x01\x065\x15\x81\x01"},
{"crypto/internal/fips140/ssh", ")j"},
{"crypto/internal/fips140/subtle", "\x1f\b\x1b\xd2\x01"},
{"crypto/internal/fips140/tls12", "\x03!\x05\t\a\x02C\x15"},
{"crypto/internal/fips140/tls13", "\x03!\x05\b\b\t<\x15"},
{"crypto/internal/fips140cache", "\xc0\x02\r."},
{"crypto/internal/cryptotest", "\x03\r\v\n%\x11\x1a\r\x12\x12!\x04\x06\n\x19\x01\x11\x11\x1d\x01\a\x03\x02\b\x02\x01\x05\f"},
{"crypto/internal/cryptotest/wycheproof", "\x0e\x12T\x01\f\x01r@\x05\x03\x15\x10"},
{"crypto/internal/cryptotest/x509limbo", "u\n\x03\xba\x01\x03\x1e"},
{"crypto/internal/entropy", "M"},
{"crypto/internal/entropy/v1.0.0", "F9\x96\x01:\x14"},
{"crypto/internal/fips140", "E:\xc2\x01\v\x17"},
{"crypto/internal/fips140/aes", "\x03\"\x03\x02\x14\x05\x01\x01\x055\x96\x016"},
{"crypto/internal/fips140/aes/gcm", "%\x01\x02\x02\x02\x12\x05\x01\x065\x93\x01"},
{"crypto/internal/fips140/alias", "\xe3\x02"},
{"crypto/internal/fips140/bigmod", "*\x19\x01\x065\x96\x01"},
{"crypto/internal/fips140/check", "%\x0e\a\t\x02\xc1\x01]"},
{"crypto/internal/fips140/check/checktest", "*\x97\x02\""},
{"crypto/internal/fips140/drbg", "\x03!\x01\x01\x04\x14\x05\n2\x87\x01\x0f9\x01"},
{"crypto/internal/fips140/ecdh", "\x03\"\x05\x02\n\r<\x87\x01\x0f9"},
{"crypto/internal/fips140/ecdsa", "\x03\"\x04\x01\x02\a\x03\x06C\x15r\x0f9"},
{"crypto/internal/fips140/ed25519", "\x03\"\x05\x02\x04\fC\xcc\x01\x03"},
{"crypto/internal/fips140/edwards25519", "\x1f\v\a\x12<\x96\x019"},
{"crypto/internal/fips140/edwards25519/field", "*\x14\x05<\x96\x01"},
{"crypto/internal/fips140/hkdf", "\x03\"\x05\t\aE\x15"},
{"crypto/internal/fips140/hmac", "\x03\"\x15\x01\x01C\x15"},
{"crypto/internal/fips140/mldsa", "\x03\x1c\x06\x05\x02\x0e\x01\x03\x05<\x96\x019"},
{"crypto/internal/fips140/mlkem", "\x03\"\x05\x02\x0f\x03\x05<\xcf\x01"},
{"crypto/internal/fips140/nistec", "\x1f\v\r\f<\x96\x01,\r\x15"},
{"crypto/internal/fips140/nistec/fiat", "*\x14A\x96\x01"},
{"crypto/internal/fips140/pbkdf2", "\x03\"\x05\t\aE\x15"},
{"crypto/internal/fips140/rsa", "\x03\x1c\x06\x04\x01\x02\x0e\x01\x01\x02A\x15rH"},
{"crypto/internal/fips140/sha256", "\x03\"\x1e\x01\x065\x15\x81\x01"},
{"crypto/internal/fips140/sha3", "\x03\"\x19\x05\x01;\x96\x01N"},
{"crypto/internal/fips140/sha512", "\x03\"\x1e\x01\x065\x15\x81\x01"},
{"crypto/internal/fips140/ssh", "*j"},
{"crypto/internal/fips140/subtle", "\x1f\t\x1b\xd2\x01"},
{"crypto/internal/fips140/tls12", "\x03\"\x05\t\a\x02C\x15"},
{"crypto/internal/fips140/tls13", "\x03\"\x05\b\b\t<\x15"},
{"crypto/internal/fips140cache", "\xc1\x02\r."},
{"crypto/internal/fips140deps", ""},
{"crypto/internal/fips140deps/byteorder", "\xa9\x01"},
{"crypto/internal/fips140deps/cpu", "\xbe\x01\b"},
{"crypto/internal/fips140deps/godebug", "\xc7\x01"},
{"crypto/internal/fips140deps/time", "\xe2\x02"},
{"crypto/internal/fips140hash", ":\x1e;\xcf\x01"},
{"crypto/internal/fips140only", "\x17\x14\x0e\x01\x01Xr"},
{"crypto/internal/fips140deps/byteorder", "\xaa\x01"},
{"crypto/internal/fips140deps/cpu", "\xbf\x01\b"},
{"crypto/internal/fips140deps/godebug", "\xc8\x01"},
{"crypto/internal/fips140deps/time", "\xe3\x02"},
{"crypto/internal/fips140hash", ";\x1e;\xcf\x01"},
{"crypto/internal/fips140only", "\x17\x15\x0e\x01\x01Xr"},
{"crypto/internal/fips140test", ""},
{"crypto/internal/impl", "\xcb\x02"},
{"crypto/internal/rand", "\x1b\x10 |>]"},
{"crypto/internal/randutil", "\x85\x02\x12"},
{"crypto/internal/sysrand", "~r!\"\r\r\x01\x01\r\x06"},
{"crypto/internal/sysrand/internal/seccomp", "~"},
{"crypto/md5", "\x0e97\x15\x16k"},
{"crypto/mldsa", "\x0e%K\x87\x01"},
{"crypto/mlkem", "\x0e&"},
{"crypto/mlkem/mlkemtest", "4\x13\t."},
{"crypto/pbkdf2", "7\x0f\x017\x15"},
{"crypto/rand", "\x1b\x10\x1c\x034\x87\x01\rP"},
{"crypto/rc4", "' 7\xcc\x01"},
{"crypto/rsa", "\x0e\r\x01\f\x10\x0e\x01\x03\t\a$\x03\x124>\f\x01"},
{"crypto/sha1", "\x0e\r,\x025\x15\x16\x15V"},
{"crypto/sha256", "\x0e\r\x1eZ"},
{"crypto/sha3", "\x0e,Y\xcf\x01"},
{"crypto/sha512", "\x0e\r X"},
{"crypto/subtle", "\x1f\x1e\xa9\x01|"},
{"crypto/tls", "\x03\b\x02\x01\x01\x01\x01\x02\x01\x01\x01\x01\x01\x01\x01\x01\n\x01\x18\x01\x0f\x01\x01\x03\x01\x01\x01\x01\x02\x01\x02\x01\x1f\x02\x03\x12\x16\x15\t>\x16\x18\r\b\x01\x01\x01\x02\x01\x0e\x06\x03\x01\x15"},
{"crypto/tls/internal/fips140tls", "\x17\xb7\x02"},
{"crypto/x509", "\x03\v\x01\x01\x01\x01\x01\x01\x01\x01\x017\x01\x06\x01\x01\x02\x05\x0f\x06\t\x02\x03F\x03;\x01\x02\b\x01\x01\x02\a\x12\x05\x01\x06\a\b\x02\x01\x02\x0f\x02\x01\x01\x02\x04\x01"},
{"crypto/x509/pkix", "m\x06\x0e\x91\x019\x11"},
{"database/sql", "\x03\nS\x01\x1d\x03\x84\x01\v\a$\x05\b\x02\x03\x01\x0e\x02\x02\x02\x01"},
{"database/sql/driver", "\rT\x1d\x03\xba\x01\x0f\x12\a"},
{"crypto/internal/impl", "\xcc\x02"},
{"crypto/internal/rand", "\x1b\x11 |>]"},
{"crypto/internal/randutil", "\x86\x02\x12"},
{"crypto/internal/sysrand", "\x7fr!\"\r\r\x01\x01\r\x06"},
{"crypto/internal/sysrand/internal/seccomp", "\x7f"},
{"crypto/md5", "\x0e:7\x15\x16k"},
{"crypto/mldsa", "\x0e&K\x87\x01"},
{"crypto/mlkem", "\x0e'"},
{"crypto/mlkem/mlkemtest", "5\x13\t."},
{"crypto/pbkdf2", "8\x0f\x017\x15"},
{"crypto/rand", "\x1b\x11\x1c\x034\x87\x01\rP"},
{"crypto/rc4", "( 7\xcc\x01"},
{"crypto/rsa", "\x0e\r\x01\r\x10\x0e\x01\x03\t\a$\x03\x124>\f\x01"},
{"crypto/sha1", "\x0e\r-\x025\x15\x16\x15V"},
{"crypto/sha256", "\x0e\r\x1fZ"},
{"crypto/sha3", "\x0e-Y\xcf\x01"},
{"crypto/sha512", "\x0e\r!X"},
{"crypto/subtle", "\x1f\x1f\xa9\x01|"},
{"crypto/tls", "\x03\b\x02\x01\x01\x01\x01\x02\x01\x01\x01\x01\x01\x01\x01\x01\v\x01\x18\x01\x0f\x01\x01\x03\x01\x01\x01\x01\x02\x01\x02\x01\x1f\x02\x03\x12\x16\x15\t>\x16\x18\r\b\x01\x01\x01\x02\x01\x0e\x06\x03\x01\x15"},
{"crypto/tls/internal/fips140tls", "\x17\xb8\x02"},
{"crypto/x509", "\x03\v\x01\x01\x01\x01\x01\x01\x01\x01\x018\x01\x06\x01\x01\x02\x05\x0f\x06\t\x02\x03F\x03;\x01\x02\b\x01\x01\x02\a\x12\x05\x01\x06\a\b\x02\x01\x02\x0f\x02\x01\x01\x02\x04\x01"},
{"crypto/x509/pkix", "n\x06\x0e\x91\x019\x11"},
{"database/sql", "\x03\nT\x01\x1d\x03\x84\x01\v\a$\x05\b\x02\x03\x01\x0e\x02\x02\x02\x01"},
{"database/sql/driver", "\rU\x1d\x03\xba\x01\x0f\x12\a"},
{"database/sql/internal", ""},
{"debug/buildinfo", "\x03a\x02\x01\x01\b\x0e\x03h\x1a\x02\x01-\x0f "},
{"debug/dwarf", "\x03m\x0e\x03\x84\x013\x11\x01\x01"},
{"debug/elf", "\x03\x06Z\r\x0e\x03h\x1b\x01\f\"\x17\x01\x17"},
{"debug/gosym", "\x03m\x11#\xa5\x01\x01\x01\x02"},
{"debug/macho", "\x03\x06Z\r\x11h\x1c.\x17\x01"},
{"debug/pe", "\x03\x06Z\r\x0e\x03h\x1c.\x17\x01\x17"},
{"debug/plan9obj", "p\x0e\x03h\x1c."},
{"embed", "~*D\x19\x01V"},
{"debug/buildinfo", "\x03b\x02\x01\x01\b\x0e\x03h\x1a\x02\x01-\x0f "},
{"debug/dwarf", "\x03n\x0e\x03\x84\x013\x11\x01\x01"},
{"debug/elf", "\x03\x06[\r\x0e\x03h\x1b\x01\f\"\x17\x01\x17"},
{"debug/gosym", "\x03n\x11#\xa5\x01\x01\x01\x02"},
{"debug/macho", "\x03\x06[\r\x11h\x1c.\x17\x01"},
{"debug/pe", "\x03\x06[\r\x0e\x03h\x1c.\x17\x01\x17"},
{"debug/plan9obj", "q\x0e\x03h\x1c."},
{"embed", "\x7f*D\x19\x01V"},
{"embed/internal/embedtest", ""},
{"encoding", ""},
{"encoding/ascii85", "\x85\x02E"},
{"encoding/asn1", "\x03{\x03h(\x01)\r\x02\x01\x11\x03\x01"},
{"encoding/base32", "\x85\x02C\x02"},
{"encoding/base64", "\xa9\x01\\C\x02"},
{"encoding/binary", "~\x87\x01\f*\r\x05"},
{"encoding/csv", "\x02\x01{\x03\x84\x01F\x13\x02"},
{"encoding/gob", "\x02i\x05\x0e\x03h\x1c\v\x01\x03\x1f\b\x12\x01\x10\x02"},
{"encoding/hex", "~\x03\x84\x01C\x03"},
{"encoding/json", "\x03\x01g\n\x01\x01\x02\x01\x01\x03\x03\x84\x016\x0f\x01"},
{"encoding/json/internal", "~"},
{"encoding/json/internal/jsonflags", "u"},
{"encoding/json/internal/jsonopts", "u\x01"},
{"encoding/json/internal/jsontest", "\x03f\x15\x03\x83\x01\x01\x012\b\b\x03\x02\x0f"},
{"encoding/json/internal/jsonwire", "\x04r\b\x87\x01\f7\x02\x01\x13\x01\x01"},
{"encoding/json/jsontext", "\x03r\x01\x01\x02\x05\x87\x01\x03\t\x034\x02\x01\x02\x13"},
{"encoding/json/v2", "\x03\x01g\x03\x01\x01\x03\x02\x01\x01\x02\x01\x04\x03\x84\x01\f\x03'\r\x02\x01\x02\x0f\x02\x02"},
{"encoding/pem", "\x03l\x0f\x87\x01C\x03"},
{"encoding/xml", "\x02\x01h\x13\x03\x84\x016\x05\n\x01\x02\x11\x02"},
{"errors", "\xdb\x01\x87\x01"},
{"expvar", "tSB\b\v\x17\r\b\x02\x03\x01\x12"},
{"flag", "k\x13\x03\x84\x01.\b\x05\b\x02\x01\x11"},
{"fmt", "~E)\x19\f\"\b\r\x02\x03\x13"},
{"go/ast", "\x03\x01}\x0e\x01u\x03+\b\r\x02\x01\x13\x02"},
{"go/build", "\x02\x01{\x03\x01\x02\x02\a\x02\x01\x17 \x04\x02\t\x1c\x13\x01-\x01\x04\x01\a\b\x02\x01\x13\x02\x02"},
{"go/build/constraint", "~\xcc\x01\x01\x13\x02"},
{"go/constant", "\x81\x01\x0f\x81\x01\x01\x026\x01\x02\x13"},
{"go/doc", "\x04}\x01\x05\t>73\x10\x02\x01\x13\x02"},
{"go/doc/comment", "\x03~\xc7\x01\x01\x01\x01\x13\x02"},
{"go/format", "\x03~\x01\v\x01\x02uF"},
{"go/importer", "\x83\x01\a\x01\x01\x04\x01t;"},
{"go/internal/gccgoimporter", "\x02\x01a\x1a\x03\x04\v\x01r\x02.\x01\x05\x11\x01\r\b"},
{"go/internal/gcimporter", "\x02\x7f\x0f\x010\x140.\x15\x03\x02"},
{"go/internal/srcimporter", "\x81\x01\x01\x01\n\x03\x01t.\x01\x05\x12\x02\x15"},
{"go/parser", "\x03{\x03\x01\x02\v\x01u\x01-\x06\x12"},
{"go/printer", "\x81\x01\x01\x02\x03\tu\f\"\x15\x02\x01\x02\f\x05\x02"},
{"go/scanner", "\x03~\x0fu4\x10\x01\x14\x02"},
{"go/token", "\x04}\x87\x01@\x02\x03\x01\x10\x02"},
{"go/types", "\x03\x01\x06t\x03\x01\x03\b\x03\x02\x0654\x04\x03\t\"\x06\a\b\x01\x01\x01\x02\x01\x10\x02\x02"},
{"go/version", "\xcc\x01\x7f"},
{"hash", "\x85\x02"},
{"hash/adler32", "~\x15\x16"},
{"hash/crc32", "~\x15\x16\x15\x8f\x01\x01\x14"},
{"hash/crc64", "~\x15\x16\xa4\x01"},
{"hash/fnv", "~\x15\x16k"},
{"hash/maphash", "\x93\x01\x11>\x80\x01"},
{"html", "\xcb\x02\x02\x13"},
{"html/template", "\x03q\r\x18.>\x01\n#\x05\x01\x02\x03\n\x02\x01\x02\r\x01\x03\x02"},
{"image", "\x02|\x1ei\x0f6\x03\x01"},
{"encoding/ascii85", "\x86\x02E"},
{"encoding/asn1", "\x03|\x03h(\x01)\r\x02\x01\x11\x03\x01"},
{"encoding/base32", "\x86\x02C\x02"},
{"encoding/base64", "\xaa\x01\\C\x02"},
{"encoding/binary", "\x7f\x87\x01\f*\r\x05"},
{"encoding/csv", "\x02\x01|\x03\x84\x01F\x13\x02"},
{"encoding/gob", "\x02j\x05\x0e\x03h\x1c\v\x01\x03\x1f\b\x12\x01\x10\x02"},
{"encoding/hex", "\x7f\x03\x84\x01C\x03"},
{"encoding/json", "\x03\x01h\n\x01\x01\x02\x01\x01\x03\x03\x84\x016\x0f\x01"},
{"encoding/json/internal", "\x7f"},
{"encoding/json/internal/jsonflags", "v"},
{"encoding/json/internal/jsonopts", "v\x01"},
{"encoding/json/internal/jsontest", "\x03g\x15\x03\x83\x01\x01\x012\b\b\x03\x02\x0f"},
{"encoding/json/internal/jsonwire", "\x04s\b\x87\x01\f7\x02\x01\x13\x01\x01"},
{"encoding/json/jsontext", "\x03s\x01\x01\x02\x05\x87\x01\x03\t\x034\x02\x01\x02\x13"},
{"encoding/json/v2", "\x03\x01h\x03\x01\x01\x03\x02\x01\x01\x02\x01\x04\x03\x84\x01\f\x03'\r\x02\x01\x02\x0f\x02\x02"},
{"encoding/pem", "\x03m\x0f\x87\x01C\x03"},
{"encoding/xml", "\x02\x01i\x13\x03\x84\x016\x05\n\x01\x02\x11\x02"},
{"errors", "\xdc\x01\x87\x01"},
{"expvar", "uSB\b\v\x17\r\b\x02\x03\x01\x12"},
{"flag", "l\x13\x03\x84\x01.\b\x05\b\x02\x01\x11"},
{"fmt", "\x7fE)\x19\f\"\b\r\x02\x03\x13"},
{"go/ast", "\x03\x01~\x0e\x01u\x03+\b\r\x02\x01\x13\x02"},
{"go/build", "\x02\x01|\x03\x01\x02\x02\a\x02\x01\x17 \x04\x02\t\x1c\x13\x01-\x01\x04\x01\a\b\x02\x01\x13\x02\x02"},
{"go/build/constraint", "\x7f\xcc\x01\x01\x13\x02"},
{"go/constant", "\x82\x01\x0f\x81\x01\x01\x026\x01\x02\x13"},
{"go/doc", "\x04~\x01\x05\t>73\x10\x02\x01\x13\x02"},
{"go/doc/comment", "\x03\x7f\xc7\x01\x01\x01\x01\x13\x02"},
{"go/format", "\x03\x7f\x01\v\x01\x02uF"},
{"go/importer", "\x84\x01\a\x01\x01\x04\x01t;"},
{"go/internal/gccgoimporter", "\x02\x01b\x1a\x03\x04\v\x01r\x02.\x01\x05\x11\x01\r\b"},
{"go/internal/gcimporter", "\x02\x80\x01\x0f\x010\x140.\x15\x03\x02"},
{"go/internal/srcimporter", "\x82\x01\x01\x01\n\x03\x01t.\x01\x05\x12\x02\x15"},
{"go/parser", "\x03|\x03\x01\x02\v\x01u\x01-\x06\x12"},
{"go/printer", "\x82\x01\x01\x02\x03\tu\f\"\x15\x02\x01\x02\f\x05\x02"},
{"go/scanner", "\x03\x7f\x0fu4\x10\x01\x14\x02"},
{"go/token", "\x04~\x87\x01@\x02\x03\x01\x10\x02"},
{"go/types", "\x03\x01\x06u\x03\x01\x03\b\x03\x02\x0654\x04\x03\t\"\x06\a\b\x01\x01\x01\x02\x01\x10\x02\x02"},
{"go/version", "\xcd\x01\x7f"},
{"hash", "\x86\x02"},
{"hash/adler32", "\x7f\x15\x16"},
{"hash/crc32", "\x7f\x15\x16\x15\x8f\x01\x01\x14"},
{"hash/crc64", "\x7f\x15\x16\xa4\x01"},
{"hash/fnv", "\x7f\x15\x16k"},
{"hash/maphash", "\x94\x01\x11>\x80\x01"},
{"html", "\xcc\x02\x02\x13"},
{"html/template", "\x03r\r\x18.>\x01\n#\x05\x01\x02\x03\n\x02\x01\x02\r\x01\x03\x02"},
{"image", "\x02}\x1ei\x0f6\x03\x01"},
{"image/color", ""},
{"image/color/palette", "\x9c\x01"},
{"image/draw", "\x9b\x01\x01\x04"},
{"image/gif", "\x02\x01\x05v\x03\x1a\x01\x01\x01\v\\\x0f"},
{"image/internal/imageutil", "\x9b\x01"},
{"image/jpeg", "\x02|\x1d\x01\x04e"},
{"image/png", "\x02\ag\x11\x12\x02\x06\x01iE"},
{"index/suffixarray", "\x03m\x0e\x87\x01\f-\n\x01"},
{"internal/abi", "\xc6\x01\x9c\x01"},
{"internal/asan", "\xe2\x02"},
{"internal/bisect", "\xc0\x02\r\x01"},
{"internal/buildcfg", "\x81\x01Hj\x06\x02\x05\n\x01"},
{"internal/bytealg", "\xbe\x01\xa4\x01"},
{"image/color/palette", "\x9d\x01"},
{"image/draw", "\x9c\x01\x01\x04"},
{"image/gif", "\x02\x01\x05w\x03\x1a\x01\x01\x01\v\\\x0f"},
{"image/internal/imageutil", "\x9c\x01"},
{"image/jpeg", "\x02}\x1d\x01\x04e"},
{"image/png", "\x02\ah\x11\x12\x02\x06\x01iE"},
{"index/suffixarray", "\x03n\x0e\x87\x01\f-\n\x01"},
{"internal/abi", "\xc7\x01\x9c\x01"},
{"internal/asan", "\xe3\x02"},
{"internal/bisect", "\xc1\x02\r\x01"},
{"internal/buildcfg", "\x82\x01Hj\x06\x02\x05\n\x01"},
{"internal/bytealg", "\xbf\x01\xa4\x01"},
{"internal/byteorder", ""},
{"internal/cfg", ""},
{"internal/cgrouptest", "\x81\x01\\V\x06\x0f\x02\x01\x04\x01"},
{"internal/chacha8rand", "\xa9\x01\x15\b\x9c\x01"},
{"internal/cgrouptest", "\x82\x01\\V\x06\x0f\x02\x01\x04\x01"},
{"internal/chacha8rand", "\xaa\x01\x15\b\x9c\x01"},
{"internal/copyright", ""},
{"internal/coverage", ""},
{"internal/coverage/calloc", ""},
{"internal/coverage/cfile", "t\r\x16\x17\x01\x02\x01\x01\x01\x01\x01\x01\x01$\x02'.\x06\a\n\x01\x03\x0e\x06"},
{"internal/coverage/cformat", "\x04}-\x04S\v8\x01\x02\x0e"},
{"internal/coverage/cmerge", "\x81\x01-c"},
{"internal/coverage/decodecounter", "p\x11-\v\x02J.\x17\x18"},
{"internal/coverage/decodemeta", "\x02n\x11\x16\x17\v\x02J."},
{"internal/coverage/encodecounter", "\x02n\x11-\f\x01\x02H\v#\x15"},
{"internal/coverage/encodemeta", "\x02\x01m\x11\x12\x04\x17\r\x02H./"},
{"internal/coverage/pods", "\x04}-\x85\x01\x06\x05\n\x02\x01"},
{"internal/coverage/rtcov", "\xe2\x02"},
{"internal/coverage/slicereader", "p\x11\x84\x01]"},
{"internal/coverage/slicewriter", "\x81\x01\x84\x01"},
{"internal/coverage/stringtab", "\x81\x018\x04H"},
{"internal/coverage/cfile", "u\r\x16\x17\x01\x02\x01\x01\x01\x01\x01\x01\x01$\x02'.\x06\a\n\x01\x03\x0e\x06"},
{"internal/coverage/cformat", "\x04~-\x04S\v8\x01\x02\x0e"},
{"internal/coverage/cmerge", "\x82\x01-c"},
{"internal/coverage/decodecounter", "q\x11-\v\x02J.\x17\x18"},
{"internal/coverage/decodemeta", "\x02o\x11\x16\x17\v\x02J."},
{"internal/coverage/encodecounter", "\x02o\x11-\f\x01\x02H\v#\x15"},
{"internal/coverage/encodemeta", "\x02\x01n\x11\x12\x04\x17\r\x02H./"},
{"internal/coverage/pods", "\x04~-\x85\x01\x06\x05\n\x02\x01"},
{"internal/coverage/rtcov", "\xe3\x02"},
{"internal/coverage/slicereader", "q\x11\x84\x01]"},
{"internal/coverage/slicewriter", "\x82\x01\x84\x01"},
{"internal/coverage/stringtab", "\x82\x018\x04H"},
{"internal/coverage/test", ""},
{"internal/coverage/uleb128", ""},
{"internal/cpu", "\xe2\x02"},
{"internal/dag", "\x04}\xc7\x01\x03"},
{"internal/diff", "\x03~\xc8\x01\x02"},
{"internal/exportdata", "\x02\x01{\x03\x02f\x1c.\x01\x05\x11\x01\x02"},
{"internal/filepathlite", "~*D\x1aB"},
{"internal/fmtsort", "\x04\xb7\x02\r"},
{"internal/fuzz", "\x03\nJ\x19\x04\n\x03\x01\v\x037>\f\x03\x1f\x01\x05\x02\x05\n\x01\x02\x01\x01\r\x04\x02"},
{"internal/cpu", "\xe3\x02"},
{"internal/dag", "\x04~\xc7\x01\x03"},
{"internal/diff", "\x03\x7f\xc8\x01\x02"},
{"internal/exportdata", "\x02\x01|\x03\x02f\x1c.\x01\x05\x11\x01\x02"},
{"internal/filepathlite", "\x7f*D\x1aB"},
{"internal/fmtsort", "\x04\xb8\x02\r"},
{"internal/fuzz", "\x03\nK\x19\x04\n\x03\x01\v\x037>\f\x03\x1f\x01\x05\x02\x05\n\x01\x02\x01\x01\r\x04\x02"},
{"internal/gate", "\r"},
{"internal/goarch", ""},
{"internal/godebug", "\xa6\x01\"\x85\x01\x01\x14"},
{"internal/godebug", "\xa7\x01\"\x85\x01\x01\x14"},
{"internal/godebugs", ""},
{"internal/goexperiment", ""},
{"internal/goos", ""},
{"internal/goroot", "\xb3\x02\x01\x05\x12\x02"},
{"internal/goroot", "\xb4\x02\x01\x05\x12\x02"},
{"internal/gover", "\x04"},
{"internal/goversion", ""},
{"internal/lazyregexp", "\xb3\x02\v\r\x02"},
{"internal/lazytemplate", "\x85\x02.\x18\x02\r"},
{"internal/msan", "\xe2\x02"},
{"internal/nettest", "\x03\nqG@\f\n\x12\x06\x15\x05\x0f"},
{"internal/lazyregexp", "\xb4\x02\v\r\x02"},
{"internal/lazytemplate", "\x86\x02.\x18\x02\r"},
{"internal/msan", "\xe3\x02"},
{"internal/nettest", "\x03\nrG@\f\n\x12\x06\x15\x05\x0f"},
{"internal/nettrace", ""},
{"internal/obscuretestdata", "o\x96\x01."},
{"internal/oserror", "~"},
{"internal/pkgbits", "\x03T\x19\x0e\x03\x04\vu\r!\r\n\x01"},
{"internal/obscuretestdata", "p\x96\x01."},
{"internal/oserror", "\x7f"},
{"internal/pkgbits", "\x03U\x19\x0e\x03\x04\vu\r!\r\n\x01"},
{"internal/platform", ""},
{"internal/poll", "~m\x05\x15;\r\x01\x01\r\x06"},
{"internal/profile", "\x03\x04w\x03\x84\x019\n\x01\x01\x01\x11"},
{"internal/poll", "\x7fm\x05\x15;\r\x01\x01\r\x06"},
{"internal/profile", "\x03\x04x\x03\x84\x019\n\x01\x01\x01\x11"},
{"internal/profilerecord", ""},
{"internal/race", "\xa4\x01\xbe\x01"},
{"internal/reflectlite", "\xa4\x01\"<>\""},
{"internal/runtime/atomic", "\xc6\x01\x9c\x01"},
{"internal/runtime/cgroup", "\xa8\x01?\x04w"},
{"internal/runtime/exithook", "\xdc\x01\x86\x01"},
{"internal/runtime/gc", "\xc6\x01"},
{"internal/runtime/gc/internal/gen", "\nf\x11\x17m\x04\v\x1f\b\x10\x02"},
{"internal/runtime/gc/scan", "\xbe\x01\b\x19\a|"},
{"internal/runtime/maps", "\xa4\x01\x01\x04\x15\b\x03\a\n\t\x03.N"},
{"internal/runtime/math", "\xc6\x01"},
{"internal/race", "\xa5\x01\xbe\x01"},
{"internal/reflectlite", "\xa5\x01\"<>\""},
{"internal/runtime/atomic", "\xc7\x01\x9c\x01"},
{"internal/runtime/cgroup", "\xa9\x01?\x04w"},
{"internal/runtime/exithook", "\xdd\x01\x86\x01"},
{"internal/runtime/gc", "\xc7\x01"},
{"internal/runtime/gc/internal/gen", "\ng\x11\x17m\x04\v\x1f\b\x10\x02"},
{"internal/runtime/gc/scan", "\xbf\x01\b\x19\a|"},
{"internal/runtime/maps", "\xa5\x01\x01\x04\x15\b\x03\a\n\t\x03.N"},
{"internal/runtime/math", "\xc7\x01"},
{"internal/runtime/pprof/label", ""},
{"internal/runtime/startlinetest", ""},
{"internal/runtime/sys", "\xc6\x01\x04"},
{"internal/runtime/syscall/linux", "\xc6\x01\x9c\x01"},
{"internal/runtime/sys", "\xc7\x01\x04"},
{"internal/runtime/syscall/linux", "\xc7\x01\x9c\x01"},
{"internal/runtime/wasitest", ""},
{"internal/saferio", "\x85\x02]"},
{"internal/singleflight", "\xcd\x02"},
{"internal/strconv", "\x94\x02N"},
{"internal/stringslite", "\xa8\x01\xba\x01"},
{"internal/sync", "\xa4\x01\"\x14t\x14"},
{"internal/synctest", "\xa4\x01\xbe\x01"},
{"internal/syscall/execenv", "\xcf\x02"},
{"internal/syscall/unix", "\xeb\x01U\x0e\x01\x13"},
{"internal/sysinfo", "\x02\x01\xbb\x01G.\x18\x02"},
{"internal/saferio", "\x86\x02]"},
{"internal/singleflight", "\xce\x02"},
{"internal/strconv", "\x95\x02N"},
{"internal/stringslite", "\xa9\x01\xba\x01"},
{"internal/sync", "\xa5\x01\"\x14t\x14"},
{"internal/synctest", "\xa5\x01\xbe\x01"},
{"internal/syscall/execenv", "\xd0\x02"},
{"internal/syscall/unix", "\xec\x01U\x0e\x01\x13"},
{"internal/sysinfo", "\x02\x01\xbc\x01G.\x18\x02"},
{"internal/syslist", ""},
{"internal/testenv", "\x03\nq\x02\x01)\x1c\x100-\x01\x05\a\n\x01\x02\x02\x01\f"},
{"internal/testhash", "\x03\x90\x01r\x11:\f"},
{"internal/testlog", "\xcd\x02\x01\x14"},
{"internal/testpty", "~\x03\xb2\x01"},
{"internal/trace", "\x02\x01\x01\x06f\x0e\x03x\x03\x03\x06\x03\t-\n\x01\x01\x01\x11\x06"},
{"internal/trace/internal/testgen", "\x03m\x11v\x03\x02\x03\x013\v\r\x11"},
{"internal/trace/internal/tracev1", "\x03\x01l\x0e\x03~\x06\f7\x01"},
{"internal/trace/raw", "\x02n\x11{\x03\x06E\x01\x13"},
{"internal/trace/testtrace", "\x02\x01{\x03r\x04\x03\x05\x01\x05.\v\x02\b\x02\x01\x05"},
{"internal/testenv", "\x03\nr\x02\x01)\x1c\x100-\x01\x05\a\n\x01\x02\x02\x01\f"},
{"internal/testhash", "\x03\x91\x01r\x11:\f"},
{"internal/testlog", "\xce\x02\x01\x14"},
{"internal/testpty", "\x7f\x03\xb2\x01"},
{"internal/trace", "\x02\x01\x01\x06g\x0e\x03x\x03\x03\x06\x03\t-\n\x01\x01\x01\x11\x06"},
{"internal/trace/internal/testgen", "\x03n\x11v\x03\x02\x03\x013\v\r\x11"},
{"internal/trace/internal/tracev1", "\x03\x01m\x0e\x03~\x06\f7\x01"},
{"internal/trace/raw", "\x02o\x11{\x03\x06E\x01\x13"},
{"internal/trace/testtrace", "\x02\x01|\x03r\x04\x03\x05\x01\x05.\v\x02\b\x02\x01\x05"},
{"internal/trace/tracev2", ""},
{"internal/trace/traceviewer", "\x02g\v\r\x19>\x1f\a\a\x04\b\v\x17\x01\x05\a\n\x01\x02\x0f"},
{"internal/trace/traceviewer", "\x02h\v\r\x19>\x1f\a\a\x04\b\v\x17\x01\x05\a\n\x01\x02\x0f"},
{"internal/trace/traceviewer/format", ""},
{"internal/trace/version", "\x81\x01{\t"},
{"internal/txtar", "\x03~\xb2\x01\x18"},
{"internal/types/errors", "\xca\x02"},
{"internal/unsafeheader", "\xe2\x02"},
{"internal/xcoff", "c\r\x0e\x03h\x1c.\x17\x01"},
{"internal/zstd", "p\x0e\x03\x84\x01\x0f"},
{"io", "~\xcf\x01"},
{"io/fs", "~*,13\x10\x14\x04"},
{"io/ioutil", "\x85\x02\x01-\x15\x03"},
{"iter", "\xda\x01f\""},
{"log", "\x81\x01\x84\x01\x05)\r\r\x01\x0e"},
{"internal/trace/version", "\x82\x01{\t"},
{"internal/txtar", "\x03\x7f\xb2\x01\x18"},
{"internal/types/errors", "\xcb\x02"},
{"internal/unsafeheader", "\xe3\x02"},
{"internal/xcoff", "d\r\x0e\x03h\x1c.\x17\x01"},
{"internal/zstd", "q\x0e\x03\x84\x01\x0f"},
{"io", "\x7f\xcf\x01"},
{"io/fs", "\x7f*,13\x10\x14\x04"},
{"io/ioutil", "\x86\x02\x01-\x15\x03"},
{"iter", "\xdb\x01f\""},
{"log", "\x82\x01\x84\x01\x05)\r\r\x01\x0e"},
{"log/internal", ""},
{"log/slog", "\x03\n^\t\n\x03H<\x04\x01\x02\x02\x03*\x05\b\x02\x01\x02\x01\x0e\x02\x02\x02"},
{"log/slog", "\x03\n_\t\n\x03H<\x04\x01\x02\x02\x03*\x05\b\x02\x01\x02\x01\x0e\x02\x02\x02"},
{"log/slog/internal", ""},
{"log/slog/internal/benchmarks", "\rq\x03\x84\x01\x06\x03<\x12"},
{"log/slog/internal/buffer", "\xcd\x02"},
{"log/syslog", "~\x03\x88\x01\x12\x18\x18\x02\x0f"},
{"maps", "\x88\x02Z"},
{"math", "\xbe\x01VN"},
{"math/big", "\x03{\x03(\x15G\f\x03\x022\x02\x01\x02\x15"},
{"math/big/internal/asmgen", "\x03\x01}\x93\x014\x03"},
{"math/bits", "\xe2\x02"},
{"math/cmplx", "\x91\x02\x03"},
{"math/rand", "\xc7\x01J<\x01\x14"},
{"math/rand/v2", "~+\x03e\x03N"},
{"mime", "\x02\x01l\x0f\x03\x84\x01\v#\x15\x03\x02\x11\x02"},
{"mime/multipart", "\x02\x01P+\x03F>\v\x01\a\x02\x17\x02\x06\x0f\x02\x01\x17"},
{"mime/quotedprintable", "\x02\x01~\x84\x01"},
{"net", "\x04\tq*\x1f\v\x05\x13\x01\x01\x04\x15\x01'\x06\r\b\x05\x01\x01\r\x06\t"},
{"net/http", "\x02\x01\x03\x01\x04\x02N\x14\x0f\x03F>\x01\x03\a\x01\x06\x01\x01\x02\x06\x02\x01\x01\f\x01\x01\x05\x01\x02\x05\b\x01\x01\x01\x02\x01\x0e\x02\x02\x02\n\x01\x03"},
{"net/http/cgi", "\x02Y#\x03\x84\x01\x04\a\v\x01\x15\x01\x01\x01\x04\x01\x05\x02\b\x02\x01\x11\x10"},
{"net/http/cookiejar", "\x04z\x03\x9a\x01\x01\b\t\x05\x16\x03\x02\x0f\x04"},
{"net/http/fcgi", "\x02\x01\nc\x0e\x03\x84\x01\x16\x01\x01\x16\x18\x02\x0f"},
{"net/http/httptest", "\x02\x01\nN\x02#\x01P4\x04\x12\x01\f\t\x02\r\n\x01\x02\x03\f\x06\n"},
{"net/http/httptrace", "\rNwI\x16+"},
{"net/http/httputil", "\x02\x01\nq\x03F>\x04\x0f\x03\x01\x05\x02\x01\r\x01\x19\x02\x01\x0e\x10"},
{"net/http/internal", "\x02\x01m\x0e\x03\x84\x01"},
{"net/http/internal/ascii", "\xcb\x02\x13"},
{"net/http/internal/http2", "\x02\x01\x03\x01\x06F\b\x15\x0e\x03\x84\x01\x01\x03\b\x03\x02\x03\x02\x06\x02\x03\x01\n\x01\x01\b\x05\b\x02\x01\x02\x01\x0e\x10\x02\x02"},
{"net/http/internal/httpcommon", "\rq\x03\xa0\x01\x10\x01\x17\x01\x01\x02\x1f\x02"},
{"net/http/internal/httpsfv", "\xc8\x02\x02\x01\x11\x04"},
{"net/http/internal/testcert", "\xcb\x02"},
{"net/http/pprof", "\x02\x01\nt\x18.\x11-\x04\x13\x16\x01\r\x04\x03\x01\x02\x01\x11"},
{"log/slog/internal/benchmarks", "\rr\x03\x84\x01\x06\x03<\x12"},
{"log/slog/internal/buffer", "\xce\x02"},
{"log/syslog", "\x7f\x03\x88\x01\x12\x18\x18\x02\x0f"},
{"maps", "\x89\x02Z"},
{"math", "\xbf\x01VN"},
{"math/big", "\x03|\x03(\x15G\f\x03\x022\x02\x01\x02\x15"},
{"math/big/internal/asmgen", "\x03\x01~\x93\x014\x03"},
{"math/bits", "\xe3\x02"},
{"math/cmplx", "\x92\x02\x03"},
{"math/rand", "\xc8\x01J<\x01\x14"},
{"math/rand/v2", "\x7f+\x03e\x03N"},
{"mime", "\x02\x01m\x0f\x03\x84\x01\v#\x15\x03\x02\x11\x02"},
{"mime/multipart", "\x02\x01Q+\x03F>\v\x01\a\x02\x17\x02\x06\x0f\x02\x01\x17"},
{"mime/quotedprintable", "\x02\x01\x7f\x84\x01"},
{"net", "\x04\tr*\x1f\v\x05\x13\x01\x01\x04\x15\x01'\x06\r\b\x05\x01\x01\r\x06\t"},
{"net/http", "\x02\x01\x03\x01\x04\x02O\x14\x0f\x03F>\x01\x03\a\x01\x06\x01\x01\x02\x06\x02\x01\x01\f\x01\x01\x05\x01\x02\x05\b\x01\x01\x01\x02\x01\x0e\x02\x02\x02\n\x01\x03"},
{"net/http/cgi", "\x02Z#\x03\x84\x01\x04\a\v\x01\x15\x01\x01\x01\x04\x01\x05\x02\b\x02\x01\x11\x10"},
{"net/http/cookiejar", "\x04{\x03\x9a\x01\x01\b\t\x05\x16\x03\x02\x0f\x04"},
{"net/http/fcgi", "\x02\x01\nd\x0e\x03\x84\x01\x16\x01\x01\x16\x18\x02\x0f"},
{"net/http/httptest", "\x02\x01\nO\x02#\x01P4\x04\x12\x01\f\t\x02\r\n\x01\x02\x03\f\x06\n"},
{"net/http/httptrace", "\rOwI\x16+"},
{"net/http/httputil", "\x02\x01\nr\x03F>\x04\x0f\x03\x01\x05\x02\x01\r\x01\x19\x02\x0f\x10"},
{"net/http/internal", "\x02\x01n\x0e\x03\x84\x01"},
{"net/http/internal/ascii", "\xcc\x02\x13"},
{"net/http/internal/http2", "\x02\x01\x03\x01\x06G\b\x15\x0e\x03\x84\x01\x01\x03\b\x03\x02\x03\x02\x06\x02\x03\x01\n\x01\x01\b\x05\b\x02\x01\x02\x01\x0e\x10\x02\x02"},
{"net/http/internal/httpcommon", "\rr\x03\xa0\x01\x10\x01\x17\x01\x01\x02\x1f\x02"},
{"net/http/internal/httpsfv", "\xc9\x02\x02\x01\x11\x04"},
{"net/http/internal/testcert", "\xcc\x02"},
{"net/http/pprof", "\x02\x01\nu\x18.\x11-\x04\x13\x16\x01\r\x04\x03\x01\x02\x01\x11"},
{"net/internal/cgotest", ""},
{"net/internal/socktest", "\x81\x01\xcc\x01\x02"},
{"net/mail", "\x02|\x03\x84\x01\x04\x0f\x03\x16\x1a\x02\x0f\x04"},
{"net/netip", "\x04z*\x01h\x036\x17"},
{"net/rpc", "\x02p\f\x03\x0f\nk\x04\x12\x01\x1f\r\x03\x02"},
{"net/rpc/jsonrpc", "t\n\x03\x84\x01\x16\x13\x1f"},
{"net/smtp", "\x195\r\x14\x0f\x03\x84\x01\x16\x16\x1a"},
{"net/textproto", "\x02\x01{\x03\x84\x01\f\n/\x01\x02\x15"},
{"net/url", "~\x03Ff\v\x10\x02\x01\x17"},
{"os", "~*\x01\x19\x04\x11\x14\x01\x03\x01\x05\x10\x01:\b\x05\x01\x01\r\x06"},
{"os/exec", "\x03\nqI(\x01\x15\x01-\x06\a\n\x01\x03\x01\r"},
{"os/exec/internal/fdtest", "\xcf\x02"},
{"os/signal", "\r\xa6\x02\x15\x05\x02"},
{"os/user", "\x02\x01{\x03\x84\x01.\r\n\x01\x02"},
{"path", "~*\xb8\x01"},
{"path/filepath", "~*\x1aD-\r\b\x03\x04\x11"},
{"plugin", "~"},
{"reflect", "~&\x04\x1e\x03\x11\b\x04\x05\x17\x06\t/\n\x03\x11\x02\x02"},
{"net/internal/socktest", "\x82\x01\xcc\x01\x02"},
{"net/mail", "\x02}\x03\x84\x01\x04\x0f\x03\x16\x1a\x02\x0f\x04"},
{"net/netip", "\x04{*\x01h\x036\x17"},
{"net/rpc", "\x02q\f\x03\x0f\nk\x04\x12\x01\x1f\r\x03\x02"},
{"net/rpc/jsonrpc", "u\n\x03\x84\x01\x16\x13\x1f"},
{"net/smtp", "\x196\r\x14\x0f\x03\x84\x01\x16\x16\x1a"},
{"net/textproto", "\x02\x01|\x03\x84\x01\f\n/\x01\x02\x15"},
{"net/url", "\x7f\x03Ff\v\x10\x02\x01\x17"},
{"os", "\x7f*\x01\x19\x04\x11\x14\x01\x03\x01\x05\x10\x01:\b\x05\x01\x01\r\x06"},
{"os/exec", "\x03\nrI(\x01\x15\x01-\x06\a\n\x01\x03\x01\r"},
{"os/exec/internal/fdtest", "\xd0\x02"},
{"os/signal", "\r\xa7\x02\x15\x05\x02"},
{"os/user", "\x02\x01|\x03\x84\x01.\r\n\x01\x02"},
{"path", "\x7f*\xb8\x01"},
{"path/filepath", "\x7f*\x1aD-\r\b\x03\x04\x11"},
{"plugin", "\x7f"},
{"reflect", "\x7f&\x04\x1e\x03\x11\b\x04\x05\x17\x06\t/\n\x03\x11\x02\x02"},
{"reflect/internal/example1", ""},
{"reflect/internal/example2", ""},
{"regexp", "\x03\x82\x02\x037\t\x02\x01\x02\x11\x02"},
{"regexp/syntax", "\xc8\x02\x01\x01\x01\x02\x11\x02"},
{"runtime", "\xa4\x01\x04\x01\x03\f\x06\b\x02\x01\x01\x0f\x03\x01\x01\x01\x02\x01\x01\x01\x02\x01\x04\x01\x10\x18N"},
{"runtime/coverage", "\xb0\x01U"},
{"runtime/debug", "\x81\x01V\\\r\b\x02\x01\x11\x06"},
{"runtime/metrics", "\xc8\x01I/\""},
{"runtime/pprof", "\x02\x01\x01\x03\x06c\x0e\x03#5\v!\f\"\r\b\x01\x01\x01\x02\x02\n\x03\x06"},
{"runtime/race", "\xc6\x02"},
{"regexp", "\x03\x83\x02\x037\t\x02\x01\x02\x11\x02"},
{"regexp/syntax", "\xc9\x02\x01\x01\x01\x02\x11\x02"},
{"runtime", "\xa5\x01\x04\x01\x03\f\x06\b\x02\x01\x01\x0f\x03\x01\x01\x01\x02\x01\x01\x01\x02\x01\x04\x01\x10\x18N"},
{"runtime/coverage", "\xb1\x01U"},
{"runtime/debug", "\x82\x01V\\\r\b\x02\x01\x11\x06"},
{"runtime/metrics", "\xc9\x01I/\""},
{"runtime/pprof", "\x02\x01\x01\x03\x06d\x0e\x03#5\v!\f\"\r\b\x01\x01\x01\x02\x02\n\x03\x06"},
{"runtime/race", "\xc7\x02"},
{"runtime/race/internal/amd64v1", ""},
{"runtime/trace", "\rq\x03{\t;\b\x05\x01\x0e\x06"},
{"slices", "\x04\x84\x02\fN"},
{"sort", "\xdb\x0194"},
{"strconv", "~*C\x01t"},
{"strings", "~&\x04D\x19\x03\f9\x11\x02\x02"},
{"runtime/trace", "\rr\x03{\t;\b\x05\x01\x0e\x06"},
{"slices", "\x04\x85\x02\fN"},
{"sort", "\xdc\x0194"},
{"strconv", "\x7f*C\x01t"},
{"strings", "\x7f&\x04D\x19\x03\f9\x11\x02\x02"},
{"structs", ""},
{"sync", "\xda\x01\x02\x11\x01R\x0e\x14"},
{"sync/atomic", "\xe2\x02"},
{"syscall", "~'\x03\x01\x1d\n\x04\x06\r\x04U\b\x05\x01\x14"},
{"testing", "\x03\nq\x02\x01Y\x17\x14\f\x05\x1d\x06\x02\x05\x02\x05\x01\x02\x01\x02\x01\x0e\x02\x04"},
{"testing/cryptotest", "SV\\\x126\x03\x12"},
{"testing/fstest", "~\x03\x84\x01\x01\n(\x10\x03\t\b"},
{"testing/internal/testdeps", "\x02\v\xb7\x011\x10.\x03\x05\x03\x06\a\x02\x0f"},
{"testing/iotest", "\x03{\x03\x84\x01\x04"},
{"testing/quick", "\x80\x01\x01\x90\x01\x05%\x10\x11"},
{"testing/slogtest", "\rq\x03\x8a\x010\x05\x10\f"},
{"testing/synctest", "\xee\x01b\f\x06"},
{"text/scanner", "\x03~\x84\x01.+\x02"},
{"text/tabwriter", "\x81\x01\x84\x01["},
{"text/template", "~\x03BB\x01\n\"\x01\x05\x01\x02\x05\v\x02\x0e\x03\x02"},
{"text/template/parse", "\x03~\xbf\x01\n\x01\x13\x02"},
{"time", "~*D(,\r\x02\x13"},
{"time/tzdata", "~\xd1\x01\x13"},
{"sync", "\xdb\x01\x02\x11\x01R\x0e\x14"},
{"sync/atomic", "\xe3\x02"},
{"syscall", "\x7f'\x03\x01\x1d\n\x04\x06\r\x04U\b\x05\x01\x14"},
{"testing", "\x03\nr\x02\x01Y\x17\x14\f\x05\x1d\x06\x02\x05\x02\x05\x01\x02\x01\x02\x01\x0e\x02\x04"},
{"testing/cryptotest", "TV\\\x126\x03\x12"},
{"testing/fstest", "\x7f\x03\x84\x01\x01\n(\x10\x03\t\b"},
{"testing/internal/testdeps", "\x02\v\xb8\x011\x10.\x03\x05\x03\x06\a\x02\x0f"},
{"testing/iotest", "\x03|\x03\x84\x01\x04"},
{"testing/quick", "\x81\x01\x01\x90\x01\x05%\x10\x11"},
{"testing/slogtest", "\rr\x03\x8a\x010\x05\x10\f"},
{"testing/synctest", "\xef\x01b\f\x06"},
{"text/scanner", "\x03\x7f\x84\x01.+\x02"},
{"text/tabwriter", "\x82\x01\x84\x01["},
{"text/template", "\x7f\x03BB\x01\n\"\x01\x05\x01\x02\x05\v\x02\x0e\x03\x02"},
{"text/template/parse", "\x03\x7f\xbf\x01\n\x01\x13\x02"},
{"time", "\x7f*D(,\r\x02\x13"},
{"time/tzdata", "\x7f\xd1\x01\x13"},
{"unicode", ""},
{"unicode/utf16", ""},
{"unicode/utf8", ""},
{"unique", "\xa4\x01\"&\x01S\r\x01\x14\x19"},
{"unique", "\xa5\x01\"&\x01S\r\x01\x14\x19"},
{"unsafe", ""},
{"uuid", "\x03\x01O\x1d\x03\v\xcf\x01\x0f"},
{"vendor/golang.org/x/crypto/chacha20", "\x10`\x0e\x96\x01,)"},
{"vendor/golang.org/x/crypto/chacha20poly1305", "\x10\aY\x0e\xe6\x01\x05\x01\f"},
{"vendor/golang.org/x/crypto/cryptobyte", "m\x11\x03\x91\x01)!\v"},
{"uuid", "\x03\x01P\x1d\x03\v\xcf\x01\x0f"},
{"vendor/golang.org/x/crypto/chacha20", "\x10a\x0e\x96\x01,)"},
{"vendor/golang.org/x/crypto/chacha20poly1305", "\x10\aZ\x0e\xe6\x01\x05\x01\f"},
{"vendor/golang.org/x/crypto/cryptobyte", "n\x11\x03\x91\x01)!\v"},
{"vendor/golang.org/x/crypto/cryptobyte/asn1", ""},
{"vendor/golang.org/x/crypto/hkdf", "\x18\x01e\x15r"},
{"vendor/golang.org/x/crypto/internal/alias", "\xe2\x02"},
{"vendor/golang.org/x/crypto/internal/poly1305", "Z\x16\xa4\x01"},
{"vendor/golang.org/x/net/dns/dnsmessage", "~\xca\x01"},
{"vendor/golang.org/x/net/http/httpguts", "\x9b\x02\x16\x1a\x15\x10"},
{"vendor/golang.org/x/net/http/httpproxy", "~\x03\x9a\x01\x12\x05\x01\x18\x15\x10"},
{"vendor/golang.org/x/net/http2/hpack", "\x03{\x03\x84\x01H"},
{"vendor/golang.org/x/net/http3", "\x9c\x02@\x06\x0f\x04"},
{"vendor/golang.org/x/net/idna", "\x81\x01\x90\x01:\x13\x02\x17\x02\x01"},
{"vendor/golang.org/x/net/internal/http3", "\rN#\x03\x84\x01\v\x04\a\x01\x05\x10\x01\x16\x02\x01\x02\x0f\x10\x02\x04\x03"},
{"vendor/golang.org/x/net/internal/httpcommon", "\rq\x03\xa0\x01\x10\x01\x17\x01\x01\x02\x1f\x02"},
{"vendor/golang.org/x/net/internal/quic/quicwire", "p"},
{"vendor/golang.org/x/net/nettest", "\x03m\x0e\x03\x84\x01\x11\x05\x18\x01\f\n\x01\x02\x02\x01\f"},
{"vendor/golang.org/x/net/quic", "\x03\n\x01\x01\x01\t:\x04\x04\x15\x03\v\x03\x12r\x06\x06\x06\x04\x12\x06\x15\x02\x01\x02\x01\x01\r\x06\x02\x01\x01\x02\v"},
{"vendor/golang.org/x/sys/cpu", "\xb3\x02\r\n\x01\x17"},
{"vendor/golang.org/x/text/secure/bidirule", "~\xe2\x01\x18\x01"},
{"vendor/golang.org/x/text/transform", "\x03{\x87\x01["},
{"vendor/golang.org/x/text/unicode/bidi", "\x03\bv\x88\x01@\x17"},
{"vendor/golang.org/x/text/unicode/norm", "p\x11\x84\x01H\x13\x18"},
{"weak", "\xa4\x01\x9c\x01\""},
{"vendor/golang.org/x/crypto/hkdf", "\x18\x01f\x15r"},
{"vendor/golang.org/x/crypto/internal/alias", "\xe3\x02"},
{"vendor/golang.org/x/crypto/internal/poly1305", "[\x16\xa4\x01"},
{"vendor/golang.org/x/net/dns/dnsmessage", "\x7f\xca\x01"},
{"vendor/golang.org/x/net/http/httpguts", "\x9c\x02\x16\x1a\x15\x10"},
{"vendor/golang.org/x/net/http/httpproxy", "\x7f\x03\x9a\x01\x12\x05\x01\x18\x15\x10"},
{"vendor/golang.org/x/net/http2/hpack", "\x03|\x03\x84\x01H"},
{"vendor/golang.org/x/net/http3", "\x9d\x02@\x06\x0f\x04"},
{"vendor/golang.org/x/net/idna", "\x82\x01\x90\x01:\x13\x02\x17\x02\x01"},
{"vendor/golang.org/x/net/internal/http3", "\rO#\x03\x84\x01\v\x04\a\x01\x05\x10\x01\x16\x02\x01\x02\x0f\x10\x02\x04\x03"},
{"vendor/golang.org/x/net/internal/httpcommon", "\rr\x03\xa0\x01\x10\x01\x17\x01\x01\x02\x1f\x02"},
{"vendor/golang.org/x/net/internal/quic/quicwire", "q"},
{"vendor/golang.org/x/net/nettest", "\x03n\x0e\x03\x84\x01\x11\x05\x18\x01\f\n\x01\x02\x02\x01\f"},
{"vendor/golang.org/x/net/quic", "\x03\n\x01\x01\x01\t;\x04\x04\x15\x03\v\x03\x12r\x06\x06\x06\x04\x12\x06\x15\x02\x01\x02\x01\x01\r\x06\x02\x01\x01\x02\v"},
{"vendor/golang.org/x/sys/cpu", "\xb4\x02\r\n\x01\x17"},
{"vendor/golang.org/x/text/secure/bidirule", "\x7f\xe2\x01\x18\x01"},
{"vendor/golang.org/x/text/transform", "\x03|\x87\x01["},
{"vendor/golang.org/x/text/unicode/bidi", "\x03\bw\x88\x01@\x17"},
{"vendor/golang.org/x/text/unicode/norm", "q\x11\x84\x01H\x13\x18"},
{"weak", "\xa5\x01\x9c\x01\""},
}
// bootstrap is the list of bootstrap packages extracted from cmd/dist.

View file

@ -9153,6 +9153,7 @@ var PackageSymbols = map[string][]Symbol{
{"CrossOriginProtection", Type, 25, ""},
{"DefaultClient", Var, 0, ""},
{"DefaultMaxHeaderBytes", Const, 0, ""},
{"DefaultMaxHeaderValueCount", Const, 27, ""},
{"DefaultMaxIdleConnsPerHost", Const, 0, ""},
{"DefaultServeMux", Var, 0, ""},
{"DefaultTransport", Var, 0, ""},
@ -9317,6 +9318,7 @@ var PackageSymbols = map[string][]Symbol{
{"Server.Handler", Field, 0, ""},
{"Server.IdleTimeout", Field, 8, ""},
{"Server.MaxHeaderBytes", Field, 0, ""},
{"Server.MaxHeaderValueCount", Field, 27, ""},
{"Server.Protocols", Field, 24, ""},
{"Server.ReadHeaderTimeout", Field, 8, ""},
{"Server.ReadTimeout", Field, 0, ""},

8
vendor/modules.txt vendored
View file

@ -977,7 +977,7 @@ go.yaml.in/yaml/v2
# go.yaml.in/yaml/v3 v3.0.5
## explicit; go 1.16
go.yaml.in/yaml/v3
# golang.org/x/crypto v0.54.0
# golang.org/x/crypto v0.55.0
## explicit; go 1.25.0
golang.org/x/crypto/argon2
golang.org/x/crypto/blake2b
@ -1002,7 +1002,7 @@ golang.org/x/crypto/ssh/internal/bcrypt_pbkdf
golang.org/x/crypto/ssh/knownhosts
golang.org/x/crypto/twofish
golang.org/x/crypto/xts
# golang.org/x/mod v0.37.0
# golang.org/x/mod v0.38.0
## explicit; go 1.25.0
golang.org/x/mod/semver
# golang.org/x/net v0.57.0
@ -1040,7 +1040,7 @@ golang.org/x/sys/windows/svc/eventlog
# golang.org/x/term v0.45.0
## explicit; go 1.25.0
golang.org/x/term
# golang.org/x/text v0.40.0
# golang.org/x/text v0.41.0
## explicit; go 1.25.0
golang.org/x/text/encoding
golang.org/x/text/encoding/charmap
@ -1062,7 +1062,7 @@ golang.org/x/text/secure/bidirule
golang.org/x/text/transform
golang.org/x/text/unicode/bidi
golang.org/x/text/unicode/norm
# golang.org/x/tools v0.47.0
# golang.org/x/tools v0.48.0
## explicit; go 1.25.0
golang.org/x/tools/cover
golang.org/x/tools/go/ast/edge