From d58ce5a85ef40eebc5cd75e027211e1109183ff8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Nov 2025 02:10:37 +0000 Subject: [PATCH] Bump golang.org/x/crypto from 0.37.0 to 0.45.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.37.0 to 0.45.0. - [Commits](https://github.com/golang/crypto/compare/v0.37.0...v0.45.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-version: 0.45.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go.mod | 19 +- go.sum | 34 +- vendor/golang.org/x/crypto/argon2/argon2.go | 18 +- vendor/golang.org/x/crypto/blake2b/blake2x.go | 8 + vendor/golang.org/x/crypto/blake2b/go125.go | 11 + .../x/crypto/chacha20/chacha_arm64.s | 2 +- .../x/crypto/curve25519/curve25519.go | 13 +- vendor/golang.org/x/crypto/sha3/doc.go | 66 - vendor/golang.org/x/crypto/sha3/hashes.go | 131 +- .../golang.org/x/crypto/sha3/hashes_noasm.go | 23 - .../golang.org/x/crypto/sha3/keccakf_amd64.go | 13 - .../golang.org/x/crypto/sha3/keccakf_amd64.s | 5419 --- .../x/crypto/sha3/{sha3.go => legacy_hash.go} | 49 +- .../sha3/{keccakf.go => legacy_keccakf.go} | 6 +- vendor/golang.org/x/crypto/sha3/sha3_s390x.go | 303 - vendor/golang.org/x/crypto/sha3/sha3_s390x.s | 33 - vendor/golang.org/x/crypto/sha3/shake.go | 172 +- .../golang.org/x/crypto/sha3/shake_noasm.go | 15 - vendor/golang.org/x/crypto/ssh/certs.go | 67 +- vendor/golang.org/x/crypto/ssh/cipher.go | 80 +- vendor/golang.org/x/crypto/ssh/client.go | 1 + vendor/golang.org/x/crypto/ssh/client_auth.go | 26 +- vendor/golang.org/x/crypto/ssh/common.go | 477 +- vendor/golang.org/x/crypto/ssh/connection.go | 12 + vendor/golang.org/x/crypto/ssh/doc.go | 11 + vendor/golang.org/x/crypto/ssh/handshake.go | 33 +- vendor/golang.org/x/crypto/ssh/kex.go | 155 +- vendor/golang.org/x/crypto/ssh/keys.go | 97 +- vendor/golang.org/x/crypto/ssh/mac.go | 42 +- vendor/golang.org/x/crypto/ssh/messages.go | 8 +- vendor/golang.org/x/crypto/ssh/mlkem.go | 168 + vendor/golang.org/x/crypto/ssh/server.go | 46 +- vendor/golang.org/x/crypto/ssh/ssh_gss.go | 8 +- vendor/golang.org/x/crypto/ssh/streamlocal.go | 4 +- vendor/golang.org/x/crypto/ssh/tcpip.go | 124 +- vendor/golang.org/x/crypto/ssh/transport.go | 19 +- vendor/golang.org/x/mod/modfile/rule.go | 126 +- vendor/golang.org/x/mod/modfile/work.go | 8 +- vendor/golang.org/x/mod/module/module.go | 19 +- vendor/golang.org/x/mod/semver/semver.go | 30 +- vendor/golang.org/x/net/html/escape.go | 2 +- vendor/golang.org/x/net/html/parse.go | 57 +- vendor/golang.org/x/net/html/render.go | 2 +- vendor/golang.org/x/net/http2/config.go | 63 +- vendor/golang.org/x/net/http2/config_go124.go | 61 - vendor/golang.org/x/net/http2/config_go125.go | 15 + vendor/golang.org/x/net/http2/config_go126.go | 15 + .../x/net/http2/config_pre_go124.go | 16 - vendor/golang.org/x/net/http2/frame.go | 115 +- vendor/golang.org/x/net/http2/gotrack.go | 17 +- vendor/golang.org/x/net/http2/http2.go | 37 +- vendor/golang.org/x/net/http2/server.go | 143 +- vendor/golang.org/x/net/http2/timer.go | 20 - vendor/golang.org/x/net/http2/transport.go | 196 +- vendor/golang.org/x/net/http2/writesched.go | 67 +- ...rity.go => writesched_priority_rfc7540.go} | 109 +- .../net/http2/writesched_priority_rfc9218.go | 209 + .../x/net/http2/writesched_roundrobin.go | 2 +- .../x/net/internal/httpcommon/request.go | 4 +- vendor/golang.org/x/net/trace/events.go | 2 +- vendor/golang.org/x/sync/errgroup/errgroup.go | 22 +- vendor/golang.org/x/sys/cpu/cpu.go | 14 + vendor/golang.org/x/sys/cpu/cpu_arm64.go | 20 +- vendor/golang.org/x/sys/cpu/cpu_arm64.s | 19 +- vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go | 1 + .../golang.org/x/sys/cpu/cpu_gccgo_arm64.go | 1 + .../golang.org/x/sys/cpu/cpu_linux_riscv64.go | 23 + .../golang.org/x/sys/cpu/cpu_netbsd_arm64.go | 2 +- .../golang.org/x/sys/cpu/cpu_openbsd_arm64.go | 2 +- vendor/golang.org/x/sys/cpu/cpu_riscv64.go | 12 + .../golang.org/x/sys/unix/affinity_linux.go | 9 +- vendor/golang.org/x/sys/unix/fdset.go | 4 +- vendor/golang.org/x/sys/unix/ifreq_linux.go | 4 +- vendor/golang.org/x/sys/unix/mkall.sh | 1 + vendor/golang.org/x/sys/unix/mkerrors.sh | 5 + .../golang.org/x/sys/unix/syscall_darwin.go | 56 +- vendor/golang.org/x/sys/unix/syscall_linux.go | 10 +- .../golang.org/x/sys/unix/syscall_netbsd.go | 17 + .../golang.org/x/sys/unix/syscall_solaris.go | 2 +- vendor/golang.org/x/sys/unix/zerrors_linux.go | 422 +- .../x/sys/unix/zerrors_linux_386.go | 3 + .../x/sys/unix/zerrors_linux_amd64.go | 3 + .../x/sys/unix/zerrors_linux_arm.go | 3 + .../x/sys/unix/zerrors_linux_arm64.go | 3 + .../x/sys/unix/zerrors_linux_loong64.go | 3 + .../x/sys/unix/zerrors_linux_mips.go | 3 + .../x/sys/unix/zerrors_linux_mips64.go | 3 + .../x/sys/unix/zerrors_linux_mips64le.go | 3 + .../x/sys/unix/zerrors_linux_mipsle.go | 3 + .../x/sys/unix/zerrors_linux_ppc.go | 3 + .../x/sys/unix/zerrors_linux_ppc64.go | 3 + .../x/sys/unix/zerrors_linux_ppc64le.go | 3 + .../x/sys/unix/zerrors_linux_riscv64.go | 3 + .../x/sys/unix/zerrors_linux_s390x.go | 3 + .../x/sys/unix/zerrors_linux_sparc64.go | 3 + .../golang.org/x/sys/unix/zsyscall_linux.go | 10 + .../x/sys/unix/zsyscall_solaris_amd64.go | 8 +- .../x/sys/unix/zsysnum_linux_386.go | 1 + .../x/sys/unix/zsysnum_linux_amd64.go | 1 + .../x/sys/unix/zsysnum_linux_arm.go | 1 + .../x/sys/unix/zsysnum_linux_arm64.go | 1 + .../x/sys/unix/zsysnum_linux_loong64.go | 1 + .../x/sys/unix/zsysnum_linux_mips.go | 1 + .../x/sys/unix/zsysnum_linux_mips64.go | 1 + .../x/sys/unix/zsysnum_linux_mips64le.go | 1 + .../x/sys/unix/zsysnum_linux_mipsle.go | 1 + .../x/sys/unix/zsysnum_linux_ppc.go | 1 + .../x/sys/unix/zsysnum_linux_ppc64.go | 1 + .../x/sys/unix/zsysnum_linux_ppc64le.go | 1 + .../x/sys/unix/zsysnum_linux_riscv64.go | 1 + .../x/sys/unix/zsysnum_linux_s390x.go | 1 + .../x/sys/unix/zsysnum_linux_sparc64.go | 1 + vendor/golang.org/x/sys/unix/ztypes_linux.go | 211 +- .../golang.org/x/sys/unix/ztypes_linux_386.go | 18 +- .../x/sys/unix/ztypes_linux_amd64.go | 16 + .../golang.org/x/sys/unix/ztypes_linux_arm.go | 20 +- .../x/sys/unix/ztypes_linux_arm64.go | 16 + .../x/sys/unix/ztypes_linux_loong64.go | 16 + .../x/sys/unix/ztypes_linux_mips.go | 18 +- .../x/sys/unix/ztypes_linux_mips64.go | 16 + .../x/sys/unix/ztypes_linux_mips64le.go | 16 + .../x/sys/unix/ztypes_linux_mipsle.go | 18 +- .../golang.org/x/sys/unix/ztypes_linux_ppc.go | 20 +- .../x/sys/unix/ztypes_linux_ppc64.go | 16 + .../x/sys/unix/ztypes_linux_ppc64le.go | 16 + .../x/sys/unix/ztypes_linux_riscv64.go | 16 + .../x/sys/unix/ztypes_linux_s390x.go | 16 + .../x/sys/unix/ztypes_linux_sparc64.go | 16 + .../x/sys/windows/security_windows.go | 49 +- .../x/sys/windows/syscall_windows.go | 23 +- .../golang.org/x/sys/windows/types_windows.go | 310 + .../x/sys/windows/zsyscall_windows.go | 1028 +- vendor/golang.org/x/telemetry/LICENSE | 27 + vendor/golang.org/x/telemetry/PATENTS | 22 + .../golang.org/x/telemetry/counter/counter.go | 146 + vendor/golang.org/x/telemetry/counter/doc.go | 58 + .../x/telemetry/internal/counter/counter.go | 401 + .../x/telemetry/internal/counter/file.go | 814 + .../x/telemetry/internal/counter/parse.go | 82 + .../internal/counter/stackcounter.go | 212 + .../x/telemetry/internal/mmap/mmap.go | 36 + .../x/telemetry/internal/mmap/mmap_other.go | 25 + .../x/telemetry/internal/mmap/mmap_unix.go | 47 + .../x/telemetry/internal/mmap/mmap_windows.go | 52 + .../telemetry/internal/telemetry/dateonly.go | 9 + .../x/telemetry/internal/telemetry/dir.go | 163 + .../telemetry/internal/telemetry/proginfo.go | 57 + .../x/telemetry/internal/telemetry/types.go | 51 + vendor/golang.org/x/text/unicode/bidi/core.go | 11 +- .../x/tools/cmd/goimports/goimports.go | 4 + .../x/tools/cmd/stringer/stringer.go | 41 +- .../x/tools/go/ast/astutil/enclosing.go | 23 +- .../x/tools/go/ast/astutil/imports.go | 67 +- .../x/tools/go/ast/astutil/rewrite.go | 4 + vendor/golang.org/x/tools/go/ast/edge/edge.go | 295 + .../x/tools/go/ast/inspector/cursor.go | 502 + .../x/tools/go/ast/inspector/inspector.go | 311 + .../x/tools/go/ast/inspector/iter.go | 85 + .../x/tools/go/ast/inspector/typeof.go | 227 + .../x/tools/go/ast/inspector/walk.go | 341 + vendor/golang.org/x/tools/go/packages/doc.go | 2 + .../golang.org/x/tools/go/packages/golist.go | 26 +- .../x/tools/go/packages/golist_overlay.go | 2 +- .../x/tools/go/packages/packages.go | 14 - .../golang.org/x/tools/go/packages/visit.go | 85 +- .../x/tools/go/types/objectpath/objectpath.go | 7 +- .../x/tools/go/types/typeutil/callee.go | 4 +- .../x/tools/go/types/typeutil/map.go | 19 +- .../x/tools/internal/event/core/event.go | 5 - .../x/tools/internal/gcimporter/iexport.go | 1 - .../internal/gcimporter/iimport_go122.go | 53 - .../x/tools/internal/imports/fix.go | 11 +- .../x/tools/internal/imports/imports.go | 2 +- .../tools/internal/imports/source_modindex.go | 47 +- .../x/tools/internal/modindex/directories.go | 148 +- .../x/tools/internal/modindex/index.go | 233 +- .../x/tools/internal/modindex/lookup.go | 18 +- .../x/tools/internal/modindex/modindex.go | 205 +- .../x/tools/internal/modindex/symbols.go | 76 +- .../x/tools/internal/modindex/types.go | 25 - .../internal/packagesinternal/packages.go | 9 +- .../x/tools/internal/stdlib/deps.go | 598 +- .../x/tools/internal/stdlib/manifest.go | 34669 ++++++++-------- .../x/tools/internal/stdlib/stdlib.go | 8 + .../internal/typesinternal/classify_call.go | 8 +- .../x/tools/internal/typesinternal/fx.go | 49 + .../x/tools/internal/typesinternal/isnamed.go | 71 + .../tools/internal/typesinternal/qualifier.go | 8 + .../x/tools/internal/typesinternal/types.go | 109 +- .../tools/internal/typesinternal/zerovalue.go | 17 +- vendor/modules.txt | 36 +- 191 files changed, 26449 insertions(+), 25876 deletions(-) create mode 100644 vendor/golang.org/x/crypto/blake2b/go125.go delete mode 100644 vendor/golang.org/x/crypto/sha3/doc.go delete mode 100644 vendor/golang.org/x/crypto/sha3/hashes_noasm.go delete mode 100644 vendor/golang.org/x/crypto/sha3/keccakf_amd64.go delete mode 100644 vendor/golang.org/x/crypto/sha3/keccakf_amd64.s rename vendor/golang.org/x/crypto/sha3/{sha3.go => legacy_hash.go} (83%) rename vendor/golang.org/x/crypto/sha3/{keccakf.go => legacy_keccakf.go} (98%) delete mode 100644 vendor/golang.org/x/crypto/sha3/sha3_s390x.go delete mode 100644 vendor/golang.org/x/crypto/sha3/sha3_s390x.s delete mode 100644 vendor/golang.org/x/crypto/sha3/shake_noasm.go create mode 100644 vendor/golang.org/x/crypto/ssh/mlkem.go delete mode 100644 vendor/golang.org/x/net/http2/config_go124.go create mode 100644 vendor/golang.org/x/net/http2/config_go125.go create mode 100644 vendor/golang.org/x/net/http2/config_go126.go delete mode 100644 vendor/golang.org/x/net/http2/config_pre_go124.go delete mode 100644 vendor/golang.org/x/net/http2/timer.go rename vendor/golang.org/x/net/http2/{writesched_priority.go => writesched_priority_rfc7540.go} (77%) create mode 100644 vendor/golang.org/x/net/http2/writesched_priority_rfc9218.go create mode 100644 vendor/golang.org/x/telemetry/LICENSE create mode 100644 vendor/golang.org/x/telemetry/PATENTS create mode 100644 vendor/golang.org/x/telemetry/counter/counter.go create mode 100644 vendor/golang.org/x/telemetry/counter/doc.go create mode 100644 vendor/golang.org/x/telemetry/internal/counter/counter.go create mode 100644 vendor/golang.org/x/telemetry/internal/counter/file.go create mode 100644 vendor/golang.org/x/telemetry/internal/counter/parse.go create mode 100644 vendor/golang.org/x/telemetry/internal/counter/stackcounter.go create mode 100644 vendor/golang.org/x/telemetry/internal/mmap/mmap.go create mode 100644 vendor/golang.org/x/telemetry/internal/mmap/mmap_other.go create mode 100644 vendor/golang.org/x/telemetry/internal/mmap/mmap_unix.go create mode 100644 vendor/golang.org/x/telemetry/internal/mmap/mmap_windows.go create mode 100644 vendor/golang.org/x/telemetry/internal/telemetry/dateonly.go create mode 100644 vendor/golang.org/x/telemetry/internal/telemetry/dir.go create mode 100644 vendor/golang.org/x/telemetry/internal/telemetry/proginfo.go create mode 100644 vendor/golang.org/x/telemetry/internal/telemetry/types.go create mode 100644 vendor/golang.org/x/tools/go/ast/edge/edge.go create mode 100644 vendor/golang.org/x/tools/go/ast/inspector/cursor.go create mode 100644 vendor/golang.org/x/tools/go/ast/inspector/inspector.go create mode 100644 vendor/golang.org/x/tools/go/ast/inspector/iter.go create mode 100644 vendor/golang.org/x/tools/go/ast/inspector/typeof.go create mode 100644 vendor/golang.org/x/tools/go/ast/inspector/walk.go delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go delete mode 100644 vendor/golang.org/x/tools/internal/modindex/types.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/fx.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/isnamed.go diff --git a/go.mod b/go.mod index b574a51b0..c92784e75 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,6 @@ module github.com/CiscoDevNet/terraform-provider-aci/v2 -go 1.23.0 - -toolchain go1.24.0 +go 1.24.0 require ( github.com/ciscoecosystem/aci-go-client/v2 v2.32.0 @@ -18,8 +16,8 @@ require ( github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.1 github.com/hashicorp/terraform-plugin-testing v1.12.0 golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 - golang.org/x/text v0.24.0 - golang.org/x/tools v0.32.0 + golang.org/x/text v0.31.0 + golang.org/x/tools v0.38.0 gopkg.in/yaml.v2 v2.4.0 ) @@ -59,11 +57,12 @@ require ( github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect github.com/zclconf/go-cty v1.16.2 // indirect - golang.org/x/crypto v0.37.0 // indirect - golang.org/x/mod v0.24.0 // indirect - golang.org/x/net v0.39.0 // indirect - golang.org/x/sync v0.13.0 // indirect - golang.org/x/sys v0.32.0 // indirect + golang.org/x/crypto v0.45.0 // indirect + golang.org/x/mod v0.29.0 // indirect + golang.org/x/net v0.47.0 // indirect + golang.org/x/sync v0.18.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53 // indirect google.golang.org/grpc v1.69.4 // indirect diff --git a/go.sum b/go.sum index 123acc540..c38a84f39 100644 --- a/go.sum +++ b/go.sum @@ -180,24 +180,24 @@ go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HY go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= -golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= +golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= +golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= -golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= 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= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= -golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -210,23 +210,25 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc 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.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8 h1:LvzTn0GQhWuvKH/kVRS3R3bVAsdQWI7hvfLHGgh9+lU= +golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8/go.mod h1:Pi4ztBfryZoJEkyFTI5/Ocsu2jXyDr6iSdgJiYE/uwE= 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.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= -golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= +golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= +golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= -golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= 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.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU= -golang.org/x/tools v0.32.0/go.mod h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s= +golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= diff --git a/vendor/golang.org/x/crypto/argon2/argon2.go b/vendor/golang.org/x/crypto/argon2/argon2.go index 29f0a2de4..2b65ec91a 100644 --- a/vendor/golang.org/x/crypto/argon2/argon2.go +++ b/vendor/golang.org/x/crypto/argon2/argon2.go @@ -6,7 +6,7 @@ // Argon2 was selected as the winner of the Password Hashing Competition and can // be used to derive cryptographic keys from passwords. // -// For a detailed specification of Argon2 see [1]. +// For a detailed specification of Argon2 see [argon2-specs.pdf]. // // If you aren't sure which function you need, use Argon2id (IDKey) and // the parameter recommendations for your scenario. @@ -17,7 +17,7 @@ // It uses data-independent memory access, which is preferred for password // hashing and password-based key derivation. Argon2i requires more passes over // memory than Argon2id to protect from trade-off attacks. The recommended -// parameters (taken from [2]) for non-interactive operations are time=3 and to +// parameters (taken from [RFC 9106 Section 7.3]) for non-interactive operations are time=3 and to // use the maximum available memory. // // # Argon2id @@ -27,11 +27,11 @@ // half of the first iteration over the memory and data-dependent memory access // for the rest. Argon2id is side-channel resistant and provides better brute- // force cost savings due to time-memory tradeoffs than Argon2i. The recommended -// parameters for non-interactive operations (taken from [2]) are time=1 and to +// parameters for non-interactive operations (taken from [RFC 9106 Section 7.3]) are time=1 and to // use the maximum available memory. // -// [1] https://github.com/P-H-C/phc-winner-argon2/blob/master/argon2-specs.pdf -// [2] https://tools.ietf.org/html/draft-irtf-cfrg-argon2-03#section-9.3 +// [argon2-specs.pdf]: https://github.com/P-H-C/phc-winner-argon2/blob/master/argon2-specs.pdf +// [RFC 9106 Section 7.3]: https://www.rfc-editor.org/rfc/rfc9106.html#section-7.3 package argon2 import ( @@ -59,7 +59,7 @@ const ( // // key := argon2.Key([]byte("some password"), salt, 3, 32*1024, 4, 32) // -// The draft RFC recommends[2] time=3, and memory=32*1024 is a sensible number. +// [RFC 9106 Section 7.3] recommends time=3, and memory=32*1024 as a sensible number. // If using that amount of memory (32 MB) is not possible in some contexts then // the time parameter can be increased to compensate. // @@ -69,6 +69,8 @@ const ( // adjusted to the number of available CPUs. The cost parameters should be // increased as memory latency and CPU parallelism increases. Remember to get a // good random salt. +// +// [RFC 9106 Section 7.3]: https://www.rfc-editor.org/rfc/rfc9106.html#section-7.3 func Key(password, salt []byte, time, memory uint32, threads uint8, keyLen uint32) []byte { return deriveKey(argon2i, password, salt, nil, nil, time, memory, threads, keyLen) } @@ -83,7 +85,7 @@ func Key(password, salt []byte, time, memory uint32, threads uint8, keyLen uint3 // // key := argon2.IDKey([]byte("some password"), salt, 1, 64*1024, 4, 32) // -// The draft RFC recommends[2] time=1, and memory=64*1024 is a sensible number. +// [RFC 9106 Section 7.3] recommends time=1, and memory=64*1024 as a sensible number. // If using that amount of memory (64 MB) is not possible in some contexts then // the time parameter can be increased to compensate. // @@ -93,6 +95,8 @@ func Key(password, salt []byte, time, memory uint32, threads uint8, keyLen uint3 // adjusted to the numbers of available CPUs. The cost parameters should be // increased as memory latency and CPU parallelism increases. Remember to get a // good random salt. +// +// [RFC 9106 Section 7.3]: https://www.rfc-editor.org/rfc/rfc9106.html#section-7.3 func IDKey(password, salt []byte, time, memory uint32, threads uint8, keyLen uint32) []byte { return deriveKey(argon2id, password, salt, nil, nil, time, memory, threads, keyLen) } diff --git a/vendor/golang.org/x/crypto/blake2b/blake2x.go b/vendor/golang.org/x/crypto/blake2b/blake2x.go index 52c414db0..7692bb346 100644 --- a/vendor/golang.org/x/crypto/blake2b/blake2x.go +++ b/vendor/golang.org/x/crypto/blake2b/blake2x.go @@ -12,6 +12,8 @@ import ( // XOF defines the interface to hash functions that // support arbitrary-length output. +// +// New callers should prefer the standard library [hash.XOF]. type XOF interface { // Write absorbs more data into the hash's state. It panics if called // after Read. @@ -47,6 +49,8 @@ const maxOutputLength = (1 << 32) * 64 // // A non-nil key turns the hash into a MAC. The key must between // zero and 32 bytes long. +// +// The result can be safely interface-upgraded to [hash.XOF]. func NewXOF(size uint32, key []byte) (XOF, error) { if len(key) > Size { return nil, errKeySize @@ -93,6 +97,10 @@ func (x *xof) Clone() XOF { return &clone } +func (x *xof) BlockSize() int { + return x.d.BlockSize() +} + func (x *xof) Reset() { x.cfg[0] = byte(Size) binary.LittleEndian.PutUint32(x.cfg[4:], uint32(Size)) // leaf length diff --git a/vendor/golang.org/x/crypto/blake2b/go125.go b/vendor/golang.org/x/crypto/blake2b/go125.go new file mode 100644 index 000000000..67e990b7e --- /dev/null +++ b/vendor/golang.org/x/crypto/blake2b/go125.go @@ -0,0 +1,11 @@ +// Copyright 2025 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 go1.25 + +package blake2b + +import "hash" + +var _ hash.XOF = (*xof)(nil) diff --git a/vendor/golang.org/x/crypto/chacha20/chacha_arm64.s b/vendor/golang.org/x/crypto/chacha20/chacha_arm64.s index 7dd2638e8..769af387e 100644 --- a/vendor/golang.org/x/crypto/chacha20/chacha_arm64.s +++ b/vendor/golang.org/x/crypto/chacha20/chacha_arm64.s @@ -29,7 +29,7 @@ loop: MOVD $NUM_ROUNDS, R21 VLD1 (R11), [V30.S4, V31.S4] - // load contants + // load constants // VLD4R (R10), [V0.S4, V1.S4, V2.S4, V3.S4] WORD $0x4D60E940 diff --git a/vendor/golang.org/x/crypto/curve25519/curve25519.go b/vendor/golang.org/x/crypto/curve25519/curve25519.go index 21ca3b2ee..048faef3a 100644 --- a/vendor/golang.org/x/crypto/curve25519/curve25519.go +++ b/vendor/golang.org/x/crypto/curve25519/curve25519.go @@ -3,11 +3,14 @@ // license that can be found in the LICENSE file. // Package curve25519 provides an implementation of the X25519 function, which -// performs scalar multiplication on the elliptic curve known as Curve25519. -// See RFC 7748. +// performs scalar multiplication on the elliptic curve known as Curve25519 +// according to [RFC 7748]. // -// This package is a wrapper for the X25519 implementation -// in the crypto/ecdh package. +// The curve25519 package is a wrapper for the X25519 implementation in the +// crypto/ecdh package. It is [frozen] and is not accepting new features. +// +// [RFC 7748]: https://datatracker.ietf.org/doc/html/rfc7748 +// [frozen]: https://go.dev/wiki/Frozen package curve25519 import "crypto/ecdh" @@ -36,7 +39,7 @@ func ScalarBaseMult(dst, scalar *[32]byte) { curve := ecdh.X25519() priv, err := curve.NewPrivateKey(scalar[:]) if err != nil { - panic("curve25519: internal error: scalarBaseMult was not 32 bytes") + panic("curve25519: " + err.Error()) } copy(dst[:], priv.PublicKey().Bytes()) } diff --git a/vendor/golang.org/x/crypto/sha3/doc.go b/vendor/golang.org/x/crypto/sha3/doc.go deleted file mode 100644 index bbf391fe6..000000000 --- a/vendor/golang.org/x/crypto/sha3/doc.go +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2014 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. - -// Package sha3 implements the SHA-3 fixed-output-length hash functions and -// the SHAKE variable-output-length hash functions defined by FIPS-202. -// -// All types in this package also implement [encoding.BinaryMarshaler], -// [encoding.BinaryAppender] and [encoding.BinaryUnmarshaler] to marshal and -// unmarshal the internal state of the hash. -// -// Both types of hash function use the "sponge" construction and the Keccak -// permutation. For a detailed specification see http://keccak.noekeon.org/ -// -// # Guidance -// -// If you aren't sure what function you need, use SHAKE256 with at least 64 -// bytes of output. The SHAKE instances are faster than the SHA3 instances; -// the latter have to allocate memory to conform to the hash.Hash interface. -// -// If you need a secret-key MAC (message authentication code), prepend the -// secret key to the input, hash with SHAKE256 and read at least 32 bytes of -// output. -// -// # Security strengths -// -// The SHA3-x (x equals 224, 256, 384, or 512) functions have a security -// strength against preimage attacks of x bits. Since they only produce "x" -// bits of output, their collision-resistance is only "x/2" bits. -// -// The SHAKE-256 and -128 functions have a generic security strength of 256 and -// 128 bits against all attacks, provided that at least 2x bits of their output -// is used. Requesting more than 64 or 32 bytes of output, respectively, does -// not increase the collision-resistance of the SHAKE functions. -// -// # The sponge construction -// -// A sponge builds a pseudo-random function from a public pseudo-random -// permutation, by applying the permutation to a state of "rate + capacity" -// bytes, but hiding "capacity" of the bytes. -// -// A sponge starts out with a zero state. To hash an input using a sponge, up -// to "rate" bytes of the input are XORed into the sponge's state. The sponge -// is then "full" and the permutation is applied to "empty" it. This process is -// repeated until all the input has been "absorbed". The input is then padded. -// The digest is "squeezed" from the sponge in the same way, except that output -// is copied out instead of input being XORed in. -// -// A sponge is parameterized by its generic security strength, which is equal -// to half its capacity; capacity + rate is equal to the permutation's width. -// Since the KeccakF-1600 permutation is 1600 bits (200 bytes) wide, this means -// that the security strength of a sponge instance is equal to (1600 - bitrate) / 2. -// -// # Recommendations -// -// The SHAKE functions are recommended for most new uses. They can produce -// output of arbitrary length. SHAKE256, with an output length of at least -// 64 bytes, provides 256-bit security against all attacks. The Keccak team -// recommends it for most applications upgrading from SHA2-512. (NIST chose a -// much stronger, but much slower, sponge instance for SHA3-512.) -// -// The SHA-3 functions are "drop-in" replacements for the SHA-2 functions. -// They produce output of the same length, with the same security strengths -// against all attacks. This means, in particular, that SHA3-256 only has -// 128-bit collision resistance, because its output length is 32 bytes. -package sha3 diff --git a/vendor/golang.org/x/crypto/sha3/hashes.go b/vendor/golang.org/x/crypto/sha3/hashes.go index 31fffbe04..a51269d91 100644 --- a/vendor/golang.org/x/crypto/sha3/hashes.go +++ b/vendor/golang.org/x/crypto/sha3/hashes.go @@ -2,127 +2,94 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// Package sha3 implements the SHA-3 hash algorithms and the SHAKE extendable +// output functions defined in FIPS 202. +// +// Most of this package is a wrapper around the crypto/sha3 package in the +// standard library. The only exception is the legacy Keccak hash functions. package sha3 -// This file provides functions for creating instances of the SHA-3 -// and SHAKE hash functions, as well as utility functions for hashing -// bytes. - import ( - "crypto" + "crypto/sha3" "hash" ) // New224 creates a new SHA3-224 hash. // Its generic security strength is 224 bits against preimage attacks, // and 112 bits against collision attacks. +// +// It is a wrapper for the [sha3.New224] function in the standard library. +// +//go:fix inline func New224() hash.Hash { - return new224() + return sha3.New224() } // New256 creates a new SHA3-256 hash. // Its generic security strength is 256 bits against preimage attacks, // and 128 bits against collision attacks. +// +// It is a wrapper for the [sha3.New256] function in the standard library. +// +//go:fix inline func New256() hash.Hash { - return new256() + return sha3.New256() } // New384 creates a new SHA3-384 hash. // Its generic security strength is 384 bits against preimage attacks, // and 192 bits against collision attacks. +// +// It is a wrapper for the [sha3.New384] function in the standard library. +// +//go:fix inline func New384() hash.Hash { - return new384() + return sha3.New384() } // New512 creates a new SHA3-512 hash. // Its generic security strength is 512 bits against preimage attacks, // and 256 bits against collision attacks. -func New512() hash.Hash { - return new512() -} - -func init() { - crypto.RegisterHash(crypto.SHA3_224, New224) - crypto.RegisterHash(crypto.SHA3_256, New256) - crypto.RegisterHash(crypto.SHA3_384, New384) - crypto.RegisterHash(crypto.SHA3_512, New512) -} - -const ( - dsbyteSHA3 = 0b00000110 - dsbyteKeccak = 0b00000001 - dsbyteShake = 0b00011111 - dsbyteCShake = 0b00000100 - - // rateK[c] is the rate in bytes for Keccak[c] where c is the capacity in - // bits. Given the sponge size is 1600 bits, the rate is 1600 - c bits. - rateK256 = (1600 - 256) / 8 - rateK448 = (1600 - 448) / 8 - rateK512 = (1600 - 512) / 8 - rateK768 = (1600 - 768) / 8 - rateK1024 = (1600 - 1024) / 8 -) - -func new224Generic() *state { - return &state{rate: rateK448, outputLen: 28, dsbyte: dsbyteSHA3} -} - -func new256Generic() *state { - return &state{rate: rateK512, outputLen: 32, dsbyte: dsbyteSHA3} -} - -func new384Generic() *state { - return &state{rate: rateK768, outputLen: 48, dsbyte: dsbyteSHA3} -} - -func new512Generic() *state { - return &state{rate: rateK1024, outputLen: 64, dsbyte: dsbyteSHA3} -} - -// NewLegacyKeccak256 creates a new Keccak-256 hash. // -// Only use this function if you require compatibility with an existing cryptosystem -// that uses non-standard padding. All other users should use New256 instead. -func NewLegacyKeccak256() hash.Hash { - return &state{rate: rateK512, outputLen: 32, dsbyte: dsbyteKeccak} -} - -// NewLegacyKeccak512 creates a new Keccak-512 hash. +// It is a wrapper for the [sha3.New512] function in the standard library. // -// Only use this function if you require compatibility with an existing cryptosystem -// that uses non-standard padding. All other users should use New512 instead. -func NewLegacyKeccak512() hash.Hash { - return &state{rate: rateK1024, outputLen: 64, dsbyte: dsbyteKeccak} +//go:fix inline +func New512() hash.Hash { + return sha3.New512() } // Sum224 returns the SHA3-224 digest of the data. -func Sum224(data []byte) (digest [28]byte) { - h := New224() - h.Write(data) - h.Sum(digest[:0]) - return +// +// It is a wrapper for the [sha3.Sum224] function in the standard library. +// +//go:fix inline +func Sum224(data []byte) [28]byte { + return sha3.Sum224(data) } // Sum256 returns the SHA3-256 digest of the data. -func Sum256(data []byte) (digest [32]byte) { - h := New256() - h.Write(data) - h.Sum(digest[:0]) - return +// +// It is a wrapper for the [sha3.Sum256] function in the standard library. +// +//go:fix inline +func Sum256(data []byte) [32]byte { + return sha3.Sum256(data) } // Sum384 returns the SHA3-384 digest of the data. -func Sum384(data []byte) (digest [48]byte) { - h := New384() - h.Write(data) - h.Sum(digest[:0]) - return +// +// It is a wrapper for the [sha3.Sum384] function in the standard library. +// +//go:fix inline +func Sum384(data []byte) [48]byte { + return sha3.Sum384(data) } // Sum512 returns the SHA3-512 digest of the data. -func Sum512(data []byte) (digest [64]byte) { - h := New512() - h.Write(data) - h.Sum(digest[:0]) - return +// +// It is a wrapper for the [sha3.Sum512] function in the standard library. +// +//go:fix inline +func Sum512(data []byte) [64]byte { + return sha3.Sum512(data) } diff --git a/vendor/golang.org/x/crypto/sha3/hashes_noasm.go b/vendor/golang.org/x/crypto/sha3/hashes_noasm.go deleted file mode 100644 index 9d85fb621..000000000 --- a/vendor/golang.org/x/crypto/sha3/hashes_noasm.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2023 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 || !s390x - -package sha3 - -func new224() *state { - return new224Generic() -} - -func new256() *state { - return new256Generic() -} - -func new384() *state { - return new384Generic() -} - -func new512() *state { - return new512Generic() -} diff --git a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go deleted file mode 100644 index b908696be..000000000 --- a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2015 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 amd64 && !purego && gc - -package sha3 - -// This function is implemented in keccakf_amd64.s. - -//go:noescape - -func keccakF1600(a *[25]uint64) diff --git a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s deleted file mode 100644 index 99e2f16e9..000000000 --- a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s +++ /dev/null @@ -1,5419 +0,0 @@ -// Code generated by command: go run keccakf_amd64_asm.go -out ../keccakf_amd64.s -pkg sha3. DO NOT EDIT. - -//go:build amd64 && !purego && gc - -// func keccakF1600(a *[25]uint64) -TEXT ·keccakF1600(SB), $200-8 - MOVQ a+0(FP), DI - - // Convert the user state into an internal state - NOTQ 8(DI) - NOTQ 16(DI) - NOTQ 64(DI) - NOTQ 96(DI) - NOTQ 136(DI) - NOTQ 160(DI) - - // Execute the KeccakF permutation - MOVQ (DI), SI - MOVQ 8(DI), BP - MOVQ 32(DI), R15 - XORQ 40(DI), SI - XORQ 48(DI), BP - XORQ 72(DI), R15 - XORQ 80(DI), SI - XORQ 88(DI), BP - XORQ 112(DI), R15 - XORQ 120(DI), SI - XORQ 128(DI), BP - XORQ 152(DI), R15 - XORQ 160(DI), SI - XORQ 168(DI), BP - MOVQ 176(DI), DX - MOVQ 184(DI), R8 - XORQ 192(DI), R15 - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(DI), R12 - XORQ 56(DI), DX - XORQ R15, BX - XORQ 96(DI), R12 - XORQ 136(DI), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(DI), R13 - XORQ 64(DI), R8 - XORQ SI, CX - XORQ 104(DI), R13 - XORQ 144(DI), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (DI), R10 - MOVQ 48(DI), R11 - XORQ R13, R9 - MOVQ 96(DI), R12 - MOVQ 144(DI), R13 - MOVQ 192(DI), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x0000000000000001, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (SP) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(SP) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(SP) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(SP) - MOVQ R12, 8(SP) - MOVQ R12, BP - - // Result g - MOVQ 72(DI), R11 - XORQ R9, R11 - MOVQ 80(DI), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(DI), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(DI), R13 - MOVQ 176(DI), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(SP) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(SP) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(SP) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(SP) - - // Result k - MOVQ 8(DI), R10 - MOVQ 56(DI), R11 - MOVQ 104(DI), R12 - MOVQ 152(DI), R13 - MOVQ 160(DI), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(SP) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(SP) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(SP) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(SP) - XORQ R10, R15 - - // Result m - MOVQ 40(DI), R11 - XORQ BX, R11 - MOVQ 88(DI), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(DI), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(DI), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(DI), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(SP) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(SP) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(SP) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(SP) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(SP) - XORQ R11, R15 - - // Result s - MOVQ 16(DI), R10 - MOVQ 64(DI), R11 - MOVQ 112(DI), R12 - XORQ DX, R10 - MOVQ 120(DI), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(DI), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(SP) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(SP) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(SP) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(SP) - MOVQ R8, 184(SP) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(SP), R12 - XORQ 56(SP), DX - XORQ R15, BX - XORQ 96(SP), R12 - XORQ 136(SP), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(SP), R13 - XORQ 64(SP), R8 - XORQ SI, CX - XORQ 104(SP), R13 - XORQ 144(SP), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (SP), R10 - MOVQ 48(SP), R11 - XORQ R13, R9 - MOVQ 96(SP), R12 - MOVQ 144(SP), R13 - MOVQ 192(SP), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x0000000000008082, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (DI) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(DI) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(DI) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(DI) - MOVQ R12, 8(DI) - MOVQ R12, BP - - // Result g - MOVQ 72(SP), R11 - XORQ R9, R11 - MOVQ 80(SP), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(SP), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(SP), R13 - MOVQ 176(SP), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(DI) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(DI) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(DI) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(DI) - - // Result k - MOVQ 8(SP), R10 - MOVQ 56(SP), R11 - MOVQ 104(SP), R12 - MOVQ 152(SP), R13 - MOVQ 160(SP), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(DI) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(DI) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(DI) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(DI) - XORQ R10, R15 - - // Result m - MOVQ 40(SP), R11 - XORQ BX, R11 - MOVQ 88(SP), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(SP), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(SP), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(SP), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(DI) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(DI) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(DI) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(DI) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(DI) - XORQ R11, R15 - - // Result s - MOVQ 16(SP), R10 - MOVQ 64(SP), R11 - MOVQ 112(SP), R12 - XORQ DX, R10 - MOVQ 120(SP), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(SP), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(DI) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(DI) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(DI) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(DI) - MOVQ R8, 184(DI) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(DI), R12 - XORQ 56(DI), DX - XORQ R15, BX - XORQ 96(DI), R12 - XORQ 136(DI), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(DI), R13 - XORQ 64(DI), R8 - XORQ SI, CX - XORQ 104(DI), R13 - XORQ 144(DI), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (DI), R10 - MOVQ 48(DI), R11 - XORQ R13, R9 - MOVQ 96(DI), R12 - MOVQ 144(DI), R13 - MOVQ 192(DI), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x800000000000808a, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (SP) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(SP) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(SP) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(SP) - MOVQ R12, 8(SP) - MOVQ R12, BP - - // Result g - MOVQ 72(DI), R11 - XORQ R9, R11 - MOVQ 80(DI), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(DI), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(DI), R13 - MOVQ 176(DI), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(SP) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(SP) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(SP) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(SP) - - // Result k - MOVQ 8(DI), R10 - MOVQ 56(DI), R11 - MOVQ 104(DI), R12 - MOVQ 152(DI), R13 - MOVQ 160(DI), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(SP) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(SP) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(SP) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(SP) - XORQ R10, R15 - - // Result m - MOVQ 40(DI), R11 - XORQ BX, R11 - MOVQ 88(DI), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(DI), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(DI), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(DI), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(SP) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(SP) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(SP) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(SP) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(SP) - XORQ R11, R15 - - // Result s - MOVQ 16(DI), R10 - MOVQ 64(DI), R11 - MOVQ 112(DI), R12 - XORQ DX, R10 - MOVQ 120(DI), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(DI), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(SP) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(SP) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(SP) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(SP) - MOVQ R8, 184(SP) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(SP), R12 - XORQ 56(SP), DX - XORQ R15, BX - XORQ 96(SP), R12 - XORQ 136(SP), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(SP), R13 - XORQ 64(SP), R8 - XORQ SI, CX - XORQ 104(SP), R13 - XORQ 144(SP), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (SP), R10 - MOVQ 48(SP), R11 - XORQ R13, R9 - MOVQ 96(SP), R12 - MOVQ 144(SP), R13 - MOVQ 192(SP), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x8000000080008000, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (DI) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(DI) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(DI) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(DI) - MOVQ R12, 8(DI) - MOVQ R12, BP - - // Result g - MOVQ 72(SP), R11 - XORQ R9, R11 - MOVQ 80(SP), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(SP), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(SP), R13 - MOVQ 176(SP), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(DI) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(DI) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(DI) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(DI) - - // Result k - MOVQ 8(SP), R10 - MOVQ 56(SP), R11 - MOVQ 104(SP), R12 - MOVQ 152(SP), R13 - MOVQ 160(SP), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(DI) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(DI) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(DI) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(DI) - XORQ R10, R15 - - // Result m - MOVQ 40(SP), R11 - XORQ BX, R11 - MOVQ 88(SP), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(SP), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(SP), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(SP), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(DI) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(DI) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(DI) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(DI) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(DI) - XORQ R11, R15 - - // Result s - MOVQ 16(SP), R10 - MOVQ 64(SP), R11 - MOVQ 112(SP), R12 - XORQ DX, R10 - MOVQ 120(SP), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(SP), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(DI) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(DI) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(DI) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(DI) - MOVQ R8, 184(DI) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(DI), R12 - XORQ 56(DI), DX - XORQ R15, BX - XORQ 96(DI), R12 - XORQ 136(DI), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(DI), R13 - XORQ 64(DI), R8 - XORQ SI, CX - XORQ 104(DI), R13 - XORQ 144(DI), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (DI), R10 - MOVQ 48(DI), R11 - XORQ R13, R9 - MOVQ 96(DI), R12 - MOVQ 144(DI), R13 - MOVQ 192(DI), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x000000000000808b, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (SP) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(SP) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(SP) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(SP) - MOVQ R12, 8(SP) - MOVQ R12, BP - - // Result g - MOVQ 72(DI), R11 - XORQ R9, R11 - MOVQ 80(DI), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(DI), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(DI), R13 - MOVQ 176(DI), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(SP) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(SP) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(SP) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(SP) - - // Result k - MOVQ 8(DI), R10 - MOVQ 56(DI), R11 - MOVQ 104(DI), R12 - MOVQ 152(DI), R13 - MOVQ 160(DI), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(SP) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(SP) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(SP) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(SP) - XORQ R10, R15 - - // Result m - MOVQ 40(DI), R11 - XORQ BX, R11 - MOVQ 88(DI), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(DI), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(DI), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(DI), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(SP) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(SP) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(SP) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(SP) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(SP) - XORQ R11, R15 - - // Result s - MOVQ 16(DI), R10 - MOVQ 64(DI), R11 - MOVQ 112(DI), R12 - XORQ DX, R10 - MOVQ 120(DI), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(DI), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(SP) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(SP) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(SP) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(SP) - MOVQ R8, 184(SP) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(SP), R12 - XORQ 56(SP), DX - XORQ R15, BX - XORQ 96(SP), R12 - XORQ 136(SP), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(SP), R13 - XORQ 64(SP), R8 - XORQ SI, CX - XORQ 104(SP), R13 - XORQ 144(SP), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (SP), R10 - MOVQ 48(SP), R11 - XORQ R13, R9 - MOVQ 96(SP), R12 - MOVQ 144(SP), R13 - MOVQ 192(SP), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x0000000080000001, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (DI) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(DI) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(DI) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(DI) - MOVQ R12, 8(DI) - MOVQ R12, BP - - // Result g - MOVQ 72(SP), R11 - XORQ R9, R11 - MOVQ 80(SP), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(SP), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(SP), R13 - MOVQ 176(SP), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(DI) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(DI) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(DI) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(DI) - - // Result k - MOVQ 8(SP), R10 - MOVQ 56(SP), R11 - MOVQ 104(SP), R12 - MOVQ 152(SP), R13 - MOVQ 160(SP), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(DI) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(DI) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(DI) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(DI) - XORQ R10, R15 - - // Result m - MOVQ 40(SP), R11 - XORQ BX, R11 - MOVQ 88(SP), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(SP), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(SP), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(SP), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(DI) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(DI) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(DI) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(DI) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(DI) - XORQ R11, R15 - - // Result s - MOVQ 16(SP), R10 - MOVQ 64(SP), R11 - MOVQ 112(SP), R12 - XORQ DX, R10 - MOVQ 120(SP), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(SP), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(DI) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(DI) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(DI) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(DI) - MOVQ R8, 184(DI) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(DI), R12 - XORQ 56(DI), DX - XORQ R15, BX - XORQ 96(DI), R12 - XORQ 136(DI), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(DI), R13 - XORQ 64(DI), R8 - XORQ SI, CX - XORQ 104(DI), R13 - XORQ 144(DI), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (DI), R10 - MOVQ 48(DI), R11 - XORQ R13, R9 - MOVQ 96(DI), R12 - MOVQ 144(DI), R13 - MOVQ 192(DI), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x8000000080008081, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (SP) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(SP) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(SP) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(SP) - MOVQ R12, 8(SP) - MOVQ R12, BP - - // Result g - MOVQ 72(DI), R11 - XORQ R9, R11 - MOVQ 80(DI), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(DI), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(DI), R13 - MOVQ 176(DI), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(SP) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(SP) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(SP) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(SP) - - // Result k - MOVQ 8(DI), R10 - MOVQ 56(DI), R11 - MOVQ 104(DI), R12 - MOVQ 152(DI), R13 - MOVQ 160(DI), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(SP) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(SP) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(SP) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(SP) - XORQ R10, R15 - - // Result m - MOVQ 40(DI), R11 - XORQ BX, R11 - MOVQ 88(DI), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(DI), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(DI), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(DI), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(SP) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(SP) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(SP) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(SP) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(SP) - XORQ R11, R15 - - // Result s - MOVQ 16(DI), R10 - MOVQ 64(DI), R11 - MOVQ 112(DI), R12 - XORQ DX, R10 - MOVQ 120(DI), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(DI), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(SP) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(SP) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(SP) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(SP) - MOVQ R8, 184(SP) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(SP), R12 - XORQ 56(SP), DX - XORQ R15, BX - XORQ 96(SP), R12 - XORQ 136(SP), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(SP), R13 - XORQ 64(SP), R8 - XORQ SI, CX - XORQ 104(SP), R13 - XORQ 144(SP), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (SP), R10 - MOVQ 48(SP), R11 - XORQ R13, R9 - MOVQ 96(SP), R12 - MOVQ 144(SP), R13 - MOVQ 192(SP), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x8000000000008009, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (DI) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(DI) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(DI) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(DI) - MOVQ R12, 8(DI) - MOVQ R12, BP - - // Result g - MOVQ 72(SP), R11 - XORQ R9, R11 - MOVQ 80(SP), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(SP), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(SP), R13 - MOVQ 176(SP), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(DI) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(DI) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(DI) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(DI) - - // Result k - MOVQ 8(SP), R10 - MOVQ 56(SP), R11 - MOVQ 104(SP), R12 - MOVQ 152(SP), R13 - MOVQ 160(SP), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(DI) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(DI) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(DI) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(DI) - XORQ R10, R15 - - // Result m - MOVQ 40(SP), R11 - XORQ BX, R11 - MOVQ 88(SP), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(SP), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(SP), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(SP), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(DI) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(DI) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(DI) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(DI) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(DI) - XORQ R11, R15 - - // Result s - MOVQ 16(SP), R10 - MOVQ 64(SP), R11 - MOVQ 112(SP), R12 - XORQ DX, R10 - MOVQ 120(SP), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(SP), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(DI) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(DI) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(DI) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(DI) - MOVQ R8, 184(DI) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(DI), R12 - XORQ 56(DI), DX - XORQ R15, BX - XORQ 96(DI), R12 - XORQ 136(DI), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(DI), R13 - XORQ 64(DI), R8 - XORQ SI, CX - XORQ 104(DI), R13 - XORQ 144(DI), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (DI), R10 - MOVQ 48(DI), R11 - XORQ R13, R9 - MOVQ 96(DI), R12 - MOVQ 144(DI), R13 - MOVQ 192(DI), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x000000000000008a, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (SP) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(SP) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(SP) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(SP) - MOVQ R12, 8(SP) - MOVQ R12, BP - - // Result g - MOVQ 72(DI), R11 - XORQ R9, R11 - MOVQ 80(DI), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(DI), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(DI), R13 - MOVQ 176(DI), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(SP) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(SP) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(SP) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(SP) - - // Result k - MOVQ 8(DI), R10 - MOVQ 56(DI), R11 - MOVQ 104(DI), R12 - MOVQ 152(DI), R13 - MOVQ 160(DI), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(SP) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(SP) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(SP) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(SP) - XORQ R10, R15 - - // Result m - MOVQ 40(DI), R11 - XORQ BX, R11 - MOVQ 88(DI), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(DI), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(DI), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(DI), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(SP) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(SP) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(SP) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(SP) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(SP) - XORQ R11, R15 - - // Result s - MOVQ 16(DI), R10 - MOVQ 64(DI), R11 - MOVQ 112(DI), R12 - XORQ DX, R10 - MOVQ 120(DI), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(DI), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(SP) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(SP) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(SP) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(SP) - MOVQ R8, 184(SP) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(SP), R12 - XORQ 56(SP), DX - XORQ R15, BX - XORQ 96(SP), R12 - XORQ 136(SP), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(SP), R13 - XORQ 64(SP), R8 - XORQ SI, CX - XORQ 104(SP), R13 - XORQ 144(SP), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (SP), R10 - MOVQ 48(SP), R11 - XORQ R13, R9 - MOVQ 96(SP), R12 - MOVQ 144(SP), R13 - MOVQ 192(SP), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x0000000000000088, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (DI) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(DI) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(DI) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(DI) - MOVQ R12, 8(DI) - MOVQ R12, BP - - // Result g - MOVQ 72(SP), R11 - XORQ R9, R11 - MOVQ 80(SP), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(SP), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(SP), R13 - MOVQ 176(SP), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(DI) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(DI) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(DI) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(DI) - - // Result k - MOVQ 8(SP), R10 - MOVQ 56(SP), R11 - MOVQ 104(SP), R12 - MOVQ 152(SP), R13 - MOVQ 160(SP), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(DI) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(DI) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(DI) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(DI) - XORQ R10, R15 - - // Result m - MOVQ 40(SP), R11 - XORQ BX, R11 - MOVQ 88(SP), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(SP), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(SP), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(SP), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(DI) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(DI) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(DI) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(DI) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(DI) - XORQ R11, R15 - - // Result s - MOVQ 16(SP), R10 - MOVQ 64(SP), R11 - MOVQ 112(SP), R12 - XORQ DX, R10 - MOVQ 120(SP), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(SP), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(DI) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(DI) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(DI) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(DI) - MOVQ R8, 184(DI) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(DI), R12 - XORQ 56(DI), DX - XORQ R15, BX - XORQ 96(DI), R12 - XORQ 136(DI), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(DI), R13 - XORQ 64(DI), R8 - XORQ SI, CX - XORQ 104(DI), R13 - XORQ 144(DI), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (DI), R10 - MOVQ 48(DI), R11 - XORQ R13, R9 - MOVQ 96(DI), R12 - MOVQ 144(DI), R13 - MOVQ 192(DI), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x0000000080008009, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (SP) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(SP) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(SP) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(SP) - MOVQ R12, 8(SP) - MOVQ R12, BP - - // Result g - MOVQ 72(DI), R11 - XORQ R9, R11 - MOVQ 80(DI), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(DI), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(DI), R13 - MOVQ 176(DI), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(SP) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(SP) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(SP) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(SP) - - // Result k - MOVQ 8(DI), R10 - MOVQ 56(DI), R11 - MOVQ 104(DI), R12 - MOVQ 152(DI), R13 - MOVQ 160(DI), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(SP) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(SP) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(SP) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(SP) - XORQ R10, R15 - - // Result m - MOVQ 40(DI), R11 - XORQ BX, R11 - MOVQ 88(DI), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(DI), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(DI), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(DI), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(SP) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(SP) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(SP) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(SP) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(SP) - XORQ R11, R15 - - // Result s - MOVQ 16(DI), R10 - MOVQ 64(DI), R11 - MOVQ 112(DI), R12 - XORQ DX, R10 - MOVQ 120(DI), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(DI), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(SP) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(SP) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(SP) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(SP) - MOVQ R8, 184(SP) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(SP), R12 - XORQ 56(SP), DX - XORQ R15, BX - XORQ 96(SP), R12 - XORQ 136(SP), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(SP), R13 - XORQ 64(SP), R8 - XORQ SI, CX - XORQ 104(SP), R13 - XORQ 144(SP), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (SP), R10 - MOVQ 48(SP), R11 - XORQ R13, R9 - MOVQ 96(SP), R12 - MOVQ 144(SP), R13 - MOVQ 192(SP), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x000000008000000a, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (DI) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(DI) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(DI) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(DI) - MOVQ R12, 8(DI) - MOVQ R12, BP - - // Result g - MOVQ 72(SP), R11 - XORQ R9, R11 - MOVQ 80(SP), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(SP), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(SP), R13 - MOVQ 176(SP), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(DI) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(DI) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(DI) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(DI) - - // Result k - MOVQ 8(SP), R10 - MOVQ 56(SP), R11 - MOVQ 104(SP), R12 - MOVQ 152(SP), R13 - MOVQ 160(SP), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(DI) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(DI) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(DI) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(DI) - XORQ R10, R15 - - // Result m - MOVQ 40(SP), R11 - XORQ BX, R11 - MOVQ 88(SP), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(SP), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(SP), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(SP), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(DI) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(DI) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(DI) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(DI) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(DI) - XORQ R11, R15 - - // Result s - MOVQ 16(SP), R10 - MOVQ 64(SP), R11 - MOVQ 112(SP), R12 - XORQ DX, R10 - MOVQ 120(SP), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(SP), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(DI) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(DI) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(DI) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(DI) - MOVQ R8, 184(DI) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(DI), R12 - XORQ 56(DI), DX - XORQ R15, BX - XORQ 96(DI), R12 - XORQ 136(DI), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(DI), R13 - XORQ 64(DI), R8 - XORQ SI, CX - XORQ 104(DI), R13 - XORQ 144(DI), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (DI), R10 - MOVQ 48(DI), R11 - XORQ R13, R9 - MOVQ 96(DI), R12 - MOVQ 144(DI), R13 - MOVQ 192(DI), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x000000008000808b, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (SP) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(SP) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(SP) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(SP) - MOVQ R12, 8(SP) - MOVQ R12, BP - - // Result g - MOVQ 72(DI), R11 - XORQ R9, R11 - MOVQ 80(DI), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(DI), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(DI), R13 - MOVQ 176(DI), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(SP) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(SP) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(SP) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(SP) - - // Result k - MOVQ 8(DI), R10 - MOVQ 56(DI), R11 - MOVQ 104(DI), R12 - MOVQ 152(DI), R13 - MOVQ 160(DI), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(SP) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(SP) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(SP) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(SP) - XORQ R10, R15 - - // Result m - MOVQ 40(DI), R11 - XORQ BX, R11 - MOVQ 88(DI), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(DI), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(DI), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(DI), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(SP) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(SP) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(SP) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(SP) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(SP) - XORQ R11, R15 - - // Result s - MOVQ 16(DI), R10 - MOVQ 64(DI), R11 - MOVQ 112(DI), R12 - XORQ DX, R10 - MOVQ 120(DI), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(DI), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(SP) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(SP) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(SP) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(SP) - MOVQ R8, 184(SP) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(SP), R12 - XORQ 56(SP), DX - XORQ R15, BX - XORQ 96(SP), R12 - XORQ 136(SP), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(SP), R13 - XORQ 64(SP), R8 - XORQ SI, CX - XORQ 104(SP), R13 - XORQ 144(SP), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (SP), R10 - MOVQ 48(SP), R11 - XORQ R13, R9 - MOVQ 96(SP), R12 - MOVQ 144(SP), R13 - MOVQ 192(SP), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x800000000000008b, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (DI) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(DI) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(DI) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(DI) - MOVQ R12, 8(DI) - MOVQ R12, BP - - // Result g - MOVQ 72(SP), R11 - XORQ R9, R11 - MOVQ 80(SP), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(SP), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(SP), R13 - MOVQ 176(SP), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(DI) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(DI) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(DI) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(DI) - - // Result k - MOVQ 8(SP), R10 - MOVQ 56(SP), R11 - MOVQ 104(SP), R12 - MOVQ 152(SP), R13 - MOVQ 160(SP), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(DI) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(DI) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(DI) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(DI) - XORQ R10, R15 - - // Result m - MOVQ 40(SP), R11 - XORQ BX, R11 - MOVQ 88(SP), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(SP), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(SP), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(SP), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(DI) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(DI) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(DI) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(DI) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(DI) - XORQ R11, R15 - - // Result s - MOVQ 16(SP), R10 - MOVQ 64(SP), R11 - MOVQ 112(SP), R12 - XORQ DX, R10 - MOVQ 120(SP), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(SP), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(DI) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(DI) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(DI) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(DI) - MOVQ R8, 184(DI) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(DI), R12 - XORQ 56(DI), DX - XORQ R15, BX - XORQ 96(DI), R12 - XORQ 136(DI), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(DI), R13 - XORQ 64(DI), R8 - XORQ SI, CX - XORQ 104(DI), R13 - XORQ 144(DI), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (DI), R10 - MOVQ 48(DI), R11 - XORQ R13, R9 - MOVQ 96(DI), R12 - MOVQ 144(DI), R13 - MOVQ 192(DI), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x8000000000008089, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (SP) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(SP) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(SP) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(SP) - MOVQ R12, 8(SP) - MOVQ R12, BP - - // Result g - MOVQ 72(DI), R11 - XORQ R9, R11 - MOVQ 80(DI), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(DI), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(DI), R13 - MOVQ 176(DI), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(SP) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(SP) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(SP) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(SP) - - // Result k - MOVQ 8(DI), R10 - MOVQ 56(DI), R11 - MOVQ 104(DI), R12 - MOVQ 152(DI), R13 - MOVQ 160(DI), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(SP) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(SP) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(SP) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(SP) - XORQ R10, R15 - - // Result m - MOVQ 40(DI), R11 - XORQ BX, R11 - MOVQ 88(DI), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(DI), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(DI), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(DI), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(SP) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(SP) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(SP) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(SP) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(SP) - XORQ R11, R15 - - // Result s - MOVQ 16(DI), R10 - MOVQ 64(DI), R11 - MOVQ 112(DI), R12 - XORQ DX, R10 - MOVQ 120(DI), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(DI), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(SP) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(SP) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(SP) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(SP) - MOVQ R8, 184(SP) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(SP), R12 - XORQ 56(SP), DX - XORQ R15, BX - XORQ 96(SP), R12 - XORQ 136(SP), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(SP), R13 - XORQ 64(SP), R8 - XORQ SI, CX - XORQ 104(SP), R13 - XORQ 144(SP), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (SP), R10 - MOVQ 48(SP), R11 - XORQ R13, R9 - MOVQ 96(SP), R12 - MOVQ 144(SP), R13 - MOVQ 192(SP), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x8000000000008003, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (DI) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(DI) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(DI) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(DI) - MOVQ R12, 8(DI) - MOVQ R12, BP - - // Result g - MOVQ 72(SP), R11 - XORQ R9, R11 - MOVQ 80(SP), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(SP), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(SP), R13 - MOVQ 176(SP), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(DI) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(DI) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(DI) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(DI) - - // Result k - MOVQ 8(SP), R10 - MOVQ 56(SP), R11 - MOVQ 104(SP), R12 - MOVQ 152(SP), R13 - MOVQ 160(SP), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(DI) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(DI) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(DI) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(DI) - XORQ R10, R15 - - // Result m - MOVQ 40(SP), R11 - XORQ BX, R11 - MOVQ 88(SP), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(SP), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(SP), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(SP), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(DI) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(DI) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(DI) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(DI) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(DI) - XORQ R11, R15 - - // Result s - MOVQ 16(SP), R10 - MOVQ 64(SP), R11 - MOVQ 112(SP), R12 - XORQ DX, R10 - MOVQ 120(SP), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(SP), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(DI) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(DI) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(DI) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(DI) - MOVQ R8, 184(DI) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(DI), R12 - XORQ 56(DI), DX - XORQ R15, BX - XORQ 96(DI), R12 - XORQ 136(DI), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(DI), R13 - XORQ 64(DI), R8 - XORQ SI, CX - XORQ 104(DI), R13 - XORQ 144(DI), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (DI), R10 - MOVQ 48(DI), R11 - XORQ R13, R9 - MOVQ 96(DI), R12 - MOVQ 144(DI), R13 - MOVQ 192(DI), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x8000000000008002, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (SP) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(SP) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(SP) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(SP) - MOVQ R12, 8(SP) - MOVQ R12, BP - - // Result g - MOVQ 72(DI), R11 - XORQ R9, R11 - MOVQ 80(DI), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(DI), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(DI), R13 - MOVQ 176(DI), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(SP) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(SP) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(SP) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(SP) - - // Result k - MOVQ 8(DI), R10 - MOVQ 56(DI), R11 - MOVQ 104(DI), R12 - MOVQ 152(DI), R13 - MOVQ 160(DI), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(SP) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(SP) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(SP) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(SP) - XORQ R10, R15 - - // Result m - MOVQ 40(DI), R11 - XORQ BX, R11 - MOVQ 88(DI), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(DI), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(DI), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(DI), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(SP) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(SP) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(SP) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(SP) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(SP) - XORQ R11, R15 - - // Result s - MOVQ 16(DI), R10 - MOVQ 64(DI), R11 - MOVQ 112(DI), R12 - XORQ DX, R10 - MOVQ 120(DI), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(DI), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(SP) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(SP) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(SP) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(SP) - MOVQ R8, 184(SP) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(SP), R12 - XORQ 56(SP), DX - XORQ R15, BX - XORQ 96(SP), R12 - XORQ 136(SP), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(SP), R13 - XORQ 64(SP), R8 - XORQ SI, CX - XORQ 104(SP), R13 - XORQ 144(SP), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (SP), R10 - MOVQ 48(SP), R11 - XORQ R13, R9 - MOVQ 96(SP), R12 - MOVQ 144(SP), R13 - MOVQ 192(SP), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x8000000000000080, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (DI) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(DI) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(DI) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(DI) - MOVQ R12, 8(DI) - MOVQ R12, BP - - // Result g - MOVQ 72(SP), R11 - XORQ R9, R11 - MOVQ 80(SP), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(SP), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(SP), R13 - MOVQ 176(SP), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(DI) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(DI) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(DI) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(DI) - - // Result k - MOVQ 8(SP), R10 - MOVQ 56(SP), R11 - MOVQ 104(SP), R12 - MOVQ 152(SP), R13 - MOVQ 160(SP), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(DI) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(DI) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(DI) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(DI) - XORQ R10, R15 - - // Result m - MOVQ 40(SP), R11 - XORQ BX, R11 - MOVQ 88(SP), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(SP), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(SP), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(SP), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(DI) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(DI) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(DI) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(DI) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(DI) - XORQ R11, R15 - - // Result s - MOVQ 16(SP), R10 - MOVQ 64(SP), R11 - MOVQ 112(SP), R12 - XORQ DX, R10 - MOVQ 120(SP), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(SP), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(DI) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(DI) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(DI) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(DI) - MOVQ R8, 184(DI) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(DI), R12 - XORQ 56(DI), DX - XORQ R15, BX - XORQ 96(DI), R12 - XORQ 136(DI), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(DI), R13 - XORQ 64(DI), R8 - XORQ SI, CX - XORQ 104(DI), R13 - XORQ 144(DI), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (DI), R10 - MOVQ 48(DI), R11 - XORQ R13, R9 - MOVQ 96(DI), R12 - MOVQ 144(DI), R13 - MOVQ 192(DI), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x000000000000800a, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (SP) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(SP) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(SP) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(SP) - MOVQ R12, 8(SP) - MOVQ R12, BP - - // Result g - MOVQ 72(DI), R11 - XORQ R9, R11 - MOVQ 80(DI), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(DI), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(DI), R13 - MOVQ 176(DI), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(SP) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(SP) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(SP) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(SP) - - // Result k - MOVQ 8(DI), R10 - MOVQ 56(DI), R11 - MOVQ 104(DI), R12 - MOVQ 152(DI), R13 - MOVQ 160(DI), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(SP) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(SP) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(SP) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(SP) - XORQ R10, R15 - - // Result m - MOVQ 40(DI), R11 - XORQ BX, R11 - MOVQ 88(DI), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(DI), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(DI), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(DI), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(SP) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(SP) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(SP) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(SP) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(SP) - XORQ R11, R15 - - // Result s - MOVQ 16(DI), R10 - MOVQ 64(DI), R11 - MOVQ 112(DI), R12 - XORQ DX, R10 - MOVQ 120(DI), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(DI), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(SP) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(SP) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(SP) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(SP) - MOVQ R8, 184(SP) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(SP), R12 - XORQ 56(SP), DX - XORQ R15, BX - XORQ 96(SP), R12 - XORQ 136(SP), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(SP), R13 - XORQ 64(SP), R8 - XORQ SI, CX - XORQ 104(SP), R13 - XORQ 144(SP), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (SP), R10 - MOVQ 48(SP), R11 - XORQ R13, R9 - MOVQ 96(SP), R12 - MOVQ 144(SP), R13 - MOVQ 192(SP), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x800000008000000a, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (DI) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(DI) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(DI) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(DI) - MOVQ R12, 8(DI) - MOVQ R12, BP - - // Result g - MOVQ 72(SP), R11 - XORQ R9, R11 - MOVQ 80(SP), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(SP), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(SP), R13 - MOVQ 176(SP), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(DI) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(DI) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(DI) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(DI) - - // Result k - MOVQ 8(SP), R10 - MOVQ 56(SP), R11 - MOVQ 104(SP), R12 - MOVQ 152(SP), R13 - MOVQ 160(SP), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(DI) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(DI) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(DI) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(DI) - XORQ R10, R15 - - // Result m - MOVQ 40(SP), R11 - XORQ BX, R11 - MOVQ 88(SP), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(SP), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(SP), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(SP), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(DI) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(DI) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(DI) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(DI) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(DI) - XORQ R11, R15 - - // Result s - MOVQ 16(SP), R10 - MOVQ 64(SP), R11 - MOVQ 112(SP), R12 - XORQ DX, R10 - MOVQ 120(SP), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(SP), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(DI) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(DI) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(DI) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(DI) - MOVQ R8, 184(DI) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(DI), R12 - XORQ 56(DI), DX - XORQ R15, BX - XORQ 96(DI), R12 - XORQ 136(DI), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(DI), R13 - XORQ 64(DI), R8 - XORQ SI, CX - XORQ 104(DI), R13 - XORQ 144(DI), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (DI), R10 - MOVQ 48(DI), R11 - XORQ R13, R9 - MOVQ 96(DI), R12 - MOVQ 144(DI), R13 - MOVQ 192(DI), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x8000000080008081, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (SP) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(SP) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(SP) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(SP) - MOVQ R12, 8(SP) - MOVQ R12, BP - - // Result g - MOVQ 72(DI), R11 - XORQ R9, R11 - MOVQ 80(DI), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(DI), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(DI), R13 - MOVQ 176(DI), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(SP) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(SP) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(SP) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(SP) - - // Result k - MOVQ 8(DI), R10 - MOVQ 56(DI), R11 - MOVQ 104(DI), R12 - MOVQ 152(DI), R13 - MOVQ 160(DI), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(SP) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(SP) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(SP) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(SP) - XORQ R10, R15 - - // Result m - MOVQ 40(DI), R11 - XORQ BX, R11 - MOVQ 88(DI), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(DI), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(DI), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(DI), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(SP) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(SP) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(SP) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(SP) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(SP) - XORQ R11, R15 - - // Result s - MOVQ 16(DI), R10 - MOVQ 64(DI), R11 - MOVQ 112(DI), R12 - XORQ DX, R10 - MOVQ 120(DI), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(DI), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(SP) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(SP) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(SP) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(SP) - MOVQ R8, 184(SP) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(SP), R12 - XORQ 56(SP), DX - XORQ R15, BX - XORQ 96(SP), R12 - XORQ 136(SP), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(SP), R13 - XORQ 64(SP), R8 - XORQ SI, CX - XORQ 104(SP), R13 - XORQ 144(SP), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (SP), R10 - MOVQ 48(SP), R11 - XORQ R13, R9 - MOVQ 96(SP), R12 - MOVQ 144(SP), R13 - MOVQ 192(SP), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x8000000000008080, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (DI) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(DI) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(DI) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(DI) - MOVQ R12, 8(DI) - MOVQ R12, BP - - // Result g - MOVQ 72(SP), R11 - XORQ R9, R11 - MOVQ 80(SP), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(SP), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(SP), R13 - MOVQ 176(SP), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(DI) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(DI) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(DI) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(DI) - - // Result k - MOVQ 8(SP), R10 - MOVQ 56(SP), R11 - MOVQ 104(SP), R12 - MOVQ 152(SP), R13 - MOVQ 160(SP), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(DI) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(DI) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(DI) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(DI) - XORQ R10, R15 - - // Result m - MOVQ 40(SP), R11 - XORQ BX, R11 - MOVQ 88(SP), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(SP), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(SP), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(SP), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(DI) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(DI) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(DI) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(DI) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(DI) - XORQ R11, R15 - - // Result s - MOVQ 16(SP), R10 - MOVQ 64(SP), R11 - MOVQ 112(SP), R12 - XORQ DX, R10 - MOVQ 120(SP), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(SP), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(DI) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(DI) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(DI) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(DI) - MOVQ R8, 184(DI) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(DI), R12 - XORQ 56(DI), DX - XORQ R15, BX - XORQ 96(DI), R12 - XORQ 136(DI), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(DI), R13 - XORQ 64(DI), R8 - XORQ SI, CX - XORQ 104(DI), R13 - XORQ 144(DI), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (DI), R10 - MOVQ 48(DI), R11 - XORQ R13, R9 - MOVQ 96(DI), R12 - MOVQ 144(DI), R13 - MOVQ 192(DI), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x0000000080000001, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (SP) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(SP) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(SP) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(SP) - MOVQ R12, 8(SP) - MOVQ R12, BP - - // Result g - MOVQ 72(DI), R11 - XORQ R9, R11 - MOVQ 80(DI), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(DI), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(DI), R13 - MOVQ 176(DI), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(SP) - XORQ AX, SI - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(SP) - XORQ AX, BP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(SP) - NOTQ R14 - XORQ R10, R15 - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(SP) - - // Result k - MOVQ 8(DI), R10 - MOVQ 56(DI), R11 - MOVQ 104(DI), R12 - MOVQ 152(DI), R13 - MOVQ 160(DI), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(SP) - XORQ AX, SI - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(SP) - XORQ AX, BP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(SP) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(SP) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(SP) - XORQ R10, R15 - - // Result m - MOVQ 40(DI), R11 - XORQ BX, R11 - MOVQ 88(DI), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(DI), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(DI), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(DI), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(SP) - XORQ AX, SI - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(SP) - XORQ AX, BP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(SP) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(SP) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(SP) - XORQ R11, R15 - - // Result s - MOVQ 16(DI), R10 - MOVQ 64(DI), R11 - MOVQ 112(DI), R12 - XORQ DX, R10 - MOVQ 120(DI), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(DI), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(SP) - ROLQ $0x27, R12 - XORQ R9, R15 - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(SP) - XORQ BX, SI - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(SP) - XORQ CX, BP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(SP) - MOVQ R8, 184(SP) - - // Prepare round - MOVQ BP, BX - ROLQ $0x01, BX - MOVQ 16(SP), R12 - XORQ 56(SP), DX - XORQ R15, BX - XORQ 96(SP), R12 - XORQ 136(SP), DX - XORQ DX, R12 - MOVQ R12, CX - ROLQ $0x01, CX - MOVQ 24(SP), R13 - XORQ 64(SP), R8 - XORQ SI, CX - XORQ 104(SP), R13 - XORQ 144(SP), R8 - XORQ R8, R13 - MOVQ R13, DX - ROLQ $0x01, DX - MOVQ R15, R8 - XORQ BP, DX - ROLQ $0x01, R8 - MOVQ SI, R9 - XORQ R12, R8 - ROLQ $0x01, R9 - - // Result b - MOVQ (SP), R10 - MOVQ 48(SP), R11 - XORQ R13, R9 - MOVQ 96(SP), R12 - MOVQ 144(SP), R13 - MOVQ 192(SP), R14 - XORQ CX, R11 - ROLQ $0x2c, R11 - XORQ DX, R12 - XORQ BX, R10 - ROLQ $0x2b, R12 - MOVQ R11, SI - MOVQ $0x8000000080008008, AX - ORQ R12, SI - XORQ R10, AX - XORQ AX, SI - MOVQ SI, (DI) - XORQ R9, R14 - ROLQ $0x0e, R14 - MOVQ R10, R15 - ANDQ R11, R15 - XORQ R14, R15 - MOVQ R15, 32(DI) - XORQ R8, R13 - ROLQ $0x15, R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 16(DI) - NOTQ R12 - ORQ R10, R14 - ORQ R13, R12 - XORQ R13, R14 - XORQ R11, R12 - MOVQ R14, 24(DI) - MOVQ R12, 8(DI) - NOP - - // Result g - MOVQ 72(SP), R11 - XORQ R9, R11 - MOVQ 80(SP), R12 - ROLQ $0x14, R11 - XORQ BX, R12 - ROLQ $0x03, R12 - MOVQ 24(SP), R10 - MOVQ R11, AX - ORQ R12, AX - XORQ R8, R10 - MOVQ 128(SP), R13 - MOVQ 176(SP), R14 - ROLQ $0x1c, R10 - XORQ R10, AX - MOVQ AX, 40(DI) - NOP - XORQ CX, R13 - ROLQ $0x2d, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 48(DI) - NOP - XORQ DX, R14 - ROLQ $0x3d, R14 - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 64(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 72(DI) - NOTQ R14 - NOP - ORQ R14, R13 - XORQ R12, R13 - MOVQ R13, 56(DI) - - // Result k - MOVQ 8(SP), R10 - MOVQ 56(SP), R11 - MOVQ 104(SP), R12 - MOVQ 152(SP), R13 - MOVQ 160(SP), R14 - XORQ DX, R11 - ROLQ $0x06, R11 - XORQ R8, R12 - ROLQ $0x19, R12 - MOVQ R11, AX - ORQ R12, AX - XORQ CX, R10 - ROLQ $0x01, R10 - XORQ R10, AX - MOVQ AX, 80(DI) - NOP - XORQ R9, R13 - ROLQ $0x08, R13 - MOVQ R12, AX - ANDQ R13, AX - XORQ R11, AX - MOVQ AX, 88(DI) - NOP - XORQ BX, R14 - ROLQ $0x12, R14 - NOTQ R13 - MOVQ R13, AX - ANDQ R14, AX - XORQ R12, AX - MOVQ AX, 96(DI) - MOVQ R14, AX - ORQ R10, AX - XORQ R13, AX - MOVQ AX, 104(DI) - ANDQ R11, R10 - XORQ R14, R10 - MOVQ R10, 112(DI) - NOP - - // Result m - MOVQ 40(SP), R11 - XORQ BX, R11 - MOVQ 88(SP), R12 - ROLQ $0x24, R11 - XORQ CX, R12 - MOVQ 32(SP), R10 - ROLQ $0x0a, R12 - MOVQ R11, AX - MOVQ 136(SP), R13 - ANDQ R12, AX - XORQ R9, R10 - MOVQ 184(SP), R14 - ROLQ $0x1b, R10 - XORQ R10, AX - MOVQ AX, 120(DI) - NOP - XORQ DX, R13 - ROLQ $0x0f, R13 - MOVQ R12, AX - ORQ R13, AX - XORQ R11, AX - MOVQ AX, 128(DI) - NOP - XORQ R8, R14 - ROLQ $0x38, R14 - NOTQ R13 - MOVQ R13, AX - ORQ R14, AX - XORQ R12, AX - MOVQ AX, 136(DI) - ORQ R10, R11 - XORQ R14, R11 - MOVQ R11, 152(DI) - ANDQ R10, R14 - XORQ R13, R14 - MOVQ R14, 144(DI) - NOP - - // Result s - MOVQ 16(SP), R10 - MOVQ 64(SP), R11 - MOVQ 112(SP), R12 - XORQ DX, R10 - MOVQ 120(SP), R13 - ROLQ $0x3e, R10 - XORQ R8, R11 - MOVQ 168(SP), R14 - ROLQ $0x37, R11 - XORQ R9, R12 - MOVQ R10, R9 - XORQ CX, R14 - ROLQ $0x02, R14 - ANDQ R11, R9 - XORQ R14, R9 - MOVQ R9, 192(DI) - ROLQ $0x27, R12 - NOP - NOTQ R11 - XORQ BX, R13 - MOVQ R11, BX - ANDQ R12, BX - XORQ R10, BX - MOVQ BX, 160(DI) - NOP - ROLQ $0x29, R13 - MOVQ R12, CX - ORQ R13, CX - XORQ R11, CX - MOVQ CX, 168(DI) - NOP - MOVQ R13, DX - MOVQ R14, R8 - ANDQ R14, DX - ORQ R10, R8 - XORQ R12, DX - XORQ R13, R8 - MOVQ DX, 176(DI) - MOVQ R8, 184(DI) - - // Revert the internal state to the user state - NOTQ 8(DI) - NOTQ 16(DI) - NOTQ 64(DI) - NOTQ 96(DI) - NOTQ 136(DI) - NOTQ 160(DI) - RET diff --git a/vendor/golang.org/x/crypto/sha3/sha3.go b/vendor/golang.org/x/crypto/sha3/legacy_hash.go similarity index 83% rename from vendor/golang.org/x/crypto/sha3/sha3.go rename to vendor/golang.org/x/crypto/sha3/legacy_hash.go index 6658c4447..b8784536e 100644 --- a/vendor/golang.org/x/crypto/sha3/sha3.go +++ b/vendor/golang.org/x/crypto/sha3/legacy_hash.go @@ -4,15 +4,46 @@ package sha3 +// This implementation is only used for NewLegacyKeccak256 and +// NewLegacyKeccak512, which are not implemented by crypto/sha3. +// All other functions in this package are wrappers around crypto/sha3. + import ( "crypto/subtle" "encoding/binary" "errors" + "hash" "unsafe" "golang.org/x/sys/cpu" ) +const ( + dsbyteKeccak = 0b00000001 + + // rateK[c] is the rate in bytes for Keccak[c] where c is the capacity in + // bits. Given the sponge size is 1600 bits, the rate is 1600 - c bits. + rateK256 = (1600 - 256) / 8 + rateK512 = (1600 - 512) / 8 + rateK1024 = (1600 - 1024) / 8 +) + +// NewLegacyKeccak256 creates a new Keccak-256 hash. +// +// Only use this function if you require compatibility with an existing cryptosystem +// that uses non-standard padding. All other users should use New256 instead. +func NewLegacyKeccak256() hash.Hash { + return &state{rate: rateK512, outputLen: 32, dsbyte: dsbyteKeccak} +} + +// NewLegacyKeccak512 creates a new Keccak-512 hash. +// +// Only use this function if you require compatibility with an existing cryptosystem +// that uses non-standard padding. All other users should use New512 instead. +func NewLegacyKeccak512() hash.Hash { + return &state{rate: rateK1024, outputLen: 64, dsbyte: dsbyteKeccak} +} + // spongeDirection indicates the direction bytes are flowing through the sponge. type spongeDirection int @@ -173,12 +204,9 @@ func (d *state) Sum(in []byte) []byte { } const ( - magicSHA3 = "sha\x08" - magicShake = "sha\x09" - magicCShake = "sha\x0a" magicKeccak = "sha\x0b" // magic || rate || main state || n || sponge direction - marshaledSize = len(magicSHA3) + 1 + 200 + 1 + 1 + marshaledSize = len(magicKeccak) + 1 + 200 + 1 + 1 ) func (d *state) MarshalBinary() ([]byte, error) { @@ -187,12 +215,6 @@ func (d *state) MarshalBinary() ([]byte, error) { func (d *state) AppendBinary(b []byte) ([]byte, error) { switch d.dsbyte { - case dsbyteSHA3: - b = append(b, magicSHA3...) - case dsbyteShake: - b = append(b, magicShake...) - case dsbyteCShake: - b = append(b, magicCShake...) case dsbyteKeccak: b = append(b, magicKeccak...) default: @@ -210,12 +232,9 @@ func (d *state) UnmarshalBinary(b []byte) error { return errors.New("sha3: invalid hash state") } - magic := string(b[:len(magicSHA3)]) - b = b[len(magicSHA3):] + magic := string(b[:len(magicKeccak)]) + b = b[len(magicKeccak):] switch { - case magic == magicSHA3 && d.dsbyte == dsbyteSHA3: - case magic == magicShake && d.dsbyte == dsbyteShake: - case magic == magicCShake && d.dsbyte == dsbyteCShake: case magic == magicKeccak && d.dsbyte == dsbyteKeccak: default: return errors.New("sha3: invalid hash state identifier") diff --git a/vendor/golang.org/x/crypto/sha3/keccakf.go b/vendor/golang.org/x/crypto/sha3/legacy_keccakf.go similarity index 98% rename from vendor/golang.org/x/crypto/sha3/keccakf.go rename to vendor/golang.org/x/crypto/sha3/legacy_keccakf.go index ce48b1dd3..101588c16 100644 --- a/vendor/golang.org/x/crypto/sha3/keccakf.go +++ b/vendor/golang.org/x/crypto/sha3/legacy_keccakf.go @@ -2,10 +2,12 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !amd64 || purego || !gc - package sha3 +// This implementation is only used for NewLegacyKeccak256 and +// NewLegacyKeccak512, which are not implemented by crypto/sha3. +// All other functions in this package are wrappers around crypto/sha3. + import "math/bits" // rc stores the round constants for use in the ι step. diff --git a/vendor/golang.org/x/crypto/sha3/sha3_s390x.go b/vendor/golang.org/x/crypto/sha3/sha3_s390x.go deleted file mode 100644 index 00d8034ae..000000000 --- a/vendor/golang.org/x/crypto/sha3/sha3_s390x.go +++ /dev/null @@ -1,303 +0,0 @@ -// Copyright 2017 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 - -package sha3 - -// This file contains code for using the 'compute intermediate -// message digest' (KIMD) and 'compute last message digest' (KLMD) -// instructions to compute SHA-3 and SHAKE hashes on IBM Z. - -import ( - "hash" - - "golang.org/x/sys/cpu" -) - -// codes represent 7-bit KIMD/KLMD function codes as defined in -// the Principles of Operation. -type code uint64 - -const ( - // function codes for KIMD/KLMD - sha3_224 code = 32 - sha3_256 = 33 - sha3_384 = 34 - sha3_512 = 35 - shake_128 = 36 - shake_256 = 37 - nopad = 0x100 -) - -// kimd is a wrapper for the 'compute intermediate message digest' instruction. -// src must be a multiple of the rate for the given function code. -// -//go:noescape -func kimd(function code, chain *[200]byte, src []byte) - -// klmd is a wrapper for the 'compute last message digest' instruction. -// src padding is handled by the instruction. -// -//go:noescape -func klmd(function code, chain *[200]byte, dst, src []byte) - -type asmState struct { - a [200]byte // 1600 bit state - buf []byte // care must be taken to ensure cap(buf) is a multiple of rate - rate int // equivalent to block size - storage [3072]byte // underlying storage for buf - outputLen int // output length for full security - function code // KIMD/KLMD function code - state spongeDirection // whether the sponge is absorbing or squeezing -} - -func newAsmState(function code) *asmState { - var s asmState - s.function = function - switch function { - case sha3_224: - s.rate = 144 - s.outputLen = 28 - case sha3_256: - s.rate = 136 - s.outputLen = 32 - case sha3_384: - s.rate = 104 - s.outputLen = 48 - case sha3_512: - s.rate = 72 - s.outputLen = 64 - case shake_128: - s.rate = 168 - s.outputLen = 32 - case shake_256: - s.rate = 136 - s.outputLen = 64 - default: - panic("sha3: unrecognized function code") - } - - // limit s.buf size to a multiple of s.rate - s.resetBuf() - return &s -} - -func (s *asmState) clone() *asmState { - c := *s - c.buf = c.storage[:len(s.buf):cap(s.buf)] - return &c -} - -// copyIntoBuf copies b into buf. It will panic if there is not enough space to -// store all of b. -func (s *asmState) copyIntoBuf(b []byte) { - bufLen := len(s.buf) - s.buf = s.buf[:len(s.buf)+len(b)] - copy(s.buf[bufLen:], b) -} - -// resetBuf points buf at storage, sets the length to 0 and sets cap to be a -// multiple of the rate. -func (s *asmState) resetBuf() { - max := (cap(s.storage) / s.rate) * s.rate - s.buf = s.storage[:0:max] -} - -// Write (via the embedded io.Writer interface) adds more data to the running hash. -// It never returns an error. -func (s *asmState) Write(b []byte) (int, error) { - if s.state != spongeAbsorbing { - panic("sha3: Write after Read") - } - length := len(b) - for len(b) > 0 { - if len(s.buf) == 0 && len(b) >= cap(s.buf) { - // Hash the data directly and push any remaining bytes - // into the buffer. - remainder := len(b) % s.rate - kimd(s.function, &s.a, b[:len(b)-remainder]) - if remainder != 0 { - s.copyIntoBuf(b[len(b)-remainder:]) - } - return length, nil - } - - if len(s.buf) == cap(s.buf) { - // flush the buffer - kimd(s.function, &s.a, s.buf) - s.buf = s.buf[:0] - } - - // copy as much as we can into the buffer - n := len(b) - if len(b) > cap(s.buf)-len(s.buf) { - n = cap(s.buf) - len(s.buf) - } - s.copyIntoBuf(b[:n]) - b = b[n:] - } - return length, nil -} - -// Read squeezes an arbitrary number of bytes from the sponge. -func (s *asmState) Read(out []byte) (n int, err error) { - // The 'compute last message digest' instruction only stores the digest - // at the first operand (dst) for SHAKE functions. - if s.function != shake_128 && s.function != shake_256 { - panic("sha3: can only call Read for SHAKE functions") - } - - n = len(out) - - // need to pad if we were absorbing - if s.state == spongeAbsorbing { - s.state = spongeSqueezing - - // write hash directly into out if possible - if len(out)%s.rate == 0 { - klmd(s.function, &s.a, out, s.buf) // len(out) may be 0 - s.buf = s.buf[:0] - return - } - - // write hash into buffer - max := cap(s.buf) - if max > len(out) { - max = (len(out)/s.rate)*s.rate + s.rate - } - klmd(s.function, &s.a, s.buf[:max], s.buf) - s.buf = s.buf[:max] - } - - for len(out) > 0 { - // flush the buffer - if len(s.buf) != 0 { - c := copy(out, s.buf) - out = out[c:] - s.buf = s.buf[c:] - continue - } - - // write hash directly into out if possible - if len(out)%s.rate == 0 { - klmd(s.function|nopad, &s.a, out, nil) - return - } - - // write hash into buffer - s.resetBuf() - if cap(s.buf) > len(out) { - s.buf = s.buf[:(len(out)/s.rate)*s.rate+s.rate] - } - klmd(s.function|nopad, &s.a, s.buf, nil) - } - return -} - -// Sum appends the current hash to b and returns the resulting slice. -// It does not change the underlying hash state. -func (s *asmState) Sum(b []byte) []byte { - if s.state != spongeAbsorbing { - panic("sha3: Sum after Read") - } - - // Copy the state to preserve the original. - a := s.a - - // Hash the buffer. Note that we don't clear it because we - // aren't updating the state. - switch s.function { - case sha3_224, sha3_256, sha3_384, sha3_512: - klmd(s.function, &a, nil, s.buf) - return append(b, a[:s.outputLen]...) - case shake_128, shake_256: - d := make([]byte, s.outputLen, 64) - klmd(s.function, &a, d, s.buf) - return append(b, d[:s.outputLen]...) - default: - panic("sha3: unknown function") - } -} - -// Reset resets the Hash to its initial state. -func (s *asmState) Reset() { - for i := range s.a { - s.a[i] = 0 - } - s.resetBuf() - s.state = spongeAbsorbing -} - -// Size returns the number of bytes Sum will return. -func (s *asmState) Size() int { - return s.outputLen -} - -// BlockSize returns the hash's underlying block size. -// The Write method must be able to accept any amount -// of data, but it may operate more efficiently if all writes -// are a multiple of the block size. -func (s *asmState) BlockSize() int { - return s.rate -} - -// Clone returns a copy of the ShakeHash in its current state. -func (s *asmState) Clone() ShakeHash { - return s.clone() -} - -// new224 returns an assembly implementation of SHA3-224 if available, -// otherwise it returns a generic implementation. -func new224() hash.Hash { - if cpu.S390X.HasSHA3 { - return newAsmState(sha3_224) - } - return new224Generic() -} - -// new256 returns an assembly implementation of SHA3-256 if available, -// otherwise it returns a generic implementation. -func new256() hash.Hash { - if cpu.S390X.HasSHA3 { - return newAsmState(sha3_256) - } - return new256Generic() -} - -// new384 returns an assembly implementation of SHA3-384 if available, -// otherwise it returns a generic implementation. -func new384() hash.Hash { - if cpu.S390X.HasSHA3 { - return newAsmState(sha3_384) - } - return new384Generic() -} - -// new512 returns an assembly implementation of SHA3-512 if available, -// otherwise it returns a generic implementation. -func new512() hash.Hash { - if cpu.S390X.HasSHA3 { - return newAsmState(sha3_512) - } - return new512Generic() -} - -// newShake128 returns an assembly implementation of SHAKE-128 if available, -// otherwise it returns a generic implementation. -func newShake128() ShakeHash { - if cpu.S390X.HasSHA3 { - return newAsmState(shake_128) - } - return newShake128Generic() -} - -// newShake256 returns an assembly implementation of SHAKE-256 if available, -// otherwise it returns a generic implementation. -func newShake256() ShakeHash { - if cpu.S390X.HasSHA3 { - return newAsmState(shake_256) - } - return newShake256Generic() -} diff --git a/vendor/golang.org/x/crypto/sha3/sha3_s390x.s b/vendor/golang.org/x/crypto/sha3/sha3_s390x.s deleted file mode 100644 index 826b862c7..000000000 --- a/vendor/golang.org/x/crypto/sha3/sha3_s390x.s +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2017 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 - -#include "textflag.h" - -// func kimd(function code, chain *[200]byte, src []byte) -TEXT ·kimd(SB), NOFRAME|NOSPLIT, $0-40 - MOVD function+0(FP), R0 - MOVD chain+8(FP), R1 - LMG src+16(FP), R2, R3 // R2=base, R3=len - -continue: - WORD $0xB93E0002 // KIMD --, R2 - BVS continue // continue if interrupted - MOVD $0, R0 // reset R0 for pre-go1.8 compilers - RET - -// func klmd(function code, chain *[200]byte, dst, src []byte) -TEXT ·klmd(SB), NOFRAME|NOSPLIT, $0-64 - // TODO: SHAKE support - MOVD function+0(FP), R0 - MOVD chain+8(FP), R1 - LMG dst+16(FP), R2, R3 // R2=base, R3=len - LMG src+40(FP), R4, R5 // R4=base, R5=len - -continue: - WORD $0xB93F0024 // KLMD R2, R4 - BVS continue // continue if interrupted - MOVD $0, R0 // reset R0 for pre-go1.8 compilers - RET diff --git a/vendor/golang.org/x/crypto/sha3/shake.go b/vendor/golang.org/x/crypto/sha3/shake.go index a6b3a4281..6f3f70c26 100644 --- a/vendor/golang.org/x/crypto/sha3/shake.go +++ b/vendor/golang.org/x/crypto/sha3/shake.go @@ -4,24 +4,10 @@ package sha3 -// This file defines the ShakeHash interface, and provides -// functions for creating SHAKE and cSHAKE instances, as well as utility -// functions for hashing bytes to arbitrary-length output. -// -// -// SHAKE implementation is based on FIPS PUB 202 [1] -// cSHAKE implementations is based on NIST SP 800-185 [2] -// -// [1] https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf -// [2] https://doi.org/10.6028/NIST.SP.800-185 - import ( - "bytes" - "encoding/binary" - "errors" + "crypto/sha3" "hash" "io" - "math/bits" ) // ShakeHash defines the interface to hash functions that support @@ -32,7 +18,7 @@ type ShakeHash interface { hash.Hash // Read reads more output from the hash; reading affects the hash's - // state. (ShakeHash.Read is thus very different from Hash.Sum) + // state. (ShakeHash.Read is thus very different from Hash.Sum.) // It never returns an error, but subsequent calls to Write or Sum // will panic. io.Reader @@ -41,115 +27,18 @@ type ShakeHash interface { Clone() ShakeHash } -// cSHAKE specific context -type cshakeState struct { - *state // SHA-3 state context and Read/Write operations - - // initBlock is the cSHAKE specific initialization set of bytes. It is initialized - // by newCShake function and stores concatenation of N followed by S, encoded - // by the method specified in 3.3 of [1]. - // It is stored here in order for Reset() to be able to put context into - // initial state. - initBlock []byte -} - -func bytepad(data []byte, rate int) []byte { - out := make([]byte, 0, 9+len(data)+rate-1) - out = append(out, leftEncode(uint64(rate))...) - out = append(out, data...) - if padlen := rate - len(out)%rate; padlen < rate { - out = append(out, make([]byte, padlen)...) - } - return out -} - -func leftEncode(x uint64) []byte { - // Let n be the smallest positive integer for which 2^(8n) > x. - n := (bits.Len64(x) + 7) / 8 - if n == 0 { - n = 1 - } - // Return n || x with n as a byte and x an n bytes in big-endian order. - b := make([]byte, 9) - binary.BigEndian.PutUint64(b[1:], x) - b = b[9-n-1:] - b[0] = byte(n) - return b -} - -func newCShake(N, S []byte, rate, outputLen int, dsbyte byte) ShakeHash { - c := cshakeState{state: &state{rate: rate, outputLen: outputLen, dsbyte: dsbyte}} - c.initBlock = make([]byte, 0, 9+len(N)+9+len(S)) // leftEncode returns max 9 bytes - c.initBlock = append(c.initBlock, leftEncode(uint64(len(N))*8)...) - c.initBlock = append(c.initBlock, N...) - c.initBlock = append(c.initBlock, leftEncode(uint64(len(S))*8)...) - c.initBlock = append(c.initBlock, S...) - c.Write(bytepad(c.initBlock, c.rate)) - return &c -} - -// Reset resets the hash to initial state. -func (c *cshakeState) Reset() { - c.state.Reset() - c.Write(bytepad(c.initBlock, c.rate)) -} - -// Clone returns copy of a cSHAKE context within its current state. -func (c *cshakeState) Clone() ShakeHash { - b := make([]byte, len(c.initBlock)) - copy(b, c.initBlock) - return &cshakeState{state: c.clone(), initBlock: b} -} - -// Clone returns copy of SHAKE context within its current state. -func (c *state) Clone() ShakeHash { - return c.clone() -} - -func (c *cshakeState) MarshalBinary() ([]byte, error) { - return c.AppendBinary(make([]byte, 0, marshaledSize+len(c.initBlock))) -} - -func (c *cshakeState) AppendBinary(b []byte) ([]byte, error) { - b, err := c.state.AppendBinary(b) - if err != nil { - return nil, err - } - b = append(b, c.initBlock...) - return b, nil -} - -func (c *cshakeState) UnmarshalBinary(b []byte) error { - if len(b) <= marshaledSize { - return errors.New("sha3: invalid hash state") - } - if err := c.state.UnmarshalBinary(b[:marshaledSize]); err != nil { - return err - } - c.initBlock = bytes.Clone(b[marshaledSize:]) - return nil -} - // NewShake128 creates a new SHAKE128 variable-output-length ShakeHash. // Its generic security strength is 128 bits against all attacks if at // least 32 bytes of its output are used. func NewShake128() ShakeHash { - return newShake128() + return &shakeWrapper{sha3.NewSHAKE128(), 32, false, sha3.NewSHAKE128} } // NewShake256 creates a new SHAKE256 variable-output-length ShakeHash. // Its generic security strength is 256 bits against all attacks if // at least 64 bytes of its output are used. func NewShake256() ShakeHash { - return newShake256() -} - -func newShake128Generic() *state { - return &state{rate: rateK256, outputLen: 32, dsbyte: dsbyteShake} -} - -func newShake256Generic() *state { - return &state{rate: rateK512, outputLen: 64, dsbyte: dsbyteShake} + return &shakeWrapper{sha3.NewSHAKE256(), 64, false, sha3.NewSHAKE256} } // NewCShake128 creates a new instance of cSHAKE128 variable-output-length ShakeHash, @@ -159,10 +48,9 @@ func newShake256Generic() *state { // computations on same input with different S yield unrelated outputs. // When N and S are both empty, this is equivalent to NewShake128. func NewCShake128(N, S []byte) ShakeHash { - if len(N) == 0 && len(S) == 0 { - return NewShake128() - } - return newCShake(N, S, rateK256, 32, dsbyteCShake) + return &shakeWrapper{sha3.NewCSHAKE128(N, S), 32, false, func() *sha3.SHAKE { + return sha3.NewCSHAKE128(N, S) + }} } // NewCShake256 creates a new instance of cSHAKE256 variable-output-length ShakeHash, @@ -172,10 +60,9 @@ func NewCShake128(N, S []byte) ShakeHash { // computations on same input with different S yield unrelated outputs. // When N and S are both empty, this is equivalent to NewShake256. func NewCShake256(N, S []byte) ShakeHash { - if len(N) == 0 && len(S) == 0 { - return NewShake256() - } - return newCShake(N, S, rateK512, 64, dsbyteCShake) + return &shakeWrapper{sha3.NewCSHAKE256(N, S), 64, false, func() *sha3.SHAKE { + return sha3.NewCSHAKE256(N, S) + }} } // ShakeSum128 writes an arbitrary-length digest of data into hash. @@ -191,3 +78,42 @@ func ShakeSum256(hash, data []byte) { h.Write(data) h.Read(hash) } + +// shakeWrapper adds the Size, Sum, and Clone methods to a sha3.SHAKE +// to implement the ShakeHash interface. +type shakeWrapper struct { + *sha3.SHAKE + outputLen int + squeezing bool + newSHAKE func() *sha3.SHAKE +} + +func (w *shakeWrapper) Read(p []byte) (n int, err error) { + w.squeezing = true + return w.SHAKE.Read(p) +} + +func (w *shakeWrapper) Clone() ShakeHash { + s := w.newSHAKE() + b, err := w.MarshalBinary() + if err != nil { + panic(err) // unreachable + } + if err := s.UnmarshalBinary(b); err != nil { + panic(err) // unreachable + } + return &shakeWrapper{s, w.outputLen, w.squeezing, w.newSHAKE} +} + +func (w *shakeWrapper) Size() int { return w.outputLen } + +func (w *shakeWrapper) Sum(b []byte) []byte { + if w.squeezing { + panic("sha3: Sum after Read") + } + out := make([]byte, w.outputLen) + // Clone the state so that we don't affect future Write calls. + s := w.Clone() + s.Read(out) + return append(b, out...) +} diff --git a/vendor/golang.org/x/crypto/sha3/shake_noasm.go b/vendor/golang.org/x/crypto/sha3/shake_noasm.go deleted file mode 100644 index 4276ba4ab..000000000 --- a/vendor/golang.org/x/crypto/sha3/shake_noasm.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2023 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 || !s390x - -package sha3 - -func newShake128() *state { - return newShake128Generic() -} - -func newShake256() *state { - return newShake256Generic() -} diff --git a/vendor/golang.org/x/crypto/ssh/certs.go b/vendor/golang.org/x/crypto/ssh/certs.go index 27d0e14aa..139fa31e1 100644 --- a/vendor/golang.org/x/crypto/ssh/certs.go +++ b/vendor/golang.org/x/crypto/ssh/certs.go @@ -20,14 +20,19 @@ import ( // returned by MultiAlgorithmSigner and don't appear in the Signature.Format // field. const ( - CertAlgoRSAv01 = "ssh-rsa-cert-v01@openssh.com" - CertAlgoDSAv01 = "ssh-dss-cert-v01@openssh.com" - CertAlgoECDSA256v01 = "ecdsa-sha2-nistp256-cert-v01@openssh.com" - CertAlgoECDSA384v01 = "ecdsa-sha2-nistp384-cert-v01@openssh.com" - CertAlgoECDSA521v01 = "ecdsa-sha2-nistp521-cert-v01@openssh.com" - CertAlgoSKECDSA256v01 = "sk-ecdsa-sha2-nistp256-cert-v01@openssh.com" - CertAlgoED25519v01 = "ssh-ed25519-cert-v01@openssh.com" - CertAlgoSKED25519v01 = "sk-ssh-ed25519-cert-v01@openssh.com" + CertAlgoRSAv01 = "ssh-rsa-cert-v01@openssh.com" + // Deprecated: DSA is only supported at insecure key sizes, and was removed + // from major implementations. + CertAlgoDSAv01 = InsecureCertAlgoDSAv01 + // Deprecated: DSA is only supported at insecure key sizes, and was removed + // from major implementations. + InsecureCertAlgoDSAv01 = "ssh-dss-cert-v01@openssh.com" + CertAlgoECDSA256v01 = "ecdsa-sha2-nistp256-cert-v01@openssh.com" + CertAlgoECDSA384v01 = "ecdsa-sha2-nistp384-cert-v01@openssh.com" + CertAlgoECDSA521v01 = "ecdsa-sha2-nistp521-cert-v01@openssh.com" + CertAlgoSKECDSA256v01 = "sk-ecdsa-sha2-nistp256-cert-v01@openssh.com" + CertAlgoED25519v01 = "ssh-ed25519-cert-v01@openssh.com" + CertAlgoSKED25519v01 = "sk-ssh-ed25519-cert-v01@openssh.com" // CertAlgoRSASHA256v01 and CertAlgoRSASHA512v01 can't appear as a // Certificate.Type (or PublicKey.Type), but only in @@ -228,7 +233,11 @@ func parseCert(in []byte, privAlgo string) (*Certificate, error) { 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 { @@ -296,16 +305,13 @@ type CertChecker struct { SupportedCriticalOptions []string // IsUserAuthority should return true if the key is recognized as an - // authority for the given user certificate. This allows for - // certificates to be signed by other certificates. This must be set - // if this CertChecker will be checking user certificates. + // authority for user certificate. This must be set if this CertChecker + // will be checking user certificates. IsUserAuthority func(auth PublicKey) bool // IsHostAuthority should report whether the key is recognized as - // an authority for this host. This allows for certificates to be - // signed by other keys, and for those other keys to only be valid - // signers for particular hostnames. This must be set if this - // CertChecker will be checking host certificates. + // an authority for this host. This must be set if this CertChecker + // will be checking host certificates. IsHostAuthority func(auth PublicKey, address string) bool // Clock is used for verifying time stamps. If nil, time.Now @@ -442,12 +448,19 @@ func (c *CertChecker) CheckCert(principal string, cert *Certificate) error { // SignCert signs the certificate with an authority, setting the Nonce, // SignatureKey, and Signature fields. If the authority implements the // MultiAlgorithmSigner interface the first algorithm in the list is used. This -// is useful if you want to sign with a specific algorithm. +// is useful if you want to sign with a specific algorithm. As specified in +// [SSH-CERTS], Section 2.1.1, authority can't be a [Certificate]. func (c *Certificate) SignCert(rand io.Reader, authority Signer) error { c.Nonce = make([]byte, 32) if _, err := io.ReadFull(rand, c.Nonce); err != nil { return 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[authority.PublicKey().Type()]; ok { + return fmt.Errorf("ssh: certificates cannot be used as authority (public key type %q)", + authority.PublicKey().Type()) + } c.SignatureKey = authority.PublicKey() if v, ok := authority.(MultiAlgorithmSigner); ok { @@ -485,16 +498,16 @@ func (c *Certificate) SignCert(rand io.Reader, authority Signer) error { // // This map must be kept in sync with the one in agent/client.go. var certKeyAlgoNames = map[string]string{ - CertAlgoRSAv01: KeyAlgoRSA, - CertAlgoRSASHA256v01: KeyAlgoRSASHA256, - CertAlgoRSASHA512v01: KeyAlgoRSASHA512, - CertAlgoDSAv01: KeyAlgoDSA, - CertAlgoECDSA256v01: KeyAlgoECDSA256, - CertAlgoECDSA384v01: KeyAlgoECDSA384, - CertAlgoECDSA521v01: KeyAlgoECDSA521, - CertAlgoSKECDSA256v01: KeyAlgoSKECDSA256, - CertAlgoED25519v01: KeyAlgoED25519, - CertAlgoSKED25519v01: KeyAlgoSKED25519, + CertAlgoRSAv01: KeyAlgoRSA, + CertAlgoRSASHA256v01: KeyAlgoRSASHA256, + CertAlgoRSASHA512v01: KeyAlgoRSASHA512, + InsecureCertAlgoDSAv01: InsecureKeyAlgoDSA, + CertAlgoECDSA256v01: KeyAlgoECDSA256, + CertAlgoECDSA384v01: KeyAlgoECDSA384, + CertAlgoECDSA521v01: KeyAlgoECDSA521, + CertAlgoSKECDSA256v01: KeyAlgoSKECDSA256, + CertAlgoED25519v01: KeyAlgoED25519, + CertAlgoSKED25519v01: KeyAlgoSKED25519, } // underlyingAlgo returns the signature algorithm associated with algo (which is diff --git a/vendor/golang.org/x/crypto/ssh/cipher.go b/vendor/golang.org/x/crypto/ssh/cipher.go index 741e984f3..7554ed57a 100644 --- a/vendor/golang.org/x/crypto/ssh/cipher.go +++ b/vendor/golang.org/x/crypto/ssh/cipher.go @@ -8,6 +8,7 @@ import ( "crypto/aes" "crypto/cipher" "crypto/des" + "crypto/fips140" "crypto/rc4" "crypto/subtle" "encoding/binary" @@ -15,6 +16,7 @@ import ( "fmt" "hash" "io" + "slices" "golang.org/x/crypto/chacha20" "golang.org/x/crypto/internal/poly1305" @@ -58,11 +60,11 @@ func newRC4(key, iv []byte) (cipher.Stream, error) { type cipherMode struct { keySize int ivSize int - create func(key, iv []byte, macKey []byte, algs directionAlgorithms) (packetCipher, error) + create func(key, iv []byte, macKey []byte, algs DirectionAlgorithms) (packetCipher, error) } -func streamCipherMode(skip int, createFunc func(key, iv []byte) (cipher.Stream, error)) func(key, iv []byte, macKey []byte, algs directionAlgorithms) (packetCipher, error) { - return func(key, iv, macKey []byte, algs directionAlgorithms) (packetCipher, error) { +func streamCipherMode(skip int, createFunc func(key, iv []byte) (cipher.Stream, error)) func(key, iv []byte, macKey []byte, algs DirectionAlgorithms) (packetCipher, error) { + return func(key, iv, macKey []byte, algs DirectionAlgorithms) (packetCipher, error) { stream, err := createFunc(key, iv) if err != nil { return nil, err @@ -93,41 +95,41 @@ func streamCipherMode(skip int, createFunc func(key, iv []byte) (cipher.Stream, } // cipherModes documents properties of supported ciphers. Ciphers not included -// are not supported and will not be negotiated, even if explicitly requested in -// ClientConfig.Crypto.Ciphers. -var cipherModes = map[string]*cipherMode{ - // Ciphers from RFC 4344, which introduced many CTR-based ciphers. Algorithms - // are defined in the order specified in the RFC. - "aes128-ctr": {16, aes.BlockSize, streamCipherMode(0, newAESCTR)}, - "aes192-ctr": {24, aes.BlockSize, streamCipherMode(0, newAESCTR)}, - "aes256-ctr": {32, aes.BlockSize, streamCipherMode(0, newAESCTR)}, - - // Ciphers from RFC 4345, which introduces security-improved arcfour ciphers. - // They are defined in the order specified in the RFC. - "arcfour128": {16, 0, streamCipherMode(1536, newRC4)}, - "arcfour256": {32, 0, streamCipherMode(1536, newRC4)}, - - // Cipher defined in RFC 4253, which describes SSH Transport Layer Protocol. - // Note that this cipher is not safe, as stated in RFC 4253: "Arcfour (and - // RC4) has problems with weak keys, and should be used with caution." - // RFC 4345 introduces improved versions of Arcfour. - "arcfour": {16, 0, streamCipherMode(0, newRC4)}, - - // AEAD ciphers - gcm128CipherID: {16, 12, newGCMCipher}, - gcm256CipherID: {32, 12, newGCMCipher}, - chacha20Poly1305ID: {64, 0, newChaCha20Cipher}, - +// are not supported and will not be negotiated, even if explicitly configured. +// When FIPS mode is enabled, only FIPS-approved algorithms are included. +var cipherModes = map[string]*cipherMode{} + +func init() { + cipherModes[CipherAES128CTR] = &cipherMode{16, aes.BlockSize, streamCipherMode(0, newAESCTR)} + cipherModes[CipherAES192CTR] = &cipherMode{24, aes.BlockSize, streamCipherMode(0, newAESCTR)} + cipherModes[CipherAES256CTR] = &cipherMode{32, aes.BlockSize, streamCipherMode(0, newAESCTR)} + // Use of GCM with arbitrary IVs is not allowed in FIPS 140-only mode, + // we'll wire it up to NewGCMForSSH in Go 1.26. + // + // For now it means we'll work with fips140=on but not fips140=only. + cipherModes[CipherAES128GCM] = &cipherMode{16, 12, newGCMCipher} + cipherModes[CipherAES256GCM] = &cipherMode{32, 12, newGCMCipher} + + if fips140.Enabled() { + defaultCiphers = slices.DeleteFunc(defaultCiphers, func(algo string) bool { + _, ok := cipherModes[algo] + return !ok + }) + return + } + + cipherModes[CipherChaCha20Poly1305] = &cipherMode{64, 0, newChaCha20Cipher} + // Insecure ciphers not included in the default configuration. + cipherModes[InsecureCipherRC4128] = &cipherMode{16, 0, streamCipherMode(1536, newRC4)} + cipherModes[InsecureCipherRC4256] = &cipherMode{32, 0, streamCipherMode(1536, newRC4)} + cipherModes[InsecureCipherRC4] = &cipherMode{16, 0, streamCipherMode(0, newRC4)} // CBC mode is insecure and so is not included in the default config. // (See https://www.ieee-security.org/TC/SP2013/papers/4977a526.pdf). If absolutely // needed, it's possible to specify a custom Config to enable it. // You should expect that an active attacker can recover plaintext if // you do. - aes128cbcID: {16, aes.BlockSize, newAESCBCCipher}, - - // 3des-cbc is insecure and is not included in the default - // config. - tripledescbcID: {24, des.BlockSize, newTripleDESCBCCipher}, + cipherModes[InsecureCipherAES128CBC] = &cipherMode{16, aes.BlockSize, newAESCBCCipher} + cipherModes[InsecureCipherTripleDESCBC] = &cipherMode{24, des.BlockSize, newTripleDESCBCCipher} } // prefixLen is the length of the packet prefix that contains the packet length @@ -307,7 +309,7 @@ type gcmCipher struct { buf []byte } -func newGCMCipher(key, iv, unusedMacKey []byte, unusedAlgs directionAlgorithms) (packetCipher, error) { +func newGCMCipher(key, iv, unusedMacKey []byte, unusedAlgs DirectionAlgorithms) (packetCipher, error) { c, err := aes.NewCipher(key) if err != nil { return nil, err @@ -429,7 +431,7 @@ type cbcCipher struct { oracleCamouflage uint32 } -func newCBCCipher(c cipher.Block, key, iv, macKey []byte, algs directionAlgorithms) (packetCipher, error) { +func newCBCCipher(c cipher.Block, key, iv, macKey []byte, algs DirectionAlgorithms) (packetCipher, error) { cbc := &cbcCipher{ mac: macModes[algs.MAC].new(macKey), decrypter: cipher.NewCBCDecrypter(c, iv), @@ -443,7 +445,7 @@ func newCBCCipher(c cipher.Block, key, iv, macKey []byte, algs directionAlgorith return cbc, nil } -func newAESCBCCipher(key, iv, macKey []byte, algs directionAlgorithms) (packetCipher, error) { +func newAESCBCCipher(key, iv, macKey []byte, algs DirectionAlgorithms) (packetCipher, error) { c, err := aes.NewCipher(key) if err != nil { return nil, err @@ -457,7 +459,7 @@ func newAESCBCCipher(key, iv, macKey []byte, algs directionAlgorithms) (packetCi return cbc, nil } -func newTripleDESCBCCipher(key, iv, macKey []byte, algs directionAlgorithms) (packetCipher, error) { +func newTripleDESCBCCipher(key, iv, macKey []byte, algs DirectionAlgorithms) (packetCipher, error) { c, err := des.NewTripleDESCipher(key) if err != nil { return nil, err @@ -635,8 +637,6 @@ func (c *cbcCipher) writeCipherPacket(seqNum uint32, w io.Writer, rand io.Reader return nil } -const chacha20Poly1305ID = "chacha20-poly1305@openssh.com" - // chacha20Poly1305Cipher implements the chacha20-poly1305@openssh.com // AEAD, which is described here: // @@ -650,7 +650,7 @@ type chacha20Poly1305Cipher struct { buf []byte } -func newChaCha20Cipher(key, unusedIV, unusedMACKey []byte, unusedAlgs directionAlgorithms) (packetCipher, error) { +func newChaCha20Cipher(key, unusedIV, unusedMACKey []byte, unusedAlgs DirectionAlgorithms) (packetCipher, error) { if len(key) != 64 { panic(len(key)) } diff --git a/vendor/golang.org/x/crypto/ssh/client.go b/vendor/golang.org/x/crypto/ssh/client.go index fd8c49749..33079789b 100644 --- a/vendor/golang.org/x/crypto/ssh/client.go +++ b/vendor/golang.org/x/crypto/ssh/client.go @@ -110,6 +110,7 @@ func (c *connection) clientHandshake(dialAddress string, config *ClientConfig) e } c.sessionID = c.transport.getSessionID() + c.algorithms = c.transport.getAlgorithms() return c.clientAuthenticate(config) } diff --git a/vendor/golang.org/x/crypto/ssh/client_auth.go b/vendor/golang.org/x/crypto/ssh/client_auth.go index b86dde151..3127e4990 100644 --- a/vendor/golang.org/x/crypto/ssh/client_auth.go +++ b/vendor/golang.org/x/crypto/ssh/client_auth.go @@ -9,6 +9,7 @@ import ( "errors" "fmt" "io" + "slices" "strings" ) @@ -83,7 +84,7 @@ func (c *connection) clientAuthenticate(config *ClientConfig) error { // success return nil } else if ok == authFailure { - if m := auth.method(); !contains(tried, m) { + if m := auth.method(); !slices.Contains(tried, m) { tried = append(tried, m) } } @@ -97,7 +98,7 @@ func (c *connection) clientAuthenticate(config *ClientConfig) error { findNext: for _, a := range config.Auth { candidateMethod := a.method() - if contains(tried, candidateMethod) { + if slices.Contains(tried, candidateMethod) { continue } for _, meth := range methods { @@ -117,15 +118,6 @@ func (c *connection) clientAuthenticate(config *ClientConfig) error { return fmt.Errorf("ssh: unable to authenticate, attempted methods %v, no supported methods remain", tried) } -func contains(list []string, e string) bool { - for _, s := range list { - if s == e { - return true - } - } - return false -} - // An AuthMethod represents an instance of an RFC 4252 authentication method. type AuthMethod interface { // auth authenticates user over transport t. @@ -255,7 +247,7 @@ func pickSignatureAlgorithm(signer Signer, extensions map[string][]byte) (MultiA // Fallback to use if there is no "server-sig-algs" extension or a // common algorithm cannot be found. We use the public key format if the // MultiAlgorithmSigner supports it, otherwise we return an error. - if !contains(as.Algorithms(), underlyingAlgo(keyFormat)) { + if !slices.Contains(as.Algorithms(), underlyingAlgo(keyFormat)) { return "", fmt.Errorf("ssh: no common public key signature algorithm, server only supports %q for key type %q, signer only supports %v", underlyingAlgo(keyFormat), keyFormat, as.Algorithms()) } @@ -284,12 +276,12 @@ func pickSignatureAlgorithm(signer Signer, extensions map[string][]byte) (MultiA // Filter algorithms based on those supported by MultiAlgorithmSigner. var keyAlgos []string for _, algo := range algorithmsForKeyFormat(keyFormat) { - if contains(as.Algorithms(), underlyingAlgo(algo)) { + if slices.Contains(as.Algorithms(), underlyingAlgo(algo)) { keyAlgos = append(keyAlgos, algo) } } - algo, err := findCommon("public key signature algorithm", keyAlgos, serverAlgos) + algo, err := findCommon("public key signature algorithm", keyAlgos, serverAlgos, true) if err != nil { // If there is no overlap, return the fallback algorithm to support // servers that fail to list all supported algorithms. @@ -334,7 +326,7 @@ func (cb publicKeyCallback) auth(session []byte, user string, c packetConn, rand // the key try to use the obtained algorithm as if "server-sig-algs" had // not been implemented if supported from the algorithm signer. if !ok && idx < origSignersLen && isRSACert(algo) && algo != CertAlgoRSAv01 { - if contains(as.Algorithms(), KeyAlgoRSA) { + if slices.Contains(as.Algorithms(), KeyAlgoRSA) { // We retry using the compat algorithm after all signers have // been tried normally. signers = append(signers, &multiAlgorithmSigner{ @@ -385,7 +377,7 @@ func (cb publicKeyCallback) auth(session []byte, user string, c packetConn, rand // contain the "publickey" method, do not attempt to authenticate with any // other keys. According to RFC 4252 Section 7, the latter can occur when // additional authentication methods are required. - if success == authSuccess || !contains(methods, cb.method()) { + if success == authSuccess || !slices.Contains(methods, cb.method()) { return success, methods, err } } @@ -434,7 +426,7 @@ func confirmKeyAck(key PublicKey, c packetConn) (bool, error) { // servers send the key type instead. OpenSSH allows any algorithm // that matches the public key, so we do the same. // https://github.com/openssh/openssh-portable/blob/86bdd385/sshconnect2.c#L709 - if !contains(algorithmsForKeyFormat(key.Type()), msg.Algo) { + if !slices.Contains(algorithmsForKeyFormat(key.Type()), msg.Algo) { return false, nil } if !bytes.Equal(msg.PubKey, pubKey) { diff --git a/vendor/golang.org/x/crypto/ssh/common.go b/vendor/golang.org/x/crypto/ssh/common.go index 7e9c2cbc6..2e44e9c9e 100644 --- a/vendor/golang.org/x/crypto/ssh/common.go +++ b/vendor/golang.org/x/crypto/ssh/common.go @@ -6,10 +6,12 @@ package ssh import ( "crypto" + "crypto/fips140" "crypto/rand" "fmt" "io" "math" + "slices" "sync" _ "crypto/sha1" @@ -24,88 +26,298 @@ const ( serviceSSH = "ssh-connection" ) -// supportedCiphers lists ciphers we support but might not recommend. -var supportedCiphers = []string{ - "aes128-ctr", "aes192-ctr", "aes256-ctr", - "aes128-gcm@openssh.com", gcm256CipherID, - chacha20Poly1305ID, - "arcfour256", "arcfour128", "arcfour", - aes128cbcID, - tripledescbcID, -} +// The ciphers currently or previously implemented by this library, to use in +// [Config.Ciphers]. For a list, see the [Algorithms.Ciphers] returned by +// [SupportedAlgorithms] or [InsecureAlgorithms]. +const ( + CipherAES128GCM = "aes128-gcm@openssh.com" + CipherAES256GCM = "aes256-gcm@openssh.com" + CipherChaCha20Poly1305 = "chacha20-poly1305@openssh.com" + CipherAES128CTR = "aes128-ctr" + CipherAES192CTR = "aes192-ctr" + CipherAES256CTR = "aes256-ctr" + InsecureCipherAES128CBC = "aes128-cbc" + InsecureCipherTripleDESCBC = "3des-cbc" + InsecureCipherRC4 = "arcfour" + InsecureCipherRC4128 = "arcfour128" + InsecureCipherRC4256 = "arcfour256" +) -// preferredCiphers specifies the default preference for ciphers. -var preferredCiphers = []string{ - "aes128-gcm@openssh.com", gcm256CipherID, - chacha20Poly1305ID, - "aes128-ctr", "aes192-ctr", "aes256-ctr", -} +// The key exchanges currently or previously implemented by this library, to use +// in [Config.KeyExchanges]. For a list, see the +// [Algorithms.KeyExchanges] returned by [SupportedAlgorithms] or +// [InsecureAlgorithms]. +const ( + InsecureKeyExchangeDH1SHA1 = "diffie-hellman-group1-sha1" + InsecureKeyExchangeDH14SHA1 = "diffie-hellman-group14-sha1" + KeyExchangeDH14SHA256 = "diffie-hellman-group14-sha256" + KeyExchangeDH16SHA512 = "diffie-hellman-group16-sha512" + KeyExchangeECDHP256 = "ecdh-sha2-nistp256" + KeyExchangeECDHP384 = "ecdh-sha2-nistp384" + KeyExchangeECDHP521 = "ecdh-sha2-nistp521" + KeyExchangeCurve25519 = "curve25519-sha256" + InsecureKeyExchangeDHGEXSHA1 = "diffie-hellman-group-exchange-sha1" + KeyExchangeDHGEXSHA256 = "diffie-hellman-group-exchange-sha256" + // KeyExchangeMLKEM768X25519 is supported from Go 1.24. + KeyExchangeMLKEM768X25519 = "mlkem768x25519-sha256" + + // An alias for KeyExchangeCurve25519SHA256. This kex ID will be added if + // KeyExchangeCurve25519SHA256 is requested for backward compatibility with + // OpenSSH versions up to 7.2. + keyExchangeCurve25519LibSSH = "curve25519-sha256@libssh.org" +) -// supportedKexAlgos specifies the supported key-exchange algorithms in -// preference order. -var supportedKexAlgos = []string{ - kexAlgoCurve25519SHA256, kexAlgoCurve25519SHA256LibSSH, - // P384 and P521 are not constant-time yet, but since we don't - // reuse ephemeral keys, using them for ECDH should be OK. - kexAlgoECDH256, kexAlgoECDH384, kexAlgoECDH521, - kexAlgoDH14SHA256, kexAlgoDH16SHA512, kexAlgoDH14SHA1, - kexAlgoDH1SHA1, -} +// The message authentication code (MAC) currently or previously implemented by +// this library, to use in [Config.MACs]. For a list, see the +// [Algorithms.MACs] returned by [SupportedAlgorithms] or +// [InsecureAlgorithms]. +const ( + HMACSHA256ETM = "hmac-sha2-256-etm@openssh.com" + HMACSHA512ETM = "hmac-sha2-512-etm@openssh.com" + HMACSHA256 = "hmac-sha2-256" + HMACSHA512 = "hmac-sha2-512" + HMACSHA1 = "hmac-sha1" + InsecureHMACSHA196 = "hmac-sha1-96" +) -// serverForbiddenKexAlgos contains key exchange algorithms, that are forbidden -// for the server half. -var serverForbiddenKexAlgos = map[string]struct{}{ - kexAlgoDHGEXSHA1: {}, // server half implementation is only minimal to satisfy the automated tests - kexAlgoDHGEXSHA256: {}, // server half implementation is only minimal to satisfy the automated tests -} +var ( + // supportedKexAlgos specifies key-exchange algorithms implemented by this + // package in preference order, excluding those with security issues. + supportedKexAlgos = []string{ + KeyExchangeMLKEM768X25519, + KeyExchangeCurve25519, + KeyExchangeECDHP256, + KeyExchangeECDHP384, + KeyExchangeECDHP521, + KeyExchangeDH14SHA256, + KeyExchangeDH16SHA512, + KeyExchangeDHGEXSHA256, + } + // defaultKexAlgos specifies the default preference for key-exchange + // algorithms in preference order. + defaultKexAlgos = []string{ + KeyExchangeMLKEM768X25519, + KeyExchangeCurve25519, + KeyExchangeECDHP256, + KeyExchangeECDHP384, + KeyExchangeECDHP521, + KeyExchangeDH14SHA256, + InsecureKeyExchangeDH14SHA1, + } + // insecureKexAlgos specifies key-exchange algorithms implemented by this + // package and which have security issues. + insecureKexAlgos = []string{ + InsecureKeyExchangeDH14SHA1, + InsecureKeyExchangeDH1SHA1, + InsecureKeyExchangeDHGEXSHA1, + } + // supportedCiphers specifies cipher algorithms implemented by this package + // in preference order, excluding those with security issues. + supportedCiphers = []string{ + CipherAES128GCM, + CipherAES256GCM, + CipherChaCha20Poly1305, + CipherAES128CTR, + CipherAES192CTR, + CipherAES256CTR, + } + // defaultCiphers specifies the default preference for ciphers algorithms + // in preference order. + defaultCiphers = supportedCiphers + // insecureCiphers specifies cipher algorithms implemented by this + // package and which have security issues. + insecureCiphers = []string{ + InsecureCipherAES128CBC, + InsecureCipherTripleDESCBC, + InsecureCipherRC4256, + InsecureCipherRC4128, + InsecureCipherRC4, + } + // supportedMACs specifies MAC algorithms implemented by this package in + // preference order, excluding those with security issues. + supportedMACs = []string{ + HMACSHA256ETM, + HMACSHA512ETM, + HMACSHA256, + HMACSHA512, + HMACSHA1, + } + // defaultMACs specifies the default preference for MAC algorithms in + // preference order. + defaultMACs = []string{ + HMACSHA256ETM, + HMACSHA512ETM, + HMACSHA256, + HMACSHA512, + HMACSHA1, + InsecureHMACSHA196, + } + // insecureMACs specifies MAC algorithms implemented by this + // package and which have security issues. + insecureMACs = []string{ + InsecureHMACSHA196, + } + // supportedHostKeyAlgos specifies the supported host-key algorithms (i.e. + // methods of authenticating servers) implemented by this package in + // preference order, excluding those with security issues. + supportedHostKeyAlgos = []string{ + CertAlgoRSASHA256v01, + CertAlgoRSASHA512v01, + CertAlgoECDSA256v01, + CertAlgoECDSA384v01, + CertAlgoECDSA521v01, + CertAlgoED25519v01, + KeyAlgoRSASHA256, + KeyAlgoRSASHA512, + KeyAlgoECDSA256, + KeyAlgoECDSA384, + KeyAlgoECDSA521, + KeyAlgoED25519, + } + // defaultHostKeyAlgos specifies the default preference for host-key + // algorithms in preference order. + defaultHostKeyAlgos = []string{ + CertAlgoRSASHA256v01, + CertAlgoRSASHA512v01, + CertAlgoRSAv01, + InsecureCertAlgoDSAv01, + CertAlgoECDSA256v01, + CertAlgoECDSA384v01, + CertAlgoECDSA521v01, + CertAlgoED25519v01, + KeyAlgoECDSA256, + KeyAlgoECDSA384, + KeyAlgoECDSA521, + KeyAlgoRSASHA256, + KeyAlgoRSASHA512, + KeyAlgoRSA, + InsecureKeyAlgoDSA, + KeyAlgoED25519, + } + // insecureHostKeyAlgos specifies host-key algorithms implemented by this + // package and which have security issues. + insecureHostKeyAlgos = []string{ + KeyAlgoRSA, + InsecureKeyAlgoDSA, + CertAlgoRSAv01, + InsecureCertAlgoDSAv01, + } + // supportedPubKeyAuthAlgos specifies the supported client public key + // authentication algorithms. Note that this doesn't include certificate + // types since those use the underlying algorithm. Order is irrelevant. + supportedPubKeyAuthAlgos = []string{ + KeyAlgoED25519, + KeyAlgoSKED25519, + KeyAlgoSKECDSA256, + KeyAlgoECDSA256, + KeyAlgoECDSA384, + KeyAlgoECDSA521, + KeyAlgoRSASHA256, + KeyAlgoRSASHA512, + } -// preferredKexAlgos specifies the default preference for key-exchange -// algorithms in preference order. The diffie-hellman-group16-sha512 algorithm -// is disabled by default because it is a bit slower than the others. -var preferredKexAlgos = []string{ - kexAlgoCurve25519SHA256, kexAlgoCurve25519SHA256LibSSH, - kexAlgoECDH256, kexAlgoECDH384, kexAlgoECDH521, - kexAlgoDH14SHA256, kexAlgoDH14SHA1, -} + // defaultPubKeyAuthAlgos specifies the preferred client public key + // authentication algorithms. This list is sent to the client if it supports + // the server-sig-algs extension. Order is irrelevant. + defaultPubKeyAuthAlgos = []string{ + KeyAlgoED25519, + KeyAlgoSKED25519, + KeyAlgoSKECDSA256, + KeyAlgoECDSA256, + KeyAlgoECDSA384, + KeyAlgoECDSA521, + KeyAlgoRSASHA256, + KeyAlgoRSASHA512, + KeyAlgoRSA, + InsecureKeyAlgoDSA, + } + // insecurePubKeyAuthAlgos specifies client public key authentication + // algorithms implemented by this package and which have security issues. + insecurePubKeyAuthAlgos = []string{ + KeyAlgoRSA, + InsecureKeyAlgoDSA, + } +) -// supportedHostKeyAlgos specifies the supported host-key algorithms (i.e. methods -// of authenticating servers) in preference order. -var supportedHostKeyAlgos = []string{ - CertAlgoRSASHA256v01, CertAlgoRSASHA512v01, - CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, - CertAlgoECDSA384v01, CertAlgoECDSA521v01, CertAlgoED25519v01, +// NegotiatedAlgorithms defines algorithms negotiated between client and server. +type NegotiatedAlgorithms struct { + KeyExchange string + HostKey string + Read DirectionAlgorithms + Write DirectionAlgorithms +} + +// Algorithms defines a set of algorithms that can be configured in the client +// or server config for negotiation during a handshake. +type Algorithms struct { + KeyExchanges []string + Ciphers []string + MACs []string + HostKeys []string + PublicKeyAuths []string +} + +func init() { + if fips140.Enabled() { + defaultHostKeyAlgos = slices.DeleteFunc(defaultHostKeyAlgos, func(algo string) bool { + _, err := hashFunc(underlyingAlgo(algo)) + return err != nil + }) + defaultPubKeyAuthAlgos = slices.DeleteFunc(defaultPubKeyAuthAlgos, func(algo string) bool { + _, err := hashFunc(underlyingAlgo(algo)) + return err != nil + }) + } +} - KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521, - KeyAlgoRSASHA256, KeyAlgoRSASHA512, - KeyAlgoRSA, KeyAlgoDSA, +func hashFunc(format string) (crypto.Hash, error) { + switch format { + case KeyAlgoRSASHA256, KeyAlgoECDSA256, KeyAlgoSKED25519, KeyAlgoSKECDSA256: + return crypto.SHA256, nil + case KeyAlgoECDSA384: + return crypto.SHA384, nil + case KeyAlgoRSASHA512, KeyAlgoECDSA521: + return crypto.SHA512, nil + case KeyAlgoED25519: + // KeyAlgoED25519 doesn't pre-hash. + return 0, nil + case KeyAlgoRSA, InsecureKeyAlgoDSA: + if fips140.Enabled() { + return 0, fmt.Errorf("ssh: hash algorithm for format %q not allowed in FIPS 140 mode", format) + } + return crypto.SHA1, nil + default: + return 0, fmt.Errorf("ssh: hash algorithm for format %q not mapped", format) + } +} - KeyAlgoED25519, +// SupportedAlgorithms returns algorithms currently implemented by this package, +// excluding those with security issues, which are returned by +// InsecureAlgorithms. The algorithms listed here are in preference order. +func SupportedAlgorithms() Algorithms { + return Algorithms{ + Ciphers: slices.Clone(supportedCiphers), + MACs: slices.Clone(supportedMACs), + KeyExchanges: slices.Clone(supportedKexAlgos), + HostKeys: slices.Clone(supportedHostKeyAlgos), + PublicKeyAuths: slices.Clone(supportedPubKeyAuthAlgos), + } } -// supportedMACs specifies a default set of MAC algorithms in preference order. -// This is based on RFC 4253, section 6.4, but with hmac-md5 variants removed -// because they have reached the end of their useful life. -var supportedMACs = []string{ - "hmac-sha2-256-etm@openssh.com", "hmac-sha2-512-etm@openssh.com", "hmac-sha2-256", "hmac-sha2-512", "hmac-sha1", "hmac-sha1-96", +// InsecureAlgorithms returns algorithms currently implemented by this package +// and which have security issues. +func InsecureAlgorithms() Algorithms { + return Algorithms{ + KeyExchanges: slices.Clone(insecureKexAlgos), + Ciphers: slices.Clone(insecureCiphers), + MACs: slices.Clone(insecureMACs), + HostKeys: slices.Clone(insecureHostKeyAlgos), + PublicKeyAuths: slices.Clone(insecurePubKeyAuthAlgos), + } } var supportedCompressions = []string{compressionNone} -// hashFuncs keeps the mapping of supported signature algorithms to their -// respective hashes needed for signing and verification. -var hashFuncs = map[string]crypto.Hash{ - KeyAlgoRSA: crypto.SHA1, - KeyAlgoRSASHA256: crypto.SHA256, - KeyAlgoRSASHA512: crypto.SHA512, - KeyAlgoDSA: crypto.SHA1, - KeyAlgoECDSA256: crypto.SHA256, - KeyAlgoECDSA384: crypto.SHA384, - KeyAlgoECDSA521: crypto.SHA512, - // KeyAlgoED25519 doesn't pre-hash. - KeyAlgoSKECDSA256: crypto.SHA256, - KeyAlgoSKED25519: crypto.SHA256, -} - // algorithmsForKeyFormat returns the supported signature algorithms for a given // public key format (PublicKey.Type), in order of preference. See RFC 8332, // Section 2. See also the note in sendKexInit on backwards compatibility. @@ -120,11 +332,40 @@ func algorithmsForKeyFormat(keyFormat string) []string { } } +// keyFormatForAlgorithm returns the key format corresponding to the given +// signature algorithm. It returns an empty string if the signature algorithm is +// invalid or unsupported. +func keyFormatForAlgorithm(sigAlgo string) string { + switch sigAlgo { + case KeyAlgoRSA, KeyAlgoRSASHA256, KeyAlgoRSASHA512: + return KeyAlgoRSA + case CertAlgoRSAv01, CertAlgoRSASHA256v01, CertAlgoRSASHA512v01: + return CertAlgoRSAv01 + case KeyAlgoED25519, + KeyAlgoSKED25519, + KeyAlgoSKECDSA256, + KeyAlgoECDSA256, + KeyAlgoECDSA384, + KeyAlgoECDSA521, + InsecureKeyAlgoDSA, + InsecureCertAlgoDSAv01, + CertAlgoECDSA256v01, + CertAlgoECDSA384v01, + CertAlgoECDSA521v01, + CertAlgoSKECDSA256v01, + CertAlgoED25519v01, + CertAlgoSKED25519v01: + return sigAlgo + default: + return "" + } +} + // isRSA returns whether algo is a supported RSA algorithm, including certificate // algorithms. func isRSA(algo string) bool { algos := algorithmsForKeyFormat(KeyAlgoRSA) - return contains(algos, underlyingAlgo(algo)) + return slices.Contains(algos, underlyingAlgo(algo)) } func isRSACert(algo string) bool { @@ -135,18 +376,6 @@ func isRSACert(algo string) bool { return isRSA(algo) } -// supportedPubKeyAuthAlgos specifies the supported client public key -// authentication algorithms. Note that this doesn't include certificate types -// since those use the underlying algorithm. This list is sent to the client if -// it supports the server-sig-algs extension. Order is irrelevant. -var supportedPubKeyAuthAlgos = []string{ - KeyAlgoED25519, - KeyAlgoSKED25519, KeyAlgoSKECDSA256, - KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521, - KeyAlgoRSASHA256, KeyAlgoRSASHA512, KeyAlgoRSA, - KeyAlgoDSA, -} - // unexpectedMessageError results when the SSH message that we received didn't // match what we wanted. func unexpectedMessageError(expected, got uint8) error { @@ -158,7 +387,7 @@ func parseError(tag uint8) error { return fmt.Errorf("ssh: parse error in message type %d", tag) } -func findCommon(what string, client []string, server []string) (common string, err error) { +func findCommon(what string, client []string, server []string, isClient bool) (string, error) { for _, c := range client { for _, s := range server { if c == s { @@ -166,23 +395,49 @@ func findCommon(what string, client []string, server []string) (common string, e } } } - return "", fmt.Errorf("ssh: no common algorithm for %s; client offered: %v, server offered: %v", what, client, server) + err := &AlgorithmNegotiationError{ + What: what, + } + if isClient { + err.SupportedAlgorithms = client + err.RequestedAlgorithms = server + } else { + err.SupportedAlgorithms = server + err.RequestedAlgorithms = client + } + return "", err } -// directionAlgorithms records algorithm choices in one direction (either read or write) -type directionAlgorithms struct { +// AlgorithmNegotiationError defines the error returned if the client and the +// server cannot agree on an algorithm for key exchange, host key, cipher, MAC. +type AlgorithmNegotiationError struct { + What string + // RequestedAlgorithms lists the algorithms supported by the peer. + RequestedAlgorithms []string + // SupportedAlgorithms lists the algorithms supported on our side. + SupportedAlgorithms []string +} + +func (a *AlgorithmNegotiationError) Error() string { + return fmt.Sprintf("ssh: no common algorithm for %s; we offered: %v, peer offered: %v", + a.What, a.SupportedAlgorithms, a.RequestedAlgorithms) +} + +// DirectionAlgorithms defines the algorithms negotiated in one direction +// (either read or write). +type DirectionAlgorithms struct { Cipher string MAC string - Compression string + compression string } // rekeyBytes returns a rekeying intervals in bytes. -func (a *directionAlgorithms) rekeyBytes() int64 { +func (a *DirectionAlgorithms) rekeyBytes() int64 { // According to RFC 4344 block ciphers should rekey after // 2^(BLOCKSIZE/4) blocks. For all AES flavors BLOCKSIZE is // 128. switch a.Cipher { - case "aes128-ctr", "aes192-ctr", "aes256-ctr", gcm128CipherID, gcm256CipherID, aes128cbcID: + case CipherAES128CTR, CipherAES192CTR, CipherAES256CTR, CipherAES128GCM, CipherAES256GCM, InsecureCipherAES128CBC: return 16 * (1 << 32) } @@ -192,66 +447,59 @@ func (a *directionAlgorithms) rekeyBytes() int64 { } var aeadCiphers = map[string]bool{ - gcm128CipherID: true, - gcm256CipherID: true, - chacha20Poly1305ID: true, + CipherAES128GCM: true, + CipherAES256GCM: true, + CipherChaCha20Poly1305: true, } -type algorithms struct { - kex string - hostKey string - w directionAlgorithms - r directionAlgorithms -} - -func findAgreedAlgorithms(isClient bool, clientKexInit, serverKexInit *kexInitMsg) (algs *algorithms, err error) { - result := &algorithms{} +func findAgreedAlgorithms(isClient bool, clientKexInit, serverKexInit *kexInitMsg) (algs *NegotiatedAlgorithms, err error) { + result := &NegotiatedAlgorithms{} - result.kex, err = findCommon("key exchange", clientKexInit.KexAlgos, serverKexInit.KexAlgos) + result.KeyExchange, err = findCommon("key exchange", clientKexInit.KexAlgos, serverKexInit.KexAlgos, isClient) if err != nil { return } - result.hostKey, err = findCommon("host key", clientKexInit.ServerHostKeyAlgos, serverKexInit.ServerHostKeyAlgos) + result.HostKey, err = findCommon("host key", clientKexInit.ServerHostKeyAlgos, serverKexInit.ServerHostKeyAlgos, isClient) if err != nil { return } - stoc, ctos := &result.w, &result.r + stoc, ctos := &result.Write, &result.Read if isClient { ctos, stoc = stoc, ctos } - ctos.Cipher, err = findCommon("client to server cipher", clientKexInit.CiphersClientServer, serverKexInit.CiphersClientServer) + ctos.Cipher, err = findCommon("client to server cipher", clientKexInit.CiphersClientServer, serverKexInit.CiphersClientServer, isClient) if err != nil { return } - stoc.Cipher, err = findCommon("server to client cipher", clientKexInit.CiphersServerClient, serverKexInit.CiphersServerClient) + stoc.Cipher, err = findCommon("server to client cipher", clientKexInit.CiphersServerClient, serverKexInit.CiphersServerClient, isClient) if err != nil { return } if !aeadCiphers[ctos.Cipher] { - ctos.MAC, err = findCommon("client to server MAC", clientKexInit.MACsClientServer, serverKexInit.MACsClientServer) + ctos.MAC, err = findCommon("client to server MAC", clientKexInit.MACsClientServer, serverKexInit.MACsClientServer, isClient) if err != nil { return } } if !aeadCiphers[stoc.Cipher] { - stoc.MAC, err = findCommon("server to client MAC", clientKexInit.MACsServerClient, serverKexInit.MACsServerClient) + stoc.MAC, err = findCommon("server to client MAC", clientKexInit.MACsServerClient, serverKexInit.MACsServerClient, isClient) if err != nil { return } } - ctos.Compression, err = findCommon("client to server compression", clientKexInit.CompressionClientServer, serverKexInit.CompressionClientServer) + ctos.compression, err = findCommon("client to server compression", clientKexInit.CompressionClientServer, serverKexInit.CompressionClientServer, isClient) if err != nil { return } - stoc.Compression, err = findCommon("server to client compression", clientKexInit.CompressionServerClient, serverKexInit.CompressionServerClient) + stoc.compression, err = findCommon("server to client compression", clientKexInit.CompressionServerClient, serverKexInit.CompressionServerClient, isClient) if err != nil { return } @@ -297,7 +545,7 @@ func (c *Config) SetDefaults() { c.Rand = rand.Reader } if c.Ciphers == nil { - c.Ciphers = preferredCiphers + c.Ciphers = defaultCiphers } var ciphers []string for _, c := range c.Ciphers { @@ -309,19 +557,22 @@ func (c *Config) SetDefaults() { c.Ciphers = ciphers if c.KeyExchanges == nil { - c.KeyExchanges = preferredKexAlgos + c.KeyExchanges = defaultKexAlgos } var kexs []string for _, k := range c.KeyExchanges { if kexAlgoMap[k] != nil { // Ignore the KEX if we have no kexAlgoMap definition. kexs = append(kexs, k) + if k == KeyExchangeCurve25519 && !slices.Contains(c.KeyExchanges, keyExchangeCurve25519LibSSH) { + kexs = append(kexs, keyExchangeCurve25519LibSSH) + } } } c.KeyExchanges = kexs if c.MACs == nil { - c.MACs = supportedMACs + c.MACs = defaultMACs } var macs []string for _, m := range c.MACs { diff --git a/vendor/golang.org/x/crypto/ssh/connection.go b/vendor/golang.org/x/crypto/ssh/connection.go index 8f345ee92..613a71a7b 100644 --- a/vendor/golang.org/x/crypto/ssh/connection.go +++ b/vendor/golang.org/x/crypto/ssh/connection.go @@ -74,6 +74,13 @@ type Conn interface { // Disconnect } +// AlgorithmsConnMetadata is a ConnMetadata that can return the algorithms +// negotiated between client and server. +type AlgorithmsConnMetadata interface { + ConnMetadata + Algorithms() NegotiatedAlgorithms +} + // DiscardRequests consumes and rejects all requests from the // passed-in channel. func DiscardRequests(in <-chan *Request) { @@ -106,6 +113,7 @@ type sshConn struct { sessionID []byte clientVersion []byte serverVersion []byte + algorithms NegotiatedAlgorithms } func dup(src []byte) []byte { @@ -141,3 +149,7 @@ func (c *sshConn) ClientVersion() []byte { func (c *sshConn) ServerVersion() []byte { return dup(c.serverVersion) } + +func (c *sshConn) Algorithms() NegotiatedAlgorithms { + return c.algorithms +} diff --git a/vendor/golang.org/x/crypto/ssh/doc.go b/vendor/golang.org/x/crypto/ssh/doc.go index f5d352fe3..5b4de9eff 100644 --- a/vendor/golang.org/x/crypto/ssh/doc.go +++ b/vendor/golang.org/x/crypto/ssh/doc.go @@ -16,8 +16,19 @@ References: [PROTOCOL]: https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL?rev=HEAD [PROTOCOL.certkeys]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL.certkeys?rev=HEAD [SSH-PARAMETERS]: http://www.iana.org/assignments/ssh-parameters/ssh-parameters.xml#ssh-parameters-1 + [SSH-CERTS]: https://datatracker.ietf.org/doc/html/draft-miller-ssh-cert-01 + [FIPS 140-3 mode]: https://go.dev/doc/security/fips140 This package does not fall under the stability promise of the Go language itself, so its API may be changed when pressing needs arise. + +# FIPS 140-3 mode + +When the program is in [FIPS 140-3 mode], this package behaves as if only SP +800-140C and SP 800-140D approved cipher suites, signature algorithms, +certificate public key types and sizes, and key exchange and derivation +algorithms were implemented. Others are silently ignored and not negotiated, or +rejected. This set may depend on the algorithms supported by the FIPS 140-3 Go +Cryptographic Module selected with GOFIPS140, and may change across Go versions. */ package ssh diff --git a/vendor/golang.org/x/crypto/ssh/handshake.go b/vendor/golang.org/x/crypto/ssh/handshake.go index b6bf546b4..4be3cbb6d 100644 --- a/vendor/golang.org/x/crypto/ssh/handshake.go +++ b/vendor/golang.org/x/crypto/ssh/handshake.go @@ -10,6 +10,7 @@ import ( "io" "log" "net" + "slices" "strings" "sync" ) @@ -38,7 +39,7 @@ type keyingTransport interface { // prepareKeyChange sets up a key change. The key change for a // direction will be effected if a msgNewKeys message is sent // or received. - prepareKeyChange(*algorithms, *kexResult) error + prepareKeyChange(*NegotiatedAlgorithms, *kexResult) error // setStrictMode sets the strict KEX mode, notably triggering // sequence number resets on sending or receiving msgNewKeys. @@ -115,7 +116,7 @@ type handshakeTransport struct { bannerCallback BannerCallback // Algorithms agreed in the last key exchange. - algorithms *algorithms + algorithms *NegotiatedAlgorithms // Counters exclusively owned by readLoop. readPacketsLeft uint32 @@ -164,7 +165,7 @@ func newClientTransport(conn keyingTransport, clientVersion, serverVersion []byt if config.HostKeyAlgorithms != nil { t.hostKeyAlgorithms = config.HostKeyAlgorithms } else { - t.hostKeyAlgorithms = supportedHostKeyAlgos + t.hostKeyAlgorithms = defaultHostKeyAlgos } go t.readLoop() go t.kexLoop() @@ -184,6 +185,10 @@ func (t *handshakeTransport) getSessionID() []byte { return t.sessionID } +func (t *handshakeTransport) getAlgorithms() NegotiatedAlgorithms { + return *t.algorithms +} + // waitSession waits for the session to be established. This should be // the first thing to call after instantiating handshakeTransport. func (t *handshakeTransport) waitSession() error { @@ -290,7 +295,7 @@ func (t *handshakeTransport) resetWriteThresholds() { if t.config.RekeyThreshold > 0 { t.writeBytesLeft = int64(t.config.RekeyThreshold) } else if t.algorithms != nil { - t.writeBytesLeft = t.algorithms.w.rekeyBytes() + t.writeBytesLeft = t.algorithms.Write.rekeyBytes() } else { t.writeBytesLeft = 1 << 30 } @@ -407,7 +412,7 @@ func (t *handshakeTransport) resetReadThresholds() { if t.config.RekeyThreshold > 0 { t.readBytesLeft = int64(t.config.RekeyThreshold) } else if t.algorithms != nil { - t.readBytesLeft = t.algorithms.r.rekeyBytes() + t.readBytesLeft = t.algorithms.Read.rekeyBytes() } else { t.readBytesLeft = 1 << 30 } @@ -523,7 +528,7 @@ func (t *handshakeTransport) sendKexInit() error { switch s := k.(type) { case MultiAlgorithmSigner: for _, algo := range algorithmsForKeyFormat(keyFormat) { - if contains(s.Algorithms(), underlyingAlgo(algo)) { + if slices.Contains(s.Algorithms(), underlyingAlgo(algo)) { msg.ServerHostKeyAlgos = append(msg.ServerHostKeyAlgos, algo) } } @@ -675,7 +680,7 @@ func (t *handshakeTransport) enterKeyExchange(otherInitPacket []byte) error { return err } - if t.sessionID == nil && ((isClient && contains(serverInit.KexAlgos, kexStrictServer)) || (!isClient && contains(clientInit.KexAlgos, kexStrictClient))) { + if t.sessionID == nil && ((isClient && slices.Contains(serverInit.KexAlgos, kexStrictServer)) || (!isClient && slices.Contains(clientInit.KexAlgos, kexStrictClient))) { t.strictMode = true if err := t.conn.setStrictMode(); err != nil { return err @@ -700,9 +705,9 @@ func (t *handshakeTransport) enterKeyExchange(otherInitPacket []byte) error { } } - kex, ok := kexAlgoMap[t.algorithms.kex] + kex, ok := kexAlgoMap[t.algorithms.KeyExchange] if !ok { - return fmt.Errorf("ssh: unexpected key exchange algorithm %v", t.algorithms.kex) + return fmt.Errorf("ssh: unexpected key exchange algorithm %v", t.algorithms.KeyExchange) } var result *kexResult @@ -732,7 +737,7 @@ func (t *handshakeTransport) enterKeyExchange(otherInitPacket []byte) error { // On the server side, after the first SSH_MSG_NEWKEYS, send a SSH_MSG_EXT_INFO // message with the server-sig-algs extension if the client supports it. See // RFC 8308, Sections 2.4 and 3.1, and [PROTOCOL], Section 1.9. - if !isClient && firstKeyExchange && contains(clientInit.KexAlgos, "ext-info-c") { + if !isClient && firstKeyExchange && slices.Contains(clientInit.KexAlgos, "ext-info-c") { supportedPubKeyAuthAlgosList := strings.Join(t.publicKeyAuthAlgorithms, ",") extInfo := &extInfoMsg{ NumExtensions: 2, @@ -786,7 +791,7 @@ func (a algorithmSignerWrapper) SignWithAlgorithm(rand io.Reader, data []byte, a func pickHostKey(hostKeys []Signer, algo string) AlgorithmSigner { for _, k := range hostKeys { if s, ok := k.(MultiAlgorithmSigner); ok { - if !contains(s.Algorithms(), underlyingAlgo(algo)) { + if !slices.Contains(s.Algorithms(), underlyingAlgo(algo)) { continue } } @@ -809,12 +814,12 @@ func pickHostKey(hostKeys []Signer, algo string) AlgorithmSigner { } func (t *handshakeTransport) server(kex kexAlgorithm, magics *handshakeMagics) (*kexResult, error) { - hostKey := pickHostKey(t.hostKeys, t.algorithms.hostKey) + hostKey := pickHostKey(t.hostKeys, t.algorithms.HostKey) if hostKey == nil { return nil, errors.New("ssh: internal error: negotiated unsupported signature type") } - r, err := kex.Server(t.conn, t.config.Rand, magics, hostKey, t.algorithms.hostKey) + r, err := kex.Server(t.conn, t.config.Rand, magics, hostKey, t.algorithms.HostKey) return r, err } @@ -829,7 +834,7 @@ func (t *handshakeTransport) client(kex kexAlgorithm, magics *handshakeMagics) ( return nil, err } - if err := verifyHostKeySignature(hostKey, t.algorithms.hostKey, result); err != nil { + if err := verifyHostKeySignature(hostKey, t.algorithms.HostKey, result); err != nil { return nil, err } diff --git a/vendor/golang.org/x/crypto/ssh/kex.go b/vendor/golang.org/x/crypto/ssh/kex.go index 8a05f7990..5f7fdd851 100644 --- a/vendor/golang.org/x/crypto/ssh/kex.go +++ b/vendor/golang.org/x/crypto/ssh/kex.go @@ -8,33 +8,31 @@ import ( "crypto" "crypto/ecdsa" "crypto/elliptic" + "crypto/fips140" "crypto/rand" - "crypto/subtle" "encoding/binary" "errors" "fmt" "io" "math/big" + "slices" "golang.org/x/crypto/curve25519" ) const ( - kexAlgoDH1SHA1 = "diffie-hellman-group1-sha1" - kexAlgoDH14SHA1 = "diffie-hellman-group14-sha1" - kexAlgoDH14SHA256 = "diffie-hellman-group14-sha256" - kexAlgoDH16SHA512 = "diffie-hellman-group16-sha512" - kexAlgoECDH256 = "ecdh-sha2-nistp256" - kexAlgoECDH384 = "ecdh-sha2-nistp384" - kexAlgoECDH521 = "ecdh-sha2-nistp521" - kexAlgoCurve25519SHA256LibSSH = "curve25519-sha256@libssh.org" - kexAlgoCurve25519SHA256 = "curve25519-sha256" - - // For the following kex only the client half contains a production - // ready implementation. The server half only consists of a minimal - // implementation to satisfy the automated tests. - kexAlgoDHGEXSHA1 = "diffie-hellman-group-exchange-sha1" - kexAlgoDHGEXSHA256 = "diffie-hellman-group-exchange-sha256" + // This is the group called diffie-hellman-group1-sha1 in RFC 4253 and + // Oakley Group 2 in RFC 2409. + oakleyGroup2 = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF" + // This is the group called diffie-hellman-group14-sha1 in RFC 4253 and + // Oakley Group 14 in RFC 3526. + oakleyGroup14 = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF" + // This is the group called diffie-hellman-group15-sha512 in RFC 8268 and + // Oakley Group 15 in RFC 3526. + oakleyGroup15 = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF" + // This is the group called diffie-hellman-group16-sha512 in RFC 8268 and + // Oakley Group 16 in RFC 3526. + oakleyGroup16 = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF" ) // kexResult captures the outcome of a key exchange. @@ -399,56 +397,64 @@ func ecHash(curve elliptic.Curve) crypto.Hash { return crypto.SHA512 } +// kexAlgoMap defines the supported KEXs. KEXs not included are not supported +// and will not be negotiated, even if explicitly configured. When FIPS mode is +// enabled, only FIPS-approved algorithms are included. var kexAlgoMap = map[string]kexAlgorithm{} func init() { - // This is the group called diffie-hellman-group1-sha1 in - // RFC 4253 and Oakley Group 2 in RFC 2409. - p, _ := new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF", 16) - kexAlgoMap[kexAlgoDH1SHA1] = &dhGroup{ + // mlkem768x25519-sha256 we'll work with fips140=on but not fips140=only + // until Go 1.26. + kexAlgoMap[KeyExchangeMLKEM768X25519] = &mlkem768WithCurve25519sha256{} + kexAlgoMap[KeyExchangeECDHP521] = &ecdh{elliptic.P521()} + kexAlgoMap[KeyExchangeECDHP384] = &ecdh{elliptic.P384()} + kexAlgoMap[KeyExchangeECDHP256] = &ecdh{elliptic.P256()} + + if fips140.Enabled() { + defaultKexAlgos = slices.DeleteFunc(defaultKexAlgos, func(algo string) bool { + _, ok := kexAlgoMap[algo] + return !ok + }) + return + } + + p, _ := new(big.Int).SetString(oakleyGroup2, 16) + kexAlgoMap[InsecureKeyExchangeDH1SHA1] = &dhGroup{ g: new(big.Int).SetInt64(2), p: p, pMinus1: new(big.Int).Sub(p, bigOne), hashFunc: crypto.SHA1, } - // This are the groups called diffie-hellman-group14-sha1 and - // diffie-hellman-group14-sha256 in RFC 4253 and RFC 8268, - // and Oakley Group 14 in RFC 3526. - p, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF", 16) + p, _ = new(big.Int).SetString(oakleyGroup14, 16) group14 := &dhGroup{ g: new(big.Int).SetInt64(2), p: p, pMinus1: new(big.Int).Sub(p, bigOne), } - kexAlgoMap[kexAlgoDH14SHA1] = &dhGroup{ + kexAlgoMap[InsecureKeyExchangeDH14SHA1] = &dhGroup{ g: group14.g, p: group14.p, pMinus1: group14.pMinus1, hashFunc: crypto.SHA1, } - kexAlgoMap[kexAlgoDH14SHA256] = &dhGroup{ + kexAlgoMap[KeyExchangeDH14SHA256] = &dhGroup{ g: group14.g, p: group14.p, pMinus1: group14.pMinus1, hashFunc: crypto.SHA256, } - // This is the group called diffie-hellman-group16-sha512 in RFC - // 8268 and Oakley Group 16 in RFC 3526. - p, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF", 16) + p, _ = new(big.Int).SetString(oakleyGroup16, 16) - kexAlgoMap[kexAlgoDH16SHA512] = &dhGroup{ + kexAlgoMap[KeyExchangeDH16SHA512] = &dhGroup{ g: new(big.Int).SetInt64(2), p: p, pMinus1: new(big.Int).Sub(p, bigOne), hashFunc: crypto.SHA512, } - kexAlgoMap[kexAlgoECDH521] = &ecdh{elliptic.P521()} - kexAlgoMap[kexAlgoECDH384] = &ecdh{elliptic.P384()} - kexAlgoMap[kexAlgoECDH256] = &ecdh{elliptic.P256()} - kexAlgoMap[kexAlgoCurve25519SHA256] = &curve25519sha256{} - kexAlgoMap[kexAlgoCurve25519SHA256LibSSH] = &curve25519sha256{} - kexAlgoMap[kexAlgoDHGEXSHA1] = &dhGEXSHA{hashFunc: crypto.SHA1} - kexAlgoMap[kexAlgoDHGEXSHA256] = &dhGEXSHA{hashFunc: crypto.SHA256} + kexAlgoMap[KeyExchangeCurve25519] = &curve25519sha256{} + kexAlgoMap[keyExchangeCurve25519LibSSH] = &curve25519sha256{} + kexAlgoMap[InsecureKeyExchangeDHGEXSHA1] = &dhGEXSHA{hashFunc: crypto.SHA1} + kexAlgoMap[KeyExchangeDHGEXSHA256] = &dhGEXSHA{hashFunc: crypto.SHA256} } // curve25519sha256 implements the curve25519-sha256 (formerly known as @@ -464,15 +470,17 @@ func (kp *curve25519KeyPair) generate(rand io.Reader) error { if _, err := io.ReadFull(rand, kp.priv[:]); err != nil { return err } - curve25519.ScalarBaseMult(&kp.pub, &kp.priv) + p, err := curve25519.X25519(kp.priv[:], curve25519.Basepoint) + if err != nil { + return fmt.Errorf("curve25519: %w", err) + } + if len(p) != 32 { + return fmt.Errorf("curve25519: internal error: X25519 returned %d bytes, expected 32", len(p)) + } + copy(kp.pub[:], p) return nil } -// curve25519Zeros is just an array of 32 zero bytes so that we have something -// convenient to compare against in order to reject curve25519 points with the -// wrong order. -var curve25519Zeros [32]byte - func (kex *curve25519sha256) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) { var kp curve25519KeyPair if err := kp.generate(rand); err != nil { @@ -495,11 +503,9 @@ func (kex *curve25519sha256) Client(c packetConn, rand io.Reader, magics *handsh return nil, errors.New("ssh: peer's curve25519 public value has wrong length") } - var servPub, secret [32]byte - copy(servPub[:], reply.EphemeralPubKey) - curve25519.ScalarMult(&secret, &kp.priv, &servPub) - if subtle.ConstantTimeCompare(secret[:], curve25519Zeros[:]) == 1 { - return nil, errors.New("ssh: peer's curve25519 public value has wrong order") + secret, err := curve25519.X25519(kp.priv[:], reply.EphemeralPubKey) + if err != nil { + return nil, fmt.Errorf("ssh: peer's curve25519 public value is not valid: %w", err) } h := crypto.SHA256.New() @@ -541,11 +547,9 @@ func (kex *curve25519sha256) Server(c packetConn, rand io.Reader, magics *handsh return nil, err } - var clientPub, secret [32]byte - copy(clientPub[:], kexInit.ClientPubKey) - curve25519.ScalarMult(&secret, &kp.priv, &clientPub) - if subtle.ConstantTimeCompare(secret[:], curve25519Zeros[:]) == 1 { - return nil, errors.New("ssh: peer's curve25519 public value has wrong order") + secret, err := curve25519.X25519(kp.priv[:], kexInit.ClientPubKey) + if err != nil { + return nil, fmt.Errorf("ssh: peer's curve25519 public value is not valid: %w", err) } hostKeyBytes := priv.PublicKey().Marshal() @@ -601,9 +605,9 @@ const ( func (gex *dhGEXSHA) Client(c packetConn, randSource io.Reader, magics *handshakeMagics) (*kexResult, error) { // Send GexRequest kexDHGexRequest := kexDHGexRequestMsg{ - MinBits: dhGroupExchangeMinimumBits, - PreferedBits: dhGroupExchangePreferredBits, - MaxBits: dhGroupExchangeMaximumBits, + MinBits: dhGroupExchangeMinimumBits, + PreferredBits: dhGroupExchangePreferredBits, + MaxBits: dhGroupExchangeMaximumBits, } if err := c.writePacket(Marshal(&kexDHGexRequest)); err != nil { return nil, err @@ -690,9 +694,7 @@ func (gex *dhGEXSHA) Client(c packetConn, randSource io.Reader, magics *handshak } // Server half implementation of the Diffie Hellman Key Exchange with SHA1 and SHA256. -// -// This is a minimal implementation to satisfy the automated tests. -func (gex dhGEXSHA) Server(c packetConn, randSource io.Reader, magics *handshakeMagics, priv AlgorithmSigner, algo string) (result *kexResult, err error) { +func (gex *dhGEXSHA) Server(c packetConn, randSource io.Reader, magics *handshakeMagics, priv AlgorithmSigner, algo string) (result *kexResult, err error) { // Receive GexRequest packet, err := c.readPacket() if err != nil { @@ -702,13 +704,32 @@ func (gex dhGEXSHA) Server(c packetConn, randSource io.Reader, magics *handshake if err = Unmarshal(packet, &kexDHGexRequest); err != nil { return } + // We check that the request received is valid and that the MaxBits + // requested are at least equal to our supported minimum. This is the same + // check done in OpenSSH: + // https://github.com/openssh/openssh-portable/blob/80a2f64b/kexgexs.c#L94 + // + // Furthermore, we also check that the required MinBits are less than or + // equal to 4096 because we can use up to Oakley Group 16. + if kexDHGexRequest.MaxBits < kexDHGexRequest.MinBits || kexDHGexRequest.PreferredBits < kexDHGexRequest.MinBits || + kexDHGexRequest.MaxBits < kexDHGexRequest.PreferredBits || kexDHGexRequest.MaxBits < dhGroupExchangeMinimumBits || + kexDHGexRequest.MinBits > 4096 { + return nil, fmt.Errorf("ssh: DH GEX request out of range, min: %d, max: %d, preferred: %d", kexDHGexRequest.MinBits, + kexDHGexRequest.MaxBits, kexDHGexRequest.PreferredBits) + } + + var p *big.Int + // We hardcode sending Oakley Group 14 (2048 bits), Oakley Group 15 (3072 + // bits) or Oakley Group 16 (4096 bits), based on the requested max size. + if kexDHGexRequest.MaxBits < 3072 { + p, _ = new(big.Int).SetString(oakleyGroup14, 16) + } else if kexDHGexRequest.MaxBits < 4096 { + p, _ = new(big.Int).SetString(oakleyGroup15, 16) + } else { + p, _ = new(big.Int).SetString(oakleyGroup16, 16) + } - // Send GexGroup - // This is the group called diffie-hellman-group14-sha1 in RFC - // 4253 and Oakley Group 14 in RFC 3526. - p, _ := new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF", 16) g := big.NewInt(2) - msg := &kexDHGexGroupMsg{ P: p, G: g, @@ -746,9 +767,9 @@ func (gex dhGEXSHA) Server(c packetConn, randSource io.Reader, magics *handshake h := gex.hashFunc.New() magics.write(h) writeString(h, hostKeyBytes) - binary.Write(h, binary.BigEndian, uint32(dhGroupExchangeMinimumBits)) - binary.Write(h, binary.BigEndian, uint32(dhGroupExchangePreferredBits)) - binary.Write(h, binary.BigEndian, uint32(dhGroupExchangeMaximumBits)) + binary.Write(h, binary.BigEndian, kexDHGexRequest.MinBits) + binary.Write(h, binary.BigEndian, kexDHGexRequest.PreferredBits) + binary.Write(h, binary.BigEndian, kexDHGexRequest.MaxBits) writeInt(h, p) writeInt(h, g) writeInt(h, kexDHGexInit.X) diff --git a/vendor/golang.org/x/crypto/ssh/keys.go b/vendor/golang.org/x/crypto/ssh/keys.go index 98e6706d5..47a07539d 100644 --- a/vendor/golang.org/x/crypto/ssh/keys.go +++ b/vendor/golang.org/x/crypto/ssh/keys.go @@ -27,6 +27,7 @@ import ( "fmt" "io" "math/big" + "slices" "strings" "golang.org/x/crypto/ssh/internal/bcrypt_pbkdf" @@ -36,14 +37,19 @@ import ( // ClientConfig.HostKeyAlgorithms, Signature.Format, or as AlgorithmSigner // arguments. const ( - KeyAlgoRSA = "ssh-rsa" - KeyAlgoDSA = "ssh-dss" - KeyAlgoECDSA256 = "ecdsa-sha2-nistp256" - KeyAlgoSKECDSA256 = "sk-ecdsa-sha2-nistp256@openssh.com" - KeyAlgoECDSA384 = "ecdsa-sha2-nistp384" - KeyAlgoECDSA521 = "ecdsa-sha2-nistp521" - KeyAlgoED25519 = "ssh-ed25519" - KeyAlgoSKED25519 = "sk-ssh-ed25519@openssh.com" + KeyAlgoRSA = "ssh-rsa" + // Deprecated: DSA is only supported at insecure key sizes, and was removed + // from major implementations. + KeyAlgoDSA = InsecureKeyAlgoDSA + // Deprecated: DSA is only supported at insecure key sizes, and was removed + // from major implementations. + InsecureKeyAlgoDSA = "ssh-dss" + KeyAlgoECDSA256 = "ecdsa-sha2-nistp256" + KeyAlgoSKECDSA256 = "sk-ecdsa-sha2-nistp256@openssh.com" + KeyAlgoECDSA384 = "ecdsa-sha2-nistp384" + KeyAlgoECDSA521 = "ecdsa-sha2-nistp521" + KeyAlgoED25519 = "ssh-ed25519" + KeyAlgoSKED25519 = "sk-ssh-ed25519@openssh.com" // KeyAlgoRSASHA256 and KeyAlgoRSASHA512 are only public key algorithms, not // public key formats, so they can't appear as a PublicKey.Type. The @@ -67,7 +73,7 @@ func parsePubKey(in []byte, algo string) (pubKey PublicKey, rest []byte, err err switch algo { case KeyAlgoRSA: return parseRSA(in) - case KeyAlgoDSA: + case InsecureKeyAlgoDSA: return parseDSA(in) case KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521: return parseECDSA(in) @@ -77,13 +83,18 @@ func parsePubKey(in []byte, algo string) (pubKey PublicKey, rest []byte, err err return parseED25519(in) case KeyAlgoSKED25519: return parseSKEd25519(in) - case CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, CertAlgoECDSA384v01, CertAlgoECDSA521v01, CertAlgoSKECDSA256v01, CertAlgoED25519v01, CertAlgoSKED25519v01: + case CertAlgoRSAv01, InsecureCertAlgoDSAv01, CertAlgoECDSA256v01, CertAlgoECDSA384v01, CertAlgoECDSA521v01, CertAlgoSKECDSA256v01, CertAlgoED25519v01, CertAlgoSKED25519v01: cert, err := parseCert(in, certKeyAlgoNames[algo]) if err != nil { return nil, nil, err } return cert, nil, nil } + if keyFormat := keyFormatForAlgorithm(algo); keyFormat != "" { + return nil, nil, fmt.Errorf("ssh: signature algorithm %q isn't a key format; key is malformed and should be re-encoded with type %q", + algo, keyFormat) + } + return nil, nil, fmt.Errorf("ssh: unknown key algorithm: %v", algo) } @@ -186,9 +197,10 @@ func ParseKnownHosts(in []byte) (marker string, hosts []string, pubKey PublicKey return "", nil, nil, "", nil, io.EOF } -// ParseAuthorizedKey parses a public key from an authorized_keys -// file used in OpenSSH according to the sshd(8) manual page. +// ParseAuthorizedKey parses a public key from an authorized_keys file used in +// OpenSSH according to the sshd(8) manual page. Invalid lines are ignored. func ParseAuthorizedKey(in []byte) (out PublicKey, comment string, options []string, rest []byte, err error) { + var lastErr error for len(in) > 0 { end := bytes.IndexByte(in, '\n') if end != -1 { @@ -217,6 +229,8 @@ func ParseAuthorizedKey(in []byte) (out PublicKey, comment string, options []str if out, comment, err = parseAuthorizedKey(in[i:]); err == nil { return out, comment, options, rest, nil + } else { + lastErr = err } // No key type recognised. Maybe there's an options field at @@ -259,16 +273,22 @@ func ParseAuthorizedKey(in []byte) (out PublicKey, comment string, options []str if out, comment, err = parseAuthorizedKey(in[i:]); err == nil { options = candidateOptions return out, comment, options, rest, nil + } else { + lastErr = err } in = rest continue } + if lastErr != nil { + return nil, "", nil, nil, fmt.Errorf("ssh: no key found; last parsing error for ignored line: %w", lastErr) + } + return nil, "", nil, nil, errors.New("ssh: no key found") } -// ParsePublicKey parses an SSH public key formatted for use in +// ParsePublicKey parses an SSH public key or certificate formatted for use in // the SSH wire protocol according to RFC 4253, section 6.6. func ParsePublicKey(in []byte) (out PublicKey, err error) { algo, in, ok := parseString(in) @@ -390,11 +410,11 @@ func NewSignerWithAlgorithms(signer AlgorithmSigner, algorithms []string) (Multi } for _, algo := range algorithms { - if !contains(supportedAlgos, algo) { + if !slices.Contains(supportedAlgos, algo) { return nil, fmt.Errorf("ssh: algorithm %q is not supported for key type %q", algo, signer.PublicKey().Type()) } - if !contains(signerAlgos, algo) { + if !slices.Contains(signerAlgos, algo) { return nil, fmt.Errorf("ssh: algorithm %q is restricted for the provided signer", algo) } } @@ -481,10 +501,13 @@ func (r *rsaPublicKey) Marshal() []byte { func (r *rsaPublicKey) Verify(data []byte, sig *Signature) error { supportedAlgos := algorithmsForKeyFormat(r.Type()) - if !contains(supportedAlgos, sig.Format) { + if !slices.Contains(supportedAlgos, sig.Format) { return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, r.Type()) } - hash := hashFuncs[sig.Format] + hash, err := hashFunc(sig.Format) + if err != nil { + return err + } h := hash.New() h.Write(data) digest := h.Sum(nil) @@ -601,7 +624,11 @@ func (k *dsaPublicKey) Verify(data []byte, sig *Signature) error { if sig.Format != k.Type() { return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, k.Type()) } - h := hashFuncs[sig.Format].New() + hash, err := hashFunc(sig.Format) + if err != nil { + return err + } + h := hash.New() h.Write(data) digest := h.Sum(nil) @@ -646,7 +673,11 @@ func (k *dsaPrivateKey) SignWithAlgorithm(rand io.Reader, data []byte, algorithm return nil, fmt.Errorf("ssh: unsupported signature algorithm %s", algorithm) } - h := hashFuncs[k.PublicKey().Type()].New() + hash, err := hashFunc(k.PublicKey().Type()) + if err != nil { + return nil, err + } + h := hash.New() h.Write(data) digest := h.Sum(nil) r, s, err := dsa.Sign(rand, k.PrivateKey, digest) @@ -796,8 +827,11 @@ func (k *ecdsaPublicKey) Verify(data []byte, sig *Signature) error { if sig.Format != k.Type() { return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, k.Type()) } - - h := hashFuncs[sig.Format].New() + hash, err := hashFunc(sig.Format) + if err != nil { + return err + } + h := hash.New() h.Write(data) digest := h.Sum(nil) @@ -900,8 +934,11 @@ func (k *skECDSAPublicKey) Verify(data []byte, sig *Signature) error { if sig.Format != k.Type() { return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, k.Type()) } - - h := hashFuncs[sig.Format].New() + hash, err := hashFunc(sig.Format) + if err != nil { + return err + } + h := hash.New() h.Write([]byte(k.application)) appDigest := h.Sum(nil) @@ -1004,7 +1041,11 @@ func (k *skEd25519PublicKey) Verify(data []byte, sig *Signature) error { return fmt.Errorf("invalid size %d for Ed25519 public key", l) } - h := hashFuncs[sig.Format].New() + hash, err := hashFunc(sig.Format) + if err != nil { + return err + } + h := hash.New() h.Write([]byte(k.application)) appDigest := h.Sum(nil) @@ -1107,11 +1148,14 @@ func (s *wrappedSigner) SignWithAlgorithm(rand io.Reader, data []byte, algorithm algorithm = s.pubKey.Type() } - if !contains(s.Algorithms(), algorithm) { + if !slices.Contains(s.Algorithms(), algorithm) { return nil, fmt.Errorf("ssh: unsupported signature algorithm %q for key format %q", algorithm, s.pubKey.Type()) } - hashFunc := hashFuncs[algorithm] + hashFunc, err := hashFunc(algorithm) + if err != nil { + return nil, err + } var digest []byte if hashFunc != 0 { h := hashFunc.New() @@ -1446,6 +1490,7 @@ type openSSHEncryptedPrivateKey struct { NumKeys uint32 PubKey []byte PrivKeyBlock []byte + Rest []byte `ssh:"rest"` } type openSSHPrivateKey struct { diff --git a/vendor/golang.org/x/crypto/ssh/mac.go b/vendor/golang.org/x/crypto/ssh/mac.go index 06a1b2750..87d626fbb 100644 --- a/vendor/golang.org/x/crypto/ssh/mac.go +++ b/vendor/golang.org/x/crypto/ssh/mac.go @@ -7,11 +7,13 @@ package ssh // Message authentication support import ( + "crypto/fips140" "crypto/hmac" "crypto/sha1" "crypto/sha256" "crypto/sha512" "hash" + "slices" ) type macMode struct { @@ -46,23 +48,37 @@ func (t truncatingMAC) Size() int { func (t truncatingMAC) BlockSize() int { return t.hmac.BlockSize() } -var macModes = map[string]*macMode{ - "hmac-sha2-512-etm@openssh.com": {64, true, func(key []byte) hash.Hash { +// macModes defines the supported MACs. MACs not included are not supported +// and will not be negotiated, even if explicitly configured. When FIPS mode is +// enabled, only FIPS-approved algorithms are included. +var macModes = map[string]*macMode{} + +func init() { + macModes[HMACSHA512ETM] = &macMode{64, true, func(key []byte) hash.Hash { return hmac.New(sha512.New, key) - }}, - "hmac-sha2-256-etm@openssh.com": {32, true, func(key []byte) hash.Hash { + }} + macModes[HMACSHA256ETM] = &macMode{32, true, func(key []byte) hash.Hash { return hmac.New(sha256.New, key) - }}, - "hmac-sha2-512": {64, false, func(key []byte) hash.Hash { + }} + macModes[HMACSHA512] = &macMode{64, false, func(key []byte) hash.Hash { return hmac.New(sha512.New, key) - }}, - "hmac-sha2-256": {32, false, func(key []byte) hash.Hash { + }} + macModes[HMACSHA256] = &macMode{32, false, func(key []byte) hash.Hash { return hmac.New(sha256.New, key) - }}, - "hmac-sha1": {20, false, func(key []byte) hash.Hash { + }} + + if fips140.Enabled() { + defaultMACs = slices.DeleteFunc(defaultMACs, func(algo string) bool { + _, ok := macModes[algo] + return !ok + }) + return + } + + macModes[HMACSHA1] = &macMode{20, false, func(key []byte) hash.Hash { return hmac.New(sha1.New, key) - }}, - "hmac-sha1-96": {20, false, func(key []byte) hash.Hash { + }} + macModes[InsecureHMACSHA196] = &macMode{20, false, func(key []byte) hash.Hash { return truncatingMAC{12, hmac.New(sha1.New, key)} - }}, + }} } diff --git a/vendor/golang.org/x/crypto/ssh/messages.go b/vendor/golang.org/x/crypto/ssh/messages.go index 118427bc0..ab22c3d38 100644 --- a/vendor/golang.org/x/crypto/ssh/messages.go +++ b/vendor/golang.org/x/crypto/ssh/messages.go @@ -122,9 +122,9 @@ type kexDHGexReplyMsg struct { const msgKexDHGexRequest = 34 type kexDHGexRequestMsg struct { - MinBits uint32 `sshtype:"34"` - PreferedBits uint32 - MaxBits uint32 + MinBits uint32 `sshtype:"34"` + PreferredBits uint32 + MaxBits uint32 } // See RFC 4253, section 10. @@ -792,7 +792,7 @@ func marshalString(to []byte, s []byte) []byte { return to[len(s):] } -var bigIntType = reflect.TypeOf((*big.Int)(nil)) +var bigIntType = reflect.TypeFor[*big.Int]() // Decode a packet into its corresponding message. func decode(packet []byte) (interface{}, error) { diff --git a/vendor/golang.org/x/crypto/ssh/mlkem.go b/vendor/golang.org/x/crypto/ssh/mlkem.go new file mode 100644 index 000000000..ddc0ed1fc --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/mlkem.go @@ -0,0 +1,168 @@ +// Copyright 2024 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. + +package ssh + +import ( + "crypto" + "crypto/mlkem" + "crypto/sha256" + "errors" + "fmt" + "io" + + "golang.org/x/crypto/curve25519" +) + +// mlkem768WithCurve25519sha256 implements the hybrid ML-KEM768 with +// curve25519-sha256 key exchange method, as described by +// draft-kampanakis-curdle-ssh-pq-ke-05 section 2.3.3. +type mlkem768WithCurve25519sha256 struct{} + +func (kex *mlkem768WithCurve25519sha256) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) { + var c25519kp curve25519KeyPair + if err := c25519kp.generate(rand); err != nil { + return nil, err + } + + seed := make([]byte, mlkem.SeedSize) + if _, err := io.ReadFull(rand, seed); err != nil { + return nil, err + } + + mlkemDk, err := mlkem.NewDecapsulationKey768(seed) + if err != nil { + return nil, err + } + + hybridKey := append(mlkemDk.EncapsulationKey().Bytes(), c25519kp.pub[:]...) + if err := c.writePacket(Marshal(&kexECDHInitMsg{hybridKey})); err != nil { + return nil, err + } + + packet, err := c.readPacket() + if err != nil { + return nil, err + } + + var reply kexECDHReplyMsg + if err = Unmarshal(packet, &reply); err != nil { + return nil, err + } + + if len(reply.EphemeralPubKey) != mlkem.CiphertextSize768+32 { + return nil, errors.New("ssh: peer's mlkem768x25519 public value has wrong length") + } + + // Perform KEM decapsulate operation to obtain shared key from ML-KEM. + mlkem768Secret, err := mlkemDk.Decapsulate(reply.EphemeralPubKey[:mlkem.CiphertextSize768]) + if err != nil { + return nil, err + } + + // Complete Curve25519 ECDH to obtain its shared key. + c25519Secret, err := curve25519.X25519(c25519kp.priv[:], reply.EphemeralPubKey[mlkem.CiphertextSize768:]) + if err != nil { + return nil, fmt.Errorf("ssh: peer's mlkem768x25519 public value is not valid: %w", err) + } + // Compute actual shared key. + h := sha256.New() + h.Write(mlkem768Secret) + h.Write(c25519Secret) + secret := h.Sum(nil) + + h.Reset() + magics.write(h) + writeString(h, reply.HostKey) + writeString(h, hybridKey) + writeString(h, reply.EphemeralPubKey) + + K := make([]byte, stringLength(len(secret))) + marshalString(K, secret) + h.Write(K) + + return &kexResult{ + H: h.Sum(nil), + K: K, + HostKey: reply.HostKey, + Signature: reply.Signature, + Hash: crypto.SHA256, + }, nil +} + +func (kex *mlkem768WithCurve25519sha256) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv AlgorithmSigner, algo string) (*kexResult, error) { + packet, err := c.readPacket() + if err != nil { + return nil, err + } + + var kexInit kexECDHInitMsg + if err = Unmarshal(packet, &kexInit); err != nil { + return nil, err + } + + if len(kexInit.ClientPubKey) != mlkem.EncapsulationKeySize768+32 { + return nil, errors.New("ssh: peer's ML-KEM768/curve25519 public value has wrong length") + } + + encapsulationKey, err := mlkem.NewEncapsulationKey768(kexInit.ClientPubKey[:mlkem.EncapsulationKeySize768]) + if err != nil { + return nil, fmt.Errorf("ssh: peer's ML-KEM768 encapsulation key is not valid: %w", err) + } + // Perform KEM encapsulate operation to obtain ciphertext and shared key. + mlkem768Secret, mlkem768Ciphertext := encapsulationKey.Encapsulate() + + // Perform server side of Curve25519 ECDH to obtain server public value and + // shared key. + var c25519kp curve25519KeyPair + if err := c25519kp.generate(rand); err != nil { + return nil, err + } + c25519Secret, err := curve25519.X25519(c25519kp.priv[:], kexInit.ClientPubKey[mlkem.EncapsulationKeySize768:]) + if err != nil { + return nil, fmt.Errorf("ssh: peer's ML-KEM768/curve25519 public value is not valid: %w", err) + } + hybridKey := append(mlkem768Ciphertext, c25519kp.pub[:]...) + + // Compute actual shared key. + h := sha256.New() + h.Write(mlkem768Secret) + h.Write(c25519Secret) + secret := h.Sum(nil) + + hostKeyBytes := priv.PublicKey().Marshal() + + h.Reset() + magics.write(h) + writeString(h, hostKeyBytes) + writeString(h, kexInit.ClientPubKey) + writeString(h, hybridKey) + + K := make([]byte, stringLength(len(secret))) + marshalString(K, secret) + h.Write(K) + + H := h.Sum(nil) + + sig, err := signAndMarshal(priv, rand, H, algo) + if err != nil { + return nil, err + } + + reply := kexECDHReplyMsg{ + EphemeralPubKey: hybridKey, + HostKey: hostKeyBytes, + Signature: sig, + } + if err := c.writePacket(Marshal(&reply)); err != nil { + return nil, err + } + return &kexResult{ + H: H, + K: K, + HostKey: hostKeyBytes, + Signature: sig, + Hash: crypto.SHA256, + }, nil +} diff --git a/vendor/golang.org/x/crypto/ssh/server.go b/vendor/golang.org/x/crypto/ssh/server.go index 1839ddc6a..064dcbaf5 100644 --- a/vendor/golang.org/x/crypto/ssh/server.go +++ b/vendor/golang.org/x/crypto/ssh/server.go @@ -10,6 +10,7 @@ import ( "fmt" "io" "net" + "slices" "strings" ) @@ -43,6 +44,9 @@ type Permissions struct { // pass data from the authentication callbacks to the server // application layer. Extensions map[string]string + + // ExtraData allows to store user defined data. + ExtraData map[any]any } type GSSAPIWithMICConfig struct { @@ -126,6 +130,21 @@ type ServerConfig struct { // Permissions.Extensions entry. PublicKeyCallback func(conn ConnMetadata, key PublicKey) (*Permissions, error) + // VerifiedPublicKeyCallback, if non-nil, is called after a client + // successfully confirms having control over a key that was previously + // approved by PublicKeyCallback. The permissions object passed to the + // callback is the one returned by PublicKeyCallback for the given public + // key and its ownership is transferred to the callback. The returned + // 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. + // + // VerifiedPublicKeyCallback does not affect which authentication methods + // are included in the list of methods that can be attempted by the client. + VerifiedPublicKeyCallback func(conn ConnMetadata, key PublicKey, permissions *Permissions, + signatureAlgorithm string) (*Permissions, error) + // KeyboardInteractiveCallback, if non-nil, is called when // keyboard-interactive authentication is selected (RFC // 4256). The client object's Challenge function should be @@ -243,22 +262,15 @@ func NewServerConn(c net.Conn, config *ServerConfig) (*ServerConn, <-chan NewCha fullConf.MaxAuthTries = 6 } if len(fullConf.PublicKeyAuthAlgorithms) == 0 { - fullConf.PublicKeyAuthAlgorithms = supportedPubKeyAuthAlgos + fullConf.PublicKeyAuthAlgorithms = defaultPubKeyAuthAlgos } else { for _, algo := range fullConf.PublicKeyAuthAlgorithms { - if !contains(supportedPubKeyAuthAlgos, algo) { + if !slices.Contains(SupportedAlgorithms().PublicKeyAuths, algo) && !slices.Contains(InsecureAlgorithms().PublicKeyAuths, algo) { c.Close() return nil, nil, nil, fmt.Errorf("ssh: unsupported public key authentication algorithm %s", algo) } } } - // Check if the config contains any unsupported key exchanges - for _, kex := range fullConf.KeyExchanges { - if _, ok := serverForbiddenKexAlgos[kex]; ok { - c.Close() - return nil, nil, nil, fmt.Errorf("ssh: unsupported key exchange %s for server", kex) - } - } s := &connection{ sshConn: sshConn{conn: c}, @@ -315,6 +327,7 @@ func (s *connection) serverHandshake(config *ServerConfig) (*Permissions, error) // We just did the key change, so the session ID is established. s.sessionID = s.transport.getSessionID() + s.algorithms = s.transport.getAlgorithms() var packet []byte if packet, err = s.transport.readPacket(); err != nil { @@ -637,7 +650,7 @@ userAuthLoop: return nil, parseError(msgUserAuthRequest) } algo := string(algoBytes) - if !contains(config.PublicKeyAuthAlgorithms, underlyingAlgo(algo)) { + if !slices.Contains(config.PublicKeyAuthAlgorithms, underlyingAlgo(algo)) { authErr = fmt.Errorf("ssh: algorithm %q not accepted", algo) break } @@ -658,6 +671,9 @@ userAuthLoop: candidate.pubKeyData = pubKeyData candidate.perms, candidate.result = authConfig.PublicKeyCallback(s, pubKey) _, isPartialSuccessError := candidate.result.(*PartialSuccessError) + if isPartialSuccessError && config.VerifiedPublicKeyCallback != nil { + 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 && @@ -701,7 +717,7 @@ userAuthLoop: // ssh-rsa-cert-v01@openssh.com algorithm with ssh-rsa public // key type. The algorithm and public key type must be // consistent: both must be certificate algorithms, or neither. - if !contains(algorithmsForKeyFormat(pubKey.Type()), algo) { + if !slices.Contains(algorithmsForKeyFormat(pubKey.Type()), algo) { authErr = fmt.Errorf("ssh: public key type %q not compatible with selected algorithm %q", pubKey.Type(), algo) break @@ -711,7 +727,7 @@ userAuthLoop: // algorithm name that corresponds to algo with // sig.Format. This is usually the same, but // for certs, the names differ. - if !contains(config.PublicKeyAuthAlgorithms, sig.Format) { + if !slices.Contains(config.PublicKeyAuthAlgorithms, sig.Format) { authErr = fmt.Errorf("ssh: algorithm %q not accepted", sig.Format) break } @@ -728,6 +744,12 @@ userAuthLoop: authErr = candidate.result perms = candidate.perms + if authErr == nil && config.VerifiedPublicKeyCallback != nil { + // 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) + } } case "gssapi-with-mic": if authConfig.GSSAPIWithMICConfig == nil { diff --git a/vendor/golang.org/x/crypto/ssh/ssh_gss.go b/vendor/golang.org/x/crypto/ssh/ssh_gss.go index 24bd7c8e8..a6249a122 100644 --- a/vendor/golang.org/x/crypto/ssh/ssh_gss.go +++ b/vendor/golang.org/x/crypto/ssh/ssh_gss.go @@ -106,6 +106,13 @@ func parseGSSAPIPayload(payload []byte) (*userAuthRequestGSSAPI, error) { if !ok { return nil, errors.New("parse uint32 failed") } + // Each ASN.1 encoded OID must have a minimum + // of 2 bytes; 64 maximum mechanisms is an + // arbitrary, but reasonable ceiling. + const maxMechs = 64 + if n > maxMechs || int(n)*2 > len(rest) { + return nil, errors.New("invalid mechanism count") + } s := &userAuthRequestGSSAPI{ N: n, OIDS: make([]asn1.ObjectIdentifier, n), @@ -122,7 +129,6 @@ func parseGSSAPIPayload(payload []byte) (*userAuthRequestGSSAPI, error) { if rest, err = asn1.Unmarshal(desiredMech, &s.OIDS[i]); err != nil { return nil, err } - } return s, nil } diff --git a/vendor/golang.org/x/crypto/ssh/streamlocal.go b/vendor/golang.org/x/crypto/ssh/streamlocal.go index b171b330b..152470fcb 100644 --- a/vendor/golang.org/x/crypto/ssh/streamlocal.go +++ b/vendor/golang.org/x/crypto/ssh/streamlocal.go @@ -44,7 +44,7 @@ func (c *Client) ListenUnix(socketPath string) (net.Listener, error) { if !ok { return nil, errors.New("ssh: streamlocal-forward@openssh.com request denied by peer") } - ch := c.forwards.add(&net.UnixAddr{Name: socketPath, Net: "unix"}) + ch := c.forwards.add("unix", socketPath) return &unixListener{socketPath, c, ch}, nil } @@ -96,7 +96,7 @@ func (l *unixListener) Accept() (net.Conn, error) { // Close closes the listener. func (l *unixListener) Close() error { // this also closes the listener. - l.conn.forwards.remove(&net.UnixAddr{Name: l.socketPath, Net: "unix"}) + l.conn.forwards.remove("unix", l.socketPath) m := streamLocalChannelForwardMsg{ l.socketPath, } diff --git a/vendor/golang.org/x/crypto/ssh/tcpip.go b/vendor/golang.org/x/crypto/ssh/tcpip.go index 93d844f03..78c41fe5a 100644 --- a/vendor/golang.org/x/crypto/ssh/tcpip.go +++ b/vendor/golang.org/x/crypto/ssh/tcpip.go @@ -11,6 +11,7 @@ import ( "io" "math/rand" "net" + "net/netip" "strconv" "strings" "sync" @@ -22,14 +23,21 @@ import ( // the returned net.Listener. The listener must be serviced, or the // SSH connection may hang. // N must be "tcp", "tcp4", "tcp6", or "unix". +// +// If the address is a hostname, it is sent to the remote peer as-is, without +// being resolved locally, and the Listener Addr method will return a zero IP. func (c *Client) Listen(n, addr string) (net.Listener, error) { switch n { case "tcp", "tcp4", "tcp6": - laddr, err := net.ResolveTCPAddr(n, addr) + host, portStr, err := net.SplitHostPort(addr) + if err != nil { + return nil, err + } + port, err := strconv.ParseInt(portStr, 10, 32) if err != nil { return nil, err } - return c.ListenTCP(laddr) + return c.listenTCPInternal(host, int(port)) case "unix": return c.ListenUnix(addr) default: @@ -102,15 +110,24 @@ func (c *Client) handleForwards() { // ListenTCP requests the remote peer open a listening socket // on laddr. Incoming connections will be available by calling // Accept on the returned net.Listener. +// +// ListenTCP accepts an IP address, to provide a hostname use [Client.Listen] +// with "tcp", "tcp4", or "tcp6" network instead. func (c *Client) ListenTCP(laddr *net.TCPAddr) (net.Listener, error) { c.handleForwardsOnce.Do(c.handleForwards) if laddr.Port == 0 && isBrokenOpenSSHVersion(string(c.ServerVersion())) { return c.autoPortListenWorkaround(laddr) } + return c.listenTCPInternal(laddr.IP.String(), laddr.Port) +} + +func (c *Client) listenTCPInternal(host string, port int) (net.Listener, error) { + c.handleForwardsOnce.Do(c.handleForwards) + m := channelForwardMsg{ - laddr.IP.String(), - uint32(laddr.Port), + host, + uint32(port), } // send message ok, resp, err := c.SendRequest("tcpip-forward", true, Marshal(&m)) @@ -123,20 +140,33 @@ func (c *Client) ListenTCP(laddr *net.TCPAddr) (net.Listener, error) { // If the original port was 0, then the remote side will // supply a real port number in the response. - if laddr.Port == 0 { + if port == 0 { var p struct { Port uint32 } if err := Unmarshal(resp, &p); err != nil { return nil, err } - laddr.Port = int(p.Port) + port = int(p.Port) } + // Construct a local address placeholder for the remote listener. If the + // original host is an IP address, preserve it so that Listener.Addr() + // reports the same IP. If the host is a hostname or cannot be parsed as an + // IP, fall back to IPv4zero. The port field is always set, even if the + // original port was 0, because in that case the remote server will assign + // one, allowing callers to determine which port was selected. + ip := net.IPv4zero + if parsed, err := netip.ParseAddr(host); err == nil { + ip = net.IP(parsed.AsSlice()) + } + laddr := &net.TCPAddr{ + IP: ip, + Port: port, + } + addr := net.JoinHostPort(host, strconv.FormatInt(int64(port), 10)) + ch := c.forwards.add("tcp", addr) - // Register this forward, using the port number we obtained. - ch := c.forwards.add(laddr) - - return &tcpListener{laddr, c, ch}, nil + return &tcpListener{laddr, addr, c, ch}, nil } // forwardList stores a mapping between remote @@ -149,8 +179,9 @@ type forwardList struct { // forwardEntry represents an established mapping of a laddr on a // remote ssh server to a channel connected to a tcpListener. type forwardEntry struct { - laddr net.Addr - c chan forward + addr string // host:port or socket path + network string // tcp or unix + c chan forward } // forward represents an incoming forwarded tcpip connection. The @@ -161,12 +192,13 @@ type forward struct { raddr net.Addr // the raddr of the incoming connection } -func (l *forwardList) add(addr net.Addr) chan forward { +func (l *forwardList) add(n, addr string) chan forward { l.Lock() defer l.Unlock() f := forwardEntry{ - laddr: addr, - c: make(chan forward, 1), + addr: addr, + network: n, + c: make(chan forward, 1), } l.entries = append(l.entries, f) return f.c @@ -185,19 +217,20 @@ func parseTCPAddr(addr string, port uint32) (*net.TCPAddr, error) { if port == 0 || port > 65535 { return nil, fmt.Errorf("ssh: port number out of range: %d", port) } - ip := net.ParseIP(string(addr)) - if ip == nil { + ip, err := netip.ParseAddr(addr) + if err != nil { return nil, fmt.Errorf("ssh: cannot parse IP address %q", addr) } - return &net.TCPAddr{IP: ip, Port: int(port)}, nil + return &net.TCPAddr{IP: net.IP(ip.AsSlice()), Port: int(port)}, nil } func (l *forwardList) handleChannels(in <-chan NewChannel) { for ch := range in { var ( - laddr net.Addr - raddr net.Addr - err error + addr string + network string + raddr net.Addr + err error ) switch channelType := ch.ChannelType(); channelType { case "forwarded-tcpip": @@ -207,40 +240,34 @@ func (l *forwardList) handleChannels(in <-chan NewChannel) { continue } - // RFC 4254 section 7.2 specifies that incoming - // addresses should list the address, in string - // format. It is implied that this should be an IP - // address, as it would be impossible to connect to it - // otherwise. - laddr, err = parseTCPAddr(payload.Addr, payload.Port) - if err != nil { - ch.Reject(ConnectionFailed, err.Error()) - continue - } + // RFC 4254 section 7.2 specifies that incoming addresses should + // list the address that was connected, in string format. It is the + // same address used in the tcpip-forward request. The originator + // address is an IP address instead. + addr = net.JoinHostPort(payload.Addr, strconv.FormatUint(uint64(payload.Port), 10)) + raddr, err = parseTCPAddr(payload.OriginAddr, payload.OriginPort) if err != nil { ch.Reject(ConnectionFailed, err.Error()) continue } - + network = "tcp" case "forwarded-streamlocal@openssh.com": var payload forwardedStreamLocalPayload if err = Unmarshal(ch.ExtraData(), &payload); err != nil { ch.Reject(ConnectionFailed, "could not parse forwarded-streamlocal@openssh.com payload: "+err.Error()) continue } - laddr = &net.UnixAddr{ - Name: payload.SocketPath, - Net: "unix", - } + addr = payload.SocketPath raddr = &net.UnixAddr{ Name: "@", Net: "unix", } + network = "unix" default: panic(fmt.Errorf("ssh: unknown channel type %s", channelType)) } - if ok := l.forward(laddr, raddr, ch); !ok { + if ok := l.forward(network, addr, raddr, ch); !ok { // Section 7.2, implementations MUST reject spurious incoming // connections. ch.Reject(Prohibited, "no forward for address") @@ -252,11 +279,11 @@ func (l *forwardList) handleChannels(in <-chan NewChannel) { // remove removes the forward entry, and the channel feeding its // listener. -func (l *forwardList) remove(addr net.Addr) { +func (l *forwardList) remove(n, addr string) { l.Lock() defer l.Unlock() for i, f := range l.entries { - if addr.Network() == f.laddr.Network() && addr.String() == f.laddr.String() { + if n == f.network && addr == f.addr { l.entries = append(l.entries[:i], l.entries[i+1:]...) close(f.c) return @@ -274,11 +301,11 @@ func (l *forwardList) closeAll() { l.entries = nil } -func (l *forwardList) forward(laddr, raddr net.Addr, ch NewChannel) bool { +func (l *forwardList) forward(n, addr string, raddr net.Addr, ch NewChannel) bool { l.Lock() defer l.Unlock() for _, f := range l.entries { - if laddr.Network() == f.laddr.Network() && laddr.String() == f.laddr.String() { + if n == f.network && addr == f.addr { f.c <- forward{newCh: ch, raddr: raddr} return true } @@ -288,6 +315,7 @@ func (l *forwardList) forward(laddr, raddr net.Addr, ch NewChannel) bool { type tcpListener struct { laddr *net.TCPAddr + addr string conn *Client in <-chan forward @@ -314,13 +342,21 @@ func (l *tcpListener) Accept() (net.Conn, error) { // Close closes the listener. func (l *tcpListener) Close() error { + host, port, err := net.SplitHostPort(l.addr) + if err != nil { + return err + } + rport, err := strconv.ParseUint(port, 10, 32) + if err != nil { + return err + } m := channelForwardMsg{ - l.laddr.IP.String(), - uint32(l.laddr.Port), + host, + uint32(rport), } // this also closes the listener. - l.conn.forwards.remove(l.laddr) + l.conn.forwards.remove("tcp", l.addr) ok, _, err := l.conn.SendRequest("cancel-tcpip-forward", true, Marshal(&m)) if err == nil && !ok { err = errors.New("ssh: cancel-tcpip-forward failed") diff --git a/vendor/golang.org/x/crypto/ssh/transport.go b/vendor/golang.org/x/crypto/ssh/transport.go index 0424d2d37..fa3dd6a42 100644 --- a/vendor/golang.org/x/crypto/ssh/transport.go +++ b/vendor/golang.org/x/crypto/ssh/transport.go @@ -8,6 +8,7 @@ import ( "bufio" "bytes" "errors" + "fmt" "io" "log" ) @@ -16,13 +17,6 @@ import ( // wire. No message decoding is done, to minimize the impact on timing. const debugTransport = false -const ( - gcm128CipherID = "aes128-gcm@openssh.com" - gcm256CipherID = "aes256-gcm@openssh.com" - aes128cbcID = "aes128-cbc" - tripledescbcID = "3des-cbc" -) - // packetConn represents a transport that implements packet based // operations. type packetConn interface { @@ -92,14 +86,14 @@ func (t *transport) setInitialKEXDone() { // prepareKeyChange sets up key material for a keychange. The key changes in // both directions are triggered by reading and writing a msgNewKey packet // respectively. -func (t *transport) prepareKeyChange(algs *algorithms, kexResult *kexResult) error { - ciph, err := newPacketCipher(t.reader.dir, algs.r, kexResult) +func (t *transport) prepareKeyChange(algs *NegotiatedAlgorithms, kexResult *kexResult) error { + ciph, err := newPacketCipher(t.reader.dir, algs.Read, kexResult) if err != nil { return err } t.reader.pendingKeyChange <- ciph - ciph, err = newPacketCipher(t.writer.dir, algs.w, kexResult) + ciph, err = newPacketCipher(t.writer.dir, algs.Write, kexResult) if err != nil { return err } @@ -259,8 +253,11 @@ var ( // setupKeys sets the cipher and MAC keys from kex.K, kex.H and sessionId, as // described in RFC 4253, section 6.4. direction should either be serverKeys // (to setup server->client keys) or clientKeys (for client->server keys). -func newPacketCipher(d direction, algs directionAlgorithms, kex *kexResult) (packetCipher, error) { +func newPacketCipher(d direction, algs DirectionAlgorithms, kex *kexResult) (packetCipher, error) { cipherMode := cipherModes[algs.Cipher] + if cipherMode == nil { + return nil, fmt.Errorf("ssh: unsupported cipher %v", algs.Cipher) + } iv := make([]byte, cipherMode.ivSize) key := make([]byte, cipherMode.keySize) diff --git a/vendor/golang.org/x/mod/modfile/rule.go b/vendor/golang.org/x/mod/modfile/rule.go index 3e4a1d0ab..a86ee4fd8 100644 --- a/vendor/golang.org/x/mod/modfile/rule.go +++ b/vendor/golang.org/x/mod/modfile/rule.go @@ -20,10 +20,11 @@ package modfile import ( + "cmp" "errors" "fmt" "path/filepath" - "sort" + "slices" "strconv" "strings" "unicode" @@ -44,6 +45,7 @@ type File struct { Replace []*Replace Retract []*Retract Tool []*Tool + Ignore []*Ignore Syntax *FileSyntax } @@ -100,6 +102,12 @@ type Tool struct { Syntax *Line } +// An Ignore is a single ignore statement. +type Ignore struct { + Path string + Syntax *Line +} + // A VersionInterval represents a range of versions with upper and lower bounds. // Intervals are closed: both bounds are included. When Low is equal to High, // the interval may refer to a single version ('v1.2.3') or an interval @@ -304,7 +312,7 @@ func parseToFile(file string, data []byte, fix VersionFixer, strict bool) (parse }) } continue - case "module", "godebug", "require", "exclude", "replace", "retract", "tool": + case "module", "godebug", "require", "exclude", "replace", "retract", "tool", "ignore": for _, l := range x.Line { f.add(&errs, x, l, x.Token[0], l.Token, fix, strict) } @@ -337,7 +345,7 @@ func (f *File) add(errs *ErrorList, block *LineBlock, line *Line, verb string, a // and simply ignore those statements. if !strict { switch verb { - case "go", "module", "retract", "require": + case "go", "module", "retract", "require", "ignore": // want these even for dependency go.mods default: return @@ -531,6 +539,21 @@ func (f *File) add(errs *ErrorList, block *LineBlock, line *Line, verb string, a Path: s, Syntax: line, }) + + case "ignore": + if len(args) != 1 { + errorf("ignore directive expects exactly one argument") + return + } + s, err := parseString(&args[0]) + if err != nil { + errorf("invalid quoted string: %v", err) + return + } + f.Ignore = append(f.Ignore, &Ignore{ + Path: s, + Syntax: line, + }) } } @@ -1619,6 +1642,36 @@ func (f *File) DropTool(path string) error { return nil } +// AddIgnore adds a new ignore directive with the given path. +// It does nothing if the ignore line already exists. +func (f *File) AddIgnore(path string) error { + for _, t := range f.Ignore { + if t.Path == path { + return nil + } + } + + f.Ignore = append(f.Ignore, &Ignore{ + Path: path, + Syntax: f.Syntax.addLine(nil, "ignore", path), + }) + + f.SortBlocks() + return nil +} + +// DropIgnore removes a ignore directive with the given path. +// It does nothing if no such ignore directive exists. +func (f *File) DropIgnore(path string) error { + for _, t := range f.Ignore { + if t.Path == path { + t.Syntax.markRemoved() + *t = Ignore{} + } + } + return nil +} + func (f *File) SortBlocks() { f.removeDups() // otherwise sorting is unsafe @@ -1633,15 +1686,13 @@ func (f *File) SortBlocks() { if !ok { continue } - less := lineLess + less := compareLine if block.Token[0] == "exclude" && useSemanticSortForExclude { - less = lineExcludeLess + less = compareLineExclude } else if block.Token[0] == "retract" { - less = lineRetractLess + less = compareLineRetract } - sort.SliceStable(block.Line, func(i, j int) bool { - return less(block.Line[i], block.Line[j]) - }) + slices.SortStableFunc(block.Line, less) } } @@ -1657,10 +1708,10 @@ func (f *File) SortBlocks() { // retract directives are not de-duplicated since comments are // meaningful, and versions may be retracted multiple times. func (f *File) removeDups() { - removeDups(f.Syntax, &f.Exclude, &f.Replace, &f.Tool) + removeDups(f.Syntax, &f.Exclude, &f.Replace, &f.Tool, &f.Ignore) } -func removeDups(syntax *FileSyntax, exclude *[]*Exclude, replace *[]*Replace, tool *[]*Tool) { +func removeDups(syntax *FileSyntax, exclude *[]*Exclude, replace *[]*Replace, tool *[]*Tool, ignore *[]*Ignore) { kill := make(map[*Line]bool) // Remove duplicate excludes. @@ -1719,6 +1770,24 @@ func removeDups(syntax *FileSyntax, exclude *[]*Exclude, replace *[]*Replace, to *tool = newTool } + if ignore != nil { + haveIgnore := make(map[string]bool) + for _, i := range *ignore { + if haveIgnore[i.Path] { + kill[i.Syntax] = true + continue + } + haveIgnore[i.Path] = true + } + var newIgnore []*Ignore + for _, i := range *ignore { + if !kill[i.Syntax] { + newIgnore = append(newIgnore, i) + } + } + *ignore = newIgnore + } + // Duplicate require and retract directives are not removed. // Drop killed statements from the syntax tree. @@ -1746,39 +1815,38 @@ func removeDups(syntax *FileSyntax, exclude *[]*Exclude, replace *[]*Replace, to syntax.Stmt = stmts } -// lineLess returns whether li should be sorted before lj. It sorts -// lexicographically without assigning any special meaning to tokens. -func lineLess(li, lj *Line) bool { +// compareLine compares li and lj. It sorts lexicographically without assigning +// any special meaning to tokens. +func compareLine(li, lj *Line) int { for k := 0; k < len(li.Token) && k < len(lj.Token); k++ { if li.Token[k] != lj.Token[k] { - return li.Token[k] < lj.Token[k] + return cmp.Compare(li.Token[k], lj.Token[k]) } } - return len(li.Token) < len(lj.Token) + return cmp.Compare(len(li.Token), len(lj.Token)) } -// lineExcludeLess reports whether li should be sorted before lj for lines in -// an "exclude" block. -func lineExcludeLess(li, lj *Line) bool { +// compareLineExclude compares li and lj for lines in an "exclude" block. +func compareLineExclude(li, lj *Line) int { if len(li.Token) != 2 || len(lj.Token) != 2 { // Not a known exclude specification. // Fall back to sorting lexicographically. - return lineLess(li, lj) + return compareLine(li, lj) } // An exclude specification has two tokens: ModulePath and Version. // Compare module path by string order and version by semver rules. if pi, pj := li.Token[0], lj.Token[0]; pi != pj { - return pi < pj + return cmp.Compare(pi, pj) } - return semver.Compare(li.Token[1], lj.Token[1]) < 0 + return semver.Compare(li.Token[1], lj.Token[1]) } -// lineRetractLess returns whether li should be sorted before lj for lines in -// a "retract" block. It treats each line as a version interval. Single versions -// are compared as if they were intervals with the same low and high version. +// compareLineRetract compares li and lj for lines in a "retract" block. +// It treats each line as a version interval. Single versions are compared as +// if they were intervals with the same low and high version. // Intervals are sorted in descending order, first by low version, then by -// high version, using semver.Compare. -func lineRetractLess(li, lj *Line) bool { +// high version, using [semver.Compare]. +func compareLineRetract(li, lj *Line) int { interval := func(l *Line) VersionInterval { if len(l.Token) == 1 { return VersionInterval{Low: l.Token[0], High: l.Token[0]} @@ -1792,9 +1860,9 @@ func lineRetractLess(li, lj *Line) bool { vii := interval(li) vij := interval(lj) if cmp := semver.Compare(vii.Low, vij.Low); cmp != 0 { - return cmp > 0 + return -cmp } - return semver.Compare(vii.High, vij.High) > 0 + return -semver.Compare(vii.High, vij.High) } // checkCanonicalVersion returns a non-nil error if vers is not a canonical diff --git a/vendor/golang.org/x/mod/modfile/work.go b/vendor/golang.org/x/mod/modfile/work.go index 5387d0c26..09df5ea3c 100644 --- a/vendor/golang.org/x/mod/modfile/work.go +++ b/vendor/golang.org/x/mod/modfile/work.go @@ -6,7 +6,7 @@ package modfile import ( "fmt" - "sort" + "slices" "strings" ) @@ -315,9 +315,7 @@ func (f *WorkFile) SortBlocks() { if !ok { continue } - sort.SliceStable(block.Line, func(i, j int) bool { - return lineLess(block.Line[i], block.Line[j]) - }) + slices.SortStableFunc(block.Line, compareLine) } } @@ -331,5 +329,5 @@ func (f *WorkFile) SortBlocks() { // retract directives are not de-duplicated since comments are // meaningful, and versions may be retracted multiple times. func (f *WorkFile) removeDups() { - removeDups(f.Syntax, nil, &f.Replace, nil) + removeDups(f.Syntax, nil, &f.Replace, nil, nil) } diff --git a/vendor/golang.org/x/mod/module/module.go b/vendor/golang.org/x/mod/module/module.go index 2a364b229..16e1aa7ab 100644 --- a/vendor/golang.org/x/mod/module/module.go +++ b/vendor/golang.org/x/mod/module/module.go @@ -96,10 +96,11 @@ package module // Changes to the semantics in this file require approval from rsc. import ( + "cmp" "errors" "fmt" "path" - "sort" + "slices" "strings" "unicode" "unicode/utf8" @@ -657,17 +658,15 @@ func CanonicalVersion(v string) string { // optionally followed by a tie-breaking suffix introduced by a slash character, // like in "v0.0.1/go.mod". func Sort(list []Version) { - sort.Slice(list, func(i, j int) bool { - mi := list[i] - mj := list[j] - if mi.Path != mj.Path { - return mi.Path < mj.Path + slices.SortFunc(list, func(i, j Version) int { + if i.Path != j.Path { + return strings.Compare(i.Path, j.Path) } // To help go.sum formatting, allow version/file. // Compare semver prefix by semver rules, // file by string order. - vi := mi.Version - vj := mj.Version + vi := i.Version + vj := j.Version var fi, fj string if k := strings.Index(vi, "/"); k >= 0 { vi, fi = vi[:k], vi[k:] @@ -676,9 +675,9 @@ func Sort(list []Version) { vj, fj = vj[:k], vj[k:] } if vi != vj { - return semver.Compare(vi, vj) < 0 + return semver.Compare(vi, vj) } - return fi < fj + return cmp.Compare(fi, fj) }) } diff --git a/vendor/golang.org/x/mod/semver/semver.go b/vendor/golang.org/x/mod/semver/semver.go index 9a2dfd33a..628f8fd68 100644 --- a/vendor/golang.org/x/mod/semver/semver.go +++ b/vendor/golang.org/x/mod/semver/semver.go @@ -22,7 +22,10 @@ // as shorthands for vMAJOR.0.0 and vMAJOR.MINOR.0. package semver -import "sort" +import ( + "slices" + "strings" +) // parsed returns the parsed form of a semantic version string. type parsed struct { @@ -154,19 +157,22 @@ func Max(v, w string) string { // ByVersion implements [sort.Interface] for sorting semantic version strings. type ByVersion []string -func (vs ByVersion) Len() int { return len(vs) } -func (vs ByVersion) Swap(i, j int) { vs[i], vs[j] = vs[j], vs[i] } -func (vs ByVersion) Less(i, j int) bool { - cmp := Compare(vs[i], vs[j]) - if cmp != 0 { - return cmp < 0 - } - return vs[i] < vs[j] -} +func (vs ByVersion) Len() int { return len(vs) } +func (vs ByVersion) Swap(i, j int) { vs[i], vs[j] = vs[j], vs[i] } +func (vs ByVersion) Less(i, j int) bool { return compareVersion(vs[i], vs[j]) < 0 } -// Sort sorts a list of semantic version strings using [ByVersion]. +// Sort sorts a list of semantic version strings using [Compare] and falls back +// to use [strings.Compare] if both versions are considered equal. func Sort(list []string) { - sort.Sort(ByVersion(list)) + slices.SortFunc(list, compareVersion) +} + +func compareVersion(a, b string) int { + cmp := Compare(a, b) + if cmp != 0 { + return cmp + } + return strings.Compare(a, b) } func parse(v string) (p parsed, ok bool) { diff --git a/vendor/golang.org/x/net/html/escape.go b/vendor/golang.org/x/net/html/escape.go index 04c6bec21..12f227370 100644 --- a/vendor/golang.org/x/net/html/escape.go +++ b/vendor/golang.org/x/net/html/escape.go @@ -299,7 +299,7 @@ func escape(w writer, s string) error { case '\r': esc = " " default: - panic("unrecognized escape character") + panic("html: unrecognized escape character") } s = s[i+1:] if _, err := w.WriteString(esc); err != nil { diff --git a/vendor/golang.org/x/net/html/parse.go b/vendor/golang.org/x/net/html/parse.go index 518ee4c94..88fc0056a 100644 --- a/vendor/golang.org/x/net/html/parse.go +++ b/vendor/golang.org/x/net/html/parse.go @@ -136,7 +136,7 @@ func (p *parser) indexOfElementInScope(s scope, matchTags ...a.Atom) int { return -1 } default: - panic("unreachable") + panic(fmt.Sprintf("html: internal error: indexOfElementInScope unknown scope: %d", s)) } } switch s { @@ -179,7 +179,7 @@ func (p *parser) clearStackToContext(s scope) { return } default: - panic("unreachable") + panic(fmt.Sprintf("html: internal error: clearStackToContext unknown scope: %d", s)) } } } @@ -231,7 +231,14 @@ func (p *parser) addChild(n *Node) { } if n.Type == ElementNode { - p.oe = append(p.oe, n) + p.insertOpenElement(n) + } +} + +func (p *parser) insertOpenElement(n *Node) { + p.oe = append(p.oe, n) + if len(p.oe) > 512 { + panic("html: open stack of elements exceeds 512 nodes") } } @@ -810,7 +817,7 @@ func afterHeadIM(p *parser) bool { p.im = inFramesetIM return true case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Template, a.Title: - p.oe = append(p.oe, p.head) + p.insertOpenElement(p.head) defer p.oe.remove(p.head) return inHeadIM(p) case a.Head: @@ -1678,7 +1685,7 @@ func inTableBodyIM(p *parser) bool { return inTableIM(p) } -// Section 12.2.6.4.14. +// Section 13.2.6.4.14. func inRowIM(p *parser) bool { switch p.tok.Type { case StartTagToken: @@ -1690,7 +1697,9 @@ func inRowIM(p *parser) bool { p.im = inCellIM return true case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Tfoot, a.Thead, a.Tr: - if p.popUntil(tableScope, a.Tr) { + if p.elementInScope(tableScope, a.Tr) { + p.clearStackToContext(tableRowScope) + p.oe.pop() p.im = inTableBodyIM return false } @@ -1700,22 +1709,28 @@ func inRowIM(p *parser) bool { case EndTagToken: switch p.tok.DataAtom { case a.Tr: - if p.popUntil(tableScope, a.Tr) { + if p.elementInScope(tableScope, a.Tr) { + p.clearStackToContext(tableRowScope) + p.oe.pop() p.im = inTableBodyIM return true } // Ignore the token. return true case a.Table: - if p.popUntil(tableScope, a.Tr) { + if p.elementInScope(tableScope, a.Tr) { + p.clearStackToContext(tableRowScope) + p.oe.pop() p.im = inTableBodyIM return false } // Ignore the token. return true case a.Tbody, a.Tfoot, a.Thead: - if p.elementInScope(tableScope, p.tok.DataAtom) { - p.parseImpliedToken(EndTagToken, a.Tr, a.Tr.String()) + if p.elementInScope(tableScope, p.tok.DataAtom) && p.elementInScope(tableScope, a.Tr) { + p.clearStackToContext(tableRowScope) + p.oe.pop() + p.im = inTableBodyIM return false } // Ignore the token. @@ -2222,16 +2237,20 @@ func parseForeignContent(p *parser) bool { p.acknowledgeSelfClosingTag() } case EndTagToken: + if strings.EqualFold(p.oe[len(p.oe)-1].Data, p.tok.Data) { + p.oe = p.oe[:len(p.oe)-1] + return true + } for i := len(p.oe) - 1; i >= 0; i-- { - if p.oe[i].Namespace == "" { - return p.im(p) - } if strings.EqualFold(p.oe[i].Data, p.tok.Data) { p.oe = p.oe[:i] + return true + } + if i > 0 && p.oe[i-1].Namespace == "" { break } } - return true + return p.im(p) default: // Ignore the token. } @@ -2312,9 +2331,13 @@ func (p *parser) parseCurrentToken() { } } -func (p *parser) parse() error { +func (p *parser) parse() (err error) { + defer func() { + if panicErr := recover(); panicErr != nil { + err = fmt.Errorf("%s", panicErr) + } + }() // Iterate until EOF. Any other error will cause an early return. - var err error for err != io.EOF { // CDATA sections are allowed only in foreign content. n := p.oe.top() @@ -2343,6 +2366,8 @@ func (p *parser) parse() error { // s. Conversely, explicit s in r's data can be silently dropped, // with no corresponding node in the resulting tree. // +// Parse will reject HTML that is nested deeper than 512 elements. +// // The input is assumed to be UTF-8 encoded. func Parse(r io.Reader) (*Node, error) { return ParseWithOptions(r) diff --git a/vendor/golang.org/x/net/html/render.go b/vendor/golang.org/x/net/html/render.go index e8c123345..0157d89e1 100644 --- a/vendor/golang.org/x/net/html/render.go +++ b/vendor/golang.org/x/net/html/render.go @@ -184,7 +184,7 @@ func render1(w writer, n *Node) error { return err } - // Add initial newline where there is danger of a newline beging ignored. + // Add initial newline where there is danger of a newline being ignored. if c := n.FirstChild; c != nil && c.Type == TextNode && strings.HasPrefix(c.Data, "\n") { switch n.Data { case "pre", "listing", "textarea": diff --git a/vendor/golang.org/x/net/http2/config.go b/vendor/golang.org/x/net/http2/config.go index ca645d9a1..8a7a89d01 100644 --- a/vendor/golang.org/x/net/http2/config.go +++ b/vendor/golang.org/x/net/http2/config.go @@ -27,6 +27,7 @@ import ( // - If the resulting value is zero or out of range, use a default. type http2Config struct { MaxConcurrentStreams uint32 + StrictMaxConcurrentRequests bool MaxDecoderHeaderTableSize uint32 MaxEncoderHeaderTableSize uint32 MaxReadFrameSize uint32 @@ -55,7 +56,7 @@ func configFromServer(h1 *http.Server, h2 *Server) http2Config { PermitProhibitedCipherSuites: h2.PermitProhibitedCipherSuites, CountError: h2.CountError, } - fillNetHTTPServerConfig(&conf, h1) + fillNetHTTPConfig(&conf, h1.HTTP2) setConfigDefaults(&conf, true) return conf } @@ -64,12 +65,13 @@ func configFromServer(h1 *http.Server, h2 *Server) http2Config { // (the net/http Transport). func configFromTransport(h2 *Transport) http2Config { conf := http2Config{ - MaxEncoderHeaderTableSize: h2.MaxEncoderHeaderTableSize, - MaxDecoderHeaderTableSize: h2.MaxDecoderHeaderTableSize, - MaxReadFrameSize: h2.MaxReadFrameSize, - SendPingTimeout: h2.ReadIdleTimeout, - PingTimeout: h2.PingTimeout, - WriteByteTimeout: h2.WriteByteTimeout, + StrictMaxConcurrentRequests: h2.StrictMaxConcurrentStreams, + MaxEncoderHeaderTableSize: h2.MaxEncoderHeaderTableSize, + MaxDecoderHeaderTableSize: h2.MaxDecoderHeaderTableSize, + MaxReadFrameSize: h2.MaxReadFrameSize, + SendPingTimeout: h2.ReadIdleTimeout, + PingTimeout: h2.PingTimeout, + WriteByteTimeout: h2.WriteByteTimeout, } // Unlike most config fields, where out-of-range values revert to the default, @@ -81,7 +83,7 @@ func configFromTransport(h2 *Transport) http2Config { } if h2.t1 != nil { - fillNetHTTPTransportConfig(&conf, h2.t1) + fillNetHTTPConfig(&conf, h2.t1.HTTP2) } setConfigDefaults(&conf, false) return conf @@ -120,3 +122,48 @@ func adjustHTTP1MaxHeaderSize(n int64) int64 { const typicalHeaders = 10 // conservative return n + typicalHeaders*perFieldOverhead } + +func fillNetHTTPConfig(conf *http2Config, h2 *http.HTTP2Config) { + if h2 == nil { + return + } + if h2.MaxConcurrentStreams != 0 { + conf.MaxConcurrentStreams = uint32(h2.MaxConcurrentStreams) + } + if http2ConfigStrictMaxConcurrentRequests(h2) { + conf.StrictMaxConcurrentRequests = true + } + if h2.MaxEncoderHeaderTableSize != 0 { + conf.MaxEncoderHeaderTableSize = uint32(h2.MaxEncoderHeaderTableSize) + } + if h2.MaxDecoderHeaderTableSize != 0 { + conf.MaxDecoderHeaderTableSize = uint32(h2.MaxDecoderHeaderTableSize) + } + if h2.MaxConcurrentStreams != 0 { + conf.MaxConcurrentStreams = uint32(h2.MaxConcurrentStreams) + } + if h2.MaxReadFrameSize != 0 { + conf.MaxReadFrameSize = uint32(h2.MaxReadFrameSize) + } + if h2.MaxReceiveBufferPerConnection != 0 { + conf.MaxUploadBufferPerConnection = int32(h2.MaxReceiveBufferPerConnection) + } + if h2.MaxReceiveBufferPerStream != 0 { + conf.MaxUploadBufferPerStream = int32(h2.MaxReceiveBufferPerStream) + } + if h2.SendPingTimeout != 0 { + conf.SendPingTimeout = h2.SendPingTimeout + } + if h2.PingTimeout != 0 { + conf.PingTimeout = h2.PingTimeout + } + if h2.WriteByteTimeout != 0 { + conf.WriteByteTimeout = h2.WriteByteTimeout + } + if h2.PermitProhibitedCipherSuites { + conf.PermitProhibitedCipherSuites = true + } + if h2.CountError != nil { + conf.CountError = h2.CountError + } +} diff --git a/vendor/golang.org/x/net/http2/config_go124.go b/vendor/golang.org/x/net/http2/config_go124.go deleted file mode 100644 index 5b516c55f..000000000 --- a/vendor/golang.org/x/net/http2/config_go124.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2024 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 go1.24 - -package http2 - -import "net/http" - -// fillNetHTTPServerConfig sets fields in conf from srv.HTTP2. -func fillNetHTTPServerConfig(conf *http2Config, srv *http.Server) { - fillNetHTTPConfig(conf, srv.HTTP2) -} - -// fillNetHTTPTransportConfig sets fields in conf from tr.HTTP2. -func fillNetHTTPTransportConfig(conf *http2Config, tr *http.Transport) { - fillNetHTTPConfig(conf, tr.HTTP2) -} - -func fillNetHTTPConfig(conf *http2Config, h2 *http.HTTP2Config) { - if h2 == nil { - return - } - if h2.MaxConcurrentStreams != 0 { - conf.MaxConcurrentStreams = uint32(h2.MaxConcurrentStreams) - } - if h2.MaxEncoderHeaderTableSize != 0 { - conf.MaxEncoderHeaderTableSize = uint32(h2.MaxEncoderHeaderTableSize) - } - if h2.MaxDecoderHeaderTableSize != 0 { - conf.MaxDecoderHeaderTableSize = uint32(h2.MaxDecoderHeaderTableSize) - } - if h2.MaxConcurrentStreams != 0 { - conf.MaxConcurrentStreams = uint32(h2.MaxConcurrentStreams) - } - if h2.MaxReadFrameSize != 0 { - conf.MaxReadFrameSize = uint32(h2.MaxReadFrameSize) - } - if h2.MaxReceiveBufferPerConnection != 0 { - conf.MaxUploadBufferPerConnection = int32(h2.MaxReceiveBufferPerConnection) - } - if h2.MaxReceiveBufferPerStream != 0 { - conf.MaxUploadBufferPerStream = int32(h2.MaxReceiveBufferPerStream) - } - if h2.SendPingTimeout != 0 { - conf.SendPingTimeout = h2.SendPingTimeout - } - if h2.PingTimeout != 0 { - conf.PingTimeout = h2.PingTimeout - } - if h2.WriteByteTimeout != 0 { - conf.WriteByteTimeout = h2.WriteByteTimeout - } - if h2.PermitProhibitedCipherSuites { - conf.PermitProhibitedCipherSuites = true - } - if h2.CountError != nil { - conf.CountError = h2.CountError - } -} diff --git a/vendor/golang.org/x/net/http2/config_go125.go b/vendor/golang.org/x/net/http2/config_go125.go new file mode 100644 index 000000000..b4373fe33 --- /dev/null +++ b/vendor/golang.org/x/net/http2/config_go125.go @@ -0,0 +1,15 @@ +// Copyright 2025 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 !go1.26 + +package http2 + +import ( + "net/http" +) + +func http2ConfigStrictMaxConcurrentRequests(h2 *http.HTTP2Config) bool { + return false +} diff --git a/vendor/golang.org/x/net/http2/config_go126.go b/vendor/golang.org/x/net/http2/config_go126.go new file mode 100644 index 000000000..6b071c149 --- /dev/null +++ b/vendor/golang.org/x/net/http2/config_go126.go @@ -0,0 +1,15 @@ +// Copyright 2025 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 go1.26 + +package http2 + +import ( + "net/http" +) + +func http2ConfigStrictMaxConcurrentRequests(h2 *http.HTTP2Config) bool { + return h2.StrictMaxConcurrentRequests +} diff --git a/vendor/golang.org/x/net/http2/config_pre_go124.go b/vendor/golang.org/x/net/http2/config_pre_go124.go deleted file mode 100644 index 060fd6c64..000000000 --- a/vendor/golang.org/x/net/http2/config_pre_go124.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2024 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 !go1.24 - -package http2 - -import "net/http" - -// Pre-Go 1.24 fallback. -// The Server.HTTP2 and Transport.HTTP2 config fields were added in Go 1.24. - -func fillNetHTTPServerConfig(conf *http2Config, srv *http.Server) {} - -func fillNetHTTPTransportConfig(conf *http2Config, tr *http.Transport) {} diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go index 97bd8b06f..9a4bd123c 100644 --- a/vendor/golang.org/x/net/http2/frame.go +++ b/vendor/golang.org/x/net/http2/frame.go @@ -39,7 +39,7 @@ const ( FrameContinuation FrameType = 0x9 ) -var frameName = map[FrameType]string{ +var frameNames = [...]string{ FrameData: "DATA", FrameHeaders: "HEADERS", FramePriority: "PRIORITY", @@ -53,10 +53,10 @@ var frameName = map[FrameType]string{ } func (t FrameType) String() string { - if s, ok := frameName[t]; ok { - return s + if int(t) < len(frameNames) { + return frameNames[t] } - return fmt.Sprintf("UNKNOWN_FRAME_TYPE_%d", uint8(t)) + return fmt.Sprintf("UNKNOWN_FRAME_TYPE_%d", t) } // Flags is a bitmask of HTTP/2 flags. @@ -124,7 +124,7 @@ var flagName = map[FrameType]map[Flags]string{ // might be 0). type frameParser func(fc *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) -var frameParsers = map[FrameType]frameParser{ +var frameParsers = [...]frameParser{ FrameData: parseDataFrame, FrameHeaders: parseHeadersFrame, FramePriority: parsePriorityFrame, @@ -138,8 +138,8 @@ var frameParsers = map[FrameType]frameParser{ } func typeFrameParser(t FrameType) frameParser { - if f := frameParsers[t]; f != nil { - return f + if int(t) < len(frameParsers) { + return frameParsers[t] } return parseUnknownFrame } @@ -280,6 +280,8 @@ type Framer struct { // lastHeaderStream is non-zero if the last frame was an // unfinished HEADERS/CONTINUATION. lastHeaderStream uint32 + // lastFrameType holds the type of the last frame for verifying frame order. + lastFrameType FrameType maxReadSize uint32 headerBuf [frameHeaderLen]byte @@ -347,7 +349,7 @@ func (fr *Framer) maxHeaderListSize() uint32 { func (f *Framer) startWrite(ftype FrameType, flags Flags, streamID uint32) { // Write the FrameHeader. f.wbuf = append(f.wbuf[:0], - 0, // 3 bytes of length, filled in in endWrite + 0, // 3 bytes of length, filled in endWrite 0, 0, byte(ftype), @@ -488,30 +490,41 @@ func terminalReadFrameError(err error) bool { return err != nil } -// ReadFrame reads a single frame. The returned Frame is only valid -// until the next call to ReadFrame. +// ReadFrameHeader reads the header of the next frame. +// It reads the 9-byte fixed frame header, and does not read any portion of the +// frame payload. The caller is responsible for consuming the payload, either +// with ReadFrameForHeader or directly from the Framer's io.Reader. // -// If the frame is larger than previously set with SetMaxReadFrameSize, the -// returned error is ErrFrameTooLarge. Other errors may be of type -// ConnectionError, StreamError, or anything else from the underlying -// reader. +// If the frame is larger than previously set with SetMaxReadFrameSize, it +// returns the frame header and ErrFrameTooLarge. // -// If ReadFrame returns an error and a non-nil Frame, the Frame's StreamID -// indicates the stream responsible for the error. -func (fr *Framer) ReadFrame() (Frame, error) { +// If the returned FrameHeader.StreamID is non-zero, it indicates the stream +// responsible for the error. +func (fr *Framer) ReadFrameHeader() (FrameHeader, error) { fr.errDetail = nil - if fr.lastFrame != nil { - fr.lastFrame.invalidate() - } fh, err := readFrameHeader(fr.headerBuf[:], fr.r) if err != nil { - return nil, err + return fh, err } if fh.Length > fr.maxReadSize { if fh == invalidHTTP1LookingFrameHeader() { - return nil, fmt.Errorf("http2: failed reading the frame payload: %w, note that the frame header looked like an HTTP/1.1 header", err) + return fh, fmt.Errorf("http2: failed reading the frame payload: %w, note that the frame header looked like an HTTP/1.1 header", ErrFrameTooLarge) } - return nil, ErrFrameTooLarge + return fh, ErrFrameTooLarge + } + if err := fr.checkFrameOrder(fh); err != nil { + return fh, err + } + return fh, nil +} + +// ReadFrameForHeader reads the payload for the frame with the given FrameHeader. +// +// It behaves identically to ReadFrame, other than not checking the maximum +// frame size. +func (fr *Framer) ReadFrameForHeader(fh FrameHeader) (Frame, error) { + if fr.lastFrame != nil { + fr.lastFrame.invalidate() } payload := fr.getReadBuf(fh.Length) if _, err := io.ReadFull(fr.r, payload); err != nil { @@ -527,9 +540,7 @@ func (fr *Framer) ReadFrame() (Frame, error) { } return nil, err } - if err := fr.checkFrameOrder(f); err != nil { - return nil, err - } + fr.lastFrame = f if fr.logReads { fr.debugReadLoggerf("http2: Framer %p: read %v", fr, summarizeFrame(f)) } @@ -539,6 +550,24 @@ func (fr *Framer) ReadFrame() (Frame, error) { return f, nil } +// ReadFrame reads a single frame. The returned Frame is only valid +// until the next call to ReadFrame or ReadFrameBodyForHeader. +// +// If the frame is larger than previously set with SetMaxReadFrameSize, the +// returned error is ErrFrameTooLarge. Other errors may be of type +// ConnectionError, StreamError, or anything else from the underlying +// reader. +// +// If ReadFrame returns an error and a non-nil Frame, the Frame's StreamID +// indicates the stream responsible for the error. +func (fr *Framer) ReadFrame() (Frame, error) { + fh, err := fr.ReadFrameHeader() + if err != nil { + return nil, err + } + return fr.ReadFrameForHeader(fh) +} + // connError returns ConnectionError(code) but first // stashes away a public reason to the caller can optionally relay it // to the peer before hanging up on them. This might help others debug @@ -551,20 +580,19 @@ func (fr *Framer) connError(code ErrCode, reason string) error { // checkFrameOrder reports an error if f is an invalid frame to return // next from ReadFrame. Mostly it checks whether HEADERS and // CONTINUATION frames are contiguous. -func (fr *Framer) checkFrameOrder(f Frame) error { - last := fr.lastFrame - fr.lastFrame = f +func (fr *Framer) checkFrameOrder(fh FrameHeader) error { + lastType := fr.lastFrameType + fr.lastFrameType = fh.Type if fr.AllowIllegalReads { return nil } - fh := f.Header() if fr.lastHeaderStream != 0 { if fh.Type != FrameContinuation { return fr.connError(ErrCodeProtocol, fmt.Sprintf("got %s for stream %d; expected CONTINUATION following %s for stream %d", fh.Type, fh.StreamID, - last.Header().Type, fr.lastHeaderStream)) + lastType, fr.lastHeaderStream)) } if fh.StreamID != fr.lastHeaderStream { return fr.connError(ErrCodeProtocol, @@ -1152,7 +1180,16 @@ type PriorityFrame struct { PriorityParam } -// PriorityParam are the stream prioritzation parameters. +var defaultRFC9218Priority = PriorityParam{ + incremental: 0, + urgency: 3, +} + +// Note that HTTP/2 has had two different prioritization schemes, and +// PriorityParam struct below is a superset of both schemes. The exported +// symbols are from RFC 7540 and the non-exported ones are from RFC 9218. + +// PriorityParam are the stream prioritization parameters. type PriorityParam struct { // StreamDep is a 31-bit stream identifier for the // stream that this stream depends on. Zero means no @@ -1167,6 +1204,20 @@ type PriorityParam struct { // the spec, "Add one to the value to obtain a weight between // 1 and 256." Weight uint8 + + // "The urgency (u) parameter value is Integer (see Section 3.3.1 of + // [STRUCTURED-FIELDS]), between 0 and 7 inclusive, in descending order of + // priority. The default is 3." + urgency uint8 + + // "The incremental (i) parameter value is Boolean (see Section 3.3.6 of + // [STRUCTURED-FIELDS]). It indicates if an HTTP response can be processed + // incrementally, i.e., provide some meaningful output as chunks of the + // response arrive." + // + // We use uint8 (i.e. 0 is false, 1 is true) instead of bool so we can + // avoid unnecessary type conversions and because either type takes 1 byte. + incremental uint8 } func (p PriorityParam) IsZero() bool { diff --git a/vendor/golang.org/x/net/http2/gotrack.go b/vendor/golang.org/x/net/http2/gotrack.go index 9933c9f8c..9921ca096 100644 --- a/vendor/golang.org/x/net/http2/gotrack.go +++ b/vendor/golang.org/x/net/http2/gotrack.go @@ -15,21 +15,32 @@ import ( "runtime" "strconv" "sync" + "sync/atomic" ) var DebugGoroutines = os.Getenv("DEBUG_HTTP2_GOROUTINES") == "1" +// Setting DebugGoroutines to false during a test to disable goroutine debugging +// results in race detector complaints when a test leaves goroutines running before +// returning. Tests shouldn't do this, of course, but when they do it generally shows +// up as infrequent, hard-to-debug flakes. (See #66519.) +// +// Disable goroutine debugging during individual tests with an atomic bool. +// (Note that it's safe to enable/disable debugging mid-test, so the actual race condition +// here is harmless.) +var disableDebugGoroutines atomic.Bool + type goroutineLock uint64 func newGoroutineLock() goroutineLock { - if !DebugGoroutines { + if !DebugGoroutines || disableDebugGoroutines.Load() { return 0 } return goroutineLock(curGoroutineID()) } func (g goroutineLock) check() { - if !DebugGoroutines { + if !DebugGoroutines || disableDebugGoroutines.Load() { return } if curGoroutineID() != uint64(g) { @@ -38,7 +49,7 @@ func (g goroutineLock) check() { } func (g goroutineLock) checkNotOn() { - if !DebugGoroutines { + if !DebugGoroutines || disableDebugGoroutines.Load() { return } if curGoroutineID() == uint64(g) { diff --git a/vendor/golang.org/x/net/http2/http2.go b/vendor/golang.org/x/net/http2/http2.go index 6c18ea230..105fe12fe 100644 --- a/vendor/golang.org/x/net/http2/http2.go +++ b/vendor/golang.org/x/net/http2/http2.go @@ -11,13 +11,10 @@ // requires Go 1.6 or later) // // See https://http2.github.io/ for more information on HTTP/2. -// -// See https://http2.golang.org/ for a test server running this code. package http2 // import "golang.org/x/net/http2" import ( "bufio" - "context" "crypto/tls" "errors" "fmt" @@ -37,7 +34,6 @@ var ( VerboseLogs bool logFrameWrites bool logFrameReads bool - inTests bool // Enabling extended CONNECT by causes browsers to attempt to use // WebSockets-over-HTTP/2. This results in problems when the server's websocket @@ -257,15 +253,13 @@ func (cw closeWaiter) Wait() { // idle memory usage with many connections. type bufferedWriter struct { _ incomparable - group synctestGroupInterface // immutable - conn net.Conn // immutable - bw *bufio.Writer // non-nil when data is buffered - byteTimeout time.Duration // immutable, WriteByteTimeout + conn net.Conn // immutable + bw *bufio.Writer // non-nil when data is buffered + byteTimeout time.Duration // immutable, WriteByteTimeout } -func newBufferedWriter(group synctestGroupInterface, conn net.Conn, timeout time.Duration) *bufferedWriter { +func newBufferedWriter(conn net.Conn, timeout time.Duration) *bufferedWriter { return &bufferedWriter{ - group: group, conn: conn, byteTimeout: timeout, } @@ -316,24 +310,18 @@ func (w *bufferedWriter) Flush() error { type bufferedWriterTimeoutWriter bufferedWriter func (w *bufferedWriterTimeoutWriter) Write(p []byte) (n int, err error) { - return writeWithByteTimeout(w.group, w.conn, w.byteTimeout, p) + return writeWithByteTimeout(w.conn, w.byteTimeout, p) } // writeWithByteTimeout writes to conn. // If more than timeout passes without any bytes being written to the connection, // the write fails. -func writeWithByteTimeout(group synctestGroupInterface, conn net.Conn, timeout time.Duration, p []byte) (n int, err error) { +func writeWithByteTimeout(conn net.Conn, timeout time.Duration, p []byte) (n int, err error) { if timeout <= 0 { return conn.Write(p) } for { - var now time.Time - if group == nil { - now = time.Now() - } else { - now = group.Now() - } - conn.SetWriteDeadline(now.Add(timeout)) + conn.SetWriteDeadline(time.Now().Add(timeout)) nn, err := conn.Write(p[n:]) n += nn if n == len(p) || nn == 0 || !errors.Is(err, os.ErrDeadlineExceeded) { @@ -419,14 +407,3 @@ func (s *sorter) SortStrings(ss []string) { // makes that struct also non-comparable, and generally doesn't add // any size (as long as it's first). type incomparable [0]func() - -// synctestGroupInterface is the methods of synctestGroup used by Server and Transport. -// It's defined as an interface here to let us keep synctestGroup entirely test-only -// and not a part of non-test builds. -type synctestGroupInterface interface { - Join() - Now() time.Time - NewTimer(d time.Duration) timer - AfterFunc(d time.Duration, f func()) timer - ContextWithTimeout(ctx context.Context, d time.Duration) (context.Context, context.CancelFunc) -} diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go index 51fca38f6..bdc5520eb 100644 --- a/vendor/golang.org/x/net/http2/server.go +++ b/vendor/golang.org/x/net/http2/server.go @@ -176,44 +176,15 @@ type Server struct { // so that we don't embed a Mutex in this struct, which will make the // struct non-copyable, which might break some callers. state *serverInternalState - - // Synchronization group used for testing. - // Outside of tests, this is nil. - group synctestGroupInterface -} - -func (s *Server) markNewGoroutine() { - if s.group != nil { - s.group.Join() - } -} - -func (s *Server) now() time.Time { - if s.group != nil { - return s.group.Now() - } - return time.Now() -} - -// newTimer creates a new time.Timer, or a synthetic timer in tests. -func (s *Server) newTimer(d time.Duration) timer { - if s.group != nil { - return s.group.NewTimer(d) - } - return timeTimer{time.NewTimer(d)} -} - -// afterFunc creates a new time.AfterFunc timer, or a synthetic timer in tests. -func (s *Server) afterFunc(d time.Duration, f func()) timer { - if s.group != nil { - return s.group.AfterFunc(d, f) - } - return timeTimer{time.AfterFunc(d, f)} } type serverInternalState struct { mu sync.Mutex activeConns map[*serverConn]struct{} + + // Pool of error channels. This is per-Server rather than global + // because channels can't be reused across synctest bubbles. + errChanPool sync.Pool } func (s *serverInternalState) registerConn(sc *serverConn) { @@ -245,6 +216,27 @@ func (s *serverInternalState) startGracefulShutdown() { s.mu.Unlock() } +// Global error channel pool used for uninitialized Servers. +// We use a per-Server pool when possible to avoid using channels across synctest bubbles. +var errChanPool = sync.Pool{ + New: func() any { return make(chan error, 1) }, +} + +func (s *serverInternalState) getErrChan() chan error { + if s == nil { + return errChanPool.Get().(chan error) // Server used without calling ConfigureServer + } + return s.errChanPool.Get().(chan error) +} + +func (s *serverInternalState) putErrChan(ch chan error) { + if s == nil { + errChanPool.Put(ch) // Server used without calling ConfigureServer + return + } + s.errChanPool.Put(ch) +} + // ConfigureServer adds HTTP/2 support to a net/http Server. // // The configuration conf may be nil. @@ -257,7 +249,10 @@ func ConfigureServer(s *http.Server, conf *Server) error { if conf == nil { conf = new(Server) } - conf.state = &serverInternalState{activeConns: make(map[*serverConn]struct{})} + conf.state = &serverInternalState{ + activeConns: make(map[*serverConn]struct{}), + errChanPool: sync.Pool{New: func() any { return make(chan error, 1) }}, + } if h1, h2 := s, conf; h2.IdleTimeout == 0 { if h1.IdleTimeout != 0 { h2.IdleTimeout = h1.IdleTimeout @@ -423,6 +418,9 @@ func (o *ServeConnOpts) handler() http.Handler { // // The opts parameter is optional. If nil, default values are used. func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { + if opts == nil { + opts = &ServeConnOpts{} + } s.serveConn(c, opts, nil) } @@ -438,7 +436,7 @@ func (s *Server) serveConn(c net.Conn, opts *ServeConnOpts, newf func(*serverCon conn: c, baseCtx: baseCtx, remoteAddrStr: c.RemoteAddr().String(), - bw: newBufferedWriter(s.group, c, conf.WriteByteTimeout), + bw: newBufferedWriter(c, conf.WriteByteTimeout), handler: opts.handler(), streams: make(map[uint32]*stream), readFrameCh: make(chan readFrameResult), @@ -638,11 +636,11 @@ type serverConn struct { pingSent bool sentPingData [8]byte goAwayCode ErrCode - shutdownTimer timer // nil until used - idleTimer timer // nil if unused + shutdownTimer *time.Timer // nil until used + idleTimer *time.Timer // nil if unused readIdleTimeout time.Duration pingTimeout time.Duration - readIdleTimer timer // nil if unused + readIdleTimer *time.Timer // nil if unused // Owned by the writeFrameAsync goroutine: headerWriteBuf bytes.Buffer @@ -687,12 +685,12 @@ type stream struct { flow outflow // limits writing from Handler to client inflow inflow // what the client is allowed to POST/etc to us state streamState - resetQueued bool // RST_STREAM queued for write; set by sc.resetStream - gotTrailerHeader bool // HEADER frame for trailers was seen - wroteHeaders bool // whether we wrote headers (not status 100) - readDeadline timer // nil if unused - writeDeadline timer // nil if unused - closeErr error // set before cw is closed + resetQueued bool // RST_STREAM queued for write; set by sc.resetStream + gotTrailerHeader bool // HEADER frame for trailers was seen + wroteHeaders bool // whether we wrote headers (not status 100) + readDeadline *time.Timer // nil if unused + writeDeadline *time.Timer // nil if unused + closeErr error // set before cw is closed trailer http.Header // accumulated trailers reqTrailer http.Header // handler's Request.Trailer @@ -848,7 +846,6 @@ type readFrameResult struct { // consumer is done with the frame. // It's run on its own goroutine. func (sc *serverConn) readFrames() { - sc.srv.markNewGoroutine() gate := make(chan struct{}) gateDone := func() { gate <- struct{}{} } for { @@ -881,7 +878,6 @@ type frameWriteResult struct { // At most one goroutine can be running writeFrameAsync at a time per // serverConn. func (sc *serverConn) writeFrameAsync(wr FrameWriteRequest, wd *writeData) { - sc.srv.markNewGoroutine() var err error if wd == nil { err = wr.write.writeFrame(sc) @@ -965,22 +961,22 @@ func (sc *serverConn) serve(conf http2Config) { sc.setConnState(http.StateIdle) if sc.srv.IdleTimeout > 0 { - sc.idleTimer = sc.srv.afterFunc(sc.srv.IdleTimeout, sc.onIdleTimer) + sc.idleTimer = time.AfterFunc(sc.srv.IdleTimeout, sc.onIdleTimer) defer sc.idleTimer.Stop() } if conf.SendPingTimeout > 0 { sc.readIdleTimeout = conf.SendPingTimeout - sc.readIdleTimer = sc.srv.afterFunc(conf.SendPingTimeout, sc.onReadIdleTimer) + sc.readIdleTimer = time.AfterFunc(conf.SendPingTimeout, sc.onReadIdleTimer) defer sc.readIdleTimer.Stop() } go sc.readFrames() // closed by defer sc.conn.Close above - settingsTimer := sc.srv.afterFunc(firstSettingsTimeout, sc.onSettingsTimer) + settingsTimer := time.AfterFunc(firstSettingsTimeout, sc.onSettingsTimer) defer settingsTimer.Stop() - lastFrameTime := sc.srv.now() + lastFrameTime := time.Now() loopNum := 0 for { loopNum++ @@ -994,7 +990,7 @@ func (sc *serverConn) serve(conf http2Config) { case res := <-sc.wroteFrameCh: sc.wroteFrame(res) case res := <-sc.readFrameCh: - lastFrameTime = sc.srv.now() + lastFrameTime = time.Now() // Process any written frames before reading new frames from the client since a // written frame could have triggered a new stream to be started. if sc.writingFrameAsync { @@ -1077,7 +1073,7 @@ func (sc *serverConn) handlePingTimer(lastFrameReadTime time.Time) { } pingAt := lastFrameReadTime.Add(sc.readIdleTimeout) - now := sc.srv.now() + now := time.Now() if pingAt.After(now) { // We received frames since arming the ping timer. // Reset it for the next possible timeout. @@ -1141,10 +1137,10 @@ func (sc *serverConn) readPreface() error { errc <- nil } }() - timer := sc.srv.newTimer(prefaceTimeout) // TODO: configurable on *Server? + timer := time.NewTimer(prefaceTimeout) // TODO: configurable on *Server? defer timer.Stop() select { - case <-timer.C(): + case <-timer.C: return errPrefaceTimeout case err := <-errc: if err == nil { @@ -1156,10 +1152,6 @@ func (sc *serverConn) readPreface() error { } } -var errChanPool = sync.Pool{ - New: func() interface{} { return make(chan error, 1) }, -} - var writeDataPool = sync.Pool{ New: func() interface{} { return new(writeData) }, } @@ -1167,7 +1159,7 @@ var writeDataPool = sync.Pool{ // writeDataFromHandler writes DATA response frames from a handler on // the given stream. func (sc *serverConn) writeDataFromHandler(stream *stream, data []byte, endStream bool) error { - ch := errChanPool.Get().(chan error) + ch := sc.srv.state.getErrChan() writeArg := writeDataPool.Get().(*writeData) *writeArg = writeData{stream.id, data, endStream} err := sc.writeFrameFromHandler(FrameWriteRequest{ @@ -1199,7 +1191,7 @@ func (sc *serverConn) writeDataFromHandler(stream *stream, data []byte, endStrea return errStreamClosed } } - errChanPool.Put(ch) + sc.srv.state.putErrChan(ch) if frameWriteDone { writeDataPool.Put(writeArg) } @@ -1513,7 +1505,7 @@ func (sc *serverConn) goAway(code ErrCode) { func (sc *serverConn) shutDownIn(d time.Duration) { sc.serveG.check() - sc.shutdownTimer = sc.srv.afterFunc(d, sc.onShutdownTimer) + sc.shutdownTimer = time.AfterFunc(d, sc.onShutdownTimer) } func (sc *serverConn) resetStream(se StreamError) { @@ -2118,7 +2110,7 @@ func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error { // (in Go 1.8), though. That's a more sane option anyway. if sc.hs.ReadTimeout > 0 { sc.conn.SetReadDeadline(time.Time{}) - st.readDeadline = sc.srv.afterFunc(sc.hs.ReadTimeout, st.onReadTimeout) + st.readDeadline = time.AfterFunc(sc.hs.ReadTimeout, st.onReadTimeout) } return sc.scheduleHandler(id, rw, req, handler) @@ -2216,7 +2208,7 @@ func (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream st.flow.add(sc.initialStreamSendWindowSize) st.inflow.init(sc.initialStreamRecvWindowSize) if sc.hs.WriteTimeout > 0 { - st.writeDeadline = sc.srv.afterFunc(sc.hs.WriteTimeout, st.onWriteTimeout) + st.writeDeadline = time.AfterFunc(sc.hs.WriteTimeout, st.onWriteTimeout) } sc.streams[id] = st @@ -2405,7 +2397,6 @@ func (sc *serverConn) handlerDone() { // Run on its own goroutine. func (sc *serverConn) runHandler(rw *responseWriter, req *http.Request, handler func(http.ResponseWriter, *http.Request)) { - sc.srv.markNewGoroutine() defer sc.sendServeMsg(handlerDoneMsg) didPanic := true defer func() { @@ -2454,7 +2445,7 @@ func (sc *serverConn) writeHeaders(st *stream, headerData *writeResHeaders) erro // waiting for this frame to be written, so an http.Flush mid-handler // writes out the correct value of keys, before a handler later potentially // mutates it. - errc = errChanPool.Get().(chan error) + errc = sc.srv.state.getErrChan() } if err := sc.writeFrameFromHandler(FrameWriteRequest{ write: headerData, @@ -2466,7 +2457,7 @@ func (sc *serverConn) writeHeaders(st *stream, headerData *writeResHeaders) erro if errc != nil { select { case err := <-errc: - errChanPool.Put(errc) + sc.srv.state.putErrChan(errc) return err case <-sc.doneServing: return errClientDisconnected @@ -2573,7 +2564,7 @@ func (b *requestBody) Read(p []byte) (n int, err error) { if err == io.EOF { b.sawEOF = true } - if b.conn == nil && inTests { + if b.conn == nil { return } b.conn.noteBodyReadFromHandler(b.stream, n, err) @@ -2702,7 +2693,7 @@ func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) { var date string if _, ok := rws.snapHeader["Date"]; !ok { // TODO(bradfitz): be faster here, like net/http? measure. - date = rws.conn.srv.now().UTC().Format(http.TimeFormat) + date = time.Now().UTC().Format(http.TimeFormat) } for _, v := range rws.snapHeader["Trailer"] { @@ -2824,7 +2815,7 @@ func (rws *responseWriterState) promoteUndeclaredTrailers() { func (w *responseWriter) SetReadDeadline(deadline time.Time) error { st := w.rws.stream - if !deadline.IsZero() && deadline.Before(w.rws.conn.srv.now()) { + if !deadline.IsZero() && deadline.Before(time.Now()) { // If we're setting a deadline in the past, reset the stream immediately // so writes after SetWriteDeadline returns will fail. st.onReadTimeout() @@ -2840,9 +2831,9 @@ func (w *responseWriter) SetReadDeadline(deadline time.Time) error { if deadline.IsZero() { st.readDeadline = nil } else if st.readDeadline == nil { - st.readDeadline = sc.srv.afterFunc(deadline.Sub(sc.srv.now()), st.onReadTimeout) + st.readDeadline = time.AfterFunc(deadline.Sub(time.Now()), st.onReadTimeout) } else { - st.readDeadline.Reset(deadline.Sub(sc.srv.now())) + st.readDeadline.Reset(deadline.Sub(time.Now())) } }) return nil @@ -2850,7 +2841,7 @@ func (w *responseWriter) SetReadDeadline(deadline time.Time) error { func (w *responseWriter) SetWriteDeadline(deadline time.Time) error { st := w.rws.stream - if !deadline.IsZero() && deadline.Before(w.rws.conn.srv.now()) { + if !deadline.IsZero() && deadline.Before(time.Now()) { // If we're setting a deadline in the past, reset the stream immediately // so writes after SetWriteDeadline returns will fail. st.onWriteTimeout() @@ -2866,9 +2857,9 @@ func (w *responseWriter) SetWriteDeadline(deadline time.Time) error { if deadline.IsZero() { st.writeDeadline = nil } else if st.writeDeadline == nil { - st.writeDeadline = sc.srv.afterFunc(deadline.Sub(sc.srv.now()), st.onWriteTimeout) + st.writeDeadline = time.AfterFunc(deadline.Sub(time.Now()), st.onWriteTimeout) } else { - st.writeDeadline.Reset(deadline.Sub(sc.srv.now())) + st.writeDeadline.Reset(deadline.Sub(time.Now())) } }) return nil @@ -3147,7 +3138,7 @@ func (w *responseWriter) Push(target string, opts *http.PushOptions) error { method: opts.Method, url: u, header: cloneHeader(opts.Header), - done: errChanPool.Get().(chan error), + done: sc.srv.state.getErrChan(), } select { @@ -3164,7 +3155,7 @@ func (w *responseWriter) Push(target string, opts *http.PushOptions) error { case <-st.cw: return errStreamClosed case err := <-msg.done: - errChanPool.Put(msg.done) + sc.srv.state.putErrChan(msg.done) return err } } diff --git a/vendor/golang.org/x/net/http2/timer.go b/vendor/golang.org/x/net/http2/timer.go deleted file mode 100644 index 0b1c17b81..000000000 --- a/vendor/golang.org/x/net/http2/timer.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2024 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. -package http2 - -import "time" - -// A timer is a time.Timer, as an interface which can be replaced in tests. -type timer = interface { - C() <-chan time.Time - Reset(d time.Duration) bool - Stop() bool -} - -// timeTimer adapts a time.Timer to the timer interface. -type timeTimer struct { - *time.Timer -} - -func (t timeTimer) C() <-chan time.Time { return t.Timer.C } diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go index f26356b9c..1965913e5 100644 --- a/vendor/golang.org/x/net/http2/transport.go +++ b/vendor/golang.org/x/net/http2/transport.go @@ -9,6 +9,7 @@ package http2 import ( "bufio" "bytes" + "compress/flate" "compress/gzip" "context" "crypto/rand" @@ -193,50 +194,6 @@ type Transport struct { type transportTestHooks struct { newclientconn func(*ClientConn) - group synctestGroupInterface -} - -func (t *Transport) markNewGoroutine() { - if t != nil && t.transportTestHooks != nil { - t.transportTestHooks.group.Join() - } -} - -func (t *Transport) now() time.Time { - if t != nil && t.transportTestHooks != nil { - return t.transportTestHooks.group.Now() - } - return time.Now() -} - -func (t *Transport) timeSince(when time.Time) time.Duration { - if t != nil && t.transportTestHooks != nil { - return t.now().Sub(when) - } - return time.Since(when) -} - -// newTimer creates a new time.Timer, or a synthetic timer in tests. -func (t *Transport) newTimer(d time.Duration) timer { - if t.transportTestHooks != nil { - return t.transportTestHooks.group.NewTimer(d) - } - return timeTimer{time.NewTimer(d)} -} - -// afterFunc creates a new time.AfterFunc timer, or a synthetic timer in tests. -func (t *Transport) afterFunc(d time.Duration, f func()) timer { - if t.transportTestHooks != nil { - return t.transportTestHooks.group.AfterFunc(d, f) - } - return timeTimer{time.AfterFunc(d, f)} -} - -func (t *Transport) contextWithTimeout(ctx context.Context, d time.Duration) (context.Context, context.CancelFunc) { - if t.transportTestHooks != nil { - return t.transportTestHooks.group.ContextWithTimeout(ctx, d) - } - return context.WithTimeout(ctx, d) } func (t *Transport) maxHeaderListSize() uint32 { @@ -366,7 +323,7 @@ type ClientConn struct { readerErr error // set before readerDone is closed idleTimeout time.Duration // or 0 for never - idleTimer timer + idleTimer *time.Timer mu sync.Mutex // guards following cond *sync.Cond // hold mu; broadcast on flow/closed changes @@ -399,6 +356,7 @@ type ClientConn struct { readIdleTimeout time.Duration pingTimeout time.Duration extendedConnectAllowed bool + strictMaxConcurrentStreams bool // rstStreamPingsBlocked works around an unfortunate gRPC behavior. // gRPC strictly limits the number of PING frames that it will receive. @@ -534,14 +492,12 @@ func (cs *clientStream) closeReqBodyLocked() { cs.reqBodyClosed = make(chan struct{}) reqBodyClosed := cs.reqBodyClosed go func() { - cs.cc.t.markNewGoroutine() cs.reqBody.Close() close(reqBodyClosed) }() } type stickyErrWriter struct { - group synctestGroupInterface conn net.Conn timeout time.Duration err *error @@ -551,7 +507,7 @@ func (sew stickyErrWriter) Write(p []byte) (n int, err error) { if *sew.err != nil { return 0, *sew.err } - n, err = writeWithByteTimeout(sew.group, sew.conn, sew.timeout, p) + n, err = writeWithByteTimeout(sew.conn, sew.timeout, p) *sew.err = err return n, err } @@ -650,9 +606,9 @@ func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Res backoff := float64(uint(1) << (uint(retry) - 1)) backoff += backoff * (0.1 * mathrand.Float64()) d := time.Second * time.Duration(backoff) - tm := t.newTimer(d) + tm := time.NewTimer(d) select { - case <-tm.C(): + case <-tm.C: t.vlogf("RoundTrip retrying after failure: %v", roundTripErr) continue case <-req.Context().Done(): @@ -699,6 +655,7 @@ var ( errClientConnUnusable = errors.New("http2: client conn not usable") errClientConnNotEstablished = errors.New("http2: client conn could not be established") errClientConnGotGoAway = errors.New("http2: Transport received Server's graceful shutdown GOAWAY") + errClientConnForceClosed = errors.New("http2: client connection force closed via ClientConn.Close") ) // shouldRetryRequest is called by RoundTrip when a request fails to get @@ -829,7 +786,8 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro initialWindowSize: 65535, // spec default initialStreamRecvWindowSize: conf.MaxUploadBufferPerStream, maxConcurrentStreams: initialMaxConcurrentStreams, // "infinite", per spec. Use a smaller value until we have received server settings. - peerMaxHeaderListSize: 0xffffffffffffffff, // "infinite", per spec. Use 2^64-1 instead. + strictMaxConcurrentStreams: conf.StrictMaxConcurrentRequests, + peerMaxHeaderListSize: 0xffffffffffffffff, // "infinite", per spec. Use 2^64-1 instead. streams: make(map[uint32]*clientStream), singleUse: singleUse, seenSettingsChan: make(chan struct{}), @@ -838,14 +796,11 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro pingTimeout: conf.PingTimeout, pings: make(map[[8]byte]chan struct{}), reqHeaderMu: make(chan struct{}, 1), - lastActive: t.now(), + lastActive: time.Now(), } - var group synctestGroupInterface if t.transportTestHooks != nil { - t.markNewGoroutine() t.transportTestHooks.newclientconn(cc) c = cc.tconn - group = t.group } if VerboseLogs { t.vlogf("http2: Transport creating client conn %p to %v", cc, c.RemoteAddr()) @@ -857,7 +812,6 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro // TODO: adjust this writer size to account for frame size + // MTU + crypto/tls record padding. cc.bw = bufio.NewWriter(stickyErrWriter{ - group: group, conn: c, timeout: conf.WriteByteTimeout, err: &cc.werr, @@ -906,7 +860,7 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro // Start the idle timer after the connection is fully initialized. if d := t.idleConnTimeout(); d != 0 { cc.idleTimeout = d - cc.idleTimer = t.afterFunc(d, cc.onIdleTimeout) + cc.idleTimer = time.AfterFunc(d, cc.onIdleTimeout) } go cc.readLoop() @@ -917,7 +871,7 @@ func (cc *ClientConn) healthCheck() { pingTimeout := cc.pingTimeout // We don't need to periodically ping in the health check, because the readLoop of ClientConn will // trigger the healthCheck again if there is no frame received. - ctx, cancel := cc.t.contextWithTimeout(context.Background(), pingTimeout) + ctx, cancel := context.WithTimeout(context.Background(), pingTimeout) defer cancel() cc.vlogf("http2: Transport sending health check") err := cc.Ping(ctx) @@ -1067,7 +1021,7 @@ func (cc *ClientConn) idleStateLocked() (st clientConnIdleState) { return } var maxConcurrentOkay bool - if cc.t.StrictMaxConcurrentStreams { + if cc.strictMaxConcurrentStreams { // We'll tell the caller we can take a new request to // prevent the caller from dialing a new TCP // connection, but then we'll block later before @@ -1120,7 +1074,7 @@ func (cc *ClientConn) tooIdleLocked() bool { // times are compared based on their wall time. We don't want // to reuse a connection that's been sitting idle during // VM/laptop suspend if monotonic time was also frozen. - return cc.idleTimeout != 0 && !cc.lastIdle.IsZero() && cc.t.timeSince(cc.lastIdle.Round(0)) > cc.idleTimeout + return cc.idleTimeout != 0 && !cc.lastIdle.IsZero() && time.Since(cc.lastIdle.Round(0)) > cc.idleTimeout } // onIdleTimeout is called from a time.AfterFunc goroutine. It will @@ -1186,7 +1140,6 @@ func (cc *ClientConn) Shutdown(ctx context.Context) error { done := make(chan struct{}) cancelled := false // guarded by cc.mu go func() { - cc.t.markNewGoroutine() cc.mu.Lock() defer cc.mu.Unlock() for { @@ -1257,8 +1210,7 @@ func (cc *ClientConn) closeForError(err error) { // // In-flight requests are interrupted. For a graceful shutdown, use Shutdown instead. func (cc *ClientConn) Close() error { - err := errors.New("http2: client connection force closed via ClientConn.Close") - cc.closeForError(err) + cc.closeForError(errClientConnForceClosed) return nil } @@ -1427,7 +1379,6 @@ func (cc *ClientConn) roundTrip(req *http.Request, streamf func(*clientStream)) // // It sends the request and performs post-request cleanup (closing Request.Body, etc.). func (cs *clientStream) doRequest(req *http.Request, streamf func(*clientStream)) { - cs.cc.t.markNewGoroutine() err := cs.writeRequest(req, streamf) cs.cleanupWriteRequest(err) } @@ -1558,9 +1509,9 @@ func (cs *clientStream) writeRequest(req *http.Request, streamf func(*clientStre var respHeaderTimer <-chan time.Time var respHeaderRecv chan struct{} if d := cc.responseHeaderTimeout(); d != 0 { - timer := cc.t.newTimer(d) + timer := time.NewTimer(d) defer timer.Stop() - respHeaderTimer = timer.C() + respHeaderTimer = timer.C respHeaderRecv = cs.respHeaderRecv } // Wait until the peer half-closes its end of the stream, @@ -1753,7 +1704,7 @@ func (cc *ClientConn) awaitOpenSlotForStreamLocked(cs *clientStream) error { // Return a fatal error which aborts the retry loop. return errClientConnNotEstablished } - cc.lastActive = cc.t.now() + cc.lastActive = time.Now() if cc.closed || !cc.canTakeNewRequestLocked() { return errClientConnUnusable } @@ -2092,10 +2043,10 @@ func (cc *ClientConn) forgetStreamID(id uint32) { if len(cc.streams) != slen-1 { panic("forgetting unknown stream id") } - cc.lastActive = cc.t.now() + cc.lastActive = time.Now() if len(cc.streams) == 0 && cc.idleTimer != nil { cc.idleTimer.Reset(cc.idleTimeout) - cc.lastIdle = cc.t.now() + cc.lastIdle = time.Now() } // Wake up writeRequestBody via clientStream.awaitFlowControl and // wake up RoundTrip if there is a pending request. @@ -2121,7 +2072,6 @@ type clientConnReadLoop struct { // readLoop runs in its own goroutine and reads and dispatches frames. func (cc *ClientConn) readLoop() { - cc.t.markNewGoroutine() rl := &clientConnReadLoop{cc: cc} defer rl.cleanup() cc.readerErr = rl.run() @@ -2188,9 +2138,9 @@ func (rl *clientConnReadLoop) cleanup() { if cc.idleTimeout > 0 && unusedWaitTime > cc.idleTimeout { unusedWaitTime = cc.idleTimeout } - idleTime := cc.t.now().Sub(cc.lastActive) + idleTime := time.Now().Sub(cc.lastActive) if atomic.LoadUint32(&cc.atomicReused) == 0 && idleTime < unusedWaitTime && !cc.closedOnIdle { - cc.idleTimer = cc.t.afterFunc(unusedWaitTime-idleTime, func() { + cc.idleTimer = time.AfterFunc(unusedWaitTime-idleTime, func() { cc.t.connPool().MarkDead(cc) }) } else { @@ -2250,9 +2200,9 @@ func (rl *clientConnReadLoop) run() error { cc := rl.cc gotSettings := false readIdleTimeout := cc.readIdleTimeout - var t timer + var t *time.Timer if readIdleTimeout != 0 { - t = cc.t.afterFunc(readIdleTimeout, cc.healthCheck) + t = time.AfterFunc(readIdleTimeout, cc.healthCheck) } for { f, err := cc.fr.ReadFrame() @@ -2998,7 +2948,6 @@ func (cc *ClientConn) Ping(ctx context.Context) error { var pingError error errc := make(chan struct{}) go func() { - cc.t.markNewGoroutine() cc.wmu.Lock() defer cc.wmu.Unlock() if pingError = cc.fr.WritePing(false, p); pingError != nil { @@ -3128,35 +3077,102 @@ type erringRoundTripper struct{ err error } func (rt erringRoundTripper) RoundTripErr() error { return rt.err } func (rt erringRoundTripper) RoundTrip(*http.Request) (*http.Response, error) { return nil, rt.err } +var errConcurrentReadOnResBody = errors.New("http2: concurrent read on response body") + // gzipReader wraps a response body so it can lazily -// call gzip.NewReader on the first call to Read +// get gzip.Reader from the pool on the first call to Read. +// After Close is called it puts gzip.Reader to the pool immediately +// if there is no Read in progress or later when Read completes. type gzipReader struct { _ incomparable body io.ReadCloser // underlying Response.Body - zr *gzip.Reader // lazily-initialized gzip reader - zerr error // sticky error + mu sync.Mutex // guards zr and zerr + zr *gzip.Reader // stores gzip reader from the pool between reads + zerr error // sticky gzip reader init error or sentinel value to detect concurrent read and read after close } -func (gz *gzipReader) Read(p []byte) (n int, err error) { +type eofReader struct{} + +func (eofReader) Read([]byte) (int, error) { return 0, io.EOF } +func (eofReader) ReadByte() (byte, error) { return 0, io.EOF } + +var gzipPool = sync.Pool{New: func() any { return new(gzip.Reader) }} + +// gzipPoolGet gets a gzip.Reader from the pool and resets it to read from r. +func gzipPoolGet(r io.Reader) (*gzip.Reader, error) { + zr := gzipPool.Get().(*gzip.Reader) + if err := zr.Reset(r); err != nil { + gzipPoolPut(zr) + return nil, err + } + return zr, nil +} + +// gzipPoolPut puts a gzip.Reader back into the pool. +func gzipPoolPut(zr *gzip.Reader) { + // Reset will allocate bufio.Reader if we pass it anything + // other than a flate.Reader, so ensure that it's getting one. + var r flate.Reader = eofReader{} + zr.Reset(r) + gzipPool.Put(zr) +} + +// acquire returns a gzip.Reader for reading response body. +// The reader must be released after use. +func (gz *gzipReader) acquire() (*gzip.Reader, error) { + gz.mu.Lock() + defer gz.mu.Unlock() if gz.zerr != nil { - return 0, gz.zerr + return nil, gz.zerr } if gz.zr == nil { - gz.zr, err = gzip.NewReader(gz.body) - if err != nil { - gz.zerr = err - return 0, err + gz.zr, gz.zerr = gzipPoolGet(gz.body) + if gz.zerr != nil { + return nil, gz.zerr } } - return gz.zr.Read(p) + ret := gz.zr + gz.zr, gz.zerr = nil, errConcurrentReadOnResBody + return ret, nil } -func (gz *gzipReader) Close() error { - if err := gz.body.Close(); err != nil { - return err +// release returns the gzip.Reader to the pool if Close was called during Read. +func (gz *gzipReader) release(zr *gzip.Reader) { + gz.mu.Lock() + defer gz.mu.Unlock() + if gz.zerr == errConcurrentReadOnResBody { + gz.zr, gz.zerr = zr, nil + } else { // fs.ErrClosed + gzipPoolPut(zr) + } +} + +// close returns the gzip.Reader to the pool immediately or +// signals release to do so after Read completes. +func (gz *gzipReader) close() { + gz.mu.Lock() + defer gz.mu.Unlock() + if gz.zerr == nil && gz.zr != nil { + gzipPoolPut(gz.zr) + gz.zr = nil } gz.zerr = fs.ErrClosed - return nil +} + +func (gz *gzipReader) Read(p []byte) (n int, err error) { + zr, err := gz.acquire() + if err != nil { + return 0, err + } + defer gz.release(zr) + + return zr.Read(p) +} + +func (gz *gzipReader) Close() error { + gz.close() + + return gz.body.Close() } type errorReader struct{ err error } @@ -3228,7 +3244,7 @@ func traceGotConn(req *http.Request, cc *ClientConn, reused bool) { cc.mu.Lock() ci.WasIdle = len(cc.streams) == 0 && reused if ci.WasIdle && !cc.lastActive.IsZero() { - ci.IdleTime = cc.t.timeSince(cc.lastActive) + ci.IdleTime = time.Since(cc.lastActive) } cc.mu.Unlock() diff --git a/vendor/golang.org/x/net/http2/writesched.go b/vendor/golang.org/x/net/http2/writesched.go index cc893adc2..7de27be52 100644 --- a/vendor/golang.org/x/net/http2/writesched.go +++ b/vendor/golang.org/x/net/http2/writesched.go @@ -42,6 +42,8 @@ type OpenStreamOptions struct { // PusherID is zero if the stream was initiated by the client. Otherwise, // PusherID names the stream that pushed the newly opened stream. PusherID uint32 + // priority is used to set the priority of the newly opened stream. + priority PriorityParam } // FrameWriteRequest is a request to write a frame. @@ -183,45 +185,75 @@ func (wr *FrameWriteRequest) replyToWriter(err error) { } // writeQueue is used by implementations of WriteScheduler. +// +// Each writeQueue contains a queue of FrameWriteRequests, meant to store all +// FrameWriteRequests associated with a given stream. This is implemented as a +// two-stage queue: currQueue[currPos:] and nextQueue. Removing an item is done +// by incrementing currPos of currQueue. Adding an item is done by appending it +// to the nextQueue. If currQueue is empty when trying to remove an item, we +// can swap currQueue and nextQueue to remedy the situation. +// This two-stage queue is analogous to the use of two lists in Okasaki's +// purely functional queue but without the overhead of reversing the list when +// swapping stages. +// +// writeQueue also contains prev and next, this can be used by implementations +// of WriteScheduler to construct data structures that represent the order of +// writing between different streams (e.g. circular linked list). type writeQueue struct { - s []FrameWriteRequest + currQueue []FrameWriteRequest + nextQueue []FrameWriteRequest + currPos int + prev, next *writeQueue } -func (q *writeQueue) empty() bool { return len(q.s) == 0 } +func (q *writeQueue) empty() bool { + return (len(q.currQueue) - q.currPos + len(q.nextQueue)) == 0 +} func (q *writeQueue) push(wr FrameWriteRequest) { - q.s = append(q.s, wr) + q.nextQueue = append(q.nextQueue, wr) } func (q *writeQueue) shift() FrameWriteRequest { - if len(q.s) == 0 { + if q.empty() { panic("invalid use of queue") } - wr := q.s[0] - // TODO: less copy-happy queue. - copy(q.s, q.s[1:]) - q.s[len(q.s)-1] = FrameWriteRequest{} - q.s = q.s[:len(q.s)-1] + if q.currPos >= len(q.currQueue) { + q.currQueue, q.currPos, q.nextQueue = q.nextQueue, 0, q.currQueue[:0] + } + wr := q.currQueue[q.currPos] + q.currQueue[q.currPos] = FrameWriteRequest{} + q.currPos++ return wr } +func (q *writeQueue) peek() *FrameWriteRequest { + if q.currPos < len(q.currQueue) { + return &q.currQueue[q.currPos] + } + if len(q.nextQueue) > 0 { + return &q.nextQueue[0] + } + return nil +} + // consume consumes up to n bytes from q.s[0]. If the frame is // entirely consumed, it is removed from the queue. If the frame // is partially consumed, the frame is kept with the consumed // bytes removed. Returns true iff any bytes were consumed. func (q *writeQueue) consume(n int32) (FrameWriteRequest, bool) { - if len(q.s) == 0 { + if q.empty() { return FrameWriteRequest{}, false } - consumed, rest, numresult := q.s[0].Consume(n) + consumed, rest, numresult := q.peek().Consume(n) switch numresult { case 0: return FrameWriteRequest{}, false case 1: q.shift() case 2: - q.s[0] = rest + *q.peek() = rest } return consumed, true } @@ -230,10 +262,15 @@ type writeQueuePool []*writeQueue // put inserts an unused writeQueue into the pool. func (p *writeQueuePool) put(q *writeQueue) { - for i := range q.s { - q.s[i] = FrameWriteRequest{} + for i := range q.currQueue { + q.currQueue[i] = FrameWriteRequest{} + } + for i := range q.nextQueue { + q.nextQueue[i] = FrameWriteRequest{} } - q.s = q.s[:0] + q.currQueue = q.currQueue[:0] + q.nextQueue = q.nextQueue[:0] + q.currPos = 0 *p = append(*p, q) } diff --git a/vendor/golang.org/x/net/http2/writesched_priority.go b/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go similarity index 77% rename from vendor/golang.org/x/net/http2/writesched_priority.go rename to vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go index f6783339d..4e33c29a2 100644 --- a/vendor/golang.org/x/net/http2/writesched_priority.go +++ b/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go @@ -11,7 +11,7 @@ import ( ) // RFC 7540, Section 5.3.5: the default weight is 16. -const priorityDefaultWeight = 15 // 16 = 15 + 1 +const priorityDefaultWeightRFC7540 = 15 // 16 = 15 + 1 // PriorityWriteSchedulerConfig configures a priorityWriteScheduler. type PriorityWriteSchedulerConfig struct { @@ -66,8 +66,8 @@ func NewPriorityWriteScheduler(cfg *PriorityWriteSchedulerConfig) WriteScheduler } } - ws := &priorityWriteScheduler{ - nodes: make(map[uint32]*priorityNode), + ws := &priorityWriteSchedulerRFC7540{ + nodes: make(map[uint32]*priorityNodeRFC7540), maxClosedNodesInTree: cfg.MaxClosedNodesInTree, maxIdleNodesInTree: cfg.MaxIdleNodesInTree, enableWriteThrottle: cfg.ThrottleOutOfOrderWrites, @@ -81,32 +81,32 @@ func NewPriorityWriteScheduler(cfg *PriorityWriteSchedulerConfig) WriteScheduler return ws } -type priorityNodeState int +type priorityNodeStateRFC7540 int const ( - priorityNodeOpen priorityNodeState = iota - priorityNodeClosed - priorityNodeIdle + priorityNodeOpenRFC7540 priorityNodeStateRFC7540 = iota + priorityNodeClosedRFC7540 + priorityNodeIdleRFC7540 ) -// priorityNode is a node in an HTTP/2 priority tree. +// priorityNodeRFC7540 is a node in an HTTP/2 priority tree. // Each node is associated with a single stream ID. // See RFC 7540, Section 5.3. -type priorityNode struct { - q writeQueue // queue of pending frames to write - id uint32 // id of the stream, or 0 for the root of the tree - weight uint8 // the actual weight is weight+1, so the value is in [1,256] - state priorityNodeState // open | closed | idle - bytes int64 // number of bytes written by this node, or 0 if closed - subtreeBytes int64 // sum(node.bytes) of all nodes in this subtree +type priorityNodeRFC7540 struct { + q writeQueue // queue of pending frames to write + id uint32 // id of the stream, or 0 for the root of the tree + weight uint8 // the actual weight is weight+1, so the value is in [1,256] + state priorityNodeStateRFC7540 // open | closed | idle + bytes int64 // number of bytes written by this node, or 0 if closed + subtreeBytes int64 // sum(node.bytes) of all nodes in this subtree // These links form the priority tree. - parent *priorityNode - kids *priorityNode // start of the kids list - prev, next *priorityNode // doubly-linked list of siblings + parent *priorityNodeRFC7540 + kids *priorityNodeRFC7540 // start of the kids list + prev, next *priorityNodeRFC7540 // doubly-linked list of siblings } -func (n *priorityNode) setParent(parent *priorityNode) { +func (n *priorityNodeRFC7540) setParent(parent *priorityNodeRFC7540) { if n == parent { panic("setParent to self") } @@ -141,7 +141,7 @@ func (n *priorityNode) setParent(parent *priorityNode) { } } -func (n *priorityNode) addBytes(b int64) { +func (n *priorityNodeRFC7540) addBytes(b int64) { n.bytes += b for ; n != nil; n = n.parent { n.subtreeBytes += b @@ -154,7 +154,7 @@ func (n *priorityNode) addBytes(b int64) { // // f(n, openParent) takes two arguments: the node to visit, n, and a bool that is true // if any ancestor p of n is still open (ignoring the root node). -func (n *priorityNode) walkReadyInOrder(openParent bool, tmp *[]*priorityNode, f func(*priorityNode, bool) bool) bool { +func (n *priorityNodeRFC7540) walkReadyInOrder(openParent bool, tmp *[]*priorityNodeRFC7540, f func(*priorityNodeRFC7540, bool) bool) bool { if !n.q.empty() && f(n, openParent) { return true } @@ -165,7 +165,7 @@ func (n *priorityNode) walkReadyInOrder(openParent bool, tmp *[]*priorityNode, f // Don't consider the root "open" when updating openParent since // we can't send data frames on the root stream (only control frames). if n.id != 0 { - openParent = openParent || (n.state == priorityNodeOpen) + openParent = openParent || (n.state == priorityNodeOpenRFC7540) } // Common case: only one kid or all kids have the same weight. @@ -195,7 +195,7 @@ func (n *priorityNode) walkReadyInOrder(openParent bool, tmp *[]*priorityNode, f *tmp = append(*tmp, n.kids) n.kids.setParent(nil) } - sort.Sort(sortPriorityNodeSiblings(*tmp)) + sort.Sort(sortPriorityNodeSiblingsRFC7540(*tmp)) for i := len(*tmp) - 1; i >= 0; i-- { (*tmp)[i].setParent(n) // setParent inserts at the head of n.kids } @@ -207,15 +207,15 @@ func (n *priorityNode) walkReadyInOrder(openParent bool, tmp *[]*priorityNode, f return false } -type sortPriorityNodeSiblings []*priorityNode +type sortPriorityNodeSiblingsRFC7540 []*priorityNodeRFC7540 -func (z sortPriorityNodeSiblings) Len() int { return len(z) } -func (z sortPriorityNodeSiblings) Swap(i, k int) { z[i], z[k] = z[k], z[i] } -func (z sortPriorityNodeSiblings) Less(i, k int) bool { +func (z sortPriorityNodeSiblingsRFC7540) Len() int { return len(z) } +func (z sortPriorityNodeSiblingsRFC7540) Swap(i, k int) { z[i], z[k] = z[k], z[i] } +func (z sortPriorityNodeSiblingsRFC7540) Less(i, k int) bool { // Prefer the subtree that has sent fewer bytes relative to its weight. // See sections 5.3.2 and 5.3.4. - wi, bi := float64(z[i].weight+1), float64(z[i].subtreeBytes) - wk, bk := float64(z[k].weight+1), float64(z[k].subtreeBytes) + wi, bi := float64(z[i].weight)+1, float64(z[i].subtreeBytes) + wk, bk := float64(z[k].weight)+1, float64(z[k].subtreeBytes) if bi == 0 && bk == 0 { return wi >= wk } @@ -225,13 +225,13 @@ func (z sortPriorityNodeSiblings) Less(i, k int) bool { return bi/bk <= wi/wk } -type priorityWriteScheduler struct { +type priorityWriteSchedulerRFC7540 struct { // root is the root of the priority tree, where root.id = 0. // The root queues control frames that are not associated with any stream. - root priorityNode + root priorityNodeRFC7540 // nodes maps stream ids to priority tree nodes. - nodes map[uint32]*priorityNode + nodes map[uint32]*priorityNodeRFC7540 // maxID is the maximum stream id in nodes. maxID uint32 @@ -239,7 +239,7 @@ type priorityWriteScheduler struct { // lists of nodes that have been closed or are idle, but are kept in // the tree for improved prioritization. When the lengths exceed either // maxClosedNodesInTree or maxIdleNodesInTree, old nodes are discarded. - closedNodes, idleNodes []*priorityNode + closedNodes, idleNodes []*priorityNodeRFC7540 // From the config. maxClosedNodesInTree int @@ -248,19 +248,19 @@ type priorityWriteScheduler struct { enableWriteThrottle bool // tmp is scratch space for priorityNode.walkReadyInOrder to reduce allocations. - tmp []*priorityNode + tmp []*priorityNodeRFC7540 // pool of empty queues for reuse. queuePool writeQueuePool } -func (ws *priorityWriteScheduler) OpenStream(streamID uint32, options OpenStreamOptions) { +func (ws *priorityWriteSchedulerRFC7540) OpenStream(streamID uint32, options OpenStreamOptions) { // The stream may be currently idle but cannot be opened or closed. if curr := ws.nodes[streamID]; curr != nil { - if curr.state != priorityNodeIdle { + if curr.state != priorityNodeIdleRFC7540 { panic(fmt.Sprintf("stream %d already opened", streamID)) } - curr.state = priorityNodeOpen + curr.state = priorityNodeOpenRFC7540 return } @@ -272,11 +272,11 @@ func (ws *priorityWriteScheduler) OpenStream(streamID uint32, options OpenStream if parent == nil { parent = &ws.root } - n := &priorityNode{ + n := &priorityNodeRFC7540{ q: *ws.queuePool.get(), id: streamID, - weight: priorityDefaultWeight, - state: priorityNodeOpen, + weight: priorityDefaultWeightRFC7540, + state: priorityNodeOpenRFC7540, } n.setParent(parent) ws.nodes[streamID] = n @@ -285,24 +285,23 @@ func (ws *priorityWriteScheduler) OpenStream(streamID uint32, options OpenStream } } -func (ws *priorityWriteScheduler) CloseStream(streamID uint32) { +func (ws *priorityWriteSchedulerRFC7540) CloseStream(streamID uint32) { if streamID == 0 { panic("violation of WriteScheduler interface: cannot close stream 0") } if ws.nodes[streamID] == nil { panic(fmt.Sprintf("violation of WriteScheduler interface: unknown stream %d", streamID)) } - if ws.nodes[streamID].state != priorityNodeOpen { + if ws.nodes[streamID].state != priorityNodeOpenRFC7540 { panic(fmt.Sprintf("violation of WriteScheduler interface: stream %d already closed", streamID)) } n := ws.nodes[streamID] - n.state = priorityNodeClosed + n.state = priorityNodeClosedRFC7540 n.addBytes(-n.bytes) q := n.q ws.queuePool.put(&q) - n.q.s = nil if ws.maxClosedNodesInTree > 0 { ws.addClosedOrIdleNode(&ws.closedNodes, ws.maxClosedNodesInTree, n) } else { @@ -310,7 +309,7 @@ func (ws *priorityWriteScheduler) CloseStream(streamID uint32) { } } -func (ws *priorityWriteScheduler) AdjustStream(streamID uint32, priority PriorityParam) { +func (ws *priorityWriteSchedulerRFC7540) AdjustStream(streamID uint32, priority PriorityParam) { if streamID == 0 { panic("adjustPriority on root") } @@ -324,11 +323,11 @@ func (ws *priorityWriteScheduler) AdjustStream(streamID uint32, priority Priorit return } ws.maxID = streamID - n = &priorityNode{ + n = &priorityNodeRFC7540{ q: *ws.queuePool.get(), id: streamID, - weight: priorityDefaultWeight, - state: priorityNodeIdle, + weight: priorityDefaultWeightRFC7540, + state: priorityNodeIdleRFC7540, } n.setParent(&ws.root) ws.nodes[streamID] = n @@ -340,7 +339,7 @@ func (ws *priorityWriteScheduler) AdjustStream(streamID uint32, priority Priorit parent := ws.nodes[priority.StreamDep] if parent == nil { n.setParent(&ws.root) - n.weight = priorityDefaultWeight + n.weight = priorityDefaultWeightRFC7540 return } @@ -381,8 +380,8 @@ func (ws *priorityWriteScheduler) AdjustStream(streamID uint32, priority Priorit n.weight = priority.Weight } -func (ws *priorityWriteScheduler) Push(wr FrameWriteRequest) { - var n *priorityNode +func (ws *priorityWriteSchedulerRFC7540) Push(wr FrameWriteRequest) { + var n *priorityNodeRFC7540 if wr.isControl() { n = &ws.root } else { @@ -401,8 +400,8 @@ func (ws *priorityWriteScheduler) Push(wr FrameWriteRequest) { n.q.push(wr) } -func (ws *priorityWriteScheduler) Pop() (wr FrameWriteRequest, ok bool) { - ws.root.walkReadyInOrder(false, &ws.tmp, func(n *priorityNode, openParent bool) bool { +func (ws *priorityWriteSchedulerRFC7540) Pop() (wr FrameWriteRequest, ok bool) { + ws.root.walkReadyInOrder(false, &ws.tmp, func(n *priorityNodeRFC7540, openParent bool) bool { limit := int32(math.MaxInt32) if openParent { limit = ws.writeThrottleLimit @@ -428,7 +427,7 @@ func (ws *priorityWriteScheduler) Pop() (wr FrameWriteRequest, ok bool) { return wr, ok } -func (ws *priorityWriteScheduler) addClosedOrIdleNode(list *[]*priorityNode, maxSize int, n *priorityNode) { +func (ws *priorityWriteSchedulerRFC7540) addClosedOrIdleNode(list *[]*priorityNodeRFC7540, maxSize int, n *priorityNodeRFC7540) { if maxSize == 0 { return } @@ -442,7 +441,7 @@ func (ws *priorityWriteScheduler) addClosedOrIdleNode(list *[]*priorityNode, max *list = append(*list, n) } -func (ws *priorityWriteScheduler) removeNode(n *priorityNode) { +func (ws *priorityWriteSchedulerRFC7540) removeNode(n *priorityNodeRFC7540) { for n.kids != nil { n.kids.setParent(n.parent) } diff --git a/vendor/golang.org/x/net/http2/writesched_priority_rfc9218.go b/vendor/golang.org/x/net/http2/writesched_priority_rfc9218.go new file mode 100644 index 000000000..cb4cadc32 --- /dev/null +++ b/vendor/golang.org/x/net/http2/writesched_priority_rfc9218.go @@ -0,0 +1,209 @@ +// Copyright 2025 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. + +package http2 + +import ( + "fmt" + "math" +) + +type streamMetadata struct { + location *writeQueue + priority PriorityParam +} + +type priorityWriteSchedulerRFC9218 struct { + // control contains control frames (SETTINGS, PING, etc.). + control writeQueue + + // heads contain the head of a circular list of streams. + // We put these heads within a nested array that represents urgency and + // incremental, as defined in + // https://www.rfc-editor.org/rfc/rfc9218.html#name-priority-parameters. + // 8 represents u=0 up to u=7, and 2 represents i=false and i=true. + heads [8][2]*writeQueue + + // streams contains a mapping between each stream ID and their metadata, so + // we can quickly locate them when needing to, for example, adjust their + // priority. + streams map[uint32]streamMetadata + + // queuePool are empty queues for reuse. + queuePool writeQueuePool + + // prioritizeIncremental is used to determine whether we should prioritize + // incremental streams or not, when urgency is the same in a given Pop() + // call. + prioritizeIncremental bool +} + +func newPriorityWriteSchedulerRFC9218() WriteScheduler { + ws := &priorityWriteSchedulerRFC9218{ + streams: make(map[uint32]streamMetadata), + } + return ws +} + +func (ws *priorityWriteSchedulerRFC9218) OpenStream(streamID uint32, opt OpenStreamOptions) { + if ws.streams[streamID].location != nil { + panic(fmt.Errorf("stream %d already opened", streamID)) + } + q := ws.queuePool.get() + ws.streams[streamID] = streamMetadata{ + location: q, + priority: opt.priority, + } + + u, i := opt.priority.urgency, opt.priority.incremental + if ws.heads[u][i] == nil { + ws.heads[u][i] = q + q.next = q + q.prev = q + } else { + // Queues are stored in a ring. + // Insert the new stream before ws.head, putting it at the end of the list. + q.prev = ws.heads[u][i].prev + q.next = ws.heads[u][i] + q.prev.next = q + q.next.prev = q + } +} + +func (ws *priorityWriteSchedulerRFC9218) CloseStream(streamID uint32) { + metadata := ws.streams[streamID] + q, u, i := metadata.location, metadata.priority.urgency, metadata.priority.incremental + if q == nil { + return + } + if q.next == q { + // This was the only open stream. + ws.heads[u][i] = nil + } else { + q.prev.next = q.next + q.next.prev = q.prev + if ws.heads[u][i] == q { + ws.heads[u][i] = q.next + } + } + delete(ws.streams, streamID) + ws.queuePool.put(q) +} + +func (ws *priorityWriteSchedulerRFC9218) AdjustStream(streamID uint32, priority PriorityParam) { + metadata := ws.streams[streamID] + q, u, i := metadata.location, metadata.priority.urgency, metadata.priority.incremental + if q == nil { + return + } + + // Remove stream from current location. + if q.next == q { + // This was the only open stream. + ws.heads[u][i] = nil + } else { + q.prev.next = q.next + q.next.prev = q.prev + if ws.heads[u][i] == q { + ws.heads[u][i] = q.next + } + } + + // Insert stream to the new queue. + u, i = priority.urgency, priority.incremental + if ws.heads[u][i] == nil { + ws.heads[u][i] = q + q.next = q + q.prev = q + } else { + // Queues are stored in a ring. + // Insert the new stream before ws.head, putting it at the end of the list. + q.prev = ws.heads[u][i].prev + q.next = ws.heads[u][i] + q.prev.next = q + q.next.prev = q + } + + // Update the metadata. + ws.streams[streamID] = streamMetadata{ + location: q, + priority: priority, + } +} + +func (ws *priorityWriteSchedulerRFC9218) Push(wr FrameWriteRequest) { + if wr.isControl() { + ws.control.push(wr) + return + } + q := ws.streams[wr.StreamID()].location + if q == nil { + // This is a closed stream. + // wr should not be a HEADERS or DATA frame. + // We push the request onto the control queue. + if wr.DataSize() > 0 { + panic("add DATA on non-open stream") + } + ws.control.push(wr) + return + } + q.push(wr) +} + +func (ws *priorityWriteSchedulerRFC9218) Pop() (FrameWriteRequest, bool) { + // Control and RST_STREAM frames first. + if !ws.control.empty() { + return ws.control.shift(), true + } + + // On the next Pop(), we want to prioritize incremental if we prioritized + // non-incremental request of the same urgency this time. Vice-versa. + // i.e. when there are incremental and non-incremental requests at the same + // priority, we give 50% of our bandwidth to the incremental ones in + // aggregate and 50% to the first non-incremental one (since + // non-incremental streams do not use round-robin writes). + ws.prioritizeIncremental = !ws.prioritizeIncremental + + // Always prioritize lowest u (i.e. highest urgency level). + for u := range ws.heads { + for i := range ws.heads[u] { + // When we want to prioritize incremental, we try to pop i=true + // first before i=false when u is the same. + if ws.prioritizeIncremental { + i = (i + 1) % 2 + } + q := ws.heads[u][i] + if q == nil { + continue + } + for { + if wr, ok := q.consume(math.MaxInt32); ok { + if i == 1 { + // For incremental streams, we update head to q.next so + // we can round-robin between multiple streams that can + // immediately benefit from partial writes. + ws.heads[u][i] = q.next + } else { + // For non-incremental streams, we try to finish one to + // completion rather than doing round-robin. However, + // we update head here so that if q.consume() is !ok + // (e.g. the stream has no more frame to consume), head + // is updated to the next q that has frames to consume + // on future iterations. This way, we do not prioritize + // writing to unavailable stream on next Pop() calls, + // preventing head-of-line blocking. + ws.heads[u][i] = q + } + return wr, true + } + q = q.next + if q == ws.heads[u][i] { + break + } + } + + } + } + return FrameWriteRequest{}, false +} diff --git a/vendor/golang.org/x/net/http2/writesched_roundrobin.go b/vendor/golang.org/x/net/http2/writesched_roundrobin.go index 54fe86322..737cff9ec 100644 --- a/vendor/golang.org/x/net/http2/writesched_roundrobin.go +++ b/vendor/golang.org/x/net/http2/writesched_roundrobin.go @@ -25,7 +25,7 @@ type roundRobinWriteScheduler struct { } // newRoundRobinWriteScheduler constructs a new write scheduler. -// The round robin scheduler priorizes control frames +// The round robin scheduler prioritizes control frames // like SETTINGS and PING over DATA frames. // When there are no control frames to send, it performs a round-robin // selection from the ready streams. diff --git a/vendor/golang.org/x/net/internal/httpcommon/request.go b/vendor/golang.org/x/net/internal/httpcommon/request.go index 4b7055317..1e10f89eb 100644 --- a/vendor/golang.org/x/net/internal/httpcommon/request.go +++ b/vendor/golang.org/x/net/internal/httpcommon/request.go @@ -51,7 +51,7 @@ type EncodeHeadersParam struct { DefaultUserAgent string } -// EncodeHeadersParam is the result of EncodeHeaders. +// EncodeHeadersResult is the result of EncodeHeaders. type EncodeHeadersResult struct { HasBody bool HasTrailers bool @@ -399,7 +399,7 @@ type ServerRequestResult struct { // If the request should be rejected, this is a short string suitable for passing // to the http2 package's CountError function. - // It might be a bit odd to return errors this way rather than returing an error, + // It might be a bit odd to return errors this way rather than returning an error, // but this ensures we don't forget to include a CountError reason. InvalidReason string } diff --git a/vendor/golang.org/x/net/trace/events.go b/vendor/golang.org/x/net/trace/events.go index c646a6952..3aaffdd1f 100644 --- a/vendor/golang.org/x/net/trace/events.go +++ b/vendor/golang.org/x/net/trace/events.go @@ -508,7 +508,7 @@ const eventsHTML = ` {{$el.When}} {{$el.ElapsedTime}} - {{$el.Title}} + {{$el.Title}} {{if $.Expanded}} diff --git a/vendor/golang.org/x/sync/errgroup/errgroup.go b/vendor/golang.org/x/sync/errgroup/errgroup.go index f8c3c0926..2f45dbc86 100644 --- a/vendor/golang.org/x/sync/errgroup/errgroup.go +++ b/vendor/golang.org/x/sync/errgroup/errgroup.go @@ -3,7 +3,7 @@ // license that can be found in the LICENSE file. // Package errgroup provides synchronization, error propagation, and Context -// cancelation for groups of goroutines working on subtasks of a common task. +// cancellation for groups of goroutines working on subtasks of a common task. // // [errgroup.Group] is related to [sync.WaitGroup] but adds handling of tasks // returning errors. @@ -61,12 +61,14 @@ func (g *Group) Wait() error { } // Go calls the given function in a new goroutine. +// // The first call to Go must happen before a Wait. // It blocks until the new goroutine can be added without the number of -// active goroutines in the group exceeding the configured limit. +// goroutines in the group exceeding the configured limit. // -// The first call to return a non-nil error cancels the group's context, if the -// group was created by calling WithContext. The error will be returned by Wait. +// The first goroutine in the group that returns a non-nil error will +// cancel the associated Context, if any. The error will be returned +// by Wait. func (g *Group) Go(f func() error) { if g.sem != nil { g.sem <- token{} @@ -76,6 +78,18 @@ func (g *Group) Go(f func() error) { go func() { defer g.done() + // It is tempting to propagate panics from f() + // up to the goroutine that calls Wait, but + // it creates more problems than it solves: + // - it delays panics arbitrarily, + // making bugs harder to detect; + // - it turns f's panic stack into a mere value, + // hiding it from crash-monitoring tools; + // - it risks deadlocks that hide the panic entirely, + // if f's panic leaves the program in a state + // that prevents the Wait call from being reached. + // See #53757, #74275, #74304, #74306. + if err := f(); err != nil { g.errOnce.Do(func() { g.err = err diff --git a/vendor/golang.org/x/sys/cpu/cpu.go b/vendor/golang.org/x/sys/cpu/cpu.go index 2e73ee197..34c9ae76e 100644 --- a/vendor/golang.org/x/sys/cpu/cpu.go +++ b/vendor/golang.org/x/sys/cpu/cpu.go @@ -92,6 +92,9 @@ var ARM64 struct { HasSHA2 bool // SHA2 hardware implementation HasCRC32 bool // CRC32 hardware implementation HasATOMICS bool // Atomic memory operation instruction set + HasHPDS bool // Hierarchical permission disables in translations tables + HasLOR bool // Limited ordering regions + HasPAN bool // Privileged access never HasFPHP bool // Half precision floating-point instruction set HasASIMDHP bool // Advanced SIMD half precision instruction set HasCPUID bool // CPUID identification scheme registers @@ -232,6 +235,17 @@ var RISCV64 struct { HasZba bool // Address generation instructions extension HasZbb bool // Basic bit-manipulation extension HasZbs bool // Single-bit instructions extension + HasZvbb bool // Vector Basic Bit-manipulation + HasZvbc bool // Vector Carryless Multiplication + HasZvkb bool // Vector Cryptography Bit-manipulation + HasZvkt bool // Vector Data-Independent Execution Latency + HasZvkg bool // Vector GCM/GMAC + HasZvkn bool // NIST Algorithm Suite (AES/SHA256/SHA512) + HasZvknc bool // NIST Algorithm Suite with carryless multiply + HasZvkng bool // NIST Algorithm Suite with GCM + HasZvks bool // ShangMi Algorithm Suite + HasZvksc bool // ShangMi Algorithm Suite with carryless multiplication + HasZvksg bool // ShangMi Algorithm Suite with GCM _ CacheLinePad } diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_arm64.go index af2aa99f9..f449c679f 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_arm64.go @@ -65,10 +65,10 @@ func setMinimalFeatures() { func readARM64Registers() { Initialized = true - parseARM64SystemRegisters(getisar0(), getisar1(), getpfr0()) + parseARM64SystemRegisters(getisar0(), getisar1(), getmmfr1(), getpfr0()) } -func parseARM64SystemRegisters(isar0, isar1, pfr0 uint64) { +func parseARM64SystemRegisters(isar0, isar1, mmfr1, pfr0 uint64) { // ID_AA64ISAR0_EL1 switch extractBits(isar0, 4, 7) { case 1: @@ -152,6 +152,22 @@ func parseARM64SystemRegisters(isar0, isar1, pfr0 uint64) { ARM64.HasI8MM = true } + // ID_AA64MMFR1_EL1 + switch extractBits(mmfr1, 12, 15) { + case 1, 2: + ARM64.HasHPDS = true + } + + switch extractBits(mmfr1, 16, 19) { + case 1: + ARM64.HasLOR = true + } + + switch extractBits(mmfr1, 20, 23) { + case 1, 2, 3: + ARM64.HasPAN = true + } + // ID_AA64PFR0_EL1 switch extractBits(pfr0, 16, 19) { case 0: diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.s b/vendor/golang.org/x/sys/cpu/cpu_arm64.s index 22cc99844..a4f24b3b0 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_arm64.s +++ b/vendor/golang.org/x/sys/cpu/cpu_arm64.s @@ -9,31 +9,34 @@ // func getisar0() uint64 TEXT ·getisar0(SB),NOSPLIT,$0-8 // get Instruction Set Attributes 0 into x0 - // mrs x0, ID_AA64ISAR0_EL1 = d5380600 - WORD $0xd5380600 + MRS ID_AA64ISAR0_EL1, R0 MOVD R0, ret+0(FP) RET // func getisar1() uint64 TEXT ·getisar1(SB),NOSPLIT,$0-8 // get Instruction Set Attributes 1 into x0 - // mrs x0, ID_AA64ISAR1_EL1 = d5380620 - WORD $0xd5380620 + MRS ID_AA64ISAR1_EL1, R0 + MOVD R0, ret+0(FP) + RET + +// func getmmfr1() uint64 +TEXT ·getmmfr1(SB),NOSPLIT,$0-8 + // get Memory Model Feature Register 1 into x0 + MRS ID_AA64MMFR1_EL1, R0 MOVD R0, ret+0(FP) RET // func getpfr0() uint64 TEXT ·getpfr0(SB),NOSPLIT,$0-8 // get Processor Feature Register 0 into x0 - // mrs x0, ID_AA64PFR0_EL1 = d5380400 - WORD $0xd5380400 + MRS ID_AA64PFR0_EL1, R0 MOVD R0, ret+0(FP) RET // func getzfr0() uint64 TEXT ·getzfr0(SB),NOSPLIT,$0-8 // get SVE Feature Register 0 into x0 - // mrs x0, ID_AA64ZFR0_EL1 = d5380480 - WORD $0xd5380480 + MRS ID_AA64ZFR0_EL1, R0 MOVD R0, ret+0(FP) RET diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go index 6ac6e1efb..e3fc5a8d3 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go @@ -8,5 +8,6 @@ package cpu func getisar0() uint64 func getisar1() uint64 +func getmmfr1() uint64 func getpfr0() uint64 func getzfr0() uint64 diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go index 7f1946780..8df2079e1 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go @@ -8,4 +8,5 @@ package cpu func getisar0() uint64 { return 0 } func getisar1() uint64 { return 0 } +func getmmfr1() uint64 { return 0 } func getpfr0() uint64 { return 0 } diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go b/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go index cb4a0c572..ad741536f 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go @@ -58,6 +58,15 @@ const ( riscv_HWPROBE_EXT_ZBA = 0x8 riscv_HWPROBE_EXT_ZBB = 0x10 riscv_HWPROBE_EXT_ZBS = 0x20 + riscv_HWPROBE_EXT_ZVBB = 0x20000 + riscv_HWPROBE_EXT_ZVBC = 0x40000 + riscv_HWPROBE_EXT_ZVKB = 0x80000 + riscv_HWPROBE_EXT_ZVKG = 0x100000 + riscv_HWPROBE_EXT_ZVKNED = 0x200000 + riscv_HWPROBE_EXT_ZVKNHB = 0x800000 + riscv_HWPROBE_EXT_ZVKSED = 0x1000000 + riscv_HWPROBE_EXT_ZVKSH = 0x2000000 + riscv_HWPROBE_EXT_ZVKT = 0x4000000 riscv_HWPROBE_KEY_CPUPERF_0 = 0x5 riscv_HWPROBE_MISALIGNED_FAST = 0x3 riscv_HWPROBE_MISALIGNED_MASK = 0x7 @@ -99,6 +108,20 @@ func doinit() { RISCV64.HasZba = isSet(v, riscv_HWPROBE_EXT_ZBA) RISCV64.HasZbb = isSet(v, riscv_HWPROBE_EXT_ZBB) RISCV64.HasZbs = isSet(v, riscv_HWPROBE_EXT_ZBS) + RISCV64.HasZvbb = isSet(v, riscv_HWPROBE_EXT_ZVBB) + RISCV64.HasZvbc = isSet(v, riscv_HWPROBE_EXT_ZVBC) + RISCV64.HasZvkb = isSet(v, riscv_HWPROBE_EXT_ZVKB) + RISCV64.HasZvkg = isSet(v, riscv_HWPROBE_EXT_ZVKG) + RISCV64.HasZvkt = isSet(v, riscv_HWPROBE_EXT_ZVKT) + // Cryptography shorthand extensions + RISCV64.HasZvkn = isSet(v, riscv_HWPROBE_EXT_ZVKNED) && + isSet(v, riscv_HWPROBE_EXT_ZVKNHB) && RISCV64.HasZvkb && RISCV64.HasZvkt + RISCV64.HasZvknc = RISCV64.HasZvkn && RISCV64.HasZvbc + RISCV64.HasZvkng = RISCV64.HasZvkn && RISCV64.HasZvkg + RISCV64.HasZvks = isSet(v, riscv_HWPROBE_EXT_ZVKSED) && + isSet(v, riscv_HWPROBE_EXT_ZVKSH) && RISCV64.HasZvkb && RISCV64.HasZvkt + RISCV64.HasZvksc = RISCV64.HasZvks && RISCV64.HasZvbc + RISCV64.HasZvksg = RISCV64.HasZvks && RISCV64.HasZvkg } if pairs[1].key != -1 { v := pairs[1].value & riscv_HWPROBE_MISALIGNED_MASK diff --git a/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go index ebfb3fc8e..19aea0633 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go @@ -167,7 +167,7 @@ func doinit() { setMinimalFeatures() return } - parseARM64SystemRegisters(cpuid.aa64isar0, cpuid.aa64isar1, cpuid.aa64pfr0) + parseARM64SystemRegisters(cpuid.aa64isar0, cpuid.aa64isar1, cpuid.aa64mmfr1, cpuid.aa64pfr0) Initialized = true } diff --git a/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go index 85b64d5cc..87fd3a778 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go @@ -59,7 +59,7 @@ func doinit() { if !ok { return } - parseARM64SystemRegisters(isar0, isar1, 0) + parseARM64SystemRegisters(isar0, isar1, 0, 0) Initialized = true } diff --git a/vendor/golang.org/x/sys/cpu/cpu_riscv64.go b/vendor/golang.org/x/sys/cpu/cpu_riscv64.go index aca3199c9..0f617aef5 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_riscv64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_riscv64.go @@ -16,5 +16,17 @@ func initOptions() { {Name: "zba", Feature: &RISCV64.HasZba}, {Name: "zbb", Feature: &RISCV64.HasZbb}, {Name: "zbs", Feature: &RISCV64.HasZbs}, + // RISC-V Cryptography Extensions + {Name: "zvbb", Feature: &RISCV64.HasZvbb}, + {Name: "zvbc", Feature: &RISCV64.HasZvbc}, + {Name: "zvkb", Feature: &RISCV64.HasZvkb}, + {Name: "zvkg", Feature: &RISCV64.HasZvkg}, + {Name: "zvkt", Feature: &RISCV64.HasZvkt}, + {Name: "zvkn", Feature: &RISCV64.HasZvkn}, + {Name: "zvknc", Feature: &RISCV64.HasZvknc}, + {Name: "zvkng", Feature: &RISCV64.HasZvkng}, + {Name: "zvks", Feature: &RISCV64.HasZvks}, + {Name: "zvksc", Feature: &RISCV64.HasZvksc}, + {Name: "zvksg", Feature: &RISCV64.HasZvksg}, } } diff --git a/vendor/golang.org/x/sys/unix/affinity_linux.go b/vendor/golang.org/x/sys/unix/affinity_linux.go index 6e5c81acd..3ea470387 100644 --- a/vendor/golang.org/x/sys/unix/affinity_linux.go +++ b/vendor/golang.org/x/sys/unix/affinity_linux.go @@ -38,8 +38,15 @@ func SchedSetaffinity(pid int, set *CPUSet) error { // Zero clears the set s, so that it contains no CPUs. func (s *CPUSet) Zero() { + clear(s[:]) +} + +// Fill adds all possible CPU bits to the set s. On Linux, [SchedSetaffinity] +// will silently ignore any invalid CPU bits in [CPUSet] so this is an +// efficient way of resetting the CPU affinity of a process. +func (s *CPUSet) Fill() { for i := range s { - s[i] = 0 + s[i] = ^cpuMask(0) } } diff --git a/vendor/golang.org/x/sys/unix/fdset.go b/vendor/golang.org/x/sys/unix/fdset.go index 9e83d18cd..62ed12645 100644 --- a/vendor/golang.org/x/sys/unix/fdset.go +++ b/vendor/golang.org/x/sys/unix/fdset.go @@ -23,7 +23,5 @@ func (fds *FdSet) IsSet(fd int) bool { // Zero clears the set fds. func (fds *FdSet) Zero() { - for i := range fds.Bits { - fds.Bits[i] = 0 - } + clear(fds.Bits[:]) } diff --git a/vendor/golang.org/x/sys/unix/ifreq_linux.go b/vendor/golang.org/x/sys/unix/ifreq_linux.go index 848840ae4..309f5a2b0 100644 --- a/vendor/golang.org/x/sys/unix/ifreq_linux.go +++ b/vendor/golang.org/x/sys/unix/ifreq_linux.go @@ -111,9 +111,7 @@ func (ifr *Ifreq) SetUint32(v uint32) { // clear zeroes the ifreq's union field to prevent trailing garbage data from // being sent to the kernel if an ifreq is reused. func (ifr *Ifreq) clear() { - for i := range ifr.raw.Ifru { - ifr.raw.Ifru[i] = 0 - } + clear(ifr.raw.Ifru[:]) } // TODO(mdlayher): export as IfreqData? For now we can provide helpers such as diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh index e6f31d374..d0ed61191 100644 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ b/vendor/golang.org/x/sys/unix/mkall.sh @@ -49,6 +49,7 @@ esac if [[ "$GOOS" = "linux" ]]; then # Use the Docker-based build system # Files generated through docker (use $cmd so you can Ctl-C the build or run) + set -e $cmd docker build --tag generate:$GOOS $GOOS $cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")/.." && pwd):/build generate:$GOOS exit diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh index 6ab02b6c3..42517077c 100644 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -226,6 +226,7 @@ struct ltchars { #include #include #include +#include #include #include #include @@ -349,6 +350,9 @@ struct ltchars { #define _HIDIOCGRAWPHYS HIDIOCGRAWPHYS(_HIDIOCGRAWPHYS_LEN) #define _HIDIOCGRAWUNIQ HIDIOCGRAWUNIQ(_HIDIOCGRAWUNIQ_LEN) +// Renamed in v6.16, commit c6d732c38f93 ("net: ethtool: remove duplicate defines for family info") +#define ETHTOOL_FAMILY_NAME ETHTOOL_GENL_NAME +#define ETHTOOL_FAMILY_VERSION ETHTOOL_GENL_VERSION ' includes_NetBSD=' @@ -526,6 +530,7 @@ ccflags="$@" $2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ || $2 ~ /^(NL|CR|TAB|BS|VT|FF)DLY$/ || $2 ~ /^(NL|CR|TAB|BS|VT|FF)[0-9]$/ || + $2 ~ /^(DT|EI|ELF|EV|NN|NT|PF|SHF|SHN|SHT|STB|STT|VER)_/ || $2 ~ /^O?XTABS$/ || $2 ~ /^TC[IO](ON|OFF)$/ || $2 ~ /^IN_/ || diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go index 798f61ad3..7838ca5db 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go @@ -602,14 +602,9 @@ func Connectx(fd int, srcIf uint32, srcAddr, dstAddr Sockaddr, associd SaeAssocI return } -// sys connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) const minIovec = 8 func Readv(fd int, iovs [][]byte) (n int, err error) { - if !darwinKernelVersionMin(11, 0, 0) { - return 0, ENOSYS - } - iovecs := make([]Iovec, 0, minIovec) iovecs = appendBytes(iovecs, iovs) n, err = readv(fd, iovecs) @@ -618,9 +613,6 @@ func Readv(fd int, iovs [][]byte) (n int, err error) { } func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) { - if !darwinKernelVersionMin(11, 0, 0) { - return 0, ENOSYS - } iovecs := make([]Iovec, 0, minIovec) iovecs = appendBytes(iovecs, iovs) n, err = preadv(fd, iovecs, offset) @@ -629,10 +621,6 @@ func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) { } func Writev(fd int, iovs [][]byte) (n int, err error) { - if !darwinKernelVersionMin(11, 0, 0) { - return 0, ENOSYS - } - iovecs := make([]Iovec, 0, minIovec) iovecs = appendBytes(iovecs, iovs) if raceenabled { @@ -644,10 +632,6 @@ func Writev(fd int, iovs [][]byte) (n int, err error) { } func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) { - if !darwinKernelVersionMin(11, 0, 0) { - return 0, ENOSYS - } - iovecs := make([]Iovec, 0, minIovec) iovecs = appendBytes(iovecs, iovs) if raceenabled { @@ -707,45 +691,7 @@ func readvRacedetect(iovecs []Iovec, n int, err error) { } } -func darwinMajorMinPatch() (maj, min, patch int, err error) { - var un Utsname - err = Uname(&un) - if err != nil { - return - } - - var mmp [3]int - c := 0 -Loop: - for _, b := range un.Release[:] { - switch { - case b >= '0' && b <= '9': - mmp[c] = 10*mmp[c] + int(b-'0') - case b == '.': - c++ - if c > 2 { - return 0, 0, 0, ENOTSUP - } - case b == 0: - break Loop - default: - return 0, 0, 0, ENOTSUP - } - } - if c != 2 { - return 0, 0, 0, ENOTSUP - } - return mmp[0], mmp[1], mmp[2], nil -} - -func darwinKernelVersionMin(maj, min, patch int) bool { - actualMaj, actualMin, actualPatch, err := darwinMajorMinPatch() - if err != nil { - return false - } - return actualMaj > maj || actualMaj == maj && (actualMin > min || actualMin == min && actualPatch >= patch) -} - +//sys connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) //sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) //sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go index 4958a6570..06c0eea6f 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -801,9 +801,7 @@ func (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) { // one. The kernel expects SID to be in network byte order. binary.BigEndian.PutUint16(sa.raw[6:8], sa.SID) copy(sa.raw[8:14], sa.Remote) - for i := 14; i < 14+IFNAMSIZ; i++ { - sa.raw[i] = 0 - } + clear(sa.raw[14 : 14+IFNAMSIZ]) copy(sa.raw[14:], sa.Dev) return unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil } @@ -2645,3 +2643,9 @@ func SchedGetAttr(pid int, flags uint) (*SchedAttr, error) { //sys Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error) //sys Mseal(b []byte, flags uint) (err error) + +//sys setMemPolicy(mode int, mask *CPUSet, size int) (err error) = SYS_SET_MEMPOLICY + +func SetMemPolicy(mode int, mask *CPUSet) error { + return setMemPolicy(mode, mask, _CPU_SETSIZE) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go index 88162099a..34a467697 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go @@ -248,6 +248,23 @@ func Statvfs(path string, buf *Statvfs_t) (err error) { return Statvfs1(path, buf, ST_WAIT) } +func Getvfsstat(buf []Statvfs_t, flags int) (n int, err error) { + var ( + _p0 unsafe.Pointer + bufsize uintptr + ) + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + bufsize = unsafe.Sizeof(Statvfs_t{}) * uintptr(len(buf)) + } + r0, _, e1 := Syscall(SYS_GETVFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + /* * Exposed directly */ diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go index abc395547..18a3d9bda 100644 --- a/vendor/golang.org/x/sys/unix/syscall_solaris.go +++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go @@ -629,7 +629,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Kill(pid int, signum syscall.Signal) (err error) //sys Lchown(path string, uid int, gid int) (err error) //sys Link(path string, link string) (err error) -//sys Listen(s int, backlog int) (err error) = libsocket.__xnet_llisten +//sys Listen(s int, backlog int) (err error) = libsocket.__xnet_listen //sys Lstat(path string, stat *Stat_t) (err error) //sys Madvise(b []byte, advice int) (err error) //sys Mkdir(path string, mode uint32) (err error) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go index 4f432bfe8..d0a75da57 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go @@ -319,6 +319,7 @@ const ( AUDIT_INTEGRITY_POLICY_RULE = 0x70f AUDIT_INTEGRITY_RULE = 0x70d AUDIT_INTEGRITY_STATUS = 0x70a + AUDIT_INTEGRITY_USERSPACE = 0x710 AUDIT_IPC = 0x517 AUDIT_IPC_SET_PERM = 0x51f AUDIT_IPE_ACCESS = 0x58c @@ -327,6 +328,8 @@ const ( AUDIT_KERNEL = 0x7d0 AUDIT_KERNEL_OTHER = 0x524 AUDIT_KERN_MODULE = 0x532 + AUDIT_LANDLOCK_ACCESS = 0x58f + AUDIT_LANDLOCK_DOMAIN = 0x590 AUDIT_LAST_FEATURE = 0x1 AUDIT_LAST_KERN_ANOM_MSG = 0x707 AUDIT_LAST_USER_MSG = 0x4af @@ -491,6 +494,7 @@ const ( BPF_F_BEFORE = 0x8 BPF_F_ID = 0x20 BPF_F_NETFILTER_IP_DEFRAG = 0x1 + BPF_F_PREORDER = 0x40 BPF_F_QUERY_EFFECTIVE = 0x1 BPF_F_REDIRECT_FLAGS = 0x19 BPF_F_REPLACE = 0x4 @@ -527,6 +531,7 @@ const ( BPF_LDX = 0x1 BPF_LEN = 0x80 BPF_LL_OFF = -0x200000 + BPF_LOAD_ACQ = 0x100 BPF_LSH = 0x60 BPF_MAJOR_VERSION = 0x1 BPF_MAXINSNS = 0x1000 @@ -554,6 +559,7 @@ const ( BPF_RET = 0x6 BPF_RSH = 0x70 BPF_ST = 0x2 + BPF_STORE_REL = 0x110 BPF_STX = 0x3 BPF_SUB = 0x10 BPF_TAG_SIZE = 0x8 @@ -843,24 +849,90 @@ const ( DM_UUID_FLAG = 0x4000 DM_UUID_LEN = 0x81 DM_VERSION = 0xc138fd00 - DM_VERSION_EXTRA = "-ioctl (2023-03-01)" + DM_VERSION_EXTRA = "-ioctl (2025-04-28)" DM_VERSION_MAJOR = 0x4 - DM_VERSION_MINOR = 0x30 + DM_VERSION_MINOR = 0x32 DM_VERSION_PATCHLEVEL = 0x0 + DT_ADDRRNGHI = 0x6ffffeff + DT_ADDRRNGLO = 0x6ffffe00 DT_BLK = 0x6 DT_CHR = 0x2 + DT_DEBUG = 0x15 DT_DIR = 0x4 + DT_ENCODING = 0x20 DT_FIFO = 0x1 + DT_FINI = 0xd + DT_FLAGS_1 = 0x6ffffffb + DT_GNU_HASH = 0x6ffffef5 + DT_HASH = 0x4 + DT_HIOS = 0x6ffff000 + DT_HIPROC = 0x7fffffff + DT_INIT = 0xc + DT_JMPREL = 0x17 DT_LNK = 0xa + DT_LOOS = 0x6000000d + DT_LOPROC = 0x70000000 + DT_NEEDED = 0x1 + DT_NULL = 0x0 + DT_PLTGOT = 0x3 + DT_PLTREL = 0x14 + DT_PLTRELSZ = 0x2 DT_REG = 0x8 + DT_REL = 0x11 + DT_RELA = 0x7 + DT_RELACOUNT = 0x6ffffff9 + DT_RELAENT = 0x9 + DT_RELASZ = 0x8 + DT_RELCOUNT = 0x6ffffffa + DT_RELENT = 0x13 + DT_RELSZ = 0x12 + DT_RPATH = 0xf DT_SOCK = 0xc + DT_SONAME = 0xe + DT_STRSZ = 0xa + DT_STRTAB = 0x5 + DT_SYMBOLIC = 0x10 + DT_SYMENT = 0xb + DT_SYMTAB = 0x6 + DT_TEXTREL = 0x16 DT_UNKNOWN = 0x0 + DT_VALRNGHI = 0x6ffffdff + DT_VALRNGLO = 0x6ffffd00 + DT_VERDEF = 0x6ffffffc + DT_VERDEFNUM = 0x6ffffffd + DT_VERNEED = 0x6ffffffe + DT_VERNEEDNUM = 0x6fffffff + DT_VERSYM = 0x6ffffff0 DT_WHT = 0xe ECHO = 0x8 ECRYPTFS_SUPER_MAGIC = 0xf15f EFD_SEMAPHORE = 0x1 EFIVARFS_MAGIC = 0xde5e81e4 EFS_SUPER_MAGIC = 0x414a53 + EI_CLASS = 0x4 + EI_DATA = 0x5 + EI_MAG0 = 0x0 + EI_MAG1 = 0x1 + EI_MAG2 = 0x2 + EI_MAG3 = 0x3 + EI_NIDENT = 0x10 + EI_OSABI = 0x7 + EI_PAD = 0x8 + EI_VERSION = 0x6 + ELFCLASS32 = 0x1 + ELFCLASS64 = 0x2 + ELFCLASSNONE = 0x0 + ELFCLASSNUM = 0x3 + ELFDATA2LSB = 0x1 + ELFDATA2MSB = 0x2 + ELFDATANONE = 0x0 + ELFMAG = "\177ELF" + ELFMAG0 = 0x7f + ELFMAG1 = 'E' + ELFMAG2 = 'L' + ELFMAG3 = 'F' + ELFOSABI_LINUX = 0x3 + ELFOSABI_NONE = 0x0 EM_386 = 0x3 EM_486 = 0x6 EM_68K = 0x4 @@ -936,11 +1008,10 @@ const ( EPOLL_CTL_MOD = 0x3 EPOLL_IOC_TYPE = 0x8a EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2 - ESP_V4_FLOW = 0xa - ESP_V6_FLOW = 0xc - ETHER_FLOW = 0x12 ETHTOOL_BUSINFO_LEN = 0x20 ETHTOOL_EROMVERS_LEN = 0x20 + ETHTOOL_FAMILY_NAME = "ethtool" + ETHTOOL_FAMILY_VERSION = 0x1 ETHTOOL_FEC_AUTO = 0x2 ETHTOOL_FEC_BASER = 0x10 ETHTOOL_FEC_LLRS = 0x20 @@ -1147,14 +1218,24 @@ const ( ETH_P_WCCP = 0x883e ETH_P_X25 = 0x805 ETH_P_XDSA = 0xf8 + ET_CORE = 0x4 + ET_DYN = 0x3 + ET_EXEC = 0x2 + ET_HIPROC = 0xffff + ET_LOPROC = 0xff00 + ET_NONE = 0x0 + ET_REL = 0x1 EV_ABS = 0x3 EV_CNT = 0x20 + EV_CURRENT = 0x1 EV_FF = 0x15 EV_FF_STATUS = 0x17 EV_KEY = 0x1 EV_LED = 0x11 EV_MAX = 0x1f EV_MSC = 0x4 + EV_NONE = 0x0 + EV_NUM = 0x2 EV_PWR = 0x16 EV_REL = 0x2 EV_REP = 0x14 @@ -1203,13 +1284,18 @@ const ( FAN_DENY = 0x2 FAN_ENABLE_AUDIT = 0x40 FAN_EPIDFD = -0x2 + FAN_ERRNO_BITS = 0x8 + FAN_ERRNO_MASK = 0xff + FAN_ERRNO_SHIFT = 0x18 FAN_EVENT_INFO_TYPE_DFID = 0x3 FAN_EVENT_INFO_TYPE_DFID_NAME = 0x2 FAN_EVENT_INFO_TYPE_ERROR = 0x5 FAN_EVENT_INFO_TYPE_FID = 0x1 + FAN_EVENT_INFO_TYPE_MNT = 0x7 FAN_EVENT_INFO_TYPE_NEW_DFID_NAME = 0xc FAN_EVENT_INFO_TYPE_OLD_DFID_NAME = 0xa FAN_EVENT_INFO_TYPE_PIDFD = 0x4 + FAN_EVENT_INFO_TYPE_RANGE = 0x6 FAN_EVENT_METADATA_LEN = 0x18 FAN_EVENT_ON_CHILD = 0x8000000 FAN_FS_ERROR = 0x8000 @@ -1224,9 +1310,12 @@ const ( FAN_MARK_IGNORED_SURV_MODIFY = 0x40 FAN_MARK_IGNORE_SURV = 0x440 FAN_MARK_INODE = 0x0 + FAN_MARK_MNTNS = 0x110 FAN_MARK_MOUNT = 0x10 FAN_MARK_ONLYDIR = 0x8 FAN_MARK_REMOVE = 0x2 + FAN_MNT_ATTACH = 0x1000000 + FAN_MNT_DETACH = 0x2000000 FAN_MODIFY = 0x2 FAN_MOVE = 0xc0 FAN_MOVED_FROM = 0x40 @@ -1240,6 +1329,7 @@ const ( FAN_OPEN_EXEC = 0x1000 FAN_OPEN_EXEC_PERM = 0x40000 FAN_OPEN_PERM = 0x10000 + FAN_PRE_ACCESS = 0x100000 FAN_Q_OVERFLOW = 0x4000 FAN_RENAME = 0x10000000 FAN_REPORT_DFID_NAME = 0xc00 @@ -1247,6 +1337,7 @@ const ( FAN_REPORT_DIR_FID = 0x400 FAN_REPORT_FD_ERROR = 0x2000 FAN_REPORT_FID = 0x200 + FAN_REPORT_MNT = 0x4000 FAN_REPORT_NAME = 0x800 FAN_REPORT_PIDFD = 0x80 FAN_REPORT_TARGET_FID = 0x1000 @@ -1266,6 +1357,7 @@ const ( FIB_RULE_PERMANENT = 0x1 FIB_RULE_UNRESOLVED = 0x4 FIDEDUPERANGE = 0xc0189436 + FSCRYPT_ADD_KEY_FLAG_HW_WRAPPED = 0x1 FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8 FSCRYPT_KEY_DESC_PREFIX = "fscrypt:" FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8 @@ -1574,7 +1666,6 @@ const ( IPV6_DONTFRAG = 0x3e IPV6_DROP_MEMBERSHIP = 0x15 IPV6_DSTOPTS = 0x3b - IPV6_FLOW = 0x11 IPV6_FREEBIND = 0x4e IPV6_HDRINCL = 0x24 IPV6_HOPLIMIT = 0x34 @@ -1625,7 +1716,6 @@ const ( IPV6_TRANSPARENT = 0x4b IPV6_UNICAST_HOPS = 0x10 IPV6_UNICAST_IF = 0x4c - IPV6_USER_FLOW = 0xe IPV6_V6ONLY = 0x1a IPV6_VERSION = 0x60 IPV6_VERSION_MASK = 0xf0 @@ -1687,7 +1777,6 @@ const ( IP_TTL = 0x2 IP_UNBLOCK_SOURCE = 0x25 IP_UNICAST_IF = 0x32 - IP_USER_FLOW = 0xd IP_XFRM_POLICY = 0x11 ISOFS_SUPER_MAGIC = 0x9660 ISTRIP = 0x20 @@ -1809,7 +1898,11 @@ const ( LANDLOCK_ACCESS_FS_WRITE_FILE = 0x2 LANDLOCK_ACCESS_NET_BIND_TCP = 0x1 LANDLOCK_ACCESS_NET_CONNECT_TCP = 0x2 + LANDLOCK_CREATE_RULESET_ERRATA = 0x2 LANDLOCK_CREATE_RULESET_VERSION = 0x1 + LANDLOCK_RESTRICT_SELF_LOG_NEW_EXEC_ON = 0x2 + LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF = 0x1 + LANDLOCK_RESTRICT_SELF_LOG_SUBDOMAINS_OFF = 0x4 LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET = 0x1 LANDLOCK_SCOPE_SIGNAL = 0x2 LINUX_REBOOT_CMD_CAD_OFF = 0x0 @@ -2259,7 +2352,167 @@ const ( NLM_F_REPLACE = 0x100 NLM_F_REQUEST = 0x1 NLM_F_ROOT = 0x100 + NN_386_IOPERM = "LINUX" + NN_386_TLS = "LINUX" + NN_ARC_V2 = "LINUX" + NN_ARM_FPMR = "LINUX" + NN_ARM_GCS = "LINUX" + NN_ARM_HW_BREAK = "LINUX" + NN_ARM_HW_WATCH = "LINUX" + NN_ARM_PACA_KEYS = "LINUX" + NN_ARM_PACG_KEYS = "LINUX" + NN_ARM_PAC_ENABLED_KEYS = "LINUX" + NN_ARM_PAC_MASK = "LINUX" + NN_ARM_POE = "LINUX" + NN_ARM_SSVE = "LINUX" + NN_ARM_SVE = "LINUX" + NN_ARM_SYSTEM_CALL = "LINUX" + NN_ARM_TAGGED_ADDR_CTRL = "LINUX" + NN_ARM_TLS = "LINUX" + NN_ARM_VFP = "LINUX" + NN_ARM_ZA = "LINUX" + NN_ARM_ZT = "LINUX" + NN_AUXV = "CORE" + NN_FILE = "CORE" + NN_GNU_PROPERTY_TYPE_0 = "GNU" + NN_LOONGARCH_CPUCFG = "LINUX" + NN_LOONGARCH_CSR = "LINUX" + NN_LOONGARCH_HW_BREAK = "LINUX" + NN_LOONGARCH_HW_WATCH = "LINUX" + NN_LOONGARCH_LASX = "LINUX" + NN_LOONGARCH_LBT = "LINUX" + NN_LOONGARCH_LSX = "LINUX" + NN_MIPS_DSP = "LINUX" + NN_MIPS_FP_MODE = "LINUX" + NN_MIPS_MSA = "LINUX" + NN_PPC_DEXCR = "LINUX" + NN_PPC_DSCR = "LINUX" + NN_PPC_EBB = "LINUX" + NN_PPC_HASHKEYR = "LINUX" + NN_PPC_PKEY = "LINUX" + NN_PPC_PMU = "LINUX" + NN_PPC_PPR = "LINUX" + NN_PPC_SPE = "LINUX" + NN_PPC_TAR = "LINUX" + NN_PPC_TM_CDSCR = "LINUX" + NN_PPC_TM_CFPR = "LINUX" + NN_PPC_TM_CGPR = "LINUX" + NN_PPC_TM_CPPR = "LINUX" + NN_PPC_TM_CTAR = "LINUX" + NN_PPC_TM_CVMX = "LINUX" + NN_PPC_TM_CVSX = "LINUX" + NN_PPC_TM_SPR = "LINUX" + NN_PPC_VMX = "LINUX" + NN_PPC_VSX = "LINUX" + NN_PRFPREG = "CORE" + NN_PRPSINFO = "CORE" + NN_PRSTATUS = "CORE" + NN_PRXFPREG = "LINUX" + NN_RISCV_CSR = "LINUX" + NN_RISCV_TAGGED_ADDR_CTRL = "LINUX" + NN_RISCV_VECTOR = "LINUX" + NN_S390_CTRS = "LINUX" + NN_S390_GS_BC = "LINUX" + NN_S390_GS_CB = "LINUX" + NN_S390_HIGH_GPRS = "LINUX" + NN_S390_LAST_BREAK = "LINUX" + NN_S390_PREFIX = "LINUX" + NN_S390_PV_CPU_DATA = "LINUX" + NN_S390_RI_CB = "LINUX" + NN_S390_SYSTEM_CALL = "LINUX" + NN_S390_TDB = "LINUX" + NN_S390_TIMER = "LINUX" + NN_S390_TODCMP = "LINUX" + NN_S390_TODPREG = "LINUX" + NN_S390_VXRS_HIGH = "LINUX" + NN_S390_VXRS_LOW = "LINUX" + NN_SIGINFO = "CORE" + NN_TASKSTRUCT = "CORE" + NN_VMCOREDD = "LINUX" + NN_X86_SHSTK = "LINUX" + NN_X86_XSAVE_LAYOUT = "LINUX" + NN_X86_XSTATE = "LINUX" NSFS_MAGIC = 0x6e736673 + NT_386_IOPERM = 0x201 + NT_386_TLS = 0x200 + NT_ARC_V2 = 0x600 + NT_ARM_FPMR = 0x40e + NT_ARM_GCS = 0x410 + NT_ARM_HW_BREAK = 0x402 + NT_ARM_HW_WATCH = 0x403 + NT_ARM_PACA_KEYS = 0x407 + NT_ARM_PACG_KEYS = 0x408 + NT_ARM_PAC_ENABLED_KEYS = 0x40a + NT_ARM_PAC_MASK = 0x406 + NT_ARM_POE = 0x40f + NT_ARM_SSVE = 0x40b + NT_ARM_SVE = 0x405 + NT_ARM_SYSTEM_CALL = 0x404 + NT_ARM_TAGGED_ADDR_CTRL = 0x409 + NT_ARM_TLS = 0x401 + NT_ARM_VFP = 0x400 + NT_ARM_ZA = 0x40c + NT_ARM_ZT = 0x40d + NT_AUXV = 0x6 + NT_FILE = 0x46494c45 + NT_GNU_PROPERTY_TYPE_0 = 0x5 + NT_LOONGARCH_CPUCFG = 0xa00 + NT_LOONGARCH_CSR = 0xa01 + NT_LOONGARCH_HW_BREAK = 0xa05 + NT_LOONGARCH_HW_WATCH = 0xa06 + NT_LOONGARCH_LASX = 0xa03 + NT_LOONGARCH_LBT = 0xa04 + NT_LOONGARCH_LSX = 0xa02 + NT_MIPS_DSP = 0x800 + NT_MIPS_FP_MODE = 0x801 + NT_MIPS_MSA = 0x802 + NT_PPC_DEXCR = 0x111 + NT_PPC_DSCR = 0x105 + NT_PPC_EBB = 0x106 + NT_PPC_HASHKEYR = 0x112 + NT_PPC_PKEY = 0x110 + NT_PPC_PMU = 0x107 + NT_PPC_PPR = 0x104 + NT_PPC_SPE = 0x101 + NT_PPC_TAR = 0x103 + NT_PPC_TM_CDSCR = 0x10f + NT_PPC_TM_CFPR = 0x109 + NT_PPC_TM_CGPR = 0x108 + NT_PPC_TM_CPPR = 0x10e + NT_PPC_TM_CTAR = 0x10d + NT_PPC_TM_CVMX = 0x10a + NT_PPC_TM_CVSX = 0x10b + NT_PPC_TM_SPR = 0x10c + NT_PPC_VMX = 0x100 + NT_PPC_VSX = 0x102 + NT_PRFPREG = 0x2 + NT_PRPSINFO = 0x3 + NT_PRSTATUS = 0x1 + NT_PRXFPREG = 0x46e62b7f + NT_RISCV_CSR = 0x900 + NT_RISCV_TAGGED_ADDR_CTRL = 0x902 + NT_RISCV_VECTOR = 0x901 + NT_S390_CTRS = 0x304 + NT_S390_GS_BC = 0x30c + NT_S390_GS_CB = 0x30b + NT_S390_HIGH_GPRS = 0x300 + NT_S390_LAST_BREAK = 0x306 + NT_S390_PREFIX = 0x305 + NT_S390_PV_CPU_DATA = 0x30e + NT_S390_RI_CB = 0x30d + NT_S390_SYSTEM_CALL = 0x307 + NT_S390_TDB = 0x308 + NT_S390_TIMER = 0x301 + NT_S390_TODCMP = 0x302 + NT_S390_TODPREG = 0x303 + NT_S390_VXRS_HIGH = 0x30a + NT_S390_VXRS_LOW = 0x309 + NT_SIGINFO = 0x53494749 + NT_TASKSTRUCT = 0x4 + NT_VMCOREDD = 0x700 + NT_X86_SHSTK = 0x204 + NT_X86_XSAVE_LAYOUT = 0x205 + NT_X86_XSTATE = 0x202 OCFS2_SUPER_MAGIC = 0x7461636f OCRNL = 0x8 OFDEL = 0x80 @@ -2446,6 +2699,59 @@ const ( PERF_RECORD_MISC_USER = 0x2 PERF_SAMPLE_BRANCH_PLM_ALL = 0x7 PERF_SAMPLE_WEIGHT_TYPE = 0x1004000 + PF_ALG = 0x26 + PF_APPLETALK = 0x5 + PF_ASH = 0x12 + PF_ATMPVC = 0x8 + PF_ATMSVC = 0x14 + PF_AX25 = 0x3 + PF_BLUETOOTH = 0x1f + PF_BRIDGE = 0x7 + PF_CAIF = 0x25 + PF_CAN = 0x1d + PF_DECnet = 0xc + PF_ECONET = 0x13 + PF_FILE = 0x1 + PF_IB = 0x1b + PF_IEEE802154 = 0x24 + PF_INET = 0x2 + PF_INET6 = 0xa + PF_IPX = 0x4 + PF_IRDA = 0x17 + PF_ISDN = 0x22 + PF_IUCV = 0x20 + PF_KCM = 0x29 + PF_KEY = 0xf + PF_LLC = 0x1a + PF_LOCAL = 0x1 + PF_MAX = 0x2e + PF_MCTP = 0x2d + PF_MPLS = 0x1c + PF_NETBEUI = 0xd + PF_NETLINK = 0x10 + PF_NETROM = 0x6 + PF_NFC = 0x27 + PF_PACKET = 0x11 + PF_PHONET = 0x23 + PF_PPPOX = 0x18 + PF_QIPCRTR = 0x2a + PF_R = 0x4 + PF_RDS = 0x15 + PF_ROSE = 0xb + PF_ROUTE = 0x10 + PF_RXRPC = 0x21 + PF_SECURITY = 0xe + PF_SMC = 0x2b + PF_SNA = 0x16 + PF_TIPC = 0x1e + PF_UNIX = 0x1 + PF_UNSPEC = 0x0 + PF_VSOCK = 0x28 + PF_W = 0x2 + PF_WANPIPE = 0x19 + PF_X = 0x1 + PF_X25 = 0x9 + PF_XDP = 0x2c PID_FS_MAGIC = 0x50494446 PIPEFS_MAGIC = 0x50495045 PPPIOCGNPMODE = 0xc008744c @@ -2485,6 +2791,10 @@ const ( PR_FP_EXC_UND = 0x40000 PR_FP_MODE_FR = 0x1 PR_FP_MODE_FRE = 0x2 + PR_FUTEX_HASH = 0x4e + PR_FUTEX_HASH_GET_IMMUTABLE = 0x3 + PR_FUTEX_HASH_GET_SLOTS = 0x2 + PR_FUTEX_HASH_SET_SLOTS = 0x1 PR_GET_AUXV = 0x41555856 PR_GET_CHILD_SUBREAPER = 0x25 PR_GET_DUMPABLE = 0x3 @@ -2644,6 +2954,10 @@ const ( PR_TAGGED_ADDR_ENABLE = 0x1 PR_TASK_PERF_EVENTS_DISABLE = 0x1f PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMER_CREATE_RESTORE_IDS = 0x4d + PR_TIMER_CREATE_RESTORE_IDS_GET = 0x2 + PR_TIMER_CREATE_RESTORE_IDS_OFF = 0x0 + PR_TIMER_CREATE_RESTORE_IDS_ON = 0x1 PR_TIMING_STATISTICAL = 0x0 PR_TIMING_TIMESTAMP = 0x1 PR_TSC_ENABLE = 0x1 @@ -2724,6 +3038,7 @@ const ( PTRACE_SETREGSET = 0x4205 PTRACE_SETSIGINFO = 0x4203 PTRACE_SETSIGMASK = 0x420b + PTRACE_SET_SYSCALL_INFO = 0x4212 PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG = 0x4210 PTRACE_SINGLESTEP = 0x9 PTRACE_SYSCALL = 0x18 @@ -2732,6 +3047,23 @@ const ( PTRACE_SYSCALL_INFO_NONE = 0x0 PTRACE_SYSCALL_INFO_SECCOMP = 0x3 PTRACE_TRACEME = 0x0 + PT_AARCH64_MEMTAG_MTE = 0x70000002 + PT_DYNAMIC = 0x2 + PT_GNU_EH_FRAME = 0x6474e550 + PT_GNU_PROPERTY = 0x6474e553 + PT_GNU_RELRO = 0x6474e552 + PT_GNU_STACK = 0x6474e551 + PT_HIOS = 0x6fffffff + PT_HIPROC = 0x7fffffff + PT_INTERP = 0x3 + PT_LOAD = 0x1 + PT_LOOS = 0x60000000 + PT_LOPROC = 0x70000000 + PT_NOTE = 0x4 + PT_NULL = 0x0 + PT_PHDR = 0x6 + PT_SHLIB = 0x5 + PT_TLS = 0x7 P_ALL = 0x0 P_PGID = 0x2 P_PID = 0x1 @@ -2787,7 +3119,7 @@ const ( RTAX_UNSPEC = 0x0 RTAX_WINDOW = 0x3 RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1e + RTA_MAX = 0x1f RTCF_DIRECTSRC = 0x4000000 RTCF_DOREDIRECT = 0x1000000 RTCF_LOG = 0x2000000 @@ -2864,10 +3196,12 @@ const ( RTM_DELACTION = 0x31 RTM_DELADDR = 0x15 RTM_DELADDRLABEL = 0x49 + RTM_DELANYCAST = 0x3d RTM_DELCHAIN = 0x65 RTM_DELLINK = 0x11 RTM_DELLINKPROP = 0x6d RTM_DELMDB = 0x55 + RTM_DELMULTICAST = 0x39 RTM_DELNEIGH = 0x1d RTM_DELNETCONF = 0x51 RTM_DELNEXTHOP = 0x69 @@ -2917,11 +3251,13 @@ const ( RTM_NEWACTION = 0x30 RTM_NEWADDR = 0x14 RTM_NEWADDRLABEL = 0x48 + RTM_NEWANYCAST = 0x3c RTM_NEWCACHEREPORT = 0x60 RTM_NEWCHAIN = 0x64 RTM_NEWLINK = 0x10 RTM_NEWLINKPROP = 0x6c RTM_NEWMDB = 0x54 + RTM_NEWMULTICAST = 0x38 RTM_NEWNDUSEROPT = 0x44 RTM_NEWNEIGH = 0x1c RTM_NEWNEIGHTBL = 0x40 @@ -2970,6 +3306,7 @@ const ( RTPROT_NTK = 0xf RTPROT_OPENR = 0x63 RTPROT_OSPF = 0xbc + RTPROT_OVN = 0x54 RTPROT_RA = 0x9 RTPROT_REDIRECT = 0x1 RTPROT_RIP = 0xbd @@ -2987,11 +3324,12 @@ const ( RUSAGE_THREAD = 0x1 RWF_APPEND = 0x10 RWF_ATOMIC = 0x40 + RWF_DONTCACHE = 0x80 RWF_DSYNC = 0x2 RWF_HIPRI = 0x1 RWF_NOAPPEND = 0x20 RWF_NOWAIT = 0x8 - RWF_SUPPORTED = 0x7f + RWF_SUPPORTED = 0xff RWF_SYNC = 0x4 RWF_WRITE_LIFE_NOT_SET = 0x0 SCHED_BATCH = 0x3 @@ -3059,6 +3397,47 @@ const ( SEEK_MAX = 0x4 SEEK_SET = 0x0 SELINUX_MAGIC = 0xf97cff8c + SHF_ALLOC = 0x2 + SHF_EXCLUDE = 0x8000000 + SHF_EXECINSTR = 0x4 + SHF_GROUP = 0x200 + SHF_INFO_LINK = 0x40 + SHF_LINK_ORDER = 0x80 + SHF_MASKOS = 0xff00000 + SHF_MASKPROC = 0xf0000000 + SHF_MERGE = 0x10 + SHF_ORDERED = 0x4000000 + SHF_OS_NONCONFORMING = 0x100 + SHF_RELA_LIVEPATCH = 0x100000 + SHF_RO_AFTER_INIT = 0x200000 + SHF_STRINGS = 0x20 + SHF_TLS = 0x400 + SHF_WRITE = 0x1 + SHN_ABS = 0xfff1 + SHN_COMMON = 0xfff2 + SHN_HIPROC = 0xff1f + SHN_HIRESERVE = 0xffff + SHN_LIVEPATCH = 0xff20 + SHN_LOPROC = 0xff00 + SHN_LORESERVE = 0xff00 + SHN_UNDEF = 0x0 + SHT_DYNAMIC = 0x6 + SHT_DYNSYM = 0xb + SHT_HASH = 0x5 + SHT_HIPROC = 0x7fffffff + SHT_HIUSER = 0xffffffff + SHT_LOPROC = 0x70000000 + SHT_LOUSER = 0x80000000 + SHT_NOBITS = 0x8 + SHT_NOTE = 0x7 + SHT_NULL = 0x0 + SHT_NUM = 0xc + SHT_PROGBITS = 0x1 + SHT_REL = 0x9 + SHT_RELA = 0x4 + SHT_SHLIB = 0xa + SHT_STRTAB = 0x3 + SHT_SYMTAB = 0x2 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -3271,6 +3650,7 @@ const ( STATX_BTIME = 0x800 STATX_CTIME = 0x80 STATX_DIOALIGN = 0x2000 + STATX_DIO_READ_ALIGN = 0x20000 STATX_GID = 0x10 STATX_INO = 0x100 STATX_MNT_ID = 0x1000 @@ -3284,6 +3664,16 @@ const ( STATX_UID = 0x8 STATX_WRITE_ATOMIC = 0x10000 STATX__RESERVED = 0x80000000 + STB_GLOBAL = 0x1 + STB_LOCAL = 0x0 + STB_WEAK = 0x2 + STT_COMMON = 0x5 + STT_FILE = 0x4 + STT_FUNC = 0x2 + STT_NOTYPE = 0x0 + STT_OBJECT = 0x1 + STT_SECTION = 0x3 + STT_TLS = 0x6 SYNC_FILE_RANGE_WAIT_AFTER = 0x4 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 SYNC_FILE_RANGE_WRITE = 0x2 @@ -3322,7 +3712,7 @@ const ( TASKSTATS_GENL_NAME = "TASKSTATS" TASKSTATS_GENL_VERSION = 0x1 TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0xe + TASKSTATS_VERSION = 0x10 TCIFLUSH = 0x0 TCIOFF = 0x2 TCIOFLUSH = 0x2 @@ -3392,8 +3782,6 @@ const ( TCP_TX_DELAY = 0x25 TCP_ULP = 0x1f TCP_USER_TIMEOUT = 0x12 - TCP_V4_FLOW = 0x1 - TCP_V6_FLOW = 0x5 TCP_WINDOW_CLAMP = 0xa TCP_ZEROCOPY_RECEIVE = 0x23 TFD_TIMER_ABSTIME = 0x1 @@ -3503,6 +3891,7 @@ const ( TP_STATUS_WRONG_FORMAT = 0x4 TRACEFS_MAGIC = 0x74726163 TS_COMM_LEN = 0x20 + UBI_IOCECNFO = 0xc01c6f06 UDF_SUPER_MAGIC = 0x15013346 UDP_CORK = 0x1 UDP_ENCAP = 0x64 @@ -3515,14 +3904,14 @@ const ( UDP_NO_CHECK6_RX = 0x66 UDP_NO_CHECK6_TX = 0x65 UDP_SEGMENT = 0x67 - UDP_V4_FLOW = 0x2 - UDP_V6_FLOW = 0x6 UMOUNT_NOFOLLOW = 0x8 USBDEVICE_SUPER_MAGIC = 0x9fa2 UTIME_NOW = 0x3fffffff UTIME_OMIT = 0x3ffffffe V9FS_MAGIC = 0x1021997 VERASE = 0x2 + VER_FLG_BASE = 0x1 + VER_FLG_WEAK = 0x2 VINTR = 0x0 VKILL = 0x3 VLNEXT = 0xf @@ -3559,7 +3948,7 @@ const ( WDIOS_TEMPPANIC = 0x4 WDIOS_UNKNOWN = -0x1 WEXITED = 0x4 - WGALLOWEDIP_A_MAX = 0x3 + WGALLOWEDIP_A_MAX = 0x4 WGDEVICE_A_MAX = 0x8 WGPEER_A_MAX = 0xa WG_CMD_MAX = 0x1 @@ -3673,6 +4062,7 @@ const ( XDP_SHARED_UMEM = 0x1 XDP_STATISTICS = 0x7 XDP_TXMD_FLAGS_CHECKSUM = 0x2 + XDP_TXMD_FLAGS_LAUNCH_TIME = 0x4 XDP_TXMD_FLAGS_TIMESTAMP = 0x1 XDP_TX_METADATA = 0x2 XDP_TX_RING = 0x3 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go index 75207613c..1c37f9fbc 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -68,6 +68,7 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + DM_MPATH_PROBE_PATHS = 0xfd12 ECCGETLAYOUT = 0x81484d11 ECCGETSTATS = 0x80104d12 ECHOCTL = 0x200 @@ -360,6 +361,7 @@ const ( SO_OOBINLINE = 0xa SO_PASSCRED = 0x10 SO_PASSPIDFD = 0x4c + SO_PASSRIGHTS = 0x53 SO_PASSSEC = 0x22 SO_PEEK_OFF = 0x2a SO_PEERCRED = 0x11 @@ -372,6 +374,7 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x12 SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 SO_RCVTIMEO = 0x14 SO_RCVTIMEO_NEW = 0x42 SO_RCVTIMEO_OLD = 0x14 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go index c68acda53..6f54d34ae 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -68,6 +68,7 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + DM_MPATH_PROBE_PATHS = 0xfd12 ECCGETLAYOUT = 0x81484d11 ECCGETSTATS = 0x80104d12 ECHOCTL = 0x200 @@ -361,6 +362,7 @@ const ( SO_OOBINLINE = 0xa SO_PASSCRED = 0x10 SO_PASSPIDFD = 0x4c + SO_PASSRIGHTS = 0x53 SO_PASSSEC = 0x22 SO_PEEK_OFF = 0x2a SO_PEERCRED = 0x11 @@ -373,6 +375,7 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x12 SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 SO_RCVTIMEO = 0x14 SO_RCVTIMEO_NEW = 0x42 SO_RCVTIMEO_OLD = 0x14 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go index a8c607ab8..783ec5c12 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go @@ -68,6 +68,7 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + DM_MPATH_PROBE_PATHS = 0xfd12 ECCGETLAYOUT = 0x81484d11 ECCGETSTATS = 0x80104d12 ECHOCTL = 0x200 @@ -366,6 +367,7 @@ const ( SO_OOBINLINE = 0xa SO_PASSCRED = 0x10 SO_PASSPIDFD = 0x4c + SO_PASSRIGHTS = 0x53 SO_PASSSEC = 0x22 SO_PEEK_OFF = 0x2a SO_PEERCRED = 0x11 @@ -378,6 +380,7 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x12 SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 SO_RCVTIMEO = 0x14 SO_RCVTIMEO_NEW = 0x42 SO_RCVTIMEO_OLD = 0x14 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go index 18563dd8d..ca83d3ba1 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -68,6 +68,7 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + DM_MPATH_PROBE_PATHS = 0xfd12 ECCGETLAYOUT = 0x81484d11 ECCGETSTATS = 0x80104d12 ECHOCTL = 0x200 @@ -359,6 +360,7 @@ const ( SO_OOBINLINE = 0xa SO_PASSCRED = 0x10 SO_PASSPIDFD = 0x4c + SO_PASSRIGHTS = 0x53 SO_PASSSEC = 0x22 SO_PEEK_OFF = 0x2a SO_PEERCRED = 0x11 @@ -371,6 +373,7 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x12 SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 SO_RCVTIMEO = 0x14 SO_RCVTIMEO_NEW = 0x42 SO_RCVTIMEO_OLD = 0x14 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go index 22912cdaa..607e611c0 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go @@ -68,6 +68,7 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + DM_MPATH_PROBE_PATHS = 0xfd12 ECCGETLAYOUT = 0x81484d11 ECCGETSTATS = 0x80104d12 ECHOCTL = 0x200 @@ -353,6 +354,7 @@ const ( SO_OOBINLINE = 0xa SO_PASSCRED = 0x10 SO_PASSPIDFD = 0x4c + SO_PASSRIGHTS = 0x53 SO_PASSSEC = 0x22 SO_PEEK_OFF = 0x2a SO_PEERCRED = 0x11 @@ -365,6 +367,7 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x12 SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 SO_RCVTIMEO = 0x14 SO_RCVTIMEO_NEW = 0x42 SO_RCVTIMEO_OLD = 0x14 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go index 29344eb37..b9cb5bd3c 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go @@ -68,6 +68,7 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + DM_MPATH_PROBE_PATHS = 0x2000fd12 ECCGETLAYOUT = 0x41484d11 ECCGETSTATS = 0x40104d12 ECHOCTL = 0x200 @@ -359,6 +360,7 @@ const ( SO_OOBINLINE = 0x100 SO_PASSCRED = 0x11 SO_PASSPIDFD = 0x4c + SO_PASSRIGHTS = 0x53 SO_PASSSEC = 0x22 SO_PEEK_OFF = 0x2a SO_PEERCRED = 0x12 @@ -371,6 +373,7 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x1004 SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 SO_RCVTIMEO = 0x1006 SO_RCVTIMEO_NEW = 0x42 SO_RCVTIMEO_OLD = 0x1006 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go index 20d51fb96..65b078a63 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go @@ -68,6 +68,7 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + DM_MPATH_PROBE_PATHS = 0x2000fd12 ECCGETLAYOUT = 0x41484d11 ECCGETSTATS = 0x40104d12 ECHOCTL = 0x200 @@ -359,6 +360,7 @@ const ( SO_OOBINLINE = 0x100 SO_PASSCRED = 0x11 SO_PASSPIDFD = 0x4c + SO_PASSRIGHTS = 0x53 SO_PASSSEC = 0x22 SO_PEEK_OFF = 0x2a SO_PEERCRED = 0x12 @@ -371,6 +373,7 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x1004 SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 SO_RCVTIMEO = 0x1006 SO_RCVTIMEO_NEW = 0x42 SO_RCVTIMEO_OLD = 0x1006 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go index 321b60902..5298a3033 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go @@ -68,6 +68,7 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + DM_MPATH_PROBE_PATHS = 0x2000fd12 ECCGETLAYOUT = 0x41484d11 ECCGETSTATS = 0x40104d12 ECHOCTL = 0x200 @@ -359,6 +360,7 @@ const ( SO_OOBINLINE = 0x100 SO_PASSCRED = 0x11 SO_PASSPIDFD = 0x4c + SO_PASSRIGHTS = 0x53 SO_PASSSEC = 0x22 SO_PEEK_OFF = 0x2a SO_PEERCRED = 0x12 @@ -371,6 +373,7 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x1004 SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 SO_RCVTIMEO = 0x1006 SO_RCVTIMEO_NEW = 0x42 SO_RCVTIMEO_OLD = 0x1006 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go index 9bacdf1e2..7bc557c87 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go @@ -68,6 +68,7 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + DM_MPATH_PROBE_PATHS = 0x2000fd12 ECCGETLAYOUT = 0x41484d11 ECCGETSTATS = 0x40104d12 ECHOCTL = 0x200 @@ -359,6 +360,7 @@ const ( SO_OOBINLINE = 0x100 SO_PASSCRED = 0x11 SO_PASSPIDFD = 0x4c + SO_PASSRIGHTS = 0x53 SO_PASSSEC = 0x22 SO_PEEK_OFF = 0x2a SO_PEERCRED = 0x12 @@ -371,6 +373,7 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x1004 SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 SO_RCVTIMEO = 0x1006 SO_RCVTIMEO_NEW = 0x42 SO_RCVTIMEO_OLD = 0x1006 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go index c22427261..152399bb0 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go @@ -68,6 +68,7 @@ const ( CS8 = 0x300 CSIZE = 0x300 CSTOPB = 0x400 + DM_MPATH_PROBE_PATHS = 0x2000fd12 ECCGETLAYOUT = 0x41484d11 ECCGETSTATS = 0x40104d12 ECHOCTL = 0x40 @@ -414,6 +415,7 @@ const ( SO_OOBINLINE = 0xa SO_PASSCRED = 0x14 SO_PASSPIDFD = 0x4c + SO_PASSRIGHTS = 0x53 SO_PASSSEC = 0x22 SO_PEEK_OFF = 0x2a SO_PEERCRED = 0x15 @@ -426,6 +428,7 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x10 SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 SO_RCVTIMEO = 0x12 SO_RCVTIMEO_NEW = 0x42 SO_RCVTIMEO_OLD = 0x12 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go index 6270c8ee1..1a1ce2409 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go @@ -68,6 +68,7 @@ const ( CS8 = 0x300 CSIZE = 0x300 CSTOPB = 0x400 + DM_MPATH_PROBE_PATHS = 0x2000fd12 ECCGETLAYOUT = 0x41484d11 ECCGETSTATS = 0x40104d12 ECHOCTL = 0x40 @@ -418,6 +419,7 @@ const ( SO_OOBINLINE = 0xa SO_PASSCRED = 0x14 SO_PASSPIDFD = 0x4c + SO_PASSRIGHTS = 0x53 SO_PASSSEC = 0x22 SO_PEEK_OFF = 0x2a SO_PEERCRED = 0x15 @@ -430,6 +432,7 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x10 SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 SO_RCVTIMEO = 0x12 SO_RCVTIMEO_NEW = 0x42 SO_RCVTIMEO_OLD = 0x12 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go index 9966c1941..4231a1fb5 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go @@ -68,6 +68,7 @@ const ( CS8 = 0x300 CSIZE = 0x300 CSTOPB = 0x400 + DM_MPATH_PROBE_PATHS = 0x2000fd12 ECCGETLAYOUT = 0x41484d11 ECCGETSTATS = 0x40104d12 ECHOCTL = 0x40 @@ -418,6 +419,7 @@ const ( SO_OOBINLINE = 0xa SO_PASSCRED = 0x14 SO_PASSPIDFD = 0x4c + SO_PASSRIGHTS = 0x53 SO_PASSSEC = 0x22 SO_PEEK_OFF = 0x2a SO_PEERCRED = 0x15 @@ -430,6 +432,7 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x10 SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 SO_RCVTIMEO = 0x12 SO_RCVTIMEO_NEW = 0x42 SO_RCVTIMEO_OLD = 0x12 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go index 848e5fcc4..21c0e9526 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go @@ -68,6 +68,7 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + DM_MPATH_PROBE_PATHS = 0xfd12 ECCGETLAYOUT = 0x81484d11 ECCGETSTATS = 0x80104d12 ECHOCTL = 0x200 @@ -350,6 +351,7 @@ const ( SO_OOBINLINE = 0xa SO_PASSCRED = 0x10 SO_PASSPIDFD = 0x4c + SO_PASSRIGHTS = 0x53 SO_PASSSEC = 0x22 SO_PEEK_OFF = 0x2a SO_PEERCRED = 0x11 @@ -362,6 +364,7 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x12 SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 SO_RCVTIMEO = 0x14 SO_RCVTIMEO_NEW = 0x42 SO_RCVTIMEO_OLD = 0x14 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go index 669b2adb8..f00d1cd7c 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go @@ -68,6 +68,7 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + DM_MPATH_PROBE_PATHS = 0xfd12 ECCGETLAYOUT = 0x81484d11 ECCGETSTATS = 0x80104d12 ECHOCTL = 0x200 @@ -422,6 +423,7 @@ const ( SO_OOBINLINE = 0xa SO_PASSCRED = 0x10 SO_PASSPIDFD = 0x4c + SO_PASSRIGHTS = 0x53 SO_PASSSEC = 0x22 SO_PEEK_OFF = 0x2a SO_PEERCRED = 0x11 @@ -434,6 +436,7 @@ const ( SO_RCVBUFFORCE = 0x21 SO_RCVLOWAT = 0x12 SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 SO_RCVTIMEO = 0x14 SO_RCVTIMEO_NEW = 0x42 SO_RCVTIMEO_OLD = 0x14 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go index 4834e5751..bc8d539e6 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go @@ -71,6 +71,7 @@ const ( CS8 = 0x30 CSIZE = 0x30 CSTOPB = 0x40 + DM_MPATH_PROBE_PATHS = 0x2000fd12 ECCGETLAYOUT = 0x41484d11 ECCGETSTATS = 0x40104d12 ECHOCTL = 0x200 @@ -461,6 +462,7 @@ const ( SO_OOBINLINE = 0x100 SO_PASSCRED = 0x2 SO_PASSPIDFD = 0x55 + SO_PASSRIGHTS = 0x5c SO_PASSSEC = 0x1f SO_PEEK_OFF = 0x26 SO_PEERCRED = 0x40 @@ -473,6 +475,7 @@ const ( SO_RCVBUFFORCE = 0x100b SO_RCVLOWAT = 0x800 SO_RCVMARK = 0x54 + SO_RCVPRIORITY = 0x5b SO_RCVTIMEO = 0x2000 SO_RCVTIMEO_NEW = 0x44 SO_RCVTIMEO_OLD = 0x2000 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go index 5cc1e8eb2..8935d10a3 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go @@ -2238,3 +2238,13 @@ func Mseal(b []byte, flags uint) (err error) { } return } + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setMemPolicy(mode int, mask *CPUSet, size int) (err error) { + _, _, e1 := Syscall(SYS_SET_MEMPOLICY, uintptr(mode), uintptr(unsafe.Pointer(mask)), uintptr(size)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go index c6545413c..b4609c20c 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go @@ -72,7 +72,7 @@ import ( //go:cgo_import_dynamic libc_kill kill "libc.so" //go:cgo_import_dynamic libc_lchown lchown "libc.so" //go:cgo_import_dynamic libc_link link "libc.so" -//go:cgo_import_dynamic libc___xnet_llisten __xnet_llisten "libsocket.so" +//go:cgo_import_dynamic libc___xnet_listen __xnet_listen "libsocket.so" //go:cgo_import_dynamic libc_lstat lstat "libc.so" //go:cgo_import_dynamic libc_madvise madvise "libc.so" //go:cgo_import_dynamic libc_mkdir mkdir "libc.so" @@ -221,7 +221,7 @@ import ( //go:linkname procKill libc_kill //go:linkname procLchown libc_lchown //go:linkname procLink libc_link -//go:linkname proc__xnet_llisten libc___xnet_llisten +//go:linkname proc__xnet_listen libc___xnet_listen //go:linkname procLstat libc_lstat //go:linkname procMadvise libc_madvise //go:linkname procMkdir libc_mkdir @@ -371,7 +371,7 @@ var ( procKill, procLchown, procLink, - proc__xnet_llisten, + proc__xnet_listen, procLstat, procMadvise, procMkdir, @@ -1178,7 +1178,7 @@ func Link(path string, link string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Listen(s int, backlog int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_llisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0) + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_listen)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go index c79aaff30..aca56ee49 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go @@ -462,4 +462,5 @@ const ( SYS_GETXATTRAT = 464 SYS_LISTXATTRAT = 465 SYS_REMOVEXATTRAT = 466 + SYS_OPEN_TREE_ATTR = 467 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go index 5eb450695..2ea1ef58c 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go @@ -385,4 +385,5 @@ const ( SYS_GETXATTRAT = 464 SYS_LISTXATTRAT = 465 SYS_REMOVEXATTRAT = 466 + SYS_OPEN_TREE_ATTR = 467 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go index 05e502974..d22c8af31 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go @@ -426,4 +426,5 @@ const ( SYS_GETXATTRAT = 464 SYS_LISTXATTRAT = 465 SYS_REMOVEXATTRAT = 466 + SYS_OPEN_TREE_ATTR = 467 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go index 38c53ec51..5ee264ae9 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go @@ -329,4 +329,5 @@ const ( SYS_GETXATTRAT = 464 SYS_LISTXATTRAT = 465 SYS_REMOVEXATTRAT = 466 + SYS_OPEN_TREE_ATTR = 467 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go index 31d2e71a1..f9f03ebf5 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go @@ -325,4 +325,5 @@ const ( SYS_GETXATTRAT = 464 SYS_LISTXATTRAT = 465 SYS_REMOVEXATTRAT = 466 + SYS_OPEN_TREE_ATTR = 467 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go index f4184a336..87c2118e8 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go @@ -446,4 +446,5 @@ const ( SYS_GETXATTRAT = 4464 SYS_LISTXATTRAT = 4465 SYS_REMOVEXATTRAT = 4466 + SYS_OPEN_TREE_ATTR = 4467 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go index 05b996227..391ad102f 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go @@ -376,4 +376,5 @@ const ( SYS_GETXATTRAT = 5464 SYS_LISTXATTRAT = 5465 SYS_REMOVEXATTRAT = 5466 + SYS_OPEN_TREE_ATTR = 5467 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go index 43a256e9e..565615775 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go @@ -376,4 +376,5 @@ const ( SYS_GETXATTRAT = 5464 SYS_LISTXATTRAT = 5465 SYS_REMOVEXATTRAT = 5466 + SYS_OPEN_TREE_ATTR = 5467 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go index eea5ddfc2..0482b52e3 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go @@ -446,4 +446,5 @@ const ( SYS_GETXATTRAT = 4464 SYS_LISTXATTRAT = 4465 SYS_REMOVEXATTRAT = 4466 + SYS_OPEN_TREE_ATTR = 4467 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go index 0d777bfbb..71806f08f 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go @@ -453,4 +453,5 @@ const ( SYS_GETXATTRAT = 464 SYS_LISTXATTRAT = 465 SYS_REMOVEXATTRAT = 466 + SYS_OPEN_TREE_ATTR = 467 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go index b44636502..e35a71058 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go @@ -425,4 +425,5 @@ const ( SYS_GETXATTRAT = 464 SYS_LISTXATTRAT = 465 SYS_REMOVEXATTRAT = 466 + SYS_OPEN_TREE_ATTR = 467 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go index 0c7d21c18..2aea47670 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go @@ -425,4 +425,5 @@ const ( SYS_GETXATTRAT = 464 SYS_LISTXATTRAT = 465 SYS_REMOVEXATTRAT = 466 + SYS_OPEN_TREE_ATTR = 467 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go index 840539169..6c9bb4e56 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go @@ -330,4 +330,5 @@ const ( SYS_GETXATTRAT = 464 SYS_LISTXATTRAT = 465 SYS_REMOVEXATTRAT = 466 + SYS_OPEN_TREE_ATTR = 467 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go index fcf1b790d..680bc9915 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go @@ -391,4 +391,5 @@ const ( SYS_GETXATTRAT = 464 SYS_LISTXATTRAT = 465 SYS_REMOVEXATTRAT = 466 + SYS_OPEN_TREE_ATTR = 467 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go index 52d15b5f9..620f27105 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go @@ -404,4 +404,5 @@ const ( SYS_GETXATTRAT = 464 SYS_LISTXATTRAT = 465 SYS_REMOVEXATTRAT = 466 + SYS_OPEN_TREE_ATTR = 467 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go index a46abe647..c1a467017 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -114,8 +114,10 @@ type Statx_t struct { Atomic_write_unit_min uint32 Atomic_write_unit_max uint32 Atomic_write_segments_max uint32 + Dio_read_offset_align uint32 + Atomic_write_unit_max_opt uint32 _ [1]uint32 - _ [9]uint64 + _ [8]uint64 } type Fsid struct { @@ -199,7 +201,8 @@ type FscryptAddKeyArg struct { Key_spec FscryptKeySpecifier Raw_size uint32 Key_id uint32 - _ [8]uint32 + Flags uint32 + _ [7]uint32 } type FscryptRemoveKeyArg struct { @@ -629,6 +632,8 @@ const ( IFA_FLAGS = 0x8 IFA_RT_PRIORITY = 0x9 IFA_TARGET_NETNSID = 0xa + IFAL_LABEL = 0x2 + IFAL_ADDRESS = 0x1 RT_SCOPE_UNIVERSE = 0x0 RT_SCOPE_SITE = 0xc8 RT_SCOPE_LINK = 0xfd @@ -686,6 +691,7 @@ const ( SizeofRtAttr = 0x4 SizeofIfInfomsg = 0x10 SizeofIfAddrmsg = 0x8 + SizeofIfAddrlblmsg = 0xc SizeofIfaCacheinfo = 0x10 SizeofRtMsg = 0xc SizeofRtNexthop = 0x8 @@ -737,6 +743,15 @@ type IfAddrmsg struct { Index uint32 } +type IfAddrlblmsg struct { + Family uint8 + _ uint8 + Prefixlen uint8 + Flags uint8 + Index uint32 + Seq uint32 +} + type IfaCacheinfo struct { Prefered uint32 Valid uint32 @@ -2226,8 +2241,11 @@ const ( NFT_PAYLOAD_LL_HEADER = 0x0 NFT_PAYLOAD_NETWORK_HEADER = 0x1 NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 + NFT_PAYLOAD_INNER_HEADER = 0x3 + NFT_PAYLOAD_TUN_HEADER = 0x4 NFT_PAYLOAD_CSUM_NONE = 0x0 NFT_PAYLOAD_CSUM_INET = 0x1 + NFT_PAYLOAD_CSUM_SCTP = 0x2 NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 NFTA_PAYLOAD_UNSPEC = 0x0 NFTA_PAYLOAD_DREG = 0x1 @@ -2314,6 +2332,11 @@ const ( NFT_CT_AVGPKT = 0x10 NFT_CT_ZONE = 0x11 NFT_CT_EVENTMASK = 0x12 + NFT_CT_SRC_IP = 0x13 + NFT_CT_DST_IP = 0x14 + NFT_CT_SRC_IP6 = 0x15 + NFT_CT_DST_IP6 = 0x16 + NFT_CT_ID = 0x17 NFTA_CT_UNSPEC = 0x0 NFTA_CT_DREG = 0x1 NFTA_CT_KEY = 0x2 @@ -2594,8 +2617,8 @@ const ( SOF_TIMESTAMPING_BIND_PHC = 0x8000 SOF_TIMESTAMPING_OPT_ID_TCP = 0x10000 - SOF_TIMESTAMPING_LAST = 0x20000 - SOF_TIMESTAMPING_MASK = 0x3ffff + SOF_TIMESTAMPING_LAST = 0x40000 + SOF_TIMESTAMPING_MASK = 0x7ffff SCM_TSTAMP_SND = 0x0 SCM_TSTAMP_SCHED = 0x1 @@ -3041,6 +3064,23 @@ const ( ) const ( + TCA_UNSPEC = 0x0 + TCA_KIND = 0x1 + TCA_OPTIONS = 0x2 + TCA_STATS = 0x3 + TCA_XSTATS = 0x4 + TCA_RATE = 0x5 + TCA_FCNT = 0x6 + TCA_STATS2 = 0x7 + TCA_STAB = 0x8 + TCA_PAD = 0x9 + TCA_DUMP_INVISIBLE = 0xa + TCA_CHAIN = 0xb + TCA_HW_OFFLOAD = 0xc + TCA_INGRESS_BLOCK = 0xd + TCA_EGRESS_BLOCK = 0xe + TCA_DUMP_FLAGS = 0xf + TCA_EXT_WARN_MSG = 0x10 RTNLGRP_NONE = 0x0 RTNLGRP_LINK = 0x1 RTNLGRP_NOTIFY = 0x2 @@ -3075,6 +3115,18 @@ const ( RTNLGRP_IPV6_MROUTE_R = 0x1f RTNLGRP_NEXTHOP = 0x20 RTNLGRP_BRVLAN = 0x21 + RTNLGRP_MCTP_IFADDR = 0x22 + RTNLGRP_TUNNEL = 0x23 + RTNLGRP_STATS = 0x24 + RTNLGRP_IPV4_MCADDR = 0x25 + RTNLGRP_IPV6_MCADDR = 0x26 + RTNLGRP_IPV6_ACADDR = 0x27 + TCA_ROOT_UNSPEC = 0x0 + TCA_ROOT_TAB = 0x1 + TCA_ROOT_FLAGS = 0x2 + TCA_ROOT_COUNT = 0x3 + TCA_ROOT_TIME_DELTA = 0x4 + TCA_ROOT_EXT_WARN_MSG = 0x5 ) type CapUserHeader struct { @@ -3538,6 +3590,8 @@ type Nhmsg struct { Flags uint32 } +const SizeofNhmsg = 0x8 + type NexthopGrp struct { Id uint32 Weight uint8 @@ -3545,6 +3599,8 @@ type NexthopGrp struct { Resvd2 uint16 } +const SizeofNexthopGrp = 0x8 + const ( NHA_UNSPEC = 0x0 NHA_ID = 0x1 @@ -3802,7 +3858,16 @@ const ( ETHTOOL_MSG_PSE_GET = 0x24 ETHTOOL_MSG_PSE_SET = 0x25 ETHTOOL_MSG_RSS_GET = 0x26 - ETHTOOL_MSG_USER_MAX = 0x2d + ETHTOOL_MSG_PLCA_GET_CFG = 0x27 + ETHTOOL_MSG_PLCA_SET_CFG = 0x28 + ETHTOOL_MSG_PLCA_GET_STATUS = 0x29 + ETHTOOL_MSG_MM_GET = 0x2a + ETHTOOL_MSG_MM_SET = 0x2b + ETHTOOL_MSG_MODULE_FW_FLASH_ACT = 0x2c + ETHTOOL_MSG_PHY_GET = 0x2d + ETHTOOL_MSG_TSCONFIG_GET = 0x2e + ETHTOOL_MSG_TSCONFIG_SET = 0x2f + ETHTOOL_MSG_USER_MAX = 0x2f ETHTOOL_MSG_KERNEL_NONE = 0x0 ETHTOOL_MSG_STRSET_GET_REPLY = 0x1 ETHTOOL_MSG_LINKINFO_GET_REPLY = 0x2 @@ -3842,7 +3907,17 @@ const ( ETHTOOL_MSG_MODULE_NTF = 0x24 ETHTOOL_MSG_PSE_GET_REPLY = 0x25 ETHTOOL_MSG_RSS_GET_REPLY = 0x26 - ETHTOOL_MSG_KERNEL_MAX = 0x2e + ETHTOOL_MSG_PLCA_GET_CFG_REPLY = 0x27 + ETHTOOL_MSG_PLCA_GET_STATUS_REPLY = 0x28 + ETHTOOL_MSG_PLCA_NTF = 0x29 + ETHTOOL_MSG_MM_GET_REPLY = 0x2a + ETHTOOL_MSG_MM_NTF = 0x2b + ETHTOOL_MSG_MODULE_FW_FLASH_NTF = 0x2c + ETHTOOL_MSG_PHY_GET_REPLY = 0x2d + ETHTOOL_MSG_PHY_NTF = 0x2e + ETHTOOL_MSG_TSCONFIG_GET_REPLY = 0x2f + ETHTOOL_MSG_TSCONFIG_SET_REPLY = 0x30 + ETHTOOL_MSG_KERNEL_MAX = 0x30 ETHTOOL_FLAG_COMPACT_BITSETS = 0x1 ETHTOOL_FLAG_OMIT_REPLY = 0x2 ETHTOOL_FLAG_STATS = 0x4 @@ -3949,7 +4024,12 @@ const ( ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 0xb ETHTOOL_A_RINGS_CQE_SIZE = 0xc ETHTOOL_A_RINGS_TX_PUSH = 0xd - ETHTOOL_A_RINGS_MAX = 0x10 + ETHTOOL_A_RINGS_RX_PUSH = 0xe + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 0xf + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 0x10 + ETHTOOL_A_RINGS_HDS_THRESH = 0x11 + ETHTOOL_A_RINGS_HDS_THRESH_MAX = 0x12 + ETHTOOL_A_RINGS_MAX = 0x12 ETHTOOL_A_CHANNELS_UNSPEC = 0x0 ETHTOOL_A_CHANNELS_HEADER = 0x1 ETHTOOL_A_CHANNELS_RX_MAX = 0x2 @@ -4015,7 +4095,9 @@ const ( ETHTOOL_A_TSINFO_TX_TYPES = 0x3 ETHTOOL_A_TSINFO_RX_FILTERS = 0x4 ETHTOOL_A_TSINFO_PHC_INDEX = 0x5 - ETHTOOL_A_TSINFO_MAX = 0x6 + ETHTOOL_A_TSINFO_STATS = 0x6 + ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER = 0x7 + ETHTOOL_A_TSINFO_MAX = 0x9 ETHTOOL_A_CABLE_TEST_UNSPEC = 0x0 ETHTOOL_A_CABLE_TEST_HEADER = 0x1 ETHTOOL_A_CABLE_TEST_MAX = 0x1 @@ -4101,6 +4183,19 @@ const ( ETHTOOL_A_TUNNEL_INFO_MAX = 0x2 ) +const ( + TCP_V4_FLOW = 0x1 + UDP_V4_FLOW = 0x2 + TCP_V6_FLOW = 0x5 + UDP_V6_FLOW = 0x6 + ESP_V4_FLOW = 0xa + ESP_V6_FLOW = 0xc + IP_USER_FLOW = 0xd + IPV6_USER_FLOW = 0xe + IPV6_FLOW = 0x11 + ETHER_FLOW = 0x12 +) + const SPEED_UNKNOWN = -0x1 type EthtoolDrvinfo struct { @@ -4613,6 +4708,7 @@ const ( NL80211_ATTR_AKM_SUITES = 0x4c NL80211_ATTR_AP_ISOLATE = 0x60 NL80211_ATTR_AP_SETTINGS_FLAGS = 0x135 + NL80211_ATTR_ASSOC_SPP_AMSDU = 0x14a NL80211_ATTR_AUTH_DATA = 0x9c NL80211_ATTR_AUTH_TYPE = 0x35 NL80211_ATTR_BANDS = 0xef @@ -4623,6 +4719,7 @@ const ( NL80211_ATTR_BSS_BASIC_RATES = 0x24 NL80211_ATTR_BSS = 0x2f NL80211_ATTR_BSS_CTS_PROT = 0x1c + NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA = 0x147 NL80211_ATTR_BSS_HT_OPMODE = 0x6d NL80211_ATTR_BSSID = 0xf5 NL80211_ATTR_BSS_SELECT = 0xe3 @@ -4682,6 +4779,7 @@ const ( NL80211_ATTR_DTIM_PERIOD = 0xd NL80211_ATTR_DURATION = 0x57 NL80211_ATTR_EHT_CAPABILITY = 0x136 + NL80211_ATTR_EMA_RNR_ELEMS = 0x145 NL80211_ATTR_EML_CAPABILITY = 0x13d NL80211_ATTR_EXT_CAPA = 0xa9 NL80211_ATTR_EXT_CAPA_MASK = 0xaa @@ -4717,6 +4815,7 @@ const ( NL80211_ATTR_HIDDEN_SSID = 0x7e NL80211_ATTR_HT_CAPABILITY = 0x1f NL80211_ATTR_HT_CAPABILITY_MASK = 0x94 + NL80211_ATTR_HW_TIMESTAMP_ENABLED = 0x144 NL80211_ATTR_IE_ASSOC_RESP = 0x80 NL80211_ATTR_IE = 0x2a NL80211_ATTR_IE_PROBE_RESP = 0x7f @@ -4747,9 +4846,10 @@ const ( NL80211_ATTR_MAC_HINT = 0xc8 NL80211_ATTR_MAC_MASK = 0xd7 NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca - NL80211_ATTR_MAX = 0x14d + NL80211_ATTR_MAX = 0x151 NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4 NL80211_ATTR_MAX_CSA_COUNTERS = 0xce + NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS = 0x143 NL80211_ATTR_MAX_MATCH_SETS = 0x85 NL80211_ATTR_MAX_NUM_AKM_SUITES = 0x13c NL80211_ATTR_MAX_NUM_PMKIDS = 0x56 @@ -4774,9 +4874,12 @@ const ( NL80211_ATTR_MGMT_SUBTYPE = 0x29 NL80211_ATTR_MLD_ADDR = 0x13a NL80211_ATTR_MLD_CAPA_AND_OPS = 0x13e + NL80211_ATTR_MLO_LINK_DISABLED = 0x146 NL80211_ATTR_MLO_LINK_ID = 0x139 NL80211_ATTR_MLO_LINKS = 0x138 NL80211_ATTR_MLO_SUPPORT = 0x13b + NL80211_ATTR_MLO_TTLM_DLINK = 0x148 + NL80211_ATTR_MLO_TTLM_ULINK = 0x149 NL80211_ATTR_MNTR_FLAGS = 0x17 NL80211_ATTR_MPATH_INFO = 0x1b NL80211_ATTR_MPATH_NEXT_HOP = 0x1a @@ -4809,12 +4912,14 @@ const ( NL80211_ATTR_PORT_AUTHORIZED = 0x103 NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN = 0x5 NL80211_ATTR_POWER_RULE_MAX_EIRP = 0x6 + NL80211_ATTR_POWER_RULE_PSD = 0x8 NL80211_ATTR_PREV_BSSID = 0x4f NL80211_ATTR_PRIVACY = 0x46 NL80211_ATTR_PROBE_RESP = 0x91 NL80211_ATTR_PROBE_RESP_OFFLOAD = 0x90 NL80211_ATTR_PROTOCOL_FEATURES = 0xad NL80211_ATTR_PS_STATE = 0x5d + NL80211_ATTR_PUNCT_BITMAP = 0x142 NL80211_ATTR_QOS_MAP = 0xc7 NL80211_ATTR_RADAR_BACKGROUND = 0x134 NL80211_ATTR_RADAR_EVENT = 0xa8 @@ -4943,7 +5048,9 @@ const ( NL80211_ATTR_WIPHY_FREQ = 0x26 NL80211_ATTR_WIPHY_FREQ_HINT = 0xc9 NL80211_ATTR_WIPHY_FREQ_OFFSET = 0x122 + NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS = 0x14c NL80211_ATTR_WIPHY_NAME = 0x2 + NL80211_ATTR_WIPHY_RADIOS = 0x14b NL80211_ATTR_WIPHY_RETRY_LONG = 0x3e NL80211_ATTR_WIPHY_RETRY_SHORT = 0x3d NL80211_ATTR_WIPHY_RTS_THRESHOLD = 0x40 @@ -4978,6 +5085,8 @@ const ( NL80211_BAND_ATTR_IFTYPE_DATA = 0x9 NL80211_BAND_ATTR_MAX = 0xd NL80211_BAND_ATTR_RATES = 0x2 + NL80211_BAND_ATTR_S1G_CAPA = 0xd + NL80211_BAND_ATTR_S1G_MCS_NSS_SET = 0xc NL80211_BAND_ATTR_VHT_CAPA = 0x8 NL80211_BAND_ATTR_VHT_MCS_SET = 0x7 NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC = 0x8 @@ -5001,6 +5110,10 @@ const ( NL80211_BSS_BEACON_INTERVAL = 0x4 NL80211_BSS_BEACON_TSF = 0xd NL80211_BSS_BSSID = 0x1 + NL80211_BSS_CANNOT_USE_6GHZ_PWR_MISMATCH = 0x2 + NL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY = 0x1 + NL80211_BSS_CANNOT_USE_REASONS = 0x18 + NL80211_BSS_CANNOT_USE_UHB_PWR_MISMATCH = 0x2 NL80211_BSS_CAPABILITY = 0x5 NL80211_BSS_CHAIN_SIGNAL = 0x13 NL80211_BSS_CHAN_WIDTH_10 = 0x1 @@ -5032,6 +5145,9 @@ const ( NL80211_BSS_STATUS = 0x9 NL80211_BSS_STATUS_IBSS_JOINED = 0x2 NL80211_BSS_TSF = 0x3 + NL80211_BSS_USE_FOR = 0x17 + NL80211_BSS_USE_FOR_MLD_LINK = 0x2 + NL80211_BSS_USE_FOR_NORMAL = 0x1 NL80211_CHAN_HT20 = 0x1 NL80211_CHAN_HT40MINUS = 0x2 NL80211_CHAN_HT40PLUS = 0x3 @@ -5117,7 +5233,8 @@ const ( NL80211_CMD_LEAVE_IBSS = 0x2c NL80211_CMD_LEAVE_MESH = 0x45 NL80211_CMD_LEAVE_OCB = 0x6d - NL80211_CMD_MAX = 0x9b + NL80211_CMD_LINKS_REMOVED = 0x9a + NL80211_CMD_MAX = 0x9d NL80211_CMD_MICHAEL_MIC_FAILURE = 0x29 NL80211_CMD_MODIFY_LINK_STA = 0x97 NL80211_CMD_NAN_MATCH = 0x78 @@ -5161,6 +5278,7 @@ const ( NL80211_CMD_SET_COALESCE = 0x65 NL80211_CMD_SET_CQM = 0x3f NL80211_CMD_SET_FILS_AAD = 0x92 + NL80211_CMD_SET_HW_TIMESTAMP = 0x99 NL80211_CMD_SET_INTERFACE = 0x6 NL80211_CMD_SET_KEY = 0xa NL80211_CMD_SET_MAC_ACL = 0x5d @@ -5180,6 +5298,7 @@ const ( NL80211_CMD_SET_SAR_SPECS = 0x8c NL80211_CMD_SET_STATION = 0x12 NL80211_CMD_SET_TID_CONFIG = 0x89 + NL80211_CMD_SET_TID_TO_LINK_MAPPING = 0x9b NL80211_CMD_SET_TX_BITRATE_MASK = 0x39 NL80211_CMD_SET_WDS_PEER = 0x42 NL80211_CMD_SET_WIPHY = 0x2 @@ -5247,6 +5366,7 @@ const ( NL80211_EXT_FEATURE_AIRTIME_FAIRNESS = 0x21 NL80211_EXT_FEATURE_AP_PMKSA_CACHING = 0x22 NL80211_EXT_FEATURE_AQL = 0x28 + NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA = 0x40 NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT = 0x2e NL80211_EXT_FEATURE_BEACON_PROTECTION = 0x29 NL80211_EXT_FEATURE_BEACON_RATE_HE = 0x36 @@ -5262,6 +5382,7 @@ const ( NL80211_EXT_FEATURE_CQM_RSSI_LIST = 0xd NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT = 0x1b NL80211_EXT_FEATURE_DEL_IBSS_STA = 0x2c + NL80211_EXT_FEATURE_DFS_CONCURRENT = 0x43 NL80211_EXT_FEATURE_DFS_OFFLOAD = 0x19 NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 0x20 NL80211_EXT_FEATURE_EXT_KEY_ID = 0x24 @@ -5281,9 +5402,12 @@ const ( NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 0x14 NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE = 0x13 NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION = 0x31 + NL80211_EXT_FEATURE_OWE_OFFLOAD_AP = 0x42 + NL80211_EXT_FEATURE_OWE_OFFLOAD = 0x41 NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE = 0x3d NL80211_EXT_FEATURE_PROTECTED_TWT = 0x2b NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 0x39 + NL80211_EXT_FEATURE_PUNCT = 0x3e NL80211_EXT_FEATURE_RADAR_BACKGROUND = 0x3c NL80211_EXT_FEATURE_RRM = 0x1 NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 0x33 @@ -5295,8 +5419,10 @@ const ( NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 0x23 NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI = 0xc NL80211_EXT_FEATURE_SECURE_LTF = 0x37 + NL80211_EXT_FEATURE_SECURE_NAN = 0x3f NL80211_EXT_FEATURE_SECURE_RTT = 0x38 NL80211_EXT_FEATURE_SET_SCAN_DWELL = 0x5 + NL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT = 0x44 NL80211_EXT_FEATURE_STA_TX_PWR = 0x25 NL80211_EXT_FEATURE_TXQS = 0x1c NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP = 0x35 @@ -5343,7 +5469,10 @@ const ( NL80211_FREQUENCY_ATTR_2MHZ = 0x16 NL80211_FREQUENCY_ATTR_4MHZ = 0x17 NL80211_FREQUENCY_ATTR_8MHZ = 0x18 + NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP = 0x21 + NL80211_FREQUENCY_ATTR_CAN_MONITOR = 0x20 NL80211_FREQUENCY_ATTR_DFS_CAC_TIME = 0xd + NL80211_FREQUENCY_ATTR_DFS_CONCURRENT = 0x1d NL80211_FREQUENCY_ATTR_DFS_STATE = 0x7 NL80211_FREQUENCY_ATTR_DFS_TIME = 0x8 NL80211_FREQUENCY_ATTR_DISABLED = 0x2 @@ -5351,12 +5480,14 @@ const ( NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf - NL80211_FREQUENCY_ATTR_MAX = 0x21 + NL80211_FREQUENCY_ATTR_MAX = 0x22 NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6 NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc NL80211_FREQUENCY_ATTR_NO_20MHZ = 0x10 NL80211_FREQUENCY_ATTR_NO_320MHZ = 0x1a + NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT = 0x1f + NL80211_FREQUENCY_ATTR_NO_6GHZ_VLP_CLIENT = 0x1e NL80211_FREQUENCY_ATTR_NO_80MHZ = 0xb NL80211_FREQUENCY_ATTR_NO_EHT = 0x1b NL80211_FREQUENCY_ATTR_NO_HE = 0x13 @@ -5364,8 +5495,11 @@ const ( NL80211_FREQUENCY_ATTR_NO_HT40_PLUS = 0xa NL80211_FREQUENCY_ATTR_NO_IBSS = 0x3 NL80211_FREQUENCY_ATTR_NO_IR = 0x3 + NL80211_FREQUENCY_ATTR_NO_UHB_AFC_CLIENT = 0x1f + NL80211_FREQUENCY_ATTR_NO_UHB_VLP_CLIENT = 0x1e NL80211_FREQUENCY_ATTR_OFFSET = 0x14 NL80211_FREQUENCY_ATTR_PASSIVE_SCAN = 0x3 + NL80211_FREQUENCY_ATTR_PSD = 0x1c NL80211_FREQUENCY_ATTR_RADAR = 0x5 NL80211_FREQUENCY_ATTR_WMM = 0x12 NL80211_FTM_RESP_ATTR_CIVICLOC = 0x3 @@ -5430,6 +5564,7 @@ const ( NL80211_IFTYPE_STATION = 0x2 NL80211_IFTYPE_UNSPECIFIED = 0x0 NL80211_IFTYPE_WDS = 0x5 + NL80211_KCK_EXT_LEN_32 = 0x20 NL80211_KCK_EXT_LEN = 0x18 NL80211_KCK_LEN = 0x10 NL80211_KEK_EXT_LEN = 0x20 @@ -5458,9 +5593,10 @@ const ( NL80211_MAX_SUPP_HT_RATES = 0x4d NL80211_MAX_SUPP_RATES = 0x20 NL80211_MAX_SUPP_REG_RULES = 0x80 + NL80211_MAX_SUPP_SELECTORS = 0x80 NL80211_MBSSID_CONFIG_ATTR_EMA = 0x5 NL80211_MBSSID_CONFIG_ATTR_INDEX = 0x3 - NL80211_MBSSID_CONFIG_ATTR_MAX = 0x5 + NL80211_MBSSID_CONFIG_ATTR_MAX = 0x6 NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY = 0x2 NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES = 0x1 NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX = 0x4 @@ -5703,11 +5839,16 @@ const ( NL80211_RADAR_PRE_CAC_EXPIRED = 0x4 NL80211_RATE_INFO_10_MHZ_WIDTH = 0xb NL80211_RATE_INFO_160_MHZ_WIDTH = 0xa + NL80211_RATE_INFO_16_MHZ_WIDTH = 0x1d + NL80211_RATE_INFO_1_MHZ_WIDTH = 0x19 + NL80211_RATE_INFO_2_MHZ_WIDTH = 0x1a NL80211_RATE_INFO_320_MHZ_WIDTH = 0x12 NL80211_RATE_INFO_40_MHZ_WIDTH = 0x3 + NL80211_RATE_INFO_4_MHZ_WIDTH = 0x1b NL80211_RATE_INFO_5_MHZ_WIDTH = 0xc NL80211_RATE_INFO_80_MHZ_WIDTH = 0x8 NL80211_RATE_INFO_80P80_MHZ_WIDTH = 0x9 + NL80211_RATE_INFO_8_MHZ_WIDTH = 0x1c NL80211_RATE_INFO_BITRATE32 = 0x5 NL80211_RATE_INFO_BITRATE = 0x1 NL80211_RATE_INFO_EHT_GI_0_8 = 0x0 @@ -5753,6 +5894,8 @@ const ( NL80211_RATE_INFO_HE_RU_ALLOC = 0x11 NL80211_RATE_INFO_MAX = 0x1d NL80211_RATE_INFO_MCS = 0x2 + NL80211_RATE_INFO_S1G_MCS = 0x17 + NL80211_RATE_INFO_S1G_NSS = 0x18 NL80211_RATE_INFO_SHORT_GI = 0x4 NL80211_RATE_INFO_VHT_MCS = 0x6 NL80211_RATE_INFO_VHT_NSS = 0x7 @@ -5770,14 +5913,19 @@ const ( NL80211_REKEY_DATA_KEK = 0x1 NL80211_REKEY_DATA_REPLAY_CTR = 0x3 NL80211_REPLAY_CTR_LEN = 0x8 + NL80211_RRF_ALLOW_6GHZ_VLP_AP = 0x1000000 NL80211_RRF_AUTO_BW = 0x800 NL80211_RRF_DFS = 0x10 + NL80211_RRF_DFS_CONCURRENT = 0x200000 NL80211_RRF_GO_CONCURRENT = 0x1000 NL80211_RRF_IR_CONCURRENT = 0x1000 NL80211_RRF_NO_160MHZ = 0x10000 NL80211_RRF_NO_320MHZ = 0x40000 + NL80211_RRF_NO_6GHZ_AFC_CLIENT = 0x800000 + NL80211_RRF_NO_6GHZ_VLP_CLIENT = 0x400000 NL80211_RRF_NO_80MHZ = 0x8000 NL80211_RRF_NO_CCK = 0x2 + NL80211_RRF_NO_EHT = 0x80000 NL80211_RRF_NO_HE = 0x20000 NL80211_RRF_NO_HT40 = 0x6000 NL80211_RRF_NO_HT40MINUS = 0x2000 @@ -5788,7 +5936,10 @@ const ( NL80211_RRF_NO_IR = 0x80 NL80211_RRF_NO_OFDM = 0x1 NL80211_RRF_NO_OUTDOOR = 0x8 + NL80211_RRF_NO_UHB_AFC_CLIENT = 0x800000 + NL80211_RRF_NO_UHB_VLP_CLIENT = 0x400000 NL80211_RRF_PASSIVE_SCAN = 0x80 + NL80211_RRF_PSD = 0x100000 NL80211_RRF_PTMP_ONLY = 0x40 NL80211_RRF_PTP_ONLY = 0x20 NL80211_RXMGMT_FLAG_ANSWERED = 0x1 @@ -5849,6 +6000,7 @@ const ( NL80211_STA_FLAG_MAX_OLD_API = 0x6 NL80211_STA_FLAG_MFP = 0x4 NL80211_STA_FLAG_SHORT_PREAMBLE = 0x2 + NL80211_STA_FLAG_SPP_AMSDU = 0x8 NL80211_STA_FLAG_TDLS_PEER = 0x6 NL80211_STA_FLAG_WME = 0x3 NL80211_STA_INFO_ACK_SIGNAL_AVG = 0x23 @@ -6007,6 +6159,13 @@ const ( NL80211_VHT_CAPABILITY_LEN = 0xc NL80211_VHT_NSS_MAX = 0x8 NL80211_WIPHY_NAME_MAXLEN = 0x40 + NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE = 0x2 + NL80211_WIPHY_RADIO_ATTR_INDEX = 0x1 + NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION = 0x3 + NL80211_WIPHY_RADIO_ATTR_MAX = 0x4 + NL80211_WIPHY_RADIO_FREQ_ATTR_END = 0x2 + NL80211_WIPHY_RADIO_FREQ_ATTR_MAX = 0x2 + NL80211_WIPHY_RADIO_FREQ_ATTR_START = 0x1 NL80211_WMMR_AIFSN = 0x3 NL80211_WMMR_CW_MAX = 0x2 NL80211_WMMR_CW_MIN = 0x1 @@ -6038,6 +6197,7 @@ const ( NL80211_WOWLAN_TRIG_PKT_PATTERN = 0x4 NL80211_WOWLAN_TRIG_RFKILL_RELEASE = 0x9 NL80211_WOWLAN_TRIG_TCP_CONNECTION = 0xe + NL80211_WOWLAN_TRIG_UNPROTECTED_DEAUTH_DISASSOC = 0x14 NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 = 0xa NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN = 0xb NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 = 0xc @@ -6176,3 +6336,30 @@ type SockDiagReq struct { } const RTM_NEWNVLAN = 0x70 + +const ( + MPOL_BIND = 0x2 + MPOL_DEFAULT = 0x0 + MPOL_F_ADDR = 0x2 + MPOL_F_MEMS_ALLOWED = 0x4 + MPOL_F_MOF = 0x8 + MPOL_F_MORON = 0x10 + MPOL_F_NODE = 0x1 + MPOL_F_NUMA_BALANCING = 0x2000 + MPOL_F_RELATIVE_NODES = 0x4000 + MPOL_F_SHARED = 0x1 + MPOL_F_STATIC_NODES = 0x8000 + MPOL_INTERLEAVE = 0x3 + MPOL_LOCAL = 0x4 + MPOL_MAX = 0x7 + MPOL_MF_INTERNAL = 0x10 + MPOL_MF_LAZY = 0x8 + MPOL_MF_MOVE_ALL = 0x4 + MPOL_MF_MOVE = 0x2 + MPOL_MF_STRICT = 0x1 + MPOL_MF_VALID = 0x7 + MPOL_MODE_FLAGS = 0xe000 + MPOL_PREFERRED = 0x1 + MPOL_PREFERRED_MANY = 0x5 + MPOL_WEIGHTED_INTERLEAVE = 0x6 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go index fd402da43..485f2d3a1 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go @@ -282,7 +282,7 @@ type Taskstats struct { Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [4]byte + _ [6]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -338,6 +338,22 @@ type Taskstats struct { Wpcopy_delay_total uint64 Irq_count uint64 Irq_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 } type cpuMask uint32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go index eb7a5e186..ecbd1ad8b 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go @@ -351,6 +351,22 @@ type Taskstats struct { Wpcopy_delay_total uint64 Irq_count uint64 Irq_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go index d78ac108b..02f0463a4 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go @@ -91,7 +91,7 @@ type Stat_t struct { Gid uint32 Rdev uint64 _ uint16 - _ [4]byte + _ [6]byte Size int64 Blksize int32 _ [4]byte @@ -273,7 +273,7 @@ type Taskstats struct { Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [4]byte + _ [6]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -329,6 +329,22 @@ type Taskstats struct { Wpcopy_delay_total uint64 Irq_count uint64 Irq_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 } type cpuMask uint32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go index cd06d47f1..6f4d400d2 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go @@ -330,6 +330,22 @@ type Taskstats struct { Wpcopy_delay_total uint64 Irq_count uint64 Irq_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go index 2f28fe26c..cd532cfa5 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go @@ -331,6 +331,22 @@ type Taskstats struct { Wpcopy_delay_total uint64 Irq_count uint64 Irq_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go index 71d6cac2f..413362085 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go @@ -278,7 +278,7 @@ type Taskstats struct { Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [4]byte + _ [6]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -334,6 +334,22 @@ type Taskstats struct { Wpcopy_delay_total uint64 Irq_count uint64 Irq_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 } type cpuMask uint32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go index 8596d4535..eaa37eb71 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go @@ -333,6 +333,22 @@ type Taskstats struct { Wpcopy_delay_total uint64 Irq_count uint64 Irq_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go index cd60ea186..98ae6a1e4 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go @@ -333,6 +333,22 @@ type Taskstats struct { Wpcopy_delay_total uint64 Irq_count uint64 Irq_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go index b0ae420c4..cae196159 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go @@ -278,7 +278,7 @@ type Taskstats struct { Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [4]byte + _ [6]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -334,6 +334,22 @@ type Taskstats struct { Wpcopy_delay_total uint64 Irq_count uint64 Irq_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 } type cpuMask uint32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go index 835972875..6ce3b4e02 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go @@ -90,7 +90,7 @@ type Stat_t struct { Gid uint32 Rdev uint64 _ uint16 - _ [4]byte + _ [6]byte Size int64 Blksize int32 _ [4]byte @@ -285,7 +285,7 @@ type Taskstats struct { Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [4]byte + _ [6]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -341,6 +341,22 @@ type Taskstats struct { Wpcopy_delay_total uint64 Irq_count uint64 Irq_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 } type cpuMask uint32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go index 69eb6a5c6..c7429c6a1 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go @@ -340,6 +340,22 @@ type Taskstats struct { Wpcopy_delay_total uint64 Irq_count uint64 Irq_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go index 5f583cb62..4bf4baf4c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go @@ -340,6 +340,22 @@ type Taskstats struct { Wpcopy_delay_total uint64 Irq_count uint64 Irq_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go index ad05b51a6..e9709d70a 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go @@ -358,6 +358,22 @@ type Taskstats struct { Wpcopy_delay_total uint64 Irq_count uint64 Irq_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go index cf3ce9003..fb44268ca 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go @@ -353,6 +353,22 @@ type Taskstats struct { Wpcopy_delay_total uint64 Irq_count uint64 Irq_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go index 590b56739..9c38265c7 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go @@ -335,6 +335,22 @@ type Taskstats struct { Wpcopy_delay_total uint64 Irq_count uint64 Irq_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/windows/security_windows.go b/vendor/golang.org/x/sys/windows/security_windows.go index b6e1ab76f..a8b0364c7 100644 --- a/vendor/golang.org/x/sys/windows/security_windows.go +++ b/vendor/golang.org/x/sys/windows/security_windows.go @@ -1303,7 +1303,10 @@ func (selfRelativeSD *SECURITY_DESCRIPTOR) ToAbsolute() (absoluteSD *SECURITY_DE return nil, err } if absoluteSDSize > 0 { - absoluteSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, absoluteSDSize)[0])) + absoluteSD = new(SECURITY_DESCRIPTOR) + if unsafe.Sizeof(*absoluteSD) < uintptr(absoluteSDSize) { + panic("sizeof(SECURITY_DESCRIPTOR) too small") + } } var ( dacl *ACL @@ -1312,19 +1315,55 @@ func (selfRelativeSD *SECURITY_DESCRIPTOR) ToAbsolute() (absoluteSD *SECURITY_DE group *SID ) if daclSize > 0 { - dacl = (*ACL)(unsafe.Pointer(&make([]byte, daclSize)[0])) + dacl = (*ACL)(unsafe.Pointer(unsafe.SliceData(make([]byte, daclSize)))) } if saclSize > 0 { - sacl = (*ACL)(unsafe.Pointer(&make([]byte, saclSize)[0])) + sacl = (*ACL)(unsafe.Pointer(unsafe.SliceData(make([]byte, saclSize)))) } if ownerSize > 0 { - owner = (*SID)(unsafe.Pointer(&make([]byte, ownerSize)[0])) + owner = (*SID)(unsafe.Pointer(unsafe.SliceData(make([]byte, ownerSize)))) } if groupSize > 0 { - group = (*SID)(unsafe.Pointer(&make([]byte, groupSize)[0])) + group = (*SID)(unsafe.Pointer(unsafe.SliceData(make([]byte, groupSize)))) } + // We call into Windows via makeAbsoluteSD, which sets up + // pointers within absoluteSD that point to other chunks of memory + // we pass into makeAbsoluteSD, and that happens outside the view of the GC. + // We therefore take some care here to then verify the pointers are as we expect + // and set them explicitly in view of the GC. See https://go.dev/issue/73199. + // TODO: consider weak pointers once Go 1.24 is appropriate. See suggestion in https://go.dev/cl/663575. err = makeAbsoluteSD(selfRelativeSD, absoluteSD, &absoluteSDSize, dacl, &daclSize, sacl, &saclSize, owner, &ownerSize, group, &groupSize) + if err != nil { + // Don't return absoluteSD, which might be partially initialized. + return nil, err + } + // Before using any fields, verify absoluteSD is in the format we expect according to Windows. + // See https://learn.microsoft.com/en-us/windows/win32/secauthz/absolute-and-self-relative-security-descriptors + absControl, _, err := absoluteSD.Control() + if err != nil { + panic("absoluteSD: " + err.Error()) + } + if absControl&SE_SELF_RELATIVE != 0 { + panic("absoluteSD not in absolute format") + } + if absoluteSD.dacl != dacl { + panic("dacl pointer mismatch") + } + if absoluteSD.sacl != sacl { + panic("sacl pointer mismatch") + } + if absoluteSD.owner != owner { + panic("owner pointer mismatch") + } + if absoluteSD.group != group { + panic("group pointer mismatch") + } + absoluteSD.dacl = dacl + absoluteSD.sacl = sacl + absoluteSD.owner = owner + absoluteSD.group = group + return } diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go index 4a3254386..69439df2a 100644 --- a/vendor/golang.org/x/sys/windows/syscall_windows.go +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -321,6 +321,8 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys SetConsoleOutputCP(cp uint32) (err error) = kernel32.SetConsoleOutputCP //sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW //sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW +//sys GetNumberOfConsoleInputEvents(console Handle, numevents *uint32) (err error) = kernel32.GetNumberOfConsoleInputEvents +//sys FlushConsoleInputBuffer(console Handle) (err error) = kernel32.FlushConsoleInputBuffer //sys resizePseudoConsole(pconsole Handle, size uint32) (hr error) = kernel32.ResizePseudoConsole //sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot //sys Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32FirstW @@ -870,6 +872,7 @@ const socket_error = uintptr(^uint32(0)) //sys WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecvFrom //sys WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASendTo //sys WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.WSASocketW +//sys WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) [failretval!=0] = ws2_32.WSADuplicateSocketW //sys GetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname //sys GetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname //sys Ntohs(netshort uint16) (u uint16) = ws2_32.ntohs @@ -889,8 +892,12 @@ const socket_error = uintptr(^uint32(0)) //sys MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = kernel32.MultiByteToWideChar //sys getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) = iphlpapi.GetBestInterfaceEx //sys GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) = iphlpapi.GetIfEntry2Ex +//sys GetIpForwardEntry2(row *MibIpForwardRow2) (errcode error) = iphlpapi.GetIpForwardEntry2 +//sys GetIpForwardTable2(family uint16, table **MibIpForwardTable2) (errcode error) = iphlpapi.GetIpForwardTable2 //sys GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) = iphlpapi.GetUnicastIpAddressEntry +//sys FreeMibTable(memory unsafe.Pointer) = iphlpapi.FreeMibTable //sys NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyIpInterfaceChange +//sys NotifyRouteChange2(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyRouteChange2 //sys NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyUnicastIpAddressChange //sys CancelMibChangeNotify2(notificationHandle Handle) (errcode error) = iphlpapi.CancelMibChangeNotify2 @@ -913,6 +920,17 @@ type RawSockaddrInet6 struct { Scope_id uint32 } +// RawSockaddrInet is a union that contains an IPv4, an IPv6 address, or an address family. See +// https://learn.microsoft.com/en-us/windows/win32/api/ws2ipdef/ns-ws2ipdef-sockaddr_inet. +// +// A [*RawSockaddrInet] may be converted to a [*RawSockaddrInet4] or [*RawSockaddrInet6] using +// unsafe, depending on the address family. +type RawSockaddrInet struct { + Family uint16 + Port uint16 + Data [6]uint32 +} + type RawSockaddr struct { Family uint16 Data [14]int8 @@ -1698,8 +1716,9 @@ func NewNTUnicodeString(s string) (*NTUnicodeString, error) { // Slice returns a uint16 slice that aliases the data in the NTUnicodeString. func (s *NTUnicodeString) Slice() []uint16 { - slice := unsafe.Slice(s.Buffer, s.MaximumLength) - return slice[:s.Length] + // Note: this rounds the length down, if it happens + // to (incorrectly) be odd. Probably safer than rounding up. + return unsafe.Slice(s.Buffer, s.MaximumLength/2)[:s.Length/2] } func (s *NTUnicodeString) String() string { diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go index ad67df2fd..6e4f50eb4 100644 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -65,6 +65,22 @@ var signals = [...]string{ 15: "terminated", } +// File flags for [os.OpenFile]. The O_ prefix is used to indicate +// that these flags are specific to the OpenFile function. +const ( + O_FILE_FLAG_OPEN_NO_RECALL = FILE_FLAG_OPEN_NO_RECALL + O_FILE_FLAG_OPEN_REPARSE_POINT = FILE_FLAG_OPEN_REPARSE_POINT + O_FILE_FLAG_SESSION_AWARE = FILE_FLAG_SESSION_AWARE + O_FILE_FLAG_POSIX_SEMANTICS = FILE_FLAG_POSIX_SEMANTICS + O_FILE_FLAG_BACKUP_SEMANTICS = FILE_FLAG_BACKUP_SEMANTICS + O_FILE_FLAG_DELETE_ON_CLOSE = FILE_FLAG_DELETE_ON_CLOSE + O_FILE_FLAG_SEQUENTIAL_SCAN = FILE_FLAG_SEQUENTIAL_SCAN + O_FILE_FLAG_RANDOM_ACCESS = FILE_FLAG_RANDOM_ACCESS + O_FILE_FLAG_NO_BUFFERING = FILE_FLAG_NO_BUFFERING + O_FILE_FLAG_OVERLAPPED = FILE_FLAG_OVERLAPPED + O_FILE_FLAG_WRITE_THROUGH = FILE_FLAG_WRITE_THROUGH +) + const ( FILE_READ_DATA = 0x00000001 FILE_READ_ATTRIBUTES = 0x00000080 @@ -1976,6 +1992,12 @@ const ( SYMBOLIC_LINK_FLAG_DIRECTORY = 0x1 ) +// FILE_ZERO_DATA_INFORMATION from winioctl.h +type FileZeroDataInformation struct { + FileOffset int64 + BeyondFinalZero int64 +} + const ( ComputerNameNetBIOS = 0 ComputerNameDnsHostname = 1 @@ -2298,6 +2320,82 @@ type MibIfRow2 struct { OutQLen uint64 } +// IP_ADDRESS_PREFIX stores an IP address prefix. See +// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-ip_address_prefix. +type IpAddressPrefix struct { + Prefix RawSockaddrInet + PrefixLength uint8 +} + +// NL_ROUTE_ORIGIN enumeration from nldef.h or +// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_route_origin. +const ( + NlroManual = 0 + NlroWellKnown = 1 + NlroDHCP = 2 + NlroRouterAdvertisement = 3 + Nlro6to4 = 4 +) + +// NL_ROUTE_ORIGIN enumeration from nldef.h or +// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_route_protocol. +const ( + MIB_IPPROTO_OTHER = 1 + MIB_IPPROTO_LOCAL = 2 + MIB_IPPROTO_NETMGMT = 3 + MIB_IPPROTO_ICMP = 4 + MIB_IPPROTO_EGP = 5 + MIB_IPPROTO_GGP = 6 + MIB_IPPROTO_HELLO = 7 + MIB_IPPROTO_RIP = 8 + MIB_IPPROTO_IS_IS = 9 + MIB_IPPROTO_ES_IS = 10 + MIB_IPPROTO_CISCO = 11 + MIB_IPPROTO_BBN = 12 + MIB_IPPROTO_OSPF = 13 + MIB_IPPROTO_BGP = 14 + MIB_IPPROTO_IDPR = 15 + MIB_IPPROTO_EIGRP = 16 + MIB_IPPROTO_DVMRP = 17 + MIB_IPPROTO_RPL = 18 + MIB_IPPROTO_DHCP = 19 + MIB_IPPROTO_NT_AUTOSTATIC = 10002 + MIB_IPPROTO_NT_STATIC = 10006 + MIB_IPPROTO_NT_STATIC_NON_DOD = 10007 +) + +// MIB_IPFORWARD_ROW2 stores information about an IP route entry. See +// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipforward_row2. +type MibIpForwardRow2 struct { + InterfaceLuid uint64 + InterfaceIndex uint32 + DestinationPrefix IpAddressPrefix + NextHop RawSockaddrInet + SitePrefixLength uint8 + ValidLifetime uint32 + PreferredLifetime uint32 + Metric uint32 + Protocol uint32 + Loopback uint8 + AutoconfigureAddress uint8 + Publish uint8 + Immortal uint8 + Age uint32 + Origin uint32 +} + +// MIB_IPFORWARD_TABLE2 contains a table of IP route entries. See +// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipforward_table2. +type MibIpForwardTable2 struct { + NumEntries uint32 + Table [1]MibIpForwardRow2 +} + +// Rows returns the IP route entries in the table. +func (t *MibIpForwardTable2) Rows() []MibIpForwardRow2 { + return unsafe.Slice(&t.Table[0], t.NumEntries) +} + // MIB_UNICASTIPADDRESS_ROW stores information about a unicast IP address. See // https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_unicastipaddress_row. type MibUnicastIpAddressRow struct { @@ -2700,6 +2798,8 @@ type CommTimeouts struct { // NTUnicodeString is a UTF-16 string for NT native APIs, corresponding to UNICODE_STRING. type NTUnicodeString struct { + // Note: Length and MaximumLength are in *bytes*, not uint16s. + // They should always be even. Length uint16 MaximumLength uint16 Buffer *uint16 @@ -3628,3 +3728,213 @@ const ( KLF_NOTELLSHELL = 0x00000080 KLF_SETFORPROCESS = 0x00000100 ) + +// Virtual Key codes +// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes +const ( + VK_LBUTTON = 0x01 + VK_RBUTTON = 0x02 + VK_CANCEL = 0x03 + VK_MBUTTON = 0x04 + VK_XBUTTON1 = 0x05 + VK_XBUTTON2 = 0x06 + VK_BACK = 0x08 + VK_TAB = 0x09 + VK_CLEAR = 0x0C + VK_RETURN = 0x0D + VK_SHIFT = 0x10 + VK_CONTROL = 0x11 + VK_MENU = 0x12 + VK_PAUSE = 0x13 + VK_CAPITAL = 0x14 + VK_KANA = 0x15 + VK_HANGEUL = 0x15 + VK_HANGUL = 0x15 + VK_IME_ON = 0x16 + VK_JUNJA = 0x17 + VK_FINAL = 0x18 + VK_HANJA = 0x19 + VK_KANJI = 0x19 + VK_IME_OFF = 0x1A + VK_ESCAPE = 0x1B + VK_CONVERT = 0x1C + VK_NONCONVERT = 0x1D + VK_ACCEPT = 0x1E + VK_MODECHANGE = 0x1F + VK_SPACE = 0x20 + VK_PRIOR = 0x21 + VK_NEXT = 0x22 + VK_END = 0x23 + VK_HOME = 0x24 + VK_LEFT = 0x25 + VK_UP = 0x26 + VK_RIGHT = 0x27 + VK_DOWN = 0x28 + VK_SELECT = 0x29 + VK_PRINT = 0x2A + VK_EXECUTE = 0x2B + VK_SNAPSHOT = 0x2C + VK_INSERT = 0x2D + VK_DELETE = 0x2E + VK_HELP = 0x2F + VK_LWIN = 0x5B + VK_RWIN = 0x5C + VK_APPS = 0x5D + VK_SLEEP = 0x5F + VK_NUMPAD0 = 0x60 + VK_NUMPAD1 = 0x61 + VK_NUMPAD2 = 0x62 + VK_NUMPAD3 = 0x63 + VK_NUMPAD4 = 0x64 + VK_NUMPAD5 = 0x65 + VK_NUMPAD6 = 0x66 + VK_NUMPAD7 = 0x67 + VK_NUMPAD8 = 0x68 + VK_NUMPAD9 = 0x69 + VK_MULTIPLY = 0x6A + VK_ADD = 0x6B + VK_SEPARATOR = 0x6C + VK_SUBTRACT = 0x6D + VK_DECIMAL = 0x6E + VK_DIVIDE = 0x6F + VK_F1 = 0x70 + VK_F2 = 0x71 + VK_F3 = 0x72 + VK_F4 = 0x73 + VK_F5 = 0x74 + VK_F6 = 0x75 + VK_F7 = 0x76 + VK_F8 = 0x77 + VK_F9 = 0x78 + VK_F10 = 0x79 + VK_F11 = 0x7A + VK_F12 = 0x7B + VK_F13 = 0x7C + VK_F14 = 0x7D + VK_F15 = 0x7E + VK_F16 = 0x7F + VK_F17 = 0x80 + VK_F18 = 0x81 + VK_F19 = 0x82 + VK_F20 = 0x83 + VK_F21 = 0x84 + VK_F22 = 0x85 + VK_F23 = 0x86 + VK_F24 = 0x87 + VK_NUMLOCK = 0x90 + VK_SCROLL = 0x91 + VK_OEM_NEC_EQUAL = 0x92 + VK_OEM_FJ_JISHO = 0x92 + VK_OEM_FJ_MASSHOU = 0x93 + VK_OEM_FJ_TOUROKU = 0x94 + VK_OEM_FJ_LOYA = 0x95 + VK_OEM_FJ_ROYA = 0x96 + VK_LSHIFT = 0xA0 + VK_RSHIFT = 0xA1 + VK_LCONTROL = 0xA2 + VK_RCONTROL = 0xA3 + VK_LMENU = 0xA4 + VK_RMENU = 0xA5 + VK_BROWSER_BACK = 0xA6 + VK_BROWSER_FORWARD = 0xA7 + VK_BROWSER_REFRESH = 0xA8 + VK_BROWSER_STOP = 0xA9 + VK_BROWSER_SEARCH = 0xAA + VK_BROWSER_FAVORITES = 0xAB + VK_BROWSER_HOME = 0xAC + VK_VOLUME_MUTE = 0xAD + VK_VOLUME_DOWN = 0xAE + VK_VOLUME_UP = 0xAF + VK_MEDIA_NEXT_TRACK = 0xB0 + VK_MEDIA_PREV_TRACK = 0xB1 + VK_MEDIA_STOP = 0xB2 + VK_MEDIA_PLAY_PAUSE = 0xB3 + VK_LAUNCH_MAIL = 0xB4 + VK_LAUNCH_MEDIA_SELECT = 0xB5 + VK_LAUNCH_APP1 = 0xB6 + VK_LAUNCH_APP2 = 0xB7 + VK_OEM_1 = 0xBA + VK_OEM_PLUS = 0xBB + VK_OEM_COMMA = 0xBC + VK_OEM_MINUS = 0xBD + VK_OEM_PERIOD = 0xBE + VK_OEM_2 = 0xBF + VK_OEM_3 = 0xC0 + VK_OEM_4 = 0xDB + VK_OEM_5 = 0xDC + VK_OEM_6 = 0xDD + VK_OEM_7 = 0xDE + VK_OEM_8 = 0xDF + VK_OEM_AX = 0xE1 + VK_OEM_102 = 0xE2 + VK_ICO_HELP = 0xE3 + VK_ICO_00 = 0xE4 + VK_PROCESSKEY = 0xE5 + VK_ICO_CLEAR = 0xE6 + VK_OEM_RESET = 0xE9 + VK_OEM_JUMP = 0xEA + VK_OEM_PA1 = 0xEB + VK_OEM_PA2 = 0xEC + VK_OEM_PA3 = 0xED + VK_OEM_WSCTRL = 0xEE + VK_OEM_CUSEL = 0xEF + VK_OEM_ATTN = 0xF0 + VK_OEM_FINISH = 0xF1 + VK_OEM_COPY = 0xF2 + VK_OEM_AUTO = 0xF3 + VK_OEM_ENLW = 0xF4 + VK_OEM_BACKTAB = 0xF5 + VK_ATTN = 0xF6 + VK_CRSEL = 0xF7 + VK_EXSEL = 0xF8 + VK_EREOF = 0xF9 + VK_PLAY = 0xFA + VK_ZOOM = 0xFB + VK_NONAME = 0xFC + VK_PA1 = 0xFD + VK_OEM_CLEAR = 0xFE +) + +// Mouse button constants. +// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str +const ( + FROM_LEFT_1ST_BUTTON_PRESSED = 0x0001 + RIGHTMOST_BUTTON_PRESSED = 0x0002 + FROM_LEFT_2ND_BUTTON_PRESSED = 0x0004 + FROM_LEFT_3RD_BUTTON_PRESSED = 0x0008 + FROM_LEFT_4TH_BUTTON_PRESSED = 0x0010 +) + +// Control key state constaints. +// https://docs.microsoft.com/en-us/windows/console/key-event-record-str +// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str +const ( + CAPSLOCK_ON = 0x0080 + ENHANCED_KEY = 0x0100 + LEFT_ALT_PRESSED = 0x0002 + LEFT_CTRL_PRESSED = 0x0008 + NUMLOCK_ON = 0x0020 + RIGHT_ALT_PRESSED = 0x0001 + RIGHT_CTRL_PRESSED = 0x0004 + SCROLLLOCK_ON = 0x0040 + SHIFT_PRESSED = 0x0010 +) + +// Mouse event record event flags. +// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str +const ( + MOUSE_MOVED = 0x0001 + DOUBLE_CLICK = 0x0002 + MOUSE_WHEELED = 0x0004 + MOUSE_HWHEELED = 0x0008 +) + +// Input Record Event Types +// https://learn.microsoft.com/en-us/windows/console/input-record-str +const ( + FOCUS_EVENT = 0x0010 + KEY_EVENT = 0x0001 + MENU_EVENT = 0x0008 + MOUSE_EVENT = 0x0002 + WINDOW_BUFFER_SIZE_EVENT = 0x0004 +) diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go index 01c0716c2..f25b7308a 100644 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -182,13 +182,17 @@ var ( procDwmGetWindowAttribute = moddwmapi.NewProc("DwmGetWindowAttribute") procDwmSetWindowAttribute = moddwmapi.NewProc("DwmSetWindowAttribute") procCancelMibChangeNotify2 = modiphlpapi.NewProc("CancelMibChangeNotify2") + procFreeMibTable = modiphlpapi.NewProc("FreeMibTable") procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") procGetBestInterfaceEx = modiphlpapi.NewProc("GetBestInterfaceEx") procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") procGetIfEntry2Ex = modiphlpapi.NewProc("GetIfEntry2Ex") + procGetIpForwardEntry2 = modiphlpapi.NewProc("GetIpForwardEntry2") + procGetIpForwardTable2 = modiphlpapi.NewProc("GetIpForwardTable2") procGetUnicastIpAddressEntry = modiphlpapi.NewProc("GetUnicastIpAddressEntry") procNotifyIpInterfaceChange = modiphlpapi.NewProc("NotifyIpInterfaceChange") + procNotifyRouteChange2 = modiphlpapi.NewProc("NotifyRouteChange2") procNotifyUnicastIpAddressChange = modiphlpapi.NewProc("NotifyUnicastIpAddressChange") procAddDllDirectory = modkernel32.NewProc("AddDllDirectory") procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject") @@ -238,6 +242,7 @@ var ( procFindResourceW = modkernel32.NewProc("FindResourceW") procFindVolumeClose = modkernel32.NewProc("FindVolumeClose") procFindVolumeMountPointClose = modkernel32.NewProc("FindVolumeMountPointClose") + procFlushConsoleInputBuffer = modkernel32.NewProc("FlushConsoleInputBuffer") procFlushFileBuffers = modkernel32.NewProc("FlushFileBuffers") procFlushViewOfFile = modkernel32.NewProc("FlushViewOfFile") procFormatMessageW = modkernel32.NewProc("FormatMessageW") @@ -284,6 +289,7 @@ var ( procGetNamedPipeHandleStateW = modkernel32.NewProc("GetNamedPipeHandleStateW") procGetNamedPipeInfo = modkernel32.NewProc("GetNamedPipeInfo") procGetNamedPipeServerProcessId = modkernel32.NewProc("GetNamedPipeServerProcessId") + procGetNumberOfConsoleInputEvents = modkernel32.NewProc("GetNumberOfConsoleInputEvents") procGetOverlappedResult = modkernel32.NewProc("GetOverlappedResult") procGetPriorityClass = modkernel32.NewProc("GetPriorityClass") procGetProcAddress = modkernel32.NewProc("GetProcAddress") @@ -511,6 +517,7 @@ var ( procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW") procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW") procWSACleanup = modws2_32.NewProc("WSACleanup") + procWSADuplicateSocketW = modws2_32.NewProc("WSADuplicateSocketW") procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW") procWSAGetOverlappedResult = modws2_32.NewProc("WSAGetOverlappedResult") procWSAIoctl = modws2_32.NewProc("WSAIoctl") @@ -545,25 +552,25 @@ var ( ) func cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.Syscall6(procCM_Get_DevNode_Status.Addr(), 4, uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags), 0, 0) + r0, _, _ := syscall.SyscallN(procCM_Get_DevNode_Status.Addr(), uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags)) ret = CONFIGRET(r0) return } func cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_ListW.Addr(), 5, uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags), 0) + r0, _, _ := syscall.SyscallN(procCM_Get_Device_Interface_ListW.Addr(), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags)) ret = CONFIGRET(r0) return } func cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_List_SizeW.Addr(), 4, uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags), 0, 0) + r0, _, _ := syscall.SyscallN(procCM_Get_Device_Interface_List_SizeW.Addr(), uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags)) ret = CONFIGRET(r0) return } func cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) { - r0, _, _ := syscall.Syscall(procCM_MapCrToWin32Err.Addr(), 2, uintptr(configRet), uintptr(defaultWin32Error), 0) + r0, _, _ := syscall.SyscallN(procCM_MapCrToWin32Err.Addr(), uintptr(configRet), uintptr(defaultWin32Error)) ret = Errno(r0) return } @@ -573,7 +580,7 @@ func AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, if resetToDefault { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procAdjustTokenGroups.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) + r1, _, e1 := syscall.SyscallN(procAdjustTokenGroups.Addr(), uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) if r1 == 0 { err = errnoErr(e1) } @@ -585,7 +592,7 @@ func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tok if disableAllPrivileges { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) + r1, _, e1 := syscall.SyscallN(procAdjustTokenPrivileges.Addr(), uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) if r1 == 0 { err = errnoErr(e1) } @@ -593,7 +600,7 @@ func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tok } func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) { - r1, _, e1 := syscall.Syscall12(procAllocateAndInitializeSid.Addr(), 11, uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid)), 0) + r1, _, e1 := syscall.SyscallN(procAllocateAndInitializeSid.Addr(), uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid))) if r1 == 0 { err = errnoErr(e1) } @@ -601,7 +608,7 @@ func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, s } func buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.Syscall9(procBuildSecurityDescriptorW.Addr(), 9, uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor))) + r0, _, _ := syscall.SyscallN(procBuildSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -609,7 +616,7 @@ func buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries } func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) { - r1, _, e1 := syscall.Syscall(procChangeServiceConfig2W.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info))) + r1, _, e1 := syscall.SyscallN(procChangeServiceConfig2W.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info))) if r1 == 0 { err = errnoErr(e1) } @@ -617,7 +624,7 @@ func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err err } func ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) { - r1, _, e1 := syscall.Syscall12(procChangeServiceConfigW.Addr(), 11, uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName)), 0) + r1, _, e1 := syscall.SyscallN(procChangeServiceConfigW.Addr(), uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName))) if r1 == 0 { err = errnoErr(e1) } @@ -625,7 +632,7 @@ func ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, e } func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) { - r1, _, e1 := syscall.Syscall(procCheckTokenMembership.Addr(), 3, uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember))) + r1, _, e1 := syscall.SyscallN(procCheckTokenMembership.Addr(), uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember))) if r1 == 0 { err = errnoErr(e1) } @@ -633,7 +640,7 @@ func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) ( } func CloseServiceHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procCloseServiceHandle.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -641,7 +648,7 @@ func CloseServiceHandle(handle Handle) (err error) { } func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procControlService.Addr(), 3, uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status))) + r1, _, e1 := syscall.SyscallN(procControlService.Addr(), uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status))) if r1 == 0 { err = errnoErr(e1) } @@ -649,7 +656,7 @@ func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err } func convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen)), 0) + r1, _, e1 := syscall.SyscallN(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen))) if r1 == 0 { err = errnoErr(e1) } @@ -657,7 +664,7 @@ func convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR } func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) { - r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0) + r1, _, e1 := syscall.SyscallN(procConvertSidToStringSidW.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid))) if r1 == 0 { err = errnoErr(e1) } @@ -674,7 +681,7 @@ func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision ui } func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), 4, uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)), 0, 0) + r1, _, e1 := syscall.SyscallN(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size))) if r1 == 0 { err = errnoErr(e1) } @@ -682,7 +689,7 @@ func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision } func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { - r1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0) + r1, _, e1 := syscall.SyscallN(procConvertStringSidToSidW.Addr(), uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid))) if r1 == 0 { err = errnoErr(e1) } @@ -690,7 +697,7 @@ func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { } func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) { - r1, _, e1 := syscall.Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) + r1, _, e1 := syscall.SyscallN(procCopySid.Addr(), uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) if r1 == 0 { err = errnoErr(e1) } @@ -702,7 +709,7 @@ func CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, proc if inheritHandles { _p0 = 1 } - r1, _, e1 := syscall.Syscall12(procCreateProcessAsUserW.Addr(), 11, uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0) + r1, _, e1 := syscall.SyscallN(procCreateProcessAsUserW.Addr(), uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo))) if r1 == 0 { err = errnoErr(e1) } @@ -710,7 +717,7 @@ func CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, proc } func CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall15(procCreateServiceW.Addr(), 13, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateServiceW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -719,7 +726,7 @@ func CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access } func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCreateWellKnownSid.Addr(), 4, uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCreateWellKnownSid.Addr(), uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid))) if r1 == 0 { err = errnoErr(e1) } @@ -727,7 +734,7 @@ func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, s } func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procCryptAcquireContextW.Addr(), uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -735,7 +742,7 @@ func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16 } func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { - r1, _, e1 := syscall.Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) + r1, _, e1 := syscall.SyscallN(procCryptGenRandom.Addr(), uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) if r1 == 0 { err = errnoErr(e1) } @@ -743,7 +750,7 @@ func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { } func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procCryptReleaseContext.Addr(), uintptr(provhandle), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -751,7 +758,7 @@ func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { } func DeleteService(service Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteService.Addr(), 1, uintptr(service), 0, 0) + r1, _, e1 := syscall.SyscallN(procDeleteService.Addr(), uintptr(service)) if r1 == 0 { err = errnoErr(e1) } @@ -759,7 +766,7 @@ func DeleteService(service Handle) (err error) { } func DeregisterEventSource(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procDeregisterEventSource.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -767,7 +774,7 @@ func DeregisterEventSource(handle Handle) (err error) { } func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) { - r1, _, e1 := syscall.Syscall6(procDuplicateTokenEx.Addr(), 6, uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken))) + r1, _, e1 := syscall.SyscallN(procDuplicateTokenEx.Addr(), uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken))) if r1 == 0 { err = errnoErr(e1) } @@ -775,7 +782,7 @@ func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes } func EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procEnumDependentServicesW.Addr(), 6, uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned))) + r1, _, e1 := syscall.SyscallN(procEnumDependentServicesW.Addr(), uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned))) if r1 == 0 { err = errnoErr(e1) } @@ -783,7 +790,7 @@ func EnumDependentServices(service Handle, activityState uint32, services *ENUM_ } func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) { - r1, _, e1 := syscall.Syscall12(procEnumServicesStatusExW.Addr(), 10, uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName)), 0, 0) + r1, _, e1 := syscall.SyscallN(procEnumServicesStatusExW.Addr(), uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName))) if r1 == 0 { err = errnoErr(e1) } @@ -791,13 +798,13 @@ func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serv } func EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) { - r0, _, _ := syscall.Syscall(procEqualSid.Addr(), 2, uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)), 0) + r0, _, _ := syscall.SyscallN(procEqualSid.Addr(), uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2))) isEqual = r0 != 0 return } func FreeSid(sid *SID) (err error) { - r1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + r1, _, e1 := syscall.SyscallN(procFreeSid.Addr(), uintptr(unsafe.Pointer(sid))) if r1 != 0 { err = errnoErr(e1) } @@ -805,7 +812,7 @@ func FreeSid(sid *SID) (err error) { } func GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) { - r1, _, e1 := syscall.Syscall(procGetAce.Addr(), 3, uintptr(unsafe.Pointer(acl)), uintptr(aceIndex), uintptr(unsafe.Pointer(pAce))) + r1, _, e1 := syscall.SyscallN(procGetAce.Addr(), uintptr(unsafe.Pointer(acl)), uintptr(aceIndex), uintptr(unsafe.Pointer(pAce))) if r1 == 0 { err = errnoErr(e1) } @@ -813,7 +820,7 @@ func GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) { } func GetLengthSid(sid *SID) (len uint32) { - r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetLengthSid.Addr(), uintptr(unsafe.Pointer(sid))) len = uint32(r0) return } @@ -828,7 +835,7 @@ func getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, security } func _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.Syscall9(procGetNamedSecurityInfoW.Addr(), 8, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0) + r0, _, _ := syscall.SyscallN(procGetNamedSecurityInfoW.Addr(), uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -836,7 +843,7 @@ func _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securi } func getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision))) + r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision))) if r1 == 0 { err = errnoErr(e1) } @@ -852,7 +859,7 @@ func getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl if *daclDefaulted { _p1 = 1 } - r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorDacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1))) *daclPresent = _p0 != 0 *daclDefaulted = _p1 != 0 if r1 == 0 { @@ -866,7 +873,7 @@ func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefau if *groupDefaulted { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0))) + r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorGroup.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0))) *groupDefaulted = _p0 != 0 if r1 == 0 { err = errnoErr(e1) @@ -875,7 +882,7 @@ func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefau } func getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) { - r0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetSecurityDescriptorLength.Addr(), uintptr(unsafe.Pointer(sd))) len = uint32(r0) return } @@ -885,7 +892,7 @@ func getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefau if *ownerDefaulted { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0))) + r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorOwner.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0))) *ownerDefaulted = _p0 != 0 if r1 == 0 { err = errnoErr(e1) @@ -894,7 +901,7 @@ func getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefau } func getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) { - r0, _, _ := syscall.Syscall(procGetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) + r0, _, _ := syscall.SyscallN(procGetSecurityDescriptorRMControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -910,7 +917,7 @@ func getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl if *saclDefaulted { _p1 = 1 } - r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorSacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1))) *saclPresent = _p0 != 0 *saclDefaulted = _p1 != 0 if r1 == 0 { @@ -920,7 +927,7 @@ func getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl } func getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.Syscall9(procGetSecurityInfo.Addr(), 8, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0) + r0, _, _ := syscall.SyscallN(procGetSecurityInfo.Addr(), uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -928,25 +935,25 @@ func getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformati } func getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) { - r0, _, _ := syscall.Syscall(procGetSidIdentifierAuthority.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetSidIdentifierAuthority.Addr(), uintptr(unsafe.Pointer(sid))) authority = (*SidIdentifierAuthority)(unsafe.Pointer(r0)) return } func getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) { - r0, _, _ := syscall.Syscall(procGetSidSubAuthority.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(index), 0) + r0, _, _ := syscall.SyscallN(procGetSidSubAuthority.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(index)) subAuthority = (*uint32)(unsafe.Pointer(r0)) return } func getSidSubAuthorityCount(sid *SID) (count *uint8) { - r0, _, _ := syscall.Syscall(procGetSidSubAuthorityCount.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetSidSubAuthorityCount.Addr(), uintptr(unsafe.Pointer(sid))) count = (*uint8)(unsafe.Pointer(r0)) return } func GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0) + r1, _, e1 := syscall.SyscallN(procGetTokenInformation.Addr(), uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen))) if r1 == 0 { err = errnoErr(e1) } @@ -954,7 +961,7 @@ func GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint } func ImpersonateSelf(impersonationlevel uint32) (err error) { - r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(impersonationlevel), 0, 0) + r1, _, e1 := syscall.SyscallN(procImpersonateSelf.Addr(), uintptr(impersonationlevel)) if r1 == 0 { err = errnoErr(e1) } @@ -962,7 +969,7 @@ func ImpersonateSelf(impersonationlevel uint32) (err error) { } func initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) { - r1, _, e1 := syscall.Syscall(procInitializeSecurityDescriptor.Addr(), 2, uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision), 0) + r1, _, e1 := syscall.SyscallN(procInitializeSecurityDescriptor.Addr(), uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision)) if r1 == 0 { err = errnoErr(e1) } @@ -978,7 +985,7 @@ func InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint if rebootAfterShutdown { _p1 = 1 } - r1, _, e1 := syscall.Syscall6(procInitiateSystemShutdownExW.Addr(), 6, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason)) + r1, _, e1 := syscall.SyscallN(procInitiateSystemShutdownExW.Addr(), uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason)) if r1 == 0 { err = errnoErr(e1) } @@ -986,7 +993,7 @@ func InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint } func isTokenRestricted(tokenHandle Token) (ret bool, err error) { - r0, _, e1 := syscall.Syscall(procIsTokenRestricted.Addr(), 1, uintptr(tokenHandle), 0, 0) + r0, _, e1 := syscall.SyscallN(procIsTokenRestricted.Addr(), uintptr(tokenHandle)) ret = r0 != 0 if !ret { err = errnoErr(e1) @@ -995,25 +1002,25 @@ func isTokenRestricted(tokenHandle Token) (ret bool, err error) { } func isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) { - r0, _, _ := syscall.Syscall(procIsValidSecurityDescriptor.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) + r0, _, _ := syscall.SyscallN(procIsValidSecurityDescriptor.Addr(), uintptr(unsafe.Pointer(sd))) isValid = r0 != 0 return } func isValidSid(sid *SID) (isValid bool) { - r0, _, _ := syscall.Syscall(procIsValidSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + r0, _, _ := syscall.SyscallN(procIsValidSid.Addr(), uintptr(unsafe.Pointer(sid))) isValid = r0 != 0 return } func isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) { - r0, _, _ := syscall.Syscall(procIsWellKnownSid.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(sidType), 0) + r0, _, _ := syscall.SyscallN(procIsWellKnownSid.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(sidType)) isWellKnown = r0 != 0 return } func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) + r1, _, e1 := syscall.SyscallN(procLookupAccountNameW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use))) if r1 == 0 { err = errnoErr(e1) } @@ -1021,7 +1028,7 @@ func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen } func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) + r1, _, e1 := syscall.SyscallN(procLookupAccountSidW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use))) if r1 == 0 { err = errnoErr(e1) } @@ -1029,7 +1036,7 @@ func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint3 } func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) { - r1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) + r1, _, e1 := syscall.SyscallN(procLookupPrivilegeValueW.Addr(), uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) if r1 == 0 { err = errnoErr(e1) } @@ -1037,7 +1044,7 @@ func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err err } func makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall12(procMakeAbsoluteSD.Addr(), 11, uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize)), 0) + r1, _, e1 := syscall.SyscallN(procMakeAbsoluteSD.Addr(), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize))) if r1 == 0 { err = errnoErr(e1) } @@ -1045,7 +1052,7 @@ func makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DE } func makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procMakeSelfRelativeSD.Addr(), 3, uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize))) + r1, _, e1 := syscall.SyscallN(procMakeSelfRelativeSD.Addr(), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize))) if r1 == 0 { err = errnoErr(e1) } @@ -1053,7 +1060,7 @@ func makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURIT } func NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) { - r0, _, _ := syscall.Syscall(procNotifyServiceStatusChangeW.Addr(), 3, uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier))) + r0, _, _ := syscall.SyscallN(procNotifyServiceStatusChangeW.Addr(), uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1061,7 +1068,7 @@ func NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERV } func OpenProcessToken(process Handle, access uint32, token *Token) (err error) { - r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token))) + r1, _, e1 := syscall.SyscallN(procOpenProcessToken.Addr(), uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token))) if r1 == 0 { err = errnoErr(e1) } @@ -1069,7 +1076,7 @@ func OpenProcessToken(process Handle, access uint32, token *Token) (err error) { } func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procOpenSCManagerW.Addr(), 3, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access)) + r0, _, e1 := syscall.SyscallN(procOpenSCManagerW.Addr(), uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1078,7 +1085,7 @@ func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (ha } func OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procOpenServiceW.Addr(), 3, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access)) + r0, _, e1 := syscall.SyscallN(procOpenServiceW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1091,7 +1098,7 @@ func OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token if openAsSelf { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0) + r1, _, e1 := syscall.SyscallN(procOpenThreadToken.Addr(), uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token))) if r1 == 0 { err = errnoErr(e1) } @@ -1099,7 +1106,7 @@ func OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token } func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceConfig2W.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) + r1, _, e1 := syscall.SyscallN(procQueryServiceConfig2W.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded))) if r1 == 0 { err = errnoErr(e1) } @@ -1107,7 +1114,7 @@ func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize } func QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceConfigW.Addr(), 4, uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) + r1, _, e1 := syscall.SyscallN(procQueryServiceConfigW.Addr(), uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded))) if r1 == 0 { err = errnoErr(e1) } @@ -1119,7 +1126,7 @@ func QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInf if err != nil { return } - r1, _, e1 := syscall.Syscall(procQueryServiceDynamicInformation.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo)) + r1, _, e1 := syscall.SyscallN(procQueryServiceDynamicInformation.Addr(), uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo)) if r1 == 0 { err = errnoErr(e1) } @@ -1127,7 +1134,7 @@ func QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInf } func QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceLockStatusW.Addr(), 4, uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) + r1, _, e1 := syscall.SyscallN(procQueryServiceLockStatusW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded))) if r1 == 0 { err = errnoErr(e1) } @@ -1135,7 +1142,7 @@ func QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, b } func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procQueryServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(status)), 0) + r1, _, e1 := syscall.SyscallN(procQueryServiceStatus.Addr(), uintptr(service), uintptr(unsafe.Pointer(status))) if r1 == 0 { err = errnoErr(e1) } @@ -1143,7 +1150,7 @@ func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { } func QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceStatusEx.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) + r1, _, e1 := syscall.SyscallN(procQueryServiceStatusEx.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded))) if r1 == 0 { err = errnoErr(e1) } @@ -1151,7 +1158,7 @@ func QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize } func RegCloseKey(key Handle) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 0) + r0, _, _ := syscall.SyscallN(procRegCloseKey.Addr(), uintptr(key)) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1159,7 +1166,7 @@ func RegCloseKey(key Handle) (regerrno error) { } func RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegEnumKeyExW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime)), 0) + r0, _, _ := syscall.SyscallN(procRegEnumKeyExW.Addr(), uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1175,7 +1182,7 @@ func RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, if asynchronous { _p1 = 1 } - r0, _, _ := syscall.Syscall6(procRegNotifyChangeKeyValue.Addr(), 5, uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1), 0) + r0, _, _ := syscall.SyscallN(procRegNotifyChangeKeyValue.Addr(), uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1)) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1183,7 +1190,7 @@ func RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, } func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegOpenKeyExW.Addr(), 5, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)), 0) + r0, _, _ := syscall.SyscallN(procRegOpenKeyExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1191,7 +1198,7 @@ func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint } func RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) { - r0, _, _ := syscall.Syscall12(procRegQueryInfoKeyW.Addr(), 12, uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime))) + r0, _, _ := syscall.SyscallN(procRegQueryInfoKeyW.Addr(), uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1199,7 +1206,7 @@ func RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint } func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegQueryValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen))) + r0, _, _ := syscall.SyscallN(procRegQueryValueExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1207,7 +1214,7 @@ func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32 } func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procRegisterEventSourceW.Addr(), 2, uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)), 0) + r0, _, e1 := syscall.SyscallN(procRegisterEventSourceW.Addr(), uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1216,7 +1223,7 @@ func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Hand } func RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procRegisterServiceCtrlHandlerExW.Addr(), 3, uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context)) + r0, _, e1 := syscall.SyscallN(procRegisterServiceCtrlHandlerExW.Addr(), uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1225,7 +1232,7 @@ func RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, cont } func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procReportEventW.Addr(), 9, uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData))) + r1, _, e1 := syscall.SyscallN(procReportEventW.Addr(), uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData))) if r1 == 0 { err = errnoErr(e1) } @@ -1233,7 +1240,7 @@ func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrS } func RevertToSelf() (err error) { - r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0) + r1, _, e1 := syscall.SyscallN(procRevertToSelf.Addr()) if r1 == 0 { err = errnoErr(e1) } @@ -1241,7 +1248,7 @@ func RevertToSelf() (err error) { } func setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) { - r0, _, _ := syscall.Syscall6(procSetEntriesInAclW.Addr(), 4, uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL)), 0, 0) + r0, _, _ := syscall.SyscallN(procSetEntriesInAclW.Addr(), uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1249,7 +1256,7 @@ func setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCE } func SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) { - r1, _, e1 := syscall.Syscall(procSetKernelObjectSecurity.Addr(), 3, uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor))) + r1, _, e1 := syscall.SyscallN(procSetKernelObjectSecurity.Addr(), uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor))) if r1 == 0 { err = errnoErr(e1) } @@ -1266,7 +1273,7 @@ func SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, security } func _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { - r0, _, _ := syscall.Syscall9(procSetNamedSecurityInfoW.Addr(), 7, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0) + r0, _, _ := syscall.SyscallN(procSetNamedSecurityInfoW.Addr(), uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1274,7 +1281,7 @@ func _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securi } func setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) { - r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet)) + r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet)) if r1 == 0 { err = errnoErr(e1) } @@ -1290,7 +1297,7 @@ func setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl * if daclDefaulted { _p1 = 1 } - r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorDacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1)) if r1 == 0 { err = errnoErr(e1) } @@ -1302,7 +1309,7 @@ func setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaul if groupDefaulted { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0)) + r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorGroup.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0)) if r1 == 0 { err = errnoErr(e1) } @@ -1314,7 +1321,7 @@ func setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaul if ownerDefaulted { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0)) + r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorOwner.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0)) if r1 == 0 { err = errnoErr(e1) } @@ -1322,7 +1329,7 @@ func setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaul } func setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) { - syscall.Syscall(procSetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) + syscall.SyscallN(procSetSecurityDescriptorRMControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl))) return } @@ -1335,7 +1342,7 @@ func setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl * if saclDefaulted { _p1 = 1 } - r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorSacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1)) if r1 == 0 { err = errnoErr(e1) } @@ -1343,7 +1350,7 @@ func setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl * } func SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { - r0, _, _ := syscall.Syscall9(procSetSecurityInfo.Addr(), 7, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0) + r0, _, _ := syscall.SyscallN(procSetSecurityInfo.Addr(), uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1351,7 +1358,7 @@ func SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformati } func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procSetServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(serviceStatus)), 0) + r1, _, e1 := syscall.SyscallN(procSetServiceStatus.Addr(), uintptr(service), uintptr(unsafe.Pointer(serviceStatus))) if r1 == 0 { err = errnoErr(e1) } @@ -1359,7 +1366,7 @@ func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) } func SetThreadToken(thread *Handle, token Token) (err error) { - r1, _, e1 := syscall.Syscall(procSetThreadToken.Addr(), 2, uintptr(unsafe.Pointer(thread)), uintptr(token), 0) + r1, _, e1 := syscall.SyscallN(procSetThreadToken.Addr(), uintptr(unsafe.Pointer(thread)), uintptr(token)) if r1 == 0 { err = errnoErr(e1) } @@ -1367,7 +1374,7 @@ func SetThreadToken(thread *Handle, token Token) (err error) { } func SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetTokenInformation.Addr(), 4, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetTokenInformation.Addr(), uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen)) if r1 == 0 { err = errnoErr(e1) } @@ -1375,7 +1382,7 @@ func SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint } func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { - r1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0) + r1, _, e1 := syscall.SyscallN(procStartServiceCtrlDispatcherW.Addr(), uintptr(unsafe.Pointer(serviceTable))) if r1 == 0 { err = errnoErr(e1) } @@ -1383,7 +1390,7 @@ func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { } func StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) { - r1, _, e1 := syscall.Syscall(procStartServiceW.Addr(), 3, uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors))) + r1, _, e1 := syscall.SyscallN(procStartServiceW.Addr(), uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors))) if r1 == 0 { err = errnoErr(e1) } @@ -1391,7 +1398,7 @@ func StartService(service Handle, numArgs uint32, argVectors **uint16) (err erro } func CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) { - r1, _, e1 := syscall.Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCertAddCertificateContextToStore.Addr(), uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext))) if r1 == 0 { err = errnoErr(e1) } @@ -1399,7 +1406,7 @@ func CertAddCertificateContextToStore(store Handle, certContext *CertContext, ad } func CertCloseStore(store Handle, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procCertCloseStore.Addr(), uintptr(store), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -1407,7 +1414,7 @@ func CertCloseStore(store Handle, flags uint32) (err error) { } func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) { - r0, _, e1 := syscall.Syscall(procCertCreateCertificateContext.Addr(), 3, uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen)) + r0, _, e1 := syscall.SyscallN(procCertCreateCertificateContext.Addr(), uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen)) context = (*CertContext)(unsafe.Pointer(r0)) if context == nil { err = errnoErr(e1) @@ -1416,7 +1423,7 @@ func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, en } func CertDeleteCertificateFromStore(certContext *CertContext) (err error) { - r1, _, e1 := syscall.Syscall(procCertDeleteCertificateFromStore.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCertDeleteCertificateFromStore.Addr(), uintptr(unsafe.Pointer(certContext))) if r1 == 0 { err = errnoErr(e1) } @@ -1424,13 +1431,13 @@ func CertDeleteCertificateFromStore(certContext *CertContext) (err error) { } func CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) { - r0, _, _ := syscall.Syscall(procCertDuplicateCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0) + r0, _, _ := syscall.SyscallN(procCertDuplicateCertificateContext.Addr(), uintptr(unsafe.Pointer(certContext))) dupContext = (*CertContext)(unsafe.Pointer(r0)) return } func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) { - r0, _, e1 := syscall.Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0) + r0, _, e1 := syscall.SyscallN(procCertEnumCertificatesInStore.Addr(), uintptr(store), uintptr(unsafe.Pointer(prevContext))) context = (*CertContext)(unsafe.Pointer(r0)) if context == nil { err = errnoErr(e1) @@ -1439,7 +1446,7 @@ func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (contex } func CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) { - r0, _, e1 := syscall.Syscall6(procCertFindCertificateInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevCertContext))) + r0, _, e1 := syscall.SyscallN(procCertFindCertificateInStore.Addr(), uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevCertContext))) cert = (*CertContext)(unsafe.Pointer(r0)) if cert == nil { err = errnoErr(e1) @@ -1448,7 +1455,7 @@ func CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags } func CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) { - r0, _, e1 := syscall.Syscall6(procCertFindChainInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevChainContext))) + r0, _, e1 := syscall.SyscallN(procCertFindChainInStore.Addr(), uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevChainContext))) certchain = (*CertChainContext)(unsafe.Pointer(r0)) if certchain == nil { err = errnoErr(e1) @@ -1457,18 +1464,18 @@ func CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint3 } func CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) { - r0, _, _ := syscall.Syscall(procCertFindExtension.Addr(), 3, uintptr(unsafe.Pointer(objId)), uintptr(countExtensions), uintptr(unsafe.Pointer(extensions))) + r0, _, _ := syscall.SyscallN(procCertFindExtension.Addr(), uintptr(unsafe.Pointer(objId)), uintptr(countExtensions), uintptr(unsafe.Pointer(extensions))) ret = (*CertExtension)(unsafe.Pointer(r0)) return } func CertFreeCertificateChain(ctx *CertChainContext) { - syscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) + syscall.SyscallN(procCertFreeCertificateChain.Addr(), uintptr(unsafe.Pointer(ctx))) return } func CertFreeCertificateContext(ctx *CertContext) (err error) { - r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCertFreeCertificateContext.Addr(), uintptr(unsafe.Pointer(ctx))) if r1 == 0 { err = errnoErr(e1) } @@ -1476,7 +1483,7 @@ func CertFreeCertificateContext(ctx *CertContext) (err error) { } func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) { - r1, _, e1 := syscall.Syscall9(procCertGetCertificateChain.Addr(), 8, uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)), 0) + r1, _, e1 := syscall.SyscallN(procCertGetCertificateChain.Addr(), uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx))) if r1 == 0 { err = errnoErr(e1) } @@ -1484,13 +1491,13 @@ func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, a } func CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) { - r0, _, _ := syscall.Syscall6(procCertGetNameStringW.Addr(), 6, uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size)) + r0, _, _ := syscall.SyscallN(procCertGetNameStringW.Addr(), uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size)) chars = uint32(r0) return } func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0) + r0, _, e1 := syscall.SyscallN(procCertOpenStore.Addr(), uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1499,7 +1506,7 @@ func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptPr } func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { - r0, _, e1 := syscall.Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0) + r0, _, e1 := syscall.SyscallN(procCertOpenSystemStoreW.Addr(), uintptr(hprov), uintptr(unsafe.Pointer(name))) store = Handle(r0) if store == 0 { err = errnoErr(e1) @@ -1508,7 +1515,7 @@ func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { } func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) { - r1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCertVerifyCertificateChainPolicy.Addr(), uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status))) if r1 == 0 { err = errnoErr(e1) } @@ -1520,7 +1527,7 @@ func CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, paramete if *callerFreeProvOrNCryptKey { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procCryptAcquireCertificatePrivateKey.Addr(), 6, uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0))) + r1, _, e1 := syscall.SyscallN(procCryptAcquireCertificatePrivateKey.Addr(), uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0))) *callerFreeProvOrNCryptKey = _p0 != 0 if r1 == 0 { err = errnoErr(e1) @@ -1529,7 +1536,7 @@ func CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, paramete } func CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procCryptDecodeObject.Addr(), 7, uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCryptDecodeObject.Addr(), uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen))) if r1 == 0 { err = errnoErr(e1) } @@ -1537,7 +1544,7 @@ func CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte } func CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { - r1, _, e1 := syscall.Syscall9(procCryptProtectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCryptProtectData.Addr(), uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut))) if r1 == 0 { err = errnoErr(e1) } @@ -1545,7 +1552,7 @@ func CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, } func CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) { - r1, _, e1 := syscall.Syscall12(procCryptQueryObject.Addr(), 11, uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context)), 0) + r1, _, e1 := syscall.SyscallN(procCryptQueryObject.Addr(), uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context))) if r1 == 0 { err = errnoErr(e1) } @@ -1553,7 +1560,7 @@ func CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentT } func CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { - r1, _, e1 := syscall.Syscall9(procCryptUnprotectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCryptUnprotectData.Addr(), uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut))) if r1 == 0 { err = errnoErr(e1) } @@ -1561,7 +1568,7 @@ func CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBl } func PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) { - r0, _, e1 := syscall.Syscall(procPFXImportCertStore.Addr(), 3, uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags)) + r0, _, e1 := syscall.SyscallN(procPFXImportCertStore.Addr(), uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags)) store = Handle(r0) if store == 0 { err = errnoErr(e1) @@ -1570,7 +1577,7 @@ func PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (sto } func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) { - r0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0) + r0, _, _ := syscall.SyscallN(procDnsNameCompare_W.Addr(), uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2))) same = r0 != 0 return } @@ -1585,7 +1592,7 @@ func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSR } func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { - r0, _, _ := syscall.Syscall6(procDnsQuery_W.Addr(), 6, uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr))) + r0, _, _ := syscall.SyscallN(procDnsQuery_W.Addr(), uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr))) if r0 != 0 { status = syscall.Errno(r0) } @@ -1593,12 +1600,12 @@ func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DN } func DnsRecordListFree(rl *DNSRecord, freetype uint32) { - syscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0) + syscall.SyscallN(procDnsRecordListFree.Addr(), uintptr(unsafe.Pointer(rl)), uintptr(freetype)) return } func DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { - r0, _, _ := syscall.Syscall6(procDwmGetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) + r0, _, _ := syscall.SyscallN(procDwmGetWindowAttribute.Addr(), uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size)) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1606,7 +1613,7 @@ func DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, si } func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { - r0, _, _ := syscall.Syscall6(procDwmSetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) + r0, _, _ := syscall.SyscallN(procDwmSetWindowAttribute.Addr(), uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size)) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1614,15 +1621,20 @@ func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, si } func CancelMibChangeNotify2(notificationHandle Handle) (errcode error) { - r0, _, _ := syscall.Syscall(procCancelMibChangeNotify2.Addr(), 1, uintptr(notificationHandle), 0, 0) + r0, _, _ := syscall.SyscallN(procCancelMibChangeNotify2.Addr(), uintptr(notificationHandle)) if r0 != 0 { errcode = syscall.Errno(r0) } return } +func FreeMibTable(memory unsafe.Pointer) { + syscall.SyscallN(procFreeMibTable.Addr(), uintptr(memory)) + return +} + func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) { - r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0) + r0, _, _ := syscall.SyscallN(procGetAdaptersAddresses.Addr(), uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1630,7 +1642,7 @@ func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapter } func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { - r0, _, _ := syscall.Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0) + r0, _, _ := syscall.SyscallN(procGetAdaptersInfo.Addr(), uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1638,7 +1650,7 @@ func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { } func getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) { - r0, _, _ := syscall.Syscall(procGetBestInterfaceEx.Addr(), 2, uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex)), 0) + r0, _, _ := syscall.SyscallN(procGetBestInterfaceEx.Addr(), uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1646,7 +1658,7 @@ func getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcod } func GetIfEntry(pIfRow *MibIfRow) (errcode error) { - r0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetIfEntry.Addr(), uintptr(unsafe.Pointer(pIfRow))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1654,7 +1666,23 @@ func GetIfEntry(pIfRow *MibIfRow) (errcode error) { } func GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) { - r0, _, _ := syscall.Syscall(procGetIfEntry2Ex.Addr(), 2, uintptr(level), uintptr(unsafe.Pointer(row)), 0) + r0, _, _ := syscall.SyscallN(procGetIfEntry2Ex.Addr(), uintptr(level), uintptr(unsafe.Pointer(row))) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func GetIpForwardEntry2(row *MibIpForwardRow2) (errcode error) { + r0, _, _ := syscall.SyscallN(procGetIpForwardEntry2.Addr(), uintptr(unsafe.Pointer(row))) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func GetIpForwardTable2(family uint16, table **MibIpForwardTable2) (errcode error) { + r0, _, _ := syscall.SyscallN(procGetIpForwardTable2.Addr(), uintptr(family), uintptr(unsafe.Pointer(table))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1662,7 +1690,7 @@ func GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) { } func GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) { - r0, _, _ := syscall.Syscall(procGetUnicastIpAddressEntry.Addr(), 1, uintptr(unsafe.Pointer(row)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetUnicastIpAddressEntry.Addr(), uintptr(unsafe.Pointer(row))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1674,7 +1702,19 @@ func NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsa if initialNotification { _p0 = 1 } - r0, _, _ := syscall.Syscall6(procNotifyIpInterfaceChange.Addr(), 5, uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)), 0) + r0, _, _ := syscall.SyscallN(procNotifyIpInterfaceChange.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle))) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func NotifyRouteChange2(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) { + var _p0 uint32 + if initialNotification { + _p0 = 1 + } + r0, _, _ := syscall.SyscallN(procNotifyRouteChange2.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1686,7 +1726,7 @@ func NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext if initialNotification { _p0 = 1 } - r0, _, _ := syscall.Syscall6(procNotifyUnicastIpAddressChange.Addr(), 5, uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)), 0) + r0, _, _ := syscall.SyscallN(procNotifyUnicastIpAddressChange.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1694,7 +1734,7 @@ func NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext } func AddDllDirectory(path *uint16) (cookie uintptr, err error) { - r0, _, e1 := syscall.Syscall(procAddDllDirectory.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + r0, _, e1 := syscall.SyscallN(procAddDllDirectory.Addr(), uintptr(unsafe.Pointer(path))) cookie = uintptr(r0) if cookie == 0 { err = errnoErr(e1) @@ -1703,7 +1743,7 @@ func AddDllDirectory(path *uint16) (cookie uintptr, err error) { } func AssignProcessToJobObject(job Handle, process Handle) (err error) { - r1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0) + r1, _, e1 := syscall.SyscallN(procAssignProcessToJobObject.Addr(), uintptr(job), uintptr(process)) if r1 == 0 { err = errnoErr(e1) } @@ -1711,7 +1751,7 @@ func AssignProcessToJobObject(job Handle, process Handle) (err error) { } func CancelIo(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) + r1, _, e1 := syscall.SyscallN(procCancelIo.Addr(), uintptr(s)) if r1 == 0 { err = errnoErr(e1) } @@ -1719,7 +1759,7 @@ func CancelIo(s Handle) (err error) { } func CancelIoEx(s Handle, o *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0) + r1, _, e1 := syscall.SyscallN(procCancelIoEx.Addr(), uintptr(s), uintptr(unsafe.Pointer(o))) if r1 == 0 { err = errnoErr(e1) } @@ -1727,7 +1767,7 @@ func CancelIoEx(s Handle, o *Overlapped) (err error) { } func ClearCommBreak(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procClearCommBreak.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procClearCommBreak.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -1735,7 +1775,7 @@ func ClearCommBreak(handle Handle) (err error) { } func ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) { - r1, _, e1 := syscall.Syscall(procClearCommError.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat))) + r1, _, e1 := syscall.SyscallN(procClearCommError.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat))) if r1 == 0 { err = errnoErr(e1) } @@ -1743,7 +1783,7 @@ func ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error } func CloseHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procCloseHandle.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -1751,12 +1791,12 @@ func CloseHandle(handle Handle) (err error) { } func ClosePseudoConsole(console Handle) { - syscall.Syscall(procClosePseudoConsole.Addr(), 1, uintptr(console), 0, 0) + syscall.SyscallN(procClosePseudoConsole.Addr(), uintptr(console)) return } func ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procConnectNamedPipe.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -1764,7 +1804,7 @@ func ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) { } func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { - r1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0) + r1, _, e1 := syscall.SyscallN(procCreateDirectoryW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa))) if r1 == 0 { err = errnoErr(e1) } @@ -1772,7 +1812,7 @@ func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { } func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateEventExW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateEventExW.Addr(), uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess)) handle = Handle(r0) if handle == 0 || e1 == ERROR_ALREADY_EXISTS { err = errnoErr(e1) @@ -1781,7 +1821,7 @@ func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, d } func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateEventW.Addr(), uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 || e1 == ERROR_ALREADY_EXISTS { err = errnoErr(e1) @@ -1790,7 +1830,7 @@ func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialStat } func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) + r0, _, e1 := syscall.SyscallN(procCreateFileMappingW.Addr(), uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 || e1 == ERROR_ALREADY_EXISTS { err = errnoErr(e1) @@ -1799,7 +1839,7 @@ func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxS } func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateFileW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -1808,7 +1848,7 @@ func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes } func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) + r1, _, e1 := syscall.SyscallN(procCreateHardLinkW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) if r1&0xff == 0 { err = errnoErr(e1) } @@ -1816,7 +1856,7 @@ func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr } func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateIoCompletionPort.Addr(), uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1825,7 +1865,7 @@ func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, thr } func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procCreateJobObjectW.Addr(), 2, uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)), 0) + r0, _, e1 := syscall.SyscallN(procCreateJobObjectW.Addr(), uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1834,7 +1874,7 @@ func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, } func CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateMutexExW.Addr(), 4, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateMutexExW.Addr(), uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess)) handle = Handle(r0) if handle == 0 || e1 == ERROR_ALREADY_EXISTS { err = errnoErr(e1) @@ -1847,7 +1887,7 @@ func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16 if initialOwner { _p0 = 1 } - r0, _, e1 := syscall.Syscall(procCreateMutexW.Addr(), 3, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name))) + r0, _, e1 := syscall.SyscallN(procCreateMutexW.Addr(), uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 || e1 == ERROR_ALREADY_EXISTS { err = errnoErr(e1) @@ -1856,7 +1896,7 @@ func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16 } func CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall9(procCreateNamedPipeW.Addr(), 8, uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)), 0) + r0, _, e1 := syscall.SyscallN(procCreateNamedPipeW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa))) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -1865,7 +1905,7 @@ func CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances u } func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0) + r1, _, e1 := syscall.SyscallN(procCreatePipe.Addr(), uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size)) if r1 == 0 { err = errnoErr(e1) } @@ -1877,7 +1917,7 @@ func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityA if inheritHandles { _p0 = 1 } - r1, _, e1 := syscall.Syscall12(procCreateProcessW.Addr(), 10, uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCreateProcessW.Addr(), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo))) if r1 == 0 { err = errnoErr(e1) } @@ -1885,7 +1925,7 @@ func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityA } func createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) { - r0, _, _ := syscall.Syscall6(procCreatePseudoConsole.Addr(), 5, uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole)), 0) + r0, _, _ := syscall.SyscallN(procCreatePseudoConsole.Addr(), uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole))) if r0 != 0 { hr = syscall.Errno(r0) } @@ -1893,7 +1933,7 @@ func createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pcons } func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) + r1, _, e1 := syscall.SyscallN(procCreateSymbolicLinkW.Addr(), uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) if r1&0xff == 0 { err = errnoErr(e1) } @@ -1901,7 +1941,7 @@ func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags u } func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0) + r0, _, e1 := syscall.SyscallN(procCreateToolhelp32Snapshot.Addr(), uintptr(flags), uintptr(processId)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -1910,7 +1950,7 @@ func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, er } func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDefineDosDeviceW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath))) + r1, _, e1 := syscall.SyscallN(procDefineDosDeviceW.Addr(), uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath))) if r1 == 0 { err = errnoErr(e1) } @@ -1918,7 +1958,7 @@ func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err } func DeleteFile(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + r1, _, e1 := syscall.SyscallN(procDeleteFileW.Addr(), uintptr(unsafe.Pointer(path))) if r1 == 0 { err = errnoErr(e1) } @@ -1926,12 +1966,12 @@ func DeleteFile(path *uint16) (err error) { } func deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) { - syscall.Syscall(procDeleteProcThreadAttributeList.Addr(), 1, uintptr(unsafe.Pointer(attrlist)), 0, 0) + syscall.SyscallN(procDeleteProcThreadAttributeList.Addr(), uintptr(unsafe.Pointer(attrlist))) return } func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0) + r1, _, e1 := syscall.SyscallN(procDeleteVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint))) if r1 == 0 { err = errnoErr(e1) } @@ -1939,7 +1979,7 @@ func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { } func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procDeviceIoControl.Addr(), uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -1947,7 +1987,7 @@ func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBuff } func DisconnectNamedPipe(pipe Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDisconnectNamedPipe.Addr(), 1, uintptr(pipe), 0, 0) + r1, _, e1 := syscall.SyscallN(procDisconnectNamedPipe.Addr(), uintptr(pipe)) if r1 == 0 { err = errnoErr(e1) } @@ -1959,7 +1999,7 @@ func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetP if bInheritHandle { _p0 = 1 } - r1, _, e1 := syscall.Syscall9(procDuplicateHandle.Addr(), 7, uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions), 0, 0) + r1, _, e1 := syscall.SyscallN(procDuplicateHandle.Addr(), uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions)) if r1 == 0 { err = errnoErr(e1) } @@ -1967,7 +2007,7 @@ func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetP } func EscapeCommFunction(handle Handle, dwFunc uint32) (err error) { - r1, _, e1 := syscall.Syscall(procEscapeCommFunction.Addr(), 2, uintptr(handle), uintptr(dwFunc), 0) + r1, _, e1 := syscall.SyscallN(procEscapeCommFunction.Addr(), uintptr(handle), uintptr(dwFunc)) if r1 == 0 { err = errnoErr(e1) } @@ -1975,12 +2015,12 @@ func EscapeCommFunction(handle Handle, dwFunc uint32) (err error) { } func ExitProcess(exitcode uint32) { - syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) + syscall.SyscallN(procExitProcess.Addr(), uintptr(exitcode)) return } func ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) + r0, _, e1 := syscall.SyscallN(procExpandEnvironmentStringsW.Addr(), uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -1989,7 +2029,7 @@ func ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, } func FindClose(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procFindClose.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -1997,7 +2037,7 @@ func FindClose(handle Handle) (err error) { } func FindCloseChangeNotification(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindCloseChangeNotification.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procFindCloseChangeNotification.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -2018,7 +2058,7 @@ func _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter if watchSubtree { _p1 = 1 } - r0, _, e1 := syscall.Syscall(procFindFirstChangeNotificationW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter)) + r0, _, e1 := syscall.SyscallN(procFindFirstChangeNotificationW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -2027,7 +2067,7 @@ func _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter } func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0) + r0, _, e1 := syscall.SyscallN(procFindFirstFileW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data))) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -2036,7 +2076,7 @@ func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err erro } func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) + r0, _, e1 := syscall.SyscallN(procFindFirstVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -2045,7 +2085,7 @@ func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, b } func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstVolumeW.Addr(), 2, uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength), 0) + r0, _, e1 := syscall.SyscallN(procFindFirstVolumeW.Addr(), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -2054,7 +2094,7 @@ func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, er } func FindNextChangeNotification(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextChangeNotification.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procFindNextChangeNotification.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -2062,7 +2102,7 @@ func FindNextChangeNotification(handle Handle) (err error) { } func findNextFile1(handle Handle, data *win32finddata1) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) + r1, _, e1 := syscall.SyscallN(procFindNextFileW.Addr(), uintptr(handle), uintptr(unsafe.Pointer(data))) if r1 == 0 { err = errnoErr(e1) } @@ -2070,7 +2110,7 @@ func findNextFile1(handle Handle, data *win32finddata1) (err error) { } func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextVolumeMountPointW.Addr(), 3, uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) + r1, _, e1 := syscall.SyscallN(procFindNextVolumeMountPointW.Addr(), uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) if r1 == 0 { err = errnoErr(e1) } @@ -2078,7 +2118,7 @@ func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uin } func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextVolumeW.Addr(), 3, uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) + r1, _, e1 := syscall.SyscallN(procFindNextVolumeW.Addr(), uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) if r1 == 0 { err = errnoErr(e1) } @@ -2086,7 +2126,7 @@ func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) } func findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindResourceW.Addr(), 3, uintptr(module), uintptr(name), uintptr(resType)) + r0, _, e1 := syscall.SyscallN(procFindResourceW.Addr(), uintptr(module), uintptr(name), uintptr(resType)) resInfo = Handle(r0) if resInfo == 0 { err = errnoErr(e1) @@ -2095,7 +2135,7 @@ func findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, } func FindVolumeClose(findVolume Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0) + r1, _, e1 := syscall.SyscallN(procFindVolumeClose.Addr(), uintptr(findVolume)) if r1 == 0 { err = errnoErr(e1) } @@ -2103,7 +2143,15 @@ func FindVolumeClose(findVolume Handle) (err error) { } func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindVolumeMountPointClose.Addr(), 1, uintptr(findVolumeMountPoint), 0, 0) + r1, _, e1 := syscall.SyscallN(procFindVolumeMountPointClose.Addr(), uintptr(findVolumeMountPoint)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FlushConsoleInputBuffer(console Handle) (err error) { + r1, _, e1 := syscall.SyscallN(procFlushConsoleInputBuffer.Addr(), uintptr(console)) if r1 == 0 { err = errnoErr(e1) } @@ -2111,7 +2159,7 @@ func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { } func FlushFileBuffers(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procFlushFileBuffers.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -2119,7 +2167,7 @@ func FlushFileBuffers(handle Handle) (err error) { } func FlushViewOfFile(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0) + r1, _, e1 := syscall.SyscallN(procFlushViewOfFile.Addr(), uintptr(addr), uintptr(length)) if r1 == 0 { err = errnoErr(e1) } @@ -2131,7 +2179,7 @@ func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, bu if len(buf) > 0 { _p0 = &buf[0] } - r0, _, e1 := syscall.Syscall9(procFormatMessageW.Addr(), 7, uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)), 0, 0) + r0, _, e1 := syscall.SyscallN(procFormatMessageW.Addr(), uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args))) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2140,7 +2188,7 @@ func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, bu } func FreeEnvironmentStrings(envs *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0) + r1, _, e1 := syscall.SyscallN(procFreeEnvironmentStringsW.Addr(), uintptr(unsafe.Pointer(envs))) if r1 == 0 { err = errnoErr(e1) } @@ -2148,7 +2196,7 @@ func FreeEnvironmentStrings(envs *uint16) (err error) { } func FreeLibrary(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procFreeLibrary.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -2156,7 +2204,7 @@ func FreeLibrary(handle Handle) (err error) { } func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGenerateConsoleCtrlEvent.Addr(), 2, uintptr(ctrlEvent), uintptr(processGroupID), 0) + r1, _, e1 := syscall.SyscallN(procGenerateConsoleCtrlEvent.Addr(), uintptr(ctrlEvent), uintptr(processGroupID)) if r1 == 0 { err = errnoErr(e1) } @@ -2164,19 +2212,19 @@ func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err erro } func GetACP() (acp uint32) { - r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetACP.Addr()) acp = uint32(r0) return } func GetActiveProcessorCount(groupNumber uint16) (ret uint32) { - r0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) + r0, _, _ := syscall.SyscallN(procGetActiveProcessorCount.Addr(), uintptr(groupNumber)) ret = uint32(r0) return } func GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetCommModemStatus.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpModemStat)), 0) + r1, _, e1 := syscall.SyscallN(procGetCommModemStatus.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpModemStat))) if r1 == 0 { err = errnoErr(e1) } @@ -2184,7 +2232,7 @@ func GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) { } func GetCommState(handle Handle, lpDCB *DCB) (err error) { - r1, _, e1 := syscall.Syscall(procGetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0) + r1, _, e1 := syscall.SyscallN(procGetCommState.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpDCB))) if r1 == 0 { err = errnoErr(e1) } @@ -2192,7 +2240,7 @@ func GetCommState(handle Handle, lpDCB *DCB) (err error) { } func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { - r1, _, e1 := syscall.Syscall(procGetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) + r1, _, e1 := syscall.SyscallN(procGetCommTimeouts.Addr(), uintptr(handle), uintptr(unsafe.Pointer(timeouts))) if r1 == 0 { err = errnoErr(e1) } @@ -2200,13 +2248,13 @@ func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { } func GetCommandLine() (cmd *uint16) { - r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetCommandLineW.Addr()) cmd = (*uint16)(unsafe.Pointer(r0)) return } func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) + r1, _, e1 := syscall.SyscallN(procGetComputerNameExW.Addr(), uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) if r1 == 0 { err = errnoErr(e1) } @@ -2214,7 +2262,7 @@ func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { } func GetComputerName(buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0) + r1, _, e1 := syscall.SyscallN(procGetComputerNameW.Addr(), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) if r1 == 0 { err = errnoErr(e1) } @@ -2222,7 +2270,7 @@ func GetComputerName(buf *uint16, n *uint32) (err error) { } func GetConsoleCP() (cp uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetConsoleCP.Addr(), 0, 0, 0, 0) + r0, _, e1 := syscall.SyscallN(procGetConsoleCP.Addr()) cp = uint32(r0) if cp == 0 { err = errnoErr(e1) @@ -2231,7 +2279,7 @@ func GetConsoleCP() (cp uint32, err error) { } func GetConsoleMode(console Handle, mode *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0) + r1, _, e1 := syscall.SyscallN(procGetConsoleMode.Addr(), uintptr(console), uintptr(unsafe.Pointer(mode))) if r1 == 0 { err = errnoErr(e1) } @@ -2239,7 +2287,7 @@ func GetConsoleMode(console Handle, mode *uint32) (err error) { } func GetConsoleOutputCP() (cp uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetConsoleOutputCP.Addr(), 0, 0, 0, 0) + r0, _, e1 := syscall.SyscallN(procGetConsoleOutputCP.Addr()) cp = uint32(r0) if cp == 0 { err = errnoErr(e1) @@ -2248,7 +2296,7 @@ func GetConsoleOutputCP() (cp uint32, err error) { } func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) { - r1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0) + r1, _, e1 := syscall.SyscallN(procGetConsoleScreenBufferInfo.Addr(), uintptr(console), uintptr(unsafe.Pointer(info))) if r1 == 0 { err = errnoErr(e1) } @@ -2256,7 +2304,7 @@ func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) ( } func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) + r0, _, e1 := syscall.SyscallN(procGetCurrentDirectoryW.Addr(), uintptr(buflen), uintptr(unsafe.Pointer(buf))) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2265,19 +2313,19 @@ func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { } func GetCurrentProcessId() (pid uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetCurrentProcessId.Addr()) pid = uint32(r0) return } func GetCurrentThreadId() (id uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetCurrentThreadId.Addr()) id = uint32(r0) return } func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) { - r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetDiskFreeSpaceExW.Addr(), uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes))) if r1 == 0 { err = errnoErr(e1) } @@ -2285,13 +2333,13 @@ func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint6 } func GetDriveType(rootPathName *uint16) (driveType uint32) { - r0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetDriveTypeW.Addr(), uintptr(unsafe.Pointer(rootPathName))) driveType = uint32(r0) return } func GetEnvironmentStrings() (envs *uint16, err error) { - r0, _, e1 := syscall.Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0) + r0, _, e1 := syscall.SyscallN(procGetEnvironmentStringsW.Addr()) envs = (*uint16)(unsafe.Pointer(r0)) if envs == nil { err = errnoErr(e1) @@ -2300,7 +2348,7 @@ func GetEnvironmentStrings() (envs *uint16, err error) { } func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) + r0, _, e1 := syscall.SyscallN(procGetEnvironmentVariableW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2309,7 +2357,7 @@ func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32 } func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0) + r1, _, e1 := syscall.SyscallN(procGetExitCodeProcess.Addr(), uintptr(handle), uintptr(unsafe.Pointer(exitcode))) if r1 == 0 { err = errnoErr(e1) } @@ -2317,7 +2365,7 @@ func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { } func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { - r1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) + r1, _, e1 := syscall.SyscallN(procGetFileAttributesExW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) if r1 == 0 { err = errnoErr(e1) } @@ -2325,7 +2373,7 @@ func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { } func GetFileAttributes(name *uint16) (attrs uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetFileAttributesW.Addr(), uintptr(unsafe.Pointer(name))) attrs = uint32(r0) if attrs == INVALID_FILE_ATTRIBUTES { err = errnoErr(e1) @@ -2334,7 +2382,7 @@ func GetFileAttributes(name *uint16) (attrs uint32, err error) { } func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) { - r1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) + r1, _, e1 := syscall.SyscallN(procGetFileInformationByHandle.Addr(), uintptr(handle), uintptr(unsafe.Pointer(data))) if r1 == 0 { err = errnoErr(e1) } @@ -2342,7 +2390,7 @@ func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (e } func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetFileInformationByHandleEx.Addr(), uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen)) if r1 == 0 { err = errnoErr(e1) } @@ -2350,7 +2398,7 @@ func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, } func GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procGetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetFileTime.Addr(), uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime))) if r1 == 0 { err = errnoErr(e1) } @@ -2358,7 +2406,7 @@ func GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetim } func GetFileType(filehandle Handle) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetFileType.Addr(), uintptr(filehandle)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2367,7 +2415,7 @@ func GetFileType(filehandle Handle) (n uint32, err error) { } func GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall6(procGetFinalPathNameByHandleW.Addr(), 4, uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetFinalPathNameByHandleW.Addr(), uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2376,7 +2424,7 @@ func GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32 } func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetFullPathNameW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname))) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2385,13 +2433,13 @@ func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) ( } func GetLargePageMinimum() (size uintptr) { - r0, _, _ := syscall.Syscall(procGetLargePageMinimum.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetLargePageMinimum.Addr()) size = uintptr(r0) return } func GetLastError() (lasterr error) { - r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetLastError.Addr()) if r0 != 0 { lasterr = syscall.Errno(r0) } @@ -2399,7 +2447,7 @@ func GetLastError() (lasterr error) { } func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLogicalDriveStringsW.Addr(), 2, uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)), 0) + r0, _, e1 := syscall.SyscallN(procGetLogicalDriveStringsW.Addr(), uintptr(bufferLength), uintptr(unsafe.Pointer(buffer))) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2408,7 +2456,7 @@ func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err } func GetLogicalDrives() (drivesBitMask uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLogicalDrives.Addr(), 0, 0, 0, 0) + r0, _, e1 := syscall.SyscallN(procGetLogicalDrives.Addr()) drivesBitMask = uint32(r0) if drivesBitMask == 0 { err = errnoErr(e1) @@ -2417,7 +2465,7 @@ func GetLogicalDrives() (drivesBitMask uint32, err error) { } func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) + r0, _, e1 := syscall.SyscallN(procGetLongPathNameW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2426,13 +2474,13 @@ func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err er } func GetMaximumProcessorCount(groupNumber uint16) (ret uint32) { - r0, _, _ := syscall.Syscall(procGetMaximumProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) + r0, _, _ := syscall.SyscallN(procGetMaximumProcessorCount.Addr(), uintptr(groupNumber)) ret = uint32(r0) return } func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) + r0, _, e1 := syscall.SyscallN(procGetModuleFileNameW.Addr(), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2441,7 +2489,7 @@ func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, } func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) { - r1, _, e1 := syscall.Syscall(procGetModuleHandleExW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module))) + r1, _, e1 := syscall.SyscallN(procGetModuleHandleExW.Addr(), uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module))) if r1 == 0 { err = errnoErr(e1) } @@ -2449,7 +2497,7 @@ func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err er } func GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetNamedPipeClientProcessId.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(clientProcessID)), 0) + r1, _, e1 := syscall.SyscallN(procGetNamedPipeClientProcessId.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(clientProcessID))) if r1 == 0 { err = errnoErr(e1) } @@ -2457,7 +2505,7 @@ func GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err erro } func GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetNamedPipeHandleStateW.Addr(), 7, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetNamedPipeHandleStateW.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize)) if r1 == 0 { err = errnoErr(e1) } @@ -2465,7 +2513,7 @@ func GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, m } func GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetNamedPipeInfo.Addr(), 5, uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)), 0) + r1, _, e1 := syscall.SyscallN(procGetNamedPipeInfo.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances))) if r1 == 0 { err = errnoErr(e1) } @@ -2473,7 +2521,15 @@ func GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint3 } func GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetNamedPipeServerProcessId.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(serverProcessID)), 0) + r1, _, e1 := syscall.SyscallN(procGetNamedPipeServerProcessId.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(serverProcessID))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetNumberOfConsoleInputEvents(console Handle, numevents *uint32) (err error) { + r1, _, e1 := syscall.SyscallN(procGetNumberOfConsoleInputEvents.Addr(), uintptr(console), uintptr(unsafe.Pointer(numevents))) if r1 == 0 { err = errnoErr(e1) } @@ -2485,7 +2541,7 @@ func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wa if wait { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetOverlappedResult.Addr(), uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0)) if r1 == 0 { err = errnoErr(e1) } @@ -2493,7 +2549,7 @@ func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wa } func GetPriorityClass(process Handle) (ret uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetPriorityClass.Addr(), 1, uintptr(process), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetPriorityClass.Addr(), uintptr(process)) ret = uint32(r0) if ret == 0 { err = errnoErr(e1) @@ -2511,7 +2567,7 @@ func GetProcAddress(module Handle, procname string) (proc uintptr, err error) { } func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { - r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procname)), 0) + r0, _, e1 := syscall.SyscallN(procGetProcAddress.Addr(), uintptr(module), uintptr(unsafe.Pointer(procname))) proc = uintptr(r0) if proc == 0 { err = errnoErr(e1) @@ -2520,7 +2576,7 @@ func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { } func GetProcessId(process Handle) (id uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetProcessId.Addr(), 1, uintptr(process), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetProcessId.Addr(), uintptr(process)) id = uint32(r0) if id == 0 { err = errnoErr(e1) @@ -2529,7 +2585,7 @@ func GetProcessId(process Handle) (id uint32, err error) { } func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetProcessPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetProcessPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize))) if r1 == 0 { err = errnoErr(e1) } @@ -2537,7 +2593,7 @@ func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uin } func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetProcessShutdownParameters.Addr(), 2, uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)), 0) + r1, _, e1 := syscall.SyscallN(procGetProcessShutdownParameters.Addr(), uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags))) if r1 == 0 { err = errnoErr(e1) } @@ -2545,7 +2601,7 @@ func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) { } func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0) + r1, _, e1 := syscall.SyscallN(procGetProcessTimes.Addr(), uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime))) if r1 == 0 { err = errnoErr(e1) } @@ -2553,12 +2609,12 @@ func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, } func GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) { - syscall.Syscall6(procGetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags)), 0, 0) + syscall.SyscallN(procGetProcessWorkingSetSizeEx.Addr(), uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags))) return } func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0) + r1, _, e1 := syscall.SyscallN(procGetQueuedCompletionStatus.Addr(), uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout)) if r1 == 0 { err = errnoErr(e1) } @@ -2566,7 +2622,7 @@ func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overl } func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) + r0, _, e1 := syscall.SyscallN(procGetShortPathNameW.Addr(), uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2575,12 +2631,12 @@ func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uin } func getStartupInfo(startupInfo *StartupInfo) { - syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) + syscall.SyscallN(procGetStartupInfoW.Addr(), uintptr(unsafe.Pointer(startupInfo))) return } func GetStdHandle(stdhandle uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetStdHandle.Addr(), uintptr(stdhandle)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -2589,7 +2645,7 @@ func GetStdHandle(stdhandle uint32) (handle Handle, err error) { } func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetSystemDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + r0, _, e1 := syscall.SyscallN(procGetSystemDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen)) len = uint32(r0) if len == 0 { err = errnoErr(e1) @@ -2598,7 +2654,7 @@ func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { } func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetSystemPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetSystemPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize))) if r1 == 0 { err = errnoErr(e1) } @@ -2606,17 +2662,17 @@ func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint } func GetSystemTimeAsFileTime(time *Filetime) { - syscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) + syscall.SyscallN(procGetSystemTimeAsFileTime.Addr(), uintptr(unsafe.Pointer(time))) return } func GetSystemTimePreciseAsFileTime(time *Filetime) { - syscall.Syscall(procGetSystemTimePreciseAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) + syscall.SyscallN(procGetSystemTimePreciseAsFileTime.Addr(), uintptr(unsafe.Pointer(time))) return } func getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetSystemWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + r0, _, e1 := syscall.SyscallN(procGetSystemWindowsDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen)) len = uint32(r0) if len == 0 { err = errnoErr(e1) @@ -2625,7 +2681,7 @@ func getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err erro } func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) + r0, _, e1 := syscall.SyscallN(procGetTempPathW.Addr(), uintptr(buflen), uintptr(unsafe.Pointer(buf))) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2634,7 +2690,7 @@ func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { } func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetThreadPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetThreadPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize))) if r1 == 0 { err = errnoErr(e1) } @@ -2642,13 +2698,13 @@ func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint } func getTickCount64() (ms uint64) { - r0, _, _ := syscall.Syscall(procGetTickCount64.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetTickCount64.Addr()) ms = uint64(r0) return } func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetTimeZoneInformation.Addr(), uintptr(unsafe.Pointer(tzi))) rc = uint32(r0) if rc == 0xffffffff { err = errnoErr(e1) @@ -2657,7 +2713,7 @@ func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { } func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetUserPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetUserPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize))) if r1 == 0 { err = errnoErr(e1) } @@ -2665,7 +2721,7 @@ func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16 } func GetVersion() (ver uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0) + r0, _, e1 := syscall.SyscallN(procGetVersion.Addr()) ver = uint32(r0) if ver == 0 { err = errnoErr(e1) @@ -2674,7 +2730,7 @@ func GetVersion() (ver uint32, err error) { } func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetVolumeInformationByHandleW.Addr(), 8, uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) + r1, _, e1 := syscall.SyscallN(procGetVolumeInformationByHandleW.Addr(), uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize)) if r1 == 0 { err = errnoErr(e1) } @@ -2682,7 +2738,7 @@ func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeN } func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetVolumeInformationW.Addr(), 8, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) + r1, _, e1 := syscall.SyscallN(procGetVolumeInformationW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize)) if r1 == 0 { err = errnoErr(e1) } @@ -2690,7 +2746,7 @@ func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volume } func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetVolumeNameForVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength)) + r1, _, e1 := syscall.SyscallN(procGetVolumeNameForVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength)) if r1 == 0 { err = errnoErr(e1) } @@ -2698,7 +2754,7 @@ func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint } func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetVolumePathNameW.Addr(), 3, uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength)) + r1, _, e1 := syscall.SyscallN(procGetVolumePathNameW.Addr(), uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength)) if r1 == 0 { err = errnoErr(e1) } @@ -2706,7 +2762,7 @@ func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength ui } func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetVolumePathNamesForVolumeNameW.Addr(), 4, uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetVolumePathNamesForVolumeNameW.Addr(), uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength))) if r1 == 0 { err = errnoErr(e1) } @@ -2714,7 +2770,7 @@ func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16 } func getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + r0, _, e1 := syscall.SyscallN(procGetWindowsDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen)) len = uint32(r0) if len == 0 { err = errnoErr(e1) @@ -2723,7 +2779,7 @@ func getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { } func initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procInitializeProcThreadAttributeList.Addr(), 4, uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size)), 0, 0) + r1, _, e1 := syscall.SyscallN(procInitializeProcThreadAttributeList.Addr(), uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size))) if r1 == 0 { err = errnoErr(e1) } @@ -2735,7 +2791,7 @@ func IsWow64Process(handle Handle, isWow64 *bool) (err error) { if *isWow64 { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procIsWow64Process.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(&_p0)), 0) + r1, _, e1 := syscall.SyscallN(procIsWow64Process.Addr(), uintptr(handle), uintptr(unsafe.Pointer(&_p0))) *isWow64 = _p0 != 0 if r1 == 0 { err = errnoErr(e1) @@ -2748,7 +2804,7 @@ func IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint1 if err != nil { return } - r1, _, e1 := syscall.Syscall(procIsWow64Process2.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine))) + r1, _, e1 := syscall.SyscallN(procIsWow64Process2.Addr(), uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine))) if r1 == 0 { err = errnoErr(e1) } @@ -2765,7 +2821,7 @@ func LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, e } func _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadLibraryExW.Addr(), 3, uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags)) + r0, _, e1 := syscall.SyscallN(procLoadLibraryExW.Addr(), uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2783,7 +2839,7 @@ func LoadLibrary(libname string) (handle Handle, err error) { } func _LoadLibrary(libname *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadLibraryW.Addr(), 1, uintptr(unsafe.Pointer(libname)), 0, 0) + r0, _, e1 := syscall.SyscallN(procLoadLibraryW.Addr(), uintptr(unsafe.Pointer(libname))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2792,7 +2848,7 @@ func _LoadLibrary(libname *uint16) (handle Handle, err error) { } func LoadResource(module Handle, resInfo Handle) (resData Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) + r0, _, e1 := syscall.SyscallN(procLoadResource.Addr(), uintptr(module), uintptr(resInfo)) resData = Handle(r0) if resData == 0 { err = errnoErr(e1) @@ -2801,7 +2857,7 @@ func LoadResource(module Handle, resInfo Handle) (resData Handle, err error) { } func LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) { - r0, _, e1 := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(flags), uintptr(length), 0) + r0, _, e1 := syscall.SyscallN(procLocalAlloc.Addr(), uintptr(flags), uintptr(length)) ptr = uintptr(r0) if ptr == 0 { err = errnoErr(e1) @@ -2810,7 +2866,7 @@ func LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) { } func LocalFree(hmem Handle) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0) + r0, _, e1 := syscall.SyscallN(procLocalFree.Addr(), uintptr(hmem)) handle = Handle(r0) if handle != 0 { err = errnoErr(e1) @@ -2819,7 +2875,7 @@ func LocalFree(hmem Handle) (handle Handle, err error) { } func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procLockFileEx.Addr(), 6, uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) + r1, _, e1 := syscall.SyscallN(procLockFileEx.Addr(), uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -2827,7 +2883,7 @@ func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, byt } func LockResource(resData Handle) (addr uintptr, err error) { - r0, _, e1 := syscall.Syscall(procLockResource.Addr(), 1, uintptr(resData), 0, 0) + r0, _, e1 := syscall.SyscallN(procLockResource.Addr(), uintptr(resData)) addr = uintptr(r0) if addr == 0 { err = errnoErr(e1) @@ -2836,7 +2892,7 @@ func LockResource(resData Handle) (addr uintptr, err error) { } func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) { - r0, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0) + r0, _, e1 := syscall.SyscallN(procMapViewOfFile.Addr(), uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length)) addr = uintptr(r0) if addr == 0 { err = errnoErr(e1) @@ -2845,7 +2901,7 @@ func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow ui } func Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procModule32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0) + r1, _, e1 := syscall.SyscallN(procModule32FirstW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -2853,7 +2909,7 @@ func Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { } func Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procModule32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0) + r1, _, e1 := syscall.SyscallN(procModule32NextW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -2861,7 +2917,7 @@ func Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { } func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) + r1, _, e1 := syscall.SyscallN(procMoveFileExW.Addr(), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -2869,7 +2925,7 @@ func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) { } func MoveFile(from *uint16, to *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0) + r1, _, e1 := syscall.SyscallN(procMoveFileW.Addr(), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to))) if r1 == 0 { err = errnoErr(e1) } @@ -2877,7 +2933,7 @@ func MoveFile(from *uint16, to *uint16) (err error) { } func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) { - r0, _, e1 := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6, uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar)) + r0, _, e1 := syscall.SyscallN(procMultiByteToWideChar.Addr(), uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar)) nwrite = int32(r0) if nwrite == 0 { err = errnoErr(e1) @@ -2890,7 +2946,7 @@ func OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle H if inheritHandle { _p0 = 1 } - r0, _, e1 := syscall.Syscall(procOpenEventW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) + r0, _, e1 := syscall.SyscallN(procOpenEventW.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2903,7 +2959,7 @@ func OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle H if inheritHandle { _p0 = 1 } - r0, _, e1 := syscall.Syscall(procOpenMutexW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) + r0, _, e1 := syscall.SyscallN(procOpenMutexW.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2916,7 +2972,7 @@ func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (ha if inheritHandle { _p0 = 1 } - r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(processId)) + r0, _, e1 := syscall.SyscallN(procOpenProcess.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(processId)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2929,7 +2985,7 @@ func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (hand if inheritHandle { _p0 = 1 } - r0, _, e1 := syscall.Syscall(procOpenThread.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(threadId)) + r0, _, e1 := syscall.SyscallN(procOpenThread.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(threadId)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2938,7 +2994,7 @@ func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (hand } func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0) + r1, _, e1 := syscall.SyscallN(procPostQueuedCompletionStatus.Addr(), uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -2946,7 +3002,7 @@ func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overla } func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) + r1, _, e1 := syscall.SyscallN(procProcess32FirstW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(procEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -2954,7 +3010,7 @@ func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { } func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) + r1, _, e1 := syscall.SyscallN(procProcess32NextW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(procEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -2962,7 +3018,7 @@ func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { } func ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procProcessIdToSessionId.Addr(), 2, uintptr(pid), uintptr(unsafe.Pointer(sessionid)), 0) + r1, _, e1 := syscall.SyscallN(procProcessIdToSessionId.Addr(), uintptr(pid), uintptr(unsafe.Pointer(sessionid))) if r1 == 0 { err = errnoErr(e1) } @@ -2970,7 +3026,7 @@ func ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) { } func PulseEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procPulseEvent.Addr(), 1, uintptr(event), 0, 0) + r1, _, e1 := syscall.SyscallN(procPulseEvent.Addr(), uintptr(event)) if r1 == 0 { err = errnoErr(e1) } @@ -2978,7 +3034,7 @@ func PulseEvent(event Handle) (err error) { } func PurgeComm(handle Handle, dwFlags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procPurgeComm.Addr(), 2, uintptr(handle), uintptr(dwFlags), 0) + r1, _, e1 := syscall.SyscallN(procPurgeComm.Addr(), uintptr(handle), uintptr(dwFlags)) if r1 == 0 { err = errnoErr(e1) } @@ -2986,7 +3042,7 @@ func PurgeComm(handle Handle, dwFlags uint32) (err error) { } func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max)) + r0, _, e1 := syscall.SyscallN(procQueryDosDeviceW.Addr(), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2995,7 +3051,7 @@ func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint3 } func QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryFullProcessImageNameW.Addr(), 4, uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size)), 0, 0) + r1, _, e1 := syscall.SyscallN(procQueryFullProcessImageNameW.Addr(), uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size))) if r1 == 0 { err = errnoErr(e1) } @@ -3003,7 +3059,7 @@ func QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size } func QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen)), 0) + r1, _, e1 := syscall.SyscallN(procQueryInformationJobObject.Addr(), uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen))) if r1 == 0 { err = errnoErr(e1) } @@ -3011,7 +3067,7 @@ func QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobO } func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) { - r1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0) + r1, _, e1 := syscall.SyscallN(procReadConsoleW.Addr(), uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl))) if r1 == 0 { err = errnoErr(e1) } @@ -3023,7 +3079,7 @@ func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree if watchSubTree { _p0 = 1 } - r1, _, e1 := syscall.Syscall9(procReadDirectoryChangesW.Addr(), 8, uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine), 0) + r1, _, e1 := syscall.SyscallN(procReadDirectoryChangesW.Addr(), uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) if r1 == 0 { err = errnoErr(e1) } @@ -3035,7 +3091,7 @@ func readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) ( if len(buf) > 0 { _p0 = &buf[0] } - r1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procReadFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -3043,7 +3099,7 @@ func readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) ( } func ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procReadProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead)), 0) + r1, _, e1 := syscall.SyscallN(procReadProcessMemory.Addr(), uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead))) if r1 == 0 { err = errnoErr(e1) } @@ -3051,7 +3107,7 @@ func ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size u } func ReleaseMutex(mutex Handle) (err error) { - r1, _, e1 := syscall.Syscall(procReleaseMutex.Addr(), 1, uintptr(mutex), 0, 0) + r1, _, e1 := syscall.SyscallN(procReleaseMutex.Addr(), uintptr(mutex)) if r1 == 0 { err = errnoErr(e1) } @@ -3059,7 +3115,7 @@ func ReleaseMutex(mutex Handle) (err error) { } func RemoveDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + r1, _, e1 := syscall.SyscallN(procRemoveDirectoryW.Addr(), uintptr(unsafe.Pointer(path))) if r1 == 0 { err = errnoErr(e1) } @@ -3067,7 +3123,7 @@ func RemoveDirectory(path *uint16) (err error) { } func RemoveDllDirectory(cookie uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procRemoveDllDirectory.Addr(), 1, uintptr(cookie), 0, 0) + r1, _, e1 := syscall.SyscallN(procRemoveDllDirectory.Addr(), uintptr(cookie)) if r1 == 0 { err = errnoErr(e1) } @@ -3075,7 +3131,7 @@ func RemoveDllDirectory(cookie uintptr) (err error) { } func ResetEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0) + r1, _, e1 := syscall.SyscallN(procResetEvent.Addr(), uintptr(event)) if r1 == 0 { err = errnoErr(e1) } @@ -3083,7 +3139,7 @@ func ResetEvent(event Handle) (err error) { } func resizePseudoConsole(pconsole Handle, size uint32) (hr error) { - r0, _, _ := syscall.Syscall(procResizePseudoConsole.Addr(), 2, uintptr(pconsole), uintptr(size), 0) + r0, _, _ := syscall.SyscallN(procResizePseudoConsole.Addr(), uintptr(pconsole), uintptr(size)) if r0 != 0 { hr = syscall.Errno(r0) } @@ -3091,7 +3147,7 @@ func resizePseudoConsole(pconsole Handle, size uint32) (hr error) { } func ResumeThread(thread Handle) (ret uint32, err error) { - r0, _, e1 := syscall.Syscall(procResumeThread.Addr(), 1, uintptr(thread), 0, 0) + r0, _, e1 := syscall.SyscallN(procResumeThread.Addr(), uintptr(thread)) ret = uint32(r0) if ret == 0xffffffff { err = errnoErr(e1) @@ -3100,7 +3156,7 @@ func ResumeThread(thread Handle) (ret uint32, err error) { } func SetCommBreak(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetCommBreak.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetCommBreak.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -3108,7 +3164,7 @@ func SetCommBreak(handle Handle) (err error) { } func SetCommMask(handle Handle, dwEvtMask uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetCommMask.Addr(), 2, uintptr(handle), uintptr(dwEvtMask), 0) + r1, _, e1 := syscall.SyscallN(procSetCommMask.Addr(), uintptr(handle), uintptr(dwEvtMask)) if r1 == 0 { err = errnoErr(e1) } @@ -3116,7 +3172,7 @@ func SetCommMask(handle Handle, dwEvtMask uint32) (err error) { } func SetCommState(handle Handle, lpDCB *DCB) (err error) { - r1, _, e1 := syscall.Syscall(procSetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0) + r1, _, e1 := syscall.SyscallN(procSetCommState.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpDCB))) if r1 == 0 { err = errnoErr(e1) } @@ -3124,7 +3180,7 @@ func SetCommState(handle Handle, lpDCB *DCB) (err error) { } func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { - r1, _, e1 := syscall.Syscall(procSetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) + r1, _, e1 := syscall.SyscallN(procSetCommTimeouts.Addr(), uintptr(handle), uintptr(unsafe.Pointer(timeouts))) if r1 == 0 { err = errnoErr(e1) } @@ -3132,7 +3188,7 @@ func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { } func SetConsoleCP(cp uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleCP.Addr(), 1, uintptr(cp), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetConsoleCP.Addr(), uintptr(cp)) if r1 == 0 { err = errnoErr(e1) } @@ -3140,7 +3196,7 @@ func SetConsoleCP(cp uint32) (err error) { } func setConsoleCursorPosition(console Handle, position uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleCursorPosition.Addr(), 2, uintptr(console), uintptr(position), 0) + r1, _, e1 := syscall.SyscallN(procSetConsoleCursorPosition.Addr(), uintptr(console), uintptr(position)) if r1 == 0 { err = errnoErr(e1) } @@ -3148,7 +3204,7 @@ func setConsoleCursorPosition(console Handle, position uint32) (err error) { } func SetConsoleMode(console Handle, mode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0) + r1, _, e1 := syscall.SyscallN(procSetConsoleMode.Addr(), uintptr(console), uintptr(mode)) if r1 == 0 { err = errnoErr(e1) } @@ -3156,7 +3212,7 @@ func SetConsoleMode(console Handle, mode uint32) (err error) { } func SetConsoleOutputCP(cp uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleOutputCP.Addr(), 1, uintptr(cp), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetConsoleOutputCP.Addr(), uintptr(cp)) if r1 == 0 { err = errnoErr(e1) } @@ -3164,7 +3220,7 @@ func SetConsoleOutputCP(cp uint32) (err error) { } func SetCurrentDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetCurrentDirectoryW.Addr(), uintptr(unsafe.Pointer(path))) if r1 == 0 { err = errnoErr(e1) } @@ -3172,7 +3228,7 @@ func SetCurrentDirectory(path *uint16) (err error) { } func SetDefaultDllDirectories(directoryFlags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetDefaultDllDirectories.Addr(), 1, uintptr(directoryFlags), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetDefaultDllDirectories.Addr(), uintptr(directoryFlags)) if r1 == 0 { err = errnoErr(e1) } @@ -3189,7 +3245,7 @@ func SetDllDirectory(path string) (err error) { } func _SetDllDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetDllDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetDllDirectoryW.Addr(), uintptr(unsafe.Pointer(path))) if r1 == 0 { err = errnoErr(e1) } @@ -3197,7 +3253,7 @@ func _SetDllDirectory(path *uint16) (err error) { } func SetEndOfFile(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetEndOfFile.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -3205,7 +3261,7 @@ func SetEndOfFile(handle Handle) (err error) { } func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) + r1, _, e1 := syscall.SyscallN(procSetEnvironmentVariableW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value))) if r1 == 0 { err = errnoErr(e1) } @@ -3213,13 +3269,13 @@ func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { } func SetErrorMode(mode uint32) (ret uint32) { - r0, _, _ := syscall.Syscall(procSetErrorMode.Addr(), 1, uintptr(mode), 0, 0) + r0, _, _ := syscall.SyscallN(procSetErrorMode.Addr(), uintptr(mode)) ret = uint32(r0) return } func SetEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetEvent.Addr(), uintptr(event)) if r1 == 0 { err = errnoErr(e1) } @@ -3227,7 +3283,7 @@ func SetEvent(event Handle) (err error) { } func SetFileAttributes(name *uint16, attrs uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0) + r1, _, e1 := syscall.SyscallN(procSetFileAttributesW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(attrs)) if r1 == 0 { err = errnoErr(e1) } @@ -3235,7 +3291,7 @@ func SetFileAttributes(name *uint16, attrs uint32) (err error) { } func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procSetFileCompletionNotificationModes.Addr(), uintptr(handle), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -3243,7 +3299,7 @@ func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) } func SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetFileInformationByHandle.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetFileInformationByHandle.Addr(), uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen)) if r1 == 0 { err = errnoErr(e1) } @@ -3251,7 +3307,7 @@ func SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inB } func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) { - r0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0) + r0, _, e1 := syscall.SyscallN(procSetFilePointer.Addr(), uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence)) newlowoffset = uint32(r0) if newlowoffset == 0xffffffff { err = errnoErr(e1) @@ -3260,7 +3316,7 @@ func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence } func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetFileTime.Addr(), uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime))) if r1 == 0 { err = errnoErr(e1) } @@ -3268,7 +3324,7 @@ func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetim } func SetFileValidData(handle Handle, validDataLength int64) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0) + r1, _, e1 := syscall.SyscallN(procSetFileValidData.Addr(), uintptr(handle), uintptr(validDataLength)) if r1 == 0 { err = errnoErr(e1) } @@ -3276,7 +3332,7 @@ func SetFileValidData(handle Handle, validDataLength int64) (err error) { } func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags)) + r1, _, e1 := syscall.SyscallN(procSetHandleInformation.Addr(), uintptr(handle), uintptr(mask), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -3284,7 +3340,7 @@ func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) } func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) { - r0, _, e1 := syscall.Syscall6(procSetInformationJobObject.Addr(), 4, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), 0, 0) + r0, _, e1 := syscall.SyscallN(procSetInformationJobObject.Addr(), uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength)) ret = int(r0) if ret == 0 { err = errnoErr(e1) @@ -3293,7 +3349,7 @@ func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobOb } func SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetNamedPipeHandleState.Addr(), 4, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetNamedPipeHandleState.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout))) if r1 == 0 { err = errnoErr(e1) } @@ -3301,7 +3357,7 @@ func SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uin } func SetPriorityClass(process Handle, priorityClass uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetPriorityClass.Addr(), 2, uintptr(process), uintptr(priorityClass), 0) + r1, _, e1 := syscall.SyscallN(procSetPriorityClass.Addr(), uintptr(process), uintptr(priorityClass)) if r1 == 0 { err = errnoErr(e1) } @@ -3313,7 +3369,7 @@ func SetProcessPriorityBoost(process Handle, disable bool) (err error) { if disable { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procSetProcessPriorityBoost.Addr(), 2, uintptr(process), uintptr(_p0), 0) + r1, _, e1 := syscall.SyscallN(procSetProcessPriorityBoost.Addr(), uintptr(process), uintptr(_p0)) if r1 == 0 { err = errnoErr(e1) } @@ -3321,7 +3377,7 @@ func SetProcessPriorityBoost(process Handle, disable bool) (err error) { } func SetProcessShutdownParameters(level uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetProcessShutdownParameters.Addr(), 2, uintptr(level), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procSetProcessShutdownParameters.Addr(), uintptr(level), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -3329,7 +3385,7 @@ func SetProcessShutdownParameters(level uint32, flags uint32) (err error) { } func SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetProcessWorkingSetSizeEx.Addr(), uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -3337,7 +3393,7 @@ func SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr } func SetStdHandle(stdhandle uint32, handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0) + r1, _, e1 := syscall.SyscallN(procSetStdHandle.Addr(), uintptr(stdhandle), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -3345,7 +3401,7 @@ func SetStdHandle(stdhandle uint32, handle Handle) (err error) { } func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetVolumeLabelW.Addr(), 2, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)), 0) + r1, _, e1 := syscall.SyscallN(procSetVolumeLabelW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName))) if r1 == 0 { err = errnoErr(e1) } @@ -3353,7 +3409,7 @@ func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) { } func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetVolumeMountPointW.Addr(), 2, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), 0) + r1, _, e1 := syscall.SyscallN(procSetVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName))) if r1 == 0 { err = errnoErr(e1) } @@ -3361,7 +3417,7 @@ func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err erro } func SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetupComm.Addr(), 3, uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue)) + r1, _, e1 := syscall.SyscallN(procSetupComm.Addr(), uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue)) if r1 == 0 { err = errnoErr(e1) } @@ -3369,7 +3425,7 @@ func SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) { } func SizeofResource(module Handle, resInfo Handle) (size uint32, err error) { - r0, _, e1 := syscall.Syscall(procSizeofResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) + r0, _, e1 := syscall.SyscallN(procSizeofResource.Addr(), uintptr(module), uintptr(resInfo)) size = uint32(r0) if size == 0 { err = errnoErr(e1) @@ -3382,13 +3438,13 @@ func SleepEx(milliseconds uint32, alertable bool) (ret uint32) { if alertable { _p0 = 1 } - r0, _, _ := syscall.Syscall(procSleepEx.Addr(), 2, uintptr(milliseconds), uintptr(_p0), 0) + r0, _, _ := syscall.SyscallN(procSleepEx.Addr(), uintptr(milliseconds), uintptr(_p0)) ret = uint32(r0) return } func TerminateJobObject(job Handle, exitCode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procTerminateJobObject.Addr(), 2, uintptr(job), uintptr(exitCode), 0) + r1, _, e1 := syscall.SyscallN(procTerminateJobObject.Addr(), uintptr(job), uintptr(exitCode)) if r1 == 0 { err = errnoErr(e1) } @@ -3396,7 +3452,7 @@ func TerminateJobObject(job Handle, exitCode uint32) (err error) { } func TerminateProcess(handle Handle, exitcode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) + r1, _, e1 := syscall.SyscallN(procTerminateProcess.Addr(), uintptr(handle), uintptr(exitcode)) if r1 == 0 { err = errnoErr(e1) } @@ -3404,7 +3460,7 @@ func TerminateProcess(handle Handle, exitcode uint32) (err error) { } func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procThread32First.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) + r1, _, e1 := syscall.SyscallN(procThread32First.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -3412,7 +3468,7 @@ func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) { } func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procThread32Next.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) + r1, _, e1 := syscall.SyscallN(procThread32Next.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -3420,7 +3476,7 @@ func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) { } func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procUnlockFileEx.Addr(), 5, uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procUnlockFileEx.Addr(), uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -3428,7 +3484,7 @@ func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint3 } func UnmapViewOfFile(addr uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0) + r1, _, e1 := syscall.SyscallN(procUnmapViewOfFile.Addr(), uintptr(addr)) if r1 == 0 { err = errnoErr(e1) } @@ -3436,7 +3492,7 @@ func UnmapViewOfFile(addr uintptr) (err error) { } func updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) { - r1, _, e1 := syscall.Syscall9(procUpdateProcThreadAttribute.Addr(), 7, uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procUpdateProcThreadAttribute.Addr(), uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize))) if r1 == 0 { err = errnoErr(e1) } @@ -3444,7 +3500,7 @@ func updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, } func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) { - r0, _, e1 := syscall.Syscall6(procVirtualAlloc.Addr(), 4, uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect), 0, 0) + r0, _, e1 := syscall.SyscallN(procVirtualAlloc.Addr(), uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect)) value = uintptr(r0) if value == 0 { err = errnoErr(e1) @@ -3453,7 +3509,7 @@ func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint3 } func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualFree.Addr(), 3, uintptr(address), uintptr(size), uintptr(freetype)) + r1, _, e1 := syscall.SyscallN(procVirtualFree.Addr(), uintptr(address), uintptr(size), uintptr(freetype)) if r1 == 0 { err = errnoErr(e1) } @@ -3461,7 +3517,7 @@ func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) { } func VirtualLock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0) + r1, _, e1 := syscall.SyscallN(procVirtualLock.Addr(), uintptr(addr), uintptr(length)) if r1 == 0 { err = errnoErr(e1) } @@ -3469,7 +3525,7 @@ func VirtualLock(addr uintptr, length uintptr) (err error) { } func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procVirtualProtect.Addr(), 4, uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)), 0, 0) + r1, _, e1 := syscall.SyscallN(procVirtualProtect.Addr(), uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect))) if r1 == 0 { err = errnoErr(e1) } @@ -3477,7 +3533,7 @@ func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect } func VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procVirtualProtectEx.Addr(), 5, uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect)), 0) + r1, _, e1 := syscall.SyscallN(procVirtualProtectEx.Addr(), uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect))) if r1 == 0 { err = errnoErr(e1) } @@ -3485,7 +3541,7 @@ func VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect } func VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualQuery.Addr(), 3, uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length)) + r1, _, e1 := syscall.SyscallN(procVirtualQuery.Addr(), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length)) if r1 == 0 { err = errnoErr(e1) } @@ -3493,7 +3549,7 @@ func VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintpt } func VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procVirtualQueryEx.Addr(), 4, uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length), 0, 0) + r1, _, e1 := syscall.SyscallN(procVirtualQueryEx.Addr(), uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length)) if r1 == 0 { err = errnoErr(e1) } @@ -3501,7 +3557,7 @@ func VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformat } func VirtualUnlock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0) + r1, _, e1 := syscall.SyscallN(procVirtualUnlock.Addr(), uintptr(addr), uintptr(length)) if r1 == 0 { err = errnoErr(e1) } @@ -3509,13 +3565,13 @@ func VirtualUnlock(addr uintptr, length uintptr) (err error) { } func WTSGetActiveConsoleSessionId() (sessionID uint32) { - r0, _, _ := syscall.Syscall(procWTSGetActiveConsoleSessionId.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procWTSGetActiveConsoleSessionId.Addr()) sessionID = uint32(r0) return } func WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procWaitCommEvent.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped))) + r1, _, e1 := syscall.SyscallN(procWaitCommEvent.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -3527,7 +3583,7 @@ func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMil if waitAll { _p0 = 1 } - r0, _, e1 := syscall.Syscall6(procWaitForMultipleObjects.Addr(), 4, uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds), 0, 0) + r0, _, e1 := syscall.SyscallN(procWaitForMultipleObjects.Addr(), uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds)) event = uint32(r0) if event == 0xffffffff { err = errnoErr(e1) @@ -3536,7 +3592,7 @@ func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMil } func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) { - r0, _, e1 := syscall.Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0) + r0, _, e1 := syscall.SyscallN(procWaitForSingleObject.Addr(), uintptr(handle), uintptr(waitMilliseconds)) event = uint32(r0) if event == 0xffffffff { err = errnoErr(e1) @@ -3545,7 +3601,7 @@ func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, } func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) { - r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0) + r1, _, e1 := syscall.SyscallN(procWriteConsoleW.Addr(), uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved))) if r1 == 0 { err = errnoErr(e1) } @@ -3557,7 +3613,7 @@ func writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) if len(buf) > 0 { _p0 = &buf[0] } - r1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procWriteFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -3565,7 +3621,7 @@ func writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) } func WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procWriteProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten)), 0) + r1, _, e1 := syscall.SyscallN(procWriteProcessMemory.Addr(), uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten))) if r1 == 0 { err = errnoErr(e1) } @@ -3573,7 +3629,7 @@ func WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size } func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(procAcceptEx.Addr(), 8, uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procAcceptEx.Addr(), uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -3581,12 +3637,12 @@ func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32 } func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) { - syscall.Syscall9(procGetAcceptExSockaddrs.Addr(), 8, uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen)), 0) + syscall.SyscallN(procGetAcceptExSockaddrs.Addr(), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen))) return } func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0) + r1, _, e1 := syscall.SyscallN(procTransmitFile.Addr(), uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -3594,7 +3650,7 @@ func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint } func NetApiBufferFree(buf *byte) (neterr error) { - r0, _, _ := syscall.Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0) + r0, _, _ := syscall.SyscallN(procNetApiBufferFree.Addr(), uintptr(unsafe.Pointer(buf))) if r0 != 0 { neterr = syscall.Errno(r0) } @@ -3602,7 +3658,7 @@ func NetApiBufferFree(buf *byte) (neterr error) { } func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) { - r0, _, _ := syscall.Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) + r0, _, _ := syscall.SyscallN(procNetGetJoinInformation.Addr(), uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) if r0 != 0 { neterr = syscall.Errno(r0) } @@ -3610,7 +3666,7 @@ func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (nete } func NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) { - r0, _, _ := syscall.Syscall9(procNetUserEnum.Addr(), 8, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle)), 0) + r0, _, _ := syscall.SyscallN(procNetUserEnum.Addr(), uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle))) if r0 != 0 { neterr = syscall.Errno(r0) } @@ -3618,7 +3674,7 @@ func NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, pr } func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) { - r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0) + r0, _, _ := syscall.SyscallN(procNetUserGetInfo.Addr(), uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf))) if r0 != 0 { neterr = syscall.Errno(r0) } @@ -3626,7 +3682,7 @@ func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **by } func NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall12(procNtCreateFile.Addr(), 11, uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength), 0) + r0, _, _ := syscall.SyscallN(procNtCreateFile.Addr(), uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength)) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3634,7 +3690,7 @@ func NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO } func NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) { - r0, _, _ := syscall.Syscall15(procNtCreateNamedPipeFile.Addr(), 14, uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)), 0) + r0, _, _ := syscall.SyscallN(procNtCreateNamedPipeFile.Addr(), uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3642,7 +3698,7 @@ func NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, i } func NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen)), 0) + r0, _, _ := syscall.SyscallN(procNtQueryInformationProcess.Addr(), uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3650,7 +3706,7 @@ func NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe } func NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen)), 0, 0) + r0, _, _ := syscall.SyscallN(procNtQuerySystemInformation.Addr(), uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3658,7 +3714,7 @@ func NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInf } func NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class), 0) + r0, _, _ := syscall.SyscallN(procNtSetInformationFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class)) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3666,7 +3722,7 @@ func NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, } func NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtSetInformationProcess.Addr(), 4, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), 0, 0) + r0, _, _ := syscall.SyscallN(procNtSetInformationProcess.Addr(), uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen)) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3674,7 +3730,7 @@ func NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.P } func NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall(procNtSetSystemInformation.Addr(), 3, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen)) + r0, _, _ := syscall.SyscallN(procNtSetSystemInformation.Addr(), uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen)) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3682,13 +3738,13 @@ func NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoL } func RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) { - r0, _, _ := syscall.Syscall(procRtlAddFunctionTable.Addr(), 3, uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress)) + r0, _, _ := syscall.SyscallN(procRtlAddFunctionTable.Addr(), uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress)) ret = r0 != 0 return } func RtlDefaultNpAcl(acl **ACL) (ntstatus error) { - r0, _, _ := syscall.Syscall(procRtlDefaultNpAcl.Addr(), 1, uintptr(unsafe.Pointer(acl)), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlDefaultNpAcl.Addr(), uintptr(unsafe.Pointer(acl))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3696,13 +3752,13 @@ func RtlDefaultNpAcl(acl **ACL) (ntstatus error) { } func RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) { - r0, _, _ := syscall.Syscall(procRtlDeleteFunctionTable.Addr(), 1, uintptr(unsafe.Pointer(functionTable)), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlDeleteFunctionTable.Addr(), uintptr(unsafe.Pointer(functionTable))) ret = r0 != 0 return } func RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3710,7 +3766,7 @@ func RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFile } func RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3718,18 +3774,18 @@ func RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString } func RtlGetCurrentPeb() (peb *PEB) { - r0, _, _ := syscall.Syscall(procRtlGetCurrentPeb.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procRtlGetCurrentPeb.Addr()) peb = (*PEB)(unsafe.Pointer(r0)) return } func rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) { - syscall.Syscall(procRtlGetNtVersionNumbers.Addr(), 3, uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber))) + syscall.SyscallN(procRtlGetNtVersionNumbers.Addr(), uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber))) return } func rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) { - r0, _, _ := syscall.Syscall(procRtlGetVersion.Addr(), 1, uintptr(unsafe.Pointer(info)), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlGetVersion.Addr(), uintptr(unsafe.Pointer(info))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3737,23 +3793,23 @@ func rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) { } func RtlInitString(destinationString *NTString, sourceString *byte) { - syscall.Syscall(procRtlInitString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0) + syscall.SyscallN(procRtlInitString.Addr(), uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString))) return } func RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) { - syscall.Syscall(procRtlInitUnicodeString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0) + syscall.SyscallN(procRtlInitUnicodeString.Addr(), uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString))) return } func rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) { - r0, _, _ := syscall.Syscall(procRtlNtStatusToDosErrorNoTeb.Addr(), 1, uintptr(ntstatus), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlNtStatusToDosErrorNoTeb.Addr(), uintptr(ntstatus)) ret = syscall.Errno(r0) return } func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) { - r0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0) + r0, _, _ := syscall.SyscallN(procCLSIDFromString.Addr(), uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -3761,7 +3817,7 @@ func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) { } func coCreateGuid(pguid *GUID) (ret error) { - r0, _, _ := syscall.Syscall(procCoCreateGuid.Addr(), 1, uintptr(unsafe.Pointer(pguid)), 0, 0) + r0, _, _ := syscall.SyscallN(procCoCreateGuid.Addr(), uintptr(unsafe.Pointer(pguid))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -3769,7 +3825,7 @@ func coCreateGuid(pguid *GUID) (ret error) { } func CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) { - r0, _, _ := syscall.Syscall6(procCoGetObject.Addr(), 4, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable)), 0, 0) + r0, _, _ := syscall.SyscallN(procCoGetObject.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -3777,7 +3833,7 @@ func CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable * } func CoInitializeEx(reserved uintptr, coInit uint32) (ret error) { - r0, _, _ := syscall.Syscall(procCoInitializeEx.Addr(), 2, uintptr(reserved), uintptr(coInit), 0) + r0, _, _ := syscall.SyscallN(procCoInitializeEx.Addr(), uintptr(reserved), uintptr(coInit)) if r0 != 0 { ret = syscall.Errno(r0) } @@ -3785,23 +3841,23 @@ func CoInitializeEx(reserved uintptr, coInit uint32) (ret error) { } func CoTaskMemFree(address unsafe.Pointer) { - syscall.Syscall(procCoTaskMemFree.Addr(), 1, uintptr(address), 0, 0) + syscall.SyscallN(procCoTaskMemFree.Addr(), uintptr(address)) return } func CoUninitialize() { - syscall.Syscall(procCoUninitialize.Addr(), 0, 0, 0, 0) + syscall.SyscallN(procCoUninitialize.Addr()) return } func stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) { - r0, _, _ := syscall.Syscall(procStringFromGUID2.Addr(), 3, uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax)) + r0, _, _ := syscall.SyscallN(procStringFromGUID2.Addr(), uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax)) chars = int32(r0) return } func EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procEnumProcessModules.Addr(), 4, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), 0, 0) + r1, _, e1 := syscall.SyscallN(procEnumProcessModules.Addr(), uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded))) if r1 == 0 { err = errnoErr(e1) } @@ -3809,7 +3865,7 @@ func EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uin } func EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procEnumProcessModulesEx.Addr(), 5, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag), 0) + r1, _, e1 := syscall.SyscallN(procEnumProcessModulesEx.Addr(), uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag)) if r1 == 0 { err = errnoErr(e1) } @@ -3817,7 +3873,7 @@ func EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *u } func enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned))) + r1, _, e1 := syscall.SyscallN(procEnumProcesses.Addr(), uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned))) if r1 == 0 { err = errnoErr(e1) } @@ -3825,7 +3881,7 @@ func enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err } func GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetModuleBaseNameW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetModuleBaseNameW.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size)) if r1 == 0 { err = errnoErr(e1) } @@ -3833,7 +3889,7 @@ func GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uin } func GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetModuleFileNameExW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetModuleFileNameExW.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) if r1 == 0 { err = errnoErr(e1) } @@ -3841,7 +3897,7 @@ func GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size u } func GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetModuleInformation.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetModuleInformation.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb)) if r1 == 0 { err = errnoErr(e1) } @@ -3849,7 +3905,7 @@ func GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb } func QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) { - r1, _, e1 := syscall.Syscall(procQueryWorkingSetEx.Addr(), 3, uintptr(process), uintptr(pv), uintptr(cb)) + r1, _, e1 := syscall.SyscallN(procQueryWorkingSetEx.Addr(), uintptr(process), uintptr(pv), uintptr(cb)) if r1 == 0 { err = errnoErr(e1) } @@ -3861,7 +3917,7 @@ func SubscribeServiceChangeNotifications(service Handle, eventType uint32, callb if ret != nil { return } - r0, _, _ := syscall.Syscall6(procSubscribeServiceChangeNotifications.Addr(), 5, uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription)), 0) + r0, _, _ := syscall.SyscallN(procSubscribeServiceChangeNotifications.Addr(), uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -3873,12 +3929,12 @@ func UnsubscribeServiceChangeNotifications(subscription uintptr) (err error) { if err != nil { return } - syscall.Syscall(procUnsubscribeServiceChangeNotifications.Addr(), 1, uintptr(subscription), 0, 0) + syscall.SyscallN(procUnsubscribeServiceChangeNotifications.Addr(), uintptr(subscription)) return } func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) + r1, _, e1 := syscall.SyscallN(procGetUserNameExW.Addr(), uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) if r1&0xff == 0 { err = errnoErr(e1) } @@ -3886,7 +3942,7 @@ func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err er } func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0) + r1, _, e1 := syscall.SyscallN(procTranslateNameW.Addr(), uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize))) if r1&0xff == 0 { err = errnoErr(e1) } @@ -3894,7 +3950,7 @@ func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint } func SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiBuildDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) + r1, _, e1 := syscall.SyscallN(procSetupDiBuildDriverInfoList.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) if r1 == 0 { err = errnoErr(e1) } @@ -3902,7 +3958,7 @@ func SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoDa } func SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiCallClassInstaller.Addr(), 3, uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) + r1, _, e1 := syscall.SyscallN(procSetupDiCallClassInstaller.Addr(), uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -3910,7 +3966,7 @@ func SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInf } func SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiCancelDriverInfoSearch.Addr(), 1, uintptr(deviceInfoSet), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetupDiCancelDriverInfoSearch.Addr(), uintptr(deviceInfoSet)) if r1 == 0 { err = errnoErr(e1) } @@ -3918,7 +3974,7 @@ func SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) { } func setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiClassGuidsFromNameExW.Addr(), 6, uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) + r1, _, e1 := syscall.SyscallN(procSetupDiClassGuidsFromNameExW.Addr(), uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) if r1 == 0 { err = errnoErr(e1) } @@ -3926,7 +3982,7 @@ func setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGu } func setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiClassNameFromGuidExW.Addr(), 6, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) + r1, _, e1 := syscall.SyscallN(procSetupDiClassNameFromGuidExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) if r1 == 0 { err = errnoErr(e1) } @@ -3934,7 +3990,7 @@ func setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSiz } func setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { - r0, _, e1 := syscall.Syscall6(procSetupDiCreateDeviceInfoListExW.Addr(), 4, uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0) + r0, _, e1 := syscall.SyscallN(procSetupDiCreateDeviceInfoListExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) handle = DevInfo(r0) if handle == DevInfo(InvalidHandle) { err = errnoErr(e1) @@ -3943,7 +3999,7 @@ func setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineN } func setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall9(procSetupDiCreateDeviceInfoW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetupDiCreateDeviceInfoW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -3951,7 +4007,7 @@ func setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUI } func SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiDestroyDeviceInfoList.Addr(), 1, uintptr(deviceInfoSet), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetupDiDestroyDeviceInfoList.Addr(), uintptr(deviceInfoSet)) if r1 == 0 { err = errnoErr(e1) } @@ -3959,7 +4015,7 @@ func SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) { } func SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiDestroyDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) + r1, _, e1 := syscall.SyscallN(procSetupDiDestroyDriverInfoList.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) if r1 == 0 { err = errnoErr(e1) } @@ -3967,7 +4023,7 @@ func SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfo } func setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiEnumDeviceInfo.Addr(), 3, uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData))) + r1, _, e1 := syscall.SyscallN(procSetupDiEnumDeviceInfo.Addr(), uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -3975,7 +4031,7 @@ func setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfo } func setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiEnumDriverInfoW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiEnumDriverInfoW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -3983,7 +4039,7 @@ func setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, d } func setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { - r0, _, e1 := syscall.Syscall9(procSetupDiGetClassDevsExW.Addr(), 7, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0) + r0, _, e1 := syscall.SyscallN(procSetupDiGetClassDevsExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) handle = DevInfo(r0) if handle == DevInfo(InvalidHandle) { err = errnoErr(e1) @@ -3992,7 +4048,7 @@ func setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintp } func SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiGetClassInstallParamsW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetClassInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize))) if r1 == 0 { err = errnoErr(e1) } @@ -4000,7 +4056,7 @@ func SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfo } func setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInfoListDetailW.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInfoListDetailW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData))) if r1 == 0 { err = errnoErr(e1) } @@ -4008,7 +4064,7 @@ func setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailDa } func setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) if r1 == 0 { err = errnoErr(e1) } @@ -4016,7 +4072,7 @@ func setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInf } func setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiGetDeviceInstanceIdW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInstanceIdW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize))) if r1 == 0 { err = errnoErr(e1) } @@ -4024,7 +4080,7 @@ func setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoDa } func setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procSetupDiGetDevicePropertyW.Addr(), 8, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDevicePropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -4032,7 +4088,7 @@ func setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData } func setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procSetupDiGetDeviceRegistryPropertyW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceRegistryPropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize))) if r1 == 0 { err = errnoErr(e1) } @@ -4040,7 +4096,7 @@ func setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *Dev } func setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiGetDriverInfoDetailW.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize))) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDriverInfoDetailW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize))) if r1 == 0 { err = errnoErr(e1) } @@ -4048,7 +4104,7 @@ func setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoDa } func setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetSelectedDevice.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -4056,7 +4112,7 @@ func setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData } func setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) + r1, _, e1 := syscall.SyscallN(procSetupDiGetSelectedDriverW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -4064,7 +4120,7 @@ func setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData } func SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) { - r0, _, e1 := syscall.Syscall6(procSetupDiOpenDevRegKey.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired)) + r0, _, e1 := syscall.SyscallN(procSetupDiOpenDevRegKey.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired)) key = Handle(r0) if key == InvalidHandle { err = errnoErr(e1) @@ -4073,7 +4129,7 @@ func SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Sc } func SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiSetClassInstallParamsW.Addr(), 4, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetupDiSetClassInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize)) if r1 == 0 { err = errnoErr(e1) } @@ -4081,7 +4137,7 @@ func SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfo } func SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiSetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) + r1, _, e1 := syscall.SyscallN(procSetupDiSetDeviceInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) if r1 == 0 { err = errnoErr(e1) } @@ -4089,7 +4145,7 @@ func SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInf } func setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiSetDeviceRegistryPropertyW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiSetDeviceRegistryPropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize)) if r1 == 0 { err = errnoErr(e1) } @@ -4097,7 +4153,7 @@ func setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *Dev } func SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiSetSelectedDevice.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -4105,7 +4161,7 @@ func SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData } func SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) + r1, _, e1 := syscall.SyscallN(procSetupDiSetSelectedDriverW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -4113,7 +4169,7 @@ func SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData } func setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procSetupUninstallOEMInfW.Addr(), 3, uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved)) + r1, _, e1 := syscall.SyscallN(procSetupUninstallOEMInfW.Addr(), uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved)) if r1 == 0 { err = errnoErr(e1) } @@ -4121,7 +4177,7 @@ func setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (er } func commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) { - r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0) + r0, _, e1 := syscall.SyscallN(procCommandLineToArgvW.Addr(), uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc))) argv = (**uint16)(unsafe.Pointer(r0)) if argv == nil { err = errnoErr(e1) @@ -4130,7 +4186,7 @@ func commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) { } func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) { - r0, _, _ := syscall.Syscall6(procSHGetKnownFolderPath.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)), 0, 0) + r0, _, _ := syscall.SyscallN(procSHGetKnownFolderPath.Addr(), uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -4138,7 +4194,7 @@ func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **u } func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) { - r1, _, e1 := syscall.Syscall6(procShellExecuteW.Addr(), 6, uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd)) + r1, _, e1 := syscall.SyscallN(procShellExecuteW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd)) if r1 <= 32 { err = errnoErr(e1) } @@ -4146,12 +4202,12 @@ func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *ui } func EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) { - syscall.Syscall(procEnumChildWindows.Addr(), 3, uintptr(hwnd), uintptr(enumFunc), uintptr(param)) + syscall.SyscallN(procEnumChildWindows.Addr(), uintptr(hwnd), uintptr(enumFunc), uintptr(param)) return } func EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) { - r1, _, e1 := syscall.Syscall(procEnumWindows.Addr(), 2, uintptr(enumFunc), uintptr(param), 0) + r1, _, e1 := syscall.SyscallN(procEnumWindows.Addr(), uintptr(enumFunc), uintptr(param)) if r1 == 0 { err = errnoErr(e1) } @@ -4159,7 +4215,7 @@ func EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) { } func ExitWindowsEx(flags uint32, reason uint32) (err error) { - r1, _, e1 := syscall.Syscall(procExitWindowsEx.Addr(), 2, uintptr(flags), uintptr(reason), 0) + r1, _, e1 := syscall.SyscallN(procExitWindowsEx.Addr(), uintptr(flags), uintptr(reason)) if r1 == 0 { err = errnoErr(e1) } @@ -4167,7 +4223,7 @@ func ExitWindowsEx(flags uint32, reason uint32) (err error) { } func GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) { - r0, _, e1 := syscall.Syscall(procGetClassNameW.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount)) + r0, _, e1 := syscall.SyscallN(procGetClassNameW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount)) copied = int32(r0) if copied == 0 { err = errnoErr(e1) @@ -4176,19 +4232,19 @@ func GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, e } func GetDesktopWindow() (hwnd HWND) { - r0, _, _ := syscall.Syscall(procGetDesktopWindow.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetDesktopWindow.Addr()) hwnd = HWND(r0) return } func GetForegroundWindow() (hwnd HWND) { - r0, _, _ := syscall.Syscall(procGetForegroundWindow.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetForegroundWindow.Addr()) hwnd = HWND(r0) return } func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) { - r1, _, e1 := syscall.Syscall(procGetGUIThreadInfo.Addr(), 2, uintptr(thread), uintptr(unsafe.Pointer(info)), 0) + r1, _, e1 := syscall.SyscallN(procGetGUIThreadInfo.Addr(), uintptr(thread), uintptr(unsafe.Pointer(info))) if r1 == 0 { err = errnoErr(e1) } @@ -4196,19 +4252,19 @@ func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) { } func GetKeyboardLayout(tid uint32) (hkl Handle) { - r0, _, _ := syscall.Syscall(procGetKeyboardLayout.Addr(), 1, uintptr(tid), 0, 0) + r0, _, _ := syscall.SyscallN(procGetKeyboardLayout.Addr(), uintptr(tid)) hkl = Handle(r0) return } func GetShellWindow() (shellWindow HWND) { - r0, _, _ := syscall.Syscall(procGetShellWindow.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetShellWindow.Addr()) shellWindow = HWND(r0) return } func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetWindowThreadProcessId.Addr(), 2, uintptr(hwnd), uintptr(unsafe.Pointer(pid)), 0) + r0, _, e1 := syscall.SyscallN(procGetWindowThreadProcessId.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(pid))) tid = uint32(r0) if tid == 0 { err = errnoErr(e1) @@ -4217,25 +4273,25 @@ func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) { } func IsWindow(hwnd HWND) (isWindow bool) { - r0, _, _ := syscall.Syscall(procIsWindow.Addr(), 1, uintptr(hwnd), 0, 0) + r0, _, _ := syscall.SyscallN(procIsWindow.Addr(), uintptr(hwnd)) isWindow = r0 != 0 return } func IsWindowUnicode(hwnd HWND) (isUnicode bool) { - r0, _, _ := syscall.Syscall(procIsWindowUnicode.Addr(), 1, uintptr(hwnd), 0, 0) + r0, _, _ := syscall.SyscallN(procIsWindowUnicode.Addr(), uintptr(hwnd)) isUnicode = r0 != 0 return } func IsWindowVisible(hwnd HWND) (isVisible bool) { - r0, _, _ := syscall.Syscall(procIsWindowVisible.Addr(), 1, uintptr(hwnd), 0, 0) + r0, _, _ := syscall.SyscallN(procIsWindowVisible.Addr(), uintptr(hwnd)) isVisible = r0 != 0 return } func LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadKeyboardLayoutW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(flags), 0) + r0, _, e1 := syscall.SyscallN(procLoadKeyboardLayoutW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(flags)) hkl = Handle(r0) if hkl == 0 { err = errnoErr(e1) @@ -4244,7 +4300,7 @@ func LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) { } func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) { - r0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0) + r0, _, e1 := syscall.SyscallN(procMessageBoxW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype)) ret = int32(r0) if ret == 0 { err = errnoErr(e1) @@ -4253,13 +4309,13 @@ func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret i } func ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) { - r0, _, _ := syscall.Syscall9(procToUnicodeEx.Addr(), 7, uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl), 0, 0) + r0, _, _ := syscall.SyscallN(procToUnicodeEx.Addr(), uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl)) ret = int32(r0) return } func UnloadKeyboardLayout(hkl Handle) (err error) { - r1, _, e1 := syscall.Syscall(procUnloadKeyboardLayout.Addr(), 1, uintptr(hkl), 0, 0) + r1, _, e1 := syscall.SyscallN(procUnloadKeyboardLayout.Addr(), uintptr(hkl)) if r1 == 0 { err = errnoErr(e1) } @@ -4271,7 +4327,7 @@ func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) ( if inheritExisting { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procCreateEnvironmentBlock.Addr(), 3, uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0)) + r1, _, e1 := syscall.SyscallN(procCreateEnvironmentBlock.Addr(), uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0)) if r1 == 0 { err = errnoErr(e1) } @@ -4279,7 +4335,7 @@ func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) ( } func DestroyEnvironmentBlock(block *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDestroyEnvironmentBlock.Addr(), 1, uintptr(unsafe.Pointer(block)), 0, 0) + r1, _, e1 := syscall.SyscallN(procDestroyEnvironmentBlock.Addr(), uintptr(unsafe.Pointer(block))) if r1 == 0 { err = errnoErr(e1) } @@ -4287,7 +4343,7 @@ func DestroyEnvironmentBlock(block *uint16) (err error) { } func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) + r1, _, e1 := syscall.SyscallN(procGetUserProfileDirectoryW.Addr(), uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) if r1 == 0 { err = errnoErr(e1) } @@ -4304,7 +4360,7 @@ func GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32 } func _GetFileVersionInfoSize(filename *uint16, zeroHandle *Handle) (bufSize uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileVersionInfoSizeW.Addr(), 2, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle)), 0) + r0, _, e1 := syscall.SyscallN(procGetFileVersionInfoSizeW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle))) bufSize = uint32(r0) if bufSize == 0 { err = errnoErr(e1) @@ -4322,7 +4378,7 @@ func GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer u } func _GetFileVersionInfo(filename *uint16, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) { - r1, _, e1 := syscall.Syscall6(procGetFileVersionInfoW.Addr(), 4, uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetFileVersionInfoW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer)) if r1 == 0 { err = errnoErr(e1) } @@ -4339,7 +4395,7 @@ func VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer } func _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procVerQueryValueW.Addr(), 4, uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procVerQueryValueW.Addr(), uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize))) if r1 == 0 { err = errnoErr(e1) } @@ -4347,7 +4403,7 @@ func _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPoint } func TimeBeginPeriod(period uint32) (err error) { - r1, _, e1 := syscall.Syscall(proctimeBeginPeriod.Addr(), 1, uintptr(period), 0, 0) + r1, _, e1 := syscall.SyscallN(proctimeBeginPeriod.Addr(), uintptr(period)) if r1 != 0 { err = errnoErr(e1) } @@ -4355,7 +4411,7 @@ func TimeBeginPeriod(period uint32) (err error) { } func TimeEndPeriod(period uint32) (err error) { - r1, _, e1 := syscall.Syscall(proctimeEndPeriod.Addr(), 1, uintptr(period), 0, 0) + r1, _, e1 := syscall.SyscallN(proctimeEndPeriod.Addr(), uintptr(period)) if r1 != 0 { err = errnoErr(e1) } @@ -4363,7 +4419,7 @@ func TimeEndPeriod(period uint32) (err error) { } func WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) { - r0, _, _ := syscall.Syscall(procWinVerifyTrustEx.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data))) + r0, _, _ := syscall.SyscallN(procWinVerifyTrustEx.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -4371,12 +4427,12 @@ func WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) } func FreeAddrInfoW(addrinfo *AddrinfoW) { - syscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0) + syscall.SyscallN(procFreeAddrInfoW.Addr(), uintptr(unsafe.Pointer(addrinfo))) return } func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) { - r0, _, _ := syscall.Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetAddrInfoW.Addr(), uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result))) if r0 != 0 { sockerr = syscall.Errno(r0) } @@ -4384,15 +4440,23 @@ func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, resul } func WSACleanup() (err error) { - r1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0) + r1, _, e1 := syscall.SyscallN(procWSACleanup.Addr()) if r1 == socket_error { err = errnoErr(e1) } return } +func WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) { + r1, _, e1 := syscall.SyscallN(procWSADuplicateSocketW.Addr(), uintptr(s), uintptr(processID), uintptr(unsafe.Pointer(info))) + if r1 != 0 { + err = errnoErr(e1) + } + return +} + func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { - r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) + r0, _, e1 := syscall.SyscallN(procWSAEnumProtocolsW.Addr(), uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) n = int32(r0) if n == -1 { err = errnoErr(e1) @@ -4405,7 +4469,7 @@ func WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, f if wait { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procWSAGetOverlappedResult.Addr(), 5, uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)), 0) + r1, _, e1 := syscall.SyscallN(procWSAGetOverlappedResult.Addr(), uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags))) if r1 == 0 { err = errnoErr(e1) } @@ -4413,7 +4477,7 @@ func WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, f } func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { - r1, _, e1 := syscall.Syscall9(procWSAIoctl.Addr(), 9, uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) + r1, _, e1 := syscall.SyscallN(procWSAIoctl.Addr(), uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) if r1 == socket_error { err = errnoErr(e1) } @@ -4421,7 +4485,7 @@ func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbo } func WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) { - r1, _, e1 := syscall.Syscall(procWSALookupServiceBeginW.Addr(), 3, uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle))) + r1, _, e1 := syscall.SyscallN(procWSALookupServiceBeginW.Addr(), uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle))) if r1 == socket_error { err = errnoErr(e1) } @@ -4429,7 +4493,7 @@ func WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) } func WSALookupServiceEnd(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procWSALookupServiceEnd.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procWSALookupServiceEnd.Addr(), uintptr(handle)) if r1 == socket_error { err = errnoErr(e1) } @@ -4437,7 +4501,7 @@ func WSALookupServiceEnd(handle Handle) (err error) { } func WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) { - r1, _, e1 := syscall.Syscall6(procWSALookupServiceNextW.Addr(), 4, uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet)), 0, 0) + r1, _, e1 := syscall.SyscallN(procWSALookupServiceNextW.Addr(), uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet))) if r1 == socket_error { err = errnoErr(e1) } @@ -4445,7 +4509,7 @@ func WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WS } func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSARecv.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) + r1, _, e1 := syscall.SyscallN(procWSARecv.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) if r1 == socket_error { err = errnoErr(e1) } @@ -4453,7 +4517,7 @@ func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32 } func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSARecvFrom.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + r1, _, e1 := syscall.SyscallN(procWSARecvFrom.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) if r1 == socket_error { err = errnoErr(e1) } @@ -4461,7 +4525,7 @@ func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *ui } func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSASend.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) + r1, _, e1 := syscall.SyscallN(procWSASend.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) if r1 == socket_error { err = errnoErr(e1) } @@ -4469,7 +4533,7 @@ func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, } func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSASendTo.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + r1, _, e1 := syscall.SyscallN(procWSASendTo.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) if r1 == socket_error { err = errnoErr(e1) } @@ -4477,7 +4541,7 @@ func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32 } func WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procWSASocketW.Addr(), 6, uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags)) + r0, _, e1 := syscall.SyscallN(procWSASocketW.Addr(), uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -4486,7 +4550,7 @@ func WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, } func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { - r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0) + r0, _, _ := syscall.SyscallN(procWSAStartup.Addr(), uintptr(verreq), uintptr(unsafe.Pointer(data))) if r0 != 0 { sockerr = syscall.Errno(r0) } @@ -4494,7 +4558,7 @@ func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { } func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + r1, _, e1 := syscall.SyscallN(procbind.Addr(), uintptr(s), uintptr(name), uintptr(namelen)) if r1 == socket_error { err = errnoErr(e1) } @@ -4502,7 +4566,7 @@ func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { } func Closesocket(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0) + r1, _, e1 := syscall.SyscallN(procclosesocket.Addr(), uintptr(s)) if r1 == socket_error { err = errnoErr(e1) } @@ -4510,7 +4574,7 @@ func Closesocket(s Handle) (err error) { } func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + r1, _, e1 := syscall.SyscallN(procconnect.Addr(), uintptr(s), uintptr(name), uintptr(namelen)) if r1 == socket_error { err = errnoErr(e1) } @@ -4527,7 +4591,7 @@ func GetHostByName(name string) (h *Hostent, err error) { } func _GetHostByName(name *byte) (h *Hostent, err error) { - r0, _, e1 := syscall.Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + r0, _, e1 := syscall.SyscallN(procgethostbyname.Addr(), uintptr(unsafe.Pointer(name))) h = (*Hostent)(unsafe.Pointer(r0)) if h == nil { err = errnoErr(e1) @@ -4536,7 +4600,7 @@ func _GetHostByName(name *byte) (h *Hostent, err error) { } func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { - r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r1, _, e1 := syscall.SyscallN(procgetpeername.Addr(), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if r1 == socket_error { err = errnoErr(e1) } @@ -4553,7 +4617,7 @@ func GetProtoByName(name string) (p *Protoent, err error) { } func _GetProtoByName(name *byte) (p *Protoent, err error) { - r0, _, e1 := syscall.Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + r0, _, e1 := syscall.SyscallN(procgetprotobyname.Addr(), uintptr(unsafe.Pointer(name))) p = (*Protoent)(unsafe.Pointer(r0)) if p == nil { err = errnoErr(e1) @@ -4576,7 +4640,7 @@ func GetServByName(name string, proto string) (s *Servent, err error) { } func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { - r0, _, e1 := syscall.Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0) + r0, _, e1 := syscall.SyscallN(procgetservbyname.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto))) s = (*Servent)(unsafe.Pointer(r0)) if s == nil { err = errnoErr(e1) @@ -4585,7 +4649,7 @@ func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { } func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { - r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r1, _, e1 := syscall.SyscallN(procgetsockname.Addr(), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if r1 == socket_error { err = errnoErr(e1) } @@ -4593,7 +4657,7 @@ func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { } func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) { - r1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0) + r1, _, e1 := syscall.SyscallN(procgetsockopt.Addr(), uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen))) if r1 == socket_error { err = errnoErr(e1) } @@ -4601,7 +4665,7 @@ func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int3 } func listen(s Handle, backlog int32) (err error) { - r1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0) + r1, _, e1 := syscall.SyscallN(proclisten.Addr(), uintptr(s), uintptr(backlog)) if r1 == socket_error { err = errnoErr(e1) } @@ -4609,7 +4673,7 @@ func listen(s Handle, backlog int32) (err error) { } func Ntohs(netshort uint16) (u uint16) { - r0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0) + r0, _, _ := syscall.SyscallN(procntohs.Addr(), uintptr(netshort)) u = uint16(r0) return } @@ -4619,7 +4683,7 @@ func recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen * if len(buf) > 0 { _p0 = &buf[0] } - r0, _, e1 := syscall.Syscall6(procrecvfrom.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + r0, _, e1 := syscall.SyscallN(procrecvfrom.Addr(), uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) n = int32(r0) if n == -1 { err = errnoErr(e1) @@ -4632,7 +4696,7 @@ func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) ( if len(buf) > 0 { _p0 = &buf[0] } - r1, _, e1 := syscall.Syscall6(procsendto.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen)) + r1, _, e1 := syscall.SyscallN(procsendto.Addr(), uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen)) if r1 == socket_error { err = errnoErr(e1) } @@ -4640,7 +4704,7 @@ func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) ( } func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) { - r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0) + r1, _, e1 := syscall.SyscallN(procsetsockopt.Addr(), uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen)) if r1 == socket_error { err = errnoErr(e1) } @@ -4648,7 +4712,7 @@ func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32 } func shutdown(s Handle, how int32) (err error) { - r1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0) + r1, _, e1 := syscall.SyscallN(procshutdown.Addr(), uintptr(s), uintptr(how)) if r1 == socket_error { err = errnoErr(e1) } @@ -4656,7 +4720,7 @@ func shutdown(s Handle, how int32) (err error) { } func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol)) + r0, _, e1 := syscall.SyscallN(procsocket.Addr(), uintptr(af), uintptr(typ), uintptr(protocol)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -4665,7 +4729,7 @@ func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { } func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procWTSEnumerateSessionsW.Addr(), 5, uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)), 0) + r1, _, e1 := syscall.SyscallN(procWTSEnumerateSessionsW.Addr(), uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count))) if r1 == 0 { err = errnoErr(e1) } @@ -4673,12 +4737,12 @@ func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessio } func WTSFreeMemory(ptr uintptr) { - syscall.Syscall(procWTSFreeMemory.Addr(), 1, uintptr(ptr), 0, 0) + syscall.SyscallN(procWTSFreeMemory.Addr(), uintptr(ptr)) return } func WTSQueryUserToken(session uint32, token *Token) (err error) { - r1, _, e1 := syscall.Syscall(procWTSQueryUserToken.Addr(), 2, uintptr(session), uintptr(unsafe.Pointer(token)), 0) + r1, _, e1 := syscall.SyscallN(procWTSQueryUserToken.Addr(), uintptr(session), uintptr(unsafe.Pointer(token))) if r1 == 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/telemetry/LICENSE b/vendor/golang.org/x/telemetry/LICENSE new file mode 100644 index 000000000..2a7cf70da --- /dev/null +++ b/vendor/golang.org/x/telemetry/LICENSE @@ -0,0 +1,27 @@ +Copyright 2009 The Go Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google LLC nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/telemetry/PATENTS b/vendor/golang.org/x/telemetry/PATENTS new file mode 100644 index 000000000..733099041 --- /dev/null +++ b/vendor/golang.org/x/telemetry/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/telemetry/counter/counter.go b/vendor/golang.org/x/telemetry/counter/counter.go new file mode 100644 index 000000000..fe2d0f693 --- /dev/null +++ b/vendor/golang.org/x/telemetry/counter/counter.go @@ -0,0 +1,146 @@ +// Copyright 2023 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. + +package counter + +// The implementation of this package and tests are located in +// internal/counter, which can be shared with the upload package. +// TODO(hyangah): use of type aliases prevents nice documentation +// rendering in go doc or pkgsite. Fix this either by avoiding +// type aliasing or restructuring the internal/counter package. +import ( + "flag" + "path" + "runtime/debug" + + "golang.org/x/telemetry/internal/counter" + "golang.org/x/telemetry/internal/telemetry" +) + +// Inc increments the counter with the given name. +func Inc(name string) { + New(name).Inc() +} + +// Add adds n to the counter with the given name. +func Add(name string, n int64) { + New(name).Add(n) +} + +// New returns a counter with the given name. +// New can be called in global initializers and will be compiled down to +// linker-initialized data. That is, calling New to initialize a global +// has no cost at program startup. +// +// See "Counter Naming" in the package doc for a description of counter naming +// conventions. +func New(name string) *Counter { + // Note: not calling DefaultFile.New in order to keep this + // function something the compiler can inline and convert + // into static data initializations, with no init-time footprint. + // TODO(hyangah): is it trivial enough for the compiler to inline? + return counter.New(name) +} + +// A Counter is a single named event counter. +// A Counter is safe for use by multiple goroutines simultaneously. +// +// Counters should typically be created using New +// and stored as global variables, like: +// +// package mypackage +// var errorCount = counter.New("mypackage/errors") +// +// (The initialization of errorCount in this example is handled +// entirely by the compiler and linker; this line executes no code +// at program startup.) +// +// Then code can call Add to increment the counter +// each time the corresponding event is observed. +// +// Although it is possible to use New to create +// a Counter each time a particular event needs to be recorded, +// that usage fails to amortize the construction cost over +// multiple calls to Add, so it is more expensive and not recommended. +type Counter = counter.Counter + +// A StackCounter is the in-memory knowledge about a stack counter. +// StackCounters are more expensive to use than regular Counters, +// requiring, at a minimum, a call to runtime.Callers. +type StackCounter = counter.StackCounter + +// NewStack returns a new stack counter with the given name and depth. +// +// See "Counter Naming" in the package doc for a description of counter naming +// conventions. +func NewStack(name string, depth int) *StackCounter { + return counter.NewStack(name, depth) +} + +// Open prepares telemetry counters for recording to the file system. +// +// If the telemetry mode is "off", Open is a no-op. Otherwise, it opens the +// counter file on disk and starts to mmap telemetry counters to the file. +// Open also persists any counters already created in the current process. +// +// Open should only be called from short-lived processes such as command line +// tools. If your process is long-running, use [OpenAndRotate]. +func Open() { + counter.Open(false) +} + +// OpenAndRotate is like [Open], but also schedules a rotation of the counter +// file when it expires. +// +// See golang/go#68497 for background on why [OpenAndRotate] is a separate API. +// +// TODO(rfindley): refactor Open and OpenAndRotate for Go 1.24. +func OpenAndRotate() { + counter.Open(true) +} + +// OpenDir prepares telemetry counters for recording to the file system, using +// the specified telemetry directory, if it is not the empty string. +// +// If the telemetry mode is "off", Open is a no-op. Otherwise, it opens the +// counter file on disk and starts to mmap telemetry counters to the file. +// Open also persists any counters already created in the current process. +func OpenDir(telemetryDir string) { + if telemetryDir != "" { + telemetry.Default = telemetry.NewDir(telemetryDir) + } + counter.Open(false) +} + +// CountFlags creates a counter for every flag that is set +// and increments the counter. The name of the counter is +// the concatenation of prefix and the flag name. +// +// For instance, CountFlags("gopls/flag:", *flag.CommandLine) +func CountFlags(prefix string, fs flag.FlagSet) { + fs.Visit(func(f *flag.Flag) { + New(prefix + f.Name).Inc() + }) +} + +// CountCommandLineFlags creates a counter for every flag +// that is set in the default flag.CommandLine FlagSet using +// the counter name binaryName+"/flag:"+flagName where +// binaryName is the base name of the Path embedded in the +// binary's build info. If the binary does not have embedded build +// info, the "flag:"+flagName counter will be incremented. +// +// CountCommandLineFlags must be called after flags are parsed +// with flag.Parse. +// +// For instance, if the -S flag is passed to cmd/compile and +// CountCommandLineFlags is called after flags are parsed, +// the "compile/flag:S" counter will be incremented. +func CountCommandLineFlags() { + prefix := "flag:" + if buildInfo, ok := debug.ReadBuildInfo(); ok && buildInfo.Path != "" { + prefix = path.Base(buildInfo.Path) + "/" + prefix + } + CountFlags(prefix, *flag.CommandLine) +} diff --git a/vendor/golang.org/x/telemetry/counter/doc.go b/vendor/golang.org/x/telemetry/counter/doc.go new file mode 100644 index 000000000..639e9ea35 --- /dev/null +++ b/vendor/golang.org/x/telemetry/counter/doc.go @@ -0,0 +1,58 @@ +// Copyright 2023 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. + +// Package counter implements a simple counter system for collecting +// totally public telemetry data. +// +// There are two kinds of counters, basic counters and stack counters. +// Basic counters are created by [New]. +// Stack counters are created by [NewStack]. +// Both are incremented by calling Inc(). +// +// Basic counters are very cheap. Stack counters are more expensive, as they +// require parsing the stack. (Stack counters are implemented as basic counters +// whose names are the concatenation of the name and the stack trace. There is +// an upper limit on the size of this name, about 4K bytes. If the name is too +// long the stack will be truncated and "truncated" appended.) +// +// When counter files expire they are turned into reports by the upload +// package. The first time any counter file is created for a user, a random day +// of the week is selected on which counter files will expire. For the first +// week, that day is more than 7 days (but not more than two weeks) in the +// future. After that the counter files expire weekly on the same day of the +// week. +// +// # Counter Naming +// +// Counter names passed to [New] and [NewStack] should follow these +// conventions: +// +// - Names cannot contain whitespace or newlines. +// +// - Names must be valid unicode, with no unprintable characters. +// +// - Names may contain at most one ':'. In the counter "foo:bar", we refer to +// "foo" as the "chart name" and "bar" as the "bucket name". +// +// - The '/' character should partition counter names into a hierarchy. The +// root of this hierarchy should identify the logical entity that "owns" +// the counter. This could be an application, such as "gopls" in the case +// of "gopls/client:vscode", or a shared library, such as "crash" in the +// case of the "crash/crash" counter owned by the crashmonitor library. If +// the entity name itself contains a '/', that's ok: "cmd/go/flag" is fine. +// +// - Words should be '-' separated, as in "gopls/completion/errors-latency" +// +// - Histograms should use bucket names identifying upper bounds with '<'. +// For example given two counters "gopls/completion/latency:<50ms" and +// "gopls/completion/latency:<100ms", the "<100ms" bucket counts events +// with latency in the half-open interval [50ms, 100ms). +// +// # Debugging +// +// The GODEBUG environment variable can enable printing of additional debug +// information for counters. Adding GODEBUG=countertrace=1 to the environment +// of a process using counters causes the x/telemetry/counter package to log +// counter information to stderr. +package counter diff --git a/vendor/golang.org/x/telemetry/internal/counter/counter.go b/vendor/golang.org/x/telemetry/internal/counter/counter.go new file mode 100644 index 000000000..c08115e56 --- /dev/null +++ b/vendor/golang.org/x/telemetry/internal/counter/counter.go @@ -0,0 +1,401 @@ +// Copyright 2023 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. + +// Package internal/counter implements the internals of the public counter package. +// In addition to the public API, this package also includes APIs to parse and +// manage the counter files, needed by the upload package. +package counter + +import ( + "fmt" + "os" + "runtime" + "strings" + "sync/atomic" +) + +var ( + // Note: not using internal/godebug, so that internal/godebug can use + // internal/counter. + debugCounter = strings.Contains(os.Getenv("GODEBUG"), "countertrace=1") + CrashOnBugs = false // for testing; if set, exit on fatal log messages +) + +// debugPrintf formats a debug message if GODEBUG=countertrace=1. +func debugPrintf(format string, args ...any) { + if debugCounter { + if len(format) == 0 || format[len(format)-1] != '\n' { + format += "\n" + } + fmt.Fprintf(os.Stderr, "counter: "+format, args...) + } +} + +// debugFatalf logs a fatal error if GODEBUG=countertrace=1. +func debugFatalf(format string, args ...any) { + if debugCounter || CrashOnBugs { + if len(format) == 0 || format[len(format)-1] != '\n' { + format += "\n" + } + fmt.Fprintf(os.Stderr, "counter bug: "+format, args...) + os.Exit(1) + } +} + +// A Counter is a single named event counter. +// A Counter is safe for use by multiple goroutines simultaneously. +// +// Counters should typically be created using New +// and stored as global variables, like: +// +// package mypackage +// var errorCount = counter.New("mypackage/errors") +// +// (The initialization of errorCount in this example is handled +// entirely by the compiler and linker; this line executes no code +// at program startup.) +// +// Then code can call Add to increment the counter +// each time the corresponding event is observed. +// +// Although it is possible to use New to create +// a Counter each time a particular event needs to be recorded, +// that usage fails to amortize the construction cost over +// multiple calls to Add, so it is more expensive and not recommended. +type Counter struct { + name string + file *file + + next atomic.Pointer[Counter] + state counterState + ptr counterPtr +} + +func (c *Counter) Name() string { + return c.name +} + +type counterPtr struct { + m *mappedFile + count *atomic.Uint64 +} + +type counterState struct { + bits atomic.Uint64 +} + +func (s *counterState) load() counterStateBits { + return counterStateBits(s.bits.Load()) +} + +func (s *counterState) update(old *counterStateBits, new counterStateBits) bool { + if s.bits.CompareAndSwap(uint64(*old), uint64(new)) { + *old = new + return true + } + return false +} + +type counterStateBits uint64 + +const ( + stateReaders counterStateBits = 1<<30 - 1 + stateLocked counterStateBits = stateReaders + stateHavePtr counterStateBits = 1 << 30 + stateExtraShift = 31 + stateExtra counterStateBits = 1<<64 - 1<> stateExtraShift } + +func (b counterStateBits) incReader() counterStateBits { return b + 1 } +func (b counterStateBits) decReader() counterStateBits { return b - 1 } +func (b counterStateBits) setLocked() counterStateBits { return b | stateLocked } +func (b counterStateBits) clearLocked() counterStateBits { return b &^ stateLocked } +func (b counterStateBits) setHavePtr() counterStateBits { return b | stateHavePtr } +func (b counterStateBits) clearHavePtr() counterStateBits { return b &^ stateHavePtr } +func (b counterStateBits) clearExtra() counterStateBits { return b &^ stateExtra } +func (b counterStateBits) addExtra(n uint64) counterStateBits { + const maxExtra = uint64(stateExtra) >> stateExtraShift // 0x1ffffffff + x := b.extra() + if x+n < x || x+n > maxExtra { + x = maxExtra + } else { + x += n + } + return b.clearExtra() | counterStateBits(x)< count=%d\n", c.name, extra, sum) + } + + // Took care of refreshing ptr and flushing extra. + // Now we can release the lock, unless of course + // another goroutine cleared havePtr or added to extra, + // in which case we go around again. + if !c.state.update(&state, state.clearLocked()) { + continue + } + debugPrintf("releaseLock %s: unlocked\n", c.name) + return + } +} + +// add wraps the atomic.Uint64.Add operation to handle integer overflow. +func (c *Counter) add(n uint64) uint64 { + count := c.ptr.count + for { + old := count.Load() + sum := old + n + if sum < old { + sum = ^uint64(0) + } + if count.CompareAndSwap(old, sum) { + runtime.KeepAlive(c.ptr.m) + return sum + } + } +} + +func (c *Counter) invalidate() { + for { + state := c.state.load() + if !state.havePtr() { + debugPrintf("invalidate %s: no ptr\n", c.name) + return + } + if c.state.update(&state, state.clearHavePtr()) { + debugPrintf("invalidate %s: cleared havePtr\n", c.name) + return + } + } +} + +func (c *Counter) refresh() { + for { + state := c.state.load() + if state.havePtr() || state.readers() > 0 || state.extra() == 0 { + debugPrintf("refresh %s: havePtr=%v readers=%d extra=%d\n", c.name, state.havePtr(), state.readers(), state.extra()) + return + } + if c.state.update(&state, state.setLocked()) { + debugPrintf("refresh %s: locked havePtr=%v readers=%d extra=%d\n", c.name, state.havePtr(), state.readers(), state.extra()) + c.releaseLock(state) + return + } + } +} + +// Read reads the given counter. +// This is the implementation of x/telemetry/counter/countertest.ReadCounter. +func Read(c *Counter) (uint64, error) { + if c.file.current.Load() == nil { + return c.state.load().extra(), nil + } + pf, err := readFile(c.file) + if err != nil { + return 0, err + } + v, ok := pf.Count[DecodeStack(c.Name())] + if !ok { + return v, fmt.Errorf("not found:%q", DecodeStack(c.Name())) + } + return v, nil +} + +func readFile(f *file) (*File, error) { + if f == nil { + debugPrintf("No file") + return nil, fmt.Errorf("counter is not initialized - was Open called?") + } + + // Note: don't call f.rotate here as this will enqueue a follow-up rotation. + f.rotate1() + + if f.err != nil { + return nil, fmt.Errorf("failed to rotate mapped file - %v", f.err) + } + current := f.current.Load() + if current == nil { + return nil, fmt.Errorf("counter has no mapped file") + } + name := current.f.Name() + data, err := ReadMapped(name) + if err != nil { + return nil, fmt.Errorf("failed to read from file: %v", err) + } + pf, err := Parse(name, data) + if err != nil { + return nil, fmt.Errorf("failed to parse: %v", err) + } + return pf, nil +} + +// ReadFile reads the counters and stack counters from the given file. +// This is the implementation of x/telemetry/counter/countertest.ReadFile. +func ReadFile(name string) (counters, stackCounters map[string]uint64, _ error) { + // TODO: Document the format of the stackCounters names. + + data, err := ReadMapped(name) + if err != nil { + return nil, nil, fmt.Errorf("failed to read from file: %v", err) + } + pf, err := Parse(name, data) + if err != nil { + return nil, nil, fmt.Errorf("failed to parse: %v", err) + } + counters = make(map[string]uint64) + stackCounters = make(map[string]uint64) + for k, v := range pf.Count { + if IsStackCounter(k) { + stackCounters[DecodeStack(k)] = v + } else { + counters[k] = v + } + } + return counters, stackCounters, nil +} + +// ReadMapped reads the contents of the given file by memory mapping. +// +// This avoids file synchronization issues. +func ReadMapped(name string) ([]byte, error) { + f, err := os.OpenFile(name, os.O_RDWR, 0666) + if err != nil { + return nil, err + } + defer f.Close() + fi, err := f.Stat() + if err != nil { + return nil, err + } + mapping, err := memmap(f) + if err != nil { + return nil, err + } + data := make([]byte, fi.Size()) + copy(data, mapping.Data) + munmap(mapping) + return data, nil +} diff --git a/vendor/golang.org/x/telemetry/internal/counter/file.go b/vendor/golang.org/x/telemetry/internal/counter/file.go new file mode 100644 index 000000000..872a6f6a9 --- /dev/null +++ b/vendor/golang.org/x/telemetry/internal/counter/file.go @@ -0,0 +1,814 @@ +// Copyright 2023 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. + +package counter + +import ( + "bytes" + "errors" + "fmt" + "math/rand" + "os" + "path" + "path/filepath" + "runtime" + "runtime/debug" + "sync" + "sync/atomic" + "time" + "unsafe" + + "golang.org/x/telemetry/internal/mmap" + "golang.org/x/telemetry/internal/telemetry" +) + +// A file is a counter file. +type file struct { + // Linked list of all known counters. + // (Linked list insertion is easy to make lock-free, + // and we don't want the initial counters incremented + // by a program to cause significant contention.) + counters atomic.Pointer[Counter] // head of list + end Counter // list ends at &end instead of nil + + mu sync.Mutex + buildInfo *debug.BuildInfo + timeBegin, timeEnd time.Time + err error + // current holds the current file mapping, which may change when the file is + // rotated or extended. + // + // current may be read without holding mu, but may be nil. + // + // The cleanup logic for file mappings is complicated, because invalidating + // counter pointers is reentrant: [file.invalidateCounters] may call + // [file.lookup], which acquires mu. Therefore, writing current must be done + // as follows: + // 1. record the previous value of current + // 2. Store a new value in current + // 3. unlock mu + // 4. call invalidateCounters + // 5. close the previous mapped value from (1) + // TODO(rfindley): simplify + current atomic.Pointer[mappedFile] +} + +var defaultFile file + +// register ensures that the counter c is registered with the file. +func (f *file) register(c *Counter) { + debugPrintf("register %s %p\n", c.Name(), c) + + // If counter is not registered with file, register it. + // Doing this lazily avoids init-time work + // as well as any execution cost at all for counters + // that are not used in a given program. + wroteNext := false + for wroteNext || c.next.Load() == nil { + head := f.counters.Load() + next := head + if next == nil { + next = &f.end + } + debugPrintf("register %s next %p\n", c.Name(), next) + if !wroteNext { + if !c.next.CompareAndSwap(nil, next) { + debugPrintf("register %s cas failed %p\n", c.Name(), c.next.Load()) + continue + } + wroteNext = true + } else { + c.next.Store(next) + } + if f.counters.CompareAndSwap(head, c) { + debugPrintf("registered %s %p\n", c.Name(), f.counters.Load()) + return + } + debugPrintf("register %s cas2 failed %p %p\n", c.Name(), f.counters.Load(), head) + } +} + +// invalidateCounters marks as invalid all the pointers +// held by f's counters and then refreshes them. +// +// invalidateCounters cannot be called while holding f.mu, +// because a counter refresh may call f.lookup. +func (f *file) invalidateCounters() { + // Mark every counter as needing to refresh its count pointer. + if head := f.counters.Load(); head != nil { + for c := head; c != &f.end; c = c.next.Load() { + c.invalidate() + } + for c := head; c != &f.end; c = c.next.Load() { + c.refresh() + } + } +} + +// lookup looks up the counter with the given name in the file, +// allocating it if needed, and returns a pointer to the atomic.Uint64 +// containing the counter data. +// If the file has not been opened yet, lookup returns nil. +func (f *file) lookup(name string) counterPtr { + current := f.current.Load() + if current == nil { + debugPrintf("lookup %s - no mapped file\n", name) + return counterPtr{} + } + ptr := f.newCounter(name) + if ptr == nil { + return counterPtr{} + } + return counterPtr{current, ptr} +} + +// ErrDisabled is the error returned when telemetry is disabled. +var ErrDisabled = errors.New("counter: disabled as Go telemetry is off") + +var ( + errNoBuildInfo = errors.New("counter: missing build info") + errCorrupt = errors.New("counter: corrupt counter file") +) + +// weekEnd returns the day of the week on which uploads occur (and therefore +// counters expire). +// +// Reads the weekends file, creating one if none exists. +func weekEnd() (time.Weekday, error) { + // If there is no 'weekends' file create it and initialize it + // to a random day of the week. There is a short interval for + // a race. + weekends := filepath.Join(telemetry.Default.LocalDir(), "weekends") + day := fmt.Sprintf("%d\n", rand.Intn(7)) + if _, err := os.ReadFile(weekends); err != nil { + if err := os.MkdirAll(telemetry.Default.LocalDir(), 0777); err != nil { + debugPrintf("%v: could not create telemetry.LocalDir %s", err, telemetry.Default.LocalDir()) + return 0, err + } + if err = os.WriteFile(weekends, []byte(day), 0666); err != nil { + return 0, err + } + } + + // race is over, read the file + buf, err := os.ReadFile(weekends) + // There is no reasonable way of recovering from errors + // so we just fail + if err != nil { + return 0, err + } + buf = bytes.TrimSpace(buf) + if len(buf) == 0 { + return 0, fmt.Errorf("empty weekends file") + } + weekend := time.Weekday(buf[0] - '0') // 0 is Sunday + // paranoia to make sure the value is legal + weekend %= 7 + if weekend < 0 { + weekend += 7 + } + return weekend, nil +} + +// rotate checks to see whether the file f needs to be rotated, +// meaning to start a new counter file with a different date in the name. +// rotate is also used to open the file initially, meaning f.current can be nil. +// In general rotate should be called just once for each file. +// rotate will arrange a timer to call itself again when necessary. +func (f *file) rotate() { + expiry := f.rotate1() + if !expiry.IsZero() { + delay := time.Until(expiry) + // Some tests set CounterTime to a time in the past, causing delay to be + // negative. Avoid infinite loops by delaying at least a short interval. + // + // TODO(rfindley): instead, just also mock AfterFunc. + const minDelay = 1 * time.Minute + if delay < minDelay { + delay = minDelay + } + // TODO(rsc): Does this do the right thing for laptops closing? + time.AfterFunc(delay, f.rotate) + } +} + +func nop() {} + +// CounterTime returns the current UTC time. +// Mutable for testing. +var CounterTime = func() time.Time { + return time.Now().UTC() +} + +// counterSpan returns the current time span for a counter file, as determined +// by [CounterTime] and the [weekEnd]. +func counterSpan() (begin, end time.Time, _ error) { + year, month, day := CounterTime().Date() + begin = time.Date(year, month, day, 0, 0, 0, 0, time.UTC) + // files always begin today, but expire on the next day of the week + // from the 'weekends' file. + weekend, err := weekEnd() + if err != nil { + return time.Time{}, time.Time{}, err + } + incr := int(weekend - begin.Weekday()) + if incr <= 0 { + incr += 7 // ensure that end is later than begin + } + end = time.Date(year, month, day+incr, 0, 0, 0, 0, time.UTC) + return begin, end, nil +} + +// rotate1 rotates the current counter file, returning its expiry, or the zero +// time if rotation failed. +func (f *file) rotate1() time.Time { + // Cleanup must be performed while unlocked, since invalidateCounters may + // involve calls to f.lookup. + var previous *mappedFile // read below while holding the f.mu. + defer func() { + // Counters must be invalidated whenever the mapped file changes. + if next := f.current.Load(); next != previous { + f.invalidateCounters() + // Ensure that the previous counter mapped file is closed. + if previous != nil { + previous.close() // safe to call multiple times + } + } + }() + + f.mu.Lock() + defer f.mu.Unlock() + + previous = f.current.Load() + + if f.err != nil { + return time.Time{} // already in failed state; nothing to do + } + + fail := func(err error) { + debugPrintf("rotate: %v", err) + f.err = err + f.current.Store(nil) + } + + if mode, _ := telemetry.Default.Mode(); mode == "off" { + // TODO(rfindley): do we ever want to make ErrDisabled recoverable? + // Specifically, if f.err is ErrDisabled, should we check again during when + // rotating? + fail(ErrDisabled) + return time.Time{} + } + + if f.buildInfo == nil { + bi, ok := debug.ReadBuildInfo() + if !ok { + fail(errNoBuildInfo) + return time.Time{} + } + f.buildInfo = bi + } + + begin, end, err := counterSpan() + if err != nil { + fail(err) + return time.Time{} + } + if f.timeBegin.Equal(begin) && f.timeEnd.Equal(end) { + return f.timeEnd // nothing to do + } + f.timeBegin, f.timeEnd = begin, end + + goVers, progPath, progVers := telemetry.ProgramInfo(f.buildInfo) + meta := fmt.Sprintf("TimeBegin: %s\nTimeEnd: %s\nProgram: %s\nVersion: %s\nGoVersion: %s\nGOOS: %s\nGOARCH: %s\n\n", + f.timeBegin.Format(time.RFC3339), f.timeEnd.Format(time.RFC3339), + progPath, progVers, goVers, runtime.GOOS, runtime.GOARCH) + if len(meta) > maxMetaLen { // should be impossible for our use + fail(fmt.Errorf("metadata too long")) + return time.Time{} + } + + if progVers != "" { + progVers = "@" + progVers + } + baseName := fmt.Sprintf("%s%s-%s-%s-%s-%s.%s.count", + path.Base(progPath), + progVers, + goVers, + runtime.GOOS, + runtime.GOARCH, + f.timeBegin.Format(telemetry.DateOnly), + FileVersion, + ) + dir := telemetry.Default.LocalDir() + if err := os.MkdirAll(dir, 0777); err != nil { + fail(fmt.Errorf("making local dir: %v", err)) + return time.Time{} + } + name := filepath.Join(dir, baseName) + + m, err := openMapped(name, meta) + if err != nil { + // Mapping failed: + // If there used to be a mapped file, after cleanup + // incrementing counters will only change their internal state. + // (before cleanup the existing mapped file would be updated) + fail(fmt.Errorf("openMapped: %v", err)) + return time.Time{} + } + + debugPrintf("using %v", m.f.Name()) + f.current.Store(m) + return f.timeEnd +} + +func (f *file) newCounter(name string) *atomic.Uint64 { + v, cleanup := f.newCounter1(name) + cleanup() + return v +} + +func (f *file) newCounter1(name string) (v *atomic.Uint64, cleanup func()) { + f.mu.Lock() + defer f.mu.Unlock() + + current := f.current.Load() + if current == nil { + return nil, nop + } + debugPrintf("newCounter %s in %s\n", name, current.f.Name()) + if v, _, _, _ := current.lookup(name); v != nil { + return v, nop + } + v, newM, err := current.newCounter(name) + if err != nil { + debugPrintf("newCounter %s: %v\n", name, err) + return nil, nop + } + + cleanup = nop + if newM != nil { + f.current.Store(newM) + cleanup = func() { + f.invalidateCounters() + current.close() + } + } + return v, cleanup +} + +var ( + openOnce sync.Once + // rotating reports whether the call to Open had rotate = true. + // + // In golang/go#68497, we observed that file rotation can break runtime + // deadlock detection. To minimize the fix for 1.23, we are splitting the + // Open API into one version that rotates the counter file, and another that + // does not. The rotating variable guards against use of both APIs from the + // same process. + rotating bool +) + +// Open associates counting with the defaultFile. +// The returned function is for testing only, and should +// be called after all Inc()s are finished, but before +// any reports are generated. +// (Otherwise expired count files will not be deleted on Windows.) +func Open(rotate bool) func() { + if telemetry.DisabledOnPlatform { + return func() {} + } + close := func() {} + openOnce.Do(func() { + rotating = rotate + if mode, _ := telemetry.Default.Mode(); mode == "off" { + // Don't open the file when telemetry is off. + defaultFile.err = ErrDisabled + // No need to clean up. + return + } + debugPrintf("Open(%v)", rotate) + if rotate { + defaultFile.rotate() // calls rotate1 and schedules a rotation + } else { + defaultFile.rotate1() + } + close = func() { + // Once this has been called, the defaultFile is no longer usable. + mf := defaultFile.current.Load() + if mf == nil { + // telemetry might have been off + return + } + mf.close() + } + }) + if rotating != rotate { + panic("BUG: Open called with inconsistent values for 'rotate'") + } + return close +} + +const ( + FileVersion = "v1" + hdrPrefix = "# telemetry/counter file " + FileVersion + "\n" + recordUnit = 32 + maxMetaLen = 512 + numHash = 512 // 2kB for hash table + maxNameLen = 4 * 1024 + limitOff = 0 + hashOff = 4 + pageSize = 16 * 1024 + minFileLen = 16 * 1024 +) + +// A mappedFile is a counter file mmapped into memory. +// +// The file layout for a mappedFile m is as follows: +// +// offset, byte size: description +// ------------------ ----------- +// 0, hdrLen: header, containing metadata; see [mappedHeader] +// hdrLen+limitOff, 4: uint32 allocation limit (byte offset of the end of counter records) +// hdrLen+hashOff, 4*numHash: hash table, stores uint32 heads of a linked list of records, keyed by name hash +// hdrLen+hashOff+4*numHash to limit: counter records: see record syntax below +// +// The record layout is as follows: +// +// offset, byte size: description +// ------------------ ----------- +// 0, 8: uint64 counter value +// 8, 12: uint32 name length +// 12, 16: uint32 offset of next record in linked list +// 16, name length: counter name +type mappedFile struct { + meta string + hdrLen uint32 + zero [4]byte + closeOnce sync.Once + f *os.File + mapping *mmap.Data +} + +// openMapped opens and memory maps a file. +// +// name is the path to the file. +// +// meta is the file metadata, which must match the metadata of the file on disk +// exactly. +// +// existing should be nil the first time this is called for a file, +// and when remapping, should be the previous mappedFile. +func openMapped(name, meta string) (_ *mappedFile, err error) { + hdr, err := mappedHeader(meta) + if err != nil { + return nil, err + } + + f, err := os.OpenFile(name, os.O_RDWR|os.O_CREATE, 0666) + if err != nil { + return nil, err + } + // Note: using local variable m here, not return value, + // so that return nil, err does not set m = nil and break the code in the defer. + m := &mappedFile{ + f: f, + meta: meta, + } + + defer func() { + if err != nil { + m.close() + } + }() + + info, err := f.Stat() + if err != nil { + return nil, err + } + + // Establish file header and initial data area if not already present. + if info.Size() < minFileLen { + if _, err := f.WriteAt(hdr, 0); err != nil { + return nil, err + } + // Write zeros at the end of the file to extend it to minFileLen. + if _, err := f.WriteAt(m.zero[:], int64(minFileLen-len(m.zero))); err != nil { + return nil, err + } + info, err = f.Stat() + if err != nil { + return nil, err + } + if info.Size() < minFileLen { + return nil, fmt.Errorf("counter: writing file did not extend it") + } + } + + // Map into memory. + mapping, err := memmap(f) + if err != nil { + return nil, err + } + m.mapping = mapping + if !bytes.HasPrefix(m.mapping.Data, hdr) { + // TODO(rfindley): we can and should do better here, reading the mapped + // header length and comparing headers exactly. + return nil, fmt.Errorf("counter: header mismatch") + } + m.hdrLen = uint32(len(hdr)) + + return m, nil +} + +func mappedHeader(meta string) ([]byte, error) { + if len(meta) > maxMetaLen { + return nil, fmt.Errorf("counter: metadata too large") + } + np := round(len(hdrPrefix), 4) + n := round(np+4+len(meta), 32) + hdr := make([]byte, n) + copy(hdr, hdrPrefix) + *(*uint32)(unsafe.Pointer(&hdr[np])) = uint32(n) + copy(hdr[np+4:], meta) + return hdr, nil +} + +func (m *mappedFile) place(limit uint32, name string) (start, end uint32) { + if limit == 0 { + // first record in file + limit = m.hdrLen + hashOff + 4*numHash + } + n := round(uint32(16+len(name)), recordUnit) + start = round(limit, recordUnit) // should already be rounded but just in case + // Note: Checking for crossing a page boundary would be + // start/pageSize != (start+n-1)/pageSize, + // but we are checking for reaching the page end, so no -1. + // The page end is reserved for use by extend. + // See the comment in m.extend. + if start/pageSize != (start+n)/pageSize { + // bump start to next page + start = round(limit, pageSize) + } + return start, start + n +} + +var memmap = mmap.Mmap +var munmap = mmap.Munmap + +func (m *mappedFile) close() { + m.closeOnce.Do(func() { + if m.mapping != nil { + munmap(m.mapping) + m.mapping = nil + } + if m.f != nil { + m.f.Close() // best effort + m.f = nil + } + }) +} + +// hash returns the hash code for name. +// The implementation is FNV-1a. +// This hash function is a fixed detail of the file format. +// It cannot be changed without also changing the file format version. +func hash(name string) uint32 { + const ( + offset32 = 2166136261 + prime32 = 16777619 + ) + h := uint32(offset32) + for i := 0; i < len(name); i++ { + c := name[i] + h = (h ^ uint32(c)) * prime32 + } + return (h ^ (h >> 16)) % numHash +} + +func (m *mappedFile) load32(off uint32) uint32 { + if int64(off) >= int64(len(m.mapping.Data)) { + return 0 + } + return (*atomic.Uint32)(unsafe.Pointer(&m.mapping.Data[off])).Load() +} + +func (m *mappedFile) cas32(off, old, new uint32) bool { + if int64(off) >= int64(len(m.mapping.Data)) { + panic("bad cas32") // return false would probably loop + } + return (*atomic.Uint32)(unsafe.Pointer(&m.mapping.Data[off])).CompareAndSwap(old, new) +} + +// entryAt reads a counter record at the given byte offset. +// +// See the documentation for [mappedFile] for a description of the counter record layout. +func (m *mappedFile) entryAt(off uint32) (name []byte, next uint32, v *atomic.Uint64, ok bool) { + if off < m.hdrLen+hashOff || int64(off)+16 > int64(len(m.mapping.Data)) { + return nil, 0, nil, false + } + nameLen := m.load32(off+8) & 0x00ffffff + if nameLen == 0 || int64(off)+16+int64(nameLen) > int64(len(m.mapping.Data)) { + return nil, 0, nil, false + } + name = m.mapping.Data[off+16 : off+16+nameLen] + next = m.load32(off + 12) + v = (*atomic.Uint64)(unsafe.Pointer(&m.mapping.Data[off])) + return name, next, v, true +} + +// writeEntryAt writes a new counter record at the given offset. +// +// See the documentation for [mappedFile] for a description of the counter record layout. +// +// writeEntryAt only returns false in the presence of some form of corruption: +// an offset outside the bounds of the record region in the mapped file. +func (m *mappedFile) writeEntryAt(off uint32, name string) (next *atomic.Uint32, v *atomic.Uint64, ok bool) { + // TODO(rfindley): shouldn't this first condition be off < m.hdrLen+hashOff+4*numHash? + if off < m.hdrLen+hashOff || int64(off)+16+int64(len(name)) > int64(len(m.mapping.Data)) { + return nil, nil, false + } + copy(m.mapping.Data[off+16:], name) + atomic.StoreUint32((*uint32)(unsafe.Pointer(&m.mapping.Data[off+8])), uint32(len(name))|0xff000000) + next = (*atomic.Uint32)(unsafe.Pointer(&m.mapping.Data[off+12])) + v = (*atomic.Uint64)(unsafe.Pointer(&m.mapping.Data[off])) + return next, v, true +} + +// lookup searches the mapped file for a counter record with the given name, returning: +// - v: the mapped counter value +// - headOff: the offset of the head pointer (see [mappedFile]) +// - head: the value of the head pointer +// - ok: whether lookup succeeded +func (m *mappedFile) lookup(name string) (v *atomic.Uint64, headOff, head uint32, ok bool) { + h := hash(name) + headOff = m.hdrLen + hashOff + h*4 + head = m.load32(headOff) + off := head + for off != 0 { + ename, next, v, ok := m.entryAt(off) + if !ok { + return nil, 0, 0, false + } + if string(ename) == name { + return v, headOff, head, true + } + off = next + } + return nil, headOff, head, true +} + +// newCounter allocates and writes a new counter record with the given name. +// +// If name is already recorded in the file, newCounter returns the existing counter. +func (m *mappedFile) newCounter(name string) (v *atomic.Uint64, m1 *mappedFile, err error) { + if len(name) > maxNameLen { + return nil, nil, fmt.Errorf("counter name too long") + } + orig := m + defer func() { + if m != orig { + if err != nil { + m.close() + } else { + m1 = m + } + } + }() + + v, headOff, head, ok := m.lookup(name) + for tries := 0; !ok; tries++ { + if tries >= 10 { + debugFatalf("corrupt: failed to remap after 10 tries") + return nil, nil, errCorrupt + } + // Lookup found an invalid pointer, + // perhaps because the file has grown larger than the mapping. + limit := m.load32(m.hdrLen + limitOff) + if limit, datalen := int64(limit), int64(len(m.mapping.Data)); limit <= datalen { + // Mapping doesn't need to grow, so lookup found actual corruption, + // in the form of an entry pointer that exceeds the recorded allocation + // limit. This should never happen, unless the actual file contents are + // corrupt. + debugFatalf("corrupt: limit %d is within mapping length %d", limit, datalen) + return nil, nil, errCorrupt + } + // That the recorded limit is greater than the mapped data indicates that + // an external process has extended the file. Re-map to pick up this extension. + newM, err := openMapped(m.f.Name(), m.meta) + if err != nil { + return nil, nil, err + } + if limit, datalen := int64(limit), int64(len(newM.mapping.Data)); limit > datalen { + // We've re-mapped, yet limit still exceeds the data length. This + // indicates that the underlying file was somehow truncated, or the + // recorded limit is corrupt. + debugFatalf("corrupt: limit %d exceeds file size %d", limit, datalen) + return nil, nil, errCorrupt + } + // If m != orig, this is at least the second time around the loop + // trying to open the mapping. Close the previous attempt. + if m != orig { + m.close() + } + m = newM + v, headOff, head, ok = m.lookup(name) + } + if v != nil { + return v, nil, nil + } + + // Reserve space for new record. + // We are competing against other programs using the same file, + // so we use a compare-and-swap on the allocation limit in the header. + var start, end uint32 + for { + // Determine where record should end, and grow file if needed. + limit := m.load32(m.hdrLen + limitOff) + start, end = m.place(limit, name) + debugPrintf("place %s at %#x-%#x\n", name, start, end) + if int64(end) > int64(len(m.mapping.Data)) { + newM, err := m.extend(end) + if err != nil { + return nil, nil, err + } + if m != orig { + m.close() + } + m = newM + continue + } + + // Attempt to reserve that space for our record. + if m.cas32(m.hdrLen+limitOff, limit, end) { + break + } + } + + // Write record. + next, v, ok := m.writeEntryAt(start, name) + if !ok { + debugFatalf("corrupt: failed to write entry: %#x+%d vs %#x\n", start, len(name), len(m.mapping.Data)) + return nil, nil, errCorrupt // more likely our math is wrong + } + + // Link record into hash chain, making sure not to introduce a duplicate. + // We know name does not appear in the chain starting at head. + for { + next.Store(head) + if m.cas32(headOff, head, start) { + return v, nil, nil + } + + // Check new elements in chain for duplicates. + old := head + head = m.load32(headOff) + for off := head; off != old; { + ename, enext, v, ok := m.entryAt(off) + if !ok { + return nil, nil, errCorrupt + } + if string(ename) == name { + next.Store(^uint32(0)) // mark ours as dead + return v, nil, nil + } + off = enext + } + } +} + +func (m *mappedFile) extend(end uint32) (*mappedFile, error) { + end = round(end, pageSize) + info, err := m.f.Stat() + if err != nil { + return nil, err + } + if info.Size() < int64(end) { + // Note: multiple processes could be calling extend at the same time, + // but this write only writes the last 4 bytes of the page. + // The last 4 bytes of the page are reserved for this purpose and hold no data. + // (In m.place, if a new record would extend to the very end of the page, + // it is placed in the next page instead.) + // So it is fine if multiple processes extend at the same time. + if _, err := m.f.WriteAt(m.zero[:], int64(end)-int64(len(m.zero))); err != nil { + return nil, err + } + } + newM, err := openMapped(m.f.Name(), m.meta) + if err != nil { + return nil, err + } + if int64(len(newM.mapping.Data)) < int64(end) { + // File system or logic bug: new file is somehow not extended. + // See go.dev/issue/68311, where this appears to have been happening. + newM.close() + return nil, errCorrupt + } + return newM, err +} + +// round returns x rounded up to the next multiple of unit, +// which must be a power of two. +func round[T int | uint32](x T, unit T) T { + return (x + unit - 1) &^ (unit - 1) +} diff --git a/vendor/golang.org/x/telemetry/internal/counter/parse.go b/vendor/golang.org/x/telemetry/internal/counter/parse.go new file mode 100644 index 000000000..a42a3513c --- /dev/null +++ b/vendor/golang.org/x/telemetry/internal/counter/parse.go @@ -0,0 +1,82 @@ +// Copyright 2023 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. + +package counter + +import ( + "bytes" + "fmt" + "strings" + "unsafe" + + "golang.org/x/telemetry/internal/mmap" +) + +type File struct { + Meta map[string]string + Count map[string]uint64 +} + +func Parse(filename string, data []byte) (*File, error) { + if !bytes.HasPrefix(data, []byte(hdrPrefix)) || len(data) < pageSize { + if len(data) < pageSize { + return nil, fmt.Errorf("%s: file too short (%d<%d)", filename, len(data), pageSize) + } + return nil, fmt.Errorf("%s: wrong hdr (not %q)", filename, hdrPrefix) + } + corrupt := func() (*File, error) { + // TODO(rfindley): return a useful error message. + return nil, fmt.Errorf("%s: corrupt counter file", filename) + } + + f := &File{ + Meta: make(map[string]string), + Count: make(map[string]uint64), + } + np := round(len(hdrPrefix), 4) + hdrLen := *(*uint32)(unsafe.Pointer(&data[np])) + if hdrLen > pageSize { + return corrupt() + } + meta := data[np+4 : hdrLen] + if i := bytes.IndexByte(meta, 0); i >= 0 { + meta = meta[:i] + } + m := &mappedFile{ + meta: string(meta), + hdrLen: hdrLen, + mapping: &mmap.Data{Data: data}, + } + + lines := strings.Split(m.meta, "\n") + for _, line := range lines { + if line == "" { + continue + } + k, v, ok := strings.Cut(line, ": ") + if !ok { + return corrupt() + } + f.Meta[k] = v + } + + for i := uint32(0); i < numHash; i++ { + headOff := hdrLen + hashOff + i*4 + head := m.load32(headOff) + off := head + for off != 0 { + ename, next, v, ok := m.entryAt(off) + if !ok { + return corrupt() + } + if _, ok := f.Count[string(ename)]; ok { + return corrupt() + } + ctrName := DecodeStack(string(ename)) + f.Count[ctrName] = v.Load() + off = next + } + } + return f, nil +} diff --git a/vendor/golang.org/x/telemetry/internal/counter/stackcounter.go b/vendor/golang.org/x/telemetry/internal/counter/stackcounter.go new file mode 100644 index 000000000..3e7ffdeb6 --- /dev/null +++ b/vendor/golang.org/x/telemetry/internal/counter/stackcounter.go @@ -0,0 +1,212 @@ +// Copyright 2023 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. + +package counter + +import ( + "fmt" + "runtime" + "strings" + "sync" +) + +// On the disk, and upstream, stack counters look like sets of +// regular counters with names that include newlines. + +// a StackCounter is the in-memory knowledge about a stack counter. +// StackCounters are more expensive to use than regular Counters, +// requiring, at a minimum, a call to runtime.Callers. +type StackCounter struct { + name string + depth int + file *file + + mu sync.Mutex + // as this is a detail of the implementation, it could be replaced + // by a more efficient mechanism + stacks []stack +} + +type stack struct { + pcs []uintptr + counter *Counter +} + +func NewStack(name string, depth int) *StackCounter { + return &StackCounter{name: name, depth: depth, file: &defaultFile} +} + +// Inc increments a stack counter. It computes the caller's stack and +// looks up the corresponding counter. It then increments that counter, +// creating it if necessary. +func (c *StackCounter) Inc() { + pcs := make([]uintptr, c.depth) + n := runtime.Callers(2, pcs) // caller of Inc + pcs = pcs[:n] + + c.mu.Lock() + defer c.mu.Unlock() + + // Existing counter? + var ctr *Counter + for _, s := range c.stacks { + if eq(s.pcs, pcs) { + if s.counter != nil { + ctr = s.counter + break + } + } + } + + if ctr == nil { + // Create new counter. + ctr = &Counter{ + name: EncodeStack(pcs, c.name), + file: c.file, + } + c.stacks = append(c.stacks, stack{pcs: pcs, counter: ctr}) + } + + ctr.Inc() +} + +// EncodeStack returns the name of the counter to +// use for the given stack of program counters. +// The name encodes the stack. +func EncodeStack(pcs []uintptr, prefix string) string { + var locs []string + lastImport := "" + frs := runtime.CallersFrames(pcs) + for { + fr, more := frs.Next() + // TODO(adonovan): this CutLast(".") operation isn't + // appropriate for generic function symbols. + path, fname := cutLastDot(fr.Function) + if path == lastImport { + path = `"` // (a ditto mark) + } else { + lastImport = path + } + var loc string + if fr.Func != nil { + // Use function-relative line numbering. + // f:+2 means two lines into function f. + // f:-1 should never happen, but be conservative. + // + // An inlined call is replaced by a NOP instruction + // with the correct pclntab information. + _, entryLine := fr.Func.FileLine(fr.Entry) + loc = fmt.Sprintf("%s.%s:%+d,+0x%x", path, fname, fr.Line-entryLine, fr.PC-fr.Entry) + } else { + // The function is non-Go code or is fully inlined: + // use absolute line number within enclosing file. + // + // For inlined calls, the PC and Entry values + // both refer to the enclosing combined function. + // For example, both these PCs are relative to "caller": + // + // callee:=1,+0x12 ('=' means inlined) + // caller:+2,+0x34 + loc = fmt.Sprintf("%s.%s:=%d,+0x%x", path, fname, fr.Line, fr.PC-fr.Entry) + } + locs = append(locs, loc) + if !more { + break + } + } + + name := prefix + "\n" + strings.Join(locs, "\n") + if len(name) > maxNameLen { + const bad = "\ntruncated\n" + name = name[:maxNameLen-len(bad)] + bad + } + return name +} + +// DecodeStack expands the (compressed) stack encoded in the counter name. +func DecodeStack(ename string) string { + if !strings.Contains(ename, "\n") { + return ename // not a stack counter + } + lines := strings.Split(ename, "\n") + var lastPath string // empty or ends with . + for i, line := range lines { + path, rest := cutLastDot(line) + if len(path) == 0 { + continue // unchanged + } + if len(path) == 1 && path[0] == '"' { + lines[i] = lastPath + rest + } else { + lastPath = path + "." + // line unchanged + } + } + return strings.Join(lines, "\n") // trailing \n? +} + +// input is . +// output is (import path, function name) +func cutLastDot(x string) (before, after string) { + i := strings.LastIndex(x, ".") + if i < 0 { + return "", x + } + return x[:i], x[i+1:] +} + +// Names reports all the counter names associated with a StackCounter. +func (c *StackCounter) Names() []string { + c.mu.Lock() + defer c.mu.Unlock() + names := make([]string, len(c.stacks)) + for i, s := range c.stacks { + names[i] = s.counter.Name() + } + return names +} + +// Counters returns the known Counters for a StackCounter. +// There may be more in the count file. +func (c *StackCounter) Counters() []*Counter { + c.mu.Lock() + defer c.mu.Unlock() + counters := make([]*Counter, len(c.stacks)) + for i, s := range c.stacks { + counters[i] = s.counter + } + return counters +} + +func eq(a, b []uintptr) bool { + if len(a) != len(b) { + return false + } + for i := range a { + if a[i] != b[i] { + return false + } + } + return true +} + +// ReadStack reads the given stack counter. +// This is the implementation of +// golang.org/x/telemetry/counter/countertest.ReadStackCounter. +func ReadStack(c *StackCounter) (map[string]uint64, error) { + ret := map[string]uint64{} + for _, ctr := range c.Counters() { + v, err := Read(ctr) + if err != nil { + return nil, err + } + ret[DecodeStack(ctr.Name())] = v + } + return ret, nil +} + +// IsStackCounter reports whether the counter name is for a stack counter. +func IsStackCounter(name string) bool { + return strings.Contains(name, "\n") +} diff --git a/vendor/golang.org/x/telemetry/internal/mmap/mmap.go b/vendor/golang.org/x/telemetry/internal/mmap/mmap.go new file mode 100644 index 000000000..2febe3ecb --- /dev/null +++ b/vendor/golang.org/x/telemetry/internal/mmap/mmap.go @@ -0,0 +1,36 @@ +// Copyright 2011 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. + +// This package is a lightly modified version of the mmap code +// in github.com/google/codesearch/index. + +// The mmap package provides an abstraction for memory mapping files +// on different platforms. +package mmap + +import ( + "os" +) + +// The backing file is never closed, so Data +// remains valid for the lifetime of the process. +type Data struct { + // TODO(pjw): might be better to define versions of Data + // for the 3 specializations + f *os.File + Data []byte + // Some windows magic + Windows interface{} +} + +// Mmap maps the given file into memory. +// When remapping a file, pass the most recently returned Data. +func Mmap(f *os.File) (*Data, error) { + return mmapFile(f) +} + +// Munmap unmaps the given file from memory. +func Munmap(d *Data) error { + return munmapFile(d) +} diff --git a/vendor/golang.org/x/telemetry/internal/mmap/mmap_other.go b/vendor/golang.org/x/telemetry/internal/mmap/mmap_other.go new file mode 100644 index 000000000..610ab1a15 --- /dev/null +++ b/vendor/golang.org/x/telemetry/internal/mmap/mmap_other.go @@ -0,0 +1,25 @@ +// Copyright 2022 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 (js && wasm) || wasip1 || plan9 + +package mmap + +import ( + "io" + "os" +) + +// mmapFile on other systems doesn't mmap the file. It just reads everything. +func mmapFile(f *os.File) (*Data, error) { + b, err := io.ReadAll(f) + if err != nil { + return nil, err + } + return &Data{f, b, nil}, nil +} + +func munmapFile(_ *Data) error { + return nil +} diff --git a/vendor/golang.org/x/telemetry/internal/mmap/mmap_unix.go b/vendor/golang.org/x/telemetry/internal/mmap/mmap_unix.go new file mode 100644 index 000000000..72ad91d52 --- /dev/null +++ b/vendor/golang.org/x/telemetry/internal/mmap/mmap_unix.go @@ -0,0 +1,47 @@ +// Copyright 2011 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 unix + +package mmap + +import ( + "fmt" + "io/fs" + "os" + "syscall" +) + +func mmapFile(f *os.File) (*Data, error) { + st, err := f.Stat() + if err != nil { + return nil, err + } + size := st.Size() + pagesize := int64(os.Getpagesize()) + if int64(int(size+(pagesize-1))) != size+(pagesize-1) { + return nil, fmt.Errorf("%s: too large for mmap", f.Name()) + } + n := int(size) + if n == 0 { + return &Data{f, nil, nil}, nil + } + mmapLength := int(((size + pagesize - 1) / pagesize) * pagesize) // round up to page size + data, err := syscall.Mmap(int(f.Fd()), 0, mmapLength, syscall.PROT_READ|syscall.PROT_WRITE, syscall.MAP_SHARED) + if err != nil { + return nil, &fs.PathError{Op: "mmap", Path: f.Name(), Err: err} + } + return &Data{f, data[:n], nil}, nil +} + +func munmapFile(d *Data) error { + if len(d.Data) == 0 { + return nil + } + err := syscall.Munmap(d.Data) + if err != nil { + return &fs.PathError{Op: "munmap", Path: d.f.Name(), Err: err} + } + return nil +} diff --git a/vendor/golang.org/x/telemetry/internal/mmap/mmap_windows.go b/vendor/golang.org/x/telemetry/internal/mmap/mmap_windows.go new file mode 100644 index 000000000..2e8dfbea9 --- /dev/null +++ b/vendor/golang.org/x/telemetry/internal/mmap/mmap_windows.go @@ -0,0 +1,52 @@ +// Copyright 2011 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. + +package mmap + +import ( + "fmt" + "os" + "syscall" + "unsafe" + + "golang.org/x/sys/windows" +) + +func mmapFile(f *os.File) (*Data, error) { + st, err := f.Stat() + if err != nil { + return nil, err + } + size := st.Size() + if size == 0 { + return &Data{f, nil, nil}, nil + } + // set the min and max sizes to zero to map the whole file, as described in + // https://learn.microsoft.com/en-us/windows/win32/memory/creating-a-file-mapping-object#file-mapping-size + h, err := windows.CreateFileMapping(windows.Handle(f.Fd()), nil, syscall.PAGE_READWRITE, 0, 0, nil) + if err != nil { + return nil, fmt.Errorf("CreateFileMapping %s: %w", f.Name(), err) + } + // the mapping extends from zero to the end of the file mapping + // https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-mapviewoffile + addr, err := windows.MapViewOfFile(h, syscall.FILE_MAP_READ|syscall.FILE_MAP_WRITE, 0, 0, 0) + if err != nil { + return nil, fmt.Errorf("MapViewOfFile %s: %w", f.Name(), err) + } + // Note: previously, we called windows.VirtualQuery here to get the exact + // size of the memory mapped region, but VirtualQuery reported sizes smaller + // than the actual file size (hypothesis: VirtualQuery only reports pages in + // a certain state, and newly written pages may not be counted). + return &Data{f, unsafe.Slice((*byte)(unsafe.Pointer(addr)), size), h}, nil +} + +func munmapFile(d *Data) error { + err := windows.UnmapViewOfFile(uintptr(unsafe.Pointer(&d.Data[0]))) + x, ok := d.Windows.(windows.Handle) + if ok { + windows.CloseHandle(x) + } + d.f.Close() + return err +} diff --git a/vendor/golang.org/x/telemetry/internal/telemetry/dateonly.go b/vendor/golang.org/x/telemetry/internal/telemetry/dateonly.go new file mode 100644 index 000000000..719530186 --- /dev/null +++ b/vendor/golang.org/x/telemetry/internal/telemetry/dateonly.go @@ -0,0 +1,9 @@ +// Copyright 2024 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. + +package telemetry + +// TODO(rfindley): replace uses of DateOnly with time.DateOnly once we no +// longer support building gopls with go 1.19. +const DateOnly = "2006-01-02" diff --git a/vendor/golang.org/x/telemetry/internal/telemetry/dir.go b/vendor/golang.org/x/telemetry/internal/telemetry/dir.go new file mode 100644 index 000000000..0673be567 --- /dev/null +++ b/vendor/golang.org/x/telemetry/internal/telemetry/dir.go @@ -0,0 +1,163 @@ +// Copyright 2023 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. + +// Package telemetry manages the telemetry mode file. +package telemetry + +import ( + "fmt" + "os" + "path/filepath" + "runtime" + "strings" + "time" +) + +// Default is the default directory containing Go telemetry configuration and +// data. +// +// If Default is uninitialized, Default.Mode will be "off". As a consequence, +// no data should be written to the directory, and so the path values of +// LocalDir, UploadDir, etc. must not matter. +// +// Default is a global for convenience and testing, but should not be mutated +// outside of tests. +// +// TODO(rfindley): it would be nice to completely eliminate this global state, +// or at least push it in the golang.org/x/telemetry package +var Default Dir + +// A Dir holds paths to telemetry data inside a directory. +type Dir struct { + dir, local, upload, debug, modefile string +} + +// NewDir creates a new Dir encapsulating paths in the given dir. +// +// NewDir does not create any new directories or files--it merely encapsulates +// the telemetry directory layout. +func NewDir(dir string) Dir { + return Dir{ + dir: dir, + local: filepath.Join(dir, "local"), + upload: filepath.Join(dir, "upload"), + debug: filepath.Join(dir, "debug"), + modefile: filepath.Join(dir, "mode"), + } +} + +func init() { + cfgDir, err := os.UserConfigDir() + if err != nil { + return + } + Default = NewDir(filepath.Join(cfgDir, "go", "telemetry")) +} + +func (d Dir) Dir() string { + return d.dir +} + +func (d Dir) LocalDir() string { + return d.local +} + +func (d Dir) UploadDir() string { + return d.upload +} + +func (d Dir) DebugDir() string { + return d.debug +} + +func (d Dir) ModeFile() string { + return d.modefile +} + +// SetMode updates the telemetry mode with the given mode. +// Acceptable values for mode are "on", "off", or "local". +// +// SetMode always writes the mode file, and explicitly records the date at +// which the modefile was updated. This means that calling SetMode with "on" +// effectively resets the timeout before the next telemetry report is uploaded. +func (d Dir) SetMode(mode string) error { + return d.SetModeAsOf(mode, time.Now()) +} + +// SetModeAsOf is like SetMode, but accepts an explicit time to use to +// back-date the mode state. This exists only for testing purposes. +func (d Dir) SetModeAsOf(mode string, asofTime time.Time) error { + mode = strings.TrimSpace(mode) + switch mode { + case "on", "off", "local": + default: + return fmt.Errorf("invalid telemetry mode: %q", mode) + } + if d.modefile == "" { + return fmt.Errorf("cannot determine telemetry mode file name") + } + // TODO(rfindley): why is this not 777, consistent with the use of 666 below? + if err := os.MkdirAll(filepath.Dir(d.modefile), 0755); err != nil { + return fmt.Errorf("cannot create a telemetry mode file: %w", err) + } + + asof := asofTime.UTC().Format(DateOnly) + // Defensively guarantee that we can parse the asof time. + if _, err := time.Parse(DateOnly, asof); err != nil { + return fmt.Errorf("internal error: invalid mode date %q: %v", asof, err) + } + + data := []byte(mode + " " + asof) + return os.WriteFile(d.modefile, data, 0666) +} + +// Mode returns the current telemetry mode, as well as the time that the mode +// was effective. +// +// If there is no effective time, the second result is the zero time. +// +// If Mode is "off", no data should be written to the telemetry directory, and +// the other paths values referenced by Dir should be considered undefined. +// This accounts for the case where initializing [Default] fails, and therefore +// local telemetry paths are unknown. +func (d Dir) Mode() (string, time.Time) { + if d.modefile == "" { + return "off", time.Time{} // it's likely LocalDir/UploadDir are empty too. Turn off telemetry. + } + data, err := os.ReadFile(d.modefile) + if err != nil { + return "local", time.Time{} // default + } + mode := string(data) + mode = strings.TrimSpace(mode) + + // Forward compatibility for https://go.dev/issue/63142#issuecomment-1734025130 + // + // If the modefile contains a date, return it. + if idx := strings.Index(mode, " "); idx >= 0 { + d, err := time.Parse(DateOnly, mode[idx+1:]) + if err != nil { + d = time.Time{} + } + return mode[:idx], d + } + + return mode, time.Time{} +} + +// DisabledOnPlatform indicates whether telemetry is disabled +// due to bugs in the current platform. +// +// TODO(rfindley): move to a more appropriate file. +const DisabledOnPlatform = false || + // The following platforms could potentially be supported in the future: + runtime.GOOS == "openbsd" || // #60614 + runtime.GOOS == "solaris" || // #60968 #60970 + runtime.GOOS == "android" || // #60967 + runtime.GOOS == "illumos" || // #65544 + // These platforms fundamentally can't be supported: + runtime.GOOS == "js" || // #60971 + runtime.GOOS == "wasip1" || // #60971 + runtime.GOOS == "plan9" || // https://github.com/golang/go/issues/57540#issuecomment-1470766639 + runtime.GOARCH == "mips" || runtime.GOARCH == "mipsle" // mips lacks cross-process 64-bit atomics diff --git a/vendor/golang.org/x/telemetry/internal/telemetry/proginfo.go b/vendor/golang.org/x/telemetry/internal/telemetry/proginfo.go new file mode 100644 index 000000000..5ff7d34fe --- /dev/null +++ b/vendor/golang.org/x/telemetry/internal/telemetry/proginfo.go @@ -0,0 +1,57 @@ +// Copyright 2024 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. + +package telemetry + +import ( + "go/version" + "os" + "path/filepath" + "runtime/debug" + "strings" +) + +// IsToolchainProgram reports whether a program with the given path is a Go +// toolchain program. +func IsToolchainProgram(progPath string) bool { + return strings.HasPrefix(progPath, "cmd/") +} + +// ProgramInfo extracts the go version, program package path, and program +// version to use for counter files. +// +// For programs in the Go toolchain, the program version will be the same as +// the Go version, and will typically be of the form "go1.2.3", not a semantic +// version of the form "v1.2.3". Go versions may also include spaces and +// special characters. +func ProgramInfo(info *debug.BuildInfo) (goVers, progPath, progVers string) { + goVers = info.GoVersion + if strings.Contains(goVers, "devel") || strings.Contains(goVers, "-") || !version.IsValid(goVers) { + goVers = "devel" + } + + progPath = info.Path + if progPath == "" { + progPath = strings.TrimSuffix(filepath.Base(os.Args[0]), ".exe") + } + + // Main module version information is not populated for the cmd module, but + // we can re-use the Go version here. + if IsToolchainProgram(progPath) { + progVers = goVers + } else { + progVers = info.Main.Version + if strings.Contains(progVers, "devel") || strings.Count(progVers, "-") > 1 { + // Heuristically mark all pseudo-version-like version strings as "devel" + // to avoid creating too many counter files. + // We should not use regexp that pulls in large dependencies. + // Pseudo-versions have at least three parts (https://go.dev/ref/mod#pseudo-versions). + // This heuristic still allows use to track prerelease + // versions (e.g. gopls@v0.16.0-pre.1, vscgo@v0.42.0-rc.1). + progVers = "devel" + } + } + + return goVers, progPath, progVers +} diff --git a/vendor/golang.org/x/telemetry/internal/telemetry/types.go b/vendor/golang.org/x/telemetry/internal/telemetry/types.go new file mode 100644 index 000000000..0fd61f8de --- /dev/null +++ b/vendor/golang.org/x/telemetry/internal/telemetry/types.go @@ -0,0 +1,51 @@ +// Copyright 2023 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. + +package telemetry + +// Common types and directories used by multiple packages. + +// An UploadConfig controls what data is uploaded. +type UploadConfig struct { + GOOS []string + GOARCH []string + GoVersion []string + SampleRate float64 + Programs []*ProgramConfig +} + +type ProgramConfig struct { + // the counter names may have to be + // repeated for each program. (e.g., if the counters are in a package + // that is used in more than one program.) + Name string + Versions []string // versions present in a counterconfig + Counters []CounterConfig `json:",omitempty"` + Stacks []CounterConfig `json:",omitempty"` +} + +type CounterConfig struct { + Name string // The "collapsed" counter: :{,,...} + Rate float64 // If X <= Rate, report this counter + Depth int `json:",omitempty"` // for stack counters +} + +// A Report is the weekly aggregate of counters. +type Report struct { + Week string // End day this report covers (YYYY-MM-DD) + LastWeek string // Week field from latest previous report uploaded + X float64 // A random probability used to determine which counters are uploaded + Programs []*ProgramReport + Config string // version of UploadConfig used +} + +type ProgramReport struct { + Program string // Package path of the program. + Version string // Program version. Go version if the program is part of the go distribution. Module version, otherwise. + GoVersion string // Go version used to build the program. + GOOS string + GOARCH string + Counters map[string]int64 + Stacks map[string]int64 +} diff --git a/vendor/golang.org/x/text/unicode/bidi/core.go b/vendor/golang.org/x/text/unicode/bidi/core.go index 9d2ae547b..fb8273236 100644 --- a/vendor/golang.org/x/text/unicode/bidi/core.go +++ b/vendor/golang.org/x/text/unicode/bidi/core.go @@ -427,13 +427,6 @@ type isolatingRunSequence struct { func (i *isolatingRunSequence) Len() int { return len(i.indexes) } -func maxLevel(a, b level) level { - if a > b { - return a - } - return b -} - // Rule X10, second bullet: Determine the start-of-sequence (sos) and end-of-sequence (eos) types, // either L or R, for each isolating run sequence. func (p *paragraph) isolatingRunSequence(indexes []int) *isolatingRunSequence { @@ -474,8 +467,8 @@ func (p *paragraph) isolatingRunSequence(indexes []int) *isolatingRunSequence { indexes: indexes, types: types, level: level, - sos: typeForLevel(maxLevel(prevLevel, level)), - eos: typeForLevel(maxLevel(succLevel, level)), + sos: typeForLevel(max(prevLevel, level)), + eos: typeForLevel(max(succLevel, level)), } } diff --git a/vendor/golang.org/x/tools/cmd/goimports/goimports.go b/vendor/golang.org/x/tools/cmd/goimports/goimports.go index 11f56e0e8..f7dec9bef 100644 --- a/vendor/golang.org/x/tools/cmd/goimports/goimports.go +++ b/vendor/golang.org/x/tools/cmd/goimports/goimports.go @@ -20,6 +20,7 @@ import ( "runtime/pprof" "strings" + "golang.org/x/telemetry/counter" "golang.org/x/tools/internal/gocommand" "golang.org/x/tools/internal/imports" ) @@ -198,6 +199,9 @@ func walkDir(path string) { } func main() { + // is anyone using this command? + counter.Open() + counter.Inc("tools/cmd:goimports") runtime.GOMAXPROCS(runtime.NumCPU()) // call gofmtMain in a separate function diff --git a/vendor/golang.org/x/tools/cmd/stringer/stringer.go b/vendor/golang.org/x/tools/cmd/stringer/stringer.go index 038e8e831..7ff0ee8d0 100644 --- a/vendor/golang.org/x/tools/cmd/stringer/stringer.go +++ b/vendor/golang.org/x/tools/cmd/stringer/stringer.go @@ -70,6 +70,10 @@ // PillAspirin // Aspirin // // to suppress it in the output. +// +// The -trimprefix flag specifies a prefix to remove from the constant names +// when generating the string representations. For instance, -trimprefix=Pill +// would be an alternative way to ensure that PillAspirin.String() == "Aspirin". package main // import "golang.org/x/tools/cmd/stringer" import ( @@ -209,7 +213,7 @@ func main() { // and the separate package of tests (package foo_test). outputName = filepath.Join(dir, baseName(pkg, foundTypes[0])) } - err := os.WriteFile(outputName, src, 0644) + err := os.WriteFile(outputName, src, 0o644) if err != nil { log.Fatalf("writing output: %s", err) } @@ -637,44 +641,19 @@ func (g *Generator) buildOneRun(runs [][]Value, typeName string) { values := runs[0] g.Printf("\n") g.declareIndexAndNameVar(values, typeName) - // The generated code is simple enough to write as a Printf format. - lessThanZero := "" - if values[0].signed { - lessThanZero = "i < 0 || " - } - if values[0].value == 0 { // Signed or unsigned, 0 is still 0. - g.Printf(stringOneRun, typeName, usize(len(values)), lessThanZero) - } else { - g.Printf(stringOneRunWithOffset, typeName, values[0].String(), usize(len(values)), lessThanZero) - } + g.Printf(stringOneRun, typeName, values[0].String()) } // Arguments to format are: // // [1]: type name -// [2]: size of index element (8 for uint8 etc.) -// [3]: less than zero check (for signed types) +// [2]: lowest defined value for type, as a string const stringOneRun = `func (i %[1]s) String() string { - if %[3]si >= %[1]s(len(_%[1]s_index)-1) { + idx := int(i) - %[2]s + if i < %[2]s || idx >= len(_%[1]s_index)-1 { return "%[1]s(" + strconv.FormatInt(int64(i), 10) + ")" } - return _%[1]s_name[_%[1]s_index[i]:_%[1]s_index[i+1]] -} -` - -// Arguments to format are: -// [1]: type name -// [2]: lowest defined value for type, as a string -// [3]: size of index element (8 for uint8 etc.) -// [4]: less than zero check (for signed types) -/* - */ -const stringOneRunWithOffset = `func (i %[1]s) String() string { - i -= %[2]s - if %[4]si >= %[1]s(len(_%[1]s_index)-1) { - return "%[1]s(" + strconv.FormatInt(int64(i + %[2]s), 10) + ")" - } - return _%[1]s_name[_%[1]s_index[i] : _%[1]s_index[i+1]] + return _%[1]s_name[_%[1]s_index[idx] : _%[1]s_index[idx+1]] } ` diff --git a/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go b/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go index 6e34df461..0fb4e7eea 100644 --- a/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go +++ b/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go @@ -113,7 +113,7 @@ func PathEnclosingInterval(root *ast.File, start, end token.Pos) (path []ast.Nod // childrenOf elides the FuncType node beneath FuncDecl. // Add it back here for TypeParams, Params, Results, // all FieldLists). But we don't add it back for the "func" token - // even though it is is the tree at FuncDecl.Type.Func. + // even though it is the tree at FuncDecl.Type.Func. if decl, ok := node.(*ast.FuncDecl); ok { if fields, ok := child.(*ast.FieldList); ok && fields != decl.Recv { path = append(path, decl.Type) @@ -207,6 +207,9 @@ func childrenOf(n ast.Node) []ast.Node { return false // no recursion }) + // TODO(adonovan): be more careful about missing (!Pos.Valid) + // tokens in trees produced from invalid input. + // Then add fake Nodes for bare tokens. switch n := n.(type) { case *ast.ArrayType: @@ -226,9 +229,12 @@ func childrenOf(n ast.Node) []ast.Node { children = append(children, tok(n.OpPos, len(n.Op.String()))) case *ast.BlockStmt: - children = append(children, - tok(n.Lbrace, len("{")), - tok(n.Rbrace, len("}"))) + if n.Lbrace.IsValid() { + children = append(children, tok(n.Lbrace, len("{"))) + } + if n.Rbrace.IsValid() { + children = append(children, tok(n.Rbrace, len("}"))) + } case *ast.BranchStmt: children = append(children, @@ -304,9 +310,12 @@ func childrenOf(n ast.Node) []ast.Node { // TODO(adonovan): Field.{Doc,Comment,Tag}? case *ast.FieldList: - children = append(children, - tok(n.Opening, len("(")), // or len("[") - tok(n.Closing, len(")"))) // or len("]") + if n.Opening.IsValid() { + children = append(children, tok(n.Opening, len("("))) + } + if n.Closing.IsValid() { + children = append(children, tok(n.Closing, len(")"))) + } case *ast.File: // TODO test: Doc diff --git a/vendor/golang.org/x/tools/go/ast/astutil/imports.go b/vendor/golang.org/x/tools/go/ast/astutil/imports.go index 5e5601aa4..5bacc0fa4 100644 --- a/vendor/golang.org/x/tools/go/ast/astutil/imports.go +++ b/vendor/golang.org/x/tools/go/ast/astutil/imports.go @@ -209,48 +209,46 @@ func DeleteImport(fset *token.FileSet, f *ast.File, path string) (deleted bool) // DeleteNamedImport deletes the import with the given name and path from the file f, if present. // If there are duplicate import declarations, all matching ones are deleted. func DeleteNamedImport(fset *token.FileSet, f *ast.File, name, path string) (deleted bool) { - var delspecs []*ast.ImportSpec - var delcomments []*ast.CommentGroup + var ( + delspecs = make(map[*ast.ImportSpec]bool) + delcomments = make(map[*ast.CommentGroup]bool) + ) // Find the import nodes that import path, if any. for i := 0; i < len(f.Decls); i++ { - decl := f.Decls[i] - gen, ok := decl.(*ast.GenDecl) + gen, ok := f.Decls[i].(*ast.GenDecl) if !ok || gen.Tok != token.IMPORT { continue } for j := 0; j < len(gen.Specs); j++ { - spec := gen.Specs[j] - impspec := spec.(*ast.ImportSpec) + impspec := gen.Specs[j].(*ast.ImportSpec) if importName(impspec) != name || importPath(impspec) != path { continue } // We found an import spec that imports path. // Delete it. - delspecs = append(delspecs, impspec) + delspecs[impspec] = true deleted = true - copy(gen.Specs[j:], gen.Specs[j+1:]) - gen.Specs = gen.Specs[:len(gen.Specs)-1] + gen.Specs = slices.Delete(gen.Specs, j, j+1) // If this was the last import spec in this decl, // delete the decl, too. if len(gen.Specs) == 0 { - copy(f.Decls[i:], f.Decls[i+1:]) - f.Decls = f.Decls[:len(f.Decls)-1] + f.Decls = slices.Delete(f.Decls, i, i+1) i-- break } else if len(gen.Specs) == 1 { if impspec.Doc != nil { - delcomments = append(delcomments, impspec.Doc) + delcomments[impspec.Doc] = true } if impspec.Comment != nil { - delcomments = append(delcomments, impspec.Comment) + delcomments[impspec.Comment] = true } for _, cg := range f.Comments { // Found comment on the same line as the import spec. if cg.End() < impspec.Pos() && fset.Position(cg.End()).Line == fset.Position(impspec.Pos()).Line { - delcomments = append(delcomments, cg) + delcomments[cg] = true break } } @@ -294,38 +292,21 @@ func DeleteNamedImport(fset *token.FileSet, f *ast.File, name, path string) (del } // Delete imports from f.Imports. - for i := 0; i < len(f.Imports); i++ { - imp := f.Imports[i] - for j, del := range delspecs { - if imp == del { - copy(f.Imports[i:], f.Imports[i+1:]) - f.Imports = f.Imports[:len(f.Imports)-1] - copy(delspecs[j:], delspecs[j+1:]) - delspecs = delspecs[:len(delspecs)-1] - i-- - break - } - } + before := len(f.Imports) + f.Imports = slices.DeleteFunc(f.Imports, func(imp *ast.ImportSpec) bool { + _, ok := delspecs[imp] + return ok + }) + if len(f.Imports)+len(delspecs) != before { + // This can happen when the AST is invalid (i.e. imports differ between f.Decls and f.Imports). + panic(fmt.Sprintf("deleted specs from Decls but not Imports: %v", delspecs)) } // Delete comments from f.Comments. - for i := 0; i < len(f.Comments); i++ { - cg := f.Comments[i] - for j, del := range delcomments { - if cg == del { - copy(f.Comments[i:], f.Comments[i+1:]) - f.Comments = f.Comments[:len(f.Comments)-1] - copy(delcomments[j:], delcomments[j+1:]) - delcomments = delcomments[:len(delcomments)-1] - i-- - break - } - } - } - - if len(delspecs) > 0 { - panic(fmt.Sprintf("deleted specs from Decls but not Imports: %v", delspecs)) - } + f.Comments = slices.DeleteFunc(f.Comments, func(cg *ast.CommentGroup) bool { + _, ok := delcomments[cg] + return ok + }) return } diff --git a/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go b/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go index 5c8dbbb7a..4ad054930 100644 --- a/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go +++ b/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go @@ -67,6 +67,10 @@ var abort = new(int) // singleton, to signal termination of Apply // // The methods Replace, Delete, InsertBefore, and InsertAfter // can be used to change the AST without disrupting Apply. +// +// This type is not to be confused with [inspector.Cursor] from +// package [golang.org/x/tools/go/ast/inspector], which provides +// stateless navigation of immutable syntax trees. type Cursor struct { parent ast.Node name string diff --git a/vendor/golang.org/x/tools/go/ast/edge/edge.go b/vendor/golang.org/x/tools/go/ast/edge/edge.go new file mode 100644 index 000000000..4f6ccfd6e --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/edge/edge.go @@ -0,0 +1,295 @@ +// Copyright 2025 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. + +// Package edge defines identifiers for each field of an ast.Node +// struct type that refers to another Node. +package edge + +import ( + "fmt" + "go/ast" + "reflect" +) + +// A Kind describes a field of an ast.Node struct. +type Kind uint8 + +// String returns a description of the edge kind. +func (k Kind) String() string { + if k == Invalid { + return "" + } + info := fieldInfos[k] + return fmt.Sprintf("%v.%s", info.nodeType.Elem().Name(), info.name) +} + +// NodeType returns the pointer-to-struct type of the ast.Node implementation. +func (k Kind) NodeType() reflect.Type { return fieldInfos[k].nodeType } + +// FieldName returns the name of the field. +func (k Kind) FieldName() string { return fieldInfos[k].name } + +// FieldType returns the declared type of the field. +func (k Kind) FieldType() reflect.Type { return fieldInfos[k].fieldType } + +// Get returns the direct child of n identified by (k, idx). +// n's type must match k.NodeType(). +// idx must be a valid slice index, or -1 for a non-slice. +func (k Kind) Get(n ast.Node, idx int) ast.Node { + if k.NodeType() != reflect.TypeOf(n) { + panic(fmt.Sprintf("%v.Get(%T): invalid node type", k, n)) + } + v := reflect.ValueOf(n).Elem().Field(fieldInfos[k].index) + if idx != -1 { + v = v.Index(idx) // asserts valid index + } else { + // (The type assertion below asserts that v is not a slice.) + } + return v.Interface().(ast.Node) // may be nil +} + +const ( + Invalid Kind = iota // for nodes at the root of the traversal + + // Kinds are sorted alphabetically. + // Numbering is not stable. + // Each is named Type_Field, where Type is the + // ast.Node struct type and Field is the name of the field + + ArrayType_Elt + ArrayType_Len + AssignStmt_Lhs + AssignStmt_Rhs + BinaryExpr_X + BinaryExpr_Y + BlockStmt_List + BranchStmt_Label + CallExpr_Args + CallExpr_Fun + CaseClause_Body + CaseClause_List + ChanType_Value + CommClause_Body + CommClause_Comm + CommentGroup_List + CompositeLit_Elts + CompositeLit_Type + DeclStmt_Decl + DeferStmt_Call + Ellipsis_Elt + ExprStmt_X + FieldList_List + Field_Comment + Field_Doc + Field_Names + Field_Tag + Field_Type + File_Decls + File_Doc + File_Name + ForStmt_Body + ForStmt_Cond + ForStmt_Init + ForStmt_Post + FuncDecl_Body + FuncDecl_Doc + FuncDecl_Name + FuncDecl_Recv + FuncDecl_Type + FuncLit_Body + FuncLit_Type + FuncType_Params + FuncType_Results + FuncType_TypeParams + GenDecl_Doc + GenDecl_Specs + GoStmt_Call + IfStmt_Body + IfStmt_Cond + IfStmt_Else + IfStmt_Init + ImportSpec_Comment + ImportSpec_Doc + ImportSpec_Name + ImportSpec_Path + IncDecStmt_X + IndexExpr_Index + IndexExpr_X + IndexListExpr_Indices + IndexListExpr_X + InterfaceType_Methods + KeyValueExpr_Key + KeyValueExpr_Value + LabeledStmt_Label + LabeledStmt_Stmt + MapType_Key + MapType_Value + ParenExpr_X + RangeStmt_Body + RangeStmt_Key + RangeStmt_Value + RangeStmt_X + ReturnStmt_Results + SelectStmt_Body + SelectorExpr_Sel + SelectorExpr_X + SendStmt_Chan + SendStmt_Value + SliceExpr_High + SliceExpr_Low + SliceExpr_Max + SliceExpr_X + StarExpr_X + StructType_Fields + SwitchStmt_Body + SwitchStmt_Init + SwitchStmt_Tag + TypeAssertExpr_Type + TypeAssertExpr_X + TypeSpec_Comment + TypeSpec_Doc + TypeSpec_Name + TypeSpec_Type + TypeSpec_TypeParams + TypeSwitchStmt_Assign + TypeSwitchStmt_Body + TypeSwitchStmt_Init + UnaryExpr_X + ValueSpec_Comment + ValueSpec_Doc + ValueSpec_Names + ValueSpec_Type + ValueSpec_Values + + maxKind +) + +// Assert that the encoding fits in 7 bits, +// as the inspector relies on this. +// (We are currently at 104.) +var _ = [1 << 7]struct{}{}[maxKind] + +type fieldInfo struct { + nodeType reflect.Type // pointer-to-struct type of ast.Node implementation + name string + index int + fieldType reflect.Type +} + +func info[N ast.Node](fieldName string) fieldInfo { + nodePtrType := reflect.TypeFor[N]() + f, ok := nodePtrType.Elem().FieldByName(fieldName) + if !ok { + panic(fieldName) + } + return fieldInfo{nodePtrType, fieldName, f.Index[0], f.Type} +} + +var fieldInfos = [...]fieldInfo{ + Invalid: {}, + ArrayType_Elt: info[*ast.ArrayType]("Elt"), + ArrayType_Len: info[*ast.ArrayType]("Len"), + AssignStmt_Lhs: info[*ast.AssignStmt]("Lhs"), + AssignStmt_Rhs: info[*ast.AssignStmt]("Rhs"), + BinaryExpr_X: info[*ast.BinaryExpr]("X"), + BinaryExpr_Y: info[*ast.BinaryExpr]("Y"), + BlockStmt_List: info[*ast.BlockStmt]("List"), + BranchStmt_Label: info[*ast.BranchStmt]("Label"), + CallExpr_Args: info[*ast.CallExpr]("Args"), + CallExpr_Fun: info[*ast.CallExpr]("Fun"), + CaseClause_Body: info[*ast.CaseClause]("Body"), + CaseClause_List: info[*ast.CaseClause]("List"), + ChanType_Value: info[*ast.ChanType]("Value"), + CommClause_Body: info[*ast.CommClause]("Body"), + CommClause_Comm: info[*ast.CommClause]("Comm"), + CommentGroup_List: info[*ast.CommentGroup]("List"), + CompositeLit_Elts: info[*ast.CompositeLit]("Elts"), + CompositeLit_Type: info[*ast.CompositeLit]("Type"), + DeclStmt_Decl: info[*ast.DeclStmt]("Decl"), + DeferStmt_Call: info[*ast.DeferStmt]("Call"), + Ellipsis_Elt: info[*ast.Ellipsis]("Elt"), + ExprStmt_X: info[*ast.ExprStmt]("X"), + FieldList_List: info[*ast.FieldList]("List"), + Field_Comment: info[*ast.Field]("Comment"), + Field_Doc: info[*ast.Field]("Doc"), + Field_Names: info[*ast.Field]("Names"), + Field_Tag: info[*ast.Field]("Tag"), + Field_Type: info[*ast.Field]("Type"), + File_Decls: info[*ast.File]("Decls"), + File_Doc: info[*ast.File]("Doc"), + File_Name: info[*ast.File]("Name"), + ForStmt_Body: info[*ast.ForStmt]("Body"), + ForStmt_Cond: info[*ast.ForStmt]("Cond"), + ForStmt_Init: info[*ast.ForStmt]("Init"), + ForStmt_Post: info[*ast.ForStmt]("Post"), + FuncDecl_Body: info[*ast.FuncDecl]("Body"), + FuncDecl_Doc: info[*ast.FuncDecl]("Doc"), + FuncDecl_Name: info[*ast.FuncDecl]("Name"), + FuncDecl_Recv: info[*ast.FuncDecl]("Recv"), + FuncDecl_Type: info[*ast.FuncDecl]("Type"), + FuncLit_Body: info[*ast.FuncLit]("Body"), + FuncLit_Type: info[*ast.FuncLit]("Type"), + FuncType_Params: info[*ast.FuncType]("Params"), + FuncType_Results: info[*ast.FuncType]("Results"), + FuncType_TypeParams: info[*ast.FuncType]("TypeParams"), + GenDecl_Doc: info[*ast.GenDecl]("Doc"), + GenDecl_Specs: info[*ast.GenDecl]("Specs"), + GoStmt_Call: info[*ast.GoStmt]("Call"), + IfStmt_Body: info[*ast.IfStmt]("Body"), + IfStmt_Cond: info[*ast.IfStmt]("Cond"), + IfStmt_Else: info[*ast.IfStmt]("Else"), + IfStmt_Init: info[*ast.IfStmt]("Init"), + ImportSpec_Comment: info[*ast.ImportSpec]("Comment"), + ImportSpec_Doc: info[*ast.ImportSpec]("Doc"), + ImportSpec_Name: info[*ast.ImportSpec]("Name"), + ImportSpec_Path: info[*ast.ImportSpec]("Path"), + IncDecStmt_X: info[*ast.IncDecStmt]("X"), + IndexExpr_Index: info[*ast.IndexExpr]("Index"), + IndexExpr_X: info[*ast.IndexExpr]("X"), + IndexListExpr_Indices: info[*ast.IndexListExpr]("Indices"), + IndexListExpr_X: info[*ast.IndexListExpr]("X"), + InterfaceType_Methods: info[*ast.InterfaceType]("Methods"), + KeyValueExpr_Key: info[*ast.KeyValueExpr]("Key"), + KeyValueExpr_Value: info[*ast.KeyValueExpr]("Value"), + LabeledStmt_Label: info[*ast.LabeledStmt]("Label"), + LabeledStmt_Stmt: info[*ast.LabeledStmt]("Stmt"), + MapType_Key: info[*ast.MapType]("Key"), + MapType_Value: info[*ast.MapType]("Value"), + ParenExpr_X: info[*ast.ParenExpr]("X"), + RangeStmt_Body: info[*ast.RangeStmt]("Body"), + RangeStmt_Key: info[*ast.RangeStmt]("Key"), + RangeStmt_Value: info[*ast.RangeStmt]("Value"), + RangeStmt_X: info[*ast.RangeStmt]("X"), + ReturnStmt_Results: info[*ast.ReturnStmt]("Results"), + SelectStmt_Body: info[*ast.SelectStmt]("Body"), + SelectorExpr_Sel: info[*ast.SelectorExpr]("Sel"), + SelectorExpr_X: info[*ast.SelectorExpr]("X"), + SendStmt_Chan: info[*ast.SendStmt]("Chan"), + SendStmt_Value: info[*ast.SendStmt]("Value"), + SliceExpr_High: info[*ast.SliceExpr]("High"), + SliceExpr_Low: info[*ast.SliceExpr]("Low"), + SliceExpr_Max: info[*ast.SliceExpr]("Max"), + SliceExpr_X: info[*ast.SliceExpr]("X"), + StarExpr_X: info[*ast.StarExpr]("X"), + StructType_Fields: info[*ast.StructType]("Fields"), + SwitchStmt_Body: info[*ast.SwitchStmt]("Body"), + SwitchStmt_Init: info[*ast.SwitchStmt]("Init"), + SwitchStmt_Tag: info[*ast.SwitchStmt]("Tag"), + TypeAssertExpr_Type: info[*ast.TypeAssertExpr]("Type"), + TypeAssertExpr_X: info[*ast.TypeAssertExpr]("X"), + TypeSpec_Comment: info[*ast.TypeSpec]("Comment"), + TypeSpec_Doc: info[*ast.TypeSpec]("Doc"), + TypeSpec_Name: info[*ast.TypeSpec]("Name"), + TypeSpec_Type: info[*ast.TypeSpec]("Type"), + TypeSpec_TypeParams: info[*ast.TypeSpec]("TypeParams"), + TypeSwitchStmt_Assign: info[*ast.TypeSwitchStmt]("Assign"), + TypeSwitchStmt_Body: info[*ast.TypeSwitchStmt]("Body"), + TypeSwitchStmt_Init: info[*ast.TypeSwitchStmt]("Init"), + UnaryExpr_X: info[*ast.UnaryExpr]("X"), + ValueSpec_Comment: info[*ast.ValueSpec]("Comment"), + ValueSpec_Doc: info[*ast.ValueSpec]("Doc"), + ValueSpec_Names: info[*ast.ValueSpec]("Names"), + ValueSpec_Type: info[*ast.ValueSpec]("Type"), + ValueSpec_Values: info[*ast.ValueSpec]("Values"), +} diff --git a/vendor/golang.org/x/tools/go/ast/inspector/cursor.go b/vendor/golang.org/x/tools/go/ast/inspector/cursor.go new file mode 100644 index 000000000..7e72d3c28 --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/inspector/cursor.go @@ -0,0 +1,502 @@ +// Copyright 2025 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. + +package inspector + +import ( + "fmt" + "go/ast" + "go/token" + "iter" + "reflect" + + "golang.org/x/tools/go/ast/edge" +) + +// A Cursor represents an [ast.Node]. It is immutable. +// +// Two Cursors compare equal if they represent the same node. +// +// Call [Inspector.Root] to obtain a valid cursor for the virtual root +// node of the traversal. +// +// Use the following methods to navigate efficiently around the tree: +// - for ancestors, use [Cursor.Parent] and [Cursor.Enclosing]; +// - for children, use [Cursor.Child], [Cursor.Children], +// [Cursor.FirstChild], and [Cursor.LastChild]; +// - for siblings, use [Cursor.PrevSibling] and [Cursor.NextSibling]; +// - for descendants, use [Cursor.FindByPos], [Cursor.FindNode], +// [Cursor.Inspect], and [Cursor.Preorder]. +// +// Use the [Cursor.ChildAt] and [Cursor.ParentEdge] methods for +// information about the edges in a tree: which field (and slice +// element) of the parent node holds the child. +type Cursor struct { + in *Inspector + index int32 // index of push node; -1 for virtual root node +} + +// Root returns a cursor for the virtual root node, +// whose children are the files provided to [New]. +// +// Its [Cursor.Node] method return nil. +func (in *Inspector) Root() Cursor { + return Cursor{in, -1} +} + +// At returns the cursor at the specified index in the traversal, +// which must have been obtained from [Cursor.Index] on a Cursor +// belonging to the same Inspector (see [Cursor.Inspector]). +func (in *Inspector) At(index int32) Cursor { + if index < 0 { + panic("negative index") + } + if int(index) >= len(in.events) { + panic("index out of range for this inspector") + } + if in.events[index].index < index { + panic("invalid index") // (a push, not a pop) + } + return Cursor{in, index} +} + +// Inspector returns the cursor's Inspector. +func (c Cursor) Inspector() *Inspector { return c.in } + +// Index returns the index of this cursor position within the package. +// +// Clients should not assume anything about the numeric Index value +// except that it increases monotonically throughout the traversal. +// It is provided for use with [At]. +// +// Index must not be called on the Root node. +func (c Cursor) Index() int32 { + if c.index < 0 { + panic("Index called on Root node") + } + return c.index +} + +// Node returns the node at the current cursor position, +// or nil for the cursor returned by [Inspector.Root]. +func (c Cursor) Node() ast.Node { + if c.index < 0 { + return nil + } + return c.in.events[c.index].node +} + +// String returns information about the cursor's node, if any. +func (c Cursor) String() string { + if c.in == nil { + return "(invalid)" + } + if c.index < 0 { + return "(root)" + } + return reflect.TypeOf(c.Node()).String() +} + +// indices return the [start, end) half-open interval of event indices. +func (c Cursor) indices() (int32, int32) { + if c.index < 0 { + return 0, int32(len(c.in.events)) // root: all events + } else { + return c.index, c.in.events[c.index].index + 1 // just one subtree + } +} + +// Preorder returns an iterator over the nodes of the subtree +// represented by c in depth-first order. Each node in the sequence is +// represented by a Cursor that allows access to the Node, but may +// also be used to start a new traversal, or to obtain the stack of +// nodes enclosing the cursor. +// +// The traversal sequence is determined by [ast.Inspect]. The types +// argument, if non-empty, enables type-based filtering of events. The +// function f if is called only for nodes whose type matches an +// element of the types slice. +// +// If you need control over descent into subtrees, +// or need both pre- and post-order notifications, use [Cursor.Inspect] +func (c Cursor) Preorder(types ...ast.Node) iter.Seq[Cursor] { + mask := maskOf(types) + + return func(yield func(Cursor) bool) { + events := c.in.events + + for i, limit := c.indices(); i < limit; { + ev := events[i] + if ev.index > i { // push? + if ev.typ&mask != 0 && !yield(Cursor{c.in, i}) { + break + } + pop := ev.index + if events[pop].typ&mask == 0 { + // Subtree does not contain types: skip. + i = pop + 1 + continue + } + } + i++ + } + } +} + +// Inspect visits the nodes of the subtree represented by c in +// depth-first order. It calls f(n) for each node n before it +// visits n's children. If f returns true, Inspect invokes f +// recursively for each of the non-nil children of the node. +// +// Each node is represented by a Cursor that allows access to the +// Node, but may also be used to start a new traversal, or to obtain +// the stack of nodes enclosing the cursor. +// +// The complete traversal sequence is determined by [ast.Inspect]. +// The types argument, if non-empty, enables type-based filtering of +// events. The function f if is called only for nodes whose type +// matches an element of the types slice. +func (c Cursor) Inspect(types []ast.Node, f func(c Cursor) (descend bool)) { + mask := maskOf(types) + events := c.in.events + for i, limit := c.indices(); i < limit; { + ev := events[i] + if ev.index > i { + // push + pop := ev.index + if ev.typ&mask != 0 && !f(Cursor{c.in, i}) || + events[pop].typ&mask == 0 { + // The user opted not to descend, or the + // subtree does not contain types: + // skip past the pop. + i = pop + 1 + continue + } + } + i++ + } +} + +// Enclosing returns an iterator over the nodes enclosing the current +// current node, starting with the Cursor itself. +// +// Enclosing must not be called on the Root node (whose [Cursor.Node] returns nil). +// +// The types argument, if non-empty, enables type-based filtering of +// events: the sequence includes only enclosing nodes whose type +// matches an element of the types slice. +func (c Cursor) Enclosing(types ...ast.Node) iter.Seq[Cursor] { + if c.index < 0 { + panic("Cursor.Enclosing called on Root node") + } + + mask := maskOf(types) + + return func(yield func(Cursor) bool) { + events := c.in.events + for i := c.index; i >= 0; i = events[i].parent { + if events[i].typ&mask != 0 && !yield(Cursor{c.in, i}) { + break + } + } + } +} + +// Parent returns the parent of the current node. +// +// Parent must not be called on the Root node (whose [Cursor.Node] returns nil). +func (c Cursor) Parent() Cursor { + if c.index < 0 { + panic("Cursor.Parent called on Root node") + } + + return Cursor{c.in, c.in.events[c.index].parent} +} + +// ParentEdge returns the identity of the field in the parent node +// that holds this cursor's node, and if it is a list, the index within it. +// +// For example, f(x, y) is a CallExpr whose three children are Idents. +// f has edge kind [edge.CallExpr_Fun] and index -1. +// x and y have kind [edge.CallExpr_Args] and indices 0 and 1, respectively. +// +// If called on a child of the Root node, it returns ([edge.Invalid], -1). +// +// ParentEdge must not be called on the Root node (whose [Cursor.Node] returns nil). +func (c Cursor) ParentEdge() (edge.Kind, int) { + if c.index < 0 { + panic("Cursor.ParentEdge called on Root node") + } + events := c.in.events + pop := events[c.index].index + return unpackEdgeKindAndIndex(events[pop].parent) +} + +// ChildAt returns the cursor for the child of the +// current node identified by its edge and index. +// The index must be -1 if the edge.Kind is not a slice. +// The indicated child node must exist. +// +// ChildAt must not be called on the Root node (whose [Cursor.Node] returns nil). +// +// Invariant: c.Parent().ChildAt(c.ParentEdge()) == c. +func (c Cursor) ChildAt(k edge.Kind, idx int) Cursor { + target := packEdgeKindAndIndex(k, idx) + + // Unfortunately there's no shortcut to looping. + events := c.in.events + i := c.index + 1 + for { + pop := events[i].index + if pop < i { + break + } + if events[pop].parent == target { + return Cursor{c.in, i} + } + i = pop + 1 + } + panic(fmt.Sprintf("ChildAt(%v, %d): no such child of %v", k, idx, c)) +} + +// Child returns the cursor for n, which must be a direct child of c's Node. +// +// Child must not be called on the Root node (whose [Cursor.Node] returns nil). +func (c Cursor) Child(n ast.Node) Cursor { + if c.index < 0 { + panic("Cursor.Child called on Root node") + } + + if false { + // reference implementation + for child := range c.Children() { + if child.Node() == n { + return child + } + } + + } else { + // optimized implementation + events := c.in.events + for i := c.index + 1; events[i].index > i; i = events[i].index + 1 { + if events[i].node == n { + return Cursor{c.in, i} + } + } + } + panic(fmt.Sprintf("Child(%T): not a child of %v", n, c)) +} + +// NextSibling returns the cursor for the next sibling node in the same list +// (for example, of files, decls, specs, statements, fields, or expressions) as +// the current node. It returns (zero, false) if the node is the last node in +// the list, or is not part of a list. +// +// NextSibling must not be called on the Root node. +// +// See note at [Cursor.Children]. +func (c Cursor) NextSibling() (Cursor, bool) { + if c.index < 0 { + panic("Cursor.NextSibling called on Root node") + } + + events := c.in.events + i := events[c.index].index + 1 // after corresponding pop + if i < int32(len(events)) { + if events[i].index > i { // push? + return Cursor{c.in, i}, true + } + } + return Cursor{}, false +} + +// PrevSibling returns the cursor for the previous sibling node in the +// same list (for example, of files, decls, specs, statements, fields, +// or expressions) as the current node. It returns zero if the node is +// the first node in the list, or is not part of a list. +// +// It must not be called on the Root node. +// +// See note at [Cursor.Children]. +func (c Cursor) PrevSibling() (Cursor, bool) { + if c.index < 0 { + panic("Cursor.PrevSibling called on Root node") + } + + events := c.in.events + i := c.index - 1 + if i >= 0 { + if j := events[i].index; j < i { // pop? + return Cursor{c.in, j}, true + } + } + return Cursor{}, false +} + +// FirstChild returns the first direct child of the current node, +// or zero if it has no children. +func (c Cursor) FirstChild() (Cursor, bool) { + events := c.in.events + i := c.index + 1 // i=0 if c is root + if i < int32(len(events)) && events[i].index > i { // push? + return Cursor{c.in, i}, true + } + return Cursor{}, false +} + +// LastChild returns the last direct child of the current node, +// or zero if it has no children. +func (c Cursor) LastChild() (Cursor, bool) { + events := c.in.events + if c.index < 0 { // root? + if len(events) > 0 { + // return push of final event (a pop) + return Cursor{c.in, events[len(events)-1].index}, true + } + } else { + j := events[c.index].index - 1 // before corresponding pop + // Inv: j == c.index if c has no children + // or j is last child's pop. + if j > c.index { // c has children + return Cursor{c.in, events[j].index}, true + } + } + return Cursor{}, false +} + +// Children returns an iterator over the direct children of the +// current node, if any. +// +// When using Children, NextChild, and PrevChild, bear in mind that a +// Node's children may come from different fields, some of which may +// be lists of nodes without a distinguished intervening container +// such as [ast.BlockStmt]. +// +// For example, [ast.CaseClause] has a field List of expressions and a +// field Body of statements, so the children of a CaseClause are a mix +// of expressions and statements. Other nodes that have "uncontained" +// list fields include: +// +// - [ast.ValueSpec] (Names, Values) +// - [ast.CompositeLit] (Type, Elts) +// - [ast.IndexListExpr] (X, Indices) +// - [ast.CallExpr] (Fun, Args) +// - [ast.AssignStmt] (Lhs, Rhs) +// +// So, do not assume that the previous sibling of an ast.Stmt is also +// an ast.Stmt, or if it is, that they are executed sequentially, +// unless you have established that, say, its parent is a BlockStmt +// or its [Cursor.ParentEdge] is [edge.BlockStmt_List]. +// For example, given "for S1; ; S2 {}", the predecessor of S2 is S1, +// even though they are not executed in sequence. +func (c Cursor) Children() iter.Seq[Cursor] { + return func(yield func(Cursor) bool) { + c, ok := c.FirstChild() + for ok && yield(c) { + c, ok = c.NextSibling() + } + } +} + +// Contains reports whether c contains or is equal to c2. +// +// Both Cursors must belong to the same [Inspector]; +// neither may be its Root node. +func (c Cursor) Contains(c2 Cursor) bool { + if c.in != c2.in { + panic("different inspectors") + } + events := c.in.events + return c.index <= c2.index && events[c2.index].index <= events[c.index].index +} + +// FindNode returns the cursor for node n if it belongs to the subtree +// rooted at c. It returns zero if n is not found. +func (c Cursor) FindNode(n ast.Node) (Cursor, bool) { + + // FindNode is equivalent to this code, + // but more convenient and 15-20% faster: + if false { + for candidate := range c.Preorder(n) { + if candidate.Node() == n { + return candidate, true + } + } + return Cursor{}, false + } + + // TODO(adonovan): opt: should we assume Node.Pos is accurate + // and combine type-based filtering with position filtering + // like FindByPos? + + mask := maskOf([]ast.Node{n}) + events := c.in.events + + for i, limit := c.indices(); i < limit; i++ { + ev := events[i] + if ev.index > i { // push? + if ev.typ&mask != 0 && ev.node == n { + return Cursor{c.in, i}, true + } + pop := ev.index + if events[pop].typ&mask == 0 { + // Subtree does not contain type of n: skip. + i = pop + } + } + } + return Cursor{}, false +} + +// FindByPos returns the cursor for the innermost node n in the tree +// rooted at c such that n.Pos() <= start && end <= n.End(). +// (For an *ast.File, it uses the bounds n.FileStart-n.FileEnd.) +// +// It returns zero if none is found. +// Precondition: start <= end. +// +// See also [astutil.PathEnclosingInterval], which +// tolerates adjoining whitespace. +func (c Cursor) FindByPos(start, end token.Pos) (Cursor, bool) { + if end < start { + panic("end < start") + } + events := c.in.events + + // This algorithm could be implemented using c.Inspect, + // but it is about 2.5x slower. + + best := int32(-1) // push index of latest (=innermost) node containing range + for i, limit := c.indices(); i < limit; i++ { + ev := events[i] + if ev.index > i { // push? + n := ev.node + var nodeEnd token.Pos + if file, ok := n.(*ast.File); ok { + nodeEnd = file.FileEnd + // Note: files may be out of Pos order. + if file.FileStart > start { + i = ev.index // disjoint, after; skip to next file + continue + } + } else { + nodeEnd = n.End() + if n.Pos() > start { + break // disjoint, after; stop + } + } + // Inv: node.{Pos,FileStart} <= start + if end <= nodeEnd { + // node fully contains target range + best = i + } else if nodeEnd < start { + i = ev.index // disjoint, before; skip forward + } + } + } + if best >= 0 { + return Cursor{c.in, best}, true + } + return Cursor{}, false +} diff --git a/vendor/golang.org/x/tools/go/ast/inspector/inspector.go b/vendor/golang.org/x/tools/go/ast/inspector/inspector.go new file mode 100644 index 000000000..a703cdfcf --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/inspector/inspector.go @@ -0,0 +1,311 @@ +// Copyright 2018 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. + +// Package inspector provides helper functions for traversal over the +// syntax trees of a package, including node filtering by type, and +// materialization of the traversal stack. +// +// During construction, the inspector does a complete traversal and +// builds a list of push/pop events and their node type. Subsequent +// method calls that request a traversal scan this list, rather than walk +// the AST, and perform type filtering using efficient bit sets. +// This representation is sometimes called a "balanced parenthesis tree." +// +// Experiments suggest the inspector's traversals are about 2.5x faster +// than [ast.Inspect], but it may take around 5 traversals for this +// benefit to amortize the inspector's construction cost. +// If efficiency is the primary concern, do not use Inspector for +// one-off traversals. +// +// The [Cursor] type provides a more flexible API for efficient +// navigation of syntax trees in all four "cardinal directions". For +// example, traversals may be nested, so you can find each node of +// type A and then search within it for nodes of type B. Or you can +// traverse from a node to its immediate neighbors: its parent, its +// previous and next sibling, or its first and last child. We +// recommend using methods of Cursor in preference to Inspector where +// possible. +package inspector + +// There are four orthogonal features in a traversal: +// 1 type filtering +// 2 pruning +// 3 postorder calls to f +// 4 stack +// Rather than offer all of them in the API, +// only a few combinations are exposed: +// - Preorder is the fastest and has fewest features, +// but is the most commonly needed traversal. +// - Nodes and WithStack both provide pruning and postorder calls, +// even though few clients need it, because supporting two versions +// is not justified. +// More combinations could be supported by expressing them as +// wrappers around a more generic traversal, but this was measured +// and found to degrade performance significantly (30%). + +import ( + "go/ast" + + "golang.org/x/tools/go/ast/edge" +) + +// An Inspector provides methods for inspecting +// (traversing) the syntax trees of a package. +type Inspector struct { + events []event +} + +func packEdgeKindAndIndex(ek edge.Kind, index int) int32 { + return int32(uint32(index+1)<<7 | uint32(ek)) +} + +// unpackEdgeKindAndIndex unpacks the edge kind and edge index (within +// an []ast.Node slice) from the parent field of a pop event. +func unpackEdgeKindAndIndex(x int32) (edge.Kind, int) { + // The "parent" field of a pop node holds the + // edge Kind in the lower 7 bits and the index+1 + // in the upper 25. + return edge.Kind(x & 0x7f), int(x>>7) - 1 +} + +// New returns an Inspector for the specified syntax trees. +func New(files []*ast.File) *Inspector { + return &Inspector{traverse(files)} +} + +// An event represents a push or a pop +// of an ast.Node during a traversal. +type event struct { + node ast.Node + typ uint64 // typeOf(node) on push event, or union of typ strictly between push and pop events on pop events + index int32 // index of corresponding push or pop event + parent int32 // index of parent's push node (push nodes only), or packed edge kind/index (pop nodes only) +} + +// TODO: Experiment with storing only the second word of event.node (unsafe.Pointer). +// Type can be recovered from the sole bit in typ. +// [Tried this, wasn't faster. --adonovan] + +// Preorder visits all the nodes of the files supplied to New in +// depth-first order. It calls f(n) for each node n before it visits +// n's children. +// +// The complete traversal sequence is determined by [ast.Inspect]. +// The types argument, if non-empty, enables type-based filtering of +// events. The function f is called only for nodes whose type +// matches an element of the types slice. +// +// The [Cursor.Preorder] method provides a richer alternative interface. +// Example: +// +// for c := range in.Root().Preorder(types) { ... } +func (in *Inspector) Preorder(types []ast.Node, f func(ast.Node)) { + // Because it avoids postorder calls to f, and the pruning + // check, Preorder is almost twice as fast as Nodes. The two + // features seem to contribute similar slowdowns (~1.4x each). + + // This function is equivalent to the PreorderSeq call below, + // but to avoid the additional dynamic call (which adds 13-35% + // to the benchmarks), we expand it out. + // + // in.PreorderSeq(types...)(func(n ast.Node) bool { + // f(n) + // return true + // }) + + mask := maskOf(types) + for i := int32(0); i < int32(len(in.events)); { + ev := in.events[i] + if ev.index > i { + // push + if ev.typ&mask != 0 { + f(ev.node) + } + pop := ev.index + if in.events[pop].typ&mask == 0 { + // Subtrees do not contain types: skip them and pop. + i = pop + 1 + continue + } + } + i++ + } +} + +// Nodes visits the nodes of the files supplied to New in depth-first +// order. It calls f(n, true) for each node n before it visits n's +// children. If f returns true, Nodes invokes f recursively for each +// of the non-nil children of the node, followed by a call of +// f(n, false). +// +// The complete traversal sequence is determined by [ast.Inspect]. +// The types argument, if non-empty, enables type-based filtering of +// events. The function f if is called only for nodes whose type +// matches an element of the types slice. +// +// The [Cursor.Inspect] method provides a richer alternative interface. +// Example: +// +// in.Root().Inspect(types, func(c Cursor) bool { +// ... +// return true +// } +func (in *Inspector) Nodes(types []ast.Node, f func(n ast.Node, push bool) (proceed bool)) { + mask := maskOf(types) + for i := int32(0); i < int32(len(in.events)); { + ev := in.events[i] + if ev.index > i { + // push + pop := ev.index + if ev.typ&mask != 0 { + if !f(ev.node, true) { + i = pop + 1 // jump to corresponding pop + 1 + continue + } + } + if in.events[pop].typ&mask == 0 { + // Subtrees do not contain types: skip them. + i = pop + continue + } + } else { + // pop + push := ev.index + if in.events[push].typ&mask != 0 { + f(ev.node, false) + } + } + i++ + } +} + +// WithStack visits nodes in a similar manner to Nodes, but it +// supplies each call to f an additional argument, the current +// traversal stack. The stack's first element is the outermost node, +// an *ast.File; its last is the innermost, n. +// +// The [Cursor.Inspect] method provides a richer alternative interface. +// Example: +// +// in.Root().Inspect(types, func(c Cursor) bool { +// stack := slices.Collect(c.Enclosing()) +// ... +// return true +// }) +func (in *Inspector) WithStack(types []ast.Node, f func(n ast.Node, push bool, stack []ast.Node) (proceed bool)) { + mask := maskOf(types) + var stack []ast.Node + for i := int32(0); i < int32(len(in.events)); { + ev := in.events[i] + if ev.index > i { + // push + pop := ev.index + stack = append(stack, ev.node) + if ev.typ&mask != 0 { + if !f(ev.node, true, stack) { + i = pop + 1 + stack = stack[:len(stack)-1] + continue + } + } + if in.events[pop].typ&mask == 0 { + // Subtrees does not contain types: skip them. + i = pop + continue + } + } else { + // pop + push := ev.index + if in.events[push].typ&mask != 0 { + f(ev.node, false, stack) + } + stack = stack[:len(stack)-1] + } + i++ + } +} + +// traverse builds the table of events representing a traversal. +func traverse(files []*ast.File) []event { + // Preallocate approximate number of events + // based on source file extent of the declarations. + // (We use End-Pos not FileStart-FileEnd to neglect + // the effect of long doc comments.) + // This makes traverse faster by 4x (!). + var extent int + for _, f := range files { + extent += int(f.End() - f.Pos()) + } + // This estimate is based on the net/http package. + capacity := min(extent*33/100, 1e6) // impose some reasonable maximum (1M) + + v := &visitor{ + events: make([]event, 0, capacity), + stack: []item{{index: -1}}, // include an extra event so file nodes have a parent + } + for _, file := range files { + walk(v, edge.Invalid, -1, file) + } + return v.events +} + +type visitor struct { + events []event + stack []item +} + +type item struct { + index int32 // index of current node's push event + parentIndex int32 // index of parent node's push event + typAccum uint64 // accumulated type bits of current node's descendants + edgeKindAndIndex int32 // edge.Kind and index, bit packed +} + +func (v *visitor) push(ek edge.Kind, eindex int, node ast.Node) { + var ( + index = int32(len(v.events)) + parentIndex = v.stack[len(v.stack)-1].index + ) + v.events = append(v.events, event{ + node: node, + parent: parentIndex, + typ: typeOf(node), + index: 0, // (pop index is set later by visitor.pop) + }) + v.stack = append(v.stack, item{ + index: index, + parentIndex: parentIndex, + edgeKindAndIndex: packEdgeKindAndIndex(ek, eindex), + }) + + // 2B nodes ought to be enough for anyone! + if int32(len(v.events)) < 0 { + panic("event index exceeded int32") + } + + // 32M elements in an []ast.Node ought to be enough for anyone! + if ek2, eindex2 := unpackEdgeKindAndIndex(packEdgeKindAndIndex(ek, eindex)); ek2 != ek || eindex2 != eindex { + panic("Node slice index exceeded uint25") + } +} + +func (v *visitor) pop(node ast.Node) { + top := len(v.stack) - 1 + current := v.stack[top] + + push := &v.events[current.index] + parent := &v.stack[top-1] + + push.index = int32(len(v.events)) // make push event refer to pop + parent.typAccum |= current.typAccum | push.typ // accumulate type bits into parent + + v.stack = v.stack[:top] + + v.events = append(v.events, event{ + node: node, + typ: current.typAccum, + index: current.index, + parent: current.edgeKindAndIndex, // see [unpackEdgeKindAndIndex] + }) +} diff --git a/vendor/golang.org/x/tools/go/ast/inspector/iter.go b/vendor/golang.org/x/tools/go/ast/inspector/iter.go new file mode 100644 index 000000000..c576dc70a --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/inspector/iter.go @@ -0,0 +1,85 @@ +// Copyright 2024 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 go1.23 + +package inspector + +import ( + "go/ast" + "iter" +) + +// PreorderSeq returns an iterator that visits all the +// nodes of the files supplied to New in depth-first order. +// It visits each node n before n's children. +// The complete traversal sequence is determined by ast.Inspect. +// +// The types argument, if non-empty, enables type-based +// filtering of events: only nodes whose type matches an +// element of the types slice are included in the sequence. +func (in *Inspector) PreorderSeq(types ...ast.Node) iter.Seq[ast.Node] { + + // This implementation is identical to Preorder, + // except that it supports breaking out of the loop. + + return func(yield func(ast.Node) bool) { + mask := maskOf(types) + for i := int32(0); i < int32(len(in.events)); { + ev := in.events[i] + if ev.index > i { + // push + if ev.typ&mask != 0 { + if !yield(ev.node) { + break + } + } + pop := ev.index + if in.events[pop].typ&mask == 0 { + // Subtrees do not contain types: skip them and pop. + i = pop + 1 + continue + } + } + i++ + } + } +} + +// All[N] returns an iterator over all the nodes of type N. +// N must be a pointer-to-struct type that implements ast.Node. +// +// Example: +// +// for call := range All[*ast.CallExpr](in) { ... } +func All[N interface { + *S + ast.Node +}, S any](in *Inspector) iter.Seq[N] { + + // To avoid additional dynamic call overheads, + // we duplicate rather than call the logic of PreorderSeq. + + mask := typeOf((N)(nil)) + return func(yield func(N) bool) { + for i := int32(0); i < int32(len(in.events)); { + ev := in.events[i] + if ev.index > i { + // push + if ev.typ&mask != 0 { + if !yield(ev.node.(N)) { + break + } + } + pop := ev.index + if in.events[pop].typ&mask == 0 { + // Subtrees do not contain types: skip them and pop. + i = pop + 1 + continue + } + } + i++ + } + } +} diff --git a/vendor/golang.org/x/tools/go/ast/inspector/typeof.go b/vendor/golang.org/x/tools/go/ast/inspector/typeof.go new file mode 100644 index 000000000..9852331a3 --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/inspector/typeof.go @@ -0,0 +1,227 @@ +// Copyright 2018 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. + +package inspector + +// This file defines func typeOf(ast.Node) uint64. +// +// The initial map-based implementation was too slow; +// see https://go-review.googlesource.com/c/tools/+/135655/1/go/ast/inspector/inspector.go#196 + +import ( + "go/ast" + "math" +) + +const ( + nArrayType = iota + nAssignStmt + nBadDecl + nBadExpr + nBadStmt + nBasicLit + nBinaryExpr + nBlockStmt + nBranchStmt + nCallExpr + nCaseClause + nChanType + nCommClause + nComment + nCommentGroup + nCompositeLit + nDeclStmt + nDeferStmt + nEllipsis + nEmptyStmt + nExprStmt + nField + nFieldList + nFile + nForStmt + nFuncDecl + nFuncLit + nFuncType + nGenDecl + nGoStmt + nIdent + nIfStmt + nImportSpec + nIncDecStmt + nIndexExpr + nIndexListExpr + nInterfaceType + nKeyValueExpr + nLabeledStmt + nMapType + nPackage + nParenExpr + nRangeStmt + nReturnStmt + nSelectStmt + nSelectorExpr + nSendStmt + nSliceExpr + nStarExpr + nStructType + nSwitchStmt + nTypeAssertExpr + nTypeSpec + nTypeSwitchStmt + nUnaryExpr + nValueSpec +) + +// typeOf returns a distinct single-bit value that represents the type of n. +// +// Various implementations were benchmarked with BenchmarkNewInspector: +// +// GOGC=off +// - type switch 4.9-5.5ms 2.1ms +// - binary search over a sorted list of types 5.5-5.9ms 2.5ms +// - linear scan, frequency-ordered list 5.9-6.1ms 2.7ms +// - linear scan, unordered list 6.4ms 2.7ms +// - hash table 6.5ms 3.1ms +// +// A perfect hash seemed like overkill. +// +// The compiler's switch statement is the clear winner +// as it produces a binary tree in code, +// with constant conditions and good branch prediction. +// (Sadly it is the most verbose in source code.) +// Binary search suffered from poor branch prediction. +func typeOf(n ast.Node) uint64 { + // Fast path: nearly half of all nodes are identifiers. + if _, ok := n.(*ast.Ident); ok { + return 1 << nIdent + } + + // These cases include all nodes encountered by ast.Inspect. + switch n.(type) { + case *ast.ArrayType: + return 1 << nArrayType + case *ast.AssignStmt: + return 1 << nAssignStmt + case *ast.BadDecl: + return 1 << nBadDecl + case *ast.BadExpr: + return 1 << nBadExpr + case *ast.BadStmt: + return 1 << nBadStmt + case *ast.BasicLit: + return 1 << nBasicLit + case *ast.BinaryExpr: + return 1 << nBinaryExpr + case *ast.BlockStmt: + return 1 << nBlockStmt + case *ast.BranchStmt: + return 1 << nBranchStmt + case *ast.CallExpr: + return 1 << nCallExpr + case *ast.CaseClause: + return 1 << nCaseClause + case *ast.ChanType: + return 1 << nChanType + case *ast.CommClause: + return 1 << nCommClause + case *ast.Comment: + return 1 << nComment + case *ast.CommentGroup: + return 1 << nCommentGroup + case *ast.CompositeLit: + return 1 << nCompositeLit + case *ast.DeclStmt: + return 1 << nDeclStmt + case *ast.DeferStmt: + return 1 << nDeferStmt + case *ast.Ellipsis: + return 1 << nEllipsis + case *ast.EmptyStmt: + return 1 << nEmptyStmt + case *ast.ExprStmt: + return 1 << nExprStmt + case *ast.Field: + return 1 << nField + case *ast.FieldList: + return 1 << nFieldList + case *ast.File: + return 1 << nFile + case *ast.ForStmt: + return 1 << nForStmt + case *ast.FuncDecl: + return 1 << nFuncDecl + case *ast.FuncLit: + return 1 << nFuncLit + case *ast.FuncType: + return 1 << nFuncType + case *ast.GenDecl: + return 1 << nGenDecl + case *ast.GoStmt: + return 1 << nGoStmt + case *ast.Ident: + return 1 << nIdent + case *ast.IfStmt: + return 1 << nIfStmt + case *ast.ImportSpec: + return 1 << nImportSpec + case *ast.IncDecStmt: + return 1 << nIncDecStmt + case *ast.IndexExpr: + return 1 << nIndexExpr + case *ast.IndexListExpr: + return 1 << nIndexListExpr + case *ast.InterfaceType: + return 1 << nInterfaceType + case *ast.KeyValueExpr: + return 1 << nKeyValueExpr + case *ast.LabeledStmt: + return 1 << nLabeledStmt + case *ast.MapType: + return 1 << nMapType + case *ast.Package: + return 1 << nPackage + case *ast.ParenExpr: + return 1 << nParenExpr + case *ast.RangeStmt: + return 1 << nRangeStmt + case *ast.ReturnStmt: + return 1 << nReturnStmt + case *ast.SelectStmt: + return 1 << nSelectStmt + case *ast.SelectorExpr: + return 1 << nSelectorExpr + case *ast.SendStmt: + return 1 << nSendStmt + case *ast.SliceExpr: + return 1 << nSliceExpr + case *ast.StarExpr: + return 1 << nStarExpr + case *ast.StructType: + return 1 << nStructType + case *ast.SwitchStmt: + return 1 << nSwitchStmt + case *ast.TypeAssertExpr: + return 1 << nTypeAssertExpr + case *ast.TypeSpec: + return 1 << nTypeSpec + case *ast.TypeSwitchStmt: + return 1 << nTypeSwitchStmt + case *ast.UnaryExpr: + return 1 << nUnaryExpr + case *ast.ValueSpec: + return 1 << nValueSpec + } + return 0 +} + +func maskOf(nodes []ast.Node) uint64 { + if len(nodes) == 0 { + return math.MaxUint64 // match all node types + } + var mask uint64 + for _, n := range nodes { + mask |= typeOf(n) + } + return mask +} diff --git a/vendor/golang.org/x/tools/go/ast/inspector/walk.go b/vendor/golang.org/x/tools/go/ast/inspector/walk.go new file mode 100644 index 000000000..5f1c93c8a --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/inspector/walk.go @@ -0,0 +1,341 @@ +// Copyright 2025 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. + +package inspector + +// This file is a fork of ast.Inspect to reduce unnecessary dynamic +// calls and to gather edge information. +// +// Consistency with the original is ensured by TestInspectAllNodes. + +import ( + "fmt" + "go/ast" + + "golang.org/x/tools/go/ast/edge" +) + +func walkList[N ast.Node](v *visitor, ek edge.Kind, list []N) { + for i, node := range list { + walk(v, ek, i, node) + } +} + +func walk(v *visitor, ek edge.Kind, index int, node ast.Node) { + v.push(ek, index, node) + + // walk children + // (the order of the cases matches the order + // of the corresponding node types in ast.go) + switch n := node.(type) { + // Comments and fields + case *ast.Comment: + // nothing to do + + case *ast.CommentGroup: + walkList(v, edge.CommentGroup_List, n.List) + + case *ast.Field: + if n.Doc != nil { + walk(v, edge.Field_Doc, -1, n.Doc) + } + walkList(v, edge.Field_Names, n.Names) + if n.Type != nil { + walk(v, edge.Field_Type, -1, n.Type) + } + if n.Tag != nil { + walk(v, edge.Field_Tag, -1, n.Tag) + } + if n.Comment != nil { + walk(v, edge.Field_Comment, -1, n.Comment) + } + + case *ast.FieldList: + walkList(v, edge.FieldList_List, n.List) + + // Expressions + case *ast.BadExpr, *ast.Ident, *ast.BasicLit: + // nothing to do + + case *ast.Ellipsis: + if n.Elt != nil { + walk(v, edge.Ellipsis_Elt, -1, n.Elt) + } + + case *ast.FuncLit: + walk(v, edge.FuncLit_Type, -1, n.Type) + walk(v, edge.FuncLit_Body, -1, n.Body) + + case *ast.CompositeLit: + if n.Type != nil { + walk(v, edge.CompositeLit_Type, -1, n.Type) + } + walkList(v, edge.CompositeLit_Elts, n.Elts) + + case *ast.ParenExpr: + walk(v, edge.ParenExpr_X, -1, n.X) + + case *ast.SelectorExpr: + walk(v, edge.SelectorExpr_X, -1, n.X) + walk(v, edge.SelectorExpr_Sel, -1, n.Sel) + + case *ast.IndexExpr: + walk(v, edge.IndexExpr_X, -1, n.X) + walk(v, edge.IndexExpr_Index, -1, n.Index) + + case *ast.IndexListExpr: + walk(v, edge.IndexListExpr_X, -1, n.X) + walkList(v, edge.IndexListExpr_Indices, n.Indices) + + case *ast.SliceExpr: + walk(v, edge.SliceExpr_X, -1, n.X) + if n.Low != nil { + walk(v, edge.SliceExpr_Low, -1, n.Low) + } + if n.High != nil { + walk(v, edge.SliceExpr_High, -1, n.High) + } + if n.Max != nil { + walk(v, edge.SliceExpr_Max, -1, n.Max) + } + + case *ast.TypeAssertExpr: + walk(v, edge.TypeAssertExpr_X, -1, n.X) + if n.Type != nil { + walk(v, edge.TypeAssertExpr_Type, -1, n.Type) + } + + case *ast.CallExpr: + walk(v, edge.CallExpr_Fun, -1, n.Fun) + walkList(v, edge.CallExpr_Args, n.Args) + + case *ast.StarExpr: + walk(v, edge.StarExpr_X, -1, n.X) + + case *ast.UnaryExpr: + walk(v, edge.UnaryExpr_X, -1, n.X) + + case *ast.BinaryExpr: + walk(v, edge.BinaryExpr_X, -1, n.X) + walk(v, edge.BinaryExpr_Y, -1, n.Y) + + case *ast.KeyValueExpr: + walk(v, edge.KeyValueExpr_Key, -1, n.Key) + walk(v, edge.KeyValueExpr_Value, -1, n.Value) + + // Types + case *ast.ArrayType: + if n.Len != nil { + walk(v, edge.ArrayType_Len, -1, n.Len) + } + walk(v, edge.ArrayType_Elt, -1, n.Elt) + + case *ast.StructType: + walk(v, edge.StructType_Fields, -1, n.Fields) + + case *ast.FuncType: + if n.TypeParams != nil { + walk(v, edge.FuncType_TypeParams, -1, n.TypeParams) + } + if n.Params != nil { + walk(v, edge.FuncType_Params, -1, n.Params) + } + if n.Results != nil { + walk(v, edge.FuncType_Results, -1, n.Results) + } + + case *ast.InterfaceType: + walk(v, edge.InterfaceType_Methods, -1, n.Methods) + + case *ast.MapType: + walk(v, edge.MapType_Key, -1, n.Key) + walk(v, edge.MapType_Value, -1, n.Value) + + case *ast.ChanType: + walk(v, edge.ChanType_Value, -1, n.Value) + + // Statements + case *ast.BadStmt: + // nothing to do + + case *ast.DeclStmt: + walk(v, edge.DeclStmt_Decl, -1, n.Decl) + + case *ast.EmptyStmt: + // nothing to do + + case *ast.LabeledStmt: + walk(v, edge.LabeledStmt_Label, -1, n.Label) + walk(v, edge.LabeledStmt_Stmt, -1, n.Stmt) + + case *ast.ExprStmt: + walk(v, edge.ExprStmt_X, -1, n.X) + + case *ast.SendStmt: + walk(v, edge.SendStmt_Chan, -1, n.Chan) + walk(v, edge.SendStmt_Value, -1, n.Value) + + case *ast.IncDecStmt: + walk(v, edge.IncDecStmt_X, -1, n.X) + + case *ast.AssignStmt: + walkList(v, edge.AssignStmt_Lhs, n.Lhs) + walkList(v, edge.AssignStmt_Rhs, n.Rhs) + + case *ast.GoStmt: + walk(v, edge.GoStmt_Call, -1, n.Call) + + case *ast.DeferStmt: + walk(v, edge.DeferStmt_Call, -1, n.Call) + + case *ast.ReturnStmt: + walkList(v, edge.ReturnStmt_Results, n.Results) + + case *ast.BranchStmt: + if n.Label != nil { + walk(v, edge.BranchStmt_Label, -1, n.Label) + } + + case *ast.BlockStmt: + walkList(v, edge.BlockStmt_List, n.List) + + case *ast.IfStmt: + if n.Init != nil { + walk(v, edge.IfStmt_Init, -1, n.Init) + } + walk(v, edge.IfStmt_Cond, -1, n.Cond) + walk(v, edge.IfStmt_Body, -1, n.Body) + if n.Else != nil { + walk(v, edge.IfStmt_Else, -1, n.Else) + } + + case *ast.CaseClause: + walkList(v, edge.CaseClause_List, n.List) + walkList(v, edge.CaseClause_Body, n.Body) + + case *ast.SwitchStmt: + if n.Init != nil { + walk(v, edge.SwitchStmt_Init, -1, n.Init) + } + if n.Tag != nil { + walk(v, edge.SwitchStmt_Tag, -1, n.Tag) + } + walk(v, edge.SwitchStmt_Body, -1, n.Body) + + case *ast.TypeSwitchStmt: + if n.Init != nil { + walk(v, edge.TypeSwitchStmt_Init, -1, n.Init) + } + walk(v, edge.TypeSwitchStmt_Assign, -1, n.Assign) + walk(v, edge.TypeSwitchStmt_Body, -1, n.Body) + + case *ast.CommClause: + if n.Comm != nil { + walk(v, edge.CommClause_Comm, -1, n.Comm) + } + walkList(v, edge.CommClause_Body, n.Body) + + case *ast.SelectStmt: + walk(v, edge.SelectStmt_Body, -1, n.Body) + + case *ast.ForStmt: + if n.Init != nil { + walk(v, edge.ForStmt_Init, -1, n.Init) + } + if n.Cond != nil { + walk(v, edge.ForStmt_Cond, -1, n.Cond) + } + if n.Post != nil { + walk(v, edge.ForStmt_Post, -1, n.Post) + } + walk(v, edge.ForStmt_Body, -1, n.Body) + + case *ast.RangeStmt: + if n.Key != nil { + walk(v, edge.RangeStmt_Key, -1, n.Key) + } + if n.Value != nil { + walk(v, edge.RangeStmt_Value, -1, n.Value) + } + walk(v, edge.RangeStmt_X, -1, n.X) + walk(v, edge.RangeStmt_Body, -1, n.Body) + + // Declarations + case *ast.ImportSpec: + if n.Doc != nil { + walk(v, edge.ImportSpec_Doc, -1, n.Doc) + } + if n.Name != nil { + walk(v, edge.ImportSpec_Name, -1, n.Name) + } + walk(v, edge.ImportSpec_Path, -1, n.Path) + if n.Comment != nil { + walk(v, edge.ImportSpec_Comment, -1, n.Comment) + } + + case *ast.ValueSpec: + if n.Doc != nil { + walk(v, edge.ValueSpec_Doc, -1, n.Doc) + } + walkList(v, edge.ValueSpec_Names, n.Names) + if n.Type != nil { + walk(v, edge.ValueSpec_Type, -1, n.Type) + } + walkList(v, edge.ValueSpec_Values, n.Values) + if n.Comment != nil { + walk(v, edge.ValueSpec_Comment, -1, n.Comment) + } + + case *ast.TypeSpec: + if n.Doc != nil { + walk(v, edge.TypeSpec_Doc, -1, n.Doc) + } + walk(v, edge.TypeSpec_Name, -1, n.Name) + if n.TypeParams != nil { + walk(v, edge.TypeSpec_TypeParams, -1, n.TypeParams) + } + walk(v, edge.TypeSpec_Type, -1, n.Type) + if n.Comment != nil { + walk(v, edge.TypeSpec_Comment, -1, n.Comment) + } + + case *ast.BadDecl: + // nothing to do + + case *ast.GenDecl: + if n.Doc != nil { + walk(v, edge.GenDecl_Doc, -1, n.Doc) + } + walkList(v, edge.GenDecl_Specs, n.Specs) + + case *ast.FuncDecl: + if n.Doc != nil { + walk(v, edge.FuncDecl_Doc, -1, n.Doc) + } + if n.Recv != nil { + walk(v, edge.FuncDecl_Recv, -1, n.Recv) + } + walk(v, edge.FuncDecl_Name, -1, n.Name) + walk(v, edge.FuncDecl_Type, -1, n.Type) + if n.Body != nil { + walk(v, edge.FuncDecl_Body, -1, n.Body) + } + + case *ast.File: + if n.Doc != nil { + walk(v, edge.File_Doc, -1, n.Doc) + } + walk(v, edge.File_Name, -1, n.Name) + walkList(v, edge.File_Decls, n.Decls) + // don't walk n.Comments - they have been + // visited already through the individual + // nodes + + default: + // (includes *ast.Package) + panic(fmt.Sprintf("Walk: unexpected node type %T", n)) + } + + v.pop(node) +} diff --git a/vendor/golang.org/x/tools/go/packages/doc.go b/vendor/golang.org/x/tools/go/packages/doc.go index f1931d10e..366aab6b2 100644 --- a/vendor/golang.org/x/tools/go/packages/doc.go +++ b/vendor/golang.org/x/tools/go/packages/doc.go @@ -76,6 +76,8 @@ uninterpreted to Load, so that it can interpret them according to the conventions of the underlying build system. See the Example function for typical usage. +See also [golang.org/x/tools/go/packages/internal/linecount] +for an example application. # The driver protocol diff --git a/vendor/golang.org/x/tools/go/packages/golist.go b/vendor/golang.org/x/tools/go/packages/golist.go index 0458b4f9c..680a70ca8 100644 --- a/vendor/golang.org/x/tools/go/packages/golist.go +++ b/vendor/golang.org/x/tools/go/packages/golist.go @@ -224,13 +224,22 @@ extractQueries: return response.dr, nil } +// abs returns an absolute representation of path, based on cfg.Dir. +func (cfg *Config) abs(path string) (string, error) { + if filepath.IsAbs(path) { + return path, nil + } + // In case cfg.Dir is relative, pass it to filepath.Abs. + return filepath.Abs(filepath.Join(cfg.Dir, path)) +} + func (state *golistState) runContainsQueries(response *responseDeduper, queries []string) error { for _, query := range queries { // TODO(matloob): Do only one query per directory. fdir := filepath.Dir(query) // Pass absolute path of directory to go list so that it knows to treat it as a directory, // not a package path. - pattern, err := filepath.Abs(fdir) + pattern, err := state.cfg.abs(fdir) if err != nil { return fmt.Errorf("could not determine absolute path of file= query path %q: %v", query, err) } @@ -355,12 +364,6 @@ type jsonPackage struct { DepsErrors []*packagesinternal.PackageError } -type jsonPackageError struct { - ImportStack []string - Pos string - Err string -} - func otherFiles(p *jsonPackage) [][]string { return [][]string{p.CFiles, p.CXXFiles, p.MFiles, p.HFiles, p.FFiles, p.SFiles, p.SwigFiles, p.SwigCXXFiles, p.SysoFiles} } @@ -703,9 +706,8 @@ func (state *golistState) getGoVersion() (int, error) { // getPkgPath finds the package path of a directory if it's relative to a root // directory. func (state *golistState) getPkgPath(dir string) (string, bool, error) { - absDir, err := filepath.Abs(dir) - if err != nil { - return "", false, err + if !filepath.IsAbs(dir) { + panic("non-absolute dir passed to getPkgPath") } roots, err := state.determineRootDirs() if err != nil { @@ -715,7 +717,7 @@ func (state *golistState) getPkgPath(dir string) (string, bool, error) { for rdir, rpath := range roots { // Make sure that the directory is in the module, // to avoid creating a path relative to another module. - if !strings.HasPrefix(absDir, rdir) { + if !strings.HasPrefix(dir, rdir) { continue } // TODO(matloob): This doesn't properly handle symlinks. @@ -851,8 +853,6 @@ func (state *golistState) cfgInvocation() gocommand.Invocation { cfg := state.cfg return gocommand.Invocation{ BuildFlags: cfg.BuildFlags, - ModFile: cfg.modFile, - ModFlag: cfg.modFlag, CleanEnv: cfg.Env != nil, Env: cfg.Env, Logf: cfg.Logf, diff --git a/vendor/golang.org/x/tools/go/packages/golist_overlay.go b/vendor/golang.org/x/tools/go/packages/golist_overlay.go index d823c474a..d9d5a45cd 100644 --- a/vendor/golang.org/x/tools/go/packages/golist_overlay.go +++ b/vendor/golang.org/x/tools/go/packages/golist_overlay.go @@ -55,7 +55,7 @@ func (state *golistState) determineRootDirsModules() (map[string]string, error) } if mod.Dir != "" && mod.Path != "" { // This is a valid module; add it to the map. - absDir, err := filepath.Abs(mod.Dir) + absDir, err := state.cfg.abs(mod.Dir) if err != nil { return nil, err } diff --git a/vendor/golang.org/x/tools/go/packages/packages.go b/vendor/golang.org/x/tools/go/packages/packages.go index 6665a04c1..060ab08ef 100644 --- a/vendor/golang.org/x/tools/go/packages/packages.go +++ b/vendor/golang.org/x/tools/go/packages/packages.go @@ -229,14 +229,6 @@ type Config struct { // consistent package metadata about unsaved files. However, // drivers may vary in their level of support for overlays. Overlay map[string][]byte - - // -- Hidden configuration fields only for use in x/tools -- - - // modFile will be used for -modfile in go command invocations. - modFile string - - // modFlag will be used for -modfile in go command invocations. - modFlag string } // Load loads and returns the Go packages named by the given patterns. @@ -569,12 +561,6 @@ func init() { packagesinternal.GetDepsErrors = func(p any) []*packagesinternal.PackageError { return p.(*Package).depsErrors } - packagesinternal.SetModFile = func(config any, value string) { - config.(*Config).modFile = value - } - packagesinternal.SetModFlag = func(config any, value string) { - config.(*Config).modFlag = value - } packagesinternal.TypecheckCgo = int(typecheckCgo) packagesinternal.DepsErrors = int(needInternalDepsErrors) } diff --git a/vendor/golang.org/x/tools/go/packages/visit.go b/vendor/golang.org/x/tools/go/packages/visit.go index df14ffd94..af6a60d75 100644 --- a/vendor/golang.org/x/tools/go/packages/visit.go +++ b/vendor/golang.org/x/tools/go/packages/visit.go @@ -5,9 +5,11 @@ package packages import ( + "cmp" "fmt" + "iter" "os" - "sort" + "slices" ) // Visit visits all the packages in the import graph whose roots are @@ -16,6 +18,20 @@ import ( // package's dependencies have been visited (postorder). // The boolean result of pre(pkg) determines whether // the imports of package pkg are visited. +// +// Example: +// +// pkgs, err := Load(...) +// if err != nil { ... } +// Visit(pkgs, nil, func(pkg *Package) { +// log.Println(pkg) +// }) +// +// In most cases, it is more convenient to use [Postorder]: +// +// for pkg := range Postorder(pkgs) { +// log.Println(pkg) +// } func Visit(pkgs []*Package, pre func(*Package) bool, post func(*Package)) { seen := make(map[*Package]bool) var visit func(*Package) @@ -24,13 +40,8 @@ func Visit(pkgs []*Package, pre func(*Package) bool, post func(*Package)) { seen[pkg] = true if pre == nil || pre(pkg) { - paths := make([]string, 0, len(pkg.Imports)) - for path := range pkg.Imports { - paths = append(paths, path) - } - sort.Strings(paths) // Imports is a map, this makes visit stable - for _, path := range paths { - visit(pkg.Imports[path]) + for _, imp := range sorted(pkg.Imports) { // for determinism + visit(imp) } } @@ -50,7 +61,7 @@ func Visit(pkgs []*Package, pre func(*Package) bool, post func(*Package)) { func PrintErrors(pkgs []*Package) int { var n int errModules := make(map[*Module]bool) - Visit(pkgs, nil, func(pkg *Package) { + for pkg := range Postorder(pkgs) { for _, err := range pkg.Errors { fmt.Fprintln(os.Stderr, err) n++ @@ -63,6 +74,60 @@ func PrintErrors(pkgs []*Package) int { fmt.Fprintln(os.Stderr, mod.Error.Err) n++ } - }) + } return n } + +// Postorder returns an iterator over the the packages in +// the import graph whose roots are pkg. +// Packages are enumerated in dependencies-first order. +func Postorder(pkgs []*Package) iter.Seq[*Package] { + return func(yield func(*Package) bool) { + seen := make(map[*Package]bool) + var visit func(*Package) bool + visit = func(pkg *Package) bool { + if !seen[pkg] { + seen[pkg] = true + for _, imp := range sorted(pkg.Imports) { // for determinism + if !visit(imp) { + return false + } + } + if !yield(pkg) { + return false + } + } + return true + } + for _, pkg := range pkgs { + if !visit(pkg) { + break + } + } + } +} + +// -- copied from golang.org.x/tools/gopls/internal/util/moremaps -- + +// sorted returns an iterator over the entries of m in key order. +func sorted[M ~map[K]V, K cmp.Ordered, V any](m M) iter.Seq2[K, V] { + // TODO(adonovan): use maps.Sorted if proposal #68598 is accepted. + return func(yield func(K, V) bool) { + keys := keySlice(m) + slices.Sort(keys) + for _, k := range keys { + if !yield(k, m[k]) { + break + } + } + } +} + +// KeySlice returns the keys of the map M, like slices.Collect(maps.Keys(m)). +func keySlice[M ~map[K]V, K comparable, V any](m M) []K { + r := make([]K, 0, len(m)) + for k := range m { + r = append(r, k) + } + return r +} diff --git a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go index 16ed3c178..6c0c74968 100644 --- a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go +++ b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go @@ -603,7 +603,7 @@ func Object(pkg *types.Package, p Path) (types.Object, error) { type hasTypeParams interface { TypeParams() *types.TypeParamList } - // abstraction of *types.{Named,TypeParam} + // abstraction of *types.{Alias,Named,TypeParam} type hasObj interface { Obj() *types.TypeName } @@ -698,7 +698,10 @@ func Object(pkg *types.Package, p Path) (types.Object, error) { } else if false && aliases.Enabled() { // The Enabled check is too expensive, so for now we // simply assume that aliases are not enabled. - // TODO(adonovan): replace with "if true {" when go1.24 is assured. + // + // Now that go1.24 is assured, we should be able to + // replace this with "if true {", but it causes tests + // to fail. TODO(adonovan): investigate. return nil, fmt.Errorf("cannot apply %q to %s (got %T, want alias)", code, t, t) } diff --git a/vendor/golang.org/x/tools/go/types/typeutil/callee.go b/vendor/golang.org/x/tools/go/types/typeutil/callee.go index 53b713393..5f10f56cb 100644 --- a/vendor/golang.org/x/tools/go/types/typeutil/callee.go +++ b/vendor/golang.org/x/tools/go/types/typeutil/callee.go @@ -48,7 +48,7 @@ func StaticCallee(info *types.Info, call *ast.CallExpr) *types.Func { // This function should live in typesinternal, but cannot because it would // create an import cycle. // -//go:linkname usedIdent +//go:linkname usedIdent golang.org/x/tools/go/types/typeutil.usedIdent func usedIdent(info *types.Info, e ast.Expr) *ast.Ident { if info.Types == nil || info.Uses == nil { panic("one of info.Types or info.Uses is nil; both must be populated") @@ -78,7 +78,7 @@ func usedIdent(info *types.Info, e ast.Expr) *ast.Ident { // interfaceMethod reports whether its argument is a method of an interface. // This function should live in typesinternal, but cannot because it would create an import cycle. // -//go:linkname interfaceMethod +//go:linkname interfaceMethod golang.org/x/tools/go/types/typeutil.interfaceMethod func interfaceMethod(f *types.Func) bool { recv := f.Signature().Recv() return recv != nil && types.IsInterface(recv.Type()) diff --git a/vendor/golang.org/x/tools/go/types/typeutil/map.go b/vendor/golang.org/x/tools/go/types/typeutil/map.go index b6d542c64..f035a0b6b 100644 --- a/vendor/golang.org/x/tools/go/types/typeutil/map.go +++ b/vendor/golang.org/x/tools/go/types/typeutil/map.go @@ -11,7 +11,6 @@ import ( "fmt" "go/types" "hash/maphash" - "unsafe" "golang.org/x/tools/internal/typeparams" ) @@ -380,22 +379,8 @@ var theSeed = maphash.MakeSeed() func (hasher) hashTypeName(tname *types.TypeName) uint32 { // Since types.Identical uses == to compare TypeNames, // the Hash function uses maphash.Comparable. - // TODO(adonovan): or will, when it becomes available in go1.24. - // In the meantime we use the pointer's numeric value. - // - // hash := maphash.Comparable(theSeed, tname) - // - // (Another approach would be to hash the name and package - // path, and whether or not it is a package-level typename. It - // is rare for a package to define multiple local types with - // the same name.) - ptr := uintptr(unsafe.Pointer(tname)) - if unsafe.Sizeof(ptr) == 8 { - hash := uint64(ptr) - return uint32(hash ^ (hash >> 32)) - } else { - return uint32(ptr) - } + hash := maphash.Comparable(theSeed, tname) + return uint32(hash ^ (hash >> 32)) } // shallowHash computes a hash of t without looking at any of its diff --git a/vendor/golang.org/x/tools/internal/event/core/event.go b/vendor/golang.org/x/tools/internal/event/core/event.go index a6cf0e64a..ade5d1e79 100644 --- a/vendor/golang.org/x/tools/internal/event/core/event.go +++ b/vendor/golang.org/x/tools/internal/event/core/event.go @@ -28,11 +28,6 @@ type Event struct { dynamic []label.Label // dynamically sized storage for remaining labels } -// eventLabelMap implements label.Map for a the labels of an Event. -type eventLabelMap struct { - event Event -} - func (ev Event) At() time.Time { return ev.at } func (ev Event) Format(f fmt.State, r rune) { diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go index 780873e3a..4a4357d2b 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go @@ -569,7 +569,6 @@ func (p *iexporter) exportName(obj types.Object) (res string) { type iexporter struct { fset *token.FileSet - out *bytes.Buffer version int shallow bool // don't put types from other packages in the index diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go deleted file mode 100644 index 7586bfaca..000000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2024 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 go1.22 && !go1.24 - -package gcimporter - -import ( - "go/token" - "go/types" - "unsafe" -) - -// TODO(rfindley): delete this workaround once go1.24 is assured. - -func init() { - // Update markBlack so that it correctly sets the color - // of imported TypeNames. - // - // See the doc comment for markBlack for details. - - type color uint32 - const ( - white color = iota - black - grey - ) - type object struct { - _ *types.Scope - _ token.Pos - _ *types.Package - _ string - _ types.Type - _ uint32 - color_ color - _ token.Pos - } - type typeName struct { - object - } - - // If the size of types.TypeName changes, this will fail to compile. - const delta = int64(unsafe.Sizeof(typeName{})) - int64(unsafe.Sizeof(types.TypeName{})) - var _ [-delta * delta]int - - markBlack = func(obj *types.TypeName) { - type uP = unsafe.Pointer - var ptr *typeName - *(*uP)(uP(&ptr)) = uP(obj) - ptr.color_ = black - } -} diff --git a/vendor/golang.org/x/tools/internal/imports/fix.go b/vendor/golang.org/x/tools/internal/imports/fix.go index 89b96381c..1b4dc0cb5 100644 --- a/vendor/golang.org/x/tools/internal/imports/fix.go +++ b/vendor/golang.org/x/tools/internal/imports/fix.go @@ -16,6 +16,7 @@ import ( "go/types" "io/fs" "io/ioutil" + "maps" "os" "path" "path/filepath" @@ -32,7 +33,6 @@ import ( "golang.org/x/tools/internal/gocommand" "golang.org/x/tools/internal/gopathwalk" "golang.org/x/tools/internal/stdlib" - "maps" ) // importToGroup is a list of functions which map from an import path to @@ -42,7 +42,7 @@ var importToGroup = []func(localPrefix, importPath string) (num int, ok bool){ if localPrefix == "" { return } - for _, p := range strings.Split(localPrefix, ",") { + for p := range strings.SplitSeq(localPrefix, ",") { if strings.HasPrefix(importPath, p) || strings.TrimSuffix(p, "/") == importPath { return 3, true } @@ -290,8 +290,8 @@ func (p *pass) loadPackageNames(ctx context.Context, imports []*ImportInfo) erro return nil } -// if there is a trailing major version, remove it -func withoutVersion(nm string) string { +// WithoutVersion removes a trailing major version, if there is one. +func WithoutVersion(nm string) string { if v := path.Base(nm); len(v) > 0 && v[0] == 'v' { if _, err := strconv.Atoi(v[1:]); err == nil { // this is, for instance, called with rand/v2 and returns rand @@ -313,7 +313,7 @@ func (p *pass) importIdentifier(imp *ImportInfo) string { } known := p.knownPackages[imp.ImportPath] if known != nil && known.Name != "" { - return withoutVersion(known.Name) + return WithoutVersion(known.Name) } return ImportPathToAssumedName(imp.ImportPath) } @@ -1250,7 +1250,6 @@ func ImportPathToAssumedName(importPath string) string { // gopathResolver implements resolver for GOPATH workspaces. type gopathResolver struct { env *ProcessEnv - walked bool cache *DirInfoCache scanSema chan struct{} // scanSema prevents concurrent scans. } diff --git a/vendor/golang.org/x/tools/internal/imports/imports.go b/vendor/golang.org/x/tools/internal/imports/imports.go index 2215a1288..b5f5218b5 100644 --- a/vendor/golang.org/x/tools/internal/imports/imports.go +++ b/vendor/golang.org/x/tools/internal/imports/imports.go @@ -93,7 +93,7 @@ func FixImports(ctx context.Context, filename string, src []byte, goroot string, // env is needed. func ApplyFixes(fixes []*ImportFix, filename string, src []byte, opt *Options, extraMode parser.Mode) (formatted []byte, err error) { // Don't use parse() -- we don't care about fragments or statement lists - // here, and we need to work with unparseable files. + // here, and we need to work with unparsable files. fileSet := token.NewFileSet() parserMode := parser.SkipObjectResolution if opt.Comments { diff --git a/vendor/golang.org/x/tools/internal/imports/source_modindex.go b/vendor/golang.org/x/tools/internal/imports/source_modindex.go index 05229f06c..ca745d4a1 100644 --- a/vendor/golang.org/x/tools/internal/imports/source_modindex.go +++ b/vendor/golang.org/x/tools/internal/imports/source_modindex.go @@ -15,6 +15,10 @@ import ( // This code is here rather than in the modindex package // to avoid import loops +// TODO(adonovan): this code is only used by a test in this package. +// Can we delete it? Or is there a plan to call NewIndexSource from +// cmd/goimports? + // implements Source using modindex, so only for module cache. // // this is perhaps over-engineered. A new Index is read at first use. @@ -22,8 +26,8 @@ import ( // is read if the index changed. It is not clear the Mutex is needed. type IndexSource struct { modcachedir string - mutex sync.Mutex - ix *modindex.Index + mu sync.Mutex + index *modindex.Index // (access via getIndex) expires time.Time } @@ -39,13 +43,14 @@ func (s *IndexSource) LoadPackageNames(ctx context.Context, srcDir string, paths } func (s *IndexSource) ResolveReferences(ctx context.Context, filename string, missing References) ([]*Result, error) { - if err := s.maybeReadIndex(); err != nil { + index, err := s.getIndex() + if err != nil { return nil, err } var cs []modindex.Candidate for pkg, nms := range missing { for nm := range nms { - x := s.ix.Lookup(pkg, nm, false) + x := index.Lookup(pkg, nm, false) cs = append(cs, x...) } } @@ -74,30 +79,22 @@ func (s *IndexSource) ResolveReferences(ctx context.Context, filename string, mi return ans, nil } -func (s *IndexSource) maybeReadIndex() error { - s.mutex.Lock() - defer s.mutex.Unlock() - - var readIndex bool - if time.Now().After(s.expires) { - ok, err := modindex.Update(s.modcachedir) - if err != nil { - return err - } - if ok { - readIndex = true - } - } +func (s *IndexSource) getIndex() (*modindex.Index, error) { + s.mu.Lock() + defer s.mu.Unlock() - if readIndex || s.ix == nil { - ix, err := modindex.ReadIndex(s.modcachedir) + // (s.index = nil => s.expires is zero, + // so the first condition is strictly redundant. + // But it makes the postcondition very clear.) + if s.index == nil || time.Now().After(s.expires) { + index, err := modindex.Update(s.modcachedir) if err != nil { - return err + return nil, err } - s.ix = ix - // for now refresh every 15 minutes - s.expires = time.Now().Add(time.Minute * 15) + s.index = index + s.expires = index.ValidAt.Add(15 * time.Minute) // (refresh period) } + // Inv: s.index != nil - return nil + return s.index, nil } diff --git a/vendor/golang.org/x/tools/internal/modindex/directories.go b/vendor/golang.org/x/tools/internal/modindex/directories.go index 1e1a02f23..9a963744b 100644 --- a/vendor/golang.org/x/tools/internal/modindex/directories.go +++ b/vendor/golang.org/x/tools/internal/modindex/directories.go @@ -10,7 +10,6 @@ import ( "os" "path/filepath" "regexp" - "slices" "strings" "sync" "time" @@ -20,50 +19,48 @@ import ( ) type directory struct { - path Relpath + path string // relative to GOMODCACHE importPath string version string // semantic version - syms []symbol } -// filterDirs groups the directories by import path, -// sorting the ones with the same import path by semantic version, -// most recent first. -func byImportPath(dirs []Relpath) (map[string][]*directory, error) { - ans := make(map[string][]*directory) // key is import path - for _, d := range dirs { - ip, sv, err := DirToImportPathVersion(d) +// bestDirByImportPath returns the best directory for each import +// path, where "best" means most recent semantic version. These import +// paths are inferred from the GOMODCACHE-relative dir names in dirs. +func bestDirByImportPath(dirs []string) (map[string]directory, error) { + dirsByPath := make(map[string]directory) + for _, dir := range dirs { + importPath, version, err := dirToImportPathVersion(dir) if err != nil { return nil, err } - ans[ip] = append(ans[ip], &directory{ - path: d, - importPath: ip, - version: sv, - }) - } - for k, v := range ans { - semanticSort(v) - ans[k] = v + new := directory{ + path: dir, + importPath: importPath, + version: version, + } + if old, ok := dirsByPath[importPath]; !ok || compareDirectory(new, old) < 0 { + dirsByPath[importPath] = new + } } - return ans, nil + return dirsByPath, nil } -// sort the directories by semantic version, latest first -func semanticSort(v []*directory) { - slices.SortFunc(v, func(l, r *directory) int { - if n := semver.Compare(l.version, r.version); n != 0 { - return -n // latest first - } - return strings.Compare(string(l.path), string(r.path)) - }) +// compareDirectory defines an ordering of path@version directories, +// by descending version, then by ascending path. +func compareDirectory(x, y directory) int { + if sign := -semver.Compare(x.version, y.version); sign != 0 { + return sign // latest first + } + return strings.Compare(string(x.path), string(y.path)) } // modCacheRegexp splits a relpathpath into module, module version, and package. var modCacheRegexp = regexp.MustCompile(`(.*)@([^/\\]*)(.*)`) -// DirToImportPathVersion computes import path and semantic version -func DirToImportPathVersion(dir Relpath) (string, string, error) { +// dirToImportPathVersion computes import path and semantic version +// from a GOMODCACHE-relative directory name. +func dirToImportPathVersion(dir string) (string, string, error) { m := modCacheRegexp.FindStringSubmatch(string(dir)) // m[1] is the module path // m[2] is the version major.minor.patch(-
 that contains the name
+// Package modindex contains code for building and searching an
+// [Index] of the Go module cache.
+package modindex
+
+// The directory containing the index, returned by
+// [IndexDir], contains a file index-name- that contains the name
 // of the current index. We believe writing that short file is atomic.
-// ReadIndex reads that file to get the file name of the index.
+// [Read] reads that file to get the file name of the index.
 // WriteIndex writes an index with a unique name and then
 // writes that name into a new version of index-name-.
 // ( stands for the CurrentVersion of the index format.)
-package modindex
 
 import (
+	"maps"
+	"os"
 	"path/filepath"
 	"slices"
 	"strings"
@@ -21,144 +25,95 @@ import (
 	"golang.org/x/mod/semver"
 )
 
-// Create always creates a new index for the go module cache that is in cachedir.
-func Create(cachedir string) error {
-	_, err := indexModCache(cachedir, true)
-	return err
-}
-
-// Update the index for the go module cache that is in cachedir,
-// If there is no existing index it will build one.
-// If there are changed directories since the last index, it will
-// write a new one and return true. Otherwise it returns false.
-func Update(cachedir string) (bool, error) {
-	return indexModCache(cachedir, false)
+// Update updates the index for the specified Go
+// module cache directory, creating it as needed.
+// On success it returns the current index.
+func Update(gomodcache string) (*Index, error) {
+	prev, err := Read(gomodcache)
+	if err != nil {
+		if !os.IsNotExist(err) {
+			return nil, err
+		}
+		prev = nil
+	}
+	return update(gomodcache, prev)
 }
 
-// indexModCache writes an index current as of when it is called.
-// If clear is true the index is constructed from all of GOMODCACHE
-// otherwise the index is constructed from the last previous index
-// and the updates to the cache. It returns true if it wrote an index,
-// false otherwise.
-func indexModCache(cachedir string, clear bool) (bool, error) {
-	cachedir, err := filepath.Abs(cachedir)
+// update builds, writes, and returns the current index.
+//
+// If old is nil, the new index is built from all of GOMODCACHE;
+// otherwise it is built from the old index plus cache updates
+// since the previous index's time.
+func update(gomodcache string, old *Index) (*Index, error) {
+	gomodcache, err := filepath.Abs(gomodcache)
 	if err != nil {
-		return false, err
+		return nil, err
 	}
-	cd := Abspath(cachedir)
-	future := time.Now().Add(24 * time.Hour) // safely in the future
-	ok, err := modindexTimed(future, cd, clear)
+	new, changed, err := build(gomodcache, old)
 	if err != nil {
-		return false, err
+		return nil, err
 	}
-	return ok, nil
-}
-
-// modindexTimed writes an index current as of onlyBefore.
-// If clear is true the index is constructed from all of GOMODCACHE
-// otherwise the index is constructed from the last previous index
-// and all the updates to the cache before onlyBefore.
-// It returns true if it wrote a new index, false if it wrote nothing.
-func modindexTimed(onlyBefore time.Time, cachedir Abspath, clear bool) (bool, error) {
-	var curIndex *Index
-	if !clear {
-		var err error
-		curIndex, err = ReadIndex(string(cachedir))
-		if clear && err != nil {
-			return false, err
+	if old == nil || changed {
+		if err := write(gomodcache, new); err != nil {
+			return nil, err
 		}
-		// TODO(pjw): check that most of those directories still exist
-	}
-	cfg := &work{
-		onlyBefore: onlyBefore,
-		oldIndex:   curIndex,
-		cacheDir:   cachedir,
-	}
-	if curIndex != nil {
-		cfg.onlyAfter = curIndex.Changed
-	}
-	if err := cfg.buildIndex(); err != nil {
-		return false, err
 	}
-	if len(cfg.newIndex.Entries) == 0 && curIndex != nil {
-		// no changes from existing curIndex, don't write a new index
-		return false, nil
-	}
-	if err := cfg.writeIndex(); err != nil {
-		return false, err
-	}
-	return true, nil
-}
-
-type work struct {
-	onlyBefore time.Time // do not use directories later than this
-	onlyAfter  time.Time // only interested in directories after this
-	// directories from before onlyAfter come from oldIndex
-	oldIndex *Index
-	newIndex *Index
-	cacheDir Abspath
+	return new, nil
 }
 
-func (w *work) buildIndex() error {
-	// The effective date of the new index should be at least
-	// slightly earlier than when the directories are scanned
-	// so set it now.
-	w.newIndex = &Index{Changed: time.Now(), Cachedir: w.cacheDir}
-	dirs := findDirs(string(w.cacheDir), w.onlyAfter, w.onlyBefore)
-	if len(dirs) == 0 {
-		return nil
+// build returns a new index for the specified Go module cache (an
+// absolute path).
+//
+// If an old index is provided, only directories more recent than it
+// that it are scanned; older directories are provided by the old
+// Index.
+//
+// The boolean result indicates whether new entries were found.
+func build(gomodcache string, old *Index) (*Index, bool, error) {
+	// Set the time window.
+	var start time.Time // = dawn of time
+	if old != nil {
+		start = old.ValidAt
 	}
-	newdirs, err := byImportPath(dirs)
+	now := time.Now()
+	end := now.Add(24 * time.Hour) // safely in the future
+
+	// Enumerate GOMODCACHE package directories.
+	// Choose the best (latest) package for each import path.
+	pkgDirs := findDirs(gomodcache, start, end)
+	dirByPath, err := bestDirByImportPath(pkgDirs)
 	if err != nil {
-		return err
+		return nil, false, err
 	}
-	// for each import path it might occur only in newdirs,
-	// only in w.oldIndex, or in both.
-	// If it occurs in both, use the semantically later one
-	if w.oldIndex != nil {
-		for _, e := range w.oldIndex.Entries {
-			found, ok := newdirs[e.ImportPath]
-			if !ok {
-				w.newIndex.Entries = append(w.newIndex.Entries, e)
-				continue // use this one, there is no new one
-			}
-			if semver.Compare(found[0].version, e.Version) > 0 {
-				// use the new one
-			} else {
-				// use the old one, forget the new one
-				w.newIndex.Entries = append(w.newIndex.Entries, e)
-				delete(newdirs, e.ImportPath)
+
+	// For each import path it might occur only in
+	// dirByPath, only in old, or in both.
+	// If both, use the semantically later one.
+	var entries []Entry
+	if old != nil {
+		for _, entry := range old.Entries {
+			dir, ok := dirByPath[entry.ImportPath]
+			if !ok || semver.Compare(dir.version, entry.Version) <= 0 {
+				// New dir is missing or not more recent; use old entry.
+				entries = append(entries, entry)
+				delete(dirByPath, entry.ImportPath)
 			}
 		}
 	}
-	// get symbol information for all the new diredtories
-	getSymbols(w.cacheDir, newdirs)
-	// assemble the new index entries
-	for k, v := range newdirs {
-		d := v[0]
-		pkg, names := processSyms(d.syms)
-		if pkg == "" {
-			continue // PJW: does this ever happen?
-		}
-		entry := Entry{
-			PkgName:    pkg,
-			Dir:        d.path,
-			ImportPath: k,
-			Version:    d.version,
-			Names:      names,
-		}
-		w.newIndex.Entries = append(w.newIndex.Entries, entry)
-	}
-	// sort the entries in the new index
-	slices.SortFunc(w.newIndex.Entries, func(l, r Entry) int {
-		if n := strings.Compare(l.PkgName, r.PkgName); n != 0 {
+
+	// Extract symbol information for all the new directories.
+	newEntries := extractSymbols(gomodcache, maps.Values(dirByPath))
+	entries = append(entries, newEntries...)
+	slices.SortFunc(entries, func(x, y Entry) int {
+		if n := strings.Compare(x.PkgName, y.PkgName); n != 0 {
 			return n
 		}
-		return strings.Compare(l.ImportPath, r.ImportPath)
+		return strings.Compare(x.ImportPath, y.ImportPath)
 	})
-	return nil
-}
 
-func (w *work) writeIndex() error {
-	return writeIndex(w.cacheDir, w.newIndex)
+	return &Index{
+		GOMODCACHE: gomodcache,
+		ValidAt:    now, // time before the directories were scanned
+		Entries:    entries,
+	}, len(newEntries) > 0, nil
 }
diff --git a/vendor/golang.org/x/tools/internal/modindex/symbols.go b/vendor/golang.org/x/tools/internal/modindex/symbols.go
index b918529d4..8e9702d84 100644
--- a/vendor/golang.org/x/tools/internal/modindex/symbols.go
+++ b/vendor/golang.org/x/tools/internal/modindex/symbols.go
@@ -10,11 +10,13 @@ import (
 	"go/parser"
 	"go/token"
 	"go/types"
+	"iter"
 	"os"
 	"path/filepath"
 	"runtime"
 	"slices"
 	"strings"
+	"sync"
 
 	"golang.org/x/sync/errgroup"
 )
@@ -30,45 +32,69 @@ import (
 type symbol struct {
 	pkg  string // name of the symbols's package
 	name string // declared name
-	kind string // T, C, V, or F, follwed by D if deprecated
+	kind string // T, C, V, or F, followed by D if deprecated
 	sig  string // signature information, for F
 }
 
-// find the symbols for the best directories
-func getSymbols(cd Abspath, dirs map[string][]*directory) {
+// extractSymbols returns a (new, unordered) array of Entries, one for
+// each provided package directory, describing its exported symbols.
+func extractSymbols(cwd string, dirs iter.Seq[directory]) []Entry {
+	var (
+		mu      sync.Mutex
+		entries []Entry
+	)
+
 	var g errgroup.Group
 	g.SetLimit(max(2, runtime.GOMAXPROCS(0)/2))
-	for _, vv := range dirs {
-		// throttling some day?
-		d := vv[0]
+	for dir := range dirs {
 		g.Go(func() error {
-			thedir := filepath.Join(string(cd), string(d.path))
+			thedir := filepath.Join(cwd, string(dir.path))
 			mode := parser.SkipObjectResolution | parser.ParseComments
 
-			fi, err := os.ReadDir(thedir)
+			// Parse all Go files in dir and extract symbols.
+			dirents, err := os.ReadDir(thedir)
 			if err != nil {
 				return nil // log this someday?
 			}
-			for _, fx := range fi {
-				if !strings.HasSuffix(fx.Name(), ".go") || strings.HasSuffix(fx.Name(), "_test.go") {
+			var syms []symbol
+			for _, dirent := range dirents {
+				if !strings.HasSuffix(dirent.Name(), ".go") ||
+					strings.HasSuffix(dirent.Name(), "_test.go") {
 					continue
 				}
-				fname := filepath.Join(thedir, fx.Name())
+				fname := filepath.Join(thedir, dirent.Name())
 				tr, err := parser.ParseFile(token.NewFileSet(), fname, nil, mode)
 				if err != nil {
 					continue // ignore errors, someday log them?
 				}
-				d.syms = append(d.syms, getFileExports(tr)...)
+				syms = append(syms, getFileExports(tr)...)
+			}
+
+			// Create an entry for the package.
+			pkg, names := processSyms(syms)
+			if pkg != "" {
+				mu.Lock()
+				defer mu.Unlock()
+				entries = append(entries, Entry{
+					PkgName:    pkg,
+					Dir:        dir.path,
+					ImportPath: dir.importPath,
+					Version:    dir.version,
+					Names:      names,
+				})
 			}
+
 			return nil
 		})
 	}
-	g.Wait()
+	g.Wait() // ignore error
+
+	return entries
 }
 
 func getFileExports(f *ast.File) []symbol {
 	pkg := f.Name.Name
-	if pkg == "main" {
+	if pkg == "main" || pkg == "" {
 		return nil
 	}
 	var ans []symbol
@@ -110,7 +136,7 @@ func getFileExports(f *ast.File) []symbol {
 				// The only place a $ can occur seems to be in a struct tag, which
 				// can be an arbitrary string literal, and ExprString does not presently
 				// print struct tags. So for this to happen the type of a formal parameter
-				// has to be a explict struct, e.g. foo(x struct{a int "$"}) and ExprString
+				// has to be a explicit struct, e.g. foo(x struct{a int "$"}) and ExprString
 				// would have to show the struct tag. Even testing for this case seems
 				// a waste of effort, but let's remember the possibility
 				if strings.Contains(tp, "$") {
@@ -180,8 +206,7 @@ func isDeprecated(doc *ast.CommentGroup) bool {
 	// go.dev/wiki/Deprecated Paragraph starting 'Deprecated:'
 	// This code fails for /* Deprecated: */, but it's the code from
 	// gopls/internal/analysis/deprecated
-	lines := strings.Split(doc.Text(), "\n\n")
-	for _, line := range lines {
+	for line := range strings.SplitSeq(doc.Text(), "\n\n") {
 		if strings.HasPrefix(line, "Deprecated:") {
 			return true
 		}
@@ -202,17 +227,18 @@ func processSyms(syms []symbol) (string, []string) {
 	pkg := syms[0].pkg
 	var names []string
 	for _, s := range syms {
+		if s.pkg != pkg {
+			// Symbols came from two files in same dir
+			// with different package declarations.
+			continue
+		}
 		var nx string
-		if s.pkg == pkg {
-			if s.sig != "" {
-				nx = fmt.Sprintf("%s %s %s", s.name, s.kind, s.sig)
-			} else {
-				nx = fmt.Sprintf("%s %s", s.name, s.kind)
-			}
-			names = append(names, nx)
+		if s.sig != "" {
+			nx = fmt.Sprintf("%s %s %s", s.name, s.kind, s.sig)
 		} else {
-			continue // PJW: do we want to keep track of these?
+			nx = fmt.Sprintf("%s %s", s.name, s.kind)
 		}
+		names = append(names, nx)
 	}
 	return pkg, names
 }
diff --git a/vendor/golang.org/x/tools/internal/modindex/types.go b/vendor/golang.org/x/tools/internal/modindex/types.go
deleted file mode 100644
index ece448863..000000000
--- a/vendor/golang.org/x/tools/internal/modindex/types.go
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2024 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.
-
-package modindex
-
-import (
-	"strings"
-)
-
-// some special types to avoid confusions
-
-// distinguish various types of directory names. It's easy to get confused.
-type Abspath string // absolute paths
-type Relpath string // paths with GOMODCACHE prefix removed
-
-func toRelpath(cachedir Abspath, s string) Relpath {
-	if strings.HasPrefix(s, string(cachedir)) {
-		if s == string(cachedir) {
-			return Relpath("")
-		}
-		return Relpath(s[len(cachedir)+1:])
-	}
-	return Relpath(s)
-}
diff --git a/vendor/golang.org/x/tools/internal/packagesinternal/packages.go b/vendor/golang.org/x/tools/internal/packagesinternal/packages.go
index 25ebab663..929b470be 100644
--- a/vendor/golang.org/x/tools/internal/packagesinternal/packages.go
+++ b/vendor/golang.org/x/tools/internal/packagesinternal/packages.go
@@ -5,6 +5,8 @@
 // Package packagesinternal exposes internal-only fields from go/packages.
 package packagesinternal
 
+import "fmt"
+
 var GetDepsErrors = func(p any) []*PackageError { return nil }
 
 type PackageError struct {
@@ -13,8 +15,9 @@ type PackageError struct {
 	Err         string   // the error itself
 }
 
+func (err PackageError) String() string {
+	return fmt.Sprintf("%s: %s (import stack: %s)", err.Pos, err.Err, err.ImportStack)
+}
+
 var TypecheckCgo int
 var DepsErrors int // must be set as a LoadMode to call GetDepsErrors
-
-var SetModFlag = func(config any, value string) {}
-var SetModFile = func(config any, value string) {}
diff --git a/vendor/golang.org/x/tools/internal/stdlib/deps.go b/vendor/golang.org/x/tools/internal/stdlib/deps.go
index c50bf406b..96ad6c582 100644
--- a/vendor/golang.org/x/tools/internal/stdlib/deps.go
+++ b/vendor/golang.org/x/tools/internal/stdlib/deps.go
@@ -12,348 +12,354 @@ type pkginfo struct {
 }
 
 var deps = [...]pkginfo{
-	{"archive/tar", "\x03j\x03E6\x01\v\x01\"\x01\x01\x02\x05\n\x02\x01\x02\x02\v"},
-	{"archive/zip", "\x02\x04`\a\x16\x0206\x01*\x05\x01\x11\x03\x02\r\x04"},
-	{"bufio", "\x03j~E\x13"},
-	{"bytes", "m+S\x03\fG\x02\x02"},
+	{"archive/tar", "\x03k\x03E;\x01\n\x01$\x01\x01\x02\x05\b\x02\x01\x02\x02\f"},
+	{"archive/zip", "\x02\x04a\a\x03\x12\x021;\x01+\x05\x01\x0f\x03\x02\x0e\x04"},
+	{"bufio", "\x03k\x83\x01D\x14"},
+	{"bytes", "n*Y\x03\fG\x02\x02"},
 	{"cmp", ""},
-	{"compress/bzip2", "\x02\x02\xe7\x01B"},
-	{"compress/flate", "\x02k\x03{\r\x024\x01\x03"},
-	{"compress/gzip", "\x02\x04`\a\x03\x15fT"},
-	{"compress/lzw", "\x02k\x03{"},
-	{"compress/zlib", "\x02\x04`\a\x03\x13\x01g"},
-	{"container/heap", "\xae\x02"},
+	{"compress/bzip2", "\x02\x02\xed\x01A"},
+	{"compress/flate", "\x02l\x03\x80\x01\f\x033\x01\x03"},
+	{"compress/gzip", "\x02\x04a\a\x03\x14lT"},
+	{"compress/lzw", "\x02l\x03\x80\x01"},
+	{"compress/zlib", "\x02\x04a\a\x03\x12\x01m"},
+	{"container/heap", "\xb3\x02"},
 	{"container/list", ""},
 	{"container/ring", ""},
-	{"context", "m\\i\x01\f"},
-	{"crypto", "\x83\x01hD"},
-	{"crypto/aes", "\x10\n\a\x8e\x02"},
-	{"crypto/cipher", "\x03\x1e\x01\x01\x1d\x11\x1c,R"},
-	{"crypto/des", "\x10\x13\x1d-,\x96\x01\x03"},
-	{"crypto/dsa", "@\x04)~\x0e"},
-	{"crypto/ecdh", "\x03\v\f\x0e\x04\x14\x04\r\x1c~"},
-	{"crypto/ecdsa", "\x0e\x05\x03\x04\x01\x0e\x16\x01\x04\f\x01\x1c~\x0e\x04K\x01"},
-	{"crypto/ed25519", "\x0e\x1c\x16\n\a\x1c~D"},
-	{"crypto/elliptic", "0=~\x0e9"},
-	{"crypto/fips140", " \x05\x90\x01"},
-	{"crypto/hkdf", "-\x12\x01-\x16"},
-	{"crypto/hmac", "\x1a\x14\x11\x01\x112"},
+	{"context", "n\\m\x01\r"},
+	{"crypto", "\x83\x01nC"},
+	{"crypto/aes", "\x10\n\a\x93\x02"},
+	{"crypto/cipher", "\x03\x1e\x01\x01\x1e\x11\x1c+X"},
+	{"crypto/des", "\x10\x13\x1e-+\x9b\x01\x03"},
+	{"crypto/dsa", "A\x04)\x83\x01\r"},
+	{"crypto/ecdh", "\x03\v\f\x0e\x04\x15\x04\r\x1c\x83\x01"},
+	{"crypto/ecdsa", "\x0e\x05\x03\x04\x01\x0e\a\v\x05\x01\x04\f\x01\x1c\x83\x01\r\x05K\x01"},
+	{"crypto/ed25519", "\x0e\x1c\x11\x06\n\a\x1c\x83\x01C"},
+	{"crypto/elliptic", "0>\x83\x01\r9"},
+	{"crypto/fips140", " \x05"},
+	{"crypto/hkdf", "-\x13\x01-\x15"},
+	{"crypto/hmac", "\x1a\x14\x12\x01\x111"},
 	{"crypto/internal/boring", "\x0e\x02\rf"},
-	{"crypto/internal/boring/bbig", "\x1a\xdf\x01L"},
-	{"crypto/internal/boring/bcache", "\xb3\x02\x12"},
+	{"crypto/internal/boring/bbig", "\x1a\xe4\x01M"},
+	{"crypto/internal/boring/bcache", "\xb8\x02\x13"},
 	{"crypto/internal/boring/sig", ""},
-	{"crypto/internal/cryptotest", "\x03\r\n)\x0e\x19\x06\x13\x12#\a\t\x11\x12\x11\x1a\r\r\x05\n"},
-	{"crypto/internal/entropy", "E"},
-	{"crypto/internal/fips140", ">/~8\r\x15"},
-	{"crypto/internal/fips140/aes", "\x03\x1d\x03\x02\x13\x04\x01\x01\x05*\x8d\x015"},
-	{"crypto/internal/fips140/aes/gcm", " \x01\x02\x02\x02\x11\x04\x01\x06*\x8b\x01"},
-	{"crypto/internal/fips140/alias", "\xc5\x02"},
-	{"crypto/internal/fips140/bigmod", "%\x17\x01\x06*\x8d\x01"},
-	{"crypto/internal/fips140/check", " \x0e\x06\b\x02\xad\x01Z"},
-	{"crypto/internal/fips140/check/checktest", "%\xfe\x01\""},
-	{"crypto/internal/fips140/drbg", "\x03\x1c\x01\x01\x04\x13\x04\b\x01(~\x0f8"},
-	{"crypto/internal/fips140/ecdh", "\x03\x1d\x05\x02\t\f1~\x0f8"},
-	{"crypto/internal/fips140/ecdsa", "\x03\x1d\x04\x01\x02\a\x02\x067~G"},
-	{"crypto/internal/fips140/ed25519", "\x03\x1d\x05\x02\x04\v7\xc2\x01\x03"},
-	{"crypto/internal/fips140/edwards25519", "%\a\f\x041\x8d\x018"},
-	{"crypto/internal/fips140/edwards25519/field", "%\x13\x041\x8d\x01"},
-	{"crypto/internal/fips140/hkdf", "\x03\x1d\x05\t\x069"},
-	{"crypto/internal/fips140/hmac", "\x03\x1d\x14\x01\x017"},
-	{"crypto/internal/fips140/mlkem", "\x03\x1d\x05\x02\x0e\x03\x041"},
-	{"crypto/internal/fips140/nistec", "%\f\a\x041\x8d\x01)\x0f\x13"},
-	{"crypto/internal/fips140/nistec/fiat", "%\x135\x8d\x01"},
-	{"crypto/internal/fips140/pbkdf2", "\x03\x1d\x05\t\x069"},
-	{"crypto/internal/fips140/rsa", "\x03\x1d\x04\x01\x02\r\x01\x01\x025~G"},
-	{"crypto/internal/fips140/sha256", "\x03\x1d\x1c\x01\x06*\x8d\x01"},
-	{"crypto/internal/fips140/sha3", "\x03\x1d\x18\x04\x010\x8d\x01K"},
-	{"crypto/internal/fips140/sha512", "\x03\x1d\x1c\x01\x06*\x8d\x01"},
-	{"crypto/internal/fips140/ssh", " \x05"},
-	{"crypto/internal/fips140/subtle", "#"},
-	{"crypto/internal/fips140/tls12", "\x03\x1d\x05\t\x06\x027"},
-	{"crypto/internal/fips140/tls13", "\x03\x1d\x05\b\a\b1"},
+	{"crypto/internal/cryptotest", "\x03\r\n\x06$\x0e\x19\x06\x12\x12 \x04\a\t\x16\x01\x11\x11\x1b\x01\a\x05\b\x03\x05\v"},
+	{"crypto/internal/entropy", "F"},
+	{"crypto/internal/fips140", "?/\x15\xa7\x01\v\x16"},
+	{"crypto/internal/fips140/aes", "\x03\x1d\x03\x02\x13\x05\x01\x01\x05*\x92\x014"},
+	{"crypto/internal/fips140/aes/gcm", " \x01\x02\x02\x02\x11\x05\x01\x06*\x8f\x01"},
+	{"crypto/internal/fips140/alias", "\xcb\x02"},
+	{"crypto/internal/fips140/bigmod", "%\x18\x01\x06*\x92\x01"},
+	{"crypto/internal/fips140/check", " \x0e\x06\t\x02\xb2\x01Z"},
+	{"crypto/internal/fips140/check/checktest", "%\x85\x02!"},
+	{"crypto/internal/fips140/drbg", "\x03\x1c\x01\x01\x04\x13\x05\b\x01(\x83\x01\x0f7"},
+	{"crypto/internal/fips140/ecdh", "\x03\x1d\x05\x02\t\r1\x83\x01\x0f7"},
+	{"crypto/internal/fips140/ecdsa", "\x03\x1d\x04\x01\x02\a\x02\x068\x15nF"},
+	{"crypto/internal/fips140/ed25519", "\x03\x1d\x05\x02\x04\v8\xc6\x01\x03"},
+	{"crypto/internal/fips140/edwards25519", "%\a\f\x051\x92\x017"},
+	{"crypto/internal/fips140/edwards25519/field", "%\x13\x051\x92\x01"},
+	{"crypto/internal/fips140/hkdf", "\x03\x1d\x05\t\x06:\x15"},
+	{"crypto/internal/fips140/hmac", "\x03\x1d\x14\x01\x018\x15"},
+	{"crypto/internal/fips140/mlkem", "\x03\x1d\x05\x02\x0e\x03\x051"},
+	{"crypto/internal/fips140/nistec", "%\f\a\x051\x92\x01*\r\x14"},
+	{"crypto/internal/fips140/nistec/fiat", "%\x136\x92\x01"},
+	{"crypto/internal/fips140/pbkdf2", "\x03\x1d\x05\t\x06:\x15"},
+	{"crypto/internal/fips140/rsa", "\x03\x1d\x04\x01\x02\r\x01\x01\x026\x15nF"},
+	{"crypto/internal/fips140/sha256", "\x03\x1d\x1d\x01\x06*\x15}"},
+	{"crypto/internal/fips140/sha3", "\x03\x1d\x18\x05\x010\x92\x01K"},
+	{"crypto/internal/fips140/sha512", "\x03\x1d\x1d\x01\x06*\x15}"},
+	{"crypto/internal/fips140/ssh", "%^"},
+	{"crypto/internal/fips140/subtle", "#\x1a\xc3\x01"},
+	{"crypto/internal/fips140/tls12", "\x03\x1d\x05\t\x06\x028\x15"},
+	{"crypto/internal/fips140/tls13", "\x03\x1d\x05\b\a\t1\x15"},
+	{"crypto/internal/fips140cache", "\xaa\x02\r&"},
 	{"crypto/internal/fips140deps", ""},
 	{"crypto/internal/fips140deps/byteorder", "\x99\x01"},
-	{"crypto/internal/fips140deps/cpu", "\xad\x01\a"},
-	{"crypto/internal/fips140deps/godebug", "\xb5\x01"},
-	{"crypto/internal/fips140hash", "5\x1a4\xc2\x01"},
-	{"crypto/internal/fips140only", "'\r\x01\x01M26"},
+	{"crypto/internal/fips140deps/cpu", "\xae\x01\a"},
+	{"crypto/internal/fips140deps/godebug", "\xb6\x01"},
+	{"crypto/internal/fips140hash", "5\x1b3\xc8\x01"},
+	{"crypto/internal/fips140only", "'\r\x01\x01M3;"},
 	{"crypto/internal/fips140test", ""},
-	{"crypto/internal/hpke", "\x0e\x01\x01\x03\x1a\x1d#,aM"},
-	{"crypto/internal/impl", "\xb0\x02"},
-	{"crypto/internal/randutil", "\xeb\x01\x12"},
-	{"crypto/internal/sysrand", "mi\"\x1e\r\x0f\x01\x01\v\x06"},
-	{"crypto/internal/sysrand/internal/seccomp", "m"},
-	{"crypto/md5", "\x0e2-\x16\x16a"},
+	{"crypto/internal/hpke", "\x0e\x01\x01\x03\x053#+gM"},
+	{"crypto/internal/impl", "\xb5\x02"},
+	{"crypto/internal/randutil", "\xf1\x01\x12"},
+	{"crypto/internal/sysrand", "nn! \r\r\x01\x01\f\x06"},
+	{"crypto/internal/sysrand/internal/seccomp", "n"},
+	{"crypto/md5", "\x0e3-\x15\x16g"},
 	{"crypto/mlkem", "/"},
-	{"crypto/pbkdf2", "2\r\x01-\x16"},
-	{"crypto/rand", "\x1a\x06\a\x19\x04\x01(~\x0eL"},
-	{"crypto/rc4", "#\x1d-\xc2\x01"},
-	{"crypto/rsa", "\x0e\f\x01\t\x0f\f\x01\x04\x06\a\x1c\x03\x1326\r\x01"},
-	{"crypto/sha1", "\x0e\f&-\x16\x16\x14M"},
+	{"crypto/pbkdf2", "2\x0e\x01-\x15"},
+	{"crypto/rand", "\x1a\x06\a\x1a\x04\x01(\x83\x01\rM"},
+	{"crypto/rc4", "#\x1e-\xc6\x01"},
+	{"crypto/rsa", "\x0e\f\x01\t\x0f\r\x01\x04\x06\a\x1c\x03\x123;\f\x01"},
+	{"crypto/sha1", "\x0e\f'\x03*\x15\x16\x15R"},
 	{"crypto/sha256", "\x0e\f\x1aO"},
-	{"crypto/sha3", "\x0e'N\xc2\x01"},
+	{"crypto/sha3", "\x0e'N\xc8\x01"},
 	{"crypto/sha512", "\x0e\f\x1cM"},
-	{"crypto/subtle", "8\x96\x01U"},
-	{"crypto/tls", "\x03\b\x02\x01\x01\x01\x01\x02\x01\x01\x01\x03\x01\a\x01\v\x02\n\x01\b\x05\x03\x01\x01\x01\x01\x02\x01\x02\x01\x17\x02\x03\x13\x16\x14\b6\x16\x15\r\n\x01\x01\x01\x02\x01\f\x06\x02\x01"},
-	{"crypto/tls/internal/fips140tls", " \x93\x02"},
-	{"crypto/x509", "\x03\v\x01\x01\x01\x01\x01\x01\x01\x011\x03\x02\x01\x01\x02\x05\x0e\x06\x02\x02\x03E\x033\x01\x02\t\x01\x01\x01\a\x0f\x05\x01\x06\x02\x05\f\x01\x02\r\x02\x01\x01\x02\x03\x01"},
-	{"crypto/x509/pkix", "c\x06\a\x89\x01F"},
-	{"database/sql", "\x03\nJ\x16\x03{\f\x06!\x05\n\x02\x03\x01\f\x02\x02\x02"},
-	{"database/sql/driver", "\r`\x03\xae\x01\x11\x10"},
-	{"debug/buildinfo", "\x03W\x02\x01\x01\b\a\x03`\x19\x02\x01*\x0f "},
-	{"debug/dwarf", "\x03c\a\x03{0\x13\x01\x01"},
-	{"debug/elf", "\x03\x06P\r\a\x03`\x1a\x01+\x19\x01\x15"},
-	{"debug/gosym", "\x03c\n\xbe\x01\x01\x01\x02"},
-	{"debug/macho", "\x03\x06P\r\n`\x1b+\x19\x01"},
-	{"debug/pe", "\x03\x06P\r\a\x03`\x1b+\x19\x01\x15"},
-	{"debug/plan9obj", "f\a\x03`\x1b+"},
-	{"embed", "m+:\x19\x01S"},
+	{"crypto/subtle", "8\x9b\x01W"},
+	{"crypto/tls", "\x03\b\x02\x01\x01\x01\x01\x02\x01\x01\x01\x02\x01\x01\a\x01\r\n\x01\t\x05\x03\x01\x01\x01\x01\x02\x01\x02\x01\x17\x02\x03\x12\x16\x15\b;\x16\x16\r\b\x01\x01\x01\x02\x01\r\x06\x02\x01\x0f"},
+	{"crypto/tls/internal/fips140tls", "\x17\xa1\x02"},
+	{"crypto/x509", "\x03\v\x01\x01\x01\x01\x01\x01\x01\x012\x05\x01\x01\x02\x05\x0e\x06\x02\x02\x03E\x038\x01\x02\b\x01\x01\x02\a\x10\x05\x01\x06\x02\x05\n\x01\x02\x0e\x02\x01\x01\x02\x03\x01"},
+	{"crypto/x509/pkix", "d\x06\a\x8d\x01G"},
+	{"database/sql", "\x03\nK\x16\x03\x80\x01\v\a\"\x05\b\x02\x03\x01\r\x02\x02\x02"},
+	{"database/sql/driver", "\ra\x03\xb4\x01\x0f\x11"},
+	{"debug/buildinfo", "\x03X\x02\x01\x01\b\a\x03e\x19\x02\x01+\x0f\x1f"},
+	{"debug/dwarf", "\x03d\a\x03\x80\x011\x11\x01\x01"},
+	{"debug/elf", "\x03\x06Q\r\a\x03e\x1a\x01,\x17\x01\x16"},
+	{"debug/gosym", "\x03d\n\xc2\x01\x01\x01\x02"},
+	{"debug/macho", "\x03\x06Q\r\ne\x1b,\x17\x01"},
+	{"debug/pe", "\x03\x06Q\r\a\x03e\x1b,\x17\x01\x16"},
+	{"debug/plan9obj", "g\a\x03e\x1b,"},
+	{"embed", "n*@\x19\x01S"},
 	{"embed/internal/embedtest", ""},
 	{"encoding", ""},
-	{"encoding/ascii85", "\xeb\x01D"},
-	{"encoding/asn1", "\x03j\x03\x88\x01\x01%\x0f\x02\x01\x0f\x03\x01"},
-	{"encoding/base32", "\xeb\x01B\x02"},
-	{"encoding/base64", "f\x85\x01B\x02"},
-	{"encoding/binary", "m~\r&\x0f\x05"},
-	{"encoding/csv", "\x02\x01j\x03{E\x11\x02"},
-	{"encoding/gob", "\x02_\x05\a\x03`\x1b\f\x01\x02\x1c\b\x14\x01\x0e\x02"},
-	{"encoding/hex", "m\x03{B\x03"},
-	{"encoding/json", "\x03\x01]\x04\b\x03{\r&\x0f\x02\x01\x02\x0f\x01\x01\x02"},
-	{"encoding/pem", "\x03b\b~B\x03"},
-	{"encoding/xml", "\x02\x01^\f\x03{3\x05\f\x01\x02\x0f\x02"},
-	{"errors", "\xc9\x01|"},
-	{"expvar", "jK:\t\n\x14\r\n\x02\x03\x01\x10"},
-	{"flag", "a\f\x03{+\b\x05\n\x02\x01\x0f"},
-	{"fmt", "mE9\r\x1e\b\x0f\x02\x03\x11"},
-	{"go/ast", "\x03\x01l\x0f\x01k\x03(\b\x0f\x02\x01"},
-	{"go/ast/internal/tests", ""},
-	{"go/build", "\x02\x01j\x03\x01\x03\x02\a\x02\x01\x17\x1e\x04\x02\t\x14\x13\x01*\x01\x04\x01\a\n\x02\x01\x11\x02\x02"},
-	{"go/build/constraint", "m\xc2\x01\x01\x11\x02"},
-	{"go/constant", "p\x10x\x01\x015\x01\x02\x11"},
-	{"go/doc", "\x04l\x01\x06\t=.0\x12\x02\x01\x11\x02"},
-	{"go/doc/comment", "\x03m\xbd\x01\x01\x01\x01\x11\x02"},
-	{"go/format", "\x03m\x01\f\x01\x02kE"},
-	{"go/importer", "s\a\x01\x01\x04\x01j8"},
-	{"go/internal/gccgoimporter", "\x02\x01W\x13\x03\x05\v\x01h\x02+\x01\x05\x13\x01\v\b"},
-	{"go/internal/gcimporter", "\x02n\x10\x01/\x05\x0e(+\x17\x03\x02"},
-	{"go/internal/srcimporter", "p\x01\x02\n\x03\x01j+\x01\x05\x14\x02\x13"},
-	{"go/parser", "\x03j\x03\x01\x03\v\x01k\x01*\x06\x14"},
-	{"go/printer", "p\x01\x03\x03\tk\r\x1e\x17\x02\x01\x02\n\x05\x02"},
-	{"go/scanner", "\x03m\x10k1\x12\x01\x12\x02"},
-	{"go/token", "\x04l\xbd\x01\x02\x03\x01\x0e\x02"},
-	{"go/types", "\x03\x01\x06c\x03\x01\x04\b\x03\x02\x15\x1e\x06,\x04\x03\n$\a\n\x01\x01\x01\x02\x01\x0e\x02\x02"},
-	{"go/version", "\xba\x01v"},
-	{"hash", "\xeb\x01"},
-	{"hash/adler32", "m\x16\x16"},
-	{"hash/crc32", "m\x16\x16\x14\x85\x01\x01\x12"},
-	{"hash/crc64", "m\x16\x16\x99\x01"},
-	{"hash/fnv", "m\x16\x16a"},
-	{"hash/maphash", "\x94\x01\x05\x1b\x03AM"},
-	{"html", "\xb0\x02\x02\x11"},
-	{"html/template", "\x03g\x06\x19,6\x01\v\x1f\x05\x01\x02\x03\x0e\x01\x02\v\x01\x03\x02"},
-	{"image", "\x02k\x1f_\x0f5\x03\x01"},
+	{"encoding/ascii85", "\xf1\x01C"},
+	{"encoding/asn1", "\x03k\x03\x8c\x01\x01'\r\x02\x01\x10\x03\x01"},
+	{"encoding/base32", "\xf1\x01A\x02"},
+	{"encoding/base64", "\x99\x01XA\x02"},
+	{"encoding/binary", "n\x83\x01\f(\r\x05"},
+	{"encoding/csv", "\x02\x01k\x03\x80\x01D\x12\x02"},
+	{"encoding/gob", "\x02`\x05\a\x03e\x1b\v\x01\x03\x1d\b\x12\x01\x0f\x02"},
+	{"encoding/hex", "n\x03\x80\x01A\x03"},
+	{"encoding/json", "\x03\x01^\x04\b\x03\x80\x01\f(\r\x02\x01\x02\x10\x01\x01\x02"},
+	{"encoding/pem", "\x03c\b\x83\x01A\x03"},
+	{"encoding/xml", "\x02\x01_\f\x03\x80\x014\x05\n\x01\x02\x10\x02"},
+	{"errors", "\xca\x01\x81\x01"},
+	{"expvar", "kK?\b\v\x15\r\b\x02\x03\x01\x11"},
+	{"flag", "b\f\x03\x80\x01,\b\x05\b\x02\x01\x10"},
+	{"fmt", "nE>\f \b\r\x02\x03\x12"},
+	{"go/ast", "\x03\x01m\x0e\x01q\x03)\b\r\x02\x01"},
+	{"go/build", "\x02\x01k\x03\x01\x02\x02\a\x02\x01\x17\x1f\x04\x02\t\x19\x13\x01+\x01\x04\x01\a\b\x02\x01\x12\x02\x02"},
+	{"go/build/constraint", "n\xc6\x01\x01\x12\x02"},
+	{"go/constant", "q\x0f}\x01\x024\x01\x02\x12"},
+	{"go/doc", "\x04m\x01\x05\t>31\x10\x02\x01\x12\x02"},
+	{"go/doc/comment", "\x03n\xc1\x01\x01\x01\x01\x12\x02"},
+	{"go/format", "\x03n\x01\v\x01\x02qD"},
+	{"go/importer", "s\a\x01\x01\x04\x01p9"},
+	{"go/internal/gccgoimporter", "\x02\x01X\x13\x03\x04\v\x01n\x02,\x01\x05\x11\x01\f\b"},
+	{"go/internal/gcimporter", "\x02o\x0f\x010\x05\x0e-,\x15\x03\x02"},
+	{"go/internal/srcimporter", "q\x01\x01\n\x03\x01p,\x01\x05\x12\x02\x14"},
+	{"go/parser", "\x03k\x03\x01\x02\v\x01q\x01+\x06\x12"},
+	{"go/printer", "q\x01\x02\x03\tq\f \x15\x02\x01\x02\v\x05\x02"},
+	{"go/scanner", "\x03n\x0fq2\x10\x01\x13\x02"},
+	{"go/token", "\x04m\x83\x01>\x02\x03\x01\x0f\x02"},
+	{"go/types", "\x03\x01\x06d\x03\x01\x03\b\x03\x02\x15\x1f\x061\x04\x03\t \x06\a\b\x01\x01\x01\x02\x01\x0f\x02\x02"},
+	{"go/version", "\xbb\x01z"},
+	{"hash", "\xf1\x01"},
+	{"hash/adler32", "n\x15\x16"},
+	{"hash/crc32", "n\x15\x16\x15\x89\x01\x01\x13"},
+	{"hash/crc64", "n\x15\x16\x9e\x01"},
+	{"hash/fnv", "n\x15\x16g"},
+	{"hash/maphash", "\x83\x01\x11!\x03\x93\x01"},
+	{"html", "\xb5\x02\x02\x12"},
+	{"html/template", "\x03h\x06\x18-;\x01\n!\x05\x01\x02\x03\f\x01\x02\f\x01\x03\x02"},
+	{"image", "\x02l\x1ee\x0f4\x03\x01"},
 	{"image/color", ""},
 	{"image/color/palette", "\x8c\x01"},
 	{"image/draw", "\x8b\x01\x01\x04"},
-	{"image/gif", "\x02\x01\x05e\x03\x1b\x01\x01\x01\vR"},
+	{"image/gif", "\x02\x01\x05f\x03\x1a\x01\x01\x01\vX"},
 	{"image/internal/imageutil", "\x8b\x01"},
-	{"image/jpeg", "\x02k\x1e\x01\x04["},
-	{"image/png", "\x02\a]\n\x13\x02\x06\x01_D"},
-	{"index/suffixarray", "\x03c\a~\r)\f\x01"},
-	{"internal/abi", "\xb4\x01\x91\x01"},
-	{"internal/asan", "\xc5\x02"},
-	{"internal/bisect", "\xa3\x02\x0f\x01"},
-	{"internal/buildcfg", "pG_\x06\x02\x05\f\x01"},
-	{"internal/bytealg", "\xad\x01\x98\x01"},
+	{"image/jpeg", "\x02l\x1d\x01\x04a"},
+	{"image/png", "\x02\a^\n\x12\x02\x06\x01eC"},
+	{"index/suffixarray", "\x03d\a\x83\x01\f+\n\x01"},
+	{"internal/abi", "\xb5\x01\x96\x01"},
+	{"internal/asan", "\xcb\x02"},
+	{"internal/bisect", "\xaa\x02\r\x01"},
+	{"internal/buildcfg", "qGe\x06\x02\x05\n\x01"},
+	{"internal/bytealg", "\xae\x01\x9d\x01"},
 	{"internal/byteorder", ""},
 	{"internal/cfg", ""},
-	{"internal/chacha8rand", "\x99\x01\x1b\x91\x01"},
+	{"internal/cgrouptest", "q[Q\x06\x0f\x02\x01\x04\x01"},
+	{"internal/chacha8rand", "\x99\x01\x15\a\x96\x01"},
 	{"internal/copyright", ""},
 	{"internal/coverage", ""},
 	{"internal/coverage/calloc", ""},
-	{"internal/coverage/cfile", "j\x06\x17\x16\x01\x02\x01\x01\x01\x01\x01\x01\x01#\x01 +\x06\a\f\x01\x03\f\x06"},
-	{"internal/coverage/cformat", "\x04l-\x04J\f6\x01\x02\f"},
-	{"internal/coverage/cmerge", "p-["},
-	{"internal/coverage/decodecounter", "f\n-\v\x02A+\x19\x16"},
-	{"internal/coverage/decodemeta", "\x02d\n\x17\x16\v\x02A+"},
-	{"internal/coverage/encodecounter", "\x02d\n-\f\x01\x02?\f\x1f\x17"},
-	{"internal/coverage/encodemeta", "\x02\x01c\n\x13\x04\x16\r\x02?+/"},
-	{"internal/coverage/pods", "\x04l-y\x06\x05\f\x02\x01"},
-	{"internal/coverage/rtcov", "\xc5\x02"},
-	{"internal/coverage/slicereader", "f\n{Z"},
-	{"internal/coverage/slicewriter", "p{"},
-	{"internal/coverage/stringtab", "p8\x04?"},
+	{"internal/coverage/cfile", "k\x06\x16\x17\x01\x02\x01\x01\x01\x01\x01\x01\x01#\x02$,\x06\a\n\x01\x03\r\x06"},
+	{"internal/coverage/cformat", "\x04m-\x04O\v6\x01\x02\r"},
+	{"internal/coverage/cmerge", "q-_"},
+	{"internal/coverage/decodecounter", "g\n-\v\x02F,\x17\x17"},
+	{"internal/coverage/decodemeta", "\x02e\n\x16\x17\v\x02F,"},
+	{"internal/coverage/encodecounter", "\x02e\n-\f\x01\x02D\v!\x15"},
+	{"internal/coverage/encodemeta", "\x02\x01d\n\x12\x04\x17\r\x02D,."},
+	{"internal/coverage/pods", "\x04m-\x7f\x06\x05\n\x02\x01"},
+	{"internal/coverage/rtcov", "\xcb\x02"},
+	{"internal/coverage/slicereader", "g\n\x80\x01Z"},
+	{"internal/coverage/slicewriter", "q\x80\x01"},
+	{"internal/coverage/stringtab", "q8\x04D"},
 	{"internal/coverage/test", ""},
 	{"internal/coverage/uleb128", ""},
-	{"internal/cpu", "\xc5\x02"},
-	{"internal/dag", "\x04l\xbd\x01\x03"},
-	{"internal/diff", "\x03m\xbe\x01\x02"},
-	{"internal/exportdata", "\x02\x01j\x03\x03]\x1b+\x01\x05\x13\x01\x02"},
-	{"internal/filepathlite", "m+:\x1aA"},
-	{"internal/fmtsort", "\x04\x9a\x02\x0f"},
-	{"internal/fuzz", "\x03\nA\x18\x04\x03\x03\x01\f\x0356\r\x02\x1c\x01\x05\x02\x05\f\x01\x02\x01\x01\v\x04\x02"},
+	{"internal/cpu", "\xcb\x02"},
+	{"internal/dag", "\x04m\xc1\x01\x03"},
+	{"internal/diff", "\x03n\xc2\x01\x02"},
+	{"internal/exportdata", "\x02\x01k\x03\x02c\x1b,\x01\x05\x11\x01\x02"},
+	{"internal/filepathlite", "n*@\x1a@"},
+	{"internal/fmtsort", "\x04\xa1\x02\r"},
+	{"internal/fuzz", "\x03\nB\x18\x04\x03\x03\x01\v\x036;\f\x03\x1d\x01\x05\x02\x05\n\x01\x02\x01\x01\f\x04\x02"},
 	{"internal/goarch", ""},
-	{"internal/godebug", "\x96\x01 |\x01\x12"},
+	{"internal/godebug", "\x96\x01!\x80\x01\x01\x13"},
 	{"internal/godebugs", ""},
 	{"internal/goexperiment", ""},
 	{"internal/goos", ""},
-	{"internal/goroot", "\x96\x02\x01\x05\x14\x02"},
+	{"internal/goroot", "\x9d\x02\x01\x05\x12\x02"},
 	{"internal/gover", "\x04"},
 	{"internal/goversion", ""},
 	{"internal/itoa", ""},
-	{"internal/lazyregexp", "\x96\x02\v\x0f\x02"},
-	{"internal/lazytemplate", "\xeb\x01+\x1a\x02\v"},
-	{"internal/msan", "\xc5\x02"},
+	{"internal/lazyregexp", "\x9d\x02\v\r\x02"},
+	{"internal/lazytemplate", "\xf1\x01,\x18\x02\f"},
+	{"internal/msan", "\xcb\x02"},
 	{"internal/nettrace", ""},
-	{"internal/obscuretestdata", "e\x86\x01+"},
-	{"internal/oserror", "m"},
-	{"internal/pkgbits", "\x03K\x18\a\x03\x05\vk\x0e\x1d\r\f\x01"},
+	{"internal/obscuretestdata", "f\x8b\x01,"},
+	{"internal/oserror", "n"},
+	{"internal/pkgbits", "\x03L\x18\a\x03\x04\vq\r\x1f\r\n\x01"},
 	{"internal/platform", ""},
-	{"internal/poll", "mO\x1a\x158\x0f\x01\x01\v\x06"},
-	{"internal/profile", "\x03\x04f\x03{6\r\x01\x01\x0f"},
+	{"internal/poll", "nO\x1f\x159\r\x01\x01\f\x06"},
+	{"internal/profile", "\x03\x04g\x03\x80\x017\v\x01\x01\x10"},
 	{"internal/profilerecord", ""},
-	{"internal/race", "\x94\x01\xb1\x01"},
-	{"internal/reflectlite", "\x94\x01 4;\""},
-	{"internal/runtime/atomic", "\xc5\x02"},
-	{"internal/runtime/exithook", "\xca\x01{"},
-	{"internal/runtime/maps", "\x94\x01\x01\x1f\v\t\x05\x01w"},
-	{"internal/runtime/math", "\xb4\x01"},
-	{"internal/runtime/sys", "\xb4\x01\x04"},
-	{"internal/runtime/syscall", "\xc5\x02"},
-	{"internal/saferio", "\xeb\x01Z"},
-	{"internal/singleflight", "\xb2\x02"},
-	{"internal/stringslite", "\x98\x01\xad\x01"},
-	{"internal/sync", "\x94\x01 \x14k\x12"},
-	{"internal/synctest", "\xc5\x02"},
-	{"internal/syscall/execenv", "\xb4\x02"},
-	{"internal/syscall/unix", "\xa3\x02\x10\x01\x11"},
-	{"internal/sysinfo", "\x02\x01\xaa\x01>+\x1a\x02"},
+	{"internal/race", "\x94\x01\xb7\x01"},
+	{"internal/reflectlite", "\x94\x01!9\r\x02\x023\x01\x02\x13"},
-	{"math/bits", "\xc5\x02"},
-	{"math/cmplx", "\xf8\x01\x02"},
-	{"math/rand", "\xb5\x01C:\x01\x12"},
-	{"math/rand/v2", "m,\x02]\x02K"},
-	{"mime", "\x02\x01b\b\x03{\f\x1f\x17\x03\x02\x0f\x02"},
-	{"mime/multipart", "\x02\x01G#\x03E6\f\x01\x06\x02\x14\x02\x06\x11\x02\x01\x15"},
-	{"mime/quotedprintable", "\x02\x01m{"},
-	{"net", "\x04\t`+\x1d\a\x04\x05\f\x01\x04\x15\x01$\x06\r\n\x05\x01\x01\v\x06\a"},
-	{"net/http", "\x02\x01\x04\x04\x02=\b\x13\x01\a\x03E6\x01\x03\b\x01\x02\x02\x02\x01\x02\x06\x02\x01\n\x01\x01\x05\x01\x02\x05\n\x01\x01\x01\x02\x01\f\x02\x02\x02\b\x01\x01\x01"},
-	{"net/http/cgi", "\x02P\x1b\x03{\x04\b\n\x01\x12\x01\x01\x01\x04\x01\x05\x02\n\x02\x01\x0f\x0e"},
-	{"net/http/cookiejar", "\x04i\x03\x91\x01\x01\b\v\x18\x03\x02\r\x04"},
-	{"net/http/fcgi", "\x02\x01\nY\a\x03{\x16\x01\x01\x13\x1a\x02\r"},
-	{"net/http/httptest", "\x02\x01\nE\x02\x1b\x01{\x04\x12\x01\t\t\x02\x19\x01\x02\r\x0e"},
-	{"net/http/httptrace", "\rEnA\x13\n!"},
-	{"net/http/httputil", "\x02\x01\n`\x03{\x04\x0f\x03\x01\x05\x02\x01\n\x01\x1b\x02\r\x0e"},
-	{"net/http/internal", "\x02\x01j\x03{"},
-	{"net/http/internal/ascii", "\xb0\x02\x11"},
-	{"net/http/internal/testcert", "\xb0\x02"},
-	{"net/http/pprof", "\x02\x01\nc\x19,\x11%\x04\x13\x13\x01\r\x06\x03\x01\x02\x01\x0f"},
+	{"log/slog/internal/benchmarks", "\ra\x03\x80\x01\x06\x03:\x11"},
+	{"log/slog/internal/buffer", "\xb7\x02"},
+	{"log/syslog", "n\x03\x84\x01\x12\x16\x18\x02\x0e"},
+	{"maps", "\xf4\x01W"},
+	{"math", "\xae\x01RK"},
+	{"math/big", "\x03k\x03(\x15C\f\x03\x020\x02\x01\x02\x14"},
+	{"math/big/internal/asmgen", "\x03\x01m\x8f\x012\x03"},
+	{"math/bits", "\xcb\x02"},
+	{"math/cmplx", "\xfd\x01\x03"},
+	{"math/rand", "\xb6\x01G:\x01\x13"},
+	{"math/rand/v2", "n+\x03a\x03K"},
+	{"mime", "\x02\x01c\b\x03\x80\x01\v!\x15\x03\x02\x10\x02"},
+	{"mime/multipart", "\x02\x01H#\x03E;\v\x01\a\x02\x15\x02\x06\x0f\x02\x01\x16"},
+	{"mime/quotedprintable", "\x02\x01n\x80\x01"},
+	{"net", "\x04\ta*\x1e\a\x04\x05\x11\x01\x04\x15\x01%\x06\r\b\x05\x01\x01\f\x06\a"},
+	{"net/http", "\x02\x01\x04\x04\x02>\b\x13\x01\a\x03E;\x01\x03\a\x01\x03\x02\x02\x01\x02\x06\x02\x01\x01\n\x01\x01\x05\x01\x02\x05\b\x01\x01\x01\x02\x01\r\x02\x02\x02\b\x01\x01\x01"},
+	{"net/http/cgi", "\x02Q\x1b\x03\x80\x01\x04\a\v\x01\x13\x01\x01\x01\x04\x01\x05\x02\b\x02\x01\x10\x0e"},
+	{"net/http/cookiejar", "\x04j\x03\x96\x01\x01\b\f\x16\x03\x02\x0e\x04"},
+	{"net/http/fcgi", "\x02\x01\nZ\a\x03\x80\x01\x16\x01\x01\x14\x18\x02\x0e"},
+	{"net/http/httptest", "\x02\x01\nF\x02\x1b\x01\x80\x01\x04\x12\x01\n\t\x02\x17\x01\x02\x0e\x0e"},
+	{"net/http/httptrace", "\rFnF\x14\n "},
+	{"net/http/httputil", "\x02\x01\na\x03\x80\x01\x04\x0f\x03\x01\x05\x02\x01\v\x01\x19\x02\x0e\x0e"},
+	{"net/http/internal", "\x02\x01k\x03\x80\x01"},
+	{"net/http/internal/ascii", "\xb5\x02\x12"},
+	{"net/http/internal/httpcommon", "\ra\x03\x9c\x01\x0e\x01\x17\x01\x01\x02\x1c\x02"},
+	{"net/http/internal/testcert", "\xb5\x02"},
+	{"net/http/pprof", "\x02\x01\nd\x18-\x11*\x04\x13\x14\x01\r\x04\x03\x01\x02\x01\x10"},
 	{"net/internal/cgotest", ""},
-	{"net/internal/socktest", "p\xc2\x01\x02"},
-	{"net/mail", "\x02k\x03{\x04\x0f\x03\x13\x1c\x02\r\x04"},
-	{"net/netip", "\x04i+\x01#<\x025\x15"},
-	{"net/rpc", "\x02f\x05\x03\x10\na\x04\x12\x01\x1c\x0f\x03\x02"},
-	{"net/rpc/jsonrpc", "j\x03\x03{\x16\x10!"},
-	{"net/smtp", "\x19.\v\x13\b\x03{\x16\x13\x1c"},
-	{"net/textproto", "\x02\x01j\x03{\r\t.\x01\x02\x13"},
-	{"net/url", "m\x03\x87\x01$\x12\x02\x01\x15"},
-	{"os", "m+\x01\x18\x03\b\t\r\x03\x01\x04\x11\x017\n\x05\x01\x01\v\x06"},
-	{"os/exec", "\x03\n`H \x01\x15\x01*\x06\a\f\x01\x04\v"},
-	{"os/exec/internal/fdtest", "\xb4\x02"},
-	{"os/signal", "\r\x89\x02\x17\x05\x02"},
-	{"os/user", "\x02\x01j\x03{+\r\f\x01\x02"},
-	{"path", "m+\xab\x01"},
-	{"path/filepath", "m+\x19;*\r\n\x03\x04\x0f"},
-	{"plugin", "m"},
-	{"reflect", "m'\x04\x1c\b\f\x04\x02\x1a\x06\n+\f\x03\x0f\x02\x02"},
+	{"net/internal/socktest", "q\xc6\x01\x02"},
+	{"net/mail", "\x02l\x03\x80\x01\x04\x0f\x03\x14\x1a\x02\x0e\x04"},
+	{"net/netip", "\x04j*\x01$@\x034\x16"},
+	{"net/rpc", "\x02g\x05\x03\x0f\ng\x04\x12\x01\x1d\r\x03\x02"},
+	{"net/rpc/jsonrpc", "k\x03\x03\x80\x01\x16\x11\x1f"},
+	{"net/smtp", "\x19/\v\x13\b\x03\x80\x01\x16\x14\x1a"},
+	{"net/textproto", "\x02\x01k\x03\x80\x01\f\n-\x01\x02\x14"},
+	{"net/url", "n\x03\x8b\x01&\x10\x02\x01\x16"},
+	{"os", "n*\x01\x19\x03\b\t\x12\x03\x01\x05\x10\x018\b\x05\x01\x01\f\x06"},
+	{"os/exec", "\x03\naH%\x01\x15\x01+\x06\a\n\x01\x04\f"},
+	{"os/exec/internal/fdtest", "\xb9\x02"},
+	{"os/signal", "\r\x90\x02\x15\x05\x02"},
+	{"os/user", "\x02\x01k\x03\x80\x01,\r\n\x01\x02"},
+	{"path", "n*\xb1\x01"},
+	{"path/filepath", "n*\x1a@+\r\b\x03\x04\x10"},
+	{"plugin", "n"},
+	{"reflect", "n&\x04\x1d\b\f\x06\x04\x1b\x06\t-\n\x03\x10\x02\x02"},
 	{"reflect/internal/example1", ""},
 	{"reflect/internal/example2", ""},
-	{"regexp", "\x03\xe8\x017\v\x02\x01\x02\x0f\x02"},
-	{"regexp/syntax", "\xad\x02\x01\x01\x01\x11\x02"},
-	{"runtime", "\x94\x01\x04\x01\x02\f\x06\a\x02\x01\x01\x0f\x03\x01\x01\x01\x01\x01\x03s"},
-	{"runtime/coverage", "\x9f\x01L"},
-	{"runtime/debug", "pUQ\r\n\x02\x01\x0f\x06"},
-	{"runtime/internal/startlinetest", ""},
-	{"runtime/internal/wasitest", ""},
-	{"runtime/metrics", "\xb6\x01B+\""},
-	{"runtime/pprof", "\x02\x01\x01\x03\x06Y\a\x03$3$\r\x1e\r\n\x01\x01\x01\x02\x02\b\x03\x06"},
-	{"runtime/race", "\xab\x02"},
+	{"regexp", "\x03\xee\x018\t\x02\x01\x02\x10\x02"},
+	{"regexp/syntax", "\xb2\x02\x01\x01\x01\x02\x10\x02"},
+	{"runtime", "\x94\x01\x04\x01\x03\f\x06\a\x02\x01\x01\x0f\x03\x01\x01\x01\x01\x01\x02\x01\x01\x04\x10c"},
+	{"runtime/coverage", "\xa0\x01Q"},
+	{"runtime/debug", "qUW\r\b\x02\x01\x10\x06"},
+	{"runtime/metrics", "\xb7\x01F-!"},
+	{"runtime/pprof", "\x02\x01\x01\x03\x06Z\a\x03#4)\f \r\b\x01\x01\x01\x02\x02\t\x03\x06"},
+	{"runtime/race", "\xb0\x02"},
 	{"runtime/race/internal/amd64v1", ""},
-	{"runtime/trace", "\rc{8\x0f\x01\x12"},
-	{"slices", "\x04\xea\x01\fK"},
-	{"sort", "\xc9\x0113"},
-	{"strconv", "m+:&\x02I"},
-	{"strings", "m'\x04:\x19\x03\f8\x0f\x02\x02"},
+	{"runtime/trace", "\ra\x03w\t9\b\x05\x01\r\x06"},
+	{"slices", "\x04\xf0\x01\fK"},
+	{"sort", "\xca\x0162"},
+	{"strconv", "n*@%\x03I"},
+	{"strings", "n&\x04@\x19\x03\f7\x10\x02\x02"},
 	{"structs", ""},
-	{"sync", "\xc8\x01\vP\x10\x12"},
-	{"sync/atomic", "\xc5\x02"},
-	{"syscall", "m(\x03\x01\x1b\b\x03\x03\x06\aT\x0f\x01\x12"},
-	{"testing", "\x03\n`\x02\x01G\x11\x0f\x14\r\x04\x1a\x06\x02\x05\x02\a\x01\x02\x01\x02\x01\f\x02\x02\x02"},
-	{"testing/fstest", "m\x03{\x01\v$\x12\x03\b\a"},
-	{"testing/internal/testdeps", "\x02\v\xa6\x01'\x11+\x03\x05\x03\b\a\x02\r"},
-	{"testing/iotest", "\x03j\x03{\x04"},
-	{"testing/quick", "o\x01\x88\x01\x04\"\x12\x0f"},
-	{"testing/slogtest", "\r`\x03\x81\x01-\x05\x12\n"},
-	{"text/scanner", "\x03m{++\x02"},
-	{"text/tabwriter", "p{X"},
-	{"text/template", "m\x03B9\x01\v\x1e\x01\x05\x01\x02\x05\r\x02\f\x03\x02"},
-	{"text/template/parse", "\x03m\xb3\x01\f\x01\x11\x02"},
-	{"time", "m+\x1d\x1d()\x0f\x02\x11"},
-	{"time/tzdata", "m\xc7\x01\x11"},
+	{"sync", "\xc9\x01\x10\x01P\x0e\x13"},
+	{"sync/atomic", "\xcb\x02"},
+	{"syscall", "n'\x03\x01\x1c\b\x03\x03\x06\vV\b\x05\x01\x13"},
+	{"testing", "\x03\na\x02\x01X\x14\x14\f\x05\x1b\x06\x02\x05\x02\x05\x01\x02\x01\x02\x01\r\x02\x02\x02"},
+	{"testing/fstest", "n\x03\x80\x01\x01\n&\x10\x03\b\b"},
+	{"testing/internal/testdeps", "\x02\v\xa7\x01-\x10,\x03\x05\x03\x06\a\x02\x0e"},
+	{"testing/iotest", "\x03k\x03\x80\x01\x04"},
+	{"testing/quick", "p\x01\x8c\x01\x05#\x10\x10"},
+	{"testing/slogtest", "\ra\x03\x86\x01.\x05\x10\v"},
+	{"testing/synctest", "\xda\x01`\x11"},
+	{"text/scanner", "\x03n\x80\x01,*\x02"},
+	{"text/tabwriter", "q\x80\x01X"},
+	{"text/template", "n\x03B>\x01\n \x01\x05\x01\x02\x05\v\x02\r\x03\x02"},
+	{"text/template/parse", "\x03n\xb9\x01\n\x01\x12\x02"},
+	{"time", "n*\x1e\"(*\r\x02\x12"},
+	{"time/tzdata", "n\xcb\x01\x12"},
 	{"unicode", ""},
 	{"unicode/utf16", ""},
 	{"unicode/utf8", ""},
-	{"unique", "\x94\x01>\x01P\x0f\x13\x12"},
+	{"unique", "\x94\x01!#\x01Q\r\x01\x13\x12"},
 	{"unsafe", ""},
-	{"vendor/golang.org/x/crypto/chacha20", "\x10V\a\x8d\x01)'"},
-	{"vendor/golang.org/x/crypto/chacha20poly1305", "\x10V\a\xd9\x01\x04\x01\a"},
-	{"vendor/golang.org/x/crypto/cryptobyte", "c\n\x03\x89\x01%!\n"},
+	{"vendor/golang.org/x/crypto/chacha20", "\x10W\a\x92\x01*&"},
+	{"vendor/golang.org/x/crypto/chacha20poly1305", "\x10W\a\xde\x01\x04\x01\a"},
+	{"vendor/golang.org/x/crypto/cryptobyte", "d\n\x03\x8d\x01' \n"},
 	{"vendor/golang.org/x/crypto/cryptobyte/asn1", ""},
-	{"vendor/golang.org/x/crypto/internal/alias", "\xc5\x02"},
-	{"vendor/golang.org/x/crypto/internal/poly1305", "Q\x15\x94\x01"},
-	{"vendor/golang.org/x/net/dns/dnsmessage", "m"},
-	{"vendor/golang.org/x/net/http/httpguts", "\x81\x02\x13\x1c\x13\r"},
-	{"vendor/golang.org/x/net/http/httpproxy", "m\x03\x91\x01\x0f\x05\x01\x1a\x13\r"},
-	{"vendor/golang.org/x/net/http2/hpack", "\x03j\x03{G"},
-	{"vendor/golang.org/x/net/idna", "p\x88\x018\x13\x10\x02\x01"},
-	{"vendor/golang.org/x/net/nettest", "\x03c\a\x03{\x11\x05\x15\x01\f\f\x01\x02\x02\x01\n"},
-	{"vendor/golang.org/x/sys/cpu", "\x96\x02\r\f\x01\x15"},
-	{"vendor/golang.org/x/text/secure/bidirule", "m\xd6\x01\x11\x01"},
-	{"vendor/golang.org/x/text/transform", "\x03j~X"},
-	{"vendor/golang.org/x/text/unicode/bidi", "\x03\be\x7f?\x15"},
-	{"vendor/golang.org/x/text/unicode/norm", "f\n{G\x11\x11"},
-	{"weak", "\x94\x01\x8f\x01\""},
+	{"vendor/golang.org/x/crypto/internal/alias", "\xcb\x02"},
+	{"vendor/golang.org/x/crypto/internal/poly1305", "R\x15\x99\x01"},
+	{"vendor/golang.org/x/net/dns/dnsmessage", "n"},
+	{"vendor/golang.org/x/net/http/httpguts", "\x87\x02\x14\x1a\x14\r"},
+	{"vendor/golang.org/x/net/http/httpproxy", "n\x03\x96\x01\x10\x05\x01\x18\x14\r"},
+	{"vendor/golang.org/x/net/http2/hpack", "\x03k\x03\x80\x01F"},
+	{"vendor/golang.org/x/net/idna", "q\x8c\x018\x14\x10\x02\x01"},
+	{"vendor/golang.org/x/net/nettest", "\x03d\a\x03\x80\x01\x11\x05\x16\x01\f\n\x01\x02\x02\x01\v"},
+	{"vendor/golang.org/x/sys/cpu", "\x9d\x02\r\n\x01\x16"},
+	{"vendor/golang.org/x/text/secure/bidirule", "n\xdb\x01\x11\x01"},
+	{"vendor/golang.org/x/text/transform", "\x03k\x83\x01X"},
+	{"vendor/golang.org/x/text/unicode/bidi", "\x03\bf\x84\x01>\x16"},
+	{"vendor/golang.org/x/text/unicode/norm", "g\n\x80\x01F\x12\x11"},
+	{"weak", "\x94\x01\x96\x01!"},
 }
diff --git a/vendor/golang.org/x/tools/internal/stdlib/manifest.go b/vendor/golang.org/x/tools/internal/stdlib/manifest.go
index 2b418796a..c1faa50d3 100644
--- a/vendor/golang.org/x/tools/internal/stdlib/manifest.go
+++ b/vendor/golang.org/x/tools/internal/stdlib/manifest.go
@@ -8,17640 +8,17719 @@ package stdlib
 
 var PackageSymbols = map[string][]Symbol{
 	"archive/tar": {
-		{"(*Header).FileInfo", Method, 1},
-		{"(*Reader).Next", Method, 0},
-		{"(*Reader).Read", Method, 0},
-		{"(*Writer).AddFS", Method, 22},
-		{"(*Writer).Close", Method, 0},
-		{"(*Writer).Flush", Method, 0},
-		{"(*Writer).Write", Method, 0},
-		{"(*Writer).WriteHeader", Method, 0},
-		{"(Format).String", Method, 10},
-		{"ErrFieldTooLong", Var, 0},
-		{"ErrHeader", Var, 0},
-		{"ErrInsecurePath", Var, 20},
-		{"ErrWriteAfterClose", Var, 0},
-		{"ErrWriteTooLong", Var, 0},
-		{"FileInfoHeader", Func, 1},
-		{"FileInfoNames", Type, 23},
-		{"Format", Type, 10},
-		{"FormatGNU", Const, 10},
-		{"FormatPAX", Const, 10},
-		{"FormatUSTAR", Const, 10},
-		{"FormatUnknown", Const, 10},
-		{"Header", Type, 0},
-		{"Header.AccessTime", Field, 0},
-		{"Header.ChangeTime", Field, 0},
-		{"Header.Devmajor", Field, 0},
-		{"Header.Devminor", Field, 0},
-		{"Header.Format", Field, 10},
-		{"Header.Gid", Field, 0},
-		{"Header.Gname", Field, 0},
-		{"Header.Linkname", Field, 0},
-		{"Header.ModTime", Field, 0},
-		{"Header.Mode", Field, 0},
-		{"Header.Name", Field, 0},
-		{"Header.PAXRecords", Field, 10},
-		{"Header.Size", Field, 0},
-		{"Header.Typeflag", Field, 0},
-		{"Header.Uid", Field, 0},
-		{"Header.Uname", Field, 0},
-		{"Header.Xattrs", Field, 3},
-		{"NewReader", Func, 0},
-		{"NewWriter", Func, 0},
-		{"Reader", Type, 0},
-		{"TypeBlock", Const, 0},
-		{"TypeChar", Const, 0},
-		{"TypeCont", Const, 0},
-		{"TypeDir", Const, 0},
-		{"TypeFifo", Const, 0},
-		{"TypeGNULongLink", Const, 1},
-		{"TypeGNULongName", Const, 1},
-		{"TypeGNUSparse", Const, 3},
-		{"TypeLink", Const, 0},
-		{"TypeReg", Const, 0},
-		{"TypeRegA", Const, 0},
-		{"TypeSymlink", Const, 0},
-		{"TypeXGlobalHeader", Const, 0},
-		{"TypeXHeader", Const, 0},
-		{"Writer", Type, 0},
+		{"(*Header).FileInfo", Method, 1, ""},
+		{"(*Reader).Next", Method, 0, ""},
+		{"(*Reader).Read", Method, 0, ""},
+		{"(*Writer).AddFS", Method, 22, ""},
+		{"(*Writer).Close", Method, 0, ""},
+		{"(*Writer).Flush", Method, 0, ""},
+		{"(*Writer).Write", Method, 0, ""},
+		{"(*Writer).WriteHeader", Method, 0, ""},
+		{"(Format).String", Method, 10, ""},
+		{"ErrFieldTooLong", Var, 0, ""},
+		{"ErrHeader", Var, 0, ""},
+		{"ErrInsecurePath", Var, 20, ""},
+		{"ErrWriteAfterClose", Var, 0, ""},
+		{"ErrWriteTooLong", Var, 0, ""},
+		{"FileInfoHeader", Func, 1, "func(fi fs.FileInfo, link string) (*Header, error)"},
+		{"FileInfoNames", Type, 23, ""},
+		{"Format", Type, 10, ""},
+		{"FormatGNU", Const, 10, ""},
+		{"FormatPAX", Const, 10, ""},
+		{"FormatUSTAR", Const, 10, ""},
+		{"FormatUnknown", Const, 10, ""},
+		{"Header", Type, 0, ""},
+		{"Header.AccessTime", Field, 0, ""},
+		{"Header.ChangeTime", Field, 0, ""},
+		{"Header.Devmajor", Field, 0, ""},
+		{"Header.Devminor", Field, 0, ""},
+		{"Header.Format", Field, 10, ""},
+		{"Header.Gid", Field, 0, ""},
+		{"Header.Gname", Field, 0, ""},
+		{"Header.Linkname", Field, 0, ""},
+		{"Header.ModTime", Field, 0, ""},
+		{"Header.Mode", Field, 0, ""},
+		{"Header.Name", Field, 0, ""},
+		{"Header.PAXRecords", Field, 10, ""},
+		{"Header.Size", Field, 0, ""},
+		{"Header.Typeflag", Field, 0, ""},
+		{"Header.Uid", Field, 0, ""},
+		{"Header.Uname", Field, 0, ""},
+		{"Header.Xattrs", Field, 3, ""},
+		{"NewReader", Func, 0, "func(r io.Reader) *Reader"},
+		{"NewWriter", Func, 0, "func(w io.Writer) *Writer"},
+		{"Reader", Type, 0, ""},
+		{"TypeBlock", Const, 0, ""},
+		{"TypeChar", Const, 0, ""},
+		{"TypeCont", Const, 0, ""},
+		{"TypeDir", Const, 0, ""},
+		{"TypeFifo", Const, 0, ""},
+		{"TypeGNULongLink", Const, 1, ""},
+		{"TypeGNULongName", Const, 1, ""},
+		{"TypeGNUSparse", Const, 3, ""},
+		{"TypeLink", Const, 0, ""},
+		{"TypeReg", Const, 0, ""},
+		{"TypeRegA", Const, 0, ""},
+		{"TypeSymlink", Const, 0, ""},
+		{"TypeXGlobalHeader", Const, 0, ""},
+		{"TypeXHeader", Const, 0, ""},
+		{"Writer", Type, 0, ""},
 	},
 	"archive/zip": {
-		{"(*File).DataOffset", Method, 2},
-		{"(*File).FileInfo", Method, 0},
-		{"(*File).ModTime", Method, 0},
-		{"(*File).Mode", Method, 0},
-		{"(*File).Open", Method, 0},
-		{"(*File).OpenRaw", Method, 17},
-		{"(*File).SetModTime", Method, 0},
-		{"(*File).SetMode", Method, 0},
-		{"(*FileHeader).FileInfo", Method, 0},
-		{"(*FileHeader).ModTime", Method, 0},
-		{"(*FileHeader).Mode", Method, 0},
-		{"(*FileHeader).SetModTime", Method, 0},
-		{"(*FileHeader).SetMode", Method, 0},
-		{"(*ReadCloser).Close", Method, 0},
-		{"(*ReadCloser).Open", Method, 16},
-		{"(*ReadCloser).RegisterDecompressor", Method, 6},
-		{"(*Reader).Open", Method, 16},
-		{"(*Reader).RegisterDecompressor", Method, 6},
-		{"(*Writer).AddFS", Method, 22},
-		{"(*Writer).Close", Method, 0},
-		{"(*Writer).Copy", Method, 17},
-		{"(*Writer).Create", Method, 0},
-		{"(*Writer).CreateHeader", Method, 0},
-		{"(*Writer).CreateRaw", Method, 17},
-		{"(*Writer).Flush", Method, 4},
-		{"(*Writer).RegisterCompressor", Method, 6},
-		{"(*Writer).SetComment", Method, 10},
-		{"(*Writer).SetOffset", Method, 5},
-		{"Compressor", Type, 2},
-		{"Decompressor", Type, 2},
-		{"Deflate", Const, 0},
-		{"ErrAlgorithm", Var, 0},
-		{"ErrChecksum", Var, 0},
-		{"ErrFormat", Var, 0},
-		{"ErrInsecurePath", Var, 20},
-		{"File", Type, 0},
-		{"File.FileHeader", Field, 0},
-		{"FileHeader", Type, 0},
-		{"FileHeader.CRC32", Field, 0},
-		{"FileHeader.Comment", Field, 0},
-		{"FileHeader.CompressedSize", Field, 0},
-		{"FileHeader.CompressedSize64", Field, 1},
-		{"FileHeader.CreatorVersion", Field, 0},
-		{"FileHeader.ExternalAttrs", Field, 0},
-		{"FileHeader.Extra", Field, 0},
-		{"FileHeader.Flags", Field, 0},
-		{"FileHeader.Method", Field, 0},
-		{"FileHeader.Modified", Field, 10},
-		{"FileHeader.ModifiedDate", Field, 0},
-		{"FileHeader.ModifiedTime", Field, 0},
-		{"FileHeader.Name", Field, 0},
-		{"FileHeader.NonUTF8", Field, 10},
-		{"FileHeader.ReaderVersion", Field, 0},
-		{"FileHeader.UncompressedSize", Field, 0},
-		{"FileHeader.UncompressedSize64", Field, 1},
-		{"FileInfoHeader", Func, 0},
-		{"NewReader", Func, 0},
-		{"NewWriter", Func, 0},
-		{"OpenReader", Func, 0},
-		{"ReadCloser", Type, 0},
-		{"ReadCloser.Reader", Field, 0},
-		{"Reader", Type, 0},
-		{"Reader.Comment", Field, 0},
-		{"Reader.File", Field, 0},
-		{"RegisterCompressor", Func, 2},
-		{"RegisterDecompressor", Func, 2},
-		{"Store", Const, 0},
-		{"Writer", Type, 0},
+		{"(*File).DataOffset", Method, 2, ""},
+		{"(*File).FileInfo", Method, 0, ""},
+		{"(*File).ModTime", Method, 0, ""},
+		{"(*File).Mode", Method, 0, ""},
+		{"(*File).Open", Method, 0, ""},
+		{"(*File).OpenRaw", Method, 17, ""},
+		{"(*File).SetModTime", Method, 0, ""},
+		{"(*File).SetMode", Method, 0, ""},
+		{"(*FileHeader).FileInfo", Method, 0, ""},
+		{"(*FileHeader).ModTime", Method, 0, ""},
+		{"(*FileHeader).Mode", Method, 0, ""},
+		{"(*FileHeader).SetModTime", Method, 0, ""},
+		{"(*FileHeader).SetMode", Method, 0, ""},
+		{"(*ReadCloser).Close", Method, 0, ""},
+		{"(*ReadCloser).Open", Method, 16, ""},
+		{"(*ReadCloser).RegisterDecompressor", Method, 6, ""},
+		{"(*Reader).Open", Method, 16, ""},
+		{"(*Reader).RegisterDecompressor", Method, 6, ""},
+		{"(*Writer).AddFS", Method, 22, ""},
+		{"(*Writer).Close", Method, 0, ""},
+		{"(*Writer).Copy", Method, 17, ""},
+		{"(*Writer).Create", Method, 0, ""},
+		{"(*Writer).CreateHeader", Method, 0, ""},
+		{"(*Writer).CreateRaw", Method, 17, ""},
+		{"(*Writer).Flush", Method, 4, ""},
+		{"(*Writer).RegisterCompressor", Method, 6, ""},
+		{"(*Writer).SetComment", Method, 10, ""},
+		{"(*Writer).SetOffset", Method, 5, ""},
+		{"Compressor", Type, 2, ""},
+		{"Decompressor", Type, 2, ""},
+		{"Deflate", Const, 0, ""},
+		{"ErrAlgorithm", Var, 0, ""},
+		{"ErrChecksum", Var, 0, ""},
+		{"ErrFormat", Var, 0, ""},
+		{"ErrInsecurePath", Var, 20, ""},
+		{"File", Type, 0, ""},
+		{"File.FileHeader", Field, 0, ""},
+		{"FileHeader", Type, 0, ""},
+		{"FileHeader.CRC32", Field, 0, ""},
+		{"FileHeader.Comment", Field, 0, ""},
+		{"FileHeader.CompressedSize", Field, 0, ""},
+		{"FileHeader.CompressedSize64", Field, 1, ""},
+		{"FileHeader.CreatorVersion", Field, 0, ""},
+		{"FileHeader.ExternalAttrs", Field, 0, ""},
+		{"FileHeader.Extra", Field, 0, ""},
+		{"FileHeader.Flags", Field, 0, ""},
+		{"FileHeader.Method", Field, 0, ""},
+		{"FileHeader.Modified", Field, 10, ""},
+		{"FileHeader.ModifiedDate", Field, 0, ""},
+		{"FileHeader.ModifiedTime", Field, 0, ""},
+		{"FileHeader.Name", Field, 0, ""},
+		{"FileHeader.NonUTF8", Field, 10, ""},
+		{"FileHeader.ReaderVersion", Field, 0, ""},
+		{"FileHeader.UncompressedSize", Field, 0, ""},
+		{"FileHeader.UncompressedSize64", Field, 1, ""},
+		{"FileInfoHeader", Func, 0, "func(fi fs.FileInfo) (*FileHeader, error)"},
+		{"NewReader", Func, 0, "func(r io.ReaderAt, size int64) (*Reader, error)"},
+		{"NewWriter", Func, 0, "func(w io.Writer) *Writer"},
+		{"OpenReader", Func, 0, "func(name string) (*ReadCloser, error)"},
+		{"ReadCloser", Type, 0, ""},
+		{"ReadCloser.Reader", Field, 0, ""},
+		{"Reader", Type, 0, ""},
+		{"Reader.Comment", Field, 0, ""},
+		{"Reader.File", Field, 0, ""},
+		{"RegisterCompressor", Func, 2, "func(method uint16, comp Compressor)"},
+		{"RegisterDecompressor", Func, 2, "func(method uint16, dcomp Decompressor)"},
+		{"Store", Const, 0, ""},
+		{"Writer", Type, 0, ""},
 	},
 	"bufio": {
-		{"(*Reader).Buffered", Method, 0},
-		{"(*Reader).Discard", Method, 5},
-		{"(*Reader).Peek", Method, 0},
-		{"(*Reader).Read", Method, 0},
-		{"(*Reader).ReadByte", Method, 0},
-		{"(*Reader).ReadBytes", Method, 0},
-		{"(*Reader).ReadLine", Method, 0},
-		{"(*Reader).ReadRune", Method, 0},
-		{"(*Reader).ReadSlice", Method, 0},
-		{"(*Reader).ReadString", Method, 0},
-		{"(*Reader).Reset", Method, 2},
-		{"(*Reader).Size", Method, 10},
-		{"(*Reader).UnreadByte", Method, 0},
-		{"(*Reader).UnreadRune", Method, 0},
-		{"(*Reader).WriteTo", Method, 1},
-		{"(*Scanner).Buffer", Method, 6},
-		{"(*Scanner).Bytes", Method, 1},
-		{"(*Scanner).Err", Method, 1},
-		{"(*Scanner).Scan", Method, 1},
-		{"(*Scanner).Split", Method, 1},
-		{"(*Scanner).Text", Method, 1},
-		{"(*Writer).Available", Method, 0},
-		{"(*Writer).AvailableBuffer", Method, 18},
-		{"(*Writer).Buffered", Method, 0},
-		{"(*Writer).Flush", Method, 0},
-		{"(*Writer).ReadFrom", Method, 1},
-		{"(*Writer).Reset", Method, 2},
-		{"(*Writer).Size", Method, 10},
-		{"(*Writer).Write", Method, 0},
-		{"(*Writer).WriteByte", Method, 0},
-		{"(*Writer).WriteRune", Method, 0},
-		{"(*Writer).WriteString", Method, 0},
-		{"(ReadWriter).Available", Method, 0},
-		{"(ReadWriter).AvailableBuffer", Method, 18},
-		{"(ReadWriter).Discard", Method, 5},
-		{"(ReadWriter).Flush", Method, 0},
-		{"(ReadWriter).Peek", Method, 0},
-		{"(ReadWriter).Read", Method, 0},
-		{"(ReadWriter).ReadByte", Method, 0},
-		{"(ReadWriter).ReadBytes", Method, 0},
-		{"(ReadWriter).ReadFrom", Method, 1},
-		{"(ReadWriter).ReadLine", Method, 0},
-		{"(ReadWriter).ReadRune", Method, 0},
-		{"(ReadWriter).ReadSlice", Method, 0},
-		{"(ReadWriter).ReadString", Method, 0},
-		{"(ReadWriter).UnreadByte", Method, 0},
-		{"(ReadWriter).UnreadRune", Method, 0},
-		{"(ReadWriter).Write", Method, 0},
-		{"(ReadWriter).WriteByte", Method, 0},
-		{"(ReadWriter).WriteRune", Method, 0},
-		{"(ReadWriter).WriteString", Method, 0},
-		{"(ReadWriter).WriteTo", Method, 1},
-		{"ErrAdvanceTooFar", Var, 1},
-		{"ErrBadReadCount", Var, 15},
-		{"ErrBufferFull", Var, 0},
-		{"ErrFinalToken", Var, 6},
-		{"ErrInvalidUnreadByte", Var, 0},
-		{"ErrInvalidUnreadRune", Var, 0},
-		{"ErrNegativeAdvance", Var, 1},
-		{"ErrNegativeCount", Var, 0},
-		{"ErrTooLong", Var, 1},
-		{"MaxScanTokenSize", Const, 1},
-		{"NewReadWriter", Func, 0},
-		{"NewReader", Func, 0},
-		{"NewReaderSize", Func, 0},
-		{"NewScanner", Func, 1},
-		{"NewWriter", Func, 0},
-		{"NewWriterSize", Func, 0},
-		{"ReadWriter", Type, 0},
-		{"ReadWriter.Reader", Field, 0},
-		{"ReadWriter.Writer", Field, 0},
-		{"Reader", Type, 0},
-		{"ScanBytes", Func, 1},
-		{"ScanLines", Func, 1},
-		{"ScanRunes", Func, 1},
-		{"ScanWords", Func, 1},
-		{"Scanner", Type, 1},
-		{"SplitFunc", Type, 1},
-		{"Writer", Type, 0},
+		{"(*Reader).Buffered", Method, 0, ""},
+		{"(*Reader).Discard", Method, 5, ""},
+		{"(*Reader).Peek", Method, 0, ""},
+		{"(*Reader).Read", Method, 0, ""},
+		{"(*Reader).ReadByte", Method, 0, ""},
+		{"(*Reader).ReadBytes", Method, 0, ""},
+		{"(*Reader).ReadLine", Method, 0, ""},
+		{"(*Reader).ReadRune", Method, 0, ""},
+		{"(*Reader).ReadSlice", Method, 0, ""},
+		{"(*Reader).ReadString", Method, 0, ""},
+		{"(*Reader).Reset", Method, 2, ""},
+		{"(*Reader).Size", Method, 10, ""},
+		{"(*Reader).UnreadByte", Method, 0, ""},
+		{"(*Reader).UnreadRune", Method, 0, ""},
+		{"(*Reader).WriteTo", Method, 1, ""},
+		{"(*Scanner).Buffer", Method, 6, ""},
+		{"(*Scanner).Bytes", Method, 1, ""},
+		{"(*Scanner).Err", Method, 1, ""},
+		{"(*Scanner).Scan", Method, 1, ""},
+		{"(*Scanner).Split", Method, 1, ""},
+		{"(*Scanner).Text", Method, 1, ""},
+		{"(*Writer).Available", Method, 0, ""},
+		{"(*Writer).AvailableBuffer", Method, 18, ""},
+		{"(*Writer).Buffered", Method, 0, ""},
+		{"(*Writer).Flush", Method, 0, ""},
+		{"(*Writer).ReadFrom", Method, 1, ""},
+		{"(*Writer).Reset", Method, 2, ""},
+		{"(*Writer).Size", Method, 10, ""},
+		{"(*Writer).Write", Method, 0, ""},
+		{"(*Writer).WriteByte", Method, 0, ""},
+		{"(*Writer).WriteRune", Method, 0, ""},
+		{"(*Writer).WriteString", Method, 0, ""},
+		{"(ReadWriter).Available", Method, 0, ""},
+		{"(ReadWriter).AvailableBuffer", Method, 18, ""},
+		{"(ReadWriter).Discard", Method, 5, ""},
+		{"(ReadWriter).Flush", Method, 0, ""},
+		{"(ReadWriter).Peek", Method, 0, ""},
+		{"(ReadWriter).Read", Method, 0, ""},
+		{"(ReadWriter).ReadByte", Method, 0, ""},
+		{"(ReadWriter).ReadBytes", Method, 0, ""},
+		{"(ReadWriter).ReadFrom", Method, 1, ""},
+		{"(ReadWriter).ReadLine", Method, 0, ""},
+		{"(ReadWriter).ReadRune", Method, 0, ""},
+		{"(ReadWriter).ReadSlice", Method, 0, ""},
+		{"(ReadWriter).ReadString", Method, 0, ""},
+		{"(ReadWriter).UnreadByte", Method, 0, ""},
+		{"(ReadWriter).UnreadRune", Method, 0, ""},
+		{"(ReadWriter).Write", Method, 0, ""},
+		{"(ReadWriter).WriteByte", Method, 0, ""},
+		{"(ReadWriter).WriteRune", Method, 0, ""},
+		{"(ReadWriter).WriteString", Method, 0, ""},
+		{"(ReadWriter).WriteTo", Method, 1, ""},
+		{"ErrAdvanceTooFar", Var, 1, ""},
+		{"ErrBadReadCount", Var, 15, ""},
+		{"ErrBufferFull", Var, 0, ""},
+		{"ErrFinalToken", Var, 6, ""},
+		{"ErrInvalidUnreadByte", Var, 0, ""},
+		{"ErrInvalidUnreadRune", Var, 0, ""},
+		{"ErrNegativeAdvance", Var, 1, ""},
+		{"ErrNegativeCount", Var, 0, ""},
+		{"ErrTooLong", Var, 1, ""},
+		{"MaxScanTokenSize", Const, 1, ""},
+		{"NewReadWriter", Func, 0, "func(r *Reader, w *Writer) *ReadWriter"},
+		{"NewReader", Func, 0, "func(rd io.Reader) *Reader"},
+		{"NewReaderSize", Func, 0, "func(rd io.Reader, size int) *Reader"},
+		{"NewScanner", Func, 1, "func(r io.Reader) *Scanner"},
+		{"NewWriter", Func, 0, "func(w io.Writer) *Writer"},
+		{"NewWriterSize", Func, 0, "func(w io.Writer, size int) *Writer"},
+		{"ReadWriter", Type, 0, ""},
+		{"ReadWriter.Reader", Field, 0, ""},
+		{"ReadWriter.Writer", Field, 0, ""},
+		{"Reader", Type, 0, ""},
+		{"ScanBytes", Func, 1, "func(data []byte, atEOF bool) (advance int, token []byte, err error)"},
+		{"ScanLines", Func, 1, "func(data []byte, atEOF bool) (advance int, token []byte, err error)"},
+		{"ScanRunes", Func, 1, "func(data []byte, atEOF bool) (advance int, token []byte, err error)"},
+		{"ScanWords", Func, 1, "func(data []byte, atEOF bool) (advance int, token []byte, err error)"},
+		{"Scanner", Type, 1, ""},
+		{"SplitFunc", Type, 1, ""},
+		{"Writer", Type, 0, ""},
 	},
 	"bytes": {
-		{"(*Buffer).Available", Method, 21},
-		{"(*Buffer).AvailableBuffer", Method, 21},
-		{"(*Buffer).Bytes", Method, 0},
-		{"(*Buffer).Cap", Method, 5},
-		{"(*Buffer).Grow", Method, 1},
-		{"(*Buffer).Len", Method, 0},
-		{"(*Buffer).Next", Method, 0},
-		{"(*Buffer).Read", Method, 0},
-		{"(*Buffer).ReadByte", Method, 0},
-		{"(*Buffer).ReadBytes", Method, 0},
-		{"(*Buffer).ReadFrom", Method, 0},
-		{"(*Buffer).ReadRune", Method, 0},
-		{"(*Buffer).ReadString", Method, 0},
-		{"(*Buffer).Reset", Method, 0},
-		{"(*Buffer).String", Method, 0},
-		{"(*Buffer).Truncate", Method, 0},
-		{"(*Buffer).UnreadByte", Method, 0},
-		{"(*Buffer).UnreadRune", Method, 0},
-		{"(*Buffer).Write", Method, 0},
-		{"(*Buffer).WriteByte", Method, 0},
-		{"(*Buffer).WriteRune", Method, 0},
-		{"(*Buffer).WriteString", Method, 0},
-		{"(*Buffer).WriteTo", Method, 0},
-		{"(*Reader).Len", Method, 0},
-		{"(*Reader).Read", Method, 0},
-		{"(*Reader).ReadAt", Method, 0},
-		{"(*Reader).ReadByte", Method, 0},
-		{"(*Reader).ReadRune", Method, 0},
-		{"(*Reader).Reset", Method, 7},
-		{"(*Reader).Seek", Method, 0},
-		{"(*Reader).Size", Method, 5},
-		{"(*Reader).UnreadByte", Method, 0},
-		{"(*Reader).UnreadRune", Method, 0},
-		{"(*Reader).WriteTo", Method, 1},
-		{"Buffer", Type, 0},
-		{"Clone", Func, 20},
-		{"Compare", Func, 0},
-		{"Contains", Func, 0},
-		{"ContainsAny", Func, 7},
-		{"ContainsFunc", Func, 21},
-		{"ContainsRune", Func, 7},
-		{"Count", Func, 0},
-		{"Cut", Func, 18},
-		{"CutPrefix", Func, 20},
-		{"CutSuffix", Func, 20},
-		{"Equal", Func, 0},
-		{"EqualFold", Func, 0},
-		{"ErrTooLarge", Var, 0},
-		{"Fields", Func, 0},
-		{"FieldsFunc", Func, 0},
-		{"FieldsFuncSeq", Func, 24},
-		{"FieldsSeq", Func, 24},
-		{"HasPrefix", Func, 0},
-		{"HasSuffix", Func, 0},
-		{"Index", Func, 0},
-		{"IndexAny", Func, 0},
-		{"IndexByte", Func, 0},
-		{"IndexFunc", Func, 0},
-		{"IndexRune", Func, 0},
-		{"Join", Func, 0},
-		{"LastIndex", Func, 0},
-		{"LastIndexAny", Func, 0},
-		{"LastIndexByte", Func, 5},
-		{"LastIndexFunc", Func, 0},
-		{"Lines", Func, 24},
-		{"Map", Func, 0},
-		{"MinRead", Const, 0},
-		{"NewBuffer", Func, 0},
-		{"NewBufferString", Func, 0},
-		{"NewReader", Func, 0},
-		{"Reader", Type, 0},
-		{"Repeat", Func, 0},
-		{"Replace", Func, 0},
-		{"ReplaceAll", Func, 12},
-		{"Runes", Func, 0},
-		{"Split", Func, 0},
-		{"SplitAfter", Func, 0},
-		{"SplitAfterN", Func, 0},
-		{"SplitAfterSeq", Func, 24},
-		{"SplitN", Func, 0},
-		{"SplitSeq", Func, 24},
-		{"Title", Func, 0},
-		{"ToLower", Func, 0},
-		{"ToLowerSpecial", Func, 0},
-		{"ToTitle", Func, 0},
-		{"ToTitleSpecial", Func, 0},
-		{"ToUpper", Func, 0},
-		{"ToUpperSpecial", Func, 0},
-		{"ToValidUTF8", Func, 13},
-		{"Trim", Func, 0},
-		{"TrimFunc", Func, 0},
-		{"TrimLeft", Func, 0},
-		{"TrimLeftFunc", Func, 0},
-		{"TrimPrefix", Func, 1},
-		{"TrimRight", Func, 0},
-		{"TrimRightFunc", Func, 0},
-		{"TrimSpace", Func, 0},
-		{"TrimSuffix", Func, 1},
+		{"(*Buffer).Available", Method, 21, ""},
+		{"(*Buffer).AvailableBuffer", Method, 21, ""},
+		{"(*Buffer).Bytes", Method, 0, ""},
+		{"(*Buffer).Cap", Method, 5, ""},
+		{"(*Buffer).Grow", Method, 1, ""},
+		{"(*Buffer).Len", Method, 0, ""},
+		{"(*Buffer).Next", Method, 0, ""},
+		{"(*Buffer).Read", Method, 0, ""},
+		{"(*Buffer).ReadByte", Method, 0, ""},
+		{"(*Buffer).ReadBytes", Method, 0, ""},
+		{"(*Buffer).ReadFrom", Method, 0, ""},
+		{"(*Buffer).ReadRune", Method, 0, ""},
+		{"(*Buffer).ReadString", Method, 0, ""},
+		{"(*Buffer).Reset", Method, 0, ""},
+		{"(*Buffer).String", Method, 0, ""},
+		{"(*Buffer).Truncate", Method, 0, ""},
+		{"(*Buffer).UnreadByte", Method, 0, ""},
+		{"(*Buffer).UnreadRune", Method, 0, ""},
+		{"(*Buffer).Write", Method, 0, ""},
+		{"(*Buffer).WriteByte", Method, 0, ""},
+		{"(*Buffer).WriteRune", Method, 0, ""},
+		{"(*Buffer).WriteString", Method, 0, ""},
+		{"(*Buffer).WriteTo", Method, 0, ""},
+		{"(*Reader).Len", Method, 0, ""},
+		{"(*Reader).Read", Method, 0, ""},
+		{"(*Reader).ReadAt", Method, 0, ""},
+		{"(*Reader).ReadByte", Method, 0, ""},
+		{"(*Reader).ReadRune", Method, 0, ""},
+		{"(*Reader).Reset", Method, 7, ""},
+		{"(*Reader).Seek", Method, 0, ""},
+		{"(*Reader).Size", Method, 5, ""},
+		{"(*Reader).UnreadByte", Method, 0, ""},
+		{"(*Reader).UnreadRune", Method, 0, ""},
+		{"(*Reader).WriteTo", Method, 1, ""},
+		{"Buffer", Type, 0, ""},
+		{"Clone", Func, 20, "func(b []byte) []byte"},
+		{"Compare", Func, 0, "func(a []byte, b []byte) int"},
+		{"Contains", Func, 0, "func(b []byte, subslice []byte) bool"},
+		{"ContainsAny", Func, 7, "func(b []byte, chars string) bool"},
+		{"ContainsFunc", Func, 21, "func(b []byte, f func(rune) bool) bool"},
+		{"ContainsRune", Func, 7, "func(b []byte, r rune) bool"},
+		{"Count", Func, 0, "func(s []byte, sep []byte) int"},
+		{"Cut", Func, 18, "func(s []byte, sep []byte) (before []byte, after []byte, found bool)"},
+		{"CutPrefix", Func, 20, "func(s []byte, prefix []byte) (after []byte, found bool)"},
+		{"CutSuffix", Func, 20, "func(s []byte, suffix []byte) (before []byte, found bool)"},
+		{"Equal", Func, 0, "func(a []byte, b []byte) bool"},
+		{"EqualFold", Func, 0, "func(s []byte, t []byte) bool"},
+		{"ErrTooLarge", Var, 0, ""},
+		{"Fields", Func, 0, "func(s []byte) [][]byte"},
+		{"FieldsFunc", Func, 0, "func(s []byte, f func(rune) bool) [][]byte"},
+		{"FieldsFuncSeq", Func, 24, "func(s []byte, f func(rune) bool) iter.Seq[[]byte]"},
+		{"FieldsSeq", Func, 24, "func(s []byte) iter.Seq[[]byte]"},
+		{"HasPrefix", Func, 0, "func(s []byte, prefix []byte) bool"},
+		{"HasSuffix", Func, 0, "func(s []byte, suffix []byte) bool"},
+		{"Index", Func, 0, "func(s []byte, sep []byte) int"},
+		{"IndexAny", Func, 0, "func(s []byte, chars string) int"},
+		{"IndexByte", Func, 0, "func(b []byte, c byte) int"},
+		{"IndexFunc", Func, 0, "func(s []byte, f func(r rune) bool) int"},
+		{"IndexRune", Func, 0, "func(s []byte, r rune) int"},
+		{"Join", Func, 0, "func(s [][]byte, sep []byte) []byte"},
+		{"LastIndex", Func, 0, "func(s []byte, sep []byte) int"},
+		{"LastIndexAny", Func, 0, "func(s []byte, chars string) int"},
+		{"LastIndexByte", Func, 5, "func(s []byte, c byte) int"},
+		{"LastIndexFunc", Func, 0, "func(s []byte, f func(r rune) bool) int"},
+		{"Lines", Func, 24, "func(s []byte) iter.Seq[[]byte]"},
+		{"Map", Func, 0, "func(mapping func(r rune) rune, s []byte) []byte"},
+		{"MinRead", Const, 0, ""},
+		{"NewBuffer", Func, 0, "func(buf []byte) *Buffer"},
+		{"NewBufferString", Func, 0, "func(s string) *Buffer"},
+		{"NewReader", Func, 0, "func(b []byte) *Reader"},
+		{"Reader", Type, 0, ""},
+		{"Repeat", Func, 0, "func(b []byte, count int) []byte"},
+		{"Replace", Func, 0, "func(s []byte, old []byte, new []byte, n int) []byte"},
+		{"ReplaceAll", Func, 12, "func(s []byte, old []byte, new []byte) []byte"},
+		{"Runes", Func, 0, "func(s []byte) []rune"},
+		{"Split", Func, 0, "func(s []byte, sep []byte) [][]byte"},
+		{"SplitAfter", Func, 0, "func(s []byte, sep []byte) [][]byte"},
+		{"SplitAfterN", Func, 0, "func(s []byte, sep []byte, n int) [][]byte"},
+		{"SplitAfterSeq", Func, 24, "func(s []byte, sep []byte) iter.Seq[[]byte]"},
+		{"SplitN", Func, 0, "func(s []byte, sep []byte, n int) [][]byte"},
+		{"SplitSeq", Func, 24, "func(s []byte, sep []byte) iter.Seq[[]byte]"},
+		{"Title", Func, 0, "func(s []byte) []byte"},
+		{"ToLower", Func, 0, "func(s []byte) []byte"},
+		{"ToLowerSpecial", Func, 0, "func(c unicode.SpecialCase, s []byte) []byte"},
+		{"ToTitle", Func, 0, "func(s []byte) []byte"},
+		{"ToTitleSpecial", Func, 0, "func(c unicode.SpecialCase, s []byte) []byte"},
+		{"ToUpper", Func, 0, "func(s []byte) []byte"},
+		{"ToUpperSpecial", Func, 0, "func(c unicode.SpecialCase, s []byte) []byte"},
+		{"ToValidUTF8", Func, 13, "func(s []byte, replacement []byte) []byte"},
+		{"Trim", Func, 0, "func(s []byte, cutset string) []byte"},
+		{"TrimFunc", Func, 0, "func(s []byte, f func(r rune) bool) []byte"},
+		{"TrimLeft", Func, 0, "func(s []byte, cutset string) []byte"},
+		{"TrimLeftFunc", Func, 0, "func(s []byte, f func(r rune) bool) []byte"},
+		{"TrimPrefix", Func, 1, "func(s []byte, prefix []byte) []byte"},
+		{"TrimRight", Func, 0, "func(s []byte, cutset string) []byte"},
+		{"TrimRightFunc", Func, 0, "func(s []byte, f func(r rune) bool) []byte"},
+		{"TrimSpace", Func, 0, "func(s []byte) []byte"},
+		{"TrimSuffix", Func, 1, "func(s []byte, suffix []byte) []byte"},
 	},
 	"cmp": {
-		{"Compare", Func, 21},
-		{"Less", Func, 21},
-		{"Or", Func, 22},
-		{"Ordered", Type, 21},
+		{"Compare", Func, 21, "func[T Ordered](x T, y T) int"},
+		{"Less", Func, 21, "func[T Ordered](x T, y T) bool"},
+		{"Or", Func, 22, "func[T comparable](vals ...T) T"},
+		{"Ordered", Type, 21, ""},
 	},
 	"compress/bzip2": {
-		{"(StructuralError).Error", Method, 0},
-		{"NewReader", Func, 0},
-		{"StructuralError", Type, 0},
+		{"(StructuralError).Error", Method, 0, ""},
+		{"NewReader", Func, 0, "func(r io.Reader) io.Reader"},
+		{"StructuralError", Type, 0, ""},
 	},
 	"compress/flate": {
-		{"(*ReadError).Error", Method, 0},
-		{"(*WriteError).Error", Method, 0},
-		{"(*Writer).Close", Method, 0},
-		{"(*Writer).Flush", Method, 0},
-		{"(*Writer).Reset", Method, 2},
-		{"(*Writer).Write", Method, 0},
-		{"(CorruptInputError).Error", Method, 0},
-		{"(InternalError).Error", Method, 0},
-		{"BestCompression", Const, 0},
-		{"BestSpeed", Const, 0},
-		{"CorruptInputError", Type, 0},
-		{"DefaultCompression", Const, 0},
-		{"HuffmanOnly", Const, 7},
-		{"InternalError", Type, 0},
-		{"NewReader", Func, 0},
-		{"NewReaderDict", Func, 0},
-		{"NewWriter", Func, 0},
-		{"NewWriterDict", Func, 0},
-		{"NoCompression", Const, 0},
-		{"ReadError", Type, 0},
-		{"ReadError.Err", Field, 0},
-		{"ReadError.Offset", Field, 0},
-		{"Reader", Type, 0},
-		{"Resetter", Type, 4},
-		{"WriteError", Type, 0},
-		{"WriteError.Err", Field, 0},
-		{"WriteError.Offset", Field, 0},
-		{"Writer", Type, 0},
+		{"(*ReadError).Error", Method, 0, ""},
+		{"(*WriteError).Error", Method, 0, ""},
+		{"(*Writer).Close", Method, 0, ""},
+		{"(*Writer).Flush", Method, 0, ""},
+		{"(*Writer).Reset", Method, 2, ""},
+		{"(*Writer).Write", Method, 0, ""},
+		{"(CorruptInputError).Error", Method, 0, ""},
+		{"(InternalError).Error", Method, 0, ""},
+		{"BestCompression", Const, 0, ""},
+		{"BestSpeed", Const, 0, ""},
+		{"CorruptInputError", Type, 0, ""},
+		{"DefaultCompression", Const, 0, ""},
+		{"HuffmanOnly", Const, 7, ""},
+		{"InternalError", Type, 0, ""},
+		{"NewReader", Func, 0, "func(r io.Reader) io.ReadCloser"},
+		{"NewReaderDict", Func, 0, "func(r io.Reader, dict []byte) io.ReadCloser"},
+		{"NewWriter", Func, 0, "func(w io.Writer, level int) (*Writer, error)"},
+		{"NewWriterDict", Func, 0, "func(w io.Writer, level int, dict []byte) (*Writer, error)"},
+		{"NoCompression", Const, 0, ""},
+		{"ReadError", Type, 0, ""},
+		{"ReadError.Err", Field, 0, ""},
+		{"ReadError.Offset", Field, 0, ""},
+		{"Reader", Type, 0, ""},
+		{"Resetter", Type, 4, ""},
+		{"WriteError", Type, 0, ""},
+		{"WriteError.Err", Field, 0, ""},
+		{"WriteError.Offset", Field, 0, ""},
+		{"Writer", Type, 0, ""},
 	},
 	"compress/gzip": {
-		{"(*Reader).Close", Method, 0},
-		{"(*Reader).Multistream", Method, 4},
-		{"(*Reader).Read", Method, 0},
-		{"(*Reader).Reset", Method, 3},
-		{"(*Writer).Close", Method, 0},
-		{"(*Writer).Flush", Method, 1},
-		{"(*Writer).Reset", Method, 2},
-		{"(*Writer).Write", Method, 0},
-		{"BestCompression", Const, 0},
-		{"BestSpeed", Const, 0},
-		{"DefaultCompression", Const, 0},
-		{"ErrChecksum", Var, 0},
-		{"ErrHeader", Var, 0},
-		{"Header", Type, 0},
-		{"Header.Comment", Field, 0},
-		{"Header.Extra", Field, 0},
-		{"Header.ModTime", Field, 0},
-		{"Header.Name", Field, 0},
-		{"Header.OS", Field, 0},
-		{"HuffmanOnly", Const, 8},
-		{"NewReader", Func, 0},
-		{"NewWriter", Func, 0},
-		{"NewWriterLevel", Func, 0},
-		{"NoCompression", Const, 0},
-		{"Reader", Type, 0},
-		{"Reader.Header", Field, 0},
-		{"Writer", Type, 0},
-		{"Writer.Header", Field, 0},
+		{"(*Reader).Close", Method, 0, ""},
+		{"(*Reader).Multistream", Method, 4, ""},
+		{"(*Reader).Read", Method, 0, ""},
+		{"(*Reader).Reset", Method, 3, ""},
+		{"(*Writer).Close", Method, 0, ""},
+		{"(*Writer).Flush", Method, 1, ""},
+		{"(*Writer).Reset", Method, 2, ""},
+		{"(*Writer).Write", Method, 0, ""},
+		{"BestCompression", Const, 0, ""},
+		{"BestSpeed", Const, 0, ""},
+		{"DefaultCompression", Const, 0, ""},
+		{"ErrChecksum", Var, 0, ""},
+		{"ErrHeader", Var, 0, ""},
+		{"Header", Type, 0, ""},
+		{"Header.Comment", Field, 0, ""},
+		{"Header.Extra", Field, 0, ""},
+		{"Header.ModTime", Field, 0, ""},
+		{"Header.Name", Field, 0, ""},
+		{"Header.OS", Field, 0, ""},
+		{"HuffmanOnly", Const, 8, ""},
+		{"NewReader", Func, 0, "func(r io.Reader) (*Reader, error)"},
+		{"NewWriter", Func, 0, "func(w io.Writer) *Writer"},
+		{"NewWriterLevel", Func, 0, "func(w io.Writer, level int) (*Writer, error)"},
+		{"NoCompression", Const, 0, ""},
+		{"Reader", Type, 0, ""},
+		{"Reader.Header", Field, 0, ""},
+		{"Writer", Type, 0, ""},
+		{"Writer.Header", Field, 0, ""},
 	},
 	"compress/lzw": {
-		{"(*Reader).Close", Method, 17},
-		{"(*Reader).Read", Method, 17},
-		{"(*Reader).Reset", Method, 17},
-		{"(*Writer).Close", Method, 17},
-		{"(*Writer).Reset", Method, 17},
-		{"(*Writer).Write", Method, 17},
-		{"LSB", Const, 0},
-		{"MSB", Const, 0},
-		{"NewReader", Func, 0},
-		{"NewWriter", Func, 0},
-		{"Order", Type, 0},
-		{"Reader", Type, 17},
-		{"Writer", Type, 17},
+		{"(*Reader).Close", Method, 17, ""},
+		{"(*Reader).Read", Method, 17, ""},
+		{"(*Reader).Reset", Method, 17, ""},
+		{"(*Writer).Close", Method, 17, ""},
+		{"(*Writer).Reset", Method, 17, ""},
+		{"(*Writer).Write", Method, 17, ""},
+		{"LSB", Const, 0, ""},
+		{"MSB", Const, 0, ""},
+		{"NewReader", Func, 0, "func(r io.Reader, order Order, litWidth int) io.ReadCloser"},
+		{"NewWriter", Func, 0, "func(w io.Writer, order Order, litWidth int) io.WriteCloser"},
+		{"Order", Type, 0, ""},
+		{"Reader", Type, 17, ""},
+		{"Writer", Type, 17, ""},
 	},
 	"compress/zlib": {
-		{"(*Writer).Close", Method, 0},
-		{"(*Writer).Flush", Method, 0},
-		{"(*Writer).Reset", Method, 2},
-		{"(*Writer).Write", Method, 0},
-		{"BestCompression", Const, 0},
-		{"BestSpeed", Const, 0},
-		{"DefaultCompression", Const, 0},
-		{"ErrChecksum", Var, 0},
-		{"ErrDictionary", Var, 0},
-		{"ErrHeader", Var, 0},
-		{"HuffmanOnly", Const, 8},
-		{"NewReader", Func, 0},
-		{"NewReaderDict", Func, 0},
-		{"NewWriter", Func, 0},
-		{"NewWriterLevel", Func, 0},
-		{"NewWriterLevelDict", Func, 0},
-		{"NoCompression", Const, 0},
-		{"Resetter", Type, 4},
-		{"Writer", Type, 0},
+		{"(*Writer).Close", Method, 0, ""},
+		{"(*Writer).Flush", Method, 0, ""},
+		{"(*Writer).Reset", Method, 2, ""},
+		{"(*Writer).Write", Method, 0, ""},
+		{"BestCompression", Const, 0, ""},
+		{"BestSpeed", Const, 0, ""},
+		{"DefaultCompression", Const, 0, ""},
+		{"ErrChecksum", Var, 0, ""},
+		{"ErrDictionary", Var, 0, ""},
+		{"ErrHeader", Var, 0, ""},
+		{"HuffmanOnly", Const, 8, ""},
+		{"NewReader", Func, 0, "func(r io.Reader) (io.ReadCloser, error)"},
+		{"NewReaderDict", Func, 0, "func(r io.Reader, dict []byte) (io.ReadCloser, error)"},
+		{"NewWriter", Func, 0, "func(w io.Writer) *Writer"},
+		{"NewWriterLevel", Func, 0, "func(w io.Writer, level int) (*Writer, error)"},
+		{"NewWriterLevelDict", Func, 0, "func(w io.Writer, level int, dict []byte) (*Writer, error)"},
+		{"NoCompression", Const, 0, ""},
+		{"Resetter", Type, 4, ""},
+		{"Writer", Type, 0, ""},
 	},
 	"container/heap": {
-		{"Fix", Func, 2},
-		{"Init", Func, 0},
-		{"Interface", Type, 0},
-		{"Pop", Func, 0},
-		{"Push", Func, 0},
-		{"Remove", Func, 0},
+		{"Fix", Func, 2, "func(h Interface, i int)"},
+		{"Init", Func, 0, "func(h Interface)"},
+		{"Interface", Type, 0, ""},
+		{"Pop", Func, 0, "func(h Interface) any"},
+		{"Push", Func, 0, "func(h Interface, x any)"},
+		{"Remove", Func, 0, "func(h Interface, i int) any"},
 	},
 	"container/list": {
-		{"(*Element).Next", Method, 0},
-		{"(*Element).Prev", Method, 0},
-		{"(*List).Back", Method, 0},
-		{"(*List).Front", Method, 0},
-		{"(*List).Init", Method, 0},
-		{"(*List).InsertAfter", Method, 0},
-		{"(*List).InsertBefore", Method, 0},
-		{"(*List).Len", Method, 0},
-		{"(*List).MoveAfter", Method, 2},
-		{"(*List).MoveBefore", Method, 2},
-		{"(*List).MoveToBack", Method, 0},
-		{"(*List).MoveToFront", Method, 0},
-		{"(*List).PushBack", Method, 0},
-		{"(*List).PushBackList", Method, 0},
-		{"(*List).PushFront", Method, 0},
-		{"(*List).PushFrontList", Method, 0},
-		{"(*List).Remove", Method, 0},
-		{"Element", Type, 0},
-		{"Element.Value", Field, 0},
-		{"List", Type, 0},
-		{"New", Func, 0},
+		{"(*Element).Next", Method, 0, ""},
+		{"(*Element).Prev", Method, 0, ""},
+		{"(*List).Back", Method, 0, ""},
+		{"(*List).Front", Method, 0, ""},
+		{"(*List).Init", Method, 0, ""},
+		{"(*List).InsertAfter", Method, 0, ""},
+		{"(*List).InsertBefore", Method, 0, ""},
+		{"(*List).Len", Method, 0, ""},
+		{"(*List).MoveAfter", Method, 2, ""},
+		{"(*List).MoveBefore", Method, 2, ""},
+		{"(*List).MoveToBack", Method, 0, ""},
+		{"(*List).MoveToFront", Method, 0, ""},
+		{"(*List).PushBack", Method, 0, ""},
+		{"(*List).PushBackList", Method, 0, ""},
+		{"(*List).PushFront", Method, 0, ""},
+		{"(*List).PushFrontList", Method, 0, ""},
+		{"(*List).Remove", Method, 0, ""},
+		{"Element", Type, 0, ""},
+		{"Element.Value", Field, 0, ""},
+		{"List", Type, 0, ""},
+		{"New", Func, 0, "func() *List"},
 	},
 	"container/ring": {
-		{"(*Ring).Do", Method, 0},
-		{"(*Ring).Len", Method, 0},
-		{"(*Ring).Link", Method, 0},
-		{"(*Ring).Move", Method, 0},
-		{"(*Ring).Next", Method, 0},
-		{"(*Ring).Prev", Method, 0},
-		{"(*Ring).Unlink", Method, 0},
-		{"New", Func, 0},
-		{"Ring", Type, 0},
-		{"Ring.Value", Field, 0},
+		{"(*Ring).Do", Method, 0, ""},
+		{"(*Ring).Len", Method, 0, ""},
+		{"(*Ring).Link", Method, 0, ""},
+		{"(*Ring).Move", Method, 0, ""},
+		{"(*Ring).Next", Method, 0, ""},
+		{"(*Ring).Prev", Method, 0, ""},
+		{"(*Ring).Unlink", Method, 0, ""},
+		{"New", Func, 0, "func(n int) *Ring"},
+		{"Ring", Type, 0, ""},
+		{"Ring.Value", Field, 0, ""},
 	},
 	"context": {
-		{"AfterFunc", Func, 21},
-		{"Background", Func, 7},
-		{"CancelCauseFunc", Type, 20},
-		{"CancelFunc", Type, 7},
-		{"Canceled", Var, 7},
-		{"Cause", Func, 20},
-		{"Context", Type, 7},
-		{"DeadlineExceeded", Var, 7},
-		{"TODO", Func, 7},
-		{"WithCancel", Func, 7},
-		{"WithCancelCause", Func, 20},
-		{"WithDeadline", Func, 7},
-		{"WithDeadlineCause", Func, 21},
-		{"WithTimeout", Func, 7},
-		{"WithTimeoutCause", Func, 21},
-		{"WithValue", Func, 7},
-		{"WithoutCancel", Func, 21},
+		{"AfterFunc", Func, 21, "func(ctx Context, f func()) (stop func() bool)"},
+		{"Background", Func, 7, "func() Context"},
+		{"CancelCauseFunc", Type, 20, ""},
+		{"CancelFunc", Type, 7, ""},
+		{"Canceled", Var, 7, ""},
+		{"Cause", Func, 20, "func(c Context) error"},
+		{"Context", Type, 7, ""},
+		{"DeadlineExceeded", Var, 7, ""},
+		{"TODO", Func, 7, "func() Context"},
+		{"WithCancel", Func, 7, "func(parent Context) (ctx Context, cancel CancelFunc)"},
+		{"WithCancelCause", Func, 20, "func(parent Context) (ctx Context, cancel CancelCauseFunc)"},
+		{"WithDeadline", Func, 7, "func(parent Context, d time.Time) (Context, CancelFunc)"},
+		{"WithDeadlineCause", Func, 21, "func(parent Context, d time.Time, cause error) (Context, CancelFunc)"},
+		{"WithTimeout", Func, 7, "func(parent Context, timeout time.Duration) (Context, CancelFunc)"},
+		{"WithTimeoutCause", Func, 21, "func(parent Context, timeout time.Duration, cause error) (Context, CancelFunc)"},
+		{"WithValue", Func, 7, "func(parent Context, key any, val any) Context"},
+		{"WithoutCancel", Func, 21, "func(parent Context) Context"},
 	},
 	"crypto": {
-		{"(Hash).Available", Method, 0},
-		{"(Hash).HashFunc", Method, 4},
-		{"(Hash).New", Method, 0},
-		{"(Hash).Size", Method, 0},
-		{"(Hash).String", Method, 15},
-		{"BLAKE2b_256", Const, 9},
-		{"BLAKE2b_384", Const, 9},
-		{"BLAKE2b_512", Const, 9},
-		{"BLAKE2s_256", Const, 9},
-		{"Decrypter", Type, 5},
-		{"DecrypterOpts", Type, 5},
-		{"Hash", Type, 0},
-		{"MD4", Const, 0},
-		{"MD5", Const, 0},
-		{"MD5SHA1", Const, 0},
-		{"PrivateKey", Type, 0},
-		{"PublicKey", Type, 2},
-		{"RIPEMD160", Const, 0},
-		{"RegisterHash", Func, 0},
-		{"SHA1", Const, 0},
-		{"SHA224", Const, 0},
-		{"SHA256", Const, 0},
-		{"SHA384", Const, 0},
-		{"SHA3_224", Const, 4},
-		{"SHA3_256", Const, 4},
-		{"SHA3_384", Const, 4},
-		{"SHA3_512", Const, 4},
-		{"SHA512", Const, 0},
-		{"SHA512_224", Const, 5},
-		{"SHA512_256", Const, 5},
-		{"Signer", Type, 4},
-		{"SignerOpts", Type, 4},
+		{"(Hash).Available", Method, 0, ""},
+		{"(Hash).HashFunc", Method, 4, ""},
+		{"(Hash).New", Method, 0, ""},
+		{"(Hash).Size", Method, 0, ""},
+		{"(Hash).String", Method, 15, ""},
+		{"BLAKE2b_256", Const, 9, ""},
+		{"BLAKE2b_384", Const, 9, ""},
+		{"BLAKE2b_512", Const, 9, ""},
+		{"BLAKE2s_256", Const, 9, ""},
+		{"Decrypter", Type, 5, ""},
+		{"DecrypterOpts", Type, 5, ""},
+		{"Hash", Type, 0, ""},
+		{"MD4", Const, 0, ""},
+		{"MD5", Const, 0, ""},
+		{"MD5SHA1", Const, 0, ""},
+		{"MessageSigner", Type, 25, ""},
+		{"PrivateKey", Type, 0, ""},
+		{"PublicKey", Type, 2, ""},
+		{"RIPEMD160", Const, 0, ""},
+		{"RegisterHash", Func, 0, "func(h Hash, f func() hash.Hash)"},
+		{"SHA1", Const, 0, ""},
+		{"SHA224", Const, 0, ""},
+		{"SHA256", Const, 0, ""},
+		{"SHA384", Const, 0, ""},
+		{"SHA3_224", Const, 4, ""},
+		{"SHA3_256", Const, 4, ""},
+		{"SHA3_384", Const, 4, ""},
+		{"SHA3_512", Const, 4, ""},
+		{"SHA512", Const, 0, ""},
+		{"SHA512_224", Const, 5, ""},
+		{"SHA512_256", Const, 5, ""},
+		{"SignMessage", Func, 25, "func(signer Signer, rand io.Reader, msg []byte, opts SignerOpts) (signature []byte, err error)"},
+		{"Signer", Type, 4, ""},
+		{"SignerOpts", Type, 4, ""},
 	},
 	"crypto/aes": {
-		{"(KeySizeError).Error", Method, 0},
-		{"BlockSize", Const, 0},
-		{"KeySizeError", Type, 0},
-		{"NewCipher", Func, 0},
+		{"(KeySizeError).Error", Method, 0, ""},
+		{"BlockSize", Const, 0, ""},
+		{"KeySizeError", Type, 0, ""},
+		{"NewCipher", Func, 0, "func(key []byte) (cipher.Block, error)"},
 	},
 	"crypto/cipher": {
-		{"(StreamReader).Read", Method, 0},
-		{"(StreamWriter).Close", Method, 0},
-		{"(StreamWriter).Write", Method, 0},
-		{"AEAD", Type, 2},
-		{"Block", Type, 0},
-		{"BlockMode", Type, 0},
-		{"NewCBCDecrypter", Func, 0},
-		{"NewCBCEncrypter", Func, 0},
-		{"NewCFBDecrypter", Func, 0},
-		{"NewCFBEncrypter", Func, 0},
-		{"NewCTR", Func, 0},
-		{"NewGCM", Func, 2},
-		{"NewGCMWithNonceSize", Func, 5},
-		{"NewGCMWithRandomNonce", Func, 24},
-		{"NewGCMWithTagSize", Func, 11},
-		{"NewOFB", Func, 0},
-		{"Stream", Type, 0},
-		{"StreamReader", Type, 0},
-		{"StreamReader.R", Field, 0},
-		{"StreamReader.S", Field, 0},
-		{"StreamWriter", Type, 0},
-		{"StreamWriter.Err", Field, 0},
-		{"StreamWriter.S", Field, 0},
-		{"StreamWriter.W", Field, 0},
+		{"(StreamReader).Read", Method, 0, ""},
+		{"(StreamWriter).Close", Method, 0, ""},
+		{"(StreamWriter).Write", Method, 0, ""},
+		{"AEAD", Type, 2, ""},
+		{"Block", Type, 0, ""},
+		{"BlockMode", Type, 0, ""},
+		{"NewCBCDecrypter", Func, 0, "func(b Block, iv []byte) BlockMode"},
+		{"NewCBCEncrypter", Func, 0, "func(b Block, iv []byte) BlockMode"},
+		{"NewCFBDecrypter", Func, 0, "func(block Block, iv []byte) Stream"},
+		{"NewCFBEncrypter", Func, 0, "func(block Block, iv []byte) Stream"},
+		{"NewCTR", Func, 0, "func(block Block, iv []byte) Stream"},
+		{"NewGCM", Func, 2, "func(cipher Block) (AEAD, error)"},
+		{"NewGCMWithNonceSize", Func, 5, "func(cipher Block, size int) (AEAD, error)"},
+		{"NewGCMWithRandomNonce", Func, 24, "func(cipher Block) (AEAD, error)"},
+		{"NewGCMWithTagSize", Func, 11, "func(cipher Block, tagSize int) (AEAD, error)"},
+		{"NewOFB", Func, 0, "func(b Block, iv []byte) Stream"},
+		{"Stream", Type, 0, ""},
+		{"StreamReader", Type, 0, ""},
+		{"StreamReader.R", Field, 0, ""},
+		{"StreamReader.S", Field, 0, ""},
+		{"StreamWriter", Type, 0, ""},
+		{"StreamWriter.Err", Field, 0, ""},
+		{"StreamWriter.S", Field, 0, ""},
+		{"StreamWriter.W", Field, 0, ""},
 	},
 	"crypto/des": {
-		{"(KeySizeError).Error", Method, 0},
-		{"BlockSize", Const, 0},
-		{"KeySizeError", Type, 0},
-		{"NewCipher", Func, 0},
-		{"NewTripleDESCipher", Func, 0},
+		{"(KeySizeError).Error", Method, 0, ""},
+		{"BlockSize", Const, 0, ""},
+		{"KeySizeError", Type, 0, ""},
+		{"NewCipher", Func, 0, "func(key []byte) (cipher.Block, error)"},
+		{"NewTripleDESCipher", Func, 0, "func(key []byte) (cipher.Block, error)"},
 	},
 	"crypto/dsa": {
-		{"ErrInvalidPublicKey", Var, 0},
-		{"GenerateKey", Func, 0},
-		{"GenerateParameters", Func, 0},
-		{"L1024N160", Const, 0},
-		{"L2048N224", Const, 0},
-		{"L2048N256", Const, 0},
-		{"L3072N256", Const, 0},
-		{"ParameterSizes", Type, 0},
-		{"Parameters", Type, 0},
-		{"Parameters.G", Field, 0},
-		{"Parameters.P", Field, 0},
-		{"Parameters.Q", Field, 0},
-		{"PrivateKey", Type, 0},
-		{"PrivateKey.PublicKey", Field, 0},
-		{"PrivateKey.X", Field, 0},
-		{"PublicKey", Type, 0},
-		{"PublicKey.Parameters", Field, 0},
-		{"PublicKey.Y", Field, 0},
-		{"Sign", Func, 0},
-		{"Verify", Func, 0},
+		{"ErrInvalidPublicKey", Var, 0, ""},
+		{"GenerateKey", Func, 0, "func(priv *PrivateKey, rand io.Reader) error"},
+		{"GenerateParameters", Func, 0, "func(params *Parameters, rand io.Reader, sizes ParameterSizes) error"},
+		{"L1024N160", Const, 0, ""},
+		{"L2048N224", Const, 0, ""},
+		{"L2048N256", Const, 0, ""},
+		{"L3072N256", Const, 0, ""},
+		{"ParameterSizes", Type, 0, ""},
+		{"Parameters", Type, 0, ""},
+		{"Parameters.G", Field, 0, ""},
+		{"Parameters.P", Field, 0, ""},
+		{"Parameters.Q", Field, 0, ""},
+		{"PrivateKey", Type, 0, ""},
+		{"PrivateKey.PublicKey", Field, 0, ""},
+		{"PrivateKey.X", Field, 0, ""},
+		{"PublicKey", Type, 0, ""},
+		{"PublicKey.Parameters", Field, 0, ""},
+		{"PublicKey.Y", Field, 0, ""},
+		{"Sign", Func, 0, "func(rand io.Reader, priv *PrivateKey, hash []byte) (r *big.Int, s *big.Int, err error)"},
+		{"Verify", Func, 0, "func(pub *PublicKey, hash []byte, r *big.Int, s *big.Int) bool"},
 	},
 	"crypto/ecdh": {
-		{"(*PrivateKey).Bytes", Method, 20},
-		{"(*PrivateKey).Curve", Method, 20},
-		{"(*PrivateKey).ECDH", Method, 20},
-		{"(*PrivateKey).Equal", Method, 20},
-		{"(*PrivateKey).Public", Method, 20},
-		{"(*PrivateKey).PublicKey", Method, 20},
-		{"(*PublicKey).Bytes", Method, 20},
-		{"(*PublicKey).Curve", Method, 20},
-		{"(*PublicKey).Equal", Method, 20},
-		{"Curve", Type, 20},
-		{"P256", Func, 20},
-		{"P384", Func, 20},
-		{"P521", Func, 20},
-		{"PrivateKey", Type, 20},
-		{"PublicKey", Type, 20},
-		{"X25519", Func, 20},
+		{"(*PrivateKey).Bytes", Method, 20, ""},
+		{"(*PrivateKey).Curve", Method, 20, ""},
+		{"(*PrivateKey).ECDH", Method, 20, ""},
+		{"(*PrivateKey).Equal", Method, 20, ""},
+		{"(*PrivateKey).Public", Method, 20, ""},
+		{"(*PrivateKey).PublicKey", Method, 20, ""},
+		{"(*PublicKey).Bytes", Method, 20, ""},
+		{"(*PublicKey).Curve", Method, 20, ""},
+		{"(*PublicKey).Equal", Method, 20, ""},
+		{"Curve", Type, 20, ""},
+		{"P256", Func, 20, "func() Curve"},
+		{"P384", Func, 20, "func() Curve"},
+		{"P521", Func, 20, "func() Curve"},
+		{"PrivateKey", Type, 20, ""},
+		{"PublicKey", Type, 20, ""},
+		{"X25519", Func, 20, "func() Curve"},
 	},
 	"crypto/ecdsa": {
-		{"(*PrivateKey).ECDH", Method, 20},
-		{"(*PrivateKey).Equal", Method, 15},
-		{"(*PrivateKey).Public", Method, 4},
-		{"(*PrivateKey).Sign", Method, 4},
-		{"(*PublicKey).ECDH", Method, 20},
-		{"(*PublicKey).Equal", Method, 15},
-		{"(PrivateKey).Add", Method, 0},
-		{"(PrivateKey).Double", Method, 0},
-		{"(PrivateKey).IsOnCurve", Method, 0},
-		{"(PrivateKey).Params", Method, 0},
-		{"(PrivateKey).ScalarBaseMult", Method, 0},
-		{"(PrivateKey).ScalarMult", Method, 0},
-		{"(PublicKey).Add", Method, 0},
-		{"(PublicKey).Double", Method, 0},
-		{"(PublicKey).IsOnCurve", Method, 0},
-		{"(PublicKey).Params", Method, 0},
-		{"(PublicKey).ScalarBaseMult", Method, 0},
-		{"(PublicKey).ScalarMult", Method, 0},
-		{"GenerateKey", Func, 0},
-		{"PrivateKey", Type, 0},
-		{"PrivateKey.D", Field, 0},
-		{"PrivateKey.PublicKey", Field, 0},
-		{"PublicKey", Type, 0},
-		{"PublicKey.Curve", Field, 0},
-		{"PublicKey.X", Field, 0},
-		{"PublicKey.Y", Field, 0},
-		{"Sign", Func, 0},
-		{"SignASN1", Func, 15},
-		{"Verify", Func, 0},
-		{"VerifyASN1", Func, 15},
+		{"(*PrivateKey).Bytes", Method, 25, ""},
+		{"(*PrivateKey).ECDH", Method, 20, ""},
+		{"(*PrivateKey).Equal", Method, 15, ""},
+		{"(*PrivateKey).Public", Method, 4, ""},
+		{"(*PrivateKey).Sign", Method, 4, ""},
+		{"(*PublicKey).Bytes", Method, 25, ""},
+		{"(*PublicKey).ECDH", Method, 20, ""},
+		{"(*PublicKey).Equal", Method, 15, ""},
+		{"(PrivateKey).Add", Method, 0, ""},
+		{"(PrivateKey).Double", Method, 0, ""},
+		{"(PrivateKey).IsOnCurve", Method, 0, ""},
+		{"(PrivateKey).Params", Method, 0, ""},
+		{"(PrivateKey).ScalarBaseMult", Method, 0, ""},
+		{"(PrivateKey).ScalarMult", Method, 0, ""},
+		{"(PublicKey).Add", Method, 0, ""},
+		{"(PublicKey).Double", Method, 0, ""},
+		{"(PublicKey).IsOnCurve", Method, 0, ""},
+		{"(PublicKey).Params", Method, 0, ""},
+		{"(PublicKey).ScalarBaseMult", Method, 0, ""},
+		{"(PublicKey).ScalarMult", Method, 0, ""},
+		{"GenerateKey", Func, 0, "func(c elliptic.Curve, rand io.Reader) (*PrivateKey, error)"},
+		{"ParseRawPrivateKey", Func, 25, "func(curve elliptic.Curve, data []byte) (*PrivateKey, error)"},
+		{"ParseUncompressedPublicKey", Func, 25, "func(curve elliptic.Curve, data []byte) (*PublicKey, error)"},
+		{"PrivateKey", Type, 0, ""},
+		{"PrivateKey.D", Field, 0, ""},
+		{"PrivateKey.PublicKey", Field, 0, ""},
+		{"PublicKey", Type, 0, ""},
+		{"PublicKey.Curve", Field, 0, ""},
+		{"PublicKey.X", Field, 0, ""},
+		{"PublicKey.Y", Field, 0, ""},
+		{"Sign", Func, 0, "func(rand io.Reader, priv *PrivateKey, hash []byte) (r *big.Int, s *big.Int, err error)"},
+		{"SignASN1", Func, 15, "func(rand io.Reader, priv *PrivateKey, hash []byte) ([]byte, error)"},
+		{"Verify", Func, 0, "func(pub *PublicKey, hash []byte, r *big.Int, s *big.Int) bool"},
+		{"VerifyASN1", Func, 15, "func(pub *PublicKey, hash []byte, sig []byte) bool"},
 	},
 	"crypto/ed25519": {
-		{"(*Options).HashFunc", Method, 20},
-		{"(PrivateKey).Equal", Method, 15},
-		{"(PrivateKey).Public", Method, 13},
-		{"(PrivateKey).Seed", Method, 13},
-		{"(PrivateKey).Sign", Method, 13},
-		{"(PublicKey).Equal", Method, 15},
-		{"GenerateKey", Func, 13},
-		{"NewKeyFromSeed", Func, 13},
-		{"Options", Type, 20},
-		{"Options.Context", Field, 20},
-		{"Options.Hash", Field, 20},
-		{"PrivateKey", Type, 13},
-		{"PrivateKeySize", Const, 13},
-		{"PublicKey", Type, 13},
-		{"PublicKeySize", Const, 13},
-		{"SeedSize", Const, 13},
-		{"Sign", Func, 13},
-		{"SignatureSize", Const, 13},
-		{"Verify", Func, 13},
-		{"VerifyWithOptions", Func, 20},
+		{"(*Options).HashFunc", Method, 20, ""},
+		{"(PrivateKey).Equal", Method, 15, ""},
+		{"(PrivateKey).Public", Method, 13, ""},
+		{"(PrivateKey).Seed", Method, 13, ""},
+		{"(PrivateKey).Sign", Method, 13, ""},
+		{"(PublicKey).Equal", Method, 15, ""},
+		{"GenerateKey", Func, 13, "func(rand io.Reader) (PublicKey, PrivateKey, error)"},
+		{"NewKeyFromSeed", Func, 13, "func(seed []byte) PrivateKey"},
+		{"Options", Type, 20, ""},
+		{"Options.Context", Field, 20, ""},
+		{"Options.Hash", Field, 20, ""},
+		{"PrivateKey", Type, 13, ""},
+		{"PrivateKeySize", Const, 13, ""},
+		{"PublicKey", Type, 13, ""},
+		{"PublicKeySize", Const, 13, ""},
+		{"SeedSize", Const, 13, ""},
+		{"Sign", Func, 13, "func(privateKey PrivateKey, message []byte) []byte"},
+		{"SignatureSize", Const, 13, ""},
+		{"Verify", Func, 13, "func(publicKey PublicKey, message []byte, sig []byte) bool"},
+		{"VerifyWithOptions", Func, 20, "func(publicKey PublicKey, message []byte, sig []byte, opts *Options) error"},
 	},
 	"crypto/elliptic": {
-		{"(*CurveParams).Add", Method, 0},
-		{"(*CurveParams).Double", Method, 0},
-		{"(*CurveParams).IsOnCurve", Method, 0},
-		{"(*CurveParams).Params", Method, 0},
-		{"(*CurveParams).ScalarBaseMult", Method, 0},
-		{"(*CurveParams).ScalarMult", Method, 0},
-		{"Curve", Type, 0},
-		{"CurveParams", Type, 0},
-		{"CurveParams.B", Field, 0},
-		{"CurveParams.BitSize", Field, 0},
-		{"CurveParams.Gx", Field, 0},
-		{"CurveParams.Gy", Field, 0},
-		{"CurveParams.N", Field, 0},
-		{"CurveParams.Name", Field, 5},
-		{"CurveParams.P", Field, 0},
-		{"GenerateKey", Func, 0},
-		{"Marshal", Func, 0},
-		{"MarshalCompressed", Func, 15},
-		{"P224", Func, 0},
-		{"P256", Func, 0},
-		{"P384", Func, 0},
-		{"P521", Func, 0},
-		{"Unmarshal", Func, 0},
-		{"UnmarshalCompressed", Func, 15},
+		{"(*CurveParams).Add", Method, 0, ""},
+		{"(*CurveParams).Double", Method, 0, ""},
+		{"(*CurveParams).IsOnCurve", Method, 0, ""},
+		{"(*CurveParams).Params", Method, 0, ""},
+		{"(*CurveParams).ScalarBaseMult", Method, 0, ""},
+		{"(*CurveParams).ScalarMult", Method, 0, ""},
+		{"Curve", Type, 0, ""},
+		{"CurveParams", Type, 0, ""},
+		{"CurveParams.B", Field, 0, ""},
+		{"CurveParams.BitSize", Field, 0, ""},
+		{"CurveParams.Gx", Field, 0, ""},
+		{"CurveParams.Gy", Field, 0, ""},
+		{"CurveParams.N", Field, 0, ""},
+		{"CurveParams.Name", Field, 5, ""},
+		{"CurveParams.P", Field, 0, ""},
+		{"GenerateKey", Func, 0, "func(curve Curve, rand io.Reader) (priv []byte, x *big.Int, y *big.Int, err error)"},
+		{"Marshal", Func, 0, "func(curve Curve, x *big.Int, y *big.Int) []byte"},
+		{"MarshalCompressed", Func, 15, "func(curve Curve, x *big.Int, y *big.Int) []byte"},
+		{"P224", Func, 0, "func() Curve"},
+		{"P256", Func, 0, "func() Curve"},
+		{"P384", Func, 0, "func() Curve"},
+		{"P521", Func, 0, "func() Curve"},
+		{"Unmarshal", Func, 0, "func(curve Curve, data []byte) (x *big.Int, y *big.Int)"},
+		{"UnmarshalCompressed", Func, 15, "func(curve Curve, data []byte) (x *big.Int, y *big.Int)"},
 	},
 	"crypto/fips140": {
-		{"Enabled", Func, 24},
+		{"Enabled", Func, 24, "func() bool"},
 	},
 	"crypto/hkdf": {
-		{"Expand", Func, 24},
-		{"Extract", Func, 24},
-		{"Key", Func, 24},
+		{"Expand", Func, 24, "func[H hash.Hash](h func() H, pseudorandomKey []byte, info string, keyLength int) ([]byte, error)"},
+		{"Extract", Func, 24, "func[H hash.Hash](h func() H, secret []byte, salt []byte) ([]byte, error)"},
+		{"Key", Func, 24, "func[Hash hash.Hash](h func() Hash, secret []byte, salt []byte, info string, keyLength int) ([]byte, error)"},
 	},
 	"crypto/hmac": {
-		{"Equal", Func, 1},
-		{"New", Func, 0},
+		{"Equal", Func, 1, "func(mac1 []byte, mac2 []byte) bool"},
+		{"New", Func, 0, "func(h func() hash.Hash, key []byte) hash.Hash"},
 	},
 	"crypto/md5": {
-		{"BlockSize", Const, 0},
-		{"New", Func, 0},
-		{"Size", Const, 0},
-		{"Sum", Func, 2},
+		{"BlockSize", Const, 0, ""},
+		{"New", Func, 0, "func() hash.Hash"},
+		{"Size", Const, 0, ""},
+		{"Sum", Func, 2, "func(data []byte) [16]byte"},
 	},
 	"crypto/mlkem": {
-		{"(*DecapsulationKey1024).Bytes", Method, 24},
-		{"(*DecapsulationKey1024).Decapsulate", Method, 24},
-		{"(*DecapsulationKey1024).EncapsulationKey", Method, 24},
-		{"(*DecapsulationKey768).Bytes", Method, 24},
-		{"(*DecapsulationKey768).Decapsulate", Method, 24},
-		{"(*DecapsulationKey768).EncapsulationKey", Method, 24},
-		{"(*EncapsulationKey1024).Bytes", Method, 24},
-		{"(*EncapsulationKey1024).Encapsulate", Method, 24},
-		{"(*EncapsulationKey768).Bytes", Method, 24},
-		{"(*EncapsulationKey768).Encapsulate", Method, 24},
-		{"CiphertextSize1024", Const, 24},
-		{"CiphertextSize768", Const, 24},
-		{"DecapsulationKey1024", Type, 24},
-		{"DecapsulationKey768", Type, 24},
-		{"EncapsulationKey1024", Type, 24},
-		{"EncapsulationKey768", Type, 24},
-		{"EncapsulationKeySize1024", Const, 24},
-		{"EncapsulationKeySize768", Const, 24},
-		{"GenerateKey1024", Func, 24},
-		{"GenerateKey768", Func, 24},
-		{"NewDecapsulationKey1024", Func, 24},
-		{"NewDecapsulationKey768", Func, 24},
-		{"NewEncapsulationKey1024", Func, 24},
-		{"NewEncapsulationKey768", Func, 24},
-		{"SeedSize", Const, 24},
-		{"SharedKeySize", Const, 24},
+		{"(*DecapsulationKey1024).Bytes", Method, 24, ""},
+		{"(*DecapsulationKey1024).Decapsulate", Method, 24, ""},
+		{"(*DecapsulationKey1024).EncapsulationKey", Method, 24, ""},
+		{"(*DecapsulationKey768).Bytes", Method, 24, ""},
+		{"(*DecapsulationKey768).Decapsulate", Method, 24, ""},
+		{"(*DecapsulationKey768).EncapsulationKey", Method, 24, ""},
+		{"(*EncapsulationKey1024).Bytes", Method, 24, ""},
+		{"(*EncapsulationKey1024).Encapsulate", Method, 24, ""},
+		{"(*EncapsulationKey768).Bytes", Method, 24, ""},
+		{"(*EncapsulationKey768).Encapsulate", Method, 24, ""},
+		{"CiphertextSize1024", Const, 24, ""},
+		{"CiphertextSize768", Const, 24, ""},
+		{"DecapsulationKey1024", Type, 24, ""},
+		{"DecapsulationKey768", Type, 24, ""},
+		{"EncapsulationKey1024", Type, 24, ""},
+		{"EncapsulationKey768", Type, 24, ""},
+		{"EncapsulationKeySize1024", Const, 24, ""},
+		{"EncapsulationKeySize768", Const, 24, ""},
+		{"GenerateKey1024", Func, 24, "func() (*DecapsulationKey1024, error)"},
+		{"GenerateKey768", Func, 24, "func() (*DecapsulationKey768, error)"},
+		{"NewDecapsulationKey1024", Func, 24, "func(seed []byte) (*DecapsulationKey1024, error)"},
+		{"NewDecapsulationKey768", Func, 24, "func(seed []byte) (*DecapsulationKey768, error)"},
+		{"NewEncapsulationKey1024", Func, 24, "func(encapsulationKey []byte) (*EncapsulationKey1024, error)"},
+		{"NewEncapsulationKey768", Func, 24, "func(encapsulationKey []byte) (*EncapsulationKey768, error)"},
+		{"SeedSize", Const, 24, ""},
+		{"SharedKeySize", Const, 24, ""},
 	},
 	"crypto/pbkdf2": {
-		{"Key", Func, 24},
+		{"Key", Func, 24, "func[Hash hash.Hash](h func() Hash, password string, salt []byte, iter int, keyLength int) ([]byte, error)"},
 	},
 	"crypto/rand": {
-		{"Int", Func, 0},
-		{"Prime", Func, 0},
-		{"Read", Func, 0},
-		{"Reader", Var, 0},
-		{"Text", Func, 24},
+		{"Int", Func, 0, "func(rand io.Reader, max *big.Int) (n *big.Int, err error)"},
+		{"Prime", Func, 0, "func(rand io.Reader, bits int) (*big.Int, error)"},
+		{"Read", Func, 0, "func(b []byte) (n int, err error)"},
+		{"Reader", Var, 0, ""},
+		{"Text", Func, 24, "func() string"},
 	},
 	"crypto/rc4": {
-		{"(*Cipher).Reset", Method, 0},
-		{"(*Cipher).XORKeyStream", Method, 0},
-		{"(KeySizeError).Error", Method, 0},
-		{"Cipher", Type, 0},
-		{"KeySizeError", Type, 0},
-		{"NewCipher", Func, 0},
+		{"(*Cipher).Reset", Method, 0, ""},
+		{"(*Cipher).XORKeyStream", Method, 0, ""},
+		{"(KeySizeError).Error", Method, 0, ""},
+		{"Cipher", Type, 0, ""},
+		{"KeySizeError", Type, 0, ""},
+		{"NewCipher", Func, 0, "func(key []byte) (*Cipher, error)"},
 	},
 	"crypto/rsa": {
-		{"(*PSSOptions).HashFunc", Method, 4},
-		{"(*PrivateKey).Decrypt", Method, 5},
-		{"(*PrivateKey).Equal", Method, 15},
-		{"(*PrivateKey).Precompute", Method, 0},
-		{"(*PrivateKey).Public", Method, 4},
-		{"(*PrivateKey).Sign", Method, 4},
-		{"(*PrivateKey).Size", Method, 11},
-		{"(*PrivateKey).Validate", Method, 0},
-		{"(*PublicKey).Equal", Method, 15},
-		{"(*PublicKey).Size", Method, 11},
-		{"CRTValue", Type, 0},
-		{"CRTValue.Coeff", Field, 0},
-		{"CRTValue.Exp", Field, 0},
-		{"CRTValue.R", Field, 0},
-		{"DecryptOAEP", Func, 0},
-		{"DecryptPKCS1v15", Func, 0},
-		{"DecryptPKCS1v15SessionKey", Func, 0},
-		{"EncryptOAEP", Func, 0},
-		{"EncryptPKCS1v15", Func, 0},
-		{"ErrDecryption", Var, 0},
-		{"ErrMessageTooLong", Var, 0},
-		{"ErrVerification", Var, 0},
-		{"GenerateKey", Func, 0},
-		{"GenerateMultiPrimeKey", Func, 0},
-		{"OAEPOptions", Type, 5},
-		{"OAEPOptions.Hash", Field, 5},
-		{"OAEPOptions.Label", Field, 5},
-		{"OAEPOptions.MGFHash", Field, 20},
-		{"PKCS1v15DecryptOptions", Type, 5},
-		{"PKCS1v15DecryptOptions.SessionKeyLen", Field, 5},
-		{"PSSOptions", Type, 2},
-		{"PSSOptions.Hash", Field, 4},
-		{"PSSOptions.SaltLength", Field, 2},
-		{"PSSSaltLengthAuto", Const, 2},
-		{"PSSSaltLengthEqualsHash", Const, 2},
-		{"PrecomputedValues", Type, 0},
-		{"PrecomputedValues.CRTValues", Field, 0},
-		{"PrecomputedValues.Dp", Field, 0},
-		{"PrecomputedValues.Dq", Field, 0},
-		{"PrecomputedValues.Qinv", Field, 0},
-		{"PrivateKey", Type, 0},
-		{"PrivateKey.D", Field, 0},
-		{"PrivateKey.Precomputed", Field, 0},
-		{"PrivateKey.Primes", Field, 0},
-		{"PrivateKey.PublicKey", Field, 0},
-		{"PublicKey", Type, 0},
-		{"PublicKey.E", Field, 0},
-		{"PublicKey.N", Field, 0},
-		{"SignPKCS1v15", Func, 0},
-		{"SignPSS", Func, 2},
-		{"VerifyPKCS1v15", Func, 0},
-		{"VerifyPSS", Func, 2},
+		{"(*PSSOptions).HashFunc", Method, 4, ""},
+		{"(*PrivateKey).Decrypt", Method, 5, ""},
+		{"(*PrivateKey).Equal", Method, 15, ""},
+		{"(*PrivateKey).Precompute", Method, 0, ""},
+		{"(*PrivateKey).Public", Method, 4, ""},
+		{"(*PrivateKey).Sign", Method, 4, ""},
+		{"(*PrivateKey).Size", Method, 11, ""},
+		{"(*PrivateKey).Validate", Method, 0, ""},
+		{"(*PublicKey).Equal", Method, 15, ""},
+		{"(*PublicKey).Size", Method, 11, ""},
+		{"CRTValue", Type, 0, ""},
+		{"CRTValue.Coeff", Field, 0, ""},
+		{"CRTValue.Exp", Field, 0, ""},
+		{"CRTValue.R", Field, 0, ""},
+		{"DecryptOAEP", Func, 0, "func(hash hash.Hash, random io.Reader, priv *PrivateKey, ciphertext []byte, label []byte) ([]byte, error)"},
+		{"DecryptPKCS1v15", Func, 0, "func(random io.Reader, priv *PrivateKey, ciphertext []byte) ([]byte, error)"},
+		{"DecryptPKCS1v15SessionKey", Func, 0, "func(random io.Reader, priv *PrivateKey, ciphertext []byte, key []byte) error"},
+		{"EncryptOAEP", Func, 0, "func(hash hash.Hash, random io.Reader, pub *PublicKey, msg []byte, label []byte) ([]byte, error)"},
+		{"EncryptPKCS1v15", Func, 0, "func(random io.Reader, pub *PublicKey, msg []byte) ([]byte, error)"},
+		{"ErrDecryption", Var, 0, ""},
+		{"ErrMessageTooLong", Var, 0, ""},
+		{"ErrVerification", Var, 0, ""},
+		{"GenerateKey", Func, 0, "func(random io.Reader, bits int) (*PrivateKey, error)"},
+		{"GenerateMultiPrimeKey", Func, 0, "func(random io.Reader, nprimes int, bits int) (*PrivateKey, error)"},
+		{"OAEPOptions", Type, 5, ""},
+		{"OAEPOptions.Hash", Field, 5, ""},
+		{"OAEPOptions.Label", Field, 5, ""},
+		{"OAEPOptions.MGFHash", Field, 20, ""},
+		{"PKCS1v15DecryptOptions", Type, 5, ""},
+		{"PKCS1v15DecryptOptions.SessionKeyLen", Field, 5, ""},
+		{"PSSOptions", Type, 2, ""},
+		{"PSSOptions.Hash", Field, 4, ""},
+		{"PSSOptions.SaltLength", Field, 2, ""},
+		{"PSSSaltLengthAuto", Const, 2, ""},
+		{"PSSSaltLengthEqualsHash", Const, 2, ""},
+		{"PrecomputedValues", Type, 0, ""},
+		{"PrecomputedValues.CRTValues", Field, 0, ""},
+		{"PrecomputedValues.Dp", Field, 0, ""},
+		{"PrecomputedValues.Dq", Field, 0, ""},
+		{"PrecomputedValues.Qinv", Field, 0, ""},
+		{"PrivateKey", Type, 0, ""},
+		{"PrivateKey.D", Field, 0, ""},
+		{"PrivateKey.Precomputed", Field, 0, ""},
+		{"PrivateKey.Primes", Field, 0, ""},
+		{"PrivateKey.PublicKey", Field, 0, ""},
+		{"PublicKey", Type, 0, ""},
+		{"PublicKey.E", Field, 0, ""},
+		{"PublicKey.N", Field, 0, ""},
+		{"SignPKCS1v15", Func, 0, "func(random io.Reader, priv *PrivateKey, hash crypto.Hash, hashed []byte) ([]byte, error)"},
+		{"SignPSS", Func, 2, "func(rand io.Reader, priv *PrivateKey, hash crypto.Hash, digest []byte, opts *PSSOptions) ([]byte, error)"},
+		{"VerifyPKCS1v15", Func, 0, "func(pub *PublicKey, hash crypto.Hash, hashed []byte, sig []byte) error"},
+		{"VerifyPSS", Func, 2, "func(pub *PublicKey, hash crypto.Hash, digest []byte, sig []byte, opts *PSSOptions) error"},
 	},
 	"crypto/sha1": {
-		{"BlockSize", Const, 0},
-		{"New", Func, 0},
-		{"Size", Const, 0},
-		{"Sum", Func, 2},
+		{"BlockSize", Const, 0, ""},
+		{"New", Func, 0, "func() hash.Hash"},
+		{"Size", Const, 0, ""},
+		{"Sum", Func, 2, "func(data []byte) [20]byte"},
 	},
 	"crypto/sha256": {
-		{"BlockSize", Const, 0},
-		{"New", Func, 0},
-		{"New224", Func, 0},
-		{"Size", Const, 0},
-		{"Size224", Const, 0},
-		{"Sum224", Func, 2},
-		{"Sum256", Func, 2},
+		{"BlockSize", Const, 0, ""},
+		{"New", Func, 0, "func() hash.Hash"},
+		{"New224", Func, 0, "func() hash.Hash"},
+		{"Size", Const, 0, ""},
+		{"Size224", Const, 0, ""},
+		{"Sum224", Func, 2, "func(data []byte) [28]byte"},
+		{"Sum256", Func, 2, "func(data []byte) [32]byte"},
 	},
 	"crypto/sha3": {
-		{"(*SHA3).AppendBinary", Method, 24},
-		{"(*SHA3).BlockSize", Method, 24},
-		{"(*SHA3).MarshalBinary", Method, 24},
-		{"(*SHA3).Reset", Method, 24},
-		{"(*SHA3).Size", Method, 24},
-		{"(*SHA3).Sum", Method, 24},
-		{"(*SHA3).UnmarshalBinary", Method, 24},
-		{"(*SHA3).Write", Method, 24},
-		{"(*SHAKE).AppendBinary", Method, 24},
-		{"(*SHAKE).BlockSize", Method, 24},
-		{"(*SHAKE).MarshalBinary", Method, 24},
-		{"(*SHAKE).Read", Method, 24},
-		{"(*SHAKE).Reset", Method, 24},
-		{"(*SHAKE).UnmarshalBinary", Method, 24},
-		{"(*SHAKE).Write", Method, 24},
-		{"New224", Func, 24},
-		{"New256", Func, 24},
-		{"New384", Func, 24},
-		{"New512", Func, 24},
-		{"NewCSHAKE128", Func, 24},
-		{"NewCSHAKE256", Func, 24},
-		{"NewSHAKE128", Func, 24},
-		{"NewSHAKE256", Func, 24},
-		{"SHA3", Type, 24},
-		{"SHAKE", Type, 24},
-		{"Sum224", Func, 24},
-		{"Sum256", Func, 24},
-		{"Sum384", Func, 24},
-		{"Sum512", Func, 24},
-		{"SumSHAKE128", Func, 24},
-		{"SumSHAKE256", Func, 24},
+		{"(*SHA3).AppendBinary", Method, 24, ""},
+		{"(*SHA3).BlockSize", Method, 24, ""},
+		{"(*SHA3).Clone", Method, 25, ""},
+		{"(*SHA3).MarshalBinary", Method, 24, ""},
+		{"(*SHA3).Reset", Method, 24, ""},
+		{"(*SHA3).Size", Method, 24, ""},
+		{"(*SHA3).Sum", Method, 24, ""},
+		{"(*SHA3).UnmarshalBinary", Method, 24, ""},
+		{"(*SHA3).Write", Method, 24, ""},
+		{"(*SHAKE).AppendBinary", Method, 24, ""},
+		{"(*SHAKE).BlockSize", Method, 24, ""},
+		{"(*SHAKE).MarshalBinary", Method, 24, ""},
+		{"(*SHAKE).Read", Method, 24, ""},
+		{"(*SHAKE).Reset", Method, 24, ""},
+		{"(*SHAKE).UnmarshalBinary", Method, 24, ""},
+		{"(*SHAKE).Write", Method, 24, ""},
+		{"New224", Func, 24, "func() *SHA3"},
+		{"New256", Func, 24, "func() *SHA3"},
+		{"New384", Func, 24, "func() *SHA3"},
+		{"New512", Func, 24, "func() *SHA3"},
+		{"NewCSHAKE128", Func, 24, "func(N []byte, S []byte) *SHAKE"},
+		{"NewCSHAKE256", Func, 24, "func(N []byte, S []byte) *SHAKE"},
+		{"NewSHAKE128", Func, 24, "func() *SHAKE"},
+		{"NewSHAKE256", Func, 24, "func() *SHAKE"},
+		{"SHA3", Type, 24, ""},
+		{"SHAKE", Type, 24, ""},
+		{"Sum224", Func, 24, "func(data []byte) [28]byte"},
+		{"Sum256", Func, 24, "func(data []byte) [32]byte"},
+		{"Sum384", Func, 24, "func(data []byte) [48]byte"},
+		{"Sum512", Func, 24, "func(data []byte) [64]byte"},
+		{"SumSHAKE128", Func, 24, "func(data []byte, length int) []byte"},
+		{"SumSHAKE256", Func, 24, "func(data []byte, length int) []byte"},
 	},
 	"crypto/sha512": {
-		{"BlockSize", Const, 0},
-		{"New", Func, 0},
-		{"New384", Func, 0},
-		{"New512_224", Func, 5},
-		{"New512_256", Func, 5},
-		{"Size", Const, 0},
-		{"Size224", Const, 5},
-		{"Size256", Const, 5},
-		{"Size384", Const, 0},
-		{"Sum384", Func, 2},
-		{"Sum512", Func, 2},
-		{"Sum512_224", Func, 5},
-		{"Sum512_256", Func, 5},
+		{"BlockSize", Const, 0, ""},
+		{"New", Func, 0, "func() hash.Hash"},
+		{"New384", Func, 0, "func() hash.Hash"},
+		{"New512_224", Func, 5, "func() hash.Hash"},
+		{"New512_256", Func, 5, "func() hash.Hash"},
+		{"Size", Const, 0, ""},
+		{"Size224", Const, 5, ""},
+		{"Size256", Const, 5, ""},
+		{"Size384", Const, 0, ""},
+		{"Sum384", Func, 2, "func(data []byte) [48]byte"},
+		{"Sum512", Func, 2, "func(data []byte) [64]byte"},
+		{"Sum512_224", Func, 5, "func(data []byte) [28]byte"},
+		{"Sum512_256", Func, 5, "func(data []byte) [32]byte"},
 	},
 	"crypto/subtle": {
-		{"ConstantTimeByteEq", Func, 0},
-		{"ConstantTimeCompare", Func, 0},
-		{"ConstantTimeCopy", Func, 0},
-		{"ConstantTimeEq", Func, 0},
-		{"ConstantTimeLessOrEq", Func, 2},
-		{"ConstantTimeSelect", Func, 0},
-		{"WithDataIndependentTiming", Func, 24},
-		{"XORBytes", Func, 20},
+		{"ConstantTimeByteEq", Func, 0, "func(x uint8, y uint8) int"},
+		{"ConstantTimeCompare", Func, 0, "func(x []byte, y []byte) int"},
+		{"ConstantTimeCopy", Func, 0, "func(v int, x []byte, y []byte)"},
+		{"ConstantTimeEq", Func, 0, "func(x int32, y int32) int"},
+		{"ConstantTimeLessOrEq", Func, 2, "func(x int, y int) int"},
+		{"ConstantTimeSelect", Func, 0, "func(v int, x int, y int) int"},
+		{"WithDataIndependentTiming", Func, 24, "func(f func())"},
+		{"XORBytes", Func, 20, "func(dst []byte, x []byte, y []byte) int"},
 	},
 	"crypto/tls": {
-		{"(*CertificateRequestInfo).Context", Method, 17},
-		{"(*CertificateRequestInfo).SupportsCertificate", Method, 14},
-		{"(*CertificateVerificationError).Error", Method, 20},
-		{"(*CertificateVerificationError).Unwrap", Method, 20},
-		{"(*ClientHelloInfo).Context", Method, 17},
-		{"(*ClientHelloInfo).SupportsCertificate", Method, 14},
-		{"(*ClientSessionState).ResumptionState", Method, 21},
-		{"(*Config).BuildNameToCertificate", Method, 0},
-		{"(*Config).Clone", Method, 8},
-		{"(*Config).DecryptTicket", Method, 21},
-		{"(*Config).EncryptTicket", Method, 21},
-		{"(*Config).SetSessionTicketKeys", Method, 5},
-		{"(*Conn).Close", Method, 0},
-		{"(*Conn).CloseWrite", Method, 8},
-		{"(*Conn).ConnectionState", Method, 0},
-		{"(*Conn).Handshake", Method, 0},
-		{"(*Conn).HandshakeContext", Method, 17},
-		{"(*Conn).LocalAddr", Method, 0},
-		{"(*Conn).NetConn", Method, 18},
-		{"(*Conn).OCSPResponse", Method, 0},
-		{"(*Conn).Read", Method, 0},
-		{"(*Conn).RemoteAddr", Method, 0},
-		{"(*Conn).SetDeadline", Method, 0},
-		{"(*Conn).SetReadDeadline", Method, 0},
-		{"(*Conn).SetWriteDeadline", Method, 0},
-		{"(*Conn).VerifyHostname", Method, 0},
-		{"(*Conn).Write", Method, 0},
-		{"(*ConnectionState).ExportKeyingMaterial", Method, 11},
-		{"(*Dialer).Dial", Method, 15},
-		{"(*Dialer).DialContext", Method, 15},
-		{"(*ECHRejectionError).Error", Method, 23},
-		{"(*QUICConn).Close", Method, 21},
-		{"(*QUICConn).ConnectionState", Method, 21},
-		{"(*QUICConn).HandleData", Method, 21},
-		{"(*QUICConn).NextEvent", Method, 21},
-		{"(*QUICConn).SendSessionTicket", Method, 21},
-		{"(*QUICConn).SetTransportParameters", Method, 21},
-		{"(*QUICConn).Start", Method, 21},
-		{"(*QUICConn).StoreSession", Method, 23},
-		{"(*SessionState).Bytes", Method, 21},
-		{"(AlertError).Error", Method, 21},
-		{"(ClientAuthType).String", Method, 15},
-		{"(CurveID).String", Method, 15},
-		{"(QUICEncryptionLevel).String", Method, 21},
-		{"(RecordHeaderError).Error", Method, 6},
-		{"(SignatureScheme).String", Method, 15},
-		{"AlertError", Type, 21},
-		{"Certificate", Type, 0},
-		{"Certificate.Certificate", Field, 0},
-		{"Certificate.Leaf", Field, 0},
-		{"Certificate.OCSPStaple", Field, 0},
-		{"Certificate.PrivateKey", Field, 0},
-		{"Certificate.SignedCertificateTimestamps", Field, 5},
-		{"Certificate.SupportedSignatureAlgorithms", Field, 14},
-		{"CertificateRequestInfo", Type, 8},
-		{"CertificateRequestInfo.AcceptableCAs", Field, 8},
-		{"CertificateRequestInfo.SignatureSchemes", Field, 8},
-		{"CertificateRequestInfo.Version", Field, 14},
-		{"CertificateVerificationError", Type, 20},
-		{"CertificateVerificationError.Err", Field, 20},
-		{"CertificateVerificationError.UnverifiedCertificates", Field, 20},
-		{"CipherSuite", Type, 14},
-		{"CipherSuite.ID", Field, 14},
-		{"CipherSuite.Insecure", Field, 14},
-		{"CipherSuite.Name", Field, 14},
-		{"CipherSuite.SupportedVersions", Field, 14},
-		{"CipherSuiteName", Func, 14},
-		{"CipherSuites", Func, 14},
-		{"Client", Func, 0},
-		{"ClientAuthType", Type, 0},
-		{"ClientHelloInfo", Type, 4},
-		{"ClientHelloInfo.CipherSuites", Field, 4},
-		{"ClientHelloInfo.Conn", Field, 8},
-		{"ClientHelloInfo.Extensions", Field, 24},
-		{"ClientHelloInfo.ServerName", Field, 4},
-		{"ClientHelloInfo.SignatureSchemes", Field, 8},
-		{"ClientHelloInfo.SupportedCurves", Field, 4},
-		{"ClientHelloInfo.SupportedPoints", Field, 4},
-		{"ClientHelloInfo.SupportedProtos", Field, 8},
-		{"ClientHelloInfo.SupportedVersions", Field, 8},
-		{"ClientSessionCache", Type, 3},
-		{"ClientSessionState", Type, 3},
-		{"Config", Type, 0},
-		{"Config.Certificates", Field, 0},
-		{"Config.CipherSuites", Field, 0},
-		{"Config.ClientAuth", Field, 0},
-		{"Config.ClientCAs", Field, 0},
-		{"Config.ClientSessionCache", Field, 3},
-		{"Config.CurvePreferences", Field, 3},
-		{"Config.DynamicRecordSizingDisabled", Field, 7},
-		{"Config.EncryptedClientHelloConfigList", Field, 23},
-		{"Config.EncryptedClientHelloKeys", Field, 24},
-		{"Config.EncryptedClientHelloRejectionVerify", Field, 23},
-		{"Config.GetCertificate", Field, 4},
-		{"Config.GetClientCertificate", Field, 8},
-		{"Config.GetConfigForClient", Field, 8},
-		{"Config.InsecureSkipVerify", Field, 0},
-		{"Config.KeyLogWriter", Field, 8},
-		{"Config.MaxVersion", Field, 2},
-		{"Config.MinVersion", Field, 2},
-		{"Config.NameToCertificate", Field, 0},
-		{"Config.NextProtos", Field, 0},
-		{"Config.PreferServerCipherSuites", Field, 1},
-		{"Config.Rand", Field, 0},
-		{"Config.Renegotiation", Field, 7},
-		{"Config.RootCAs", Field, 0},
-		{"Config.ServerName", Field, 0},
-		{"Config.SessionTicketKey", Field, 1},
-		{"Config.SessionTicketsDisabled", Field, 1},
-		{"Config.Time", Field, 0},
-		{"Config.UnwrapSession", Field, 21},
-		{"Config.VerifyConnection", Field, 15},
-		{"Config.VerifyPeerCertificate", Field, 8},
-		{"Config.WrapSession", Field, 21},
-		{"Conn", Type, 0},
-		{"ConnectionState", Type, 0},
-		{"ConnectionState.CipherSuite", Field, 0},
-		{"ConnectionState.DidResume", Field, 1},
-		{"ConnectionState.ECHAccepted", Field, 23},
-		{"ConnectionState.HandshakeComplete", Field, 0},
-		{"ConnectionState.NegotiatedProtocol", Field, 0},
-		{"ConnectionState.NegotiatedProtocolIsMutual", Field, 0},
-		{"ConnectionState.OCSPResponse", Field, 5},
-		{"ConnectionState.PeerCertificates", Field, 0},
-		{"ConnectionState.ServerName", Field, 0},
-		{"ConnectionState.SignedCertificateTimestamps", Field, 5},
-		{"ConnectionState.TLSUnique", Field, 4},
-		{"ConnectionState.VerifiedChains", Field, 0},
-		{"ConnectionState.Version", Field, 3},
-		{"CurveID", Type, 3},
-		{"CurveP256", Const, 3},
-		{"CurveP384", Const, 3},
-		{"CurveP521", Const, 3},
-		{"Dial", Func, 0},
-		{"DialWithDialer", Func, 3},
-		{"Dialer", Type, 15},
-		{"Dialer.Config", Field, 15},
-		{"Dialer.NetDialer", Field, 15},
-		{"ECDSAWithP256AndSHA256", Const, 8},
-		{"ECDSAWithP384AndSHA384", Const, 8},
-		{"ECDSAWithP521AndSHA512", Const, 8},
-		{"ECDSAWithSHA1", Const, 10},
-		{"ECHRejectionError", Type, 23},
-		{"ECHRejectionError.RetryConfigList", Field, 23},
-		{"Ed25519", Const, 13},
-		{"EncryptedClientHelloKey", Type, 24},
-		{"EncryptedClientHelloKey.Config", Field, 24},
-		{"EncryptedClientHelloKey.PrivateKey", Field, 24},
-		{"EncryptedClientHelloKey.SendAsRetry", Field, 24},
-		{"InsecureCipherSuites", Func, 14},
-		{"Listen", Func, 0},
-		{"LoadX509KeyPair", Func, 0},
-		{"NewLRUClientSessionCache", Func, 3},
-		{"NewListener", Func, 0},
-		{"NewResumptionState", Func, 21},
-		{"NoClientCert", Const, 0},
-		{"PKCS1WithSHA1", Const, 8},
-		{"PKCS1WithSHA256", Const, 8},
-		{"PKCS1WithSHA384", Const, 8},
-		{"PKCS1WithSHA512", Const, 8},
-		{"PSSWithSHA256", Const, 8},
-		{"PSSWithSHA384", Const, 8},
-		{"PSSWithSHA512", Const, 8},
-		{"ParseSessionState", Func, 21},
-		{"QUICClient", Func, 21},
-		{"QUICConfig", Type, 21},
-		{"QUICConfig.EnableSessionEvents", Field, 23},
-		{"QUICConfig.TLSConfig", Field, 21},
-		{"QUICConn", Type, 21},
-		{"QUICEncryptionLevel", Type, 21},
-		{"QUICEncryptionLevelApplication", Const, 21},
-		{"QUICEncryptionLevelEarly", Const, 21},
-		{"QUICEncryptionLevelHandshake", Const, 21},
-		{"QUICEncryptionLevelInitial", Const, 21},
-		{"QUICEvent", Type, 21},
-		{"QUICEvent.Data", Field, 21},
-		{"QUICEvent.Kind", Field, 21},
-		{"QUICEvent.Level", Field, 21},
-		{"QUICEvent.SessionState", Field, 23},
-		{"QUICEvent.Suite", Field, 21},
-		{"QUICEventKind", Type, 21},
-		{"QUICHandshakeDone", Const, 21},
-		{"QUICNoEvent", Const, 21},
-		{"QUICRejectedEarlyData", Const, 21},
-		{"QUICResumeSession", Const, 23},
-		{"QUICServer", Func, 21},
-		{"QUICSessionTicketOptions", Type, 21},
-		{"QUICSessionTicketOptions.EarlyData", Field, 21},
-		{"QUICSessionTicketOptions.Extra", Field, 23},
-		{"QUICSetReadSecret", Const, 21},
-		{"QUICSetWriteSecret", Const, 21},
-		{"QUICStoreSession", Const, 23},
-		{"QUICTransportParameters", Const, 21},
-		{"QUICTransportParametersRequired", Const, 21},
-		{"QUICWriteData", Const, 21},
-		{"RecordHeaderError", Type, 6},
-		{"RecordHeaderError.Conn", Field, 12},
-		{"RecordHeaderError.Msg", Field, 6},
-		{"RecordHeaderError.RecordHeader", Field, 6},
-		{"RenegotiateFreelyAsClient", Const, 7},
-		{"RenegotiateNever", Const, 7},
-		{"RenegotiateOnceAsClient", Const, 7},
-		{"RenegotiationSupport", Type, 7},
-		{"RequestClientCert", Const, 0},
-		{"RequireAndVerifyClientCert", Const, 0},
-		{"RequireAnyClientCert", Const, 0},
-		{"Server", Func, 0},
-		{"SessionState", Type, 21},
-		{"SessionState.EarlyData", Field, 21},
-		{"SessionState.Extra", Field, 21},
-		{"SignatureScheme", Type, 8},
-		{"TLS_AES_128_GCM_SHA256", Const, 12},
-		{"TLS_AES_256_GCM_SHA384", Const, 12},
-		{"TLS_CHACHA20_POLY1305_SHA256", Const, 12},
-		{"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", Const, 2},
-		{"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", Const, 8},
-		{"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", Const, 2},
-		{"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", Const, 2},
-		{"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", Const, 5},
-		{"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", Const, 8},
-		{"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", Const, 14},
-		{"TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", Const, 2},
-		{"TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", Const, 0},
-		{"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", Const, 0},
-		{"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", Const, 8},
-		{"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", Const, 2},
-		{"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", Const, 1},
-		{"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", Const, 5},
-		{"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", Const, 8},
-		{"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", Const, 14},
-		{"TLS_ECDHE_RSA_WITH_RC4_128_SHA", Const, 0},
-		{"TLS_FALLBACK_SCSV", Const, 4},
-		{"TLS_RSA_WITH_3DES_EDE_CBC_SHA", Const, 0},
-		{"TLS_RSA_WITH_AES_128_CBC_SHA", Const, 0},
-		{"TLS_RSA_WITH_AES_128_CBC_SHA256", Const, 8},
-		{"TLS_RSA_WITH_AES_128_GCM_SHA256", Const, 6},
-		{"TLS_RSA_WITH_AES_256_CBC_SHA", Const, 1},
-		{"TLS_RSA_WITH_AES_256_GCM_SHA384", Const, 6},
-		{"TLS_RSA_WITH_RC4_128_SHA", Const, 0},
-		{"VerifyClientCertIfGiven", Const, 0},
-		{"VersionName", Func, 21},
-		{"VersionSSL30", Const, 2},
-		{"VersionTLS10", Const, 2},
-		{"VersionTLS11", Const, 2},
-		{"VersionTLS12", Const, 2},
-		{"VersionTLS13", Const, 12},
-		{"X25519", Const, 8},
-		{"X25519MLKEM768", Const, 24},
-		{"X509KeyPair", Func, 0},
+		{"(*CertificateRequestInfo).Context", Method, 17, ""},
+		{"(*CertificateRequestInfo).SupportsCertificate", Method, 14, ""},
+		{"(*CertificateVerificationError).Error", Method, 20, ""},
+		{"(*CertificateVerificationError).Unwrap", Method, 20, ""},
+		{"(*ClientHelloInfo).Context", Method, 17, ""},
+		{"(*ClientHelloInfo).SupportsCertificate", Method, 14, ""},
+		{"(*ClientSessionState).ResumptionState", Method, 21, ""},
+		{"(*Config).BuildNameToCertificate", Method, 0, ""},
+		{"(*Config).Clone", Method, 8, ""},
+		{"(*Config).DecryptTicket", Method, 21, ""},
+		{"(*Config).EncryptTicket", Method, 21, ""},
+		{"(*Config).SetSessionTicketKeys", Method, 5, ""},
+		{"(*Conn).Close", Method, 0, ""},
+		{"(*Conn).CloseWrite", Method, 8, ""},
+		{"(*Conn).ConnectionState", Method, 0, ""},
+		{"(*Conn).Handshake", Method, 0, ""},
+		{"(*Conn).HandshakeContext", Method, 17, ""},
+		{"(*Conn).LocalAddr", Method, 0, ""},
+		{"(*Conn).NetConn", Method, 18, ""},
+		{"(*Conn).OCSPResponse", Method, 0, ""},
+		{"(*Conn).Read", Method, 0, ""},
+		{"(*Conn).RemoteAddr", Method, 0, ""},
+		{"(*Conn).SetDeadline", Method, 0, ""},
+		{"(*Conn).SetReadDeadline", Method, 0, ""},
+		{"(*Conn).SetWriteDeadline", Method, 0, ""},
+		{"(*Conn).VerifyHostname", Method, 0, ""},
+		{"(*Conn).Write", Method, 0, ""},
+		{"(*ConnectionState).ExportKeyingMaterial", Method, 11, ""},
+		{"(*Dialer).Dial", Method, 15, ""},
+		{"(*Dialer).DialContext", Method, 15, ""},
+		{"(*ECHRejectionError).Error", Method, 23, ""},
+		{"(*QUICConn).Close", Method, 21, ""},
+		{"(*QUICConn).ConnectionState", Method, 21, ""},
+		{"(*QUICConn).HandleData", Method, 21, ""},
+		{"(*QUICConn).NextEvent", Method, 21, ""},
+		{"(*QUICConn).SendSessionTicket", Method, 21, ""},
+		{"(*QUICConn).SetTransportParameters", Method, 21, ""},
+		{"(*QUICConn).Start", Method, 21, ""},
+		{"(*QUICConn).StoreSession", Method, 23, ""},
+		{"(*SessionState).Bytes", Method, 21, ""},
+		{"(AlertError).Error", Method, 21, ""},
+		{"(ClientAuthType).String", Method, 15, ""},
+		{"(CurveID).String", Method, 15, ""},
+		{"(QUICEncryptionLevel).String", Method, 21, ""},
+		{"(RecordHeaderError).Error", Method, 6, ""},
+		{"(SignatureScheme).String", Method, 15, ""},
+		{"AlertError", Type, 21, ""},
+		{"Certificate", Type, 0, ""},
+		{"Certificate.Certificate", Field, 0, ""},
+		{"Certificate.Leaf", Field, 0, ""},
+		{"Certificate.OCSPStaple", Field, 0, ""},
+		{"Certificate.PrivateKey", Field, 0, ""},
+		{"Certificate.SignedCertificateTimestamps", Field, 5, ""},
+		{"Certificate.SupportedSignatureAlgorithms", Field, 14, ""},
+		{"CertificateRequestInfo", Type, 8, ""},
+		{"CertificateRequestInfo.AcceptableCAs", Field, 8, ""},
+		{"CertificateRequestInfo.SignatureSchemes", Field, 8, ""},
+		{"CertificateRequestInfo.Version", Field, 14, ""},
+		{"CertificateVerificationError", Type, 20, ""},
+		{"CertificateVerificationError.Err", Field, 20, ""},
+		{"CertificateVerificationError.UnverifiedCertificates", Field, 20, ""},
+		{"CipherSuite", Type, 14, ""},
+		{"CipherSuite.ID", Field, 14, ""},
+		{"CipherSuite.Insecure", Field, 14, ""},
+		{"CipherSuite.Name", Field, 14, ""},
+		{"CipherSuite.SupportedVersions", Field, 14, ""},
+		{"CipherSuiteName", Func, 14, "func(id uint16) string"},
+		{"CipherSuites", Func, 14, "func() []*CipherSuite"},
+		{"Client", Func, 0, "func(conn net.Conn, config *Config) *Conn"},
+		{"ClientAuthType", Type, 0, ""},
+		{"ClientHelloInfo", Type, 4, ""},
+		{"ClientHelloInfo.CipherSuites", Field, 4, ""},
+		{"ClientHelloInfo.Conn", Field, 8, ""},
+		{"ClientHelloInfo.Extensions", Field, 24, ""},
+		{"ClientHelloInfo.ServerName", Field, 4, ""},
+		{"ClientHelloInfo.SignatureSchemes", Field, 8, ""},
+		{"ClientHelloInfo.SupportedCurves", Field, 4, ""},
+		{"ClientHelloInfo.SupportedPoints", Field, 4, ""},
+		{"ClientHelloInfo.SupportedProtos", Field, 8, ""},
+		{"ClientHelloInfo.SupportedVersions", Field, 8, ""},
+		{"ClientSessionCache", Type, 3, ""},
+		{"ClientSessionState", Type, 3, ""},
+		{"Config", Type, 0, ""},
+		{"Config.Certificates", Field, 0, ""},
+		{"Config.CipherSuites", Field, 0, ""},
+		{"Config.ClientAuth", Field, 0, ""},
+		{"Config.ClientCAs", Field, 0, ""},
+		{"Config.ClientSessionCache", Field, 3, ""},
+		{"Config.CurvePreferences", Field, 3, ""},
+		{"Config.DynamicRecordSizingDisabled", Field, 7, ""},
+		{"Config.EncryptedClientHelloConfigList", Field, 23, ""},
+		{"Config.EncryptedClientHelloKeys", Field, 24, ""},
+		{"Config.EncryptedClientHelloRejectionVerify", Field, 23, ""},
+		{"Config.GetCertificate", Field, 4, ""},
+		{"Config.GetClientCertificate", Field, 8, ""},
+		{"Config.GetConfigForClient", Field, 8, ""},
+		{"Config.GetEncryptedClientHelloKeys", Field, 25, ""},
+		{"Config.InsecureSkipVerify", Field, 0, ""},
+		{"Config.KeyLogWriter", Field, 8, ""},
+		{"Config.MaxVersion", Field, 2, ""},
+		{"Config.MinVersion", Field, 2, ""},
+		{"Config.NameToCertificate", Field, 0, ""},
+		{"Config.NextProtos", Field, 0, ""},
+		{"Config.PreferServerCipherSuites", Field, 1, ""},
+		{"Config.Rand", Field, 0, ""},
+		{"Config.Renegotiation", Field, 7, ""},
+		{"Config.RootCAs", Field, 0, ""},
+		{"Config.ServerName", Field, 0, ""},
+		{"Config.SessionTicketKey", Field, 1, ""},
+		{"Config.SessionTicketsDisabled", Field, 1, ""},
+		{"Config.Time", Field, 0, ""},
+		{"Config.UnwrapSession", Field, 21, ""},
+		{"Config.VerifyConnection", Field, 15, ""},
+		{"Config.VerifyPeerCertificate", Field, 8, ""},
+		{"Config.WrapSession", Field, 21, ""},
+		{"Conn", Type, 0, ""},
+		{"ConnectionState", Type, 0, ""},
+		{"ConnectionState.CipherSuite", Field, 0, ""},
+		{"ConnectionState.CurveID", Field, 25, ""},
+		{"ConnectionState.DidResume", Field, 1, ""},
+		{"ConnectionState.ECHAccepted", Field, 23, ""},
+		{"ConnectionState.HandshakeComplete", Field, 0, ""},
+		{"ConnectionState.NegotiatedProtocol", Field, 0, ""},
+		{"ConnectionState.NegotiatedProtocolIsMutual", Field, 0, ""},
+		{"ConnectionState.OCSPResponse", Field, 5, ""},
+		{"ConnectionState.PeerCertificates", Field, 0, ""},
+		{"ConnectionState.ServerName", Field, 0, ""},
+		{"ConnectionState.SignedCertificateTimestamps", Field, 5, ""},
+		{"ConnectionState.TLSUnique", Field, 4, ""},
+		{"ConnectionState.VerifiedChains", Field, 0, ""},
+		{"ConnectionState.Version", Field, 3, ""},
+		{"CurveID", Type, 3, ""},
+		{"CurveP256", Const, 3, ""},
+		{"CurveP384", Const, 3, ""},
+		{"CurveP521", Const, 3, ""},
+		{"Dial", Func, 0, "func(network string, addr string, config *Config) (*Conn, error)"},
+		{"DialWithDialer", Func, 3, "func(dialer *net.Dialer, network string, addr string, config *Config) (*Conn, error)"},
+		{"Dialer", Type, 15, ""},
+		{"Dialer.Config", Field, 15, ""},
+		{"Dialer.NetDialer", Field, 15, ""},
+		{"ECDSAWithP256AndSHA256", Const, 8, ""},
+		{"ECDSAWithP384AndSHA384", Const, 8, ""},
+		{"ECDSAWithP521AndSHA512", Const, 8, ""},
+		{"ECDSAWithSHA1", Const, 10, ""},
+		{"ECHRejectionError", Type, 23, ""},
+		{"ECHRejectionError.RetryConfigList", Field, 23, ""},
+		{"Ed25519", Const, 13, ""},
+		{"EncryptedClientHelloKey", Type, 24, ""},
+		{"EncryptedClientHelloKey.Config", Field, 24, ""},
+		{"EncryptedClientHelloKey.PrivateKey", Field, 24, ""},
+		{"EncryptedClientHelloKey.SendAsRetry", Field, 24, ""},
+		{"InsecureCipherSuites", Func, 14, "func() []*CipherSuite"},
+		{"Listen", Func, 0, "func(network string, laddr string, config *Config) (net.Listener, error)"},
+		{"LoadX509KeyPair", Func, 0, "func(certFile string, keyFile string) (Certificate, error)"},
+		{"NewLRUClientSessionCache", Func, 3, "func(capacity int) ClientSessionCache"},
+		{"NewListener", Func, 0, "func(inner net.Listener, config *Config) net.Listener"},
+		{"NewResumptionState", Func, 21, "func(ticket []byte, state *SessionState) (*ClientSessionState, error)"},
+		{"NoClientCert", Const, 0, ""},
+		{"PKCS1WithSHA1", Const, 8, ""},
+		{"PKCS1WithSHA256", Const, 8, ""},
+		{"PKCS1WithSHA384", Const, 8, ""},
+		{"PKCS1WithSHA512", Const, 8, ""},
+		{"PSSWithSHA256", Const, 8, ""},
+		{"PSSWithSHA384", Const, 8, ""},
+		{"PSSWithSHA512", Const, 8, ""},
+		{"ParseSessionState", Func, 21, "func(data []byte) (*SessionState, error)"},
+		{"QUICClient", Func, 21, "func(config *QUICConfig) *QUICConn"},
+		{"QUICConfig", Type, 21, ""},
+		{"QUICConfig.EnableSessionEvents", Field, 23, ""},
+		{"QUICConfig.TLSConfig", Field, 21, ""},
+		{"QUICConn", Type, 21, ""},
+		{"QUICEncryptionLevel", Type, 21, ""},
+		{"QUICEncryptionLevelApplication", Const, 21, ""},
+		{"QUICEncryptionLevelEarly", Const, 21, ""},
+		{"QUICEncryptionLevelHandshake", Const, 21, ""},
+		{"QUICEncryptionLevelInitial", Const, 21, ""},
+		{"QUICEvent", Type, 21, ""},
+		{"QUICEvent.Data", Field, 21, ""},
+		{"QUICEvent.Kind", Field, 21, ""},
+		{"QUICEvent.Level", Field, 21, ""},
+		{"QUICEvent.SessionState", Field, 23, ""},
+		{"QUICEvent.Suite", Field, 21, ""},
+		{"QUICEventKind", Type, 21, ""},
+		{"QUICHandshakeDone", Const, 21, ""},
+		{"QUICNoEvent", Const, 21, ""},
+		{"QUICRejectedEarlyData", Const, 21, ""},
+		{"QUICResumeSession", Const, 23, ""},
+		{"QUICServer", Func, 21, "func(config *QUICConfig) *QUICConn"},
+		{"QUICSessionTicketOptions", Type, 21, ""},
+		{"QUICSessionTicketOptions.EarlyData", Field, 21, ""},
+		{"QUICSessionTicketOptions.Extra", Field, 23, ""},
+		{"QUICSetReadSecret", Const, 21, ""},
+		{"QUICSetWriteSecret", Const, 21, ""},
+		{"QUICStoreSession", Const, 23, ""},
+		{"QUICTransportParameters", Const, 21, ""},
+		{"QUICTransportParametersRequired", Const, 21, ""},
+		{"QUICWriteData", Const, 21, ""},
+		{"RecordHeaderError", Type, 6, ""},
+		{"RecordHeaderError.Conn", Field, 12, ""},
+		{"RecordHeaderError.Msg", Field, 6, ""},
+		{"RecordHeaderError.RecordHeader", Field, 6, ""},
+		{"RenegotiateFreelyAsClient", Const, 7, ""},
+		{"RenegotiateNever", Const, 7, ""},
+		{"RenegotiateOnceAsClient", Const, 7, ""},
+		{"RenegotiationSupport", Type, 7, ""},
+		{"RequestClientCert", Const, 0, ""},
+		{"RequireAndVerifyClientCert", Const, 0, ""},
+		{"RequireAnyClientCert", Const, 0, ""},
+		{"Server", Func, 0, "func(conn net.Conn, config *Config) *Conn"},
+		{"SessionState", Type, 21, ""},
+		{"SessionState.EarlyData", Field, 21, ""},
+		{"SessionState.Extra", Field, 21, ""},
+		{"SignatureScheme", Type, 8, ""},
+		{"TLS_AES_128_GCM_SHA256", Const, 12, ""},
+		{"TLS_AES_256_GCM_SHA384", Const, 12, ""},
+		{"TLS_CHACHA20_POLY1305_SHA256", Const, 12, ""},
+		{"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", Const, 2, ""},
+		{"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", Const, 8, ""},
+		{"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", Const, 2, ""},
+		{"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", Const, 2, ""},
+		{"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", Const, 5, ""},
+		{"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", Const, 8, ""},
+		{"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", Const, 14, ""},
+		{"TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", Const, 2, ""},
+		{"TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", Const, 0, ""},
+		{"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", Const, 0, ""},
+		{"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", Const, 8, ""},
+		{"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", Const, 2, ""},
+		{"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", Const, 1, ""},
+		{"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", Const, 5, ""},
+		{"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", Const, 8, ""},
+		{"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", Const, 14, ""},
+		{"TLS_ECDHE_RSA_WITH_RC4_128_SHA", Const, 0, ""},
+		{"TLS_FALLBACK_SCSV", Const, 4, ""},
+		{"TLS_RSA_WITH_3DES_EDE_CBC_SHA", Const, 0, ""},
+		{"TLS_RSA_WITH_AES_128_CBC_SHA", Const, 0, ""},
+		{"TLS_RSA_WITH_AES_128_CBC_SHA256", Const, 8, ""},
+		{"TLS_RSA_WITH_AES_128_GCM_SHA256", Const, 6, ""},
+		{"TLS_RSA_WITH_AES_256_CBC_SHA", Const, 1, ""},
+		{"TLS_RSA_WITH_AES_256_GCM_SHA384", Const, 6, ""},
+		{"TLS_RSA_WITH_RC4_128_SHA", Const, 0, ""},
+		{"VerifyClientCertIfGiven", Const, 0, ""},
+		{"VersionName", Func, 21, "func(version uint16) string"},
+		{"VersionSSL30", Const, 2, ""},
+		{"VersionTLS10", Const, 2, ""},
+		{"VersionTLS11", Const, 2, ""},
+		{"VersionTLS12", Const, 2, ""},
+		{"VersionTLS13", Const, 12, ""},
+		{"X25519", Const, 8, ""},
+		{"X25519MLKEM768", Const, 24, ""},
+		{"X509KeyPair", Func, 0, "func(certPEMBlock []byte, keyPEMBlock []byte) (Certificate, error)"},
 	},
 	"crypto/x509": {
-		{"(*CertPool).AddCert", Method, 0},
-		{"(*CertPool).AddCertWithConstraint", Method, 22},
-		{"(*CertPool).AppendCertsFromPEM", Method, 0},
-		{"(*CertPool).Clone", Method, 19},
-		{"(*CertPool).Equal", Method, 19},
-		{"(*CertPool).Subjects", Method, 0},
-		{"(*Certificate).CheckCRLSignature", Method, 0},
-		{"(*Certificate).CheckSignature", Method, 0},
-		{"(*Certificate).CheckSignatureFrom", Method, 0},
-		{"(*Certificate).CreateCRL", Method, 0},
-		{"(*Certificate).Equal", Method, 0},
-		{"(*Certificate).Verify", Method, 0},
-		{"(*Certificate).VerifyHostname", Method, 0},
-		{"(*CertificateRequest).CheckSignature", Method, 5},
-		{"(*OID).UnmarshalBinary", Method, 23},
-		{"(*OID).UnmarshalText", Method, 23},
-		{"(*RevocationList).CheckSignatureFrom", Method, 19},
-		{"(CertificateInvalidError).Error", Method, 0},
-		{"(ConstraintViolationError).Error", Method, 0},
-		{"(HostnameError).Error", Method, 0},
-		{"(InsecureAlgorithmError).Error", Method, 6},
-		{"(OID).AppendBinary", Method, 24},
-		{"(OID).AppendText", Method, 24},
-		{"(OID).Equal", Method, 22},
-		{"(OID).EqualASN1OID", Method, 22},
-		{"(OID).MarshalBinary", Method, 23},
-		{"(OID).MarshalText", Method, 23},
-		{"(OID).String", Method, 22},
-		{"(PublicKeyAlgorithm).String", Method, 10},
-		{"(SignatureAlgorithm).String", Method, 6},
-		{"(SystemRootsError).Error", Method, 1},
-		{"(SystemRootsError).Unwrap", Method, 16},
-		{"(UnhandledCriticalExtension).Error", Method, 0},
-		{"(UnknownAuthorityError).Error", Method, 0},
-		{"CANotAuthorizedForExtKeyUsage", Const, 10},
-		{"CANotAuthorizedForThisName", Const, 0},
-		{"CertPool", Type, 0},
-		{"Certificate", Type, 0},
-		{"Certificate.AuthorityKeyId", Field, 0},
-		{"Certificate.BasicConstraintsValid", Field, 0},
-		{"Certificate.CRLDistributionPoints", Field, 2},
-		{"Certificate.DNSNames", Field, 0},
-		{"Certificate.EmailAddresses", Field, 0},
-		{"Certificate.ExcludedDNSDomains", Field, 9},
-		{"Certificate.ExcludedEmailAddresses", Field, 10},
-		{"Certificate.ExcludedIPRanges", Field, 10},
-		{"Certificate.ExcludedURIDomains", Field, 10},
-		{"Certificate.ExtKeyUsage", Field, 0},
-		{"Certificate.Extensions", Field, 2},
-		{"Certificate.ExtraExtensions", Field, 2},
-		{"Certificate.IPAddresses", Field, 1},
-		{"Certificate.InhibitAnyPolicy", Field, 24},
-		{"Certificate.InhibitAnyPolicyZero", Field, 24},
-		{"Certificate.InhibitPolicyMapping", Field, 24},
-		{"Certificate.InhibitPolicyMappingZero", Field, 24},
-		{"Certificate.IsCA", Field, 0},
-		{"Certificate.Issuer", Field, 0},
-		{"Certificate.IssuingCertificateURL", Field, 2},
-		{"Certificate.KeyUsage", Field, 0},
-		{"Certificate.MaxPathLen", Field, 0},
-		{"Certificate.MaxPathLenZero", Field, 4},
-		{"Certificate.NotAfter", Field, 0},
-		{"Certificate.NotBefore", Field, 0},
-		{"Certificate.OCSPServer", Field, 2},
-		{"Certificate.PermittedDNSDomains", Field, 0},
-		{"Certificate.PermittedDNSDomainsCritical", Field, 0},
-		{"Certificate.PermittedEmailAddresses", Field, 10},
-		{"Certificate.PermittedIPRanges", Field, 10},
-		{"Certificate.PermittedURIDomains", Field, 10},
-		{"Certificate.Policies", Field, 22},
-		{"Certificate.PolicyIdentifiers", Field, 0},
-		{"Certificate.PolicyMappings", Field, 24},
-		{"Certificate.PublicKey", Field, 0},
-		{"Certificate.PublicKeyAlgorithm", Field, 0},
-		{"Certificate.Raw", Field, 0},
-		{"Certificate.RawIssuer", Field, 0},
-		{"Certificate.RawSubject", Field, 0},
-		{"Certificate.RawSubjectPublicKeyInfo", Field, 0},
-		{"Certificate.RawTBSCertificate", Field, 0},
-		{"Certificate.RequireExplicitPolicy", Field, 24},
-		{"Certificate.RequireExplicitPolicyZero", Field, 24},
-		{"Certificate.SerialNumber", Field, 0},
-		{"Certificate.Signature", Field, 0},
-		{"Certificate.SignatureAlgorithm", Field, 0},
-		{"Certificate.Subject", Field, 0},
-		{"Certificate.SubjectKeyId", Field, 0},
-		{"Certificate.URIs", Field, 10},
-		{"Certificate.UnhandledCriticalExtensions", Field, 5},
-		{"Certificate.UnknownExtKeyUsage", Field, 0},
-		{"Certificate.Version", Field, 0},
-		{"CertificateInvalidError", Type, 0},
-		{"CertificateInvalidError.Cert", Field, 0},
-		{"CertificateInvalidError.Detail", Field, 10},
-		{"CertificateInvalidError.Reason", Field, 0},
-		{"CertificateRequest", Type, 3},
-		{"CertificateRequest.Attributes", Field, 3},
-		{"CertificateRequest.DNSNames", Field, 3},
-		{"CertificateRequest.EmailAddresses", Field, 3},
-		{"CertificateRequest.Extensions", Field, 3},
-		{"CertificateRequest.ExtraExtensions", Field, 3},
-		{"CertificateRequest.IPAddresses", Field, 3},
-		{"CertificateRequest.PublicKey", Field, 3},
-		{"CertificateRequest.PublicKeyAlgorithm", Field, 3},
-		{"CertificateRequest.Raw", Field, 3},
-		{"CertificateRequest.RawSubject", Field, 3},
-		{"CertificateRequest.RawSubjectPublicKeyInfo", Field, 3},
-		{"CertificateRequest.RawTBSCertificateRequest", Field, 3},
-		{"CertificateRequest.Signature", Field, 3},
-		{"CertificateRequest.SignatureAlgorithm", Field, 3},
-		{"CertificateRequest.Subject", Field, 3},
-		{"CertificateRequest.URIs", Field, 10},
-		{"CertificateRequest.Version", Field, 3},
-		{"ConstraintViolationError", Type, 0},
-		{"CreateCertificate", Func, 0},
-		{"CreateCertificateRequest", Func, 3},
-		{"CreateRevocationList", Func, 15},
-		{"DSA", Const, 0},
-		{"DSAWithSHA1", Const, 0},
-		{"DSAWithSHA256", Const, 0},
-		{"DecryptPEMBlock", Func, 1},
-		{"ECDSA", Const, 1},
-		{"ECDSAWithSHA1", Const, 1},
-		{"ECDSAWithSHA256", Const, 1},
-		{"ECDSAWithSHA384", Const, 1},
-		{"ECDSAWithSHA512", Const, 1},
-		{"Ed25519", Const, 13},
-		{"EncryptPEMBlock", Func, 1},
-		{"ErrUnsupportedAlgorithm", Var, 0},
-		{"Expired", Const, 0},
-		{"ExtKeyUsage", Type, 0},
-		{"ExtKeyUsageAny", Const, 0},
-		{"ExtKeyUsageClientAuth", Const, 0},
-		{"ExtKeyUsageCodeSigning", Const, 0},
-		{"ExtKeyUsageEmailProtection", Const, 0},
-		{"ExtKeyUsageIPSECEndSystem", Const, 1},
-		{"ExtKeyUsageIPSECTunnel", Const, 1},
-		{"ExtKeyUsageIPSECUser", Const, 1},
-		{"ExtKeyUsageMicrosoftCommercialCodeSigning", Const, 10},
-		{"ExtKeyUsageMicrosoftKernelCodeSigning", Const, 10},
-		{"ExtKeyUsageMicrosoftServerGatedCrypto", Const, 1},
-		{"ExtKeyUsageNetscapeServerGatedCrypto", Const, 1},
-		{"ExtKeyUsageOCSPSigning", Const, 0},
-		{"ExtKeyUsageServerAuth", Const, 0},
-		{"ExtKeyUsageTimeStamping", Const, 0},
-		{"HostnameError", Type, 0},
-		{"HostnameError.Certificate", Field, 0},
-		{"HostnameError.Host", Field, 0},
-		{"IncompatibleUsage", Const, 1},
-		{"IncorrectPasswordError", Var, 1},
-		{"InsecureAlgorithmError", Type, 6},
-		{"InvalidReason", Type, 0},
-		{"IsEncryptedPEMBlock", Func, 1},
-		{"KeyUsage", Type, 0},
-		{"KeyUsageCRLSign", Const, 0},
-		{"KeyUsageCertSign", Const, 0},
-		{"KeyUsageContentCommitment", Const, 0},
-		{"KeyUsageDataEncipherment", Const, 0},
-		{"KeyUsageDecipherOnly", Const, 0},
-		{"KeyUsageDigitalSignature", Const, 0},
-		{"KeyUsageEncipherOnly", Const, 0},
-		{"KeyUsageKeyAgreement", Const, 0},
-		{"KeyUsageKeyEncipherment", Const, 0},
-		{"MD2WithRSA", Const, 0},
-		{"MD5WithRSA", Const, 0},
-		{"MarshalECPrivateKey", Func, 2},
-		{"MarshalPKCS1PrivateKey", Func, 0},
-		{"MarshalPKCS1PublicKey", Func, 10},
-		{"MarshalPKCS8PrivateKey", Func, 10},
-		{"MarshalPKIXPublicKey", Func, 0},
-		{"NameConstraintsWithoutSANs", Const, 10},
-		{"NameMismatch", Const, 8},
-		{"NewCertPool", Func, 0},
-		{"NoValidChains", Const, 24},
-		{"NotAuthorizedToSign", Const, 0},
-		{"OID", Type, 22},
-		{"OIDFromInts", Func, 22},
-		{"PEMCipher", Type, 1},
-		{"PEMCipher3DES", Const, 1},
-		{"PEMCipherAES128", Const, 1},
-		{"PEMCipherAES192", Const, 1},
-		{"PEMCipherAES256", Const, 1},
-		{"PEMCipherDES", Const, 1},
-		{"ParseCRL", Func, 0},
-		{"ParseCertificate", Func, 0},
-		{"ParseCertificateRequest", Func, 3},
-		{"ParseCertificates", Func, 0},
-		{"ParseDERCRL", Func, 0},
-		{"ParseECPrivateKey", Func, 1},
-		{"ParseOID", Func, 23},
-		{"ParsePKCS1PrivateKey", Func, 0},
-		{"ParsePKCS1PublicKey", Func, 10},
-		{"ParsePKCS8PrivateKey", Func, 0},
-		{"ParsePKIXPublicKey", Func, 0},
-		{"ParseRevocationList", Func, 19},
-		{"PolicyMapping", Type, 24},
-		{"PolicyMapping.IssuerDomainPolicy", Field, 24},
-		{"PolicyMapping.SubjectDomainPolicy", Field, 24},
-		{"PublicKeyAlgorithm", Type, 0},
-		{"PureEd25519", Const, 13},
-		{"RSA", Const, 0},
-		{"RevocationList", Type, 15},
-		{"RevocationList.AuthorityKeyId", Field, 19},
-		{"RevocationList.Extensions", Field, 19},
-		{"RevocationList.ExtraExtensions", Field, 15},
-		{"RevocationList.Issuer", Field, 19},
-		{"RevocationList.NextUpdate", Field, 15},
-		{"RevocationList.Number", Field, 15},
-		{"RevocationList.Raw", Field, 19},
-		{"RevocationList.RawIssuer", Field, 19},
-		{"RevocationList.RawTBSRevocationList", Field, 19},
-		{"RevocationList.RevokedCertificateEntries", Field, 21},
-		{"RevocationList.RevokedCertificates", Field, 15},
-		{"RevocationList.Signature", Field, 19},
-		{"RevocationList.SignatureAlgorithm", Field, 15},
-		{"RevocationList.ThisUpdate", Field, 15},
-		{"RevocationListEntry", Type, 21},
-		{"RevocationListEntry.Extensions", Field, 21},
-		{"RevocationListEntry.ExtraExtensions", Field, 21},
-		{"RevocationListEntry.Raw", Field, 21},
-		{"RevocationListEntry.ReasonCode", Field, 21},
-		{"RevocationListEntry.RevocationTime", Field, 21},
-		{"RevocationListEntry.SerialNumber", Field, 21},
-		{"SHA1WithRSA", Const, 0},
-		{"SHA256WithRSA", Const, 0},
-		{"SHA256WithRSAPSS", Const, 8},
-		{"SHA384WithRSA", Const, 0},
-		{"SHA384WithRSAPSS", Const, 8},
-		{"SHA512WithRSA", Const, 0},
-		{"SHA512WithRSAPSS", Const, 8},
-		{"SetFallbackRoots", Func, 20},
-		{"SignatureAlgorithm", Type, 0},
-		{"SystemCertPool", Func, 7},
-		{"SystemRootsError", Type, 1},
-		{"SystemRootsError.Err", Field, 7},
-		{"TooManyConstraints", Const, 10},
-		{"TooManyIntermediates", Const, 0},
-		{"UnconstrainedName", Const, 10},
-		{"UnhandledCriticalExtension", Type, 0},
-		{"UnknownAuthorityError", Type, 0},
-		{"UnknownAuthorityError.Cert", Field, 8},
-		{"UnknownPublicKeyAlgorithm", Const, 0},
-		{"UnknownSignatureAlgorithm", Const, 0},
-		{"VerifyOptions", Type, 0},
-		{"VerifyOptions.CertificatePolicies", Field, 24},
-		{"VerifyOptions.CurrentTime", Field, 0},
-		{"VerifyOptions.DNSName", Field, 0},
-		{"VerifyOptions.Intermediates", Field, 0},
-		{"VerifyOptions.KeyUsages", Field, 1},
-		{"VerifyOptions.MaxConstraintComparisions", Field, 10},
-		{"VerifyOptions.Roots", Field, 0},
+		{"(*CertPool).AddCert", Method, 0, ""},
+		{"(*CertPool).AddCertWithConstraint", Method, 22, ""},
+		{"(*CertPool).AppendCertsFromPEM", Method, 0, ""},
+		{"(*CertPool).Clone", Method, 19, ""},
+		{"(*CertPool).Equal", Method, 19, ""},
+		{"(*CertPool).Subjects", Method, 0, ""},
+		{"(*Certificate).CheckCRLSignature", Method, 0, ""},
+		{"(*Certificate).CheckSignature", Method, 0, ""},
+		{"(*Certificate).CheckSignatureFrom", Method, 0, ""},
+		{"(*Certificate).CreateCRL", Method, 0, ""},
+		{"(*Certificate).Equal", Method, 0, ""},
+		{"(*Certificate).Verify", Method, 0, ""},
+		{"(*Certificate).VerifyHostname", Method, 0, ""},
+		{"(*CertificateRequest).CheckSignature", Method, 5, ""},
+		{"(*OID).UnmarshalBinary", Method, 23, ""},
+		{"(*OID).UnmarshalText", Method, 23, ""},
+		{"(*RevocationList).CheckSignatureFrom", Method, 19, ""},
+		{"(CertificateInvalidError).Error", Method, 0, ""},
+		{"(ConstraintViolationError).Error", Method, 0, ""},
+		{"(HostnameError).Error", Method, 0, ""},
+		{"(InsecureAlgorithmError).Error", Method, 6, ""},
+		{"(OID).AppendBinary", Method, 24, ""},
+		{"(OID).AppendText", Method, 24, ""},
+		{"(OID).Equal", Method, 22, ""},
+		{"(OID).EqualASN1OID", Method, 22, ""},
+		{"(OID).MarshalBinary", Method, 23, ""},
+		{"(OID).MarshalText", Method, 23, ""},
+		{"(OID).String", Method, 22, ""},
+		{"(PublicKeyAlgorithm).String", Method, 10, ""},
+		{"(SignatureAlgorithm).String", Method, 6, ""},
+		{"(SystemRootsError).Error", Method, 1, ""},
+		{"(SystemRootsError).Unwrap", Method, 16, ""},
+		{"(UnhandledCriticalExtension).Error", Method, 0, ""},
+		{"(UnknownAuthorityError).Error", Method, 0, ""},
+		{"CANotAuthorizedForExtKeyUsage", Const, 10, ""},
+		{"CANotAuthorizedForThisName", Const, 0, ""},
+		{"CertPool", Type, 0, ""},
+		{"Certificate", Type, 0, ""},
+		{"Certificate.AuthorityKeyId", Field, 0, ""},
+		{"Certificate.BasicConstraintsValid", Field, 0, ""},
+		{"Certificate.CRLDistributionPoints", Field, 2, ""},
+		{"Certificate.DNSNames", Field, 0, ""},
+		{"Certificate.EmailAddresses", Field, 0, ""},
+		{"Certificate.ExcludedDNSDomains", Field, 9, ""},
+		{"Certificate.ExcludedEmailAddresses", Field, 10, ""},
+		{"Certificate.ExcludedIPRanges", Field, 10, ""},
+		{"Certificate.ExcludedURIDomains", Field, 10, ""},
+		{"Certificate.ExtKeyUsage", Field, 0, ""},
+		{"Certificate.Extensions", Field, 2, ""},
+		{"Certificate.ExtraExtensions", Field, 2, ""},
+		{"Certificate.IPAddresses", Field, 1, ""},
+		{"Certificate.InhibitAnyPolicy", Field, 24, ""},
+		{"Certificate.InhibitAnyPolicyZero", Field, 24, ""},
+		{"Certificate.InhibitPolicyMapping", Field, 24, ""},
+		{"Certificate.InhibitPolicyMappingZero", Field, 24, ""},
+		{"Certificate.IsCA", Field, 0, ""},
+		{"Certificate.Issuer", Field, 0, ""},
+		{"Certificate.IssuingCertificateURL", Field, 2, ""},
+		{"Certificate.KeyUsage", Field, 0, ""},
+		{"Certificate.MaxPathLen", Field, 0, ""},
+		{"Certificate.MaxPathLenZero", Field, 4, ""},
+		{"Certificate.NotAfter", Field, 0, ""},
+		{"Certificate.NotBefore", Field, 0, ""},
+		{"Certificate.OCSPServer", Field, 2, ""},
+		{"Certificate.PermittedDNSDomains", Field, 0, ""},
+		{"Certificate.PermittedDNSDomainsCritical", Field, 0, ""},
+		{"Certificate.PermittedEmailAddresses", Field, 10, ""},
+		{"Certificate.PermittedIPRanges", Field, 10, ""},
+		{"Certificate.PermittedURIDomains", Field, 10, ""},
+		{"Certificate.Policies", Field, 22, ""},
+		{"Certificate.PolicyIdentifiers", Field, 0, ""},
+		{"Certificate.PolicyMappings", Field, 24, ""},
+		{"Certificate.PublicKey", Field, 0, ""},
+		{"Certificate.PublicKeyAlgorithm", Field, 0, ""},
+		{"Certificate.Raw", Field, 0, ""},
+		{"Certificate.RawIssuer", Field, 0, ""},
+		{"Certificate.RawSubject", Field, 0, ""},
+		{"Certificate.RawSubjectPublicKeyInfo", Field, 0, ""},
+		{"Certificate.RawTBSCertificate", Field, 0, ""},
+		{"Certificate.RequireExplicitPolicy", Field, 24, ""},
+		{"Certificate.RequireExplicitPolicyZero", Field, 24, ""},
+		{"Certificate.SerialNumber", Field, 0, ""},
+		{"Certificate.Signature", Field, 0, ""},
+		{"Certificate.SignatureAlgorithm", Field, 0, ""},
+		{"Certificate.Subject", Field, 0, ""},
+		{"Certificate.SubjectKeyId", Field, 0, ""},
+		{"Certificate.URIs", Field, 10, ""},
+		{"Certificate.UnhandledCriticalExtensions", Field, 5, ""},
+		{"Certificate.UnknownExtKeyUsage", Field, 0, ""},
+		{"Certificate.Version", Field, 0, ""},
+		{"CertificateInvalidError", Type, 0, ""},
+		{"CertificateInvalidError.Cert", Field, 0, ""},
+		{"CertificateInvalidError.Detail", Field, 10, ""},
+		{"CertificateInvalidError.Reason", Field, 0, ""},
+		{"CertificateRequest", Type, 3, ""},
+		{"CertificateRequest.Attributes", Field, 3, ""},
+		{"CertificateRequest.DNSNames", Field, 3, ""},
+		{"CertificateRequest.EmailAddresses", Field, 3, ""},
+		{"CertificateRequest.Extensions", Field, 3, ""},
+		{"CertificateRequest.ExtraExtensions", Field, 3, ""},
+		{"CertificateRequest.IPAddresses", Field, 3, ""},
+		{"CertificateRequest.PublicKey", Field, 3, ""},
+		{"CertificateRequest.PublicKeyAlgorithm", Field, 3, ""},
+		{"CertificateRequest.Raw", Field, 3, ""},
+		{"CertificateRequest.RawSubject", Field, 3, ""},
+		{"CertificateRequest.RawSubjectPublicKeyInfo", Field, 3, ""},
+		{"CertificateRequest.RawTBSCertificateRequest", Field, 3, ""},
+		{"CertificateRequest.Signature", Field, 3, ""},
+		{"CertificateRequest.SignatureAlgorithm", Field, 3, ""},
+		{"CertificateRequest.Subject", Field, 3, ""},
+		{"CertificateRequest.URIs", Field, 10, ""},
+		{"CertificateRequest.Version", Field, 3, ""},
+		{"ConstraintViolationError", Type, 0, ""},
+		{"CreateCertificate", Func, 0, "func(rand io.Reader, template *Certificate, parent *Certificate, pub any, priv any) ([]byte, error)"},
+		{"CreateCertificateRequest", Func, 3, "func(rand io.Reader, template *CertificateRequest, priv any) (csr []byte, err error)"},
+		{"CreateRevocationList", Func, 15, "func(rand io.Reader, template *RevocationList, issuer *Certificate, priv crypto.Signer) ([]byte, error)"},
+		{"DSA", Const, 0, ""},
+		{"DSAWithSHA1", Const, 0, ""},
+		{"DSAWithSHA256", Const, 0, ""},
+		{"DecryptPEMBlock", Func, 1, "func(b *pem.Block, password []byte) ([]byte, error)"},
+		{"ECDSA", Const, 1, ""},
+		{"ECDSAWithSHA1", Const, 1, ""},
+		{"ECDSAWithSHA256", Const, 1, ""},
+		{"ECDSAWithSHA384", Const, 1, ""},
+		{"ECDSAWithSHA512", Const, 1, ""},
+		{"Ed25519", Const, 13, ""},
+		{"EncryptPEMBlock", Func, 1, "func(rand io.Reader, blockType string, data []byte, password []byte, alg PEMCipher) (*pem.Block, error)"},
+		{"ErrUnsupportedAlgorithm", Var, 0, ""},
+		{"Expired", Const, 0, ""},
+		{"ExtKeyUsage", Type, 0, ""},
+		{"ExtKeyUsageAny", Const, 0, ""},
+		{"ExtKeyUsageClientAuth", Const, 0, ""},
+		{"ExtKeyUsageCodeSigning", Const, 0, ""},
+		{"ExtKeyUsageEmailProtection", Const, 0, ""},
+		{"ExtKeyUsageIPSECEndSystem", Const, 1, ""},
+		{"ExtKeyUsageIPSECTunnel", Const, 1, ""},
+		{"ExtKeyUsageIPSECUser", Const, 1, ""},
+		{"ExtKeyUsageMicrosoftCommercialCodeSigning", Const, 10, ""},
+		{"ExtKeyUsageMicrosoftKernelCodeSigning", Const, 10, ""},
+		{"ExtKeyUsageMicrosoftServerGatedCrypto", Const, 1, ""},
+		{"ExtKeyUsageNetscapeServerGatedCrypto", Const, 1, ""},
+		{"ExtKeyUsageOCSPSigning", Const, 0, ""},
+		{"ExtKeyUsageServerAuth", Const, 0, ""},
+		{"ExtKeyUsageTimeStamping", Const, 0, ""},
+		{"HostnameError", Type, 0, ""},
+		{"HostnameError.Certificate", Field, 0, ""},
+		{"HostnameError.Host", Field, 0, ""},
+		{"IncompatibleUsage", Const, 1, ""},
+		{"IncorrectPasswordError", Var, 1, ""},
+		{"InsecureAlgorithmError", Type, 6, ""},
+		{"InvalidReason", Type, 0, ""},
+		{"IsEncryptedPEMBlock", Func, 1, "func(b *pem.Block) bool"},
+		{"KeyUsage", Type, 0, ""},
+		{"KeyUsageCRLSign", Const, 0, ""},
+		{"KeyUsageCertSign", Const, 0, ""},
+		{"KeyUsageContentCommitment", Const, 0, ""},
+		{"KeyUsageDataEncipherment", Const, 0, ""},
+		{"KeyUsageDecipherOnly", Const, 0, ""},
+		{"KeyUsageDigitalSignature", Const, 0, ""},
+		{"KeyUsageEncipherOnly", Const, 0, ""},
+		{"KeyUsageKeyAgreement", Const, 0, ""},
+		{"KeyUsageKeyEncipherment", Const, 0, ""},
+		{"MD2WithRSA", Const, 0, ""},
+		{"MD5WithRSA", Const, 0, ""},
+		{"MarshalECPrivateKey", Func, 2, "func(key *ecdsa.PrivateKey) ([]byte, error)"},
+		{"MarshalPKCS1PrivateKey", Func, 0, "func(key *rsa.PrivateKey) []byte"},
+		{"MarshalPKCS1PublicKey", Func, 10, "func(key *rsa.PublicKey) []byte"},
+		{"MarshalPKCS8PrivateKey", Func, 10, "func(key any) ([]byte, error)"},
+		{"MarshalPKIXPublicKey", Func, 0, "func(pub any) ([]byte, error)"},
+		{"NameConstraintsWithoutSANs", Const, 10, ""},
+		{"NameMismatch", Const, 8, ""},
+		{"NewCertPool", Func, 0, "func() *CertPool"},
+		{"NoValidChains", Const, 24, ""},
+		{"NotAuthorizedToSign", Const, 0, ""},
+		{"OID", Type, 22, ""},
+		{"OIDFromInts", Func, 22, "func(oid []uint64) (OID, error)"},
+		{"PEMCipher", Type, 1, ""},
+		{"PEMCipher3DES", Const, 1, ""},
+		{"PEMCipherAES128", Const, 1, ""},
+		{"PEMCipherAES192", Const, 1, ""},
+		{"PEMCipherAES256", Const, 1, ""},
+		{"PEMCipherDES", Const, 1, ""},
+		{"ParseCRL", Func, 0, "func(crlBytes []byte) (*pkix.CertificateList, error)"},
+		{"ParseCertificate", Func, 0, "func(der []byte) (*Certificate, error)"},
+		{"ParseCertificateRequest", Func, 3, "func(asn1Data []byte) (*CertificateRequest, error)"},
+		{"ParseCertificates", Func, 0, "func(der []byte) ([]*Certificate, error)"},
+		{"ParseDERCRL", Func, 0, "func(derBytes []byte) (*pkix.CertificateList, error)"},
+		{"ParseECPrivateKey", Func, 1, "func(der []byte) (*ecdsa.PrivateKey, error)"},
+		{"ParseOID", Func, 23, "func(oid string) (OID, error)"},
+		{"ParsePKCS1PrivateKey", Func, 0, "func(der []byte) (*rsa.PrivateKey, error)"},
+		{"ParsePKCS1PublicKey", Func, 10, "func(der []byte) (*rsa.PublicKey, error)"},
+		{"ParsePKCS8PrivateKey", Func, 0, "func(der []byte) (key any, err error)"},
+		{"ParsePKIXPublicKey", Func, 0, "func(derBytes []byte) (pub any, err error)"},
+		{"ParseRevocationList", Func, 19, "func(der []byte) (*RevocationList, error)"},
+		{"PolicyMapping", Type, 24, ""},
+		{"PolicyMapping.IssuerDomainPolicy", Field, 24, ""},
+		{"PolicyMapping.SubjectDomainPolicy", Field, 24, ""},
+		{"PublicKeyAlgorithm", Type, 0, ""},
+		{"PureEd25519", Const, 13, ""},
+		{"RSA", Const, 0, ""},
+		{"RevocationList", Type, 15, ""},
+		{"RevocationList.AuthorityKeyId", Field, 19, ""},
+		{"RevocationList.Extensions", Field, 19, ""},
+		{"RevocationList.ExtraExtensions", Field, 15, ""},
+		{"RevocationList.Issuer", Field, 19, ""},
+		{"RevocationList.NextUpdate", Field, 15, ""},
+		{"RevocationList.Number", Field, 15, ""},
+		{"RevocationList.Raw", Field, 19, ""},
+		{"RevocationList.RawIssuer", Field, 19, ""},
+		{"RevocationList.RawTBSRevocationList", Field, 19, ""},
+		{"RevocationList.RevokedCertificateEntries", Field, 21, ""},
+		{"RevocationList.RevokedCertificates", Field, 15, ""},
+		{"RevocationList.Signature", Field, 19, ""},
+		{"RevocationList.SignatureAlgorithm", Field, 15, ""},
+		{"RevocationList.ThisUpdate", Field, 15, ""},
+		{"RevocationListEntry", Type, 21, ""},
+		{"RevocationListEntry.Extensions", Field, 21, ""},
+		{"RevocationListEntry.ExtraExtensions", Field, 21, ""},
+		{"RevocationListEntry.Raw", Field, 21, ""},
+		{"RevocationListEntry.ReasonCode", Field, 21, ""},
+		{"RevocationListEntry.RevocationTime", Field, 21, ""},
+		{"RevocationListEntry.SerialNumber", Field, 21, ""},
+		{"SHA1WithRSA", Const, 0, ""},
+		{"SHA256WithRSA", Const, 0, ""},
+		{"SHA256WithRSAPSS", Const, 8, ""},
+		{"SHA384WithRSA", Const, 0, ""},
+		{"SHA384WithRSAPSS", Const, 8, ""},
+		{"SHA512WithRSA", Const, 0, ""},
+		{"SHA512WithRSAPSS", Const, 8, ""},
+		{"SetFallbackRoots", Func, 20, "func(roots *CertPool)"},
+		{"SignatureAlgorithm", Type, 0, ""},
+		{"SystemCertPool", Func, 7, "func() (*CertPool, error)"},
+		{"SystemRootsError", Type, 1, ""},
+		{"SystemRootsError.Err", Field, 7, ""},
+		{"TooManyConstraints", Const, 10, ""},
+		{"TooManyIntermediates", Const, 0, ""},
+		{"UnconstrainedName", Const, 10, ""},
+		{"UnhandledCriticalExtension", Type, 0, ""},
+		{"UnknownAuthorityError", Type, 0, ""},
+		{"UnknownAuthorityError.Cert", Field, 8, ""},
+		{"UnknownPublicKeyAlgorithm", Const, 0, ""},
+		{"UnknownSignatureAlgorithm", Const, 0, ""},
+		{"VerifyOptions", Type, 0, ""},
+		{"VerifyOptions.CertificatePolicies", Field, 24, ""},
+		{"VerifyOptions.CurrentTime", Field, 0, ""},
+		{"VerifyOptions.DNSName", Field, 0, ""},
+		{"VerifyOptions.Intermediates", Field, 0, ""},
+		{"VerifyOptions.KeyUsages", Field, 1, ""},
+		{"VerifyOptions.MaxConstraintComparisions", Field, 10, ""},
+		{"VerifyOptions.Roots", Field, 0, ""},
 	},
 	"crypto/x509/pkix": {
-		{"(*CertificateList).HasExpired", Method, 0},
-		{"(*Name).FillFromRDNSequence", Method, 0},
-		{"(Name).String", Method, 10},
-		{"(Name).ToRDNSequence", Method, 0},
-		{"(RDNSequence).String", Method, 10},
-		{"AlgorithmIdentifier", Type, 0},
-		{"AlgorithmIdentifier.Algorithm", Field, 0},
-		{"AlgorithmIdentifier.Parameters", Field, 0},
-		{"AttributeTypeAndValue", Type, 0},
-		{"AttributeTypeAndValue.Type", Field, 0},
-		{"AttributeTypeAndValue.Value", Field, 0},
-		{"AttributeTypeAndValueSET", Type, 3},
-		{"AttributeTypeAndValueSET.Type", Field, 3},
-		{"AttributeTypeAndValueSET.Value", Field, 3},
-		{"CertificateList", Type, 0},
-		{"CertificateList.SignatureAlgorithm", Field, 0},
-		{"CertificateList.SignatureValue", Field, 0},
-		{"CertificateList.TBSCertList", Field, 0},
-		{"Extension", Type, 0},
-		{"Extension.Critical", Field, 0},
-		{"Extension.Id", Field, 0},
-		{"Extension.Value", Field, 0},
-		{"Name", Type, 0},
-		{"Name.CommonName", Field, 0},
-		{"Name.Country", Field, 0},
-		{"Name.ExtraNames", Field, 5},
-		{"Name.Locality", Field, 0},
-		{"Name.Names", Field, 0},
-		{"Name.Organization", Field, 0},
-		{"Name.OrganizationalUnit", Field, 0},
-		{"Name.PostalCode", Field, 0},
-		{"Name.Province", Field, 0},
-		{"Name.SerialNumber", Field, 0},
-		{"Name.StreetAddress", Field, 0},
-		{"RDNSequence", Type, 0},
-		{"RelativeDistinguishedNameSET", Type, 0},
-		{"RevokedCertificate", Type, 0},
-		{"RevokedCertificate.Extensions", Field, 0},
-		{"RevokedCertificate.RevocationTime", Field, 0},
-		{"RevokedCertificate.SerialNumber", Field, 0},
-		{"TBSCertificateList", Type, 0},
-		{"TBSCertificateList.Extensions", Field, 0},
-		{"TBSCertificateList.Issuer", Field, 0},
-		{"TBSCertificateList.NextUpdate", Field, 0},
-		{"TBSCertificateList.Raw", Field, 0},
-		{"TBSCertificateList.RevokedCertificates", Field, 0},
-		{"TBSCertificateList.Signature", Field, 0},
-		{"TBSCertificateList.ThisUpdate", Field, 0},
-		{"TBSCertificateList.Version", Field, 0},
+		{"(*CertificateList).HasExpired", Method, 0, ""},
+		{"(*Name).FillFromRDNSequence", Method, 0, ""},
+		{"(Name).String", Method, 10, ""},
+		{"(Name).ToRDNSequence", Method, 0, ""},
+		{"(RDNSequence).String", Method, 10, ""},
+		{"AlgorithmIdentifier", Type, 0, ""},
+		{"AlgorithmIdentifier.Algorithm", Field, 0, ""},
+		{"AlgorithmIdentifier.Parameters", Field, 0, ""},
+		{"AttributeTypeAndValue", Type, 0, ""},
+		{"AttributeTypeAndValue.Type", Field, 0, ""},
+		{"AttributeTypeAndValue.Value", Field, 0, ""},
+		{"AttributeTypeAndValueSET", Type, 3, ""},
+		{"AttributeTypeAndValueSET.Type", Field, 3, ""},
+		{"AttributeTypeAndValueSET.Value", Field, 3, ""},
+		{"CertificateList", Type, 0, ""},
+		{"CertificateList.SignatureAlgorithm", Field, 0, ""},
+		{"CertificateList.SignatureValue", Field, 0, ""},
+		{"CertificateList.TBSCertList", Field, 0, ""},
+		{"Extension", Type, 0, ""},
+		{"Extension.Critical", Field, 0, ""},
+		{"Extension.Id", Field, 0, ""},
+		{"Extension.Value", Field, 0, ""},
+		{"Name", Type, 0, ""},
+		{"Name.CommonName", Field, 0, ""},
+		{"Name.Country", Field, 0, ""},
+		{"Name.ExtraNames", Field, 5, ""},
+		{"Name.Locality", Field, 0, ""},
+		{"Name.Names", Field, 0, ""},
+		{"Name.Organization", Field, 0, ""},
+		{"Name.OrganizationalUnit", Field, 0, ""},
+		{"Name.PostalCode", Field, 0, ""},
+		{"Name.Province", Field, 0, ""},
+		{"Name.SerialNumber", Field, 0, ""},
+		{"Name.StreetAddress", Field, 0, ""},
+		{"RDNSequence", Type, 0, ""},
+		{"RelativeDistinguishedNameSET", Type, 0, ""},
+		{"RevokedCertificate", Type, 0, ""},
+		{"RevokedCertificate.Extensions", Field, 0, ""},
+		{"RevokedCertificate.RevocationTime", Field, 0, ""},
+		{"RevokedCertificate.SerialNumber", Field, 0, ""},
+		{"TBSCertificateList", Type, 0, ""},
+		{"TBSCertificateList.Extensions", Field, 0, ""},
+		{"TBSCertificateList.Issuer", Field, 0, ""},
+		{"TBSCertificateList.NextUpdate", Field, 0, ""},
+		{"TBSCertificateList.Raw", Field, 0, ""},
+		{"TBSCertificateList.RevokedCertificates", Field, 0, ""},
+		{"TBSCertificateList.Signature", Field, 0, ""},
+		{"TBSCertificateList.ThisUpdate", Field, 0, ""},
+		{"TBSCertificateList.Version", Field, 0, ""},
 	},
 	"database/sql": {
-		{"(*ColumnType).DatabaseTypeName", Method, 8},
-		{"(*ColumnType).DecimalSize", Method, 8},
-		{"(*ColumnType).Length", Method, 8},
-		{"(*ColumnType).Name", Method, 8},
-		{"(*ColumnType).Nullable", Method, 8},
-		{"(*ColumnType).ScanType", Method, 8},
-		{"(*Conn).BeginTx", Method, 9},
-		{"(*Conn).Close", Method, 9},
-		{"(*Conn).ExecContext", Method, 9},
-		{"(*Conn).PingContext", Method, 9},
-		{"(*Conn).PrepareContext", Method, 9},
-		{"(*Conn).QueryContext", Method, 9},
-		{"(*Conn).QueryRowContext", Method, 9},
-		{"(*Conn).Raw", Method, 13},
-		{"(*DB).Begin", Method, 0},
-		{"(*DB).BeginTx", Method, 8},
-		{"(*DB).Close", Method, 0},
-		{"(*DB).Conn", Method, 9},
-		{"(*DB).Driver", Method, 0},
-		{"(*DB).Exec", Method, 0},
-		{"(*DB).ExecContext", Method, 8},
-		{"(*DB).Ping", Method, 1},
-		{"(*DB).PingContext", Method, 8},
-		{"(*DB).Prepare", Method, 0},
-		{"(*DB).PrepareContext", Method, 8},
-		{"(*DB).Query", Method, 0},
-		{"(*DB).QueryContext", Method, 8},
-		{"(*DB).QueryRow", Method, 0},
-		{"(*DB).QueryRowContext", Method, 8},
-		{"(*DB).SetConnMaxIdleTime", Method, 15},
-		{"(*DB).SetConnMaxLifetime", Method, 6},
-		{"(*DB).SetMaxIdleConns", Method, 1},
-		{"(*DB).SetMaxOpenConns", Method, 2},
-		{"(*DB).Stats", Method, 5},
-		{"(*Null).Scan", Method, 22},
-		{"(*NullBool).Scan", Method, 0},
-		{"(*NullByte).Scan", Method, 17},
-		{"(*NullFloat64).Scan", Method, 0},
-		{"(*NullInt16).Scan", Method, 17},
-		{"(*NullInt32).Scan", Method, 13},
-		{"(*NullInt64).Scan", Method, 0},
-		{"(*NullString).Scan", Method, 0},
-		{"(*NullTime).Scan", Method, 13},
-		{"(*Row).Err", Method, 15},
-		{"(*Row).Scan", Method, 0},
-		{"(*Rows).Close", Method, 0},
-		{"(*Rows).ColumnTypes", Method, 8},
-		{"(*Rows).Columns", Method, 0},
-		{"(*Rows).Err", Method, 0},
-		{"(*Rows).Next", Method, 0},
-		{"(*Rows).NextResultSet", Method, 8},
-		{"(*Rows).Scan", Method, 0},
-		{"(*Stmt).Close", Method, 0},
-		{"(*Stmt).Exec", Method, 0},
-		{"(*Stmt).ExecContext", Method, 8},
-		{"(*Stmt).Query", Method, 0},
-		{"(*Stmt).QueryContext", Method, 8},
-		{"(*Stmt).QueryRow", Method, 0},
-		{"(*Stmt).QueryRowContext", Method, 8},
-		{"(*Tx).Commit", Method, 0},
-		{"(*Tx).Exec", Method, 0},
-		{"(*Tx).ExecContext", Method, 8},
-		{"(*Tx).Prepare", Method, 0},
-		{"(*Tx).PrepareContext", Method, 8},
-		{"(*Tx).Query", Method, 0},
-		{"(*Tx).QueryContext", Method, 8},
-		{"(*Tx).QueryRow", Method, 0},
-		{"(*Tx).QueryRowContext", Method, 8},
-		{"(*Tx).Rollback", Method, 0},
-		{"(*Tx).Stmt", Method, 0},
-		{"(*Tx).StmtContext", Method, 8},
-		{"(IsolationLevel).String", Method, 11},
-		{"(Null).Value", Method, 22},
-		{"(NullBool).Value", Method, 0},
-		{"(NullByte).Value", Method, 17},
-		{"(NullFloat64).Value", Method, 0},
-		{"(NullInt16).Value", Method, 17},
-		{"(NullInt32).Value", Method, 13},
-		{"(NullInt64).Value", Method, 0},
-		{"(NullString).Value", Method, 0},
-		{"(NullTime).Value", Method, 13},
-		{"ColumnType", Type, 8},
-		{"Conn", Type, 9},
-		{"DB", Type, 0},
-		{"DBStats", Type, 5},
-		{"DBStats.Idle", Field, 11},
-		{"DBStats.InUse", Field, 11},
-		{"DBStats.MaxIdleClosed", Field, 11},
-		{"DBStats.MaxIdleTimeClosed", Field, 15},
-		{"DBStats.MaxLifetimeClosed", Field, 11},
-		{"DBStats.MaxOpenConnections", Field, 11},
-		{"DBStats.OpenConnections", Field, 5},
-		{"DBStats.WaitCount", Field, 11},
-		{"DBStats.WaitDuration", Field, 11},
-		{"Drivers", Func, 4},
-		{"ErrConnDone", Var, 9},
-		{"ErrNoRows", Var, 0},
-		{"ErrTxDone", Var, 0},
-		{"IsolationLevel", Type, 8},
-		{"LevelDefault", Const, 8},
-		{"LevelLinearizable", Const, 8},
-		{"LevelReadCommitted", Const, 8},
-		{"LevelReadUncommitted", Const, 8},
-		{"LevelRepeatableRead", Const, 8},
-		{"LevelSerializable", Const, 8},
-		{"LevelSnapshot", Const, 8},
-		{"LevelWriteCommitted", Const, 8},
-		{"Named", Func, 8},
-		{"NamedArg", Type, 8},
-		{"NamedArg.Name", Field, 8},
-		{"NamedArg.Value", Field, 8},
-		{"Null", Type, 22},
-		{"Null.V", Field, 22},
-		{"Null.Valid", Field, 22},
-		{"NullBool", Type, 0},
-		{"NullBool.Bool", Field, 0},
-		{"NullBool.Valid", Field, 0},
-		{"NullByte", Type, 17},
-		{"NullByte.Byte", Field, 17},
-		{"NullByte.Valid", Field, 17},
-		{"NullFloat64", Type, 0},
-		{"NullFloat64.Float64", Field, 0},
-		{"NullFloat64.Valid", Field, 0},
-		{"NullInt16", Type, 17},
-		{"NullInt16.Int16", Field, 17},
-		{"NullInt16.Valid", Field, 17},
-		{"NullInt32", Type, 13},
-		{"NullInt32.Int32", Field, 13},
-		{"NullInt32.Valid", Field, 13},
-		{"NullInt64", Type, 0},
-		{"NullInt64.Int64", Field, 0},
-		{"NullInt64.Valid", Field, 0},
-		{"NullString", Type, 0},
-		{"NullString.String", Field, 0},
-		{"NullString.Valid", Field, 0},
-		{"NullTime", Type, 13},
-		{"NullTime.Time", Field, 13},
-		{"NullTime.Valid", Field, 13},
-		{"Open", Func, 0},
-		{"OpenDB", Func, 10},
-		{"Out", Type, 9},
-		{"Out.Dest", Field, 9},
-		{"Out.In", Field, 9},
-		{"RawBytes", Type, 0},
-		{"Register", Func, 0},
-		{"Result", Type, 0},
-		{"Row", Type, 0},
-		{"Rows", Type, 0},
-		{"Scanner", Type, 0},
-		{"Stmt", Type, 0},
-		{"Tx", Type, 0},
-		{"TxOptions", Type, 8},
-		{"TxOptions.Isolation", Field, 8},
-		{"TxOptions.ReadOnly", Field, 8},
+		{"(*ColumnType).DatabaseTypeName", Method, 8, ""},
+		{"(*ColumnType).DecimalSize", Method, 8, ""},
+		{"(*ColumnType).Length", Method, 8, ""},
+		{"(*ColumnType).Name", Method, 8, ""},
+		{"(*ColumnType).Nullable", Method, 8, ""},
+		{"(*ColumnType).ScanType", Method, 8, ""},
+		{"(*Conn).BeginTx", Method, 9, ""},
+		{"(*Conn).Close", Method, 9, ""},
+		{"(*Conn).ExecContext", Method, 9, ""},
+		{"(*Conn).PingContext", Method, 9, ""},
+		{"(*Conn).PrepareContext", Method, 9, ""},
+		{"(*Conn).QueryContext", Method, 9, ""},
+		{"(*Conn).QueryRowContext", Method, 9, ""},
+		{"(*Conn).Raw", Method, 13, ""},
+		{"(*DB).Begin", Method, 0, ""},
+		{"(*DB).BeginTx", Method, 8, ""},
+		{"(*DB).Close", Method, 0, ""},
+		{"(*DB).Conn", Method, 9, ""},
+		{"(*DB).Driver", Method, 0, ""},
+		{"(*DB).Exec", Method, 0, ""},
+		{"(*DB).ExecContext", Method, 8, ""},
+		{"(*DB).Ping", Method, 1, ""},
+		{"(*DB).PingContext", Method, 8, ""},
+		{"(*DB).Prepare", Method, 0, ""},
+		{"(*DB).PrepareContext", Method, 8, ""},
+		{"(*DB).Query", Method, 0, ""},
+		{"(*DB).QueryContext", Method, 8, ""},
+		{"(*DB).QueryRow", Method, 0, ""},
+		{"(*DB).QueryRowContext", Method, 8, ""},
+		{"(*DB).SetConnMaxIdleTime", Method, 15, ""},
+		{"(*DB).SetConnMaxLifetime", Method, 6, ""},
+		{"(*DB).SetMaxIdleConns", Method, 1, ""},
+		{"(*DB).SetMaxOpenConns", Method, 2, ""},
+		{"(*DB).Stats", Method, 5, ""},
+		{"(*Null).Scan", Method, 22, ""},
+		{"(*NullBool).Scan", Method, 0, ""},
+		{"(*NullByte).Scan", Method, 17, ""},
+		{"(*NullFloat64).Scan", Method, 0, ""},
+		{"(*NullInt16).Scan", Method, 17, ""},
+		{"(*NullInt32).Scan", Method, 13, ""},
+		{"(*NullInt64).Scan", Method, 0, ""},
+		{"(*NullString).Scan", Method, 0, ""},
+		{"(*NullTime).Scan", Method, 13, ""},
+		{"(*Row).Err", Method, 15, ""},
+		{"(*Row).Scan", Method, 0, ""},
+		{"(*Rows).Close", Method, 0, ""},
+		{"(*Rows).ColumnTypes", Method, 8, ""},
+		{"(*Rows).Columns", Method, 0, ""},
+		{"(*Rows).Err", Method, 0, ""},
+		{"(*Rows).Next", Method, 0, ""},
+		{"(*Rows).NextResultSet", Method, 8, ""},
+		{"(*Rows).Scan", Method, 0, ""},
+		{"(*Stmt).Close", Method, 0, ""},
+		{"(*Stmt).Exec", Method, 0, ""},
+		{"(*Stmt).ExecContext", Method, 8, ""},
+		{"(*Stmt).Query", Method, 0, ""},
+		{"(*Stmt).QueryContext", Method, 8, ""},
+		{"(*Stmt).QueryRow", Method, 0, ""},
+		{"(*Stmt).QueryRowContext", Method, 8, ""},
+		{"(*Tx).Commit", Method, 0, ""},
+		{"(*Tx).Exec", Method, 0, ""},
+		{"(*Tx).ExecContext", Method, 8, ""},
+		{"(*Tx).Prepare", Method, 0, ""},
+		{"(*Tx).PrepareContext", Method, 8, ""},
+		{"(*Tx).Query", Method, 0, ""},
+		{"(*Tx).QueryContext", Method, 8, ""},
+		{"(*Tx).QueryRow", Method, 0, ""},
+		{"(*Tx).QueryRowContext", Method, 8, ""},
+		{"(*Tx).Rollback", Method, 0, ""},
+		{"(*Tx).Stmt", Method, 0, ""},
+		{"(*Tx).StmtContext", Method, 8, ""},
+		{"(IsolationLevel).String", Method, 11, ""},
+		{"(Null).Value", Method, 22, ""},
+		{"(NullBool).Value", Method, 0, ""},
+		{"(NullByte).Value", Method, 17, ""},
+		{"(NullFloat64).Value", Method, 0, ""},
+		{"(NullInt16).Value", Method, 17, ""},
+		{"(NullInt32).Value", Method, 13, ""},
+		{"(NullInt64).Value", Method, 0, ""},
+		{"(NullString).Value", Method, 0, ""},
+		{"(NullTime).Value", Method, 13, ""},
+		{"ColumnType", Type, 8, ""},
+		{"Conn", Type, 9, ""},
+		{"DB", Type, 0, ""},
+		{"DBStats", Type, 5, ""},
+		{"DBStats.Idle", Field, 11, ""},
+		{"DBStats.InUse", Field, 11, ""},
+		{"DBStats.MaxIdleClosed", Field, 11, ""},
+		{"DBStats.MaxIdleTimeClosed", Field, 15, ""},
+		{"DBStats.MaxLifetimeClosed", Field, 11, ""},
+		{"DBStats.MaxOpenConnections", Field, 11, ""},
+		{"DBStats.OpenConnections", Field, 5, ""},
+		{"DBStats.WaitCount", Field, 11, ""},
+		{"DBStats.WaitDuration", Field, 11, ""},
+		{"Drivers", Func, 4, "func() []string"},
+		{"ErrConnDone", Var, 9, ""},
+		{"ErrNoRows", Var, 0, ""},
+		{"ErrTxDone", Var, 0, ""},
+		{"IsolationLevel", Type, 8, ""},
+		{"LevelDefault", Const, 8, ""},
+		{"LevelLinearizable", Const, 8, ""},
+		{"LevelReadCommitted", Const, 8, ""},
+		{"LevelReadUncommitted", Const, 8, ""},
+		{"LevelRepeatableRead", Const, 8, ""},
+		{"LevelSerializable", Const, 8, ""},
+		{"LevelSnapshot", Const, 8, ""},
+		{"LevelWriteCommitted", Const, 8, ""},
+		{"Named", Func, 8, "func(name string, value any) NamedArg"},
+		{"NamedArg", Type, 8, ""},
+		{"NamedArg.Name", Field, 8, ""},
+		{"NamedArg.Value", Field, 8, ""},
+		{"Null", Type, 22, ""},
+		{"Null.V", Field, 22, ""},
+		{"Null.Valid", Field, 22, ""},
+		{"NullBool", Type, 0, ""},
+		{"NullBool.Bool", Field, 0, ""},
+		{"NullBool.Valid", Field, 0, ""},
+		{"NullByte", Type, 17, ""},
+		{"NullByte.Byte", Field, 17, ""},
+		{"NullByte.Valid", Field, 17, ""},
+		{"NullFloat64", Type, 0, ""},
+		{"NullFloat64.Float64", Field, 0, ""},
+		{"NullFloat64.Valid", Field, 0, ""},
+		{"NullInt16", Type, 17, ""},
+		{"NullInt16.Int16", Field, 17, ""},
+		{"NullInt16.Valid", Field, 17, ""},
+		{"NullInt32", Type, 13, ""},
+		{"NullInt32.Int32", Field, 13, ""},
+		{"NullInt32.Valid", Field, 13, ""},
+		{"NullInt64", Type, 0, ""},
+		{"NullInt64.Int64", Field, 0, ""},
+		{"NullInt64.Valid", Field, 0, ""},
+		{"NullString", Type, 0, ""},
+		{"NullString.String", Field, 0, ""},
+		{"NullString.Valid", Field, 0, ""},
+		{"NullTime", Type, 13, ""},
+		{"NullTime.Time", Field, 13, ""},
+		{"NullTime.Valid", Field, 13, ""},
+		{"Open", Func, 0, "func(driverName string, dataSourceName string) (*DB, error)"},
+		{"OpenDB", Func, 10, "func(c driver.Connector) *DB"},
+		{"Out", Type, 9, ""},
+		{"Out.Dest", Field, 9, ""},
+		{"Out.In", Field, 9, ""},
+		{"RawBytes", Type, 0, ""},
+		{"Register", Func, 0, "func(name string, driver driver.Driver)"},
+		{"Result", Type, 0, ""},
+		{"Row", Type, 0, ""},
+		{"Rows", Type, 0, ""},
+		{"Scanner", Type, 0, ""},
+		{"Stmt", Type, 0, ""},
+		{"Tx", Type, 0, ""},
+		{"TxOptions", Type, 8, ""},
+		{"TxOptions.Isolation", Field, 8, ""},
+		{"TxOptions.ReadOnly", Field, 8, ""},
 	},
 	"database/sql/driver": {
-		{"(NotNull).ConvertValue", Method, 0},
-		{"(Null).ConvertValue", Method, 0},
-		{"(RowsAffected).LastInsertId", Method, 0},
-		{"(RowsAffected).RowsAffected", Method, 0},
-		{"Bool", Var, 0},
-		{"ColumnConverter", Type, 0},
-		{"Conn", Type, 0},
-		{"ConnBeginTx", Type, 8},
-		{"ConnPrepareContext", Type, 8},
-		{"Connector", Type, 10},
-		{"DefaultParameterConverter", Var, 0},
-		{"Driver", Type, 0},
-		{"DriverContext", Type, 10},
-		{"ErrBadConn", Var, 0},
-		{"ErrRemoveArgument", Var, 9},
-		{"ErrSkip", Var, 0},
-		{"Execer", Type, 0},
-		{"ExecerContext", Type, 8},
-		{"Int32", Var, 0},
-		{"IsScanValue", Func, 0},
-		{"IsValue", Func, 0},
-		{"IsolationLevel", Type, 8},
-		{"NamedValue", Type, 8},
-		{"NamedValue.Name", Field, 8},
-		{"NamedValue.Ordinal", Field, 8},
-		{"NamedValue.Value", Field, 8},
-		{"NamedValueChecker", Type, 9},
-		{"NotNull", Type, 0},
-		{"NotNull.Converter", Field, 0},
-		{"Null", Type, 0},
-		{"Null.Converter", Field, 0},
-		{"Pinger", Type, 8},
-		{"Queryer", Type, 1},
-		{"QueryerContext", Type, 8},
-		{"Result", Type, 0},
-		{"ResultNoRows", Var, 0},
-		{"Rows", Type, 0},
-		{"RowsAffected", Type, 0},
-		{"RowsColumnTypeDatabaseTypeName", Type, 8},
-		{"RowsColumnTypeLength", Type, 8},
-		{"RowsColumnTypeNullable", Type, 8},
-		{"RowsColumnTypePrecisionScale", Type, 8},
-		{"RowsColumnTypeScanType", Type, 8},
-		{"RowsNextResultSet", Type, 8},
-		{"SessionResetter", Type, 10},
-		{"Stmt", Type, 0},
-		{"StmtExecContext", Type, 8},
-		{"StmtQueryContext", Type, 8},
-		{"String", Var, 0},
-		{"Tx", Type, 0},
-		{"TxOptions", Type, 8},
-		{"TxOptions.Isolation", Field, 8},
-		{"TxOptions.ReadOnly", Field, 8},
-		{"Validator", Type, 15},
-		{"Value", Type, 0},
-		{"ValueConverter", Type, 0},
-		{"Valuer", Type, 0},
+		{"(NotNull).ConvertValue", Method, 0, ""},
+		{"(Null).ConvertValue", Method, 0, ""},
+		{"(RowsAffected).LastInsertId", Method, 0, ""},
+		{"(RowsAffected).RowsAffected", Method, 0, ""},
+		{"Bool", Var, 0, ""},
+		{"ColumnConverter", Type, 0, ""},
+		{"Conn", Type, 0, ""},
+		{"ConnBeginTx", Type, 8, ""},
+		{"ConnPrepareContext", Type, 8, ""},
+		{"Connector", Type, 10, ""},
+		{"DefaultParameterConverter", Var, 0, ""},
+		{"Driver", Type, 0, ""},
+		{"DriverContext", Type, 10, ""},
+		{"ErrBadConn", Var, 0, ""},
+		{"ErrRemoveArgument", Var, 9, ""},
+		{"ErrSkip", Var, 0, ""},
+		{"Execer", Type, 0, ""},
+		{"ExecerContext", Type, 8, ""},
+		{"Int32", Var, 0, ""},
+		{"IsScanValue", Func, 0, "func(v any) bool"},
+		{"IsValue", Func, 0, "func(v any) bool"},
+		{"IsolationLevel", Type, 8, ""},
+		{"NamedValue", Type, 8, ""},
+		{"NamedValue.Name", Field, 8, ""},
+		{"NamedValue.Ordinal", Field, 8, ""},
+		{"NamedValue.Value", Field, 8, ""},
+		{"NamedValueChecker", Type, 9, ""},
+		{"NotNull", Type, 0, ""},
+		{"NotNull.Converter", Field, 0, ""},
+		{"Null", Type, 0, ""},
+		{"Null.Converter", Field, 0, ""},
+		{"Pinger", Type, 8, ""},
+		{"Queryer", Type, 1, ""},
+		{"QueryerContext", Type, 8, ""},
+		{"Result", Type, 0, ""},
+		{"ResultNoRows", Var, 0, ""},
+		{"Rows", Type, 0, ""},
+		{"RowsAffected", Type, 0, ""},
+		{"RowsColumnTypeDatabaseTypeName", Type, 8, ""},
+		{"RowsColumnTypeLength", Type, 8, ""},
+		{"RowsColumnTypeNullable", Type, 8, ""},
+		{"RowsColumnTypePrecisionScale", Type, 8, ""},
+		{"RowsColumnTypeScanType", Type, 8, ""},
+		{"RowsNextResultSet", Type, 8, ""},
+		{"SessionResetter", Type, 10, ""},
+		{"Stmt", Type, 0, ""},
+		{"StmtExecContext", Type, 8, ""},
+		{"StmtQueryContext", Type, 8, ""},
+		{"String", Var, 0, ""},
+		{"Tx", Type, 0, ""},
+		{"TxOptions", Type, 8, ""},
+		{"TxOptions.Isolation", Field, 8, ""},
+		{"TxOptions.ReadOnly", Field, 8, ""},
+		{"Validator", Type, 15, ""},
+		{"Value", Type, 0, ""},
+		{"ValueConverter", Type, 0, ""},
+		{"Valuer", Type, 0, ""},
 	},
 	"debug/buildinfo": {
-		{"BuildInfo", Type, 18},
-		{"Read", Func, 18},
-		{"ReadFile", Func, 18},
+		{"BuildInfo", Type, 18, ""},
+		{"Read", Func, 18, "func(r io.ReaderAt) (*BuildInfo, error)"},
+		{"ReadFile", Func, 18, "func(name string) (info *BuildInfo, err error)"},
 	},
 	"debug/dwarf": {
-		{"(*AddrType).Basic", Method, 0},
-		{"(*AddrType).Common", Method, 0},
-		{"(*AddrType).Size", Method, 0},
-		{"(*AddrType).String", Method, 0},
-		{"(*ArrayType).Common", Method, 0},
-		{"(*ArrayType).Size", Method, 0},
-		{"(*ArrayType).String", Method, 0},
-		{"(*BasicType).Basic", Method, 0},
-		{"(*BasicType).Common", Method, 0},
-		{"(*BasicType).Size", Method, 0},
-		{"(*BasicType).String", Method, 0},
-		{"(*BoolType).Basic", Method, 0},
-		{"(*BoolType).Common", Method, 0},
-		{"(*BoolType).Size", Method, 0},
-		{"(*BoolType).String", Method, 0},
-		{"(*CharType).Basic", Method, 0},
-		{"(*CharType).Common", Method, 0},
-		{"(*CharType).Size", Method, 0},
-		{"(*CharType).String", Method, 0},
-		{"(*CommonType).Common", Method, 0},
-		{"(*CommonType).Size", Method, 0},
-		{"(*ComplexType).Basic", Method, 0},
-		{"(*ComplexType).Common", Method, 0},
-		{"(*ComplexType).Size", Method, 0},
-		{"(*ComplexType).String", Method, 0},
-		{"(*Data).AddSection", Method, 14},
-		{"(*Data).AddTypes", Method, 3},
-		{"(*Data).LineReader", Method, 5},
-		{"(*Data).Ranges", Method, 7},
-		{"(*Data).Reader", Method, 0},
-		{"(*Data).Type", Method, 0},
-		{"(*DotDotDotType).Common", Method, 0},
-		{"(*DotDotDotType).Size", Method, 0},
-		{"(*DotDotDotType).String", Method, 0},
-		{"(*Entry).AttrField", Method, 5},
-		{"(*Entry).Val", Method, 0},
-		{"(*EnumType).Common", Method, 0},
-		{"(*EnumType).Size", Method, 0},
-		{"(*EnumType).String", Method, 0},
-		{"(*FloatType).Basic", Method, 0},
-		{"(*FloatType).Common", Method, 0},
-		{"(*FloatType).Size", Method, 0},
-		{"(*FloatType).String", Method, 0},
-		{"(*FuncType).Common", Method, 0},
-		{"(*FuncType).Size", Method, 0},
-		{"(*FuncType).String", Method, 0},
-		{"(*IntType).Basic", Method, 0},
-		{"(*IntType).Common", Method, 0},
-		{"(*IntType).Size", Method, 0},
-		{"(*IntType).String", Method, 0},
-		{"(*LineReader).Files", Method, 14},
-		{"(*LineReader).Next", Method, 5},
-		{"(*LineReader).Reset", Method, 5},
-		{"(*LineReader).Seek", Method, 5},
-		{"(*LineReader).SeekPC", Method, 5},
-		{"(*LineReader).Tell", Method, 5},
-		{"(*PtrType).Common", Method, 0},
-		{"(*PtrType).Size", Method, 0},
-		{"(*PtrType).String", Method, 0},
-		{"(*QualType).Common", Method, 0},
-		{"(*QualType).Size", Method, 0},
-		{"(*QualType).String", Method, 0},
-		{"(*Reader).AddressSize", Method, 5},
-		{"(*Reader).ByteOrder", Method, 14},
-		{"(*Reader).Next", Method, 0},
-		{"(*Reader).Seek", Method, 0},
-		{"(*Reader).SeekPC", Method, 7},
-		{"(*Reader).SkipChildren", Method, 0},
-		{"(*StructType).Common", Method, 0},
-		{"(*StructType).Defn", Method, 0},
-		{"(*StructType).Size", Method, 0},
-		{"(*StructType).String", Method, 0},
-		{"(*TypedefType).Common", Method, 0},
-		{"(*TypedefType).Size", Method, 0},
-		{"(*TypedefType).String", Method, 0},
-		{"(*UcharType).Basic", Method, 0},
-		{"(*UcharType).Common", Method, 0},
-		{"(*UcharType).Size", Method, 0},
-		{"(*UcharType).String", Method, 0},
-		{"(*UintType).Basic", Method, 0},
-		{"(*UintType).Common", Method, 0},
-		{"(*UintType).Size", Method, 0},
-		{"(*UintType).String", Method, 0},
-		{"(*UnspecifiedType).Basic", Method, 4},
-		{"(*UnspecifiedType).Common", Method, 4},
-		{"(*UnspecifiedType).Size", Method, 4},
-		{"(*UnspecifiedType).String", Method, 4},
-		{"(*UnsupportedType).Common", Method, 13},
-		{"(*UnsupportedType).Size", Method, 13},
-		{"(*UnsupportedType).String", Method, 13},
-		{"(*VoidType).Common", Method, 0},
-		{"(*VoidType).Size", Method, 0},
-		{"(*VoidType).String", Method, 0},
-		{"(Attr).GoString", Method, 0},
-		{"(Attr).String", Method, 0},
-		{"(Class).GoString", Method, 5},
-		{"(Class).String", Method, 5},
-		{"(DecodeError).Error", Method, 0},
-		{"(Tag).GoString", Method, 0},
-		{"(Tag).String", Method, 0},
-		{"AddrType", Type, 0},
-		{"AddrType.BasicType", Field, 0},
-		{"ArrayType", Type, 0},
-		{"ArrayType.CommonType", Field, 0},
-		{"ArrayType.Count", Field, 0},
-		{"ArrayType.StrideBitSize", Field, 0},
-		{"ArrayType.Type", Field, 0},
-		{"Attr", Type, 0},
-		{"AttrAbstractOrigin", Const, 0},
-		{"AttrAccessibility", Const, 0},
-		{"AttrAddrBase", Const, 14},
-		{"AttrAddrClass", Const, 0},
-		{"AttrAlignment", Const, 14},
-		{"AttrAllocated", Const, 0},
-		{"AttrArtificial", Const, 0},
-		{"AttrAssociated", Const, 0},
-		{"AttrBaseTypes", Const, 0},
-		{"AttrBinaryScale", Const, 14},
-		{"AttrBitOffset", Const, 0},
-		{"AttrBitSize", Const, 0},
-		{"AttrByteSize", Const, 0},
-		{"AttrCallAllCalls", Const, 14},
-		{"AttrCallAllSourceCalls", Const, 14},
-		{"AttrCallAllTailCalls", Const, 14},
-		{"AttrCallColumn", Const, 0},
-		{"AttrCallDataLocation", Const, 14},
-		{"AttrCallDataValue", Const, 14},
-		{"AttrCallFile", Const, 0},
-		{"AttrCallLine", Const, 0},
-		{"AttrCallOrigin", Const, 14},
-		{"AttrCallPC", Const, 14},
-		{"AttrCallParameter", Const, 14},
-		{"AttrCallReturnPC", Const, 14},
-		{"AttrCallTailCall", Const, 14},
-		{"AttrCallTarget", Const, 14},
-		{"AttrCallTargetClobbered", Const, 14},
-		{"AttrCallValue", Const, 14},
-		{"AttrCalling", Const, 0},
-		{"AttrCommonRef", Const, 0},
-		{"AttrCompDir", Const, 0},
-		{"AttrConstExpr", Const, 14},
-		{"AttrConstValue", Const, 0},
-		{"AttrContainingType", Const, 0},
-		{"AttrCount", Const, 0},
-		{"AttrDataBitOffset", Const, 14},
-		{"AttrDataLocation", Const, 0},
-		{"AttrDataMemberLoc", Const, 0},
-		{"AttrDecimalScale", Const, 14},
-		{"AttrDecimalSign", Const, 14},
-		{"AttrDeclColumn", Const, 0},
-		{"AttrDeclFile", Const, 0},
-		{"AttrDeclLine", Const, 0},
-		{"AttrDeclaration", Const, 0},
-		{"AttrDefaultValue", Const, 0},
-		{"AttrDefaulted", Const, 14},
-		{"AttrDeleted", Const, 14},
-		{"AttrDescription", Const, 0},
-		{"AttrDigitCount", Const, 14},
-		{"AttrDiscr", Const, 0},
-		{"AttrDiscrList", Const, 0},
-		{"AttrDiscrValue", Const, 0},
-		{"AttrDwoName", Const, 14},
-		{"AttrElemental", Const, 14},
-		{"AttrEncoding", Const, 0},
-		{"AttrEndianity", Const, 14},
-		{"AttrEntrypc", Const, 0},
-		{"AttrEnumClass", Const, 14},
-		{"AttrExplicit", Const, 14},
-		{"AttrExportSymbols", Const, 14},
-		{"AttrExtension", Const, 0},
-		{"AttrExternal", Const, 0},
-		{"AttrFrameBase", Const, 0},
-		{"AttrFriend", Const, 0},
-		{"AttrHighpc", Const, 0},
-		{"AttrIdentifierCase", Const, 0},
-		{"AttrImport", Const, 0},
-		{"AttrInline", Const, 0},
-		{"AttrIsOptional", Const, 0},
-		{"AttrLanguage", Const, 0},
-		{"AttrLinkageName", Const, 14},
-		{"AttrLocation", Const, 0},
-		{"AttrLoclistsBase", Const, 14},
-		{"AttrLowerBound", Const, 0},
-		{"AttrLowpc", Const, 0},
-		{"AttrMacroInfo", Const, 0},
-		{"AttrMacros", Const, 14},
-		{"AttrMainSubprogram", Const, 14},
-		{"AttrMutable", Const, 14},
-		{"AttrName", Const, 0},
-		{"AttrNamelistItem", Const, 0},
-		{"AttrNoreturn", Const, 14},
-		{"AttrObjectPointer", Const, 14},
-		{"AttrOrdering", Const, 0},
-		{"AttrPictureString", Const, 14},
-		{"AttrPriority", Const, 0},
-		{"AttrProducer", Const, 0},
-		{"AttrPrototyped", Const, 0},
-		{"AttrPure", Const, 14},
-		{"AttrRanges", Const, 0},
-		{"AttrRank", Const, 14},
-		{"AttrRecursive", Const, 14},
-		{"AttrReference", Const, 14},
-		{"AttrReturnAddr", Const, 0},
-		{"AttrRnglistsBase", Const, 14},
-		{"AttrRvalueReference", Const, 14},
-		{"AttrSegment", Const, 0},
-		{"AttrSibling", Const, 0},
-		{"AttrSignature", Const, 14},
-		{"AttrSmall", Const, 14},
-		{"AttrSpecification", Const, 0},
-		{"AttrStartScope", Const, 0},
-		{"AttrStaticLink", Const, 0},
-		{"AttrStmtList", Const, 0},
-		{"AttrStrOffsetsBase", Const, 14},
-		{"AttrStride", Const, 0},
-		{"AttrStrideSize", Const, 0},
-		{"AttrStringLength", Const, 0},
-		{"AttrStringLengthBitSize", Const, 14},
-		{"AttrStringLengthByteSize", Const, 14},
-		{"AttrThreadsScaled", Const, 14},
-		{"AttrTrampoline", Const, 0},
-		{"AttrType", Const, 0},
-		{"AttrUpperBound", Const, 0},
-		{"AttrUseLocation", Const, 0},
-		{"AttrUseUTF8", Const, 0},
-		{"AttrVarParam", Const, 0},
-		{"AttrVirtuality", Const, 0},
-		{"AttrVisibility", Const, 0},
-		{"AttrVtableElemLoc", Const, 0},
-		{"BasicType", Type, 0},
-		{"BasicType.BitOffset", Field, 0},
-		{"BasicType.BitSize", Field, 0},
-		{"BasicType.CommonType", Field, 0},
-		{"BasicType.DataBitOffset", Field, 18},
-		{"BoolType", Type, 0},
-		{"BoolType.BasicType", Field, 0},
-		{"CharType", Type, 0},
-		{"CharType.BasicType", Field, 0},
-		{"Class", Type, 5},
-		{"ClassAddrPtr", Const, 14},
-		{"ClassAddress", Const, 5},
-		{"ClassBlock", Const, 5},
-		{"ClassConstant", Const, 5},
-		{"ClassExprLoc", Const, 5},
-		{"ClassFlag", Const, 5},
-		{"ClassLinePtr", Const, 5},
-		{"ClassLocList", Const, 14},
-		{"ClassLocListPtr", Const, 5},
-		{"ClassMacPtr", Const, 5},
-		{"ClassRangeListPtr", Const, 5},
-		{"ClassReference", Const, 5},
-		{"ClassReferenceAlt", Const, 5},
-		{"ClassReferenceSig", Const, 5},
-		{"ClassRngList", Const, 14},
-		{"ClassRngListsPtr", Const, 14},
-		{"ClassStrOffsetsPtr", Const, 14},
-		{"ClassString", Const, 5},
-		{"ClassStringAlt", Const, 5},
-		{"ClassUnknown", Const, 6},
-		{"CommonType", Type, 0},
-		{"CommonType.ByteSize", Field, 0},
-		{"CommonType.Name", Field, 0},
-		{"ComplexType", Type, 0},
-		{"ComplexType.BasicType", Field, 0},
-		{"Data", Type, 0},
-		{"DecodeError", Type, 0},
-		{"DecodeError.Err", Field, 0},
-		{"DecodeError.Name", Field, 0},
-		{"DecodeError.Offset", Field, 0},
-		{"DotDotDotType", Type, 0},
-		{"DotDotDotType.CommonType", Field, 0},
-		{"Entry", Type, 0},
-		{"Entry.Children", Field, 0},
-		{"Entry.Field", Field, 0},
-		{"Entry.Offset", Field, 0},
-		{"Entry.Tag", Field, 0},
-		{"EnumType", Type, 0},
-		{"EnumType.CommonType", Field, 0},
-		{"EnumType.EnumName", Field, 0},
-		{"EnumType.Val", Field, 0},
-		{"EnumValue", Type, 0},
-		{"EnumValue.Name", Field, 0},
-		{"EnumValue.Val", Field, 0},
-		{"ErrUnknownPC", Var, 5},
-		{"Field", Type, 0},
-		{"Field.Attr", Field, 0},
-		{"Field.Class", Field, 5},
-		{"Field.Val", Field, 0},
-		{"FloatType", Type, 0},
-		{"FloatType.BasicType", Field, 0},
-		{"FuncType", Type, 0},
-		{"FuncType.CommonType", Field, 0},
-		{"FuncType.ParamType", Field, 0},
-		{"FuncType.ReturnType", Field, 0},
-		{"IntType", Type, 0},
-		{"IntType.BasicType", Field, 0},
-		{"LineEntry", Type, 5},
-		{"LineEntry.Address", Field, 5},
-		{"LineEntry.BasicBlock", Field, 5},
-		{"LineEntry.Column", Field, 5},
-		{"LineEntry.Discriminator", Field, 5},
-		{"LineEntry.EndSequence", Field, 5},
-		{"LineEntry.EpilogueBegin", Field, 5},
-		{"LineEntry.File", Field, 5},
-		{"LineEntry.ISA", Field, 5},
-		{"LineEntry.IsStmt", Field, 5},
-		{"LineEntry.Line", Field, 5},
-		{"LineEntry.OpIndex", Field, 5},
-		{"LineEntry.PrologueEnd", Field, 5},
-		{"LineFile", Type, 5},
-		{"LineFile.Length", Field, 5},
-		{"LineFile.Mtime", Field, 5},
-		{"LineFile.Name", Field, 5},
-		{"LineReader", Type, 5},
-		{"LineReaderPos", Type, 5},
-		{"New", Func, 0},
-		{"Offset", Type, 0},
-		{"PtrType", Type, 0},
-		{"PtrType.CommonType", Field, 0},
-		{"PtrType.Type", Field, 0},
-		{"QualType", Type, 0},
-		{"QualType.CommonType", Field, 0},
-		{"QualType.Qual", Field, 0},
-		{"QualType.Type", Field, 0},
-		{"Reader", Type, 0},
-		{"StructField", Type, 0},
-		{"StructField.BitOffset", Field, 0},
-		{"StructField.BitSize", Field, 0},
-		{"StructField.ByteOffset", Field, 0},
-		{"StructField.ByteSize", Field, 0},
-		{"StructField.DataBitOffset", Field, 18},
-		{"StructField.Name", Field, 0},
-		{"StructField.Type", Field, 0},
-		{"StructType", Type, 0},
-		{"StructType.CommonType", Field, 0},
-		{"StructType.Field", Field, 0},
-		{"StructType.Incomplete", Field, 0},
-		{"StructType.Kind", Field, 0},
-		{"StructType.StructName", Field, 0},
-		{"Tag", Type, 0},
-		{"TagAccessDeclaration", Const, 0},
-		{"TagArrayType", Const, 0},
-		{"TagAtomicType", Const, 14},
-		{"TagBaseType", Const, 0},
-		{"TagCallSite", Const, 14},
-		{"TagCallSiteParameter", Const, 14},
-		{"TagCatchDwarfBlock", Const, 0},
-		{"TagClassType", Const, 0},
-		{"TagCoarrayType", Const, 14},
-		{"TagCommonDwarfBlock", Const, 0},
-		{"TagCommonInclusion", Const, 0},
-		{"TagCompileUnit", Const, 0},
-		{"TagCondition", Const, 3},
-		{"TagConstType", Const, 0},
-		{"TagConstant", Const, 0},
-		{"TagDwarfProcedure", Const, 0},
-		{"TagDynamicType", Const, 14},
-		{"TagEntryPoint", Const, 0},
-		{"TagEnumerationType", Const, 0},
-		{"TagEnumerator", Const, 0},
-		{"TagFileType", Const, 0},
-		{"TagFormalParameter", Const, 0},
-		{"TagFriend", Const, 0},
-		{"TagGenericSubrange", Const, 14},
-		{"TagImmutableType", Const, 14},
-		{"TagImportedDeclaration", Const, 0},
-		{"TagImportedModule", Const, 0},
-		{"TagImportedUnit", Const, 0},
-		{"TagInheritance", Const, 0},
-		{"TagInlinedSubroutine", Const, 0},
-		{"TagInterfaceType", Const, 0},
-		{"TagLabel", Const, 0},
-		{"TagLexDwarfBlock", Const, 0},
-		{"TagMember", Const, 0},
-		{"TagModule", Const, 0},
-		{"TagMutableType", Const, 0},
-		{"TagNamelist", Const, 0},
-		{"TagNamelistItem", Const, 0},
-		{"TagNamespace", Const, 0},
-		{"TagPackedType", Const, 0},
-		{"TagPartialUnit", Const, 0},
-		{"TagPointerType", Const, 0},
-		{"TagPtrToMemberType", Const, 0},
-		{"TagReferenceType", Const, 0},
-		{"TagRestrictType", Const, 0},
-		{"TagRvalueReferenceType", Const, 3},
-		{"TagSetType", Const, 0},
-		{"TagSharedType", Const, 3},
-		{"TagSkeletonUnit", Const, 14},
-		{"TagStringType", Const, 0},
-		{"TagStructType", Const, 0},
-		{"TagSubprogram", Const, 0},
-		{"TagSubrangeType", Const, 0},
-		{"TagSubroutineType", Const, 0},
-		{"TagTemplateAlias", Const, 3},
-		{"TagTemplateTypeParameter", Const, 0},
-		{"TagTemplateValueParameter", Const, 0},
-		{"TagThrownType", Const, 0},
-		{"TagTryDwarfBlock", Const, 0},
-		{"TagTypeUnit", Const, 3},
-		{"TagTypedef", Const, 0},
-		{"TagUnionType", Const, 0},
-		{"TagUnspecifiedParameters", Const, 0},
-		{"TagUnspecifiedType", Const, 0},
-		{"TagVariable", Const, 0},
-		{"TagVariant", Const, 0},
-		{"TagVariantPart", Const, 0},
-		{"TagVolatileType", Const, 0},
-		{"TagWithStmt", Const, 0},
-		{"Type", Type, 0},
-		{"TypedefType", Type, 0},
-		{"TypedefType.CommonType", Field, 0},
-		{"TypedefType.Type", Field, 0},
-		{"UcharType", Type, 0},
-		{"UcharType.BasicType", Field, 0},
-		{"UintType", Type, 0},
-		{"UintType.BasicType", Field, 0},
-		{"UnspecifiedType", Type, 4},
-		{"UnspecifiedType.BasicType", Field, 4},
-		{"UnsupportedType", Type, 13},
-		{"UnsupportedType.CommonType", Field, 13},
-		{"UnsupportedType.Tag", Field, 13},
-		{"VoidType", Type, 0},
-		{"VoidType.CommonType", Field, 0},
+		{"(*AddrType).Basic", Method, 0, ""},
+		{"(*AddrType).Common", Method, 0, ""},
+		{"(*AddrType).Size", Method, 0, ""},
+		{"(*AddrType).String", Method, 0, ""},
+		{"(*ArrayType).Common", Method, 0, ""},
+		{"(*ArrayType).Size", Method, 0, ""},
+		{"(*ArrayType).String", Method, 0, ""},
+		{"(*BasicType).Basic", Method, 0, ""},
+		{"(*BasicType).Common", Method, 0, ""},
+		{"(*BasicType).Size", Method, 0, ""},
+		{"(*BasicType).String", Method, 0, ""},
+		{"(*BoolType).Basic", Method, 0, ""},
+		{"(*BoolType).Common", Method, 0, ""},
+		{"(*BoolType).Size", Method, 0, ""},
+		{"(*BoolType).String", Method, 0, ""},
+		{"(*CharType).Basic", Method, 0, ""},
+		{"(*CharType).Common", Method, 0, ""},
+		{"(*CharType).Size", Method, 0, ""},
+		{"(*CharType).String", Method, 0, ""},
+		{"(*CommonType).Common", Method, 0, ""},
+		{"(*CommonType).Size", Method, 0, ""},
+		{"(*ComplexType).Basic", Method, 0, ""},
+		{"(*ComplexType).Common", Method, 0, ""},
+		{"(*ComplexType).Size", Method, 0, ""},
+		{"(*ComplexType).String", Method, 0, ""},
+		{"(*Data).AddSection", Method, 14, ""},
+		{"(*Data).AddTypes", Method, 3, ""},
+		{"(*Data).LineReader", Method, 5, ""},
+		{"(*Data).Ranges", Method, 7, ""},
+		{"(*Data).Reader", Method, 0, ""},
+		{"(*Data).Type", Method, 0, ""},
+		{"(*DotDotDotType).Common", Method, 0, ""},
+		{"(*DotDotDotType).Size", Method, 0, ""},
+		{"(*DotDotDotType).String", Method, 0, ""},
+		{"(*Entry).AttrField", Method, 5, ""},
+		{"(*Entry).Val", Method, 0, ""},
+		{"(*EnumType).Common", Method, 0, ""},
+		{"(*EnumType).Size", Method, 0, ""},
+		{"(*EnumType).String", Method, 0, ""},
+		{"(*FloatType).Basic", Method, 0, ""},
+		{"(*FloatType).Common", Method, 0, ""},
+		{"(*FloatType).Size", Method, 0, ""},
+		{"(*FloatType).String", Method, 0, ""},
+		{"(*FuncType).Common", Method, 0, ""},
+		{"(*FuncType).Size", Method, 0, ""},
+		{"(*FuncType).String", Method, 0, ""},
+		{"(*IntType).Basic", Method, 0, ""},
+		{"(*IntType).Common", Method, 0, ""},
+		{"(*IntType).Size", Method, 0, ""},
+		{"(*IntType).String", Method, 0, ""},
+		{"(*LineReader).Files", Method, 14, ""},
+		{"(*LineReader).Next", Method, 5, ""},
+		{"(*LineReader).Reset", Method, 5, ""},
+		{"(*LineReader).Seek", Method, 5, ""},
+		{"(*LineReader).SeekPC", Method, 5, ""},
+		{"(*LineReader).Tell", Method, 5, ""},
+		{"(*PtrType).Common", Method, 0, ""},
+		{"(*PtrType).Size", Method, 0, ""},
+		{"(*PtrType).String", Method, 0, ""},
+		{"(*QualType).Common", Method, 0, ""},
+		{"(*QualType).Size", Method, 0, ""},
+		{"(*QualType).String", Method, 0, ""},
+		{"(*Reader).AddressSize", Method, 5, ""},
+		{"(*Reader).ByteOrder", Method, 14, ""},
+		{"(*Reader).Next", Method, 0, ""},
+		{"(*Reader).Seek", Method, 0, ""},
+		{"(*Reader).SeekPC", Method, 7, ""},
+		{"(*Reader).SkipChildren", Method, 0, ""},
+		{"(*StructType).Common", Method, 0, ""},
+		{"(*StructType).Defn", Method, 0, ""},
+		{"(*StructType).Size", Method, 0, ""},
+		{"(*StructType).String", Method, 0, ""},
+		{"(*TypedefType).Common", Method, 0, ""},
+		{"(*TypedefType).Size", Method, 0, ""},
+		{"(*TypedefType).String", Method, 0, ""},
+		{"(*UcharType).Basic", Method, 0, ""},
+		{"(*UcharType).Common", Method, 0, ""},
+		{"(*UcharType).Size", Method, 0, ""},
+		{"(*UcharType).String", Method, 0, ""},
+		{"(*UintType).Basic", Method, 0, ""},
+		{"(*UintType).Common", Method, 0, ""},
+		{"(*UintType).Size", Method, 0, ""},
+		{"(*UintType).String", Method, 0, ""},
+		{"(*UnspecifiedType).Basic", Method, 4, ""},
+		{"(*UnspecifiedType).Common", Method, 4, ""},
+		{"(*UnspecifiedType).Size", Method, 4, ""},
+		{"(*UnspecifiedType).String", Method, 4, ""},
+		{"(*UnsupportedType).Common", Method, 13, ""},
+		{"(*UnsupportedType).Size", Method, 13, ""},
+		{"(*UnsupportedType).String", Method, 13, ""},
+		{"(*VoidType).Common", Method, 0, ""},
+		{"(*VoidType).Size", Method, 0, ""},
+		{"(*VoidType).String", Method, 0, ""},
+		{"(Attr).GoString", Method, 0, ""},
+		{"(Attr).String", Method, 0, ""},
+		{"(Class).GoString", Method, 5, ""},
+		{"(Class).String", Method, 5, ""},
+		{"(DecodeError).Error", Method, 0, ""},
+		{"(Tag).GoString", Method, 0, ""},
+		{"(Tag).String", Method, 0, ""},
+		{"AddrType", Type, 0, ""},
+		{"AddrType.BasicType", Field, 0, ""},
+		{"ArrayType", Type, 0, ""},
+		{"ArrayType.CommonType", Field, 0, ""},
+		{"ArrayType.Count", Field, 0, ""},
+		{"ArrayType.StrideBitSize", Field, 0, ""},
+		{"ArrayType.Type", Field, 0, ""},
+		{"Attr", Type, 0, ""},
+		{"AttrAbstractOrigin", Const, 0, ""},
+		{"AttrAccessibility", Const, 0, ""},
+		{"AttrAddrBase", Const, 14, ""},
+		{"AttrAddrClass", Const, 0, ""},
+		{"AttrAlignment", Const, 14, ""},
+		{"AttrAllocated", Const, 0, ""},
+		{"AttrArtificial", Const, 0, ""},
+		{"AttrAssociated", Const, 0, ""},
+		{"AttrBaseTypes", Const, 0, ""},
+		{"AttrBinaryScale", Const, 14, ""},
+		{"AttrBitOffset", Const, 0, ""},
+		{"AttrBitSize", Const, 0, ""},
+		{"AttrByteSize", Const, 0, ""},
+		{"AttrCallAllCalls", Const, 14, ""},
+		{"AttrCallAllSourceCalls", Const, 14, ""},
+		{"AttrCallAllTailCalls", Const, 14, ""},
+		{"AttrCallColumn", Const, 0, ""},
+		{"AttrCallDataLocation", Const, 14, ""},
+		{"AttrCallDataValue", Const, 14, ""},
+		{"AttrCallFile", Const, 0, ""},
+		{"AttrCallLine", Const, 0, ""},
+		{"AttrCallOrigin", Const, 14, ""},
+		{"AttrCallPC", Const, 14, ""},
+		{"AttrCallParameter", Const, 14, ""},
+		{"AttrCallReturnPC", Const, 14, ""},
+		{"AttrCallTailCall", Const, 14, ""},
+		{"AttrCallTarget", Const, 14, ""},
+		{"AttrCallTargetClobbered", Const, 14, ""},
+		{"AttrCallValue", Const, 14, ""},
+		{"AttrCalling", Const, 0, ""},
+		{"AttrCommonRef", Const, 0, ""},
+		{"AttrCompDir", Const, 0, ""},
+		{"AttrConstExpr", Const, 14, ""},
+		{"AttrConstValue", Const, 0, ""},
+		{"AttrContainingType", Const, 0, ""},
+		{"AttrCount", Const, 0, ""},
+		{"AttrDataBitOffset", Const, 14, ""},
+		{"AttrDataLocation", Const, 0, ""},
+		{"AttrDataMemberLoc", Const, 0, ""},
+		{"AttrDecimalScale", Const, 14, ""},
+		{"AttrDecimalSign", Const, 14, ""},
+		{"AttrDeclColumn", Const, 0, ""},
+		{"AttrDeclFile", Const, 0, ""},
+		{"AttrDeclLine", Const, 0, ""},
+		{"AttrDeclaration", Const, 0, ""},
+		{"AttrDefaultValue", Const, 0, ""},
+		{"AttrDefaulted", Const, 14, ""},
+		{"AttrDeleted", Const, 14, ""},
+		{"AttrDescription", Const, 0, ""},
+		{"AttrDigitCount", Const, 14, ""},
+		{"AttrDiscr", Const, 0, ""},
+		{"AttrDiscrList", Const, 0, ""},
+		{"AttrDiscrValue", Const, 0, ""},
+		{"AttrDwoName", Const, 14, ""},
+		{"AttrElemental", Const, 14, ""},
+		{"AttrEncoding", Const, 0, ""},
+		{"AttrEndianity", Const, 14, ""},
+		{"AttrEntrypc", Const, 0, ""},
+		{"AttrEnumClass", Const, 14, ""},
+		{"AttrExplicit", Const, 14, ""},
+		{"AttrExportSymbols", Const, 14, ""},
+		{"AttrExtension", Const, 0, ""},
+		{"AttrExternal", Const, 0, ""},
+		{"AttrFrameBase", Const, 0, ""},
+		{"AttrFriend", Const, 0, ""},
+		{"AttrHighpc", Const, 0, ""},
+		{"AttrIdentifierCase", Const, 0, ""},
+		{"AttrImport", Const, 0, ""},
+		{"AttrInline", Const, 0, ""},
+		{"AttrIsOptional", Const, 0, ""},
+		{"AttrLanguage", Const, 0, ""},
+		{"AttrLinkageName", Const, 14, ""},
+		{"AttrLocation", Const, 0, ""},
+		{"AttrLoclistsBase", Const, 14, ""},
+		{"AttrLowerBound", Const, 0, ""},
+		{"AttrLowpc", Const, 0, ""},
+		{"AttrMacroInfo", Const, 0, ""},
+		{"AttrMacros", Const, 14, ""},
+		{"AttrMainSubprogram", Const, 14, ""},
+		{"AttrMutable", Const, 14, ""},
+		{"AttrName", Const, 0, ""},
+		{"AttrNamelistItem", Const, 0, ""},
+		{"AttrNoreturn", Const, 14, ""},
+		{"AttrObjectPointer", Const, 14, ""},
+		{"AttrOrdering", Const, 0, ""},
+		{"AttrPictureString", Const, 14, ""},
+		{"AttrPriority", Const, 0, ""},
+		{"AttrProducer", Const, 0, ""},
+		{"AttrPrototyped", Const, 0, ""},
+		{"AttrPure", Const, 14, ""},
+		{"AttrRanges", Const, 0, ""},
+		{"AttrRank", Const, 14, ""},
+		{"AttrRecursive", Const, 14, ""},
+		{"AttrReference", Const, 14, ""},
+		{"AttrReturnAddr", Const, 0, ""},
+		{"AttrRnglistsBase", Const, 14, ""},
+		{"AttrRvalueReference", Const, 14, ""},
+		{"AttrSegment", Const, 0, ""},
+		{"AttrSibling", Const, 0, ""},
+		{"AttrSignature", Const, 14, ""},
+		{"AttrSmall", Const, 14, ""},
+		{"AttrSpecification", Const, 0, ""},
+		{"AttrStartScope", Const, 0, ""},
+		{"AttrStaticLink", Const, 0, ""},
+		{"AttrStmtList", Const, 0, ""},
+		{"AttrStrOffsetsBase", Const, 14, ""},
+		{"AttrStride", Const, 0, ""},
+		{"AttrStrideSize", Const, 0, ""},
+		{"AttrStringLength", Const, 0, ""},
+		{"AttrStringLengthBitSize", Const, 14, ""},
+		{"AttrStringLengthByteSize", Const, 14, ""},
+		{"AttrThreadsScaled", Const, 14, ""},
+		{"AttrTrampoline", Const, 0, ""},
+		{"AttrType", Const, 0, ""},
+		{"AttrUpperBound", Const, 0, ""},
+		{"AttrUseLocation", Const, 0, ""},
+		{"AttrUseUTF8", Const, 0, ""},
+		{"AttrVarParam", Const, 0, ""},
+		{"AttrVirtuality", Const, 0, ""},
+		{"AttrVisibility", Const, 0, ""},
+		{"AttrVtableElemLoc", Const, 0, ""},
+		{"BasicType", Type, 0, ""},
+		{"BasicType.BitOffset", Field, 0, ""},
+		{"BasicType.BitSize", Field, 0, ""},
+		{"BasicType.CommonType", Field, 0, ""},
+		{"BasicType.DataBitOffset", Field, 18, ""},
+		{"BoolType", Type, 0, ""},
+		{"BoolType.BasicType", Field, 0, ""},
+		{"CharType", Type, 0, ""},
+		{"CharType.BasicType", Field, 0, ""},
+		{"Class", Type, 5, ""},
+		{"ClassAddrPtr", Const, 14, ""},
+		{"ClassAddress", Const, 5, ""},
+		{"ClassBlock", Const, 5, ""},
+		{"ClassConstant", Const, 5, ""},
+		{"ClassExprLoc", Const, 5, ""},
+		{"ClassFlag", Const, 5, ""},
+		{"ClassLinePtr", Const, 5, ""},
+		{"ClassLocList", Const, 14, ""},
+		{"ClassLocListPtr", Const, 5, ""},
+		{"ClassMacPtr", Const, 5, ""},
+		{"ClassRangeListPtr", Const, 5, ""},
+		{"ClassReference", Const, 5, ""},
+		{"ClassReferenceAlt", Const, 5, ""},
+		{"ClassReferenceSig", Const, 5, ""},
+		{"ClassRngList", Const, 14, ""},
+		{"ClassRngListsPtr", Const, 14, ""},
+		{"ClassStrOffsetsPtr", Const, 14, ""},
+		{"ClassString", Const, 5, ""},
+		{"ClassStringAlt", Const, 5, ""},
+		{"ClassUnknown", Const, 6, ""},
+		{"CommonType", Type, 0, ""},
+		{"CommonType.ByteSize", Field, 0, ""},
+		{"CommonType.Name", Field, 0, ""},
+		{"ComplexType", Type, 0, ""},
+		{"ComplexType.BasicType", Field, 0, ""},
+		{"Data", Type, 0, ""},
+		{"DecodeError", Type, 0, ""},
+		{"DecodeError.Err", Field, 0, ""},
+		{"DecodeError.Name", Field, 0, ""},
+		{"DecodeError.Offset", Field, 0, ""},
+		{"DotDotDotType", Type, 0, ""},
+		{"DotDotDotType.CommonType", Field, 0, ""},
+		{"Entry", Type, 0, ""},
+		{"Entry.Children", Field, 0, ""},
+		{"Entry.Field", Field, 0, ""},
+		{"Entry.Offset", Field, 0, ""},
+		{"Entry.Tag", Field, 0, ""},
+		{"EnumType", Type, 0, ""},
+		{"EnumType.CommonType", Field, 0, ""},
+		{"EnumType.EnumName", Field, 0, ""},
+		{"EnumType.Val", Field, 0, ""},
+		{"EnumValue", Type, 0, ""},
+		{"EnumValue.Name", Field, 0, ""},
+		{"EnumValue.Val", Field, 0, ""},
+		{"ErrUnknownPC", Var, 5, ""},
+		{"Field", Type, 0, ""},
+		{"Field.Attr", Field, 0, ""},
+		{"Field.Class", Field, 5, ""},
+		{"Field.Val", Field, 0, ""},
+		{"FloatType", Type, 0, ""},
+		{"FloatType.BasicType", Field, 0, ""},
+		{"FuncType", Type, 0, ""},
+		{"FuncType.CommonType", Field, 0, ""},
+		{"FuncType.ParamType", Field, 0, ""},
+		{"FuncType.ReturnType", Field, 0, ""},
+		{"IntType", Type, 0, ""},
+		{"IntType.BasicType", Field, 0, ""},
+		{"LineEntry", Type, 5, ""},
+		{"LineEntry.Address", Field, 5, ""},
+		{"LineEntry.BasicBlock", Field, 5, ""},
+		{"LineEntry.Column", Field, 5, ""},
+		{"LineEntry.Discriminator", Field, 5, ""},
+		{"LineEntry.EndSequence", Field, 5, ""},
+		{"LineEntry.EpilogueBegin", Field, 5, ""},
+		{"LineEntry.File", Field, 5, ""},
+		{"LineEntry.ISA", Field, 5, ""},
+		{"LineEntry.IsStmt", Field, 5, ""},
+		{"LineEntry.Line", Field, 5, ""},
+		{"LineEntry.OpIndex", Field, 5, ""},
+		{"LineEntry.PrologueEnd", Field, 5, ""},
+		{"LineFile", Type, 5, ""},
+		{"LineFile.Length", Field, 5, ""},
+		{"LineFile.Mtime", Field, 5, ""},
+		{"LineFile.Name", Field, 5, ""},
+		{"LineReader", Type, 5, ""},
+		{"LineReaderPos", Type, 5, ""},
+		{"New", Func, 0, "func(abbrev []byte, aranges []byte, frame []byte, info []byte, line []byte, pubnames []byte, ranges []byte, str []byte) (*Data, error)"},
+		{"Offset", Type, 0, ""},
+		{"PtrType", Type, 0, ""},
+		{"PtrType.CommonType", Field, 0, ""},
+		{"PtrType.Type", Field, 0, ""},
+		{"QualType", Type, 0, ""},
+		{"QualType.CommonType", Field, 0, ""},
+		{"QualType.Qual", Field, 0, ""},
+		{"QualType.Type", Field, 0, ""},
+		{"Reader", Type, 0, ""},
+		{"StructField", Type, 0, ""},
+		{"StructField.BitOffset", Field, 0, ""},
+		{"StructField.BitSize", Field, 0, ""},
+		{"StructField.ByteOffset", Field, 0, ""},
+		{"StructField.ByteSize", Field, 0, ""},
+		{"StructField.DataBitOffset", Field, 18, ""},
+		{"StructField.Name", Field, 0, ""},
+		{"StructField.Type", Field, 0, ""},
+		{"StructType", Type, 0, ""},
+		{"StructType.CommonType", Field, 0, ""},
+		{"StructType.Field", Field, 0, ""},
+		{"StructType.Incomplete", Field, 0, ""},
+		{"StructType.Kind", Field, 0, ""},
+		{"StructType.StructName", Field, 0, ""},
+		{"Tag", Type, 0, ""},
+		{"TagAccessDeclaration", Const, 0, ""},
+		{"TagArrayType", Const, 0, ""},
+		{"TagAtomicType", Const, 14, ""},
+		{"TagBaseType", Const, 0, ""},
+		{"TagCallSite", Const, 14, ""},
+		{"TagCallSiteParameter", Const, 14, ""},
+		{"TagCatchDwarfBlock", Const, 0, ""},
+		{"TagClassType", Const, 0, ""},
+		{"TagCoarrayType", Const, 14, ""},
+		{"TagCommonDwarfBlock", Const, 0, ""},
+		{"TagCommonInclusion", Const, 0, ""},
+		{"TagCompileUnit", Const, 0, ""},
+		{"TagCondition", Const, 3, ""},
+		{"TagConstType", Const, 0, ""},
+		{"TagConstant", Const, 0, ""},
+		{"TagDwarfProcedure", Const, 0, ""},
+		{"TagDynamicType", Const, 14, ""},
+		{"TagEntryPoint", Const, 0, ""},
+		{"TagEnumerationType", Const, 0, ""},
+		{"TagEnumerator", Const, 0, ""},
+		{"TagFileType", Const, 0, ""},
+		{"TagFormalParameter", Const, 0, ""},
+		{"TagFriend", Const, 0, ""},
+		{"TagGenericSubrange", Const, 14, ""},
+		{"TagImmutableType", Const, 14, ""},
+		{"TagImportedDeclaration", Const, 0, ""},
+		{"TagImportedModule", Const, 0, ""},
+		{"TagImportedUnit", Const, 0, ""},
+		{"TagInheritance", Const, 0, ""},
+		{"TagInlinedSubroutine", Const, 0, ""},
+		{"TagInterfaceType", Const, 0, ""},
+		{"TagLabel", Const, 0, ""},
+		{"TagLexDwarfBlock", Const, 0, ""},
+		{"TagMember", Const, 0, ""},
+		{"TagModule", Const, 0, ""},
+		{"TagMutableType", Const, 0, ""},
+		{"TagNamelist", Const, 0, ""},
+		{"TagNamelistItem", Const, 0, ""},
+		{"TagNamespace", Const, 0, ""},
+		{"TagPackedType", Const, 0, ""},
+		{"TagPartialUnit", Const, 0, ""},
+		{"TagPointerType", Const, 0, ""},
+		{"TagPtrToMemberType", Const, 0, ""},
+		{"TagReferenceType", Const, 0, ""},
+		{"TagRestrictType", Const, 0, ""},
+		{"TagRvalueReferenceType", Const, 3, ""},
+		{"TagSetType", Const, 0, ""},
+		{"TagSharedType", Const, 3, ""},
+		{"TagSkeletonUnit", Const, 14, ""},
+		{"TagStringType", Const, 0, ""},
+		{"TagStructType", Const, 0, ""},
+		{"TagSubprogram", Const, 0, ""},
+		{"TagSubrangeType", Const, 0, ""},
+		{"TagSubroutineType", Const, 0, ""},
+		{"TagTemplateAlias", Const, 3, ""},
+		{"TagTemplateTypeParameter", Const, 0, ""},
+		{"TagTemplateValueParameter", Const, 0, ""},
+		{"TagThrownType", Const, 0, ""},
+		{"TagTryDwarfBlock", Const, 0, ""},
+		{"TagTypeUnit", Const, 3, ""},
+		{"TagTypedef", Const, 0, ""},
+		{"TagUnionType", Const, 0, ""},
+		{"TagUnspecifiedParameters", Const, 0, ""},
+		{"TagUnspecifiedType", Const, 0, ""},
+		{"TagVariable", Const, 0, ""},
+		{"TagVariant", Const, 0, ""},
+		{"TagVariantPart", Const, 0, ""},
+		{"TagVolatileType", Const, 0, ""},
+		{"TagWithStmt", Const, 0, ""},
+		{"Type", Type, 0, ""},
+		{"TypedefType", Type, 0, ""},
+		{"TypedefType.CommonType", Field, 0, ""},
+		{"TypedefType.Type", Field, 0, ""},
+		{"UcharType", Type, 0, ""},
+		{"UcharType.BasicType", Field, 0, ""},
+		{"UintType", Type, 0, ""},
+		{"UintType.BasicType", Field, 0, ""},
+		{"UnspecifiedType", Type, 4, ""},
+		{"UnspecifiedType.BasicType", Field, 4, ""},
+		{"UnsupportedType", Type, 13, ""},
+		{"UnsupportedType.CommonType", Field, 13, ""},
+		{"UnsupportedType.Tag", Field, 13, ""},
+		{"VoidType", Type, 0, ""},
+		{"VoidType.CommonType", Field, 0, ""},
 	},
 	"debug/elf": {
-		{"(*File).Close", Method, 0},
-		{"(*File).DWARF", Method, 0},
-		{"(*File).DynString", Method, 1},
-		{"(*File).DynValue", Method, 21},
-		{"(*File).DynamicSymbols", Method, 4},
-		{"(*File).DynamicVersionNeeds", Method, 24},
-		{"(*File).DynamicVersions", Method, 24},
-		{"(*File).ImportedLibraries", Method, 0},
-		{"(*File).ImportedSymbols", Method, 0},
-		{"(*File).Section", Method, 0},
-		{"(*File).SectionByType", Method, 0},
-		{"(*File).Symbols", Method, 0},
-		{"(*FormatError).Error", Method, 0},
-		{"(*Prog).Open", Method, 0},
-		{"(*Section).Data", Method, 0},
-		{"(*Section).Open", Method, 0},
-		{"(Class).GoString", Method, 0},
-		{"(Class).String", Method, 0},
-		{"(CompressionType).GoString", Method, 6},
-		{"(CompressionType).String", Method, 6},
-		{"(Data).GoString", Method, 0},
-		{"(Data).String", Method, 0},
-		{"(DynFlag).GoString", Method, 0},
-		{"(DynFlag).String", Method, 0},
-		{"(DynFlag1).GoString", Method, 21},
-		{"(DynFlag1).String", Method, 21},
-		{"(DynTag).GoString", Method, 0},
-		{"(DynTag).String", Method, 0},
-		{"(Machine).GoString", Method, 0},
-		{"(Machine).String", Method, 0},
-		{"(NType).GoString", Method, 0},
-		{"(NType).String", Method, 0},
-		{"(OSABI).GoString", Method, 0},
-		{"(OSABI).String", Method, 0},
-		{"(Prog).ReadAt", Method, 0},
-		{"(ProgFlag).GoString", Method, 0},
-		{"(ProgFlag).String", Method, 0},
-		{"(ProgType).GoString", Method, 0},
-		{"(ProgType).String", Method, 0},
-		{"(R_386).GoString", Method, 0},
-		{"(R_386).String", Method, 0},
-		{"(R_390).GoString", Method, 7},
-		{"(R_390).String", Method, 7},
-		{"(R_AARCH64).GoString", Method, 4},
-		{"(R_AARCH64).String", Method, 4},
-		{"(R_ALPHA).GoString", Method, 0},
-		{"(R_ALPHA).String", Method, 0},
-		{"(R_ARM).GoString", Method, 0},
-		{"(R_ARM).String", Method, 0},
-		{"(R_LARCH).GoString", Method, 19},
-		{"(R_LARCH).String", Method, 19},
-		{"(R_MIPS).GoString", Method, 6},
-		{"(R_MIPS).String", Method, 6},
-		{"(R_PPC).GoString", Method, 0},
-		{"(R_PPC).String", Method, 0},
-		{"(R_PPC64).GoString", Method, 5},
-		{"(R_PPC64).String", Method, 5},
-		{"(R_RISCV).GoString", Method, 11},
-		{"(R_RISCV).String", Method, 11},
-		{"(R_SPARC).GoString", Method, 0},
-		{"(R_SPARC).String", Method, 0},
-		{"(R_X86_64).GoString", Method, 0},
-		{"(R_X86_64).String", Method, 0},
-		{"(Section).ReadAt", Method, 0},
-		{"(SectionFlag).GoString", Method, 0},
-		{"(SectionFlag).String", Method, 0},
-		{"(SectionIndex).GoString", Method, 0},
-		{"(SectionIndex).String", Method, 0},
-		{"(SectionType).GoString", Method, 0},
-		{"(SectionType).String", Method, 0},
-		{"(SymBind).GoString", Method, 0},
-		{"(SymBind).String", Method, 0},
-		{"(SymType).GoString", Method, 0},
-		{"(SymType).String", Method, 0},
-		{"(SymVis).GoString", Method, 0},
-		{"(SymVis).String", Method, 0},
-		{"(Type).GoString", Method, 0},
-		{"(Type).String", Method, 0},
-		{"(Version).GoString", Method, 0},
-		{"(Version).String", Method, 0},
-		{"(VersionIndex).Index", Method, 24},
-		{"(VersionIndex).IsHidden", Method, 24},
-		{"ARM_MAGIC_TRAMP_NUMBER", Const, 0},
-		{"COMPRESS_HIOS", Const, 6},
-		{"COMPRESS_HIPROC", Const, 6},
-		{"COMPRESS_LOOS", Const, 6},
-		{"COMPRESS_LOPROC", Const, 6},
-		{"COMPRESS_ZLIB", Const, 6},
-		{"COMPRESS_ZSTD", Const, 21},
-		{"Chdr32", Type, 6},
-		{"Chdr32.Addralign", Field, 6},
-		{"Chdr32.Size", Field, 6},
-		{"Chdr32.Type", Field, 6},
-		{"Chdr64", Type, 6},
-		{"Chdr64.Addralign", Field, 6},
-		{"Chdr64.Size", Field, 6},
-		{"Chdr64.Type", Field, 6},
-		{"Class", Type, 0},
-		{"CompressionType", Type, 6},
-		{"DF_1_CONFALT", Const, 21},
-		{"DF_1_DIRECT", Const, 21},
-		{"DF_1_DISPRELDNE", Const, 21},
-		{"DF_1_DISPRELPND", Const, 21},
-		{"DF_1_EDITED", Const, 21},
-		{"DF_1_ENDFILTEE", Const, 21},
-		{"DF_1_GLOBAL", Const, 21},
-		{"DF_1_GLOBAUDIT", Const, 21},
-		{"DF_1_GROUP", Const, 21},
-		{"DF_1_IGNMULDEF", Const, 21},
-		{"DF_1_INITFIRST", Const, 21},
-		{"DF_1_INTERPOSE", Const, 21},
-		{"DF_1_KMOD", Const, 21},
-		{"DF_1_LOADFLTR", Const, 21},
-		{"DF_1_NOCOMMON", Const, 21},
-		{"DF_1_NODEFLIB", Const, 21},
-		{"DF_1_NODELETE", Const, 21},
-		{"DF_1_NODIRECT", Const, 21},
-		{"DF_1_NODUMP", Const, 21},
-		{"DF_1_NOHDR", Const, 21},
-		{"DF_1_NOKSYMS", Const, 21},
-		{"DF_1_NOOPEN", Const, 21},
-		{"DF_1_NORELOC", Const, 21},
-		{"DF_1_NOW", Const, 21},
-		{"DF_1_ORIGIN", Const, 21},
-		{"DF_1_PIE", Const, 21},
-		{"DF_1_SINGLETON", Const, 21},
-		{"DF_1_STUB", Const, 21},
-		{"DF_1_SYMINTPOSE", Const, 21},
-		{"DF_1_TRANS", Const, 21},
-		{"DF_1_WEAKFILTER", Const, 21},
-		{"DF_BIND_NOW", Const, 0},
-		{"DF_ORIGIN", Const, 0},
-		{"DF_STATIC_TLS", Const, 0},
-		{"DF_SYMBOLIC", Const, 0},
-		{"DF_TEXTREL", Const, 0},
-		{"DT_ADDRRNGHI", Const, 16},
-		{"DT_ADDRRNGLO", Const, 16},
-		{"DT_AUDIT", Const, 16},
-		{"DT_AUXILIARY", Const, 16},
-		{"DT_BIND_NOW", Const, 0},
-		{"DT_CHECKSUM", Const, 16},
-		{"DT_CONFIG", Const, 16},
-		{"DT_DEBUG", Const, 0},
-		{"DT_DEPAUDIT", Const, 16},
-		{"DT_ENCODING", Const, 0},
-		{"DT_FEATURE", Const, 16},
-		{"DT_FILTER", Const, 16},
-		{"DT_FINI", Const, 0},
-		{"DT_FINI_ARRAY", Const, 0},
-		{"DT_FINI_ARRAYSZ", Const, 0},
-		{"DT_FLAGS", Const, 0},
-		{"DT_FLAGS_1", Const, 16},
-		{"DT_GNU_CONFLICT", Const, 16},
-		{"DT_GNU_CONFLICTSZ", Const, 16},
-		{"DT_GNU_HASH", Const, 16},
-		{"DT_GNU_LIBLIST", Const, 16},
-		{"DT_GNU_LIBLISTSZ", Const, 16},
-		{"DT_GNU_PRELINKED", Const, 16},
-		{"DT_HASH", Const, 0},
-		{"DT_HIOS", Const, 0},
-		{"DT_HIPROC", Const, 0},
-		{"DT_INIT", Const, 0},
-		{"DT_INIT_ARRAY", Const, 0},
-		{"DT_INIT_ARRAYSZ", Const, 0},
-		{"DT_JMPREL", Const, 0},
-		{"DT_LOOS", Const, 0},
-		{"DT_LOPROC", Const, 0},
-		{"DT_MIPS_AUX_DYNAMIC", Const, 16},
-		{"DT_MIPS_BASE_ADDRESS", Const, 16},
-		{"DT_MIPS_COMPACT_SIZE", Const, 16},
-		{"DT_MIPS_CONFLICT", Const, 16},
-		{"DT_MIPS_CONFLICTNO", Const, 16},
-		{"DT_MIPS_CXX_FLAGS", Const, 16},
-		{"DT_MIPS_DELTA_CLASS", Const, 16},
-		{"DT_MIPS_DELTA_CLASSSYM", Const, 16},
-		{"DT_MIPS_DELTA_CLASSSYM_NO", Const, 16},
-		{"DT_MIPS_DELTA_CLASS_NO", Const, 16},
-		{"DT_MIPS_DELTA_INSTANCE", Const, 16},
-		{"DT_MIPS_DELTA_INSTANCE_NO", Const, 16},
-		{"DT_MIPS_DELTA_RELOC", Const, 16},
-		{"DT_MIPS_DELTA_RELOC_NO", Const, 16},
-		{"DT_MIPS_DELTA_SYM", Const, 16},
-		{"DT_MIPS_DELTA_SYM_NO", Const, 16},
-		{"DT_MIPS_DYNSTR_ALIGN", Const, 16},
-		{"DT_MIPS_FLAGS", Const, 16},
-		{"DT_MIPS_GOTSYM", Const, 16},
-		{"DT_MIPS_GP_VALUE", Const, 16},
-		{"DT_MIPS_HIDDEN_GOTIDX", Const, 16},
-		{"DT_MIPS_HIPAGENO", Const, 16},
-		{"DT_MIPS_ICHECKSUM", Const, 16},
-		{"DT_MIPS_INTERFACE", Const, 16},
-		{"DT_MIPS_INTERFACE_SIZE", Const, 16},
-		{"DT_MIPS_IVERSION", Const, 16},
-		{"DT_MIPS_LIBLIST", Const, 16},
-		{"DT_MIPS_LIBLISTNO", Const, 16},
-		{"DT_MIPS_LOCALPAGE_GOTIDX", Const, 16},
-		{"DT_MIPS_LOCAL_GOTIDX", Const, 16},
-		{"DT_MIPS_LOCAL_GOTNO", Const, 16},
-		{"DT_MIPS_MSYM", Const, 16},
-		{"DT_MIPS_OPTIONS", Const, 16},
-		{"DT_MIPS_PERF_SUFFIX", Const, 16},
-		{"DT_MIPS_PIXIE_INIT", Const, 16},
-		{"DT_MIPS_PLTGOT", Const, 16},
-		{"DT_MIPS_PROTECTED_GOTIDX", Const, 16},
-		{"DT_MIPS_RLD_MAP", Const, 16},
-		{"DT_MIPS_RLD_MAP_REL", Const, 16},
-		{"DT_MIPS_RLD_TEXT_RESOLVE_ADDR", Const, 16},
-		{"DT_MIPS_RLD_VERSION", Const, 16},
-		{"DT_MIPS_RWPLT", Const, 16},
-		{"DT_MIPS_SYMBOL_LIB", Const, 16},
-		{"DT_MIPS_SYMTABNO", Const, 16},
-		{"DT_MIPS_TIME_STAMP", Const, 16},
-		{"DT_MIPS_UNREFEXTNO", Const, 16},
-		{"DT_MOVEENT", Const, 16},
-		{"DT_MOVESZ", Const, 16},
-		{"DT_MOVETAB", Const, 16},
-		{"DT_NEEDED", Const, 0},
-		{"DT_NULL", Const, 0},
-		{"DT_PLTGOT", Const, 0},
-		{"DT_PLTPAD", Const, 16},
-		{"DT_PLTPADSZ", Const, 16},
-		{"DT_PLTREL", Const, 0},
-		{"DT_PLTRELSZ", Const, 0},
-		{"DT_POSFLAG_1", Const, 16},
-		{"DT_PPC64_GLINK", Const, 16},
-		{"DT_PPC64_OPD", Const, 16},
-		{"DT_PPC64_OPDSZ", Const, 16},
-		{"DT_PPC64_OPT", Const, 16},
-		{"DT_PPC_GOT", Const, 16},
-		{"DT_PPC_OPT", Const, 16},
-		{"DT_PREINIT_ARRAY", Const, 0},
-		{"DT_PREINIT_ARRAYSZ", Const, 0},
-		{"DT_REL", Const, 0},
-		{"DT_RELA", Const, 0},
-		{"DT_RELACOUNT", Const, 16},
-		{"DT_RELAENT", Const, 0},
-		{"DT_RELASZ", Const, 0},
-		{"DT_RELCOUNT", Const, 16},
-		{"DT_RELENT", Const, 0},
-		{"DT_RELSZ", Const, 0},
-		{"DT_RPATH", Const, 0},
-		{"DT_RUNPATH", Const, 0},
-		{"DT_SONAME", Const, 0},
-		{"DT_SPARC_REGISTER", Const, 16},
-		{"DT_STRSZ", Const, 0},
-		{"DT_STRTAB", Const, 0},
-		{"DT_SYMBOLIC", Const, 0},
-		{"DT_SYMENT", Const, 0},
-		{"DT_SYMINENT", Const, 16},
-		{"DT_SYMINFO", Const, 16},
-		{"DT_SYMINSZ", Const, 16},
-		{"DT_SYMTAB", Const, 0},
-		{"DT_SYMTAB_SHNDX", Const, 16},
-		{"DT_TEXTREL", Const, 0},
-		{"DT_TLSDESC_GOT", Const, 16},
-		{"DT_TLSDESC_PLT", Const, 16},
-		{"DT_USED", Const, 16},
-		{"DT_VALRNGHI", Const, 16},
-		{"DT_VALRNGLO", Const, 16},
-		{"DT_VERDEF", Const, 16},
-		{"DT_VERDEFNUM", Const, 16},
-		{"DT_VERNEED", Const, 0},
-		{"DT_VERNEEDNUM", Const, 0},
-		{"DT_VERSYM", Const, 0},
-		{"Data", Type, 0},
-		{"Dyn32", Type, 0},
-		{"Dyn32.Tag", Field, 0},
-		{"Dyn32.Val", Field, 0},
-		{"Dyn64", Type, 0},
-		{"Dyn64.Tag", Field, 0},
-		{"Dyn64.Val", Field, 0},
-		{"DynFlag", Type, 0},
-		{"DynFlag1", Type, 21},
-		{"DynTag", Type, 0},
-		{"DynamicVersion", Type, 24},
-		{"DynamicVersion.Deps", Field, 24},
-		{"DynamicVersion.Flags", Field, 24},
-		{"DynamicVersion.Index", Field, 24},
-		{"DynamicVersion.Name", Field, 24},
-		{"DynamicVersionDep", Type, 24},
-		{"DynamicVersionDep.Dep", Field, 24},
-		{"DynamicVersionDep.Flags", Field, 24},
-		{"DynamicVersionDep.Index", Field, 24},
-		{"DynamicVersionFlag", Type, 24},
-		{"DynamicVersionNeed", Type, 24},
-		{"DynamicVersionNeed.Name", Field, 24},
-		{"DynamicVersionNeed.Needs", Field, 24},
-		{"EI_ABIVERSION", Const, 0},
-		{"EI_CLASS", Const, 0},
-		{"EI_DATA", Const, 0},
-		{"EI_NIDENT", Const, 0},
-		{"EI_OSABI", Const, 0},
-		{"EI_PAD", Const, 0},
-		{"EI_VERSION", Const, 0},
-		{"ELFCLASS32", Const, 0},
-		{"ELFCLASS64", Const, 0},
-		{"ELFCLASSNONE", Const, 0},
-		{"ELFDATA2LSB", Const, 0},
-		{"ELFDATA2MSB", Const, 0},
-		{"ELFDATANONE", Const, 0},
-		{"ELFMAG", Const, 0},
-		{"ELFOSABI_86OPEN", Const, 0},
-		{"ELFOSABI_AIX", Const, 0},
-		{"ELFOSABI_ARM", Const, 0},
-		{"ELFOSABI_AROS", Const, 11},
-		{"ELFOSABI_CLOUDABI", Const, 11},
-		{"ELFOSABI_FENIXOS", Const, 11},
-		{"ELFOSABI_FREEBSD", Const, 0},
-		{"ELFOSABI_HPUX", Const, 0},
-		{"ELFOSABI_HURD", Const, 0},
-		{"ELFOSABI_IRIX", Const, 0},
-		{"ELFOSABI_LINUX", Const, 0},
-		{"ELFOSABI_MODESTO", Const, 0},
-		{"ELFOSABI_NETBSD", Const, 0},
-		{"ELFOSABI_NONE", Const, 0},
-		{"ELFOSABI_NSK", Const, 0},
-		{"ELFOSABI_OPENBSD", Const, 0},
-		{"ELFOSABI_OPENVMS", Const, 0},
-		{"ELFOSABI_SOLARIS", Const, 0},
-		{"ELFOSABI_STANDALONE", Const, 0},
-		{"ELFOSABI_TRU64", Const, 0},
-		{"EM_386", Const, 0},
-		{"EM_486", Const, 0},
-		{"EM_56800EX", Const, 11},
-		{"EM_68HC05", Const, 11},
-		{"EM_68HC08", Const, 11},
-		{"EM_68HC11", Const, 11},
-		{"EM_68HC12", Const, 0},
-		{"EM_68HC16", Const, 11},
-		{"EM_68K", Const, 0},
-		{"EM_78KOR", Const, 11},
-		{"EM_8051", Const, 11},
-		{"EM_860", Const, 0},
-		{"EM_88K", Const, 0},
-		{"EM_960", Const, 0},
-		{"EM_AARCH64", Const, 4},
-		{"EM_ALPHA", Const, 0},
-		{"EM_ALPHA_STD", Const, 0},
-		{"EM_ALTERA_NIOS2", Const, 11},
-		{"EM_AMDGPU", Const, 11},
-		{"EM_ARC", Const, 0},
-		{"EM_ARCA", Const, 11},
-		{"EM_ARC_COMPACT", Const, 11},
-		{"EM_ARC_COMPACT2", Const, 11},
-		{"EM_ARM", Const, 0},
-		{"EM_AVR", Const, 11},
-		{"EM_AVR32", Const, 11},
-		{"EM_BA1", Const, 11},
-		{"EM_BA2", Const, 11},
-		{"EM_BLACKFIN", Const, 11},
-		{"EM_BPF", Const, 11},
-		{"EM_C166", Const, 11},
-		{"EM_CDP", Const, 11},
-		{"EM_CE", Const, 11},
-		{"EM_CLOUDSHIELD", Const, 11},
-		{"EM_COGE", Const, 11},
-		{"EM_COLDFIRE", Const, 0},
-		{"EM_COOL", Const, 11},
-		{"EM_COREA_1ST", Const, 11},
-		{"EM_COREA_2ND", Const, 11},
-		{"EM_CR", Const, 11},
-		{"EM_CR16", Const, 11},
-		{"EM_CRAYNV2", Const, 11},
-		{"EM_CRIS", Const, 11},
-		{"EM_CRX", Const, 11},
-		{"EM_CSR_KALIMBA", Const, 11},
-		{"EM_CUDA", Const, 11},
-		{"EM_CYPRESS_M8C", Const, 11},
-		{"EM_D10V", Const, 11},
-		{"EM_D30V", Const, 11},
-		{"EM_DSP24", Const, 11},
-		{"EM_DSPIC30F", Const, 11},
-		{"EM_DXP", Const, 11},
-		{"EM_ECOG1", Const, 11},
-		{"EM_ECOG16", Const, 11},
-		{"EM_ECOG1X", Const, 11},
-		{"EM_ECOG2", Const, 11},
-		{"EM_ETPU", Const, 11},
-		{"EM_EXCESS", Const, 11},
-		{"EM_F2MC16", Const, 11},
-		{"EM_FIREPATH", Const, 11},
-		{"EM_FR20", Const, 0},
-		{"EM_FR30", Const, 11},
-		{"EM_FT32", Const, 11},
-		{"EM_FX66", Const, 11},
-		{"EM_H8S", Const, 0},
-		{"EM_H8_300", Const, 0},
-		{"EM_H8_300H", Const, 0},
-		{"EM_H8_500", Const, 0},
-		{"EM_HUANY", Const, 11},
-		{"EM_IA_64", Const, 0},
-		{"EM_INTEL205", Const, 11},
-		{"EM_INTEL206", Const, 11},
-		{"EM_INTEL207", Const, 11},
-		{"EM_INTEL208", Const, 11},
-		{"EM_INTEL209", Const, 11},
-		{"EM_IP2K", Const, 11},
-		{"EM_JAVELIN", Const, 11},
-		{"EM_K10M", Const, 11},
-		{"EM_KM32", Const, 11},
-		{"EM_KMX16", Const, 11},
-		{"EM_KMX32", Const, 11},
-		{"EM_KMX8", Const, 11},
-		{"EM_KVARC", Const, 11},
-		{"EM_L10M", Const, 11},
-		{"EM_LANAI", Const, 11},
-		{"EM_LATTICEMICO32", Const, 11},
-		{"EM_LOONGARCH", Const, 19},
-		{"EM_M16C", Const, 11},
-		{"EM_M32", Const, 0},
-		{"EM_M32C", Const, 11},
-		{"EM_M32R", Const, 11},
-		{"EM_MANIK", Const, 11},
-		{"EM_MAX", Const, 11},
-		{"EM_MAXQ30", Const, 11},
-		{"EM_MCHP_PIC", Const, 11},
-		{"EM_MCST_ELBRUS", Const, 11},
-		{"EM_ME16", Const, 0},
-		{"EM_METAG", Const, 11},
-		{"EM_MICROBLAZE", Const, 11},
-		{"EM_MIPS", Const, 0},
-		{"EM_MIPS_RS3_LE", Const, 0},
-		{"EM_MIPS_RS4_BE", Const, 0},
-		{"EM_MIPS_X", Const, 0},
-		{"EM_MMA", Const, 0},
-		{"EM_MMDSP_PLUS", Const, 11},
-		{"EM_MMIX", Const, 11},
-		{"EM_MN10200", Const, 11},
-		{"EM_MN10300", Const, 11},
-		{"EM_MOXIE", Const, 11},
-		{"EM_MSP430", Const, 11},
-		{"EM_NCPU", Const, 0},
-		{"EM_NDR1", Const, 0},
-		{"EM_NDS32", Const, 11},
-		{"EM_NONE", Const, 0},
-		{"EM_NORC", Const, 11},
-		{"EM_NS32K", Const, 11},
-		{"EM_OPEN8", Const, 11},
-		{"EM_OPENRISC", Const, 11},
-		{"EM_PARISC", Const, 0},
-		{"EM_PCP", Const, 0},
-		{"EM_PDP10", Const, 11},
-		{"EM_PDP11", Const, 11},
-		{"EM_PDSP", Const, 11},
-		{"EM_PJ", Const, 11},
-		{"EM_PPC", Const, 0},
-		{"EM_PPC64", Const, 0},
-		{"EM_PRISM", Const, 11},
-		{"EM_QDSP6", Const, 11},
-		{"EM_R32C", Const, 11},
-		{"EM_RCE", Const, 0},
-		{"EM_RH32", Const, 0},
-		{"EM_RISCV", Const, 11},
-		{"EM_RL78", Const, 11},
-		{"EM_RS08", Const, 11},
-		{"EM_RX", Const, 11},
-		{"EM_S370", Const, 0},
-		{"EM_S390", Const, 0},
-		{"EM_SCORE7", Const, 11},
-		{"EM_SEP", Const, 11},
-		{"EM_SE_C17", Const, 11},
-		{"EM_SE_C33", Const, 11},
-		{"EM_SH", Const, 0},
-		{"EM_SHARC", Const, 11},
-		{"EM_SLE9X", Const, 11},
-		{"EM_SNP1K", Const, 11},
-		{"EM_SPARC", Const, 0},
-		{"EM_SPARC32PLUS", Const, 0},
-		{"EM_SPARCV9", Const, 0},
-		{"EM_ST100", Const, 0},
-		{"EM_ST19", Const, 11},
-		{"EM_ST200", Const, 11},
-		{"EM_ST7", Const, 11},
-		{"EM_ST9PLUS", Const, 11},
-		{"EM_STARCORE", Const, 0},
-		{"EM_STM8", Const, 11},
-		{"EM_STXP7X", Const, 11},
-		{"EM_SVX", Const, 11},
-		{"EM_TILE64", Const, 11},
-		{"EM_TILEGX", Const, 11},
-		{"EM_TILEPRO", Const, 11},
-		{"EM_TINYJ", Const, 0},
-		{"EM_TI_ARP32", Const, 11},
-		{"EM_TI_C2000", Const, 11},
-		{"EM_TI_C5500", Const, 11},
-		{"EM_TI_C6000", Const, 11},
-		{"EM_TI_PRU", Const, 11},
-		{"EM_TMM_GPP", Const, 11},
-		{"EM_TPC", Const, 11},
-		{"EM_TRICORE", Const, 0},
-		{"EM_TRIMEDIA", Const, 11},
-		{"EM_TSK3000", Const, 11},
-		{"EM_UNICORE", Const, 11},
-		{"EM_V800", Const, 0},
-		{"EM_V850", Const, 11},
-		{"EM_VAX", Const, 11},
-		{"EM_VIDEOCORE", Const, 11},
-		{"EM_VIDEOCORE3", Const, 11},
-		{"EM_VIDEOCORE5", Const, 11},
-		{"EM_VISIUM", Const, 11},
-		{"EM_VPP500", Const, 0},
-		{"EM_X86_64", Const, 0},
-		{"EM_XCORE", Const, 11},
-		{"EM_XGATE", Const, 11},
-		{"EM_XIMO16", Const, 11},
-		{"EM_XTENSA", Const, 11},
-		{"EM_Z80", Const, 11},
-		{"EM_ZSP", Const, 11},
-		{"ET_CORE", Const, 0},
-		{"ET_DYN", Const, 0},
-		{"ET_EXEC", Const, 0},
-		{"ET_HIOS", Const, 0},
-		{"ET_HIPROC", Const, 0},
-		{"ET_LOOS", Const, 0},
-		{"ET_LOPROC", Const, 0},
-		{"ET_NONE", Const, 0},
-		{"ET_REL", Const, 0},
-		{"EV_CURRENT", Const, 0},
-		{"EV_NONE", Const, 0},
-		{"ErrNoSymbols", Var, 4},
-		{"File", Type, 0},
-		{"File.FileHeader", Field, 0},
-		{"File.Progs", Field, 0},
-		{"File.Sections", Field, 0},
-		{"FileHeader", Type, 0},
-		{"FileHeader.ABIVersion", Field, 0},
-		{"FileHeader.ByteOrder", Field, 0},
-		{"FileHeader.Class", Field, 0},
-		{"FileHeader.Data", Field, 0},
-		{"FileHeader.Entry", Field, 1},
-		{"FileHeader.Machine", Field, 0},
-		{"FileHeader.OSABI", Field, 0},
-		{"FileHeader.Type", Field, 0},
-		{"FileHeader.Version", Field, 0},
-		{"FormatError", Type, 0},
-		{"Header32", Type, 0},
-		{"Header32.Ehsize", Field, 0},
-		{"Header32.Entry", Field, 0},
-		{"Header32.Flags", Field, 0},
-		{"Header32.Ident", Field, 0},
-		{"Header32.Machine", Field, 0},
-		{"Header32.Phentsize", Field, 0},
-		{"Header32.Phnum", Field, 0},
-		{"Header32.Phoff", Field, 0},
-		{"Header32.Shentsize", Field, 0},
-		{"Header32.Shnum", Field, 0},
-		{"Header32.Shoff", Field, 0},
-		{"Header32.Shstrndx", Field, 0},
-		{"Header32.Type", Field, 0},
-		{"Header32.Version", Field, 0},
-		{"Header64", Type, 0},
-		{"Header64.Ehsize", Field, 0},
-		{"Header64.Entry", Field, 0},
-		{"Header64.Flags", Field, 0},
-		{"Header64.Ident", Field, 0},
-		{"Header64.Machine", Field, 0},
-		{"Header64.Phentsize", Field, 0},
-		{"Header64.Phnum", Field, 0},
-		{"Header64.Phoff", Field, 0},
-		{"Header64.Shentsize", Field, 0},
-		{"Header64.Shnum", Field, 0},
-		{"Header64.Shoff", Field, 0},
-		{"Header64.Shstrndx", Field, 0},
-		{"Header64.Type", Field, 0},
-		{"Header64.Version", Field, 0},
-		{"ImportedSymbol", Type, 0},
-		{"ImportedSymbol.Library", Field, 0},
-		{"ImportedSymbol.Name", Field, 0},
-		{"ImportedSymbol.Version", Field, 0},
-		{"Machine", Type, 0},
-		{"NT_FPREGSET", Const, 0},
-		{"NT_PRPSINFO", Const, 0},
-		{"NT_PRSTATUS", Const, 0},
-		{"NType", Type, 0},
-		{"NewFile", Func, 0},
-		{"OSABI", Type, 0},
-		{"Open", Func, 0},
-		{"PF_MASKOS", Const, 0},
-		{"PF_MASKPROC", Const, 0},
-		{"PF_R", Const, 0},
-		{"PF_W", Const, 0},
-		{"PF_X", Const, 0},
-		{"PT_AARCH64_ARCHEXT", Const, 16},
-		{"PT_AARCH64_UNWIND", Const, 16},
-		{"PT_ARM_ARCHEXT", Const, 16},
-		{"PT_ARM_EXIDX", Const, 16},
-		{"PT_DYNAMIC", Const, 0},
-		{"PT_GNU_EH_FRAME", Const, 16},
-		{"PT_GNU_MBIND_HI", Const, 16},
-		{"PT_GNU_MBIND_LO", Const, 16},
-		{"PT_GNU_PROPERTY", Const, 16},
-		{"PT_GNU_RELRO", Const, 16},
-		{"PT_GNU_STACK", Const, 16},
-		{"PT_HIOS", Const, 0},
-		{"PT_HIPROC", Const, 0},
-		{"PT_INTERP", Const, 0},
-		{"PT_LOAD", Const, 0},
-		{"PT_LOOS", Const, 0},
-		{"PT_LOPROC", Const, 0},
-		{"PT_MIPS_ABIFLAGS", Const, 16},
-		{"PT_MIPS_OPTIONS", Const, 16},
-		{"PT_MIPS_REGINFO", Const, 16},
-		{"PT_MIPS_RTPROC", Const, 16},
-		{"PT_NOTE", Const, 0},
-		{"PT_NULL", Const, 0},
-		{"PT_OPENBSD_BOOTDATA", Const, 16},
-		{"PT_OPENBSD_NOBTCFI", Const, 23},
-		{"PT_OPENBSD_RANDOMIZE", Const, 16},
-		{"PT_OPENBSD_WXNEEDED", Const, 16},
-		{"PT_PAX_FLAGS", Const, 16},
-		{"PT_PHDR", Const, 0},
-		{"PT_S390_PGSTE", Const, 16},
-		{"PT_SHLIB", Const, 0},
-		{"PT_SUNWSTACK", Const, 16},
-		{"PT_SUNW_EH_FRAME", Const, 16},
-		{"PT_TLS", Const, 0},
-		{"Prog", Type, 0},
-		{"Prog.ProgHeader", Field, 0},
-		{"Prog.ReaderAt", Field, 0},
-		{"Prog32", Type, 0},
-		{"Prog32.Align", Field, 0},
-		{"Prog32.Filesz", Field, 0},
-		{"Prog32.Flags", Field, 0},
-		{"Prog32.Memsz", Field, 0},
-		{"Prog32.Off", Field, 0},
-		{"Prog32.Paddr", Field, 0},
-		{"Prog32.Type", Field, 0},
-		{"Prog32.Vaddr", Field, 0},
-		{"Prog64", Type, 0},
-		{"Prog64.Align", Field, 0},
-		{"Prog64.Filesz", Field, 0},
-		{"Prog64.Flags", Field, 0},
-		{"Prog64.Memsz", Field, 0},
-		{"Prog64.Off", Field, 0},
-		{"Prog64.Paddr", Field, 0},
-		{"Prog64.Type", Field, 0},
-		{"Prog64.Vaddr", Field, 0},
-		{"ProgFlag", Type, 0},
-		{"ProgHeader", Type, 0},
-		{"ProgHeader.Align", Field, 0},
-		{"ProgHeader.Filesz", Field, 0},
-		{"ProgHeader.Flags", Field, 0},
-		{"ProgHeader.Memsz", Field, 0},
-		{"ProgHeader.Off", Field, 0},
-		{"ProgHeader.Paddr", Field, 0},
-		{"ProgHeader.Type", Field, 0},
-		{"ProgHeader.Vaddr", Field, 0},
-		{"ProgType", Type, 0},
-		{"R_386", Type, 0},
-		{"R_386_16", Const, 10},
-		{"R_386_32", Const, 0},
-		{"R_386_32PLT", Const, 10},
-		{"R_386_8", Const, 10},
-		{"R_386_COPY", Const, 0},
-		{"R_386_GLOB_DAT", Const, 0},
-		{"R_386_GOT32", Const, 0},
-		{"R_386_GOT32X", Const, 10},
-		{"R_386_GOTOFF", Const, 0},
-		{"R_386_GOTPC", Const, 0},
-		{"R_386_IRELATIVE", Const, 10},
-		{"R_386_JMP_SLOT", Const, 0},
-		{"R_386_NONE", Const, 0},
-		{"R_386_PC16", Const, 10},
-		{"R_386_PC32", Const, 0},
-		{"R_386_PC8", Const, 10},
-		{"R_386_PLT32", Const, 0},
-		{"R_386_RELATIVE", Const, 0},
-		{"R_386_SIZE32", Const, 10},
-		{"R_386_TLS_DESC", Const, 10},
-		{"R_386_TLS_DESC_CALL", Const, 10},
-		{"R_386_TLS_DTPMOD32", Const, 0},
-		{"R_386_TLS_DTPOFF32", Const, 0},
-		{"R_386_TLS_GD", Const, 0},
-		{"R_386_TLS_GD_32", Const, 0},
-		{"R_386_TLS_GD_CALL", Const, 0},
-		{"R_386_TLS_GD_POP", Const, 0},
-		{"R_386_TLS_GD_PUSH", Const, 0},
-		{"R_386_TLS_GOTDESC", Const, 10},
-		{"R_386_TLS_GOTIE", Const, 0},
-		{"R_386_TLS_IE", Const, 0},
-		{"R_386_TLS_IE_32", Const, 0},
-		{"R_386_TLS_LDM", Const, 0},
-		{"R_386_TLS_LDM_32", Const, 0},
-		{"R_386_TLS_LDM_CALL", Const, 0},
-		{"R_386_TLS_LDM_POP", Const, 0},
-		{"R_386_TLS_LDM_PUSH", Const, 0},
-		{"R_386_TLS_LDO_32", Const, 0},
-		{"R_386_TLS_LE", Const, 0},
-		{"R_386_TLS_LE_32", Const, 0},
-		{"R_386_TLS_TPOFF", Const, 0},
-		{"R_386_TLS_TPOFF32", Const, 0},
-		{"R_390", Type, 7},
-		{"R_390_12", Const, 7},
-		{"R_390_16", Const, 7},
-		{"R_390_20", Const, 7},
-		{"R_390_32", Const, 7},
-		{"R_390_64", Const, 7},
-		{"R_390_8", Const, 7},
-		{"R_390_COPY", Const, 7},
-		{"R_390_GLOB_DAT", Const, 7},
-		{"R_390_GOT12", Const, 7},
-		{"R_390_GOT16", Const, 7},
-		{"R_390_GOT20", Const, 7},
-		{"R_390_GOT32", Const, 7},
-		{"R_390_GOT64", Const, 7},
-		{"R_390_GOTENT", Const, 7},
-		{"R_390_GOTOFF", Const, 7},
-		{"R_390_GOTOFF16", Const, 7},
-		{"R_390_GOTOFF64", Const, 7},
-		{"R_390_GOTPC", Const, 7},
-		{"R_390_GOTPCDBL", Const, 7},
-		{"R_390_GOTPLT12", Const, 7},
-		{"R_390_GOTPLT16", Const, 7},
-		{"R_390_GOTPLT20", Const, 7},
-		{"R_390_GOTPLT32", Const, 7},
-		{"R_390_GOTPLT64", Const, 7},
-		{"R_390_GOTPLTENT", Const, 7},
-		{"R_390_GOTPLTOFF16", Const, 7},
-		{"R_390_GOTPLTOFF32", Const, 7},
-		{"R_390_GOTPLTOFF64", Const, 7},
-		{"R_390_JMP_SLOT", Const, 7},
-		{"R_390_NONE", Const, 7},
-		{"R_390_PC16", Const, 7},
-		{"R_390_PC16DBL", Const, 7},
-		{"R_390_PC32", Const, 7},
-		{"R_390_PC32DBL", Const, 7},
-		{"R_390_PC64", Const, 7},
-		{"R_390_PLT16DBL", Const, 7},
-		{"R_390_PLT32", Const, 7},
-		{"R_390_PLT32DBL", Const, 7},
-		{"R_390_PLT64", Const, 7},
-		{"R_390_RELATIVE", Const, 7},
-		{"R_390_TLS_DTPMOD", Const, 7},
-		{"R_390_TLS_DTPOFF", Const, 7},
-		{"R_390_TLS_GD32", Const, 7},
-		{"R_390_TLS_GD64", Const, 7},
-		{"R_390_TLS_GDCALL", Const, 7},
-		{"R_390_TLS_GOTIE12", Const, 7},
-		{"R_390_TLS_GOTIE20", Const, 7},
-		{"R_390_TLS_GOTIE32", Const, 7},
-		{"R_390_TLS_GOTIE64", Const, 7},
-		{"R_390_TLS_IE32", Const, 7},
-		{"R_390_TLS_IE64", Const, 7},
-		{"R_390_TLS_IEENT", Const, 7},
-		{"R_390_TLS_LDCALL", Const, 7},
-		{"R_390_TLS_LDM32", Const, 7},
-		{"R_390_TLS_LDM64", Const, 7},
-		{"R_390_TLS_LDO32", Const, 7},
-		{"R_390_TLS_LDO64", Const, 7},
-		{"R_390_TLS_LE32", Const, 7},
-		{"R_390_TLS_LE64", Const, 7},
-		{"R_390_TLS_LOAD", Const, 7},
-		{"R_390_TLS_TPOFF", Const, 7},
-		{"R_AARCH64", Type, 4},
-		{"R_AARCH64_ABS16", Const, 4},
-		{"R_AARCH64_ABS32", Const, 4},
-		{"R_AARCH64_ABS64", Const, 4},
-		{"R_AARCH64_ADD_ABS_LO12_NC", Const, 4},
-		{"R_AARCH64_ADR_GOT_PAGE", Const, 4},
-		{"R_AARCH64_ADR_PREL_LO21", Const, 4},
-		{"R_AARCH64_ADR_PREL_PG_HI21", Const, 4},
-		{"R_AARCH64_ADR_PREL_PG_HI21_NC", Const, 4},
-		{"R_AARCH64_CALL26", Const, 4},
-		{"R_AARCH64_CONDBR19", Const, 4},
-		{"R_AARCH64_COPY", Const, 4},
-		{"R_AARCH64_GLOB_DAT", Const, 4},
-		{"R_AARCH64_GOT_LD_PREL19", Const, 4},
-		{"R_AARCH64_IRELATIVE", Const, 4},
-		{"R_AARCH64_JUMP26", Const, 4},
-		{"R_AARCH64_JUMP_SLOT", Const, 4},
-		{"R_AARCH64_LD64_GOTOFF_LO15", Const, 10},
-		{"R_AARCH64_LD64_GOTPAGE_LO15", Const, 10},
-		{"R_AARCH64_LD64_GOT_LO12_NC", Const, 4},
-		{"R_AARCH64_LDST128_ABS_LO12_NC", Const, 4},
-		{"R_AARCH64_LDST16_ABS_LO12_NC", Const, 4},
-		{"R_AARCH64_LDST32_ABS_LO12_NC", Const, 4},
-		{"R_AARCH64_LDST64_ABS_LO12_NC", Const, 4},
-		{"R_AARCH64_LDST8_ABS_LO12_NC", Const, 4},
-		{"R_AARCH64_LD_PREL_LO19", Const, 4},
-		{"R_AARCH64_MOVW_SABS_G0", Const, 4},
-		{"R_AARCH64_MOVW_SABS_G1", Const, 4},
-		{"R_AARCH64_MOVW_SABS_G2", Const, 4},
-		{"R_AARCH64_MOVW_UABS_G0", Const, 4},
-		{"R_AARCH64_MOVW_UABS_G0_NC", Const, 4},
-		{"R_AARCH64_MOVW_UABS_G1", Const, 4},
-		{"R_AARCH64_MOVW_UABS_G1_NC", Const, 4},
-		{"R_AARCH64_MOVW_UABS_G2", Const, 4},
-		{"R_AARCH64_MOVW_UABS_G2_NC", Const, 4},
-		{"R_AARCH64_MOVW_UABS_G3", Const, 4},
-		{"R_AARCH64_NONE", Const, 4},
-		{"R_AARCH64_NULL", Const, 4},
-		{"R_AARCH64_P32_ABS16", Const, 4},
-		{"R_AARCH64_P32_ABS32", Const, 4},
-		{"R_AARCH64_P32_ADD_ABS_LO12_NC", Const, 4},
-		{"R_AARCH64_P32_ADR_GOT_PAGE", Const, 4},
-		{"R_AARCH64_P32_ADR_PREL_LO21", Const, 4},
-		{"R_AARCH64_P32_ADR_PREL_PG_HI21", Const, 4},
-		{"R_AARCH64_P32_CALL26", Const, 4},
-		{"R_AARCH64_P32_CONDBR19", Const, 4},
-		{"R_AARCH64_P32_COPY", Const, 4},
-		{"R_AARCH64_P32_GLOB_DAT", Const, 4},
-		{"R_AARCH64_P32_GOT_LD_PREL19", Const, 4},
-		{"R_AARCH64_P32_IRELATIVE", Const, 4},
-		{"R_AARCH64_P32_JUMP26", Const, 4},
-		{"R_AARCH64_P32_JUMP_SLOT", Const, 4},
-		{"R_AARCH64_P32_LD32_GOT_LO12_NC", Const, 4},
-		{"R_AARCH64_P32_LDST128_ABS_LO12_NC", Const, 4},
-		{"R_AARCH64_P32_LDST16_ABS_LO12_NC", Const, 4},
-		{"R_AARCH64_P32_LDST32_ABS_LO12_NC", Const, 4},
-		{"R_AARCH64_P32_LDST64_ABS_LO12_NC", Const, 4},
-		{"R_AARCH64_P32_LDST8_ABS_LO12_NC", Const, 4},
-		{"R_AARCH64_P32_LD_PREL_LO19", Const, 4},
-		{"R_AARCH64_P32_MOVW_SABS_G0", Const, 4},
-		{"R_AARCH64_P32_MOVW_UABS_G0", Const, 4},
-		{"R_AARCH64_P32_MOVW_UABS_G0_NC", Const, 4},
-		{"R_AARCH64_P32_MOVW_UABS_G1", Const, 4},
-		{"R_AARCH64_P32_PREL16", Const, 4},
-		{"R_AARCH64_P32_PREL32", Const, 4},
-		{"R_AARCH64_P32_RELATIVE", Const, 4},
-		{"R_AARCH64_P32_TLSDESC", Const, 4},
-		{"R_AARCH64_P32_TLSDESC_ADD_LO12_NC", Const, 4},
-		{"R_AARCH64_P32_TLSDESC_ADR_PAGE21", Const, 4},
-		{"R_AARCH64_P32_TLSDESC_ADR_PREL21", Const, 4},
-		{"R_AARCH64_P32_TLSDESC_CALL", Const, 4},
-		{"R_AARCH64_P32_TLSDESC_LD32_LO12_NC", Const, 4},
-		{"R_AARCH64_P32_TLSDESC_LD_PREL19", Const, 4},
-		{"R_AARCH64_P32_TLSGD_ADD_LO12_NC", Const, 4},
-		{"R_AARCH64_P32_TLSGD_ADR_PAGE21", Const, 4},
-		{"R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21", Const, 4},
-		{"R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC", Const, 4},
-		{"R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19", Const, 4},
-		{"R_AARCH64_P32_TLSLE_ADD_TPREL_HI12", Const, 4},
-		{"R_AARCH64_P32_TLSLE_ADD_TPREL_LO12", Const, 4},
-		{"R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC", Const, 4},
-		{"R_AARCH64_P32_TLSLE_MOVW_TPREL_G0", Const, 4},
-		{"R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC", Const, 4},
-		{"R_AARCH64_P32_TLSLE_MOVW_TPREL_G1", Const, 4},
-		{"R_AARCH64_P32_TLS_DTPMOD", Const, 4},
-		{"R_AARCH64_P32_TLS_DTPREL", Const, 4},
-		{"R_AARCH64_P32_TLS_TPREL", Const, 4},
-		{"R_AARCH64_P32_TSTBR14", Const, 4},
-		{"R_AARCH64_PREL16", Const, 4},
-		{"R_AARCH64_PREL32", Const, 4},
-		{"R_AARCH64_PREL64", Const, 4},
-		{"R_AARCH64_RELATIVE", Const, 4},
-		{"R_AARCH64_TLSDESC", Const, 4},
-		{"R_AARCH64_TLSDESC_ADD", Const, 4},
-		{"R_AARCH64_TLSDESC_ADD_LO12_NC", Const, 4},
-		{"R_AARCH64_TLSDESC_ADR_PAGE21", Const, 4},
-		{"R_AARCH64_TLSDESC_ADR_PREL21", Const, 4},
-		{"R_AARCH64_TLSDESC_CALL", Const, 4},
-		{"R_AARCH64_TLSDESC_LD64_LO12_NC", Const, 4},
-		{"R_AARCH64_TLSDESC_LDR", Const, 4},
-		{"R_AARCH64_TLSDESC_LD_PREL19", Const, 4},
-		{"R_AARCH64_TLSDESC_OFF_G0_NC", Const, 4},
-		{"R_AARCH64_TLSDESC_OFF_G1", Const, 4},
-		{"R_AARCH64_TLSGD_ADD_LO12_NC", Const, 4},
-		{"R_AARCH64_TLSGD_ADR_PAGE21", Const, 4},
-		{"R_AARCH64_TLSGD_ADR_PREL21", Const, 10},
-		{"R_AARCH64_TLSGD_MOVW_G0_NC", Const, 10},
-		{"R_AARCH64_TLSGD_MOVW_G1", Const, 10},
-		{"R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21", Const, 4},
-		{"R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC", Const, 4},
-		{"R_AARCH64_TLSIE_LD_GOTTPREL_PREL19", Const, 4},
-		{"R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC", Const, 4},
-		{"R_AARCH64_TLSIE_MOVW_GOTTPREL_G1", Const, 4},
-		{"R_AARCH64_TLSLD_ADR_PAGE21", Const, 10},
-		{"R_AARCH64_TLSLD_ADR_PREL21", Const, 10},
-		{"R_AARCH64_TLSLD_LDST128_DTPREL_LO12", Const, 10},
-		{"R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC", Const, 10},
-		{"R_AARCH64_TLSLE_ADD_TPREL_HI12", Const, 4},
-		{"R_AARCH64_TLSLE_ADD_TPREL_LO12", Const, 4},
-		{"R_AARCH64_TLSLE_ADD_TPREL_LO12_NC", Const, 4},
-		{"R_AARCH64_TLSLE_LDST128_TPREL_LO12", Const, 10},
-		{"R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC", Const, 10},
-		{"R_AARCH64_TLSLE_MOVW_TPREL_G0", Const, 4},
-		{"R_AARCH64_TLSLE_MOVW_TPREL_G0_NC", Const, 4},
-		{"R_AARCH64_TLSLE_MOVW_TPREL_G1", Const, 4},
-		{"R_AARCH64_TLSLE_MOVW_TPREL_G1_NC", Const, 4},
-		{"R_AARCH64_TLSLE_MOVW_TPREL_G2", Const, 4},
-		{"R_AARCH64_TLS_DTPMOD64", Const, 4},
-		{"R_AARCH64_TLS_DTPREL64", Const, 4},
-		{"R_AARCH64_TLS_TPREL64", Const, 4},
-		{"R_AARCH64_TSTBR14", Const, 4},
-		{"R_ALPHA", Type, 0},
-		{"R_ALPHA_BRADDR", Const, 0},
-		{"R_ALPHA_COPY", Const, 0},
-		{"R_ALPHA_GLOB_DAT", Const, 0},
-		{"R_ALPHA_GPDISP", Const, 0},
-		{"R_ALPHA_GPREL32", Const, 0},
-		{"R_ALPHA_GPRELHIGH", Const, 0},
-		{"R_ALPHA_GPRELLOW", Const, 0},
-		{"R_ALPHA_GPVALUE", Const, 0},
-		{"R_ALPHA_HINT", Const, 0},
-		{"R_ALPHA_IMMED_BR_HI32", Const, 0},
-		{"R_ALPHA_IMMED_GP_16", Const, 0},
-		{"R_ALPHA_IMMED_GP_HI32", Const, 0},
-		{"R_ALPHA_IMMED_LO32", Const, 0},
-		{"R_ALPHA_IMMED_SCN_HI32", Const, 0},
-		{"R_ALPHA_JMP_SLOT", Const, 0},
-		{"R_ALPHA_LITERAL", Const, 0},
-		{"R_ALPHA_LITUSE", Const, 0},
-		{"R_ALPHA_NONE", Const, 0},
-		{"R_ALPHA_OP_PRSHIFT", Const, 0},
-		{"R_ALPHA_OP_PSUB", Const, 0},
-		{"R_ALPHA_OP_PUSH", Const, 0},
-		{"R_ALPHA_OP_STORE", Const, 0},
-		{"R_ALPHA_REFLONG", Const, 0},
-		{"R_ALPHA_REFQUAD", Const, 0},
-		{"R_ALPHA_RELATIVE", Const, 0},
-		{"R_ALPHA_SREL16", Const, 0},
-		{"R_ALPHA_SREL32", Const, 0},
-		{"R_ALPHA_SREL64", Const, 0},
-		{"R_ARM", Type, 0},
-		{"R_ARM_ABS12", Const, 0},
-		{"R_ARM_ABS16", Const, 0},
-		{"R_ARM_ABS32", Const, 0},
-		{"R_ARM_ABS32_NOI", Const, 10},
-		{"R_ARM_ABS8", Const, 0},
-		{"R_ARM_ALU_PCREL_15_8", Const, 10},
-		{"R_ARM_ALU_PCREL_23_15", Const, 10},
-		{"R_ARM_ALU_PCREL_7_0", Const, 10},
-		{"R_ARM_ALU_PC_G0", Const, 10},
-		{"R_ARM_ALU_PC_G0_NC", Const, 10},
-		{"R_ARM_ALU_PC_G1", Const, 10},
-		{"R_ARM_ALU_PC_G1_NC", Const, 10},
-		{"R_ARM_ALU_PC_G2", Const, 10},
-		{"R_ARM_ALU_SBREL_19_12_NC", Const, 10},
-		{"R_ARM_ALU_SBREL_27_20_CK", Const, 10},
-		{"R_ARM_ALU_SB_G0", Const, 10},
-		{"R_ARM_ALU_SB_G0_NC", Const, 10},
-		{"R_ARM_ALU_SB_G1", Const, 10},
-		{"R_ARM_ALU_SB_G1_NC", Const, 10},
-		{"R_ARM_ALU_SB_G2", Const, 10},
-		{"R_ARM_AMP_VCALL9", Const, 0},
-		{"R_ARM_BASE_ABS", Const, 10},
-		{"R_ARM_CALL", Const, 10},
-		{"R_ARM_COPY", Const, 0},
-		{"R_ARM_GLOB_DAT", Const, 0},
-		{"R_ARM_GNU_VTENTRY", Const, 0},
-		{"R_ARM_GNU_VTINHERIT", Const, 0},
-		{"R_ARM_GOT32", Const, 0},
-		{"R_ARM_GOTOFF", Const, 0},
-		{"R_ARM_GOTOFF12", Const, 10},
-		{"R_ARM_GOTPC", Const, 0},
-		{"R_ARM_GOTRELAX", Const, 10},
-		{"R_ARM_GOT_ABS", Const, 10},
-		{"R_ARM_GOT_BREL12", Const, 10},
-		{"R_ARM_GOT_PREL", Const, 10},
-		{"R_ARM_IRELATIVE", Const, 10},
-		{"R_ARM_JUMP24", Const, 10},
-		{"R_ARM_JUMP_SLOT", Const, 0},
-		{"R_ARM_LDC_PC_G0", Const, 10},
-		{"R_ARM_LDC_PC_G1", Const, 10},
-		{"R_ARM_LDC_PC_G2", Const, 10},
-		{"R_ARM_LDC_SB_G0", Const, 10},
-		{"R_ARM_LDC_SB_G1", Const, 10},
-		{"R_ARM_LDC_SB_G2", Const, 10},
-		{"R_ARM_LDRS_PC_G0", Const, 10},
-		{"R_ARM_LDRS_PC_G1", Const, 10},
-		{"R_ARM_LDRS_PC_G2", Const, 10},
-		{"R_ARM_LDRS_SB_G0", Const, 10},
-		{"R_ARM_LDRS_SB_G1", Const, 10},
-		{"R_ARM_LDRS_SB_G2", Const, 10},
-		{"R_ARM_LDR_PC_G1", Const, 10},
-		{"R_ARM_LDR_PC_G2", Const, 10},
-		{"R_ARM_LDR_SBREL_11_10_NC", Const, 10},
-		{"R_ARM_LDR_SB_G0", Const, 10},
-		{"R_ARM_LDR_SB_G1", Const, 10},
-		{"R_ARM_LDR_SB_G2", Const, 10},
-		{"R_ARM_ME_TOO", Const, 10},
-		{"R_ARM_MOVT_ABS", Const, 10},
-		{"R_ARM_MOVT_BREL", Const, 10},
-		{"R_ARM_MOVT_PREL", Const, 10},
-		{"R_ARM_MOVW_ABS_NC", Const, 10},
-		{"R_ARM_MOVW_BREL", Const, 10},
-		{"R_ARM_MOVW_BREL_NC", Const, 10},
-		{"R_ARM_MOVW_PREL_NC", Const, 10},
-		{"R_ARM_NONE", Const, 0},
-		{"R_ARM_PC13", Const, 0},
-		{"R_ARM_PC24", Const, 0},
-		{"R_ARM_PLT32", Const, 0},
-		{"R_ARM_PLT32_ABS", Const, 10},
-		{"R_ARM_PREL31", Const, 10},
-		{"R_ARM_PRIVATE_0", Const, 10},
-		{"R_ARM_PRIVATE_1", Const, 10},
-		{"R_ARM_PRIVATE_10", Const, 10},
-		{"R_ARM_PRIVATE_11", Const, 10},
-		{"R_ARM_PRIVATE_12", Const, 10},
-		{"R_ARM_PRIVATE_13", Const, 10},
-		{"R_ARM_PRIVATE_14", Const, 10},
-		{"R_ARM_PRIVATE_15", Const, 10},
-		{"R_ARM_PRIVATE_2", Const, 10},
-		{"R_ARM_PRIVATE_3", Const, 10},
-		{"R_ARM_PRIVATE_4", Const, 10},
-		{"R_ARM_PRIVATE_5", Const, 10},
-		{"R_ARM_PRIVATE_6", Const, 10},
-		{"R_ARM_PRIVATE_7", Const, 10},
-		{"R_ARM_PRIVATE_8", Const, 10},
-		{"R_ARM_PRIVATE_9", Const, 10},
-		{"R_ARM_RABS32", Const, 0},
-		{"R_ARM_RBASE", Const, 0},
-		{"R_ARM_REL32", Const, 0},
-		{"R_ARM_REL32_NOI", Const, 10},
-		{"R_ARM_RELATIVE", Const, 0},
-		{"R_ARM_RPC24", Const, 0},
-		{"R_ARM_RREL32", Const, 0},
-		{"R_ARM_RSBREL32", Const, 0},
-		{"R_ARM_RXPC25", Const, 10},
-		{"R_ARM_SBREL31", Const, 10},
-		{"R_ARM_SBREL32", Const, 0},
-		{"R_ARM_SWI24", Const, 0},
-		{"R_ARM_TARGET1", Const, 10},
-		{"R_ARM_TARGET2", Const, 10},
-		{"R_ARM_THM_ABS5", Const, 0},
-		{"R_ARM_THM_ALU_ABS_G0_NC", Const, 10},
-		{"R_ARM_THM_ALU_ABS_G1_NC", Const, 10},
-		{"R_ARM_THM_ALU_ABS_G2_NC", Const, 10},
-		{"R_ARM_THM_ALU_ABS_G3", Const, 10},
-		{"R_ARM_THM_ALU_PREL_11_0", Const, 10},
-		{"R_ARM_THM_GOT_BREL12", Const, 10},
-		{"R_ARM_THM_JUMP11", Const, 10},
-		{"R_ARM_THM_JUMP19", Const, 10},
-		{"R_ARM_THM_JUMP24", Const, 10},
-		{"R_ARM_THM_JUMP6", Const, 10},
-		{"R_ARM_THM_JUMP8", Const, 10},
-		{"R_ARM_THM_MOVT_ABS", Const, 10},
-		{"R_ARM_THM_MOVT_BREL", Const, 10},
-		{"R_ARM_THM_MOVT_PREL", Const, 10},
-		{"R_ARM_THM_MOVW_ABS_NC", Const, 10},
-		{"R_ARM_THM_MOVW_BREL", Const, 10},
-		{"R_ARM_THM_MOVW_BREL_NC", Const, 10},
-		{"R_ARM_THM_MOVW_PREL_NC", Const, 10},
-		{"R_ARM_THM_PC12", Const, 10},
-		{"R_ARM_THM_PC22", Const, 0},
-		{"R_ARM_THM_PC8", Const, 0},
-		{"R_ARM_THM_RPC22", Const, 0},
-		{"R_ARM_THM_SWI8", Const, 0},
-		{"R_ARM_THM_TLS_CALL", Const, 10},
-		{"R_ARM_THM_TLS_DESCSEQ16", Const, 10},
-		{"R_ARM_THM_TLS_DESCSEQ32", Const, 10},
-		{"R_ARM_THM_XPC22", Const, 0},
-		{"R_ARM_TLS_CALL", Const, 10},
-		{"R_ARM_TLS_DESCSEQ", Const, 10},
-		{"R_ARM_TLS_DTPMOD32", Const, 10},
-		{"R_ARM_TLS_DTPOFF32", Const, 10},
-		{"R_ARM_TLS_GD32", Const, 10},
-		{"R_ARM_TLS_GOTDESC", Const, 10},
-		{"R_ARM_TLS_IE12GP", Const, 10},
-		{"R_ARM_TLS_IE32", Const, 10},
-		{"R_ARM_TLS_LDM32", Const, 10},
-		{"R_ARM_TLS_LDO12", Const, 10},
-		{"R_ARM_TLS_LDO32", Const, 10},
-		{"R_ARM_TLS_LE12", Const, 10},
-		{"R_ARM_TLS_LE32", Const, 10},
-		{"R_ARM_TLS_TPOFF32", Const, 10},
-		{"R_ARM_V4BX", Const, 10},
-		{"R_ARM_XPC25", Const, 0},
-		{"R_INFO", Func, 0},
-		{"R_INFO32", Func, 0},
-		{"R_LARCH", Type, 19},
-		{"R_LARCH_32", Const, 19},
-		{"R_LARCH_32_PCREL", Const, 20},
-		{"R_LARCH_64", Const, 19},
-		{"R_LARCH_64_PCREL", Const, 22},
-		{"R_LARCH_ABS64_HI12", Const, 20},
-		{"R_LARCH_ABS64_LO20", Const, 20},
-		{"R_LARCH_ABS_HI20", Const, 20},
-		{"R_LARCH_ABS_LO12", Const, 20},
-		{"R_LARCH_ADD16", Const, 19},
-		{"R_LARCH_ADD24", Const, 19},
-		{"R_LARCH_ADD32", Const, 19},
-		{"R_LARCH_ADD6", Const, 22},
-		{"R_LARCH_ADD64", Const, 19},
-		{"R_LARCH_ADD8", Const, 19},
-		{"R_LARCH_ADD_ULEB128", Const, 22},
-		{"R_LARCH_ALIGN", Const, 22},
-		{"R_LARCH_B16", Const, 20},
-		{"R_LARCH_B21", Const, 20},
-		{"R_LARCH_B26", Const, 20},
-		{"R_LARCH_CFA", Const, 22},
-		{"R_LARCH_COPY", Const, 19},
-		{"R_LARCH_DELETE", Const, 22},
-		{"R_LARCH_GNU_VTENTRY", Const, 20},
-		{"R_LARCH_GNU_VTINHERIT", Const, 20},
-		{"R_LARCH_GOT64_HI12", Const, 20},
-		{"R_LARCH_GOT64_LO20", Const, 20},
-		{"R_LARCH_GOT64_PC_HI12", Const, 20},
-		{"R_LARCH_GOT64_PC_LO20", Const, 20},
-		{"R_LARCH_GOT_HI20", Const, 20},
-		{"R_LARCH_GOT_LO12", Const, 20},
-		{"R_LARCH_GOT_PC_HI20", Const, 20},
-		{"R_LARCH_GOT_PC_LO12", Const, 20},
-		{"R_LARCH_IRELATIVE", Const, 19},
-		{"R_LARCH_JUMP_SLOT", Const, 19},
-		{"R_LARCH_MARK_LA", Const, 19},
-		{"R_LARCH_MARK_PCREL", Const, 19},
-		{"R_LARCH_NONE", Const, 19},
-		{"R_LARCH_PCALA64_HI12", Const, 20},
-		{"R_LARCH_PCALA64_LO20", Const, 20},
-		{"R_LARCH_PCALA_HI20", Const, 20},
-		{"R_LARCH_PCALA_LO12", Const, 20},
-		{"R_LARCH_PCREL20_S2", Const, 22},
-		{"R_LARCH_RELATIVE", Const, 19},
-		{"R_LARCH_RELAX", Const, 20},
-		{"R_LARCH_SOP_ADD", Const, 19},
-		{"R_LARCH_SOP_AND", Const, 19},
-		{"R_LARCH_SOP_ASSERT", Const, 19},
-		{"R_LARCH_SOP_IF_ELSE", Const, 19},
-		{"R_LARCH_SOP_NOT", Const, 19},
-		{"R_LARCH_SOP_POP_32_S_0_10_10_16_S2", Const, 19},
-		{"R_LARCH_SOP_POP_32_S_0_5_10_16_S2", Const, 19},
-		{"R_LARCH_SOP_POP_32_S_10_12", Const, 19},
-		{"R_LARCH_SOP_POP_32_S_10_16", Const, 19},
-		{"R_LARCH_SOP_POP_32_S_10_16_S2", Const, 19},
-		{"R_LARCH_SOP_POP_32_S_10_5", Const, 19},
-		{"R_LARCH_SOP_POP_32_S_5_20", Const, 19},
-		{"R_LARCH_SOP_POP_32_U", Const, 19},
-		{"R_LARCH_SOP_POP_32_U_10_12", Const, 19},
-		{"R_LARCH_SOP_PUSH_ABSOLUTE", Const, 19},
-		{"R_LARCH_SOP_PUSH_DUP", Const, 19},
-		{"R_LARCH_SOP_PUSH_GPREL", Const, 19},
-		{"R_LARCH_SOP_PUSH_PCREL", Const, 19},
-		{"R_LARCH_SOP_PUSH_PLT_PCREL", Const, 19},
-		{"R_LARCH_SOP_PUSH_TLS_GD", Const, 19},
-		{"R_LARCH_SOP_PUSH_TLS_GOT", Const, 19},
-		{"R_LARCH_SOP_PUSH_TLS_TPREL", Const, 19},
-		{"R_LARCH_SOP_SL", Const, 19},
-		{"R_LARCH_SOP_SR", Const, 19},
-		{"R_LARCH_SOP_SUB", Const, 19},
-		{"R_LARCH_SUB16", Const, 19},
-		{"R_LARCH_SUB24", Const, 19},
-		{"R_LARCH_SUB32", Const, 19},
-		{"R_LARCH_SUB6", Const, 22},
-		{"R_LARCH_SUB64", Const, 19},
-		{"R_LARCH_SUB8", Const, 19},
-		{"R_LARCH_SUB_ULEB128", Const, 22},
-		{"R_LARCH_TLS_DTPMOD32", Const, 19},
-		{"R_LARCH_TLS_DTPMOD64", Const, 19},
-		{"R_LARCH_TLS_DTPREL32", Const, 19},
-		{"R_LARCH_TLS_DTPREL64", Const, 19},
-		{"R_LARCH_TLS_GD_HI20", Const, 20},
-		{"R_LARCH_TLS_GD_PC_HI20", Const, 20},
-		{"R_LARCH_TLS_IE64_HI12", Const, 20},
-		{"R_LARCH_TLS_IE64_LO20", Const, 20},
-		{"R_LARCH_TLS_IE64_PC_HI12", Const, 20},
-		{"R_LARCH_TLS_IE64_PC_LO20", Const, 20},
-		{"R_LARCH_TLS_IE_HI20", Const, 20},
-		{"R_LARCH_TLS_IE_LO12", Const, 20},
-		{"R_LARCH_TLS_IE_PC_HI20", Const, 20},
-		{"R_LARCH_TLS_IE_PC_LO12", Const, 20},
-		{"R_LARCH_TLS_LD_HI20", Const, 20},
-		{"R_LARCH_TLS_LD_PC_HI20", Const, 20},
-		{"R_LARCH_TLS_LE64_HI12", Const, 20},
-		{"R_LARCH_TLS_LE64_LO20", Const, 20},
-		{"R_LARCH_TLS_LE_HI20", Const, 20},
-		{"R_LARCH_TLS_LE_LO12", Const, 20},
-		{"R_LARCH_TLS_TPREL32", Const, 19},
-		{"R_LARCH_TLS_TPREL64", Const, 19},
-		{"R_MIPS", Type, 6},
-		{"R_MIPS_16", Const, 6},
-		{"R_MIPS_26", Const, 6},
-		{"R_MIPS_32", Const, 6},
-		{"R_MIPS_64", Const, 6},
-		{"R_MIPS_ADD_IMMEDIATE", Const, 6},
-		{"R_MIPS_CALL16", Const, 6},
-		{"R_MIPS_CALL_HI16", Const, 6},
-		{"R_MIPS_CALL_LO16", Const, 6},
-		{"R_MIPS_DELETE", Const, 6},
-		{"R_MIPS_GOT16", Const, 6},
-		{"R_MIPS_GOT_DISP", Const, 6},
-		{"R_MIPS_GOT_HI16", Const, 6},
-		{"R_MIPS_GOT_LO16", Const, 6},
-		{"R_MIPS_GOT_OFST", Const, 6},
-		{"R_MIPS_GOT_PAGE", Const, 6},
-		{"R_MIPS_GPREL16", Const, 6},
-		{"R_MIPS_GPREL32", Const, 6},
-		{"R_MIPS_HI16", Const, 6},
-		{"R_MIPS_HIGHER", Const, 6},
-		{"R_MIPS_HIGHEST", Const, 6},
-		{"R_MIPS_INSERT_A", Const, 6},
-		{"R_MIPS_INSERT_B", Const, 6},
-		{"R_MIPS_JALR", Const, 6},
-		{"R_MIPS_LITERAL", Const, 6},
-		{"R_MIPS_LO16", Const, 6},
-		{"R_MIPS_NONE", Const, 6},
-		{"R_MIPS_PC16", Const, 6},
-		{"R_MIPS_PC32", Const, 22},
-		{"R_MIPS_PJUMP", Const, 6},
-		{"R_MIPS_REL16", Const, 6},
-		{"R_MIPS_REL32", Const, 6},
-		{"R_MIPS_RELGOT", Const, 6},
-		{"R_MIPS_SCN_DISP", Const, 6},
-		{"R_MIPS_SHIFT5", Const, 6},
-		{"R_MIPS_SHIFT6", Const, 6},
-		{"R_MIPS_SUB", Const, 6},
-		{"R_MIPS_TLS_DTPMOD32", Const, 6},
-		{"R_MIPS_TLS_DTPMOD64", Const, 6},
-		{"R_MIPS_TLS_DTPREL32", Const, 6},
-		{"R_MIPS_TLS_DTPREL64", Const, 6},
-		{"R_MIPS_TLS_DTPREL_HI16", Const, 6},
-		{"R_MIPS_TLS_DTPREL_LO16", Const, 6},
-		{"R_MIPS_TLS_GD", Const, 6},
-		{"R_MIPS_TLS_GOTTPREL", Const, 6},
-		{"R_MIPS_TLS_LDM", Const, 6},
-		{"R_MIPS_TLS_TPREL32", Const, 6},
-		{"R_MIPS_TLS_TPREL64", Const, 6},
-		{"R_MIPS_TLS_TPREL_HI16", Const, 6},
-		{"R_MIPS_TLS_TPREL_LO16", Const, 6},
-		{"R_PPC", Type, 0},
-		{"R_PPC64", Type, 5},
-		{"R_PPC64_ADDR14", Const, 5},
-		{"R_PPC64_ADDR14_BRNTAKEN", Const, 5},
-		{"R_PPC64_ADDR14_BRTAKEN", Const, 5},
-		{"R_PPC64_ADDR16", Const, 5},
-		{"R_PPC64_ADDR16_DS", Const, 5},
-		{"R_PPC64_ADDR16_HA", Const, 5},
-		{"R_PPC64_ADDR16_HI", Const, 5},
-		{"R_PPC64_ADDR16_HIGH", Const, 10},
-		{"R_PPC64_ADDR16_HIGHA", Const, 10},
-		{"R_PPC64_ADDR16_HIGHER", Const, 5},
-		{"R_PPC64_ADDR16_HIGHER34", Const, 20},
-		{"R_PPC64_ADDR16_HIGHERA", Const, 5},
-		{"R_PPC64_ADDR16_HIGHERA34", Const, 20},
-		{"R_PPC64_ADDR16_HIGHEST", Const, 5},
-		{"R_PPC64_ADDR16_HIGHEST34", Const, 20},
-		{"R_PPC64_ADDR16_HIGHESTA", Const, 5},
-		{"R_PPC64_ADDR16_HIGHESTA34", Const, 20},
-		{"R_PPC64_ADDR16_LO", Const, 5},
-		{"R_PPC64_ADDR16_LO_DS", Const, 5},
-		{"R_PPC64_ADDR24", Const, 5},
-		{"R_PPC64_ADDR32", Const, 5},
-		{"R_PPC64_ADDR64", Const, 5},
-		{"R_PPC64_ADDR64_LOCAL", Const, 10},
-		{"R_PPC64_COPY", Const, 20},
-		{"R_PPC64_D28", Const, 20},
-		{"R_PPC64_D34", Const, 20},
-		{"R_PPC64_D34_HA30", Const, 20},
-		{"R_PPC64_D34_HI30", Const, 20},
-		{"R_PPC64_D34_LO", Const, 20},
-		{"R_PPC64_DTPMOD64", Const, 5},
-		{"R_PPC64_DTPREL16", Const, 5},
-		{"R_PPC64_DTPREL16_DS", Const, 5},
-		{"R_PPC64_DTPREL16_HA", Const, 5},
-		{"R_PPC64_DTPREL16_HI", Const, 5},
-		{"R_PPC64_DTPREL16_HIGH", Const, 10},
-		{"R_PPC64_DTPREL16_HIGHA", Const, 10},
-		{"R_PPC64_DTPREL16_HIGHER", Const, 5},
-		{"R_PPC64_DTPREL16_HIGHERA", Const, 5},
-		{"R_PPC64_DTPREL16_HIGHEST", Const, 5},
-		{"R_PPC64_DTPREL16_HIGHESTA", Const, 5},
-		{"R_PPC64_DTPREL16_LO", Const, 5},
-		{"R_PPC64_DTPREL16_LO_DS", Const, 5},
-		{"R_PPC64_DTPREL34", Const, 20},
-		{"R_PPC64_DTPREL64", Const, 5},
-		{"R_PPC64_ENTRY", Const, 10},
-		{"R_PPC64_GLOB_DAT", Const, 20},
-		{"R_PPC64_GNU_VTENTRY", Const, 20},
-		{"R_PPC64_GNU_VTINHERIT", Const, 20},
-		{"R_PPC64_GOT16", Const, 5},
-		{"R_PPC64_GOT16_DS", Const, 5},
-		{"R_PPC64_GOT16_HA", Const, 5},
-		{"R_PPC64_GOT16_HI", Const, 5},
-		{"R_PPC64_GOT16_LO", Const, 5},
-		{"R_PPC64_GOT16_LO_DS", Const, 5},
-		{"R_PPC64_GOT_DTPREL16_DS", Const, 5},
-		{"R_PPC64_GOT_DTPREL16_HA", Const, 5},
-		{"R_PPC64_GOT_DTPREL16_HI", Const, 5},
-		{"R_PPC64_GOT_DTPREL16_LO_DS", Const, 5},
-		{"R_PPC64_GOT_DTPREL_PCREL34", Const, 20},
-		{"R_PPC64_GOT_PCREL34", Const, 20},
-		{"R_PPC64_GOT_TLSGD16", Const, 5},
-		{"R_PPC64_GOT_TLSGD16_HA", Const, 5},
-		{"R_PPC64_GOT_TLSGD16_HI", Const, 5},
-		{"R_PPC64_GOT_TLSGD16_LO", Const, 5},
-		{"R_PPC64_GOT_TLSGD_PCREL34", Const, 20},
-		{"R_PPC64_GOT_TLSLD16", Const, 5},
-		{"R_PPC64_GOT_TLSLD16_HA", Const, 5},
-		{"R_PPC64_GOT_TLSLD16_HI", Const, 5},
-		{"R_PPC64_GOT_TLSLD16_LO", Const, 5},
-		{"R_PPC64_GOT_TLSLD_PCREL34", Const, 20},
-		{"R_PPC64_GOT_TPREL16_DS", Const, 5},
-		{"R_PPC64_GOT_TPREL16_HA", Const, 5},
-		{"R_PPC64_GOT_TPREL16_HI", Const, 5},
-		{"R_PPC64_GOT_TPREL16_LO_DS", Const, 5},
-		{"R_PPC64_GOT_TPREL_PCREL34", Const, 20},
-		{"R_PPC64_IRELATIVE", Const, 10},
-		{"R_PPC64_JMP_IREL", Const, 10},
-		{"R_PPC64_JMP_SLOT", Const, 5},
-		{"R_PPC64_NONE", Const, 5},
-		{"R_PPC64_PCREL28", Const, 20},
-		{"R_PPC64_PCREL34", Const, 20},
-		{"R_PPC64_PCREL_OPT", Const, 20},
-		{"R_PPC64_PLT16_HA", Const, 20},
-		{"R_PPC64_PLT16_HI", Const, 20},
-		{"R_PPC64_PLT16_LO", Const, 20},
-		{"R_PPC64_PLT16_LO_DS", Const, 10},
-		{"R_PPC64_PLT32", Const, 20},
-		{"R_PPC64_PLT64", Const, 20},
-		{"R_PPC64_PLTCALL", Const, 20},
-		{"R_PPC64_PLTCALL_NOTOC", Const, 20},
-		{"R_PPC64_PLTGOT16", Const, 10},
-		{"R_PPC64_PLTGOT16_DS", Const, 10},
-		{"R_PPC64_PLTGOT16_HA", Const, 10},
-		{"R_PPC64_PLTGOT16_HI", Const, 10},
-		{"R_PPC64_PLTGOT16_LO", Const, 10},
-		{"R_PPC64_PLTGOT_LO_DS", Const, 10},
-		{"R_PPC64_PLTREL32", Const, 20},
-		{"R_PPC64_PLTREL64", Const, 20},
-		{"R_PPC64_PLTSEQ", Const, 20},
-		{"R_PPC64_PLTSEQ_NOTOC", Const, 20},
-		{"R_PPC64_PLT_PCREL34", Const, 20},
-		{"R_PPC64_PLT_PCREL34_NOTOC", Const, 20},
-		{"R_PPC64_REL14", Const, 5},
-		{"R_PPC64_REL14_BRNTAKEN", Const, 5},
-		{"R_PPC64_REL14_BRTAKEN", Const, 5},
-		{"R_PPC64_REL16", Const, 5},
-		{"R_PPC64_REL16DX_HA", Const, 10},
-		{"R_PPC64_REL16_HA", Const, 5},
-		{"R_PPC64_REL16_HI", Const, 5},
-		{"R_PPC64_REL16_HIGH", Const, 20},
-		{"R_PPC64_REL16_HIGHA", Const, 20},
-		{"R_PPC64_REL16_HIGHER", Const, 20},
-		{"R_PPC64_REL16_HIGHER34", Const, 20},
-		{"R_PPC64_REL16_HIGHERA", Const, 20},
-		{"R_PPC64_REL16_HIGHERA34", Const, 20},
-		{"R_PPC64_REL16_HIGHEST", Const, 20},
-		{"R_PPC64_REL16_HIGHEST34", Const, 20},
-		{"R_PPC64_REL16_HIGHESTA", Const, 20},
-		{"R_PPC64_REL16_HIGHESTA34", Const, 20},
-		{"R_PPC64_REL16_LO", Const, 5},
-		{"R_PPC64_REL24", Const, 5},
-		{"R_PPC64_REL24_NOTOC", Const, 10},
-		{"R_PPC64_REL24_P9NOTOC", Const, 21},
-		{"R_PPC64_REL30", Const, 20},
-		{"R_PPC64_REL32", Const, 5},
-		{"R_PPC64_REL64", Const, 5},
-		{"R_PPC64_RELATIVE", Const, 18},
-		{"R_PPC64_SECTOFF", Const, 20},
-		{"R_PPC64_SECTOFF_DS", Const, 10},
-		{"R_PPC64_SECTOFF_HA", Const, 20},
-		{"R_PPC64_SECTOFF_HI", Const, 20},
-		{"R_PPC64_SECTOFF_LO", Const, 20},
-		{"R_PPC64_SECTOFF_LO_DS", Const, 10},
-		{"R_PPC64_TLS", Const, 5},
-		{"R_PPC64_TLSGD", Const, 5},
-		{"R_PPC64_TLSLD", Const, 5},
-		{"R_PPC64_TOC", Const, 5},
-		{"R_PPC64_TOC16", Const, 5},
-		{"R_PPC64_TOC16_DS", Const, 5},
-		{"R_PPC64_TOC16_HA", Const, 5},
-		{"R_PPC64_TOC16_HI", Const, 5},
-		{"R_PPC64_TOC16_LO", Const, 5},
-		{"R_PPC64_TOC16_LO_DS", Const, 5},
-		{"R_PPC64_TOCSAVE", Const, 10},
-		{"R_PPC64_TPREL16", Const, 5},
-		{"R_PPC64_TPREL16_DS", Const, 5},
-		{"R_PPC64_TPREL16_HA", Const, 5},
-		{"R_PPC64_TPREL16_HI", Const, 5},
-		{"R_PPC64_TPREL16_HIGH", Const, 10},
-		{"R_PPC64_TPREL16_HIGHA", Const, 10},
-		{"R_PPC64_TPREL16_HIGHER", Const, 5},
-		{"R_PPC64_TPREL16_HIGHERA", Const, 5},
-		{"R_PPC64_TPREL16_HIGHEST", Const, 5},
-		{"R_PPC64_TPREL16_HIGHESTA", Const, 5},
-		{"R_PPC64_TPREL16_LO", Const, 5},
-		{"R_PPC64_TPREL16_LO_DS", Const, 5},
-		{"R_PPC64_TPREL34", Const, 20},
-		{"R_PPC64_TPREL64", Const, 5},
-		{"R_PPC64_UADDR16", Const, 20},
-		{"R_PPC64_UADDR32", Const, 20},
-		{"R_PPC64_UADDR64", Const, 20},
-		{"R_PPC_ADDR14", Const, 0},
-		{"R_PPC_ADDR14_BRNTAKEN", Const, 0},
-		{"R_PPC_ADDR14_BRTAKEN", Const, 0},
-		{"R_PPC_ADDR16", Const, 0},
-		{"R_PPC_ADDR16_HA", Const, 0},
-		{"R_PPC_ADDR16_HI", Const, 0},
-		{"R_PPC_ADDR16_LO", Const, 0},
-		{"R_PPC_ADDR24", Const, 0},
-		{"R_PPC_ADDR32", Const, 0},
-		{"R_PPC_COPY", Const, 0},
-		{"R_PPC_DTPMOD32", Const, 0},
-		{"R_PPC_DTPREL16", Const, 0},
-		{"R_PPC_DTPREL16_HA", Const, 0},
-		{"R_PPC_DTPREL16_HI", Const, 0},
-		{"R_PPC_DTPREL16_LO", Const, 0},
-		{"R_PPC_DTPREL32", Const, 0},
-		{"R_PPC_EMB_BIT_FLD", Const, 0},
-		{"R_PPC_EMB_MRKREF", Const, 0},
-		{"R_PPC_EMB_NADDR16", Const, 0},
-		{"R_PPC_EMB_NADDR16_HA", Const, 0},
-		{"R_PPC_EMB_NADDR16_HI", Const, 0},
-		{"R_PPC_EMB_NADDR16_LO", Const, 0},
-		{"R_PPC_EMB_NADDR32", Const, 0},
-		{"R_PPC_EMB_RELSDA", Const, 0},
-		{"R_PPC_EMB_RELSEC16", Const, 0},
-		{"R_PPC_EMB_RELST_HA", Const, 0},
-		{"R_PPC_EMB_RELST_HI", Const, 0},
-		{"R_PPC_EMB_RELST_LO", Const, 0},
-		{"R_PPC_EMB_SDA21", Const, 0},
-		{"R_PPC_EMB_SDA2I16", Const, 0},
-		{"R_PPC_EMB_SDA2REL", Const, 0},
-		{"R_PPC_EMB_SDAI16", Const, 0},
-		{"R_PPC_GLOB_DAT", Const, 0},
-		{"R_PPC_GOT16", Const, 0},
-		{"R_PPC_GOT16_HA", Const, 0},
-		{"R_PPC_GOT16_HI", Const, 0},
-		{"R_PPC_GOT16_LO", Const, 0},
-		{"R_PPC_GOT_TLSGD16", Const, 0},
-		{"R_PPC_GOT_TLSGD16_HA", Const, 0},
-		{"R_PPC_GOT_TLSGD16_HI", Const, 0},
-		{"R_PPC_GOT_TLSGD16_LO", Const, 0},
-		{"R_PPC_GOT_TLSLD16", Const, 0},
-		{"R_PPC_GOT_TLSLD16_HA", Const, 0},
-		{"R_PPC_GOT_TLSLD16_HI", Const, 0},
-		{"R_PPC_GOT_TLSLD16_LO", Const, 0},
-		{"R_PPC_GOT_TPREL16", Const, 0},
-		{"R_PPC_GOT_TPREL16_HA", Const, 0},
-		{"R_PPC_GOT_TPREL16_HI", Const, 0},
-		{"R_PPC_GOT_TPREL16_LO", Const, 0},
-		{"R_PPC_JMP_SLOT", Const, 0},
-		{"R_PPC_LOCAL24PC", Const, 0},
-		{"R_PPC_NONE", Const, 0},
-		{"R_PPC_PLT16_HA", Const, 0},
-		{"R_PPC_PLT16_HI", Const, 0},
-		{"R_PPC_PLT16_LO", Const, 0},
-		{"R_PPC_PLT32", Const, 0},
-		{"R_PPC_PLTREL24", Const, 0},
-		{"R_PPC_PLTREL32", Const, 0},
-		{"R_PPC_REL14", Const, 0},
-		{"R_PPC_REL14_BRNTAKEN", Const, 0},
-		{"R_PPC_REL14_BRTAKEN", Const, 0},
-		{"R_PPC_REL24", Const, 0},
-		{"R_PPC_REL32", Const, 0},
-		{"R_PPC_RELATIVE", Const, 0},
-		{"R_PPC_SDAREL16", Const, 0},
-		{"R_PPC_SECTOFF", Const, 0},
-		{"R_PPC_SECTOFF_HA", Const, 0},
-		{"R_PPC_SECTOFF_HI", Const, 0},
-		{"R_PPC_SECTOFF_LO", Const, 0},
-		{"R_PPC_TLS", Const, 0},
-		{"R_PPC_TPREL16", Const, 0},
-		{"R_PPC_TPREL16_HA", Const, 0},
-		{"R_PPC_TPREL16_HI", Const, 0},
-		{"R_PPC_TPREL16_LO", Const, 0},
-		{"R_PPC_TPREL32", Const, 0},
-		{"R_PPC_UADDR16", Const, 0},
-		{"R_PPC_UADDR32", Const, 0},
-		{"R_RISCV", Type, 11},
-		{"R_RISCV_32", Const, 11},
-		{"R_RISCV_32_PCREL", Const, 12},
-		{"R_RISCV_64", Const, 11},
-		{"R_RISCV_ADD16", Const, 11},
-		{"R_RISCV_ADD32", Const, 11},
-		{"R_RISCV_ADD64", Const, 11},
-		{"R_RISCV_ADD8", Const, 11},
-		{"R_RISCV_ALIGN", Const, 11},
-		{"R_RISCV_BRANCH", Const, 11},
-		{"R_RISCV_CALL", Const, 11},
-		{"R_RISCV_CALL_PLT", Const, 11},
-		{"R_RISCV_COPY", Const, 11},
-		{"R_RISCV_GNU_VTENTRY", Const, 11},
-		{"R_RISCV_GNU_VTINHERIT", Const, 11},
-		{"R_RISCV_GOT_HI20", Const, 11},
-		{"R_RISCV_GPREL_I", Const, 11},
-		{"R_RISCV_GPREL_S", Const, 11},
-		{"R_RISCV_HI20", Const, 11},
-		{"R_RISCV_JAL", Const, 11},
-		{"R_RISCV_JUMP_SLOT", Const, 11},
-		{"R_RISCV_LO12_I", Const, 11},
-		{"R_RISCV_LO12_S", Const, 11},
-		{"R_RISCV_NONE", Const, 11},
-		{"R_RISCV_PCREL_HI20", Const, 11},
-		{"R_RISCV_PCREL_LO12_I", Const, 11},
-		{"R_RISCV_PCREL_LO12_S", Const, 11},
-		{"R_RISCV_RELATIVE", Const, 11},
-		{"R_RISCV_RELAX", Const, 11},
-		{"R_RISCV_RVC_BRANCH", Const, 11},
-		{"R_RISCV_RVC_JUMP", Const, 11},
-		{"R_RISCV_RVC_LUI", Const, 11},
-		{"R_RISCV_SET16", Const, 11},
-		{"R_RISCV_SET32", Const, 11},
-		{"R_RISCV_SET6", Const, 11},
-		{"R_RISCV_SET8", Const, 11},
-		{"R_RISCV_SUB16", Const, 11},
-		{"R_RISCV_SUB32", Const, 11},
-		{"R_RISCV_SUB6", Const, 11},
-		{"R_RISCV_SUB64", Const, 11},
-		{"R_RISCV_SUB8", Const, 11},
-		{"R_RISCV_TLS_DTPMOD32", Const, 11},
-		{"R_RISCV_TLS_DTPMOD64", Const, 11},
-		{"R_RISCV_TLS_DTPREL32", Const, 11},
-		{"R_RISCV_TLS_DTPREL64", Const, 11},
-		{"R_RISCV_TLS_GD_HI20", Const, 11},
-		{"R_RISCV_TLS_GOT_HI20", Const, 11},
-		{"R_RISCV_TLS_TPREL32", Const, 11},
-		{"R_RISCV_TLS_TPREL64", Const, 11},
-		{"R_RISCV_TPREL_ADD", Const, 11},
-		{"R_RISCV_TPREL_HI20", Const, 11},
-		{"R_RISCV_TPREL_I", Const, 11},
-		{"R_RISCV_TPREL_LO12_I", Const, 11},
-		{"R_RISCV_TPREL_LO12_S", Const, 11},
-		{"R_RISCV_TPREL_S", Const, 11},
-		{"R_SPARC", Type, 0},
-		{"R_SPARC_10", Const, 0},
-		{"R_SPARC_11", Const, 0},
-		{"R_SPARC_13", Const, 0},
-		{"R_SPARC_16", Const, 0},
-		{"R_SPARC_22", Const, 0},
-		{"R_SPARC_32", Const, 0},
-		{"R_SPARC_5", Const, 0},
-		{"R_SPARC_6", Const, 0},
-		{"R_SPARC_64", Const, 0},
-		{"R_SPARC_7", Const, 0},
-		{"R_SPARC_8", Const, 0},
-		{"R_SPARC_COPY", Const, 0},
-		{"R_SPARC_DISP16", Const, 0},
-		{"R_SPARC_DISP32", Const, 0},
-		{"R_SPARC_DISP64", Const, 0},
-		{"R_SPARC_DISP8", Const, 0},
-		{"R_SPARC_GLOB_DAT", Const, 0},
-		{"R_SPARC_GLOB_JMP", Const, 0},
-		{"R_SPARC_GOT10", Const, 0},
-		{"R_SPARC_GOT13", Const, 0},
-		{"R_SPARC_GOT22", Const, 0},
-		{"R_SPARC_H44", Const, 0},
-		{"R_SPARC_HH22", Const, 0},
-		{"R_SPARC_HI22", Const, 0},
-		{"R_SPARC_HIPLT22", Const, 0},
-		{"R_SPARC_HIX22", Const, 0},
-		{"R_SPARC_HM10", Const, 0},
-		{"R_SPARC_JMP_SLOT", Const, 0},
-		{"R_SPARC_L44", Const, 0},
-		{"R_SPARC_LM22", Const, 0},
-		{"R_SPARC_LO10", Const, 0},
-		{"R_SPARC_LOPLT10", Const, 0},
-		{"R_SPARC_LOX10", Const, 0},
-		{"R_SPARC_M44", Const, 0},
-		{"R_SPARC_NONE", Const, 0},
-		{"R_SPARC_OLO10", Const, 0},
-		{"R_SPARC_PC10", Const, 0},
-		{"R_SPARC_PC22", Const, 0},
-		{"R_SPARC_PCPLT10", Const, 0},
-		{"R_SPARC_PCPLT22", Const, 0},
-		{"R_SPARC_PCPLT32", Const, 0},
-		{"R_SPARC_PC_HH22", Const, 0},
-		{"R_SPARC_PC_HM10", Const, 0},
-		{"R_SPARC_PC_LM22", Const, 0},
-		{"R_SPARC_PLT32", Const, 0},
-		{"R_SPARC_PLT64", Const, 0},
-		{"R_SPARC_REGISTER", Const, 0},
-		{"R_SPARC_RELATIVE", Const, 0},
-		{"R_SPARC_UA16", Const, 0},
-		{"R_SPARC_UA32", Const, 0},
-		{"R_SPARC_UA64", Const, 0},
-		{"R_SPARC_WDISP16", Const, 0},
-		{"R_SPARC_WDISP19", Const, 0},
-		{"R_SPARC_WDISP22", Const, 0},
-		{"R_SPARC_WDISP30", Const, 0},
-		{"R_SPARC_WPLT30", Const, 0},
-		{"R_SYM32", Func, 0},
-		{"R_SYM64", Func, 0},
-		{"R_TYPE32", Func, 0},
-		{"R_TYPE64", Func, 0},
-		{"R_X86_64", Type, 0},
-		{"R_X86_64_16", Const, 0},
-		{"R_X86_64_32", Const, 0},
-		{"R_X86_64_32S", Const, 0},
-		{"R_X86_64_64", Const, 0},
-		{"R_X86_64_8", Const, 0},
-		{"R_X86_64_COPY", Const, 0},
-		{"R_X86_64_DTPMOD64", Const, 0},
-		{"R_X86_64_DTPOFF32", Const, 0},
-		{"R_X86_64_DTPOFF64", Const, 0},
-		{"R_X86_64_GLOB_DAT", Const, 0},
-		{"R_X86_64_GOT32", Const, 0},
-		{"R_X86_64_GOT64", Const, 10},
-		{"R_X86_64_GOTOFF64", Const, 10},
-		{"R_X86_64_GOTPC32", Const, 10},
-		{"R_X86_64_GOTPC32_TLSDESC", Const, 10},
-		{"R_X86_64_GOTPC64", Const, 10},
-		{"R_X86_64_GOTPCREL", Const, 0},
-		{"R_X86_64_GOTPCREL64", Const, 10},
-		{"R_X86_64_GOTPCRELX", Const, 10},
-		{"R_X86_64_GOTPLT64", Const, 10},
-		{"R_X86_64_GOTTPOFF", Const, 0},
-		{"R_X86_64_IRELATIVE", Const, 10},
-		{"R_X86_64_JMP_SLOT", Const, 0},
-		{"R_X86_64_NONE", Const, 0},
-		{"R_X86_64_PC16", Const, 0},
-		{"R_X86_64_PC32", Const, 0},
-		{"R_X86_64_PC32_BND", Const, 10},
-		{"R_X86_64_PC64", Const, 10},
-		{"R_X86_64_PC8", Const, 0},
-		{"R_X86_64_PLT32", Const, 0},
-		{"R_X86_64_PLT32_BND", Const, 10},
-		{"R_X86_64_PLTOFF64", Const, 10},
-		{"R_X86_64_RELATIVE", Const, 0},
-		{"R_X86_64_RELATIVE64", Const, 10},
-		{"R_X86_64_REX_GOTPCRELX", Const, 10},
-		{"R_X86_64_SIZE32", Const, 10},
-		{"R_X86_64_SIZE64", Const, 10},
-		{"R_X86_64_TLSDESC", Const, 10},
-		{"R_X86_64_TLSDESC_CALL", Const, 10},
-		{"R_X86_64_TLSGD", Const, 0},
-		{"R_X86_64_TLSLD", Const, 0},
-		{"R_X86_64_TPOFF32", Const, 0},
-		{"R_X86_64_TPOFF64", Const, 0},
-		{"Rel32", Type, 0},
-		{"Rel32.Info", Field, 0},
-		{"Rel32.Off", Field, 0},
-		{"Rel64", Type, 0},
-		{"Rel64.Info", Field, 0},
-		{"Rel64.Off", Field, 0},
-		{"Rela32", Type, 0},
-		{"Rela32.Addend", Field, 0},
-		{"Rela32.Info", Field, 0},
-		{"Rela32.Off", Field, 0},
-		{"Rela64", Type, 0},
-		{"Rela64.Addend", Field, 0},
-		{"Rela64.Info", Field, 0},
-		{"Rela64.Off", Field, 0},
-		{"SHF_ALLOC", Const, 0},
-		{"SHF_COMPRESSED", Const, 6},
-		{"SHF_EXECINSTR", Const, 0},
-		{"SHF_GROUP", Const, 0},
-		{"SHF_INFO_LINK", Const, 0},
-		{"SHF_LINK_ORDER", Const, 0},
-		{"SHF_MASKOS", Const, 0},
-		{"SHF_MASKPROC", Const, 0},
-		{"SHF_MERGE", Const, 0},
-		{"SHF_OS_NONCONFORMING", Const, 0},
-		{"SHF_STRINGS", Const, 0},
-		{"SHF_TLS", Const, 0},
-		{"SHF_WRITE", Const, 0},
-		{"SHN_ABS", Const, 0},
-		{"SHN_COMMON", Const, 0},
-		{"SHN_HIOS", Const, 0},
-		{"SHN_HIPROC", Const, 0},
-		{"SHN_HIRESERVE", Const, 0},
-		{"SHN_LOOS", Const, 0},
-		{"SHN_LOPROC", Const, 0},
-		{"SHN_LORESERVE", Const, 0},
-		{"SHN_UNDEF", Const, 0},
-		{"SHN_XINDEX", Const, 0},
-		{"SHT_DYNAMIC", Const, 0},
-		{"SHT_DYNSYM", Const, 0},
-		{"SHT_FINI_ARRAY", Const, 0},
-		{"SHT_GNU_ATTRIBUTES", Const, 0},
-		{"SHT_GNU_HASH", Const, 0},
-		{"SHT_GNU_LIBLIST", Const, 0},
-		{"SHT_GNU_VERDEF", Const, 0},
-		{"SHT_GNU_VERNEED", Const, 0},
-		{"SHT_GNU_VERSYM", Const, 0},
-		{"SHT_GROUP", Const, 0},
-		{"SHT_HASH", Const, 0},
-		{"SHT_HIOS", Const, 0},
-		{"SHT_HIPROC", Const, 0},
-		{"SHT_HIUSER", Const, 0},
-		{"SHT_INIT_ARRAY", Const, 0},
-		{"SHT_LOOS", Const, 0},
-		{"SHT_LOPROC", Const, 0},
-		{"SHT_LOUSER", Const, 0},
-		{"SHT_MIPS_ABIFLAGS", Const, 17},
-		{"SHT_NOBITS", Const, 0},
-		{"SHT_NOTE", Const, 0},
-		{"SHT_NULL", Const, 0},
-		{"SHT_PREINIT_ARRAY", Const, 0},
-		{"SHT_PROGBITS", Const, 0},
-		{"SHT_REL", Const, 0},
-		{"SHT_RELA", Const, 0},
-		{"SHT_SHLIB", Const, 0},
-		{"SHT_STRTAB", Const, 0},
-		{"SHT_SYMTAB", Const, 0},
-		{"SHT_SYMTAB_SHNDX", Const, 0},
-		{"STB_GLOBAL", Const, 0},
-		{"STB_HIOS", Const, 0},
-		{"STB_HIPROC", Const, 0},
-		{"STB_LOCAL", Const, 0},
-		{"STB_LOOS", Const, 0},
-		{"STB_LOPROC", Const, 0},
-		{"STB_WEAK", Const, 0},
-		{"STT_COMMON", Const, 0},
-		{"STT_FILE", Const, 0},
-		{"STT_FUNC", Const, 0},
-		{"STT_GNU_IFUNC", Const, 23},
-		{"STT_HIOS", Const, 0},
-		{"STT_HIPROC", Const, 0},
-		{"STT_LOOS", Const, 0},
-		{"STT_LOPROC", Const, 0},
-		{"STT_NOTYPE", Const, 0},
-		{"STT_OBJECT", Const, 0},
-		{"STT_RELC", Const, 23},
-		{"STT_SECTION", Const, 0},
-		{"STT_SRELC", Const, 23},
-		{"STT_TLS", Const, 0},
-		{"STV_DEFAULT", Const, 0},
-		{"STV_HIDDEN", Const, 0},
-		{"STV_INTERNAL", Const, 0},
-		{"STV_PROTECTED", Const, 0},
-		{"ST_BIND", Func, 0},
-		{"ST_INFO", Func, 0},
-		{"ST_TYPE", Func, 0},
-		{"ST_VISIBILITY", Func, 0},
-		{"Section", Type, 0},
-		{"Section.ReaderAt", Field, 0},
-		{"Section.SectionHeader", Field, 0},
-		{"Section32", Type, 0},
-		{"Section32.Addr", Field, 0},
-		{"Section32.Addralign", Field, 0},
-		{"Section32.Entsize", Field, 0},
-		{"Section32.Flags", Field, 0},
-		{"Section32.Info", Field, 0},
-		{"Section32.Link", Field, 0},
-		{"Section32.Name", Field, 0},
-		{"Section32.Off", Field, 0},
-		{"Section32.Size", Field, 0},
-		{"Section32.Type", Field, 0},
-		{"Section64", Type, 0},
-		{"Section64.Addr", Field, 0},
-		{"Section64.Addralign", Field, 0},
-		{"Section64.Entsize", Field, 0},
-		{"Section64.Flags", Field, 0},
-		{"Section64.Info", Field, 0},
-		{"Section64.Link", Field, 0},
-		{"Section64.Name", Field, 0},
-		{"Section64.Off", Field, 0},
-		{"Section64.Size", Field, 0},
-		{"Section64.Type", Field, 0},
-		{"SectionFlag", Type, 0},
-		{"SectionHeader", Type, 0},
-		{"SectionHeader.Addr", Field, 0},
-		{"SectionHeader.Addralign", Field, 0},
-		{"SectionHeader.Entsize", Field, 0},
-		{"SectionHeader.FileSize", Field, 6},
-		{"SectionHeader.Flags", Field, 0},
-		{"SectionHeader.Info", Field, 0},
-		{"SectionHeader.Link", Field, 0},
-		{"SectionHeader.Name", Field, 0},
-		{"SectionHeader.Offset", Field, 0},
-		{"SectionHeader.Size", Field, 0},
-		{"SectionHeader.Type", Field, 0},
-		{"SectionIndex", Type, 0},
-		{"SectionType", Type, 0},
-		{"Sym32", Type, 0},
-		{"Sym32.Info", Field, 0},
-		{"Sym32.Name", Field, 0},
-		{"Sym32.Other", Field, 0},
-		{"Sym32.Shndx", Field, 0},
-		{"Sym32.Size", Field, 0},
-		{"Sym32.Value", Field, 0},
-		{"Sym32Size", Const, 0},
-		{"Sym64", Type, 0},
-		{"Sym64.Info", Field, 0},
-		{"Sym64.Name", Field, 0},
-		{"Sym64.Other", Field, 0},
-		{"Sym64.Shndx", Field, 0},
-		{"Sym64.Size", Field, 0},
-		{"Sym64.Value", Field, 0},
-		{"Sym64Size", Const, 0},
-		{"SymBind", Type, 0},
-		{"SymType", Type, 0},
-		{"SymVis", Type, 0},
-		{"Symbol", Type, 0},
-		{"Symbol.HasVersion", Field, 24},
-		{"Symbol.Info", Field, 0},
-		{"Symbol.Library", Field, 13},
-		{"Symbol.Name", Field, 0},
-		{"Symbol.Other", Field, 0},
-		{"Symbol.Section", Field, 0},
-		{"Symbol.Size", Field, 0},
-		{"Symbol.Value", Field, 0},
-		{"Symbol.Version", Field, 13},
-		{"Symbol.VersionIndex", Field, 24},
-		{"Type", Type, 0},
-		{"VER_FLG_BASE", Const, 24},
-		{"VER_FLG_INFO", Const, 24},
-		{"VER_FLG_WEAK", Const, 24},
-		{"Version", Type, 0},
-		{"VersionIndex", Type, 24},
+		{"(*File).Close", Method, 0, ""},
+		{"(*File).DWARF", Method, 0, ""},
+		{"(*File).DynString", Method, 1, ""},
+		{"(*File).DynValue", Method, 21, ""},
+		{"(*File).DynamicSymbols", Method, 4, ""},
+		{"(*File).DynamicVersionNeeds", Method, 24, ""},
+		{"(*File).DynamicVersions", Method, 24, ""},
+		{"(*File).ImportedLibraries", Method, 0, ""},
+		{"(*File).ImportedSymbols", Method, 0, ""},
+		{"(*File).Section", Method, 0, ""},
+		{"(*File).SectionByType", Method, 0, ""},
+		{"(*File).Symbols", Method, 0, ""},
+		{"(*FormatError).Error", Method, 0, ""},
+		{"(*Prog).Open", Method, 0, ""},
+		{"(*Section).Data", Method, 0, ""},
+		{"(*Section).Open", Method, 0, ""},
+		{"(Class).GoString", Method, 0, ""},
+		{"(Class).String", Method, 0, ""},
+		{"(CompressionType).GoString", Method, 6, ""},
+		{"(CompressionType).String", Method, 6, ""},
+		{"(Data).GoString", Method, 0, ""},
+		{"(Data).String", Method, 0, ""},
+		{"(DynFlag).GoString", Method, 0, ""},
+		{"(DynFlag).String", Method, 0, ""},
+		{"(DynFlag1).GoString", Method, 21, ""},
+		{"(DynFlag1).String", Method, 21, ""},
+		{"(DynTag).GoString", Method, 0, ""},
+		{"(DynTag).String", Method, 0, ""},
+		{"(Machine).GoString", Method, 0, ""},
+		{"(Machine).String", Method, 0, ""},
+		{"(NType).GoString", Method, 0, ""},
+		{"(NType).String", Method, 0, ""},
+		{"(OSABI).GoString", Method, 0, ""},
+		{"(OSABI).String", Method, 0, ""},
+		{"(Prog).ReadAt", Method, 0, ""},
+		{"(ProgFlag).GoString", Method, 0, ""},
+		{"(ProgFlag).String", Method, 0, ""},
+		{"(ProgType).GoString", Method, 0, ""},
+		{"(ProgType).String", Method, 0, ""},
+		{"(R_386).GoString", Method, 0, ""},
+		{"(R_386).String", Method, 0, ""},
+		{"(R_390).GoString", Method, 7, ""},
+		{"(R_390).String", Method, 7, ""},
+		{"(R_AARCH64).GoString", Method, 4, ""},
+		{"(R_AARCH64).String", Method, 4, ""},
+		{"(R_ALPHA).GoString", Method, 0, ""},
+		{"(R_ALPHA).String", Method, 0, ""},
+		{"(R_ARM).GoString", Method, 0, ""},
+		{"(R_ARM).String", Method, 0, ""},
+		{"(R_LARCH).GoString", Method, 19, ""},
+		{"(R_LARCH).String", Method, 19, ""},
+		{"(R_MIPS).GoString", Method, 6, ""},
+		{"(R_MIPS).String", Method, 6, ""},
+		{"(R_PPC).GoString", Method, 0, ""},
+		{"(R_PPC).String", Method, 0, ""},
+		{"(R_PPC64).GoString", Method, 5, ""},
+		{"(R_PPC64).String", Method, 5, ""},
+		{"(R_RISCV).GoString", Method, 11, ""},
+		{"(R_RISCV).String", Method, 11, ""},
+		{"(R_SPARC).GoString", Method, 0, ""},
+		{"(R_SPARC).String", Method, 0, ""},
+		{"(R_X86_64).GoString", Method, 0, ""},
+		{"(R_X86_64).String", Method, 0, ""},
+		{"(Section).ReadAt", Method, 0, ""},
+		{"(SectionFlag).GoString", Method, 0, ""},
+		{"(SectionFlag).String", Method, 0, ""},
+		{"(SectionIndex).GoString", Method, 0, ""},
+		{"(SectionIndex).String", Method, 0, ""},
+		{"(SectionType).GoString", Method, 0, ""},
+		{"(SectionType).String", Method, 0, ""},
+		{"(SymBind).GoString", Method, 0, ""},
+		{"(SymBind).String", Method, 0, ""},
+		{"(SymType).GoString", Method, 0, ""},
+		{"(SymType).String", Method, 0, ""},
+		{"(SymVis).GoString", Method, 0, ""},
+		{"(SymVis).String", Method, 0, ""},
+		{"(Type).GoString", Method, 0, ""},
+		{"(Type).String", Method, 0, ""},
+		{"(Version).GoString", Method, 0, ""},
+		{"(Version).String", Method, 0, ""},
+		{"(VersionIndex).Index", Method, 24, ""},
+		{"(VersionIndex).IsHidden", Method, 24, ""},
+		{"ARM_MAGIC_TRAMP_NUMBER", Const, 0, ""},
+		{"COMPRESS_HIOS", Const, 6, ""},
+		{"COMPRESS_HIPROC", Const, 6, ""},
+		{"COMPRESS_LOOS", Const, 6, ""},
+		{"COMPRESS_LOPROC", Const, 6, ""},
+		{"COMPRESS_ZLIB", Const, 6, ""},
+		{"COMPRESS_ZSTD", Const, 21, ""},
+		{"Chdr32", Type, 6, ""},
+		{"Chdr32.Addralign", Field, 6, ""},
+		{"Chdr32.Size", Field, 6, ""},
+		{"Chdr32.Type", Field, 6, ""},
+		{"Chdr64", Type, 6, ""},
+		{"Chdr64.Addralign", Field, 6, ""},
+		{"Chdr64.Size", Field, 6, ""},
+		{"Chdr64.Type", Field, 6, ""},
+		{"Class", Type, 0, ""},
+		{"CompressionType", Type, 6, ""},
+		{"DF_1_CONFALT", Const, 21, ""},
+		{"DF_1_DIRECT", Const, 21, ""},
+		{"DF_1_DISPRELDNE", Const, 21, ""},
+		{"DF_1_DISPRELPND", Const, 21, ""},
+		{"DF_1_EDITED", Const, 21, ""},
+		{"DF_1_ENDFILTEE", Const, 21, ""},
+		{"DF_1_GLOBAL", Const, 21, ""},
+		{"DF_1_GLOBAUDIT", Const, 21, ""},
+		{"DF_1_GROUP", Const, 21, ""},
+		{"DF_1_IGNMULDEF", Const, 21, ""},
+		{"DF_1_INITFIRST", Const, 21, ""},
+		{"DF_1_INTERPOSE", Const, 21, ""},
+		{"DF_1_KMOD", Const, 21, ""},
+		{"DF_1_LOADFLTR", Const, 21, ""},
+		{"DF_1_NOCOMMON", Const, 21, ""},
+		{"DF_1_NODEFLIB", Const, 21, ""},
+		{"DF_1_NODELETE", Const, 21, ""},
+		{"DF_1_NODIRECT", Const, 21, ""},
+		{"DF_1_NODUMP", Const, 21, ""},
+		{"DF_1_NOHDR", Const, 21, ""},
+		{"DF_1_NOKSYMS", Const, 21, ""},
+		{"DF_1_NOOPEN", Const, 21, ""},
+		{"DF_1_NORELOC", Const, 21, ""},
+		{"DF_1_NOW", Const, 21, ""},
+		{"DF_1_ORIGIN", Const, 21, ""},
+		{"DF_1_PIE", Const, 21, ""},
+		{"DF_1_SINGLETON", Const, 21, ""},
+		{"DF_1_STUB", Const, 21, ""},
+		{"DF_1_SYMINTPOSE", Const, 21, ""},
+		{"DF_1_TRANS", Const, 21, ""},
+		{"DF_1_WEAKFILTER", Const, 21, ""},
+		{"DF_BIND_NOW", Const, 0, ""},
+		{"DF_ORIGIN", Const, 0, ""},
+		{"DF_STATIC_TLS", Const, 0, ""},
+		{"DF_SYMBOLIC", Const, 0, ""},
+		{"DF_TEXTREL", Const, 0, ""},
+		{"DT_ADDRRNGHI", Const, 16, ""},
+		{"DT_ADDRRNGLO", Const, 16, ""},
+		{"DT_AUDIT", Const, 16, ""},
+		{"DT_AUXILIARY", Const, 16, ""},
+		{"DT_BIND_NOW", Const, 0, ""},
+		{"DT_CHECKSUM", Const, 16, ""},
+		{"DT_CONFIG", Const, 16, ""},
+		{"DT_DEBUG", Const, 0, ""},
+		{"DT_DEPAUDIT", Const, 16, ""},
+		{"DT_ENCODING", Const, 0, ""},
+		{"DT_FEATURE", Const, 16, ""},
+		{"DT_FILTER", Const, 16, ""},
+		{"DT_FINI", Const, 0, ""},
+		{"DT_FINI_ARRAY", Const, 0, ""},
+		{"DT_FINI_ARRAYSZ", Const, 0, ""},
+		{"DT_FLAGS", Const, 0, ""},
+		{"DT_FLAGS_1", Const, 16, ""},
+		{"DT_GNU_CONFLICT", Const, 16, ""},
+		{"DT_GNU_CONFLICTSZ", Const, 16, ""},
+		{"DT_GNU_HASH", Const, 16, ""},
+		{"DT_GNU_LIBLIST", Const, 16, ""},
+		{"DT_GNU_LIBLISTSZ", Const, 16, ""},
+		{"DT_GNU_PRELINKED", Const, 16, ""},
+		{"DT_HASH", Const, 0, ""},
+		{"DT_HIOS", Const, 0, ""},
+		{"DT_HIPROC", Const, 0, ""},
+		{"DT_INIT", Const, 0, ""},
+		{"DT_INIT_ARRAY", Const, 0, ""},
+		{"DT_INIT_ARRAYSZ", Const, 0, ""},
+		{"DT_JMPREL", Const, 0, ""},
+		{"DT_LOOS", Const, 0, ""},
+		{"DT_LOPROC", Const, 0, ""},
+		{"DT_MIPS_AUX_DYNAMIC", Const, 16, ""},
+		{"DT_MIPS_BASE_ADDRESS", Const, 16, ""},
+		{"DT_MIPS_COMPACT_SIZE", Const, 16, ""},
+		{"DT_MIPS_CONFLICT", Const, 16, ""},
+		{"DT_MIPS_CONFLICTNO", Const, 16, ""},
+		{"DT_MIPS_CXX_FLAGS", Const, 16, ""},
+		{"DT_MIPS_DELTA_CLASS", Const, 16, ""},
+		{"DT_MIPS_DELTA_CLASSSYM", Const, 16, ""},
+		{"DT_MIPS_DELTA_CLASSSYM_NO", Const, 16, ""},
+		{"DT_MIPS_DELTA_CLASS_NO", Const, 16, ""},
+		{"DT_MIPS_DELTA_INSTANCE", Const, 16, ""},
+		{"DT_MIPS_DELTA_INSTANCE_NO", Const, 16, ""},
+		{"DT_MIPS_DELTA_RELOC", Const, 16, ""},
+		{"DT_MIPS_DELTA_RELOC_NO", Const, 16, ""},
+		{"DT_MIPS_DELTA_SYM", Const, 16, ""},
+		{"DT_MIPS_DELTA_SYM_NO", Const, 16, ""},
+		{"DT_MIPS_DYNSTR_ALIGN", Const, 16, ""},
+		{"DT_MIPS_FLAGS", Const, 16, ""},
+		{"DT_MIPS_GOTSYM", Const, 16, ""},
+		{"DT_MIPS_GP_VALUE", Const, 16, ""},
+		{"DT_MIPS_HIDDEN_GOTIDX", Const, 16, ""},
+		{"DT_MIPS_HIPAGENO", Const, 16, ""},
+		{"DT_MIPS_ICHECKSUM", Const, 16, ""},
+		{"DT_MIPS_INTERFACE", Const, 16, ""},
+		{"DT_MIPS_INTERFACE_SIZE", Const, 16, ""},
+		{"DT_MIPS_IVERSION", Const, 16, ""},
+		{"DT_MIPS_LIBLIST", Const, 16, ""},
+		{"DT_MIPS_LIBLISTNO", Const, 16, ""},
+		{"DT_MIPS_LOCALPAGE_GOTIDX", Const, 16, ""},
+		{"DT_MIPS_LOCAL_GOTIDX", Const, 16, ""},
+		{"DT_MIPS_LOCAL_GOTNO", Const, 16, ""},
+		{"DT_MIPS_MSYM", Const, 16, ""},
+		{"DT_MIPS_OPTIONS", Const, 16, ""},
+		{"DT_MIPS_PERF_SUFFIX", Const, 16, ""},
+		{"DT_MIPS_PIXIE_INIT", Const, 16, ""},
+		{"DT_MIPS_PLTGOT", Const, 16, ""},
+		{"DT_MIPS_PROTECTED_GOTIDX", Const, 16, ""},
+		{"DT_MIPS_RLD_MAP", Const, 16, ""},
+		{"DT_MIPS_RLD_MAP_REL", Const, 16, ""},
+		{"DT_MIPS_RLD_TEXT_RESOLVE_ADDR", Const, 16, ""},
+		{"DT_MIPS_RLD_VERSION", Const, 16, ""},
+		{"DT_MIPS_RWPLT", Const, 16, ""},
+		{"DT_MIPS_SYMBOL_LIB", Const, 16, ""},
+		{"DT_MIPS_SYMTABNO", Const, 16, ""},
+		{"DT_MIPS_TIME_STAMP", Const, 16, ""},
+		{"DT_MIPS_UNREFEXTNO", Const, 16, ""},
+		{"DT_MOVEENT", Const, 16, ""},
+		{"DT_MOVESZ", Const, 16, ""},
+		{"DT_MOVETAB", Const, 16, ""},
+		{"DT_NEEDED", Const, 0, ""},
+		{"DT_NULL", Const, 0, ""},
+		{"DT_PLTGOT", Const, 0, ""},
+		{"DT_PLTPAD", Const, 16, ""},
+		{"DT_PLTPADSZ", Const, 16, ""},
+		{"DT_PLTREL", Const, 0, ""},
+		{"DT_PLTRELSZ", Const, 0, ""},
+		{"DT_POSFLAG_1", Const, 16, ""},
+		{"DT_PPC64_GLINK", Const, 16, ""},
+		{"DT_PPC64_OPD", Const, 16, ""},
+		{"DT_PPC64_OPDSZ", Const, 16, ""},
+		{"DT_PPC64_OPT", Const, 16, ""},
+		{"DT_PPC_GOT", Const, 16, ""},
+		{"DT_PPC_OPT", Const, 16, ""},
+		{"DT_PREINIT_ARRAY", Const, 0, ""},
+		{"DT_PREINIT_ARRAYSZ", Const, 0, ""},
+		{"DT_REL", Const, 0, ""},
+		{"DT_RELA", Const, 0, ""},
+		{"DT_RELACOUNT", Const, 16, ""},
+		{"DT_RELAENT", Const, 0, ""},
+		{"DT_RELASZ", Const, 0, ""},
+		{"DT_RELCOUNT", Const, 16, ""},
+		{"DT_RELENT", Const, 0, ""},
+		{"DT_RELSZ", Const, 0, ""},
+		{"DT_RPATH", Const, 0, ""},
+		{"DT_RUNPATH", Const, 0, ""},
+		{"DT_SONAME", Const, 0, ""},
+		{"DT_SPARC_REGISTER", Const, 16, ""},
+		{"DT_STRSZ", Const, 0, ""},
+		{"DT_STRTAB", Const, 0, ""},
+		{"DT_SYMBOLIC", Const, 0, ""},
+		{"DT_SYMENT", Const, 0, ""},
+		{"DT_SYMINENT", Const, 16, ""},
+		{"DT_SYMINFO", Const, 16, ""},
+		{"DT_SYMINSZ", Const, 16, ""},
+		{"DT_SYMTAB", Const, 0, ""},
+		{"DT_SYMTAB_SHNDX", Const, 16, ""},
+		{"DT_TEXTREL", Const, 0, ""},
+		{"DT_TLSDESC_GOT", Const, 16, ""},
+		{"DT_TLSDESC_PLT", Const, 16, ""},
+		{"DT_USED", Const, 16, ""},
+		{"DT_VALRNGHI", Const, 16, ""},
+		{"DT_VALRNGLO", Const, 16, ""},
+		{"DT_VERDEF", Const, 16, ""},
+		{"DT_VERDEFNUM", Const, 16, ""},
+		{"DT_VERNEED", Const, 0, ""},
+		{"DT_VERNEEDNUM", Const, 0, ""},
+		{"DT_VERSYM", Const, 0, ""},
+		{"Data", Type, 0, ""},
+		{"Dyn32", Type, 0, ""},
+		{"Dyn32.Tag", Field, 0, ""},
+		{"Dyn32.Val", Field, 0, ""},
+		{"Dyn64", Type, 0, ""},
+		{"Dyn64.Tag", Field, 0, ""},
+		{"Dyn64.Val", Field, 0, ""},
+		{"DynFlag", Type, 0, ""},
+		{"DynFlag1", Type, 21, ""},
+		{"DynTag", Type, 0, ""},
+		{"DynamicVersion", Type, 24, ""},
+		{"DynamicVersion.Deps", Field, 24, ""},
+		{"DynamicVersion.Flags", Field, 24, ""},
+		{"DynamicVersion.Index", Field, 24, ""},
+		{"DynamicVersion.Name", Field, 24, ""},
+		{"DynamicVersionDep", Type, 24, ""},
+		{"DynamicVersionDep.Dep", Field, 24, ""},
+		{"DynamicVersionDep.Flags", Field, 24, ""},
+		{"DynamicVersionDep.Index", Field, 24, ""},
+		{"DynamicVersionFlag", Type, 24, ""},
+		{"DynamicVersionNeed", Type, 24, ""},
+		{"DynamicVersionNeed.Name", Field, 24, ""},
+		{"DynamicVersionNeed.Needs", Field, 24, ""},
+		{"EI_ABIVERSION", Const, 0, ""},
+		{"EI_CLASS", Const, 0, ""},
+		{"EI_DATA", Const, 0, ""},
+		{"EI_NIDENT", Const, 0, ""},
+		{"EI_OSABI", Const, 0, ""},
+		{"EI_PAD", Const, 0, ""},
+		{"EI_VERSION", Const, 0, ""},
+		{"ELFCLASS32", Const, 0, ""},
+		{"ELFCLASS64", Const, 0, ""},
+		{"ELFCLASSNONE", Const, 0, ""},
+		{"ELFDATA2LSB", Const, 0, ""},
+		{"ELFDATA2MSB", Const, 0, ""},
+		{"ELFDATANONE", Const, 0, ""},
+		{"ELFMAG", Const, 0, ""},
+		{"ELFOSABI_86OPEN", Const, 0, ""},
+		{"ELFOSABI_AIX", Const, 0, ""},
+		{"ELFOSABI_ARM", Const, 0, ""},
+		{"ELFOSABI_AROS", Const, 11, ""},
+		{"ELFOSABI_CLOUDABI", Const, 11, ""},
+		{"ELFOSABI_FENIXOS", Const, 11, ""},
+		{"ELFOSABI_FREEBSD", Const, 0, ""},
+		{"ELFOSABI_HPUX", Const, 0, ""},
+		{"ELFOSABI_HURD", Const, 0, ""},
+		{"ELFOSABI_IRIX", Const, 0, ""},
+		{"ELFOSABI_LINUX", Const, 0, ""},
+		{"ELFOSABI_MODESTO", Const, 0, ""},
+		{"ELFOSABI_NETBSD", Const, 0, ""},
+		{"ELFOSABI_NONE", Const, 0, ""},
+		{"ELFOSABI_NSK", Const, 0, ""},
+		{"ELFOSABI_OPENBSD", Const, 0, ""},
+		{"ELFOSABI_OPENVMS", Const, 0, ""},
+		{"ELFOSABI_SOLARIS", Const, 0, ""},
+		{"ELFOSABI_STANDALONE", Const, 0, ""},
+		{"ELFOSABI_TRU64", Const, 0, ""},
+		{"EM_386", Const, 0, ""},
+		{"EM_486", Const, 0, ""},
+		{"EM_56800EX", Const, 11, ""},
+		{"EM_68HC05", Const, 11, ""},
+		{"EM_68HC08", Const, 11, ""},
+		{"EM_68HC11", Const, 11, ""},
+		{"EM_68HC12", Const, 0, ""},
+		{"EM_68HC16", Const, 11, ""},
+		{"EM_68K", Const, 0, ""},
+		{"EM_78KOR", Const, 11, ""},
+		{"EM_8051", Const, 11, ""},
+		{"EM_860", Const, 0, ""},
+		{"EM_88K", Const, 0, ""},
+		{"EM_960", Const, 0, ""},
+		{"EM_AARCH64", Const, 4, ""},
+		{"EM_ALPHA", Const, 0, ""},
+		{"EM_ALPHA_STD", Const, 0, ""},
+		{"EM_ALTERA_NIOS2", Const, 11, ""},
+		{"EM_AMDGPU", Const, 11, ""},
+		{"EM_ARC", Const, 0, ""},
+		{"EM_ARCA", Const, 11, ""},
+		{"EM_ARC_COMPACT", Const, 11, ""},
+		{"EM_ARC_COMPACT2", Const, 11, ""},
+		{"EM_ARM", Const, 0, ""},
+		{"EM_AVR", Const, 11, ""},
+		{"EM_AVR32", Const, 11, ""},
+		{"EM_BA1", Const, 11, ""},
+		{"EM_BA2", Const, 11, ""},
+		{"EM_BLACKFIN", Const, 11, ""},
+		{"EM_BPF", Const, 11, ""},
+		{"EM_C166", Const, 11, ""},
+		{"EM_CDP", Const, 11, ""},
+		{"EM_CE", Const, 11, ""},
+		{"EM_CLOUDSHIELD", Const, 11, ""},
+		{"EM_COGE", Const, 11, ""},
+		{"EM_COLDFIRE", Const, 0, ""},
+		{"EM_COOL", Const, 11, ""},
+		{"EM_COREA_1ST", Const, 11, ""},
+		{"EM_COREA_2ND", Const, 11, ""},
+		{"EM_CR", Const, 11, ""},
+		{"EM_CR16", Const, 11, ""},
+		{"EM_CRAYNV2", Const, 11, ""},
+		{"EM_CRIS", Const, 11, ""},
+		{"EM_CRX", Const, 11, ""},
+		{"EM_CSR_KALIMBA", Const, 11, ""},
+		{"EM_CUDA", Const, 11, ""},
+		{"EM_CYPRESS_M8C", Const, 11, ""},
+		{"EM_D10V", Const, 11, ""},
+		{"EM_D30V", Const, 11, ""},
+		{"EM_DSP24", Const, 11, ""},
+		{"EM_DSPIC30F", Const, 11, ""},
+		{"EM_DXP", Const, 11, ""},
+		{"EM_ECOG1", Const, 11, ""},
+		{"EM_ECOG16", Const, 11, ""},
+		{"EM_ECOG1X", Const, 11, ""},
+		{"EM_ECOG2", Const, 11, ""},
+		{"EM_ETPU", Const, 11, ""},
+		{"EM_EXCESS", Const, 11, ""},
+		{"EM_F2MC16", Const, 11, ""},
+		{"EM_FIREPATH", Const, 11, ""},
+		{"EM_FR20", Const, 0, ""},
+		{"EM_FR30", Const, 11, ""},
+		{"EM_FT32", Const, 11, ""},
+		{"EM_FX66", Const, 11, ""},
+		{"EM_H8S", Const, 0, ""},
+		{"EM_H8_300", Const, 0, ""},
+		{"EM_H8_300H", Const, 0, ""},
+		{"EM_H8_500", Const, 0, ""},
+		{"EM_HUANY", Const, 11, ""},
+		{"EM_IA_64", Const, 0, ""},
+		{"EM_INTEL205", Const, 11, ""},
+		{"EM_INTEL206", Const, 11, ""},
+		{"EM_INTEL207", Const, 11, ""},
+		{"EM_INTEL208", Const, 11, ""},
+		{"EM_INTEL209", Const, 11, ""},
+		{"EM_IP2K", Const, 11, ""},
+		{"EM_JAVELIN", Const, 11, ""},
+		{"EM_K10M", Const, 11, ""},
+		{"EM_KM32", Const, 11, ""},
+		{"EM_KMX16", Const, 11, ""},
+		{"EM_KMX32", Const, 11, ""},
+		{"EM_KMX8", Const, 11, ""},
+		{"EM_KVARC", Const, 11, ""},
+		{"EM_L10M", Const, 11, ""},
+		{"EM_LANAI", Const, 11, ""},
+		{"EM_LATTICEMICO32", Const, 11, ""},
+		{"EM_LOONGARCH", Const, 19, ""},
+		{"EM_M16C", Const, 11, ""},
+		{"EM_M32", Const, 0, ""},
+		{"EM_M32C", Const, 11, ""},
+		{"EM_M32R", Const, 11, ""},
+		{"EM_MANIK", Const, 11, ""},
+		{"EM_MAX", Const, 11, ""},
+		{"EM_MAXQ30", Const, 11, ""},
+		{"EM_MCHP_PIC", Const, 11, ""},
+		{"EM_MCST_ELBRUS", Const, 11, ""},
+		{"EM_ME16", Const, 0, ""},
+		{"EM_METAG", Const, 11, ""},
+		{"EM_MICROBLAZE", Const, 11, ""},
+		{"EM_MIPS", Const, 0, ""},
+		{"EM_MIPS_RS3_LE", Const, 0, ""},
+		{"EM_MIPS_RS4_BE", Const, 0, ""},
+		{"EM_MIPS_X", Const, 0, ""},
+		{"EM_MMA", Const, 0, ""},
+		{"EM_MMDSP_PLUS", Const, 11, ""},
+		{"EM_MMIX", Const, 11, ""},
+		{"EM_MN10200", Const, 11, ""},
+		{"EM_MN10300", Const, 11, ""},
+		{"EM_MOXIE", Const, 11, ""},
+		{"EM_MSP430", Const, 11, ""},
+		{"EM_NCPU", Const, 0, ""},
+		{"EM_NDR1", Const, 0, ""},
+		{"EM_NDS32", Const, 11, ""},
+		{"EM_NONE", Const, 0, ""},
+		{"EM_NORC", Const, 11, ""},
+		{"EM_NS32K", Const, 11, ""},
+		{"EM_OPEN8", Const, 11, ""},
+		{"EM_OPENRISC", Const, 11, ""},
+		{"EM_PARISC", Const, 0, ""},
+		{"EM_PCP", Const, 0, ""},
+		{"EM_PDP10", Const, 11, ""},
+		{"EM_PDP11", Const, 11, ""},
+		{"EM_PDSP", Const, 11, ""},
+		{"EM_PJ", Const, 11, ""},
+		{"EM_PPC", Const, 0, ""},
+		{"EM_PPC64", Const, 0, ""},
+		{"EM_PRISM", Const, 11, ""},
+		{"EM_QDSP6", Const, 11, ""},
+		{"EM_R32C", Const, 11, ""},
+		{"EM_RCE", Const, 0, ""},
+		{"EM_RH32", Const, 0, ""},
+		{"EM_RISCV", Const, 11, ""},
+		{"EM_RL78", Const, 11, ""},
+		{"EM_RS08", Const, 11, ""},
+		{"EM_RX", Const, 11, ""},
+		{"EM_S370", Const, 0, ""},
+		{"EM_S390", Const, 0, ""},
+		{"EM_SCORE7", Const, 11, ""},
+		{"EM_SEP", Const, 11, ""},
+		{"EM_SE_C17", Const, 11, ""},
+		{"EM_SE_C33", Const, 11, ""},
+		{"EM_SH", Const, 0, ""},
+		{"EM_SHARC", Const, 11, ""},
+		{"EM_SLE9X", Const, 11, ""},
+		{"EM_SNP1K", Const, 11, ""},
+		{"EM_SPARC", Const, 0, ""},
+		{"EM_SPARC32PLUS", Const, 0, ""},
+		{"EM_SPARCV9", Const, 0, ""},
+		{"EM_ST100", Const, 0, ""},
+		{"EM_ST19", Const, 11, ""},
+		{"EM_ST200", Const, 11, ""},
+		{"EM_ST7", Const, 11, ""},
+		{"EM_ST9PLUS", Const, 11, ""},
+		{"EM_STARCORE", Const, 0, ""},
+		{"EM_STM8", Const, 11, ""},
+		{"EM_STXP7X", Const, 11, ""},
+		{"EM_SVX", Const, 11, ""},
+		{"EM_TILE64", Const, 11, ""},
+		{"EM_TILEGX", Const, 11, ""},
+		{"EM_TILEPRO", Const, 11, ""},
+		{"EM_TINYJ", Const, 0, ""},
+		{"EM_TI_ARP32", Const, 11, ""},
+		{"EM_TI_C2000", Const, 11, ""},
+		{"EM_TI_C5500", Const, 11, ""},
+		{"EM_TI_C6000", Const, 11, ""},
+		{"EM_TI_PRU", Const, 11, ""},
+		{"EM_TMM_GPP", Const, 11, ""},
+		{"EM_TPC", Const, 11, ""},
+		{"EM_TRICORE", Const, 0, ""},
+		{"EM_TRIMEDIA", Const, 11, ""},
+		{"EM_TSK3000", Const, 11, ""},
+		{"EM_UNICORE", Const, 11, ""},
+		{"EM_V800", Const, 0, ""},
+		{"EM_V850", Const, 11, ""},
+		{"EM_VAX", Const, 11, ""},
+		{"EM_VIDEOCORE", Const, 11, ""},
+		{"EM_VIDEOCORE3", Const, 11, ""},
+		{"EM_VIDEOCORE5", Const, 11, ""},
+		{"EM_VISIUM", Const, 11, ""},
+		{"EM_VPP500", Const, 0, ""},
+		{"EM_X86_64", Const, 0, ""},
+		{"EM_XCORE", Const, 11, ""},
+		{"EM_XGATE", Const, 11, ""},
+		{"EM_XIMO16", Const, 11, ""},
+		{"EM_XTENSA", Const, 11, ""},
+		{"EM_Z80", Const, 11, ""},
+		{"EM_ZSP", Const, 11, ""},
+		{"ET_CORE", Const, 0, ""},
+		{"ET_DYN", Const, 0, ""},
+		{"ET_EXEC", Const, 0, ""},
+		{"ET_HIOS", Const, 0, ""},
+		{"ET_HIPROC", Const, 0, ""},
+		{"ET_LOOS", Const, 0, ""},
+		{"ET_LOPROC", Const, 0, ""},
+		{"ET_NONE", Const, 0, ""},
+		{"ET_REL", Const, 0, ""},
+		{"EV_CURRENT", Const, 0, ""},
+		{"EV_NONE", Const, 0, ""},
+		{"ErrNoSymbols", Var, 4, ""},
+		{"File", Type, 0, ""},
+		{"File.FileHeader", Field, 0, ""},
+		{"File.Progs", Field, 0, ""},
+		{"File.Sections", Field, 0, ""},
+		{"FileHeader", Type, 0, ""},
+		{"FileHeader.ABIVersion", Field, 0, ""},
+		{"FileHeader.ByteOrder", Field, 0, ""},
+		{"FileHeader.Class", Field, 0, ""},
+		{"FileHeader.Data", Field, 0, ""},
+		{"FileHeader.Entry", Field, 1, ""},
+		{"FileHeader.Machine", Field, 0, ""},
+		{"FileHeader.OSABI", Field, 0, ""},
+		{"FileHeader.Type", Field, 0, ""},
+		{"FileHeader.Version", Field, 0, ""},
+		{"FormatError", Type, 0, ""},
+		{"Header32", Type, 0, ""},
+		{"Header32.Ehsize", Field, 0, ""},
+		{"Header32.Entry", Field, 0, ""},
+		{"Header32.Flags", Field, 0, ""},
+		{"Header32.Ident", Field, 0, ""},
+		{"Header32.Machine", Field, 0, ""},
+		{"Header32.Phentsize", Field, 0, ""},
+		{"Header32.Phnum", Field, 0, ""},
+		{"Header32.Phoff", Field, 0, ""},
+		{"Header32.Shentsize", Field, 0, ""},
+		{"Header32.Shnum", Field, 0, ""},
+		{"Header32.Shoff", Field, 0, ""},
+		{"Header32.Shstrndx", Field, 0, ""},
+		{"Header32.Type", Field, 0, ""},
+		{"Header32.Version", Field, 0, ""},
+		{"Header64", Type, 0, ""},
+		{"Header64.Ehsize", Field, 0, ""},
+		{"Header64.Entry", Field, 0, ""},
+		{"Header64.Flags", Field, 0, ""},
+		{"Header64.Ident", Field, 0, ""},
+		{"Header64.Machine", Field, 0, ""},
+		{"Header64.Phentsize", Field, 0, ""},
+		{"Header64.Phnum", Field, 0, ""},
+		{"Header64.Phoff", Field, 0, ""},
+		{"Header64.Shentsize", Field, 0, ""},
+		{"Header64.Shnum", Field, 0, ""},
+		{"Header64.Shoff", Field, 0, ""},
+		{"Header64.Shstrndx", Field, 0, ""},
+		{"Header64.Type", Field, 0, ""},
+		{"Header64.Version", Field, 0, ""},
+		{"ImportedSymbol", Type, 0, ""},
+		{"ImportedSymbol.Library", Field, 0, ""},
+		{"ImportedSymbol.Name", Field, 0, ""},
+		{"ImportedSymbol.Version", Field, 0, ""},
+		{"Machine", Type, 0, ""},
+		{"NT_FPREGSET", Const, 0, ""},
+		{"NT_PRPSINFO", Const, 0, ""},
+		{"NT_PRSTATUS", Const, 0, ""},
+		{"NType", Type, 0, ""},
+		{"NewFile", Func, 0, "func(r io.ReaderAt) (*File, error)"},
+		{"OSABI", Type, 0, ""},
+		{"Open", Func, 0, "func(name string) (*File, error)"},
+		{"PF_MASKOS", Const, 0, ""},
+		{"PF_MASKPROC", Const, 0, ""},
+		{"PF_R", Const, 0, ""},
+		{"PF_W", Const, 0, ""},
+		{"PF_X", Const, 0, ""},
+		{"PT_AARCH64_ARCHEXT", Const, 16, ""},
+		{"PT_AARCH64_UNWIND", Const, 16, ""},
+		{"PT_ARM_ARCHEXT", Const, 16, ""},
+		{"PT_ARM_EXIDX", Const, 16, ""},
+		{"PT_DYNAMIC", Const, 0, ""},
+		{"PT_GNU_EH_FRAME", Const, 16, ""},
+		{"PT_GNU_MBIND_HI", Const, 16, ""},
+		{"PT_GNU_MBIND_LO", Const, 16, ""},
+		{"PT_GNU_PROPERTY", Const, 16, ""},
+		{"PT_GNU_RELRO", Const, 16, ""},
+		{"PT_GNU_STACK", Const, 16, ""},
+		{"PT_HIOS", Const, 0, ""},
+		{"PT_HIPROC", Const, 0, ""},
+		{"PT_INTERP", Const, 0, ""},
+		{"PT_LOAD", Const, 0, ""},
+		{"PT_LOOS", Const, 0, ""},
+		{"PT_LOPROC", Const, 0, ""},
+		{"PT_MIPS_ABIFLAGS", Const, 16, ""},
+		{"PT_MIPS_OPTIONS", Const, 16, ""},
+		{"PT_MIPS_REGINFO", Const, 16, ""},
+		{"PT_MIPS_RTPROC", Const, 16, ""},
+		{"PT_NOTE", Const, 0, ""},
+		{"PT_NULL", Const, 0, ""},
+		{"PT_OPENBSD_BOOTDATA", Const, 16, ""},
+		{"PT_OPENBSD_NOBTCFI", Const, 23, ""},
+		{"PT_OPENBSD_RANDOMIZE", Const, 16, ""},
+		{"PT_OPENBSD_WXNEEDED", Const, 16, ""},
+		{"PT_PAX_FLAGS", Const, 16, ""},
+		{"PT_PHDR", Const, 0, ""},
+		{"PT_RISCV_ATTRIBUTES", Const, 25, ""},
+		{"PT_S390_PGSTE", Const, 16, ""},
+		{"PT_SHLIB", Const, 0, ""},
+		{"PT_SUNWSTACK", Const, 16, ""},
+		{"PT_SUNW_EH_FRAME", Const, 16, ""},
+		{"PT_TLS", Const, 0, ""},
+		{"Prog", Type, 0, ""},
+		{"Prog.ProgHeader", Field, 0, ""},
+		{"Prog.ReaderAt", Field, 0, ""},
+		{"Prog32", Type, 0, ""},
+		{"Prog32.Align", Field, 0, ""},
+		{"Prog32.Filesz", Field, 0, ""},
+		{"Prog32.Flags", Field, 0, ""},
+		{"Prog32.Memsz", Field, 0, ""},
+		{"Prog32.Off", Field, 0, ""},
+		{"Prog32.Paddr", Field, 0, ""},
+		{"Prog32.Type", Field, 0, ""},
+		{"Prog32.Vaddr", Field, 0, ""},
+		{"Prog64", Type, 0, ""},
+		{"Prog64.Align", Field, 0, ""},
+		{"Prog64.Filesz", Field, 0, ""},
+		{"Prog64.Flags", Field, 0, ""},
+		{"Prog64.Memsz", Field, 0, ""},
+		{"Prog64.Off", Field, 0, ""},
+		{"Prog64.Paddr", Field, 0, ""},
+		{"Prog64.Type", Field, 0, ""},
+		{"Prog64.Vaddr", Field, 0, ""},
+		{"ProgFlag", Type, 0, ""},
+		{"ProgHeader", Type, 0, ""},
+		{"ProgHeader.Align", Field, 0, ""},
+		{"ProgHeader.Filesz", Field, 0, ""},
+		{"ProgHeader.Flags", Field, 0, ""},
+		{"ProgHeader.Memsz", Field, 0, ""},
+		{"ProgHeader.Off", Field, 0, ""},
+		{"ProgHeader.Paddr", Field, 0, ""},
+		{"ProgHeader.Type", Field, 0, ""},
+		{"ProgHeader.Vaddr", Field, 0, ""},
+		{"ProgType", Type, 0, ""},
+		{"R_386", Type, 0, ""},
+		{"R_386_16", Const, 10, ""},
+		{"R_386_32", Const, 0, ""},
+		{"R_386_32PLT", Const, 10, ""},
+		{"R_386_8", Const, 10, ""},
+		{"R_386_COPY", Const, 0, ""},
+		{"R_386_GLOB_DAT", Const, 0, ""},
+		{"R_386_GOT32", Const, 0, ""},
+		{"R_386_GOT32X", Const, 10, ""},
+		{"R_386_GOTOFF", Const, 0, ""},
+		{"R_386_GOTPC", Const, 0, ""},
+		{"R_386_IRELATIVE", Const, 10, ""},
+		{"R_386_JMP_SLOT", Const, 0, ""},
+		{"R_386_NONE", Const, 0, ""},
+		{"R_386_PC16", Const, 10, ""},
+		{"R_386_PC32", Const, 0, ""},
+		{"R_386_PC8", Const, 10, ""},
+		{"R_386_PLT32", Const, 0, ""},
+		{"R_386_RELATIVE", Const, 0, ""},
+		{"R_386_SIZE32", Const, 10, ""},
+		{"R_386_TLS_DESC", Const, 10, ""},
+		{"R_386_TLS_DESC_CALL", Const, 10, ""},
+		{"R_386_TLS_DTPMOD32", Const, 0, ""},
+		{"R_386_TLS_DTPOFF32", Const, 0, ""},
+		{"R_386_TLS_GD", Const, 0, ""},
+		{"R_386_TLS_GD_32", Const, 0, ""},
+		{"R_386_TLS_GD_CALL", Const, 0, ""},
+		{"R_386_TLS_GD_POP", Const, 0, ""},
+		{"R_386_TLS_GD_PUSH", Const, 0, ""},
+		{"R_386_TLS_GOTDESC", Const, 10, ""},
+		{"R_386_TLS_GOTIE", Const, 0, ""},
+		{"R_386_TLS_IE", Const, 0, ""},
+		{"R_386_TLS_IE_32", Const, 0, ""},
+		{"R_386_TLS_LDM", Const, 0, ""},
+		{"R_386_TLS_LDM_32", Const, 0, ""},
+		{"R_386_TLS_LDM_CALL", Const, 0, ""},
+		{"R_386_TLS_LDM_POP", Const, 0, ""},
+		{"R_386_TLS_LDM_PUSH", Const, 0, ""},
+		{"R_386_TLS_LDO_32", Const, 0, ""},
+		{"R_386_TLS_LE", Const, 0, ""},
+		{"R_386_TLS_LE_32", Const, 0, ""},
+		{"R_386_TLS_TPOFF", Const, 0, ""},
+		{"R_386_TLS_TPOFF32", Const, 0, ""},
+		{"R_390", Type, 7, ""},
+		{"R_390_12", Const, 7, ""},
+		{"R_390_16", Const, 7, ""},
+		{"R_390_20", Const, 7, ""},
+		{"R_390_32", Const, 7, ""},
+		{"R_390_64", Const, 7, ""},
+		{"R_390_8", Const, 7, ""},
+		{"R_390_COPY", Const, 7, ""},
+		{"R_390_GLOB_DAT", Const, 7, ""},
+		{"R_390_GOT12", Const, 7, ""},
+		{"R_390_GOT16", Const, 7, ""},
+		{"R_390_GOT20", Const, 7, ""},
+		{"R_390_GOT32", Const, 7, ""},
+		{"R_390_GOT64", Const, 7, ""},
+		{"R_390_GOTENT", Const, 7, ""},
+		{"R_390_GOTOFF", Const, 7, ""},
+		{"R_390_GOTOFF16", Const, 7, ""},
+		{"R_390_GOTOFF64", Const, 7, ""},
+		{"R_390_GOTPC", Const, 7, ""},
+		{"R_390_GOTPCDBL", Const, 7, ""},
+		{"R_390_GOTPLT12", Const, 7, ""},
+		{"R_390_GOTPLT16", Const, 7, ""},
+		{"R_390_GOTPLT20", Const, 7, ""},
+		{"R_390_GOTPLT32", Const, 7, ""},
+		{"R_390_GOTPLT64", Const, 7, ""},
+		{"R_390_GOTPLTENT", Const, 7, ""},
+		{"R_390_GOTPLTOFF16", Const, 7, ""},
+		{"R_390_GOTPLTOFF32", Const, 7, ""},
+		{"R_390_GOTPLTOFF64", Const, 7, ""},
+		{"R_390_JMP_SLOT", Const, 7, ""},
+		{"R_390_NONE", Const, 7, ""},
+		{"R_390_PC16", Const, 7, ""},
+		{"R_390_PC16DBL", Const, 7, ""},
+		{"R_390_PC32", Const, 7, ""},
+		{"R_390_PC32DBL", Const, 7, ""},
+		{"R_390_PC64", Const, 7, ""},
+		{"R_390_PLT16DBL", Const, 7, ""},
+		{"R_390_PLT32", Const, 7, ""},
+		{"R_390_PLT32DBL", Const, 7, ""},
+		{"R_390_PLT64", Const, 7, ""},
+		{"R_390_RELATIVE", Const, 7, ""},
+		{"R_390_TLS_DTPMOD", Const, 7, ""},
+		{"R_390_TLS_DTPOFF", Const, 7, ""},
+		{"R_390_TLS_GD32", Const, 7, ""},
+		{"R_390_TLS_GD64", Const, 7, ""},
+		{"R_390_TLS_GDCALL", Const, 7, ""},
+		{"R_390_TLS_GOTIE12", Const, 7, ""},
+		{"R_390_TLS_GOTIE20", Const, 7, ""},
+		{"R_390_TLS_GOTIE32", Const, 7, ""},
+		{"R_390_TLS_GOTIE64", Const, 7, ""},
+		{"R_390_TLS_IE32", Const, 7, ""},
+		{"R_390_TLS_IE64", Const, 7, ""},
+		{"R_390_TLS_IEENT", Const, 7, ""},
+		{"R_390_TLS_LDCALL", Const, 7, ""},
+		{"R_390_TLS_LDM32", Const, 7, ""},
+		{"R_390_TLS_LDM64", Const, 7, ""},
+		{"R_390_TLS_LDO32", Const, 7, ""},
+		{"R_390_TLS_LDO64", Const, 7, ""},
+		{"R_390_TLS_LE32", Const, 7, ""},
+		{"R_390_TLS_LE64", Const, 7, ""},
+		{"R_390_TLS_LOAD", Const, 7, ""},
+		{"R_390_TLS_TPOFF", Const, 7, ""},
+		{"R_AARCH64", Type, 4, ""},
+		{"R_AARCH64_ABS16", Const, 4, ""},
+		{"R_AARCH64_ABS32", Const, 4, ""},
+		{"R_AARCH64_ABS64", Const, 4, ""},
+		{"R_AARCH64_ADD_ABS_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_ADR_GOT_PAGE", Const, 4, ""},
+		{"R_AARCH64_ADR_PREL_LO21", Const, 4, ""},
+		{"R_AARCH64_ADR_PREL_PG_HI21", Const, 4, ""},
+		{"R_AARCH64_ADR_PREL_PG_HI21_NC", Const, 4, ""},
+		{"R_AARCH64_CALL26", Const, 4, ""},
+		{"R_AARCH64_CONDBR19", Const, 4, ""},
+		{"R_AARCH64_COPY", Const, 4, ""},
+		{"R_AARCH64_GLOB_DAT", Const, 4, ""},
+		{"R_AARCH64_GOT_LD_PREL19", Const, 4, ""},
+		{"R_AARCH64_IRELATIVE", Const, 4, ""},
+		{"R_AARCH64_JUMP26", Const, 4, ""},
+		{"R_AARCH64_JUMP_SLOT", Const, 4, ""},
+		{"R_AARCH64_LD64_GOTOFF_LO15", Const, 10, ""},
+		{"R_AARCH64_LD64_GOTPAGE_LO15", Const, 10, ""},
+		{"R_AARCH64_LD64_GOT_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_LDST128_ABS_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_LDST16_ABS_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_LDST32_ABS_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_LDST64_ABS_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_LDST8_ABS_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_LD_PREL_LO19", Const, 4, ""},
+		{"R_AARCH64_MOVW_SABS_G0", Const, 4, ""},
+		{"R_AARCH64_MOVW_SABS_G1", Const, 4, ""},
+		{"R_AARCH64_MOVW_SABS_G2", Const, 4, ""},
+		{"R_AARCH64_MOVW_UABS_G0", Const, 4, ""},
+		{"R_AARCH64_MOVW_UABS_G0_NC", Const, 4, ""},
+		{"R_AARCH64_MOVW_UABS_G1", Const, 4, ""},
+		{"R_AARCH64_MOVW_UABS_G1_NC", Const, 4, ""},
+		{"R_AARCH64_MOVW_UABS_G2", Const, 4, ""},
+		{"R_AARCH64_MOVW_UABS_G2_NC", Const, 4, ""},
+		{"R_AARCH64_MOVW_UABS_G3", Const, 4, ""},
+		{"R_AARCH64_NONE", Const, 4, ""},
+		{"R_AARCH64_NULL", Const, 4, ""},
+		{"R_AARCH64_P32_ABS16", Const, 4, ""},
+		{"R_AARCH64_P32_ABS32", Const, 4, ""},
+		{"R_AARCH64_P32_ADD_ABS_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_P32_ADR_GOT_PAGE", Const, 4, ""},
+		{"R_AARCH64_P32_ADR_PREL_LO21", Const, 4, ""},
+		{"R_AARCH64_P32_ADR_PREL_PG_HI21", Const, 4, ""},
+		{"R_AARCH64_P32_CALL26", Const, 4, ""},
+		{"R_AARCH64_P32_CONDBR19", Const, 4, ""},
+		{"R_AARCH64_P32_COPY", Const, 4, ""},
+		{"R_AARCH64_P32_GLOB_DAT", Const, 4, ""},
+		{"R_AARCH64_P32_GOT_LD_PREL19", Const, 4, ""},
+		{"R_AARCH64_P32_IRELATIVE", Const, 4, ""},
+		{"R_AARCH64_P32_JUMP26", Const, 4, ""},
+		{"R_AARCH64_P32_JUMP_SLOT", Const, 4, ""},
+		{"R_AARCH64_P32_LD32_GOT_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_P32_LDST128_ABS_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_P32_LDST16_ABS_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_P32_LDST32_ABS_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_P32_LDST64_ABS_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_P32_LDST8_ABS_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_P32_LD_PREL_LO19", Const, 4, ""},
+		{"R_AARCH64_P32_MOVW_SABS_G0", Const, 4, ""},
+		{"R_AARCH64_P32_MOVW_UABS_G0", Const, 4, ""},
+		{"R_AARCH64_P32_MOVW_UABS_G0_NC", Const, 4, ""},
+		{"R_AARCH64_P32_MOVW_UABS_G1", Const, 4, ""},
+		{"R_AARCH64_P32_PREL16", Const, 4, ""},
+		{"R_AARCH64_P32_PREL32", Const, 4, ""},
+		{"R_AARCH64_P32_RELATIVE", Const, 4, ""},
+		{"R_AARCH64_P32_TLSDESC", Const, 4, ""},
+		{"R_AARCH64_P32_TLSDESC_ADD_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_P32_TLSDESC_ADR_PAGE21", Const, 4, ""},
+		{"R_AARCH64_P32_TLSDESC_ADR_PREL21", Const, 4, ""},
+		{"R_AARCH64_P32_TLSDESC_CALL", Const, 4, ""},
+		{"R_AARCH64_P32_TLSDESC_LD32_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_P32_TLSDESC_LD_PREL19", Const, 4, ""},
+		{"R_AARCH64_P32_TLSGD_ADD_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_P32_TLSGD_ADR_PAGE21", Const, 4, ""},
+		{"R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21", Const, 4, ""},
+		{"R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19", Const, 4, ""},
+		{"R_AARCH64_P32_TLSLE_ADD_TPREL_HI12", Const, 4, ""},
+		{"R_AARCH64_P32_TLSLE_ADD_TPREL_LO12", Const, 4, ""},
+		{"R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_P32_TLSLE_MOVW_TPREL_G0", Const, 4, ""},
+		{"R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC", Const, 4, ""},
+		{"R_AARCH64_P32_TLSLE_MOVW_TPREL_G1", Const, 4, ""},
+		{"R_AARCH64_P32_TLS_DTPMOD", Const, 4, ""},
+		{"R_AARCH64_P32_TLS_DTPREL", Const, 4, ""},
+		{"R_AARCH64_P32_TLS_TPREL", Const, 4, ""},
+		{"R_AARCH64_P32_TSTBR14", Const, 4, ""},
+		{"R_AARCH64_PREL16", Const, 4, ""},
+		{"R_AARCH64_PREL32", Const, 4, ""},
+		{"R_AARCH64_PREL64", Const, 4, ""},
+		{"R_AARCH64_RELATIVE", Const, 4, ""},
+		{"R_AARCH64_TLSDESC", Const, 4, ""},
+		{"R_AARCH64_TLSDESC_ADD", Const, 4, ""},
+		{"R_AARCH64_TLSDESC_ADD_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_TLSDESC_ADR_PAGE21", Const, 4, ""},
+		{"R_AARCH64_TLSDESC_ADR_PREL21", Const, 4, ""},
+		{"R_AARCH64_TLSDESC_CALL", Const, 4, ""},
+		{"R_AARCH64_TLSDESC_LD64_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_TLSDESC_LDR", Const, 4, ""},
+		{"R_AARCH64_TLSDESC_LD_PREL19", Const, 4, ""},
+		{"R_AARCH64_TLSDESC_OFF_G0_NC", Const, 4, ""},
+		{"R_AARCH64_TLSDESC_OFF_G1", Const, 4, ""},
+		{"R_AARCH64_TLSGD_ADD_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_TLSGD_ADR_PAGE21", Const, 4, ""},
+		{"R_AARCH64_TLSGD_ADR_PREL21", Const, 10, ""},
+		{"R_AARCH64_TLSGD_MOVW_G0_NC", Const, 10, ""},
+		{"R_AARCH64_TLSGD_MOVW_G1", Const, 10, ""},
+		{"R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21", Const, 4, ""},
+		{"R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_TLSIE_LD_GOTTPREL_PREL19", Const, 4, ""},
+		{"R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC", Const, 4, ""},
+		{"R_AARCH64_TLSIE_MOVW_GOTTPREL_G1", Const, 4, ""},
+		{"R_AARCH64_TLSLD_ADR_PAGE21", Const, 10, ""},
+		{"R_AARCH64_TLSLD_ADR_PREL21", Const, 10, ""},
+		{"R_AARCH64_TLSLD_LDST128_DTPREL_LO12", Const, 10, ""},
+		{"R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC", Const, 10, ""},
+		{"R_AARCH64_TLSLE_ADD_TPREL_HI12", Const, 4, ""},
+		{"R_AARCH64_TLSLE_ADD_TPREL_LO12", Const, 4, ""},
+		{"R_AARCH64_TLSLE_ADD_TPREL_LO12_NC", Const, 4, ""},
+		{"R_AARCH64_TLSLE_LDST128_TPREL_LO12", Const, 10, ""},
+		{"R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC", Const, 10, ""},
+		{"R_AARCH64_TLSLE_MOVW_TPREL_G0", Const, 4, ""},
+		{"R_AARCH64_TLSLE_MOVW_TPREL_G0_NC", Const, 4, ""},
+		{"R_AARCH64_TLSLE_MOVW_TPREL_G1", Const, 4, ""},
+		{"R_AARCH64_TLSLE_MOVW_TPREL_G1_NC", Const, 4, ""},
+		{"R_AARCH64_TLSLE_MOVW_TPREL_G2", Const, 4, ""},
+		{"R_AARCH64_TLS_DTPMOD64", Const, 4, ""},
+		{"R_AARCH64_TLS_DTPREL64", Const, 4, ""},
+		{"R_AARCH64_TLS_TPREL64", Const, 4, ""},
+		{"R_AARCH64_TSTBR14", Const, 4, ""},
+		{"R_ALPHA", Type, 0, ""},
+		{"R_ALPHA_BRADDR", Const, 0, ""},
+		{"R_ALPHA_COPY", Const, 0, ""},
+		{"R_ALPHA_GLOB_DAT", Const, 0, ""},
+		{"R_ALPHA_GPDISP", Const, 0, ""},
+		{"R_ALPHA_GPREL32", Const, 0, ""},
+		{"R_ALPHA_GPRELHIGH", Const, 0, ""},
+		{"R_ALPHA_GPRELLOW", Const, 0, ""},
+		{"R_ALPHA_GPVALUE", Const, 0, ""},
+		{"R_ALPHA_HINT", Const, 0, ""},
+		{"R_ALPHA_IMMED_BR_HI32", Const, 0, ""},
+		{"R_ALPHA_IMMED_GP_16", Const, 0, ""},
+		{"R_ALPHA_IMMED_GP_HI32", Const, 0, ""},
+		{"R_ALPHA_IMMED_LO32", Const, 0, ""},
+		{"R_ALPHA_IMMED_SCN_HI32", Const, 0, ""},
+		{"R_ALPHA_JMP_SLOT", Const, 0, ""},
+		{"R_ALPHA_LITERAL", Const, 0, ""},
+		{"R_ALPHA_LITUSE", Const, 0, ""},
+		{"R_ALPHA_NONE", Const, 0, ""},
+		{"R_ALPHA_OP_PRSHIFT", Const, 0, ""},
+		{"R_ALPHA_OP_PSUB", Const, 0, ""},
+		{"R_ALPHA_OP_PUSH", Const, 0, ""},
+		{"R_ALPHA_OP_STORE", Const, 0, ""},
+		{"R_ALPHA_REFLONG", Const, 0, ""},
+		{"R_ALPHA_REFQUAD", Const, 0, ""},
+		{"R_ALPHA_RELATIVE", Const, 0, ""},
+		{"R_ALPHA_SREL16", Const, 0, ""},
+		{"R_ALPHA_SREL32", Const, 0, ""},
+		{"R_ALPHA_SREL64", Const, 0, ""},
+		{"R_ARM", Type, 0, ""},
+		{"R_ARM_ABS12", Const, 0, ""},
+		{"R_ARM_ABS16", Const, 0, ""},
+		{"R_ARM_ABS32", Const, 0, ""},
+		{"R_ARM_ABS32_NOI", Const, 10, ""},
+		{"R_ARM_ABS8", Const, 0, ""},
+		{"R_ARM_ALU_PCREL_15_8", Const, 10, ""},
+		{"R_ARM_ALU_PCREL_23_15", Const, 10, ""},
+		{"R_ARM_ALU_PCREL_7_0", Const, 10, ""},
+		{"R_ARM_ALU_PC_G0", Const, 10, ""},
+		{"R_ARM_ALU_PC_G0_NC", Const, 10, ""},
+		{"R_ARM_ALU_PC_G1", Const, 10, ""},
+		{"R_ARM_ALU_PC_G1_NC", Const, 10, ""},
+		{"R_ARM_ALU_PC_G2", Const, 10, ""},
+		{"R_ARM_ALU_SBREL_19_12_NC", Const, 10, ""},
+		{"R_ARM_ALU_SBREL_27_20_CK", Const, 10, ""},
+		{"R_ARM_ALU_SB_G0", Const, 10, ""},
+		{"R_ARM_ALU_SB_G0_NC", Const, 10, ""},
+		{"R_ARM_ALU_SB_G1", Const, 10, ""},
+		{"R_ARM_ALU_SB_G1_NC", Const, 10, ""},
+		{"R_ARM_ALU_SB_G2", Const, 10, ""},
+		{"R_ARM_AMP_VCALL9", Const, 0, ""},
+		{"R_ARM_BASE_ABS", Const, 10, ""},
+		{"R_ARM_CALL", Const, 10, ""},
+		{"R_ARM_COPY", Const, 0, ""},
+		{"R_ARM_GLOB_DAT", Const, 0, ""},
+		{"R_ARM_GNU_VTENTRY", Const, 0, ""},
+		{"R_ARM_GNU_VTINHERIT", Const, 0, ""},
+		{"R_ARM_GOT32", Const, 0, ""},
+		{"R_ARM_GOTOFF", Const, 0, ""},
+		{"R_ARM_GOTOFF12", Const, 10, ""},
+		{"R_ARM_GOTPC", Const, 0, ""},
+		{"R_ARM_GOTRELAX", Const, 10, ""},
+		{"R_ARM_GOT_ABS", Const, 10, ""},
+		{"R_ARM_GOT_BREL12", Const, 10, ""},
+		{"R_ARM_GOT_PREL", Const, 10, ""},
+		{"R_ARM_IRELATIVE", Const, 10, ""},
+		{"R_ARM_JUMP24", Const, 10, ""},
+		{"R_ARM_JUMP_SLOT", Const, 0, ""},
+		{"R_ARM_LDC_PC_G0", Const, 10, ""},
+		{"R_ARM_LDC_PC_G1", Const, 10, ""},
+		{"R_ARM_LDC_PC_G2", Const, 10, ""},
+		{"R_ARM_LDC_SB_G0", Const, 10, ""},
+		{"R_ARM_LDC_SB_G1", Const, 10, ""},
+		{"R_ARM_LDC_SB_G2", Const, 10, ""},
+		{"R_ARM_LDRS_PC_G0", Const, 10, ""},
+		{"R_ARM_LDRS_PC_G1", Const, 10, ""},
+		{"R_ARM_LDRS_PC_G2", Const, 10, ""},
+		{"R_ARM_LDRS_SB_G0", Const, 10, ""},
+		{"R_ARM_LDRS_SB_G1", Const, 10, ""},
+		{"R_ARM_LDRS_SB_G2", Const, 10, ""},
+		{"R_ARM_LDR_PC_G1", Const, 10, ""},
+		{"R_ARM_LDR_PC_G2", Const, 10, ""},
+		{"R_ARM_LDR_SBREL_11_10_NC", Const, 10, ""},
+		{"R_ARM_LDR_SB_G0", Const, 10, ""},
+		{"R_ARM_LDR_SB_G1", Const, 10, ""},
+		{"R_ARM_LDR_SB_G2", Const, 10, ""},
+		{"R_ARM_ME_TOO", Const, 10, ""},
+		{"R_ARM_MOVT_ABS", Const, 10, ""},
+		{"R_ARM_MOVT_BREL", Const, 10, ""},
+		{"R_ARM_MOVT_PREL", Const, 10, ""},
+		{"R_ARM_MOVW_ABS_NC", Const, 10, ""},
+		{"R_ARM_MOVW_BREL", Const, 10, ""},
+		{"R_ARM_MOVW_BREL_NC", Const, 10, ""},
+		{"R_ARM_MOVW_PREL_NC", Const, 10, ""},
+		{"R_ARM_NONE", Const, 0, ""},
+		{"R_ARM_PC13", Const, 0, ""},
+		{"R_ARM_PC24", Const, 0, ""},
+		{"R_ARM_PLT32", Const, 0, ""},
+		{"R_ARM_PLT32_ABS", Const, 10, ""},
+		{"R_ARM_PREL31", Const, 10, ""},
+		{"R_ARM_PRIVATE_0", Const, 10, ""},
+		{"R_ARM_PRIVATE_1", Const, 10, ""},
+		{"R_ARM_PRIVATE_10", Const, 10, ""},
+		{"R_ARM_PRIVATE_11", Const, 10, ""},
+		{"R_ARM_PRIVATE_12", Const, 10, ""},
+		{"R_ARM_PRIVATE_13", Const, 10, ""},
+		{"R_ARM_PRIVATE_14", Const, 10, ""},
+		{"R_ARM_PRIVATE_15", Const, 10, ""},
+		{"R_ARM_PRIVATE_2", Const, 10, ""},
+		{"R_ARM_PRIVATE_3", Const, 10, ""},
+		{"R_ARM_PRIVATE_4", Const, 10, ""},
+		{"R_ARM_PRIVATE_5", Const, 10, ""},
+		{"R_ARM_PRIVATE_6", Const, 10, ""},
+		{"R_ARM_PRIVATE_7", Const, 10, ""},
+		{"R_ARM_PRIVATE_8", Const, 10, ""},
+		{"R_ARM_PRIVATE_9", Const, 10, ""},
+		{"R_ARM_RABS32", Const, 0, ""},
+		{"R_ARM_RBASE", Const, 0, ""},
+		{"R_ARM_REL32", Const, 0, ""},
+		{"R_ARM_REL32_NOI", Const, 10, ""},
+		{"R_ARM_RELATIVE", Const, 0, ""},
+		{"R_ARM_RPC24", Const, 0, ""},
+		{"R_ARM_RREL32", Const, 0, ""},
+		{"R_ARM_RSBREL32", Const, 0, ""},
+		{"R_ARM_RXPC25", Const, 10, ""},
+		{"R_ARM_SBREL31", Const, 10, ""},
+		{"R_ARM_SBREL32", Const, 0, ""},
+		{"R_ARM_SWI24", Const, 0, ""},
+		{"R_ARM_TARGET1", Const, 10, ""},
+		{"R_ARM_TARGET2", Const, 10, ""},
+		{"R_ARM_THM_ABS5", Const, 0, ""},
+		{"R_ARM_THM_ALU_ABS_G0_NC", Const, 10, ""},
+		{"R_ARM_THM_ALU_ABS_G1_NC", Const, 10, ""},
+		{"R_ARM_THM_ALU_ABS_G2_NC", Const, 10, ""},
+		{"R_ARM_THM_ALU_ABS_G3", Const, 10, ""},
+		{"R_ARM_THM_ALU_PREL_11_0", Const, 10, ""},
+		{"R_ARM_THM_GOT_BREL12", Const, 10, ""},
+		{"R_ARM_THM_JUMP11", Const, 10, ""},
+		{"R_ARM_THM_JUMP19", Const, 10, ""},
+		{"R_ARM_THM_JUMP24", Const, 10, ""},
+		{"R_ARM_THM_JUMP6", Const, 10, ""},
+		{"R_ARM_THM_JUMP8", Const, 10, ""},
+		{"R_ARM_THM_MOVT_ABS", Const, 10, ""},
+		{"R_ARM_THM_MOVT_BREL", Const, 10, ""},
+		{"R_ARM_THM_MOVT_PREL", Const, 10, ""},
+		{"R_ARM_THM_MOVW_ABS_NC", Const, 10, ""},
+		{"R_ARM_THM_MOVW_BREL", Const, 10, ""},
+		{"R_ARM_THM_MOVW_BREL_NC", Const, 10, ""},
+		{"R_ARM_THM_MOVW_PREL_NC", Const, 10, ""},
+		{"R_ARM_THM_PC12", Const, 10, ""},
+		{"R_ARM_THM_PC22", Const, 0, ""},
+		{"R_ARM_THM_PC8", Const, 0, ""},
+		{"R_ARM_THM_RPC22", Const, 0, ""},
+		{"R_ARM_THM_SWI8", Const, 0, ""},
+		{"R_ARM_THM_TLS_CALL", Const, 10, ""},
+		{"R_ARM_THM_TLS_DESCSEQ16", Const, 10, ""},
+		{"R_ARM_THM_TLS_DESCSEQ32", Const, 10, ""},
+		{"R_ARM_THM_XPC22", Const, 0, ""},
+		{"R_ARM_TLS_CALL", Const, 10, ""},
+		{"R_ARM_TLS_DESCSEQ", Const, 10, ""},
+		{"R_ARM_TLS_DTPMOD32", Const, 10, ""},
+		{"R_ARM_TLS_DTPOFF32", Const, 10, ""},
+		{"R_ARM_TLS_GD32", Const, 10, ""},
+		{"R_ARM_TLS_GOTDESC", Const, 10, ""},
+		{"R_ARM_TLS_IE12GP", Const, 10, ""},
+		{"R_ARM_TLS_IE32", Const, 10, ""},
+		{"R_ARM_TLS_LDM32", Const, 10, ""},
+		{"R_ARM_TLS_LDO12", Const, 10, ""},
+		{"R_ARM_TLS_LDO32", Const, 10, ""},
+		{"R_ARM_TLS_LE12", Const, 10, ""},
+		{"R_ARM_TLS_LE32", Const, 10, ""},
+		{"R_ARM_TLS_TPOFF32", Const, 10, ""},
+		{"R_ARM_V4BX", Const, 10, ""},
+		{"R_ARM_XPC25", Const, 0, ""},
+		{"R_INFO", Func, 0, "func(sym uint32, typ uint32) uint64"},
+		{"R_INFO32", Func, 0, "func(sym uint32, typ uint32) uint32"},
+		{"R_LARCH", Type, 19, ""},
+		{"R_LARCH_32", Const, 19, ""},
+		{"R_LARCH_32_PCREL", Const, 20, ""},
+		{"R_LARCH_64", Const, 19, ""},
+		{"R_LARCH_64_PCREL", Const, 22, ""},
+		{"R_LARCH_ABS64_HI12", Const, 20, ""},
+		{"R_LARCH_ABS64_LO20", Const, 20, ""},
+		{"R_LARCH_ABS_HI20", Const, 20, ""},
+		{"R_LARCH_ABS_LO12", Const, 20, ""},
+		{"R_LARCH_ADD16", Const, 19, ""},
+		{"R_LARCH_ADD24", Const, 19, ""},
+		{"R_LARCH_ADD32", Const, 19, ""},
+		{"R_LARCH_ADD6", Const, 22, ""},
+		{"R_LARCH_ADD64", Const, 19, ""},
+		{"R_LARCH_ADD8", Const, 19, ""},
+		{"R_LARCH_ADD_ULEB128", Const, 22, ""},
+		{"R_LARCH_ALIGN", Const, 22, ""},
+		{"R_LARCH_B16", Const, 20, ""},
+		{"R_LARCH_B21", Const, 20, ""},
+		{"R_LARCH_B26", Const, 20, ""},
+		{"R_LARCH_CFA", Const, 22, ""},
+		{"R_LARCH_COPY", Const, 19, ""},
+		{"R_LARCH_DELETE", Const, 22, ""},
+		{"R_LARCH_GNU_VTENTRY", Const, 20, ""},
+		{"R_LARCH_GNU_VTINHERIT", Const, 20, ""},
+		{"R_LARCH_GOT64_HI12", Const, 20, ""},
+		{"R_LARCH_GOT64_LO20", Const, 20, ""},
+		{"R_LARCH_GOT64_PC_HI12", Const, 20, ""},
+		{"R_LARCH_GOT64_PC_LO20", Const, 20, ""},
+		{"R_LARCH_GOT_HI20", Const, 20, ""},
+		{"R_LARCH_GOT_LO12", Const, 20, ""},
+		{"R_LARCH_GOT_PC_HI20", Const, 20, ""},
+		{"R_LARCH_GOT_PC_LO12", Const, 20, ""},
+		{"R_LARCH_IRELATIVE", Const, 19, ""},
+		{"R_LARCH_JUMP_SLOT", Const, 19, ""},
+		{"R_LARCH_MARK_LA", Const, 19, ""},
+		{"R_LARCH_MARK_PCREL", Const, 19, ""},
+		{"R_LARCH_NONE", Const, 19, ""},
+		{"R_LARCH_PCALA64_HI12", Const, 20, ""},
+		{"R_LARCH_PCALA64_LO20", Const, 20, ""},
+		{"R_LARCH_PCALA_HI20", Const, 20, ""},
+		{"R_LARCH_PCALA_LO12", Const, 20, ""},
+		{"R_LARCH_PCREL20_S2", Const, 22, ""},
+		{"R_LARCH_RELATIVE", Const, 19, ""},
+		{"R_LARCH_RELAX", Const, 20, ""},
+		{"R_LARCH_SOP_ADD", Const, 19, ""},
+		{"R_LARCH_SOP_AND", Const, 19, ""},
+		{"R_LARCH_SOP_ASSERT", Const, 19, ""},
+		{"R_LARCH_SOP_IF_ELSE", Const, 19, ""},
+		{"R_LARCH_SOP_NOT", Const, 19, ""},
+		{"R_LARCH_SOP_POP_32_S_0_10_10_16_S2", Const, 19, ""},
+		{"R_LARCH_SOP_POP_32_S_0_5_10_16_S2", Const, 19, ""},
+		{"R_LARCH_SOP_POP_32_S_10_12", Const, 19, ""},
+		{"R_LARCH_SOP_POP_32_S_10_16", Const, 19, ""},
+		{"R_LARCH_SOP_POP_32_S_10_16_S2", Const, 19, ""},
+		{"R_LARCH_SOP_POP_32_S_10_5", Const, 19, ""},
+		{"R_LARCH_SOP_POP_32_S_5_20", Const, 19, ""},
+		{"R_LARCH_SOP_POP_32_U", Const, 19, ""},
+		{"R_LARCH_SOP_POP_32_U_10_12", Const, 19, ""},
+		{"R_LARCH_SOP_PUSH_ABSOLUTE", Const, 19, ""},
+		{"R_LARCH_SOP_PUSH_DUP", Const, 19, ""},
+		{"R_LARCH_SOP_PUSH_GPREL", Const, 19, ""},
+		{"R_LARCH_SOP_PUSH_PCREL", Const, 19, ""},
+		{"R_LARCH_SOP_PUSH_PLT_PCREL", Const, 19, ""},
+		{"R_LARCH_SOP_PUSH_TLS_GD", Const, 19, ""},
+		{"R_LARCH_SOP_PUSH_TLS_GOT", Const, 19, ""},
+		{"R_LARCH_SOP_PUSH_TLS_TPREL", Const, 19, ""},
+		{"R_LARCH_SOP_SL", Const, 19, ""},
+		{"R_LARCH_SOP_SR", Const, 19, ""},
+		{"R_LARCH_SOP_SUB", Const, 19, ""},
+		{"R_LARCH_SUB16", Const, 19, ""},
+		{"R_LARCH_SUB24", Const, 19, ""},
+		{"R_LARCH_SUB32", Const, 19, ""},
+		{"R_LARCH_SUB6", Const, 22, ""},
+		{"R_LARCH_SUB64", Const, 19, ""},
+		{"R_LARCH_SUB8", Const, 19, ""},
+		{"R_LARCH_SUB_ULEB128", Const, 22, ""},
+		{"R_LARCH_TLS_DTPMOD32", Const, 19, ""},
+		{"R_LARCH_TLS_DTPMOD64", Const, 19, ""},
+		{"R_LARCH_TLS_DTPREL32", Const, 19, ""},
+		{"R_LARCH_TLS_DTPREL64", Const, 19, ""},
+		{"R_LARCH_TLS_GD_HI20", Const, 20, ""},
+		{"R_LARCH_TLS_GD_PC_HI20", Const, 20, ""},
+		{"R_LARCH_TLS_IE64_HI12", Const, 20, ""},
+		{"R_LARCH_TLS_IE64_LO20", Const, 20, ""},
+		{"R_LARCH_TLS_IE64_PC_HI12", Const, 20, ""},
+		{"R_LARCH_TLS_IE64_PC_LO20", Const, 20, ""},
+		{"R_LARCH_TLS_IE_HI20", Const, 20, ""},
+		{"R_LARCH_TLS_IE_LO12", Const, 20, ""},
+		{"R_LARCH_TLS_IE_PC_HI20", Const, 20, ""},
+		{"R_LARCH_TLS_IE_PC_LO12", Const, 20, ""},
+		{"R_LARCH_TLS_LD_HI20", Const, 20, ""},
+		{"R_LARCH_TLS_LD_PC_HI20", Const, 20, ""},
+		{"R_LARCH_TLS_LE64_HI12", Const, 20, ""},
+		{"R_LARCH_TLS_LE64_LO20", Const, 20, ""},
+		{"R_LARCH_TLS_LE_HI20", Const, 20, ""},
+		{"R_LARCH_TLS_LE_LO12", Const, 20, ""},
+		{"R_LARCH_TLS_TPREL32", Const, 19, ""},
+		{"R_LARCH_TLS_TPREL64", Const, 19, ""},
+		{"R_MIPS", Type, 6, ""},
+		{"R_MIPS_16", Const, 6, ""},
+		{"R_MIPS_26", Const, 6, ""},
+		{"R_MIPS_32", Const, 6, ""},
+		{"R_MIPS_64", Const, 6, ""},
+		{"R_MIPS_ADD_IMMEDIATE", Const, 6, ""},
+		{"R_MIPS_CALL16", Const, 6, ""},
+		{"R_MIPS_CALL_HI16", Const, 6, ""},
+		{"R_MIPS_CALL_LO16", Const, 6, ""},
+		{"R_MIPS_DELETE", Const, 6, ""},
+		{"R_MIPS_GOT16", Const, 6, ""},
+		{"R_MIPS_GOT_DISP", Const, 6, ""},
+		{"R_MIPS_GOT_HI16", Const, 6, ""},
+		{"R_MIPS_GOT_LO16", Const, 6, ""},
+		{"R_MIPS_GOT_OFST", Const, 6, ""},
+		{"R_MIPS_GOT_PAGE", Const, 6, ""},
+		{"R_MIPS_GPREL16", Const, 6, ""},
+		{"R_MIPS_GPREL32", Const, 6, ""},
+		{"R_MIPS_HI16", Const, 6, ""},
+		{"R_MIPS_HIGHER", Const, 6, ""},
+		{"R_MIPS_HIGHEST", Const, 6, ""},
+		{"R_MIPS_INSERT_A", Const, 6, ""},
+		{"R_MIPS_INSERT_B", Const, 6, ""},
+		{"R_MIPS_JALR", Const, 6, ""},
+		{"R_MIPS_LITERAL", Const, 6, ""},
+		{"R_MIPS_LO16", Const, 6, ""},
+		{"R_MIPS_NONE", Const, 6, ""},
+		{"R_MIPS_PC16", Const, 6, ""},
+		{"R_MIPS_PC32", Const, 22, ""},
+		{"R_MIPS_PJUMP", Const, 6, ""},
+		{"R_MIPS_REL16", Const, 6, ""},
+		{"R_MIPS_REL32", Const, 6, ""},
+		{"R_MIPS_RELGOT", Const, 6, ""},
+		{"R_MIPS_SCN_DISP", Const, 6, ""},
+		{"R_MIPS_SHIFT5", Const, 6, ""},
+		{"R_MIPS_SHIFT6", Const, 6, ""},
+		{"R_MIPS_SUB", Const, 6, ""},
+		{"R_MIPS_TLS_DTPMOD32", Const, 6, ""},
+		{"R_MIPS_TLS_DTPMOD64", Const, 6, ""},
+		{"R_MIPS_TLS_DTPREL32", Const, 6, ""},
+		{"R_MIPS_TLS_DTPREL64", Const, 6, ""},
+		{"R_MIPS_TLS_DTPREL_HI16", Const, 6, ""},
+		{"R_MIPS_TLS_DTPREL_LO16", Const, 6, ""},
+		{"R_MIPS_TLS_GD", Const, 6, ""},
+		{"R_MIPS_TLS_GOTTPREL", Const, 6, ""},
+		{"R_MIPS_TLS_LDM", Const, 6, ""},
+		{"R_MIPS_TLS_TPREL32", Const, 6, ""},
+		{"R_MIPS_TLS_TPREL64", Const, 6, ""},
+		{"R_MIPS_TLS_TPREL_HI16", Const, 6, ""},
+		{"R_MIPS_TLS_TPREL_LO16", Const, 6, ""},
+		{"R_PPC", Type, 0, ""},
+		{"R_PPC64", Type, 5, ""},
+		{"R_PPC64_ADDR14", Const, 5, ""},
+		{"R_PPC64_ADDR14_BRNTAKEN", Const, 5, ""},
+		{"R_PPC64_ADDR14_BRTAKEN", Const, 5, ""},
+		{"R_PPC64_ADDR16", Const, 5, ""},
+		{"R_PPC64_ADDR16_DS", Const, 5, ""},
+		{"R_PPC64_ADDR16_HA", Const, 5, ""},
+		{"R_PPC64_ADDR16_HI", Const, 5, ""},
+		{"R_PPC64_ADDR16_HIGH", Const, 10, ""},
+		{"R_PPC64_ADDR16_HIGHA", Const, 10, ""},
+		{"R_PPC64_ADDR16_HIGHER", Const, 5, ""},
+		{"R_PPC64_ADDR16_HIGHER34", Const, 20, ""},
+		{"R_PPC64_ADDR16_HIGHERA", Const, 5, ""},
+		{"R_PPC64_ADDR16_HIGHERA34", Const, 20, ""},
+		{"R_PPC64_ADDR16_HIGHEST", Const, 5, ""},
+		{"R_PPC64_ADDR16_HIGHEST34", Const, 20, ""},
+		{"R_PPC64_ADDR16_HIGHESTA", Const, 5, ""},
+		{"R_PPC64_ADDR16_HIGHESTA34", Const, 20, ""},
+		{"R_PPC64_ADDR16_LO", Const, 5, ""},
+		{"R_PPC64_ADDR16_LO_DS", Const, 5, ""},
+		{"R_PPC64_ADDR24", Const, 5, ""},
+		{"R_PPC64_ADDR32", Const, 5, ""},
+		{"R_PPC64_ADDR64", Const, 5, ""},
+		{"R_PPC64_ADDR64_LOCAL", Const, 10, ""},
+		{"R_PPC64_COPY", Const, 20, ""},
+		{"R_PPC64_D28", Const, 20, ""},
+		{"R_PPC64_D34", Const, 20, ""},
+		{"R_PPC64_D34_HA30", Const, 20, ""},
+		{"R_PPC64_D34_HI30", Const, 20, ""},
+		{"R_PPC64_D34_LO", Const, 20, ""},
+		{"R_PPC64_DTPMOD64", Const, 5, ""},
+		{"R_PPC64_DTPREL16", Const, 5, ""},
+		{"R_PPC64_DTPREL16_DS", Const, 5, ""},
+		{"R_PPC64_DTPREL16_HA", Const, 5, ""},
+		{"R_PPC64_DTPREL16_HI", Const, 5, ""},
+		{"R_PPC64_DTPREL16_HIGH", Const, 10, ""},
+		{"R_PPC64_DTPREL16_HIGHA", Const, 10, ""},
+		{"R_PPC64_DTPREL16_HIGHER", Const, 5, ""},
+		{"R_PPC64_DTPREL16_HIGHERA", Const, 5, ""},
+		{"R_PPC64_DTPREL16_HIGHEST", Const, 5, ""},
+		{"R_PPC64_DTPREL16_HIGHESTA", Const, 5, ""},
+		{"R_PPC64_DTPREL16_LO", Const, 5, ""},
+		{"R_PPC64_DTPREL16_LO_DS", Const, 5, ""},
+		{"R_PPC64_DTPREL34", Const, 20, ""},
+		{"R_PPC64_DTPREL64", Const, 5, ""},
+		{"R_PPC64_ENTRY", Const, 10, ""},
+		{"R_PPC64_GLOB_DAT", Const, 20, ""},
+		{"R_PPC64_GNU_VTENTRY", Const, 20, ""},
+		{"R_PPC64_GNU_VTINHERIT", Const, 20, ""},
+		{"R_PPC64_GOT16", Const, 5, ""},
+		{"R_PPC64_GOT16_DS", Const, 5, ""},
+		{"R_PPC64_GOT16_HA", Const, 5, ""},
+		{"R_PPC64_GOT16_HI", Const, 5, ""},
+		{"R_PPC64_GOT16_LO", Const, 5, ""},
+		{"R_PPC64_GOT16_LO_DS", Const, 5, ""},
+		{"R_PPC64_GOT_DTPREL16_DS", Const, 5, ""},
+		{"R_PPC64_GOT_DTPREL16_HA", Const, 5, ""},
+		{"R_PPC64_GOT_DTPREL16_HI", Const, 5, ""},
+		{"R_PPC64_GOT_DTPREL16_LO_DS", Const, 5, ""},
+		{"R_PPC64_GOT_DTPREL_PCREL34", Const, 20, ""},
+		{"R_PPC64_GOT_PCREL34", Const, 20, ""},
+		{"R_PPC64_GOT_TLSGD16", Const, 5, ""},
+		{"R_PPC64_GOT_TLSGD16_HA", Const, 5, ""},
+		{"R_PPC64_GOT_TLSGD16_HI", Const, 5, ""},
+		{"R_PPC64_GOT_TLSGD16_LO", Const, 5, ""},
+		{"R_PPC64_GOT_TLSGD_PCREL34", Const, 20, ""},
+		{"R_PPC64_GOT_TLSLD16", Const, 5, ""},
+		{"R_PPC64_GOT_TLSLD16_HA", Const, 5, ""},
+		{"R_PPC64_GOT_TLSLD16_HI", Const, 5, ""},
+		{"R_PPC64_GOT_TLSLD16_LO", Const, 5, ""},
+		{"R_PPC64_GOT_TLSLD_PCREL34", Const, 20, ""},
+		{"R_PPC64_GOT_TPREL16_DS", Const, 5, ""},
+		{"R_PPC64_GOT_TPREL16_HA", Const, 5, ""},
+		{"R_PPC64_GOT_TPREL16_HI", Const, 5, ""},
+		{"R_PPC64_GOT_TPREL16_LO_DS", Const, 5, ""},
+		{"R_PPC64_GOT_TPREL_PCREL34", Const, 20, ""},
+		{"R_PPC64_IRELATIVE", Const, 10, ""},
+		{"R_PPC64_JMP_IREL", Const, 10, ""},
+		{"R_PPC64_JMP_SLOT", Const, 5, ""},
+		{"R_PPC64_NONE", Const, 5, ""},
+		{"R_PPC64_PCREL28", Const, 20, ""},
+		{"R_PPC64_PCREL34", Const, 20, ""},
+		{"R_PPC64_PCREL_OPT", Const, 20, ""},
+		{"R_PPC64_PLT16_HA", Const, 20, ""},
+		{"R_PPC64_PLT16_HI", Const, 20, ""},
+		{"R_PPC64_PLT16_LO", Const, 20, ""},
+		{"R_PPC64_PLT16_LO_DS", Const, 10, ""},
+		{"R_PPC64_PLT32", Const, 20, ""},
+		{"R_PPC64_PLT64", Const, 20, ""},
+		{"R_PPC64_PLTCALL", Const, 20, ""},
+		{"R_PPC64_PLTCALL_NOTOC", Const, 20, ""},
+		{"R_PPC64_PLTGOT16", Const, 10, ""},
+		{"R_PPC64_PLTGOT16_DS", Const, 10, ""},
+		{"R_PPC64_PLTGOT16_HA", Const, 10, ""},
+		{"R_PPC64_PLTGOT16_HI", Const, 10, ""},
+		{"R_PPC64_PLTGOT16_LO", Const, 10, ""},
+		{"R_PPC64_PLTGOT_LO_DS", Const, 10, ""},
+		{"R_PPC64_PLTREL32", Const, 20, ""},
+		{"R_PPC64_PLTREL64", Const, 20, ""},
+		{"R_PPC64_PLTSEQ", Const, 20, ""},
+		{"R_PPC64_PLTSEQ_NOTOC", Const, 20, ""},
+		{"R_PPC64_PLT_PCREL34", Const, 20, ""},
+		{"R_PPC64_PLT_PCREL34_NOTOC", Const, 20, ""},
+		{"R_PPC64_REL14", Const, 5, ""},
+		{"R_PPC64_REL14_BRNTAKEN", Const, 5, ""},
+		{"R_PPC64_REL14_BRTAKEN", Const, 5, ""},
+		{"R_PPC64_REL16", Const, 5, ""},
+		{"R_PPC64_REL16DX_HA", Const, 10, ""},
+		{"R_PPC64_REL16_HA", Const, 5, ""},
+		{"R_PPC64_REL16_HI", Const, 5, ""},
+		{"R_PPC64_REL16_HIGH", Const, 20, ""},
+		{"R_PPC64_REL16_HIGHA", Const, 20, ""},
+		{"R_PPC64_REL16_HIGHER", Const, 20, ""},
+		{"R_PPC64_REL16_HIGHER34", Const, 20, ""},
+		{"R_PPC64_REL16_HIGHERA", Const, 20, ""},
+		{"R_PPC64_REL16_HIGHERA34", Const, 20, ""},
+		{"R_PPC64_REL16_HIGHEST", Const, 20, ""},
+		{"R_PPC64_REL16_HIGHEST34", Const, 20, ""},
+		{"R_PPC64_REL16_HIGHESTA", Const, 20, ""},
+		{"R_PPC64_REL16_HIGHESTA34", Const, 20, ""},
+		{"R_PPC64_REL16_LO", Const, 5, ""},
+		{"R_PPC64_REL24", Const, 5, ""},
+		{"R_PPC64_REL24_NOTOC", Const, 10, ""},
+		{"R_PPC64_REL24_P9NOTOC", Const, 21, ""},
+		{"R_PPC64_REL30", Const, 20, ""},
+		{"R_PPC64_REL32", Const, 5, ""},
+		{"R_PPC64_REL64", Const, 5, ""},
+		{"R_PPC64_RELATIVE", Const, 18, ""},
+		{"R_PPC64_SECTOFF", Const, 20, ""},
+		{"R_PPC64_SECTOFF_DS", Const, 10, ""},
+		{"R_PPC64_SECTOFF_HA", Const, 20, ""},
+		{"R_PPC64_SECTOFF_HI", Const, 20, ""},
+		{"R_PPC64_SECTOFF_LO", Const, 20, ""},
+		{"R_PPC64_SECTOFF_LO_DS", Const, 10, ""},
+		{"R_PPC64_TLS", Const, 5, ""},
+		{"R_PPC64_TLSGD", Const, 5, ""},
+		{"R_PPC64_TLSLD", Const, 5, ""},
+		{"R_PPC64_TOC", Const, 5, ""},
+		{"R_PPC64_TOC16", Const, 5, ""},
+		{"R_PPC64_TOC16_DS", Const, 5, ""},
+		{"R_PPC64_TOC16_HA", Const, 5, ""},
+		{"R_PPC64_TOC16_HI", Const, 5, ""},
+		{"R_PPC64_TOC16_LO", Const, 5, ""},
+		{"R_PPC64_TOC16_LO_DS", Const, 5, ""},
+		{"R_PPC64_TOCSAVE", Const, 10, ""},
+		{"R_PPC64_TPREL16", Const, 5, ""},
+		{"R_PPC64_TPREL16_DS", Const, 5, ""},
+		{"R_PPC64_TPREL16_HA", Const, 5, ""},
+		{"R_PPC64_TPREL16_HI", Const, 5, ""},
+		{"R_PPC64_TPREL16_HIGH", Const, 10, ""},
+		{"R_PPC64_TPREL16_HIGHA", Const, 10, ""},
+		{"R_PPC64_TPREL16_HIGHER", Const, 5, ""},
+		{"R_PPC64_TPREL16_HIGHERA", Const, 5, ""},
+		{"R_PPC64_TPREL16_HIGHEST", Const, 5, ""},
+		{"R_PPC64_TPREL16_HIGHESTA", Const, 5, ""},
+		{"R_PPC64_TPREL16_LO", Const, 5, ""},
+		{"R_PPC64_TPREL16_LO_DS", Const, 5, ""},
+		{"R_PPC64_TPREL34", Const, 20, ""},
+		{"R_PPC64_TPREL64", Const, 5, ""},
+		{"R_PPC64_UADDR16", Const, 20, ""},
+		{"R_PPC64_UADDR32", Const, 20, ""},
+		{"R_PPC64_UADDR64", Const, 20, ""},
+		{"R_PPC_ADDR14", Const, 0, ""},
+		{"R_PPC_ADDR14_BRNTAKEN", Const, 0, ""},
+		{"R_PPC_ADDR14_BRTAKEN", Const, 0, ""},
+		{"R_PPC_ADDR16", Const, 0, ""},
+		{"R_PPC_ADDR16_HA", Const, 0, ""},
+		{"R_PPC_ADDR16_HI", Const, 0, ""},
+		{"R_PPC_ADDR16_LO", Const, 0, ""},
+		{"R_PPC_ADDR24", Const, 0, ""},
+		{"R_PPC_ADDR32", Const, 0, ""},
+		{"R_PPC_COPY", Const, 0, ""},
+		{"R_PPC_DTPMOD32", Const, 0, ""},
+		{"R_PPC_DTPREL16", Const, 0, ""},
+		{"R_PPC_DTPREL16_HA", Const, 0, ""},
+		{"R_PPC_DTPREL16_HI", Const, 0, ""},
+		{"R_PPC_DTPREL16_LO", Const, 0, ""},
+		{"R_PPC_DTPREL32", Const, 0, ""},
+		{"R_PPC_EMB_BIT_FLD", Const, 0, ""},
+		{"R_PPC_EMB_MRKREF", Const, 0, ""},
+		{"R_PPC_EMB_NADDR16", Const, 0, ""},
+		{"R_PPC_EMB_NADDR16_HA", Const, 0, ""},
+		{"R_PPC_EMB_NADDR16_HI", Const, 0, ""},
+		{"R_PPC_EMB_NADDR16_LO", Const, 0, ""},
+		{"R_PPC_EMB_NADDR32", Const, 0, ""},
+		{"R_PPC_EMB_RELSDA", Const, 0, ""},
+		{"R_PPC_EMB_RELSEC16", Const, 0, ""},
+		{"R_PPC_EMB_RELST_HA", Const, 0, ""},
+		{"R_PPC_EMB_RELST_HI", Const, 0, ""},
+		{"R_PPC_EMB_RELST_LO", Const, 0, ""},
+		{"R_PPC_EMB_SDA21", Const, 0, ""},
+		{"R_PPC_EMB_SDA2I16", Const, 0, ""},
+		{"R_PPC_EMB_SDA2REL", Const, 0, ""},
+		{"R_PPC_EMB_SDAI16", Const, 0, ""},
+		{"R_PPC_GLOB_DAT", Const, 0, ""},
+		{"R_PPC_GOT16", Const, 0, ""},
+		{"R_PPC_GOT16_HA", Const, 0, ""},
+		{"R_PPC_GOT16_HI", Const, 0, ""},
+		{"R_PPC_GOT16_LO", Const, 0, ""},
+		{"R_PPC_GOT_TLSGD16", Const, 0, ""},
+		{"R_PPC_GOT_TLSGD16_HA", Const, 0, ""},
+		{"R_PPC_GOT_TLSGD16_HI", Const, 0, ""},
+		{"R_PPC_GOT_TLSGD16_LO", Const, 0, ""},
+		{"R_PPC_GOT_TLSLD16", Const, 0, ""},
+		{"R_PPC_GOT_TLSLD16_HA", Const, 0, ""},
+		{"R_PPC_GOT_TLSLD16_HI", Const, 0, ""},
+		{"R_PPC_GOT_TLSLD16_LO", Const, 0, ""},
+		{"R_PPC_GOT_TPREL16", Const, 0, ""},
+		{"R_PPC_GOT_TPREL16_HA", Const, 0, ""},
+		{"R_PPC_GOT_TPREL16_HI", Const, 0, ""},
+		{"R_PPC_GOT_TPREL16_LO", Const, 0, ""},
+		{"R_PPC_JMP_SLOT", Const, 0, ""},
+		{"R_PPC_LOCAL24PC", Const, 0, ""},
+		{"R_PPC_NONE", Const, 0, ""},
+		{"R_PPC_PLT16_HA", Const, 0, ""},
+		{"R_PPC_PLT16_HI", Const, 0, ""},
+		{"R_PPC_PLT16_LO", Const, 0, ""},
+		{"R_PPC_PLT32", Const, 0, ""},
+		{"R_PPC_PLTREL24", Const, 0, ""},
+		{"R_PPC_PLTREL32", Const, 0, ""},
+		{"R_PPC_REL14", Const, 0, ""},
+		{"R_PPC_REL14_BRNTAKEN", Const, 0, ""},
+		{"R_PPC_REL14_BRTAKEN", Const, 0, ""},
+		{"R_PPC_REL24", Const, 0, ""},
+		{"R_PPC_REL32", Const, 0, ""},
+		{"R_PPC_RELATIVE", Const, 0, ""},
+		{"R_PPC_SDAREL16", Const, 0, ""},
+		{"R_PPC_SECTOFF", Const, 0, ""},
+		{"R_PPC_SECTOFF_HA", Const, 0, ""},
+		{"R_PPC_SECTOFF_HI", Const, 0, ""},
+		{"R_PPC_SECTOFF_LO", Const, 0, ""},
+		{"R_PPC_TLS", Const, 0, ""},
+		{"R_PPC_TPREL16", Const, 0, ""},
+		{"R_PPC_TPREL16_HA", Const, 0, ""},
+		{"R_PPC_TPREL16_HI", Const, 0, ""},
+		{"R_PPC_TPREL16_LO", Const, 0, ""},
+		{"R_PPC_TPREL32", Const, 0, ""},
+		{"R_PPC_UADDR16", Const, 0, ""},
+		{"R_PPC_UADDR32", Const, 0, ""},
+		{"R_RISCV", Type, 11, ""},
+		{"R_RISCV_32", Const, 11, ""},
+		{"R_RISCV_32_PCREL", Const, 12, ""},
+		{"R_RISCV_64", Const, 11, ""},
+		{"R_RISCV_ADD16", Const, 11, ""},
+		{"R_RISCV_ADD32", Const, 11, ""},
+		{"R_RISCV_ADD64", Const, 11, ""},
+		{"R_RISCV_ADD8", Const, 11, ""},
+		{"R_RISCV_ALIGN", Const, 11, ""},
+		{"R_RISCV_BRANCH", Const, 11, ""},
+		{"R_RISCV_CALL", Const, 11, ""},
+		{"R_RISCV_CALL_PLT", Const, 11, ""},
+		{"R_RISCV_COPY", Const, 11, ""},
+		{"R_RISCV_GNU_VTENTRY", Const, 11, ""},
+		{"R_RISCV_GNU_VTINHERIT", Const, 11, ""},
+		{"R_RISCV_GOT_HI20", Const, 11, ""},
+		{"R_RISCV_GPREL_I", Const, 11, ""},
+		{"R_RISCV_GPREL_S", Const, 11, ""},
+		{"R_RISCV_HI20", Const, 11, ""},
+		{"R_RISCV_JAL", Const, 11, ""},
+		{"R_RISCV_JUMP_SLOT", Const, 11, ""},
+		{"R_RISCV_LO12_I", Const, 11, ""},
+		{"R_RISCV_LO12_S", Const, 11, ""},
+		{"R_RISCV_NONE", Const, 11, ""},
+		{"R_RISCV_PCREL_HI20", Const, 11, ""},
+		{"R_RISCV_PCREL_LO12_I", Const, 11, ""},
+		{"R_RISCV_PCREL_LO12_S", Const, 11, ""},
+		{"R_RISCV_RELATIVE", Const, 11, ""},
+		{"R_RISCV_RELAX", Const, 11, ""},
+		{"R_RISCV_RVC_BRANCH", Const, 11, ""},
+		{"R_RISCV_RVC_JUMP", Const, 11, ""},
+		{"R_RISCV_RVC_LUI", Const, 11, ""},
+		{"R_RISCV_SET16", Const, 11, ""},
+		{"R_RISCV_SET32", Const, 11, ""},
+		{"R_RISCV_SET6", Const, 11, ""},
+		{"R_RISCV_SET8", Const, 11, ""},
+		{"R_RISCV_SUB16", Const, 11, ""},
+		{"R_RISCV_SUB32", Const, 11, ""},
+		{"R_RISCV_SUB6", Const, 11, ""},
+		{"R_RISCV_SUB64", Const, 11, ""},
+		{"R_RISCV_SUB8", Const, 11, ""},
+		{"R_RISCV_TLS_DTPMOD32", Const, 11, ""},
+		{"R_RISCV_TLS_DTPMOD64", Const, 11, ""},
+		{"R_RISCV_TLS_DTPREL32", Const, 11, ""},
+		{"R_RISCV_TLS_DTPREL64", Const, 11, ""},
+		{"R_RISCV_TLS_GD_HI20", Const, 11, ""},
+		{"R_RISCV_TLS_GOT_HI20", Const, 11, ""},
+		{"R_RISCV_TLS_TPREL32", Const, 11, ""},
+		{"R_RISCV_TLS_TPREL64", Const, 11, ""},
+		{"R_RISCV_TPREL_ADD", Const, 11, ""},
+		{"R_RISCV_TPREL_HI20", Const, 11, ""},
+		{"R_RISCV_TPREL_I", Const, 11, ""},
+		{"R_RISCV_TPREL_LO12_I", Const, 11, ""},
+		{"R_RISCV_TPREL_LO12_S", Const, 11, ""},
+		{"R_RISCV_TPREL_S", Const, 11, ""},
+		{"R_SPARC", Type, 0, ""},
+		{"R_SPARC_10", Const, 0, ""},
+		{"R_SPARC_11", Const, 0, ""},
+		{"R_SPARC_13", Const, 0, ""},
+		{"R_SPARC_16", Const, 0, ""},
+		{"R_SPARC_22", Const, 0, ""},
+		{"R_SPARC_32", Const, 0, ""},
+		{"R_SPARC_5", Const, 0, ""},
+		{"R_SPARC_6", Const, 0, ""},
+		{"R_SPARC_64", Const, 0, ""},
+		{"R_SPARC_7", Const, 0, ""},
+		{"R_SPARC_8", Const, 0, ""},
+		{"R_SPARC_COPY", Const, 0, ""},
+		{"R_SPARC_DISP16", Const, 0, ""},
+		{"R_SPARC_DISP32", Const, 0, ""},
+		{"R_SPARC_DISP64", Const, 0, ""},
+		{"R_SPARC_DISP8", Const, 0, ""},
+		{"R_SPARC_GLOB_DAT", Const, 0, ""},
+		{"R_SPARC_GLOB_JMP", Const, 0, ""},
+		{"R_SPARC_GOT10", Const, 0, ""},
+		{"R_SPARC_GOT13", Const, 0, ""},
+		{"R_SPARC_GOT22", Const, 0, ""},
+		{"R_SPARC_H44", Const, 0, ""},
+		{"R_SPARC_HH22", Const, 0, ""},
+		{"R_SPARC_HI22", Const, 0, ""},
+		{"R_SPARC_HIPLT22", Const, 0, ""},
+		{"R_SPARC_HIX22", Const, 0, ""},
+		{"R_SPARC_HM10", Const, 0, ""},
+		{"R_SPARC_JMP_SLOT", Const, 0, ""},
+		{"R_SPARC_L44", Const, 0, ""},
+		{"R_SPARC_LM22", Const, 0, ""},
+		{"R_SPARC_LO10", Const, 0, ""},
+		{"R_SPARC_LOPLT10", Const, 0, ""},
+		{"R_SPARC_LOX10", Const, 0, ""},
+		{"R_SPARC_M44", Const, 0, ""},
+		{"R_SPARC_NONE", Const, 0, ""},
+		{"R_SPARC_OLO10", Const, 0, ""},
+		{"R_SPARC_PC10", Const, 0, ""},
+		{"R_SPARC_PC22", Const, 0, ""},
+		{"R_SPARC_PCPLT10", Const, 0, ""},
+		{"R_SPARC_PCPLT22", Const, 0, ""},
+		{"R_SPARC_PCPLT32", Const, 0, ""},
+		{"R_SPARC_PC_HH22", Const, 0, ""},
+		{"R_SPARC_PC_HM10", Const, 0, ""},
+		{"R_SPARC_PC_LM22", Const, 0, ""},
+		{"R_SPARC_PLT32", Const, 0, ""},
+		{"R_SPARC_PLT64", Const, 0, ""},
+		{"R_SPARC_REGISTER", Const, 0, ""},
+		{"R_SPARC_RELATIVE", Const, 0, ""},
+		{"R_SPARC_UA16", Const, 0, ""},
+		{"R_SPARC_UA32", Const, 0, ""},
+		{"R_SPARC_UA64", Const, 0, ""},
+		{"R_SPARC_WDISP16", Const, 0, ""},
+		{"R_SPARC_WDISP19", Const, 0, ""},
+		{"R_SPARC_WDISP22", Const, 0, ""},
+		{"R_SPARC_WDISP30", Const, 0, ""},
+		{"R_SPARC_WPLT30", Const, 0, ""},
+		{"R_SYM32", Func, 0, "func(info uint32) uint32"},
+		{"R_SYM64", Func, 0, "func(info uint64) uint32"},
+		{"R_TYPE32", Func, 0, "func(info uint32) uint32"},
+		{"R_TYPE64", Func, 0, "func(info uint64) uint32"},
+		{"R_X86_64", Type, 0, ""},
+		{"R_X86_64_16", Const, 0, ""},
+		{"R_X86_64_32", Const, 0, ""},
+		{"R_X86_64_32S", Const, 0, ""},
+		{"R_X86_64_64", Const, 0, ""},
+		{"R_X86_64_8", Const, 0, ""},
+		{"R_X86_64_COPY", Const, 0, ""},
+		{"R_X86_64_DTPMOD64", Const, 0, ""},
+		{"R_X86_64_DTPOFF32", Const, 0, ""},
+		{"R_X86_64_DTPOFF64", Const, 0, ""},
+		{"R_X86_64_GLOB_DAT", Const, 0, ""},
+		{"R_X86_64_GOT32", Const, 0, ""},
+		{"R_X86_64_GOT64", Const, 10, ""},
+		{"R_X86_64_GOTOFF64", Const, 10, ""},
+		{"R_X86_64_GOTPC32", Const, 10, ""},
+		{"R_X86_64_GOTPC32_TLSDESC", Const, 10, ""},
+		{"R_X86_64_GOTPC64", Const, 10, ""},
+		{"R_X86_64_GOTPCREL", Const, 0, ""},
+		{"R_X86_64_GOTPCREL64", Const, 10, ""},
+		{"R_X86_64_GOTPCRELX", Const, 10, ""},
+		{"R_X86_64_GOTPLT64", Const, 10, ""},
+		{"R_X86_64_GOTTPOFF", Const, 0, ""},
+		{"R_X86_64_IRELATIVE", Const, 10, ""},
+		{"R_X86_64_JMP_SLOT", Const, 0, ""},
+		{"R_X86_64_NONE", Const, 0, ""},
+		{"R_X86_64_PC16", Const, 0, ""},
+		{"R_X86_64_PC32", Const, 0, ""},
+		{"R_X86_64_PC32_BND", Const, 10, ""},
+		{"R_X86_64_PC64", Const, 10, ""},
+		{"R_X86_64_PC8", Const, 0, ""},
+		{"R_X86_64_PLT32", Const, 0, ""},
+		{"R_X86_64_PLT32_BND", Const, 10, ""},
+		{"R_X86_64_PLTOFF64", Const, 10, ""},
+		{"R_X86_64_RELATIVE", Const, 0, ""},
+		{"R_X86_64_RELATIVE64", Const, 10, ""},
+		{"R_X86_64_REX_GOTPCRELX", Const, 10, ""},
+		{"R_X86_64_SIZE32", Const, 10, ""},
+		{"R_X86_64_SIZE64", Const, 10, ""},
+		{"R_X86_64_TLSDESC", Const, 10, ""},
+		{"R_X86_64_TLSDESC_CALL", Const, 10, ""},
+		{"R_X86_64_TLSGD", Const, 0, ""},
+		{"R_X86_64_TLSLD", Const, 0, ""},
+		{"R_X86_64_TPOFF32", Const, 0, ""},
+		{"R_X86_64_TPOFF64", Const, 0, ""},
+		{"Rel32", Type, 0, ""},
+		{"Rel32.Info", Field, 0, ""},
+		{"Rel32.Off", Field, 0, ""},
+		{"Rel64", Type, 0, ""},
+		{"Rel64.Info", Field, 0, ""},
+		{"Rel64.Off", Field, 0, ""},
+		{"Rela32", Type, 0, ""},
+		{"Rela32.Addend", Field, 0, ""},
+		{"Rela32.Info", Field, 0, ""},
+		{"Rela32.Off", Field, 0, ""},
+		{"Rela64", Type, 0, ""},
+		{"Rela64.Addend", Field, 0, ""},
+		{"Rela64.Info", Field, 0, ""},
+		{"Rela64.Off", Field, 0, ""},
+		{"SHF_ALLOC", Const, 0, ""},
+		{"SHF_COMPRESSED", Const, 6, ""},
+		{"SHF_EXECINSTR", Const, 0, ""},
+		{"SHF_GROUP", Const, 0, ""},
+		{"SHF_INFO_LINK", Const, 0, ""},
+		{"SHF_LINK_ORDER", Const, 0, ""},
+		{"SHF_MASKOS", Const, 0, ""},
+		{"SHF_MASKPROC", Const, 0, ""},
+		{"SHF_MERGE", Const, 0, ""},
+		{"SHF_OS_NONCONFORMING", Const, 0, ""},
+		{"SHF_STRINGS", Const, 0, ""},
+		{"SHF_TLS", Const, 0, ""},
+		{"SHF_WRITE", Const, 0, ""},
+		{"SHN_ABS", Const, 0, ""},
+		{"SHN_COMMON", Const, 0, ""},
+		{"SHN_HIOS", Const, 0, ""},
+		{"SHN_HIPROC", Const, 0, ""},
+		{"SHN_HIRESERVE", Const, 0, ""},
+		{"SHN_LOOS", Const, 0, ""},
+		{"SHN_LOPROC", Const, 0, ""},
+		{"SHN_LORESERVE", Const, 0, ""},
+		{"SHN_UNDEF", Const, 0, ""},
+		{"SHN_XINDEX", Const, 0, ""},
+		{"SHT_DYNAMIC", Const, 0, ""},
+		{"SHT_DYNSYM", Const, 0, ""},
+		{"SHT_FINI_ARRAY", Const, 0, ""},
+		{"SHT_GNU_ATTRIBUTES", Const, 0, ""},
+		{"SHT_GNU_HASH", Const, 0, ""},
+		{"SHT_GNU_LIBLIST", Const, 0, ""},
+		{"SHT_GNU_VERDEF", Const, 0, ""},
+		{"SHT_GNU_VERNEED", Const, 0, ""},
+		{"SHT_GNU_VERSYM", Const, 0, ""},
+		{"SHT_GROUP", Const, 0, ""},
+		{"SHT_HASH", Const, 0, ""},
+		{"SHT_HIOS", Const, 0, ""},
+		{"SHT_HIPROC", Const, 0, ""},
+		{"SHT_HIUSER", Const, 0, ""},
+		{"SHT_INIT_ARRAY", Const, 0, ""},
+		{"SHT_LOOS", Const, 0, ""},
+		{"SHT_LOPROC", Const, 0, ""},
+		{"SHT_LOUSER", Const, 0, ""},
+		{"SHT_MIPS_ABIFLAGS", Const, 17, ""},
+		{"SHT_NOBITS", Const, 0, ""},
+		{"SHT_NOTE", Const, 0, ""},
+		{"SHT_NULL", Const, 0, ""},
+		{"SHT_PREINIT_ARRAY", Const, 0, ""},
+		{"SHT_PROGBITS", Const, 0, ""},
+		{"SHT_REL", Const, 0, ""},
+		{"SHT_RELA", Const, 0, ""},
+		{"SHT_RISCV_ATTRIBUTES", Const, 25, ""},
+		{"SHT_SHLIB", Const, 0, ""},
+		{"SHT_STRTAB", Const, 0, ""},
+		{"SHT_SYMTAB", Const, 0, ""},
+		{"SHT_SYMTAB_SHNDX", Const, 0, ""},
+		{"STB_GLOBAL", Const, 0, ""},
+		{"STB_HIOS", Const, 0, ""},
+		{"STB_HIPROC", Const, 0, ""},
+		{"STB_LOCAL", Const, 0, ""},
+		{"STB_LOOS", Const, 0, ""},
+		{"STB_LOPROC", Const, 0, ""},
+		{"STB_WEAK", Const, 0, ""},
+		{"STT_COMMON", Const, 0, ""},
+		{"STT_FILE", Const, 0, ""},
+		{"STT_FUNC", Const, 0, ""},
+		{"STT_GNU_IFUNC", Const, 23, ""},
+		{"STT_HIOS", Const, 0, ""},
+		{"STT_HIPROC", Const, 0, ""},
+		{"STT_LOOS", Const, 0, ""},
+		{"STT_LOPROC", Const, 0, ""},
+		{"STT_NOTYPE", Const, 0, ""},
+		{"STT_OBJECT", Const, 0, ""},
+		{"STT_RELC", Const, 23, ""},
+		{"STT_SECTION", Const, 0, ""},
+		{"STT_SRELC", Const, 23, ""},
+		{"STT_TLS", Const, 0, ""},
+		{"STV_DEFAULT", Const, 0, ""},
+		{"STV_HIDDEN", Const, 0, ""},
+		{"STV_INTERNAL", Const, 0, ""},
+		{"STV_PROTECTED", Const, 0, ""},
+		{"ST_BIND", Func, 0, "func(info uint8) SymBind"},
+		{"ST_INFO", Func, 0, "func(bind SymBind, typ SymType) uint8"},
+		{"ST_TYPE", Func, 0, "func(info uint8) SymType"},
+		{"ST_VISIBILITY", Func, 0, "func(other uint8) SymVis"},
+		{"Section", Type, 0, ""},
+		{"Section.ReaderAt", Field, 0, ""},
+		{"Section.SectionHeader", Field, 0, ""},
+		{"Section32", Type, 0, ""},
+		{"Section32.Addr", Field, 0, ""},
+		{"Section32.Addralign", Field, 0, ""},
+		{"Section32.Entsize", Field, 0, ""},
+		{"Section32.Flags", Field, 0, ""},
+		{"Section32.Info", Field, 0, ""},
+		{"Section32.Link", Field, 0, ""},
+		{"Section32.Name", Field, 0, ""},
+		{"Section32.Off", Field, 0, ""},
+		{"Section32.Size", Field, 0, ""},
+		{"Section32.Type", Field, 0, ""},
+		{"Section64", Type, 0, ""},
+		{"Section64.Addr", Field, 0, ""},
+		{"Section64.Addralign", Field, 0, ""},
+		{"Section64.Entsize", Field, 0, ""},
+		{"Section64.Flags", Field, 0, ""},
+		{"Section64.Info", Field, 0, ""},
+		{"Section64.Link", Field, 0, ""},
+		{"Section64.Name", Field, 0, ""},
+		{"Section64.Off", Field, 0, ""},
+		{"Section64.Size", Field, 0, ""},
+		{"Section64.Type", Field, 0, ""},
+		{"SectionFlag", Type, 0, ""},
+		{"SectionHeader", Type, 0, ""},
+		{"SectionHeader.Addr", Field, 0, ""},
+		{"SectionHeader.Addralign", Field, 0, ""},
+		{"SectionHeader.Entsize", Field, 0, ""},
+		{"SectionHeader.FileSize", Field, 6, ""},
+		{"SectionHeader.Flags", Field, 0, ""},
+		{"SectionHeader.Info", Field, 0, ""},
+		{"SectionHeader.Link", Field, 0, ""},
+		{"SectionHeader.Name", Field, 0, ""},
+		{"SectionHeader.Offset", Field, 0, ""},
+		{"SectionHeader.Size", Field, 0, ""},
+		{"SectionHeader.Type", Field, 0, ""},
+		{"SectionIndex", Type, 0, ""},
+		{"SectionType", Type, 0, ""},
+		{"Sym32", Type, 0, ""},
+		{"Sym32.Info", Field, 0, ""},
+		{"Sym32.Name", Field, 0, ""},
+		{"Sym32.Other", Field, 0, ""},
+		{"Sym32.Shndx", Field, 0, ""},
+		{"Sym32.Size", Field, 0, ""},
+		{"Sym32.Value", Field, 0, ""},
+		{"Sym32Size", Const, 0, ""},
+		{"Sym64", Type, 0, ""},
+		{"Sym64.Info", Field, 0, ""},
+		{"Sym64.Name", Field, 0, ""},
+		{"Sym64.Other", Field, 0, ""},
+		{"Sym64.Shndx", Field, 0, ""},
+		{"Sym64.Size", Field, 0, ""},
+		{"Sym64.Value", Field, 0, ""},
+		{"Sym64Size", Const, 0, ""},
+		{"SymBind", Type, 0, ""},
+		{"SymType", Type, 0, ""},
+		{"SymVis", Type, 0, ""},
+		{"Symbol", Type, 0, ""},
+		{"Symbol.HasVersion", Field, 24, ""},
+		{"Symbol.Info", Field, 0, ""},
+		{"Symbol.Library", Field, 13, ""},
+		{"Symbol.Name", Field, 0, ""},
+		{"Symbol.Other", Field, 0, ""},
+		{"Symbol.Section", Field, 0, ""},
+		{"Symbol.Size", Field, 0, ""},
+		{"Symbol.Value", Field, 0, ""},
+		{"Symbol.Version", Field, 13, ""},
+		{"Symbol.VersionIndex", Field, 24, ""},
+		{"Type", Type, 0, ""},
+		{"VER_FLG_BASE", Const, 24, ""},
+		{"VER_FLG_INFO", Const, 24, ""},
+		{"VER_FLG_WEAK", Const, 24, ""},
+		{"Version", Type, 0, ""},
+		{"VersionIndex", Type, 24, ""},
 	},
 	"debug/gosym": {
-		{"(*DecodingError).Error", Method, 0},
-		{"(*LineTable).LineToPC", Method, 0},
-		{"(*LineTable).PCToLine", Method, 0},
-		{"(*Sym).BaseName", Method, 0},
-		{"(*Sym).PackageName", Method, 0},
-		{"(*Sym).ReceiverName", Method, 0},
-		{"(*Sym).Static", Method, 0},
-		{"(*Table).LineToPC", Method, 0},
-		{"(*Table).LookupFunc", Method, 0},
-		{"(*Table).LookupSym", Method, 0},
-		{"(*Table).PCToFunc", Method, 0},
-		{"(*Table).PCToLine", Method, 0},
-		{"(*Table).SymByAddr", Method, 0},
-		{"(*UnknownLineError).Error", Method, 0},
-		{"(Func).BaseName", Method, 0},
-		{"(Func).PackageName", Method, 0},
-		{"(Func).ReceiverName", Method, 0},
-		{"(Func).Static", Method, 0},
-		{"(UnknownFileError).Error", Method, 0},
-		{"DecodingError", Type, 0},
-		{"Func", Type, 0},
-		{"Func.End", Field, 0},
-		{"Func.Entry", Field, 0},
-		{"Func.FrameSize", Field, 0},
-		{"Func.LineTable", Field, 0},
-		{"Func.Locals", Field, 0},
-		{"Func.Obj", Field, 0},
-		{"Func.Params", Field, 0},
-		{"Func.Sym", Field, 0},
-		{"LineTable", Type, 0},
-		{"LineTable.Data", Field, 0},
-		{"LineTable.Line", Field, 0},
-		{"LineTable.PC", Field, 0},
-		{"NewLineTable", Func, 0},
-		{"NewTable", Func, 0},
-		{"Obj", Type, 0},
-		{"Obj.Funcs", Field, 0},
-		{"Obj.Paths", Field, 0},
-		{"Sym", Type, 0},
-		{"Sym.Func", Field, 0},
-		{"Sym.GoType", Field, 0},
-		{"Sym.Name", Field, 0},
-		{"Sym.Type", Field, 0},
-		{"Sym.Value", Field, 0},
-		{"Table", Type, 0},
-		{"Table.Files", Field, 0},
-		{"Table.Funcs", Field, 0},
-		{"Table.Objs", Field, 0},
-		{"Table.Syms", Field, 0},
-		{"UnknownFileError", Type, 0},
-		{"UnknownLineError", Type, 0},
-		{"UnknownLineError.File", Field, 0},
-		{"UnknownLineError.Line", Field, 0},
+		{"(*DecodingError).Error", Method, 0, ""},
+		{"(*LineTable).LineToPC", Method, 0, ""},
+		{"(*LineTable).PCToLine", Method, 0, ""},
+		{"(*Sym).BaseName", Method, 0, ""},
+		{"(*Sym).PackageName", Method, 0, ""},
+		{"(*Sym).ReceiverName", Method, 0, ""},
+		{"(*Sym).Static", Method, 0, ""},
+		{"(*Table).LineToPC", Method, 0, ""},
+		{"(*Table).LookupFunc", Method, 0, ""},
+		{"(*Table).LookupSym", Method, 0, ""},
+		{"(*Table).PCToFunc", Method, 0, ""},
+		{"(*Table).PCToLine", Method, 0, ""},
+		{"(*Table).SymByAddr", Method, 0, ""},
+		{"(*UnknownLineError).Error", Method, 0, ""},
+		{"(Func).BaseName", Method, 0, ""},
+		{"(Func).PackageName", Method, 0, ""},
+		{"(Func).ReceiverName", Method, 0, ""},
+		{"(Func).Static", Method, 0, ""},
+		{"(UnknownFileError).Error", Method, 0, ""},
+		{"DecodingError", Type, 0, ""},
+		{"Func", Type, 0, ""},
+		{"Func.End", Field, 0, ""},
+		{"Func.Entry", Field, 0, ""},
+		{"Func.FrameSize", Field, 0, ""},
+		{"Func.LineTable", Field, 0, ""},
+		{"Func.Locals", Field, 0, ""},
+		{"Func.Obj", Field, 0, ""},
+		{"Func.Params", Field, 0, ""},
+		{"Func.Sym", Field, 0, ""},
+		{"LineTable", Type, 0, ""},
+		{"LineTable.Data", Field, 0, ""},
+		{"LineTable.Line", Field, 0, ""},
+		{"LineTable.PC", Field, 0, ""},
+		{"NewLineTable", Func, 0, "func(data []byte, text uint64) *LineTable"},
+		{"NewTable", Func, 0, "func(symtab []byte, pcln *LineTable) (*Table, error)"},
+		{"Obj", Type, 0, ""},
+		{"Obj.Funcs", Field, 0, ""},
+		{"Obj.Paths", Field, 0, ""},
+		{"Sym", Type, 0, ""},
+		{"Sym.Func", Field, 0, ""},
+		{"Sym.GoType", Field, 0, ""},
+		{"Sym.Name", Field, 0, ""},
+		{"Sym.Type", Field, 0, ""},
+		{"Sym.Value", Field, 0, ""},
+		{"Table", Type, 0, ""},
+		{"Table.Files", Field, 0, ""},
+		{"Table.Funcs", Field, 0, ""},
+		{"Table.Objs", Field, 0, ""},
+		{"Table.Syms", Field, 0, ""},
+		{"UnknownFileError", Type, 0, ""},
+		{"UnknownLineError", Type, 0, ""},
+		{"UnknownLineError.File", Field, 0, ""},
+		{"UnknownLineError.Line", Field, 0, ""},
 	},
 	"debug/macho": {
-		{"(*FatFile).Close", Method, 3},
-		{"(*File).Close", Method, 0},
-		{"(*File).DWARF", Method, 0},
-		{"(*File).ImportedLibraries", Method, 0},
-		{"(*File).ImportedSymbols", Method, 0},
-		{"(*File).Section", Method, 0},
-		{"(*File).Segment", Method, 0},
-		{"(*FormatError).Error", Method, 0},
-		{"(*Section).Data", Method, 0},
-		{"(*Section).Open", Method, 0},
-		{"(*Segment).Data", Method, 0},
-		{"(*Segment).Open", Method, 0},
-		{"(Cpu).GoString", Method, 0},
-		{"(Cpu).String", Method, 0},
-		{"(Dylib).Raw", Method, 0},
-		{"(Dysymtab).Raw", Method, 0},
-		{"(FatArch).Close", Method, 3},
-		{"(FatArch).DWARF", Method, 3},
-		{"(FatArch).ImportedLibraries", Method, 3},
-		{"(FatArch).ImportedSymbols", Method, 3},
-		{"(FatArch).Section", Method, 3},
-		{"(FatArch).Segment", Method, 3},
-		{"(LoadBytes).Raw", Method, 0},
-		{"(LoadCmd).GoString", Method, 0},
-		{"(LoadCmd).String", Method, 0},
-		{"(RelocTypeARM).GoString", Method, 10},
-		{"(RelocTypeARM).String", Method, 10},
-		{"(RelocTypeARM64).GoString", Method, 10},
-		{"(RelocTypeARM64).String", Method, 10},
-		{"(RelocTypeGeneric).GoString", Method, 10},
-		{"(RelocTypeGeneric).String", Method, 10},
-		{"(RelocTypeX86_64).GoString", Method, 10},
-		{"(RelocTypeX86_64).String", Method, 10},
-		{"(Rpath).Raw", Method, 10},
-		{"(Section).ReadAt", Method, 0},
-		{"(Segment).Raw", Method, 0},
-		{"(Segment).ReadAt", Method, 0},
-		{"(Symtab).Raw", Method, 0},
-		{"(Type).GoString", Method, 10},
-		{"(Type).String", Method, 10},
-		{"ARM64_RELOC_ADDEND", Const, 10},
-		{"ARM64_RELOC_BRANCH26", Const, 10},
-		{"ARM64_RELOC_GOT_LOAD_PAGE21", Const, 10},
-		{"ARM64_RELOC_GOT_LOAD_PAGEOFF12", Const, 10},
-		{"ARM64_RELOC_PAGE21", Const, 10},
-		{"ARM64_RELOC_PAGEOFF12", Const, 10},
-		{"ARM64_RELOC_POINTER_TO_GOT", Const, 10},
-		{"ARM64_RELOC_SUBTRACTOR", Const, 10},
-		{"ARM64_RELOC_TLVP_LOAD_PAGE21", Const, 10},
-		{"ARM64_RELOC_TLVP_LOAD_PAGEOFF12", Const, 10},
-		{"ARM64_RELOC_UNSIGNED", Const, 10},
-		{"ARM_RELOC_BR24", Const, 10},
-		{"ARM_RELOC_HALF", Const, 10},
-		{"ARM_RELOC_HALF_SECTDIFF", Const, 10},
-		{"ARM_RELOC_LOCAL_SECTDIFF", Const, 10},
-		{"ARM_RELOC_PAIR", Const, 10},
-		{"ARM_RELOC_PB_LA_PTR", Const, 10},
-		{"ARM_RELOC_SECTDIFF", Const, 10},
-		{"ARM_RELOC_VANILLA", Const, 10},
-		{"ARM_THUMB_32BIT_BRANCH", Const, 10},
-		{"ARM_THUMB_RELOC_BR22", Const, 10},
-		{"Cpu", Type, 0},
-		{"Cpu386", Const, 0},
-		{"CpuAmd64", Const, 0},
-		{"CpuArm", Const, 3},
-		{"CpuArm64", Const, 11},
-		{"CpuPpc", Const, 3},
-		{"CpuPpc64", Const, 3},
-		{"Dylib", Type, 0},
-		{"Dylib.CompatVersion", Field, 0},
-		{"Dylib.CurrentVersion", Field, 0},
-		{"Dylib.LoadBytes", Field, 0},
-		{"Dylib.Name", Field, 0},
-		{"Dylib.Time", Field, 0},
-		{"DylibCmd", Type, 0},
-		{"DylibCmd.Cmd", Field, 0},
-		{"DylibCmd.CompatVersion", Field, 0},
-		{"DylibCmd.CurrentVersion", Field, 0},
-		{"DylibCmd.Len", Field, 0},
-		{"DylibCmd.Name", Field, 0},
-		{"DylibCmd.Time", Field, 0},
-		{"Dysymtab", Type, 0},
-		{"Dysymtab.DysymtabCmd", Field, 0},
-		{"Dysymtab.IndirectSyms", Field, 0},
-		{"Dysymtab.LoadBytes", Field, 0},
-		{"DysymtabCmd", Type, 0},
-		{"DysymtabCmd.Cmd", Field, 0},
-		{"DysymtabCmd.Extrefsymoff", Field, 0},
-		{"DysymtabCmd.Extreloff", Field, 0},
-		{"DysymtabCmd.Iextdefsym", Field, 0},
-		{"DysymtabCmd.Ilocalsym", Field, 0},
-		{"DysymtabCmd.Indirectsymoff", Field, 0},
-		{"DysymtabCmd.Iundefsym", Field, 0},
-		{"DysymtabCmd.Len", Field, 0},
-		{"DysymtabCmd.Locreloff", Field, 0},
-		{"DysymtabCmd.Modtaboff", Field, 0},
-		{"DysymtabCmd.Nextdefsym", Field, 0},
-		{"DysymtabCmd.Nextrefsyms", Field, 0},
-		{"DysymtabCmd.Nextrel", Field, 0},
-		{"DysymtabCmd.Nindirectsyms", Field, 0},
-		{"DysymtabCmd.Nlocalsym", Field, 0},
-		{"DysymtabCmd.Nlocrel", Field, 0},
-		{"DysymtabCmd.Nmodtab", Field, 0},
-		{"DysymtabCmd.Ntoc", Field, 0},
-		{"DysymtabCmd.Nundefsym", Field, 0},
-		{"DysymtabCmd.Tocoffset", Field, 0},
-		{"ErrNotFat", Var, 3},
-		{"FatArch", Type, 3},
-		{"FatArch.FatArchHeader", Field, 3},
-		{"FatArch.File", Field, 3},
-		{"FatArchHeader", Type, 3},
-		{"FatArchHeader.Align", Field, 3},
-		{"FatArchHeader.Cpu", Field, 3},
-		{"FatArchHeader.Offset", Field, 3},
-		{"FatArchHeader.Size", Field, 3},
-		{"FatArchHeader.SubCpu", Field, 3},
-		{"FatFile", Type, 3},
-		{"FatFile.Arches", Field, 3},
-		{"FatFile.Magic", Field, 3},
-		{"File", Type, 0},
-		{"File.ByteOrder", Field, 0},
-		{"File.Dysymtab", Field, 0},
-		{"File.FileHeader", Field, 0},
-		{"File.Loads", Field, 0},
-		{"File.Sections", Field, 0},
-		{"File.Symtab", Field, 0},
-		{"FileHeader", Type, 0},
-		{"FileHeader.Cmdsz", Field, 0},
-		{"FileHeader.Cpu", Field, 0},
-		{"FileHeader.Flags", Field, 0},
-		{"FileHeader.Magic", Field, 0},
-		{"FileHeader.Ncmd", Field, 0},
-		{"FileHeader.SubCpu", Field, 0},
-		{"FileHeader.Type", Field, 0},
-		{"FlagAllModsBound", Const, 10},
-		{"FlagAllowStackExecution", Const, 10},
-		{"FlagAppExtensionSafe", Const, 10},
-		{"FlagBindAtLoad", Const, 10},
-		{"FlagBindsToWeak", Const, 10},
-		{"FlagCanonical", Const, 10},
-		{"FlagDeadStrippableDylib", Const, 10},
-		{"FlagDyldLink", Const, 10},
-		{"FlagForceFlat", Const, 10},
-		{"FlagHasTLVDescriptors", Const, 10},
-		{"FlagIncrLink", Const, 10},
-		{"FlagLazyInit", Const, 10},
-		{"FlagNoFixPrebinding", Const, 10},
-		{"FlagNoHeapExecution", Const, 10},
-		{"FlagNoMultiDefs", Const, 10},
-		{"FlagNoReexportedDylibs", Const, 10},
-		{"FlagNoUndefs", Const, 10},
-		{"FlagPIE", Const, 10},
-		{"FlagPrebindable", Const, 10},
-		{"FlagPrebound", Const, 10},
-		{"FlagRootSafe", Const, 10},
-		{"FlagSetuidSafe", Const, 10},
-		{"FlagSplitSegs", Const, 10},
-		{"FlagSubsectionsViaSymbols", Const, 10},
-		{"FlagTwoLevel", Const, 10},
-		{"FlagWeakDefines", Const, 10},
-		{"FormatError", Type, 0},
-		{"GENERIC_RELOC_LOCAL_SECTDIFF", Const, 10},
-		{"GENERIC_RELOC_PAIR", Const, 10},
-		{"GENERIC_RELOC_PB_LA_PTR", Const, 10},
-		{"GENERIC_RELOC_SECTDIFF", Const, 10},
-		{"GENERIC_RELOC_TLV", Const, 10},
-		{"GENERIC_RELOC_VANILLA", Const, 10},
-		{"Load", Type, 0},
-		{"LoadBytes", Type, 0},
-		{"LoadCmd", Type, 0},
-		{"LoadCmdDylib", Const, 0},
-		{"LoadCmdDylinker", Const, 0},
-		{"LoadCmdDysymtab", Const, 0},
-		{"LoadCmdRpath", Const, 10},
-		{"LoadCmdSegment", Const, 0},
-		{"LoadCmdSegment64", Const, 0},
-		{"LoadCmdSymtab", Const, 0},
-		{"LoadCmdThread", Const, 0},
-		{"LoadCmdUnixThread", Const, 0},
-		{"Magic32", Const, 0},
-		{"Magic64", Const, 0},
-		{"MagicFat", Const, 3},
-		{"NewFatFile", Func, 3},
-		{"NewFile", Func, 0},
-		{"Nlist32", Type, 0},
-		{"Nlist32.Desc", Field, 0},
-		{"Nlist32.Name", Field, 0},
-		{"Nlist32.Sect", Field, 0},
-		{"Nlist32.Type", Field, 0},
-		{"Nlist32.Value", Field, 0},
-		{"Nlist64", Type, 0},
-		{"Nlist64.Desc", Field, 0},
-		{"Nlist64.Name", Field, 0},
-		{"Nlist64.Sect", Field, 0},
-		{"Nlist64.Type", Field, 0},
-		{"Nlist64.Value", Field, 0},
-		{"Open", Func, 0},
-		{"OpenFat", Func, 3},
-		{"Regs386", Type, 0},
-		{"Regs386.AX", Field, 0},
-		{"Regs386.BP", Field, 0},
-		{"Regs386.BX", Field, 0},
-		{"Regs386.CS", Field, 0},
-		{"Regs386.CX", Field, 0},
-		{"Regs386.DI", Field, 0},
-		{"Regs386.DS", Field, 0},
-		{"Regs386.DX", Field, 0},
-		{"Regs386.ES", Field, 0},
-		{"Regs386.FLAGS", Field, 0},
-		{"Regs386.FS", Field, 0},
-		{"Regs386.GS", Field, 0},
-		{"Regs386.IP", Field, 0},
-		{"Regs386.SI", Field, 0},
-		{"Regs386.SP", Field, 0},
-		{"Regs386.SS", Field, 0},
-		{"RegsAMD64", Type, 0},
-		{"RegsAMD64.AX", Field, 0},
-		{"RegsAMD64.BP", Field, 0},
-		{"RegsAMD64.BX", Field, 0},
-		{"RegsAMD64.CS", Field, 0},
-		{"RegsAMD64.CX", Field, 0},
-		{"RegsAMD64.DI", Field, 0},
-		{"RegsAMD64.DX", Field, 0},
-		{"RegsAMD64.FLAGS", Field, 0},
-		{"RegsAMD64.FS", Field, 0},
-		{"RegsAMD64.GS", Field, 0},
-		{"RegsAMD64.IP", Field, 0},
-		{"RegsAMD64.R10", Field, 0},
-		{"RegsAMD64.R11", Field, 0},
-		{"RegsAMD64.R12", Field, 0},
-		{"RegsAMD64.R13", Field, 0},
-		{"RegsAMD64.R14", Field, 0},
-		{"RegsAMD64.R15", Field, 0},
-		{"RegsAMD64.R8", Field, 0},
-		{"RegsAMD64.R9", Field, 0},
-		{"RegsAMD64.SI", Field, 0},
-		{"RegsAMD64.SP", Field, 0},
-		{"Reloc", Type, 10},
-		{"Reloc.Addr", Field, 10},
-		{"Reloc.Extern", Field, 10},
-		{"Reloc.Len", Field, 10},
-		{"Reloc.Pcrel", Field, 10},
-		{"Reloc.Scattered", Field, 10},
-		{"Reloc.Type", Field, 10},
-		{"Reloc.Value", Field, 10},
-		{"RelocTypeARM", Type, 10},
-		{"RelocTypeARM64", Type, 10},
-		{"RelocTypeGeneric", Type, 10},
-		{"RelocTypeX86_64", Type, 10},
-		{"Rpath", Type, 10},
-		{"Rpath.LoadBytes", Field, 10},
-		{"Rpath.Path", Field, 10},
-		{"RpathCmd", Type, 10},
-		{"RpathCmd.Cmd", Field, 10},
-		{"RpathCmd.Len", Field, 10},
-		{"RpathCmd.Path", Field, 10},
-		{"Section", Type, 0},
-		{"Section.ReaderAt", Field, 0},
-		{"Section.Relocs", Field, 10},
-		{"Section.SectionHeader", Field, 0},
-		{"Section32", Type, 0},
-		{"Section32.Addr", Field, 0},
-		{"Section32.Align", Field, 0},
-		{"Section32.Flags", Field, 0},
-		{"Section32.Name", Field, 0},
-		{"Section32.Nreloc", Field, 0},
-		{"Section32.Offset", Field, 0},
-		{"Section32.Reloff", Field, 0},
-		{"Section32.Reserve1", Field, 0},
-		{"Section32.Reserve2", Field, 0},
-		{"Section32.Seg", Field, 0},
-		{"Section32.Size", Field, 0},
-		{"Section64", Type, 0},
-		{"Section64.Addr", Field, 0},
-		{"Section64.Align", Field, 0},
-		{"Section64.Flags", Field, 0},
-		{"Section64.Name", Field, 0},
-		{"Section64.Nreloc", Field, 0},
-		{"Section64.Offset", Field, 0},
-		{"Section64.Reloff", Field, 0},
-		{"Section64.Reserve1", Field, 0},
-		{"Section64.Reserve2", Field, 0},
-		{"Section64.Reserve3", Field, 0},
-		{"Section64.Seg", Field, 0},
-		{"Section64.Size", Field, 0},
-		{"SectionHeader", Type, 0},
-		{"SectionHeader.Addr", Field, 0},
-		{"SectionHeader.Align", Field, 0},
-		{"SectionHeader.Flags", Field, 0},
-		{"SectionHeader.Name", Field, 0},
-		{"SectionHeader.Nreloc", Field, 0},
-		{"SectionHeader.Offset", Field, 0},
-		{"SectionHeader.Reloff", Field, 0},
-		{"SectionHeader.Seg", Field, 0},
-		{"SectionHeader.Size", Field, 0},
-		{"Segment", Type, 0},
-		{"Segment.LoadBytes", Field, 0},
-		{"Segment.ReaderAt", Field, 0},
-		{"Segment.SegmentHeader", Field, 0},
-		{"Segment32", Type, 0},
-		{"Segment32.Addr", Field, 0},
-		{"Segment32.Cmd", Field, 0},
-		{"Segment32.Filesz", Field, 0},
-		{"Segment32.Flag", Field, 0},
-		{"Segment32.Len", Field, 0},
-		{"Segment32.Maxprot", Field, 0},
-		{"Segment32.Memsz", Field, 0},
-		{"Segment32.Name", Field, 0},
-		{"Segment32.Nsect", Field, 0},
-		{"Segment32.Offset", Field, 0},
-		{"Segment32.Prot", Field, 0},
-		{"Segment64", Type, 0},
-		{"Segment64.Addr", Field, 0},
-		{"Segment64.Cmd", Field, 0},
-		{"Segment64.Filesz", Field, 0},
-		{"Segment64.Flag", Field, 0},
-		{"Segment64.Len", Field, 0},
-		{"Segment64.Maxprot", Field, 0},
-		{"Segment64.Memsz", Field, 0},
-		{"Segment64.Name", Field, 0},
-		{"Segment64.Nsect", Field, 0},
-		{"Segment64.Offset", Field, 0},
-		{"Segment64.Prot", Field, 0},
-		{"SegmentHeader", Type, 0},
-		{"SegmentHeader.Addr", Field, 0},
-		{"SegmentHeader.Cmd", Field, 0},
-		{"SegmentHeader.Filesz", Field, 0},
-		{"SegmentHeader.Flag", Field, 0},
-		{"SegmentHeader.Len", Field, 0},
-		{"SegmentHeader.Maxprot", Field, 0},
-		{"SegmentHeader.Memsz", Field, 0},
-		{"SegmentHeader.Name", Field, 0},
-		{"SegmentHeader.Nsect", Field, 0},
-		{"SegmentHeader.Offset", Field, 0},
-		{"SegmentHeader.Prot", Field, 0},
-		{"Symbol", Type, 0},
-		{"Symbol.Desc", Field, 0},
-		{"Symbol.Name", Field, 0},
-		{"Symbol.Sect", Field, 0},
-		{"Symbol.Type", Field, 0},
-		{"Symbol.Value", Field, 0},
-		{"Symtab", Type, 0},
-		{"Symtab.LoadBytes", Field, 0},
-		{"Symtab.Syms", Field, 0},
-		{"Symtab.SymtabCmd", Field, 0},
-		{"SymtabCmd", Type, 0},
-		{"SymtabCmd.Cmd", Field, 0},
-		{"SymtabCmd.Len", Field, 0},
-		{"SymtabCmd.Nsyms", Field, 0},
-		{"SymtabCmd.Stroff", Field, 0},
-		{"SymtabCmd.Strsize", Field, 0},
-		{"SymtabCmd.Symoff", Field, 0},
-		{"Thread", Type, 0},
-		{"Thread.Cmd", Field, 0},
-		{"Thread.Data", Field, 0},
-		{"Thread.Len", Field, 0},
-		{"Thread.Type", Field, 0},
-		{"Type", Type, 0},
-		{"TypeBundle", Const, 3},
-		{"TypeDylib", Const, 3},
-		{"TypeExec", Const, 0},
-		{"TypeObj", Const, 0},
-		{"X86_64_RELOC_BRANCH", Const, 10},
-		{"X86_64_RELOC_GOT", Const, 10},
-		{"X86_64_RELOC_GOT_LOAD", Const, 10},
-		{"X86_64_RELOC_SIGNED", Const, 10},
-		{"X86_64_RELOC_SIGNED_1", Const, 10},
-		{"X86_64_RELOC_SIGNED_2", Const, 10},
-		{"X86_64_RELOC_SIGNED_4", Const, 10},
-		{"X86_64_RELOC_SUBTRACTOR", Const, 10},
-		{"X86_64_RELOC_TLV", Const, 10},
-		{"X86_64_RELOC_UNSIGNED", Const, 10},
+		{"(*FatFile).Close", Method, 3, ""},
+		{"(*File).Close", Method, 0, ""},
+		{"(*File).DWARF", Method, 0, ""},
+		{"(*File).ImportedLibraries", Method, 0, ""},
+		{"(*File).ImportedSymbols", Method, 0, ""},
+		{"(*File).Section", Method, 0, ""},
+		{"(*File).Segment", Method, 0, ""},
+		{"(*FormatError).Error", Method, 0, ""},
+		{"(*Section).Data", Method, 0, ""},
+		{"(*Section).Open", Method, 0, ""},
+		{"(*Segment).Data", Method, 0, ""},
+		{"(*Segment).Open", Method, 0, ""},
+		{"(Cpu).GoString", Method, 0, ""},
+		{"(Cpu).String", Method, 0, ""},
+		{"(Dylib).Raw", Method, 0, ""},
+		{"(Dysymtab).Raw", Method, 0, ""},
+		{"(FatArch).Close", Method, 3, ""},
+		{"(FatArch).DWARF", Method, 3, ""},
+		{"(FatArch).ImportedLibraries", Method, 3, ""},
+		{"(FatArch).ImportedSymbols", Method, 3, ""},
+		{"(FatArch).Section", Method, 3, ""},
+		{"(FatArch).Segment", Method, 3, ""},
+		{"(LoadBytes).Raw", Method, 0, ""},
+		{"(LoadCmd).GoString", Method, 0, ""},
+		{"(LoadCmd).String", Method, 0, ""},
+		{"(RelocTypeARM).GoString", Method, 10, ""},
+		{"(RelocTypeARM).String", Method, 10, ""},
+		{"(RelocTypeARM64).GoString", Method, 10, ""},
+		{"(RelocTypeARM64).String", Method, 10, ""},
+		{"(RelocTypeGeneric).GoString", Method, 10, ""},
+		{"(RelocTypeGeneric).String", Method, 10, ""},
+		{"(RelocTypeX86_64).GoString", Method, 10, ""},
+		{"(RelocTypeX86_64).String", Method, 10, ""},
+		{"(Rpath).Raw", Method, 10, ""},
+		{"(Section).ReadAt", Method, 0, ""},
+		{"(Segment).Raw", Method, 0, ""},
+		{"(Segment).ReadAt", Method, 0, ""},
+		{"(Symtab).Raw", Method, 0, ""},
+		{"(Type).GoString", Method, 10, ""},
+		{"(Type).String", Method, 10, ""},
+		{"ARM64_RELOC_ADDEND", Const, 10, ""},
+		{"ARM64_RELOC_BRANCH26", Const, 10, ""},
+		{"ARM64_RELOC_GOT_LOAD_PAGE21", Const, 10, ""},
+		{"ARM64_RELOC_GOT_LOAD_PAGEOFF12", Const, 10, ""},
+		{"ARM64_RELOC_PAGE21", Const, 10, ""},
+		{"ARM64_RELOC_PAGEOFF12", Const, 10, ""},
+		{"ARM64_RELOC_POINTER_TO_GOT", Const, 10, ""},
+		{"ARM64_RELOC_SUBTRACTOR", Const, 10, ""},
+		{"ARM64_RELOC_TLVP_LOAD_PAGE21", Const, 10, ""},
+		{"ARM64_RELOC_TLVP_LOAD_PAGEOFF12", Const, 10, ""},
+		{"ARM64_RELOC_UNSIGNED", Const, 10, ""},
+		{"ARM_RELOC_BR24", Const, 10, ""},
+		{"ARM_RELOC_HALF", Const, 10, ""},
+		{"ARM_RELOC_HALF_SECTDIFF", Const, 10, ""},
+		{"ARM_RELOC_LOCAL_SECTDIFF", Const, 10, ""},
+		{"ARM_RELOC_PAIR", Const, 10, ""},
+		{"ARM_RELOC_PB_LA_PTR", Const, 10, ""},
+		{"ARM_RELOC_SECTDIFF", Const, 10, ""},
+		{"ARM_RELOC_VANILLA", Const, 10, ""},
+		{"ARM_THUMB_32BIT_BRANCH", Const, 10, ""},
+		{"ARM_THUMB_RELOC_BR22", Const, 10, ""},
+		{"Cpu", Type, 0, ""},
+		{"Cpu386", Const, 0, ""},
+		{"CpuAmd64", Const, 0, ""},
+		{"CpuArm", Const, 3, ""},
+		{"CpuArm64", Const, 11, ""},
+		{"CpuPpc", Const, 3, ""},
+		{"CpuPpc64", Const, 3, ""},
+		{"Dylib", Type, 0, ""},
+		{"Dylib.CompatVersion", Field, 0, ""},
+		{"Dylib.CurrentVersion", Field, 0, ""},
+		{"Dylib.LoadBytes", Field, 0, ""},
+		{"Dylib.Name", Field, 0, ""},
+		{"Dylib.Time", Field, 0, ""},
+		{"DylibCmd", Type, 0, ""},
+		{"DylibCmd.Cmd", Field, 0, ""},
+		{"DylibCmd.CompatVersion", Field, 0, ""},
+		{"DylibCmd.CurrentVersion", Field, 0, ""},
+		{"DylibCmd.Len", Field, 0, ""},
+		{"DylibCmd.Name", Field, 0, ""},
+		{"DylibCmd.Time", Field, 0, ""},
+		{"Dysymtab", Type, 0, ""},
+		{"Dysymtab.DysymtabCmd", Field, 0, ""},
+		{"Dysymtab.IndirectSyms", Field, 0, ""},
+		{"Dysymtab.LoadBytes", Field, 0, ""},
+		{"DysymtabCmd", Type, 0, ""},
+		{"DysymtabCmd.Cmd", Field, 0, ""},
+		{"DysymtabCmd.Extrefsymoff", Field, 0, ""},
+		{"DysymtabCmd.Extreloff", Field, 0, ""},
+		{"DysymtabCmd.Iextdefsym", Field, 0, ""},
+		{"DysymtabCmd.Ilocalsym", Field, 0, ""},
+		{"DysymtabCmd.Indirectsymoff", Field, 0, ""},
+		{"DysymtabCmd.Iundefsym", Field, 0, ""},
+		{"DysymtabCmd.Len", Field, 0, ""},
+		{"DysymtabCmd.Locreloff", Field, 0, ""},
+		{"DysymtabCmd.Modtaboff", Field, 0, ""},
+		{"DysymtabCmd.Nextdefsym", Field, 0, ""},
+		{"DysymtabCmd.Nextrefsyms", Field, 0, ""},
+		{"DysymtabCmd.Nextrel", Field, 0, ""},
+		{"DysymtabCmd.Nindirectsyms", Field, 0, ""},
+		{"DysymtabCmd.Nlocalsym", Field, 0, ""},
+		{"DysymtabCmd.Nlocrel", Field, 0, ""},
+		{"DysymtabCmd.Nmodtab", Field, 0, ""},
+		{"DysymtabCmd.Ntoc", Field, 0, ""},
+		{"DysymtabCmd.Nundefsym", Field, 0, ""},
+		{"DysymtabCmd.Tocoffset", Field, 0, ""},
+		{"ErrNotFat", Var, 3, ""},
+		{"FatArch", Type, 3, ""},
+		{"FatArch.FatArchHeader", Field, 3, ""},
+		{"FatArch.File", Field, 3, ""},
+		{"FatArchHeader", Type, 3, ""},
+		{"FatArchHeader.Align", Field, 3, ""},
+		{"FatArchHeader.Cpu", Field, 3, ""},
+		{"FatArchHeader.Offset", Field, 3, ""},
+		{"FatArchHeader.Size", Field, 3, ""},
+		{"FatArchHeader.SubCpu", Field, 3, ""},
+		{"FatFile", Type, 3, ""},
+		{"FatFile.Arches", Field, 3, ""},
+		{"FatFile.Magic", Field, 3, ""},
+		{"File", Type, 0, ""},
+		{"File.ByteOrder", Field, 0, ""},
+		{"File.Dysymtab", Field, 0, ""},
+		{"File.FileHeader", Field, 0, ""},
+		{"File.Loads", Field, 0, ""},
+		{"File.Sections", Field, 0, ""},
+		{"File.Symtab", Field, 0, ""},
+		{"FileHeader", Type, 0, ""},
+		{"FileHeader.Cmdsz", Field, 0, ""},
+		{"FileHeader.Cpu", Field, 0, ""},
+		{"FileHeader.Flags", Field, 0, ""},
+		{"FileHeader.Magic", Field, 0, ""},
+		{"FileHeader.Ncmd", Field, 0, ""},
+		{"FileHeader.SubCpu", Field, 0, ""},
+		{"FileHeader.Type", Field, 0, ""},
+		{"FlagAllModsBound", Const, 10, ""},
+		{"FlagAllowStackExecution", Const, 10, ""},
+		{"FlagAppExtensionSafe", Const, 10, ""},
+		{"FlagBindAtLoad", Const, 10, ""},
+		{"FlagBindsToWeak", Const, 10, ""},
+		{"FlagCanonical", Const, 10, ""},
+		{"FlagDeadStrippableDylib", Const, 10, ""},
+		{"FlagDyldLink", Const, 10, ""},
+		{"FlagForceFlat", Const, 10, ""},
+		{"FlagHasTLVDescriptors", Const, 10, ""},
+		{"FlagIncrLink", Const, 10, ""},
+		{"FlagLazyInit", Const, 10, ""},
+		{"FlagNoFixPrebinding", Const, 10, ""},
+		{"FlagNoHeapExecution", Const, 10, ""},
+		{"FlagNoMultiDefs", Const, 10, ""},
+		{"FlagNoReexportedDylibs", Const, 10, ""},
+		{"FlagNoUndefs", Const, 10, ""},
+		{"FlagPIE", Const, 10, ""},
+		{"FlagPrebindable", Const, 10, ""},
+		{"FlagPrebound", Const, 10, ""},
+		{"FlagRootSafe", Const, 10, ""},
+		{"FlagSetuidSafe", Const, 10, ""},
+		{"FlagSplitSegs", Const, 10, ""},
+		{"FlagSubsectionsViaSymbols", Const, 10, ""},
+		{"FlagTwoLevel", Const, 10, ""},
+		{"FlagWeakDefines", Const, 10, ""},
+		{"FormatError", Type, 0, ""},
+		{"GENERIC_RELOC_LOCAL_SECTDIFF", Const, 10, ""},
+		{"GENERIC_RELOC_PAIR", Const, 10, ""},
+		{"GENERIC_RELOC_PB_LA_PTR", Const, 10, ""},
+		{"GENERIC_RELOC_SECTDIFF", Const, 10, ""},
+		{"GENERIC_RELOC_TLV", Const, 10, ""},
+		{"GENERIC_RELOC_VANILLA", Const, 10, ""},
+		{"Load", Type, 0, ""},
+		{"LoadBytes", Type, 0, ""},
+		{"LoadCmd", Type, 0, ""},
+		{"LoadCmdDylib", Const, 0, ""},
+		{"LoadCmdDylinker", Const, 0, ""},
+		{"LoadCmdDysymtab", Const, 0, ""},
+		{"LoadCmdRpath", Const, 10, ""},
+		{"LoadCmdSegment", Const, 0, ""},
+		{"LoadCmdSegment64", Const, 0, ""},
+		{"LoadCmdSymtab", Const, 0, ""},
+		{"LoadCmdThread", Const, 0, ""},
+		{"LoadCmdUnixThread", Const, 0, ""},
+		{"Magic32", Const, 0, ""},
+		{"Magic64", Const, 0, ""},
+		{"MagicFat", Const, 3, ""},
+		{"NewFatFile", Func, 3, "func(r io.ReaderAt) (*FatFile, error)"},
+		{"NewFile", Func, 0, "func(r io.ReaderAt) (*File, error)"},
+		{"Nlist32", Type, 0, ""},
+		{"Nlist32.Desc", Field, 0, ""},
+		{"Nlist32.Name", Field, 0, ""},
+		{"Nlist32.Sect", Field, 0, ""},
+		{"Nlist32.Type", Field, 0, ""},
+		{"Nlist32.Value", Field, 0, ""},
+		{"Nlist64", Type, 0, ""},
+		{"Nlist64.Desc", Field, 0, ""},
+		{"Nlist64.Name", Field, 0, ""},
+		{"Nlist64.Sect", Field, 0, ""},
+		{"Nlist64.Type", Field, 0, ""},
+		{"Nlist64.Value", Field, 0, ""},
+		{"Open", Func, 0, "func(name string) (*File, error)"},
+		{"OpenFat", Func, 3, "func(name string) (*FatFile, error)"},
+		{"Regs386", Type, 0, ""},
+		{"Regs386.AX", Field, 0, ""},
+		{"Regs386.BP", Field, 0, ""},
+		{"Regs386.BX", Field, 0, ""},
+		{"Regs386.CS", Field, 0, ""},
+		{"Regs386.CX", Field, 0, ""},
+		{"Regs386.DI", Field, 0, ""},
+		{"Regs386.DS", Field, 0, ""},
+		{"Regs386.DX", Field, 0, ""},
+		{"Regs386.ES", Field, 0, ""},
+		{"Regs386.FLAGS", Field, 0, ""},
+		{"Regs386.FS", Field, 0, ""},
+		{"Regs386.GS", Field, 0, ""},
+		{"Regs386.IP", Field, 0, ""},
+		{"Regs386.SI", Field, 0, ""},
+		{"Regs386.SP", Field, 0, ""},
+		{"Regs386.SS", Field, 0, ""},
+		{"RegsAMD64", Type, 0, ""},
+		{"RegsAMD64.AX", Field, 0, ""},
+		{"RegsAMD64.BP", Field, 0, ""},
+		{"RegsAMD64.BX", Field, 0, ""},
+		{"RegsAMD64.CS", Field, 0, ""},
+		{"RegsAMD64.CX", Field, 0, ""},
+		{"RegsAMD64.DI", Field, 0, ""},
+		{"RegsAMD64.DX", Field, 0, ""},
+		{"RegsAMD64.FLAGS", Field, 0, ""},
+		{"RegsAMD64.FS", Field, 0, ""},
+		{"RegsAMD64.GS", Field, 0, ""},
+		{"RegsAMD64.IP", Field, 0, ""},
+		{"RegsAMD64.R10", Field, 0, ""},
+		{"RegsAMD64.R11", Field, 0, ""},
+		{"RegsAMD64.R12", Field, 0, ""},
+		{"RegsAMD64.R13", Field, 0, ""},
+		{"RegsAMD64.R14", Field, 0, ""},
+		{"RegsAMD64.R15", Field, 0, ""},
+		{"RegsAMD64.R8", Field, 0, ""},
+		{"RegsAMD64.R9", Field, 0, ""},
+		{"RegsAMD64.SI", Field, 0, ""},
+		{"RegsAMD64.SP", Field, 0, ""},
+		{"Reloc", Type, 10, ""},
+		{"Reloc.Addr", Field, 10, ""},
+		{"Reloc.Extern", Field, 10, ""},
+		{"Reloc.Len", Field, 10, ""},
+		{"Reloc.Pcrel", Field, 10, ""},
+		{"Reloc.Scattered", Field, 10, ""},
+		{"Reloc.Type", Field, 10, ""},
+		{"Reloc.Value", Field, 10, ""},
+		{"RelocTypeARM", Type, 10, ""},
+		{"RelocTypeARM64", Type, 10, ""},
+		{"RelocTypeGeneric", Type, 10, ""},
+		{"RelocTypeX86_64", Type, 10, ""},
+		{"Rpath", Type, 10, ""},
+		{"Rpath.LoadBytes", Field, 10, ""},
+		{"Rpath.Path", Field, 10, ""},
+		{"RpathCmd", Type, 10, ""},
+		{"RpathCmd.Cmd", Field, 10, ""},
+		{"RpathCmd.Len", Field, 10, ""},
+		{"RpathCmd.Path", Field, 10, ""},
+		{"Section", Type, 0, ""},
+		{"Section.ReaderAt", Field, 0, ""},
+		{"Section.Relocs", Field, 10, ""},
+		{"Section.SectionHeader", Field, 0, ""},
+		{"Section32", Type, 0, ""},
+		{"Section32.Addr", Field, 0, ""},
+		{"Section32.Align", Field, 0, ""},
+		{"Section32.Flags", Field, 0, ""},
+		{"Section32.Name", Field, 0, ""},
+		{"Section32.Nreloc", Field, 0, ""},
+		{"Section32.Offset", Field, 0, ""},
+		{"Section32.Reloff", Field, 0, ""},
+		{"Section32.Reserve1", Field, 0, ""},
+		{"Section32.Reserve2", Field, 0, ""},
+		{"Section32.Seg", Field, 0, ""},
+		{"Section32.Size", Field, 0, ""},
+		{"Section64", Type, 0, ""},
+		{"Section64.Addr", Field, 0, ""},
+		{"Section64.Align", Field, 0, ""},
+		{"Section64.Flags", Field, 0, ""},
+		{"Section64.Name", Field, 0, ""},
+		{"Section64.Nreloc", Field, 0, ""},
+		{"Section64.Offset", Field, 0, ""},
+		{"Section64.Reloff", Field, 0, ""},
+		{"Section64.Reserve1", Field, 0, ""},
+		{"Section64.Reserve2", Field, 0, ""},
+		{"Section64.Reserve3", Field, 0, ""},
+		{"Section64.Seg", Field, 0, ""},
+		{"Section64.Size", Field, 0, ""},
+		{"SectionHeader", Type, 0, ""},
+		{"SectionHeader.Addr", Field, 0, ""},
+		{"SectionHeader.Align", Field, 0, ""},
+		{"SectionHeader.Flags", Field, 0, ""},
+		{"SectionHeader.Name", Field, 0, ""},
+		{"SectionHeader.Nreloc", Field, 0, ""},
+		{"SectionHeader.Offset", Field, 0, ""},
+		{"SectionHeader.Reloff", Field, 0, ""},
+		{"SectionHeader.Seg", Field, 0, ""},
+		{"SectionHeader.Size", Field, 0, ""},
+		{"Segment", Type, 0, ""},
+		{"Segment.LoadBytes", Field, 0, ""},
+		{"Segment.ReaderAt", Field, 0, ""},
+		{"Segment.SegmentHeader", Field, 0, ""},
+		{"Segment32", Type, 0, ""},
+		{"Segment32.Addr", Field, 0, ""},
+		{"Segment32.Cmd", Field, 0, ""},
+		{"Segment32.Filesz", Field, 0, ""},
+		{"Segment32.Flag", Field, 0, ""},
+		{"Segment32.Len", Field, 0, ""},
+		{"Segment32.Maxprot", Field, 0, ""},
+		{"Segment32.Memsz", Field, 0, ""},
+		{"Segment32.Name", Field, 0, ""},
+		{"Segment32.Nsect", Field, 0, ""},
+		{"Segment32.Offset", Field, 0, ""},
+		{"Segment32.Prot", Field, 0, ""},
+		{"Segment64", Type, 0, ""},
+		{"Segment64.Addr", Field, 0, ""},
+		{"Segment64.Cmd", Field, 0, ""},
+		{"Segment64.Filesz", Field, 0, ""},
+		{"Segment64.Flag", Field, 0, ""},
+		{"Segment64.Len", Field, 0, ""},
+		{"Segment64.Maxprot", Field, 0, ""},
+		{"Segment64.Memsz", Field, 0, ""},
+		{"Segment64.Name", Field, 0, ""},
+		{"Segment64.Nsect", Field, 0, ""},
+		{"Segment64.Offset", Field, 0, ""},
+		{"Segment64.Prot", Field, 0, ""},
+		{"SegmentHeader", Type, 0, ""},
+		{"SegmentHeader.Addr", Field, 0, ""},
+		{"SegmentHeader.Cmd", Field, 0, ""},
+		{"SegmentHeader.Filesz", Field, 0, ""},
+		{"SegmentHeader.Flag", Field, 0, ""},
+		{"SegmentHeader.Len", Field, 0, ""},
+		{"SegmentHeader.Maxprot", Field, 0, ""},
+		{"SegmentHeader.Memsz", Field, 0, ""},
+		{"SegmentHeader.Name", Field, 0, ""},
+		{"SegmentHeader.Nsect", Field, 0, ""},
+		{"SegmentHeader.Offset", Field, 0, ""},
+		{"SegmentHeader.Prot", Field, 0, ""},
+		{"Symbol", Type, 0, ""},
+		{"Symbol.Desc", Field, 0, ""},
+		{"Symbol.Name", Field, 0, ""},
+		{"Symbol.Sect", Field, 0, ""},
+		{"Symbol.Type", Field, 0, ""},
+		{"Symbol.Value", Field, 0, ""},
+		{"Symtab", Type, 0, ""},
+		{"Symtab.LoadBytes", Field, 0, ""},
+		{"Symtab.Syms", Field, 0, ""},
+		{"Symtab.SymtabCmd", Field, 0, ""},
+		{"SymtabCmd", Type, 0, ""},
+		{"SymtabCmd.Cmd", Field, 0, ""},
+		{"SymtabCmd.Len", Field, 0, ""},
+		{"SymtabCmd.Nsyms", Field, 0, ""},
+		{"SymtabCmd.Stroff", Field, 0, ""},
+		{"SymtabCmd.Strsize", Field, 0, ""},
+		{"SymtabCmd.Symoff", Field, 0, ""},
+		{"Thread", Type, 0, ""},
+		{"Thread.Cmd", Field, 0, ""},
+		{"Thread.Data", Field, 0, ""},
+		{"Thread.Len", Field, 0, ""},
+		{"Thread.Type", Field, 0, ""},
+		{"Type", Type, 0, ""},
+		{"TypeBundle", Const, 3, ""},
+		{"TypeDylib", Const, 3, ""},
+		{"TypeExec", Const, 0, ""},
+		{"TypeObj", Const, 0, ""},
+		{"X86_64_RELOC_BRANCH", Const, 10, ""},
+		{"X86_64_RELOC_GOT", Const, 10, ""},
+		{"X86_64_RELOC_GOT_LOAD", Const, 10, ""},
+		{"X86_64_RELOC_SIGNED", Const, 10, ""},
+		{"X86_64_RELOC_SIGNED_1", Const, 10, ""},
+		{"X86_64_RELOC_SIGNED_2", Const, 10, ""},
+		{"X86_64_RELOC_SIGNED_4", Const, 10, ""},
+		{"X86_64_RELOC_SUBTRACTOR", Const, 10, ""},
+		{"X86_64_RELOC_TLV", Const, 10, ""},
+		{"X86_64_RELOC_UNSIGNED", Const, 10, ""},
 	},
 	"debug/pe": {
-		{"(*COFFSymbol).FullName", Method, 8},
-		{"(*File).COFFSymbolReadSectionDefAux", Method, 19},
-		{"(*File).Close", Method, 0},
-		{"(*File).DWARF", Method, 0},
-		{"(*File).ImportedLibraries", Method, 0},
-		{"(*File).ImportedSymbols", Method, 0},
-		{"(*File).Section", Method, 0},
-		{"(*FormatError).Error", Method, 0},
-		{"(*Section).Data", Method, 0},
-		{"(*Section).Open", Method, 0},
-		{"(Section).ReadAt", Method, 0},
-		{"(StringTable).String", Method, 8},
-		{"COFFSymbol", Type, 1},
-		{"COFFSymbol.Name", Field, 1},
-		{"COFFSymbol.NumberOfAuxSymbols", Field, 1},
-		{"COFFSymbol.SectionNumber", Field, 1},
-		{"COFFSymbol.StorageClass", Field, 1},
-		{"COFFSymbol.Type", Field, 1},
-		{"COFFSymbol.Value", Field, 1},
-		{"COFFSymbolAuxFormat5", Type, 19},
-		{"COFFSymbolAuxFormat5.Checksum", Field, 19},
-		{"COFFSymbolAuxFormat5.NumLineNumbers", Field, 19},
-		{"COFFSymbolAuxFormat5.NumRelocs", Field, 19},
-		{"COFFSymbolAuxFormat5.SecNum", Field, 19},
-		{"COFFSymbolAuxFormat5.Selection", Field, 19},
-		{"COFFSymbolAuxFormat5.Size", Field, 19},
-		{"COFFSymbolSize", Const, 1},
-		{"DataDirectory", Type, 3},
-		{"DataDirectory.Size", Field, 3},
-		{"DataDirectory.VirtualAddress", Field, 3},
-		{"File", Type, 0},
-		{"File.COFFSymbols", Field, 8},
-		{"File.FileHeader", Field, 0},
-		{"File.OptionalHeader", Field, 3},
-		{"File.Sections", Field, 0},
-		{"File.StringTable", Field, 8},
-		{"File.Symbols", Field, 1},
-		{"FileHeader", Type, 0},
-		{"FileHeader.Characteristics", Field, 0},
-		{"FileHeader.Machine", Field, 0},
-		{"FileHeader.NumberOfSections", Field, 0},
-		{"FileHeader.NumberOfSymbols", Field, 0},
-		{"FileHeader.PointerToSymbolTable", Field, 0},
-		{"FileHeader.SizeOfOptionalHeader", Field, 0},
-		{"FileHeader.TimeDateStamp", Field, 0},
-		{"FormatError", Type, 0},
-		{"IMAGE_COMDAT_SELECT_ANY", Const, 19},
-		{"IMAGE_COMDAT_SELECT_ASSOCIATIVE", Const, 19},
-		{"IMAGE_COMDAT_SELECT_EXACT_MATCH", Const, 19},
-		{"IMAGE_COMDAT_SELECT_LARGEST", Const, 19},
-		{"IMAGE_COMDAT_SELECT_NODUPLICATES", Const, 19},
-		{"IMAGE_COMDAT_SELECT_SAME_SIZE", Const, 19},
-		{"IMAGE_DIRECTORY_ENTRY_ARCHITECTURE", Const, 11},
-		{"IMAGE_DIRECTORY_ENTRY_BASERELOC", Const, 11},
-		{"IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT", Const, 11},
-		{"IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR", Const, 11},
-		{"IMAGE_DIRECTORY_ENTRY_DEBUG", Const, 11},
-		{"IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT", Const, 11},
-		{"IMAGE_DIRECTORY_ENTRY_EXCEPTION", Const, 11},
-		{"IMAGE_DIRECTORY_ENTRY_EXPORT", Const, 11},
-		{"IMAGE_DIRECTORY_ENTRY_GLOBALPTR", Const, 11},
-		{"IMAGE_DIRECTORY_ENTRY_IAT", Const, 11},
-		{"IMAGE_DIRECTORY_ENTRY_IMPORT", Const, 11},
-		{"IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG", Const, 11},
-		{"IMAGE_DIRECTORY_ENTRY_RESOURCE", Const, 11},
-		{"IMAGE_DIRECTORY_ENTRY_SECURITY", Const, 11},
-		{"IMAGE_DIRECTORY_ENTRY_TLS", Const, 11},
-		{"IMAGE_DLLCHARACTERISTICS_APPCONTAINER", Const, 15},
-		{"IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE", Const, 15},
-		{"IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY", Const, 15},
-		{"IMAGE_DLLCHARACTERISTICS_GUARD_CF", Const, 15},
-		{"IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA", Const, 15},
-		{"IMAGE_DLLCHARACTERISTICS_NO_BIND", Const, 15},
-		{"IMAGE_DLLCHARACTERISTICS_NO_ISOLATION", Const, 15},
-		{"IMAGE_DLLCHARACTERISTICS_NO_SEH", Const, 15},
-		{"IMAGE_DLLCHARACTERISTICS_NX_COMPAT", Const, 15},
-		{"IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE", Const, 15},
-		{"IMAGE_DLLCHARACTERISTICS_WDM_DRIVER", Const, 15},
-		{"IMAGE_FILE_32BIT_MACHINE", Const, 15},
-		{"IMAGE_FILE_AGGRESIVE_WS_TRIM", Const, 15},
-		{"IMAGE_FILE_BYTES_REVERSED_HI", Const, 15},
-		{"IMAGE_FILE_BYTES_REVERSED_LO", Const, 15},
-		{"IMAGE_FILE_DEBUG_STRIPPED", Const, 15},
-		{"IMAGE_FILE_DLL", Const, 15},
-		{"IMAGE_FILE_EXECUTABLE_IMAGE", Const, 15},
-		{"IMAGE_FILE_LARGE_ADDRESS_AWARE", Const, 15},
-		{"IMAGE_FILE_LINE_NUMS_STRIPPED", Const, 15},
-		{"IMAGE_FILE_LOCAL_SYMS_STRIPPED", Const, 15},
-		{"IMAGE_FILE_MACHINE_AM33", Const, 0},
-		{"IMAGE_FILE_MACHINE_AMD64", Const, 0},
-		{"IMAGE_FILE_MACHINE_ARM", Const, 0},
-		{"IMAGE_FILE_MACHINE_ARM64", Const, 11},
-		{"IMAGE_FILE_MACHINE_ARMNT", Const, 12},
-		{"IMAGE_FILE_MACHINE_EBC", Const, 0},
-		{"IMAGE_FILE_MACHINE_I386", Const, 0},
-		{"IMAGE_FILE_MACHINE_IA64", Const, 0},
-		{"IMAGE_FILE_MACHINE_LOONGARCH32", Const, 19},
-		{"IMAGE_FILE_MACHINE_LOONGARCH64", Const, 19},
-		{"IMAGE_FILE_MACHINE_M32R", Const, 0},
-		{"IMAGE_FILE_MACHINE_MIPS16", Const, 0},
-		{"IMAGE_FILE_MACHINE_MIPSFPU", Const, 0},
-		{"IMAGE_FILE_MACHINE_MIPSFPU16", Const, 0},
-		{"IMAGE_FILE_MACHINE_POWERPC", Const, 0},
-		{"IMAGE_FILE_MACHINE_POWERPCFP", Const, 0},
-		{"IMAGE_FILE_MACHINE_R4000", Const, 0},
-		{"IMAGE_FILE_MACHINE_RISCV128", Const, 20},
-		{"IMAGE_FILE_MACHINE_RISCV32", Const, 20},
-		{"IMAGE_FILE_MACHINE_RISCV64", Const, 20},
-		{"IMAGE_FILE_MACHINE_SH3", Const, 0},
-		{"IMAGE_FILE_MACHINE_SH3DSP", Const, 0},
-		{"IMAGE_FILE_MACHINE_SH4", Const, 0},
-		{"IMAGE_FILE_MACHINE_SH5", Const, 0},
-		{"IMAGE_FILE_MACHINE_THUMB", Const, 0},
-		{"IMAGE_FILE_MACHINE_UNKNOWN", Const, 0},
-		{"IMAGE_FILE_MACHINE_WCEMIPSV2", Const, 0},
-		{"IMAGE_FILE_NET_RUN_FROM_SWAP", Const, 15},
-		{"IMAGE_FILE_RELOCS_STRIPPED", Const, 15},
-		{"IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP", Const, 15},
-		{"IMAGE_FILE_SYSTEM", Const, 15},
-		{"IMAGE_FILE_UP_SYSTEM_ONLY", Const, 15},
-		{"IMAGE_SCN_CNT_CODE", Const, 19},
-		{"IMAGE_SCN_CNT_INITIALIZED_DATA", Const, 19},
-		{"IMAGE_SCN_CNT_UNINITIALIZED_DATA", Const, 19},
-		{"IMAGE_SCN_LNK_COMDAT", Const, 19},
-		{"IMAGE_SCN_MEM_DISCARDABLE", Const, 19},
-		{"IMAGE_SCN_MEM_EXECUTE", Const, 19},
-		{"IMAGE_SCN_MEM_READ", Const, 19},
-		{"IMAGE_SCN_MEM_WRITE", Const, 19},
-		{"IMAGE_SUBSYSTEM_EFI_APPLICATION", Const, 15},
-		{"IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER", Const, 15},
-		{"IMAGE_SUBSYSTEM_EFI_ROM", Const, 15},
-		{"IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER", Const, 15},
-		{"IMAGE_SUBSYSTEM_NATIVE", Const, 15},
-		{"IMAGE_SUBSYSTEM_NATIVE_WINDOWS", Const, 15},
-		{"IMAGE_SUBSYSTEM_OS2_CUI", Const, 15},
-		{"IMAGE_SUBSYSTEM_POSIX_CUI", Const, 15},
-		{"IMAGE_SUBSYSTEM_UNKNOWN", Const, 15},
-		{"IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION", Const, 15},
-		{"IMAGE_SUBSYSTEM_WINDOWS_CE_GUI", Const, 15},
-		{"IMAGE_SUBSYSTEM_WINDOWS_CUI", Const, 15},
-		{"IMAGE_SUBSYSTEM_WINDOWS_GUI", Const, 15},
-		{"IMAGE_SUBSYSTEM_XBOX", Const, 15},
-		{"ImportDirectory", Type, 0},
-		{"ImportDirectory.FirstThunk", Field, 0},
-		{"ImportDirectory.ForwarderChain", Field, 0},
-		{"ImportDirectory.Name", Field, 0},
-		{"ImportDirectory.OriginalFirstThunk", Field, 0},
-		{"ImportDirectory.TimeDateStamp", Field, 0},
-		{"NewFile", Func, 0},
-		{"Open", Func, 0},
-		{"OptionalHeader32", Type, 3},
-		{"OptionalHeader32.AddressOfEntryPoint", Field, 3},
-		{"OptionalHeader32.BaseOfCode", Field, 3},
-		{"OptionalHeader32.BaseOfData", Field, 3},
-		{"OptionalHeader32.CheckSum", Field, 3},
-		{"OptionalHeader32.DataDirectory", Field, 3},
-		{"OptionalHeader32.DllCharacteristics", Field, 3},
-		{"OptionalHeader32.FileAlignment", Field, 3},
-		{"OptionalHeader32.ImageBase", Field, 3},
-		{"OptionalHeader32.LoaderFlags", Field, 3},
-		{"OptionalHeader32.Magic", Field, 3},
-		{"OptionalHeader32.MajorImageVersion", Field, 3},
-		{"OptionalHeader32.MajorLinkerVersion", Field, 3},
-		{"OptionalHeader32.MajorOperatingSystemVersion", Field, 3},
-		{"OptionalHeader32.MajorSubsystemVersion", Field, 3},
-		{"OptionalHeader32.MinorImageVersion", Field, 3},
-		{"OptionalHeader32.MinorLinkerVersion", Field, 3},
-		{"OptionalHeader32.MinorOperatingSystemVersion", Field, 3},
-		{"OptionalHeader32.MinorSubsystemVersion", Field, 3},
-		{"OptionalHeader32.NumberOfRvaAndSizes", Field, 3},
-		{"OptionalHeader32.SectionAlignment", Field, 3},
-		{"OptionalHeader32.SizeOfCode", Field, 3},
-		{"OptionalHeader32.SizeOfHeaders", Field, 3},
-		{"OptionalHeader32.SizeOfHeapCommit", Field, 3},
-		{"OptionalHeader32.SizeOfHeapReserve", Field, 3},
-		{"OptionalHeader32.SizeOfImage", Field, 3},
-		{"OptionalHeader32.SizeOfInitializedData", Field, 3},
-		{"OptionalHeader32.SizeOfStackCommit", Field, 3},
-		{"OptionalHeader32.SizeOfStackReserve", Field, 3},
-		{"OptionalHeader32.SizeOfUninitializedData", Field, 3},
-		{"OptionalHeader32.Subsystem", Field, 3},
-		{"OptionalHeader32.Win32VersionValue", Field, 3},
-		{"OptionalHeader64", Type, 3},
-		{"OptionalHeader64.AddressOfEntryPoint", Field, 3},
-		{"OptionalHeader64.BaseOfCode", Field, 3},
-		{"OptionalHeader64.CheckSum", Field, 3},
-		{"OptionalHeader64.DataDirectory", Field, 3},
-		{"OptionalHeader64.DllCharacteristics", Field, 3},
-		{"OptionalHeader64.FileAlignment", Field, 3},
-		{"OptionalHeader64.ImageBase", Field, 3},
-		{"OptionalHeader64.LoaderFlags", Field, 3},
-		{"OptionalHeader64.Magic", Field, 3},
-		{"OptionalHeader64.MajorImageVersion", Field, 3},
-		{"OptionalHeader64.MajorLinkerVersion", Field, 3},
-		{"OptionalHeader64.MajorOperatingSystemVersion", Field, 3},
-		{"OptionalHeader64.MajorSubsystemVersion", Field, 3},
-		{"OptionalHeader64.MinorImageVersion", Field, 3},
-		{"OptionalHeader64.MinorLinkerVersion", Field, 3},
-		{"OptionalHeader64.MinorOperatingSystemVersion", Field, 3},
-		{"OptionalHeader64.MinorSubsystemVersion", Field, 3},
-		{"OptionalHeader64.NumberOfRvaAndSizes", Field, 3},
-		{"OptionalHeader64.SectionAlignment", Field, 3},
-		{"OptionalHeader64.SizeOfCode", Field, 3},
-		{"OptionalHeader64.SizeOfHeaders", Field, 3},
-		{"OptionalHeader64.SizeOfHeapCommit", Field, 3},
-		{"OptionalHeader64.SizeOfHeapReserve", Field, 3},
-		{"OptionalHeader64.SizeOfImage", Field, 3},
-		{"OptionalHeader64.SizeOfInitializedData", Field, 3},
-		{"OptionalHeader64.SizeOfStackCommit", Field, 3},
-		{"OptionalHeader64.SizeOfStackReserve", Field, 3},
-		{"OptionalHeader64.SizeOfUninitializedData", Field, 3},
-		{"OptionalHeader64.Subsystem", Field, 3},
-		{"OptionalHeader64.Win32VersionValue", Field, 3},
-		{"Reloc", Type, 8},
-		{"Reloc.SymbolTableIndex", Field, 8},
-		{"Reloc.Type", Field, 8},
-		{"Reloc.VirtualAddress", Field, 8},
-		{"Section", Type, 0},
-		{"Section.ReaderAt", Field, 0},
-		{"Section.Relocs", Field, 8},
-		{"Section.SectionHeader", Field, 0},
-		{"SectionHeader", Type, 0},
-		{"SectionHeader.Characteristics", Field, 0},
-		{"SectionHeader.Name", Field, 0},
-		{"SectionHeader.NumberOfLineNumbers", Field, 0},
-		{"SectionHeader.NumberOfRelocations", Field, 0},
-		{"SectionHeader.Offset", Field, 0},
-		{"SectionHeader.PointerToLineNumbers", Field, 0},
-		{"SectionHeader.PointerToRelocations", Field, 0},
-		{"SectionHeader.Size", Field, 0},
-		{"SectionHeader.VirtualAddress", Field, 0},
-		{"SectionHeader.VirtualSize", Field, 0},
-		{"SectionHeader32", Type, 0},
-		{"SectionHeader32.Characteristics", Field, 0},
-		{"SectionHeader32.Name", Field, 0},
-		{"SectionHeader32.NumberOfLineNumbers", Field, 0},
-		{"SectionHeader32.NumberOfRelocations", Field, 0},
-		{"SectionHeader32.PointerToLineNumbers", Field, 0},
-		{"SectionHeader32.PointerToRawData", Field, 0},
-		{"SectionHeader32.PointerToRelocations", Field, 0},
-		{"SectionHeader32.SizeOfRawData", Field, 0},
-		{"SectionHeader32.VirtualAddress", Field, 0},
-		{"SectionHeader32.VirtualSize", Field, 0},
-		{"StringTable", Type, 8},
-		{"Symbol", Type, 1},
-		{"Symbol.Name", Field, 1},
-		{"Symbol.SectionNumber", Field, 1},
-		{"Symbol.StorageClass", Field, 1},
-		{"Symbol.Type", Field, 1},
-		{"Symbol.Value", Field, 1},
+		{"(*COFFSymbol).FullName", Method, 8, ""},
+		{"(*File).COFFSymbolReadSectionDefAux", Method, 19, ""},
+		{"(*File).Close", Method, 0, ""},
+		{"(*File).DWARF", Method, 0, ""},
+		{"(*File).ImportedLibraries", Method, 0, ""},
+		{"(*File).ImportedSymbols", Method, 0, ""},
+		{"(*File).Section", Method, 0, ""},
+		{"(*FormatError).Error", Method, 0, ""},
+		{"(*Section).Data", Method, 0, ""},
+		{"(*Section).Open", Method, 0, ""},
+		{"(Section).ReadAt", Method, 0, ""},
+		{"(StringTable).String", Method, 8, ""},
+		{"COFFSymbol", Type, 1, ""},
+		{"COFFSymbol.Name", Field, 1, ""},
+		{"COFFSymbol.NumberOfAuxSymbols", Field, 1, ""},
+		{"COFFSymbol.SectionNumber", Field, 1, ""},
+		{"COFFSymbol.StorageClass", Field, 1, ""},
+		{"COFFSymbol.Type", Field, 1, ""},
+		{"COFFSymbol.Value", Field, 1, ""},
+		{"COFFSymbolAuxFormat5", Type, 19, ""},
+		{"COFFSymbolAuxFormat5.Checksum", Field, 19, ""},
+		{"COFFSymbolAuxFormat5.NumLineNumbers", Field, 19, ""},
+		{"COFFSymbolAuxFormat5.NumRelocs", Field, 19, ""},
+		{"COFFSymbolAuxFormat5.SecNum", Field, 19, ""},
+		{"COFFSymbolAuxFormat5.Selection", Field, 19, ""},
+		{"COFFSymbolAuxFormat5.Size", Field, 19, ""},
+		{"COFFSymbolSize", Const, 1, ""},
+		{"DataDirectory", Type, 3, ""},
+		{"DataDirectory.Size", Field, 3, ""},
+		{"DataDirectory.VirtualAddress", Field, 3, ""},
+		{"File", Type, 0, ""},
+		{"File.COFFSymbols", Field, 8, ""},
+		{"File.FileHeader", Field, 0, ""},
+		{"File.OptionalHeader", Field, 3, ""},
+		{"File.Sections", Field, 0, ""},
+		{"File.StringTable", Field, 8, ""},
+		{"File.Symbols", Field, 1, ""},
+		{"FileHeader", Type, 0, ""},
+		{"FileHeader.Characteristics", Field, 0, ""},
+		{"FileHeader.Machine", Field, 0, ""},
+		{"FileHeader.NumberOfSections", Field, 0, ""},
+		{"FileHeader.NumberOfSymbols", Field, 0, ""},
+		{"FileHeader.PointerToSymbolTable", Field, 0, ""},
+		{"FileHeader.SizeOfOptionalHeader", Field, 0, ""},
+		{"FileHeader.TimeDateStamp", Field, 0, ""},
+		{"FormatError", Type, 0, ""},
+		{"IMAGE_COMDAT_SELECT_ANY", Const, 19, ""},
+		{"IMAGE_COMDAT_SELECT_ASSOCIATIVE", Const, 19, ""},
+		{"IMAGE_COMDAT_SELECT_EXACT_MATCH", Const, 19, ""},
+		{"IMAGE_COMDAT_SELECT_LARGEST", Const, 19, ""},
+		{"IMAGE_COMDAT_SELECT_NODUPLICATES", Const, 19, ""},
+		{"IMAGE_COMDAT_SELECT_SAME_SIZE", Const, 19, ""},
+		{"IMAGE_DIRECTORY_ENTRY_ARCHITECTURE", Const, 11, ""},
+		{"IMAGE_DIRECTORY_ENTRY_BASERELOC", Const, 11, ""},
+		{"IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT", Const, 11, ""},
+		{"IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR", Const, 11, ""},
+		{"IMAGE_DIRECTORY_ENTRY_DEBUG", Const, 11, ""},
+		{"IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT", Const, 11, ""},
+		{"IMAGE_DIRECTORY_ENTRY_EXCEPTION", Const, 11, ""},
+		{"IMAGE_DIRECTORY_ENTRY_EXPORT", Const, 11, ""},
+		{"IMAGE_DIRECTORY_ENTRY_GLOBALPTR", Const, 11, ""},
+		{"IMAGE_DIRECTORY_ENTRY_IAT", Const, 11, ""},
+		{"IMAGE_DIRECTORY_ENTRY_IMPORT", Const, 11, ""},
+		{"IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG", Const, 11, ""},
+		{"IMAGE_DIRECTORY_ENTRY_RESOURCE", Const, 11, ""},
+		{"IMAGE_DIRECTORY_ENTRY_SECURITY", Const, 11, ""},
+		{"IMAGE_DIRECTORY_ENTRY_TLS", Const, 11, ""},
+		{"IMAGE_DLLCHARACTERISTICS_APPCONTAINER", Const, 15, ""},
+		{"IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE", Const, 15, ""},
+		{"IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY", Const, 15, ""},
+		{"IMAGE_DLLCHARACTERISTICS_GUARD_CF", Const, 15, ""},
+		{"IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA", Const, 15, ""},
+		{"IMAGE_DLLCHARACTERISTICS_NO_BIND", Const, 15, ""},
+		{"IMAGE_DLLCHARACTERISTICS_NO_ISOLATION", Const, 15, ""},
+		{"IMAGE_DLLCHARACTERISTICS_NO_SEH", Const, 15, ""},
+		{"IMAGE_DLLCHARACTERISTICS_NX_COMPAT", Const, 15, ""},
+		{"IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE", Const, 15, ""},
+		{"IMAGE_DLLCHARACTERISTICS_WDM_DRIVER", Const, 15, ""},
+		{"IMAGE_FILE_32BIT_MACHINE", Const, 15, ""},
+		{"IMAGE_FILE_AGGRESIVE_WS_TRIM", Const, 15, ""},
+		{"IMAGE_FILE_BYTES_REVERSED_HI", Const, 15, ""},
+		{"IMAGE_FILE_BYTES_REVERSED_LO", Const, 15, ""},
+		{"IMAGE_FILE_DEBUG_STRIPPED", Const, 15, ""},
+		{"IMAGE_FILE_DLL", Const, 15, ""},
+		{"IMAGE_FILE_EXECUTABLE_IMAGE", Const, 15, ""},
+		{"IMAGE_FILE_LARGE_ADDRESS_AWARE", Const, 15, ""},
+		{"IMAGE_FILE_LINE_NUMS_STRIPPED", Const, 15, ""},
+		{"IMAGE_FILE_LOCAL_SYMS_STRIPPED", Const, 15, ""},
+		{"IMAGE_FILE_MACHINE_AM33", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_AMD64", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_ARM", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_ARM64", Const, 11, ""},
+		{"IMAGE_FILE_MACHINE_ARMNT", Const, 12, ""},
+		{"IMAGE_FILE_MACHINE_EBC", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_I386", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_IA64", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_LOONGARCH32", Const, 19, ""},
+		{"IMAGE_FILE_MACHINE_LOONGARCH64", Const, 19, ""},
+		{"IMAGE_FILE_MACHINE_M32R", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_MIPS16", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_MIPSFPU", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_MIPSFPU16", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_POWERPC", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_POWERPCFP", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_R4000", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_RISCV128", Const, 20, ""},
+		{"IMAGE_FILE_MACHINE_RISCV32", Const, 20, ""},
+		{"IMAGE_FILE_MACHINE_RISCV64", Const, 20, ""},
+		{"IMAGE_FILE_MACHINE_SH3", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_SH3DSP", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_SH4", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_SH5", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_THUMB", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_UNKNOWN", Const, 0, ""},
+		{"IMAGE_FILE_MACHINE_WCEMIPSV2", Const, 0, ""},
+		{"IMAGE_FILE_NET_RUN_FROM_SWAP", Const, 15, ""},
+		{"IMAGE_FILE_RELOCS_STRIPPED", Const, 15, ""},
+		{"IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP", Const, 15, ""},
+		{"IMAGE_FILE_SYSTEM", Const, 15, ""},
+		{"IMAGE_FILE_UP_SYSTEM_ONLY", Const, 15, ""},
+		{"IMAGE_SCN_CNT_CODE", Const, 19, ""},
+		{"IMAGE_SCN_CNT_INITIALIZED_DATA", Const, 19, ""},
+		{"IMAGE_SCN_CNT_UNINITIALIZED_DATA", Const, 19, ""},
+		{"IMAGE_SCN_LNK_COMDAT", Const, 19, ""},
+		{"IMAGE_SCN_MEM_DISCARDABLE", Const, 19, ""},
+		{"IMAGE_SCN_MEM_EXECUTE", Const, 19, ""},
+		{"IMAGE_SCN_MEM_READ", Const, 19, ""},
+		{"IMAGE_SCN_MEM_WRITE", Const, 19, ""},
+		{"IMAGE_SUBSYSTEM_EFI_APPLICATION", Const, 15, ""},
+		{"IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER", Const, 15, ""},
+		{"IMAGE_SUBSYSTEM_EFI_ROM", Const, 15, ""},
+		{"IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER", Const, 15, ""},
+		{"IMAGE_SUBSYSTEM_NATIVE", Const, 15, ""},
+		{"IMAGE_SUBSYSTEM_NATIVE_WINDOWS", Const, 15, ""},
+		{"IMAGE_SUBSYSTEM_OS2_CUI", Const, 15, ""},
+		{"IMAGE_SUBSYSTEM_POSIX_CUI", Const, 15, ""},
+		{"IMAGE_SUBSYSTEM_UNKNOWN", Const, 15, ""},
+		{"IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION", Const, 15, ""},
+		{"IMAGE_SUBSYSTEM_WINDOWS_CE_GUI", Const, 15, ""},
+		{"IMAGE_SUBSYSTEM_WINDOWS_CUI", Const, 15, ""},
+		{"IMAGE_SUBSYSTEM_WINDOWS_GUI", Const, 15, ""},
+		{"IMAGE_SUBSYSTEM_XBOX", Const, 15, ""},
+		{"ImportDirectory", Type, 0, ""},
+		{"ImportDirectory.FirstThunk", Field, 0, ""},
+		{"ImportDirectory.ForwarderChain", Field, 0, ""},
+		{"ImportDirectory.Name", Field, 0, ""},
+		{"ImportDirectory.OriginalFirstThunk", Field, 0, ""},
+		{"ImportDirectory.TimeDateStamp", Field, 0, ""},
+		{"NewFile", Func, 0, "func(r io.ReaderAt) (*File, error)"},
+		{"Open", Func, 0, "func(name string) (*File, error)"},
+		{"OptionalHeader32", Type, 3, ""},
+		{"OptionalHeader32.AddressOfEntryPoint", Field, 3, ""},
+		{"OptionalHeader32.BaseOfCode", Field, 3, ""},
+		{"OptionalHeader32.BaseOfData", Field, 3, ""},
+		{"OptionalHeader32.CheckSum", Field, 3, ""},
+		{"OptionalHeader32.DataDirectory", Field, 3, ""},
+		{"OptionalHeader32.DllCharacteristics", Field, 3, ""},
+		{"OptionalHeader32.FileAlignment", Field, 3, ""},
+		{"OptionalHeader32.ImageBase", Field, 3, ""},
+		{"OptionalHeader32.LoaderFlags", Field, 3, ""},
+		{"OptionalHeader32.Magic", Field, 3, ""},
+		{"OptionalHeader32.MajorImageVersion", Field, 3, ""},
+		{"OptionalHeader32.MajorLinkerVersion", Field, 3, ""},
+		{"OptionalHeader32.MajorOperatingSystemVersion", Field, 3, ""},
+		{"OptionalHeader32.MajorSubsystemVersion", Field, 3, ""},
+		{"OptionalHeader32.MinorImageVersion", Field, 3, ""},
+		{"OptionalHeader32.MinorLinkerVersion", Field, 3, ""},
+		{"OptionalHeader32.MinorOperatingSystemVersion", Field, 3, ""},
+		{"OptionalHeader32.MinorSubsystemVersion", Field, 3, ""},
+		{"OptionalHeader32.NumberOfRvaAndSizes", Field, 3, ""},
+		{"OptionalHeader32.SectionAlignment", Field, 3, ""},
+		{"OptionalHeader32.SizeOfCode", Field, 3, ""},
+		{"OptionalHeader32.SizeOfHeaders", Field, 3, ""},
+		{"OptionalHeader32.SizeOfHeapCommit", Field, 3, ""},
+		{"OptionalHeader32.SizeOfHeapReserve", Field, 3, ""},
+		{"OptionalHeader32.SizeOfImage", Field, 3, ""},
+		{"OptionalHeader32.SizeOfInitializedData", Field, 3, ""},
+		{"OptionalHeader32.SizeOfStackCommit", Field, 3, ""},
+		{"OptionalHeader32.SizeOfStackReserve", Field, 3, ""},
+		{"OptionalHeader32.SizeOfUninitializedData", Field, 3, ""},
+		{"OptionalHeader32.Subsystem", Field, 3, ""},
+		{"OptionalHeader32.Win32VersionValue", Field, 3, ""},
+		{"OptionalHeader64", Type, 3, ""},
+		{"OptionalHeader64.AddressOfEntryPoint", Field, 3, ""},
+		{"OptionalHeader64.BaseOfCode", Field, 3, ""},
+		{"OptionalHeader64.CheckSum", Field, 3, ""},
+		{"OptionalHeader64.DataDirectory", Field, 3, ""},
+		{"OptionalHeader64.DllCharacteristics", Field, 3, ""},
+		{"OptionalHeader64.FileAlignment", Field, 3, ""},
+		{"OptionalHeader64.ImageBase", Field, 3, ""},
+		{"OptionalHeader64.LoaderFlags", Field, 3, ""},
+		{"OptionalHeader64.Magic", Field, 3, ""},
+		{"OptionalHeader64.MajorImageVersion", Field, 3, ""},
+		{"OptionalHeader64.MajorLinkerVersion", Field, 3, ""},
+		{"OptionalHeader64.MajorOperatingSystemVersion", Field, 3, ""},
+		{"OptionalHeader64.MajorSubsystemVersion", Field, 3, ""},
+		{"OptionalHeader64.MinorImageVersion", Field, 3, ""},
+		{"OptionalHeader64.MinorLinkerVersion", Field, 3, ""},
+		{"OptionalHeader64.MinorOperatingSystemVersion", Field, 3, ""},
+		{"OptionalHeader64.MinorSubsystemVersion", Field, 3, ""},
+		{"OptionalHeader64.NumberOfRvaAndSizes", Field, 3, ""},
+		{"OptionalHeader64.SectionAlignment", Field, 3, ""},
+		{"OptionalHeader64.SizeOfCode", Field, 3, ""},
+		{"OptionalHeader64.SizeOfHeaders", Field, 3, ""},
+		{"OptionalHeader64.SizeOfHeapCommit", Field, 3, ""},
+		{"OptionalHeader64.SizeOfHeapReserve", Field, 3, ""},
+		{"OptionalHeader64.SizeOfImage", Field, 3, ""},
+		{"OptionalHeader64.SizeOfInitializedData", Field, 3, ""},
+		{"OptionalHeader64.SizeOfStackCommit", Field, 3, ""},
+		{"OptionalHeader64.SizeOfStackReserve", Field, 3, ""},
+		{"OptionalHeader64.SizeOfUninitializedData", Field, 3, ""},
+		{"OptionalHeader64.Subsystem", Field, 3, ""},
+		{"OptionalHeader64.Win32VersionValue", Field, 3, ""},
+		{"Reloc", Type, 8, ""},
+		{"Reloc.SymbolTableIndex", Field, 8, ""},
+		{"Reloc.Type", Field, 8, ""},
+		{"Reloc.VirtualAddress", Field, 8, ""},
+		{"Section", Type, 0, ""},
+		{"Section.ReaderAt", Field, 0, ""},
+		{"Section.Relocs", Field, 8, ""},
+		{"Section.SectionHeader", Field, 0, ""},
+		{"SectionHeader", Type, 0, ""},
+		{"SectionHeader.Characteristics", Field, 0, ""},
+		{"SectionHeader.Name", Field, 0, ""},
+		{"SectionHeader.NumberOfLineNumbers", Field, 0, ""},
+		{"SectionHeader.NumberOfRelocations", Field, 0, ""},
+		{"SectionHeader.Offset", Field, 0, ""},
+		{"SectionHeader.PointerToLineNumbers", Field, 0, ""},
+		{"SectionHeader.PointerToRelocations", Field, 0, ""},
+		{"SectionHeader.Size", Field, 0, ""},
+		{"SectionHeader.VirtualAddress", Field, 0, ""},
+		{"SectionHeader.VirtualSize", Field, 0, ""},
+		{"SectionHeader32", Type, 0, ""},
+		{"SectionHeader32.Characteristics", Field, 0, ""},
+		{"SectionHeader32.Name", Field, 0, ""},
+		{"SectionHeader32.NumberOfLineNumbers", Field, 0, ""},
+		{"SectionHeader32.NumberOfRelocations", Field, 0, ""},
+		{"SectionHeader32.PointerToLineNumbers", Field, 0, ""},
+		{"SectionHeader32.PointerToRawData", Field, 0, ""},
+		{"SectionHeader32.PointerToRelocations", Field, 0, ""},
+		{"SectionHeader32.SizeOfRawData", Field, 0, ""},
+		{"SectionHeader32.VirtualAddress", Field, 0, ""},
+		{"SectionHeader32.VirtualSize", Field, 0, ""},
+		{"StringTable", Type, 8, ""},
+		{"Symbol", Type, 1, ""},
+		{"Symbol.Name", Field, 1, ""},
+		{"Symbol.SectionNumber", Field, 1, ""},
+		{"Symbol.StorageClass", Field, 1, ""},
+		{"Symbol.Type", Field, 1, ""},
+		{"Symbol.Value", Field, 1, ""},
 	},
 	"debug/plan9obj": {
-		{"(*File).Close", Method, 3},
-		{"(*File).Section", Method, 3},
-		{"(*File).Symbols", Method, 3},
-		{"(*Section).Data", Method, 3},
-		{"(*Section).Open", Method, 3},
-		{"(Section).ReadAt", Method, 3},
-		{"ErrNoSymbols", Var, 18},
-		{"File", Type, 3},
-		{"File.FileHeader", Field, 3},
-		{"File.Sections", Field, 3},
-		{"FileHeader", Type, 3},
-		{"FileHeader.Bss", Field, 3},
-		{"FileHeader.Entry", Field, 3},
-		{"FileHeader.HdrSize", Field, 4},
-		{"FileHeader.LoadAddress", Field, 4},
-		{"FileHeader.Magic", Field, 3},
-		{"FileHeader.PtrSize", Field, 3},
-		{"Magic386", Const, 3},
-		{"Magic64", Const, 3},
-		{"MagicAMD64", Const, 3},
-		{"MagicARM", Const, 3},
-		{"NewFile", Func, 3},
-		{"Open", Func, 3},
-		{"Section", Type, 3},
-		{"Section.ReaderAt", Field, 3},
-		{"Section.SectionHeader", Field, 3},
-		{"SectionHeader", Type, 3},
-		{"SectionHeader.Name", Field, 3},
-		{"SectionHeader.Offset", Field, 3},
-		{"SectionHeader.Size", Field, 3},
-		{"Sym", Type, 3},
-		{"Sym.Name", Field, 3},
-		{"Sym.Type", Field, 3},
-		{"Sym.Value", Field, 3},
+		{"(*File).Close", Method, 3, ""},
+		{"(*File).Section", Method, 3, ""},
+		{"(*File).Symbols", Method, 3, ""},
+		{"(*Section).Data", Method, 3, ""},
+		{"(*Section).Open", Method, 3, ""},
+		{"(Section).ReadAt", Method, 3, ""},
+		{"ErrNoSymbols", Var, 18, ""},
+		{"File", Type, 3, ""},
+		{"File.FileHeader", Field, 3, ""},
+		{"File.Sections", Field, 3, ""},
+		{"FileHeader", Type, 3, ""},
+		{"FileHeader.Bss", Field, 3, ""},
+		{"FileHeader.Entry", Field, 3, ""},
+		{"FileHeader.HdrSize", Field, 4, ""},
+		{"FileHeader.LoadAddress", Field, 4, ""},
+		{"FileHeader.Magic", Field, 3, ""},
+		{"FileHeader.PtrSize", Field, 3, ""},
+		{"Magic386", Const, 3, ""},
+		{"Magic64", Const, 3, ""},
+		{"MagicAMD64", Const, 3, ""},
+		{"MagicARM", Const, 3, ""},
+		{"NewFile", Func, 3, "func(r io.ReaderAt) (*File, error)"},
+		{"Open", Func, 3, "func(name string) (*File, error)"},
+		{"Section", Type, 3, ""},
+		{"Section.ReaderAt", Field, 3, ""},
+		{"Section.SectionHeader", Field, 3, ""},
+		{"SectionHeader", Type, 3, ""},
+		{"SectionHeader.Name", Field, 3, ""},
+		{"SectionHeader.Offset", Field, 3, ""},
+		{"SectionHeader.Size", Field, 3, ""},
+		{"Sym", Type, 3, ""},
+		{"Sym.Name", Field, 3, ""},
+		{"Sym.Type", Field, 3, ""},
+		{"Sym.Value", Field, 3, ""},
 	},
 	"embed": {
-		{"(FS).Open", Method, 16},
-		{"(FS).ReadDir", Method, 16},
-		{"(FS).ReadFile", Method, 16},
-		{"FS", Type, 16},
+		{"(FS).Open", Method, 16, ""},
+		{"(FS).ReadDir", Method, 16, ""},
+		{"(FS).ReadFile", Method, 16, ""},
+		{"FS", Type, 16, ""},
 	},
 	"encoding": {
-		{"BinaryAppender", Type, 24},
-		{"BinaryMarshaler", Type, 2},
-		{"BinaryUnmarshaler", Type, 2},
-		{"TextAppender", Type, 24},
-		{"TextMarshaler", Type, 2},
-		{"TextUnmarshaler", Type, 2},
+		{"BinaryAppender", Type, 24, ""},
+		{"BinaryMarshaler", Type, 2, ""},
+		{"BinaryUnmarshaler", Type, 2, ""},
+		{"TextAppender", Type, 24, ""},
+		{"TextMarshaler", Type, 2, ""},
+		{"TextUnmarshaler", Type, 2, ""},
 	},
 	"encoding/ascii85": {
-		{"(CorruptInputError).Error", Method, 0},
-		{"CorruptInputError", Type, 0},
-		{"Decode", Func, 0},
-		{"Encode", Func, 0},
-		{"MaxEncodedLen", Func, 0},
-		{"NewDecoder", Func, 0},
-		{"NewEncoder", Func, 0},
+		{"(CorruptInputError).Error", Method, 0, ""},
+		{"CorruptInputError", Type, 0, ""},
+		{"Decode", Func, 0, "func(dst []byte, src []byte, flush bool) (ndst int, nsrc int, err error)"},
+		{"Encode", Func, 0, "func(dst []byte, src []byte) int"},
+		{"MaxEncodedLen", Func, 0, "func(n int) int"},
+		{"NewDecoder", Func, 0, "func(r io.Reader) io.Reader"},
+		{"NewEncoder", Func, 0, "func(w io.Writer) io.WriteCloser"},
 	},
 	"encoding/asn1": {
-		{"(BitString).At", Method, 0},
-		{"(BitString).RightAlign", Method, 0},
-		{"(ObjectIdentifier).Equal", Method, 0},
-		{"(ObjectIdentifier).String", Method, 3},
-		{"(StructuralError).Error", Method, 0},
-		{"(SyntaxError).Error", Method, 0},
-		{"BitString", Type, 0},
-		{"BitString.BitLength", Field, 0},
-		{"BitString.Bytes", Field, 0},
-		{"ClassApplication", Const, 6},
-		{"ClassContextSpecific", Const, 6},
-		{"ClassPrivate", Const, 6},
-		{"ClassUniversal", Const, 6},
-		{"Enumerated", Type, 0},
-		{"Flag", Type, 0},
-		{"Marshal", Func, 0},
-		{"MarshalWithParams", Func, 10},
-		{"NullBytes", Var, 9},
-		{"NullRawValue", Var, 9},
-		{"ObjectIdentifier", Type, 0},
-		{"RawContent", Type, 0},
-		{"RawValue", Type, 0},
-		{"RawValue.Bytes", Field, 0},
-		{"RawValue.Class", Field, 0},
-		{"RawValue.FullBytes", Field, 0},
-		{"RawValue.IsCompound", Field, 0},
-		{"RawValue.Tag", Field, 0},
-		{"StructuralError", Type, 0},
-		{"StructuralError.Msg", Field, 0},
-		{"SyntaxError", Type, 0},
-		{"SyntaxError.Msg", Field, 0},
-		{"TagBMPString", Const, 14},
-		{"TagBitString", Const, 6},
-		{"TagBoolean", Const, 6},
-		{"TagEnum", Const, 6},
-		{"TagGeneralString", Const, 6},
-		{"TagGeneralizedTime", Const, 6},
-		{"TagIA5String", Const, 6},
-		{"TagInteger", Const, 6},
-		{"TagNull", Const, 9},
-		{"TagNumericString", Const, 10},
-		{"TagOID", Const, 6},
-		{"TagOctetString", Const, 6},
-		{"TagPrintableString", Const, 6},
-		{"TagSequence", Const, 6},
-		{"TagSet", Const, 6},
-		{"TagT61String", Const, 6},
-		{"TagUTCTime", Const, 6},
-		{"TagUTF8String", Const, 6},
-		{"Unmarshal", Func, 0},
-		{"UnmarshalWithParams", Func, 0},
+		{"(BitString).At", Method, 0, ""},
+		{"(BitString).RightAlign", Method, 0, ""},
+		{"(ObjectIdentifier).Equal", Method, 0, ""},
+		{"(ObjectIdentifier).String", Method, 3, ""},
+		{"(StructuralError).Error", Method, 0, ""},
+		{"(SyntaxError).Error", Method, 0, ""},
+		{"BitString", Type, 0, ""},
+		{"BitString.BitLength", Field, 0, ""},
+		{"BitString.Bytes", Field, 0, ""},
+		{"ClassApplication", Const, 6, ""},
+		{"ClassContextSpecific", Const, 6, ""},
+		{"ClassPrivate", Const, 6, ""},
+		{"ClassUniversal", Const, 6, ""},
+		{"Enumerated", Type, 0, ""},
+		{"Flag", Type, 0, ""},
+		{"Marshal", Func, 0, "func(val any) ([]byte, error)"},
+		{"MarshalWithParams", Func, 10, "func(val any, params string) ([]byte, error)"},
+		{"NullBytes", Var, 9, ""},
+		{"NullRawValue", Var, 9, ""},
+		{"ObjectIdentifier", Type, 0, ""},
+		{"RawContent", Type, 0, ""},
+		{"RawValue", Type, 0, ""},
+		{"RawValue.Bytes", Field, 0, ""},
+		{"RawValue.Class", Field, 0, ""},
+		{"RawValue.FullBytes", Field, 0, ""},
+		{"RawValue.IsCompound", Field, 0, ""},
+		{"RawValue.Tag", Field, 0, ""},
+		{"StructuralError", Type, 0, ""},
+		{"StructuralError.Msg", Field, 0, ""},
+		{"SyntaxError", Type, 0, ""},
+		{"SyntaxError.Msg", Field, 0, ""},
+		{"TagBMPString", Const, 14, ""},
+		{"TagBitString", Const, 6, ""},
+		{"TagBoolean", Const, 6, ""},
+		{"TagEnum", Const, 6, ""},
+		{"TagGeneralString", Const, 6, ""},
+		{"TagGeneralizedTime", Const, 6, ""},
+		{"TagIA5String", Const, 6, ""},
+		{"TagInteger", Const, 6, ""},
+		{"TagNull", Const, 9, ""},
+		{"TagNumericString", Const, 10, ""},
+		{"TagOID", Const, 6, ""},
+		{"TagOctetString", Const, 6, ""},
+		{"TagPrintableString", Const, 6, ""},
+		{"TagSequence", Const, 6, ""},
+		{"TagSet", Const, 6, ""},
+		{"TagT61String", Const, 6, ""},
+		{"TagUTCTime", Const, 6, ""},
+		{"TagUTF8String", Const, 6, ""},
+		{"Unmarshal", Func, 0, "func(b []byte, val any) (rest []byte, err error)"},
+		{"UnmarshalWithParams", Func, 0, "func(b []byte, val any, params string) (rest []byte, err error)"},
 	},
 	"encoding/base32": {
-		{"(*Encoding).AppendDecode", Method, 22},
-		{"(*Encoding).AppendEncode", Method, 22},
-		{"(*Encoding).Decode", Method, 0},
-		{"(*Encoding).DecodeString", Method, 0},
-		{"(*Encoding).DecodedLen", Method, 0},
-		{"(*Encoding).Encode", Method, 0},
-		{"(*Encoding).EncodeToString", Method, 0},
-		{"(*Encoding).EncodedLen", Method, 0},
-		{"(CorruptInputError).Error", Method, 0},
-		{"(Encoding).WithPadding", Method, 9},
-		{"CorruptInputError", Type, 0},
-		{"Encoding", Type, 0},
-		{"HexEncoding", Var, 0},
-		{"NewDecoder", Func, 0},
-		{"NewEncoder", Func, 0},
-		{"NewEncoding", Func, 0},
-		{"NoPadding", Const, 9},
-		{"StdEncoding", Var, 0},
-		{"StdPadding", Const, 9},
+		{"(*Encoding).AppendDecode", Method, 22, ""},
+		{"(*Encoding).AppendEncode", Method, 22, ""},
+		{"(*Encoding).Decode", Method, 0, ""},
+		{"(*Encoding).DecodeString", Method, 0, ""},
+		{"(*Encoding).DecodedLen", Method, 0, ""},
+		{"(*Encoding).Encode", Method, 0, ""},
+		{"(*Encoding).EncodeToString", Method, 0, ""},
+		{"(*Encoding).EncodedLen", Method, 0, ""},
+		{"(CorruptInputError).Error", Method, 0, ""},
+		{"(Encoding).WithPadding", Method, 9, ""},
+		{"CorruptInputError", Type, 0, ""},
+		{"Encoding", Type, 0, ""},
+		{"HexEncoding", Var, 0, ""},
+		{"NewDecoder", Func, 0, "func(enc *Encoding, r io.Reader) io.Reader"},
+		{"NewEncoder", Func, 0, "func(enc *Encoding, w io.Writer) io.WriteCloser"},
+		{"NewEncoding", Func, 0, "func(encoder string) *Encoding"},
+		{"NoPadding", Const, 9, ""},
+		{"StdEncoding", Var, 0, ""},
+		{"StdPadding", Const, 9, ""},
 	},
 	"encoding/base64": {
-		{"(*Encoding).AppendDecode", Method, 22},
-		{"(*Encoding).AppendEncode", Method, 22},
-		{"(*Encoding).Decode", Method, 0},
-		{"(*Encoding).DecodeString", Method, 0},
-		{"(*Encoding).DecodedLen", Method, 0},
-		{"(*Encoding).Encode", Method, 0},
-		{"(*Encoding).EncodeToString", Method, 0},
-		{"(*Encoding).EncodedLen", Method, 0},
-		{"(CorruptInputError).Error", Method, 0},
-		{"(Encoding).Strict", Method, 8},
-		{"(Encoding).WithPadding", Method, 5},
-		{"CorruptInputError", Type, 0},
-		{"Encoding", Type, 0},
-		{"NewDecoder", Func, 0},
-		{"NewEncoder", Func, 0},
-		{"NewEncoding", Func, 0},
-		{"NoPadding", Const, 5},
-		{"RawStdEncoding", Var, 5},
-		{"RawURLEncoding", Var, 5},
-		{"StdEncoding", Var, 0},
-		{"StdPadding", Const, 5},
-		{"URLEncoding", Var, 0},
+		{"(*Encoding).AppendDecode", Method, 22, ""},
+		{"(*Encoding).AppendEncode", Method, 22, ""},
+		{"(*Encoding).Decode", Method, 0, ""},
+		{"(*Encoding).DecodeString", Method, 0, ""},
+		{"(*Encoding).DecodedLen", Method, 0, ""},
+		{"(*Encoding).Encode", Method, 0, ""},
+		{"(*Encoding).EncodeToString", Method, 0, ""},
+		{"(*Encoding).EncodedLen", Method, 0, ""},
+		{"(CorruptInputError).Error", Method, 0, ""},
+		{"(Encoding).Strict", Method, 8, ""},
+		{"(Encoding).WithPadding", Method, 5, ""},
+		{"CorruptInputError", Type, 0, ""},
+		{"Encoding", Type, 0, ""},
+		{"NewDecoder", Func, 0, "func(enc *Encoding, r io.Reader) io.Reader"},
+		{"NewEncoder", Func, 0, "func(enc *Encoding, w io.Writer) io.WriteCloser"},
+		{"NewEncoding", Func, 0, "func(encoder string) *Encoding"},
+		{"NoPadding", Const, 5, ""},
+		{"RawStdEncoding", Var, 5, ""},
+		{"RawURLEncoding", Var, 5, ""},
+		{"StdEncoding", Var, 0, ""},
+		{"StdPadding", Const, 5, ""},
+		{"URLEncoding", Var, 0, ""},
 	},
 	"encoding/binary": {
-		{"Append", Func, 23},
-		{"AppendByteOrder", Type, 19},
-		{"AppendUvarint", Func, 19},
-		{"AppendVarint", Func, 19},
-		{"BigEndian", Var, 0},
-		{"ByteOrder", Type, 0},
-		{"Decode", Func, 23},
-		{"Encode", Func, 23},
-		{"LittleEndian", Var, 0},
-		{"MaxVarintLen16", Const, 0},
-		{"MaxVarintLen32", Const, 0},
-		{"MaxVarintLen64", Const, 0},
-		{"NativeEndian", Var, 21},
-		{"PutUvarint", Func, 0},
-		{"PutVarint", Func, 0},
-		{"Read", Func, 0},
-		{"ReadUvarint", Func, 0},
-		{"ReadVarint", Func, 0},
-		{"Size", Func, 0},
-		{"Uvarint", Func, 0},
-		{"Varint", Func, 0},
-		{"Write", Func, 0},
+		{"Append", Func, 23, "func(buf []byte, order ByteOrder, data any) ([]byte, error)"},
+		{"AppendByteOrder", Type, 19, ""},
+		{"AppendUvarint", Func, 19, "func(buf []byte, x uint64) []byte"},
+		{"AppendVarint", Func, 19, "func(buf []byte, x int64) []byte"},
+		{"BigEndian", Var, 0, ""},
+		{"ByteOrder", Type, 0, ""},
+		{"Decode", Func, 23, "func(buf []byte, order ByteOrder, data any) (int, error)"},
+		{"Encode", Func, 23, "func(buf []byte, order ByteOrder, data any) (int, error)"},
+		{"LittleEndian", Var, 0, ""},
+		{"MaxVarintLen16", Const, 0, ""},
+		{"MaxVarintLen32", Const, 0, ""},
+		{"MaxVarintLen64", Const, 0, ""},
+		{"NativeEndian", Var, 21, ""},
+		{"PutUvarint", Func, 0, "func(buf []byte, x uint64) int"},
+		{"PutVarint", Func, 0, "func(buf []byte, x int64) int"},
+		{"Read", Func, 0, "func(r io.Reader, order ByteOrder, data any) error"},
+		{"ReadUvarint", Func, 0, "func(r io.ByteReader) (uint64, error)"},
+		{"ReadVarint", Func, 0, "func(r io.ByteReader) (int64, error)"},
+		{"Size", Func, 0, "func(v any) int"},
+		{"Uvarint", Func, 0, "func(buf []byte) (uint64, int)"},
+		{"Varint", Func, 0, "func(buf []byte) (int64, int)"},
+		{"Write", Func, 0, "func(w io.Writer, order ByteOrder, data any) error"},
 	},
 	"encoding/csv": {
-		{"(*ParseError).Error", Method, 0},
-		{"(*ParseError).Unwrap", Method, 13},
-		{"(*Reader).FieldPos", Method, 17},
-		{"(*Reader).InputOffset", Method, 19},
-		{"(*Reader).Read", Method, 0},
-		{"(*Reader).ReadAll", Method, 0},
-		{"(*Writer).Error", Method, 1},
-		{"(*Writer).Flush", Method, 0},
-		{"(*Writer).Write", Method, 0},
-		{"(*Writer).WriteAll", Method, 0},
-		{"ErrBareQuote", Var, 0},
-		{"ErrFieldCount", Var, 0},
-		{"ErrQuote", Var, 0},
-		{"ErrTrailingComma", Var, 0},
-		{"NewReader", Func, 0},
-		{"NewWriter", Func, 0},
-		{"ParseError", Type, 0},
-		{"ParseError.Column", Field, 0},
-		{"ParseError.Err", Field, 0},
-		{"ParseError.Line", Field, 0},
-		{"ParseError.StartLine", Field, 10},
-		{"Reader", Type, 0},
-		{"Reader.Comma", Field, 0},
-		{"Reader.Comment", Field, 0},
-		{"Reader.FieldsPerRecord", Field, 0},
-		{"Reader.LazyQuotes", Field, 0},
-		{"Reader.ReuseRecord", Field, 9},
-		{"Reader.TrailingComma", Field, 0},
-		{"Reader.TrimLeadingSpace", Field, 0},
-		{"Writer", Type, 0},
-		{"Writer.Comma", Field, 0},
-		{"Writer.UseCRLF", Field, 0},
+		{"(*ParseError).Error", Method, 0, ""},
+		{"(*ParseError).Unwrap", Method, 13, ""},
+		{"(*Reader).FieldPos", Method, 17, ""},
+		{"(*Reader).InputOffset", Method, 19, ""},
+		{"(*Reader).Read", Method, 0, ""},
+		{"(*Reader).ReadAll", Method, 0, ""},
+		{"(*Writer).Error", Method, 1, ""},
+		{"(*Writer).Flush", Method, 0, ""},
+		{"(*Writer).Write", Method, 0, ""},
+		{"(*Writer).WriteAll", Method, 0, ""},
+		{"ErrBareQuote", Var, 0, ""},
+		{"ErrFieldCount", Var, 0, ""},
+		{"ErrQuote", Var, 0, ""},
+		{"ErrTrailingComma", Var, 0, ""},
+		{"NewReader", Func, 0, "func(r io.Reader) *Reader"},
+		{"NewWriter", Func, 0, "func(w io.Writer) *Writer"},
+		{"ParseError", Type, 0, ""},
+		{"ParseError.Column", Field, 0, ""},
+		{"ParseError.Err", Field, 0, ""},
+		{"ParseError.Line", Field, 0, ""},
+		{"ParseError.StartLine", Field, 10, ""},
+		{"Reader", Type, 0, ""},
+		{"Reader.Comma", Field, 0, ""},
+		{"Reader.Comment", Field, 0, ""},
+		{"Reader.FieldsPerRecord", Field, 0, ""},
+		{"Reader.LazyQuotes", Field, 0, ""},
+		{"Reader.ReuseRecord", Field, 9, ""},
+		{"Reader.TrailingComma", Field, 0, ""},
+		{"Reader.TrimLeadingSpace", Field, 0, ""},
+		{"Writer", Type, 0, ""},
+		{"Writer.Comma", Field, 0, ""},
+		{"Writer.UseCRLF", Field, 0, ""},
 	},
 	"encoding/gob": {
-		{"(*Decoder).Decode", Method, 0},
-		{"(*Decoder).DecodeValue", Method, 0},
-		{"(*Encoder).Encode", Method, 0},
-		{"(*Encoder).EncodeValue", Method, 0},
-		{"CommonType", Type, 0},
-		{"CommonType.Id", Field, 0},
-		{"CommonType.Name", Field, 0},
-		{"Decoder", Type, 0},
-		{"Encoder", Type, 0},
-		{"GobDecoder", Type, 0},
-		{"GobEncoder", Type, 0},
-		{"NewDecoder", Func, 0},
-		{"NewEncoder", Func, 0},
-		{"Register", Func, 0},
-		{"RegisterName", Func, 0},
+		{"(*Decoder).Decode", Method, 0, ""},
+		{"(*Decoder).DecodeValue", Method, 0, ""},
+		{"(*Encoder).Encode", Method, 0, ""},
+		{"(*Encoder).EncodeValue", Method, 0, ""},
+		{"CommonType", Type, 0, ""},
+		{"CommonType.Id", Field, 0, ""},
+		{"CommonType.Name", Field, 0, ""},
+		{"Decoder", Type, 0, ""},
+		{"Encoder", Type, 0, ""},
+		{"GobDecoder", Type, 0, ""},
+		{"GobEncoder", Type, 0, ""},
+		{"NewDecoder", Func, 0, "func(r io.Reader) *Decoder"},
+		{"NewEncoder", Func, 0, "func(w io.Writer) *Encoder"},
+		{"Register", Func, 0, "func(value any)"},
+		{"RegisterName", Func, 0, "func(name string, value any)"},
 	},
 	"encoding/hex": {
-		{"(InvalidByteError).Error", Method, 0},
-		{"AppendDecode", Func, 22},
-		{"AppendEncode", Func, 22},
-		{"Decode", Func, 0},
-		{"DecodeString", Func, 0},
-		{"DecodedLen", Func, 0},
-		{"Dump", Func, 0},
-		{"Dumper", Func, 0},
-		{"Encode", Func, 0},
-		{"EncodeToString", Func, 0},
-		{"EncodedLen", Func, 0},
-		{"ErrLength", Var, 0},
-		{"InvalidByteError", Type, 0},
-		{"NewDecoder", Func, 10},
-		{"NewEncoder", Func, 10},
+		{"(InvalidByteError).Error", Method, 0, ""},
+		{"AppendDecode", Func, 22, "func(dst []byte, src []byte) ([]byte, error)"},
+		{"AppendEncode", Func, 22, "func(dst []byte, src []byte) []byte"},
+		{"Decode", Func, 0, "func(dst []byte, src []byte) (int, error)"},
+		{"DecodeString", Func, 0, "func(s string) ([]byte, error)"},
+		{"DecodedLen", Func, 0, "func(x int) int"},
+		{"Dump", Func, 0, "func(data []byte) string"},
+		{"Dumper", Func, 0, "func(w io.Writer) io.WriteCloser"},
+		{"Encode", Func, 0, "func(dst []byte, src []byte) int"},
+		{"EncodeToString", Func, 0, "func(src []byte) string"},
+		{"EncodedLen", Func, 0, "func(n int) int"},
+		{"ErrLength", Var, 0, ""},
+		{"InvalidByteError", Type, 0, ""},
+		{"NewDecoder", Func, 10, "func(r io.Reader) io.Reader"},
+		{"NewEncoder", Func, 10, "func(w io.Writer) io.Writer"},
 	},
 	"encoding/json": {
-		{"(*Decoder).Buffered", Method, 1},
-		{"(*Decoder).Decode", Method, 0},
-		{"(*Decoder).DisallowUnknownFields", Method, 10},
-		{"(*Decoder).InputOffset", Method, 14},
-		{"(*Decoder).More", Method, 5},
-		{"(*Decoder).Token", Method, 5},
-		{"(*Decoder).UseNumber", Method, 1},
-		{"(*Encoder).Encode", Method, 0},
-		{"(*Encoder).SetEscapeHTML", Method, 7},
-		{"(*Encoder).SetIndent", Method, 7},
-		{"(*InvalidUTF8Error).Error", Method, 0},
-		{"(*InvalidUnmarshalError).Error", Method, 0},
-		{"(*MarshalerError).Error", Method, 0},
-		{"(*MarshalerError).Unwrap", Method, 13},
-		{"(*RawMessage).MarshalJSON", Method, 0},
-		{"(*RawMessage).UnmarshalJSON", Method, 0},
-		{"(*SyntaxError).Error", Method, 0},
-		{"(*UnmarshalFieldError).Error", Method, 0},
-		{"(*UnmarshalTypeError).Error", Method, 0},
-		{"(*UnsupportedTypeError).Error", Method, 0},
-		{"(*UnsupportedValueError).Error", Method, 0},
-		{"(Delim).String", Method, 5},
-		{"(Number).Float64", Method, 1},
-		{"(Number).Int64", Method, 1},
-		{"(Number).String", Method, 1},
-		{"(RawMessage).MarshalJSON", Method, 8},
-		{"Compact", Func, 0},
-		{"Decoder", Type, 0},
-		{"Delim", Type, 5},
-		{"Encoder", Type, 0},
-		{"HTMLEscape", Func, 0},
-		{"Indent", Func, 0},
-		{"InvalidUTF8Error", Type, 0},
-		{"InvalidUTF8Error.S", Field, 0},
-		{"InvalidUnmarshalError", Type, 0},
-		{"InvalidUnmarshalError.Type", Field, 0},
-		{"Marshal", Func, 0},
-		{"MarshalIndent", Func, 0},
-		{"Marshaler", Type, 0},
-		{"MarshalerError", Type, 0},
-		{"MarshalerError.Err", Field, 0},
-		{"MarshalerError.Type", Field, 0},
-		{"NewDecoder", Func, 0},
-		{"NewEncoder", Func, 0},
-		{"Number", Type, 1},
-		{"RawMessage", Type, 0},
-		{"SyntaxError", Type, 0},
-		{"SyntaxError.Offset", Field, 0},
-		{"Token", Type, 5},
-		{"Unmarshal", Func, 0},
-		{"UnmarshalFieldError", Type, 0},
-		{"UnmarshalFieldError.Field", Field, 0},
-		{"UnmarshalFieldError.Key", Field, 0},
-		{"UnmarshalFieldError.Type", Field, 0},
-		{"UnmarshalTypeError", Type, 0},
-		{"UnmarshalTypeError.Field", Field, 8},
-		{"UnmarshalTypeError.Offset", Field, 5},
-		{"UnmarshalTypeError.Struct", Field, 8},
-		{"UnmarshalTypeError.Type", Field, 0},
-		{"UnmarshalTypeError.Value", Field, 0},
-		{"Unmarshaler", Type, 0},
-		{"UnsupportedTypeError", Type, 0},
-		{"UnsupportedTypeError.Type", Field, 0},
-		{"UnsupportedValueError", Type, 0},
-		{"UnsupportedValueError.Str", Field, 0},
-		{"UnsupportedValueError.Value", Field, 0},
-		{"Valid", Func, 9},
+		{"(*Decoder).Buffered", Method, 1, ""},
+		{"(*Decoder).Decode", Method, 0, ""},
+		{"(*Decoder).DisallowUnknownFields", Method, 10, ""},
+		{"(*Decoder).InputOffset", Method, 14, ""},
+		{"(*Decoder).More", Method, 5, ""},
+		{"(*Decoder).Token", Method, 5, ""},
+		{"(*Decoder).UseNumber", Method, 1, ""},
+		{"(*Encoder).Encode", Method, 0, ""},
+		{"(*Encoder).SetEscapeHTML", Method, 7, ""},
+		{"(*Encoder).SetIndent", Method, 7, ""},
+		{"(*InvalidUTF8Error).Error", Method, 0, ""},
+		{"(*InvalidUnmarshalError).Error", Method, 0, ""},
+		{"(*MarshalerError).Error", Method, 0, ""},
+		{"(*MarshalerError).Unwrap", Method, 13, ""},
+		{"(*RawMessage).MarshalJSON", Method, 0, ""},
+		{"(*RawMessage).UnmarshalJSON", Method, 0, ""},
+		{"(*SyntaxError).Error", Method, 0, ""},
+		{"(*UnmarshalFieldError).Error", Method, 0, ""},
+		{"(*UnmarshalTypeError).Error", Method, 0, ""},
+		{"(*UnsupportedTypeError).Error", Method, 0, ""},
+		{"(*UnsupportedValueError).Error", Method, 0, ""},
+		{"(Delim).String", Method, 5, ""},
+		{"(Number).Float64", Method, 1, ""},
+		{"(Number).Int64", Method, 1, ""},
+		{"(Number).String", Method, 1, ""},
+		{"(RawMessage).MarshalJSON", Method, 8, ""},
+		{"Compact", Func, 0, "func(dst *bytes.Buffer, src []byte) error"},
+		{"Decoder", Type, 0, ""},
+		{"Delim", Type, 5, ""},
+		{"Encoder", Type, 0, ""},
+		{"HTMLEscape", Func, 0, "func(dst *bytes.Buffer, src []byte)"},
+		{"Indent", Func, 0, "func(dst *bytes.Buffer, src []byte, prefix string, indent string) error"},
+		{"InvalidUTF8Error", Type, 0, ""},
+		{"InvalidUTF8Error.S", Field, 0, ""},
+		{"InvalidUnmarshalError", Type, 0, ""},
+		{"InvalidUnmarshalError.Type", Field, 0, ""},
+		{"Marshal", Func, 0, "func(v any) ([]byte, error)"},
+		{"MarshalIndent", Func, 0, "func(v any, prefix string, indent string) ([]byte, error)"},
+		{"Marshaler", Type, 0, ""},
+		{"MarshalerError", Type, 0, ""},
+		{"MarshalerError.Err", Field, 0, ""},
+		{"MarshalerError.Type", Field, 0, ""},
+		{"NewDecoder", Func, 0, "func(r io.Reader) *Decoder"},
+		{"NewEncoder", Func, 0, "func(w io.Writer) *Encoder"},
+		{"Number", Type, 1, ""},
+		{"RawMessage", Type, 0, ""},
+		{"SyntaxError", Type, 0, ""},
+		{"SyntaxError.Offset", Field, 0, ""},
+		{"Token", Type, 5, ""},
+		{"Unmarshal", Func, 0, "func(data []byte, v any) error"},
+		{"UnmarshalFieldError", Type, 0, ""},
+		{"UnmarshalFieldError.Field", Field, 0, ""},
+		{"UnmarshalFieldError.Key", Field, 0, ""},
+		{"UnmarshalFieldError.Type", Field, 0, ""},
+		{"UnmarshalTypeError", Type, 0, ""},
+		{"UnmarshalTypeError.Field", Field, 8, ""},
+		{"UnmarshalTypeError.Offset", Field, 5, ""},
+		{"UnmarshalTypeError.Struct", Field, 8, ""},
+		{"UnmarshalTypeError.Type", Field, 0, ""},
+		{"UnmarshalTypeError.Value", Field, 0, ""},
+		{"Unmarshaler", Type, 0, ""},
+		{"UnsupportedTypeError", Type, 0, ""},
+		{"UnsupportedTypeError.Type", Field, 0, ""},
+		{"UnsupportedValueError", Type, 0, ""},
+		{"UnsupportedValueError.Str", Field, 0, ""},
+		{"UnsupportedValueError.Value", Field, 0, ""},
+		{"Valid", Func, 9, "func(data []byte) bool"},
 	},
 	"encoding/pem": {
-		{"Block", Type, 0},
-		{"Block.Bytes", Field, 0},
-		{"Block.Headers", Field, 0},
-		{"Block.Type", Field, 0},
-		{"Decode", Func, 0},
-		{"Encode", Func, 0},
-		{"EncodeToMemory", Func, 0},
+		{"Block", Type, 0, ""},
+		{"Block.Bytes", Field, 0, ""},
+		{"Block.Headers", Field, 0, ""},
+		{"Block.Type", Field, 0, ""},
+		{"Decode", Func, 0, "func(data []byte) (p *Block, rest []byte)"},
+		{"Encode", Func, 0, "func(out io.Writer, b *Block) error"},
+		{"EncodeToMemory", Func, 0, "func(b *Block) []byte"},
 	},
 	"encoding/xml": {
-		{"(*Decoder).Decode", Method, 0},
-		{"(*Decoder).DecodeElement", Method, 0},
-		{"(*Decoder).InputOffset", Method, 4},
-		{"(*Decoder).InputPos", Method, 19},
-		{"(*Decoder).RawToken", Method, 0},
-		{"(*Decoder).Skip", Method, 0},
-		{"(*Decoder).Token", Method, 0},
-		{"(*Encoder).Close", Method, 20},
-		{"(*Encoder).Encode", Method, 0},
-		{"(*Encoder).EncodeElement", Method, 2},
-		{"(*Encoder).EncodeToken", Method, 2},
-		{"(*Encoder).Flush", Method, 2},
-		{"(*Encoder).Indent", Method, 1},
-		{"(*SyntaxError).Error", Method, 0},
-		{"(*TagPathError).Error", Method, 0},
-		{"(*UnsupportedTypeError).Error", Method, 0},
-		{"(CharData).Copy", Method, 0},
-		{"(Comment).Copy", Method, 0},
-		{"(Directive).Copy", Method, 0},
-		{"(ProcInst).Copy", Method, 0},
-		{"(StartElement).Copy", Method, 0},
-		{"(StartElement).End", Method, 2},
-		{"(UnmarshalError).Error", Method, 0},
-		{"Attr", Type, 0},
-		{"Attr.Name", Field, 0},
-		{"Attr.Value", Field, 0},
-		{"CharData", Type, 0},
-		{"Comment", Type, 0},
-		{"CopyToken", Func, 0},
-		{"Decoder", Type, 0},
-		{"Decoder.AutoClose", Field, 0},
-		{"Decoder.CharsetReader", Field, 0},
-		{"Decoder.DefaultSpace", Field, 1},
-		{"Decoder.Entity", Field, 0},
-		{"Decoder.Strict", Field, 0},
-		{"Directive", Type, 0},
-		{"Encoder", Type, 0},
-		{"EndElement", Type, 0},
-		{"EndElement.Name", Field, 0},
-		{"Escape", Func, 0},
-		{"EscapeText", Func, 1},
-		{"HTMLAutoClose", Var, 0},
-		{"HTMLEntity", Var, 0},
-		{"Header", Const, 0},
-		{"Marshal", Func, 0},
-		{"MarshalIndent", Func, 0},
-		{"Marshaler", Type, 2},
-		{"MarshalerAttr", Type, 2},
-		{"Name", Type, 0},
-		{"Name.Local", Field, 0},
-		{"Name.Space", Field, 0},
-		{"NewDecoder", Func, 0},
-		{"NewEncoder", Func, 0},
-		{"NewTokenDecoder", Func, 10},
-		{"ProcInst", Type, 0},
-		{"ProcInst.Inst", Field, 0},
-		{"ProcInst.Target", Field, 0},
-		{"StartElement", Type, 0},
-		{"StartElement.Attr", Field, 0},
-		{"StartElement.Name", Field, 0},
-		{"SyntaxError", Type, 0},
-		{"SyntaxError.Line", Field, 0},
-		{"SyntaxError.Msg", Field, 0},
-		{"TagPathError", Type, 0},
-		{"TagPathError.Field1", Field, 0},
-		{"TagPathError.Field2", Field, 0},
-		{"TagPathError.Struct", Field, 0},
-		{"TagPathError.Tag1", Field, 0},
-		{"TagPathError.Tag2", Field, 0},
-		{"Token", Type, 0},
-		{"TokenReader", Type, 10},
-		{"Unmarshal", Func, 0},
-		{"UnmarshalError", Type, 0},
-		{"Unmarshaler", Type, 2},
-		{"UnmarshalerAttr", Type, 2},
-		{"UnsupportedTypeError", Type, 0},
-		{"UnsupportedTypeError.Type", Field, 0},
+		{"(*Decoder).Decode", Method, 0, ""},
+		{"(*Decoder).DecodeElement", Method, 0, ""},
+		{"(*Decoder).InputOffset", Method, 4, ""},
+		{"(*Decoder).InputPos", Method, 19, ""},
+		{"(*Decoder).RawToken", Method, 0, ""},
+		{"(*Decoder).Skip", Method, 0, ""},
+		{"(*Decoder).Token", Method, 0, ""},
+		{"(*Encoder).Close", Method, 20, ""},
+		{"(*Encoder).Encode", Method, 0, ""},
+		{"(*Encoder).EncodeElement", Method, 2, ""},
+		{"(*Encoder).EncodeToken", Method, 2, ""},
+		{"(*Encoder).Flush", Method, 2, ""},
+		{"(*Encoder).Indent", Method, 1, ""},
+		{"(*SyntaxError).Error", Method, 0, ""},
+		{"(*TagPathError).Error", Method, 0, ""},
+		{"(*UnsupportedTypeError).Error", Method, 0, ""},
+		{"(CharData).Copy", Method, 0, ""},
+		{"(Comment).Copy", Method, 0, ""},
+		{"(Directive).Copy", Method, 0, ""},
+		{"(ProcInst).Copy", Method, 0, ""},
+		{"(StartElement).Copy", Method, 0, ""},
+		{"(StartElement).End", Method, 2, ""},
+		{"(UnmarshalError).Error", Method, 0, ""},
+		{"Attr", Type, 0, ""},
+		{"Attr.Name", Field, 0, ""},
+		{"Attr.Value", Field, 0, ""},
+		{"CharData", Type, 0, ""},
+		{"Comment", Type, 0, ""},
+		{"CopyToken", Func, 0, "func(t Token) Token"},
+		{"Decoder", Type, 0, ""},
+		{"Decoder.AutoClose", Field, 0, ""},
+		{"Decoder.CharsetReader", Field, 0, ""},
+		{"Decoder.DefaultSpace", Field, 1, ""},
+		{"Decoder.Entity", Field, 0, ""},
+		{"Decoder.Strict", Field, 0, ""},
+		{"Directive", Type, 0, ""},
+		{"Encoder", Type, 0, ""},
+		{"EndElement", Type, 0, ""},
+		{"EndElement.Name", Field, 0, ""},
+		{"Escape", Func, 0, "func(w io.Writer, s []byte)"},
+		{"EscapeText", Func, 1, "func(w io.Writer, s []byte) error"},
+		{"HTMLAutoClose", Var, 0, ""},
+		{"HTMLEntity", Var, 0, ""},
+		{"Header", Const, 0, ""},
+		{"Marshal", Func, 0, "func(v any) ([]byte, error)"},
+		{"MarshalIndent", Func, 0, "func(v any, prefix string, indent string) ([]byte, error)"},
+		{"Marshaler", Type, 2, ""},
+		{"MarshalerAttr", Type, 2, ""},
+		{"Name", Type, 0, ""},
+		{"Name.Local", Field, 0, ""},
+		{"Name.Space", Field, 0, ""},
+		{"NewDecoder", Func, 0, "func(r io.Reader) *Decoder"},
+		{"NewEncoder", Func, 0, "func(w io.Writer) *Encoder"},
+		{"NewTokenDecoder", Func, 10, "func(t TokenReader) *Decoder"},
+		{"ProcInst", Type, 0, ""},
+		{"ProcInst.Inst", Field, 0, ""},
+		{"ProcInst.Target", Field, 0, ""},
+		{"StartElement", Type, 0, ""},
+		{"StartElement.Attr", Field, 0, ""},
+		{"StartElement.Name", Field, 0, ""},
+		{"SyntaxError", Type, 0, ""},
+		{"SyntaxError.Line", Field, 0, ""},
+		{"SyntaxError.Msg", Field, 0, ""},
+		{"TagPathError", Type, 0, ""},
+		{"TagPathError.Field1", Field, 0, ""},
+		{"TagPathError.Field2", Field, 0, ""},
+		{"TagPathError.Struct", Field, 0, ""},
+		{"TagPathError.Tag1", Field, 0, ""},
+		{"TagPathError.Tag2", Field, 0, ""},
+		{"Token", Type, 0, ""},
+		{"TokenReader", Type, 10, ""},
+		{"Unmarshal", Func, 0, "func(data []byte, v any) error"},
+		{"UnmarshalError", Type, 0, ""},
+		{"Unmarshaler", Type, 2, ""},
+		{"UnmarshalerAttr", Type, 2, ""},
+		{"UnsupportedTypeError", Type, 0, ""},
+		{"UnsupportedTypeError.Type", Field, 0, ""},
 	},
 	"errors": {
-		{"As", Func, 13},
-		{"ErrUnsupported", Var, 21},
-		{"Is", Func, 13},
-		{"Join", Func, 20},
-		{"New", Func, 0},
-		{"Unwrap", Func, 13},
+		{"As", Func, 13, "func(err error, target any) bool"},
+		{"ErrUnsupported", Var, 21, ""},
+		{"Is", Func, 13, "func(err error, target error) bool"},
+		{"Join", Func, 20, "func(errs ...error) error"},
+		{"New", Func, 0, "func(text string) error"},
+		{"Unwrap", Func, 13, "func(err error) error"},
 	},
 	"expvar": {
-		{"(*Float).Add", Method, 0},
-		{"(*Float).Set", Method, 0},
-		{"(*Float).String", Method, 0},
-		{"(*Float).Value", Method, 8},
-		{"(*Int).Add", Method, 0},
-		{"(*Int).Set", Method, 0},
-		{"(*Int).String", Method, 0},
-		{"(*Int).Value", Method, 8},
-		{"(*Map).Add", Method, 0},
-		{"(*Map).AddFloat", Method, 0},
-		{"(*Map).Delete", Method, 12},
-		{"(*Map).Do", Method, 0},
-		{"(*Map).Get", Method, 0},
-		{"(*Map).Init", Method, 0},
-		{"(*Map).Set", Method, 0},
-		{"(*Map).String", Method, 0},
-		{"(*String).Set", Method, 0},
-		{"(*String).String", Method, 0},
-		{"(*String).Value", Method, 8},
-		{"(Func).String", Method, 0},
-		{"(Func).Value", Method, 8},
-		{"Do", Func, 0},
-		{"Float", Type, 0},
-		{"Func", Type, 0},
-		{"Get", Func, 0},
-		{"Handler", Func, 8},
-		{"Int", Type, 0},
-		{"KeyValue", Type, 0},
-		{"KeyValue.Key", Field, 0},
-		{"KeyValue.Value", Field, 0},
-		{"Map", Type, 0},
-		{"NewFloat", Func, 0},
-		{"NewInt", Func, 0},
-		{"NewMap", Func, 0},
-		{"NewString", Func, 0},
-		{"Publish", Func, 0},
-		{"String", Type, 0},
-		{"Var", Type, 0},
+		{"(*Float).Add", Method, 0, ""},
+		{"(*Float).Set", Method, 0, ""},
+		{"(*Float).String", Method, 0, ""},
+		{"(*Float).Value", Method, 8, ""},
+		{"(*Int).Add", Method, 0, ""},
+		{"(*Int).Set", Method, 0, ""},
+		{"(*Int).String", Method, 0, ""},
+		{"(*Int).Value", Method, 8, ""},
+		{"(*Map).Add", Method, 0, ""},
+		{"(*Map).AddFloat", Method, 0, ""},
+		{"(*Map).Delete", Method, 12, ""},
+		{"(*Map).Do", Method, 0, ""},
+		{"(*Map).Get", Method, 0, ""},
+		{"(*Map).Init", Method, 0, ""},
+		{"(*Map).Set", Method, 0, ""},
+		{"(*Map).String", Method, 0, ""},
+		{"(*String).Set", Method, 0, ""},
+		{"(*String).String", Method, 0, ""},
+		{"(*String).Value", Method, 8, ""},
+		{"(Func).String", Method, 0, ""},
+		{"(Func).Value", Method, 8, ""},
+		{"Do", Func, 0, "func(f func(KeyValue))"},
+		{"Float", Type, 0, ""},
+		{"Func", Type, 0, ""},
+		{"Get", Func, 0, "func(name string) Var"},
+		{"Handler", Func, 8, "func() http.Handler"},
+		{"Int", Type, 0, ""},
+		{"KeyValue", Type, 0, ""},
+		{"KeyValue.Key", Field, 0, ""},
+		{"KeyValue.Value", Field, 0, ""},
+		{"Map", Type, 0, ""},
+		{"NewFloat", Func, 0, "func(name string) *Float"},
+		{"NewInt", Func, 0, "func(name string) *Int"},
+		{"NewMap", Func, 0, "func(name string) *Map"},
+		{"NewString", Func, 0, "func(name string) *String"},
+		{"Publish", Func, 0, "func(name string, v Var)"},
+		{"String", Type, 0, ""},
+		{"Var", Type, 0, ""},
 	},
 	"flag": {
-		{"(*FlagSet).Arg", Method, 0},
-		{"(*FlagSet).Args", Method, 0},
-		{"(*FlagSet).Bool", Method, 0},
-		{"(*FlagSet).BoolFunc", Method, 21},
-		{"(*FlagSet).BoolVar", Method, 0},
-		{"(*FlagSet).Duration", Method, 0},
-		{"(*FlagSet).DurationVar", Method, 0},
-		{"(*FlagSet).ErrorHandling", Method, 10},
-		{"(*FlagSet).Float64", Method, 0},
-		{"(*FlagSet).Float64Var", Method, 0},
-		{"(*FlagSet).Func", Method, 16},
-		{"(*FlagSet).Init", Method, 0},
-		{"(*FlagSet).Int", Method, 0},
-		{"(*FlagSet).Int64", Method, 0},
-		{"(*FlagSet).Int64Var", Method, 0},
-		{"(*FlagSet).IntVar", Method, 0},
-		{"(*FlagSet).Lookup", Method, 0},
-		{"(*FlagSet).NArg", Method, 0},
-		{"(*FlagSet).NFlag", Method, 0},
-		{"(*FlagSet).Name", Method, 10},
-		{"(*FlagSet).Output", Method, 10},
-		{"(*FlagSet).Parse", Method, 0},
-		{"(*FlagSet).Parsed", Method, 0},
-		{"(*FlagSet).PrintDefaults", Method, 0},
-		{"(*FlagSet).Set", Method, 0},
-		{"(*FlagSet).SetOutput", Method, 0},
-		{"(*FlagSet).String", Method, 0},
-		{"(*FlagSet).StringVar", Method, 0},
-		{"(*FlagSet).TextVar", Method, 19},
-		{"(*FlagSet).Uint", Method, 0},
-		{"(*FlagSet).Uint64", Method, 0},
-		{"(*FlagSet).Uint64Var", Method, 0},
-		{"(*FlagSet).UintVar", Method, 0},
-		{"(*FlagSet).Var", Method, 0},
-		{"(*FlagSet).Visit", Method, 0},
-		{"(*FlagSet).VisitAll", Method, 0},
-		{"Arg", Func, 0},
-		{"Args", Func, 0},
-		{"Bool", Func, 0},
-		{"BoolFunc", Func, 21},
-		{"BoolVar", Func, 0},
-		{"CommandLine", Var, 2},
-		{"ContinueOnError", Const, 0},
-		{"Duration", Func, 0},
-		{"DurationVar", Func, 0},
-		{"ErrHelp", Var, 0},
-		{"ErrorHandling", Type, 0},
-		{"ExitOnError", Const, 0},
-		{"Flag", Type, 0},
-		{"Flag.DefValue", Field, 0},
-		{"Flag.Name", Field, 0},
-		{"Flag.Usage", Field, 0},
-		{"Flag.Value", Field, 0},
-		{"FlagSet", Type, 0},
-		{"FlagSet.Usage", Field, 0},
-		{"Float64", Func, 0},
-		{"Float64Var", Func, 0},
-		{"Func", Func, 16},
-		{"Getter", Type, 2},
-		{"Int", Func, 0},
-		{"Int64", Func, 0},
-		{"Int64Var", Func, 0},
-		{"IntVar", Func, 0},
-		{"Lookup", Func, 0},
-		{"NArg", Func, 0},
-		{"NFlag", Func, 0},
-		{"NewFlagSet", Func, 0},
-		{"PanicOnError", Const, 0},
-		{"Parse", Func, 0},
-		{"Parsed", Func, 0},
-		{"PrintDefaults", Func, 0},
-		{"Set", Func, 0},
-		{"String", Func, 0},
-		{"StringVar", Func, 0},
-		{"TextVar", Func, 19},
-		{"Uint", Func, 0},
-		{"Uint64", Func, 0},
-		{"Uint64Var", Func, 0},
-		{"UintVar", Func, 0},
-		{"UnquoteUsage", Func, 5},
-		{"Usage", Var, 0},
-		{"Value", Type, 0},
-		{"Var", Func, 0},
-		{"Visit", Func, 0},
-		{"VisitAll", Func, 0},
+		{"(*FlagSet).Arg", Method, 0, ""},
+		{"(*FlagSet).Args", Method, 0, ""},
+		{"(*FlagSet).Bool", Method, 0, ""},
+		{"(*FlagSet).BoolFunc", Method, 21, ""},
+		{"(*FlagSet).BoolVar", Method, 0, ""},
+		{"(*FlagSet).Duration", Method, 0, ""},
+		{"(*FlagSet).DurationVar", Method, 0, ""},
+		{"(*FlagSet).ErrorHandling", Method, 10, ""},
+		{"(*FlagSet).Float64", Method, 0, ""},
+		{"(*FlagSet).Float64Var", Method, 0, ""},
+		{"(*FlagSet).Func", Method, 16, ""},
+		{"(*FlagSet).Init", Method, 0, ""},
+		{"(*FlagSet).Int", Method, 0, ""},
+		{"(*FlagSet).Int64", Method, 0, ""},
+		{"(*FlagSet).Int64Var", Method, 0, ""},
+		{"(*FlagSet).IntVar", Method, 0, ""},
+		{"(*FlagSet).Lookup", Method, 0, ""},
+		{"(*FlagSet).NArg", Method, 0, ""},
+		{"(*FlagSet).NFlag", Method, 0, ""},
+		{"(*FlagSet).Name", Method, 10, ""},
+		{"(*FlagSet).Output", Method, 10, ""},
+		{"(*FlagSet).Parse", Method, 0, ""},
+		{"(*FlagSet).Parsed", Method, 0, ""},
+		{"(*FlagSet).PrintDefaults", Method, 0, ""},
+		{"(*FlagSet).Set", Method, 0, ""},
+		{"(*FlagSet).SetOutput", Method, 0, ""},
+		{"(*FlagSet).String", Method, 0, ""},
+		{"(*FlagSet).StringVar", Method, 0, ""},
+		{"(*FlagSet).TextVar", Method, 19, ""},
+		{"(*FlagSet).Uint", Method, 0, ""},
+		{"(*FlagSet).Uint64", Method, 0, ""},
+		{"(*FlagSet).Uint64Var", Method, 0, ""},
+		{"(*FlagSet).UintVar", Method, 0, ""},
+		{"(*FlagSet).Var", Method, 0, ""},
+		{"(*FlagSet).Visit", Method, 0, ""},
+		{"(*FlagSet).VisitAll", Method, 0, ""},
+		{"Arg", Func, 0, "func(i int) string"},
+		{"Args", Func, 0, "func() []string"},
+		{"Bool", Func, 0, "func(name string, value bool, usage string) *bool"},
+		{"BoolFunc", Func, 21, "func(name string, usage string, fn func(string) error)"},
+		{"BoolVar", Func, 0, "func(p *bool, name string, value bool, usage string)"},
+		{"CommandLine", Var, 2, ""},
+		{"ContinueOnError", Const, 0, ""},
+		{"Duration", Func, 0, "func(name string, value time.Duration, usage string) *time.Duration"},
+		{"DurationVar", Func, 0, "func(p *time.Duration, name string, value time.Duration, usage string)"},
+		{"ErrHelp", Var, 0, ""},
+		{"ErrorHandling", Type, 0, ""},
+		{"ExitOnError", Const, 0, ""},
+		{"Flag", Type, 0, ""},
+		{"Flag.DefValue", Field, 0, ""},
+		{"Flag.Name", Field, 0, ""},
+		{"Flag.Usage", Field, 0, ""},
+		{"Flag.Value", Field, 0, ""},
+		{"FlagSet", Type, 0, ""},
+		{"FlagSet.Usage", Field, 0, ""},
+		{"Float64", Func, 0, "func(name string, value float64, usage string) *float64"},
+		{"Float64Var", Func, 0, "func(p *float64, name string, value float64, usage string)"},
+		{"Func", Func, 16, "func(name string, usage string, fn func(string) error)"},
+		{"Getter", Type, 2, ""},
+		{"Int", Func, 0, "func(name string, value int, usage string) *int"},
+		{"Int64", Func, 0, "func(name string, value int64, usage string) *int64"},
+		{"Int64Var", Func, 0, "func(p *int64, name string, value int64, usage string)"},
+		{"IntVar", Func, 0, "func(p *int, name string, value int, usage string)"},
+		{"Lookup", Func, 0, "func(name string) *Flag"},
+		{"NArg", Func, 0, "func() int"},
+		{"NFlag", Func, 0, "func() int"},
+		{"NewFlagSet", Func, 0, "func(name string, errorHandling ErrorHandling) *FlagSet"},
+		{"PanicOnError", Const, 0, ""},
+		{"Parse", Func, 0, "func()"},
+		{"Parsed", Func, 0, "func() bool"},
+		{"PrintDefaults", Func, 0, "func()"},
+		{"Set", Func, 0, "func(name string, value string) error"},
+		{"String", Func, 0, "func(name string, value string, usage string) *string"},
+		{"StringVar", Func, 0, "func(p *string, name string, value string, usage string)"},
+		{"TextVar", Func, 19, "func(p encoding.TextUnmarshaler, name string, value encoding.TextMarshaler, usage string)"},
+		{"Uint", Func, 0, "func(name string, value uint, usage string) *uint"},
+		{"Uint64", Func, 0, "func(name string, value uint64, usage string) *uint64"},
+		{"Uint64Var", Func, 0, "func(p *uint64, name string, value uint64, usage string)"},
+		{"UintVar", Func, 0, "func(p *uint, name string, value uint, usage string)"},
+		{"UnquoteUsage", Func, 5, "func(flag *Flag) (name string, usage string)"},
+		{"Usage", Var, 0, ""},
+		{"Value", Type, 0, ""},
+		{"Var", Func, 0, "func(value Value, name string, usage string)"},
+		{"Visit", Func, 0, "func(fn func(*Flag))"},
+		{"VisitAll", Func, 0, "func(fn func(*Flag))"},
 	},
 	"fmt": {
-		{"Append", Func, 19},
-		{"Appendf", Func, 19},
-		{"Appendln", Func, 19},
-		{"Errorf", Func, 0},
-		{"FormatString", Func, 20},
-		{"Formatter", Type, 0},
-		{"Fprint", Func, 0},
-		{"Fprintf", Func, 0},
-		{"Fprintln", Func, 0},
-		{"Fscan", Func, 0},
-		{"Fscanf", Func, 0},
-		{"Fscanln", Func, 0},
-		{"GoStringer", Type, 0},
-		{"Print", Func, 0},
-		{"Printf", Func, 0},
-		{"Println", Func, 0},
-		{"Scan", Func, 0},
-		{"ScanState", Type, 0},
-		{"Scanf", Func, 0},
-		{"Scanln", Func, 0},
-		{"Scanner", Type, 0},
-		{"Sprint", Func, 0},
-		{"Sprintf", Func, 0},
-		{"Sprintln", Func, 0},
-		{"Sscan", Func, 0},
-		{"Sscanf", Func, 0},
-		{"Sscanln", Func, 0},
-		{"State", Type, 0},
-		{"Stringer", Type, 0},
+		{"Append", Func, 19, "func(b []byte, a ...any) []byte"},
+		{"Appendf", Func, 19, "func(b []byte, format string, a ...any) []byte"},
+		{"Appendln", Func, 19, "func(b []byte, a ...any) []byte"},
+		{"Errorf", Func, 0, "func(format string, a ...any) error"},
+		{"FormatString", Func, 20, "func(state State, verb rune) string"},
+		{"Formatter", Type, 0, ""},
+		{"Fprint", Func, 0, "func(w io.Writer, a ...any) (n int, err error)"},
+		{"Fprintf", Func, 0, "func(w io.Writer, format string, a ...any) (n int, err error)"},
+		{"Fprintln", Func, 0, "func(w io.Writer, a ...any) (n int, err error)"},
+		{"Fscan", Func, 0, "func(r io.Reader, a ...any) (n int, err error)"},
+		{"Fscanf", Func, 0, "func(r io.Reader, format string, a ...any) (n int, err error)"},
+		{"Fscanln", Func, 0, "func(r io.Reader, a ...any) (n int, err error)"},
+		{"GoStringer", Type, 0, ""},
+		{"Print", Func, 0, "func(a ...any) (n int, err error)"},
+		{"Printf", Func, 0, "func(format string, a ...any) (n int, err error)"},
+		{"Println", Func, 0, "func(a ...any) (n int, err error)"},
+		{"Scan", Func, 0, "func(a ...any) (n int, err error)"},
+		{"ScanState", Type, 0, ""},
+		{"Scanf", Func, 0, "func(format string, a ...any) (n int, err error)"},
+		{"Scanln", Func, 0, "func(a ...any) (n int, err error)"},
+		{"Scanner", Type, 0, ""},
+		{"Sprint", Func, 0, "func(a ...any) string"},
+		{"Sprintf", Func, 0, "func(format string, a ...any) string"},
+		{"Sprintln", Func, 0, "func(a ...any) string"},
+		{"Sscan", Func, 0, "func(str string, a ...any) (n int, err error)"},
+		{"Sscanf", Func, 0, "func(str string, format string, a ...any) (n int, err error)"},
+		{"Sscanln", Func, 0, "func(str string, a ...any) (n int, err error)"},
+		{"State", Type, 0, ""},
+		{"Stringer", Type, 0, ""},
 	},
 	"go/ast": {
-		{"(*ArrayType).End", Method, 0},
-		{"(*ArrayType).Pos", Method, 0},
-		{"(*AssignStmt).End", Method, 0},
-		{"(*AssignStmt).Pos", Method, 0},
-		{"(*BadDecl).End", Method, 0},
-		{"(*BadDecl).Pos", Method, 0},
-		{"(*BadExpr).End", Method, 0},
-		{"(*BadExpr).Pos", Method, 0},
-		{"(*BadStmt).End", Method, 0},
-		{"(*BadStmt).Pos", Method, 0},
-		{"(*BasicLit).End", Method, 0},
-		{"(*BasicLit).Pos", Method, 0},
-		{"(*BinaryExpr).End", Method, 0},
-		{"(*BinaryExpr).Pos", Method, 0},
-		{"(*BlockStmt).End", Method, 0},
-		{"(*BlockStmt).Pos", Method, 0},
-		{"(*BranchStmt).End", Method, 0},
-		{"(*BranchStmt).Pos", Method, 0},
-		{"(*CallExpr).End", Method, 0},
-		{"(*CallExpr).Pos", Method, 0},
-		{"(*CaseClause).End", Method, 0},
-		{"(*CaseClause).Pos", Method, 0},
-		{"(*ChanType).End", Method, 0},
-		{"(*ChanType).Pos", Method, 0},
-		{"(*CommClause).End", Method, 0},
-		{"(*CommClause).Pos", Method, 0},
-		{"(*Comment).End", Method, 0},
-		{"(*Comment).Pos", Method, 0},
-		{"(*CommentGroup).End", Method, 0},
-		{"(*CommentGroup).Pos", Method, 0},
-		{"(*CommentGroup).Text", Method, 0},
-		{"(*CompositeLit).End", Method, 0},
-		{"(*CompositeLit).Pos", Method, 0},
-		{"(*DeclStmt).End", Method, 0},
-		{"(*DeclStmt).Pos", Method, 0},
-		{"(*DeferStmt).End", Method, 0},
-		{"(*DeferStmt).Pos", Method, 0},
-		{"(*Ellipsis).End", Method, 0},
-		{"(*Ellipsis).Pos", Method, 0},
-		{"(*EmptyStmt).End", Method, 0},
-		{"(*EmptyStmt).Pos", Method, 0},
-		{"(*ExprStmt).End", Method, 0},
-		{"(*ExprStmt).Pos", Method, 0},
-		{"(*Field).End", Method, 0},
-		{"(*Field).Pos", Method, 0},
-		{"(*FieldList).End", Method, 0},
-		{"(*FieldList).NumFields", Method, 0},
-		{"(*FieldList).Pos", Method, 0},
-		{"(*File).End", Method, 0},
-		{"(*File).Pos", Method, 0},
-		{"(*ForStmt).End", Method, 0},
-		{"(*ForStmt).Pos", Method, 0},
-		{"(*FuncDecl).End", Method, 0},
-		{"(*FuncDecl).Pos", Method, 0},
-		{"(*FuncLit).End", Method, 0},
-		{"(*FuncLit).Pos", Method, 0},
-		{"(*FuncType).End", Method, 0},
-		{"(*FuncType).Pos", Method, 0},
-		{"(*GenDecl).End", Method, 0},
-		{"(*GenDecl).Pos", Method, 0},
-		{"(*GoStmt).End", Method, 0},
-		{"(*GoStmt).Pos", Method, 0},
-		{"(*Ident).End", Method, 0},
-		{"(*Ident).IsExported", Method, 0},
-		{"(*Ident).Pos", Method, 0},
-		{"(*Ident).String", Method, 0},
-		{"(*IfStmt).End", Method, 0},
-		{"(*IfStmt).Pos", Method, 0},
-		{"(*ImportSpec).End", Method, 0},
-		{"(*ImportSpec).Pos", Method, 0},
-		{"(*IncDecStmt).End", Method, 0},
-		{"(*IncDecStmt).Pos", Method, 0},
-		{"(*IndexExpr).End", Method, 0},
-		{"(*IndexExpr).Pos", Method, 0},
-		{"(*IndexListExpr).End", Method, 18},
-		{"(*IndexListExpr).Pos", Method, 18},
-		{"(*InterfaceType).End", Method, 0},
-		{"(*InterfaceType).Pos", Method, 0},
-		{"(*KeyValueExpr).End", Method, 0},
-		{"(*KeyValueExpr).Pos", Method, 0},
-		{"(*LabeledStmt).End", Method, 0},
-		{"(*LabeledStmt).Pos", Method, 0},
-		{"(*MapType).End", Method, 0},
-		{"(*MapType).Pos", Method, 0},
-		{"(*Object).Pos", Method, 0},
-		{"(*Package).End", Method, 0},
-		{"(*Package).Pos", Method, 0},
-		{"(*ParenExpr).End", Method, 0},
-		{"(*ParenExpr).Pos", Method, 0},
-		{"(*RangeStmt).End", Method, 0},
-		{"(*RangeStmt).Pos", Method, 0},
-		{"(*ReturnStmt).End", Method, 0},
-		{"(*ReturnStmt).Pos", Method, 0},
-		{"(*Scope).Insert", Method, 0},
-		{"(*Scope).Lookup", Method, 0},
-		{"(*Scope).String", Method, 0},
-		{"(*SelectStmt).End", Method, 0},
-		{"(*SelectStmt).Pos", Method, 0},
-		{"(*SelectorExpr).End", Method, 0},
-		{"(*SelectorExpr).Pos", Method, 0},
-		{"(*SendStmt).End", Method, 0},
-		{"(*SendStmt).Pos", Method, 0},
-		{"(*SliceExpr).End", Method, 0},
-		{"(*SliceExpr).Pos", Method, 0},
-		{"(*StarExpr).End", Method, 0},
-		{"(*StarExpr).Pos", Method, 0},
-		{"(*StructType).End", Method, 0},
-		{"(*StructType).Pos", Method, 0},
-		{"(*SwitchStmt).End", Method, 0},
-		{"(*SwitchStmt).Pos", Method, 0},
-		{"(*TypeAssertExpr).End", Method, 0},
-		{"(*TypeAssertExpr).Pos", Method, 0},
-		{"(*TypeSpec).End", Method, 0},
-		{"(*TypeSpec).Pos", Method, 0},
-		{"(*TypeSwitchStmt).End", Method, 0},
-		{"(*TypeSwitchStmt).Pos", Method, 0},
-		{"(*UnaryExpr).End", Method, 0},
-		{"(*UnaryExpr).Pos", Method, 0},
-		{"(*ValueSpec).End", Method, 0},
-		{"(*ValueSpec).Pos", Method, 0},
-		{"(CommentMap).Comments", Method, 1},
-		{"(CommentMap).Filter", Method, 1},
-		{"(CommentMap).String", Method, 1},
-		{"(CommentMap).Update", Method, 1},
-		{"(ObjKind).String", Method, 0},
-		{"ArrayType", Type, 0},
-		{"ArrayType.Elt", Field, 0},
-		{"ArrayType.Lbrack", Field, 0},
-		{"ArrayType.Len", Field, 0},
-		{"AssignStmt", Type, 0},
-		{"AssignStmt.Lhs", Field, 0},
-		{"AssignStmt.Rhs", Field, 0},
-		{"AssignStmt.Tok", Field, 0},
-		{"AssignStmt.TokPos", Field, 0},
-		{"Bad", Const, 0},
-		{"BadDecl", Type, 0},
-		{"BadDecl.From", Field, 0},
-		{"BadDecl.To", Field, 0},
-		{"BadExpr", Type, 0},
-		{"BadExpr.From", Field, 0},
-		{"BadExpr.To", Field, 0},
-		{"BadStmt", Type, 0},
-		{"BadStmt.From", Field, 0},
-		{"BadStmt.To", Field, 0},
-		{"BasicLit", Type, 0},
-		{"BasicLit.Kind", Field, 0},
-		{"BasicLit.Value", Field, 0},
-		{"BasicLit.ValuePos", Field, 0},
-		{"BinaryExpr", Type, 0},
-		{"BinaryExpr.Op", Field, 0},
-		{"BinaryExpr.OpPos", Field, 0},
-		{"BinaryExpr.X", Field, 0},
-		{"BinaryExpr.Y", Field, 0},
-		{"BlockStmt", Type, 0},
-		{"BlockStmt.Lbrace", Field, 0},
-		{"BlockStmt.List", Field, 0},
-		{"BlockStmt.Rbrace", Field, 0},
-		{"BranchStmt", Type, 0},
-		{"BranchStmt.Label", Field, 0},
-		{"BranchStmt.Tok", Field, 0},
-		{"BranchStmt.TokPos", Field, 0},
-		{"CallExpr", Type, 0},
-		{"CallExpr.Args", Field, 0},
-		{"CallExpr.Ellipsis", Field, 0},
-		{"CallExpr.Fun", Field, 0},
-		{"CallExpr.Lparen", Field, 0},
-		{"CallExpr.Rparen", Field, 0},
-		{"CaseClause", Type, 0},
-		{"CaseClause.Body", Field, 0},
-		{"CaseClause.Case", Field, 0},
-		{"CaseClause.Colon", Field, 0},
-		{"CaseClause.List", Field, 0},
-		{"ChanDir", Type, 0},
-		{"ChanType", Type, 0},
-		{"ChanType.Arrow", Field, 1},
-		{"ChanType.Begin", Field, 0},
-		{"ChanType.Dir", Field, 0},
-		{"ChanType.Value", Field, 0},
-		{"CommClause", Type, 0},
-		{"CommClause.Body", Field, 0},
-		{"CommClause.Case", Field, 0},
-		{"CommClause.Colon", Field, 0},
-		{"CommClause.Comm", Field, 0},
-		{"Comment", Type, 0},
-		{"Comment.Slash", Field, 0},
-		{"Comment.Text", Field, 0},
-		{"CommentGroup", Type, 0},
-		{"CommentGroup.List", Field, 0},
-		{"CommentMap", Type, 1},
-		{"CompositeLit", Type, 0},
-		{"CompositeLit.Elts", Field, 0},
-		{"CompositeLit.Incomplete", Field, 11},
-		{"CompositeLit.Lbrace", Field, 0},
-		{"CompositeLit.Rbrace", Field, 0},
-		{"CompositeLit.Type", Field, 0},
-		{"Con", Const, 0},
-		{"Decl", Type, 0},
-		{"DeclStmt", Type, 0},
-		{"DeclStmt.Decl", Field, 0},
-		{"DeferStmt", Type, 0},
-		{"DeferStmt.Call", Field, 0},
-		{"DeferStmt.Defer", Field, 0},
-		{"Ellipsis", Type, 0},
-		{"Ellipsis.Ellipsis", Field, 0},
-		{"Ellipsis.Elt", Field, 0},
-		{"EmptyStmt", Type, 0},
-		{"EmptyStmt.Implicit", Field, 5},
-		{"EmptyStmt.Semicolon", Field, 0},
-		{"Expr", Type, 0},
-		{"ExprStmt", Type, 0},
-		{"ExprStmt.X", Field, 0},
-		{"Field", Type, 0},
-		{"Field.Comment", Field, 0},
-		{"Field.Doc", Field, 0},
-		{"Field.Names", Field, 0},
-		{"Field.Tag", Field, 0},
-		{"Field.Type", Field, 0},
-		{"FieldFilter", Type, 0},
-		{"FieldList", Type, 0},
-		{"FieldList.Closing", Field, 0},
-		{"FieldList.List", Field, 0},
-		{"FieldList.Opening", Field, 0},
-		{"File", Type, 0},
-		{"File.Comments", Field, 0},
-		{"File.Decls", Field, 0},
-		{"File.Doc", Field, 0},
-		{"File.FileEnd", Field, 20},
-		{"File.FileStart", Field, 20},
-		{"File.GoVersion", Field, 21},
-		{"File.Imports", Field, 0},
-		{"File.Name", Field, 0},
-		{"File.Package", Field, 0},
-		{"File.Scope", Field, 0},
-		{"File.Unresolved", Field, 0},
-		{"FileExports", Func, 0},
-		{"Filter", Type, 0},
-		{"FilterDecl", Func, 0},
-		{"FilterFile", Func, 0},
-		{"FilterFuncDuplicates", Const, 0},
-		{"FilterImportDuplicates", Const, 0},
-		{"FilterPackage", Func, 0},
-		{"FilterUnassociatedComments", Const, 0},
-		{"ForStmt", Type, 0},
-		{"ForStmt.Body", Field, 0},
-		{"ForStmt.Cond", Field, 0},
-		{"ForStmt.For", Field, 0},
-		{"ForStmt.Init", Field, 0},
-		{"ForStmt.Post", Field, 0},
-		{"Fprint", Func, 0},
-		{"Fun", Const, 0},
-		{"FuncDecl", Type, 0},
-		{"FuncDecl.Body", Field, 0},
-		{"FuncDecl.Doc", Field, 0},
-		{"FuncDecl.Name", Field, 0},
-		{"FuncDecl.Recv", Field, 0},
-		{"FuncDecl.Type", Field, 0},
-		{"FuncLit", Type, 0},
-		{"FuncLit.Body", Field, 0},
-		{"FuncLit.Type", Field, 0},
-		{"FuncType", Type, 0},
-		{"FuncType.Func", Field, 0},
-		{"FuncType.Params", Field, 0},
-		{"FuncType.Results", Field, 0},
-		{"FuncType.TypeParams", Field, 18},
-		{"GenDecl", Type, 0},
-		{"GenDecl.Doc", Field, 0},
-		{"GenDecl.Lparen", Field, 0},
-		{"GenDecl.Rparen", Field, 0},
-		{"GenDecl.Specs", Field, 0},
-		{"GenDecl.Tok", Field, 0},
-		{"GenDecl.TokPos", Field, 0},
-		{"GoStmt", Type, 0},
-		{"GoStmt.Call", Field, 0},
-		{"GoStmt.Go", Field, 0},
-		{"Ident", Type, 0},
-		{"Ident.Name", Field, 0},
-		{"Ident.NamePos", Field, 0},
-		{"Ident.Obj", Field, 0},
-		{"IfStmt", Type, 0},
-		{"IfStmt.Body", Field, 0},
-		{"IfStmt.Cond", Field, 0},
-		{"IfStmt.Else", Field, 0},
-		{"IfStmt.If", Field, 0},
-		{"IfStmt.Init", Field, 0},
-		{"ImportSpec", Type, 0},
-		{"ImportSpec.Comment", Field, 0},
-		{"ImportSpec.Doc", Field, 0},
-		{"ImportSpec.EndPos", Field, 0},
-		{"ImportSpec.Name", Field, 0},
-		{"ImportSpec.Path", Field, 0},
-		{"Importer", Type, 0},
-		{"IncDecStmt", Type, 0},
-		{"IncDecStmt.Tok", Field, 0},
-		{"IncDecStmt.TokPos", Field, 0},
-		{"IncDecStmt.X", Field, 0},
-		{"IndexExpr", Type, 0},
-		{"IndexExpr.Index", Field, 0},
-		{"IndexExpr.Lbrack", Field, 0},
-		{"IndexExpr.Rbrack", Field, 0},
-		{"IndexExpr.X", Field, 0},
-		{"IndexListExpr", Type, 18},
-		{"IndexListExpr.Indices", Field, 18},
-		{"IndexListExpr.Lbrack", Field, 18},
-		{"IndexListExpr.Rbrack", Field, 18},
-		{"IndexListExpr.X", Field, 18},
-		{"Inspect", Func, 0},
-		{"InterfaceType", Type, 0},
-		{"InterfaceType.Incomplete", Field, 0},
-		{"InterfaceType.Interface", Field, 0},
-		{"InterfaceType.Methods", Field, 0},
-		{"IsExported", Func, 0},
-		{"IsGenerated", Func, 21},
-		{"KeyValueExpr", Type, 0},
-		{"KeyValueExpr.Colon", Field, 0},
-		{"KeyValueExpr.Key", Field, 0},
-		{"KeyValueExpr.Value", Field, 0},
-		{"LabeledStmt", Type, 0},
-		{"LabeledStmt.Colon", Field, 0},
-		{"LabeledStmt.Label", Field, 0},
-		{"LabeledStmt.Stmt", Field, 0},
-		{"Lbl", Const, 0},
-		{"MapType", Type, 0},
-		{"MapType.Key", Field, 0},
-		{"MapType.Map", Field, 0},
-		{"MapType.Value", Field, 0},
-		{"MergeMode", Type, 0},
-		{"MergePackageFiles", Func, 0},
-		{"NewCommentMap", Func, 1},
-		{"NewIdent", Func, 0},
-		{"NewObj", Func, 0},
-		{"NewPackage", Func, 0},
-		{"NewScope", Func, 0},
-		{"Node", Type, 0},
-		{"NotNilFilter", Func, 0},
-		{"ObjKind", Type, 0},
-		{"Object", Type, 0},
-		{"Object.Data", Field, 0},
-		{"Object.Decl", Field, 0},
-		{"Object.Kind", Field, 0},
-		{"Object.Name", Field, 0},
-		{"Object.Type", Field, 0},
-		{"Package", Type, 0},
-		{"Package.Files", Field, 0},
-		{"Package.Imports", Field, 0},
-		{"Package.Name", Field, 0},
-		{"Package.Scope", Field, 0},
-		{"PackageExports", Func, 0},
-		{"ParenExpr", Type, 0},
-		{"ParenExpr.Lparen", Field, 0},
-		{"ParenExpr.Rparen", Field, 0},
-		{"ParenExpr.X", Field, 0},
-		{"Pkg", Const, 0},
-		{"Preorder", Func, 23},
-		{"Print", Func, 0},
-		{"RECV", Const, 0},
-		{"RangeStmt", Type, 0},
-		{"RangeStmt.Body", Field, 0},
-		{"RangeStmt.For", Field, 0},
-		{"RangeStmt.Key", Field, 0},
-		{"RangeStmt.Range", Field, 20},
-		{"RangeStmt.Tok", Field, 0},
-		{"RangeStmt.TokPos", Field, 0},
-		{"RangeStmt.Value", Field, 0},
-		{"RangeStmt.X", Field, 0},
-		{"ReturnStmt", Type, 0},
-		{"ReturnStmt.Results", Field, 0},
-		{"ReturnStmt.Return", Field, 0},
-		{"SEND", Const, 0},
-		{"Scope", Type, 0},
-		{"Scope.Objects", Field, 0},
-		{"Scope.Outer", Field, 0},
-		{"SelectStmt", Type, 0},
-		{"SelectStmt.Body", Field, 0},
-		{"SelectStmt.Select", Field, 0},
-		{"SelectorExpr", Type, 0},
-		{"SelectorExpr.Sel", Field, 0},
-		{"SelectorExpr.X", Field, 0},
-		{"SendStmt", Type, 0},
-		{"SendStmt.Arrow", Field, 0},
-		{"SendStmt.Chan", Field, 0},
-		{"SendStmt.Value", Field, 0},
-		{"SliceExpr", Type, 0},
-		{"SliceExpr.High", Field, 0},
-		{"SliceExpr.Lbrack", Field, 0},
-		{"SliceExpr.Low", Field, 0},
-		{"SliceExpr.Max", Field, 2},
-		{"SliceExpr.Rbrack", Field, 0},
-		{"SliceExpr.Slice3", Field, 2},
-		{"SliceExpr.X", Field, 0},
-		{"SortImports", Func, 0},
-		{"Spec", Type, 0},
-		{"StarExpr", Type, 0},
-		{"StarExpr.Star", Field, 0},
-		{"StarExpr.X", Field, 0},
-		{"Stmt", Type, 0},
-		{"StructType", Type, 0},
-		{"StructType.Fields", Field, 0},
-		{"StructType.Incomplete", Field, 0},
-		{"StructType.Struct", Field, 0},
-		{"SwitchStmt", Type, 0},
-		{"SwitchStmt.Body", Field, 0},
-		{"SwitchStmt.Init", Field, 0},
-		{"SwitchStmt.Switch", Field, 0},
-		{"SwitchStmt.Tag", Field, 0},
-		{"Typ", Const, 0},
-		{"TypeAssertExpr", Type, 0},
-		{"TypeAssertExpr.Lparen", Field, 2},
-		{"TypeAssertExpr.Rparen", Field, 2},
-		{"TypeAssertExpr.Type", Field, 0},
-		{"TypeAssertExpr.X", Field, 0},
-		{"TypeSpec", Type, 0},
-		{"TypeSpec.Assign", Field, 9},
-		{"TypeSpec.Comment", Field, 0},
-		{"TypeSpec.Doc", Field, 0},
-		{"TypeSpec.Name", Field, 0},
-		{"TypeSpec.Type", Field, 0},
-		{"TypeSpec.TypeParams", Field, 18},
-		{"TypeSwitchStmt", Type, 0},
-		{"TypeSwitchStmt.Assign", Field, 0},
-		{"TypeSwitchStmt.Body", Field, 0},
-		{"TypeSwitchStmt.Init", Field, 0},
-		{"TypeSwitchStmt.Switch", Field, 0},
-		{"UnaryExpr", Type, 0},
-		{"UnaryExpr.Op", Field, 0},
-		{"UnaryExpr.OpPos", Field, 0},
-		{"UnaryExpr.X", Field, 0},
-		{"Unparen", Func, 22},
-		{"ValueSpec", Type, 0},
-		{"ValueSpec.Comment", Field, 0},
-		{"ValueSpec.Doc", Field, 0},
-		{"ValueSpec.Names", Field, 0},
-		{"ValueSpec.Type", Field, 0},
-		{"ValueSpec.Values", Field, 0},
-		{"Var", Const, 0},
-		{"Visitor", Type, 0},
-		{"Walk", Func, 0},
+		{"(*ArrayType).End", Method, 0, ""},
+		{"(*ArrayType).Pos", Method, 0, ""},
+		{"(*AssignStmt).End", Method, 0, ""},
+		{"(*AssignStmt).Pos", Method, 0, ""},
+		{"(*BadDecl).End", Method, 0, ""},
+		{"(*BadDecl).Pos", Method, 0, ""},
+		{"(*BadExpr).End", Method, 0, ""},
+		{"(*BadExpr).Pos", Method, 0, ""},
+		{"(*BadStmt).End", Method, 0, ""},
+		{"(*BadStmt).Pos", Method, 0, ""},
+		{"(*BasicLit).End", Method, 0, ""},
+		{"(*BasicLit).Pos", Method, 0, ""},
+		{"(*BinaryExpr).End", Method, 0, ""},
+		{"(*BinaryExpr).Pos", Method, 0, ""},
+		{"(*BlockStmt).End", Method, 0, ""},
+		{"(*BlockStmt).Pos", Method, 0, ""},
+		{"(*BranchStmt).End", Method, 0, ""},
+		{"(*BranchStmt).Pos", Method, 0, ""},
+		{"(*CallExpr).End", Method, 0, ""},
+		{"(*CallExpr).Pos", Method, 0, ""},
+		{"(*CaseClause).End", Method, 0, ""},
+		{"(*CaseClause).Pos", Method, 0, ""},
+		{"(*ChanType).End", Method, 0, ""},
+		{"(*ChanType).Pos", Method, 0, ""},
+		{"(*CommClause).End", Method, 0, ""},
+		{"(*CommClause).Pos", Method, 0, ""},
+		{"(*Comment).End", Method, 0, ""},
+		{"(*Comment).Pos", Method, 0, ""},
+		{"(*CommentGroup).End", Method, 0, ""},
+		{"(*CommentGroup).Pos", Method, 0, ""},
+		{"(*CommentGroup).Text", Method, 0, ""},
+		{"(*CompositeLit).End", Method, 0, ""},
+		{"(*CompositeLit).Pos", Method, 0, ""},
+		{"(*DeclStmt).End", Method, 0, ""},
+		{"(*DeclStmt).Pos", Method, 0, ""},
+		{"(*DeferStmt).End", Method, 0, ""},
+		{"(*DeferStmt).Pos", Method, 0, ""},
+		{"(*Ellipsis).End", Method, 0, ""},
+		{"(*Ellipsis).Pos", Method, 0, ""},
+		{"(*EmptyStmt).End", Method, 0, ""},
+		{"(*EmptyStmt).Pos", Method, 0, ""},
+		{"(*ExprStmt).End", Method, 0, ""},
+		{"(*ExprStmt).Pos", Method, 0, ""},
+		{"(*Field).End", Method, 0, ""},
+		{"(*Field).Pos", Method, 0, ""},
+		{"(*FieldList).End", Method, 0, ""},
+		{"(*FieldList).NumFields", Method, 0, ""},
+		{"(*FieldList).Pos", Method, 0, ""},
+		{"(*File).End", Method, 0, ""},
+		{"(*File).Pos", Method, 0, ""},
+		{"(*ForStmt).End", Method, 0, ""},
+		{"(*ForStmt).Pos", Method, 0, ""},
+		{"(*FuncDecl).End", Method, 0, ""},
+		{"(*FuncDecl).Pos", Method, 0, ""},
+		{"(*FuncLit).End", Method, 0, ""},
+		{"(*FuncLit).Pos", Method, 0, ""},
+		{"(*FuncType).End", Method, 0, ""},
+		{"(*FuncType).Pos", Method, 0, ""},
+		{"(*GenDecl).End", Method, 0, ""},
+		{"(*GenDecl).Pos", Method, 0, ""},
+		{"(*GoStmt).End", Method, 0, ""},
+		{"(*GoStmt).Pos", Method, 0, ""},
+		{"(*Ident).End", Method, 0, ""},
+		{"(*Ident).IsExported", Method, 0, ""},
+		{"(*Ident).Pos", Method, 0, ""},
+		{"(*Ident).String", Method, 0, ""},
+		{"(*IfStmt).End", Method, 0, ""},
+		{"(*IfStmt).Pos", Method, 0, ""},
+		{"(*ImportSpec).End", Method, 0, ""},
+		{"(*ImportSpec).Pos", Method, 0, ""},
+		{"(*IncDecStmt).End", Method, 0, ""},
+		{"(*IncDecStmt).Pos", Method, 0, ""},
+		{"(*IndexExpr).End", Method, 0, ""},
+		{"(*IndexExpr).Pos", Method, 0, ""},
+		{"(*IndexListExpr).End", Method, 18, ""},
+		{"(*IndexListExpr).Pos", Method, 18, ""},
+		{"(*InterfaceType).End", Method, 0, ""},
+		{"(*InterfaceType).Pos", Method, 0, ""},
+		{"(*KeyValueExpr).End", Method, 0, ""},
+		{"(*KeyValueExpr).Pos", Method, 0, ""},
+		{"(*LabeledStmt).End", Method, 0, ""},
+		{"(*LabeledStmt).Pos", Method, 0, ""},
+		{"(*MapType).End", Method, 0, ""},
+		{"(*MapType).Pos", Method, 0, ""},
+		{"(*Object).Pos", Method, 0, ""},
+		{"(*Package).End", Method, 0, ""},
+		{"(*Package).Pos", Method, 0, ""},
+		{"(*ParenExpr).End", Method, 0, ""},
+		{"(*ParenExpr).Pos", Method, 0, ""},
+		{"(*RangeStmt).End", Method, 0, ""},
+		{"(*RangeStmt).Pos", Method, 0, ""},
+		{"(*ReturnStmt).End", Method, 0, ""},
+		{"(*ReturnStmt).Pos", Method, 0, ""},
+		{"(*Scope).Insert", Method, 0, ""},
+		{"(*Scope).Lookup", Method, 0, ""},
+		{"(*Scope).String", Method, 0, ""},
+		{"(*SelectStmt).End", Method, 0, ""},
+		{"(*SelectStmt).Pos", Method, 0, ""},
+		{"(*SelectorExpr).End", Method, 0, ""},
+		{"(*SelectorExpr).Pos", Method, 0, ""},
+		{"(*SendStmt).End", Method, 0, ""},
+		{"(*SendStmt).Pos", Method, 0, ""},
+		{"(*SliceExpr).End", Method, 0, ""},
+		{"(*SliceExpr).Pos", Method, 0, ""},
+		{"(*StarExpr).End", Method, 0, ""},
+		{"(*StarExpr).Pos", Method, 0, ""},
+		{"(*StructType).End", Method, 0, ""},
+		{"(*StructType).Pos", Method, 0, ""},
+		{"(*SwitchStmt).End", Method, 0, ""},
+		{"(*SwitchStmt).Pos", Method, 0, ""},
+		{"(*TypeAssertExpr).End", Method, 0, ""},
+		{"(*TypeAssertExpr).Pos", Method, 0, ""},
+		{"(*TypeSpec).End", Method, 0, ""},
+		{"(*TypeSpec).Pos", Method, 0, ""},
+		{"(*TypeSwitchStmt).End", Method, 0, ""},
+		{"(*TypeSwitchStmt).Pos", Method, 0, ""},
+		{"(*UnaryExpr).End", Method, 0, ""},
+		{"(*UnaryExpr).Pos", Method, 0, ""},
+		{"(*ValueSpec).End", Method, 0, ""},
+		{"(*ValueSpec).Pos", Method, 0, ""},
+		{"(CommentMap).Comments", Method, 1, ""},
+		{"(CommentMap).Filter", Method, 1, ""},
+		{"(CommentMap).String", Method, 1, ""},
+		{"(CommentMap).Update", Method, 1, ""},
+		{"(ObjKind).String", Method, 0, ""},
+		{"ArrayType", Type, 0, ""},
+		{"ArrayType.Elt", Field, 0, ""},
+		{"ArrayType.Lbrack", Field, 0, ""},
+		{"ArrayType.Len", Field, 0, ""},
+		{"AssignStmt", Type, 0, ""},
+		{"AssignStmt.Lhs", Field, 0, ""},
+		{"AssignStmt.Rhs", Field, 0, ""},
+		{"AssignStmt.Tok", Field, 0, ""},
+		{"AssignStmt.TokPos", Field, 0, ""},
+		{"Bad", Const, 0, ""},
+		{"BadDecl", Type, 0, ""},
+		{"BadDecl.From", Field, 0, ""},
+		{"BadDecl.To", Field, 0, ""},
+		{"BadExpr", Type, 0, ""},
+		{"BadExpr.From", Field, 0, ""},
+		{"BadExpr.To", Field, 0, ""},
+		{"BadStmt", Type, 0, ""},
+		{"BadStmt.From", Field, 0, ""},
+		{"BadStmt.To", Field, 0, ""},
+		{"BasicLit", Type, 0, ""},
+		{"BasicLit.Kind", Field, 0, ""},
+		{"BasicLit.Value", Field, 0, ""},
+		{"BasicLit.ValuePos", Field, 0, ""},
+		{"BinaryExpr", Type, 0, ""},
+		{"BinaryExpr.Op", Field, 0, ""},
+		{"BinaryExpr.OpPos", Field, 0, ""},
+		{"BinaryExpr.X", Field, 0, ""},
+		{"BinaryExpr.Y", Field, 0, ""},
+		{"BlockStmt", Type, 0, ""},
+		{"BlockStmt.Lbrace", Field, 0, ""},
+		{"BlockStmt.List", Field, 0, ""},
+		{"BlockStmt.Rbrace", Field, 0, ""},
+		{"BranchStmt", Type, 0, ""},
+		{"BranchStmt.Label", Field, 0, ""},
+		{"BranchStmt.Tok", Field, 0, ""},
+		{"BranchStmt.TokPos", Field, 0, ""},
+		{"CallExpr", Type, 0, ""},
+		{"CallExpr.Args", Field, 0, ""},
+		{"CallExpr.Ellipsis", Field, 0, ""},
+		{"CallExpr.Fun", Field, 0, ""},
+		{"CallExpr.Lparen", Field, 0, ""},
+		{"CallExpr.Rparen", Field, 0, ""},
+		{"CaseClause", Type, 0, ""},
+		{"CaseClause.Body", Field, 0, ""},
+		{"CaseClause.Case", Field, 0, ""},
+		{"CaseClause.Colon", Field, 0, ""},
+		{"CaseClause.List", Field, 0, ""},
+		{"ChanDir", Type, 0, ""},
+		{"ChanType", Type, 0, ""},
+		{"ChanType.Arrow", Field, 1, ""},
+		{"ChanType.Begin", Field, 0, ""},
+		{"ChanType.Dir", Field, 0, ""},
+		{"ChanType.Value", Field, 0, ""},
+		{"CommClause", Type, 0, ""},
+		{"CommClause.Body", Field, 0, ""},
+		{"CommClause.Case", Field, 0, ""},
+		{"CommClause.Colon", Field, 0, ""},
+		{"CommClause.Comm", Field, 0, ""},
+		{"Comment", Type, 0, ""},
+		{"Comment.Slash", Field, 0, ""},
+		{"Comment.Text", Field, 0, ""},
+		{"CommentGroup", Type, 0, ""},
+		{"CommentGroup.List", Field, 0, ""},
+		{"CommentMap", Type, 1, ""},
+		{"CompositeLit", Type, 0, ""},
+		{"CompositeLit.Elts", Field, 0, ""},
+		{"CompositeLit.Incomplete", Field, 11, ""},
+		{"CompositeLit.Lbrace", Field, 0, ""},
+		{"CompositeLit.Rbrace", Field, 0, ""},
+		{"CompositeLit.Type", Field, 0, ""},
+		{"Con", Const, 0, ""},
+		{"Decl", Type, 0, ""},
+		{"DeclStmt", Type, 0, ""},
+		{"DeclStmt.Decl", Field, 0, ""},
+		{"DeferStmt", Type, 0, ""},
+		{"DeferStmt.Call", Field, 0, ""},
+		{"DeferStmt.Defer", Field, 0, ""},
+		{"Ellipsis", Type, 0, ""},
+		{"Ellipsis.Ellipsis", Field, 0, ""},
+		{"Ellipsis.Elt", Field, 0, ""},
+		{"EmptyStmt", Type, 0, ""},
+		{"EmptyStmt.Implicit", Field, 5, ""},
+		{"EmptyStmt.Semicolon", Field, 0, ""},
+		{"Expr", Type, 0, ""},
+		{"ExprStmt", Type, 0, ""},
+		{"ExprStmt.X", Field, 0, ""},
+		{"Field", Type, 0, ""},
+		{"Field.Comment", Field, 0, ""},
+		{"Field.Doc", Field, 0, ""},
+		{"Field.Names", Field, 0, ""},
+		{"Field.Tag", Field, 0, ""},
+		{"Field.Type", Field, 0, ""},
+		{"FieldFilter", Type, 0, ""},
+		{"FieldList", Type, 0, ""},
+		{"FieldList.Closing", Field, 0, ""},
+		{"FieldList.List", Field, 0, ""},
+		{"FieldList.Opening", Field, 0, ""},
+		{"File", Type, 0, ""},
+		{"File.Comments", Field, 0, ""},
+		{"File.Decls", Field, 0, ""},
+		{"File.Doc", Field, 0, ""},
+		{"File.FileEnd", Field, 20, ""},
+		{"File.FileStart", Field, 20, ""},
+		{"File.GoVersion", Field, 21, ""},
+		{"File.Imports", Field, 0, ""},
+		{"File.Name", Field, 0, ""},
+		{"File.Package", Field, 0, ""},
+		{"File.Scope", Field, 0, ""},
+		{"File.Unresolved", Field, 0, ""},
+		{"FileExports", Func, 0, "func(src *File) bool"},
+		{"Filter", Type, 0, ""},
+		{"FilterDecl", Func, 0, "func(decl Decl, f Filter) bool"},
+		{"FilterFile", Func, 0, "func(src *File, f Filter) bool"},
+		{"FilterFuncDuplicates", Const, 0, ""},
+		{"FilterImportDuplicates", Const, 0, ""},
+		{"FilterPackage", Func, 0, "func(pkg *Package, f Filter) bool"},
+		{"FilterUnassociatedComments", Const, 0, ""},
+		{"ForStmt", Type, 0, ""},
+		{"ForStmt.Body", Field, 0, ""},
+		{"ForStmt.Cond", Field, 0, ""},
+		{"ForStmt.For", Field, 0, ""},
+		{"ForStmt.Init", Field, 0, ""},
+		{"ForStmt.Post", Field, 0, ""},
+		{"Fprint", Func, 0, "func(w io.Writer, fset *token.FileSet, x any, f FieldFilter) error"},
+		{"Fun", Const, 0, ""},
+		{"FuncDecl", Type, 0, ""},
+		{"FuncDecl.Body", Field, 0, ""},
+		{"FuncDecl.Doc", Field, 0, ""},
+		{"FuncDecl.Name", Field, 0, ""},
+		{"FuncDecl.Recv", Field, 0, ""},
+		{"FuncDecl.Type", Field, 0, ""},
+		{"FuncLit", Type, 0, ""},
+		{"FuncLit.Body", Field, 0, ""},
+		{"FuncLit.Type", Field, 0, ""},
+		{"FuncType", Type, 0, ""},
+		{"FuncType.Func", Field, 0, ""},
+		{"FuncType.Params", Field, 0, ""},
+		{"FuncType.Results", Field, 0, ""},
+		{"FuncType.TypeParams", Field, 18, ""},
+		{"GenDecl", Type, 0, ""},
+		{"GenDecl.Doc", Field, 0, ""},
+		{"GenDecl.Lparen", Field, 0, ""},
+		{"GenDecl.Rparen", Field, 0, ""},
+		{"GenDecl.Specs", Field, 0, ""},
+		{"GenDecl.Tok", Field, 0, ""},
+		{"GenDecl.TokPos", Field, 0, ""},
+		{"GoStmt", Type, 0, ""},
+		{"GoStmt.Call", Field, 0, ""},
+		{"GoStmt.Go", Field, 0, ""},
+		{"Ident", Type, 0, ""},
+		{"Ident.Name", Field, 0, ""},
+		{"Ident.NamePos", Field, 0, ""},
+		{"Ident.Obj", Field, 0, ""},
+		{"IfStmt", Type, 0, ""},
+		{"IfStmt.Body", Field, 0, ""},
+		{"IfStmt.Cond", Field, 0, ""},
+		{"IfStmt.Else", Field, 0, ""},
+		{"IfStmt.If", Field, 0, ""},
+		{"IfStmt.Init", Field, 0, ""},
+		{"ImportSpec", Type, 0, ""},
+		{"ImportSpec.Comment", Field, 0, ""},
+		{"ImportSpec.Doc", Field, 0, ""},
+		{"ImportSpec.EndPos", Field, 0, ""},
+		{"ImportSpec.Name", Field, 0, ""},
+		{"ImportSpec.Path", Field, 0, ""},
+		{"Importer", Type, 0, ""},
+		{"IncDecStmt", Type, 0, ""},
+		{"IncDecStmt.Tok", Field, 0, ""},
+		{"IncDecStmt.TokPos", Field, 0, ""},
+		{"IncDecStmt.X", Field, 0, ""},
+		{"IndexExpr", Type, 0, ""},
+		{"IndexExpr.Index", Field, 0, ""},
+		{"IndexExpr.Lbrack", Field, 0, ""},
+		{"IndexExpr.Rbrack", Field, 0, ""},
+		{"IndexExpr.X", Field, 0, ""},
+		{"IndexListExpr", Type, 18, ""},
+		{"IndexListExpr.Indices", Field, 18, ""},
+		{"IndexListExpr.Lbrack", Field, 18, ""},
+		{"IndexListExpr.Rbrack", Field, 18, ""},
+		{"IndexListExpr.X", Field, 18, ""},
+		{"Inspect", Func, 0, "func(node Node, f func(Node) bool)"},
+		{"InterfaceType", Type, 0, ""},
+		{"InterfaceType.Incomplete", Field, 0, ""},
+		{"InterfaceType.Interface", Field, 0, ""},
+		{"InterfaceType.Methods", Field, 0, ""},
+		{"IsExported", Func, 0, "func(name string) bool"},
+		{"IsGenerated", Func, 21, "func(file *File) bool"},
+		{"KeyValueExpr", Type, 0, ""},
+		{"KeyValueExpr.Colon", Field, 0, ""},
+		{"KeyValueExpr.Key", Field, 0, ""},
+		{"KeyValueExpr.Value", Field, 0, ""},
+		{"LabeledStmt", Type, 0, ""},
+		{"LabeledStmt.Colon", Field, 0, ""},
+		{"LabeledStmt.Label", Field, 0, ""},
+		{"LabeledStmt.Stmt", Field, 0, ""},
+		{"Lbl", Const, 0, ""},
+		{"MapType", Type, 0, ""},
+		{"MapType.Key", Field, 0, ""},
+		{"MapType.Map", Field, 0, ""},
+		{"MapType.Value", Field, 0, ""},
+		{"MergeMode", Type, 0, ""},
+		{"MergePackageFiles", Func, 0, "func(pkg *Package, mode MergeMode) *File"},
+		{"NewCommentMap", Func, 1, "func(fset *token.FileSet, node Node, comments []*CommentGroup) CommentMap"},
+		{"NewIdent", Func, 0, "func(name string) *Ident"},
+		{"NewObj", Func, 0, "func(kind ObjKind, name string) *Object"},
+		{"NewPackage", Func, 0, "func(fset *token.FileSet, files map[string]*File, importer Importer, universe *Scope) (*Package, error)"},
+		{"NewScope", Func, 0, "func(outer *Scope) *Scope"},
+		{"Node", Type, 0, ""},
+		{"NotNilFilter", Func, 0, "func(_ string, v reflect.Value) bool"},
+		{"ObjKind", Type, 0, ""},
+		{"Object", Type, 0, ""},
+		{"Object.Data", Field, 0, ""},
+		{"Object.Decl", Field, 0, ""},
+		{"Object.Kind", Field, 0, ""},
+		{"Object.Name", Field, 0, ""},
+		{"Object.Type", Field, 0, ""},
+		{"Package", Type, 0, ""},
+		{"Package.Files", Field, 0, ""},
+		{"Package.Imports", Field, 0, ""},
+		{"Package.Name", Field, 0, ""},
+		{"Package.Scope", Field, 0, ""},
+		{"PackageExports", Func, 0, "func(pkg *Package) bool"},
+		{"ParenExpr", Type, 0, ""},
+		{"ParenExpr.Lparen", Field, 0, ""},
+		{"ParenExpr.Rparen", Field, 0, ""},
+		{"ParenExpr.X", Field, 0, ""},
+		{"Pkg", Const, 0, ""},
+		{"Preorder", Func, 23, "func(root Node) iter.Seq[Node]"},
+		{"PreorderStack", Func, 25, "func(root Node, stack []Node, f func(n Node, stack []Node) bool)"},
+		{"Print", Func, 0, "func(fset *token.FileSet, x any) error"},
+		{"RECV", Const, 0, ""},
+		{"RangeStmt", Type, 0, ""},
+		{"RangeStmt.Body", Field, 0, ""},
+		{"RangeStmt.For", Field, 0, ""},
+		{"RangeStmt.Key", Field, 0, ""},
+		{"RangeStmt.Range", Field, 20, ""},
+		{"RangeStmt.Tok", Field, 0, ""},
+		{"RangeStmt.TokPos", Field, 0, ""},
+		{"RangeStmt.Value", Field, 0, ""},
+		{"RangeStmt.X", Field, 0, ""},
+		{"ReturnStmt", Type, 0, ""},
+		{"ReturnStmt.Results", Field, 0, ""},
+		{"ReturnStmt.Return", Field, 0, ""},
+		{"SEND", Const, 0, ""},
+		{"Scope", Type, 0, ""},
+		{"Scope.Objects", Field, 0, ""},
+		{"Scope.Outer", Field, 0, ""},
+		{"SelectStmt", Type, 0, ""},
+		{"SelectStmt.Body", Field, 0, ""},
+		{"SelectStmt.Select", Field, 0, ""},
+		{"SelectorExpr", Type, 0, ""},
+		{"SelectorExpr.Sel", Field, 0, ""},
+		{"SelectorExpr.X", Field, 0, ""},
+		{"SendStmt", Type, 0, ""},
+		{"SendStmt.Arrow", Field, 0, ""},
+		{"SendStmt.Chan", Field, 0, ""},
+		{"SendStmt.Value", Field, 0, ""},
+		{"SliceExpr", Type, 0, ""},
+		{"SliceExpr.High", Field, 0, ""},
+		{"SliceExpr.Lbrack", Field, 0, ""},
+		{"SliceExpr.Low", Field, 0, ""},
+		{"SliceExpr.Max", Field, 2, ""},
+		{"SliceExpr.Rbrack", Field, 0, ""},
+		{"SliceExpr.Slice3", Field, 2, ""},
+		{"SliceExpr.X", Field, 0, ""},
+		{"SortImports", Func, 0, "func(fset *token.FileSet, f *File)"},
+		{"Spec", Type, 0, ""},
+		{"StarExpr", Type, 0, ""},
+		{"StarExpr.Star", Field, 0, ""},
+		{"StarExpr.X", Field, 0, ""},
+		{"Stmt", Type, 0, ""},
+		{"StructType", Type, 0, ""},
+		{"StructType.Fields", Field, 0, ""},
+		{"StructType.Incomplete", Field, 0, ""},
+		{"StructType.Struct", Field, 0, ""},
+		{"SwitchStmt", Type, 0, ""},
+		{"SwitchStmt.Body", Field, 0, ""},
+		{"SwitchStmt.Init", Field, 0, ""},
+		{"SwitchStmt.Switch", Field, 0, ""},
+		{"SwitchStmt.Tag", Field, 0, ""},
+		{"Typ", Const, 0, ""},
+		{"TypeAssertExpr", Type, 0, ""},
+		{"TypeAssertExpr.Lparen", Field, 2, ""},
+		{"TypeAssertExpr.Rparen", Field, 2, ""},
+		{"TypeAssertExpr.Type", Field, 0, ""},
+		{"TypeAssertExpr.X", Field, 0, ""},
+		{"TypeSpec", Type, 0, ""},
+		{"TypeSpec.Assign", Field, 9, ""},
+		{"TypeSpec.Comment", Field, 0, ""},
+		{"TypeSpec.Doc", Field, 0, ""},
+		{"TypeSpec.Name", Field, 0, ""},
+		{"TypeSpec.Type", Field, 0, ""},
+		{"TypeSpec.TypeParams", Field, 18, ""},
+		{"TypeSwitchStmt", Type, 0, ""},
+		{"TypeSwitchStmt.Assign", Field, 0, ""},
+		{"TypeSwitchStmt.Body", Field, 0, ""},
+		{"TypeSwitchStmt.Init", Field, 0, ""},
+		{"TypeSwitchStmt.Switch", Field, 0, ""},
+		{"UnaryExpr", Type, 0, ""},
+		{"UnaryExpr.Op", Field, 0, ""},
+		{"UnaryExpr.OpPos", Field, 0, ""},
+		{"UnaryExpr.X", Field, 0, ""},
+		{"Unparen", Func, 22, "func(e Expr) Expr"},
+		{"ValueSpec", Type, 0, ""},
+		{"ValueSpec.Comment", Field, 0, ""},
+		{"ValueSpec.Doc", Field, 0, ""},
+		{"ValueSpec.Names", Field, 0, ""},
+		{"ValueSpec.Type", Field, 0, ""},
+		{"ValueSpec.Values", Field, 0, ""},
+		{"Var", Const, 0, ""},
+		{"Visitor", Type, 0, ""},
+		{"Walk", Func, 0, "func(v Visitor, node Node)"},
 	},
 	"go/build": {
-		{"(*Context).Import", Method, 0},
-		{"(*Context).ImportDir", Method, 0},
-		{"(*Context).MatchFile", Method, 2},
-		{"(*Context).SrcDirs", Method, 0},
-		{"(*MultiplePackageError).Error", Method, 4},
-		{"(*NoGoError).Error", Method, 0},
-		{"(*Package).IsCommand", Method, 0},
-		{"AllowBinary", Const, 0},
-		{"ArchChar", Func, 0},
-		{"Context", Type, 0},
-		{"Context.BuildTags", Field, 0},
-		{"Context.CgoEnabled", Field, 0},
-		{"Context.Compiler", Field, 0},
-		{"Context.Dir", Field, 14},
-		{"Context.GOARCH", Field, 0},
-		{"Context.GOOS", Field, 0},
-		{"Context.GOPATH", Field, 0},
-		{"Context.GOROOT", Field, 0},
-		{"Context.HasSubdir", Field, 0},
-		{"Context.InstallSuffix", Field, 1},
-		{"Context.IsAbsPath", Field, 0},
-		{"Context.IsDir", Field, 0},
-		{"Context.JoinPath", Field, 0},
-		{"Context.OpenFile", Field, 0},
-		{"Context.ReadDir", Field, 0},
-		{"Context.ReleaseTags", Field, 1},
-		{"Context.SplitPathList", Field, 0},
-		{"Context.ToolTags", Field, 17},
-		{"Context.UseAllFiles", Field, 0},
-		{"Default", Var, 0},
-		{"Directive", Type, 21},
-		{"Directive.Pos", Field, 21},
-		{"Directive.Text", Field, 21},
-		{"FindOnly", Const, 0},
-		{"IgnoreVendor", Const, 6},
-		{"Import", Func, 0},
-		{"ImportComment", Const, 4},
-		{"ImportDir", Func, 0},
-		{"ImportMode", Type, 0},
-		{"IsLocalImport", Func, 0},
-		{"MultiplePackageError", Type, 4},
-		{"MultiplePackageError.Dir", Field, 4},
-		{"MultiplePackageError.Files", Field, 4},
-		{"MultiplePackageError.Packages", Field, 4},
-		{"NoGoError", Type, 0},
-		{"NoGoError.Dir", Field, 0},
-		{"Package", Type, 0},
-		{"Package.AllTags", Field, 2},
-		{"Package.BinDir", Field, 0},
-		{"Package.BinaryOnly", Field, 7},
-		{"Package.CFiles", Field, 0},
-		{"Package.CXXFiles", Field, 2},
-		{"Package.CgoCFLAGS", Field, 0},
-		{"Package.CgoCPPFLAGS", Field, 2},
-		{"Package.CgoCXXFLAGS", Field, 2},
-		{"Package.CgoFFLAGS", Field, 7},
-		{"Package.CgoFiles", Field, 0},
-		{"Package.CgoLDFLAGS", Field, 0},
-		{"Package.CgoPkgConfig", Field, 0},
-		{"Package.ConflictDir", Field, 2},
-		{"Package.Dir", Field, 0},
-		{"Package.Directives", Field, 21},
-		{"Package.Doc", Field, 0},
-		{"Package.EmbedPatternPos", Field, 16},
-		{"Package.EmbedPatterns", Field, 16},
-		{"Package.FFiles", Field, 7},
-		{"Package.GoFiles", Field, 0},
-		{"Package.Goroot", Field, 0},
-		{"Package.HFiles", Field, 0},
-		{"Package.IgnoredGoFiles", Field, 1},
-		{"Package.IgnoredOtherFiles", Field, 16},
-		{"Package.ImportComment", Field, 4},
-		{"Package.ImportPath", Field, 0},
-		{"Package.ImportPos", Field, 0},
-		{"Package.Imports", Field, 0},
-		{"Package.InvalidGoFiles", Field, 6},
-		{"Package.MFiles", Field, 3},
-		{"Package.Name", Field, 0},
-		{"Package.PkgObj", Field, 0},
-		{"Package.PkgRoot", Field, 0},
-		{"Package.PkgTargetRoot", Field, 5},
-		{"Package.Root", Field, 0},
-		{"Package.SFiles", Field, 0},
-		{"Package.SrcRoot", Field, 0},
-		{"Package.SwigCXXFiles", Field, 1},
-		{"Package.SwigFiles", Field, 1},
-		{"Package.SysoFiles", Field, 0},
-		{"Package.TestDirectives", Field, 21},
-		{"Package.TestEmbedPatternPos", Field, 16},
-		{"Package.TestEmbedPatterns", Field, 16},
-		{"Package.TestGoFiles", Field, 0},
-		{"Package.TestImportPos", Field, 0},
-		{"Package.TestImports", Field, 0},
-		{"Package.XTestDirectives", Field, 21},
-		{"Package.XTestEmbedPatternPos", Field, 16},
-		{"Package.XTestEmbedPatterns", Field, 16},
-		{"Package.XTestGoFiles", Field, 0},
-		{"Package.XTestImportPos", Field, 0},
-		{"Package.XTestImports", Field, 0},
-		{"ToolDir", Var, 0},
+		{"(*Context).Import", Method, 0, ""},
+		{"(*Context).ImportDir", Method, 0, ""},
+		{"(*Context).MatchFile", Method, 2, ""},
+		{"(*Context).SrcDirs", Method, 0, ""},
+		{"(*MultiplePackageError).Error", Method, 4, ""},
+		{"(*NoGoError).Error", Method, 0, ""},
+		{"(*Package).IsCommand", Method, 0, ""},
+		{"AllowBinary", Const, 0, ""},
+		{"ArchChar", Func, 0, "func(goarch string) (string, error)"},
+		{"Context", Type, 0, ""},
+		{"Context.BuildTags", Field, 0, ""},
+		{"Context.CgoEnabled", Field, 0, ""},
+		{"Context.Compiler", Field, 0, ""},
+		{"Context.Dir", Field, 14, ""},
+		{"Context.GOARCH", Field, 0, ""},
+		{"Context.GOOS", Field, 0, ""},
+		{"Context.GOPATH", Field, 0, ""},
+		{"Context.GOROOT", Field, 0, ""},
+		{"Context.HasSubdir", Field, 0, ""},
+		{"Context.InstallSuffix", Field, 1, ""},
+		{"Context.IsAbsPath", Field, 0, ""},
+		{"Context.IsDir", Field, 0, ""},
+		{"Context.JoinPath", Field, 0, ""},
+		{"Context.OpenFile", Field, 0, ""},
+		{"Context.ReadDir", Field, 0, ""},
+		{"Context.ReleaseTags", Field, 1, ""},
+		{"Context.SplitPathList", Field, 0, ""},
+		{"Context.ToolTags", Field, 17, ""},
+		{"Context.UseAllFiles", Field, 0, ""},
+		{"Default", Var, 0, ""},
+		{"Directive", Type, 21, ""},
+		{"Directive.Pos", Field, 21, ""},
+		{"Directive.Text", Field, 21, ""},
+		{"FindOnly", Const, 0, ""},
+		{"IgnoreVendor", Const, 6, ""},
+		{"Import", Func, 0, "func(path string, srcDir string, mode ImportMode) (*Package, error)"},
+		{"ImportComment", Const, 4, ""},
+		{"ImportDir", Func, 0, "func(dir string, mode ImportMode) (*Package, error)"},
+		{"ImportMode", Type, 0, ""},
+		{"IsLocalImport", Func, 0, "func(path string) bool"},
+		{"MultiplePackageError", Type, 4, ""},
+		{"MultiplePackageError.Dir", Field, 4, ""},
+		{"MultiplePackageError.Files", Field, 4, ""},
+		{"MultiplePackageError.Packages", Field, 4, ""},
+		{"NoGoError", Type, 0, ""},
+		{"NoGoError.Dir", Field, 0, ""},
+		{"Package", Type, 0, ""},
+		{"Package.AllTags", Field, 2, ""},
+		{"Package.BinDir", Field, 0, ""},
+		{"Package.BinaryOnly", Field, 7, ""},
+		{"Package.CFiles", Field, 0, ""},
+		{"Package.CXXFiles", Field, 2, ""},
+		{"Package.CgoCFLAGS", Field, 0, ""},
+		{"Package.CgoCPPFLAGS", Field, 2, ""},
+		{"Package.CgoCXXFLAGS", Field, 2, ""},
+		{"Package.CgoFFLAGS", Field, 7, ""},
+		{"Package.CgoFiles", Field, 0, ""},
+		{"Package.CgoLDFLAGS", Field, 0, ""},
+		{"Package.CgoPkgConfig", Field, 0, ""},
+		{"Package.ConflictDir", Field, 2, ""},
+		{"Package.Dir", Field, 0, ""},
+		{"Package.Directives", Field, 21, ""},
+		{"Package.Doc", Field, 0, ""},
+		{"Package.EmbedPatternPos", Field, 16, ""},
+		{"Package.EmbedPatterns", Field, 16, ""},
+		{"Package.FFiles", Field, 7, ""},
+		{"Package.GoFiles", Field, 0, ""},
+		{"Package.Goroot", Field, 0, ""},
+		{"Package.HFiles", Field, 0, ""},
+		{"Package.IgnoredGoFiles", Field, 1, ""},
+		{"Package.IgnoredOtherFiles", Field, 16, ""},
+		{"Package.ImportComment", Field, 4, ""},
+		{"Package.ImportPath", Field, 0, ""},
+		{"Package.ImportPos", Field, 0, ""},
+		{"Package.Imports", Field, 0, ""},
+		{"Package.InvalidGoFiles", Field, 6, ""},
+		{"Package.MFiles", Field, 3, ""},
+		{"Package.Name", Field, 0, ""},
+		{"Package.PkgObj", Field, 0, ""},
+		{"Package.PkgRoot", Field, 0, ""},
+		{"Package.PkgTargetRoot", Field, 5, ""},
+		{"Package.Root", Field, 0, ""},
+		{"Package.SFiles", Field, 0, ""},
+		{"Package.SrcRoot", Field, 0, ""},
+		{"Package.SwigCXXFiles", Field, 1, ""},
+		{"Package.SwigFiles", Field, 1, ""},
+		{"Package.SysoFiles", Field, 0, ""},
+		{"Package.TestDirectives", Field, 21, ""},
+		{"Package.TestEmbedPatternPos", Field, 16, ""},
+		{"Package.TestEmbedPatterns", Field, 16, ""},
+		{"Package.TestGoFiles", Field, 0, ""},
+		{"Package.TestImportPos", Field, 0, ""},
+		{"Package.TestImports", Field, 0, ""},
+		{"Package.XTestDirectives", Field, 21, ""},
+		{"Package.XTestEmbedPatternPos", Field, 16, ""},
+		{"Package.XTestEmbedPatterns", Field, 16, ""},
+		{"Package.XTestGoFiles", Field, 0, ""},
+		{"Package.XTestImportPos", Field, 0, ""},
+		{"Package.XTestImports", Field, 0, ""},
+		{"ToolDir", Var, 0, ""},
 	},
 	"go/build/constraint": {
-		{"(*AndExpr).Eval", Method, 16},
-		{"(*AndExpr).String", Method, 16},
-		{"(*NotExpr).Eval", Method, 16},
-		{"(*NotExpr).String", Method, 16},
-		{"(*OrExpr).Eval", Method, 16},
-		{"(*OrExpr).String", Method, 16},
-		{"(*SyntaxError).Error", Method, 16},
-		{"(*TagExpr).Eval", Method, 16},
-		{"(*TagExpr).String", Method, 16},
-		{"AndExpr", Type, 16},
-		{"AndExpr.X", Field, 16},
-		{"AndExpr.Y", Field, 16},
-		{"Expr", Type, 16},
-		{"GoVersion", Func, 21},
-		{"IsGoBuild", Func, 16},
-		{"IsPlusBuild", Func, 16},
-		{"NotExpr", Type, 16},
-		{"NotExpr.X", Field, 16},
-		{"OrExpr", Type, 16},
-		{"OrExpr.X", Field, 16},
-		{"OrExpr.Y", Field, 16},
-		{"Parse", Func, 16},
-		{"PlusBuildLines", Func, 16},
-		{"SyntaxError", Type, 16},
-		{"SyntaxError.Err", Field, 16},
-		{"SyntaxError.Offset", Field, 16},
-		{"TagExpr", Type, 16},
-		{"TagExpr.Tag", Field, 16},
+		{"(*AndExpr).Eval", Method, 16, ""},
+		{"(*AndExpr).String", Method, 16, ""},
+		{"(*NotExpr).Eval", Method, 16, ""},
+		{"(*NotExpr).String", Method, 16, ""},
+		{"(*OrExpr).Eval", Method, 16, ""},
+		{"(*OrExpr).String", Method, 16, ""},
+		{"(*SyntaxError).Error", Method, 16, ""},
+		{"(*TagExpr).Eval", Method, 16, ""},
+		{"(*TagExpr).String", Method, 16, ""},
+		{"AndExpr", Type, 16, ""},
+		{"AndExpr.X", Field, 16, ""},
+		{"AndExpr.Y", Field, 16, ""},
+		{"Expr", Type, 16, ""},
+		{"GoVersion", Func, 21, "func(x Expr) string"},
+		{"IsGoBuild", Func, 16, "func(line string) bool"},
+		{"IsPlusBuild", Func, 16, "func(line string) bool"},
+		{"NotExpr", Type, 16, ""},
+		{"NotExpr.X", Field, 16, ""},
+		{"OrExpr", Type, 16, ""},
+		{"OrExpr.X", Field, 16, ""},
+		{"OrExpr.Y", Field, 16, ""},
+		{"Parse", Func, 16, "func(line string) (Expr, error)"},
+		{"PlusBuildLines", Func, 16, "func(x Expr) ([]string, error)"},
+		{"SyntaxError", Type, 16, ""},
+		{"SyntaxError.Err", Field, 16, ""},
+		{"SyntaxError.Offset", Field, 16, ""},
+		{"TagExpr", Type, 16, ""},
+		{"TagExpr.Tag", Field, 16, ""},
 	},
 	"go/constant": {
-		{"(Kind).String", Method, 18},
-		{"BinaryOp", Func, 5},
-		{"BitLen", Func, 5},
-		{"Bool", Const, 5},
-		{"BoolVal", Func, 5},
-		{"Bytes", Func, 5},
-		{"Compare", Func, 5},
-		{"Complex", Const, 5},
-		{"Denom", Func, 5},
-		{"Float", Const, 5},
-		{"Float32Val", Func, 5},
-		{"Float64Val", Func, 5},
-		{"Imag", Func, 5},
-		{"Int", Const, 5},
-		{"Int64Val", Func, 5},
-		{"Kind", Type, 5},
-		{"Make", Func, 13},
-		{"MakeBool", Func, 5},
-		{"MakeFloat64", Func, 5},
-		{"MakeFromBytes", Func, 5},
-		{"MakeFromLiteral", Func, 5},
-		{"MakeImag", Func, 5},
-		{"MakeInt64", Func, 5},
-		{"MakeString", Func, 5},
-		{"MakeUint64", Func, 5},
-		{"MakeUnknown", Func, 5},
-		{"Num", Func, 5},
-		{"Real", Func, 5},
-		{"Shift", Func, 5},
-		{"Sign", Func, 5},
-		{"String", Const, 5},
-		{"StringVal", Func, 5},
-		{"ToComplex", Func, 6},
-		{"ToFloat", Func, 6},
-		{"ToInt", Func, 6},
-		{"Uint64Val", Func, 5},
-		{"UnaryOp", Func, 5},
-		{"Unknown", Const, 5},
-		{"Val", Func, 13},
-		{"Value", Type, 5},
+		{"(Kind).String", Method, 18, ""},
+		{"BinaryOp", Func, 5, "func(x_ Value, op token.Token, y_ Value) Value"},
+		{"BitLen", Func, 5, "func(x Value) int"},
+		{"Bool", Const, 5, ""},
+		{"BoolVal", Func, 5, "func(x Value) bool"},
+		{"Bytes", Func, 5, "func(x Value) []byte"},
+		{"Compare", Func, 5, "func(x_ Value, op token.Token, y_ Value) bool"},
+		{"Complex", Const, 5, ""},
+		{"Denom", Func, 5, "func(x Value) Value"},
+		{"Float", Const, 5, ""},
+		{"Float32Val", Func, 5, "func(x Value) (float32, bool)"},
+		{"Float64Val", Func, 5, "func(x Value) (float64, bool)"},
+		{"Imag", Func, 5, "func(x Value) Value"},
+		{"Int", Const, 5, ""},
+		{"Int64Val", Func, 5, "func(x Value) (int64, bool)"},
+		{"Kind", Type, 5, ""},
+		{"Make", Func, 13, "func(x any) Value"},
+		{"MakeBool", Func, 5, "func(b bool) Value"},
+		{"MakeFloat64", Func, 5, "func(x float64) Value"},
+		{"MakeFromBytes", Func, 5, "func(bytes []byte) Value"},
+		{"MakeFromLiteral", Func, 5, "func(lit string, tok token.Token, zero uint) Value"},
+		{"MakeImag", Func, 5, "func(x Value) Value"},
+		{"MakeInt64", Func, 5, "func(x int64) Value"},
+		{"MakeString", Func, 5, "func(s string) Value"},
+		{"MakeUint64", Func, 5, "func(x uint64) Value"},
+		{"MakeUnknown", Func, 5, "func() Value"},
+		{"Num", Func, 5, "func(x Value) Value"},
+		{"Real", Func, 5, "func(x Value) Value"},
+		{"Shift", Func, 5, "func(x Value, op token.Token, s uint) Value"},
+		{"Sign", Func, 5, "func(x Value) int"},
+		{"String", Const, 5, ""},
+		{"StringVal", Func, 5, "func(x Value) string"},
+		{"ToComplex", Func, 6, "func(x Value) Value"},
+		{"ToFloat", Func, 6, "func(x Value) Value"},
+		{"ToInt", Func, 6, "func(x Value) Value"},
+		{"Uint64Val", Func, 5, "func(x Value) (uint64, bool)"},
+		{"UnaryOp", Func, 5, "func(op token.Token, y Value, prec uint) Value"},
+		{"Unknown", Const, 5, ""},
+		{"Val", Func, 13, "func(x Value) any"},
+		{"Value", Type, 5, ""},
 	},
 	"go/doc": {
-		{"(*Package).Filter", Method, 0},
-		{"(*Package).HTML", Method, 19},
-		{"(*Package).Markdown", Method, 19},
-		{"(*Package).Parser", Method, 19},
-		{"(*Package).Printer", Method, 19},
-		{"(*Package).Synopsis", Method, 19},
-		{"(*Package).Text", Method, 19},
-		{"AllDecls", Const, 0},
-		{"AllMethods", Const, 0},
-		{"Example", Type, 0},
-		{"Example.Code", Field, 0},
-		{"Example.Comments", Field, 0},
-		{"Example.Doc", Field, 0},
-		{"Example.EmptyOutput", Field, 1},
-		{"Example.Name", Field, 0},
-		{"Example.Order", Field, 1},
-		{"Example.Output", Field, 0},
-		{"Example.Play", Field, 1},
-		{"Example.Suffix", Field, 14},
-		{"Example.Unordered", Field, 7},
-		{"Examples", Func, 0},
-		{"Filter", Type, 0},
-		{"Func", Type, 0},
-		{"Func.Decl", Field, 0},
-		{"Func.Doc", Field, 0},
-		{"Func.Examples", Field, 14},
-		{"Func.Level", Field, 0},
-		{"Func.Name", Field, 0},
-		{"Func.Orig", Field, 0},
-		{"Func.Recv", Field, 0},
-		{"IllegalPrefixes", Var, 1},
-		{"IsPredeclared", Func, 8},
-		{"Mode", Type, 0},
-		{"New", Func, 0},
-		{"NewFromFiles", Func, 14},
-		{"Note", Type, 1},
-		{"Note.Body", Field, 1},
-		{"Note.End", Field, 1},
-		{"Note.Pos", Field, 1},
-		{"Note.UID", Field, 1},
-		{"Package", Type, 0},
-		{"Package.Bugs", Field, 0},
-		{"Package.Consts", Field, 0},
-		{"Package.Doc", Field, 0},
-		{"Package.Examples", Field, 14},
-		{"Package.Filenames", Field, 0},
-		{"Package.Funcs", Field, 0},
-		{"Package.ImportPath", Field, 0},
-		{"Package.Imports", Field, 0},
-		{"Package.Name", Field, 0},
-		{"Package.Notes", Field, 1},
-		{"Package.Types", Field, 0},
-		{"Package.Vars", Field, 0},
-		{"PreserveAST", Const, 12},
-		{"Synopsis", Func, 0},
-		{"ToHTML", Func, 0},
-		{"ToText", Func, 0},
-		{"Type", Type, 0},
-		{"Type.Consts", Field, 0},
-		{"Type.Decl", Field, 0},
-		{"Type.Doc", Field, 0},
-		{"Type.Examples", Field, 14},
-		{"Type.Funcs", Field, 0},
-		{"Type.Methods", Field, 0},
-		{"Type.Name", Field, 0},
-		{"Type.Vars", Field, 0},
-		{"Value", Type, 0},
-		{"Value.Decl", Field, 0},
-		{"Value.Doc", Field, 0},
-		{"Value.Names", Field, 0},
+		{"(*Package).Filter", Method, 0, ""},
+		{"(*Package).HTML", Method, 19, ""},
+		{"(*Package).Markdown", Method, 19, ""},
+		{"(*Package).Parser", Method, 19, ""},
+		{"(*Package).Printer", Method, 19, ""},
+		{"(*Package).Synopsis", Method, 19, ""},
+		{"(*Package).Text", Method, 19, ""},
+		{"AllDecls", Const, 0, ""},
+		{"AllMethods", Const, 0, ""},
+		{"Example", Type, 0, ""},
+		{"Example.Code", Field, 0, ""},
+		{"Example.Comments", Field, 0, ""},
+		{"Example.Doc", Field, 0, ""},
+		{"Example.EmptyOutput", Field, 1, ""},
+		{"Example.Name", Field, 0, ""},
+		{"Example.Order", Field, 1, ""},
+		{"Example.Output", Field, 0, ""},
+		{"Example.Play", Field, 1, ""},
+		{"Example.Suffix", Field, 14, ""},
+		{"Example.Unordered", Field, 7, ""},
+		{"Examples", Func, 0, "func(testFiles ...*ast.File) []*Example"},
+		{"Filter", Type, 0, ""},
+		{"Func", Type, 0, ""},
+		{"Func.Decl", Field, 0, ""},
+		{"Func.Doc", Field, 0, ""},
+		{"Func.Examples", Field, 14, ""},
+		{"Func.Level", Field, 0, ""},
+		{"Func.Name", Field, 0, ""},
+		{"Func.Orig", Field, 0, ""},
+		{"Func.Recv", Field, 0, ""},
+		{"IllegalPrefixes", Var, 1, ""},
+		{"IsPredeclared", Func, 8, "func(s string) bool"},
+		{"Mode", Type, 0, ""},
+		{"New", Func, 0, "func(pkg *ast.Package, importPath string, mode Mode) *Package"},
+		{"NewFromFiles", Func, 14, "func(fset *token.FileSet, files []*ast.File, importPath string, opts ...any) (*Package, error)"},
+		{"Note", Type, 1, ""},
+		{"Note.Body", Field, 1, ""},
+		{"Note.End", Field, 1, ""},
+		{"Note.Pos", Field, 1, ""},
+		{"Note.UID", Field, 1, ""},
+		{"Package", Type, 0, ""},
+		{"Package.Bugs", Field, 0, ""},
+		{"Package.Consts", Field, 0, ""},
+		{"Package.Doc", Field, 0, ""},
+		{"Package.Examples", Field, 14, ""},
+		{"Package.Filenames", Field, 0, ""},
+		{"Package.Funcs", Field, 0, ""},
+		{"Package.ImportPath", Field, 0, ""},
+		{"Package.Imports", Field, 0, ""},
+		{"Package.Name", Field, 0, ""},
+		{"Package.Notes", Field, 1, ""},
+		{"Package.Types", Field, 0, ""},
+		{"Package.Vars", Field, 0, ""},
+		{"PreserveAST", Const, 12, ""},
+		{"Synopsis", Func, 0, "func(text string) string"},
+		{"ToHTML", Func, 0, "func(w io.Writer, text string, words map[string]string)"},
+		{"ToText", Func, 0, "func(w io.Writer, text string, prefix string, codePrefix string, width int)"},
+		{"Type", Type, 0, ""},
+		{"Type.Consts", Field, 0, ""},
+		{"Type.Decl", Field, 0, ""},
+		{"Type.Doc", Field, 0, ""},
+		{"Type.Examples", Field, 14, ""},
+		{"Type.Funcs", Field, 0, ""},
+		{"Type.Methods", Field, 0, ""},
+		{"Type.Name", Field, 0, ""},
+		{"Type.Vars", Field, 0, ""},
+		{"Value", Type, 0, ""},
+		{"Value.Decl", Field, 0, ""},
+		{"Value.Doc", Field, 0, ""},
+		{"Value.Names", Field, 0, ""},
 	},
 	"go/doc/comment": {
-		{"(*DocLink).DefaultURL", Method, 19},
-		{"(*Heading).DefaultID", Method, 19},
-		{"(*List).BlankBefore", Method, 19},
-		{"(*List).BlankBetween", Method, 19},
-		{"(*Parser).Parse", Method, 19},
-		{"(*Printer).Comment", Method, 19},
-		{"(*Printer).HTML", Method, 19},
-		{"(*Printer).Markdown", Method, 19},
-		{"(*Printer).Text", Method, 19},
-		{"Block", Type, 19},
-		{"Code", Type, 19},
-		{"Code.Text", Field, 19},
-		{"DefaultLookupPackage", Func, 19},
-		{"Doc", Type, 19},
-		{"Doc.Content", Field, 19},
-		{"Doc.Links", Field, 19},
-		{"DocLink", Type, 19},
-		{"DocLink.ImportPath", Field, 19},
-		{"DocLink.Name", Field, 19},
-		{"DocLink.Recv", Field, 19},
-		{"DocLink.Text", Field, 19},
-		{"Heading", Type, 19},
-		{"Heading.Text", Field, 19},
-		{"Italic", Type, 19},
-		{"Link", Type, 19},
-		{"Link.Auto", Field, 19},
-		{"Link.Text", Field, 19},
-		{"Link.URL", Field, 19},
-		{"LinkDef", Type, 19},
-		{"LinkDef.Text", Field, 19},
-		{"LinkDef.URL", Field, 19},
-		{"LinkDef.Used", Field, 19},
-		{"List", Type, 19},
-		{"List.ForceBlankBefore", Field, 19},
-		{"List.ForceBlankBetween", Field, 19},
-		{"List.Items", Field, 19},
-		{"ListItem", Type, 19},
-		{"ListItem.Content", Field, 19},
-		{"ListItem.Number", Field, 19},
-		{"Paragraph", Type, 19},
-		{"Paragraph.Text", Field, 19},
-		{"Parser", Type, 19},
-		{"Parser.LookupPackage", Field, 19},
-		{"Parser.LookupSym", Field, 19},
-		{"Parser.Words", Field, 19},
-		{"Plain", Type, 19},
-		{"Printer", Type, 19},
-		{"Printer.DocLinkBaseURL", Field, 19},
-		{"Printer.DocLinkURL", Field, 19},
-		{"Printer.HeadingID", Field, 19},
-		{"Printer.HeadingLevel", Field, 19},
-		{"Printer.TextCodePrefix", Field, 19},
-		{"Printer.TextPrefix", Field, 19},
-		{"Printer.TextWidth", Field, 19},
-		{"Text", Type, 19},
+		{"(*DocLink).DefaultURL", Method, 19, ""},
+		{"(*Heading).DefaultID", Method, 19, ""},
+		{"(*List).BlankBefore", Method, 19, ""},
+		{"(*List).BlankBetween", Method, 19, ""},
+		{"(*Parser).Parse", Method, 19, ""},
+		{"(*Printer).Comment", Method, 19, ""},
+		{"(*Printer).HTML", Method, 19, ""},
+		{"(*Printer).Markdown", Method, 19, ""},
+		{"(*Printer).Text", Method, 19, ""},
+		{"Block", Type, 19, ""},
+		{"Code", Type, 19, ""},
+		{"Code.Text", Field, 19, ""},
+		{"DefaultLookupPackage", Func, 19, "func(name string) (importPath string, ok bool)"},
+		{"Doc", Type, 19, ""},
+		{"Doc.Content", Field, 19, ""},
+		{"Doc.Links", Field, 19, ""},
+		{"DocLink", Type, 19, ""},
+		{"DocLink.ImportPath", Field, 19, ""},
+		{"DocLink.Name", Field, 19, ""},
+		{"DocLink.Recv", Field, 19, ""},
+		{"DocLink.Text", Field, 19, ""},
+		{"Heading", Type, 19, ""},
+		{"Heading.Text", Field, 19, ""},
+		{"Italic", Type, 19, ""},
+		{"Link", Type, 19, ""},
+		{"Link.Auto", Field, 19, ""},
+		{"Link.Text", Field, 19, ""},
+		{"Link.URL", Field, 19, ""},
+		{"LinkDef", Type, 19, ""},
+		{"LinkDef.Text", Field, 19, ""},
+		{"LinkDef.URL", Field, 19, ""},
+		{"LinkDef.Used", Field, 19, ""},
+		{"List", Type, 19, ""},
+		{"List.ForceBlankBefore", Field, 19, ""},
+		{"List.ForceBlankBetween", Field, 19, ""},
+		{"List.Items", Field, 19, ""},
+		{"ListItem", Type, 19, ""},
+		{"ListItem.Content", Field, 19, ""},
+		{"ListItem.Number", Field, 19, ""},
+		{"Paragraph", Type, 19, ""},
+		{"Paragraph.Text", Field, 19, ""},
+		{"Parser", Type, 19, ""},
+		{"Parser.LookupPackage", Field, 19, ""},
+		{"Parser.LookupSym", Field, 19, ""},
+		{"Parser.Words", Field, 19, ""},
+		{"Plain", Type, 19, ""},
+		{"Printer", Type, 19, ""},
+		{"Printer.DocLinkBaseURL", Field, 19, ""},
+		{"Printer.DocLinkURL", Field, 19, ""},
+		{"Printer.HeadingID", Field, 19, ""},
+		{"Printer.HeadingLevel", Field, 19, ""},
+		{"Printer.TextCodePrefix", Field, 19, ""},
+		{"Printer.TextPrefix", Field, 19, ""},
+		{"Printer.TextWidth", Field, 19, ""},
+		{"Text", Type, 19, ""},
 	},
 	"go/format": {
-		{"Node", Func, 1},
-		{"Source", Func, 1},
+		{"Node", Func, 1, "func(dst io.Writer, fset *token.FileSet, node any) error"},
+		{"Source", Func, 1, "func(src []byte) ([]byte, error)"},
 	},
 	"go/importer": {
-		{"Default", Func, 5},
-		{"For", Func, 5},
-		{"ForCompiler", Func, 12},
-		{"Lookup", Type, 5},
+		{"Default", Func, 5, "func() types.Importer"},
+		{"For", Func, 5, "func(compiler string, lookup Lookup) types.Importer"},
+		{"ForCompiler", Func, 12, "func(fset *token.FileSet, compiler string, lookup Lookup) types.Importer"},
+		{"Lookup", Type, 5, ""},
 	},
 	"go/parser": {
-		{"AllErrors", Const, 1},
-		{"DeclarationErrors", Const, 0},
-		{"ImportsOnly", Const, 0},
-		{"Mode", Type, 0},
-		{"PackageClauseOnly", Const, 0},
-		{"ParseComments", Const, 0},
-		{"ParseDir", Func, 0},
-		{"ParseExpr", Func, 0},
-		{"ParseExprFrom", Func, 5},
-		{"ParseFile", Func, 0},
-		{"SkipObjectResolution", Const, 17},
-		{"SpuriousErrors", Const, 0},
-		{"Trace", Const, 0},
+		{"AllErrors", Const, 1, ""},
+		{"DeclarationErrors", Const, 0, ""},
+		{"ImportsOnly", Const, 0, ""},
+		{"Mode", Type, 0, ""},
+		{"PackageClauseOnly", Const, 0, ""},
+		{"ParseComments", Const, 0, ""},
+		{"ParseDir", Func, 0, "func(fset *token.FileSet, path string, filter func(fs.FileInfo) bool, mode Mode) (pkgs map[string]*ast.Package, first error)"},
+		{"ParseExpr", Func, 0, "func(x string) (ast.Expr, error)"},
+		{"ParseExprFrom", Func, 5, "func(fset *token.FileSet, filename string, src any, mode Mode) (expr ast.Expr, err error)"},
+		{"ParseFile", Func, 0, "func(fset *token.FileSet, filename string, src any, mode Mode) (f *ast.File, err error)"},
+		{"SkipObjectResolution", Const, 17, ""},
+		{"SpuriousErrors", Const, 0, ""},
+		{"Trace", Const, 0, ""},
 	},
 	"go/printer": {
-		{"(*Config).Fprint", Method, 0},
-		{"CommentedNode", Type, 0},
-		{"CommentedNode.Comments", Field, 0},
-		{"CommentedNode.Node", Field, 0},
-		{"Config", Type, 0},
-		{"Config.Indent", Field, 1},
-		{"Config.Mode", Field, 0},
-		{"Config.Tabwidth", Field, 0},
-		{"Fprint", Func, 0},
-		{"Mode", Type, 0},
-		{"RawFormat", Const, 0},
-		{"SourcePos", Const, 0},
-		{"TabIndent", Const, 0},
-		{"UseSpaces", Const, 0},
+		{"(*Config).Fprint", Method, 0, ""},
+		{"CommentedNode", Type, 0, ""},
+		{"CommentedNode.Comments", Field, 0, ""},
+		{"CommentedNode.Node", Field, 0, ""},
+		{"Config", Type, 0, ""},
+		{"Config.Indent", Field, 1, ""},
+		{"Config.Mode", Field, 0, ""},
+		{"Config.Tabwidth", Field, 0, ""},
+		{"Fprint", Func, 0, "func(output io.Writer, fset *token.FileSet, node any) error"},
+		{"Mode", Type, 0, ""},
+		{"RawFormat", Const, 0, ""},
+		{"SourcePos", Const, 0, ""},
+		{"TabIndent", Const, 0, ""},
+		{"UseSpaces", Const, 0, ""},
 	},
 	"go/scanner": {
-		{"(*ErrorList).Add", Method, 0},
-		{"(*ErrorList).RemoveMultiples", Method, 0},
-		{"(*ErrorList).Reset", Method, 0},
-		{"(*Scanner).Init", Method, 0},
-		{"(*Scanner).Scan", Method, 0},
-		{"(Error).Error", Method, 0},
-		{"(ErrorList).Err", Method, 0},
-		{"(ErrorList).Error", Method, 0},
-		{"(ErrorList).Len", Method, 0},
-		{"(ErrorList).Less", Method, 0},
-		{"(ErrorList).Sort", Method, 0},
-		{"(ErrorList).Swap", Method, 0},
-		{"Error", Type, 0},
-		{"Error.Msg", Field, 0},
-		{"Error.Pos", Field, 0},
-		{"ErrorHandler", Type, 0},
-		{"ErrorList", Type, 0},
-		{"Mode", Type, 0},
-		{"PrintError", Func, 0},
-		{"ScanComments", Const, 0},
-		{"Scanner", Type, 0},
-		{"Scanner.ErrorCount", Field, 0},
+		{"(*ErrorList).Add", Method, 0, ""},
+		{"(*ErrorList).RemoveMultiples", Method, 0, ""},
+		{"(*ErrorList).Reset", Method, 0, ""},
+		{"(*Scanner).Init", Method, 0, ""},
+		{"(*Scanner).Scan", Method, 0, ""},
+		{"(Error).Error", Method, 0, ""},
+		{"(ErrorList).Err", Method, 0, ""},
+		{"(ErrorList).Error", Method, 0, ""},
+		{"(ErrorList).Len", Method, 0, ""},
+		{"(ErrorList).Less", Method, 0, ""},
+		{"(ErrorList).Sort", Method, 0, ""},
+		{"(ErrorList).Swap", Method, 0, ""},
+		{"Error", Type, 0, ""},
+		{"Error.Msg", Field, 0, ""},
+		{"Error.Pos", Field, 0, ""},
+		{"ErrorHandler", Type, 0, ""},
+		{"ErrorList", Type, 0, ""},
+		{"Mode", Type, 0, ""},
+		{"PrintError", Func, 0, "func(w io.Writer, err error)"},
+		{"ScanComments", Const, 0, ""},
+		{"Scanner", Type, 0, ""},
+		{"Scanner.ErrorCount", Field, 0, ""},
 	},
 	"go/token": {
-		{"(*File).AddLine", Method, 0},
-		{"(*File).AddLineColumnInfo", Method, 11},
-		{"(*File).AddLineInfo", Method, 0},
-		{"(*File).Base", Method, 0},
-		{"(*File).Line", Method, 0},
-		{"(*File).LineCount", Method, 0},
-		{"(*File).LineStart", Method, 12},
-		{"(*File).Lines", Method, 21},
-		{"(*File).MergeLine", Method, 2},
-		{"(*File).Name", Method, 0},
-		{"(*File).Offset", Method, 0},
-		{"(*File).Pos", Method, 0},
-		{"(*File).Position", Method, 0},
-		{"(*File).PositionFor", Method, 4},
-		{"(*File).SetLines", Method, 0},
-		{"(*File).SetLinesForContent", Method, 0},
-		{"(*File).Size", Method, 0},
-		{"(*FileSet).AddFile", Method, 0},
-		{"(*FileSet).Base", Method, 0},
-		{"(*FileSet).File", Method, 0},
-		{"(*FileSet).Iterate", Method, 0},
-		{"(*FileSet).Position", Method, 0},
-		{"(*FileSet).PositionFor", Method, 4},
-		{"(*FileSet).Read", Method, 0},
-		{"(*FileSet).RemoveFile", Method, 20},
-		{"(*FileSet).Write", Method, 0},
-		{"(*Position).IsValid", Method, 0},
-		{"(Pos).IsValid", Method, 0},
-		{"(Position).String", Method, 0},
-		{"(Token).IsKeyword", Method, 0},
-		{"(Token).IsLiteral", Method, 0},
-		{"(Token).IsOperator", Method, 0},
-		{"(Token).Precedence", Method, 0},
-		{"(Token).String", Method, 0},
-		{"ADD", Const, 0},
-		{"ADD_ASSIGN", Const, 0},
-		{"AND", Const, 0},
-		{"AND_ASSIGN", Const, 0},
-		{"AND_NOT", Const, 0},
-		{"AND_NOT_ASSIGN", Const, 0},
-		{"ARROW", Const, 0},
-		{"ASSIGN", Const, 0},
-		{"BREAK", Const, 0},
-		{"CASE", Const, 0},
-		{"CHAN", Const, 0},
-		{"CHAR", Const, 0},
-		{"COLON", Const, 0},
-		{"COMMA", Const, 0},
-		{"COMMENT", Const, 0},
-		{"CONST", Const, 0},
-		{"CONTINUE", Const, 0},
-		{"DEC", Const, 0},
-		{"DEFAULT", Const, 0},
-		{"DEFER", Const, 0},
-		{"DEFINE", Const, 0},
-		{"ELLIPSIS", Const, 0},
-		{"ELSE", Const, 0},
-		{"EOF", Const, 0},
-		{"EQL", Const, 0},
-		{"FALLTHROUGH", Const, 0},
-		{"FLOAT", Const, 0},
-		{"FOR", Const, 0},
-		{"FUNC", Const, 0},
-		{"File", Type, 0},
-		{"FileSet", Type, 0},
-		{"GEQ", Const, 0},
-		{"GO", Const, 0},
-		{"GOTO", Const, 0},
-		{"GTR", Const, 0},
-		{"HighestPrec", Const, 0},
-		{"IDENT", Const, 0},
-		{"IF", Const, 0},
-		{"ILLEGAL", Const, 0},
-		{"IMAG", Const, 0},
-		{"IMPORT", Const, 0},
-		{"INC", Const, 0},
-		{"INT", Const, 0},
-		{"INTERFACE", Const, 0},
-		{"IsExported", Func, 13},
-		{"IsIdentifier", Func, 13},
-		{"IsKeyword", Func, 13},
-		{"LAND", Const, 0},
-		{"LBRACE", Const, 0},
-		{"LBRACK", Const, 0},
-		{"LEQ", Const, 0},
-		{"LOR", Const, 0},
-		{"LPAREN", Const, 0},
-		{"LSS", Const, 0},
-		{"Lookup", Func, 0},
-		{"LowestPrec", Const, 0},
-		{"MAP", Const, 0},
-		{"MUL", Const, 0},
-		{"MUL_ASSIGN", Const, 0},
-		{"NEQ", Const, 0},
-		{"NOT", Const, 0},
-		{"NewFileSet", Func, 0},
-		{"NoPos", Const, 0},
-		{"OR", Const, 0},
-		{"OR_ASSIGN", Const, 0},
-		{"PACKAGE", Const, 0},
-		{"PERIOD", Const, 0},
-		{"Pos", Type, 0},
-		{"Position", Type, 0},
-		{"Position.Column", Field, 0},
-		{"Position.Filename", Field, 0},
-		{"Position.Line", Field, 0},
-		{"Position.Offset", Field, 0},
-		{"QUO", Const, 0},
-		{"QUO_ASSIGN", Const, 0},
-		{"RANGE", Const, 0},
-		{"RBRACE", Const, 0},
-		{"RBRACK", Const, 0},
-		{"REM", Const, 0},
-		{"REM_ASSIGN", Const, 0},
-		{"RETURN", Const, 0},
-		{"RPAREN", Const, 0},
-		{"SELECT", Const, 0},
-		{"SEMICOLON", Const, 0},
-		{"SHL", Const, 0},
-		{"SHL_ASSIGN", Const, 0},
-		{"SHR", Const, 0},
-		{"SHR_ASSIGN", Const, 0},
-		{"STRING", Const, 0},
-		{"STRUCT", Const, 0},
-		{"SUB", Const, 0},
-		{"SUB_ASSIGN", Const, 0},
-		{"SWITCH", Const, 0},
-		{"TILDE", Const, 18},
-		{"TYPE", Const, 0},
-		{"Token", Type, 0},
-		{"UnaryPrec", Const, 0},
-		{"VAR", Const, 0},
-		{"XOR", Const, 0},
-		{"XOR_ASSIGN", Const, 0},
+		{"(*File).AddLine", Method, 0, ""},
+		{"(*File).AddLineColumnInfo", Method, 11, ""},
+		{"(*File).AddLineInfo", Method, 0, ""},
+		{"(*File).Base", Method, 0, ""},
+		{"(*File).Line", Method, 0, ""},
+		{"(*File).LineCount", Method, 0, ""},
+		{"(*File).LineStart", Method, 12, ""},
+		{"(*File).Lines", Method, 21, ""},
+		{"(*File).MergeLine", Method, 2, ""},
+		{"(*File).Name", Method, 0, ""},
+		{"(*File).Offset", Method, 0, ""},
+		{"(*File).Pos", Method, 0, ""},
+		{"(*File).Position", Method, 0, ""},
+		{"(*File).PositionFor", Method, 4, ""},
+		{"(*File).SetLines", Method, 0, ""},
+		{"(*File).SetLinesForContent", Method, 0, ""},
+		{"(*File).Size", Method, 0, ""},
+		{"(*FileSet).AddExistingFiles", Method, 25, ""},
+		{"(*FileSet).AddFile", Method, 0, ""},
+		{"(*FileSet).Base", Method, 0, ""},
+		{"(*FileSet).File", Method, 0, ""},
+		{"(*FileSet).Iterate", Method, 0, ""},
+		{"(*FileSet).Position", Method, 0, ""},
+		{"(*FileSet).PositionFor", Method, 4, ""},
+		{"(*FileSet).Read", Method, 0, ""},
+		{"(*FileSet).RemoveFile", Method, 20, ""},
+		{"(*FileSet).Write", Method, 0, ""},
+		{"(*Position).IsValid", Method, 0, ""},
+		{"(Pos).IsValid", Method, 0, ""},
+		{"(Position).String", Method, 0, ""},
+		{"(Token).IsKeyword", Method, 0, ""},
+		{"(Token).IsLiteral", Method, 0, ""},
+		{"(Token).IsOperator", Method, 0, ""},
+		{"(Token).Precedence", Method, 0, ""},
+		{"(Token).String", Method, 0, ""},
+		{"ADD", Const, 0, ""},
+		{"ADD_ASSIGN", Const, 0, ""},
+		{"AND", Const, 0, ""},
+		{"AND_ASSIGN", Const, 0, ""},
+		{"AND_NOT", Const, 0, ""},
+		{"AND_NOT_ASSIGN", Const, 0, ""},
+		{"ARROW", Const, 0, ""},
+		{"ASSIGN", Const, 0, ""},
+		{"BREAK", Const, 0, ""},
+		{"CASE", Const, 0, ""},
+		{"CHAN", Const, 0, ""},
+		{"CHAR", Const, 0, ""},
+		{"COLON", Const, 0, ""},
+		{"COMMA", Const, 0, ""},
+		{"COMMENT", Const, 0, ""},
+		{"CONST", Const, 0, ""},
+		{"CONTINUE", Const, 0, ""},
+		{"DEC", Const, 0, ""},
+		{"DEFAULT", Const, 0, ""},
+		{"DEFER", Const, 0, ""},
+		{"DEFINE", Const, 0, ""},
+		{"ELLIPSIS", Const, 0, ""},
+		{"ELSE", Const, 0, ""},
+		{"EOF", Const, 0, ""},
+		{"EQL", Const, 0, ""},
+		{"FALLTHROUGH", Const, 0, ""},
+		{"FLOAT", Const, 0, ""},
+		{"FOR", Const, 0, ""},
+		{"FUNC", Const, 0, ""},
+		{"File", Type, 0, ""},
+		{"FileSet", Type, 0, ""},
+		{"GEQ", Const, 0, ""},
+		{"GO", Const, 0, ""},
+		{"GOTO", Const, 0, ""},
+		{"GTR", Const, 0, ""},
+		{"HighestPrec", Const, 0, ""},
+		{"IDENT", Const, 0, ""},
+		{"IF", Const, 0, ""},
+		{"ILLEGAL", Const, 0, ""},
+		{"IMAG", Const, 0, ""},
+		{"IMPORT", Const, 0, ""},
+		{"INC", Const, 0, ""},
+		{"INT", Const, 0, ""},
+		{"INTERFACE", Const, 0, ""},
+		{"IsExported", Func, 13, "func(name string) bool"},
+		{"IsIdentifier", Func, 13, "func(name string) bool"},
+		{"IsKeyword", Func, 13, "func(name string) bool"},
+		{"LAND", Const, 0, ""},
+		{"LBRACE", Const, 0, ""},
+		{"LBRACK", Const, 0, ""},
+		{"LEQ", Const, 0, ""},
+		{"LOR", Const, 0, ""},
+		{"LPAREN", Const, 0, ""},
+		{"LSS", Const, 0, ""},
+		{"Lookup", Func, 0, "func(ident string) Token"},
+		{"LowestPrec", Const, 0, ""},
+		{"MAP", Const, 0, ""},
+		{"MUL", Const, 0, ""},
+		{"MUL_ASSIGN", Const, 0, ""},
+		{"NEQ", Const, 0, ""},
+		{"NOT", Const, 0, ""},
+		{"NewFileSet", Func, 0, "func() *FileSet"},
+		{"NoPos", Const, 0, ""},
+		{"OR", Const, 0, ""},
+		{"OR_ASSIGN", Const, 0, ""},
+		{"PACKAGE", Const, 0, ""},
+		{"PERIOD", Const, 0, ""},
+		{"Pos", Type, 0, ""},
+		{"Position", Type, 0, ""},
+		{"Position.Column", Field, 0, ""},
+		{"Position.Filename", Field, 0, ""},
+		{"Position.Line", Field, 0, ""},
+		{"Position.Offset", Field, 0, ""},
+		{"QUO", Const, 0, ""},
+		{"QUO_ASSIGN", Const, 0, ""},
+		{"RANGE", Const, 0, ""},
+		{"RBRACE", Const, 0, ""},
+		{"RBRACK", Const, 0, ""},
+		{"REM", Const, 0, ""},
+		{"REM_ASSIGN", Const, 0, ""},
+		{"RETURN", Const, 0, ""},
+		{"RPAREN", Const, 0, ""},
+		{"SELECT", Const, 0, ""},
+		{"SEMICOLON", Const, 0, ""},
+		{"SHL", Const, 0, ""},
+		{"SHL_ASSIGN", Const, 0, ""},
+		{"SHR", Const, 0, ""},
+		{"SHR_ASSIGN", Const, 0, ""},
+		{"STRING", Const, 0, ""},
+		{"STRUCT", Const, 0, ""},
+		{"SUB", Const, 0, ""},
+		{"SUB_ASSIGN", Const, 0, ""},
+		{"SWITCH", Const, 0, ""},
+		{"TILDE", Const, 18, ""},
+		{"TYPE", Const, 0, ""},
+		{"Token", Type, 0, ""},
+		{"UnaryPrec", Const, 0, ""},
+		{"VAR", Const, 0, ""},
+		{"XOR", Const, 0, ""},
+		{"XOR_ASSIGN", Const, 0, ""},
 	},
 	"go/types": {
-		{"(*Alias).Obj", Method, 22},
-		{"(*Alias).Origin", Method, 23},
-		{"(*Alias).Rhs", Method, 23},
-		{"(*Alias).SetTypeParams", Method, 23},
-		{"(*Alias).String", Method, 22},
-		{"(*Alias).TypeArgs", Method, 23},
-		{"(*Alias).TypeParams", Method, 23},
-		{"(*Alias).Underlying", Method, 22},
-		{"(*ArgumentError).Error", Method, 18},
-		{"(*ArgumentError).Unwrap", Method, 18},
-		{"(*Array).Elem", Method, 5},
-		{"(*Array).Len", Method, 5},
-		{"(*Array).String", Method, 5},
-		{"(*Array).Underlying", Method, 5},
-		{"(*Basic).Info", Method, 5},
-		{"(*Basic).Kind", Method, 5},
-		{"(*Basic).Name", Method, 5},
-		{"(*Basic).String", Method, 5},
-		{"(*Basic).Underlying", Method, 5},
-		{"(*Builtin).Exported", Method, 5},
-		{"(*Builtin).Id", Method, 5},
-		{"(*Builtin).Name", Method, 5},
-		{"(*Builtin).Parent", Method, 5},
-		{"(*Builtin).Pkg", Method, 5},
-		{"(*Builtin).Pos", Method, 5},
-		{"(*Builtin).String", Method, 5},
-		{"(*Builtin).Type", Method, 5},
-		{"(*Chan).Dir", Method, 5},
-		{"(*Chan).Elem", Method, 5},
-		{"(*Chan).String", Method, 5},
-		{"(*Chan).Underlying", Method, 5},
-		{"(*Checker).Files", Method, 5},
-		{"(*Config).Check", Method, 5},
-		{"(*Const).Exported", Method, 5},
-		{"(*Const).Id", Method, 5},
-		{"(*Const).Name", Method, 5},
-		{"(*Const).Parent", Method, 5},
-		{"(*Const).Pkg", Method, 5},
-		{"(*Const).Pos", Method, 5},
-		{"(*Const).String", Method, 5},
-		{"(*Const).Type", Method, 5},
-		{"(*Const).Val", Method, 5},
-		{"(*Func).Exported", Method, 5},
-		{"(*Func).FullName", Method, 5},
-		{"(*Func).Id", Method, 5},
-		{"(*Func).Name", Method, 5},
-		{"(*Func).Origin", Method, 19},
-		{"(*Func).Parent", Method, 5},
-		{"(*Func).Pkg", Method, 5},
-		{"(*Func).Pos", Method, 5},
-		{"(*Func).Scope", Method, 5},
-		{"(*Func).Signature", Method, 23},
-		{"(*Func).String", Method, 5},
-		{"(*Func).Type", Method, 5},
-		{"(*Info).ObjectOf", Method, 5},
-		{"(*Info).PkgNameOf", Method, 22},
-		{"(*Info).TypeOf", Method, 5},
-		{"(*Initializer).String", Method, 5},
-		{"(*Interface).Complete", Method, 5},
-		{"(*Interface).Embedded", Method, 5},
-		{"(*Interface).EmbeddedType", Method, 11},
-		{"(*Interface).EmbeddedTypes", Method, 24},
-		{"(*Interface).Empty", Method, 5},
-		{"(*Interface).ExplicitMethod", Method, 5},
-		{"(*Interface).ExplicitMethods", Method, 24},
-		{"(*Interface).IsComparable", Method, 18},
-		{"(*Interface).IsImplicit", Method, 18},
-		{"(*Interface).IsMethodSet", Method, 18},
-		{"(*Interface).MarkImplicit", Method, 18},
-		{"(*Interface).Method", Method, 5},
-		{"(*Interface).Methods", Method, 24},
-		{"(*Interface).NumEmbeddeds", Method, 5},
-		{"(*Interface).NumExplicitMethods", Method, 5},
-		{"(*Interface).NumMethods", Method, 5},
-		{"(*Interface).String", Method, 5},
-		{"(*Interface).Underlying", Method, 5},
-		{"(*Label).Exported", Method, 5},
-		{"(*Label).Id", Method, 5},
-		{"(*Label).Name", Method, 5},
-		{"(*Label).Parent", Method, 5},
-		{"(*Label).Pkg", Method, 5},
-		{"(*Label).Pos", Method, 5},
-		{"(*Label).String", Method, 5},
-		{"(*Label).Type", Method, 5},
-		{"(*Map).Elem", Method, 5},
-		{"(*Map).Key", Method, 5},
-		{"(*Map).String", Method, 5},
-		{"(*Map).Underlying", Method, 5},
-		{"(*MethodSet).At", Method, 5},
-		{"(*MethodSet).Len", Method, 5},
-		{"(*MethodSet).Lookup", Method, 5},
-		{"(*MethodSet).Methods", Method, 24},
-		{"(*MethodSet).String", Method, 5},
-		{"(*Named).AddMethod", Method, 5},
-		{"(*Named).Method", Method, 5},
-		{"(*Named).Methods", Method, 24},
-		{"(*Named).NumMethods", Method, 5},
-		{"(*Named).Obj", Method, 5},
-		{"(*Named).Origin", Method, 18},
-		{"(*Named).SetTypeParams", Method, 18},
-		{"(*Named).SetUnderlying", Method, 5},
-		{"(*Named).String", Method, 5},
-		{"(*Named).TypeArgs", Method, 18},
-		{"(*Named).TypeParams", Method, 18},
-		{"(*Named).Underlying", Method, 5},
-		{"(*Nil).Exported", Method, 5},
-		{"(*Nil).Id", Method, 5},
-		{"(*Nil).Name", Method, 5},
-		{"(*Nil).Parent", Method, 5},
-		{"(*Nil).Pkg", Method, 5},
-		{"(*Nil).Pos", Method, 5},
-		{"(*Nil).String", Method, 5},
-		{"(*Nil).Type", Method, 5},
-		{"(*Package).Complete", Method, 5},
-		{"(*Package).GoVersion", Method, 21},
-		{"(*Package).Imports", Method, 5},
-		{"(*Package).MarkComplete", Method, 5},
-		{"(*Package).Name", Method, 5},
-		{"(*Package).Path", Method, 5},
-		{"(*Package).Scope", Method, 5},
-		{"(*Package).SetImports", Method, 5},
-		{"(*Package).SetName", Method, 6},
-		{"(*Package).String", Method, 5},
-		{"(*PkgName).Exported", Method, 5},
-		{"(*PkgName).Id", Method, 5},
-		{"(*PkgName).Imported", Method, 5},
-		{"(*PkgName).Name", Method, 5},
-		{"(*PkgName).Parent", Method, 5},
-		{"(*PkgName).Pkg", Method, 5},
-		{"(*PkgName).Pos", Method, 5},
-		{"(*PkgName).String", Method, 5},
-		{"(*PkgName).Type", Method, 5},
-		{"(*Pointer).Elem", Method, 5},
-		{"(*Pointer).String", Method, 5},
-		{"(*Pointer).Underlying", Method, 5},
-		{"(*Scope).Child", Method, 5},
-		{"(*Scope).Children", Method, 24},
-		{"(*Scope).Contains", Method, 5},
-		{"(*Scope).End", Method, 5},
-		{"(*Scope).Innermost", Method, 5},
-		{"(*Scope).Insert", Method, 5},
-		{"(*Scope).Len", Method, 5},
-		{"(*Scope).Lookup", Method, 5},
-		{"(*Scope).LookupParent", Method, 5},
-		{"(*Scope).Names", Method, 5},
-		{"(*Scope).NumChildren", Method, 5},
-		{"(*Scope).Parent", Method, 5},
-		{"(*Scope).Pos", Method, 5},
-		{"(*Scope).String", Method, 5},
-		{"(*Scope).WriteTo", Method, 5},
-		{"(*Selection).Index", Method, 5},
-		{"(*Selection).Indirect", Method, 5},
-		{"(*Selection).Kind", Method, 5},
-		{"(*Selection).Obj", Method, 5},
-		{"(*Selection).Recv", Method, 5},
-		{"(*Selection).String", Method, 5},
-		{"(*Selection).Type", Method, 5},
-		{"(*Signature).Params", Method, 5},
-		{"(*Signature).Recv", Method, 5},
-		{"(*Signature).RecvTypeParams", Method, 18},
-		{"(*Signature).Results", Method, 5},
-		{"(*Signature).String", Method, 5},
-		{"(*Signature).TypeParams", Method, 18},
-		{"(*Signature).Underlying", Method, 5},
-		{"(*Signature).Variadic", Method, 5},
-		{"(*Slice).Elem", Method, 5},
-		{"(*Slice).String", Method, 5},
-		{"(*Slice).Underlying", Method, 5},
-		{"(*StdSizes).Alignof", Method, 5},
-		{"(*StdSizes).Offsetsof", Method, 5},
-		{"(*StdSizes).Sizeof", Method, 5},
-		{"(*Struct).Field", Method, 5},
-		{"(*Struct).Fields", Method, 24},
-		{"(*Struct).NumFields", Method, 5},
-		{"(*Struct).String", Method, 5},
-		{"(*Struct).Tag", Method, 5},
-		{"(*Struct).Underlying", Method, 5},
-		{"(*Term).String", Method, 18},
-		{"(*Term).Tilde", Method, 18},
-		{"(*Term).Type", Method, 18},
-		{"(*Tuple).At", Method, 5},
-		{"(*Tuple).Len", Method, 5},
-		{"(*Tuple).String", Method, 5},
-		{"(*Tuple).Underlying", Method, 5},
-		{"(*Tuple).Variables", Method, 24},
-		{"(*TypeList).At", Method, 18},
-		{"(*TypeList).Len", Method, 18},
-		{"(*TypeList).Types", Method, 24},
-		{"(*TypeName).Exported", Method, 5},
-		{"(*TypeName).Id", Method, 5},
-		{"(*TypeName).IsAlias", Method, 9},
-		{"(*TypeName).Name", Method, 5},
-		{"(*TypeName).Parent", Method, 5},
-		{"(*TypeName).Pkg", Method, 5},
-		{"(*TypeName).Pos", Method, 5},
-		{"(*TypeName).String", Method, 5},
-		{"(*TypeName).Type", Method, 5},
-		{"(*TypeParam).Constraint", Method, 18},
-		{"(*TypeParam).Index", Method, 18},
-		{"(*TypeParam).Obj", Method, 18},
-		{"(*TypeParam).SetConstraint", Method, 18},
-		{"(*TypeParam).String", Method, 18},
-		{"(*TypeParam).Underlying", Method, 18},
-		{"(*TypeParamList).At", Method, 18},
-		{"(*TypeParamList).Len", Method, 18},
-		{"(*TypeParamList).TypeParams", Method, 24},
-		{"(*Union).Len", Method, 18},
-		{"(*Union).String", Method, 18},
-		{"(*Union).Term", Method, 18},
-		{"(*Union).Terms", Method, 24},
-		{"(*Union).Underlying", Method, 18},
-		{"(*Var).Anonymous", Method, 5},
-		{"(*Var).Embedded", Method, 11},
-		{"(*Var).Exported", Method, 5},
-		{"(*Var).Id", Method, 5},
-		{"(*Var).IsField", Method, 5},
-		{"(*Var).Name", Method, 5},
-		{"(*Var).Origin", Method, 19},
-		{"(*Var).Parent", Method, 5},
-		{"(*Var).Pkg", Method, 5},
-		{"(*Var).Pos", Method, 5},
-		{"(*Var).String", Method, 5},
-		{"(*Var).Type", Method, 5},
-		{"(Checker).ObjectOf", Method, 5},
-		{"(Checker).PkgNameOf", Method, 22},
-		{"(Checker).TypeOf", Method, 5},
-		{"(Error).Error", Method, 5},
-		{"(TypeAndValue).Addressable", Method, 5},
-		{"(TypeAndValue).Assignable", Method, 5},
-		{"(TypeAndValue).HasOk", Method, 5},
-		{"(TypeAndValue).IsBuiltin", Method, 5},
-		{"(TypeAndValue).IsNil", Method, 5},
-		{"(TypeAndValue).IsType", Method, 5},
-		{"(TypeAndValue).IsValue", Method, 5},
-		{"(TypeAndValue).IsVoid", Method, 5},
-		{"Alias", Type, 22},
-		{"ArgumentError", Type, 18},
-		{"ArgumentError.Err", Field, 18},
-		{"ArgumentError.Index", Field, 18},
-		{"Array", Type, 5},
-		{"AssertableTo", Func, 5},
-		{"AssignableTo", Func, 5},
-		{"Basic", Type, 5},
-		{"BasicInfo", Type, 5},
-		{"BasicKind", Type, 5},
-		{"Bool", Const, 5},
-		{"Builtin", Type, 5},
-		{"Byte", Const, 5},
-		{"Chan", Type, 5},
-		{"ChanDir", Type, 5},
-		{"CheckExpr", Func, 13},
-		{"Checker", Type, 5},
-		{"Checker.Info", Field, 5},
-		{"Comparable", Func, 5},
-		{"Complex128", Const, 5},
-		{"Complex64", Const, 5},
-		{"Config", Type, 5},
-		{"Config.Context", Field, 18},
-		{"Config.DisableUnusedImportCheck", Field, 5},
-		{"Config.Error", Field, 5},
-		{"Config.FakeImportC", Field, 5},
-		{"Config.GoVersion", Field, 18},
-		{"Config.IgnoreFuncBodies", Field, 5},
-		{"Config.Importer", Field, 5},
-		{"Config.Sizes", Field, 5},
-		{"Const", Type, 5},
-		{"Context", Type, 18},
-		{"ConvertibleTo", Func, 5},
-		{"DefPredeclaredTestFuncs", Func, 5},
-		{"Default", Func, 8},
-		{"Error", Type, 5},
-		{"Error.Fset", Field, 5},
-		{"Error.Msg", Field, 5},
-		{"Error.Pos", Field, 5},
-		{"Error.Soft", Field, 5},
-		{"Eval", Func, 5},
-		{"ExprString", Func, 5},
-		{"FieldVal", Const, 5},
-		{"Float32", Const, 5},
-		{"Float64", Const, 5},
-		{"Func", Type, 5},
-		{"Id", Func, 5},
-		{"Identical", Func, 5},
-		{"IdenticalIgnoreTags", Func, 8},
-		{"Implements", Func, 5},
-		{"ImportMode", Type, 6},
-		{"Importer", Type, 5},
-		{"ImporterFrom", Type, 6},
-		{"Info", Type, 5},
-		{"Info.Defs", Field, 5},
-		{"Info.FileVersions", Field, 22},
-		{"Info.Implicits", Field, 5},
-		{"Info.InitOrder", Field, 5},
-		{"Info.Instances", Field, 18},
-		{"Info.Scopes", Field, 5},
-		{"Info.Selections", Field, 5},
-		{"Info.Types", Field, 5},
-		{"Info.Uses", Field, 5},
-		{"Initializer", Type, 5},
-		{"Initializer.Lhs", Field, 5},
-		{"Initializer.Rhs", Field, 5},
-		{"Instance", Type, 18},
-		{"Instance.Type", Field, 18},
-		{"Instance.TypeArgs", Field, 18},
-		{"Instantiate", Func, 18},
-		{"Int", Const, 5},
-		{"Int16", Const, 5},
-		{"Int32", Const, 5},
-		{"Int64", Const, 5},
-		{"Int8", Const, 5},
-		{"Interface", Type, 5},
-		{"Invalid", Const, 5},
-		{"IsBoolean", Const, 5},
-		{"IsComplex", Const, 5},
-		{"IsConstType", Const, 5},
-		{"IsFloat", Const, 5},
-		{"IsInteger", Const, 5},
-		{"IsInterface", Func, 5},
-		{"IsNumeric", Const, 5},
-		{"IsOrdered", Const, 5},
-		{"IsString", Const, 5},
-		{"IsUnsigned", Const, 5},
-		{"IsUntyped", Const, 5},
-		{"Label", Type, 5},
-		{"LookupFieldOrMethod", Func, 5},
-		{"Map", Type, 5},
-		{"MethodExpr", Const, 5},
-		{"MethodSet", Type, 5},
-		{"MethodVal", Const, 5},
-		{"MissingMethod", Func, 5},
-		{"Named", Type, 5},
-		{"NewAlias", Func, 22},
-		{"NewArray", Func, 5},
-		{"NewChan", Func, 5},
-		{"NewChecker", Func, 5},
-		{"NewConst", Func, 5},
-		{"NewContext", Func, 18},
-		{"NewField", Func, 5},
-		{"NewFunc", Func, 5},
-		{"NewInterface", Func, 5},
-		{"NewInterfaceType", Func, 11},
-		{"NewLabel", Func, 5},
-		{"NewMap", Func, 5},
-		{"NewMethodSet", Func, 5},
-		{"NewNamed", Func, 5},
-		{"NewPackage", Func, 5},
-		{"NewParam", Func, 5},
-		{"NewPkgName", Func, 5},
-		{"NewPointer", Func, 5},
-		{"NewScope", Func, 5},
-		{"NewSignature", Func, 5},
-		{"NewSignatureType", Func, 18},
-		{"NewSlice", Func, 5},
-		{"NewStruct", Func, 5},
-		{"NewTerm", Func, 18},
-		{"NewTuple", Func, 5},
-		{"NewTypeName", Func, 5},
-		{"NewTypeParam", Func, 18},
-		{"NewUnion", Func, 18},
-		{"NewVar", Func, 5},
-		{"Nil", Type, 5},
-		{"Object", Type, 5},
-		{"ObjectString", Func, 5},
-		{"Package", Type, 5},
-		{"PkgName", Type, 5},
-		{"Pointer", Type, 5},
-		{"Qualifier", Type, 5},
-		{"RecvOnly", Const, 5},
-		{"RelativeTo", Func, 5},
-		{"Rune", Const, 5},
-		{"Satisfies", Func, 20},
-		{"Scope", Type, 5},
-		{"Selection", Type, 5},
-		{"SelectionKind", Type, 5},
-		{"SelectionString", Func, 5},
-		{"SendOnly", Const, 5},
-		{"SendRecv", Const, 5},
-		{"Signature", Type, 5},
-		{"Sizes", Type, 5},
-		{"SizesFor", Func, 9},
-		{"Slice", Type, 5},
-		{"StdSizes", Type, 5},
-		{"StdSizes.MaxAlign", Field, 5},
-		{"StdSizes.WordSize", Field, 5},
-		{"String", Const, 5},
-		{"Struct", Type, 5},
-		{"Term", Type, 18},
-		{"Tuple", Type, 5},
-		{"Typ", Var, 5},
-		{"Type", Type, 5},
-		{"TypeAndValue", Type, 5},
-		{"TypeAndValue.Type", Field, 5},
-		{"TypeAndValue.Value", Field, 5},
-		{"TypeList", Type, 18},
-		{"TypeName", Type, 5},
-		{"TypeParam", Type, 18},
-		{"TypeParamList", Type, 18},
-		{"TypeString", Func, 5},
-		{"Uint", Const, 5},
-		{"Uint16", Const, 5},
-		{"Uint32", Const, 5},
-		{"Uint64", Const, 5},
-		{"Uint8", Const, 5},
-		{"Uintptr", Const, 5},
-		{"Unalias", Func, 22},
-		{"Union", Type, 18},
-		{"Universe", Var, 5},
-		{"Unsafe", Var, 5},
-		{"UnsafePointer", Const, 5},
-		{"UntypedBool", Const, 5},
-		{"UntypedComplex", Const, 5},
-		{"UntypedFloat", Const, 5},
-		{"UntypedInt", Const, 5},
-		{"UntypedNil", Const, 5},
-		{"UntypedRune", Const, 5},
-		{"UntypedString", Const, 5},
-		{"Var", Type, 5},
-		{"WriteExpr", Func, 5},
-		{"WriteSignature", Func, 5},
-		{"WriteType", Func, 5},
+		{"(*Alias).Obj", Method, 22, ""},
+		{"(*Alias).Origin", Method, 23, ""},
+		{"(*Alias).Rhs", Method, 23, ""},
+		{"(*Alias).SetTypeParams", Method, 23, ""},
+		{"(*Alias).String", Method, 22, ""},
+		{"(*Alias).TypeArgs", Method, 23, ""},
+		{"(*Alias).TypeParams", Method, 23, ""},
+		{"(*Alias).Underlying", Method, 22, ""},
+		{"(*ArgumentError).Error", Method, 18, ""},
+		{"(*ArgumentError).Unwrap", Method, 18, ""},
+		{"(*Array).Elem", Method, 5, ""},
+		{"(*Array).Len", Method, 5, ""},
+		{"(*Array).String", Method, 5, ""},
+		{"(*Array).Underlying", Method, 5, ""},
+		{"(*Basic).Info", Method, 5, ""},
+		{"(*Basic).Kind", Method, 5, ""},
+		{"(*Basic).Name", Method, 5, ""},
+		{"(*Basic).String", Method, 5, ""},
+		{"(*Basic).Underlying", Method, 5, ""},
+		{"(*Builtin).Exported", Method, 5, ""},
+		{"(*Builtin).Id", Method, 5, ""},
+		{"(*Builtin).Name", Method, 5, ""},
+		{"(*Builtin).Parent", Method, 5, ""},
+		{"(*Builtin).Pkg", Method, 5, ""},
+		{"(*Builtin).Pos", Method, 5, ""},
+		{"(*Builtin).String", Method, 5, ""},
+		{"(*Builtin).Type", Method, 5, ""},
+		{"(*Chan).Dir", Method, 5, ""},
+		{"(*Chan).Elem", Method, 5, ""},
+		{"(*Chan).String", Method, 5, ""},
+		{"(*Chan).Underlying", Method, 5, ""},
+		{"(*Checker).Files", Method, 5, ""},
+		{"(*Config).Check", Method, 5, ""},
+		{"(*Const).Exported", Method, 5, ""},
+		{"(*Const).Id", Method, 5, ""},
+		{"(*Const).Name", Method, 5, ""},
+		{"(*Const).Parent", Method, 5, ""},
+		{"(*Const).Pkg", Method, 5, ""},
+		{"(*Const).Pos", Method, 5, ""},
+		{"(*Const).String", Method, 5, ""},
+		{"(*Const).Type", Method, 5, ""},
+		{"(*Const).Val", Method, 5, ""},
+		{"(*Func).Exported", Method, 5, ""},
+		{"(*Func).FullName", Method, 5, ""},
+		{"(*Func).Id", Method, 5, ""},
+		{"(*Func).Name", Method, 5, ""},
+		{"(*Func).Origin", Method, 19, ""},
+		{"(*Func).Parent", Method, 5, ""},
+		{"(*Func).Pkg", Method, 5, ""},
+		{"(*Func).Pos", Method, 5, ""},
+		{"(*Func).Scope", Method, 5, ""},
+		{"(*Func).Signature", Method, 23, ""},
+		{"(*Func).String", Method, 5, ""},
+		{"(*Func).Type", Method, 5, ""},
+		{"(*Info).ObjectOf", Method, 5, ""},
+		{"(*Info).PkgNameOf", Method, 22, ""},
+		{"(*Info).TypeOf", Method, 5, ""},
+		{"(*Initializer).String", Method, 5, ""},
+		{"(*Interface).Complete", Method, 5, ""},
+		{"(*Interface).Embedded", Method, 5, ""},
+		{"(*Interface).EmbeddedType", Method, 11, ""},
+		{"(*Interface).EmbeddedTypes", Method, 24, ""},
+		{"(*Interface).Empty", Method, 5, ""},
+		{"(*Interface).ExplicitMethod", Method, 5, ""},
+		{"(*Interface).ExplicitMethods", Method, 24, ""},
+		{"(*Interface).IsComparable", Method, 18, ""},
+		{"(*Interface).IsImplicit", Method, 18, ""},
+		{"(*Interface).IsMethodSet", Method, 18, ""},
+		{"(*Interface).MarkImplicit", Method, 18, ""},
+		{"(*Interface).Method", Method, 5, ""},
+		{"(*Interface).Methods", Method, 24, ""},
+		{"(*Interface).NumEmbeddeds", Method, 5, ""},
+		{"(*Interface).NumExplicitMethods", Method, 5, ""},
+		{"(*Interface).NumMethods", Method, 5, ""},
+		{"(*Interface).String", Method, 5, ""},
+		{"(*Interface).Underlying", Method, 5, ""},
+		{"(*Label).Exported", Method, 5, ""},
+		{"(*Label).Id", Method, 5, ""},
+		{"(*Label).Name", Method, 5, ""},
+		{"(*Label).Parent", Method, 5, ""},
+		{"(*Label).Pkg", Method, 5, ""},
+		{"(*Label).Pos", Method, 5, ""},
+		{"(*Label).String", Method, 5, ""},
+		{"(*Label).Type", Method, 5, ""},
+		{"(*Map).Elem", Method, 5, ""},
+		{"(*Map).Key", Method, 5, ""},
+		{"(*Map).String", Method, 5, ""},
+		{"(*Map).Underlying", Method, 5, ""},
+		{"(*MethodSet).At", Method, 5, ""},
+		{"(*MethodSet).Len", Method, 5, ""},
+		{"(*MethodSet).Lookup", Method, 5, ""},
+		{"(*MethodSet).Methods", Method, 24, ""},
+		{"(*MethodSet).String", Method, 5, ""},
+		{"(*Named).AddMethod", Method, 5, ""},
+		{"(*Named).Method", Method, 5, ""},
+		{"(*Named).Methods", Method, 24, ""},
+		{"(*Named).NumMethods", Method, 5, ""},
+		{"(*Named).Obj", Method, 5, ""},
+		{"(*Named).Origin", Method, 18, ""},
+		{"(*Named).SetTypeParams", Method, 18, ""},
+		{"(*Named).SetUnderlying", Method, 5, ""},
+		{"(*Named).String", Method, 5, ""},
+		{"(*Named).TypeArgs", Method, 18, ""},
+		{"(*Named).TypeParams", Method, 18, ""},
+		{"(*Named).Underlying", Method, 5, ""},
+		{"(*Nil).Exported", Method, 5, ""},
+		{"(*Nil).Id", Method, 5, ""},
+		{"(*Nil).Name", Method, 5, ""},
+		{"(*Nil).Parent", Method, 5, ""},
+		{"(*Nil).Pkg", Method, 5, ""},
+		{"(*Nil).Pos", Method, 5, ""},
+		{"(*Nil).String", Method, 5, ""},
+		{"(*Nil).Type", Method, 5, ""},
+		{"(*Package).Complete", Method, 5, ""},
+		{"(*Package).GoVersion", Method, 21, ""},
+		{"(*Package).Imports", Method, 5, ""},
+		{"(*Package).MarkComplete", Method, 5, ""},
+		{"(*Package).Name", Method, 5, ""},
+		{"(*Package).Path", Method, 5, ""},
+		{"(*Package).Scope", Method, 5, ""},
+		{"(*Package).SetImports", Method, 5, ""},
+		{"(*Package).SetName", Method, 6, ""},
+		{"(*Package).String", Method, 5, ""},
+		{"(*PkgName).Exported", Method, 5, ""},
+		{"(*PkgName).Id", Method, 5, ""},
+		{"(*PkgName).Imported", Method, 5, ""},
+		{"(*PkgName).Name", Method, 5, ""},
+		{"(*PkgName).Parent", Method, 5, ""},
+		{"(*PkgName).Pkg", Method, 5, ""},
+		{"(*PkgName).Pos", Method, 5, ""},
+		{"(*PkgName).String", Method, 5, ""},
+		{"(*PkgName).Type", Method, 5, ""},
+		{"(*Pointer).Elem", Method, 5, ""},
+		{"(*Pointer).String", Method, 5, ""},
+		{"(*Pointer).Underlying", Method, 5, ""},
+		{"(*Scope).Child", Method, 5, ""},
+		{"(*Scope).Children", Method, 24, ""},
+		{"(*Scope).Contains", Method, 5, ""},
+		{"(*Scope).End", Method, 5, ""},
+		{"(*Scope).Innermost", Method, 5, ""},
+		{"(*Scope).Insert", Method, 5, ""},
+		{"(*Scope).Len", Method, 5, ""},
+		{"(*Scope).Lookup", Method, 5, ""},
+		{"(*Scope).LookupParent", Method, 5, ""},
+		{"(*Scope).Names", Method, 5, ""},
+		{"(*Scope).NumChildren", Method, 5, ""},
+		{"(*Scope).Parent", Method, 5, ""},
+		{"(*Scope).Pos", Method, 5, ""},
+		{"(*Scope).String", Method, 5, ""},
+		{"(*Scope).WriteTo", Method, 5, ""},
+		{"(*Selection).Index", Method, 5, ""},
+		{"(*Selection).Indirect", Method, 5, ""},
+		{"(*Selection).Kind", Method, 5, ""},
+		{"(*Selection).Obj", Method, 5, ""},
+		{"(*Selection).Recv", Method, 5, ""},
+		{"(*Selection).String", Method, 5, ""},
+		{"(*Selection).Type", Method, 5, ""},
+		{"(*Signature).Params", Method, 5, ""},
+		{"(*Signature).Recv", Method, 5, ""},
+		{"(*Signature).RecvTypeParams", Method, 18, ""},
+		{"(*Signature).Results", Method, 5, ""},
+		{"(*Signature).String", Method, 5, ""},
+		{"(*Signature).TypeParams", Method, 18, ""},
+		{"(*Signature).Underlying", Method, 5, ""},
+		{"(*Signature).Variadic", Method, 5, ""},
+		{"(*Slice).Elem", Method, 5, ""},
+		{"(*Slice).String", Method, 5, ""},
+		{"(*Slice).Underlying", Method, 5, ""},
+		{"(*StdSizes).Alignof", Method, 5, ""},
+		{"(*StdSizes).Offsetsof", Method, 5, ""},
+		{"(*StdSizes).Sizeof", Method, 5, ""},
+		{"(*Struct).Field", Method, 5, ""},
+		{"(*Struct).Fields", Method, 24, ""},
+		{"(*Struct).NumFields", Method, 5, ""},
+		{"(*Struct).String", Method, 5, ""},
+		{"(*Struct).Tag", Method, 5, ""},
+		{"(*Struct).Underlying", Method, 5, ""},
+		{"(*Term).String", Method, 18, ""},
+		{"(*Term).Tilde", Method, 18, ""},
+		{"(*Term).Type", Method, 18, ""},
+		{"(*Tuple).At", Method, 5, ""},
+		{"(*Tuple).Len", Method, 5, ""},
+		{"(*Tuple).String", Method, 5, ""},
+		{"(*Tuple).Underlying", Method, 5, ""},
+		{"(*Tuple).Variables", Method, 24, ""},
+		{"(*TypeList).At", Method, 18, ""},
+		{"(*TypeList).Len", Method, 18, ""},
+		{"(*TypeList).Types", Method, 24, ""},
+		{"(*TypeName).Exported", Method, 5, ""},
+		{"(*TypeName).Id", Method, 5, ""},
+		{"(*TypeName).IsAlias", Method, 9, ""},
+		{"(*TypeName).Name", Method, 5, ""},
+		{"(*TypeName).Parent", Method, 5, ""},
+		{"(*TypeName).Pkg", Method, 5, ""},
+		{"(*TypeName).Pos", Method, 5, ""},
+		{"(*TypeName).String", Method, 5, ""},
+		{"(*TypeName).Type", Method, 5, ""},
+		{"(*TypeParam).Constraint", Method, 18, ""},
+		{"(*TypeParam).Index", Method, 18, ""},
+		{"(*TypeParam).Obj", Method, 18, ""},
+		{"(*TypeParam).SetConstraint", Method, 18, ""},
+		{"(*TypeParam).String", Method, 18, ""},
+		{"(*TypeParam).Underlying", Method, 18, ""},
+		{"(*TypeParamList).At", Method, 18, ""},
+		{"(*TypeParamList).Len", Method, 18, ""},
+		{"(*TypeParamList).TypeParams", Method, 24, ""},
+		{"(*Union).Len", Method, 18, ""},
+		{"(*Union).String", Method, 18, ""},
+		{"(*Union).Term", Method, 18, ""},
+		{"(*Union).Terms", Method, 24, ""},
+		{"(*Union).Underlying", Method, 18, ""},
+		{"(*Var).Anonymous", Method, 5, ""},
+		{"(*Var).Embedded", Method, 11, ""},
+		{"(*Var).Exported", Method, 5, ""},
+		{"(*Var).Id", Method, 5, ""},
+		{"(*Var).IsField", Method, 5, ""},
+		{"(*Var).Kind", Method, 25, ""},
+		{"(*Var).Name", Method, 5, ""},
+		{"(*Var).Origin", Method, 19, ""},
+		{"(*Var).Parent", Method, 5, ""},
+		{"(*Var).Pkg", Method, 5, ""},
+		{"(*Var).Pos", Method, 5, ""},
+		{"(*Var).SetKind", Method, 25, ""},
+		{"(*Var).String", Method, 5, ""},
+		{"(*Var).Type", Method, 5, ""},
+		{"(Checker).ObjectOf", Method, 5, ""},
+		{"(Checker).PkgNameOf", Method, 22, ""},
+		{"(Checker).TypeOf", Method, 5, ""},
+		{"(Error).Error", Method, 5, ""},
+		{"(TypeAndValue).Addressable", Method, 5, ""},
+		{"(TypeAndValue).Assignable", Method, 5, ""},
+		{"(TypeAndValue).HasOk", Method, 5, ""},
+		{"(TypeAndValue).IsBuiltin", Method, 5, ""},
+		{"(TypeAndValue).IsNil", Method, 5, ""},
+		{"(TypeAndValue).IsType", Method, 5, ""},
+		{"(TypeAndValue).IsValue", Method, 5, ""},
+		{"(TypeAndValue).IsVoid", Method, 5, ""},
+		{"(VarKind).String", Method, 25, ""},
+		{"Alias", Type, 22, ""},
+		{"ArgumentError", Type, 18, ""},
+		{"ArgumentError.Err", Field, 18, ""},
+		{"ArgumentError.Index", Field, 18, ""},
+		{"Array", Type, 5, ""},
+		{"AssertableTo", Func, 5, "func(V *Interface, T Type) bool"},
+		{"AssignableTo", Func, 5, "func(V Type, T Type) bool"},
+		{"Basic", Type, 5, ""},
+		{"BasicInfo", Type, 5, ""},
+		{"BasicKind", Type, 5, ""},
+		{"Bool", Const, 5, ""},
+		{"Builtin", Type, 5, ""},
+		{"Byte", Const, 5, ""},
+		{"Chan", Type, 5, ""},
+		{"ChanDir", Type, 5, ""},
+		{"CheckExpr", Func, 13, "func(fset *token.FileSet, pkg *Package, pos token.Pos, expr ast.Expr, info *Info) (err error)"},
+		{"Checker", Type, 5, ""},
+		{"Checker.Info", Field, 5, ""},
+		{"Comparable", Func, 5, "func(T Type) bool"},
+		{"Complex128", Const, 5, ""},
+		{"Complex64", Const, 5, ""},
+		{"Config", Type, 5, ""},
+		{"Config.Context", Field, 18, ""},
+		{"Config.DisableUnusedImportCheck", Field, 5, ""},
+		{"Config.Error", Field, 5, ""},
+		{"Config.FakeImportC", Field, 5, ""},
+		{"Config.GoVersion", Field, 18, ""},
+		{"Config.IgnoreFuncBodies", Field, 5, ""},
+		{"Config.Importer", Field, 5, ""},
+		{"Config.Sizes", Field, 5, ""},
+		{"Const", Type, 5, ""},
+		{"Context", Type, 18, ""},
+		{"ConvertibleTo", Func, 5, "func(V Type, T Type) bool"},
+		{"DefPredeclaredTestFuncs", Func, 5, "func()"},
+		{"Default", Func, 8, "func(t Type) Type"},
+		{"Error", Type, 5, ""},
+		{"Error.Fset", Field, 5, ""},
+		{"Error.Msg", Field, 5, ""},
+		{"Error.Pos", Field, 5, ""},
+		{"Error.Soft", Field, 5, ""},
+		{"Eval", Func, 5, "func(fset *token.FileSet, pkg *Package, pos token.Pos, expr string) (_ TypeAndValue, err error)"},
+		{"ExprString", Func, 5, "func(x ast.Expr) string"},
+		{"FieldVal", Const, 5, ""},
+		{"FieldVar", Const, 25, ""},
+		{"Float32", Const, 5, ""},
+		{"Float64", Const, 5, ""},
+		{"Func", Type, 5, ""},
+		{"Id", Func, 5, "func(pkg *Package, name string) string"},
+		{"Identical", Func, 5, "func(x Type, y Type) bool"},
+		{"IdenticalIgnoreTags", Func, 8, "func(x Type, y Type) bool"},
+		{"Implements", Func, 5, "func(V Type, T *Interface) bool"},
+		{"ImportMode", Type, 6, ""},
+		{"Importer", Type, 5, ""},
+		{"ImporterFrom", Type, 6, ""},
+		{"Info", Type, 5, ""},
+		{"Info.Defs", Field, 5, ""},
+		{"Info.FileVersions", Field, 22, ""},
+		{"Info.Implicits", Field, 5, ""},
+		{"Info.InitOrder", Field, 5, ""},
+		{"Info.Instances", Field, 18, ""},
+		{"Info.Scopes", Field, 5, ""},
+		{"Info.Selections", Field, 5, ""},
+		{"Info.Types", Field, 5, ""},
+		{"Info.Uses", Field, 5, ""},
+		{"Initializer", Type, 5, ""},
+		{"Initializer.Lhs", Field, 5, ""},
+		{"Initializer.Rhs", Field, 5, ""},
+		{"Instance", Type, 18, ""},
+		{"Instance.Type", Field, 18, ""},
+		{"Instance.TypeArgs", Field, 18, ""},
+		{"Instantiate", Func, 18, "func(ctxt *Context, orig Type, targs []Type, validate bool) (Type, error)"},
+		{"Int", Const, 5, ""},
+		{"Int16", Const, 5, ""},
+		{"Int32", Const, 5, ""},
+		{"Int64", Const, 5, ""},
+		{"Int8", Const, 5, ""},
+		{"Interface", Type, 5, ""},
+		{"Invalid", Const, 5, ""},
+		{"IsBoolean", Const, 5, ""},
+		{"IsComplex", Const, 5, ""},
+		{"IsConstType", Const, 5, ""},
+		{"IsFloat", Const, 5, ""},
+		{"IsInteger", Const, 5, ""},
+		{"IsInterface", Func, 5, "func(t Type) bool"},
+		{"IsNumeric", Const, 5, ""},
+		{"IsOrdered", Const, 5, ""},
+		{"IsString", Const, 5, ""},
+		{"IsUnsigned", Const, 5, ""},
+		{"IsUntyped", Const, 5, ""},
+		{"Label", Type, 5, ""},
+		{"LocalVar", Const, 25, ""},
+		{"LookupFieldOrMethod", Func, 5, "func(T Type, addressable bool, pkg *Package, name string) (obj Object, index []int, indirect bool)"},
+		{"LookupSelection", Func, 25, "func(T Type, addressable bool, pkg *Package, name string) (Selection, bool)"},
+		{"Map", Type, 5, ""},
+		{"MethodExpr", Const, 5, ""},
+		{"MethodSet", Type, 5, ""},
+		{"MethodVal", Const, 5, ""},
+		{"MissingMethod", Func, 5, "func(V Type, T *Interface, static bool) (method *Func, wrongType bool)"},
+		{"Named", Type, 5, ""},
+		{"NewAlias", Func, 22, "func(obj *TypeName, rhs Type) *Alias"},
+		{"NewArray", Func, 5, "func(elem Type, len int64) *Array"},
+		{"NewChan", Func, 5, "func(dir ChanDir, elem Type) *Chan"},
+		{"NewChecker", Func, 5, "func(conf *Config, fset *token.FileSet, pkg *Package, info *Info) *Checker"},
+		{"NewConst", Func, 5, "func(pos token.Pos, pkg *Package, name string, typ Type, val constant.Value) *Const"},
+		{"NewContext", Func, 18, "func() *Context"},
+		{"NewField", Func, 5, "func(pos token.Pos, pkg *Package, name string, typ Type, embedded bool) *Var"},
+		{"NewFunc", Func, 5, "func(pos token.Pos, pkg *Package, name string, sig *Signature) *Func"},
+		{"NewInterface", Func, 5, "func(methods []*Func, embeddeds []*Named) *Interface"},
+		{"NewInterfaceType", Func, 11, "func(methods []*Func, embeddeds []Type) *Interface"},
+		{"NewLabel", Func, 5, "func(pos token.Pos, pkg *Package, name string) *Label"},
+		{"NewMap", Func, 5, "func(key Type, elem Type) *Map"},
+		{"NewMethodSet", Func, 5, "func(T Type) *MethodSet"},
+		{"NewNamed", Func, 5, "func(obj *TypeName, underlying Type, methods []*Func) *Named"},
+		{"NewPackage", Func, 5, "func(path string, name string) *Package"},
+		{"NewParam", Func, 5, "func(pos token.Pos, pkg *Package, name string, typ Type) *Var"},
+		{"NewPkgName", Func, 5, "func(pos token.Pos, pkg *Package, name string, imported *Package) *PkgName"},
+		{"NewPointer", Func, 5, "func(elem Type) *Pointer"},
+		{"NewScope", Func, 5, "func(parent *Scope, pos token.Pos, end token.Pos, comment string) *Scope"},
+		{"NewSignature", Func, 5, "func(recv *Var, params *Tuple, results *Tuple, variadic bool) *Signature"},
+		{"NewSignatureType", Func, 18, "func(recv *Var, recvTypeParams []*TypeParam, typeParams []*TypeParam, params *Tuple, results *Tuple, variadic bool) *Signature"},
+		{"NewSlice", Func, 5, "func(elem Type) *Slice"},
+		{"NewStruct", Func, 5, "func(fields []*Var, tags []string) *Struct"},
+		{"NewTerm", Func, 18, "func(tilde bool, typ Type) *Term"},
+		{"NewTuple", Func, 5, "func(x ...*Var) *Tuple"},
+		{"NewTypeName", Func, 5, "func(pos token.Pos, pkg *Package, name string, typ Type) *TypeName"},
+		{"NewTypeParam", Func, 18, "func(obj *TypeName, constraint Type) *TypeParam"},
+		{"NewUnion", Func, 18, "func(terms []*Term) *Union"},
+		{"NewVar", Func, 5, "func(pos token.Pos, pkg *Package, name string, typ Type) *Var"},
+		{"Nil", Type, 5, ""},
+		{"Object", Type, 5, ""},
+		{"ObjectString", Func, 5, "func(obj Object, qf Qualifier) string"},
+		{"Package", Type, 5, ""},
+		{"PackageVar", Const, 25, ""},
+		{"ParamVar", Const, 25, ""},
+		{"PkgName", Type, 5, ""},
+		{"Pointer", Type, 5, ""},
+		{"Qualifier", Type, 5, ""},
+		{"RecvOnly", Const, 5, ""},
+		{"RecvVar", Const, 25, ""},
+		{"RelativeTo", Func, 5, "func(pkg *Package) Qualifier"},
+		{"ResultVar", Const, 25, ""},
+		{"Rune", Const, 5, ""},
+		{"Satisfies", Func, 20, "func(V Type, T *Interface) bool"},
+		{"Scope", Type, 5, ""},
+		{"Selection", Type, 5, ""},
+		{"SelectionKind", Type, 5, ""},
+		{"SelectionString", Func, 5, "func(s *Selection, qf Qualifier) string"},
+		{"SendOnly", Const, 5, ""},
+		{"SendRecv", Const, 5, ""},
+		{"Signature", Type, 5, ""},
+		{"Sizes", Type, 5, ""},
+		{"SizesFor", Func, 9, "func(compiler string, arch string) Sizes"},
+		{"Slice", Type, 5, ""},
+		{"StdSizes", Type, 5, ""},
+		{"StdSizes.MaxAlign", Field, 5, ""},
+		{"StdSizes.WordSize", Field, 5, ""},
+		{"String", Const, 5, ""},
+		{"Struct", Type, 5, ""},
+		{"Term", Type, 18, ""},
+		{"Tuple", Type, 5, ""},
+		{"Typ", Var, 5, ""},
+		{"Type", Type, 5, ""},
+		{"TypeAndValue", Type, 5, ""},
+		{"TypeAndValue.Type", Field, 5, ""},
+		{"TypeAndValue.Value", Field, 5, ""},
+		{"TypeList", Type, 18, ""},
+		{"TypeName", Type, 5, ""},
+		{"TypeParam", Type, 18, ""},
+		{"TypeParamList", Type, 18, ""},
+		{"TypeString", Func, 5, "func(typ Type, qf Qualifier) string"},
+		{"Uint", Const, 5, ""},
+		{"Uint16", Const, 5, ""},
+		{"Uint32", Const, 5, ""},
+		{"Uint64", Const, 5, ""},
+		{"Uint8", Const, 5, ""},
+		{"Uintptr", Const, 5, ""},
+		{"Unalias", Func, 22, "func(t Type) Type"},
+		{"Union", Type, 18, ""},
+		{"Universe", Var, 5, ""},
+		{"Unsafe", Var, 5, ""},
+		{"UnsafePointer", Const, 5, ""},
+		{"UntypedBool", Const, 5, ""},
+		{"UntypedComplex", Const, 5, ""},
+		{"UntypedFloat", Const, 5, ""},
+		{"UntypedInt", Const, 5, ""},
+		{"UntypedNil", Const, 5, ""},
+		{"UntypedRune", Const, 5, ""},
+		{"UntypedString", Const, 5, ""},
+		{"Var", Type, 5, ""},
+		{"VarKind", Type, 25, ""},
+		{"WriteExpr", Func, 5, "func(buf *bytes.Buffer, x ast.Expr)"},
+		{"WriteSignature", Func, 5, "func(buf *bytes.Buffer, sig *Signature, qf Qualifier)"},
+		{"WriteType", Func, 5, "func(buf *bytes.Buffer, typ Type, qf Qualifier)"},
 	},
 	"go/version": {
-		{"Compare", Func, 22},
-		{"IsValid", Func, 22},
-		{"Lang", Func, 22},
+		{"Compare", Func, 22, "func(x string, y string) int"},
+		{"IsValid", Func, 22, "func(x string) bool"},
+		{"Lang", Func, 22, "func(x string) string"},
 	},
 	"hash": {
-		{"Hash", Type, 0},
-		{"Hash32", Type, 0},
-		{"Hash64", Type, 0},
+		{"Cloner", Type, 25, ""},
+		{"Hash", Type, 0, ""},
+		{"Hash32", Type, 0, ""},
+		{"Hash64", Type, 0, ""},
+		{"XOF", Type, 25, ""},
 	},
 	"hash/adler32": {
-		{"Checksum", Func, 0},
-		{"New", Func, 0},
-		{"Size", Const, 0},
+		{"Checksum", Func, 0, "func(data []byte) uint32"},
+		{"New", Func, 0, "func() hash.Hash32"},
+		{"Size", Const, 0, ""},
 	},
 	"hash/crc32": {
-		{"Castagnoli", Const, 0},
-		{"Checksum", Func, 0},
-		{"ChecksumIEEE", Func, 0},
-		{"IEEE", Const, 0},
-		{"IEEETable", Var, 0},
-		{"Koopman", Const, 0},
-		{"MakeTable", Func, 0},
-		{"New", Func, 0},
-		{"NewIEEE", Func, 0},
-		{"Size", Const, 0},
-		{"Table", Type, 0},
-		{"Update", Func, 0},
+		{"Castagnoli", Const, 0, ""},
+		{"Checksum", Func, 0, "func(data []byte, tab *Table) uint32"},
+		{"ChecksumIEEE", Func, 0, "func(data []byte) uint32"},
+		{"IEEE", Const, 0, ""},
+		{"IEEETable", Var, 0, ""},
+		{"Koopman", Const, 0, ""},
+		{"MakeTable", Func, 0, "func(poly uint32) *Table"},
+		{"New", Func, 0, "func(tab *Table) hash.Hash32"},
+		{"NewIEEE", Func, 0, "func() hash.Hash32"},
+		{"Size", Const, 0, ""},
+		{"Table", Type, 0, ""},
+		{"Update", Func, 0, "func(crc uint32, tab *Table, p []byte) uint32"},
 	},
 	"hash/crc64": {
-		{"Checksum", Func, 0},
-		{"ECMA", Const, 0},
-		{"ISO", Const, 0},
-		{"MakeTable", Func, 0},
-		{"New", Func, 0},
-		{"Size", Const, 0},
-		{"Table", Type, 0},
-		{"Update", Func, 0},
+		{"Checksum", Func, 0, "func(data []byte, tab *Table) uint64"},
+		{"ECMA", Const, 0, ""},
+		{"ISO", Const, 0, ""},
+		{"MakeTable", Func, 0, "func(poly uint64) *Table"},
+		{"New", Func, 0, "func(tab *Table) hash.Hash64"},
+		{"Size", Const, 0, ""},
+		{"Table", Type, 0, ""},
+		{"Update", Func, 0, "func(crc uint64, tab *Table, p []byte) uint64"},
 	},
 	"hash/fnv": {
-		{"New128", Func, 9},
-		{"New128a", Func, 9},
-		{"New32", Func, 0},
-		{"New32a", Func, 0},
-		{"New64", Func, 0},
-		{"New64a", Func, 0},
+		{"New128", Func, 9, "func() hash.Hash"},
+		{"New128a", Func, 9, "func() hash.Hash"},
+		{"New32", Func, 0, "func() hash.Hash32"},
+		{"New32a", Func, 0, "func() hash.Hash32"},
+		{"New64", Func, 0, "func() hash.Hash64"},
+		{"New64a", Func, 0, "func() hash.Hash64"},
 	},
 	"hash/maphash": {
-		{"(*Hash).BlockSize", Method, 14},
-		{"(*Hash).Reset", Method, 14},
-		{"(*Hash).Seed", Method, 14},
-		{"(*Hash).SetSeed", Method, 14},
-		{"(*Hash).Size", Method, 14},
-		{"(*Hash).Sum", Method, 14},
-		{"(*Hash).Sum64", Method, 14},
-		{"(*Hash).Write", Method, 14},
-		{"(*Hash).WriteByte", Method, 14},
-		{"(*Hash).WriteString", Method, 14},
-		{"Bytes", Func, 19},
-		{"Comparable", Func, 24},
-		{"Hash", Type, 14},
-		{"MakeSeed", Func, 14},
-		{"Seed", Type, 14},
-		{"String", Func, 19},
-		{"WriteComparable", Func, 24},
+		{"(*Hash).BlockSize", Method, 14, ""},
+		{"(*Hash).Clone", Method, 25, ""},
+		{"(*Hash).Reset", Method, 14, ""},
+		{"(*Hash).Seed", Method, 14, ""},
+		{"(*Hash).SetSeed", Method, 14, ""},
+		{"(*Hash).Size", Method, 14, ""},
+		{"(*Hash).Sum", Method, 14, ""},
+		{"(*Hash).Sum64", Method, 14, ""},
+		{"(*Hash).Write", Method, 14, ""},
+		{"(*Hash).WriteByte", Method, 14, ""},
+		{"(*Hash).WriteString", Method, 14, ""},
+		{"Bytes", Func, 19, "func(seed Seed, b []byte) uint64"},
+		{"Comparable", Func, 24, "func[T comparable](seed Seed, v T) uint64"},
+		{"Hash", Type, 14, ""},
+		{"MakeSeed", Func, 14, "func() Seed"},
+		{"Seed", Type, 14, ""},
+		{"String", Func, 19, "func(seed Seed, s string) uint64"},
+		{"WriteComparable", Func, 24, "func[T comparable](h *Hash, x T)"},
 	},
 	"html": {
-		{"EscapeString", Func, 0},
-		{"UnescapeString", Func, 0},
+		{"EscapeString", Func, 0, "func(s string) string"},
+		{"UnescapeString", Func, 0, "func(s string) string"},
 	},
 	"html/template": {
-		{"(*Error).Error", Method, 0},
-		{"(*Template).AddParseTree", Method, 0},
-		{"(*Template).Clone", Method, 0},
-		{"(*Template).DefinedTemplates", Method, 6},
-		{"(*Template).Delims", Method, 0},
-		{"(*Template).Execute", Method, 0},
-		{"(*Template).ExecuteTemplate", Method, 0},
-		{"(*Template).Funcs", Method, 0},
-		{"(*Template).Lookup", Method, 0},
-		{"(*Template).Name", Method, 0},
-		{"(*Template).New", Method, 0},
-		{"(*Template).Option", Method, 5},
-		{"(*Template).Parse", Method, 0},
-		{"(*Template).ParseFS", Method, 16},
-		{"(*Template).ParseFiles", Method, 0},
-		{"(*Template).ParseGlob", Method, 0},
-		{"(*Template).Templates", Method, 0},
-		{"CSS", Type, 0},
-		{"ErrAmbigContext", Const, 0},
-		{"ErrBadHTML", Const, 0},
-		{"ErrBranchEnd", Const, 0},
-		{"ErrEndContext", Const, 0},
-		{"ErrJSTemplate", Const, 21},
-		{"ErrNoSuchTemplate", Const, 0},
-		{"ErrOutputContext", Const, 0},
-		{"ErrPartialCharset", Const, 0},
-		{"ErrPartialEscape", Const, 0},
-		{"ErrPredefinedEscaper", Const, 9},
-		{"ErrRangeLoopReentry", Const, 0},
-		{"ErrSlashAmbig", Const, 0},
-		{"Error", Type, 0},
-		{"Error.Description", Field, 0},
-		{"Error.ErrorCode", Field, 0},
-		{"Error.Line", Field, 0},
-		{"Error.Name", Field, 0},
-		{"Error.Node", Field, 4},
-		{"ErrorCode", Type, 0},
-		{"FuncMap", Type, 0},
-		{"HTML", Type, 0},
-		{"HTMLAttr", Type, 0},
-		{"HTMLEscape", Func, 0},
-		{"HTMLEscapeString", Func, 0},
-		{"HTMLEscaper", Func, 0},
-		{"IsTrue", Func, 6},
-		{"JS", Type, 0},
-		{"JSEscape", Func, 0},
-		{"JSEscapeString", Func, 0},
-		{"JSEscaper", Func, 0},
-		{"JSStr", Type, 0},
-		{"Must", Func, 0},
-		{"New", Func, 0},
-		{"OK", Const, 0},
-		{"ParseFS", Func, 16},
-		{"ParseFiles", Func, 0},
-		{"ParseGlob", Func, 0},
-		{"Srcset", Type, 10},
-		{"Template", Type, 0},
-		{"Template.Tree", Field, 2},
-		{"URL", Type, 0},
-		{"URLQueryEscaper", Func, 0},
+		{"(*Error).Error", Method, 0, ""},
+		{"(*Template).AddParseTree", Method, 0, ""},
+		{"(*Template).Clone", Method, 0, ""},
+		{"(*Template).DefinedTemplates", Method, 6, ""},
+		{"(*Template).Delims", Method, 0, ""},
+		{"(*Template).Execute", Method, 0, ""},
+		{"(*Template).ExecuteTemplate", Method, 0, ""},
+		{"(*Template).Funcs", Method, 0, ""},
+		{"(*Template).Lookup", Method, 0, ""},
+		{"(*Template).Name", Method, 0, ""},
+		{"(*Template).New", Method, 0, ""},
+		{"(*Template).Option", Method, 5, ""},
+		{"(*Template).Parse", Method, 0, ""},
+		{"(*Template).ParseFS", Method, 16, ""},
+		{"(*Template).ParseFiles", Method, 0, ""},
+		{"(*Template).ParseGlob", Method, 0, ""},
+		{"(*Template).Templates", Method, 0, ""},
+		{"CSS", Type, 0, ""},
+		{"ErrAmbigContext", Const, 0, ""},
+		{"ErrBadHTML", Const, 0, ""},
+		{"ErrBranchEnd", Const, 0, ""},
+		{"ErrEndContext", Const, 0, ""},
+		{"ErrJSTemplate", Const, 21, ""},
+		{"ErrNoSuchTemplate", Const, 0, ""},
+		{"ErrOutputContext", Const, 0, ""},
+		{"ErrPartialCharset", Const, 0, ""},
+		{"ErrPartialEscape", Const, 0, ""},
+		{"ErrPredefinedEscaper", Const, 9, ""},
+		{"ErrRangeLoopReentry", Const, 0, ""},
+		{"ErrSlashAmbig", Const, 0, ""},
+		{"Error", Type, 0, ""},
+		{"Error.Description", Field, 0, ""},
+		{"Error.ErrorCode", Field, 0, ""},
+		{"Error.Line", Field, 0, ""},
+		{"Error.Name", Field, 0, ""},
+		{"Error.Node", Field, 4, ""},
+		{"ErrorCode", Type, 0, ""},
+		{"FuncMap", Type, 0, ""},
+		{"HTML", Type, 0, ""},
+		{"HTMLAttr", Type, 0, ""},
+		{"HTMLEscape", Func, 0, "func(w io.Writer, b []byte)"},
+		{"HTMLEscapeString", Func, 0, "func(s string) string"},
+		{"HTMLEscaper", Func, 0, "func(args ...any) string"},
+		{"IsTrue", Func, 6, "func(val any) (truth bool, ok bool)"},
+		{"JS", Type, 0, ""},
+		{"JSEscape", Func, 0, "func(w io.Writer, b []byte)"},
+		{"JSEscapeString", Func, 0, "func(s string) string"},
+		{"JSEscaper", Func, 0, "func(args ...any) string"},
+		{"JSStr", Type, 0, ""},
+		{"Must", Func, 0, "func(t *Template, err error) *Template"},
+		{"New", Func, 0, "func(name string) *Template"},
+		{"OK", Const, 0, ""},
+		{"ParseFS", Func, 16, "func(fs fs.FS, patterns ...string) (*Template, error)"},
+		{"ParseFiles", Func, 0, "func(filenames ...string) (*Template, error)"},
+		{"ParseGlob", Func, 0, "func(pattern string) (*Template, error)"},
+		{"Srcset", Type, 10, ""},
+		{"Template", Type, 0, ""},
+		{"Template.Tree", Field, 2, ""},
+		{"URL", Type, 0, ""},
+		{"URLQueryEscaper", Func, 0, "func(args ...any) string"},
 	},
 	"image": {
-		{"(*Alpha).AlphaAt", Method, 4},
-		{"(*Alpha).At", Method, 0},
-		{"(*Alpha).Bounds", Method, 0},
-		{"(*Alpha).ColorModel", Method, 0},
-		{"(*Alpha).Opaque", Method, 0},
-		{"(*Alpha).PixOffset", Method, 0},
-		{"(*Alpha).RGBA64At", Method, 17},
-		{"(*Alpha).Set", Method, 0},
-		{"(*Alpha).SetAlpha", Method, 0},
-		{"(*Alpha).SetRGBA64", Method, 17},
-		{"(*Alpha).SubImage", Method, 0},
-		{"(*Alpha16).Alpha16At", Method, 4},
-		{"(*Alpha16).At", Method, 0},
-		{"(*Alpha16).Bounds", Method, 0},
-		{"(*Alpha16).ColorModel", Method, 0},
-		{"(*Alpha16).Opaque", Method, 0},
-		{"(*Alpha16).PixOffset", Method, 0},
-		{"(*Alpha16).RGBA64At", Method, 17},
-		{"(*Alpha16).Set", Method, 0},
-		{"(*Alpha16).SetAlpha16", Method, 0},
-		{"(*Alpha16).SetRGBA64", Method, 17},
-		{"(*Alpha16).SubImage", Method, 0},
-		{"(*CMYK).At", Method, 5},
-		{"(*CMYK).Bounds", Method, 5},
-		{"(*CMYK).CMYKAt", Method, 5},
-		{"(*CMYK).ColorModel", Method, 5},
-		{"(*CMYK).Opaque", Method, 5},
-		{"(*CMYK).PixOffset", Method, 5},
-		{"(*CMYK).RGBA64At", Method, 17},
-		{"(*CMYK).Set", Method, 5},
-		{"(*CMYK).SetCMYK", Method, 5},
-		{"(*CMYK).SetRGBA64", Method, 17},
-		{"(*CMYK).SubImage", Method, 5},
-		{"(*Gray).At", Method, 0},
-		{"(*Gray).Bounds", Method, 0},
-		{"(*Gray).ColorModel", Method, 0},
-		{"(*Gray).GrayAt", Method, 4},
-		{"(*Gray).Opaque", Method, 0},
-		{"(*Gray).PixOffset", Method, 0},
-		{"(*Gray).RGBA64At", Method, 17},
-		{"(*Gray).Set", Method, 0},
-		{"(*Gray).SetGray", Method, 0},
-		{"(*Gray).SetRGBA64", Method, 17},
-		{"(*Gray).SubImage", Method, 0},
-		{"(*Gray16).At", Method, 0},
-		{"(*Gray16).Bounds", Method, 0},
-		{"(*Gray16).ColorModel", Method, 0},
-		{"(*Gray16).Gray16At", Method, 4},
-		{"(*Gray16).Opaque", Method, 0},
-		{"(*Gray16).PixOffset", Method, 0},
-		{"(*Gray16).RGBA64At", Method, 17},
-		{"(*Gray16).Set", Method, 0},
-		{"(*Gray16).SetGray16", Method, 0},
-		{"(*Gray16).SetRGBA64", Method, 17},
-		{"(*Gray16).SubImage", Method, 0},
-		{"(*NRGBA).At", Method, 0},
-		{"(*NRGBA).Bounds", Method, 0},
-		{"(*NRGBA).ColorModel", Method, 0},
-		{"(*NRGBA).NRGBAAt", Method, 4},
-		{"(*NRGBA).Opaque", Method, 0},
-		{"(*NRGBA).PixOffset", Method, 0},
-		{"(*NRGBA).RGBA64At", Method, 17},
-		{"(*NRGBA).Set", Method, 0},
-		{"(*NRGBA).SetNRGBA", Method, 0},
-		{"(*NRGBA).SetRGBA64", Method, 17},
-		{"(*NRGBA).SubImage", Method, 0},
-		{"(*NRGBA64).At", Method, 0},
-		{"(*NRGBA64).Bounds", Method, 0},
-		{"(*NRGBA64).ColorModel", Method, 0},
-		{"(*NRGBA64).NRGBA64At", Method, 4},
-		{"(*NRGBA64).Opaque", Method, 0},
-		{"(*NRGBA64).PixOffset", Method, 0},
-		{"(*NRGBA64).RGBA64At", Method, 17},
-		{"(*NRGBA64).Set", Method, 0},
-		{"(*NRGBA64).SetNRGBA64", Method, 0},
-		{"(*NRGBA64).SetRGBA64", Method, 17},
-		{"(*NRGBA64).SubImage", Method, 0},
-		{"(*NYCbCrA).AOffset", Method, 6},
-		{"(*NYCbCrA).At", Method, 6},
-		{"(*NYCbCrA).Bounds", Method, 6},
-		{"(*NYCbCrA).COffset", Method, 6},
-		{"(*NYCbCrA).ColorModel", Method, 6},
-		{"(*NYCbCrA).NYCbCrAAt", Method, 6},
-		{"(*NYCbCrA).Opaque", Method, 6},
-		{"(*NYCbCrA).RGBA64At", Method, 17},
-		{"(*NYCbCrA).SubImage", Method, 6},
-		{"(*NYCbCrA).YCbCrAt", Method, 6},
-		{"(*NYCbCrA).YOffset", Method, 6},
-		{"(*Paletted).At", Method, 0},
-		{"(*Paletted).Bounds", Method, 0},
-		{"(*Paletted).ColorIndexAt", Method, 0},
-		{"(*Paletted).ColorModel", Method, 0},
-		{"(*Paletted).Opaque", Method, 0},
-		{"(*Paletted).PixOffset", Method, 0},
-		{"(*Paletted).RGBA64At", Method, 17},
-		{"(*Paletted).Set", Method, 0},
-		{"(*Paletted).SetColorIndex", Method, 0},
-		{"(*Paletted).SetRGBA64", Method, 17},
-		{"(*Paletted).SubImage", Method, 0},
-		{"(*RGBA).At", Method, 0},
-		{"(*RGBA).Bounds", Method, 0},
-		{"(*RGBA).ColorModel", Method, 0},
-		{"(*RGBA).Opaque", Method, 0},
-		{"(*RGBA).PixOffset", Method, 0},
-		{"(*RGBA).RGBA64At", Method, 17},
-		{"(*RGBA).RGBAAt", Method, 4},
-		{"(*RGBA).Set", Method, 0},
-		{"(*RGBA).SetRGBA", Method, 0},
-		{"(*RGBA).SetRGBA64", Method, 17},
-		{"(*RGBA).SubImage", Method, 0},
-		{"(*RGBA64).At", Method, 0},
-		{"(*RGBA64).Bounds", Method, 0},
-		{"(*RGBA64).ColorModel", Method, 0},
-		{"(*RGBA64).Opaque", Method, 0},
-		{"(*RGBA64).PixOffset", Method, 0},
-		{"(*RGBA64).RGBA64At", Method, 4},
-		{"(*RGBA64).Set", Method, 0},
-		{"(*RGBA64).SetRGBA64", Method, 0},
-		{"(*RGBA64).SubImage", Method, 0},
-		{"(*Uniform).At", Method, 0},
-		{"(*Uniform).Bounds", Method, 0},
-		{"(*Uniform).ColorModel", Method, 0},
-		{"(*Uniform).Convert", Method, 0},
-		{"(*Uniform).Opaque", Method, 0},
-		{"(*Uniform).RGBA", Method, 0},
-		{"(*Uniform).RGBA64At", Method, 17},
-		{"(*YCbCr).At", Method, 0},
-		{"(*YCbCr).Bounds", Method, 0},
-		{"(*YCbCr).COffset", Method, 0},
-		{"(*YCbCr).ColorModel", Method, 0},
-		{"(*YCbCr).Opaque", Method, 0},
-		{"(*YCbCr).RGBA64At", Method, 17},
-		{"(*YCbCr).SubImage", Method, 0},
-		{"(*YCbCr).YCbCrAt", Method, 4},
-		{"(*YCbCr).YOffset", Method, 0},
-		{"(Point).Add", Method, 0},
-		{"(Point).Div", Method, 0},
-		{"(Point).Eq", Method, 0},
-		{"(Point).In", Method, 0},
-		{"(Point).Mod", Method, 0},
-		{"(Point).Mul", Method, 0},
-		{"(Point).String", Method, 0},
-		{"(Point).Sub", Method, 0},
-		{"(Rectangle).Add", Method, 0},
-		{"(Rectangle).At", Method, 5},
-		{"(Rectangle).Bounds", Method, 5},
-		{"(Rectangle).Canon", Method, 0},
-		{"(Rectangle).ColorModel", Method, 5},
-		{"(Rectangle).Dx", Method, 0},
-		{"(Rectangle).Dy", Method, 0},
-		{"(Rectangle).Empty", Method, 0},
-		{"(Rectangle).Eq", Method, 0},
-		{"(Rectangle).In", Method, 0},
-		{"(Rectangle).Inset", Method, 0},
-		{"(Rectangle).Intersect", Method, 0},
-		{"(Rectangle).Overlaps", Method, 0},
-		{"(Rectangle).RGBA64At", Method, 17},
-		{"(Rectangle).Size", Method, 0},
-		{"(Rectangle).String", Method, 0},
-		{"(Rectangle).Sub", Method, 0},
-		{"(Rectangle).Union", Method, 0},
-		{"(YCbCrSubsampleRatio).String", Method, 0},
-		{"Alpha", Type, 0},
-		{"Alpha.Pix", Field, 0},
-		{"Alpha.Rect", Field, 0},
-		{"Alpha.Stride", Field, 0},
-		{"Alpha16", Type, 0},
-		{"Alpha16.Pix", Field, 0},
-		{"Alpha16.Rect", Field, 0},
-		{"Alpha16.Stride", Field, 0},
-		{"Black", Var, 0},
-		{"CMYK", Type, 5},
-		{"CMYK.Pix", Field, 5},
-		{"CMYK.Rect", Field, 5},
-		{"CMYK.Stride", Field, 5},
-		{"Config", Type, 0},
-		{"Config.ColorModel", Field, 0},
-		{"Config.Height", Field, 0},
-		{"Config.Width", Field, 0},
-		{"Decode", Func, 0},
-		{"DecodeConfig", Func, 0},
-		{"ErrFormat", Var, 0},
-		{"Gray", Type, 0},
-		{"Gray.Pix", Field, 0},
-		{"Gray.Rect", Field, 0},
-		{"Gray.Stride", Field, 0},
-		{"Gray16", Type, 0},
-		{"Gray16.Pix", Field, 0},
-		{"Gray16.Rect", Field, 0},
-		{"Gray16.Stride", Field, 0},
-		{"Image", Type, 0},
-		{"NRGBA", Type, 0},
-		{"NRGBA.Pix", Field, 0},
-		{"NRGBA.Rect", Field, 0},
-		{"NRGBA.Stride", Field, 0},
-		{"NRGBA64", Type, 0},
-		{"NRGBA64.Pix", Field, 0},
-		{"NRGBA64.Rect", Field, 0},
-		{"NRGBA64.Stride", Field, 0},
-		{"NYCbCrA", Type, 6},
-		{"NYCbCrA.A", Field, 6},
-		{"NYCbCrA.AStride", Field, 6},
-		{"NYCbCrA.YCbCr", Field, 6},
-		{"NewAlpha", Func, 0},
-		{"NewAlpha16", Func, 0},
-		{"NewCMYK", Func, 5},
-		{"NewGray", Func, 0},
-		{"NewGray16", Func, 0},
-		{"NewNRGBA", Func, 0},
-		{"NewNRGBA64", Func, 0},
-		{"NewNYCbCrA", Func, 6},
-		{"NewPaletted", Func, 0},
-		{"NewRGBA", Func, 0},
-		{"NewRGBA64", Func, 0},
-		{"NewUniform", Func, 0},
-		{"NewYCbCr", Func, 0},
-		{"Opaque", Var, 0},
-		{"Paletted", Type, 0},
-		{"Paletted.Palette", Field, 0},
-		{"Paletted.Pix", Field, 0},
-		{"Paletted.Rect", Field, 0},
-		{"Paletted.Stride", Field, 0},
-		{"PalettedImage", Type, 0},
-		{"Point", Type, 0},
-		{"Point.X", Field, 0},
-		{"Point.Y", Field, 0},
-		{"Pt", Func, 0},
-		{"RGBA", Type, 0},
-		{"RGBA.Pix", Field, 0},
-		{"RGBA.Rect", Field, 0},
-		{"RGBA.Stride", Field, 0},
-		{"RGBA64", Type, 0},
-		{"RGBA64.Pix", Field, 0},
-		{"RGBA64.Rect", Field, 0},
-		{"RGBA64.Stride", Field, 0},
-		{"RGBA64Image", Type, 17},
-		{"Rect", Func, 0},
-		{"Rectangle", Type, 0},
-		{"Rectangle.Max", Field, 0},
-		{"Rectangle.Min", Field, 0},
-		{"RegisterFormat", Func, 0},
-		{"Transparent", Var, 0},
-		{"Uniform", Type, 0},
-		{"Uniform.C", Field, 0},
-		{"White", Var, 0},
-		{"YCbCr", Type, 0},
-		{"YCbCr.CStride", Field, 0},
-		{"YCbCr.Cb", Field, 0},
-		{"YCbCr.Cr", Field, 0},
-		{"YCbCr.Rect", Field, 0},
-		{"YCbCr.SubsampleRatio", Field, 0},
-		{"YCbCr.Y", Field, 0},
-		{"YCbCr.YStride", Field, 0},
-		{"YCbCrSubsampleRatio", Type, 0},
-		{"YCbCrSubsampleRatio410", Const, 5},
-		{"YCbCrSubsampleRatio411", Const, 5},
-		{"YCbCrSubsampleRatio420", Const, 0},
-		{"YCbCrSubsampleRatio422", Const, 0},
-		{"YCbCrSubsampleRatio440", Const, 1},
-		{"YCbCrSubsampleRatio444", Const, 0},
-		{"ZP", Var, 0},
-		{"ZR", Var, 0},
+		{"(*Alpha).AlphaAt", Method, 4, ""},
+		{"(*Alpha).At", Method, 0, ""},
+		{"(*Alpha).Bounds", Method, 0, ""},
+		{"(*Alpha).ColorModel", Method, 0, ""},
+		{"(*Alpha).Opaque", Method, 0, ""},
+		{"(*Alpha).PixOffset", Method, 0, ""},
+		{"(*Alpha).RGBA64At", Method, 17, ""},
+		{"(*Alpha).Set", Method, 0, ""},
+		{"(*Alpha).SetAlpha", Method, 0, ""},
+		{"(*Alpha).SetRGBA64", Method, 17, ""},
+		{"(*Alpha).SubImage", Method, 0, ""},
+		{"(*Alpha16).Alpha16At", Method, 4, ""},
+		{"(*Alpha16).At", Method, 0, ""},
+		{"(*Alpha16).Bounds", Method, 0, ""},
+		{"(*Alpha16).ColorModel", Method, 0, ""},
+		{"(*Alpha16).Opaque", Method, 0, ""},
+		{"(*Alpha16).PixOffset", Method, 0, ""},
+		{"(*Alpha16).RGBA64At", Method, 17, ""},
+		{"(*Alpha16).Set", Method, 0, ""},
+		{"(*Alpha16).SetAlpha16", Method, 0, ""},
+		{"(*Alpha16).SetRGBA64", Method, 17, ""},
+		{"(*Alpha16).SubImage", Method, 0, ""},
+		{"(*CMYK).At", Method, 5, ""},
+		{"(*CMYK).Bounds", Method, 5, ""},
+		{"(*CMYK).CMYKAt", Method, 5, ""},
+		{"(*CMYK).ColorModel", Method, 5, ""},
+		{"(*CMYK).Opaque", Method, 5, ""},
+		{"(*CMYK).PixOffset", Method, 5, ""},
+		{"(*CMYK).RGBA64At", Method, 17, ""},
+		{"(*CMYK).Set", Method, 5, ""},
+		{"(*CMYK).SetCMYK", Method, 5, ""},
+		{"(*CMYK).SetRGBA64", Method, 17, ""},
+		{"(*CMYK).SubImage", Method, 5, ""},
+		{"(*Gray).At", Method, 0, ""},
+		{"(*Gray).Bounds", Method, 0, ""},
+		{"(*Gray).ColorModel", Method, 0, ""},
+		{"(*Gray).GrayAt", Method, 4, ""},
+		{"(*Gray).Opaque", Method, 0, ""},
+		{"(*Gray).PixOffset", Method, 0, ""},
+		{"(*Gray).RGBA64At", Method, 17, ""},
+		{"(*Gray).Set", Method, 0, ""},
+		{"(*Gray).SetGray", Method, 0, ""},
+		{"(*Gray).SetRGBA64", Method, 17, ""},
+		{"(*Gray).SubImage", Method, 0, ""},
+		{"(*Gray16).At", Method, 0, ""},
+		{"(*Gray16).Bounds", Method, 0, ""},
+		{"(*Gray16).ColorModel", Method, 0, ""},
+		{"(*Gray16).Gray16At", Method, 4, ""},
+		{"(*Gray16).Opaque", Method, 0, ""},
+		{"(*Gray16).PixOffset", Method, 0, ""},
+		{"(*Gray16).RGBA64At", Method, 17, ""},
+		{"(*Gray16).Set", Method, 0, ""},
+		{"(*Gray16).SetGray16", Method, 0, ""},
+		{"(*Gray16).SetRGBA64", Method, 17, ""},
+		{"(*Gray16).SubImage", Method, 0, ""},
+		{"(*NRGBA).At", Method, 0, ""},
+		{"(*NRGBA).Bounds", Method, 0, ""},
+		{"(*NRGBA).ColorModel", Method, 0, ""},
+		{"(*NRGBA).NRGBAAt", Method, 4, ""},
+		{"(*NRGBA).Opaque", Method, 0, ""},
+		{"(*NRGBA).PixOffset", Method, 0, ""},
+		{"(*NRGBA).RGBA64At", Method, 17, ""},
+		{"(*NRGBA).Set", Method, 0, ""},
+		{"(*NRGBA).SetNRGBA", Method, 0, ""},
+		{"(*NRGBA).SetRGBA64", Method, 17, ""},
+		{"(*NRGBA).SubImage", Method, 0, ""},
+		{"(*NRGBA64).At", Method, 0, ""},
+		{"(*NRGBA64).Bounds", Method, 0, ""},
+		{"(*NRGBA64).ColorModel", Method, 0, ""},
+		{"(*NRGBA64).NRGBA64At", Method, 4, ""},
+		{"(*NRGBA64).Opaque", Method, 0, ""},
+		{"(*NRGBA64).PixOffset", Method, 0, ""},
+		{"(*NRGBA64).RGBA64At", Method, 17, ""},
+		{"(*NRGBA64).Set", Method, 0, ""},
+		{"(*NRGBA64).SetNRGBA64", Method, 0, ""},
+		{"(*NRGBA64).SetRGBA64", Method, 17, ""},
+		{"(*NRGBA64).SubImage", Method, 0, ""},
+		{"(*NYCbCrA).AOffset", Method, 6, ""},
+		{"(*NYCbCrA).At", Method, 6, ""},
+		{"(*NYCbCrA).Bounds", Method, 6, ""},
+		{"(*NYCbCrA).COffset", Method, 6, ""},
+		{"(*NYCbCrA).ColorModel", Method, 6, ""},
+		{"(*NYCbCrA).NYCbCrAAt", Method, 6, ""},
+		{"(*NYCbCrA).Opaque", Method, 6, ""},
+		{"(*NYCbCrA).RGBA64At", Method, 17, ""},
+		{"(*NYCbCrA).SubImage", Method, 6, ""},
+		{"(*NYCbCrA).YCbCrAt", Method, 6, ""},
+		{"(*NYCbCrA).YOffset", Method, 6, ""},
+		{"(*Paletted).At", Method, 0, ""},
+		{"(*Paletted).Bounds", Method, 0, ""},
+		{"(*Paletted).ColorIndexAt", Method, 0, ""},
+		{"(*Paletted).ColorModel", Method, 0, ""},
+		{"(*Paletted).Opaque", Method, 0, ""},
+		{"(*Paletted).PixOffset", Method, 0, ""},
+		{"(*Paletted).RGBA64At", Method, 17, ""},
+		{"(*Paletted).Set", Method, 0, ""},
+		{"(*Paletted).SetColorIndex", Method, 0, ""},
+		{"(*Paletted).SetRGBA64", Method, 17, ""},
+		{"(*Paletted).SubImage", Method, 0, ""},
+		{"(*RGBA).At", Method, 0, ""},
+		{"(*RGBA).Bounds", Method, 0, ""},
+		{"(*RGBA).ColorModel", Method, 0, ""},
+		{"(*RGBA).Opaque", Method, 0, ""},
+		{"(*RGBA).PixOffset", Method, 0, ""},
+		{"(*RGBA).RGBA64At", Method, 17, ""},
+		{"(*RGBA).RGBAAt", Method, 4, ""},
+		{"(*RGBA).Set", Method, 0, ""},
+		{"(*RGBA).SetRGBA", Method, 0, ""},
+		{"(*RGBA).SetRGBA64", Method, 17, ""},
+		{"(*RGBA).SubImage", Method, 0, ""},
+		{"(*RGBA64).At", Method, 0, ""},
+		{"(*RGBA64).Bounds", Method, 0, ""},
+		{"(*RGBA64).ColorModel", Method, 0, ""},
+		{"(*RGBA64).Opaque", Method, 0, ""},
+		{"(*RGBA64).PixOffset", Method, 0, ""},
+		{"(*RGBA64).RGBA64At", Method, 4, ""},
+		{"(*RGBA64).Set", Method, 0, ""},
+		{"(*RGBA64).SetRGBA64", Method, 0, ""},
+		{"(*RGBA64).SubImage", Method, 0, ""},
+		{"(*Uniform).At", Method, 0, ""},
+		{"(*Uniform).Bounds", Method, 0, ""},
+		{"(*Uniform).ColorModel", Method, 0, ""},
+		{"(*Uniform).Convert", Method, 0, ""},
+		{"(*Uniform).Opaque", Method, 0, ""},
+		{"(*Uniform).RGBA", Method, 0, ""},
+		{"(*Uniform).RGBA64At", Method, 17, ""},
+		{"(*YCbCr).At", Method, 0, ""},
+		{"(*YCbCr).Bounds", Method, 0, ""},
+		{"(*YCbCr).COffset", Method, 0, ""},
+		{"(*YCbCr).ColorModel", Method, 0, ""},
+		{"(*YCbCr).Opaque", Method, 0, ""},
+		{"(*YCbCr).RGBA64At", Method, 17, ""},
+		{"(*YCbCr).SubImage", Method, 0, ""},
+		{"(*YCbCr).YCbCrAt", Method, 4, ""},
+		{"(*YCbCr).YOffset", Method, 0, ""},
+		{"(Point).Add", Method, 0, ""},
+		{"(Point).Div", Method, 0, ""},
+		{"(Point).Eq", Method, 0, ""},
+		{"(Point).In", Method, 0, ""},
+		{"(Point).Mod", Method, 0, ""},
+		{"(Point).Mul", Method, 0, ""},
+		{"(Point).String", Method, 0, ""},
+		{"(Point).Sub", Method, 0, ""},
+		{"(Rectangle).Add", Method, 0, ""},
+		{"(Rectangle).At", Method, 5, ""},
+		{"(Rectangle).Bounds", Method, 5, ""},
+		{"(Rectangle).Canon", Method, 0, ""},
+		{"(Rectangle).ColorModel", Method, 5, ""},
+		{"(Rectangle).Dx", Method, 0, ""},
+		{"(Rectangle).Dy", Method, 0, ""},
+		{"(Rectangle).Empty", Method, 0, ""},
+		{"(Rectangle).Eq", Method, 0, ""},
+		{"(Rectangle).In", Method, 0, ""},
+		{"(Rectangle).Inset", Method, 0, ""},
+		{"(Rectangle).Intersect", Method, 0, ""},
+		{"(Rectangle).Overlaps", Method, 0, ""},
+		{"(Rectangle).RGBA64At", Method, 17, ""},
+		{"(Rectangle).Size", Method, 0, ""},
+		{"(Rectangle).String", Method, 0, ""},
+		{"(Rectangle).Sub", Method, 0, ""},
+		{"(Rectangle).Union", Method, 0, ""},
+		{"(YCbCrSubsampleRatio).String", Method, 0, ""},
+		{"Alpha", Type, 0, ""},
+		{"Alpha.Pix", Field, 0, ""},
+		{"Alpha.Rect", Field, 0, ""},
+		{"Alpha.Stride", Field, 0, ""},
+		{"Alpha16", Type, 0, ""},
+		{"Alpha16.Pix", Field, 0, ""},
+		{"Alpha16.Rect", Field, 0, ""},
+		{"Alpha16.Stride", Field, 0, ""},
+		{"Black", Var, 0, ""},
+		{"CMYK", Type, 5, ""},
+		{"CMYK.Pix", Field, 5, ""},
+		{"CMYK.Rect", Field, 5, ""},
+		{"CMYK.Stride", Field, 5, ""},
+		{"Config", Type, 0, ""},
+		{"Config.ColorModel", Field, 0, ""},
+		{"Config.Height", Field, 0, ""},
+		{"Config.Width", Field, 0, ""},
+		{"Decode", Func, 0, "func(r io.Reader) (Image, string, error)"},
+		{"DecodeConfig", Func, 0, "func(r io.Reader) (Config, string, error)"},
+		{"ErrFormat", Var, 0, ""},
+		{"Gray", Type, 0, ""},
+		{"Gray.Pix", Field, 0, ""},
+		{"Gray.Rect", Field, 0, ""},
+		{"Gray.Stride", Field, 0, ""},
+		{"Gray16", Type, 0, ""},
+		{"Gray16.Pix", Field, 0, ""},
+		{"Gray16.Rect", Field, 0, ""},
+		{"Gray16.Stride", Field, 0, ""},
+		{"Image", Type, 0, ""},
+		{"NRGBA", Type, 0, ""},
+		{"NRGBA.Pix", Field, 0, ""},
+		{"NRGBA.Rect", Field, 0, ""},
+		{"NRGBA.Stride", Field, 0, ""},
+		{"NRGBA64", Type, 0, ""},
+		{"NRGBA64.Pix", Field, 0, ""},
+		{"NRGBA64.Rect", Field, 0, ""},
+		{"NRGBA64.Stride", Field, 0, ""},
+		{"NYCbCrA", Type, 6, ""},
+		{"NYCbCrA.A", Field, 6, ""},
+		{"NYCbCrA.AStride", Field, 6, ""},
+		{"NYCbCrA.YCbCr", Field, 6, ""},
+		{"NewAlpha", Func, 0, "func(r Rectangle) *Alpha"},
+		{"NewAlpha16", Func, 0, "func(r Rectangle) *Alpha16"},
+		{"NewCMYK", Func, 5, "func(r Rectangle) *CMYK"},
+		{"NewGray", Func, 0, "func(r Rectangle) *Gray"},
+		{"NewGray16", Func, 0, "func(r Rectangle) *Gray16"},
+		{"NewNRGBA", Func, 0, "func(r Rectangle) *NRGBA"},
+		{"NewNRGBA64", Func, 0, "func(r Rectangle) *NRGBA64"},
+		{"NewNYCbCrA", Func, 6, "func(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *NYCbCrA"},
+		{"NewPaletted", Func, 0, "func(r Rectangle, p color.Palette) *Paletted"},
+		{"NewRGBA", Func, 0, "func(r Rectangle) *RGBA"},
+		{"NewRGBA64", Func, 0, "func(r Rectangle) *RGBA64"},
+		{"NewUniform", Func, 0, "func(c color.Color) *Uniform"},
+		{"NewYCbCr", Func, 0, "func(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *YCbCr"},
+		{"Opaque", Var, 0, ""},
+		{"Paletted", Type, 0, ""},
+		{"Paletted.Palette", Field, 0, ""},
+		{"Paletted.Pix", Field, 0, ""},
+		{"Paletted.Rect", Field, 0, ""},
+		{"Paletted.Stride", Field, 0, ""},
+		{"PalettedImage", Type, 0, ""},
+		{"Point", Type, 0, ""},
+		{"Point.X", Field, 0, ""},
+		{"Point.Y", Field, 0, ""},
+		{"Pt", Func, 0, "func(X int, Y int) Point"},
+		{"RGBA", Type, 0, ""},
+		{"RGBA.Pix", Field, 0, ""},
+		{"RGBA.Rect", Field, 0, ""},
+		{"RGBA.Stride", Field, 0, ""},
+		{"RGBA64", Type, 0, ""},
+		{"RGBA64.Pix", Field, 0, ""},
+		{"RGBA64.Rect", Field, 0, ""},
+		{"RGBA64.Stride", Field, 0, ""},
+		{"RGBA64Image", Type, 17, ""},
+		{"Rect", Func, 0, "func(x0 int, y0 int, x1 int, y1 int) Rectangle"},
+		{"Rectangle", Type, 0, ""},
+		{"Rectangle.Max", Field, 0, ""},
+		{"Rectangle.Min", Field, 0, ""},
+		{"RegisterFormat", Func, 0, "func(name string, magic string, decode func(io.Reader) (Image, error), decodeConfig func(io.Reader) (Config, error))"},
+		{"Transparent", Var, 0, ""},
+		{"Uniform", Type, 0, ""},
+		{"Uniform.C", Field, 0, ""},
+		{"White", Var, 0, ""},
+		{"YCbCr", Type, 0, ""},
+		{"YCbCr.CStride", Field, 0, ""},
+		{"YCbCr.Cb", Field, 0, ""},
+		{"YCbCr.Cr", Field, 0, ""},
+		{"YCbCr.Rect", Field, 0, ""},
+		{"YCbCr.SubsampleRatio", Field, 0, ""},
+		{"YCbCr.Y", Field, 0, ""},
+		{"YCbCr.YStride", Field, 0, ""},
+		{"YCbCrSubsampleRatio", Type, 0, ""},
+		{"YCbCrSubsampleRatio410", Const, 5, ""},
+		{"YCbCrSubsampleRatio411", Const, 5, ""},
+		{"YCbCrSubsampleRatio420", Const, 0, ""},
+		{"YCbCrSubsampleRatio422", Const, 0, ""},
+		{"YCbCrSubsampleRatio440", Const, 1, ""},
+		{"YCbCrSubsampleRatio444", Const, 0, ""},
+		{"ZP", Var, 0, ""},
+		{"ZR", Var, 0, ""},
 	},
 	"image/color": {
-		{"(Alpha).RGBA", Method, 0},
-		{"(Alpha16).RGBA", Method, 0},
-		{"(CMYK).RGBA", Method, 5},
-		{"(Gray).RGBA", Method, 0},
-		{"(Gray16).RGBA", Method, 0},
-		{"(NRGBA).RGBA", Method, 0},
-		{"(NRGBA64).RGBA", Method, 0},
-		{"(NYCbCrA).RGBA", Method, 6},
-		{"(Palette).Convert", Method, 0},
-		{"(Palette).Index", Method, 0},
-		{"(RGBA).RGBA", Method, 0},
-		{"(RGBA64).RGBA", Method, 0},
-		{"(YCbCr).RGBA", Method, 0},
-		{"Alpha", Type, 0},
-		{"Alpha.A", Field, 0},
-		{"Alpha16", Type, 0},
-		{"Alpha16.A", Field, 0},
-		{"Alpha16Model", Var, 0},
-		{"AlphaModel", Var, 0},
-		{"Black", Var, 0},
-		{"CMYK", Type, 5},
-		{"CMYK.C", Field, 5},
-		{"CMYK.K", Field, 5},
-		{"CMYK.M", Field, 5},
-		{"CMYK.Y", Field, 5},
-		{"CMYKModel", Var, 5},
-		{"CMYKToRGB", Func, 5},
-		{"Color", Type, 0},
-		{"Gray", Type, 0},
-		{"Gray.Y", Field, 0},
-		{"Gray16", Type, 0},
-		{"Gray16.Y", Field, 0},
-		{"Gray16Model", Var, 0},
-		{"GrayModel", Var, 0},
-		{"Model", Type, 0},
-		{"ModelFunc", Func, 0},
-		{"NRGBA", Type, 0},
-		{"NRGBA.A", Field, 0},
-		{"NRGBA.B", Field, 0},
-		{"NRGBA.G", Field, 0},
-		{"NRGBA.R", Field, 0},
-		{"NRGBA64", Type, 0},
-		{"NRGBA64.A", Field, 0},
-		{"NRGBA64.B", Field, 0},
-		{"NRGBA64.G", Field, 0},
-		{"NRGBA64.R", Field, 0},
-		{"NRGBA64Model", Var, 0},
-		{"NRGBAModel", Var, 0},
-		{"NYCbCrA", Type, 6},
-		{"NYCbCrA.A", Field, 6},
-		{"NYCbCrA.YCbCr", Field, 6},
-		{"NYCbCrAModel", Var, 6},
-		{"Opaque", Var, 0},
-		{"Palette", Type, 0},
-		{"RGBA", Type, 0},
-		{"RGBA.A", Field, 0},
-		{"RGBA.B", Field, 0},
-		{"RGBA.G", Field, 0},
-		{"RGBA.R", Field, 0},
-		{"RGBA64", Type, 0},
-		{"RGBA64.A", Field, 0},
-		{"RGBA64.B", Field, 0},
-		{"RGBA64.G", Field, 0},
-		{"RGBA64.R", Field, 0},
-		{"RGBA64Model", Var, 0},
-		{"RGBAModel", Var, 0},
-		{"RGBToCMYK", Func, 5},
-		{"RGBToYCbCr", Func, 0},
-		{"Transparent", Var, 0},
-		{"White", Var, 0},
-		{"YCbCr", Type, 0},
-		{"YCbCr.Cb", Field, 0},
-		{"YCbCr.Cr", Field, 0},
-		{"YCbCr.Y", Field, 0},
-		{"YCbCrModel", Var, 0},
-		{"YCbCrToRGB", Func, 0},
+		{"(Alpha).RGBA", Method, 0, ""},
+		{"(Alpha16).RGBA", Method, 0, ""},
+		{"(CMYK).RGBA", Method, 5, ""},
+		{"(Gray).RGBA", Method, 0, ""},
+		{"(Gray16).RGBA", Method, 0, ""},
+		{"(NRGBA).RGBA", Method, 0, ""},
+		{"(NRGBA64).RGBA", Method, 0, ""},
+		{"(NYCbCrA).RGBA", Method, 6, ""},
+		{"(Palette).Convert", Method, 0, ""},
+		{"(Palette).Index", Method, 0, ""},
+		{"(RGBA).RGBA", Method, 0, ""},
+		{"(RGBA64).RGBA", Method, 0, ""},
+		{"(YCbCr).RGBA", Method, 0, ""},
+		{"Alpha", Type, 0, ""},
+		{"Alpha.A", Field, 0, ""},
+		{"Alpha16", Type, 0, ""},
+		{"Alpha16.A", Field, 0, ""},
+		{"Alpha16Model", Var, 0, ""},
+		{"AlphaModel", Var, 0, ""},
+		{"Black", Var, 0, ""},
+		{"CMYK", Type, 5, ""},
+		{"CMYK.C", Field, 5, ""},
+		{"CMYK.K", Field, 5, ""},
+		{"CMYK.M", Field, 5, ""},
+		{"CMYK.Y", Field, 5, ""},
+		{"CMYKModel", Var, 5, ""},
+		{"CMYKToRGB", Func, 5, "func(c uint8, m uint8, y uint8, k uint8) (uint8, uint8, uint8)"},
+		{"Color", Type, 0, ""},
+		{"Gray", Type, 0, ""},
+		{"Gray.Y", Field, 0, ""},
+		{"Gray16", Type, 0, ""},
+		{"Gray16.Y", Field, 0, ""},
+		{"Gray16Model", Var, 0, ""},
+		{"GrayModel", Var, 0, ""},
+		{"Model", Type, 0, ""},
+		{"ModelFunc", Func, 0, "func(f func(Color) Color) Model"},
+		{"NRGBA", Type, 0, ""},
+		{"NRGBA.A", Field, 0, ""},
+		{"NRGBA.B", Field, 0, ""},
+		{"NRGBA.G", Field, 0, ""},
+		{"NRGBA.R", Field, 0, ""},
+		{"NRGBA64", Type, 0, ""},
+		{"NRGBA64.A", Field, 0, ""},
+		{"NRGBA64.B", Field, 0, ""},
+		{"NRGBA64.G", Field, 0, ""},
+		{"NRGBA64.R", Field, 0, ""},
+		{"NRGBA64Model", Var, 0, ""},
+		{"NRGBAModel", Var, 0, ""},
+		{"NYCbCrA", Type, 6, ""},
+		{"NYCbCrA.A", Field, 6, ""},
+		{"NYCbCrA.YCbCr", Field, 6, ""},
+		{"NYCbCrAModel", Var, 6, ""},
+		{"Opaque", Var, 0, ""},
+		{"Palette", Type, 0, ""},
+		{"RGBA", Type, 0, ""},
+		{"RGBA.A", Field, 0, ""},
+		{"RGBA.B", Field, 0, ""},
+		{"RGBA.G", Field, 0, ""},
+		{"RGBA.R", Field, 0, ""},
+		{"RGBA64", Type, 0, ""},
+		{"RGBA64.A", Field, 0, ""},
+		{"RGBA64.B", Field, 0, ""},
+		{"RGBA64.G", Field, 0, ""},
+		{"RGBA64.R", Field, 0, ""},
+		{"RGBA64Model", Var, 0, ""},
+		{"RGBAModel", Var, 0, ""},
+		{"RGBToCMYK", Func, 5, "func(r uint8, g uint8, b uint8) (uint8, uint8, uint8, uint8)"},
+		{"RGBToYCbCr", Func, 0, "func(r uint8, g uint8, b uint8) (uint8, uint8, uint8)"},
+		{"Transparent", Var, 0, ""},
+		{"White", Var, 0, ""},
+		{"YCbCr", Type, 0, ""},
+		{"YCbCr.Cb", Field, 0, ""},
+		{"YCbCr.Cr", Field, 0, ""},
+		{"YCbCr.Y", Field, 0, ""},
+		{"YCbCrModel", Var, 0, ""},
+		{"YCbCrToRGB", Func, 0, "func(y uint8, cb uint8, cr uint8) (uint8, uint8, uint8)"},
 	},
 	"image/color/palette": {
-		{"Plan9", Var, 2},
-		{"WebSafe", Var, 2},
+		{"Plan9", Var, 2, ""},
+		{"WebSafe", Var, 2, ""},
 	},
 	"image/draw": {
-		{"(Op).Draw", Method, 2},
-		{"Draw", Func, 0},
-		{"DrawMask", Func, 0},
-		{"Drawer", Type, 2},
-		{"FloydSteinberg", Var, 2},
-		{"Image", Type, 0},
-		{"Op", Type, 0},
-		{"Over", Const, 0},
-		{"Quantizer", Type, 2},
-		{"RGBA64Image", Type, 17},
-		{"Src", Const, 0},
+		{"(Op).Draw", Method, 2, ""},
+		{"Draw", Func, 0, "func(dst Image, r image.Rectangle, src image.Image, sp image.Point, op Op)"},
+		{"DrawMask", Func, 0, "func(dst Image, r image.Rectangle, src image.Image, sp image.Point, mask image.Image, mp image.Point, op Op)"},
+		{"Drawer", Type, 2, ""},
+		{"FloydSteinberg", Var, 2, ""},
+		{"Image", Type, 0, ""},
+		{"Op", Type, 0, ""},
+		{"Over", Const, 0, ""},
+		{"Quantizer", Type, 2, ""},
+		{"RGBA64Image", Type, 17, ""},
+		{"Src", Const, 0, ""},
 	},
 	"image/gif": {
-		{"Decode", Func, 0},
-		{"DecodeAll", Func, 0},
-		{"DecodeConfig", Func, 0},
-		{"DisposalBackground", Const, 5},
-		{"DisposalNone", Const, 5},
-		{"DisposalPrevious", Const, 5},
-		{"Encode", Func, 2},
-		{"EncodeAll", Func, 2},
-		{"GIF", Type, 0},
-		{"GIF.BackgroundIndex", Field, 5},
-		{"GIF.Config", Field, 5},
-		{"GIF.Delay", Field, 0},
-		{"GIF.Disposal", Field, 5},
-		{"GIF.Image", Field, 0},
-		{"GIF.LoopCount", Field, 0},
-		{"Options", Type, 2},
-		{"Options.Drawer", Field, 2},
-		{"Options.NumColors", Field, 2},
-		{"Options.Quantizer", Field, 2},
+		{"Decode", Func, 0, "func(r io.Reader) (image.Image, error)"},
+		{"DecodeAll", Func, 0, "func(r io.Reader) (*GIF, error)"},
+		{"DecodeConfig", Func, 0, "func(r io.Reader) (image.Config, error)"},
+		{"DisposalBackground", Const, 5, ""},
+		{"DisposalNone", Const, 5, ""},
+		{"DisposalPrevious", Const, 5, ""},
+		{"Encode", Func, 2, "func(w io.Writer, m image.Image, o *Options) error"},
+		{"EncodeAll", Func, 2, "func(w io.Writer, g *GIF) error"},
+		{"GIF", Type, 0, ""},
+		{"GIF.BackgroundIndex", Field, 5, ""},
+		{"GIF.Config", Field, 5, ""},
+		{"GIF.Delay", Field, 0, ""},
+		{"GIF.Disposal", Field, 5, ""},
+		{"GIF.Image", Field, 0, ""},
+		{"GIF.LoopCount", Field, 0, ""},
+		{"Options", Type, 2, ""},
+		{"Options.Drawer", Field, 2, ""},
+		{"Options.NumColors", Field, 2, ""},
+		{"Options.Quantizer", Field, 2, ""},
 	},
 	"image/jpeg": {
-		{"(FormatError).Error", Method, 0},
-		{"(UnsupportedError).Error", Method, 0},
-		{"Decode", Func, 0},
-		{"DecodeConfig", Func, 0},
-		{"DefaultQuality", Const, 0},
-		{"Encode", Func, 0},
-		{"FormatError", Type, 0},
-		{"Options", Type, 0},
-		{"Options.Quality", Field, 0},
-		{"Reader", Type, 0},
-		{"UnsupportedError", Type, 0},
+		{"(FormatError).Error", Method, 0, ""},
+		{"(UnsupportedError).Error", Method, 0, ""},
+		{"Decode", Func, 0, "func(r io.Reader) (image.Image, error)"},
+		{"DecodeConfig", Func, 0, "func(r io.Reader) (image.Config, error)"},
+		{"DefaultQuality", Const, 0, ""},
+		{"Encode", Func, 0, "func(w io.Writer, m image.Image, o *Options) error"},
+		{"FormatError", Type, 0, ""},
+		{"Options", Type, 0, ""},
+		{"Options.Quality", Field, 0, ""},
+		{"Reader", Type, 0, ""},
+		{"UnsupportedError", Type, 0, ""},
 	},
 	"image/png": {
-		{"(*Encoder).Encode", Method, 4},
-		{"(FormatError).Error", Method, 0},
-		{"(UnsupportedError).Error", Method, 0},
-		{"BestCompression", Const, 4},
-		{"BestSpeed", Const, 4},
-		{"CompressionLevel", Type, 4},
-		{"Decode", Func, 0},
-		{"DecodeConfig", Func, 0},
-		{"DefaultCompression", Const, 4},
-		{"Encode", Func, 0},
-		{"Encoder", Type, 4},
-		{"Encoder.BufferPool", Field, 9},
-		{"Encoder.CompressionLevel", Field, 4},
-		{"EncoderBuffer", Type, 9},
-		{"EncoderBufferPool", Type, 9},
-		{"FormatError", Type, 0},
-		{"NoCompression", Const, 4},
-		{"UnsupportedError", Type, 0},
+		{"(*Encoder).Encode", Method, 4, ""},
+		{"(FormatError).Error", Method, 0, ""},
+		{"(UnsupportedError).Error", Method, 0, ""},
+		{"BestCompression", Const, 4, ""},
+		{"BestSpeed", Const, 4, ""},
+		{"CompressionLevel", Type, 4, ""},
+		{"Decode", Func, 0, "func(r io.Reader) (image.Image, error)"},
+		{"DecodeConfig", Func, 0, "func(r io.Reader) (image.Config, error)"},
+		{"DefaultCompression", Const, 4, ""},
+		{"Encode", Func, 0, "func(w io.Writer, m image.Image) error"},
+		{"Encoder", Type, 4, ""},
+		{"Encoder.BufferPool", Field, 9, ""},
+		{"Encoder.CompressionLevel", Field, 4, ""},
+		{"EncoderBuffer", Type, 9, ""},
+		{"EncoderBufferPool", Type, 9, ""},
+		{"FormatError", Type, 0, ""},
+		{"NoCompression", Const, 4, ""},
+		{"UnsupportedError", Type, 0, ""},
 	},
 	"index/suffixarray": {
-		{"(*Index).Bytes", Method, 0},
-		{"(*Index).FindAllIndex", Method, 0},
-		{"(*Index).Lookup", Method, 0},
-		{"(*Index).Read", Method, 0},
-		{"(*Index).Write", Method, 0},
-		{"Index", Type, 0},
-		{"New", Func, 0},
+		{"(*Index).Bytes", Method, 0, ""},
+		{"(*Index).FindAllIndex", Method, 0, ""},
+		{"(*Index).Lookup", Method, 0, ""},
+		{"(*Index).Read", Method, 0, ""},
+		{"(*Index).Write", Method, 0, ""},
+		{"Index", Type, 0, ""},
+		{"New", Func, 0, "func(data []byte) *Index"},
 	},
 	"io": {
-		{"(*LimitedReader).Read", Method, 0},
-		{"(*OffsetWriter).Seek", Method, 20},
-		{"(*OffsetWriter).Write", Method, 20},
-		{"(*OffsetWriter).WriteAt", Method, 20},
-		{"(*PipeReader).Close", Method, 0},
-		{"(*PipeReader).CloseWithError", Method, 0},
-		{"(*PipeReader).Read", Method, 0},
-		{"(*PipeWriter).Close", Method, 0},
-		{"(*PipeWriter).CloseWithError", Method, 0},
-		{"(*PipeWriter).Write", Method, 0},
-		{"(*SectionReader).Outer", Method, 22},
-		{"(*SectionReader).Read", Method, 0},
-		{"(*SectionReader).ReadAt", Method, 0},
-		{"(*SectionReader).Seek", Method, 0},
-		{"(*SectionReader).Size", Method, 0},
-		{"ByteReader", Type, 0},
-		{"ByteScanner", Type, 0},
-		{"ByteWriter", Type, 1},
-		{"Closer", Type, 0},
-		{"Copy", Func, 0},
-		{"CopyBuffer", Func, 5},
-		{"CopyN", Func, 0},
-		{"Discard", Var, 16},
-		{"EOF", Var, 0},
-		{"ErrClosedPipe", Var, 0},
-		{"ErrNoProgress", Var, 1},
-		{"ErrShortBuffer", Var, 0},
-		{"ErrShortWrite", Var, 0},
-		{"ErrUnexpectedEOF", Var, 0},
-		{"LimitReader", Func, 0},
-		{"LimitedReader", Type, 0},
-		{"LimitedReader.N", Field, 0},
-		{"LimitedReader.R", Field, 0},
-		{"MultiReader", Func, 0},
-		{"MultiWriter", Func, 0},
-		{"NewOffsetWriter", Func, 20},
-		{"NewSectionReader", Func, 0},
-		{"NopCloser", Func, 16},
-		{"OffsetWriter", Type, 20},
-		{"Pipe", Func, 0},
-		{"PipeReader", Type, 0},
-		{"PipeWriter", Type, 0},
-		{"ReadAll", Func, 16},
-		{"ReadAtLeast", Func, 0},
-		{"ReadCloser", Type, 0},
-		{"ReadFull", Func, 0},
-		{"ReadSeekCloser", Type, 16},
-		{"ReadSeeker", Type, 0},
-		{"ReadWriteCloser", Type, 0},
-		{"ReadWriteSeeker", Type, 0},
-		{"ReadWriter", Type, 0},
-		{"Reader", Type, 0},
-		{"ReaderAt", Type, 0},
-		{"ReaderFrom", Type, 0},
-		{"RuneReader", Type, 0},
-		{"RuneScanner", Type, 0},
-		{"SectionReader", Type, 0},
-		{"SeekCurrent", Const, 7},
-		{"SeekEnd", Const, 7},
-		{"SeekStart", Const, 7},
-		{"Seeker", Type, 0},
-		{"StringWriter", Type, 12},
-		{"TeeReader", Func, 0},
-		{"WriteCloser", Type, 0},
-		{"WriteSeeker", Type, 0},
-		{"WriteString", Func, 0},
-		{"Writer", Type, 0},
-		{"WriterAt", Type, 0},
-		{"WriterTo", Type, 0},
+		{"(*LimitedReader).Read", Method, 0, ""},
+		{"(*OffsetWriter).Seek", Method, 20, ""},
+		{"(*OffsetWriter).Write", Method, 20, ""},
+		{"(*OffsetWriter).WriteAt", Method, 20, ""},
+		{"(*PipeReader).Close", Method, 0, ""},
+		{"(*PipeReader).CloseWithError", Method, 0, ""},
+		{"(*PipeReader).Read", Method, 0, ""},
+		{"(*PipeWriter).Close", Method, 0, ""},
+		{"(*PipeWriter).CloseWithError", Method, 0, ""},
+		{"(*PipeWriter).Write", Method, 0, ""},
+		{"(*SectionReader).Outer", Method, 22, ""},
+		{"(*SectionReader).Read", Method, 0, ""},
+		{"(*SectionReader).ReadAt", Method, 0, ""},
+		{"(*SectionReader).Seek", Method, 0, ""},
+		{"(*SectionReader).Size", Method, 0, ""},
+		{"ByteReader", Type, 0, ""},
+		{"ByteScanner", Type, 0, ""},
+		{"ByteWriter", Type, 1, ""},
+		{"Closer", Type, 0, ""},
+		{"Copy", Func, 0, "func(dst Writer, src Reader) (written int64, err error)"},
+		{"CopyBuffer", Func, 5, "func(dst Writer, src Reader, buf []byte) (written int64, err error)"},
+		{"CopyN", Func, 0, "func(dst Writer, src Reader, n int64) (written int64, err error)"},
+		{"Discard", Var, 16, ""},
+		{"EOF", Var, 0, ""},
+		{"ErrClosedPipe", Var, 0, ""},
+		{"ErrNoProgress", Var, 1, ""},
+		{"ErrShortBuffer", Var, 0, ""},
+		{"ErrShortWrite", Var, 0, ""},
+		{"ErrUnexpectedEOF", Var, 0, ""},
+		{"LimitReader", Func, 0, "func(r Reader, n int64) Reader"},
+		{"LimitedReader", Type, 0, ""},
+		{"LimitedReader.N", Field, 0, ""},
+		{"LimitedReader.R", Field, 0, ""},
+		{"MultiReader", Func, 0, "func(readers ...Reader) Reader"},
+		{"MultiWriter", Func, 0, "func(writers ...Writer) Writer"},
+		{"NewOffsetWriter", Func, 20, "func(w WriterAt, off int64) *OffsetWriter"},
+		{"NewSectionReader", Func, 0, "func(r ReaderAt, off int64, n int64) *SectionReader"},
+		{"NopCloser", Func, 16, "func(r Reader) ReadCloser"},
+		{"OffsetWriter", Type, 20, ""},
+		{"Pipe", Func, 0, "func() (*PipeReader, *PipeWriter)"},
+		{"PipeReader", Type, 0, ""},
+		{"PipeWriter", Type, 0, ""},
+		{"ReadAll", Func, 16, "func(r Reader) ([]byte, error)"},
+		{"ReadAtLeast", Func, 0, "func(r Reader, buf []byte, min int) (n int, err error)"},
+		{"ReadCloser", Type, 0, ""},
+		{"ReadFull", Func, 0, "func(r Reader, buf []byte) (n int, err error)"},
+		{"ReadSeekCloser", Type, 16, ""},
+		{"ReadSeeker", Type, 0, ""},
+		{"ReadWriteCloser", Type, 0, ""},
+		{"ReadWriteSeeker", Type, 0, ""},
+		{"ReadWriter", Type, 0, ""},
+		{"Reader", Type, 0, ""},
+		{"ReaderAt", Type, 0, ""},
+		{"ReaderFrom", Type, 0, ""},
+		{"RuneReader", Type, 0, ""},
+		{"RuneScanner", Type, 0, ""},
+		{"SectionReader", Type, 0, ""},
+		{"SeekCurrent", Const, 7, ""},
+		{"SeekEnd", Const, 7, ""},
+		{"SeekStart", Const, 7, ""},
+		{"Seeker", Type, 0, ""},
+		{"StringWriter", Type, 12, ""},
+		{"TeeReader", Func, 0, "func(r Reader, w Writer) Reader"},
+		{"WriteCloser", Type, 0, ""},
+		{"WriteSeeker", Type, 0, ""},
+		{"WriteString", Func, 0, "func(w Writer, s string) (n int, err error)"},
+		{"Writer", Type, 0, ""},
+		{"WriterAt", Type, 0, ""},
+		{"WriterTo", Type, 0, ""},
 	},
 	"io/fs": {
-		{"(*PathError).Error", Method, 16},
-		{"(*PathError).Timeout", Method, 16},
-		{"(*PathError).Unwrap", Method, 16},
-		{"(FileMode).IsDir", Method, 16},
-		{"(FileMode).IsRegular", Method, 16},
-		{"(FileMode).Perm", Method, 16},
-		{"(FileMode).String", Method, 16},
-		{"(FileMode).Type", Method, 16},
-		{"DirEntry", Type, 16},
-		{"ErrClosed", Var, 16},
-		{"ErrExist", Var, 16},
-		{"ErrInvalid", Var, 16},
-		{"ErrNotExist", Var, 16},
-		{"ErrPermission", Var, 16},
-		{"FS", Type, 16},
-		{"File", Type, 16},
-		{"FileInfo", Type, 16},
-		{"FileInfoToDirEntry", Func, 17},
-		{"FileMode", Type, 16},
-		{"FormatDirEntry", Func, 21},
-		{"FormatFileInfo", Func, 21},
-		{"Glob", Func, 16},
-		{"GlobFS", Type, 16},
-		{"ModeAppend", Const, 16},
-		{"ModeCharDevice", Const, 16},
-		{"ModeDevice", Const, 16},
-		{"ModeDir", Const, 16},
-		{"ModeExclusive", Const, 16},
-		{"ModeIrregular", Const, 16},
-		{"ModeNamedPipe", Const, 16},
-		{"ModePerm", Const, 16},
-		{"ModeSetgid", Const, 16},
-		{"ModeSetuid", Const, 16},
-		{"ModeSocket", Const, 16},
-		{"ModeSticky", Const, 16},
-		{"ModeSymlink", Const, 16},
-		{"ModeTemporary", Const, 16},
-		{"ModeType", Const, 16},
-		{"PathError", Type, 16},
-		{"PathError.Err", Field, 16},
-		{"PathError.Op", Field, 16},
-		{"PathError.Path", Field, 16},
-		{"ReadDir", Func, 16},
-		{"ReadDirFS", Type, 16},
-		{"ReadDirFile", Type, 16},
-		{"ReadFile", Func, 16},
-		{"ReadFileFS", Type, 16},
-		{"SkipAll", Var, 20},
-		{"SkipDir", Var, 16},
-		{"Stat", Func, 16},
-		{"StatFS", Type, 16},
-		{"Sub", Func, 16},
-		{"SubFS", Type, 16},
-		{"ValidPath", Func, 16},
-		{"WalkDir", Func, 16},
-		{"WalkDirFunc", Type, 16},
+		{"(*PathError).Error", Method, 16, ""},
+		{"(*PathError).Timeout", Method, 16, ""},
+		{"(*PathError).Unwrap", Method, 16, ""},
+		{"(FileMode).IsDir", Method, 16, ""},
+		{"(FileMode).IsRegular", Method, 16, ""},
+		{"(FileMode).Perm", Method, 16, ""},
+		{"(FileMode).String", Method, 16, ""},
+		{"(FileMode).Type", Method, 16, ""},
+		{"DirEntry", Type, 16, ""},
+		{"ErrClosed", Var, 16, ""},
+		{"ErrExist", Var, 16, ""},
+		{"ErrInvalid", Var, 16, ""},
+		{"ErrNotExist", Var, 16, ""},
+		{"ErrPermission", Var, 16, ""},
+		{"FS", Type, 16, ""},
+		{"File", Type, 16, ""},
+		{"FileInfo", Type, 16, ""},
+		{"FileInfoToDirEntry", Func, 17, "func(info FileInfo) DirEntry"},
+		{"FileMode", Type, 16, ""},
+		{"FormatDirEntry", Func, 21, "func(dir DirEntry) string"},
+		{"FormatFileInfo", Func, 21, "func(info FileInfo) string"},
+		{"Glob", Func, 16, "func(fsys FS, pattern string) (matches []string, err error)"},
+		{"GlobFS", Type, 16, ""},
+		{"Lstat", Func, 25, "func(fsys FS, name string) (FileInfo, error)"},
+		{"ModeAppend", Const, 16, ""},
+		{"ModeCharDevice", Const, 16, ""},
+		{"ModeDevice", Const, 16, ""},
+		{"ModeDir", Const, 16, ""},
+		{"ModeExclusive", Const, 16, ""},
+		{"ModeIrregular", Const, 16, ""},
+		{"ModeNamedPipe", Const, 16, ""},
+		{"ModePerm", Const, 16, ""},
+		{"ModeSetgid", Const, 16, ""},
+		{"ModeSetuid", Const, 16, ""},
+		{"ModeSocket", Const, 16, ""},
+		{"ModeSticky", Const, 16, ""},
+		{"ModeSymlink", Const, 16, ""},
+		{"ModeTemporary", Const, 16, ""},
+		{"ModeType", Const, 16, ""},
+		{"PathError", Type, 16, ""},
+		{"PathError.Err", Field, 16, ""},
+		{"PathError.Op", Field, 16, ""},
+		{"PathError.Path", Field, 16, ""},
+		{"ReadDir", Func, 16, "func(fsys FS, name string) ([]DirEntry, error)"},
+		{"ReadDirFS", Type, 16, ""},
+		{"ReadDirFile", Type, 16, ""},
+		{"ReadFile", Func, 16, "func(fsys FS, name string) ([]byte, error)"},
+		{"ReadFileFS", Type, 16, ""},
+		{"ReadLink", Func, 25, "func(fsys FS, name string) (string, error)"},
+		{"ReadLinkFS", Type, 25, ""},
+		{"SkipAll", Var, 20, ""},
+		{"SkipDir", Var, 16, ""},
+		{"Stat", Func, 16, "func(fsys FS, name string) (FileInfo, error)"},
+		{"StatFS", Type, 16, ""},
+		{"Sub", Func, 16, "func(fsys FS, dir string) (FS, error)"},
+		{"SubFS", Type, 16, ""},
+		{"ValidPath", Func, 16, "func(name string) bool"},
+		{"WalkDir", Func, 16, "func(fsys FS, root string, fn WalkDirFunc) error"},
+		{"WalkDirFunc", Type, 16, ""},
 	},
 	"io/ioutil": {
-		{"Discard", Var, 0},
-		{"NopCloser", Func, 0},
-		{"ReadAll", Func, 0},
-		{"ReadDir", Func, 0},
-		{"ReadFile", Func, 0},
-		{"TempDir", Func, 0},
-		{"TempFile", Func, 0},
-		{"WriteFile", Func, 0},
+		{"Discard", Var, 0, ""},
+		{"NopCloser", Func, 0, "func(r io.Reader) io.ReadCloser"},
+		{"ReadAll", Func, 0, "func(r io.Reader) ([]byte, error)"},
+		{"ReadDir", Func, 0, "func(dirname string) ([]fs.FileInfo, error)"},
+		{"ReadFile", Func, 0, "func(filename string) ([]byte, error)"},
+		{"TempDir", Func, 0, "func(dir string, pattern string) (name string, err error)"},
+		{"TempFile", Func, 0, "func(dir string, pattern string) (f *os.File, err error)"},
+		{"WriteFile", Func, 0, "func(filename string, data []byte, perm fs.FileMode) error"},
 	},
 	"iter": {
-		{"Pull", Func, 23},
-		{"Pull2", Func, 23},
-		{"Seq", Type, 23},
-		{"Seq2", Type, 23},
+		{"Pull", Func, 23, "func[V any](seq Seq[V]) (next func() (V, bool), stop func())"},
+		{"Pull2", Func, 23, "func[K, V any](seq Seq2[K, V]) (next func() (K, V, bool), stop func())"},
+		{"Seq", Type, 23, ""},
+		{"Seq2", Type, 23, ""},
 	},
 	"log": {
-		{"(*Logger).Fatal", Method, 0},
-		{"(*Logger).Fatalf", Method, 0},
-		{"(*Logger).Fatalln", Method, 0},
-		{"(*Logger).Flags", Method, 0},
-		{"(*Logger).Output", Method, 0},
-		{"(*Logger).Panic", Method, 0},
-		{"(*Logger).Panicf", Method, 0},
-		{"(*Logger).Panicln", Method, 0},
-		{"(*Logger).Prefix", Method, 0},
-		{"(*Logger).Print", Method, 0},
-		{"(*Logger).Printf", Method, 0},
-		{"(*Logger).Println", Method, 0},
-		{"(*Logger).SetFlags", Method, 0},
-		{"(*Logger).SetOutput", Method, 5},
-		{"(*Logger).SetPrefix", Method, 0},
-		{"(*Logger).Writer", Method, 12},
-		{"Default", Func, 16},
-		{"Fatal", Func, 0},
-		{"Fatalf", Func, 0},
-		{"Fatalln", Func, 0},
-		{"Flags", Func, 0},
-		{"LUTC", Const, 5},
-		{"Ldate", Const, 0},
-		{"Llongfile", Const, 0},
-		{"Lmicroseconds", Const, 0},
-		{"Lmsgprefix", Const, 14},
-		{"Logger", Type, 0},
-		{"Lshortfile", Const, 0},
-		{"LstdFlags", Const, 0},
-		{"Ltime", Const, 0},
-		{"New", Func, 0},
-		{"Output", Func, 5},
-		{"Panic", Func, 0},
-		{"Panicf", Func, 0},
-		{"Panicln", Func, 0},
-		{"Prefix", Func, 0},
-		{"Print", Func, 0},
-		{"Printf", Func, 0},
-		{"Println", Func, 0},
-		{"SetFlags", Func, 0},
-		{"SetOutput", Func, 0},
-		{"SetPrefix", Func, 0},
-		{"Writer", Func, 13},
+		{"(*Logger).Fatal", Method, 0, ""},
+		{"(*Logger).Fatalf", Method, 0, ""},
+		{"(*Logger).Fatalln", Method, 0, ""},
+		{"(*Logger).Flags", Method, 0, ""},
+		{"(*Logger).Output", Method, 0, ""},
+		{"(*Logger).Panic", Method, 0, ""},
+		{"(*Logger).Panicf", Method, 0, ""},
+		{"(*Logger).Panicln", Method, 0, ""},
+		{"(*Logger).Prefix", Method, 0, ""},
+		{"(*Logger).Print", Method, 0, ""},
+		{"(*Logger).Printf", Method, 0, ""},
+		{"(*Logger).Println", Method, 0, ""},
+		{"(*Logger).SetFlags", Method, 0, ""},
+		{"(*Logger).SetOutput", Method, 5, ""},
+		{"(*Logger).SetPrefix", Method, 0, ""},
+		{"(*Logger).Writer", Method, 12, ""},
+		{"Default", Func, 16, "func() *Logger"},
+		{"Fatal", Func, 0, "func(v ...any)"},
+		{"Fatalf", Func, 0, "func(format string, v ...any)"},
+		{"Fatalln", Func, 0, "func(v ...any)"},
+		{"Flags", Func, 0, "func() int"},
+		{"LUTC", Const, 5, ""},
+		{"Ldate", Const, 0, ""},
+		{"Llongfile", Const, 0, ""},
+		{"Lmicroseconds", Const, 0, ""},
+		{"Lmsgprefix", Const, 14, ""},
+		{"Logger", Type, 0, ""},
+		{"Lshortfile", Const, 0, ""},
+		{"LstdFlags", Const, 0, ""},
+		{"Ltime", Const, 0, ""},
+		{"New", Func, 0, "func(out io.Writer, prefix string, flag int) *Logger"},
+		{"Output", Func, 5, "func(calldepth int, s string) error"},
+		{"Panic", Func, 0, "func(v ...any)"},
+		{"Panicf", Func, 0, "func(format string, v ...any)"},
+		{"Panicln", Func, 0, "func(v ...any)"},
+		{"Prefix", Func, 0, "func() string"},
+		{"Print", Func, 0, "func(v ...any)"},
+		{"Printf", Func, 0, "func(format string, v ...any)"},
+		{"Println", Func, 0, "func(v ...any)"},
+		{"SetFlags", Func, 0, "func(flag int)"},
+		{"SetOutput", Func, 0, "func(w io.Writer)"},
+		{"SetPrefix", Func, 0, "func(prefix string)"},
+		{"Writer", Func, 13, "func() io.Writer"},
 	},
 	"log/slog": {
-		{"(*JSONHandler).Enabled", Method, 21},
-		{"(*JSONHandler).Handle", Method, 21},
-		{"(*JSONHandler).WithAttrs", Method, 21},
-		{"(*JSONHandler).WithGroup", Method, 21},
-		{"(*Level).UnmarshalJSON", Method, 21},
-		{"(*Level).UnmarshalText", Method, 21},
-		{"(*LevelVar).AppendText", Method, 24},
-		{"(*LevelVar).Level", Method, 21},
-		{"(*LevelVar).MarshalText", Method, 21},
-		{"(*LevelVar).Set", Method, 21},
-		{"(*LevelVar).String", Method, 21},
-		{"(*LevelVar).UnmarshalText", Method, 21},
-		{"(*Logger).Debug", Method, 21},
-		{"(*Logger).DebugContext", Method, 21},
-		{"(*Logger).Enabled", Method, 21},
-		{"(*Logger).Error", Method, 21},
-		{"(*Logger).ErrorContext", Method, 21},
-		{"(*Logger).Handler", Method, 21},
-		{"(*Logger).Info", Method, 21},
-		{"(*Logger).InfoContext", Method, 21},
-		{"(*Logger).Log", Method, 21},
-		{"(*Logger).LogAttrs", Method, 21},
-		{"(*Logger).Warn", Method, 21},
-		{"(*Logger).WarnContext", Method, 21},
-		{"(*Logger).With", Method, 21},
-		{"(*Logger).WithGroup", Method, 21},
-		{"(*Record).Add", Method, 21},
-		{"(*Record).AddAttrs", Method, 21},
-		{"(*TextHandler).Enabled", Method, 21},
-		{"(*TextHandler).Handle", Method, 21},
-		{"(*TextHandler).WithAttrs", Method, 21},
-		{"(*TextHandler).WithGroup", Method, 21},
-		{"(Attr).Equal", Method, 21},
-		{"(Attr).String", Method, 21},
-		{"(Kind).String", Method, 21},
-		{"(Level).AppendText", Method, 24},
-		{"(Level).Level", Method, 21},
-		{"(Level).MarshalJSON", Method, 21},
-		{"(Level).MarshalText", Method, 21},
-		{"(Level).String", Method, 21},
-		{"(Record).Attrs", Method, 21},
-		{"(Record).Clone", Method, 21},
-		{"(Record).NumAttrs", Method, 21},
-		{"(Value).Any", Method, 21},
-		{"(Value).Bool", Method, 21},
-		{"(Value).Duration", Method, 21},
-		{"(Value).Equal", Method, 21},
-		{"(Value).Float64", Method, 21},
-		{"(Value).Group", Method, 21},
-		{"(Value).Int64", Method, 21},
-		{"(Value).Kind", Method, 21},
-		{"(Value).LogValuer", Method, 21},
-		{"(Value).Resolve", Method, 21},
-		{"(Value).String", Method, 21},
-		{"(Value).Time", Method, 21},
-		{"(Value).Uint64", Method, 21},
-		{"Any", Func, 21},
-		{"AnyValue", Func, 21},
-		{"Attr", Type, 21},
-		{"Attr.Key", Field, 21},
-		{"Attr.Value", Field, 21},
-		{"Bool", Func, 21},
-		{"BoolValue", Func, 21},
-		{"Debug", Func, 21},
-		{"DebugContext", Func, 21},
-		{"Default", Func, 21},
-		{"DiscardHandler", Var, 24},
-		{"Duration", Func, 21},
-		{"DurationValue", Func, 21},
-		{"Error", Func, 21},
-		{"ErrorContext", Func, 21},
-		{"Float64", Func, 21},
-		{"Float64Value", Func, 21},
-		{"Group", Func, 21},
-		{"GroupValue", Func, 21},
-		{"Handler", Type, 21},
-		{"HandlerOptions", Type, 21},
-		{"HandlerOptions.AddSource", Field, 21},
-		{"HandlerOptions.Level", Field, 21},
-		{"HandlerOptions.ReplaceAttr", Field, 21},
-		{"Info", Func, 21},
-		{"InfoContext", Func, 21},
-		{"Int", Func, 21},
-		{"Int64", Func, 21},
-		{"Int64Value", Func, 21},
-		{"IntValue", Func, 21},
-		{"JSONHandler", Type, 21},
-		{"Kind", Type, 21},
-		{"KindAny", Const, 21},
-		{"KindBool", Const, 21},
-		{"KindDuration", Const, 21},
-		{"KindFloat64", Const, 21},
-		{"KindGroup", Const, 21},
-		{"KindInt64", Const, 21},
-		{"KindLogValuer", Const, 21},
-		{"KindString", Const, 21},
-		{"KindTime", Const, 21},
-		{"KindUint64", Const, 21},
-		{"Level", Type, 21},
-		{"LevelDebug", Const, 21},
-		{"LevelError", Const, 21},
-		{"LevelInfo", Const, 21},
-		{"LevelKey", Const, 21},
-		{"LevelVar", Type, 21},
-		{"LevelWarn", Const, 21},
-		{"Leveler", Type, 21},
-		{"Log", Func, 21},
-		{"LogAttrs", Func, 21},
-		{"LogValuer", Type, 21},
-		{"Logger", Type, 21},
-		{"MessageKey", Const, 21},
-		{"New", Func, 21},
-		{"NewJSONHandler", Func, 21},
-		{"NewLogLogger", Func, 21},
-		{"NewRecord", Func, 21},
-		{"NewTextHandler", Func, 21},
-		{"Record", Type, 21},
-		{"Record.Level", Field, 21},
-		{"Record.Message", Field, 21},
-		{"Record.PC", Field, 21},
-		{"Record.Time", Field, 21},
-		{"SetDefault", Func, 21},
-		{"SetLogLoggerLevel", Func, 22},
-		{"Source", Type, 21},
-		{"Source.File", Field, 21},
-		{"Source.Function", Field, 21},
-		{"Source.Line", Field, 21},
-		{"SourceKey", Const, 21},
-		{"String", Func, 21},
-		{"StringValue", Func, 21},
-		{"TextHandler", Type, 21},
-		{"Time", Func, 21},
-		{"TimeKey", Const, 21},
-		{"TimeValue", Func, 21},
-		{"Uint64", Func, 21},
-		{"Uint64Value", Func, 21},
-		{"Value", Type, 21},
-		{"Warn", Func, 21},
-		{"WarnContext", Func, 21},
-		{"With", Func, 21},
+		{"(*JSONHandler).Enabled", Method, 21, ""},
+		{"(*JSONHandler).Handle", Method, 21, ""},
+		{"(*JSONHandler).WithAttrs", Method, 21, ""},
+		{"(*JSONHandler).WithGroup", Method, 21, ""},
+		{"(*Level).UnmarshalJSON", Method, 21, ""},
+		{"(*Level).UnmarshalText", Method, 21, ""},
+		{"(*LevelVar).AppendText", Method, 24, ""},
+		{"(*LevelVar).Level", Method, 21, ""},
+		{"(*LevelVar).MarshalText", Method, 21, ""},
+		{"(*LevelVar).Set", Method, 21, ""},
+		{"(*LevelVar).String", Method, 21, ""},
+		{"(*LevelVar).UnmarshalText", Method, 21, ""},
+		{"(*Logger).Debug", Method, 21, ""},
+		{"(*Logger).DebugContext", Method, 21, ""},
+		{"(*Logger).Enabled", Method, 21, ""},
+		{"(*Logger).Error", Method, 21, ""},
+		{"(*Logger).ErrorContext", Method, 21, ""},
+		{"(*Logger).Handler", Method, 21, ""},
+		{"(*Logger).Info", Method, 21, ""},
+		{"(*Logger).InfoContext", Method, 21, ""},
+		{"(*Logger).Log", Method, 21, ""},
+		{"(*Logger).LogAttrs", Method, 21, ""},
+		{"(*Logger).Warn", Method, 21, ""},
+		{"(*Logger).WarnContext", Method, 21, ""},
+		{"(*Logger).With", Method, 21, ""},
+		{"(*Logger).WithGroup", Method, 21, ""},
+		{"(*Record).Add", Method, 21, ""},
+		{"(*Record).AddAttrs", Method, 21, ""},
+		{"(*TextHandler).Enabled", Method, 21, ""},
+		{"(*TextHandler).Handle", Method, 21, ""},
+		{"(*TextHandler).WithAttrs", Method, 21, ""},
+		{"(*TextHandler).WithGroup", Method, 21, ""},
+		{"(Attr).Equal", Method, 21, ""},
+		{"(Attr).String", Method, 21, ""},
+		{"(Kind).String", Method, 21, ""},
+		{"(Level).AppendText", Method, 24, ""},
+		{"(Level).Level", Method, 21, ""},
+		{"(Level).MarshalJSON", Method, 21, ""},
+		{"(Level).MarshalText", Method, 21, ""},
+		{"(Level).String", Method, 21, ""},
+		{"(Record).Attrs", Method, 21, ""},
+		{"(Record).Clone", Method, 21, ""},
+		{"(Record).NumAttrs", Method, 21, ""},
+		{"(Record).Source", Method, 25, ""},
+		{"(Value).Any", Method, 21, ""},
+		{"(Value).Bool", Method, 21, ""},
+		{"(Value).Duration", Method, 21, ""},
+		{"(Value).Equal", Method, 21, ""},
+		{"(Value).Float64", Method, 21, ""},
+		{"(Value).Group", Method, 21, ""},
+		{"(Value).Int64", Method, 21, ""},
+		{"(Value).Kind", Method, 21, ""},
+		{"(Value).LogValuer", Method, 21, ""},
+		{"(Value).Resolve", Method, 21, ""},
+		{"(Value).String", Method, 21, ""},
+		{"(Value).Time", Method, 21, ""},
+		{"(Value).Uint64", Method, 21, ""},
+		{"Any", Func, 21, "func(key string, value any) Attr"},
+		{"AnyValue", Func, 21, "func(v any) Value"},
+		{"Attr", Type, 21, ""},
+		{"Attr.Key", Field, 21, ""},
+		{"Attr.Value", Field, 21, ""},
+		{"Bool", Func, 21, "func(key string, v bool) Attr"},
+		{"BoolValue", Func, 21, "func(v bool) Value"},
+		{"Debug", Func, 21, "func(msg string, args ...any)"},
+		{"DebugContext", Func, 21, "func(ctx context.Context, msg string, args ...any)"},
+		{"Default", Func, 21, "func() *Logger"},
+		{"DiscardHandler", Var, 24, ""},
+		{"Duration", Func, 21, "func(key string, v time.Duration) Attr"},
+		{"DurationValue", Func, 21, "func(v time.Duration) Value"},
+		{"Error", Func, 21, "func(msg string, args ...any)"},
+		{"ErrorContext", Func, 21, "func(ctx context.Context, msg string, args ...any)"},
+		{"Float64", Func, 21, "func(key string, v float64) Attr"},
+		{"Float64Value", Func, 21, "func(v float64) Value"},
+		{"Group", Func, 21, "func(key string, args ...any) Attr"},
+		{"GroupAttrs", Func, 25, "func(key string, attrs ...Attr) Attr"},
+		{"GroupValue", Func, 21, "func(as ...Attr) Value"},
+		{"Handler", Type, 21, ""},
+		{"HandlerOptions", Type, 21, ""},
+		{"HandlerOptions.AddSource", Field, 21, ""},
+		{"HandlerOptions.Level", Field, 21, ""},
+		{"HandlerOptions.ReplaceAttr", Field, 21, ""},
+		{"Info", Func, 21, "func(msg string, args ...any)"},
+		{"InfoContext", Func, 21, "func(ctx context.Context, msg string, args ...any)"},
+		{"Int", Func, 21, "func(key string, value int) Attr"},
+		{"Int64", Func, 21, "func(key string, value int64) Attr"},
+		{"Int64Value", Func, 21, "func(v int64) Value"},
+		{"IntValue", Func, 21, "func(v int) Value"},
+		{"JSONHandler", Type, 21, ""},
+		{"Kind", Type, 21, ""},
+		{"KindAny", Const, 21, ""},
+		{"KindBool", Const, 21, ""},
+		{"KindDuration", Const, 21, ""},
+		{"KindFloat64", Const, 21, ""},
+		{"KindGroup", Const, 21, ""},
+		{"KindInt64", Const, 21, ""},
+		{"KindLogValuer", Const, 21, ""},
+		{"KindString", Const, 21, ""},
+		{"KindTime", Const, 21, ""},
+		{"KindUint64", Const, 21, ""},
+		{"Level", Type, 21, ""},
+		{"LevelDebug", Const, 21, ""},
+		{"LevelError", Const, 21, ""},
+		{"LevelInfo", Const, 21, ""},
+		{"LevelKey", Const, 21, ""},
+		{"LevelVar", Type, 21, ""},
+		{"LevelWarn", Const, 21, ""},
+		{"Leveler", Type, 21, ""},
+		{"Log", Func, 21, "func(ctx context.Context, level Level, msg string, args ...any)"},
+		{"LogAttrs", Func, 21, "func(ctx context.Context, level Level, msg string, attrs ...Attr)"},
+		{"LogValuer", Type, 21, ""},
+		{"Logger", Type, 21, ""},
+		{"MessageKey", Const, 21, ""},
+		{"New", Func, 21, "func(h Handler) *Logger"},
+		{"NewJSONHandler", Func, 21, "func(w io.Writer, opts *HandlerOptions) *JSONHandler"},
+		{"NewLogLogger", Func, 21, "func(h Handler, level Level) *log.Logger"},
+		{"NewRecord", Func, 21, "func(t time.Time, level Level, msg string, pc uintptr) Record"},
+		{"NewTextHandler", Func, 21, "func(w io.Writer, opts *HandlerOptions) *TextHandler"},
+		{"Record", Type, 21, ""},
+		{"Record.Level", Field, 21, ""},
+		{"Record.Message", Field, 21, ""},
+		{"Record.PC", Field, 21, ""},
+		{"Record.Time", Field, 21, ""},
+		{"SetDefault", Func, 21, "func(l *Logger)"},
+		{"SetLogLoggerLevel", Func, 22, "func(level Level) (oldLevel Level)"},
+		{"Source", Type, 21, ""},
+		{"Source.File", Field, 21, ""},
+		{"Source.Function", Field, 21, ""},
+		{"Source.Line", Field, 21, ""},
+		{"SourceKey", Const, 21, ""},
+		{"String", Func, 21, "func(key string, value string) Attr"},
+		{"StringValue", Func, 21, "func(value string) Value"},
+		{"TextHandler", Type, 21, ""},
+		{"Time", Func, 21, "func(key string, v time.Time) Attr"},
+		{"TimeKey", Const, 21, ""},
+		{"TimeValue", Func, 21, "func(v time.Time) Value"},
+		{"Uint64", Func, 21, "func(key string, v uint64) Attr"},
+		{"Uint64Value", Func, 21, "func(v uint64) Value"},
+		{"Value", Type, 21, ""},
+		{"Warn", Func, 21, "func(msg string, args ...any)"},
+		{"WarnContext", Func, 21, "func(ctx context.Context, msg string, args ...any)"},
+		{"With", Func, 21, "func(args ...any) *Logger"},
 	},
 	"log/syslog": {
-		{"(*Writer).Alert", Method, 0},
-		{"(*Writer).Close", Method, 0},
-		{"(*Writer).Crit", Method, 0},
-		{"(*Writer).Debug", Method, 0},
-		{"(*Writer).Emerg", Method, 0},
-		{"(*Writer).Err", Method, 0},
-		{"(*Writer).Info", Method, 0},
-		{"(*Writer).Notice", Method, 0},
-		{"(*Writer).Warning", Method, 0},
-		{"(*Writer).Write", Method, 0},
-		{"Dial", Func, 0},
-		{"LOG_ALERT", Const, 0},
-		{"LOG_AUTH", Const, 1},
-		{"LOG_AUTHPRIV", Const, 1},
-		{"LOG_CRIT", Const, 0},
-		{"LOG_CRON", Const, 1},
-		{"LOG_DAEMON", Const, 1},
-		{"LOG_DEBUG", Const, 0},
-		{"LOG_EMERG", Const, 0},
-		{"LOG_ERR", Const, 0},
-		{"LOG_FTP", Const, 1},
-		{"LOG_INFO", Const, 0},
-		{"LOG_KERN", Const, 1},
-		{"LOG_LOCAL0", Const, 1},
-		{"LOG_LOCAL1", Const, 1},
-		{"LOG_LOCAL2", Const, 1},
-		{"LOG_LOCAL3", Const, 1},
-		{"LOG_LOCAL4", Const, 1},
-		{"LOG_LOCAL5", Const, 1},
-		{"LOG_LOCAL6", Const, 1},
-		{"LOG_LOCAL7", Const, 1},
-		{"LOG_LPR", Const, 1},
-		{"LOG_MAIL", Const, 1},
-		{"LOG_NEWS", Const, 1},
-		{"LOG_NOTICE", Const, 0},
-		{"LOG_SYSLOG", Const, 1},
-		{"LOG_USER", Const, 1},
-		{"LOG_UUCP", Const, 1},
-		{"LOG_WARNING", Const, 0},
-		{"New", Func, 0},
-		{"NewLogger", Func, 0},
-		{"Priority", Type, 0},
-		{"Writer", Type, 0},
+		{"(*Writer).Alert", Method, 0, ""},
+		{"(*Writer).Close", Method, 0, ""},
+		{"(*Writer).Crit", Method, 0, ""},
+		{"(*Writer).Debug", Method, 0, ""},
+		{"(*Writer).Emerg", Method, 0, ""},
+		{"(*Writer).Err", Method, 0, ""},
+		{"(*Writer).Info", Method, 0, ""},
+		{"(*Writer).Notice", Method, 0, ""},
+		{"(*Writer).Warning", Method, 0, ""},
+		{"(*Writer).Write", Method, 0, ""},
+		{"Dial", Func, 0, "func(network string, raddr string, priority Priority, tag string) (*Writer, error)"},
+		{"LOG_ALERT", Const, 0, ""},
+		{"LOG_AUTH", Const, 1, ""},
+		{"LOG_AUTHPRIV", Const, 1, ""},
+		{"LOG_CRIT", Const, 0, ""},
+		{"LOG_CRON", Const, 1, ""},
+		{"LOG_DAEMON", Const, 1, ""},
+		{"LOG_DEBUG", Const, 0, ""},
+		{"LOG_EMERG", Const, 0, ""},
+		{"LOG_ERR", Const, 0, ""},
+		{"LOG_FTP", Const, 1, ""},
+		{"LOG_INFO", Const, 0, ""},
+		{"LOG_KERN", Const, 1, ""},
+		{"LOG_LOCAL0", Const, 1, ""},
+		{"LOG_LOCAL1", Const, 1, ""},
+		{"LOG_LOCAL2", Const, 1, ""},
+		{"LOG_LOCAL3", Const, 1, ""},
+		{"LOG_LOCAL4", Const, 1, ""},
+		{"LOG_LOCAL5", Const, 1, ""},
+		{"LOG_LOCAL6", Const, 1, ""},
+		{"LOG_LOCAL7", Const, 1, ""},
+		{"LOG_LPR", Const, 1, ""},
+		{"LOG_MAIL", Const, 1, ""},
+		{"LOG_NEWS", Const, 1, ""},
+		{"LOG_NOTICE", Const, 0, ""},
+		{"LOG_SYSLOG", Const, 1, ""},
+		{"LOG_USER", Const, 1, ""},
+		{"LOG_UUCP", Const, 1, ""},
+		{"LOG_WARNING", Const, 0, ""},
+		{"New", Func, 0, "func(priority Priority, tag string) (*Writer, error)"},
+		{"NewLogger", Func, 0, "func(p Priority, logFlag int) (*log.Logger, error)"},
+		{"Priority", Type, 0, ""},
+		{"Writer", Type, 0, ""},
 	},
 	"maps": {
-		{"All", Func, 23},
-		{"Clone", Func, 21},
-		{"Collect", Func, 23},
-		{"Copy", Func, 21},
-		{"DeleteFunc", Func, 21},
-		{"Equal", Func, 21},
-		{"EqualFunc", Func, 21},
-		{"Insert", Func, 23},
-		{"Keys", Func, 23},
-		{"Values", Func, 23},
+		{"All", Func, 23, "func[Map ~map[K]V, K comparable, V any](m Map) iter.Seq2[K, V]"},
+		{"Clone", Func, 21, "func[M ~map[K]V, K comparable, V any](m M) M"},
+		{"Collect", Func, 23, "func[K comparable, V any](seq iter.Seq2[K, V]) map[K]V"},
+		{"Copy", Func, 21, "func[M1 ~map[K]V, M2 ~map[K]V, K comparable, V any](dst M1, src M2)"},
+		{"DeleteFunc", Func, 21, "func[M ~map[K]V, K comparable, V any](m M, del func(K, V) bool)"},
+		{"Equal", Func, 21, "func[M1, M2 ~map[K]V, K, V comparable](m1 M1, m2 M2) bool"},
+		{"EqualFunc", Func, 21, "func[M1 ~map[K]V1, M2 ~map[K]V2, K comparable, V1, V2 any](m1 M1, m2 M2, eq func(V1, V2) bool) bool"},
+		{"Insert", Func, 23, "func[Map ~map[K]V, K comparable, V any](m Map, seq iter.Seq2[K, V])"},
+		{"Keys", Func, 23, "func[Map ~map[K]V, K comparable, V any](m Map) iter.Seq[K]"},
+		{"Values", Func, 23, "func[Map ~map[K]V, K comparable, V any](m Map) iter.Seq[V]"},
 	},
 	"math": {
-		{"Abs", Func, 0},
-		{"Acos", Func, 0},
-		{"Acosh", Func, 0},
-		{"Asin", Func, 0},
-		{"Asinh", Func, 0},
-		{"Atan", Func, 0},
-		{"Atan2", Func, 0},
-		{"Atanh", Func, 0},
-		{"Cbrt", Func, 0},
-		{"Ceil", Func, 0},
-		{"Copysign", Func, 0},
-		{"Cos", Func, 0},
-		{"Cosh", Func, 0},
-		{"Dim", Func, 0},
-		{"E", Const, 0},
-		{"Erf", Func, 0},
-		{"Erfc", Func, 0},
-		{"Erfcinv", Func, 10},
-		{"Erfinv", Func, 10},
-		{"Exp", Func, 0},
-		{"Exp2", Func, 0},
-		{"Expm1", Func, 0},
-		{"FMA", Func, 14},
-		{"Float32bits", Func, 0},
-		{"Float32frombits", Func, 0},
-		{"Float64bits", Func, 0},
-		{"Float64frombits", Func, 0},
-		{"Floor", Func, 0},
-		{"Frexp", Func, 0},
-		{"Gamma", Func, 0},
-		{"Hypot", Func, 0},
-		{"Ilogb", Func, 0},
-		{"Inf", Func, 0},
-		{"IsInf", Func, 0},
-		{"IsNaN", Func, 0},
-		{"J0", Func, 0},
-		{"J1", Func, 0},
-		{"Jn", Func, 0},
-		{"Ldexp", Func, 0},
-		{"Lgamma", Func, 0},
-		{"Ln10", Const, 0},
-		{"Ln2", Const, 0},
-		{"Log", Func, 0},
-		{"Log10", Func, 0},
-		{"Log10E", Const, 0},
-		{"Log1p", Func, 0},
-		{"Log2", Func, 0},
-		{"Log2E", Const, 0},
-		{"Logb", Func, 0},
-		{"Max", Func, 0},
-		{"MaxFloat32", Const, 0},
-		{"MaxFloat64", Const, 0},
-		{"MaxInt", Const, 17},
-		{"MaxInt16", Const, 0},
-		{"MaxInt32", Const, 0},
-		{"MaxInt64", Const, 0},
-		{"MaxInt8", Const, 0},
-		{"MaxUint", Const, 17},
-		{"MaxUint16", Const, 0},
-		{"MaxUint32", Const, 0},
-		{"MaxUint64", Const, 0},
-		{"MaxUint8", Const, 0},
-		{"Min", Func, 0},
-		{"MinInt", Const, 17},
-		{"MinInt16", Const, 0},
-		{"MinInt32", Const, 0},
-		{"MinInt64", Const, 0},
-		{"MinInt8", Const, 0},
-		{"Mod", Func, 0},
-		{"Modf", Func, 0},
-		{"NaN", Func, 0},
-		{"Nextafter", Func, 0},
-		{"Nextafter32", Func, 4},
-		{"Phi", Const, 0},
-		{"Pi", Const, 0},
-		{"Pow", Func, 0},
-		{"Pow10", Func, 0},
-		{"Remainder", Func, 0},
-		{"Round", Func, 10},
-		{"RoundToEven", Func, 10},
-		{"Signbit", Func, 0},
-		{"Sin", Func, 0},
-		{"Sincos", Func, 0},
-		{"Sinh", Func, 0},
-		{"SmallestNonzeroFloat32", Const, 0},
-		{"SmallestNonzeroFloat64", Const, 0},
-		{"Sqrt", Func, 0},
-		{"Sqrt2", Const, 0},
-		{"SqrtE", Const, 0},
-		{"SqrtPhi", Const, 0},
-		{"SqrtPi", Const, 0},
-		{"Tan", Func, 0},
-		{"Tanh", Func, 0},
-		{"Trunc", Func, 0},
-		{"Y0", Func, 0},
-		{"Y1", Func, 0},
-		{"Yn", Func, 0},
+		{"Abs", Func, 0, "func(x float64) float64"},
+		{"Acos", Func, 0, "func(x float64) float64"},
+		{"Acosh", Func, 0, "func(x float64) float64"},
+		{"Asin", Func, 0, "func(x float64) float64"},
+		{"Asinh", Func, 0, "func(x float64) float64"},
+		{"Atan", Func, 0, "func(x float64) float64"},
+		{"Atan2", Func, 0, "func(y float64, x float64) float64"},
+		{"Atanh", Func, 0, "func(x float64) float64"},
+		{"Cbrt", Func, 0, "func(x float64) float64"},
+		{"Ceil", Func, 0, "func(x float64) float64"},
+		{"Copysign", Func, 0, "func(f float64, sign float64) float64"},
+		{"Cos", Func, 0, "func(x float64) float64"},
+		{"Cosh", Func, 0, "func(x float64) float64"},
+		{"Dim", Func, 0, "func(x float64, y float64) float64"},
+		{"E", Const, 0, ""},
+		{"Erf", Func, 0, "func(x float64) float64"},
+		{"Erfc", Func, 0, "func(x float64) float64"},
+		{"Erfcinv", Func, 10, "func(x float64) float64"},
+		{"Erfinv", Func, 10, "func(x float64) float64"},
+		{"Exp", Func, 0, "func(x float64) float64"},
+		{"Exp2", Func, 0, "func(x float64) float64"},
+		{"Expm1", Func, 0, "func(x float64) float64"},
+		{"FMA", Func, 14, "func(x float64, y float64, z float64) float64"},
+		{"Float32bits", Func, 0, "func(f float32) uint32"},
+		{"Float32frombits", Func, 0, "func(b uint32) float32"},
+		{"Float64bits", Func, 0, "func(f float64) uint64"},
+		{"Float64frombits", Func, 0, "func(b uint64) float64"},
+		{"Floor", Func, 0, "func(x float64) float64"},
+		{"Frexp", Func, 0, "func(f float64) (frac float64, exp int)"},
+		{"Gamma", Func, 0, "func(x float64) float64"},
+		{"Hypot", Func, 0, "func(p float64, q float64) float64"},
+		{"Ilogb", Func, 0, "func(x float64) int"},
+		{"Inf", Func, 0, "func(sign int) float64"},
+		{"IsInf", Func, 0, "func(f float64, sign int) bool"},
+		{"IsNaN", Func, 0, "func(f float64) (is bool)"},
+		{"J0", Func, 0, "func(x float64) float64"},
+		{"J1", Func, 0, "func(x float64) float64"},
+		{"Jn", Func, 0, "func(n int, x float64) float64"},
+		{"Ldexp", Func, 0, "func(frac float64, exp int) float64"},
+		{"Lgamma", Func, 0, "func(x float64) (lgamma float64, sign int)"},
+		{"Ln10", Const, 0, ""},
+		{"Ln2", Const, 0, ""},
+		{"Log", Func, 0, "func(x float64) float64"},
+		{"Log10", Func, 0, "func(x float64) float64"},
+		{"Log10E", Const, 0, ""},
+		{"Log1p", Func, 0, "func(x float64) float64"},
+		{"Log2", Func, 0, "func(x float64) float64"},
+		{"Log2E", Const, 0, ""},
+		{"Logb", Func, 0, "func(x float64) float64"},
+		{"Max", Func, 0, "func(x float64, y float64) float64"},
+		{"MaxFloat32", Const, 0, ""},
+		{"MaxFloat64", Const, 0, ""},
+		{"MaxInt", Const, 17, ""},
+		{"MaxInt16", Const, 0, ""},
+		{"MaxInt32", Const, 0, ""},
+		{"MaxInt64", Const, 0, ""},
+		{"MaxInt8", Const, 0, ""},
+		{"MaxUint", Const, 17, ""},
+		{"MaxUint16", Const, 0, ""},
+		{"MaxUint32", Const, 0, ""},
+		{"MaxUint64", Const, 0, ""},
+		{"MaxUint8", Const, 0, ""},
+		{"Min", Func, 0, "func(x float64, y float64) float64"},
+		{"MinInt", Const, 17, ""},
+		{"MinInt16", Const, 0, ""},
+		{"MinInt32", Const, 0, ""},
+		{"MinInt64", Const, 0, ""},
+		{"MinInt8", Const, 0, ""},
+		{"Mod", Func, 0, "func(x float64, y float64) float64"},
+		{"Modf", Func, 0, "func(f float64) (int float64, frac float64)"},
+		{"NaN", Func, 0, "func() float64"},
+		{"Nextafter", Func, 0, "func(x float64, y float64) (r float64)"},
+		{"Nextafter32", Func, 4, "func(x float32, y float32) (r float32)"},
+		{"Phi", Const, 0, ""},
+		{"Pi", Const, 0, ""},
+		{"Pow", Func, 0, "func(x float64, y float64) float64"},
+		{"Pow10", Func, 0, "func(n int) float64"},
+		{"Remainder", Func, 0, "func(x float64, y float64) float64"},
+		{"Round", Func, 10, "func(x float64) float64"},
+		{"RoundToEven", Func, 10, "func(x float64) float64"},
+		{"Signbit", Func, 0, "func(x float64) bool"},
+		{"Sin", Func, 0, "func(x float64) float64"},
+		{"Sincos", Func, 0, "func(x float64) (sin float64, cos float64)"},
+		{"Sinh", Func, 0, "func(x float64) float64"},
+		{"SmallestNonzeroFloat32", Const, 0, ""},
+		{"SmallestNonzeroFloat64", Const, 0, ""},
+		{"Sqrt", Func, 0, "func(x float64) float64"},
+		{"Sqrt2", Const, 0, ""},
+		{"SqrtE", Const, 0, ""},
+		{"SqrtPhi", Const, 0, ""},
+		{"SqrtPi", Const, 0, ""},
+		{"Tan", Func, 0, "func(x float64) float64"},
+		{"Tanh", Func, 0, "func(x float64) float64"},
+		{"Trunc", Func, 0, "func(x float64) float64"},
+		{"Y0", Func, 0, "func(x float64) float64"},
+		{"Y1", Func, 0, "func(x float64) float64"},
+		{"Yn", Func, 0, "func(n int, x float64) float64"},
 	},
 	"math/big": {
-		{"(*Float).Abs", Method, 5},
-		{"(*Float).Acc", Method, 5},
-		{"(*Float).Add", Method, 5},
-		{"(*Float).Append", Method, 5},
-		{"(*Float).AppendText", Method, 24},
-		{"(*Float).Cmp", Method, 5},
-		{"(*Float).Copy", Method, 5},
-		{"(*Float).Float32", Method, 5},
-		{"(*Float).Float64", Method, 5},
-		{"(*Float).Format", Method, 5},
-		{"(*Float).GobDecode", Method, 7},
-		{"(*Float).GobEncode", Method, 7},
-		{"(*Float).Int", Method, 5},
-		{"(*Float).Int64", Method, 5},
-		{"(*Float).IsInf", Method, 5},
-		{"(*Float).IsInt", Method, 5},
-		{"(*Float).MantExp", Method, 5},
-		{"(*Float).MarshalText", Method, 6},
-		{"(*Float).MinPrec", Method, 5},
-		{"(*Float).Mode", Method, 5},
-		{"(*Float).Mul", Method, 5},
-		{"(*Float).Neg", Method, 5},
-		{"(*Float).Parse", Method, 5},
-		{"(*Float).Prec", Method, 5},
-		{"(*Float).Quo", Method, 5},
-		{"(*Float).Rat", Method, 5},
-		{"(*Float).Scan", Method, 8},
-		{"(*Float).Set", Method, 5},
-		{"(*Float).SetFloat64", Method, 5},
-		{"(*Float).SetInf", Method, 5},
-		{"(*Float).SetInt", Method, 5},
-		{"(*Float).SetInt64", Method, 5},
-		{"(*Float).SetMantExp", Method, 5},
-		{"(*Float).SetMode", Method, 5},
-		{"(*Float).SetPrec", Method, 5},
-		{"(*Float).SetRat", Method, 5},
-		{"(*Float).SetString", Method, 5},
-		{"(*Float).SetUint64", Method, 5},
-		{"(*Float).Sign", Method, 5},
-		{"(*Float).Signbit", Method, 5},
-		{"(*Float).Sqrt", Method, 10},
-		{"(*Float).String", Method, 5},
-		{"(*Float).Sub", Method, 5},
-		{"(*Float).Text", Method, 5},
-		{"(*Float).Uint64", Method, 5},
-		{"(*Float).UnmarshalText", Method, 6},
-		{"(*Int).Abs", Method, 0},
-		{"(*Int).Add", Method, 0},
-		{"(*Int).And", Method, 0},
-		{"(*Int).AndNot", Method, 0},
-		{"(*Int).Append", Method, 6},
-		{"(*Int).AppendText", Method, 24},
-		{"(*Int).Binomial", Method, 0},
-		{"(*Int).Bit", Method, 0},
-		{"(*Int).BitLen", Method, 0},
-		{"(*Int).Bits", Method, 0},
-		{"(*Int).Bytes", Method, 0},
-		{"(*Int).Cmp", Method, 0},
-		{"(*Int).CmpAbs", Method, 10},
-		{"(*Int).Div", Method, 0},
-		{"(*Int).DivMod", Method, 0},
-		{"(*Int).Exp", Method, 0},
-		{"(*Int).FillBytes", Method, 15},
-		{"(*Int).Float64", Method, 21},
-		{"(*Int).Format", Method, 0},
-		{"(*Int).GCD", Method, 0},
-		{"(*Int).GobDecode", Method, 0},
-		{"(*Int).GobEncode", Method, 0},
-		{"(*Int).Int64", Method, 0},
-		{"(*Int).IsInt64", Method, 9},
-		{"(*Int).IsUint64", Method, 9},
-		{"(*Int).Lsh", Method, 0},
-		{"(*Int).MarshalJSON", Method, 1},
-		{"(*Int).MarshalText", Method, 3},
-		{"(*Int).Mod", Method, 0},
-		{"(*Int).ModInverse", Method, 0},
-		{"(*Int).ModSqrt", Method, 5},
-		{"(*Int).Mul", Method, 0},
-		{"(*Int).MulRange", Method, 0},
-		{"(*Int).Neg", Method, 0},
-		{"(*Int).Not", Method, 0},
-		{"(*Int).Or", Method, 0},
-		{"(*Int).ProbablyPrime", Method, 0},
-		{"(*Int).Quo", Method, 0},
-		{"(*Int).QuoRem", Method, 0},
-		{"(*Int).Rand", Method, 0},
-		{"(*Int).Rem", Method, 0},
-		{"(*Int).Rsh", Method, 0},
-		{"(*Int).Scan", Method, 0},
-		{"(*Int).Set", Method, 0},
-		{"(*Int).SetBit", Method, 0},
-		{"(*Int).SetBits", Method, 0},
-		{"(*Int).SetBytes", Method, 0},
-		{"(*Int).SetInt64", Method, 0},
-		{"(*Int).SetString", Method, 0},
-		{"(*Int).SetUint64", Method, 1},
-		{"(*Int).Sign", Method, 0},
-		{"(*Int).Sqrt", Method, 8},
-		{"(*Int).String", Method, 0},
-		{"(*Int).Sub", Method, 0},
-		{"(*Int).Text", Method, 6},
-		{"(*Int).TrailingZeroBits", Method, 13},
-		{"(*Int).Uint64", Method, 1},
-		{"(*Int).UnmarshalJSON", Method, 1},
-		{"(*Int).UnmarshalText", Method, 3},
-		{"(*Int).Xor", Method, 0},
-		{"(*Rat).Abs", Method, 0},
-		{"(*Rat).Add", Method, 0},
-		{"(*Rat).AppendText", Method, 24},
-		{"(*Rat).Cmp", Method, 0},
-		{"(*Rat).Denom", Method, 0},
-		{"(*Rat).Float32", Method, 4},
-		{"(*Rat).Float64", Method, 1},
-		{"(*Rat).FloatPrec", Method, 22},
-		{"(*Rat).FloatString", Method, 0},
-		{"(*Rat).GobDecode", Method, 0},
-		{"(*Rat).GobEncode", Method, 0},
-		{"(*Rat).Inv", Method, 0},
-		{"(*Rat).IsInt", Method, 0},
-		{"(*Rat).MarshalText", Method, 3},
-		{"(*Rat).Mul", Method, 0},
-		{"(*Rat).Neg", Method, 0},
-		{"(*Rat).Num", Method, 0},
-		{"(*Rat).Quo", Method, 0},
-		{"(*Rat).RatString", Method, 0},
-		{"(*Rat).Scan", Method, 0},
-		{"(*Rat).Set", Method, 0},
-		{"(*Rat).SetFloat64", Method, 1},
-		{"(*Rat).SetFrac", Method, 0},
-		{"(*Rat).SetFrac64", Method, 0},
-		{"(*Rat).SetInt", Method, 0},
-		{"(*Rat).SetInt64", Method, 0},
-		{"(*Rat).SetString", Method, 0},
-		{"(*Rat).SetUint64", Method, 13},
-		{"(*Rat).Sign", Method, 0},
-		{"(*Rat).String", Method, 0},
-		{"(*Rat).Sub", Method, 0},
-		{"(*Rat).UnmarshalText", Method, 3},
-		{"(Accuracy).String", Method, 5},
-		{"(ErrNaN).Error", Method, 5},
-		{"(RoundingMode).String", Method, 5},
-		{"Above", Const, 5},
-		{"Accuracy", Type, 5},
-		{"AwayFromZero", Const, 5},
-		{"Below", Const, 5},
-		{"ErrNaN", Type, 5},
-		{"Exact", Const, 5},
-		{"Float", Type, 5},
-		{"Int", Type, 0},
-		{"Jacobi", Func, 5},
-		{"MaxBase", Const, 0},
-		{"MaxExp", Const, 5},
-		{"MaxPrec", Const, 5},
-		{"MinExp", Const, 5},
-		{"NewFloat", Func, 5},
-		{"NewInt", Func, 0},
-		{"NewRat", Func, 0},
-		{"ParseFloat", Func, 5},
-		{"Rat", Type, 0},
-		{"RoundingMode", Type, 5},
-		{"ToNearestAway", Const, 5},
-		{"ToNearestEven", Const, 5},
-		{"ToNegativeInf", Const, 5},
-		{"ToPositiveInf", Const, 5},
-		{"ToZero", Const, 5},
-		{"Word", Type, 0},
+		{"(*Float).Abs", Method, 5, ""},
+		{"(*Float).Acc", Method, 5, ""},
+		{"(*Float).Add", Method, 5, ""},
+		{"(*Float).Append", Method, 5, ""},
+		{"(*Float).AppendText", Method, 24, ""},
+		{"(*Float).Cmp", Method, 5, ""},
+		{"(*Float).Copy", Method, 5, ""},
+		{"(*Float).Float32", Method, 5, ""},
+		{"(*Float).Float64", Method, 5, ""},
+		{"(*Float).Format", Method, 5, ""},
+		{"(*Float).GobDecode", Method, 7, ""},
+		{"(*Float).GobEncode", Method, 7, ""},
+		{"(*Float).Int", Method, 5, ""},
+		{"(*Float).Int64", Method, 5, ""},
+		{"(*Float).IsInf", Method, 5, ""},
+		{"(*Float).IsInt", Method, 5, ""},
+		{"(*Float).MantExp", Method, 5, ""},
+		{"(*Float).MarshalText", Method, 6, ""},
+		{"(*Float).MinPrec", Method, 5, ""},
+		{"(*Float).Mode", Method, 5, ""},
+		{"(*Float).Mul", Method, 5, ""},
+		{"(*Float).Neg", Method, 5, ""},
+		{"(*Float).Parse", Method, 5, ""},
+		{"(*Float).Prec", Method, 5, ""},
+		{"(*Float).Quo", Method, 5, ""},
+		{"(*Float).Rat", Method, 5, ""},
+		{"(*Float).Scan", Method, 8, ""},
+		{"(*Float).Set", Method, 5, ""},
+		{"(*Float).SetFloat64", Method, 5, ""},
+		{"(*Float).SetInf", Method, 5, ""},
+		{"(*Float).SetInt", Method, 5, ""},
+		{"(*Float).SetInt64", Method, 5, ""},
+		{"(*Float).SetMantExp", Method, 5, ""},
+		{"(*Float).SetMode", Method, 5, ""},
+		{"(*Float).SetPrec", Method, 5, ""},
+		{"(*Float).SetRat", Method, 5, ""},
+		{"(*Float).SetString", Method, 5, ""},
+		{"(*Float).SetUint64", Method, 5, ""},
+		{"(*Float).Sign", Method, 5, ""},
+		{"(*Float).Signbit", Method, 5, ""},
+		{"(*Float).Sqrt", Method, 10, ""},
+		{"(*Float).String", Method, 5, ""},
+		{"(*Float).Sub", Method, 5, ""},
+		{"(*Float).Text", Method, 5, ""},
+		{"(*Float).Uint64", Method, 5, ""},
+		{"(*Float).UnmarshalText", Method, 6, ""},
+		{"(*Int).Abs", Method, 0, ""},
+		{"(*Int).Add", Method, 0, ""},
+		{"(*Int).And", Method, 0, ""},
+		{"(*Int).AndNot", Method, 0, ""},
+		{"(*Int).Append", Method, 6, ""},
+		{"(*Int).AppendText", Method, 24, ""},
+		{"(*Int).Binomial", Method, 0, ""},
+		{"(*Int).Bit", Method, 0, ""},
+		{"(*Int).BitLen", Method, 0, ""},
+		{"(*Int).Bits", Method, 0, ""},
+		{"(*Int).Bytes", Method, 0, ""},
+		{"(*Int).Cmp", Method, 0, ""},
+		{"(*Int).CmpAbs", Method, 10, ""},
+		{"(*Int).Div", Method, 0, ""},
+		{"(*Int).DivMod", Method, 0, ""},
+		{"(*Int).Exp", Method, 0, ""},
+		{"(*Int).FillBytes", Method, 15, ""},
+		{"(*Int).Float64", Method, 21, ""},
+		{"(*Int).Format", Method, 0, ""},
+		{"(*Int).GCD", Method, 0, ""},
+		{"(*Int).GobDecode", Method, 0, ""},
+		{"(*Int).GobEncode", Method, 0, ""},
+		{"(*Int).Int64", Method, 0, ""},
+		{"(*Int).IsInt64", Method, 9, ""},
+		{"(*Int).IsUint64", Method, 9, ""},
+		{"(*Int).Lsh", Method, 0, ""},
+		{"(*Int).MarshalJSON", Method, 1, ""},
+		{"(*Int).MarshalText", Method, 3, ""},
+		{"(*Int).Mod", Method, 0, ""},
+		{"(*Int).ModInverse", Method, 0, ""},
+		{"(*Int).ModSqrt", Method, 5, ""},
+		{"(*Int).Mul", Method, 0, ""},
+		{"(*Int).MulRange", Method, 0, ""},
+		{"(*Int).Neg", Method, 0, ""},
+		{"(*Int).Not", Method, 0, ""},
+		{"(*Int).Or", Method, 0, ""},
+		{"(*Int).ProbablyPrime", Method, 0, ""},
+		{"(*Int).Quo", Method, 0, ""},
+		{"(*Int).QuoRem", Method, 0, ""},
+		{"(*Int).Rand", Method, 0, ""},
+		{"(*Int).Rem", Method, 0, ""},
+		{"(*Int).Rsh", Method, 0, ""},
+		{"(*Int).Scan", Method, 0, ""},
+		{"(*Int).Set", Method, 0, ""},
+		{"(*Int).SetBit", Method, 0, ""},
+		{"(*Int).SetBits", Method, 0, ""},
+		{"(*Int).SetBytes", Method, 0, ""},
+		{"(*Int).SetInt64", Method, 0, ""},
+		{"(*Int).SetString", Method, 0, ""},
+		{"(*Int).SetUint64", Method, 1, ""},
+		{"(*Int).Sign", Method, 0, ""},
+		{"(*Int).Sqrt", Method, 8, ""},
+		{"(*Int).String", Method, 0, ""},
+		{"(*Int).Sub", Method, 0, ""},
+		{"(*Int).Text", Method, 6, ""},
+		{"(*Int).TrailingZeroBits", Method, 13, ""},
+		{"(*Int).Uint64", Method, 1, ""},
+		{"(*Int).UnmarshalJSON", Method, 1, ""},
+		{"(*Int).UnmarshalText", Method, 3, ""},
+		{"(*Int).Xor", Method, 0, ""},
+		{"(*Rat).Abs", Method, 0, ""},
+		{"(*Rat).Add", Method, 0, ""},
+		{"(*Rat).AppendText", Method, 24, ""},
+		{"(*Rat).Cmp", Method, 0, ""},
+		{"(*Rat).Denom", Method, 0, ""},
+		{"(*Rat).Float32", Method, 4, ""},
+		{"(*Rat).Float64", Method, 1, ""},
+		{"(*Rat).FloatPrec", Method, 22, ""},
+		{"(*Rat).FloatString", Method, 0, ""},
+		{"(*Rat).GobDecode", Method, 0, ""},
+		{"(*Rat).GobEncode", Method, 0, ""},
+		{"(*Rat).Inv", Method, 0, ""},
+		{"(*Rat).IsInt", Method, 0, ""},
+		{"(*Rat).MarshalText", Method, 3, ""},
+		{"(*Rat).Mul", Method, 0, ""},
+		{"(*Rat).Neg", Method, 0, ""},
+		{"(*Rat).Num", Method, 0, ""},
+		{"(*Rat).Quo", Method, 0, ""},
+		{"(*Rat).RatString", Method, 0, ""},
+		{"(*Rat).Scan", Method, 0, ""},
+		{"(*Rat).Set", Method, 0, ""},
+		{"(*Rat).SetFloat64", Method, 1, ""},
+		{"(*Rat).SetFrac", Method, 0, ""},
+		{"(*Rat).SetFrac64", Method, 0, ""},
+		{"(*Rat).SetInt", Method, 0, ""},
+		{"(*Rat).SetInt64", Method, 0, ""},
+		{"(*Rat).SetString", Method, 0, ""},
+		{"(*Rat).SetUint64", Method, 13, ""},
+		{"(*Rat).Sign", Method, 0, ""},
+		{"(*Rat).String", Method, 0, ""},
+		{"(*Rat).Sub", Method, 0, ""},
+		{"(*Rat).UnmarshalText", Method, 3, ""},
+		{"(Accuracy).String", Method, 5, ""},
+		{"(ErrNaN).Error", Method, 5, ""},
+		{"(RoundingMode).String", Method, 5, ""},
+		{"Above", Const, 5, ""},
+		{"Accuracy", Type, 5, ""},
+		{"AwayFromZero", Const, 5, ""},
+		{"Below", Const, 5, ""},
+		{"ErrNaN", Type, 5, ""},
+		{"Exact", Const, 5, ""},
+		{"Float", Type, 5, ""},
+		{"Int", Type, 0, ""},
+		{"Jacobi", Func, 5, "func(x *Int, y *Int) int"},
+		{"MaxBase", Const, 0, ""},
+		{"MaxExp", Const, 5, ""},
+		{"MaxPrec", Const, 5, ""},
+		{"MinExp", Const, 5, ""},
+		{"NewFloat", Func, 5, "func(x float64) *Float"},
+		{"NewInt", Func, 0, "func(x int64) *Int"},
+		{"NewRat", Func, 0, "func(a int64, b int64) *Rat"},
+		{"ParseFloat", Func, 5, "func(s string, base int, prec uint, mode RoundingMode) (f *Float, b int, err error)"},
+		{"Rat", Type, 0, ""},
+		{"RoundingMode", Type, 5, ""},
+		{"ToNearestAway", Const, 5, ""},
+		{"ToNearestEven", Const, 5, ""},
+		{"ToNegativeInf", Const, 5, ""},
+		{"ToPositiveInf", Const, 5, ""},
+		{"ToZero", Const, 5, ""},
+		{"Word", Type, 0, ""},
 	},
 	"math/bits": {
-		{"Add", Func, 12},
-		{"Add32", Func, 12},
-		{"Add64", Func, 12},
-		{"Div", Func, 12},
-		{"Div32", Func, 12},
-		{"Div64", Func, 12},
-		{"LeadingZeros", Func, 9},
-		{"LeadingZeros16", Func, 9},
-		{"LeadingZeros32", Func, 9},
-		{"LeadingZeros64", Func, 9},
-		{"LeadingZeros8", Func, 9},
-		{"Len", Func, 9},
-		{"Len16", Func, 9},
-		{"Len32", Func, 9},
-		{"Len64", Func, 9},
-		{"Len8", Func, 9},
-		{"Mul", Func, 12},
-		{"Mul32", Func, 12},
-		{"Mul64", Func, 12},
-		{"OnesCount", Func, 9},
-		{"OnesCount16", Func, 9},
-		{"OnesCount32", Func, 9},
-		{"OnesCount64", Func, 9},
-		{"OnesCount8", Func, 9},
-		{"Rem", Func, 14},
-		{"Rem32", Func, 14},
-		{"Rem64", Func, 14},
-		{"Reverse", Func, 9},
-		{"Reverse16", Func, 9},
-		{"Reverse32", Func, 9},
-		{"Reverse64", Func, 9},
-		{"Reverse8", Func, 9},
-		{"ReverseBytes", Func, 9},
-		{"ReverseBytes16", Func, 9},
-		{"ReverseBytes32", Func, 9},
-		{"ReverseBytes64", Func, 9},
-		{"RotateLeft", Func, 9},
-		{"RotateLeft16", Func, 9},
-		{"RotateLeft32", Func, 9},
-		{"RotateLeft64", Func, 9},
-		{"RotateLeft8", Func, 9},
-		{"Sub", Func, 12},
-		{"Sub32", Func, 12},
-		{"Sub64", Func, 12},
-		{"TrailingZeros", Func, 9},
-		{"TrailingZeros16", Func, 9},
-		{"TrailingZeros32", Func, 9},
-		{"TrailingZeros64", Func, 9},
-		{"TrailingZeros8", Func, 9},
-		{"UintSize", Const, 9},
+		{"Add", Func, 12, "func(x uint, y uint, carry uint) (sum uint, carryOut uint)"},
+		{"Add32", Func, 12, "func(x uint32, y uint32, carry uint32) (sum uint32, carryOut uint32)"},
+		{"Add64", Func, 12, "func(x uint64, y uint64, carry uint64) (sum uint64, carryOut uint64)"},
+		{"Div", Func, 12, "func(hi uint, lo uint, y uint) (quo uint, rem uint)"},
+		{"Div32", Func, 12, "func(hi uint32, lo uint32, y uint32) (quo uint32, rem uint32)"},
+		{"Div64", Func, 12, "func(hi uint64, lo uint64, y uint64) (quo uint64, rem uint64)"},
+		{"LeadingZeros", Func, 9, "func(x uint) int"},
+		{"LeadingZeros16", Func, 9, "func(x uint16) int"},
+		{"LeadingZeros32", Func, 9, "func(x uint32) int"},
+		{"LeadingZeros64", Func, 9, "func(x uint64) int"},
+		{"LeadingZeros8", Func, 9, "func(x uint8) int"},
+		{"Len", Func, 9, "func(x uint) int"},
+		{"Len16", Func, 9, "func(x uint16) (n int)"},
+		{"Len32", Func, 9, "func(x uint32) (n int)"},
+		{"Len64", Func, 9, "func(x uint64) (n int)"},
+		{"Len8", Func, 9, "func(x uint8) int"},
+		{"Mul", Func, 12, "func(x uint, y uint) (hi uint, lo uint)"},
+		{"Mul32", Func, 12, "func(x uint32, y uint32) (hi uint32, lo uint32)"},
+		{"Mul64", Func, 12, "func(x uint64, y uint64) (hi uint64, lo uint64)"},
+		{"OnesCount", Func, 9, "func(x uint) int"},
+		{"OnesCount16", Func, 9, "func(x uint16) int"},
+		{"OnesCount32", Func, 9, "func(x uint32) int"},
+		{"OnesCount64", Func, 9, "func(x uint64) int"},
+		{"OnesCount8", Func, 9, "func(x uint8) int"},
+		{"Rem", Func, 14, "func(hi uint, lo uint, y uint) uint"},
+		{"Rem32", Func, 14, "func(hi uint32, lo uint32, y uint32) uint32"},
+		{"Rem64", Func, 14, "func(hi uint64, lo uint64, y uint64) uint64"},
+		{"Reverse", Func, 9, "func(x uint) uint"},
+		{"Reverse16", Func, 9, "func(x uint16) uint16"},
+		{"Reverse32", Func, 9, "func(x uint32) uint32"},
+		{"Reverse64", Func, 9, "func(x uint64) uint64"},
+		{"Reverse8", Func, 9, "func(x uint8) uint8"},
+		{"ReverseBytes", Func, 9, "func(x uint) uint"},
+		{"ReverseBytes16", Func, 9, "func(x uint16) uint16"},
+		{"ReverseBytes32", Func, 9, "func(x uint32) uint32"},
+		{"ReverseBytes64", Func, 9, "func(x uint64) uint64"},
+		{"RotateLeft", Func, 9, "func(x uint, k int) uint"},
+		{"RotateLeft16", Func, 9, "func(x uint16, k int) uint16"},
+		{"RotateLeft32", Func, 9, "func(x uint32, k int) uint32"},
+		{"RotateLeft64", Func, 9, "func(x uint64, k int) uint64"},
+		{"RotateLeft8", Func, 9, "func(x uint8, k int) uint8"},
+		{"Sub", Func, 12, "func(x uint, y uint, borrow uint) (diff uint, borrowOut uint)"},
+		{"Sub32", Func, 12, "func(x uint32, y uint32, borrow uint32) (diff uint32, borrowOut uint32)"},
+		{"Sub64", Func, 12, "func(x uint64, y uint64, borrow uint64) (diff uint64, borrowOut uint64)"},
+		{"TrailingZeros", Func, 9, "func(x uint) int"},
+		{"TrailingZeros16", Func, 9, "func(x uint16) int"},
+		{"TrailingZeros32", Func, 9, "func(x uint32) int"},
+		{"TrailingZeros64", Func, 9, "func(x uint64) int"},
+		{"TrailingZeros8", Func, 9, "func(x uint8) int"},
+		{"UintSize", Const, 9, ""},
 	},
 	"math/cmplx": {
-		{"Abs", Func, 0},
-		{"Acos", Func, 0},
-		{"Acosh", Func, 0},
-		{"Asin", Func, 0},
-		{"Asinh", Func, 0},
-		{"Atan", Func, 0},
-		{"Atanh", Func, 0},
-		{"Conj", Func, 0},
-		{"Cos", Func, 0},
-		{"Cosh", Func, 0},
-		{"Cot", Func, 0},
-		{"Exp", Func, 0},
-		{"Inf", Func, 0},
-		{"IsInf", Func, 0},
-		{"IsNaN", Func, 0},
-		{"Log", Func, 0},
-		{"Log10", Func, 0},
-		{"NaN", Func, 0},
-		{"Phase", Func, 0},
-		{"Polar", Func, 0},
-		{"Pow", Func, 0},
-		{"Rect", Func, 0},
-		{"Sin", Func, 0},
-		{"Sinh", Func, 0},
-		{"Sqrt", Func, 0},
-		{"Tan", Func, 0},
-		{"Tanh", Func, 0},
+		{"Abs", Func, 0, "func(x complex128) float64"},
+		{"Acos", Func, 0, "func(x complex128) complex128"},
+		{"Acosh", Func, 0, "func(x complex128) complex128"},
+		{"Asin", Func, 0, "func(x complex128) complex128"},
+		{"Asinh", Func, 0, "func(x complex128) complex128"},
+		{"Atan", Func, 0, "func(x complex128) complex128"},
+		{"Atanh", Func, 0, "func(x complex128) complex128"},
+		{"Conj", Func, 0, "func(x complex128) complex128"},
+		{"Cos", Func, 0, "func(x complex128) complex128"},
+		{"Cosh", Func, 0, "func(x complex128) complex128"},
+		{"Cot", Func, 0, "func(x complex128) complex128"},
+		{"Exp", Func, 0, "func(x complex128) complex128"},
+		{"Inf", Func, 0, "func() complex128"},
+		{"IsInf", Func, 0, "func(x complex128) bool"},
+		{"IsNaN", Func, 0, "func(x complex128) bool"},
+		{"Log", Func, 0, "func(x complex128) complex128"},
+		{"Log10", Func, 0, "func(x complex128) complex128"},
+		{"NaN", Func, 0, "func() complex128"},
+		{"Phase", Func, 0, "func(x complex128) float64"},
+		{"Polar", Func, 0, "func(x complex128) (r float64, θ float64)"},
+		{"Pow", Func, 0, "func(x complex128, y complex128) complex128"},
+		{"Rect", Func, 0, "func(r float64, θ float64) complex128"},
+		{"Sin", Func, 0, "func(x complex128) complex128"},
+		{"Sinh", Func, 0, "func(x complex128) complex128"},
+		{"Sqrt", Func, 0, "func(x complex128) complex128"},
+		{"Tan", Func, 0, "func(x complex128) complex128"},
+		{"Tanh", Func, 0, "func(x complex128) complex128"},
 	},
 	"math/rand": {
-		{"(*Rand).ExpFloat64", Method, 0},
-		{"(*Rand).Float32", Method, 0},
-		{"(*Rand).Float64", Method, 0},
-		{"(*Rand).Int", Method, 0},
-		{"(*Rand).Int31", Method, 0},
-		{"(*Rand).Int31n", Method, 0},
-		{"(*Rand).Int63", Method, 0},
-		{"(*Rand).Int63n", Method, 0},
-		{"(*Rand).Intn", Method, 0},
-		{"(*Rand).NormFloat64", Method, 0},
-		{"(*Rand).Perm", Method, 0},
-		{"(*Rand).Read", Method, 6},
-		{"(*Rand).Seed", Method, 0},
-		{"(*Rand).Shuffle", Method, 10},
-		{"(*Rand).Uint32", Method, 0},
-		{"(*Rand).Uint64", Method, 8},
-		{"(*Zipf).Uint64", Method, 0},
-		{"ExpFloat64", Func, 0},
-		{"Float32", Func, 0},
-		{"Float64", Func, 0},
-		{"Int", Func, 0},
-		{"Int31", Func, 0},
-		{"Int31n", Func, 0},
-		{"Int63", Func, 0},
-		{"Int63n", Func, 0},
-		{"Intn", Func, 0},
-		{"New", Func, 0},
-		{"NewSource", Func, 0},
-		{"NewZipf", Func, 0},
-		{"NormFloat64", Func, 0},
-		{"Perm", Func, 0},
-		{"Rand", Type, 0},
-		{"Read", Func, 6},
-		{"Seed", Func, 0},
-		{"Shuffle", Func, 10},
-		{"Source", Type, 0},
-		{"Source64", Type, 8},
-		{"Uint32", Func, 0},
-		{"Uint64", Func, 8},
-		{"Zipf", Type, 0},
+		{"(*Rand).ExpFloat64", Method, 0, ""},
+		{"(*Rand).Float32", Method, 0, ""},
+		{"(*Rand).Float64", Method, 0, ""},
+		{"(*Rand).Int", Method, 0, ""},
+		{"(*Rand).Int31", Method, 0, ""},
+		{"(*Rand).Int31n", Method, 0, ""},
+		{"(*Rand).Int63", Method, 0, ""},
+		{"(*Rand).Int63n", Method, 0, ""},
+		{"(*Rand).Intn", Method, 0, ""},
+		{"(*Rand).NormFloat64", Method, 0, ""},
+		{"(*Rand).Perm", Method, 0, ""},
+		{"(*Rand).Read", Method, 6, ""},
+		{"(*Rand).Seed", Method, 0, ""},
+		{"(*Rand).Shuffle", Method, 10, ""},
+		{"(*Rand).Uint32", Method, 0, ""},
+		{"(*Rand).Uint64", Method, 8, ""},
+		{"(*Zipf).Uint64", Method, 0, ""},
+		{"ExpFloat64", Func, 0, "func() float64"},
+		{"Float32", Func, 0, "func() float32"},
+		{"Float64", Func, 0, "func() float64"},
+		{"Int", Func, 0, "func() int"},
+		{"Int31", Func, 0, "func() int32"},
+		{"Int31n", Func, 0, "func(n int32) int32"},
+		{"Int63", Func, 0, "func() int64"},
+		{"Int63n", Func, 0, "func(n int64) int64"},
+		{"Intn", Func, 0, "func(n int) int"},
+		{"New", Func, 0, "func(src Source) *Rand"},
+		{"NewSource", Func, 0, "func(seed int64) Source"},
+		{"NewZipf", Func, 0, "func(r *Rand, s float64, v float64, imax uint64) *Zipf"},
+		{"NormFloat64", Func, 0, "func() float64"},
+		{"Perm", Func, 0, "func(n int) []int"},
+		{"Rand", Type, 0, ""},
+		{"Read", Func, 6, "func(p []byte) (n int, err error)"},
+		{"Seed", Func, 0, "func(seed int64)"},
+		{"Shuffle", Func, 10, "func(n int, swap func(i int, j int))"},
+		{"Source", Type, 0, ""},
+		{"Source64", Type, 8, ""},
+		{"Uint32", Func, 0, "func() uint32"},
+		{"Uint64", Func, 8, "func() uint64"},
+		{"Zipf", Type, 0, ""},
 	},
 	"math/rand/v2": {
-		{"(*ChaCha8).AppendBinary", Method, 24},
-		{"(*ChaCha8).MarshalBinary", Method, 22},
-		{"(*ChaCha8).Read", Method, 23},
-		{"(*ChaCha8).Seed", Method, 22},
-		{"(*ChaCha8).Uint64", Method, 22},
-		{"(*ChaCha8).UnmarshalBinary", Method, 22},
-		{"(*PCG).AppendBinary", Method, 24},
-		{"(*PCG).MarshalBinary", Method, 22},
-		{"(*PCG).Seed", Method, 22},
-		{"(*PCG).Uint64", Method, 22},
-		{"(*PCG).UnmarshalBinary", Method, 22},
-		{"(*Rand).ExpFloat64", Method, 22},
-		{"(*Rand).Float32", Method, 22},
-		{"(*Rand).Float64", Method, 22},
-		{"(*Rand).Int", Method, 22},
-		{"(*Rand).Int32", Method, 22},
-		{"(*Rand).Int32N", Method, 22},
-		{"(*Rand).Int64", Method, 22},
-		{"(*Rand).Int64N", Method, 22},
-		{"(*Rand).IntN", Method, 22},
-		{"(*Rand).NormFloat64", Method, 22},
-		{"(*Rand).Perm", Method, 22},
-		{"(*Rand).Shuffle", Method, 22},
-		{"(*Rand).Uint", Method, 23},
-		{"(*Rand).Uint32", Method, 22},
-		{"(*Rand).Uint32N", Method, 22},
-		{"(*Rand).Uint64", Method, 22},
-		{"(*Rand).Uint64N", Method, 22},
-		{"(*Rand).UintN", Method, 22},
-		{"(*Zipf).Uint64", Method, 22},
-		{"ChaCha8", Type, 22},
-		{"ExpFloat64", Func, 22},
-		{"Float32", Func, 22},
-		{"Float64", Func, 22},
-		{"Int", Func, 22},
-		{"Int32", Func, 22},
-		{"Int32N", Func, 22},
-		{"Int64", Func, 22},
-		{"Int64N", Func, 22},
-		{"IntN", Func, 22},
-		{"N", Func, 22},
-		{"New", Func, 22},
-		{"NewChaCha8", Func, 22},
-		{"NewPCG", Func, 22},
-		{"NewZipf", Func, 22},
-		{"NormFloat64", Func, 22},
-		{"PCG", Type, 22},
-		{"Perm", Func, 22},
-		{"Rand", Type, 22},
-		{"Shuffle", Func, 22},
-		{"Source", Type, 22},
-		{"Uint", Func, 23},
-		{"Uint32", Func, 22},
-		{"Uint32N", Func, 22},
-		{"Uint64", Func, 22},
-		{"Uint64N", Func, 22},
-		{"UintN", Func, 22},
-		{"Zipf", Type, 22},
+		{"(*ChaCha8).AppendBinary", Method, 24, ""},
+		{"(*ChaCha8).MarshalBinary", Method, 22, ""},
+		{"(*ChaCha8).Read", Method, 23, ""},
+		{"(*ChaCha8).Seed", Method, 22, ""},
+		{"(*ChaCha8).Uint64", Method, 22, ""},
+		{"(*ChaCha8).UnmarshalBinary", Method, 22, ""},
+		{"(*PCG).AppendBinary", Method, 24, ""},
+		{"(*PCG).MarshalBinary", Method, 22, ""},
+		{"(*PCG).Seed", Method, 22, ""},
+		{"(*PCG).Uint64", Method, 22, ""},
+		{"(*PCG).UnmarshalBinary", Method, 22, ""},
+		{"(*Rand).ExpFloat64", Method, 22, ""},
+		{"(*Rand).Float32", Method, 22, ""},
+		{"(*Rand).Float64", Method, 22, ""},
+		{"(*Rand).Int", Method, 22, ""},
+		{"(*Rand).Int32", Method, 22, ""},
+		{"(*Rand).Int32N", Method, 22, ""},
+		{"(*Rand).Int64", Method, 22, ""},
+		{"(*Rand).Int64N", Method, 22, ""},
+		{"(*Rand).IntN", Method, 22, ""},
+		{"(*Rand).NormFloat64", Method, 22, ""},
+		{"(*Rand).Perm", Method, 22, ""},
+		{"(*Rand).Shuffle", Method, 22, ""},
+		{"(*Rand).Uint", Method, 23, ""},
+		{"(*Rand).Uint32", Method, 22, ""},
+		{"(*Rand).Uint32N", Method, 22, ""},
+		{"(*Rand).Uint64", Method, 22, ""},
+		{"(*Rand).Uint64N", Method, 22, ""},
+		{"(*Rand).UintN", Method, 22, ""},
+		{"(*Zipf).Uint64", Method, 22, ""},
+		{"ChaCha8", Type, 22, ""},
+		{"ExpFloat64", Func, 22, "func() float64"},
+		{"Float32", Func, 22, "func() float32"},
+		{"Float64", Func, 22, "func() float64"},
+		{"Int", Func, 22, "func() int"},
+		{"Int32", Func, 22, "func() int32"},
+		{"Int32N", Func, 22, "func(n int32) int32"},
+		{"Int64", Func, 22, "func() int64"},
+		{"Int64N", Func, 22, "func(n int64) int64"},
+		{"IntN", Func, 22, "func(n int) int"},
+		{"N", Func, 22, "func[Int intType](n Int) Int"},
+		{"New", Func, 22, "func(src Source) *Rand"},
+		{"NewChaCha8", Func, 22, "func(seed [32]byte) *ChaCha8"},
+		{"NewPCG", Func, 22, "func(seed1 uint64, seed2 uint64) *PCG"},
+		{"NewZipf", Func, 22, "func(r *Rand, s float64, v float64, imax uint64) *Zipf"},
+		{"NormFloat64", Func, 22, "func() float64"},
+		{"PCG", Type, 22, ""},
+		{"Perm", Func, 22, "func(n int) []int"},
+		{"Rand", Type, 22, ""},
+		{"Shuffle", Func, 22, "func(n int, swap func(i int, j int))"},
+		{"Source", Type, 22, ""},
+		{"Uint", Func, 23, "func() uint"},
+		{"Uint32", Func, 22, "func() uint32"},
+		{"Uint32N", Func, 22, "func(n uint32) uint32"},
+		{"Uint64", Func, 22, "func() uint64"},
+		{"Uint64N", Func, 22, "func(n uint64) uint64"},
+		{"UintN", Func, 22, "func(n uint) uint"},
+		{"Zipf", Type, 22, ""},
 	},
 	"mime": {
-		{"(*WordDecoder).Decode", Method, 5},
-		{"(*WordDecoder).DecodeHeader", Method, 5},
-		{"(WordEncoder).Encode", Method, 5},
-		{"AddExtensionType", Func, 0},
-		{"BEncoding", Const, 5},
-		{"ErrInvalidMediaParameter", Var, 9},
-		{"ExtensionsByType", Func, 5},
-		{"FormatMediaType", Func, 0},
-		{"ParseMediaType", Func, 0},
-		{"QEncoding", Const, 5},
-		{"TypeByExtension", Func, 0},
-		{"WordDecoder", Type, 5},
-		{"WordDecoder.CharsetReader", Field, 5},
-		{"WordEncoder", Type, 5},
+		{"(*WordDecoder).Decode", Method, 5, ""},
+		{"(*WordDecoder).DecodeHeader", Method, 5, ""},
+		{"(WordEncoder).Encode", Method, 5, ""},
+		{"AddExtensionType", Func, 0, "func(ext string, typ string) error"},
+		{"BEncoding", Const, 5, ""},
+		{"ErrInvalidMediaParameter", Var, 9, ""},
+		{"ExtensionsByType", Func, 5, "func(typ string) ([]string, error)"},
+		{"FormatMediaType", Func, 0, "func(t string, param map[string]string) string"},
+		{"ParseMediaType", Func, 0, "func(v string) (mediatype string, params map[string]string, err error)"},
+		{"QEncoding", Const, 5, ""},
+		{"TypeByExtension", Func, 0, "func(ext string) string"},
+		{"WordDecoder", Type, 5, ""},
+		{"WordDecoder.CharsetReader", Field, 5, ""},
+		{"WordEncoder", Type, 5, ""},
 	},
 	"mime/multipart": {
-		{"(*FileHeader).Open", Method, 0},
-		{"(*Form).RemoveAll", Method, 0},
-		{"(*Part).Close", Method, 0},
-		{"(*Part).FileName", Method, 0},
-		{"(*Part).FormName", Method, 0},
-		{"(*Part).Read", Method, 0},
-		{"(*Reader).NextPart", Method, 0},
-		{"(*Reader).NextRawPart", Method, 14},
-		{"(*Reader).ReadForm", Method, 0},
-		{"(*Writer).Boundary", Method, 0},
-		{"(*Writer).Close", Method, 0},
-		{"(*Writer).CreateFormField", Method, 0},
-		{"(*Writer).CreateFormFile", Method, 0},
-		{"(*Writer).CreatePart", Method, 0},
-		{"(*Writer).FormDataContentType", Method, 0},
-		{"(*Writer).SetBoundary", Method, 1},
-		{"(*Writer).WriteField", Method, 0},
-		{"ErrMessageTooLarge", Var, 9},
-		{"File", Type, 0},
-		{"FileHeader", Type, 0},
-		{"FileHeader.Filename", Field, 0},
-		{"FileHeader.Header", Field, 0},
-		{"FileHeader.Size", Field, 9},
-		{"Form", Type, 0},
-		{"Form.File", Field, 0},
-		{"Form.Value", Field, 0},
-		{"NewReader", Func, 0},
-		{"NewWriter", Func, 0},
-		{"Part", Type, 0},
-		{"Part.Header", Field, 0},
-		{"Reader", Type, 0},
-		{"Writer", Type, 0},
+		{"(*FileHeader).Open", Method, 0, ""},
+		{"(*Form).RemoveAll", Method, 0, ""},
+		{"(*Part).Close", Method, 0, ""},
+		{"(*Part).FileName", Method, 0, ""},
+		{"(*Part).FormName", Method, 0, ""},
+		{"(*Part).Read", Method, 0, ""},
+		{"(*Reader).NextPart", Method, 0, ""},
+		{"(*Reader).NextRawPart", Method, 14, ""},
+		{"(*Reader).ReadForm", Method, 0, ""},
+		{"(*Writer).Boundary", Method, 0, ""},
+		{"(*Writer).Close", Method, 0, ""},
+		{"(*Writer).CreateFormField", Method, 0, ""},
+		{"(*Writer).CreateFormFile", Method, 0, ""},
+		{"(*Writer).CreatePart", Method, 0, ""},
+		{"(*Writer).FormDataContentType", Method, 0, ""},
+		{"(*Writer).SetBoundary", Method, 1, ""},
+		{"(*Writer).WriteField", Method, 0, ""},
+		{"ErrMessageTooLarge", Var, 9, ""},
+		{"File", Type, 0, ""},
+		{"FileContentDisposition", Func, 25, "func(fieldname string, filename string) string"},
+		{"FileHeader", Type, 0, ""},
+		{"FileHeader.Filename", Field, 0, ""},
+		{"FileHeader.Header", Field, 0, ""},
+		{"FileHeader.Size", Field, 9, ""},
+		{"Form", Type, 0, ""},
+		{"Form.File", Field, 0, ""},
+		{"Form.Value", Field, 0, ""},
+		{"NewReader", Func, 0, "func(r io.Reader, boundary string) *Reader"},
+		{"NewWriter", Func, 0, "func(w io.Writer) *Writer"},
+		{"Part", Type, 0, ""},
+		{"Part.Header", Field, 0, ""},
+		{"Reader", Type, 0, ""},
+		{"Writer", Type, 0, ""},
 	},
 	"mime/quotedprintable": {
-		{"(*Reader).Read", Method, 5},
-		{"(*Writer).Close", Method, 5},
-		{"(*Writer).Write", Method, 5},
-		{"NewReader", Func, 5},
-		{"NewWriter", Func, 5},
-		{"Reader", Type, 5},
-		{"Writer", Type, 5},
-		{"Writer.Binary", Field, 5},
+		{"(*Reader).Read", Method, 5, ""},
+		{"(*Writer).Close", Method, 5, ""},
+		{"(*Writer).Write", Method, 5, ""},
+		{"NewReader", Func, 5, "func(r io.Reader) *Reader"},
+		{"NewWriter", Func, 5, "func(w io.Writer) *Writer"},
+		{"Reader", Type, 5, ""},
+		{"Writer", Type, 5, ""},
+		{"Writer.Binary", Field, 5, ""},
 	},
 	"net": {
-		{"(*AddrError).Error", Method, 0},
-		{"(*AddrError).Temporary", Method, 0},
-		{"(*AddrError).Timeout", Method, 0},
-		{"(*Buffers).Read", Method, 8},
-		{"(*Buffers).WriteTo", Method, 8},
-		{"(*DNSConfigError).Error", Method, 0},
-		{"(*DNSConfigError).Temporary", Method, 0},
-		{"(*DNSConfigError).Timeout", Method, 0},
-		{"(*DNSConfigError).Unwrap", Method, 13},
-		{"(*DNSError).Error", Method, 0},
-		{"(*DNSError).Temporary", Method, 0},
-		{"(*DNSError).Timeout", Method, 0},
-		{"(*DNSError).Unwrap", Method, 23},
-		{"(*Dialer).Dial", Method, 1},
-		{"(*Dialer).DialContext", Method, 7},
-		{"(*Dialer).MultipathTCP", Method, 21},
-		{"(*Dialer).SetMultipathTCP", Method, 21},
-		{"(*IP).UnmarshalText", Method, 2},
-		{"(*IPAddr).Network", Method, 0},
-		{"(*IPAddr).String", Method, 0},
-		{"(*IPConn).Close", Method, 0},
-		{"(*IPConn).File", Method, 0},
-		{"(*IPConn).LocalAddr", Method, 0},
-		{"(*IPConn).Read", Method, 0},
-		{"(*IPConn).ReadFrom", Method, 0},
-		{"(*IPConn).ReadFromIP", Method, 0},
-		{"(*IPConn).ReadMsgIP", Method, 1},
-		{"(*IPConn).RemoteAddr", Method, 0},
-		{"(*IPConn).SetDeadline", Method, 0},
-		{"(*IPConn).SetReadBuffer", Method, 0},
-		{"(*IPConn).SetReadDeadline", Method, 0},
-		{"(*IPConn).SetWriteBuffer", Method, 0},
-		{"(*IPConn).SetWriteDeadline", Method, 0},
-		{"(*IPConn).SyscallConn", Method, 9},
-		{"(*IPConn).Write", Method, 0},
-		{"(*IPConn).WriteMsgIP", Method, 1},
-		{"(*IPConn).WriteTo", Method, 0},
-		{"(*IPConn).WriteToIP", Method, 0},
-		{"(*IPNet).Contains", Method, 0},
-		{"(*IPNet).Network", Method, 0},
-		{"(*IPNet).String", Method, 0},
-		{"(*Interface).Addrs", Method, 0},
-		{"(*Interface).MulticastAddrs", Method, 0},
-		{"(*ListenConfig).Listen", Method, 11},
-		{"(*ListenConfig).ListenPacket", Method, 11},
-		{"(*ListenConfig).MultipathTCP", Method, 21},
-		{"(*ListenConfig).SetMultipathTCP", Method, 21},
-		{"(*OpError).Error", Method, 0},
-		{"(*OpError).Temporary", Method, 0},
-		{"(*OpError).Timeout", Method, 0},
-		{"(*OpError).Unwrap", Method, 13},
-		{"(*ParseError).Error", Method, 0},
-		{"(*ParseError).Temporary", Method, 17},
-		{"(*ParseError).Timeout", Method, 17},
-		{"(*Resolver).LookupAddr", Method, 8},
-		{"(*Resolver).LookupCNAME", Method, 8},
-		{"(*Resolver).LookupHost", Method, 8},
-		{"(*Resolver).LookupIP", Method, 15},
-		{"(*Resolver).LookupIPAddr", Method, 8},
-		{"(*Resolver).LookupMX", Method, 8},
-		{"(*Resolver).LookupNS", Method, 8},
-		{"(*Resolver).LookupNetIP", Method, 18},
-		{"(*Resolver).LookupPort", Method, 8},
-		{"(*Resolver).LookupSRV", Method, 8},
-		{"(*Resolver).LookupTXT", Method, 8},
-		{"(*TCPAddr).AddrPort", Method, 18},
-		{"(*TCPAddr).Network", Method, 0},
-		{"(*TCPAddr).String", Method, 0},
-		{"(*TCPConn).Close", Method, 0},
-		{"(*TCPConn).CloseRead", Method, 0},
-		{"(*TCPConn).CloseWrite", Method, 0},
-		{"(*TCPConn).File", Method, 0},
-		{"(*TCPConn).LocalAddr", Method, 0},
-		{"(*TCPConn).MultipathTCP", Method, 21},
-		{"(*TCPConn).Read", Method, 0},
-		{"(*TCPConn).ReadFrom", Method, 0},
-		{"(*TCPConn).RemoteAddr", Method, 0},
-		{"(*TCPConn).SetDeadline", Method, 0},
-		{"(*TCPConn).SetKeepAlive", Method, 0},
-		{"(*TCPConn).SetKeepAliveConfig", Method, 23},
-		{"(*TCPConn).SetKeepAlivePeriod", Method, 2},
-		{"(*TCPConn).SetLinger", Method, 0},
-		{"(*TCPConn).SetNoDelay", Method, 0},
-		{"(*TCPConn).SetReadBuffer", Method, 0},
-		{"(*TCPConn).SetReadDeadline", Method, 0},
-		{"(*TCPConn).SetWriteBuffer", Method, 0},
-		{"(*TCPConn).SetWriteDeadline", Method, 0},
-		{"(*TCPConn).SyscallConn", Method, 9},
-		{"(*TCPConn).Write", Method, 0},
-		{"(*TCPConn).WriteTo", Method, 22},
-		{"(*TCPListener).Accept", Method, 0},
-		{"(*TCPListener).AcceptTCP", Method, 0},
-		{"(*TCPListener).Addr", Method, 0},
-		{"(*TCPListener).Close", Method, 0},
-		{"(*TCPListener).File", Method, 0},
-		{"(*TCPListener).SetDeadline", Method, 0},
-		{"(*TCPListener).SyscallConn", Method, 10},
-		{"(*UDPAddr).AddrPort", Method, 18},
-		{"(*UDPAddr).Network", Method, 0},
-		{"(*UDPAddr).String", Method, 0},
-		{"(*UDPConn).Close", Method, 0},
-		{"(*UDPConn).File", Method, 0},
-		{"(*UDPConn).LocalAddr", Method, 0},
-		{"(*UDPConn).Read", Method, 0},
-		{"(*UDPConn).ReadFrom", Method, 0},
-		{"(*UDPConn).ReadFromUDP", Method, 0},
-		{"(*UDPConn).ReadFromUDPAddrPort", Method, 18},
-		{"(*UDPConn).ReadMsgUDP", Method, 1},
-		{"(*UDPConn).ReadMsgUDPAddrPort", Method, 18},
-		{"(*UDPConn).RemoteAddr", Method, 0},
-		{"(*UDPConn).SetDeadline", Method, 0},
-		{"(*UDPConn).SetReadBuffer", Method, 0},
-		{"(*UDPConn).SetReadDeadline", Method, 0},
-		{"(*UDPConn).SetWriteBuffer", Method, 0},
-		{"(*UDPConn).SetWriteDeadline", Method, 0},
-		{"(*UDPConn).SyscallConn", Method, 9},
-		{"(*UDPConn).Write", Method, 0},
-		{"(*UDPConn).WriteMsgUDP", Method, 1},
-		{"(*UDPConn).WriteMsgUDPAddrPort", Method, 18},
-		{"(*UDPConn).WriteTo", Method, 0},
-		{"(*UDPConn).WriteToUDP", Method, 0},
-		{"(*UDPConn).WriteToUDPAddrPort", Method, 18},
-		{"(*UnixAddr).Network", Method, 0},
-		{"(*UnixAddr).String", Method, 0},
-		{"(*UnixConn).Close", Method, 0},
-		{"(*UnixConn).CloseRead", Method, 1},
-		{"(*UnixConn).CloseWrite", Method, 1},
-		{"(*UnixConn).File", Method, 0},
-		{"(*UnixConn).LocalAddr", Method, 0},
-		{"(*UnixConn).Read", Method, 0},
-		{"(*UnixConn).ReadFrom", Method, 0},
-		{"(*UnixConn).ReadFromUnix", Method, 0},
-		{"(*UnixConn).ReadMsgUnix", Method, 0},
-		{"(*UnixConn).RemoteAddr", Method, 0},
-		{"(*UnixConn).SetDeadline", Method, 0},
-		{"(*UnixConn).SetReadBuffer", Method, 0},
-		{"(*UnixConn).SetReadDeadline", Method, 0},
-		{"(*UnixConn).SetWriteBuffer", Method, 0},
-		{"(*UnixConn).SetWriteDeadline", Method, 0},
-		{"(*UnixConn).SyscallConn", Method, 9},
-		{"(*UnixConn).Write", Method, 0},
-		{"(*UnixConn).WriteMsgUnix", Method, 0},
-		{"(*UnixConn).WriteTo", Method, 0},
-		{"(*UnixConn).WriteToUnix", Method, 0},
-		{"(*UnixListener).Accept", Method, 0},
-		{"(*UnixListener).AcceptUnix", Method, 0},
-		{"(*UnixListener).Addr", Method, 0},
-		{"(*UnixListener).Close", Method, 0},
-		{"(*UnixListener).File", Method, 0},
-		{"(*UnixListener).SetDeadline", Method, 0},
-		{"(*UnixListener).SetUnlinkOnClose", Method, 8},
-		{"(*UnixListener).SyscallConn", Method, 10},
-		{"(Flags).String", Method, 0},
-		{"(HardwareAddr).String", Method, 0},
-		{"(IP).AppendText", Method, 24},
-		{"(IP).DefaultMask", Method, 0},
-		{"(IP).Equal", Method, 0},
-		{"(IP).IsGlobalUnicast", Method, 0},
-		{"(IP).IsInterfaceLocalMulticast", Method, 0},
-		{"(IP).IsLinkLocalMulticast", Method, 0},
-		{"(IP).IsLinkLocalUnicast", Method, 0},
-		{"(IP).IsLoopback", Method, 0},
-		{"(IP).IsMulticast", Method, 0},
-		{"(IP).IsPrivate", Method, 17},
-		{"(IP).IsUnspecified", Method, 0},
-		{"(IP).MarshalText", Method, 2},
-		{"(IP).Mask", Method, 0},
-		{"(IP).String", Method, 0},
-		{"(IP).To16", Method, 0},
-		{"(IP).To4", Method, 0},
-		{"(IPMask).Size", Method, 0},
-		{"(IPMask).String", Method, 0},
-		{"(InvalidAddrError).Error", Method, 0},
-		{"(InvalidAddrError).Temporary", Method, 0},
-		{"(InvalidAddrError).Timeout", Method, 0},
-		{"(UnknownNetworkError).Error", Method, 0},
-		{"(UnknownNetworkError).Temporary", Method, 0},
-		{"(UnknownNetworkError).Timeout", Method, 0},
-		{"Addr", Type, 0},
-		{"AddrError", Type, 0},
-		{"AddrError.Addr", Field, 0},
-		{"AddrError.Err", Field, 0},
-		{"Buffers", Type, 8},
-		{"CIDRMask", Func, 0},
-		{"Conn", Type, 0},
-		{"DNSConfigError", Type, 0},
-		{"DNSConfigError.Err", Field, 0},
-		{"DNSError", Type, 0},
-		{"DNSError.Err", Field, 0},
-		{"DNSError.IsNotFound", Field, 13},
-		{"DNSError.IsTemporary", Field, 6},
-		{"DNSError.IsTimeout", Field, 0},
-		{"DNSError.Name", Field, 0},
-		{"DNSError.Server", Field, 0},
-		{"DNSError.UnwrapErr", Field, 23},
-		{"DefaultResolver", Var, 8},
-		{"Dial", Func, 0},
-		{"DialIP", Func, 0},
-		{"DialTCP", Func, 0},
-		{"DialTimeout", Func, 0},
-		{"DialUDP", Func, 0},
-		{"DialUnix", Func, 0},
-		{"Dialer", Type, 1},
-		{"Dialer.Cancel", Field, 6},
-		{"Dialer.Control", Field, 11},
-		{"Dialer.ControlContext", Field, 20},
-		{"Dialer.Deadline", Field, 1},
-		{"Dialer.DualStack", Field, 2},
-		{"Dialer.FallbackDelay", Field, 5},
-		{"Dialer.KeepAlive", Field, 3},
-		{"Dialer.KeepAliveConfig", Field, 23},
-		{"Dialer.LocalAddr", Field, 1},
-		{"Dialer.Resolver", Field, 8},
-		{"Dialer.Timeout", Field, 1},
-		{"ErrClosed", Var, 16},
-		{"ErrWriteToConnected", Var, 0},
-		{"Error", Type, 0},
-		{"FileConn", Func, 0},
-		{"FileListener", Func, 0},
-		{"FilePacketConn", Func, 0},
-		{"FlagBroadcast", Const, 0},
-		{"FlagLoopback", Const, 0},
-		{"FlagMulticast", Const, 0},
-		{"FlagPointToPoint", Const, 0},
-		{"FlagRunning", Const, 20},
-		{"FlagUp", Const, 0},
-		{"Flags", Type, 0},
-		{"HardwareAddr", Type, 0},
-		{"IP", Type, 0},
-		{"IPAddr", Type, 0},
-		{"IPAddr.IP", Field, 0},
-		{"IPAddr.Zone", Field, 1},
-		{"IPConn", Type, 0},
-		{"IPMask", Type, 0},
-		{"IPNet", Type, 0},
-		{"IPNet.IP", Field, 0},
-		{"IPNet.Mask", Field, 0},
-		{"IPv4", Func, 0},
-		{"IPv4Mask", Func, 0},
-		{"IPv4allrouter", Var, 0},
-		{"IPv4allsys", Var, 0},
-		{"IPv4bcast", Var, 0},
-		{"IPv4len", Const, 0},
-		{"IPv4zero", Var, 0},
-		{"IPv6interfacelocalallnodes", Var, 0},
-		{"IPv6len", Const, 0},
-		{"IPv6linklocalallnodes", Var, 0},
-		{"IPv6linklocalallrouters", Var, 0},
-		{"IPv6loopback", Var, 0},
-		{"IPv6unspecified", Var, 0},
-		{"IPv6zero", Var, 0},
-		{"Interface", Type, 0},
-		{"Interface.Flags", Field, 0},
-		{"Interface.HardwareAddr", Field, 0},
-		{"Interface.Index", Field, 0},
-		{"Interface.MTU", Field, 0},
-		{"Interface.Name", Field, 0},
-		{"InterfaceAddrs", Func, 0},
-		{"InterfaceByIndex", Func, 0},
-		{"InterfaceByName", Func, 0},
-		{"Interfaces", Func, 0},
-		{"InvalidAddrError", Type, 0},
-		{"JoinHostPort", Func, 0},
-		{"KeepAliveConfig", Type, 23},
-		{"KeepAliveConfig.Count", Field, 23},
-		{"KeepAliveConfig.Enable", Field, 23},
-		{"KeepAliveConfig.Idle", Field, 23},
-		{"KeepAliveConfig.Interval", Field, 23},
-		{"Listen", Func, 0},
-		{"ListenConfig", Type, 11},
-		{"ListenConfig.Control", Field, 11},
-		{"ListenConfig.KeepAlive", Field, 13},
-		{"ListenConfig.KeepAliveConfig", Field, 23},
-		{"ListenIP", Func, 0},
-		{"ListenMulticastUDP", Func, 0},
-		{"ListenPacket", Func, 0},
-		{"ListenTCP", Func, 0},
-		{"ListenUDP", Func, 0},
-		{"ListenUnix", Func, 0},
-		{"ListenUnixgram", Func, 0},
-		{"Listener", Type, 0},
-		{"LookupAddr", Func, 0},
-		{"LookupCNAME", Func, 0},
-		{"LookupHost", Func, 0},
-		{"LookupIP", Func, 0},
-		{"LookupMX", Func, 0},
-		{"LookupNS", Func, 1},
-		{"LookupPort", Func, 0},
-		{"LookupSRV", Func, 0},
-		{"LookupTXT", Func, 0},
-		{"MX", Type, 0},
-		{"MX.Host", Field, 0},
-		{"MX.Pref", Field, 0},
-		{"NS", Type, 1},
-		{"NS.Host", Field, 1},
-		{"OpError", Type, 0},
-		{"OpError.Addr", Field, 0},
-		{"OpError.Err", Field, 0},
-		{"OpError.Net", Field, 0},
-		{"OpError.Op", Field, 0},
-		{"OpError.Source", Field, 5},
-		{"PacketConn", Type, 0},
-		{"ParseCIDR", Func, 0},
-		{"ParseError", Type, 0},
-		{"ParseError.Text", Field, 0},
-		{"ParseError.Type", Field, 0},
-		{"ParseIP", Func, 0},
-		{"ParseMAC", Func, 0},
-		{"Pipe", Func, 0},
-		{"ResolveIPAddr", Func, 0},
-		{"ResolveTCPAddr", Func, 0},
-		{"ResolveUDPAddr", Func, 0},
-		{"ResolveUnixAddr", Func, 0},
-		{"Resolver", Type, 8},
-		{"Resolver.Dial", Field, 9},
-		{"Resolver.PreferGo", Field, 8},
-		{"Resolver.StrictErrors", Field, 9},
-		{"SRV", Type, 0},
-		{"SRV.Port", Field, 0},
-		{"SRV.Priority", Field, 0},
-		{"SRV.Target", Field, 0},
-		{"SRV.Weight", Field, 0},
-		{"SplitHostPort", Func, 0},
-		{"TCPAddr", Type, 0},
-		{"TCPAddr.IP", Field, 0},
-		{"TCPAddr.Port", Field, 0},
-		{"TCPAddr.Zone", Field, 1},
-		{"TCPAddrFromAddrPort", Func, 18},
-		{"TCPConn", Type, 0},
-		{"TCPListener", Type, 0},
-		{"UDPAddr", Type, 0},
-		{"UDPAddr.IP", Field, 0},
-		{"UDPAddr.Port", Field, 0},
-		{"UDPAddr.Zone", Field, 1},
-		{"UDPAddrFromAddrPort", Func, 18},
-		{"UDPConn", Type, 0},
-		{"UnixAddr", Type, 0},
-		{"UnixAddr.Name", Field, 0},
-		{"UnixAddr.Net", Field, 0},
-		{"UnixConn", Type, 0},
-		{"UnixListener", Type, 0},
-		{"UnknownNetworkError", Type, 0},
+		{"(*AddrError).Error", Method, 0, ""},
+		{"(*AddrError).Temporary", Method, 0, ""},
+		{"(*AddrError).Timeout", Method, 0, ""},
+		{"(*Buffers).Read", Method, 8, ""},
+		{"(*Buffers).WriteTo", Method, 8, ""},
+		{"(*DNSConfigError).Error", Method, 0, ""},
+		{"(*DNSConfigError).Temporary", Method, 0, ""},
+		{"(*DNSConfigError).Timeout", Method, 0, ""},
+		{"(*DNSConfigError).Unwrap", Method, 13, ""},
+		{"(*DNSError).Error", Method, 0, ""},
+		{"(*DNSError).Temporary", Method, 0, ""},
+		{"(*DNSError).Timeout", Method, 0, ""},
+		{"(*DNSError).Unwrap", Method, 23, ""},
+		{"(*Dialer).Dial", Method, 1, ""},
+		{"(*Dialer).DialContext", Method, 7, ""},
+		{"(*Dialer).MultipathTCP", Method, 21, ""},
+		{"(*Dialer).SetMultipathTCP", Method, 21, ""},
+		{"(*IP).UnmarshalText", Method, 2, ""},
+		{"(*IPAddr).Network", Method, 0, ""},
+		{"(*IPAddr).String", Method, 0, ""},
+		{"(*IPConn).Close", Method, 0, ""},
+		{"(*IPConn).File", Method, 0, ""},
+		{"(*IPConn).LocalAddr", Method, 0, ""},
+		{"(*IPConn).Read", Method, 0, ""},
+		{"(*IPConn).ReadFrom", Method, 0, ""},
+		{"(*IPConn).ReadFromIP", Method, 0, ""},
+		{"(*IPConn).ReadMsgIP", Method, 1, ""},
+		{"(*IPConn).RemoteAddr", Method, 0, ""},
+		{"(*IPConn).SetDeadline", Method, 0, ""},
+		{"(*IPConn).SetReadBuffer", Method, 0, ""},
+		{"(*IPConn).SetReadDeadline", Method, 0, ""},
+		{"(*IPConn).SetWriteBuffer", Method, 0, ""},
+		{"(*IPConn).SetWriteDeadline", Method, 0, ""},
+		{"(*IPConn).SyscallConn", Method, 9, ""},
+		{"(*IPConn).Write", Method, 0, ""},
+		{"(*IPConn).WriteMsgIP", Method, 1, ""},
+		{"(*IPConn).WriteTo", Method, 0, ""},
+		{"(*IPConn).WriteToIP", Method, 0, ""},
+		{"(*IPNet).Contains", Method, 0, ""},
+		{"(*IPNet).Network", Method, 0, ""},
+		{"(*IPNet).String", Method, 0, ""},
+		{"(*Interface).Addrs", Method, 0, ""},
+		{"(*Interface).MulticastAddrs", Method, 0, ""},
+		{"(*ListenConfig).Listen", Method, 11, ""},
+		{"(*ListenConfig).ListenPacket", Method, 11, ""},
+		{"(*ListenConfig).MultipathTCP", Method, 21, ""},
+		{"(*ListenConfig).SetMultipathTCP", Method, 21, ""},
+		{"(*OpError).Error", Method, 0, ""},
+		{"(*OpError).Temporary", Method, 0, ""},
+		{"(*OpError).Timeout", Method, 0, ""},
+		{"(*OpError).Unwrap", Method, 13, ""},
+		{"(*ParseError).Error", Method, 0, ""},
+		{"(*ParseError).Temporary", Method, 17, ""},
+		{"(*ParseError).Timeout", Method, 17, ""},
+		{"(*Resolver).LookupAddr", Method, 8, ""},
+		{"(*Resolver).LookupCNAME", Method, 8, ""},
+		{"(*Resolver).LookupHost", Method, 8, ""},
+		{"(*Resolver).LookupIP", Method, 15, ""},
+		{"(*Resolver).LookupIPAddr", Method, 8, ""},
+		{"(*Resolver).LookupMX", Method, 8, ""},
+		{"(*Resolver).LookupNS", Method, 8, ""},
+		{"(*Resolver).LookupNetIP", Method, 18, ""},
+		{"(*Resolver).LookupPort", Method, 8, ""},
+		{"(*Resolver).LookupSRV", Method, 8, ""},
+		{"(*Resolver).LookupTXT", Method, 8, ""},
+		{"(*TCPAddr).AddrPort", Method, 18, ""},
+		{"(*TCPAddr).Network", Method, 0, ""},
+		{"(*TCPAddr).String", Method, 0, ""},
+		{"(*TCPConn).Close", Method, 0, ""},
+		{"(*TCPConn).CloseRead", Method, 0, ""},
+		{"(*TCPConn).CloseWrite", Method, 0, ""},
+		{"(*TCPConn).File", Method, 0, ""},
+		{"(*TCPConn).LocalAddr", Method, 0, ""},
+		{"(*TCPConn).MultipathTCP", Method, 21, ""},
+		{"(*TCPConn).Read", Method, 0, ""},
+		{"(*TCPConn).ReadFrom", Method, 0, ""},
+		{"(*TCPConn).RemoteAddr", Method, 0, ""},
+		{"(*TCPConn).SetDeadline", Method, 0, ""},
+		{"(*TCPConn).SetKeepAlive", Method, 0, ""},
+		{"(*TCPConn).SetKeepAliveConfig", Method, 23, ""},
+		{"(*TCPConn).SetKeepAlivePeriod", Method, 2, ""},
+		{"(*TCPConn).SetLinger", Method, 0, ""},
+		{"(*TCPConn).SetNoDelay", Method, 0, ""},
+		{"(*TCPConn).SetReadBuffer", Method, 0, ""},
+		{"(*TCPConn).SetReadDeadline", Method, 0, ""},
+		{"(*TCPConn).SetWriteBuffer", Method, 0, ""},
+		{"(*TCPConn).SetWriteDeadline", Method, 0, ""},
+		{"(*TCPConn).SyscallConn", Method, 9, ""},
+		{"(*TCPConn).Write", Method, 0, ""},
+		{"(*TCPConn).WriteTo", Method, 22, ""},
+		{"(*TCPListener).Accept", Method, 0, ""},
+		{"(*TCPListener).AcceptTCP", Method, 0, ""},
+		{"(*TCPListener).Addr", Method, 0, ""},
+		{"(*TCPListener).Close", Method, 0, ""},
+		{"(*TCPListener).File", Method, 0, ""},
+		{"(*TCPListener).SetDeadline", Method, 0, ""},
+		{"(*TCPListener).SyscallConn", Method, 10, ""},
+		{"(*UDPAddr).AddrPort", Method, 18, ""},
+		{"(*UDPAddr).Network", Method, 0, ""},
+		{"(*UDPAddr).String", Method, 0, ""},
+		{"(*UDPConn).Close", Method, 0, ""},
+		{"(*UDPConn).File", Method, 0, ""},
+		{"(*UDPConn).LocalAddr", Method, 0, ""},
+		{"(*UDPConn).Read", Method, 0, ""},
+		{"(*UDPConn).ReadFrom", Method, 0, ""},
+		{"(*UDPConn).ReadFromUDP", Method, 0, ""},
+		{"(*UDPConn).ReadFromUDPAddrPort", Method, 18, ""},
+		{"(*UDPConn).ReadMsgUDP", Method, 1, ""},
+		{"(*UDPConn).ReadMsgUDPAddrPort", Method, 18, ""},
+		{"(*UDPConn).RemoteAddr", Method, 0, ""},
+		{"(*UDPConn).SetDeadline", Method, 0, ""},
+		{"(*UDPConn).SetReadBuffer", Method, 0, ""},
+		{"(*UDPConn).SetReadDeadline", Method, 0, ""},
+		{"(*UDPConn).SetWriteBuffer", Method, 0, ""},
+		{"(*UDPConn).SetWriteDeadline", Method, 0, ""},
+		{"(*UDPConn).SyscallConn", Method, 9, ""},
+		{"(*UDPConn).Write", Method, 0, ""},
+		{"(*UDPConn).WriteMsgUDP", Method, 1, ""},
+		{"(*UDPConn).WriteMsgUDPAddrPort", Method, 18, ""},
+		{"(*UDPConn).WriteTo", Method, 0, ""},
+		{"(*UDPConn).WriteToUDP", Method, 0, ""},
+		{"(*UDPConn).WriteToUDPAddrPort", Method, 18, ""},
+		{"(*UnixAddr).Network", Method, 0, ""},
+		{"(*UnixAddr).String", Method, 0, ""},
+		{"(*UnixConn).Close", Method, 0, ""},
+		{"(*UnixConn).CloseRead", Method, 1, ""},
+		{"(*UnixConn).CloseWrite", Method, 1, ""},
+		{"(*UnixConn).File", Method, 0, ""},
+		{"(*UnixConn).LocalAddr", Method, 0, ""},
+		{"(*UnixConn).Read", Method, 0, ""},
+		{"(*UnixConn).ReadFrom", Method, 0, ""},
+		{"(*UnixConn).ReadFromUnix", Method, 0, ""},
+		{"(*UnixConn).ReadMsgUnix", Method, 0, ""},
+		{"(*UnixConn).RemoteAddr", Method, 0, ""},
+		{"(*UnixConn).SetDeadline", Method, 0, ""},
+		{"(*UnixConn).SetReadBuffer", Method, 0, ""},
+		{"(*UnixConn).SetReadDeadline", Method, 0, ""},
+		{"(*UnixConn).SetWriteBuffer", Method, 0, ""},
+		{"(*UnixConn).SetWriteDeadline", Method, 0, ""},
+		{"(*UnixConn).SyscallConn", Method, 9, ""},
+		{"(*UnixConn).Write", Method, 0, ""},
+		{"(*UnixConn).WriteMsgUnix", Method, 0, ""},
+		{"(*UnixConn).WriteTo", Method, 0, ""},
+		{"(*UnixConn).WriteToUnix", Method, 0, ""},
+		{"(*UnixListener).Accept", Method, 0, ""},
+		{"(*UnixListener).AcceptUnix", Method, 0, ""},
+		{"(*UnixListener).Addr", Method, 0, ""},
+		{"(*UnixListener).Close", Method, 0, ""},
+		{"(*UnixListener).File", Method, 0, ""},
+		{"(*UnixListener).SetDeadline", Method, 0, ""},
+		{"(*UnixListener).SetUnlinkOnClose", Method, 8, ""},
+		{"(*UnixListener).SyscallConn", Method, 10, ""},
+		{"(Flags).String", Method, 0, ""},
+		{"(HardwareAddr).String", Method, 0, ""},
+		{"(IP).AppendText", Method, 24, ""},
+		{"(IP).DefaultMask", Method, 0, ""},
+		{"(IP).Equal", Method, 0, ""},
+		{"(IP).IsGlobalUnicast", Method, 0, ""},
+		{"(IP).IsInterfaceLocalMulticast", Method, 0, ""},
+		{"(IP).IsLinkLocalMulticast", Method, 0, ""},
+		{"(IP).IsLinkLocalUnicast", Method, 0, ""},
+		{"(IP).IsLoopback", Method, 0, ""},
+		{"(IP).IsMulticast", Method, 0, ""},
+		{"(IP).IsPrivate", Method, 17, ""},
+		{"(IP).IsUnspecified", Method, 0, ""},
+		{"(IP).MarshalText", Method, 2, ""},
+		{"(IP).Mask", Method, 0, ""},
+		{"(IP).String", Method, 0, ""},
+		{"(IP).To16", Method, 0, ""},
+		{"(IP).To4", Method, 0, ""},
+		{"(IPMask).Size", Method, 0, ""},
+		{"(IPMask).String", Method, 0, ""},
+		{"(InvalidAddrError).Error", Method, 0, ""},
+		{"(InvalidAddrError).Temporary", Method, 0, ""},
+		{"(InvalidAddrError).Timeout", Method, 0, ""},
+		{"(UnknownNetworkError).Error", Method, 0, ""},
+		{"(UnknownNetworkError).Temporary", Method, 0, ""},
+		{"(UnknownNetworkError).Timeout", Method, 0, ""},
+		{"Addr", Type, 0, ""},
+		{"AddrError", Type, 0, ""},
+		{"AddrError.Addr", Field, 0, ""},
+		{"AddrError.Err", Field, 0, ""},
+		{"Buffers", Type, 8, ""},
+		{"CIDRMask", Func, 0, "func(ones int, bits int) IPMask"},
+		{"Conn", Type, 0, ""},
+		{"DNSConfigError", Type, 0, ""},
+		{"DNSConfigError.Err", Field, 0, ""},
+		{"DNSError", Type, 0, ""},
+		{"DNSError.Err", Field, 0, ""},
+		{"DNSError.IsNotFound", Field, 13, ""},
+		{"DNSError.IsTemporary", Field, 6, ""},
+		{"DNSError.IsTimeout", Field, 0, ""},
+		{"DNSError.Name", Field, 0, ""},
+		{"DNSError.Server", Field, 0, ""},
+		{"DNSError.UnwrapErr", Field, 23, ""},
+		{"DefaultResolver", Var, 8, ""},
+		{"Dial", Func, 0, "func(network string, address string) (Conn, error)"},
+		{"DialIP", Func, 0, "func(network string, laddr *IPAddr, raddr *IPAddr) (*IPConn, error)"},
+		{"DialTCP", Func, 0, "func(network string, laddr *TCPAddr, raddr *TCPAddr) (*TCPConn, error)"},
+		{"DialTimeout", Func, 0, "func(network string, address string, timeout time.Duration) (Conn, error)"},
+		{"DialUDP", Func, 0, "func(network string, laddr *UDPAddr, raddr *UDPAddr) (*UDPConn, error)"},
+		{"DialUnix", Func, 0, "func(network string, laddr *UnixAddr, raddr *UnixAddr) (*UnixConn, error)"},
+		{"Dialer", Type, 1, ""},
+		{"Dialer.Cancel", Field, 6, ""},
+		{"Dialer.Control", Field, 11, ""},
+		{"Dialer.ControlContext", Field, 20, ""},
+		{"Dialer.Deadline", Field, 1, ""},
+		{"Dialer.DualStack", Field, 2, ""},
+		{"Dialer.FallbackDelay", Field, 5, ""},
+		{"Dialer.KeepAlive", Field, 3, ""},
+		{"Dialer.KeepAliveConfig", Field, 23, ""},
+		{"Dialer.LocalAddr", Field, 1, ""},
+		{"Dialer.Resolver", Field, 8, ""},
+		{"Dialer.Timeout", Field, 1, ""},
+		{"ErrClosed", Var, 16, ""},
+		{"ErrWriteToConnected", Var, 0, ""},
+		{"Error", Type, 0, ""},
+		{"FileConn", Func, 0, "func(f *os.File) (c Conn, err error)"},
+		{"FileListener", Func, 0, "func(f *os.File) (ln Listener, err error)"},
+		{"FilePacketConn", Func, 0, "func(f *os.File) (c PacketConn, err error)"},
+		{"FlagBroadcast", Const, 0, ""},
+		{"FlagLoopback", Const, 0, ""},
+		{"FlagMulticast", Const, 0, ""},
+		{"FlagPointToPoint", Const, 0, ""},
+		{"FlagRunning", Const, 20, ""},
+		{"FlagUp", Const, 0, ""},
+		{"Flags", Type, 0, ""},
+		{"HardwareAddr", Type, 0, ""},
+		{"IP", Type, 0, ""},
+		{"IPAddr", Type, 0, ""},
+		{"IPAddr.IP", Field, 0, ""},
+		{"IPAddr.Zone", Field, 1, ""},
+		{"IPConn", Type, 0, ""},
+		{"IPMask", Type, 0, ""},
+		{"IPNet", Type, 0, ""},
+		{"IPNet.IP", Field, 0, ""},
+		{"IPNet.Mask", Field, 0, ""},
+		{"IPv4", Func, 0, "func(a byte, b byte, c byte, d byte) IP"},
+		{"IPv4Mask", Func, 0, "func(a byte, b byte, c byte, d byte) IPMask"},
+		{"IPv4allrouter", Var, 0, ""},
+		{"IPv4allsys", Var, 0, ""},
+		{"IPv4bcast", Var, 0, ""},
+		{"IPv4len", Const, 0, ""},
+		{"IPv4zero", Var, 0, ""},
+		{"IPv6interfacelocalallnodes", Var, 0, ""},
+		{"IPv6len", Const, 0, ""},
+		{"IPv6linklocalallnodes", Var, 0, ""},
+		{"IPv6linklocalallrouters", Var, 0, ""},
+		{"IPv6loopback", Var, 0, ""},
+		{"IPv6unspecified", Var, 0, ""},
+		{"IPv6zero", Var, 0, ""},
+		{"Interface", Type, 0, ""},
+		{"Interface.Flags", Field, 0, ""},
+		{"Interface.HardwareAddr", Field, 0, ""},
+		{"Interface.Index", Field, 0, ""},
+		{"Interface.MTU", Field, 0, ""},
+		{"Interface.Name", Field, 0, ""},
+		{"InterfaceAddrs", Func, 0, "func() ([]Addr, error)"},
+		{"InterfaceByIndex", Func, 0, "func(index int) (*Interface, error)"},
+		{"InterfaceByName", Func, 0, "func(name string) (*Interface, error)"},
+		{"Interfaces", Func, 0, "func() ([]Interface, error)"},
+		{"InvalidAddrError", Type, 0, ""},
+		{"JoinHostPort", Func, 0, "func(host string, port string) string"},
+		{"KeepAliveConfig", Type, 23, ""},
+		{"KeepAliveConfig.Count", Field, 23, ""},
+		{"KeepAliveConfig.Enable", Field, 23, ""},
+		{"KeepAliveConfig.Idle", Field, 23, ""},
+		{"KeepAliveConfig.Interval", Field, 23, ""},
+		{"Listen", Func, 0, "func(network string, address string) (Listener, error)"},
+		{"ListenConfig", Type, 11, ""},
+		{"ListenConfig.Control", Field, 11, ""},
+		{"ListenConfig.KeepAlive", Field, 13, ""},
+		{"ListenConfig.KeepAliveConfig", Field, 23, ""},
+		{"ListenIP", Func, 0, "func(network string, laddr *IPAddr) (*IPConn, error)"},
+		{"ListenMulticastUDP", Func, 0, "func(network string, ifi *Interface, gaddr *UDPAddr) (*UDPConn, error)"},
+		{"ListenPacket", Func, 0, "func(network string, address string) (PacketConn, error)"},
+		{"ListenTCP", Func, 0, "func(network string, laddr *TCPAddr) (*TCPListener, error)"},
+		{"ListenUDP", Func, 0, "func(network string, laddr *UDPAddr) (*UDPConn, error)"},
+		{"ListenUnix", Func, 0, "func(network string, laddr *UnixAddr) (*UnixListener, error)"},
+		{"ListenUnixgram", Func, 0, "func(network string, laddr *UnixAddr) (*UnixConn, error)"},
+		{"Listener", Type, 0, ""},
+		{"LookupAddr", Func, 0, "func(addr string) (names []string, err error)"},
+		{"LookupCNAME", Func, 0, "func(host string) (cname string, err error)"},
+		{"LookupHost", Func, 0, "func(host string) (addrs []string, err error)"},
+		{"LookupIP", Func, 0, "func(host string) ([]IP, error)"},
+		{"LookupMX", Func, 0, "func(name string) ([]*MX, error)"},
+		{"LookupNS", Func, 1, "func(name string) ([]*NS, error)"},
+		{"LookupPort", Func, 0, "func(network string, service string) (port int, err error)"},
+		{"LookupSRV", Func, 0, "func(service string, proto string, name string) (cname string, addrs []*SRV, err error)"},
+		{"LookupTXT", Func, 0, "func(name string) ([]string, error)"},
+		{"MX", Type, 0, ""},
+		{"MX.Host", Field, 0, ""},
+		{"MX.Pref", Field, 0, ""},
+		{"NS", Type, 1, ""},
+		{"NS.Host", Field, 1, ""},
+		{"OpError", Type, 0, ""},
+		{"OpError.Addr", Field, 0, ""},
+		{"OpError.Err", Field, 0, ""},
+		{"OpError.Net", Field, 0, ""},
+		{"OpError.Op", Field, 0, ""},
+		{"OpError.Source", Field, 5, ""},
+		{"PacketConn", Type, 0, ""},
+		{"ParseCIDR", Func, 0, "func(s string) (IP, *IPNet, error)"},
+		{"ParseError", Type, 0, ""},
+		{"ParseError.Text", Field, 0, ""},
+		{"ParseError.Type", Field, 0, ""},
+		{"ParseIP", Func, 0, "func(s string) IP"},
+		{"ParseMAC", Func, 0, "func(s string) (hw HardwareAddr, err error)"},
+		{"Pipe", Func, 0, "func() (Conn, Conn)"},
+		{"ResolveIPAddr", Func, 0, "func(network string, address string) (*IPAddr, error)"},
+		{"ResolveTCPAddr", Func, 0, "func(network string, address string) (*TCPAddr, error)"},
+		{"ResolveUDPAddr", Func, 0, "func(network string, address string) (*UDPAddr, error)"},
+		{"ResolveUnixAddr", Func, 0, "func(network string, address string) (*UnixAddr, error)"},
+		{"Resolver", Type, 8, ""},
+		{"Resolver.Dial", Field, 9, ""},
+		{"Resolver.PreferGo", Field, 8, ""},
+		{"Resolver.StrictErrors", Field, 9, ""},
+		{"SRV", Type, 0, ""},
+		{"SRV.Port", Field, 0, ""},
+		{"SRV.Priority", Field, 0, ""},
+		{"SRV.Target", Field, 0, ""},
+		{"SRV.Weight", Field, 0, ""},
+		{"SplitHostPort", Func, 0, "func(hostport string) (host string, port string, err error)"},
+		{"TCPAddr", Type, 0, ""},
+		{"TCPAddr.IP", Field, 0, ""},
+		{"TCPAddr.Port", Field, 0, ""},
+		{"TCPAddr.Zone", Field, 1, ""},
+		{"TCPAddrFromAddrPort", Func, 18, "func(addr netip.AddrPort) *TCPAddr"},
+		{"TCPConn", Type, 0, ""},
+		{"TCPListener", Type, 0, ""},
+		{"UDPAddr", Type, 0, ""},
+		{"UDPAddr.IP", Field, 0, ""},
+		{"UDPAddr.Port", Field, 0, ""},
+		{"UDPAddr.Zone", Field, 1, ""},
+		{"UDPAddrFromAddrPort", Func, 18, "func(addr netip.AddrPort) *UDPAddr"},
+		{"UDPConn", Type, 0, ""},
+		{"UnixAddr", Type, 0, ""},
+		{"UnixAddr.Name", Field, 0, ""},
+		{"UnixAddr.Net", Field, 0, ""},
+		{"UnixConn", Type, 0, ""},
+		{"UnixListener", Type, 0, ""},
+		{"UnknownNetworkError", Type, 0, ""},
 	},
 	"net/http": {
-		{"(*Client).CloseIdleConnections", Method, 12},
-		{"(*Client).Do", Method, 0},
-		{"(*Client).Get", Method, 0},
-		{"(*Client).Head", Method, 0},
-		{"(*Client).Post", Method, 0},
-		{"(*Client).PostForm", Method, 0},
-		{"(*Cookie).String", Method, 0},
-		{"(*Cookie).Valid", Method, 18},
-		{"(*MaxBytesError).Error", Method, 19},
-		{"(*ProtocolError).Error", Method, 0},
-		{"(*ProtocolError).Is", Method, 21},
-		{"(*Protocols).SetHTTP1", Method, 24},
-		{"(*Protocols).SetHTTP2", Method, 24},
-		{"(*Protocols).SetUnencryptedHTTP2", Method, 24},
-		{"(*Request).AddCookie", Method, 0},
-		{"(*Request).BasicAuth", Method, 4},
-		{"(*Request).Clone", Method, 13},
-		{"(*Request).Context", Method, 7},
-		{"(*Request).Cookie", Method, 0},
-		{"(*Request).Cookies", Method, 0},
-		{"(*Request).CookiesNamed", Method, 23},
-		{"(*Request).FormFile", Method, 0},
-		{"(*Request).FormValue", Method, 0},
-		{"(*Request).MultipartReader", Method, 0},
-		{"(*Request).ParseForm", Method, 0},
-		{"(*Request).ParseMultipartForm", Method, 0},
-		{"(*Request).PathValue", Method, 22},
-		{"(*Request).PostFormValue", Method, 1},
-		{"(*Request).ProtoAtLeast", Method, 0},
-		{"(*Request).Referer", Method, 0},
-		{"(*Request).SetBasicAuth", Method, 0},
-		{"(*Request).SetPathValue", Method, 22},
-		{"(*Request).UserAgent", Method, 0},
-		{"(*Request).WithContext", Method, 7},
-		{"(*Request).Write", Method, 0},
-		{"(*Request).WriteProxy", Method, 0},
-		{"(*Response).Cookies", Method, 0},
-		{"(*Response).Location", Method, 0},
-		{"(*Response).ProtoAtLeast", Method, 0},
-		{"(*Response).Write", Method, 0},
-		{"(*ResponseController).EnableFullDuplex", Method, 21},
-		{"(*ResponseController).Flush", Method, 20},
-		{"(*ResponseController).Hijack", Method, 20},
-		{"(*ResponseController).SetReadDeadline", Method, 20},
-		{"(*ResponseController).SetWriteDeadline", Method, 20},
-		{"(*ServeMux).Handle", Method, 0},
-		{"(*ServeMux).HandleFunc", Method, 0},
-		{"(*ServeMux).Handler", Method, 1},
-		{"(*ServeMux).ServeHTTP", Method, 0},
-		{"(*Server).Close", Method, 8},
-		{"(*Server).ListenAndServe", Method, 0},
-		{"(*Server).ListenAndServeTLS", Method, 0},
-		{"(*Server).RegisterOnShutdown", Method, 9},
-		{"(*Server).Serve", Method, 0},
-		{"(*Server).ServeTLS", Method, 9},
-		{"(*Server).SetKeepAlivesEnabled", Method, 3},
-		{"(*Server).Shutdown", Method, 8},
-		{"(*Transport).CancelRequest", Method, 1},
-		{"(*Transport).Clone", Method, 13},
-		{"(*Transport).CloseIdleConnections", Method, 0},
-		{"(*Transport).RegisterProtocol", Method, 0},
-		{"(*Transport).RoundTrip", Method, 0},
-		{"(ConnState).String", Method, 3},
-		{"(Dir).Open", Method, 0},
-		{"(HandlerFunc).ServeHTTP", Method, 0},
-		{"(Header).Add", Method, 0},
-		{"(Header).Clone", Method, 13},
-		{"(Header).Del", Method, 0},
-		{"(Header).Get", Method, 0},
-		{"(Header).Set", Method, 0},
-		{"(Header).Values", Method, 14},
-		{"(Header).Write", Method, 0},
-		{"(Header).WriteSubset", Method, 0},
-		{"(Protocols).HTTP1", Method, 24},
-		{"(Protocols).HTTP2", Method, 24},
-		{"(Protocols).String", Method, 24},
-		{"(Protocols).UnencryptedHTTP2", Method, 24},
-		{"AllowQuerySemicolons", Func, 17},
-		{"CanonicalHeaderKey", Func, 0},
-		{"Client", Type, 0},
-		{"Client.CheckRedirect", Field, 0},
-		{"Client.Jar", Field, 0},
-		{"Client.Timeout", Field, 3},
-		{"Client.Transport", Field, 0},
-		{"CloseNotifier", Type, 1},
-		{"ConnState", Type, 3},
-		{"Cookie", Type, 0},
-		{"Cookie.Domain", Field, 0},
-		{"Cookie.Expires", Field, 0},
-		{"Cookie.HttpOnly", Field, 0},
-		{"Cookie.MaxAge", Field, 0},
-		{"Cookie.Name", Field, 0},
-		{"Cookie.Partitioned", Field, 23},
-		{"Cookie.Path", Field, 0},
-		{"Cookie.Quoted", Field, 23},
-		{"Cookie.Raw", Field, 0},
-		{"Cookie.RawExpires", Field, 0},
-		{"Cookie.SameSite", Field, 11},
-		{"Cookie.Secure", Field, 0},
-		{"Cookie.Unparsed", Field, 0},
-		{"Cookie.Value", Field, 0},
-		{"CookieJar", Type, 0},
-		{"DefaultClient", Var, 0},
-		{"DefaultMaxHeaderBytes", Const, 0},
-		{"DefaultMaxIdleConnsPerHost", Const, 0},
-		{"DefaultServeMux", Var, 0},
-		{"DefaultTransport", Var, 0},
-		{"DetectContentType", Func, 0},
-		{"Dir", Type, 0},
-		{"ErrAbortHandler", Var, 8},
-		{"ErrBodyNotAllowed", Var, 0},
-		{"ErrBodyReadAfterClose", Var, 0},
-		{"ErrContentLength", Var, 0},
-		{"ErrHandlerTimeout", Var, 0},
-		{"ErrHeaderTooLong", Var, 0},
-		{"ErrHijacked", Var, 0},
-		{"ErrLineTooLong", Var, 0},
-		{"ErrMissingBoundary", Var, 0},
-		{"ErrMissingContentLength", Var, 0},
-		{"ErrMissingFile", Var, 0},
-		{"ErrNoCookie", Var, 0},
-		{"ErrNoLocation", Var, 0},
-		{"ErrNotMultipart", Var, 0},
-		{"ErrNotSupported", Var, 0},
-		{"ErrSchemeMismatch", Var, 21},
-		{"ErrServerClosed", Var, 8},
-		{"ErrShortBody", Var, 0},
-		{"ErrSkipAltProtocol", Var, 6},
-		{"ErrUnexpectedTrailer", Var, 0},
-		{"ErrUseLastResponse", Var, 7},
-		{"ErrWriteAfterFlush", Var, 0},
-		{"Error", Func, 0},
-		{"FS", Func, 16},
-		{"File", Type, 0},
-		{"FileServer", Func, 0},
-		{"FileServerFS", Func, 22},
-		{"FileSystem", Type, 0},
-		{"Flusher", Type, 0},
-		{"Get", Func, 0},
-		{"HTTP2Config", Type, 24},
-		{"HTTP2Config.CountError", Field, 24},
-		{"HTTP2Config.MaxConcurrentStreams", Field, 24},
-		{"HTTP2Config.MaxDecoderHeaderTableSize", Field, 24},
-		{"HTTP2Config.MaxEncoderHeaderTableSize", Field, 24},
-		{"HTTP2Config.MaxReadFrameSize", Field, 24},
-		{"HTTP2Config.MaxReceiveBufferPerConnection", Field, 24},
-		{"HTTP2Config.MaxReceiveBufferPerStream", Field, 24},
-		{"HTTP2Config.PermitProhibitedCipherSuites", Field, 24},
-		{"HTTP2Config.PingTimeout", Field, 24},
-		{"HTTP2Config.SendPingTimeout", Field, 24},
-		{"HTTP2Config.WriteByteTimeout", Field, 24},
-		{"Handle", Func, 0},
-		{"HandleFunc", Func, 0},
-		{"Handler", Type, 0},
-		{"HandlerFunc", Type, 0},
-		{"Head", Func, 0},
-		{"Header", Type, 0},
-		{"Hijacker", Type, 0},
-		{"ListenAndServe", Func, 0},
-		{"ListenAndServeTLS", Func, 0},
-		{"LocalAddrContextKey", Var, 7},
-		{"MaxBytesError", Type, 19},
-		{"MaxBytesError.Limit", Field, 19},
-		{"MaxBytesHandler", Func, 18},
-		{"MaxBytesReader", Func, 0},
-		{"MethodConnect", Const, 6},
-		{"MethodDelete", Const, 6},
-		{"MethodGet", Const, 6},
-		{"MethodHead", Const, 6},
-		{"MethodOptions", Const, 6},
-		{"MethodPatch", Const, 6},
-		{"MethodPost", Const, 6},
-		{"MethodPut", Const, 6},
-		{"MethodTrace", Const, 6},
-		{"NewFileTransport", Func, 0},
-		{"NewFileTransportFS", Func, 22},
-		{"NewRequest", Func, 0},
-		{"NewRequestWithContext", Func, 13},
-		{"NewResponseController", Func, 20},
-		{"NewServeMux", Func, 0},
-		{"NoBody", Var, 8},
-		{"NotFound", Func, 0},
-		{"NotFoundHandler", Func, 0},
-		{"ParseCookie", Func, 23},
-		{"ParseHTTPVersion", Func, 0},
-		{"ParseSetCookie", Func, 23},
-		{"ParseTime", Func, 1},
-		{"Post", Func, 0},
-		{"PostForm", Func, 0},
-		{"ProtocolError", Type, 0},
-		{"ProtocolError.ErrorString", Field, 0},
-		{"Protocols", Type, 24},
-		{"ProxyFromEnvironment", Func, 0},
-		{"ProxyURL", Func, 0},
-		{"PushOptions", Type, 8},
-		{"PushOptions.Header", Field, 8},
-		{"PushOptions.Method", Field, 8},
-		{"Pusher", Type, 8},
-		{"ReadRequest", Func, 0},
-		{"ReadResponse", Func, 0},
-		{"Redirect", Func, 0},
-		{"RedirectHandler", Func, 0},
-		{"Request", Type, 0},
-		{"Request.Body", Field, 0},
-		{"Request.Cancel", Field, 5},
-		{"Request.Close", Field, 0},
-		{"Request.ContentLength", Field, 0},
-		{"Request.Form", Field, 0},
-		{"Request.GetBody", Field, 8},
-		{"Request.Header", Field, 0},
-		{"Request.Host", Field, 0},
-		{"Request.Method", Field, 0},
-		{"Request.MultipartForm", Field, 0},
-		{"Request.Pattern", Field, 23},
-		{"Request.PostForm", Field, 1},
-		{"Request.Proto", Field, 0},
-		{"Request.ProtoMajor", Field, 0},
-		{"Request.ProtoMinor", Field, 0},
-		{"Request.RemoteAddr", Field, 0},
-		{"Request.RequestURI", Field, 0},
-		{"Request.Response", Field, 7},
-		{"Request.TLS", Field, 0},
-		{"Request.Trailer", Field, 0},
-		{"Request.TransferEncoding", Field, 0},
-		{"Request.URL", Field, 0},
-		{"Response", Type, 0},
-		{"Response.Body", Field, 0},
-		{"Response.Close", Field, 0},
-		{"Response.ContentLength", Field, 0},
-		{"Response.Header", Field, 0},
-		{"Response.Proto", Field, 0},
-		{"Response.ProtoMajor", Field, 0},
-		{"Response.ProtoMinor", Field, 0},
-		{"Response.Request", Field, 0},
-		{"Response.Status", Field, 0},
-		{"Response.StatusCode", Field, 0},
-		{"Response.TLS", Field, 3},
-		{"Response.Trailer", Field, 0},
-		{"Response.TransferEncoding", Field, 0},
-		{"Response.Uncompressed", Field, 7},
-		{"ResponseController", Type, 20},
-		{"ResponseWriter", Type, 0},
-		{"RoundTripper", Type, 0},
-		{"SameSite", Type, 11},
-		{"SameSiteDefaultMode", Const, 11},
-		{"SameSiteLaxMode", Const, 11},
-		{"SameSiteNoneMode", Const, 13},
-		{"SameSiteStrictMode", Const, 11},
-		{"Serve", Func, 0},
-		{"ServeContent", Func, 0},
-		{"ServeFile", Func, 0},
-		{"ServeFileFS", Func, 22},
-		{"ServeMux", Type, 0},
-		{"ServeTLS", Func, 9},
-		{"Server", Type, 0},
-		{"Server.Addr", Field, 0},
-		{"Server.BaseContext", Field, 13},
-		{"Server.ConnContext", Field, 13},
-		{"Server.ConnState", Field, 3},
-		{"Server.DisableGeneralOptionsHandler", Field, 20},
-		{"Server.ErrorLog", Field, 3},
-		{"Server.HTTP2", Field, 24},
-		{"Server.Handler", Field, 0},
-		{"Server.IdleTimeout", Field, 8},
-		{"Server.MaxHeaderBytes", Field, 0},
-		{"Server.Protocols", Field, 24},
-		{"Server.ReadHeaderTimeout", Field, 8},
-		{"Server.ReadTimeout", Field, 0},
-		{"Server.TLSConfig", Field, 0},
-		{"Server.TLSNextProto", Field, 1},
-		{"Server.WriteTimeout", Field, 0},
-		{"ServerContextKey", Var, 7},
-		{"SetCookie", Func, 0},
-		{"StateActive", Const, 3},
-		{"StateClosed", Const, 3},
-		{"StateHijacked", Const, 3},
-		{"StateIdle", Const, 3},
-		{"StateNew", Const, 3},
-		{"StatusAccepted", Const, 0},
-		{"StatusAlreadyReported", Const, 7},
-		{"StatusBadGateway", Const, 0},
-		{"StatusBadRequest", Const, 0},
-		{"StatusConflict", Const, 0},
-		{"StatusContinue", Const, 0},
-		{"StatusCreated", Const, 0},
-		{"StatusEarlyHints", Const, 13},
-		{"StatusExpectationFailed", Const, 0},
-		{"StatusFailedDependency", Const, 7},
-		{"StatusForbidden", Const, 0},
-		{"StatusFound", Const, 0},
-		{"StatusGatewayTimeout", Const, 0},
-		{"StatusGone", Const, 0},
-		{"StatusHTTPVersionNotSupported", Const, 0},
-		{"StatusIMUsed", Const, 7},
-		{"StatusInsufficientStorage", Const, 7},
-		{"StatusInternalServerError", Const, 0},
-		{"StatusLengthRequired", Const, 0},
-		{"StatusLocked", Const, 7},
-		{"StatusLoopDetected", Const, 7},
-		{"StatusMethodNotAllowed", Const, 0},
-		{"StatusMisdirectedRequest", Const, 11},
-		{"StatusMovedPermanently", Const, 0},
-		{"StatusMultiStatus", Const, 7},
-		{"StatusMultipleChoices", Const, 0},
-		{"StatusNetworkAuthenticationRequired", Const, 6},
-		{"StatusNoContent", Const, 0},
-		{"StatusNonAuthoritativeInfo", Const, 0},
-		{"StatusNotAcceptable", Const, 0},
-		{"StatusNotExtended", Const, 7},
-		{"StatusNotFound", Const, 0},
-		{"StatusNotImplemented", Const, 0},
-		{"StatusNotModified", Const, 0},
-		{"StatusOK", Const, 0},
-		{"StatusPartialContent", Const, 0},
-		{"StatusPaymentRequired", Const, 0},
-		{"StatusPermanentRedirect", Const, 7},
-		{"StatusPreconditionFailed", Const, 0},
-		{"StatusPreconditionRequired", Const, 6},
-		{"StatusProcessing", Const, 7},
-		{"StatusProxyAuthRequired", Const, 0},
-		{"StatusRequestEntityTooLarge", Const, 0},
-		{"StatusRequestHeaderFieldsTooLarge", Const, 6},
-		{"StatusRequestTimeout", Const, 0},
-		{"StatusRequestURITooLong", Const, 0},
-		{"StatusRequestedRangeNotSatisfiable", Const, 0},
-		{"StatusResetContent", Const, 0},
-		{"StatusSeeOther", Const, 0},
-		{"StatusServiceUnavailable", Const, 0},
-		{"StatusSwitchingProtocols", Const, 0},
-		{"StatusTeapot", Const, 0},
-		{"StatusTemporaryRedirect", Const, 0},
-		{"StatusText", Func, 0},
-		{"StatusTooEarly", Const, 12},
-		{"StatusTooManyRequests", Const, 6},
-		{"StatusUnauthorized", Const, 0},
-		{"StatusUnavailableForLegalReasons", Const, 6},
-		{"StatusUnprocessableEntity", Const, 7},
-		{"StatusUnsupportedMediaType", Const, 0},
-		{"StatusUpgradeRequired", Const, 7},
-		{"StatusUseProxy", Const, 0},
-		{"StatusVariantAlsoNegotiates", Const, 7},
-		{"StripPrefix", Func, 0},
-		{"TimeFormat", Const, 0},
-		{"TimeoutHandler", Func, 0},
-		{"TrailerPrefix", Const, 8},
-		{"Transport", Type, 0},
-		{"Transport.Dial", Field, 0},
-		{"Transport.DialContext", Field, 7},
-		{"Transport.DialTLS", Field, 4},
-		{"Transport.DialTLSContext", Field, 14},
-		{"Transport.DisableCompression", Field, 0},
-		{"Transport.DisableKeepAlives", Field, 0},
-		{"Transport.ExpectContinueTimeout", Field, 6},
-		{"Transport.ForceAttemptHTTP2", Field, 13},
-		{"Transport.GetProxyConnectHeader", Field, 16},
-		{"Transport.HTTP2", Field, 24},
-		{"Transport.IdleConnTimeout", Field, 7},
-		{"Transport.MaxConnsPerHost", Field, 11},
-		{"Transport.MaxIdleConns", Field, 7},
-		{"Transport.MaxIdleConnsPerHost", Field, 0},
-		{"Transport.MaxResponseHeaderBytes", Field, 7},
-		{"Transport.OnProxyConnectResponse", Field, 20},
-		{"Transport.Protocols", Field, 24},
-		{"Transport.Proxy", Field, 0},
-		{"Transport.ProxyConnectHeader", Field, 8},
-		{"Transport.ReadBufferSize", Field, 13},
-		{"Transport.ResponseHeaderTimeout", Field, 1},
-		{"Transport.TLSClientConfig", Field, 0},
-		{"Transport.TLSHandshakeTimeout", Field, 3},
-		{"Transport.TLSNextProto", Field, 6},
-		{"Transport.WriteBufferSize", Field, 13},
+		{"(*Client).CloseIdleConnections", Method, 12, ""},
+		{"(*Client).Do", Method, 0, ""},
+		{"(*Client).Get", Method, 0, ""},
+		{"(*Client).Head", Method, 0, ""},
+		{"(*Client).Post", Method, 0, ""},
+		{"(*Client).PostForm", Method, 0, ""},
+		{"(*Cookie).String", Method, 0, ""},
+		{"(*Cookie).Valid", Method, 18, ""},
+		{"(*CrossOriginProtection).AddInsecureBypassPattern", Method, 25, ""},
+		{"(*CrossOriginProtection).AddTrustedOrigin", Method, 25, ""},
+		{"(*CrossOriginProtection).Check", Method, 25, ""},
+		{"(*CrossOriginProtection).Handler", Method, 25, ""},
+		{"(*CrossOriginProtection).SetDenyHandler", Method, 25, ""},
+		{"(*MaxBytesError).Error", Method, 19, ""},
+		{"(*ProtocolError).Error", Method, 0, ""},
+		{"(*ProtocolError).Is", Method, 21, ""},
+		{"(*Protocols).SetHTTP1", Method, 24, ""},
+		{"(*Protocols).SetHTTP2", Method, 24, ""},
+		{"(*Protocols).SetUnencryptedHTTP2", Method, 24, ""},
+		{"(*Request).AddCookie", Method, 0, ""},
+		{"(*Request).BasicAuth", Method, 4, ""},
+		{"(*Request).Clone", Method, 13, ""},
+		{"(*Request).Context", Method, 7, ""},
+		{"(*Request).Cookie", Method, 0, ""},
+		{"(*Request).Cookies", Method, 0, ""},
+		{"(*Request).CookiesNamed", Method, 23, ""},
+		{"(*Request).FormFile", Method, 0, ""},
+		{"(*Request).FormValue", Method, 0, ""},
+		{"(*Request).MultipartReader", Method, 0, ""},
+		{"(*Request).ParseForm", Method, 0, ""},
+		{"(*Request).ParseMultipartForm", Method, 0, ""},
+		{"(*Request).PathValue", Method, 22, ""},
+		{"(*Request).PostFormValue", Method, 1, ""},
+		{"(*Request).ProtoAtLeast", Method, 0, ""},
+		{"(*Request).Referer", Method, 0, ""},
+		{"(*Request).SetBasicAuth", Method, 0, ""},
+		{"(*Request).SetPathValue", Method, 22, ""},
+		{"(*Request).UserAgent", Method, 0, ""},
+		{"(*Request).WithContext", Method, 7, ""},
+		{"(*Request).Write", Method, 0, ""},
+		{"(*Request).WriteProxy", Method, 0, ""},
+		{"(*Response).Cookies", Method, 0, ""},
+		{"(*Response).Location", Method, 0, ""},
+		{"(*Response).ProtoAtLeast", Method, 0, ""},
+		{"(*Response).Write", Method, 0, ""},
+		{"(*ResponseController).EnableFullDuplex", Method, 21, ""},
+		{"(*ResponseController).Flush", Method, 20, ""},
+		{"(*ResponseController).Hijack", Method, 20, ""},
+		{"(*ResponseController).SetReadDeadline", Method, 20, ""},
+		{"(*ResponseController).SetWriteDeadline", Method, 20, ""},
+		{"(*ServeMux).Handle", Method, 0, ""},
+		{"(*ServeMux).HandleFunc", Method, 0, ""},
+		{"(*ServeMux).Handler", Method, 1, ""},
+		{"(*ServeMux).ServeHTTP", Method, 0, ""},
+		{"(*Server).Close", Method, 8, ""},
+		{"(*Server).ListenAndServe", Method, 0, ""},
+		{"(*Server).ListenAndServeTLS", Method, 0, ""},
+		{"(*Server).RegisterOnShutdown", Method, 9, ""},
+		{"(*Server).Serve", Method, 0, ""},
+		{"(*Server).ServeTLS", Method, 9, ""},
+		{"(*Server).SetKeepAlivesEnabled", Method, 3, ""},
+		{"(*Server).Shutdown", Method, 8, ""},
+		{"(*Transport).CancelRequest", Method, 1, ""},
+		{"(*Transport).Clone", Method, 13, ""},
+		{"(*Transport).CloseIdleConnections", Method, 0, ""},
+		{"(*Transport).RegisterProtocol", Method, 0, ""},
+		{"(*Transport).RoundTrip", Method, 0, ""},
+		{"(ConnState).String", Method, 3, ""},
+		{"(Dir).Open", Method, 0, ""},
+		{"(HandlerFunc).ServeHTTP", Method, 0, ""},
+		{"(Header).Add", Method, 0, ""},
+		{"(Header).Clone", Method, 13, ""},
+		{"(Header).Del", Method, 0, ""},
+		{"(Header).Get", Method, 0, ""},
+		{"(Header).Set", Method, 0, ""},
+		{"(Header).Values", Method, 14, ""},
+		{"(Header).Write", Method, 0, ""},
+		{"(Header).WriteSubset", Method, 0, ""},
+		{"(Protocols).HTTP1", Method, 24, ""},
+		{"(Protocols).HTTP2", Method, 24, ""},
+		{"(Protocols).String", Method, 24, ""},
+		{"(Protocols).UnencryptedHTTP2", Method, 24, ""},
+		{"AllowQuerySemicolons", Func, 17, "func(h Handler) Handler"},
+		{"CanonicalHeaderKey", Func, 0, "func(s string) string"},
+		{"Client", Type, 0, ""},
+		{"Client.CheckRedirect", Field, 0, ""},
+		{"Client.Jar", Field, 0, ""},
+		{"Client.Timeout", Field, 3, ""},
+		{"Client.Transport", Field, 0, ""},
+		{"CloseNotifier", Type, 1, ""},
+		{"ConnState", Type, 3, ""},
+		{"Cookie", Type, 0, ""},
+		{"Cookie.Domain", Field, 0, ""},
+		{"Cookie.Expires", Field, 0, ""},
+		{"Cookie.HttpOnly", Field, 0, ""},
+		{"Cookie.MaxAge", Field, 0, ""},
+		{"Cookie.Name", Field, 0, ""},
+		{"Cookie.Partitioned", Field, 23, ""},
+		{"Cookie.Path", Field, 0, ""},
+		{"Cookie.Quoted", Field, 23, ""},
+		{"Cookie.Raw", Field, 0, ""},
+		{"Cookie.RawExpires", Field, 0, ""},
+		{"Cookie.SameSite", Field, 11, ""},
+		{"Cookie.Secure", Field, 0, ""},
+		{"Cookie.Unparsed", Field, 0, ""},
+		{"Cookie.Value", Field, 0, ""},
+		{"CookieJar", Type, 0, ""},
+		{"CrossOriginProtection", Type, 25, ""},
+		{"DefaultClient", Var, 0, ""},
+		{"DefaultMaxHeaderBytes", Const, 0, ""},
+		{"DefaultMaxIdleConnsPerHost", Const, 0, ""},
+		{"DefaultServeMux", Var, 0, ""},
+		{"DefaultTransport", Var, 0, ""},
+		{"DetectContentType", Func, 0, "func(data []byte) string"},
+		{"Dir", Type, 0, ""},
+		{"ErrAbortHandler", Var, 8, ""},
+		{"ErrBodyNotAllowed", Var, 0, ""},
+		{"ErrBodyReadAfterClose", Var, 0, ""},
+		{"ErrContentLength", Var, 0, ""},
+		{"ErrHandlerTimeout", Var, 0, ""},
+		{"ErrHeaderTooLong", Var, 0, ""},
+		{"ErrHijacked", Var, 0, ""},
+		{"ErrLineTooLong", Var, 0, ""},
+		{"ErrMissingBoundary", Var, 0, ""},
+		{"ErrMissingContentLength", Var, 0, ""},
+		{"ErrMissingFile", Var, 0, ""},
+		{"ErrNoCookie", Var, 0, ""},
+		{"ErrNoLocation", Var, 0, ""},
+		{"ErrNotMultipart", Var, 0, ""},
+		{"ErrNotSupported", Var, 0, ""},
+		{"ErrSchemeMismatch", Var, 21, ""},
+		{"ErrServerClosed", Var, 8, ""},
+		{"ErrShortBody", Var, 0, ""},
+		{"ErrSkipAltProtocol", Var, 6, ""},
+		{"ErrUnexpectedTrailer", Var, 0, ""},
+		{"ErrUseLastResponse", Var, 7, ""},
+		{"ErrWriteAfterFlush", Var, 0, ""},
+		{"Error", Func, 0, "func(w ResponseWriter, error string, code int)"},
+		{"FS", Func, 16, "func(fsys fs.FS) FileSystem"},
+		{"File", Type, 0, ""},
+		{"FileServer", Func, 0, "func(root FileSystem) Handler"},
+		{"FileServerFS", Func, 22, "func(root fs.FS) Handler"},
+		{"FileSystem", Type, 0, ""},
+		{"Flusher", Type, 0, ""},
+		{"Get", Func, 0, "func(url string) (resp *Response, err error)"},
+		{"HTTP2Config", Type, 24, ""},
+		{"HTTP2Config.CountError", Field, 24, ""},
+		{"HTTP2Config.MaxConcurrentStreams", Field, 24, ""},
+		{"HTTP2Config.MaxDecoderHeaderTableSize", Field, 24, ""},
+		{"HTTP2Config.MaxEncoderHeaderTableSize", Field, 24, ""},
+		{"HTTP2Config.MaxReadFrameSize", Field, 24, ""},
+		{"HTTP2Config.MaxReceiveBufferPerConnection", Field, 24, ""},
+		{"HTTP2Config.MaxReceiveBufferPerStream", Field, 24, ""},
+		{"HTTP2Config.PermitProhibitedCipherSuites", Field, 24, ""},
+		{"HTTP2Config.PingTimeout", Field, 24, ""},
+		{"HTTP2Config.SendPingTimeout", Field, 24, ""},
+		{"HTTP2Config.WriteByteTimeout", Field, 24, ""},
+		{"Handle", Func, 0, "func(pattern string, handler Handler)"},
+		{"HandleFunc", Func, 0, "func(pattern string, handler func(ResponseWriter, *Request))"},
+		{"Handler", Type, 0, ""},
+		{"HandlerFunc", Type, 0, ""},
+		{"Head", Func, 0, "func(url string) (resp *Response, err error)"},
+		{"Header", Type, 0, ""},
+		{"Hijacker", Type, 0, ""},
+		{"ListenAndServe", Func, 0, "func(addr string, handler Handler) error"},
+		{"ListenAndServeTLS", Func, 0, "func(addr string, certFile string, keyFile string, handler Handler) error"},
+		{"LocalAddrContextKey", Var, 7, ""},
+		{"MaxBytesError", Type, 19, ""},
+		{"MaxBytesError.Limit", Field, 19, ""},
+		{"MaxBytesHandler", Func, 18, "func(h Handler, n int64) Handler"},
+		{"MaxBytesReader", Func, 0, "func(w ResponseWriter, r io.ReadCloser, n int64) io.ReadCloser"},
+		{"MethodConnect", Const, 6, ""},
+		{"MethodDelete", Const, 6, ""},
+		{"MethodGet", Const, 6, ""},
+		{"MethodHead", Const, 6, ""},
+		{"MethodOptions", Const, 6, ""},
+		{"MethodPatch", Const, 6, ""},
+		{"MethodPost", Const, 6, ""},
+		{"MethodPut", Const, 6, ""},
+		{"MethodTrace", Const, 6, ""},
+		{"NewCrossOriginProtection", Func, 25, "func() *CrossOriginProtection"},
+		{"NewFileTransport", Func, 0, "func(fs FileSystem) RoundTripper"},
+		{"NewFileTransportFS", Func, 22, "func(fsys fs.FS) RoundTripper"},
+		{"NewRequest", Func, 0, "func(method string, url string, body io.Reader) (*Request, error)"},
+		{"NewRequestWithContext", Func, 13, "func(ctx context.Context, method string, url string, body io.Reader) (*Request, error)"},
+		{"NewResponseController", Func, 20, "func(rw ResponseWriter) *ResponseController"},
+		{"NewServeMux", Func, 0, "func() *ServeMux"},
+		{"NoBody", Var, 8, ""},
+		{"NotFound", Func, 0, "func(w ResponseWriter, r *Request)"},
+		{"NotFoundHandler", Func, 0, "func() Handler"},
+		{"ParseCookie", Func, 23, "func(line string) ([]*Cookie, error)"},
+		{"ParseHTTPVersion", Func, 0, "func(vers string) (major int, minor int, ok bool)"},
+		{"ParseSetCookie", Func, 23, "func(line string) (*Cookie, error)"},
+		{"ParseTime", Func, 1, "func(text string) (t time.Time, err error)"},
+		{"Post", Func, 0, "func(url string, contentType string, body io.Reader) (resp *Response, err error)"},
+		{"PostForm", Func, 0, "func(url string, data url.Values) (resp *Response, err error)"},
+		{"ProtocolError", Type, 0, ""},
+		{"ProtocolError.ErrorString", Field, 0, ""},
+		{"Protocols", Type, 24, ""},
+		{"ProxyFromEnvironment", Func, 0, "func(req *Request) (*url.URL, error)"},
+		{"ProxyURL", Func, 0, "func(fixedURL *url.URL) func(*Request) (*url.URL, error)"},
+		{"PushOptions", Type, 8, ""},
+		{"PushOptions.Header", Field, 8, ""},
+		{"PushOptions.Method", Field, 8, ""},
+		{"Pusher", Type, 8, ""},
+		{"ReadRequest", Func, 0, "func(b *bufio.Reader) (*Request, error)"},
+		{"ReadResponse", Func, 0, "func(r *bufio.Reader, req *Request) (*Response, error)"},
+		{"Redirect", Func, 0, "func(w ResponseWriter, r *Request, url string, code int)"},
+		{"RedirectHandler", Func, 0, "func(url string, code int) Handler"},
+		{"Request", Type, 0, ""},
+		{"Request.Body", Field, 0, ""},
+		{"Request.Cancel", Field, 5, ""},
+		{"Request.Close", Field, 0, ""},
+		{"Request.ContentLength", Field, 0, ""},
+		{"Request.Form", Field, 0, ""},
+		{"Request.GetBody", Field, 8, ""},
+		{"Request.Header", Field, 0, ""},
+		{"Request.Host", Field, 0, ""},
+		{"Request.Method", Field, 0, ""},
+		{"Request.MultipartForm", Field, 0, ""},
+		{"Request.Pattern", Field, 23, ""},
+		{"Request.PostForm", Field, 1, ""},
+		{"Request.Proto", Field, 0, ""},
+		{"Request.ProtoMajor", Field, 0, ""},
+		{"Request.ProtoMinor", Field, 0, ""},
+		{"Request.RemoteAddr", Field, 0, ""},
+		{"Request.RequestURI", Field, 0, ""},
+		{"Request.Response", Field, 7, ""},
+		{"Request.TLS", Field, 0, ""},
+		{"Request.Trailer", Field, 0, ""},
+		{"Request.TransferEncoding", Field, 0, ""},
+		{"Request.URL", Field, 0, ""},
+		{"Response", Type, 0, ""},
+		{"Response.Body", Field, 0, ""},
+		{"Response.Close", Field, 0, ""},
+		{"Response.ContentLength", Field, 0, ""},
+		{"Response.Header", Field, 0, ""},
+		{"Response.Proto", Field, 0, ""},
+		{"Response.ProtoMajor", Field, 0, ""},
+		{"Response.ProtoMinor", Field, 0, ""},
+		{"Response.Request", Field, 0, ""},
+		{"Response.Status", Field, 0, ""},
+		{"Response.StatusCode", Field, 0, ""},
+		{"Response.TLS", Field, 3, ""},
+		{"Response.Trailer", Field, 0, ""},
+		{"Response.TransferEncoding", Field, 0, ""},
+		{"Response.Uncompressed", Field, 7, ""},
+		{"ResponseController", Type, 20, ""},
+		{"ResponseWriter", Type, 0, ""},
+		{"RoundTripper", Type, 0, ""},
+		{"SameSite", Type, 11, ""},
+		{"SameSiteDefaultMode", Const, 11, ""},
+		{"SameSiteLaxMode", Const, 11, ""},
+		{"SameSiteNoneMode", Const, 13, ""},
+		{"SameSiteStrictMode", Const, 11, ""},
+		{"Serve", Func, 0, "func(l net.Listener, handler Handler) error"},
+		{"ServeContent", Func, 0, "func(w ResponseWriter, req *Request, name string, modtime time.Time, content io.ReadSeeker)"},
+		{"ServeFile", Func, 0, "func(w ResponseWriter, r *Request, name string)"},
+		{"ServeFileFS", Func, 22, "func(w ResponseWriter, r *Request, fsys fs.FS, name string)"},
+		{"ServeMux", Type, 0, ""},
+		{"ServeTLS", Func, 9, "func(l net.Listener, handler Handler, certFile string, keyFile string) error"},
+		{"Server", Type, 0, ""},
+		{"Server.Addr", Field, 0, ""},
+		{"Server.BaseContext", Field, 13, ""},
+		{"Server.ConnContext", Field, 13, ""},
+		{"Server.ConnState", Field, 3, ""},
+		{"Server.DisableGeneralOptionsHandler", Field, 20, ""},
+		{"Server.ErrorLog", Field, 3, ""},
+		{"Server.HTTP2", Field, 24, ""},
+		{"Server.Handler", Field, 0, ""},
+		{"Server.IdleTimeout", Field, 8, ""},
+		{"Server.MaxHeaderBytes", Field, 0, ""},
+		{"Server.Protocols", Field, 24, ""},
+		{"Server.ReadHeaderTimeout", Field, 8, ""},
+		{"Server.ReadTimeout", Field, 0, ""},
+		{"Server.TLSConfig", Field, 0, ""},
+		{"Server.TLSNextProto", Field, 1, ""},
+		{"Server.WriteTimeout", Field, 0, ""},
+		{"ServerContextKey", Var, 7, ""},
+		{"SetCookie", Func, 0, "func(w ResponseWriter, cookie *Cookie)"},
+		{"StateActive", Const, 3, ""},
+		{"StateClosed", Const, 3, ""},
+		{"StateHijacked", Const, 3, ""},
+		{"StateIdle", Const, 3, ""},
+		{"StateNew", Const, 3, ""},
+		{"StatusAccepted", Const, 0, ""},
+		{"StatusAlreadyReported", Const, 7, ""},
+		{"StatusBadGateway", Const, 0, ""},
+		{"StatusBadRequest", Const, 0, ""},
+		{"StatusConflict", Const, 0, ""},
+		{"StatusContinue", Const, 0, ""},
+		{"StatusCreated", Const, 0, ""},
+		{"StatusEarlyHints", Const, 13, ""},
+		{"StatusExpectationFailed", Const, 0, ""},
+		{"StatusFailedDependency", Const, 7, ""},
+		{"StatusForbidden", Const, 0, ""},
+		{"StatusFound", Const, 0, ""},
+		{"StatusGatewayTimeout", Const, 0, ""},
+		{"StatusGone", Const, 0, ""},
+		{"StatusHTTPVersionNotSupported", Const, 0, ""},
+		{"StatusIMUsed", Const, 7, ""},
+		{"StatusInsufficientStorage", Const, 7, ""},
+		{"StatusInternalServerError", Const, 0, ""},
+		{"StatusLengthRequired", Const, 0, ""},
+		{"StatusLocked", Const, 7, ""},
+		{"StatusLoopDetected", Const, 7, ""},
+		{"StatusMethodNotAllowed", Const, 0, ""},
+		{"StatusMisdirectedRequest", Const, 11, ""},
+		{"StatusMovedPermanently", Const, 0, ""},
+		{"StatusMultiStatus", Const, 7, ""},
+		{"StatusMultipleChoices", Const, 0, ""},
+		{"StatusNetworkAuthenticationRequired", Const, 6, ""},
+		{"StatusNoContent", Const, 0, ""},
+		{"StatusNonAuthoritativeInfo", Const, 0, ""},
+		{"StatusNotAcceptable", Const, 0, ""},
+		{"StatusNotExtended", Const, 7, ""},
+		{"StatusNotFound", Const, 0, ""},
+		{"StatusNotImplemented", Const, 0, ""},
+		{"StatusNotModified", Const, 0, ""},
+		{"StatusOK", Const, 0, ""},
+		{"StatusPartialContent", Const, 0, ""},
+		{"StatusPaymentRequired", Const, 0, ""},
+		{"StatusPermanentRedirect", Const, 7, ""},
+		{"StatusPreconditionFailed", Const, 0, ""},
+		{"StatusPreconditionRequired", Const, 6, ""},
+		{"StatusProcessing", Const, 7, ""},
+		{"StatusProxyAuthRequired", Const, 0, ""},
+		{"StatusRequestEntityTooLarge", Const, 0, ""},
+		{"StatusRequestHeaderFieldsTooLarge", Const, 6, ""},
+		{"StatusRequestTimeout", Const, 0, ""},
+		{"StatusRequestURITooLong", Const, 0, ""},
+		{"StatusRequestedRangeNotSatisfiable", Const, 0, ""},
+		{"StatusResetContent", Const, 0, ""},
+		{"StatusSeeOther", Const, 0, ""},
+		{"StatusServiceUnavailable", Const, 0, ""},
+		{"StatusSwitchingProtocols", Const, 0, ""},
+		{"StatusTeapot", Const, 0, ""},
+		{"StatusTemporaryRedirect", Const, 0, ""},
+		{"StatusText", Func, 0, "func(code int) string"},
+		{"StatusTooEarly", Const, 12, ""},
+		{"StatusTooManyRequests", Const, 6, ""},
+		{"StatusUnauthorized", Const, 0, ""},
+		{"StatusUnavailableForLegalReasons", Const, 6, ""},
+		{"StatusUnprocessableEntity", Const, 7, ""},
+		{"StatusUnsupportedMediaType", Const, 0, ""},
+		{"StatusUpgradeRequired", Const, 7, ""},
+		{"StatusUseProxy", Const, 0, ""},
+		{"StatusVariantAlsoNegotiates", Const, 7, ""},
+		{"StripPrefix", Func, 0, "func(prefix string, h Handler) Handler"},
+		{"TimeFormat", Const, 0, ""},
+		{"TimeoutHandler", Func, 0, "func(h Handler, dt time.Duration, msg string) Handler"},
+		{"TrailerPrefix", Const, 8, ""},
+		{"Transport", Type, 0, ""},
+		{"Transport.Dial", Field, 0, ""},
+		{"Transport.DialContext", Field, 7, ""},
+		{"Transport.DialTLS", Field, 4, ""},
+		{"Transport.DialTLSContext", Field, 14, ""},
+		{"Transport.DisableCompression", Field, 0, ""},
+		{"Transport.DisableKeepAlives", Field, 0, ""},
+		{"Transport.ExpectContinueTimeout", Field, 6, ""},
+		{"Transport.ForceAttemptHTTP2", Field, 13, ""},
+		{"Transport.GetProxyConnectHeader", Field, 16, ""},
+		{"Transport.HTTP2", Field, 24, ""},
+		{"Transport.IdleConnTimeout", Field, 7, ""},
+		{"Transport.MaxConnsPerHost", Field, 11, ""},
+		{"Transport.MaxIdleConns", Field, 7, ""},
+		{"Transport.MaxIdleConnsPerHost", Field, 0, ""},
+		{"Transport.MaxResponseHeaderBytes", Field, 7, ""},
+		{"Transport.OnProxyConnectResponse", Field, 20, ""},
+		{"Transport.Protocols", Field, 24, ""},
+		{"Transport.Proxy", Field, 0, ""},
+		{"Transport.ProxyConnectHeader", Field, 8, ""},
+		{"Transport.ReadBufferSize", Field, 13, ""},
+		{"Transport.ResponseHeaderTimeout", Field, 1, ""},
+		{"Transport.TLSClientConfig", Field, 0, ""},
+		{"Transport.TLSHandshakeTimeout", Field, 3, ""},
+		{"Transport.TLSNextProto", Field, 6, ""},
+		{"Transport.WriteBufferSize", Field, 13, ""},
 	},
 	"net/http/cgi": {
-		{"(*Handler).ServeHTTP", Method, 0},
-		{"Handler", Type, 0},
-		{"Handler.Args", Field, 0},
-		{"Handler.Dir", Field, 0},
-		{"Handler.Env", Field, 0},
-		{"Handler.InheritEnv", Field, 0},
-		{"Handler.Logger", Field, 0},
-		{"Handler.Path", Field, 0},
-		{"Handler.PathLocationHandler", Field, 0},
-		{"Handler.Root", Field, 0},
-		{"Handler.Stderr", Field, 7},
-		{"Request", Func, 0},
-		{"RequestFromMap", Func, 0},
-		{"Serve", Func, 0},
+		{"(*Handler).ServeHTTP", Method, 0, ""},
+		{"Handler", Type, 0, ""},
+		{"Handler.Args", Field, 0, ""},
+		{"Handler.Dir", Field, 0, ""},
+		{"Handler.Env", Field, 0, ""},
+		{"Handler.InheritEnv", Field, 0, ""},
+		{"Handler.Logger", Field, 0, ""},
+		{"Handler.Path", Field, 0, ""},
+		{"Handler.PathLocationHandler", Field, 0, ""},
+		{"Handler.Root", Field, 0, ""},
+		{"Handler.Stderr", Field, 7, ""},
+		{"Request", Func, 0, "func() (*http.Request, error)"},
+		{"RequestFromMap", Func, 0, "func(params map[string]string) (*http.Request, error)"},
+		{"Serve", Func, 0, "func(handler http.Handler) error"},
 	},
 	"net/http/cookiejar": {
-		{"(*Jar).Cookies", Method, 1},
-		{"(*Jar).SetCookies", Method, 1},
-		{"Jar", Type, 1},
-		{"New", Func, 1},
-		{"Options", Type, 1},
-		{"Options.PublicSuffixList", Field, 1},
-		{"PublicSuffixList", Type, 1},
+		{"(*Jar).Cookies", Method, 1, ""},
+		{"(*Jar).SetCookies", Method, 1, ""},
+		{"Jar", Type, 1, ""},
+		{"New", Func, 1, "func(o *Options) (*Jar, error)"},
+		{"Options", Type, 1, ""},
+		{"Options.PublicSuffixList", Field, 1, ""},
+		{"PublicSuffixList", Type, 1, ""},
 	},
 	"net/http/fcgi": {
-		{"ErrConnClosed", Var, 5},
-		{"ErrRequestAborted", Var, 5},
-		{"ProcessEnv", Func, 9},
-		{"Serve", Func, 0},
+		{"ErrConnClosed", Var, 5, ""},
+		{"ErrRequestAborted", Var, 5, ""},
+		{"ProcessEnv", Func, 9, "func(r *http.Request) map[string]string"},
+		{"Serve", Func, 0, "func(l net.Listener, handler http.Handler) error"},
 	},
 	"net/http/httptest": {
-		{"(*ResponseRecorder).Flush", Method, 0},
-		{"(*ResponseRecorder).Header", Method, 0},
-		{"(*ResponseRecorder).Result", Method, 7},
-		{"(*ResponseRecorder).Write", Method, 0},
-		{"(*ResponseRecorder).WriteHeader", Method, 0},
-		{"(*ResponseRecorder).WriteString", Method, 6},
-		{"(*Server).Certificate", Method, 9},
-		{"(*Server).Client", Method, 9},
-		{"(*Server).Close", Method, 0},
-		{"(*Server).CloseClientConnections", Method, 0},
-		{"(*Server).Start", Method, 0},
-		{"(*Server).StartTLS", Method, 0},
-		{"DefaultRemoteAddr", Const, 0},
-		{"NewRecorder", Func, 0},
-		{"NewRequest", Func, 7},
-		{"NewRequestWithContext", Func, 23},
-		{"NewServer", Func, 0},
-		{"NewTLSServer", Func, 0},
-		{"NewUnstartedServer", Func, 0},
-		{"ResponseRecorder", Type, 0},
-		{"ResponseRecorder.Body", Field, 0},
-		{"ResponseRecorder.Code", Field, 0},
-		{"ResponseRecorder.Flushed", Field, 0},
-		{"ResponseRecorder.HeaderMap", Field, 0},
-		{"Server", Type, 0},
-		{"Server.Config", Field, 0},
-		{"Server.EnableHTTP2", Field, 14},
-		{"Server.Listener", Field, 0},
-		{"Server.TLS", Field, 0},
-		{"Server.URL", Field, 0},
+		{"(*ResponseRecorder).Flush", Method, 0, ""},
+		{"(*ResponseRecorder).Header", Method, 0, ""},
+		{"(*ResponseRecorder).Result", Method, 7, ""},
+		{"(*ResponseRecorder).Write", Method, 0, ""},
+		{"(*ResponseRecorder).WriteHeader", Method, 0, ""},
+		{"(*ResponseRecorder).WriteString", Method, 6, ""},
+		{"(*Server).Certificate", Method, 9, ""},
+		{"(*Server).Client", Method, 9, ""},
+		{"(*Server).Close", Method, 0, ""},
+		{"(*Server).CloseClientConnections", Method, 0, ""},
+		{"(*Server).Start", Method, 0, ""},
+		{"(*Server).StartTLS", Method, 0, ""},
+		{"DefaultRemoteAddr", Const, 0, ""},
+		{"NewRecorder", Func, 0, "func() *ResponseRecorder"},
+		{"NewRequest", Func, 7, "func(method string, target string, body io.Reader) *http.Request"},
+		{"NewRequestWithContext", Func, 23, "func(ctx context.Context, method string, target string, body io.Reader) *http.Request"},
+		{"NewServer", Func, 0, "func(handler http.Handler) *Server"},
+		{"NewTLSServer", Func, 0, "func(handler http.Handler) *Server"},
+		{"NewUnstartedServer", Func, 0, "func(handler http.Handler) *Server"},
+		{"ResponseRecorder", Type, 0, ""},
+		{"ResponseRecorder.Body", Field, 0, ""},
+		{"ResponseRecorder.Code", Field, 0, ""},
+		{"ResponseRecorder.Flushed", Field, 0, ""},
+		{"ResponseRecorder.HeaderMap", Field, 0, ""},
+		{"Server", Type, 0, ""},
+		{"Server.Config", Field, 0, ""},
+		{"Server.EnableHTTP2", Field, 14, ""},
+		{"Server.Listener", Field, 0, ""},
+		{"Server.TLS", Field, 0, ""},
+		{"Server.URL", Field, 0, ""},
 	},
 	"net/http/httptrace": {
-		{"ClientTrace", Type, 7},
-		{"ClientTrace.ConnectDone", Field, 7},
-		{"ClientTrace.ConnectStart", Field, 7},
-		{"ClientTrace.DNSDone", Field, 7},
-		{"ClientTrace.DNSStart", Field, 7},
-		{"ClientTrace.GetConn", Field, 7},
-		{"ClientTrace.Got100Continue", Field, 7},
-		{"ClientTrace.Got1xxResponse", Field, 11},
-		{"ClientTrace.GotConn", Field, 7},
-		{"ClientTrace.GotFirstResponseByte", Field, 7},
-		{"ClientTrace.PutIdleConn", Field, 7},
-		{"ClientTrace.TLSHandshakeDone", Field, 8},
-		{"ClientTrace.TLSHandshakeStart", Field, 8},
-		{"ClientTrace.Wait100Continue", Field, 7},
-		{"ClientTrace.WroteHeaderField", Field, 11},
-		{"ClientTrace.WroteHeaders", Field, 7},
-		{"ClientTrace.WroteRequest", Field, 7},
-		{"ContextClientTrace", Func, 7},
-		{"DNSDoneInfo", Type, 7},
-		{"DNSDoneInfo.Addrs", Field, 7},
-		{"DNSDoneInfo.Coalesced", Field, 7},
-		{"DNSDoneInfo.Err", Field, 7},
-		{"DNSStartInfo", Type, 7},
-		{"DNSStartInfo.Host", Field, 7},
-		{"GotConnInfo", Type, 7},
-		{"GotConnInfo.Conn", Field, 7},
-		{"GotConnInfo.IdleTime", Field, 7},
-		{"GotConnInfo.Reused", Field, 7},
-		{"GotConnInfo.WasIdle", Field, 7},
-		{"WithClientTrace", Func, 7},
-		{"WroteRequestInfo", Type, 7},
-		{"WroteRequestInfo.Err", Field, 7},
+		{"ClientTrace", Type, 7, ""},
+		{"ClientTrace.ConnectDone", Field, 7, ""},
+		{"ClientTrace.ConnectStart", Field, 7, ""},
+		{"ClientTrace.DNSDone", Field, 7, ""},
+		{"ClientTrace.DNSStart", Field, 7, ""},
+		{"ClientTrace.GetConn", Field, 7, ""},
+		{"ClientTrace.Got100Continue", Field, 7, ""},
+		{"ClientTrace.Got1xxResponse", Field, 11, ""},
+		{"ClientTrace.GotConn", Field, 7, ""},
+		{"ClientTrace.GotFirstResponseByte", Field, 7, ""},
+		{"ClientTrace.PutIdleConn", Field, 7, ""},
+		{"ClientTrace.TLSHandshakeDone", Field, 8, ""},
+		{"ClientTrace.TLSHandshakeStart", Field, 8, ""},
+		{"ClientTrace.Wait100Continue", Field, 7, ""},
+		{"ClientTrace.WroteHeaderField", Field, 11, ""},
+		{"ClientTrace.WroteHeaders", Field, 7, ""},
+		{"ClientTrace.WroteRequest", Field, 7, ""},
+		{"ContextClientTrace", Func, 7, "func(ctx context.Context) *ClientTrace"},
+		{"DNSDoneInfo", Type, 7, ""},
+		{"DNSDoneInfo.Addrs", Field, 7, ""},
+		{"DNSDoneInfo.Coalesced", Field, 7, ""},
+		{"DNSDoneInfo.Err", Field, 7, ""},
+		{"DNSStartInfo", Type, 7, ""},
+		{"DNSStartInfo.Host", Field, 7, ""},
+		{"GotConnInfo", Type, 7, ""},
+		{"GotConnInfo.Conn", Field, 7, ""},
+		{"GotConnInfo.IdleTime", Field, 7, ""},
+		{"GotConnInfo.Reused", Field, 7, ""},
+		{"GotConnInfo.WasIdle", Field, 7, ""},
+		{"WithClientTrace", Func, 7, "func(ctx context.Context, trace *ClientTrace) context.Context"},
+		{"WroteRequestInfo", Type, 7, ""},
+		{"WroteRequestInfo.Err", Field, 7, ""},
 	},
 	"net/http/httputil": {
-		{"(*ClientConn).Close", Method, 0},
-		{"(*ClientConn).Do", Method, 0},
-		{"(*ClientConn).Hijack", Method, 0},
-		{"(*ClientConn).Pending", Method, 0},
-		{"(*ClientConn).Read", Method, 0},
-		{"(*ClientConn).Write", Method, 0},
-		{"(*ProxyRequest).SetURL", Method, 20},
-		{"(*ProxyRequest).SetXForwarded", Method, 20},
-		{"(*ReverseProxy).ServeHTTP", Method, 0},
-		{"(*ServerConn).Close", Method, 0},
-		{"(*ServerConn).Hijack", Method, 0},
-		{"(*ServerConn).Pending", Method, 0},
-		{"(*ServerConn).Read", Method, 0},
-		{"(*ServerConn).Write", Method, 0},
-		{"BufferPool", Type, 6},
-		{"ClientConn", Type, 0},
-		{"DumpRequest", Func, 0},
-		{"DumpRequestOut", Func, 0},
-		{"DumpResponse", Func, 0},
-		{"ErrClosed", Var, 0},
-		{"ErrLineTooLong", Var, 0},
-		{"ErrPersistEOF", Var, 0},
-		{"ErrPipeline", Var, 0},
-		{"NewChunkedReader", Func, 0},
-		{"NewChunkedWriter", Func, 0},
-		{"NewClientConn", Func, 0},
-		{"NewProxyClientConn", Func, 0},
-		{"NewServerConn", Func, 0},
-		{"NewSingleHostReverseProxy", Func, 0},
-		{"ProxyRequest", Type, 20},
-		{"ProxyRequest.In", Field, 20},
-		{"ProxyRequest.Out", Field, 20},
-		{"ReverseProxy", Type, 0},
-		{"ReverseProxy.BufferPool", Field, 6},
-		{"ReverseProxy.Director", Field, 0},
-		{"ReverseProxy.ErrorHandler", Field, 11},
-		{"ReverseProxy.ErrorLog", Field, 4},
-		{"ReverseProxy.FlushInterval", Field, 0},
-		{"ReverseProxy.ModifyResponse", Field, 8},
-		{"ReverseProxy.Rewrite", Field, 20},
-		{"ReverseProxy.Transport", Field, 0},
-		{"ServerConn", Type, 0},
+		{"(*ClientConn).Close", Method, 0, ""},
+		{"(*ClientConn).Do", Method, 0, ""},
+		{"(*ClientConn).Hijack", Method, 0, ""},
+		{"(*ClientConn).Pending", Method, 0, ""},
+		{"(*ClientConn).Read", Method, 0, ""},
+		{"(*ClientConn).Write", Method, 0, ""},
+		{"(*ProxyRequest).SetURL", Method, 20, ""},
+		{"(*ProxyRequest).SetXForwarded", Method, 20, ""},
+		{"(*ReverseProxy).ServeHTTP", Method, 0, ""},
+		{"(*ServerConn).Close", Method, 0, ""},
+		{"(*ServerConn).Hijack", Method, 0, ""},
+		{"(*ServerConn).Pending", Method, 0, ""},
+		{"(*ServerConn).Read", Method, 0, ""},
+		{"(*ServerConn).Write", Method, 0, ""},
+		{"BufferPool", Type, 6, ""},
+		{"ClientConn", Type, 0, ""},
+		{"DumpRequest", Func, 0, "func(req *http.Request, body bool) ([]byte, error)"},
+		{"DumpRequestOut", Func, 0, "func(req *http.Request, body bool) ([]byte, error)"},
+		{"DumpResponse", Func, 0, "func(resp *http.Response, body bool) ([]byte, error)"},
+		{"ErrClosed", Var, 0, ""},
+		{"ErrLineTooLong", Var, 0, ""},
+		{"ErrPersistEOF", Var, 0, ""},
+		{"ErrPipeline", Var, 0, ""},
+		{"NewChunkedReader", Func, 0, "func(r io.Reader) io.Reader"},
+		{"NewChunkedWriter", Func, 0, "func(w io.Writer) io.WriteCloser"},
+		{"NewClientConn", Func, 0, "func(c net.Conn, r *bufio.Reader) *ClientConn"},
+		{"NewProxyClientConn", Func, 0, "func(c net.Conn, r *bufio.Reader) *ClientConn"},
+		{"NewServerConn", Func, 0, "func(c net.Conn, r *bufio.Reader) *ServerConn"},
+		{"NewSingleHostReverseProxy", Func, 0, "func(target *url.URL) *ReverseProxy"},
+		{"ProxyRequest", Type, 20, ""},
+		{"ProxyRequest.In", Field, 20, ""},
+		{"ProxyRequest.Out", Field, 20, ""},
+		{"ReverseProxy", Type, 0, ""},
+		{"ReverseProxy.BufferPool", Field, 6, ""},
+		{"ReverseProxy.Director", Field, 0, ""},
+		{"ReverseProxy.ErrorHandler", Field, 11, ""},
+		{"ReverseProxy.ErrorLog", Field, 4, ""},
+		{"ReverseProxy.FlushInterval", Field, 0, ""},
+		{"ReverseProxy.ModifyResponse", Field, 8, ""},
+		{"ReverseProxy.Rewrite", Field, 20, ""},
+		{"ReverseProxy.Transport", Field, 0, ""},
+		{"ServerConn", Type, 0, ""},
 	},
 	"net/http/pprof": {
-		{"Cmdline", Func, 0},
-		{"Handler", Func, 0},
-		{"Index", Func, 0},
-		{"Profile", Func, 0},
-		{"Symbol", Func, 0},
-		{"Trace", Func, 5},
+		{"Cmdline", Func, 0, "func(w http.ResponseWriter, r *http.Request)"},
+		{"Handler", Func, 0, "func(name string) http.Handler"},
+		{"Index", Func, 0, "func(w http.ResponseWriter, r *http.Request)"},
+		{"Profile", Func, 0, "func(w http.ResponseWriter, r *http.Request)"},
+		{"Symbol", Func, 0, "func(w http.ResponseWriter, r *http.Request)"},
+		{"Trace", Func, 5, "func(w http.ResponseWriter, r *http.Request)"},
 	},
 	"net/mail": {
-		{"(*Address).String", Method, 0},
-		{"(*AddressParser).Parse", Method, 5},
-		{"(*AddressParser).ParseList", Method, 5},
-		{"(Header).AddressList", Method, 0},
-		{"(Header).Date", Method, 0},
-		{"(Header).Get", Method, 0},
-		{"Address", Type, 0},
-		{"Address.Address", Field, 0},
-		{"Address.Name", Field, 0},
-		{"AddressParser", Type, 5},
-		{"AddressParser.WordDecoder", Field, 5},
-		{"ErrHeaderNotPresent", Var, 0},
-		{"Header", Type, 0},
-		{"Message", Type, 0},
-		{"Message.Body", Field, 0},
-		{"Message.Header", Field, 0},
-		{"ParseAddress", Func, 1},
-		{"ParseAddressList", Func, 1},
-		{"ParseDate", Func, 8},
-		{"ReadMessage", Func, 0},
+		{"(*Address).String", Method, 0, ""},
+		{"(*AddressParser).Parse", Method, 5, ""},
+		{"(*AddressParser).ParseList", Method, 5, ""},
+		{"(Header).AddressList", Method, 0, ""},
+		{"(Header).Date", Method, 0, ""},
+		{"(Header).Get", Method, 0, ""},
+		{"Address", Type, 0, ""},
+		{"Address.Address", Field, 0, ""},
+		{"Address.Name", Field, 0, ""},
+		{"AddressParser", Type, 5, ""},
+		{"AddressParser.WordDecoder", Field, 5, ""},
+		{"ErrHeaderNotPresent", Var, 0, ""},
+		{"Header", Type, 0, ""},
+		{"Message", Type, 0, ""},
+		{"Message.Body", Field, 0, ""},
+		{"Message.Header", Field, 0, ""},
+		{"ParseAddress", Func, 1, "func(address string) (*Address, error)"},
+		{"ParseAddressList", Func, 1, "func(list string) ([]*Address, error)"},
+		{"ParseDate", Func, 8, "func(date string) (time.Time, error)"},
+		{"ReadMessage", Func, 0, "func(r io.Reader) (msg *Message, err error)"},
 	},
 	"net/netip": {
-		{"(*Addr).UnmarshalBinary", Method, 18},
-		{"(*Addr).UnmarshalText", Method, 18},
-		{"(*AddrPort).UnmarshalBinary", Method, 18},
-		{"(*AddrPort).UnmarshalText", Method, 18},
-		{"(*Prefix).UnmarshalBinary", Method, 18},
-		{"(*Prefix).UnmarshalText", Method, 18},
-		{"(Addr).AppendBinary", Method, 24},
-		{"(Addr).AppendText", Method, 24},
-		{"(Addr).AppendTo", Method, 18},
-		{"(Addr).As16", Method, 18},
-		{"(Addr).As4", Method, 18},
-		{"(Addr).AsSlice", Method, 18},
-		{"(Addr).BitLen", Method, 18},
-		{"(Addr).Compare", Method, 18},
-		{"(Addr).Is4", Method, 18},
-		{"(Addr).Is4In6", Method, 18},
-		{"(Addr).Is6", Method, 18},
-		{"(Addr).IsGlobalUnicast", Method, 18},
-		{"(Addr).IsInterfaceLocalMulticast", Method, 18},
-		{"(Addr).IsLinkLocalMulticast", Method, 18},
-		{"(Addr).IsLinkLocalUnicast", Method, 18},
-		{"(Addr).IsLoopback", Method, 18},
-		{"(Addr).IsMulticast", Method, 18},
-		{"(Addr).IsPrivate", Method, 18},
-		{"(Addr).IsUnspecified", Method, 18},
-		{"(Addr).IsValid", Method, 18},
-		{"(Addr).Less", Method, 18},
-		{"(Addr).MarshalBinary", Method, 18},
-		{"(Addr).MarshalText", Method, 18},
-		{"(Addr).Next", Method, 18},
-		{"(Addr).Prefix", Method, 18},
-		{"(Addr).Prev", Method, 18},
-		{"(Addr).String", Method, 18},
-		{"(Addr).StringExpanded", Method, 18},
-		{"(Addr).Unmap", Method, 18},
-		{"(Addr).WithZone", Method, 18},
-		{"(Addr).Zone", Method, 18},
-		{"(AddrPort).Addr", Method, 18},
-		{"(AddrPort).AppendBinary", Method, 24},
-		{"(AddrPort).AppendText", Method, 24},
-		{"(AddrPort).AppendTo", Method, 18},
-		{"(AddrPort).Compare", Method, 22},
-		{"(AddrPort).IsValid", Method, 18},
-		{"(AddrPort).MarshalBinary", Method, 18},
-		{"(AddrPort).MarshalText", Method, 18},
-		{"(AddrPort).Port", Method, 18},
-		{"(AddrPort).String", Method, 18},
-		{"(Prefix).Addr", Method, 18},
-		{"(Prefix).AppendBinary", Method, 24},
-		{"(Prefix).AppendText", Method, 24},
-		{"(Prefix).AppendTo", Method, 18},
-		{"(Prefix).Bits", Method, 18},
-		{"(Prefix).Contains", Method, 18},
-		{"(Prefix).IsSingleIP", Method, 18},
-		{"(Prefix).IsValid", Method, 18},
-		{"(Prefix).MarshalBinary", Method, 18},
-		{"(Prefix).MarshalText", Method, 18},
-		{"(Prefix).Masked", Method, 18},
-		{"(Prefix).Overlaps", Method, 18},
-		{"(Prefix).String", Method, 18},
-		{"Addr", Type, 18},
-		{"AddrFrom16", Func, 18},
-		{"AddrFrom4", Func, 18},
-		{"AddrFromSlice", Func, 18},
-		{"AddrPort", Type, 18},
-		{"AddrPortFrom", Func, 18},
-		{"IPv4Unspecified", Func, 18},
-		{"IPv6LinkLocalAllNodes", Func, 18},
-		{"IPv6LinkLocalAllRouters", Func, 20},
-		{"IPv6Loopback", Func, 20},
-		{"IPv6Unspecified", Func, 18},
-		{"MustParseAddr", Func, 18},
-		{"MustParseAddrPort", Func, 18},
-		{"MustParsePrefix", Func, 18},
-		{"ParseAddr", Func, 18},
-		{"ParseAddrPort", Func, 18},
-		{"ParsePrefix", Func, 18},
-		{"Prefix", Type, 18},
-		{"PrefixFrom", Func, 18},
+		{"(*Addr).UnmarshalBinary", Method, 18, ""},
+		{"(*Addr).UnmarshalText", Method, 18, ""},
+		{"(*AddrPort).UnmarshalBinary", Method, 18, ""},
+		{"(*AddrPort).UnmarshalText", Method, 18, ""},
+		{"(*Prefix).UnmarshalBinary", Method, 18, ""},
+		{"(*Prefix).UnmarshalText", Method, 18, ""},
+		{"(Addr).AppendBinary", Method, 24, ""},
+		{"(Addr).AppendText", Method, 24, ""},
+		{"(Addr).AppendTo", Method, 18, ""},
+		{"(Addr).As16", Method, 18, ""},
+		{"(Addr).As4", Method, 18, ""},
+		{"(Addr).AsSlice", Method, 18, ""},
+		{"(Addr).BitLen", Method, 18, ""},
+		{"(Addr).Compare", Method, 18, ""},
+		{"(Addr).Is4", Method, 18, ""},
+		{"(Addr).Is4In6", Method, 18, ""},
+		{"(Addr).Is6", Method, 18, ""},
+		{"(Addr).IsGlobalUnicast", Method, 18, ""},
+		{"(Addr).IsInterfaceLocalMulticast", Method, 18, ""},
+		{"(Addr).IsLinkLocalMulticast", Method, 18, ""},
+		{"(Addr).IsLinkLocalUnicast", Method, 18, ""},
+		{"(Addr).IsLoopback", Method, 18, ""},
+		{"(Addr).IsMulticast", Method, 18, ""},
+		{"(Addr).IsPrivate", Method, 18, ""},
+		{"(Addr).IsUnspecified", Method, 18, ""},
+		{"(Addr).IsValid", Method, 18, ""},
+		{"(Addr).Less", Method, 18, ""},
+		{"(Addr).MarshalBinary", Method, 18, ""},
+		{"(Addr).MarshalText", Method, 18, ""},
+		{"(Addr).Next", Method, 18, ""},
+		{"(Addr).Prefix", Method, 18, ""},
+		{"(Addr).Prev", Method, 18, ""},
+		{"(Addr).String", Method, 18, ""},
+		{"(Addr).StringExpanded", Method, 18, ""},
+		{"(Addr).Unmap", Method, 18, ""},
+		{"(Addr).WithZone", Method, 18, ""},
+		{"(Addr).Zone", Method, 18, ""},
+		{"(AddrPort).Addr", Method, 18, ""},
+		{"(AddrPort).AppendBinary", Method, 24, ""},
+		{"(AddrPort).AppendText", Method, 24, ""},
+		{"(AddrPort).AppendTo", Method, 18, ""},
+		{"(AddrPort).Compare", Method, 22, ""},
+		{"(AddrPort).IsValid", Method, 18, ""},
+		{"(AddrPort).MarshalBinary", Method, 18, ""},
+		{"(AddrPort).MarshalText", Method, 18, ""},
+		{"(AddrPort).Port", Method, 18, ""},
+		{"(AddrPort).String", Method, 18, ""},
+		{"(Prefix).Addr", Method, 18, ""},
+		{"(Prefix).AppendBinary", Method, 24, ""},
+		{"(Prefix).AppendText", Method, 24, ""},
+		{"(Prefix).AppendTo", Method, 18, ""},
+		{"(Prefix).Bits", Method, 18, ""},
+		{"(Prefix).Contains", Method, 18, ""},
+		{"(Prefix).IsSingleIP", Method, 18, ""},
+		{"(Prefix).IsValid", Method, 18, ""},
+		{"(Prefix).MarshalBinary", Method, 18, ""},
+		{"(Prefix).MarshalText", Method, 18, ""},
+		{"(Prefix).Masked", Method, 18, ""},
+		{"(Prefix).Overlaps", Method, 18, ""},
+		{"(Prefix).String", Method, 18, ""},
+		{"Addr", Type, 18, ""},
+		{"AddrFrom16", Func, 18, "func(addr [16]byte) Addr"},
+		{"AddrFrom4", Func, 18, "func(addr [4]byte) Addr"},
+		{"AddrFromSlice", Func, 18, "func(slice []byte) (ip Addr, ok bool)"},
+		{"AddrPort", Type, 18, ""},
+		{"AddrPortFrom", Func, 18, "func(ip Addr, port uint16) AddrPort"},
+		{"IPv4Unspecified", Func, 18, "func() Addr"},
+		{"IPv6LinkLocalAllNodes", Func, 18, "func() Addr"},
+		{"IPv6LinkLocalAllRouters", Func, 20, "func() Addr"},
+		{"IPv6Loopback", Func, 20, "func() Addr"},
+		{"IPv6Unspecified", Func, 18, "func() Addr"},
+		{"MustParseAddr", Func, 18, "func(s string) Addr"},
+		{"MustParseAddrPort", Func, 18, "func(s string) AddrPort"},
+		{"MustParsePrefix", Func, 18, "func(s string) Prefix"},
+		{"ParseAddr", Func, 18, "func(s string) (Addr, error)"},
+		{"ParseAddrPort", Func, 18, "func(s string) (AddrPort, error)"},
+		{"ParsePrefix", Func, 18, "func(s string) (Prefix, error)"},
+		{"Prefix", Type, 18, ""},
+		{"PrefixFrom", Func, 18, "func(ip Addr, bits int) Prefix"},
 	},
 	"net/rpc": {
-		{"(*Client).Call", Method, 0},
-		{"(*Client).Close", Method, 0},
-		{"(*Client).Go", Method, 0},
-		{"(*Server).Accept", Method, 0},
-		{"(*Server).HandleHTTP", Method, 0},
-		{"(*Server).Register", Method, 0},
-		{"(*Server).RegisterName", Method, 0},
-		{"(*Server).ServeCodec", Method, 0},
-		{"(*Server).ServeConn", Method, 0},
-		{"(*Server).ServeHTTP", Method, 0},
-		{"(*Server).ServeRequest", Method, 0},
-		{"(ServerError).Error", Method, 0},
-		{"Accept", Func, 0},
-		{"Call", Type, 0},
-		{"Call.Args", Field, 0},
-		{"Call.Done", Field, 0},
-		{"Call.Error", Field, 0},
-		{"Call.Reply", Field, 0},
-		{"Call.ServiceMethod", Field, 0},
-		{"Client", Type, 0},
-		{"ClientCodec", Type, 0},
-		{"DefaultDebugPath", Const, 0},
-		{"DefaultRPCPath", Const, 0},
-		{"DefaultServer", Var, 0},
-		{"Dial", Func, 0},
-		{"DialHTTP", Func, 0},
-		{"DialHTTPPath", Func, 0},
-		{"ErrShutdown", Var, 0},
-		{"HandleHTTP", Func, 0},
-		{"NewClient", Func, 0},
-		{"NewClientWithCodec", Func, 0},
-		{"NewServer", Func, 0},
-		{"Register", Func, 0},
-		{"RegisterName", Func, 0},
-		{"Request", Type, 0},
-		{"Request.Seq", Field, 0},
-		{"Request.ServiceMethod", Field, 0},
-		{"Response", Type, 0},
-		{"Response.Error", Field, 0},
-		{"Response.Seq", Field, 0},
-		{"Response.ServiceMethod", Field, 0},
-		{"ServeCodec", Func, 0},
-		{"ServeConn", Func, 0},
-		{"ServeRequest", Func, 0},
-		{"Server", Type, 0},
-		{"ServerCodec", Type, 0},
-		{"ServerError", Type, 0},
+		{"(*Client).Call", Method, 0, ""},
+		{"(*Client).Close", Method, 0, ""},
+		{"(*Client).Go", Method, 0, ""},
+		{"(*Server).Accept", Method, 0, ""},
+		{"(*Server).HandleHTTP", Method, 0, ""},
+		{"(*Server).Register", Method, 0, ""},
+		{"(*Server).RegisterName", Method, 0, ""},
+		{"(*Server).ServeCodec", Method, 0, ""},
+		{"(*Server).ServeConn", Method, 0, ""},
+		{"(*Server).ServeHTTP", Method, 0, ""},
+		{"(*Server).ServeRequest", Method, 0, ""},
+		{"(ServerError).Error", Method, 0, ""},
+		{"Accept", Func, 0, "func(lis net.Listener)"},
+		{"Call", Type, 0, ""},
+		{"Call.Args", Field, 0, ""},
+		{"Call.Done", Field, 0, ""},
+		{"Call.Error", Field, 0, ""},
+		{"Call.Reply", Field, 0, ""},
+		{"Call.ServiceMethod", Field, 0, ""},
+		{"Client", Type, 0, ""},
+		{"ClientCodec", Type, 0, ""},
+		{"DefaultDebugPath", Const, 0, ""},
+		{"DefaultRPCPath", Const, 0, ""},
+		{"DefaultServer", Var, 0, ""},
+		{"Dial", Func, 0, "func(network string, address string) (*Client, error)"},
+		{"DialHTTP", Func, 0, "func(network string, address string) (*Client, error)"},
+		{"DialHTTPPath", Func, 0, "func(network string, address string, path string) (*Client, error)"},
+		{"ErrShutdown", Var, 0, ""},
+		{"HandleHTTP", Func, 0, "func()"},
+		{"NewClient", Func, 0, "func(conn io.ReadWriteCloser) *Client"},
+		{"NewClientWithCodec", Func, 0, "func(codec ClientCodec) *Client"},
+		{"NewServer", Func, 0, "func() *Server"},
+		{"Register", Func, 0, "func(rcvr any) error"},
+		{"RegisterName", Func, 0, "func(name string, rcvr any) error"},
+		{"Request", Type, 0, ""},
+		{"Request.Seq", Field, 0, ""},
+		{"Request.ServiceMethod", Field, 0, ""},
+		{"Response", Type, 0, ""},
+		{"Response.Error", Field, 0, ""},
+		{"Response.Seq", Field, 0, ""},
+		{"Response.ServiceMethod", Field, 0, ""},
+		{"ServeCodec", Func, 0, "func(codec ServerCodec)"},
+		{"ServeConn", Func, 0, "func(conn io.ReadWriteCloser)"},
+		{"ServeRequest", Func, 0, "func(codec ServerCodec) error"},
+		{"Server", Type, 0, ""},
+		{"ServerCodec", Type, 0, ""},
+		{"ServerError", Type, 0, ""},
 	},
 	"net/rpc/jsonrpc": {
-		{"Dial", Func, 0},
-		{"NewClient", Func, 0},
-		{"NewClientCodec", Func, 0},
-		{"NewServerCodec", Func, 0},
-		{"ServeConn", Func, 0},
+		{"Dial", Func, 0, "func(network string, address string) (*rpc.Client, error)"},
+		{"NewClient", Func, 0, "func(conn io.ReadWriteCloser) *rpc.Client"},
+		{"NewClientCodec", Func, 0, "func(conn io.ReadWriteCloser) rpc.ClientCodec"},
+		{"NewServerCodec", Func, 0, "func(conn io.ReadWriteCloser) rpc.ServerCodec"},
+		{"ServeConn", Func, 0, "func(conn io.ReadWriteCloser)"},
 	},
 	"net/smtp": {
-		{"(*Client).Auth", Method, 0},
-		{"(*Client).Close", Method, 2},
-		{"(*Client).Data", Method, 0},
-		{"(*Client).Extension", Method, 0},
-		{"(*Client).Hello", Method, 1},
-		{"(*Client).Mail", Method, 0},
-		{"(*Client).Noop", Method, 10},
-		{"(*Client).Quit", Method, 0},
-		{"(*Client).Rcpt", Method, 0},
-		{"(*Client).Reset", Method, 0},
-		{"(*Client).StartTLS", Method, 0},
-		{"(*Client).TLSConnectionState", Method, 5},
-		{"(*Client).Verify", Method, 0},
-		{"Auth", Type, 0},
-		{"CRAMMD5Auth", Func, 0},
-		{"Client", Type, 0},
-		{"Client.Text", Field, 0},
-		{"Dial", Func, 0},
-		{"NewClient", Func, 0},
-		{"PlainAuth", Func, 0},
-		{"SendMail", Func, 0},
-		{"ServerInfo", Type, 0},
-		{"ServerInfo.Auth", Field, 0},
-		{"ServerInfo.Name", Field, 0},
-		{"ServerInfo.TLS", Field, 0},
+		{"(*Client).Auth", Method, 0, ""},
+		{"(*Client).Close", Method, 2, ""},
+		{"(*Client).Data", Method, 0, ""},
+		{"(*Client).Extension", Method, 0, ""},
+		{"(*Client).Hello", Method, 1, ""},
+		{"(*Client).Mail", Method, 0, ""},
+		{"(*Client).Noop", Method, 10, ""},
+		{"(*Client).Quit", Method, 0, ""},
+		{"(*Client).Rcpt", Method, 0, ""},
+		{"(*Client).Reset", Method, 0, ""},
+		{"(*Client).StartTLS", Method, 0, ""},
+		{"(*Client).TLSConnectionState", Method, 5, ""},
+		{"(*Client).Verify", Method, 0, ""},
+		{"Auth", Type, 0, ""},
+		{"CRAMMD5Auth", Func, 0, "func(username string, secret string) Auth"},
+		{"Client", Type, 0, ""},
+		{"Client.Text", Field, 0, ""},
+		{"Dial", Func, 0, "func(addr string) (*Client, error)"},
+		{"NewClient", Func, 0, "func(conn net.Conn, host string) (*Client, error)"},
+		{"PlainAuth", Func, 0, "func(identity string, username string, password string, host string) Auth"},
+		{"SendMail", Func, 0, "func(addr string, a Auth, from string, to []string, msg []byte) error"},
+		{"ServerInfo", Type, 0, ""},
+		{"ServerInfo.Auth", Field, 0, ""},
+		{"ServerInfo.Name", Field, 0, ""},
+		{"ServerInfo.TLS", Field, 0, ""},
 	},
 	"net/textproto": {
-		{"(*Conn).Close", Method, 0},
-		{"(*Conn).Cmd", Method, 0},
-		{"(*Conn).DotReader", Method, 0},
-		{"(*Conn).DotWriter", Method, 0},
-		{"(*Conn).EndRequest", Method, 0},
-		{"(*Conn).EndResponse", Method, 0},
-		{"(*Conn).Next", Method, 0},
-		{"(*Conn).PrintfLine", Method, 0},
-		{"(*Conn).ReadCodeLine", Method, 0},
-		{"(*Conn).ReadContinuedLine", Method, 0},
-		{"(*Conn).ReadContinuedLineBytes", Method, 0},
-		{"(*Conn).ReadDotBytes", Method, 0},
-		{"(*Conn).ReadDotLines", Method, 0},
-		{"(*Conn).ReadLine", Method, 0},
-		{"(*Conn).ReadLineBytes", Method, 0},
-		{"(*Conn).ReadMIMEHeader", Method, 0},
-		{"(*Conn).ReadResponse", Method, 0},
-		{"(*Conn).StartRequest", Method, 0},
-		{"(*Conn).StartResponse", Method, 0},
-		{"(*Error).Error", Method, 0},
-		{"(*Pipeline).EndRequest", Method, 0},
-		{"(*Pipeline).EndResponse", Method, 0},
-		{"(*Pipeline).Next", Method, 0},
-		{"(*Pipeline).StartRequest", Method, 0},
-		{"(*Pipeline).StartResponse", Method, 0},
-		{"(*Reader).DotReader", Method, 0},
-		{"(*Reader).ReadCodeLine", Method, 0},
-		{"(*Reader).ReadContinuedLine", Method, 0},
-		{"(*Reader).ReadContinuedLineBytes", Method, 0},
-		{"(*Reader).ReadDotBytes", Method, 0},
-		{"(*Reader).ReadDotLines", Method, 0},
-		{"(*Reader).ReadLine", Method, 0},
-		{"(*Reader).ReadLineBytes", Method, 0},
-		{"(*Reader).ReadMIMEHeader", Method, 0},
-		{"(*Reader).ReadResponse", Method, 0},
-		{"(*Writer).DotWriter", Method, 0},
-		{"(*Writer).PrintfLine", Method, 0},
-		{"(MIMEHeader).Add", Method, 0},
-		{"(MIMEHeader).Del", Method, 0},
-		{"(MIMEHeader).Get", Method, 0},
-		{"(MIMEHeader).Set", Method, 0},
-		{"(MIMEHeader).Values", Method, 14},
-		{"(ProtocolError).Error", Method, 0},
-		{"CanonicalMIMEHeaderKey", Func, 0},
-		{"Conn", Type, 0},
-		{"Conn.Pipeline", Field, 0},
-		{"Conn.Reader", Field, 0},
-		{"Conn.Writer", Field, 0},
-		{"Dial", Func, 0},
-		{"Error", Type, 0},
-		{"Error.Code", Field, 0},
-		{"Error.Msg", Field, 0},
-		{"MIMEHeader", Type, 0},
-		{"NewConn", Func, 0},
-		{"NewReader", Func, 0},
-		{"NewWriter", Func, 0},
-		{"Pipeline", Type, 0},
-		{"ProtocolError", Type, 0},
-		{"Reader", Type, 0},
-		{"Reader.R", Field, 0},
-		{"TrimBytes", Func, 1},
-		{"TrimString", Func, 1},
-		{"Writer", Type, 0},
-		{"Writer.W", Field, 0},
+		{"(*Conn).Close", Method, 0, ""},
+		{"(*Conn).Cmd", Method, 0, ""},
+		{"(*Conn).DotReader", Method, 0, ""},
+		{"(*Conn).DotWriter", Method, 0, ""},
+		{"(*Conn).EndRequest", Method, 0, ""},
+		{"(*Conn).EndResponse", Method, 0, ""},
+		{"(*Conn).Next", Method, 0, ""},
+		{"(*Conn).PrintfLine", Method, 0, ""},
+		{"(*Conn).ReadCodeLine", Method, 0, ""},
+		{"(*Conn).ReadContinuedLine", Method, 0, ""},
+		{"(*Conn).ReadContinuedLineBytes", Method, 0, ""},
+		{"(*Conn).ReadDotBytes", Method, 0, ""},
+		{"(*Conn).ReadDotLines", Method, 0, ""},
+		{"(*Conn).ReadLine", Method, 0, ""},
+		{"(*Conn).ReadLineBytes", Method, 0, ""},
+		{"(*Conn).ReadMIMEHeader", Method, 0, ""},
+		{"(*Conn).ReadResponse", Method, 0, ""},
+		{"(*Conn).StartRequest", Method, 0, ""},
+		{"(*Conn).StartResponse", Method, 0, ""},
+		{"(*Error).Error", Method, 0, ""},
+		{"(*Pipeline).EndRequest", Method, 0, ""},
+		{"(*Pipeline).EndResponse", Method, 0, ""},
+		{"(*Pipeline).Next", Method, 0, ""},
+		{"(*Pipeline).StartRequest", Method, 0, ""},
+		{"(*Pipeline).StartResponse", Method, 0, ""},
+		{"(*Reader).DotReader", Method, 0, ""},
+		{"(*Reader).ReadCodeLine", Method, 0, ""},
+		{"(*Reader).ReadContinuedLine", Method, 0, ""},
+		{"(*Reader).ReadContinuedLineBytes", Method, 0, ""},
+		{"(*Reader).ReadDotBytes", Method, 0, ""},
+		{"(*Reader).ReadDotLines", Method, 0, ""},
+		{"(*Reader).ReadLine", Method, 0, ""},
+		{"(*Reader).ReadLineBytes", Method, 0, ""},
+		{"(*Reader).ReadMIMEHeader", Method, 0, ""},
+		{"(*Reader).ReadResponse", Method, 0, ""},
+		{"(*Writer).DotWriter", Method, 0, ""},
+		{"(*Writer).PrintfLine", Method, 0, ""},
+		{"(MIMEHeader).Add", Method, 0, ""},
+		{"(MIMEHeader).Del", Method, 0, ""},
+		{"(MIMEHeader).Get", Method, 0, ""},
+		{"(MIMEHeader).Set", Method, 0, ""},
+		{"(MIMEHeader).Values", Method, 14, ""},
+		{"(ProtocolError).Error", Method, 0, ""},
+		{"CanonicalMIMEHeaderKey", Func, 0, "func(s string) string"},
+		{"Conn", Type, 0, ""},
+		{"Conn.Pipeline", Field, 0, ""},
+		{"Conn.Reader", Field, 0, ""},
+		{"Conn.Writer", Field, 0, ""},
+		{"Dial", Func, 0, "func(network string, addr string) (*Conn, error)"},
+		{"Error", Type, 0, ""},
+		{"Error.Code", Field, 0, ""},
+		{"Error.Msg", Field, 0, ""},
+		{"MIMEHeader", Type, 0, ""},
+		{"NewConn", Func, 0, "func(conn io.ReadWriteCloser) *Conn"},
+		{"NewReader", Func, 0, "func(r *bufio.Reader) *Reader"},
+		{"NewWriter", Func, 0, "func(w *bufio.Writer) *Writer"},
+		{"Pipeline", Type, 0, ""},
+		{"ProtocolError", Type, 0, ""},
+		{"Reader", Type, 0, ""},
+		{"Reader.R", Field, 0, ""},
+		{"TrimBytes", Func, 1, "func(b []byte) []byte"},
+		{"TrimString", Func, 1, "func(s string) string"},
+		{"Writer", Type, 0, ""},
+		{"Writer.W", Field, 0, ""},
 	},
 	"net/url": {
-		{"(*Error).Error", Method, 0},
-		{"(*Error).Temporary", Method, 6},
-		{"(*Error).Timeout", Method, 6},
-		{"(*Error).Unwrap", Method, 13},
-		{"(*URL).AppendBinary", Method, 24},
-		{"(*URL).EscapedFragment", Method, 15},
-		{"(*URL).EscapedPath", Method, 5},
-		{"(*URL).Hostname", Method, 8},
-		{"(*URL).IsAbs", Method, 0},
-		{"(*URL).JoinPath", Method, 19},
-		{"(*URL).MarshalBinary", Method, 8},
-		{"(*URL).Parse", Method, 0},
-		{"(*URL).Port", Method, 8},
-		{"(*URL).Query", Method, 0},
-		{"(*URL).Redacted", Method, 15},
-		{"(*URL).RequestURI", Method, 0},
-		{"(*URL).ResolveReference", Method, 0},
-		{"(*URL).String", Method, 0},
-		{"(*URL).UnmarshalBinary", Method, 8},
-		{"(*Userinfo).Password", Method, 0},
-		{"(*Userinfo).String", Method, 0},
-		{"(*Userinfo).Username", Method, 0},
-		{"(EscapeError).Error", Method, 0},
-		{"(InvalidHostError).Error", Method, 6},
-		{"(Values).Add", Method, 0},
-		{"(Values).Del", Method, 0},
-		{"(Values).Encode", Method, 0},
-		{"(Values).Get", Method, 0},
-		{"(Values).Has", Method, 17},
-		{"(Values).Set", Method, 0},
-		{"Error", Type, 0},
-		{"Error.Err", Field, 0},
-		{"Error.Op", Field, 0},
-		{"Error.URL", Field, 0},
-		{"EscapeError", Type, 0},
-		{"InvalidHostError", Type, 6},
-		{"JoinPath", Func, 19},
-		{"Parse", Func, 0},
-		{"ParseQuery", Func, 0},
-		{"ParseRequestURI", Func, 0},
-		{"PathEscape", Func, 8},
-		{"PathUnescape", Func, 8},
-		{"QueryEscape", Func, 0},
-		{"QueryUnescape", Func, 0},
-		{"URL", Type, 0},
-		{"URL.ForceQuery", Field, 7},
-		{"URL.Fragment", Field, 0},
-		{"URL.Host", Field, 0},
-		{"URL.OmitHost", Field, 19},
-		{"URL.Opaque", Field, 0},
-		{"URL.Path", Field, 0},
-		{"URL.RawFragment", Field, 15},
-		{"URL.RawPath", Field, 5},
-		{"URL.RawQuery", Field, 0},
-		{"URL.Scheme", Field, 0},
-		{"URL.User", Field, 0},
-		{"User", Func, 0},
-		{"UserPassword", Func, 0},
-		{"Userinfo", Type, 0},
-		{"Values", Type, 0},
+		{"(*Error).Error", Method, 0, ""},
+		{"(*Error).Temporary", Method, 6, ""},
+		{"(*Error).Timeout", Method, 6, ""},
+		{"(*Error).Unwrap", Method, 13, ""},
+		{"(*URL).AppendBinary", Method, 24, ""},
+		{"(*URL).EscapedFragment", Method, 15, ""},
+		{"(*URL).EscapedPath", Method, 5, ""},
+		{"(*URL).Hostname", Method, 8, ""},
+		{"(*URL).IsAbs", Method, 0, ""},
+		{"(*URL).JoinPath", Method, 19, ""},
+		{"(*URL).MarshalBinary", Method, 8, ""},
+		{"(*URL).Parse", Method, 0, ""},
+		{"(*URL).Port", Method, 8, ""},
+		{"(*URL).Query", Method, 0, ""},
+		{"(*URL).Redacted", Method, 15, ""},
+		{"(*URL).RequestURI", Method, 0, ""},
+		{"(*URL).ResolveReference", Method, 0, ""},
+		{"(*URL).String", Method, 0, ""},
+		{"(*URL).UnmarshalBinary", Method, 8, ""},
+		{"(*Userinfo).Password", Method, 0, ""},
+		{"(*Userinfo).String", Method, 0, ""},
+		{"(*Userinfo).Username", Method, 0, ""},
+		{"(EscapeError).Error", Method, 0, ""},
+		{"(InvalidHostError).Error", Method, 6, ""},
+		{"(Values).Add", Method, 0, ""},
+		{"(Values).Del", Method, 0, ""},
+		{"(Values).Encode", Method, 0, ""},
+		{"(Values).Get", Method, 0, ""},
+		{"(Values).Has", Method, 17, ""},
+		{"(Values).Set", Method, 0, ""},
+		{"Error", Type, 0, ""},
+		{"Error.Err", Field, 0, ""},
+		{"Error.Op", Field, 0, ""},
+		{"Error.URL", Field, 0, ""},
+		{"EscapeError", Type, 0, ""},
+		{"InvalidHostError", Type, 6, ""},
+		{"JoinPath", Func, 19, "func(base string, elem ...string) (result string, err error)"},
+		{"Parse", Func, 0, "func(rawURL string) (*URL, error)"},
+		{"ParseQuery", Func, 0, "func(query string) (Values, error)"},
+		{"ParseRequestURI", Func, 0, "func(rawURL string) (*URL, error)"},
+		{"PathEscape", Func, 8, "func(s string) string"},
+		{"PathUnescape", Func, 8, "func(s string) (string, error)"},
+		{"QueryEscape", Func, 0, "func(s string) string"},
+		{"QueryUnescape", Func, 0, "func(s string) (string, error)"},
+		{"URL", Type, 0, ""},
+		{"URL.ForceQuery", Field, 7, ""},
+		{"URL.Fragment", Field, 0, ""},
+		{"URL.Host", Field, 0, ""},
+		{"URL.OmitHost", Field, 19, ""},
+		{"URL.Opaque", Field, 0, ""},
+		{"URL.Path", Field, 0, ""},
+		{"URL.RawFragment", Field, 15, ""},
+		{"URL.RawPath", Field, 5, ""},
+		{"URL.RawQuery", Field, 0, ""},
+		{"URL.Scheme", Field, 0, ""},
+		{"URL.User", Field, 0, ""},
+		{"User", Func, 0, "func(username string) *Userinfo"},
+		{"UserPassword", Func, 0, "func(username string, password string) *Userinfo"},
+		{"Userinfo", Type, 0, ""},
+		{"Values", Type, 0, ""},
 	},
 	"os": {
-		{"(*File).Chdir", Method, 0},
-		{"(*File).Chmod", Method, 0},
-		{"(*File).Chown", Method, 0},
-		{"(*File).Close", Method, 0},
-		{"(*File).Fd", Method, 0},
-		{"(*File).Name", Method, 0},
-		{"(*File).Read", Method, 0},
-		{"(*File).ReadAt", Method, 0},
-		{"(*File).ReadDir", Method, 16},
-		{"(*File).ReadFrom", Method, 15},
-		{"(*File).Readdir", Method, 0},
-		{"(*File).Readdirnames", Method, 0},
-		{"(*File).Seek", Method, 0},
-		{"(*File).SetDeadline", Method, 10},
-		{"(*File).SetReadDeadline", Method, 10},
-		{"(*File).SetWriteDeadline", Method, 10},
-		{"(*File).Stat", Method, 0},
-		{"(*File).Sync", Method, 0},
-		{"(*File).SyscallConn", Method, 12},
-		{"(*File).Truncate", Method, 0},
-		{"(*File).Write", Method, 0},
-		{"(*File).WriteAt", Method, 0},
-		{"(*File).WriteString", Method, 0},
-		{"(*File).WriteTo", Method, 22},
-		{"(*LinkError).Error", Method, 0},
-		{"(*LinkError).Unwrap", Method, 13},
-		{"(*PathError).Error", Method, 0},
-		{"(*PathError).Timeout", Method, 10},
-		{"(*PathError).Unwrap", Method, 13},
-		{"(*Process).Kill", Method, 0},
-		{"(*Process).Release", Method, 0},
-		{"(*Process).Signal", Method, 0},
-		{"(*Process).Wait", Method, 0},
-		{"(*ProcessState).ExitCode", Method, 12},
-		{"(*ProcessState).Exited", Method, 0},
-		{"(*ProcessState).Pid", Method, 0},
-		{"(*ProcessState).String", Method, 0},
-		{"(*ProcessState).Success", Method, 0},
-		{"(*ProcessState).Sys", Method, 0},
-		{"(*ProcessState).SysUsage", Method, 0},
-		{"(*ProcessState).SystemTime", Method, 0},
-		{"(*ProcessState).UserTime", Method, 0},
-		{"(*Root).Close", Method, 24},
-		{"(*Root).Create", Method, 24},
-		{"(*Root).FS", Method, 24},
-		{"(*Root).Lstat", Method, 24},
-		{"(*Root).Mkdir", Method, 24},
-		{"(*Root).Name", Method, 24},
-		{"(*Root).Open", Method, 24},
-		{"(*Root).OpenFile", Method, 24},
-		{"(*Root).OpenRoot", Method, 24},
-		{"(*Root).Remove", Method, 24},
-		{"(*Root).Stat", Method, 24},
-		{"(*SyscallError).Error", Method, 0},
-		{"(*SyscallError).Timeout", Method, 10},
-		{"(*SyscallError).Unwrap", Method, 13},
-		{"(FileMode).IsDir", Method, 0},
-		{"(FileMode).IsRegular", Method, 1},
-		{"(FileMode).Perm", Method, 0},
-		{"(FileMode).String", Method, 0},
-		{"Args", Var, 0},
-		{"Chdir", Func, 0},
-		{"Chmod", Func, 0},
-		{"Chown", Func, 0},
-		{"Chtimes", Func, 0},
-		{"Clearenv", Func, 0},
-		{"CopyFS", Func, 23},
-		{"Create", Func, 0},
-		{"CreateTemp", Func, 16},
-		{"DevNull", Const, 0},
-		{"DirEntry", Type, 16},
-		{"DirFS", Func, 16},
-		{"Environ", Func, 0},
-		{"ErrClosed", Var, 8},
-		{"ErrDeadlineExceeded", Var, 15},
-		{"ErrExist", Var, 0},
-		{"ErrInvalid", Var, 0},
-		{"ErrNoDeadline", Var, 10},
-		{"ErrNotExist", Var, 0},
-		{"ErrPermission", Var, 0},
-		{"ErrProcessDone", Var, 16},
-		{"Executable", Func, 8},
-		{"Exit", Func, 0},
-		{"Expand", Func, 0},
-		{"ExpandEnv", Func, 0},
-		{"File", Type, 0},
-		{"FileInfo", Type, 0},
-		{"FileMode", Type, 0},
-		{"FindProcess", Func, 0},
-		{"Getegid", Func, 0},
-		{"Getenv", Func, 0},
-		{"Geteuid", Func, 0},
-		{"Getgid", Func, 0},
-		{"Getgroups", Func, 0},
-		{"Getpagesize", Func, 0},
-		{"Getpid", Func, 0},
-		{"Getppid", Func, 0},
-		{"Getuid", Func, 0},
-		{"Getwd", Func, 0},
-		{"Hostname", Func, 0},
-		{"Interrupt", Var, 0},
-		{"IsExist", Func, 0},
-		{"IsNotExist", Func, 0},
-		{"IsPathSeparator", Func, 0},
-		{"IsPermission", Func, 0},
-		{"IsTimeout", Func, 10},
-		{"Kill", Var, 0},
-		{"Lchown", Func, 0},
-		{"Link", Func, 0},
-		{"LinkError", Type, 0},
-		{"LinkError.Err", Field, 0},
-		{"LinkError.New", Field, 0},
-		{"LinkError.Old", Field, 0},
-		{"LinkError.Op", Field, 0},
-		{"LookupEnv", Func, 5},
-		{"Lstat", Func, 0},
-		{"Mkdir", Func, 0},
-		{"MkdirAll", Func, 0},
-		{"MkdirTemp", Func, 16},
-		{"ModeAppend", Const, 0},
-		{"ModeCharDevice", Const, 0},
-		{"ModeDevice", Const, 0},
-		{"ModeDir", Const, 0},
-		{"ModeExclusive", Const, 0},
-		{"ModeIrregular", Const, 11},
-		{"ModeNamedPipe", Const, 0},
-		{"ModePerm", Const, 0},
-		{"ModeSetgid", Const, 0},
-		{"ModeSetuid", Const, 0},
-		{"ModeSocket", Const, 0},
-		{"ModeSticky", Const, 0},
-		{"ModeSymlink", Const, 0},
-		{"ModeTemporary", Const, 0},
-		{"ModeType", Const, 0},
-		{"NewFile", Func, 0},
-		{"NewSyscallError", Func, 0},
-		{"O_APPEND", Const, 0},
-		{"O_CREATE", Const, 0},
-		{"O_EXCL", Const, 0},
-		{"O_RDONLY", Const, 0},
-		{"O_RDWR", Const, 0},
-		{"O_SYNC", Const, 0},
-		{"O_TRUNC", Const, 0},
-		{"O_WRONLY", Const, 0},
-		{"Open", Func, 0},
-		{"OpenFile", Func, 0},
-		{"OpenInRoot", Func, 24},
-		{"OpenRoot", Func, 24},
-		{"PathError", Type, 0},
-		{"PathError.Err", Field, 0},
-		{"PathError.Op", Field, 0},
-		{"PathError.Path", Field, 0},
-		{"PathListSeparator", Const, 0},
-		{"PathSeparator", Const, 0},
-		{"Pipe", Func, 0},
-		{"ProcAttr", Type, 0},
-		{"ProcAttr.Dir", Field, 0},
-		{"ProcAttr.Env", Field, 0},
-		{"ProcAttr.Files", Field, 0},
-		{"ProcAttr.Sys", Field, 0},
-		{"Process", Type, 0},
-		{"Process.Pid", Field, 0},
-		{"ProcessState", Type, 0},
-		{"ReadDir", Func, 16},
-		{"ReadFile", Func, 16},
-		{"Readlink", Func, 0},
-		{"Remove", Func, 0},
-		{"RemoveAll", Func, 0},
-		{"Rename", Func, 0},
-		{"Root", Type, 24},
-		{"SEEK_CUR", Const, 0},
-		{"SEEK_END", Const, 0},
-		{"SEEK_SET", Const, 0},
-		{"SameFile", Func, 0},
-		{"Setenv", Func, 0},
-		{"Signal", Type, 0},
-		{"StartProcess", Func, 0},
-		{"Stat", Func, 0},
-		{"Stderr", Var, 0},
-		{"Stdin", Var, 0},
-		{"Stdout", Var, 0},
-		{"Symlink", Func, 0},
-		{"SyscallError", Type, 0},
-		{"SyscallError.Err", Field, 0},
-		{"SyscallError.Syscall", Field, 0},
-		{"TempDir", Func, 0},
-		{"Truncate", Func, 0},
-		{"Unsetenv", Func, 4},
-		{"UserCacheDir", Func, 11},
-		{"UserConfigDir", Func, 13},
-		{"UserHomeDir", Func, 12},
-		{"WriteFile", Func, 16},
+		{"(*File).Chdir", Method, 0, ""},
+		{"(*File).Chmod", Method, 0, ""},
+		{"(*File).Chown", Method, 0, ""},
+		{"(*File).Close", Method, 0, ""},
+		{"(*File).Fd", Method, 0, ""},
+		{"(*File).Name", Method, 0, ""},
+		{"(*File).Read", Method, 0, ""},
+		{"(*File).ReadAt", Method, 0, ""},
+		{"(*File).ReadDir", Method, 16, ""},
+		{"(*File).ReadFrom", Method, 15, ""},
+		{"(*File).Readdir", Method, 0, ""},
+		{"(*File).Readdirnames", Method, 0, ""},
+		{"(*File).Seek", Method, 0, ""},
+		{"(*File).SetDeadline", Method, 10, ""},
+		{"(*File).SetReadDeadline", Method, 10, ""},
+		{"(*File).SetWriteDeadline", Method, 10, ""},
+		{"(*File).Stat", Method, 0, ""},
+		{"(*File).Sync", Method, 0, ""},
+		{"(*File).SyscallConn", Method, 12, ""},
+		{"(*File).Truncate", Method, 0, ""},
+		{"(*File).Write", Method, 0, ""},
+		{"(*File).WriteAt", Method, 0, ""},
+		{"(*File).WriteString", Method, 0, ""},
+		{"(*File).WriteTo", Method, 22, ""},
+		{"(*LinkError).Error", Method, 0, ""},
+		{"(*LinkError).Unwrap", Method, 13, ""},
+		{"(*PathError).Error", Method, 0, ""},
+		{"(*PathError).Timeout", Method, 10, ""},
+		{"(*PathError).Unwrap", Method, 13, ""},
+		{"(*Process).Kill", Method, 0, ""},
+		{"(*Process).Release", Method, 0, ""},
+		{"(*Process).Signal", Method, 0, ""},
+		{"(*Process).Wait", Method, 0, ""},
+		{"(*ProcessState).ExitCode", Method, 12, ""},
+		{"(*ProcessState).Exited", Method, 0, ""},
+		{"(*ProcessState).Pid", Method, 0, ""},
+		{"(*ProcessState).String", Method, 0, ""},
+		{"(*ProcessState).Success", Method, 0, ""},
+		{"(*ProcessState).Sys", Method, 0, ""},
+		{"(*ProcessState).SysUsage", Method, 0, ""},
+		{"(*ProcessState).SystemTime", Method, 0, ""},
+		{"(*ProcessState).UserTime", Method, 0, ""},
+		{"(*Root).Chmod", Method, 25, ""},
+		{"(*Root).Chown", Method, 25, ""},
+		{"(*Root).Chtimes", Method, 25, ""},
+		{"(*Root).Close", Method, 24, ""},
+		{"(*Root).Create", Method, 24, ""},
+		{"(*Root).FS", Method, 24, ""},
+		{"(*Root).Lchown", Method, 25, ""},
+		{"(*Root).Link", Method, 25, ""},
+		{"(*Root).Lstat", Method, 24, ""},
+		{"(*Root).Mkdir", Method, 24, ""},
+		{"(*Root).MkdirAll", Method, 25, ""},
+		{"(*Root).Name", Method, 24, ""},
+		{"(*Root).Open", Method, 24, ""},
+		{"(*Root).OpenFile", Method, 24, ""},
+		{"(*Root).OpenRoot", Method, 24, ""},
+		{"(*Root).ReadFile", Method, 25, ""},
+		{"(*Root).Readlink", Method, 25, ""},
+		{"(*Root).Remove", Method, 24, ""},
+		{"(*Root).RemoveAll", Method, 25, ""},
+		{"(*Root).Rename", Method, 25, ""},
+		{"(*Root).Stat", Method, 24, ""},
+		{"(*Root).Symlink", Method, 25, ""},
+		{"(*Root).WriteFile", Method, 25, ""},
+		{"(*SyscallError).Error", Method, 0, ""},
+		{"(*SyscallError).Timeout", Method, 10, ""},
+		{"(*SyscallError).Unwrap", Method, 13, ""},
+		{"(FileMode).IsDir", Method, 0, ""},
+		{"(FileMode).IsRegular", Method, 1, ""},
+		{"(FileMode).Perm", Method, 0, ""},
+		{"(FileMode).String", Method, 0, ""},
+		{"Args", Var, 0, ""},
+		{"Chdir", Func, 0, "func(dir string) error"},
+		{"Chmod", Func, 0, "func(name string, mode FileMode) error"},
+		{"Chown", Func, 0, "func(name string, uid int, gid int) error"},
+		{"Chtimes", Func, 0, "func(name string, atime time.Time, mtime time.Time) error"},
+		{"Clearenv", Func, 0, "func()"},
+		{"CopyFS", Func, 23, "func(dir string, fsys fs.FS) error"},
+		{"Create", Func, 0, "func(name string) (*File, error)"},
+		{"CreateTemp", Func, 16, "func(dir string, pattern string) (*File, error)"},
+		{"DevNull", Const, 0, ""},
+		{"DirEntry", Type, 16, ""},
+		{"DirFS", Func, 16, "func(dir string) fs.FS"},
+		{"Environ", Func, 0, "func() []string"},
+		{"ErrClosed", Var, 8, ""},
+		{"ErrDeadlineExceeded", Var, 15, ""},
+		{"ErrExist", Var, 0, ""},
+		{"ErrInvalid", Var, 0, ""},
+		{"ErrNoDeadline", Var, 10, ""},
+		{"ErrNotExist", Var, 0, ""},
+		{"ErrPermission", Var, 0, ""},
+		{"ErrProcessDone", Var, 16, ""},
+		{"Executable", Func, 8, "func() (string, error)"},
+		{"Exit", Func, 0, "func(code int)"},
+		{"Expand", Func, 0, "func(s string, mapping func(string) string) string"},
+		{"ExpandEnv", Func, 0, "func(s string) string"},
+		{"File", Type, 0, ""},
+		{"FileInfo", Type, 0, ""},
+		{"FileMode", Type, 0, ""},
+		{"FindProcess", Func, 0, "func(pid int) (*Process, error)"},
+		{"Getegid", Func, 0, "func() int"},
+		{"Getenv", Func, 0, "func(key string) string"},
+		{"Geteuid", Func, 0, "func() int"},
+		{"Getgid", Func, 0, "func() int"},
+		{"Getgroups", Func, 0, "func() ([]int, error)"},
+		{"Getpagesize", Func, 0, "func() int"},
+		{"Getpid", Func, 0, "func() int"},
+		{"Getppid", Func, 0, "func() int"},
+		{"Getuid", Func, 0, "func() int"},
+		{"Getwd", Func, 0, "func() (dir string, err error)"},
+		{"Hostname", Func, 0, "func() (name string, err error)"},
+		{"Interrupt", Var, 0, ""},
+		{"IsExist", Func, 0, "func(err error) bool"},
+		{"IsNotExist", Func, 0, "func(err error) bool"},
+		{"IsPathSeparator", Func, 0, "func(c uint8) bool"},
+		{"IsPermission", Func, 0, "func(err error) bool"},
+		{"IsTimeout", Func, 10, "func(err error) bool"},
+		{"Kill", Var, 0, ""},
+		{"Lchown", Func, 0, "func(name string, uid int, gid int) error"},
+		{"Link", Func, 0, "func(oldname string, newname string) error"},
+		{"LinkError", Type, 0, ""},
+		{"LinkError.Err", Field, 0, ""},
+		{"LinkError.New", Field, 0, ""},
+		{"LinkError.Old", Field, 0, ""},
+		{"LinkError.Op", Field, 0, ""},
+		{"LookupEnv", Func, 5, "func(key string) (string, bool)"},
+		{"Lstat", Func, 0, "func(name string) (FileInfo, error)"},
+		{"Mkdir", Func, 0, "func(name string, perm FileMode) error"},
+		{"MkdirAll", Func, 0, "func(path string, perm FileMode) error"},
+		{"MkdirTemp", Func, 16, "func(dir string, pattern string) (string, error)"},
+		{"ModeAppend", Const, 0, ""},
+		{"ModeCharDevice", Const, 0, ""},
+		{"ModeDevice", Const, 0, ""},
+		{"ModeDir", Const, 0, ""},
+		{"ModeExclusive", Const, 0, ""},
+		{"ModeIrregular", Const, 11, ""},
+		{"ModeNamedPipe", Const, 0, ""},
+		{"ModePerm", Const, 0, ""},
+		{"ModeSetgid", Const, 0, ""},
+		{"ModeSetuid", Const, 0, ""},
+		{"ModeSocket", Const, 0, ""},
+		{"ModeSticky", Const, 0, ""},
+		{"ModeSymlink", Const, 0, ""},
+		{"ModeTemporary", Const, 0, ""},
+		{"ModeType", Const, 0, ""},
+		{"NewFile", Func, 0, "func(fd uintptr, name string) *File"},
+		{"NewSyscallError", Func, 0, "func(syscall string, err error) error"},
+		{"O_APPEND", Const, 0, ""},
+		{"O_CREATE", Const, 0, ""},
+		{"O_EXCL", Const, 0, ""},
+		{"O_RDONLY", Const, 0, ""},
+		{"O_RDWR", Const, 0, ""},
+		{"O_SYNC", Const, 0, ""},
+		{"O_TRUNC", Const, 0, ""},
+		{"O_WRONLY", Const, 0, ""},
+		{"Open", Func, 0, "func(name string) (*File, error)"},
+		{"OpenFile", Func, 0, "func(name string, flag int, perm FileMode) (*File, error)"},
+		{"OpenInRoot", Func, 24, "func(dir string, name string) (*File, error)"},
+		{"OpenRoot", Func, 24, "func(name string) (*Root, error)"},
+		{"PathError", Type, 0, ""},
+		{"PathError.Err", Field, 0, ""},
+		{"PathError.Op", Field, 0, ""},
+		{"PathError.Path", Field, 0, ""},
+		{"PathListSeparator", Const, 0, ""},
+		{"PathSeparator", Const, 0, ""},
+		{"Pipe", Func, 0, "func() (r *File, w *File, err error)"},
+		{"ProcAttr", Type, 0, ""},
+		{"ProcAttr.Dir", Field, 0, ""},
+		{"ProcAttr.Env", Field, 0, ""},
+		{"ProcAttr.Files", Field, 0, ""},
+		{"ProcAttr.Sys", Field, 0, ""},
+		{"Process", Type, 0, ""},
+		{"Process.Pid", Field, 0, ""},
+		{"ProcessState", Type, 0, ""},
+		{"ReadDir", Func, 16, "func(name string) ([]DirEntry, error)"},
+		{"ReadFile", Func, 16, "func(name string) ([]byte, error)"},
+		{"Readlink", Func, 0, "func(name string) (string, error)"},
+		{"Remove", Func, 0, "func(name string) error"},
+		{"RemoveAll", Func, 0, "func(path string) error"},
+		{"Rename", Func, 0, "func(oldpath string, newpath string) error"},
+		{"Root", Type, 24, ""},
+		{"SEEK_CUR", Const, 0, ""},
+		{"SEEK_END", Const, 0, ""},
+		{"SEEK_SET", Const, 0, ""},
+		{"SameFile", Func, 0, "func(fi1 FileInfo, fi2 FileInfo) bool"},
+		{"Setenv", Func, 0, "func(key string, value string) error"},
+		{"Signal", Type, 0, ""},
+		{"StartProcess", Func, 0, "func(name string, argv []string, attr *ProcAttr) (*Process, error)"},
+		{"Stat", Func, 0, "func(name string) (FileInfo, error)"},
+		{"Stderr", Var, 0, ""},
+		{"Stdin", Var, 0, ""},
+		{"Stdout", Var, 0, ""},
+		{"Symlink", Func, 0, "func(oldname string, newname string) error"},
+		{"SyscallError", Type, 0, ""},
+		{"SyscallError.Err", Field, 0, ""},
+		{"SyscallError.Syscall", Field, 0, ""},
+		{"TempDir", Func, 0, "func() string"},
+		{"Truncate", Func, 0, "func(name string, size int64) error"},
+		{"Unsetenv", Func, 4, "func(key string) error"},
+		{"UserCacheDir", Func, 11, "func() (string, error)"},
+		{"UserConfigDir", Func, 13, "func() (string, error)"},
+		{"UserHomeDir", Func, 12, "func() (string, error)"},
+		{"WriteFile", Func, 16, "func(name string, data []byte, perm FileMode) error"},
 	},
 	"os/exec": {
-		{"(*Cmd).CombinedOutput", Method, 0},
-		{"(*Cmd).Environ", Method, 19},
-		{"(*Cmd).Output", Method, 0},
-		{"(*Cmd).Run", Method, 0},
-		{"(*Cmd).Start", Method, 0},
-		{"(*Cmd).StderrPipe", Method, 0},
-		{"(*Cmd).StdinPipe", Method, 0},
-		{"(*Cmd).StdoutPipe", Method, 0},
-		{"(*Cmd).String", Method, 13},
-		{"(*Cmd).Wait", Method, 0},
-		{"(*Error).Error", Method, 0},
-		{"(*Error).Unwrap", Method, 13},
-		{"(*ExitError).Error", Method, 0},
-		{"(ExitError).ExitCode", Method, 12},
-		{"(ExitError).Exited", Method, 0},
-		{"(ExitError).Pid", Method, 0},
-		{"(ExitError).String", Method, 0},
-		{"(ExitError).Success", Method, 0},
-		{"(ExitError).Sys", Method, 0},
-		{"(ExitError).SysUsage", Method, 0},
-		{"(ExitError).SystemTime", Method, 0},
-		{"(ExitError).UserTime", Method, 0},
-		{"Cmd", Type, 0},
-		{"Cmd.Args", Field, 0},
-		{"Cmd.Cancel", Field, 20},
-		{"Cmd.Dir", Field, 0},
-		{"Cmd.Env", Field, 0},
-		{"Cmd.Err", Field, 19},
-		{"Cmd.ExtraFiles", Field, 0},
-		{"Cmd.Path", Field, 0},
-		{"Cmd.Process", Field, 0},
-		{"Cmd.ProcessState", Field, 0},
-		{"Cmd.Stderr", Field, 0},
-		{"Cmd.Stdin", Field, 0},
-		{"Cmd.Stdout", Field, 0},
-		{"Cmd.SysProcAttr", Field, 0},
-		{"Cmd.WaitDelay", Field, 20},
-		{"Command", Func, 0},
-		{"CommandContext", Func, 7},
-		{"ErrDot", Var, 19},
-		{"ErrNotFound", Var, 0},
-		{"ErrWaitDelay", Var, 20},
-		{"Error", Type, 0},
-		{"Error.Err", Field, 0},
-		{"Error.Name", Field, 0},
-		{"ExitError", Type, 0},
-		{"ExitError.ProcessState", Field, 0},
-		{"ExitError.Stderr", Field, 6},
-		{"LookPath", Func, 0},
+		{"(*Cmd).CombinedOutput", Method, 0, ""},
+		{"(*Cmd).Environ", Method, 19, ""},
+		{"(*Cmd).Output", Method, 0, ""},
+		{"(*Cmd).Run", Method, 0, ""},
+		{"(*Cmd).Start", Method, 0, ""},
+		{"(*Cmd).StderrPipe", Method, 0, ""},
+		{"(*Cmd).StdinPipe", Method, 0, ""},
+		{"(*Cmd).StdoutPipe", Method, 0, ""},
+		{"(*Cmd).String", Method, 13, ""},
+		{"(*Cmd).Wait", Method, 0, ""},
+		{"(*Error).Error", Method, 0, ""},
+		{"(*Error).Unwrap", Method, 13, ""},
+		{"(*ExitError).Error", Method, 0, ""},
+		{"(ExitError).ExitCode", Method, 12, ""},
+		{"(ExitError).Exited", Method, 0, ""},
+		{"(ExitError).Pid", Method, 0, ""},
+		{"(ExitError).String", Method, 0, ""},
+		{"(ExitError).Success", Method, 0, ""},
+		{"(ExitError).Sys", Method, 0, ""},
+		{"(ExitError).SysUsage", Method, 0, ""},
+		{"(ExitError).SystemTime", Method, 0, ""},
+		{"(ExitError).UserTime", Method, 0, ""},
+		{"Cmd", Type, 0, ""},
+		{"Cmd.Args", Field, 0, ""},
+		{"Cmd.Cancel", Field, 20, ""},
+		{"Cmd.Dir", Field, 0, ""},
+		{"Cmd.Env", Field, 0, ""},
+		{"Cmd.Err", Field, 19, ""},
+		{"Cmd.ExtraFiles", Field, 0, ""},
+		{"Cmd.Path", Field, 0, ""},
+		{"Cmd.Process", Field, 0, ""},
+		{"Cmd.ProcessState", Field, 0, ""},
+		{"Cmd.Stderr", Field, 0, ""},
+		{"Cmd.Stdin", Field, 0, ""},
+		{"Cmd.Stdout", Field, 0, ""},
+		{"Cmd.SysProcAttr", Field, 0, ""},
+		{"Cmd.WaitDelay", Field, 20, ""},
+		{"Command", Func, 0, "func(name string, arg ...string) *Cmd"},
+		{"CommandContext", Func, 7, "func(ctx context.Context, name string, arg ...string) *Cmd"},
+		{"ErrDot", Var, 19, ""},
+		{"ErrNotFound", Var, 0, ""},
+		{"ErrWaitDelay", Var, 20, ""},
+		{"Error", Type, 0, ""},
+		{"Error.Err", Field, 0, ""},
+		{"Error.Name", Field, 0, ""},
+		{"ExitError", Type, 0, ""},
+		{"ExitError.ProcessState", Field, 0, ""},
+		{"ExitError.Stderr", Field, 6, ""},
+		{"LookPath", Func, 0, "func(file string) (string, error)"},
 	},
 	"os/signal": {
-		{"Ignore", Func, 5},
-		{"Ignored", Func, 11},
-		{"Notify", Func, 0},
-		{"NotifyContext", Func, 16},
-		{"Reset", Func, 5},
-		{"Stop", Func, 1},
+		{"Ignore", Func, 5, "func(sig ...os.Signal)"},
+		{"Ignored", Func, 11, "func(sig os.Signal) bool"},
+		{"Notify", Func, 0, "func(c chan<- os.Signal, sig ...os.Signal)"},
+		{"NotifyContext", Func, 16, "func(parent context.Context, signals ...os.Signal) (ctx context.Context, stop context.CancelFunc)"},
+		{"Reset", Func, 5, "func(sig ...os.Signal)"},
+		{"Stop", Func, 1, "func(c chan<- os.Signal)"},
 	},
 	"os/user": {
-		{"(*User).GroupIds", Method, 7},
-		{"(UnknownGroupError).Error", Method, 7},
-		{"(UnknownGroupIdError).Error", Method, 7},
-		{"(UnknownUserError).Error", Method, 0},
-		{"(UnknownUserIdError).Error", Method, 0},
-		{"Current", Func, 0},
-		{"Group", Type, 7},
-		{"Group.Gid", Field, 7},
-		{"Group.Name", Field, 7},
-		{"Lookup", Func, 0},
-		{"LookupGroup", Func, 7},
-		{"LookupGroupId", Func, 7},
-		{"LookupId", Func, 0},
-		{"UnknownGroupError", Type, 7},
-		{"UnknownGroupIdError", Type, 7},
-		{"UnknownUserError", Type, 0},
-		{"UnknownUserIdError", Type, 0},
-		{"User", Type, 0},
-		{"User.Gid", Field, 0},
-		{"User.HomeDir", Field, 0},
-		{"User.Name", Field, 0},
-		{"User.Uid", Field, 0},
-		{"User.Username", Field, 0},
+		{"(*User).GroupIds", Method, 7, ""},
+		{"(UnknownGroupError).Error", Method, 7, ""},
+		{"(UnknownGroupIdError).Error", Method, 7, ""},
+		{"(UnknownUserError).Error", Method, 0, ""},
+		{"(UnknownUserIdError).Error", Method, 0, ""},
+		{"Current", Func, 0, "func() (*User, error)"},
+		{"Group", Type, 7, ""},
+		{"Group.Gid", Field, 7, ""},
+		{"Group.Name", Field, 7, ""},
+		{"Lookup", Func, 0, "func(username string) (*User, error)"},
+		{"LookupGroup", Func, 7, "func(name string) (*Group, error)"},
+		{"LookupGroupId", Func, 7, "func(gid string) (*Group, error)"},
+		{"LookupId", Func, 0, "func(uid string) (*User, error)"},
+		{"UnknownGroupError", Type, 7, ""},
+		{"UnknownGroupIdError", Type, 7, ""},
+		{"UnknownUserError", Type, 0, ""},
+		{"UnknownUserIdError", Type, 0, ""},
+		{"User", Type, 0, ""},
+		{"User.Gid", Field, 0, ""},
+		{"User.HomeDir", Field, 0, ""},
+		{"User.Name", Field, 0, ""},
+		{"User.Uid", Field, 0, ""},
+		{"User.Username", Field, 0, ""},
 	},
 	"path": {
-		{"Base", Func, 0},
-		{"Clean", Func, 0},
-		{"Dir", Func, 0},
-		{"ErrBadPattern", Var, 0},
-		{"Ext", Func, 0},
-		{"IsAbs", Func, 0},
-		{"Join", Func, 0},
-		{"Match", Func, 0},
-		{"Split", Func, 0},
+		{"Base", Func, 0, "func(path string) string"},
+		{"Clean", Func, 0, "func(path string) string"},
+		{"Dir", Func, 0, "func(path string) string"},
+		{"ErrBadPattern", Var, 0, ""},
+		{"Ext", Func, 0, "func(path string) string"},
+		{"IsAbs", Func, 0, "func(path string) bool"},
+		{"Join", Func, 0, "func(elem ...string) string"},
+		{"Match", Func, 0, "func(pattern string, name string) (matched bool, err error)"},
+		{"Split", Func, 0, "func(path string) (dir string, file string)"},
 	},
 	"path/filepath": {
-		{"Abs", Func, 0},
-		{"Base", Func, 0},
-		{"Clean", Func, 0},
-		{"Dir", Func, 0},
-		{"ErrBadPattern", Var, 0},
-		{"EvalSymlinks", Func, 0},
-		{"Ext", Func, 0},
-		{"FromSlash", Func, 0},
-		{"Glob", Func, 0},
-		{"HasPrefix", Func, 0},
-		{"IsAbs", Func, 0},
-		{"IsLocal", Func, 20},
-		{"Join", Func, 0},
-		{"ListSeparator", Const, 0},
-		{"Localize", Func, 23},
-		{"Match", Func, 0},
-		{"Rel", Func, 0},
-		{"Separator", Const, 0},
-		{"SkipAll", Var, 20},
-		{"SkipDir", Var, 0},
-		{"Split", Func, 0},
-		{"SplitList", Func, 0},
-		{"ToSlash", Func, 0},
-		{"VolumeName", Func, 0},
-		{"Walk", Func, 0},
-		{"WalkDir", Func, 16},
-		{"WalkFunc", Type, 0},
+		{"Abs", Func, 0, "func(path string) (string, error)"},
+		{"Base", Func, 0, "func(path string) string"},
+		{"Clean", Func, 0, "func(path string) string"},
+		{"Dir", Func, 0, "func(path string) string"},
+		{"ErrBadPattern", Var, 0, ""},
+		{"EvalSymlinks", Func, 0, "func(path string) (string, error)"},
+		{"Ext", Func, 0, "func(path string) string"},
+		{"FromSlash", Func, 0, "func(path string) string"},
+		{"Glob", Func, 0, "func(pattern string) (matches []string, err error)"},
+		{"HasPrefix", Func, 0, "func(p string, prefix string) bool"},
+		{"IsAbs", Func, 0, "func(path string) bool"},
+		{"IsLocal", Func, 20, "func(path string) bool"},
+		{"Join", Func, 0, "func(elem ...string) string"},
+		{"ListSeparator", Const, 0, ""},
+		{"Localize", Func, 23, "func(path string) (string, error)"},
+		{"Match", Func, 0, "func(pattern string, name string) (matched bool, err error)"},
+		{"Rel", Func, 0, "func(basepath string, targpath string) (string, error)"},
+		{"Separator", Const, 0, ""},
+		{"SkipAll", Var, 20, ""},
+		{"SkipDir", Var, 0, ""},
+		{"Split", Func, 0, "func(path string) (dir string, file string)"},
+		{"SplitList", Func, 0, "func(path string) []string"},
+		{"ToSlash", Func, 0, "func(path string) string"},
+		{"VolumeName", Func, 0, "func(path string) string"},
+		{"Walk", Func, 0, "func(root string, fn WalkFunc) error"},
+		{"WalkDir", Func, 16, "func(root string, fn fs.WalkDirFunc) error"},
+		{"WalkFunc", Type, 0, ""},
 	},
 	"plugin": {
-		{"(*Plugin).Lookup", Method, 8},
-		{"Open", Func, 8},
-		{"Plugin", Type, 8},
-		{"Symbol", Type, 8},
+		{"(*Plugin).Lookup", Method, 8, ""},
+		{"Open", Func, 8, "func(path string) (*Plugin, error)"},
+		{"Plugin", Type, 8, ""},
+		{"Symbol", Type, 8, ""},
 	},
 	"reflect": {
-		{"(*MapIter).Key", Method, 12},
-		{"(*MapIter).Next", Method, 12},
-		{"(*MapIter).Reset", Method, 18},
-		{"(*MapIter).Value", Method, 12},
-		{"(*ValueError).Error", Method, 0},
-		{"(ChanDir).String", Method, 0},
-		{"(Kind).String", Method, 0},
-		{"(Method).IsExported", Method, 17},
-		{"(StructField).IsExported", Method, 17},
-		{"(StructTag).Get", Method, 0},
-		{"(StructTag).Lookup", Method, 7},
-		{"(Value).Addr", Method, 0},
-		{"(Value).Bool", Method, 0},
-		{"(Value).Bytes", Method, 0},
-		{"(Value).Call", Method, 0},
-		{"(Value).CallSlice", Method, 0},
-		{"(Value).CanAddr", Method, 0},
-		{"(Value).CanComplex", Method, 18},
-		{"(Value).CanConvert", Method, 17},
-		{"(Value).CanFloat", Method, 18},
-		{"(Value).CanInt", Method, 18},
-		{"(Value).CanInterface", Method, 0},
-		{"(Value).CanSet", Method, 0},
-		{"(Value).CanUint", Method, 18},
-		{"(Value).Cap", Method, 0},
-		{"(Value).Clear", Method, 21},
-		{"(Value).Close", Method, 0},
-		{"(Value).Comparable", Method, 20},
-		{"(Value).Complex", Method, 0},
-		{"(Value).Convert", Method, 1},
-		{"(Value).Elem", Method, 0},
-		{"(Value).Equal", Method, 20},
-		{"(Value).Field", Method, 0},
-		{"(Value).FieldByIndex", Method, 0},
-		{"(Value).FieldByIndexErr", Method, 18},
-		{"(Value).FieldByName", Method, 0},
-		{"(Value).FieldByNameFunc", Method, 0},
-		{"(Value).Float", Method, 0},
-		{"(Value).Grow", Method, 20},
-		{"(Value).Index", Method, 0},
-		{"(Value).Int", Method, 0},
-		{"(Value).Interface", Method, 0},
-		{"(Value).InterfaceData", Method, 0},
-		{"(Value).IsNil", Method, 0},
-		{"(Value).IsValid", Method, 0},
-		{"(Value).IsZero", Method, 13},
-		{"(Value).Kind", Method, 0},
-		{"(Value).Len", Method, 0},
-		{"(Value).MapIndex", Method, 0},
-		{"(Value).MapKeys", Method, 0},
-		{"(Value).MapRange", Method, 12},
-		{"(Value).Method", Method, 0},
-		{"(Value).MethodByName", Method, 0},
-		{"(Value).NumField", Method, 0},
-		{"(Value).NumMethod", Method, 0},
-		{"(Value).OverflowComplex", Method, 0},
-		{"(Value).OverflowFloat", Method, 0},
-		{"(Value).OverflowInt", Method, 0},
-		{"(Value).OverflowUint", Method, 0},
-		{"(Value).Pointer", Method, 0},
-		{"(Value).Recv", Method, 0},
-		{"(Value).Send", Method, 0},
-		{"(Value).Seq", Method, 23},
-		{"(Value).Seq2", Method, 23},
-		{"(Value).Set", Method, 0},
-		{"(Value).SetBool", Method, 0},
-		{"(Value).SetBytes", Method, 0},
-		{"(Value).SetCap", Method, 2},
-		{"(Value).SetComplex", Method, 0},
-		{"(Value).SetFloat", Method, 0},
-		{"(Value).SetInt", Method, 0},
-		{"(Value).SetIterKey", Method, 18},
-		{"(Value).SetIterValue", Method, 18},
-		{"(Value).SetLen", Method, 0},
-		{"(Value).SetMapIndex", Method, 0},
-		{"(Value).SetPointer", Method, 0},
-		{"(Value).SetString", Method, 0},
-		{"(Value).SetUint", Method, 0},
-		{"(Value).SetZero", Method, 20},
-		{"(Value).Slice", Method, 0},
-		{"(Value).Slice3", Method, 2},
-		{"(Value).String", Method, 0},
-		{"(Value).TryRecv", Method, 0},
-		{"(Value).TrySend", Method, 0},
-		{"(Value).Type", Method, 0},
-		{"(Value).Uint", Method, 0},
-		{"(Value).UnsafeAddr", Method, 0},
-		{"(Value).UnsafePointer", Method, 18},
-		{"Append", Func, 0},
-		{"AppendSlice", Func, 0},
-		{"Array", Const, 0},
-		{"ArrayOf", Func, 5},
-		{"Bool", Const, 0},
-		{"BothDir", Const, 0},
-		{"Chan", Const, 0},
-		{"ChanDir", Type, 0},
-		{"ChanOf", Func, 1},
-		{"Complex128", Const, 0},
-		{"Complex64", Const, 0},
-		{"Copy", Func, 0},
-		{"DeepEqual", Func, 0},
-		{"Float32", Const, 0},
-		{"Float64", Const, 0},
-		{"Func", Const, 0},
-		{"FuncOf", Func, 5},
-		{"Indirect", Func, 0},
-		{"Int", Const, 0},
-		{"Int16", Const, 0},
-		{"Int32", Const, 0},
-		{"Int64", Const, 0},
-		{"Int8", Const, 0},
-		{"Interface", Const, 0},
-		{"Invalid", Const, 0},
-		{"Kind", Type, 0},
-		{"MakeChan", Func, 0},
-		{"MakeFunc", Func, 1},
-		{"MakeMap", Func, 0},
-		{"MakeMapWithSize", Func, 9},
-		{"MakeSlice", Func, 0},
-		{"Map", Const, 0},
-		{"MapIter", Type, 12},
-		{"MapOf", Func, 1},
-		{"Method", Type, 0},
-		{"Method.Func", Field, 0},
-		{"Method.Index", Field, 0},
-		{"Method.Name", Field, 0},
-		{"Method.PkgPath", Field, 0},
-		{"Method.Type", Field, 0},
-		{"New", Func, 0},
-		{"NewAt", Func, 0},
-		{"Pointer", Const, 18},
-		{"PointerTo", Func, 18},
-		{"Ptr", Const, 0},
-		{"PtrTo", Func, 0},
-		{"RecvDir", Const, 0},
-		{"Select", Func, 1},
-		{"SelectCase", Type, 1},
-		{"SelectCase.Chan", Field, 1},
-		{"SelectCase.Dir", Field, 1},
-		{"SelectCase.Send", Field, 1},
-		{"SelectDefault", Const, 1},
-		{"SelectDir", Type, 1},
-		{"SelectRecv", Const, 1},
-		{"SelectSend", Const, 1},
-		{"SendDir", Const, 0},
-		{"Slice", Const, 0},
-		{"SliceAt", Func, 23},
-		{"SliceHeader", Type, 0},
-		{"SliceHeader.Cap", Field, 0},
-		{"SliceHeader.Data", Field, 0},
-		{"SliceHeader.Len", Field, 0},
-		{"SliceOf", Func, 1},
-		{"String", Const, 0},
-		{"StringHeader", Type, 0},
-		{"StringHeader.Data", Field, 0},
-		{"StringHeader.Len", Field, 0},
-		{"Struct", Const, 0},
-		{"StructField", Type, 0},
-		{"StructField.Anonymous", Field, 0},
-		{"StructField.Index", Field, 0},
-		{"StructField.Name", Field, 0},
-		{"StructField.Offset", Field, 0},
-		{"StructField.PkgPath", Field, 0},
-		{"StructField.Tag", Field, 0},
-		{"StructField.Type", Field, 0},
-		{"StructOf", Func, 7},
-		{"StructTag", Type, 0},
-		{"Swapper", Func, 8},
-		{"Type", Type, 0},
-		{"TypeFor", Func, 22},
-		{"TypeOf", Func, 0},
-		{"Uint", Const, 0},
-		{"Uint16", Const, 0},
-		{"Uint32", Const, 0},
-		{"Uint64", Const, 0},
-		{"Uint8", Const, 0},
-		{"Uintptr", Const, 0},
-		{"UnsafePointer", Const, 0},
-		{"Value", Type, 0},
-		{"ValueError", Type, 0},
-		{"ValueError.Kind", Field, 0},
-		{"ValueError.Method", Field, 0},
-		{"ValueOf", Func, 0},
-		{"VisibleFields", Func, 17},
-		{"Zero", Func, 0},
+		{"(*MapIter).Key", Method, 12, ""},
+		{"(*MapIter).Next", Method, 12, ""},
+		{"(*MapIter).Reset", Method, 18, ""},
+		{"(*MapIter).Value", Method, 12, ""},
+		{"(*ValueError).Error", Method, 0, ""},
+		{"(ChanDir).String", Method, 0, ""},
+		{"(Kind).String", Method, 0, ""},
+		{"(Method).IsExported", Method, 17, ""},
+		{"(StructField).IsExported", Method, 17, ""},
+		{"(StructTag).Get", Method, 0, ""},
+		{"(StructTag).Lookup", Method, 7, ""},
+		{"(Value).Addr", Method, 0, ""},
+		{"(Value).Bool", Method, 0, ""},
+		{"(Value).Bytes", Method, 0, ""},
+		{"(Value).Call", Method, 0, ""},
+		{"(Value).CallSlice", Method, 0, ""},
+		{"(Value).CanAddr", Method, 0, ""},
+		{"(Value).CanComplex", Method, 18, ""},
+		{"(Value).CanConvert", Method, 17, ""},
+		{"(Value).CanFloat", Method, 18, ""},
+		{"(Value).CanInt", Method, 18, ""},
+		{"(Value).CanInterface", Method, 0, ""},
+		{"(Value).CanSet", Method, 0, ""},
+		{"(Value).CanUint", Method, 18, ""},
+		{"(Value).Cap", Method, 0, ""},
+		{"(Value).Clear", Method, 21, ""},
+		{"(Value).Close", Method, 0, ""},
+		{"(Value).Comparable", Method, 20, ""},
+		{"(Value).Complex", Method, 0, ""},
+		{"(Value).Convert", Method, 1, ""},
+		{"(Value).Elem", Method, 0, ""},
+		{"(Value).Equal", Method, 20, ""},
+		{"(Value).Field", Method, 0, ""},
+		{"(Value).FieldByIndex", Method, 0, ""},
+		{"(Value).FieldByIndexErr", Method, 18, ""},
+		{"(Value).FieldByName", Method, 0, ""},
+		{"(Value).FieldByNameFunc", Method, 0, ""},
+		{"(Value).Float", Method, 0, ""},
+		{"(Value).Grow", Method, 20, ""},
+		{"(Value).Index", Method, 0, ""},
+		{"(Value).Int", Method, 0, ""},
+		{"(Value).Interface", Method, 0, ""},
+		{"(Value).InterfaceData", Method, 0, ""},
+		{"(Value).IsNil", Method, 0, ""},
+		{"(Value).IsValid", Method, 0, ""},
+		{"(Value).IsZero", Method, 13, ""},
+		{"(Value).Kind", Method, 0, ""},
+		{"(Value).Len", Method, 0, ""},
+		{"(Value).MapIndex", Method, 0, ""},
+		{"(Value).MapKeys", Method, 0, ""},
+		{"(Value).MapRange", Method, 12, ""},
+		{"(Value).Method", Method, 0, ""},
+		{"(Value).MethodByName", Method, 0, ""},
+		{"(Value).NumField", Method, 0, ""},
+		{"(Value).NumMethod", Method, 0, ""},
+		{"(Value).OverflowComplex", Method, 0, ""},
+		{"(Value).OverflowFloat", Method, 0, ""},
+		{"(Value).OverflowInt", Method, 0, ""},
+		{"(Value).OverflowUint", Method, 0, ""},
+		{"(Value).Pointer", Method, 0, ""},
+		{"(Value).Recv", Method, 0, ""},
+		{"(Value).Send", Method, 0, ""},
+		{"(Value).Seq", Method, 23, ""},
+		{"(Value).Seq2", Method, 23, ""},
+		{"(Value).Set", Method, 0, ""},
+		{"(Value).SetBool", Method, 0, ""},
+		{"(Value).SetBytes", Method, 0, ""},
+		{"(Value).SetCap", Method, 2, ""},
+		{"(Value).SetComplex", Method, 0, ""},
+		{"(Value).SetFloat", Method, 0, ""},
+		{"(Value).SetInt", Method, 0, ""},
+		{"(Value).SetIterKey", Method, 18, ""},
+		{"(Value).SetIterValue", Method, 18, ""},
+		{"(Value).SetLen", Method, 0, ""},
+		{"(Value).SetMapIndex", Method, 0, ""},
+		{"(Value).SetPointer", Method, 0, ""},
+		{"(Value).SetString", Method, 0, ""},
+		{"(Value).SetUint", Method, 0, ""},
+		{"(Value).SetZero", Method, 20, ""},
+		{"(Value).Slice", Method, 0, ""},
+		{"(Value).Slice3", Method, 2, ""},
+		{"(Value).String", Method, 0, ""},
+		{"(Value).TryRecv", Method, 0, ""},
+		{"(Value).TrySend", Method, 0, ""},
+		{"(Value).Type", Method, 0, ""},
+		{"(Value).Uint", Method, 0, ""},
+		{"(Value).UnsafeAddr", Method, 0, ""},
+		{"(Value).UnsafePointer", Method, 18, ""},
+		{"Append", Func, 0, "func(s Value, x ...Value) Value"},
+		{"AppendSlice", Func, 0, "func(s Value, t Value) Value"},
+		{"Array", Const, 0, ""},
+		{"ArrayOf", Func, 5, "func(length int, elem Type) Type"},
+		{"Bool", Const, 0, ""},
+		{"BothDir", Const, 0, ""},
+		{"Chan", Const, 0, ""},
+		{"ChanDir", Type, 0, ""},
+		{"ChanOf", Func, 1, "func(dir ChanDir, t Type) Type"},
+		{"Complex128", Const, 0, ""},
+		{"Complex64", Const, 0, ""},
+		{"Copy", Func, 0, "func(dst Value, src Value) int"},
+		{"DeepEqual", Func, 0, "func(x any, y any) bool"},
+		{"Float32", Const, 0, ""},
+		{"Float64", Const, 0, ""},
+		{"Func", Const, 0, ""},
+		{"FuncOf", Func, 5, "func(in []Type, out []Type, variadic bool) Type"},
+		{"Indirect", Func, 0, "func(v Value) Value"},
+		{"Int", Const, 0, ""},
+		{"Int16", Const, 0, ""},
+		{"Int32", Const, 0, ""},
+		{"Int64", Const, 0, ""},
+		{"Int8", Const, 0, ""},
+		{"Interface", Const, 0, ""},
+		{"Invalid", Const, 0, ""},
+		{"Kind", Type, 0, ""},
+		{"MakeChan", Func, 0, "func(typ Type, buffer int) Value"},
+		{"MakeFunc", Func, 1, "func(typ Type, fn func(args []Value) (results []Value)) Value"},
+		{"MakeMap", Func, 0, "func(typ Type) Value"},
+		{"MakeMapWithSize", Func, 9, "func(typ Type, n int) Value"},
+		{"MakeSlice", Func, 0, "func(typ Type, len int, cap int) Value"},
+		{"Map", Const, 0, ""},
+		{"MapIter", Type, 12, ""},
+		{"MapOf", Func, 1, "func(key Type, elem Type) Type"},
+		{"Method", Type, 0, ""},
+		{"Method.Func", Field, 0, ""},
+		{"Method.Index", Field, 0, ""},
+		{"Method.Name", Field, 0, ""},
+		{"Method.PkgPath", Field, 0, ""},
+		{"Method.Type", Field, 0, ""},
+		{"New", Func, 0, "func(typ Type) Value"},
+		{"NewAt", Func, 0, "func(typ Type, p unsafe.Pointer) Value"},
+		{"Pointer", Const, 18, ""},
+		{"PointerTo", Func, 18, "func(t Type) Type"},
+		{"Ptr", Const, 0, ""},
+		{"PtrTo", Func, 0, "func(t Type) Type"},
+		{"RecvDir", Const, 0, ""},
+		{"Select", Func, 1, "func(cases []SelectCase) (chosen int, recv Value, recvOK bool)"},
+		{"SelectCase", Type, 1, ""},
+		{"SelectCase.Chan", Field, 1, ""},
+		{"SelectCase.Dir", Field, 1, ""},
+		{"SelectCase.Send", Field, 1, ""},
+		{"SelectDefault", Const, 1, ""},
+		{"SelectDir", Type, 1, ""},
+		{"SelectRecv", Const, 1, ""},
+		{"SelectSend", Const, 1, ""},
+		{"SendDir", Const, 0, ""},
+		{"Slice", Const, 0, ""},
+		{"SliceAt", Func, 23, "func(typ Type, p unsafe.Pointer, n int) Value"},
+		{"SliceHeader", Type, 0, ""},
+		{"SliceHeader.Cap", Field, 0, ""},
+		{"SliceHeader.Data", Field, 0, ""},
+		{"SliceHeader.Len", Field, 0, ""},
+		{"SliceOf", Func, 1, "func(t Type) Type"},
+		{"String", Const, 0, ""},
+		{"StringHeader", Type, 0, ""},
+		{"StringHeader.Data", Field, 0, ""},
+		{"StringHeader.Len", Field, 0, ""},
+		{"Struct", Const, 0, ""},
+		{"StructField", Type, 0, ""},
+		{"StructField.Anonymous", Field, 0, ""},
+		{"StructField.Index", Field, 0, ""},
+		{"StructField.Name", Field, 0, ""},
+		{"StructField.Offset", Field, 0, ""},
+		{"StructField.PkgPath", Field, 0, ""},
+		{"StructField.Tag", Field, 0, ""},
+		{"StructField.Type", Field, 0, ""},
+		{"StructOf", Func, 7, "func(fields []StructField) Type"},
+		{"StructTag", Type, 0, ""},
+		{"Swapper", Func, 8, "func(slice any) func(i int, j int)"},
+		{"Type", Type, 0, ""},
+		{"TypeAssert", Func, 25, "func[T any](v Value) (T, bool)"},
+		{"TypeFor", Func, 22, "func[T any]() Type"},
+		{"TypeOf", Func, 0, "func(i any) Type"},
+		{"Uint", Const, 0, ""},
+		{"Uint16", Const, 0, ""},
+		{"Uint32", Const, 0, ""},
+		{"Uint64", Const, 0, ""},
+		{"Uint8", Const, 0, ""},
+		{"Uintptr", Const, 0, ""},
+		{"UnsafePointer", Const, 0, ""},
+		{"Value", Type, 0, ""},
+		{"ValueError", Type, 0, ""},
+		{"ValueError.Kind", Field, 0, ""},
+		{"ValueError.Method", Field, 0, ""},
+		{"ValueOf", Func, 0, "func(i any) Value"},
+		{"VisibleFields", Func, 17, "func(t Type) []StructField"},
+		{"Zero", Func, 0, "func(typ Type) Value"},
 	},
 	"regexp": {
-		{"(*Regexp).AppendText", Method, 24},
-		{"(*Regexp).Copy", Method, 6},
-		{"(*Regexp).Expand", Method, 0},
-		{"(*Regexp).ExpandString", Method, 0},
-		{"(*Regexp).Find", Method, 0},
-		{"(*Regexp).FindAll", Method, 0},
-		{"(*Regexp).FindAllIndex", Method, 0},
-		{"(*Regexp).FindAllString", Method, 0},
-		{"(*Regexp).FindAllStringIndex", Method, 0},
-		{"(*Regexp).FindAllStringSubmatch", Method, 0},
-		{"(*Regexp).FindAllStringSubmatchIndex", Method, 0},
-		{"(*Regexp).FindAllSubmatch", Method, 0},
-		{"(*Regexp).FindAllSubmatchIndex", Method, 0},
-		{"(*Regexp).FindIndex", Method, 0},
-		{"(*Regexp).FindReaderIndex", Method, 0},
-		{"(*Regexp).FindReaderSubmatchIndex", Method, 0},
-		{"(*Regexp).FindString", Method, 0},
-		{"(*Regexp).FindStringIndex", Method, 0},
-		{"(*Regexp).FindStringSubmatch", Method, 0},
-		{"(*Regexp).FindStringSubmatchIndex", Method, 0},
-		{"(*Regexp).FindSubmatch", Method, 0},
-		{"(*Regexp).FindSubmatchIndex", Method, 0},
-		{"(*Regexp).LiteralPrefix", Method, 0},
-		{"(*Regexp).Longest", Method, 1},
-		{"(*Regexp).MarshalText", Method, 21},
-		{"(*Regexp).Match", Method, 0},
-		{"(*Regexp).MatchReader", Method, 0},
-		{"(*Regexp).MatchString", Method, 0},
-		{"(*Regexp).NumSubexp", Method, 0},
-		{"(*Regexp).ReplaceAll", Method, 0},
-		{"(*Regexp).ReplaceAllFunc", Method, 0},
-		{"(*Regexp).ReplaceAllLiteral", Method, 0},
-		{"(*Regexp).ReplaceAllLiteralString", Method, 0},
-		{"(*Regexp).ReplaceAllString", Method, 0},
-		{"(*Regexp).ReplaceAllStringFunc", Method, 0},
-		{"(*Regexp).Split", Method, 1},
-		{"(*Regexp).String", Method, 0},
-		{"(*Regexp).SubexpIndex", Method, 15},
-		{"(*Regexp).SubexpNames", Method, 0},
-		{"(*Regexp).UnmarshalText", Method, 21},
-		{"Compile", Func, 0},
-		{"CompilePOSIX", Func, 0},
-		{"Match", Func, 0},
-		{"MatchReader", Func, 0},
-		{"MatchString", Func, 0},
-		{"MustCompile", Func, 0},
-		{"MustCompilePOSIX", Func, 0},
-		{"QuoteMeta", Func, 0},
-		{"Regexp", Type, 0},
+		{"(*Regexp).AppendText", Method, 24, ""},
+		{"(*Regexp).Copy", Method, 6, ""},
+		{"(*Regexp).Expand", Method, 0, ""},
+		{"(*Regexp).ExpandString", Method, 0, ""},
+		{"(*Regexp).Find", Method, 0, ""},
+		{"(*Regexp).FindAll", Method, 0, ""},
+		{"(*Regexp).FindAllIndex", Method, 0, ""},
+		{"(*Regexp).FindAllString", Method, 0, ""},
+		{"(*Regexp).FindAllStringIndex", Method, 0, ""},
+		{"(*Regexp).FindAllStringSubmatch", Method, 0, ""},
+		{"(*Regexp).FindAllStringSubmatchIndex", Method, 0, ""},
+		{"(*Regexp).FindAllSubmatch", Method, 0, ""},
+		{"(*Regexp).FindAllSubmatchIndex", Method, 0, ""},
+		{"(*Regexp).FindIndex", Method, 0, ""},
+		{"(*Regexp).FindReaderIndex", Method, 0, ""},
+		{"(*Regexp).FindReaderSubmatchIndex", Method, 0, ""},
+		{"(*Regexp).FindString", Method, 0, ""},
+		{"(*Regexp).FindStringIndex", Method, 0, ""},
+		{"(*Regexp).FindStringSubmatch", Method, 0, ""},
+		{"(*Regexp).FindStringSubmatchIndex", Method, 0, ""},
+		{"(*Regexp).FindSubmatch", Method, 0, ""},
+		{"(*Regexp).FindSubmatchIndex", Method, 0, ""},
+		{"(*Regexp).LiteralPrefix", Method, 0, ""},
+		{"(*Regexp).Longest", Method, 1, ""},
+		{"(*Regexp).MarshalText", Method, 21, ""},
+		{"(*Regexp).Match", Method, 0, ""},
+		{"(*Regexp).MatchReader", Method, 0, ""},
+		{"(*Regexp).MatchString", Method, 0, ""},
+		{"(*Regexp).NumSubexp", Method, 0, ""},
+		{"(*Regexp).ReplaceAll", Method, 0, ""},
+		{"(*Regexp).ReplaceAllFunc", Method, 0, ""},
+		{"(*Regexp).ReplaceAllLiteral", Method, 0, ""},
+		{"(*Regexp).ReplaceAllLiteralString", Method, 0, ""},
+		{"(*Regexp).ReplaceAllString", Method, 0, ""},
+		{"(*Regexp).ReplaceAllStringFunc", Method, 0, ""},
+		{"(*Regexp).Split", Method, 1, ""},
+		{"(*Regexp).String", Method, 0, ""},
+		{"(*Regexp).SubexpIndex", Method, 15, ""},
+		{"(*Regexp).SubexpNames", Method, 0, ""},
+		{"(*Regexp).UnmarshalText", Method, 21, ""},
+		{"Compile", Func, 0, "func(expr string) (*Regexp, error)"},
+		{"CompilePOSIX", Func, 0, "func(expr string) (*Regexp, error)"},
+		{"Match", Func, 0, "func(pattern string, b []byte) (matched bool, err error)"},
+		{"MatchReader", Func, 0, "func(pattern string, r io.RuneReader) (matched bool, err error)"},
+		{"MatchString", Func, 0, "func(pattern string, s string) (matched bool, err error)"},
+		{"MustCompile", Func, 0, "func(str string) *Regexp"},
+		{"MustCompilePOSIX", Func, 0, "func(str string) *Regexp"},
+		{"QuoteMeta", Func, 0, "func(s string) string"},
+		{"Regexp", Type, 0, ""},
 	},
 	"regexp/syntax": {
-		{"(*Error).Error", Method, 0},
-		{"(*Inst).MatchEmptyWidth", Method, 0},
-		{"(*Inst).MatchRune", Method, 0},
-		{"(*Inst).MatchRunePos", Method, 3},
-		{"(*Inst).String", Method, 0},
-		{"(*Prog).Prefix", Method, 0},
-		{"(*Prog).StartCond", Method, 0},
-		{"(*Prog).String", Method, 0},
-		{"(*Regexp).CapNames", Method, 0},
-		{"(*Regexp).Equal", Method, 0},
-		{"(*Regexp).MaxCap", Method, 0},
-		{"(*Regexp).Simplify", Method, 0},
-		{"(*Regexp).String", Method, 0},
-		{"(ErrorCode).String", Method, 0},
-		{"(InstOp).String", Method, 3},
-		{"(Op).String", Method, 11},
-		{"ClassNL", Const, 0},
-		{"Compile", Func, 0},
-		{"DotNL", Const, 0},
-		{"EmptyBeginLine", Const, 0},
-		{"EmptyBeginText", Const, 0},
-		{"EmptyEndLine", Const, 0},
-		{"EmptyEndText", Const, 0},
-		{"EmptyNoWordBoundary", Const, 0},
-		{"EmptyOp", Type, 0},
-		{"EmptyOpContext", Func, 0},
-		{"EmptyWordBoundary", Const, 0},
-		{"ErrInternalError", Const, 0},
-		{"ErrInvalidCharClass", Const, 0},
-		{"ErrInvalidCharRange", Const, 0},
-		{"ErrInvalidEscape", Const, 0},
-		{"ErrInvalidNamedCapture", Const, 0},
-		{"ErrInvalidPerlOp", Const, 0},
-		{"ErrInvalidRepeatOp", Const, 0},
-		{"ErrInvalidRepeatSize", Const, 0},
-		{"ErrInvalidUTF8", Const, 0},
-		{"ErrLarge", Const, 20},
-		{"ErrMissingBracket", Const, 0},
-		{"ErrMissingParen", Const, 0},
-		{"ErrMissingRepeatArgument", Const, 0},
-		{"ErrNestingDepth", Const, 19},
-		{"ErrTrailingBackslash", Const, 0},
-		{"ErrUnexpectedParen", Const, 1},
-		{"Error", Type, 0},
-		{"Error.Code", Field, 0},
-		{"Error.Expr", Field, 0},
-		{"ErrorCode", Type, 0},
-		{"Flags", Type, 0},
-		{"FoldCase", Const, 0},
-		{"Inst", Type, 0},
-		{"Inst.Arg", Field, 0},
-		{"Inst.Op", Field, 0},
-		{"Inst.Out", Field, 0},
-		{"Inst.Rune", Field, 0},
-		{"InstAlt", Const, 0},
-		{"InstAltMatch", Const, 0},
-		{"InstCapture", Const, 0},
-		{"InstEmptyWidth", Const, 0},
-		{"InstFail", Const, 0},
-		{"InstMatch", Const, 0},
-		{"InstNop", Const, 0},
-		{"InstOp", Type, 0},
-		{"InstRune", Const, 0},
-		{"InstRune1", Const, 0},
-		{"InstRuneAny", Const, 0},
-		{"InstRuneAnyNotNL", Const, 0},
-		{"IsWordChar", Func, 0},
-		{"Literal", Const, 0},
-		{"MatchNL", Const, 0},
-		{"NonGreedy", Const, 0},
-		{"OneLine", Const, 0},
-		{"Op", Type, 0},
-		{"OpAlternate", Const, 0},
-		{"OpAnyChar", Const, 0},
-		{"OpAnyCharNotNL", Const, 0},
-		{"OpBeginLine", Const, 0},
-		{"OpBeginText", Const, 0},
-		{"OpCapture", Const, 0},
-		{"OpCharClass", Const, 0},
-		{"OpConcat", Const, 0},
-		{"OpEmptyMatch", Const, 0},
-		{"OpEndLine", Const, 0},
-		{"OpEndText", Const, 0},
-		{"OpLiteral", Const, 0},
-		{"OpNoMatch", Const, 0},
-		{"OpNoWordBoundary", Const, 0},
-		{"OpPlus", Const, 0},
-		{"OpQuest", Const, 0},
-		{"OpRepeat", Const, 0},
-		{"OpStar", Const, 0},
-		{"OpWordBoundary", Const, 0},
-		{"POSIX", Const, 0},
-		{"Parse", Func, 0},
-		{"Perl", Const, 0},
-		{"PerlX", Const, 0},
-		{"Prog", Type, 0},
-		{"Prog.Inst", Field, 0},
-		{"Prog.NumCap", Field, 0},
-		{"Prog.Start", Field, 0},
-		{"Regexp", Type, 0},
-		{"Regexp.Cap", Field, 0},
-		{"Regexp.Flags", Field, 0},
-		{"Regexp.Max", Field, 0},
-		{"Regexp.Min", Field, 0},
-		{"Regexp.Name", Field, 0},
-		{"Regexp.Op", Field, 0},
-		{"Regexp.Rune", Field, 0},
-		{"Regexp.Rune0", Field, 0},
-		{"Regexp.Sub", Field, 0},
-		{"Regexp.Sub0", Field, 0},
-		{"Simple", Const, 0},
-		{"UnicodeGroups", Const, 0},
-		{"WasDollar", Const, 0},
+		{"(*Error).Error", Method, 0, ""},
+		{"(*Inst).MatchEmptyWidth", Method, 0, ""},
+		{"(*Inst).MatchRune", Method, 0, ""},
+		{"(*Inst).MatchRunePos", Method, 3, ""},
+		{"(*Inst).String", Method, 0, ""},
+		{"(*Prog).Prefix", Method, 0, ""},
+		{"(*Prog).StartCond", Method, 0, ""},
+		{"(*Prog).String", Method, 0, ""},
+		{"(*Regexp).CapNames", Method, 0, ""},
+		{"(*Regexp).Equal", Method, 0, ""},
+		{"(*Regexp).MaxCap", Method, 0, ""},
+		{"(*Regexp).Simplify", Method, 0, ""},
+		{"(*Regexp).String", Method, 0, ""},
+		{"(ErrorCode).String", Method, 0, ""},
+		{"(InstOp).String", Method, 3, ""},
+		{"(Op).String", Method, 11, ""},
+		{"ClassNL", Const, 0, ""},
+		{"Compile", Func, 0, "func(re *Regexp) (*Prog, error)"},
+		{"DotNL", Const, 0, ""},
+		{"EmptyBeginLine", Const, 0, ""},
+		{"EmptyBeginText", Const, 0, ""},
+		{"EmptyEndLine", Const, 0, ""},
+		{"EmptyEndText", Const, 0, ""},
+		{"EmptyNoWordBoundary", Const, 0, ""},
+		{"EmptyOp", Type, 0, ""},
+		{"EmptyOpContext", Func, 0, "func(r1 rune, r2 rune) EmptyOp"},
+		{"EmptyWordBoundary", Const, 0, ""},
+		{"ErrInternalError", Const, 0, ""},
+		{"ErrInvalidCharClass", Const, 0, ""},
+		{"ErrInvalidCharRange", Const, 0, ""},
+		{"ErrInvalidEscape", Const, 0, ""},
+		{"ErrInvalidNamedCapture", Const, 0, ""},
+		{"ErrInvalidPerlOp", Const, 0, ""},
+		{"ErrInvalidRepeatOp", Const, 0, ""},
+		{"ErrInvalidRepeatSize", Const, 0, ""},
+		{"ErrInvalidUTF8", Const, 0, ""},
+		{"ErrLarge", Const, 20, ""},
+		{"ErrMissingBracket", Const, 0, ""},
+		{"ErrMissingParen", Const, 0, ""},
+		{"ErrMissingRepeatArgument", Const, 0, ""},
+		{"ErrNestingDepth", Const, 19, ""},
+		{"ErrTrailingBackslash", Const, 0, ""},
+		{"ErrUnexpectedParen", Const, 1, ""},
+		{"Error", Type, 0, ""},
+		{"Error.Code", Field, 0, ""},
+		{"Error.Expr", Field, 0, ""},
+		{"ErrorCode", Type, 0, ""},
+		{"Flags", Type, 0, ""},
+		{"FoldCase", Const, 0, ""},
+		{"Inst", Type, 0, ""},
+		{"Inst.Arg", Field, 0, ""},
+		{"Inst.Op", Field, 0, ""},
+		{"Inst.Out", Field, 0, ""},
+		{"Inst.Rune", Field, 0, ""},
+		{"InstAlt", Const, 0, ""},
+		{"InstAltMatch", Const, 0, ""},
+		{"InstCapture", Const, 0, ""},
+		{"InstEmptyWidth", Const, 0, ""},
+		{"InstFail", Const, 0, ""},
+		{"InstMatch", Const, 0, ""},
+		{"InstNop", Const, 0, ""},
+		{"InstOp", Type, 0, ""},
+		{"InstRune", Const, 0, ""},
+		{"InstRune1", Const, 0, ""},
+		{"InstRuneAny", Const, 0, ""},
+		{"InstRuneAnyNotNL", Const, 0, ""},
+		{"IsWordChar", Func, 0, "func(r rune) bool"},
+		{"Literal", Const, 0, ""},
+		{"MatchNL", Const, 0, ""},
+		{"NonGreedy", Const, 0, ""},
+		{"OneLine", Const, 0, ""},
+		{"Op", Type, 0, ""},
+		{"OpAlternate", Const, 0, ""},
+		{"OpAnyChar", Const, 0, ""},
+		{"OpAnyCharNotNL", Const, 0, ""},
+		{"OpBeginLine", Const, 0, ""},
+		{"OpBeginText", Const, 0, ""},
+		{"OpCapture", Const, 0, ""},
+		{"OpCharClass", Const, 0, ""},
+		{"OpConcat", Const, 0, ""},
+		{"OpEmptyMatch", Const, 0, ""},
+		{"OpEndLine", Const, 0, ""},
+		{"OpEndText", Const, 0, ""},
+		{"OpLiteral", Const, 0, ""},
+		{"OpNoMatch", Const, 0, ""},
+		{"OpNoWordBoundary", Const, 0, ""},
+		{"OpPlus", Const, 0, ""},
+		{"OpQuest", Const, 0, ""},
+		{"OpRepeat", Const, 0, ""},
+		{"OpStar", Const, 0, ""},
+		{"OpWordBoundary", Const, 0, ""},
+		{"POSIX", Const, 0, ""},
+		{"Parse", Func, 0, "func(s string, flags Flags) (*Regexp, error)"},
+		{"Perl", Const, 0, ""},
+		{"PerlX", Const, 0, ""},
+		{"Prog", Type, 0, ""},
+		{"Prog.Inst", Field, 0, ""},
+		{"Prog.NumCap", Field, 0, ""},
+		{"Prog.Start", Field, 0, ""},
+		{"Regexp", Type, 0, ""},
+		{"Regexp.Cap", Field, 0, ""},
+		{"Regexp.Flags", Field, 0, ""},
+		{"Regexp.Max", Field, 0, ""},
+		{"Regexp.Min", Field, 0, ""},
+		{"Regexp.Name", Field, 0, ""},
+		{"Regexp.Op", Field, 0, ""},
+		{"Regexp.Rune", Field, 0, ""},
+		{"Regexp.Rune0", Field, 0, ""},
+		{"Regexp.Sub", Field, 0, ""},
+		{"Regexp.Sub0", Field, 0, ""},
+		{"Simple", Const, 0, ""},
+		{"UnicodeGroups", Const, 0, ""},
+		{"WasDollar", Const, 0, ""},
 	},
 	"runtime": {
-		{"(*BlockProfileRecord).Stack", Method, 1},
-		{"(*Frames).Next", Method, 7},
-		{"(*Func).Entry", Method, 0},
-		{"(*Func).FileLine", Method, 0},
-		{"(*Func).Name", Method, 0},
-		{"(*MemProfileRecord).InUseBytes", Method, 0},
-		{"(*MemProfileRecord).InUseObjects", Method, 0},
-		{"(*MemProfileRecord).Stack", Method, 0},
-		{"(*PanicNilError).Error", Method, 21},
-		{"(*PanicNilError).RuntimeError", Method, 21},
-		{"(*Pinner).Pin", Method, 21},
-		{"(*Pinner).Unpin", Method, 21},
-		{"(*StackRecord).Stack", Method, 0},
-		{"(*TypeAssertionError).Error", Method, 0},
-		{"(*TypeAssertionError).RuntimeError", Method, 0},
-		{"(Cleanup).Stop", Method, 24},
-		{"AddCleanup", Func, 24},
-		{"BlockProfile", Func, 1},
-		{"BlockProfileRecord", Type, 1},
-		{"BlockProfileRecord.Count", Field, 1},
-		{"BlockProfileRecord.Cycles", Field, 1},
-		{"BlockProfileRecord.StackRecord", Field, 1},
-		{"Breakpoint", Func, 0},
-		{"CPUProfile", Func, 0},
-		{"Caller", Func, 0},
-		{"Callers", Func, 0},
-		{"CallersFrames", Func, 7},
-		{"Cleanup", Type, 24},
-		{"Compiler", Const, 0},
-		{"Error", Type, 0},
-		{"Frame", Type, 7},
-		{"Frame.Entry", Field, 7},
-		{"Frame.File", Field, 7},
-		{"Frame.Func", Field, 7},
-		{"Frame.Function", Field, 7},
-		{"Frame.Line", Field, 7},
-		{"Frame.PC", Field, 7},
-		{"Frames", Type, 7},
-		{"Func", Type, 0},
-		{"FuncForPC", Func, 0},
-		{"GC", Func, 0},
-		{"GOARCH", Const, 0},
-		{"GOMAXPROCS", Func, 0},
-		{"GOOS", Const, 0},
-		{"GOROOT", Func, 0},
-		{"Goexit", Func, 0},
-		{"GoroutineProfile", Func, 0},
-		{"Gosched", Func, 0},
-		{"KeepAlive", Func, 7},
-		{"LockOSThread", Func, 0},
-		{"MemProfile", Func, 0},
-		{"MemProfileRate", Var, 0},
-		{"MemProfileRecord", Type, 0},
-		{"MemProfileRecord.AllocBytes", Field, 0},
-		{"MemProfileRecord.AllocObjects", Field, 0},
-		{"MemProfileRecord.FreeBytes", Field, 0},
-		{"MemProfileRecord.FreeObjects", Field, 0},
-		{"MemProfileRecord.Stack0", Field, 0},
-		{"MemStats", Type, 0},
-		{"MemStats.Alloc", Field, 0},
-		{"MemStats.BuckHashSys", Field, 0},
-		{"MemStats.BySize", Field, 0},
-		{"MemStats.DebugGC", Field, 0},
-		{"MemStats.EnableGC", Field, 0},
-		{"MemStats.Frees", Field, 0},
-		{"MemStats.GCCPUFraction", Field, 5},
-		{"MemStats.GCSys", Field, 2},
-		{"MemStats.HeapAlloc", Field, 0},
-		{"MemStats.HeapIdle", Field, 0},
-		{"MemStats.HeapInuse", Field, 0},
-		{"MemStats.HeapObjects", Field, 0},
-		{"MemStats.HeapReleased", Field, 0},
-		{"MemStats.HeapSys", Field, 0},
-		{"MemStats.LastGC", Field, 0},
-		{"MemStats.Lookups", Field, 0},
-		{"MemStats.MCacheInuse", Field, 0},
-		{"MemStats.MCacheSys", Field, 0},
-		{"MemStats.MSpanInuse", Field, 0},
-		{"MemStats.MSpanSys", Field, 0},
-		{"MemStats.Mallocs", Field, 0},
-		{"MemStats.NextGC", Field, 0},
-		{"MemStats.NumForcedGC", Field, 8},
-		{"MemStats.NumGC", Field, 0},
-		{"MemStats.OtherSys", Field, 2},
-		{"MemStats.PauseEnd", Field, 4},
-		{"MemStats.PauseNs", Field, 0},
-		{"MemStats.PauseTotalNs", Field, 0},
-		{"MemStats.StackInuse", Field, 0},
-		{"MemStats.StackSys", Field, 0},
-		{"MemStats.Sys", Field, 0},
-		{"MemStats.TotalAlloc", Field, 0},
-		{"MutexProfile", Func, 8},
-		{"NumCPU", Func, 0},
-		{"NumCgoCall", Func, 0},
-		{"NumGoroutine", Func, 0},
-		{"PanicNilError", Type, 21},
-		{"Pinner", Type, 21},
-		{"ReadMemStats", Func, 0},
-		{"ReadTrace", Func, 5},
-		{"SetBlockProfileRate", Func, 1},
-		{"SetCPUProfileRate", Func, 0},
-		{"SetCgoTraceback", Func, 7},
-		{"SetFinalizer", Func, 0},
-		{"SetMutexProfileFraction", Func, 8},
-		{"Stack", Func, 0},
-		{"StackRecord", Type, 0},
-		{"StackRecord.Stack0", Field, 0},
-		{"StartTrace", Func, 5},
-		{"StopTrace", Func, 5},
-		{"ThreadCreateProfile", Func, 0},
-		{"TypeAssertionError", Type, 0},
-		{"UnlockOSThread", Func, 0},
-		{"Version", Func, 0},
+		{"(*BlockProfileRecord).Stack", Method, 1, ""},
+		{"(*Frames).Next", Method, 7, ""},
+		{"(*Func).Entry", Method, 0, ""},
+		{"(*Func).FileLine", Method, 0, ""},
+		{"(*Func).Name", Method, 0, ""},
+		{"(*MemProfileRecord).InUseBytes", Method, 0, ""},
+		{"(*MemProfileRecord).InUseObjects", Method, 0, ""},
+		{"(*MemProfileRecord).Stack", Method, 0, ""},
+		{"(*PanicNilError).Error", Method, 21, ""},
+		{"(*PanicNilError).RuntimeError", Method, 21, ""},
+		{"(*Pinner).Pin", Method, 21, ""},
+		{"(*Pinner).Unpin", Method, 21, ""},
+		{"(*StackRecord).Stack", Method, 0, ""},
+		{"(*TypeAssertionError).Error", Method, 0, ""},
+		{"(*TypeAssertionError).RuntimeError", Method, 0, ""},
+		{"(Cleanup).Stop", Method, 24, ""},
+		{"AddCleanup", Func, 24, "func[T, S any](ptr *T, cleanup func(S), arg S) Cleanup"},
+		{"BlockProfile", Func, 1, "func(p []BlockProfileRecord) (n int, ok bool)"},
+		{"BlockProfileRecord", Type, 1, ""},
+		{"BlockProfileRecord.Count", Field, 1, ""},
+		{"BlockProfileRecord.Cycles", Field, 1, ""},
+		{"BlockProfileRecord.StackRecord", Field, 1, ""},
+		{"Breakpoint", Func, 0, "func()"},
+		{"CPUProfile", Func, 0, "func() []byte"},
+		{"Caller", Func, 0, "func(skip int) (pc uintptr, file string, line int, ok bool)"},
+		{"Callers", Func, 0, "func(skip int, pc []uintptr) int"},
+		{"CallersFrames", Func, 7, "func(callers []uintptr) *Frames"},
+		{"Cleanup", Type, 24, ""},
+		{"Compiler", Const, 0, ""},
+		{"Error", Type, 0, ""},
+		{"Frame", Type, 7, ""},
+		{"Frame.Entry", Field, 7, ""},
+		{"Frame.File", Field, 7, ""},
+		{"Frame.Func", Field, 7, ""},
+		{"Frame.Function", Field, 7, ""},
+		{"Frame.Line", Field, 7, ""},
+		{"Frame.PC", Field, 7, ""},
+		{"Frames", Type, 7, ""},
+		{"Func", Type, 0, ""},
+		{"FuncForPC", Func, 0, "func(pc uintptr) *Func"},
+		{"GC", Func, 0, "func()"},
+		{"GOARCH", Const, 0, ""},
+		{"GOMAXPROCS", Func, 0, "func(n int) int"},
+		{"GOOS", Const, 0, ""},
+		{"GOROOT", Func, 0, "func() string"},
+		{"Goexit", Func, 0, "func()"},
+		{"GoroutineProfile", Func, 0, "func(p []StackRecord) (n int, ok bool)"},
+		{"Gosched", Func, 0, "func()"},
+		{"KeepAlive", Func, 7, "func(x any)"},
+		{"LockOSThread", Func, 0, "func()"},
+		{"MemProfile", Func, 0, "func(p []MemProfileRecord, inuseZero bool) (n int, ok bool)"},
+		{"MemProfileRate", Var, 0, ""},
+		{"MemProfileRecord", Type, 0, ""},
+		{"MemProfileRecord.AllocBytes", Field, 0, ""},
+		{"MemProfileRecord.AllocObjects", Field, 0, ""},
+		{"MemProfileRecord.FreeBytes", Field, 0, ""},
+		{"MemProfileRecord.FreeObjects", Field, 0, ""},
+		{"MemProfileRecord.Stack0", Field, 0, ""},
+		{"MemStats", Type, 0, ""},
+		{"MemStats.Alloc", Field, 0, ""},
+		{"MemStats.BuckHashSys", Field, 0, ""},
+		{"MemStats.BySize", Field, 0, ""},
+		{"MemStats.DebugGC", Field, 0, ""},
+		{"MemStats.EnableGC", Field, 0, ""},
+		{"MemStats.Frees", Field, 0, ""},
+		{"MemStats.GCCPUFraction", Field, 5, ""},
+		{"MemStats.GCSys", Field, 2, ""},
+		{"MemStats.HeapAlloc", Field, 0, ""},
+		{"MemStats.HeapIdle", Field, 0, ""},
+		{"MemStats.HeapInuse", Field, 0, ""},
+		{"MemStats.HeapObjects", Field, 0, ""},
+		{"MemStats.HeapReleased", Field, 0, ""},
+		{"MemStats.HeapSys", Field, 0, ""},
+		{"MemStats.LastGC", Field, 0, ""},
+		{"MemStats.Lookups", Field, 0, ""},
+		{"MemStats.MCacheInuse", Field, 0, ""},
+		{"MemStats.MCacheSys", Field, 0, ""},
+		{"MemStats.MSpanInuse", Field, 0, ""},
+		{"MemStats.MSpanSys", Field, 0, ""},
+		{"MemStats.Mallocs", Field, 0, ""},
+		{"MemStats.NextGC", Field, 0, ""},
+		{"MemStats.NumForcedGC", Field, 8, ""},
+		{"MemStats.NumGC", Field, 0, ""},
+		{"MemStats.OtherSys", Field, 2, ""},
+		{"MemStats.PauseEnd", Field, 4, ""},
+		{"MemStats.PauseNs", Field, 0, ""},
+		{"MemStats.PauseTotalNs", Field, 0, ""},
+		{"MemStats.StackInuse", Field, 0, ""},
+		{"MemStats.StackSys", Field, 0, ""},
+		{"MemStats.Sys", Field, 0, ""},
+		{"MemStats.TotalAlloc", Field, 0, ""},
+		{"MutexProfile", Func, 8, "func(p []BlockProfileRecord) (n int, ok bool)"},
+		{"NumCPU", Func, 0, "func() int"},
+		{"NumCgoCall", Func, 0, "func() int64"},
+		{"NumGoroutine", Func, 0, "func() int"},
+		{"PanicNilError", Type, 21, ""},
+		{"Pinner", Type, 21, ""},
+		{"ReadMemStats", Func, 0, "func(m *MemStats)"},
+		{"ReadTrace", Func, 5, "func() []byte"},
+		{"SetBlockProfileRate", Func, 1, "func(rate int)"},
+		{"SetCPUProfileRate", Func, 0, "func(hz int)"},
+		{"SetCgoTraceback", Func, 7, "func(version int, traceback unsafe.Pointer, context unsafe.Pointer, symbolizer unsafe.Pointer)"},
+		{"SetDefaultGOMAXPROCS", Func, 25, "func()"},
+		{"SetFinalizer", Func, 0, "func(obj any, finalizer any)"},
+		{"SetMutexProfileFraction", Func, 8, "func(rate int) int"},
+		{"Stack", Func, 0, "func(buf []byte, all bool) int"},
+		{"StackRecord", Type, 0, ""},
+		{"StackRecord.Stack0", Field, 0, ""},
+		{"StartTrace", Func, 5, "func() error"},
+		{"StopTrace", Func, 5, "func()"},
+		{"ThreadCreateProfile", Func, 0, "func(p []StackRecord) (n int, ok bool)"},
+		{"TypeAssertionError", Type, 0, ""},
+		{"UnlockOSThread", Func, 0, "func()"},
+		{"Version", Func, 0, "func() string"},
 	},
 	"runtime/cgo": {
-		{"(Handle).Delete", Method, 17},
-		{"(Handle).Value", Method, 17},
-		{"Handle", Type, 17},
-		{"Incomplete", Type, 20},
-		{"NewHandle", Func, 17},
+		{"(Handle).Delete", Method, 17, ""},
+		{"(Handle).Value", Method, 17, ""},
+		{"Handle", Type, 17, ""},
+		{"Incomplete", Type, 20, ""},
+		{"NewHandle", Func, 17, ""},
 	},
 	"runtime/coverage": {
-		{"ClearCounters", Func, 20},
-		{"WriteCounters", Func, 20},
-		{"WriteCountersDir", Func, 20},
-		{"WriteMeta", Func, 20},
-		{"WriteMetaDir", Func, 20},
+		{"ClearCounters", Func, 20, "func() error"},
+		{"WriteCounters", Func, 20, "func(w io.Writer) error"},
+		{"WriteCountersDir", Func, 20, "func(dir string) error"},
+		{"WriteMeta", Func, 20, "func(w io.Writer) error"},
+		{"WriteMetaDir", Func, 20, "func(dir string) error"},
 	},
 	"runtime/debug": {
-		{"(*BuildInfo).String", Method, 18},
-		{"BuildInfo", Type, 12},
-		{"BuildInfo.Deps", Field, 12},
-		{"BuildInfo.GoVersion", Field, 18},
-		{"BuildInfo.Main", Field, 12},
-		{"BuildInfo.Path", Field, 12},
-		{"BuildInfo.Settings", Field, 18},
-		{"BuildSetting", Type, 18},
-		{"BuildSetting.Key", Field, 18},
-		{"BuildSetting.Value", Field, 18},
-		{"CrashOptions", Type, 23},
-		{"FreeOSMemory", Func, 1},
-		{"GCStats", Type, 1},
-		{"GCStats.LastGC", Field, 1},
-		{"GCStats.NumGC", Field, 1},
-		{"GCStats.Pause", Field, 1},
-		{"GCStats.PauseEnd", Field, 4},
-		{"GCStats.PauseQuantiles", Field, 1},
-		{"GCStats.PauseTotal", Field, 1},
-		{"Module", Type, 12},
-		{"Module.Path", Field, 12},
-		{"Module.Replace", Field, 12},
-		{"Module.Sum", Field, 12},
-		{"Module.Version", Field, 12},
-		{"ParseBuildInfo", Func, 18},
-		{"PrintStack", Func, 0},
-		{"ReadBuildInfo", Func, 12},
-		{"ReadGCStats", Func, 1},
-		{"SetCrashOutput", Func, 23},
-		{"SetGCPercent", Func, 1},
-		{"SetMaxStack", Func, 2},
-		{"SetMaxThreads", Func, 2},
-		{"SetMemoryLimit", Func, 19},
-		{"SetPanicOnFault", Func, 3},
-		{"SetTraceback", Func, 6},
-		{"Stack", Func, 0},
-		{"WriteHeapDump", Func, 3},
+		{"(*BuildInfo).String", Method, 18, ""},
+		{"BuildInfo", Type, 12, ""},
+		{"BuildInfo.Deps", Field, 12, ""},
+		{"BuildInfo.GoVersion", Field, 18, ""},
+		{"BuildInfo.Main", Field, 12, ""},
+		{"BuildInfo.Path", Field, 12, ""},
+		{"BuildInfo.Settings", Field, 18, ""},
+		{"BuildSetting", Type, 18, ""},
+		{"BuildSetting.Key", Field, 18, ""},
+		{"BuildSetting.Value", Field, 18, ""},
+		{"CrashOptions", Type, 23, ""},
+		{"FreeOSMemory", Func, 1, "func()"},
+		{"GCStats", Type, 1, ""},
+		{"GCStats.LastGC", Field, 1, ""},
+		{"GCStats.NumGC", Field, 1, ""},
+		{"GCStats.Pause", Field, 1, ""},
+		{"GCStats.PauseEnd", Field, 4, ""},
+		{"GCStats.PauseQuantiles", Field, 1, ""},
+		{"GCStats.PauseTotal", Field, 1, ""},
+		{"Module", Type, 12, ""},
+		{"Module.Path", Field, 12, ""},
+		{"Module.Replace", Field, 12, ""},
+		{"Module.Sum", Field, 12, ""},
+		{"Module.Version", Field, 12, ""},
+		{"ParseBuildInfo", Func, 18, "func(data string) (bi *BuildInfo, err error)"},
+		{"PrintStack", Func, 0, "func()"},
+		{"ReadBuildInfo", Func, 12, "func() (info *BuildInfo, ok bool)"},
+		{"ReadGCStats", Func, 1, "func(stats *GCStats)"},
+		{"SetCrashOutput", Func, 23, "func(f *os.File, opts CrashOptions) error"},
+		{"SetGCPercent", Func, 1, "func(percent int) int"},
+		{"SetMaxStack", Func, 2, "func(bytes int) int"},
+		{"SetMaxThreads", Func, 2, "func(threads int) int"},
+		{"SetMemoryLimit", Func, 19, "func(limit int64) int64"},
+		{"SetPanicOnFault", Func, 3, "func(enabled bool) bool"},
+		{"SetTraceback", Func, 6, "func(level string)"},
+		{"Stack", Func, 0, "func() []byte"},
+		{"WriteHeapDump", Func, 3, "func(fd uintptr)"},
 	},
 	"runtime/metrics": {
-		{"(Value).Float64", Method, 16},
-		{"(Value).Float64Histogram", Method, 16},
-		{"(Value).Kind", Method, 16},
-		{"(Value).Uint64", Method, 16},
-		{"All", Func, 16},
-		{"Description", Type, 16},
-		{"Description.Cumulative", Field, 16},
-		{"Description.Description", Field, 16},
-		{"Description.Kind", Field, 16},
-		{"Description.Name", Field, 16},
-		{"Float64Histogram", Type, 16},
-		{"Float64Histogram.Buckets", Field, 16},
-		{"Float64Histogram.Counts", Field, 16},
-		{"KindBad", Const, 16},
-		{"KindFloat64", Const, 16},
-		{"KindFloat64Histogram", Const, 16},
-		{"KindUint64", Const, 16},
-		{"Read", Func, 16},
-		{"Sample", Type, 16},
-		{"Sample.Name", Field, 16},
-		{"Sample.Value", Field, 16},
-		{"Value", Type, 16},
-		{"ValueKind", Type, 16},
+		{"(Value).Float64", Method, 16, ""},
+		{"(Value).Float64Histogram", Method, 16, ""},
+		{"(Value).Kind", Method, 16, ""},
+		{"(Value).Uint64", Method, 16, ""},
+		{"All", Func, 16, "func() []Description"},
+		{"Description", Type, 16, ""},
+		{"Description.Cumulative", Field, 16, ""},
+		{"Description.Description", Field, 16, ""},
+		{"Description.Kind", Field, 16, ""},
+		{"Description.Name", Field, 16, ""},
+		{"Float64Histogram", Type, 16, ""},
+		{"Float64Histogram.Buckets", Field, 16, ""},
+		{"Float64Histogram.Counts", Field, 16, ""},
+		{"KindBad", Const, 16, ""},
+		{"KindFloat64", Const, 16, ""},
+		{"KindFloat64Histogram", Const, 16, ""},
+		{"KindUint64", Const, 16, ""},
+		{"Read", Func, 16, "func(m []Sample)"},
+		{"Sample", Type, 16, ""},
+		{"Sample.Name", Field, 16, ""},
+		{"Sample.Value", Field, 16, ""},
+		{"Value", Type, 16, ""},
+		{"ValueKind", Type, 16, ""},
 	},
 	"runtime/pprof": {
-		{"(*Profile).Add", Method, 0},
-		{"(*Profile).Count", Method, 0},
-		{"(*Profile).Name", Method, 0},
-		{"(*Profile).Remove", Method, 0},
-		{"(*Profile).WriteTo", Method, 0},
-		{"Do", Func, 9},
-		{"ForLabels", Func, 9},
-		{"Label", Func, 9},
-		{"LabelSet", Type, 9},
-		{"Labels", Func, 9},
-		{"Lookup", Func, 0},
-		{"NewProfile", Func, 0},
-		{"Profile", Type, 0},
-		{"Profiles", Func, 0},
-		{"SetGoroutineLabels", Func, 9},
-		{"StartCPUProfile", Func, 0},
-		{"StopCPUProfile", Func, 0},
-		{"WithLabels", Func, 9},
-		{"WriteHeapProfile", Func, 0},
+		{"(*Profile).Add", Method, 0, ""},
+		{"(*Profile).Count", Method, 0, ""},
+		{"(*Profile).Name", Method, 0, ""},
+		{"(*Profile).Remove", Method, 0, ""},
+		{"(*Profile).WriteTo", Method, 0, ""},
+		{"Do", Func, 9, "func(ctx context.Context, labels LabelSet, f func(context.Context))"},
+		{"ForLabels", Func, 9, "func(ctx context.Context, f func(key string, value string) bool)"},
+		{"Label", Func, 9, "func(ctx context.Context, key string) (string, bool)"},
+		{"LabelSet", Type, 9, ""},
+		{"Labels", Func, 9, "func(args ...string) LabelSet"},
+		{"Lookup", Func, 0, "func(name string) *Profile"},
+		{"NewProfile", Func, 0, "func(name string) *Profile"},
+		{"Profile", Type, 0, ""},
+		{"Profiles", Func, 0, "func() []*Profile"},
+		{"SetGoroutineLabels", Func, 9, "func(ctx context.Context)"},
+		{"StartCPUProfile", Func, 0, "func(w io.Writer) error"},
+		{"StopCPUProfile", Func, 0, "func()"},
+		{"WithLabels", Func, 9, "func(ctx context.Context, labels LabelSet) context.Context"},
+		{"WriteHeapProfile", Func, 0, "func(w io.Writer) error"},
 	},
 	"runtime/trace": {
-		{"(*Region).End", Method, 11},
-		{"(*Task).End", Method, 11},
-		{"IsEnabled", Func, 11},
-		{"Log", Func, 11},
-		{"Logf", Func, 11},
-		{"NewTask", Func, 11},
-		{"Region", Type, 11},
-		{"Start", Func, 5},
-		{"StartRegion", Func, 11},
-		{"Stop", Func, 5},
-		{"Task", Type, 11},
-		{"WithRegion", Func, 11},
+		{"(*FlightRecorder).Enabled", Method, 25, ""},
+		{"(*FlightRecorder).Start", Method, 25, ""},
+		{"(*FlightRecorder).Stop", Method, 25, ""},
+		{"(*FlightRecorder).WriteTo", Method, 25, ""},
+		{"(*Region).End", Method, 11, ""},
+		{"(*Task).End", Method, 11, ""},
+		{"FlightRecorder", Type, 25, ""},
+		{"FlightRecorderConfig", Type, 25, ""},
+		{"FlightRecorderConfig.MaxBytes", Field, 25, ""},
+		{"FlightRecorderConfig.MinAge", Field, 25, ""},
+		{"IsEnabled", Func, 11, "func() bool"},
+		{"Log", Func, 11, "func(ctx context.Context, category string, message string)"},
+		{"Logf", Func, 11, "func(ctx context.Context, category string, format string, args ...any)"},
+		{"NewFlightRecorder", Func, 25, "func(cfg FlightRecorderConfig) *FlightRecorder"},
+		{"NewTask", Func, 11, "func(pctx context.Context, taskType string) (ctx context.Context, task *Task)"},
+		{"Region", Type, 11, ""},
+		{"Start", Func, 5, "func(w io.Writer) error"},
+		{"StartRegion", Func, 11, "func(ctx context.Context, regionType string) *Region"},
+		{"Stop", Func, 5, "func()"},
+		{"Task", Type, 11, ""},
+		{"WithRegion", Func, 11, "func(ctx context.Context, regionType string, fn func())"},
 	},
 	"slices": {
-		{"All", Func, 23},
-		{"AppendSeq", Func, 23},
-		{"Backward", Func, 23},
-		{"BinarySearch", Func, 21},
-		{"BinarySearchFunc", Func, 21},
-		{"Chunk", Func, 23},
-		{"Clip", Func, 21},
-		{"Clone", Func, 21},
-		{"Collect", Func, 23},
-		{"Compact", Func, 21},
-		{"CompactFunc", Func, 21},
-		{"Compare", Func, 21},
-		{"CompareFunc", Func, 21},
-		{"Concat", Func, 22},
-		{"Contains", Func, 21},
-		{"ContainsFunc", Func, 21},
-		{"Delete", Func, 21},
-		{"DeleteFunc", Func, 21},
-		{"Equal", Func, 21},
-		{"EqualFunc", Func, 21},
-		{"Grow", Func, 21},
-		{"Index", Func, 21},
-		{"IndexFunc", Func, 21},
-		{"Insert", Func, 21},
-		{"IsSorted", Func, 21},
-		{"IsSortedFunc", Func, 21},
-		{"Max", Func, 21},
-		{"MaxFunc", Func, 21},
-		{"Min", Func, 21},
-		{"MinFunc", Func, 21},
-		{"Repeat", Func, 23},
-		{"Replace", Func, 21},
-		{"Reverse", Func, 21},
-		{"Sort", Func, 21},
-		{"SortFunc", Func, 21},
-		{"SortStableFunc", Func, 21},
-		{"Sorted", Func, 23},
-		{"SortedFunc", Func, 23},
-		{"SortedStableFunc", Func, 23},
-		{"Values", Func, 23},
+		{"All", Func, 23, "func[Slice ~[]E, E any](s Slice) iter.Seq2[int, E]"},
+		{"AppendSeq", Func, 23, "func[Slice ~[]E, E any](s Slice, seq iter.Seq[E]) Slice"},
+		{"Backward", Func, 23, "func[Slice ~[]E, E any](s Slice) iter.Seq2[int, E]"},
+		{"BinarySearch", Func, 21, "func[S ~[]E, E cmp.Ordered](x S, target E) (int, bool)"},
+		{"BinarySearchFunc", Func, 21, "func[S ~[]E, E, T any](x S, target T, cmp func(E, T) int) (int, bool)"},
+		{"Chunk", Func, 23, "func[Slice ~[]E, E any](s Slice, n int) iter.Seq[Slice]"},
+		{"Clip", Func, 21, "func[S ~[]E, E any](s S) S"},
+		{"Clone", Func, 21, "func[S ~[]E, E any](s S) S"},
+		{"Collect", Func, 23, "func[E any](seq iter.Seq[E]) []E"},
+		{"Compact", Func, 21, "func[S ~[]E, E comparable](s S) S"},
+		{"CompactFunc", Func, 21, "func[S ~[]E, E any](s S, eq func(E, E) bool) S"},
+		{"Compare", Func, 21, "func[S ~[]E, E cmp.Ordered](s1 S, s2 S) int"},
+		{"CompareFunc", Func, 21, "func[S1 ~[]E1, S2 ~[]E2, E1, E2 any](s1 S1, s2 S2, cmp func(E1, E2) int) int"},
+		{"Concat", Func, 22, "func[S ~[]E, E any](slices ...S) S"},
+		{"Contains", Func, 21, "func[S ~[]E, E comparable](s S, v E) bool"},
+		{"ContainsFunc", Func, 21, "func[S ~[]E, E any](s S, f func(E) bool) bool"},
+		{"Delete", Func, 21, "func[S ~[]E, E any](s S, i int, j int) S"},
+		{"DeleteFunc", Func, 21, "func[S ~[]E, E any](s S, del func(E) bool) S"},
+		{"Equal", Func, 21, "func[S ~[]E, E comparable](s1 S, s2 S) bool"},
+		{"EqualFunc", Func, 21, "func[S1 ~[]E1, S2 ~[]E2, E1, E2 any](s1 S1, s2 S2, eq func(E1, E2) bool) bool"},
+		{"Grow", Func, 21, "func[S ~[]E, E any](s S, n int) S"},
+		{"Index", Func, 21, "func[S ~[]E, E comparable](s S, v E) int"},
+		{"IndexFunc", Func, 21, "func[S ~[]E, E any](s S, f func(E) bool) int"},
+		{"Insert", Func, 21, "func[S ~[]E, E any](s S, i int, v ...E) S"},
+		{"IsSorted", Func, 21, "func[S ~[]E, E cmp.Ordered](x S) bool"},
+		{"IsSortedFunc", Func, 21, "func[S ~[]E, E any](x S, cmp func(a E, b E) int) bool"},
+		{"Max", Func, 21, "func[S ~[]E, E cmp.Ordered](x S) E"},
+		{"MaxFunc", Func, 21, "func[S ~[]E, E any](x S, cmp func(a E, b E) int) E"},
+		{"Min", Func, 21, "func[S ~[]E, E cmp.Ordered](x S) E"},
+		{"MinFunc", Func, 21, "func[S ~[]E, E any](x S, cmp func(a E, b E) int) E"},
+		{"Repeat", Func, 23, "func[S ~[]E, E any](x S, count int) S"},
+		{"Replace", Func, 21, "func[S ~[]E, E any](s S, i int, j int, v ...E) S"},
+		{"Reverse", Func, 21, "func[S ~[]E, E any](s S)"},
+		{"Sort", Func, 21, "func[S ~[]E, E cmp.Ordered](x S)"},
+		{"SortFunc", Func, 21, "func[S ~[]E, E any](x S, cmp func(a E, b E) int)"},
+		{"SortStableFunc", Func, 21, "func[S ~[]E, E any](x S, cmp func(a E, b E) int)"},
+		{"Sorted", Func, 23, "func[E cmp.Ordered](seq iter.Seq[E]) []E"},
+		{"SortedFunc", Func, 23, "func[E any](seq iter.Seq[E], cmp func(E, E) int) []E"},
+		{"SortedStableFunc", Func, 23, "func[E any](seq iter.Seq[E], cmp func(E, E) int) []E"},
+		{"Values", Func, 23, "func[Slice ~[]E, E any](s Slice) iter.Seq[E]"},
 	},
 	"sort": {
-		{"(Float64Slice).Len", Method, 0},
-		{"(Float64Slice).Less", Method, 0},
-		{"(Float64Slice).Search", Method, 0},
-		{"(Float64Slice).Sort", Method, 0},
-		{"(Float64Slice).Swap", Method, 0},
-		{"(IntSlice).Len", Method, 0},
-		{"(IntSlice).Less", Method, 0},
-		{"(IntSlice).Search", Method, 0},
-		{"(IntSlice).Sort", Method, 0},
-		{"(IntSlice).Swap", Method, 0},
-		{"(StringSlice).Len", Method, 0},
-		{"(StringSlice).Less", Method, 0},
-		{"(StringSlice).Search", Method, 0},
-		{"(StringSlice).Sort", Method, 0},
-		{"(StringSlice).Swap", Method, 0},
-		{"Find", Func, 19},
-		{"Float64Slice", Type, 0},
-		{"Float64s", Func, 0},
-		{"Float64sAreSorted", Func, 0},
-		{"IntSlice", Type, 0},
-		{"Interface", Type, 0},
-		{"Ints", Func, 0},
-		{"IntsAreSorted", Func, 0},
-		{"IsSorted", Func, 0},
-		{"Reverse", Func, 1},
-		{"Search", Func, 0},
-		{"SearchFloat64s", Func, 0},
-		{"SearchInts", Func, 0},
-		{"SearchStrings", Func, 0},
-		{"Slice", Func, 8},
-		{"SliceIsSorted", Func, 8},
-		{"SliceStable", Func, 8},
-		{"Sort", Func, 0},
-		{"Stable", Func, 2},
-		{"StringSlice", Type, 0},
-		{"Strings", Func, 0},
-		{"StringsAreSorted", Func, 0},
+		{"(Float64Slice).Len", Method, 0, ""},
+		{"(Float64Slice).Less", Method, 0, ""},
+		{"(Float64Slice).Search", Method, 0, ""},
+		{"(Float64Slice).Sort", Method, 0, ""},
+		{"(Float64Slice).Swap", Method, 0, ""},
+		{"(IntSlice).Len", Method, 0, ""},
+		{"(IntSlice).Less", Method, 0, ""},
+		{"(IntSlice).Search", Method, 0, ""},
+		{"(IntSlice).Sort", Method, 0, ""},
+		{"(IntSlice).Swap", Method, 0, ""},
+		{"(StringSlice).Len", Method, 0, ""},
+		{"(StringSlice).Less", Method, 0, ""},
+		{"(StringSlice).Search", Method, 0, ""},
+		{"(StringSlice).Sort", Method, 0, ""},
+		{"(StringSlice).Swap", Method, 0, ""},
+		{"Find", Func, 19, "func(n int, cmp func(int) int) (i int, found bool)"},
+		{"Float64Slice", Type, 0, ""},
+		{"Float64s", Func, 0, "func(x []float64)"},
+		{"Float64sAreSorted", Func, 0, "func(x []float64) bool"},
+		{"IntSlice", Type, 0, ""},
+		{"Interface", Type, 0, ""},
+		{"Ints", Func, 0, "func(x []int)"},
+		{"IntsAreSorted", Func, 0, "func(x []int) bool"},
+		{"IsSorted", Func, 0, "func(data Interface) bool"},
+		{"Reverse", Func, 1, "func(data Interface) Interface"},
+		{"Search", Func, 0, "func(n int, f func(int) bool) int"},
+		{"SearchFloat64s", Func, 0, "func(a []float64, x float64) int"},
+		{"SearchInts", Func, 0, "func(a []int, x int) int"},
+		{"SearchStrings", Func, 0, "func(a []string, x string) int"},
+		{"Slice", Func, 8, "func(x any, less func(i int, j int) bool)"},
+		{"SliceIsSorted", Func, 8, "func(x any, less func(i int, j int) bool) bool"},
+		{"SliceStable", Func, 8, "func(x any, less func(i int, j int) bool)"},
+		{"Sort", Func, 0, "func(data Interface)"},
+		{"Stable", Func, 2, "func(data Interface)"},
+		{"StringSlice", Type, 0, ""},
+		{"Strings", Func, 0, "func(x []string)"},
+		{"StringsAreSorted", Func, 0, "func(x []string) bool"},
 	},
 	"strconv": {
-		{"(*NumError).Error", Method, 0},
-		{"(*NumError).Unwrap", Method, 14},
-		{"AppendBool", Func, 0},
-		{"AppendFloat", Func, 0},
-		{"AppendInt", Func, 0},
-		{"AppendQuote", Func, 0},
-		{"AppendQuoteRune", Func, 0},
-		{"AppendQuoteRuneToASCII", Func, 0},
-		{"AppendQuoteRuneToGraphic", Func, 6},
-		{"AppendQuoteToASCII", Func, 0},
-		{"AppendQuoteToGraphic", Func, 6},
-		{"AppendUint", Func, 0},
-		{"Atoi", Func, 0},
-		{"CanBackquote", Func, 0},
-		{"ErrRange", Var, 0},
-		{"ErrSyntax", Var, 0},
-		{"FormatBool", Func, 0},
-		{"FormatComplex", Func, 15},
-		{"FormatFloat", Func, 0},
-		{"FormatInt", Func, 0},
-		{"FormatUint", Func, 0},
-		{"IntSize", Const, 0},
-		{"IsGraphic", Func, 6},
-		{"IsPrint", Func, 0},
-		{"Itoa", Func, 0},
-		{"NumError", Type, 0},
-		{"NumError.Err", Field, 0},
-		{"NumError.Func", Field, 0},
-		{"NumError.Num", Field, 0},
-		{"ParseBool", Func, 0},
-		{"ParseComplex", Func, 15},
-		{"ParseFloat", Func, 0},
-		{"ParseInt", Func, 0},
-		{"ParseUint", Func, 0},
-		{"Quote", Func, 0},
-		{"QuoteRune", Func, 0},
-		{"QuoteRuneToASCII", Func, 0},
-		{"QuoteRuneToGraphic", Func, 6},
-		{"QuoteToASCII", Func, 0},
-		{"QuoteToGraphic", Func, 6},
-		{"QuotedPrefix", Func, 17},
-		{"Unquote", Func, 0},
-		{"UnquoteChar", Func, 0},
+		{"(*NumError).Error", Method, 0, ""},
+		{"(*NumError).Unwrap", Method, 14, ""},
+		{"AppendBool", Func, 0, "func(dst []byte, b bool) []byte"},
+		{"AppendFloat", Func, 0, "func(dst []byte, f float64, fmt byte, prec int, bitSize int) []byte"},
+		{"AppendInt", Func, 0, "func(dst []byte, i int64, base int) []byte"},
+		{"AppendQuote", Func, 0, "func(dst []byte, s string) []byte"},
+		{"AppendQuoteRune", Func, 0, "func(dst []byte, r rune) []byte"},
+		{"AppendQuoteRuneToASCII", Func, 0, "func(dst []byte, r rune) []byte"},
+		{"AppendQuoteRuneToGraphic", Func, 6, "func(dst []byte, r rune) []byte"},
+		{"AppendQuoteToASCII", Func, 0, "func(dst []byte, s string) []byte"},
+		{"AppendQuoteToGraphic", Func, 6, "func(dst []byte, s string) []byte"},
+		{"AppendUint", Func, 0, "func(dst []byte, i uint64, base int) []byte"},
+		{"Atoi", Func, 0, "func(s string) (int, error)"},
+		{"CanBackquote", Func, 0, "func(s string) bool"},
+		{"ErrRange", Var, 0, ""},
+		{"ErrSyntax", Var, 0, ""},
+		{"FormatBool", Func, 0, "func(b bool) string"},
+		{"FormatComplex", Func, 15, "func(c complex128, fmt byte, prec int, bitSize int) string"},
+		{"FormatFloat", Func, 0, "func(f float64, fmt byte, prec int, bitSize int) string"},
+		{"FormatInt", Func, 0, "func(i int64, base int) string"},
+		{"FormatUint", Func, 0, "func(i uint64, base int) string"},
+		{"IntSize", Const, 0, ""},
+		{"IsGraphic", Func, 6, "func(r rune) bool"},
+		{"IsPrint", Func, 0, "func(r rune) bool"},
+		{"Itoa", Func, 0, "func(i int) string"},
+		{"NumError", Type, 0, ""},
+		{"NumError.Err", Field, 0, ""},
+		{"NumError.Func", Field, 0, ""},
+		{"NumError.Num", Field, 0, ""},
+		{"ParseBool", Func, 0, "func(str string) (bool, error)"},
+		{"ParseComplex", Func, 15, "func(s string, bitSize int) (complex128, error)"},
+		{"ParseFloat", Func, 0, "func(s string, bitSize int) (float64, error)"},
+		{"ParseInt", Func, 0, "func(s string, base int, bitSize int) (i int64, err error)"},
+		{"ParseUint", Func, 0, "func(s string, base int, bitSize int) (uint64, error)"},
+		{"Quote", Func, 0, "func(s string) string"},
+		{"QuoteRune", Func, 0, "func(r rune) string"},
+		{"QuoteRuneToASCII", Func, 0, "func(r rune) string"},
+		{"QuoteRuneToGraphic", Func, 6, "func(r rune) string"},
+		{"QuoteToASCII", Func, 0, "func(s string) string"},
+		{"QuoteToGraphic", Func, 6, "func(s string) string"},
+		{"QuotedPrefix", Func, 17, "func(s string) (string, error)"},
+		{"Unquote", Func, 0, "func(s string) (string, error)"},
+		{"UnquoteChar", Func, 0, "func(s string, quote byte) (value rune, multibyte bool, tail string, err error)"},
 	},
 	"strings": {
-		{"(*Builder).Cap", Method, 12},
-		{"(*Builder).Grow", Method, 10},
-		{"(*Builder).Len", Method, 10},
-		{"(*Builder).Reset", Method, 10},
-		{"(*Builder).String", Method, 10},
-		{"(*Builder).Write", Method, 10},
-		{"(*Builder).WriteByte", Method, 10},
-		{"(*Builder).WriteRune", Method, 10},
-		{"(*Builder).WriteString", Method, 10},
-		{"(*Reader).Len", Method, 0},
-		{"(*Reader).Read", Method, 0},
-		{"(*Reader).ReadAt", Method, 0},
-		{"(*Reader).ReadByte", Method, 0},
-		{"(*Reader).ReadRune", Method, 0},
-		{"(*Reader).Reset", Method, 7},
-		{"(*Reader).Seek", Method, 0},
-		{"(*Reader).Size", Method, 5},
-		{"(*Reader).UnreadByte", Method, 0},
-		{"(*Reader).UnreadRune", Method, 0},
-		{"(*Reader).WriteTo", Method, 1},
-		{"(*Replacer).Replace", Method, 0},
-		{"(*Replacer).WriteString", Method, 0},
-		{"Builder", Type, 10},
-		{"Clone", Func, 18},
-		{"Compare", Func, 5},
-		{"Contains", Func, 0},
-		{"ContainsAny", Func, 0},
-		{"ContainsFunc", Func, 21},
-		{"ContainsRune", Func, 0},
-		{"Count", Func, 0},
-		{"Cut", Func, 18},
-		{"CutPrefix", Func, 20},
-		{"CutSuffix", Func, 20},
-		{"EqualFold", Func, 0},
-		{"Fields", Func, 0},
-		{"FieldsFunc", Func, 0},
-		{"FieldsFuncSeq", Func, 24},
-		{"FieldsSeq", Func, 24},
-		{"HasPrefix", Func, 0},
-		{"HasSuffix", Func, 0},
-		{"Index", Func, 0},
-		{"IndexAny", Func, 0},
-		{"IndexByte", Func, 2},
-		{"IndexFunc", Func, 0},
-		{"IndexRune", Func, 0},
-		{"Join", Func, 0},
-		{"LastIndex", Func, 0},
-		{"LastIndexAny", Func, 0},
-		{"LastIndexByte", Func, 5},
-		{"LastIndexFunc", Func, 0},
-		{"Lines", Func, 24},
-		{"Map", Func, 0},
-		{"NewReader", Func, 0},
-		{"NewReplacer", Func, 0},
-		{"Reader", Type, 0},
-		{"Repeat", Func, 0},
-		{"Replace", Func, 0},
-		{"ReplaceAll", Func, 12},
-		{"Replacer", Type, 0},
-		{"Split", Func, 0},
-		{"SplitAfter", Func, 0},
-		{"SplitAfterN", Func, 0},
-		{"SplitAfterSeq", Func, 24},
-		{"SplitN", Func, 0},
-		{"SplitSeq", Func, 24},
-		{"Title", Func, 0},
-		{"ToLower", Func, 0},
-		{"ToLowerSpecial", Func, 0},
-		{"ToTitle", Func, 0},
-		{"ToTitleSpecial", Func, 0},
-		{"ToUpper", Func, 0},
-		{"ToUpperSpecial", Func, 0},
-		{"ToValidUTF8", Func, 13},
-		{"Trim", Func, 0},
-		{"TrimFunc", Func, 0},
-		{"TrimLeft", Func, 0},
-		{"TrimLeftFunc", Func, 0},
-		{"TrimPrefix", Func, 1},
-		{"TrimRight", Func, 0},
-		{"TrimRightFunc", Func, 0},
-		{"TrimSpace", Func, 0},
-		{"TrimSuffix", Func, 1},
+		{"(*Builder).Cap", Method, 12, ""},
+		{"(*Builder).Grow", Method, 10, ""},
+		{"(*Builder).Len", Method, 10, ""},
+		{"(*Builder).Reset", Method, 10, ""},
+		{"(*Builder).String", Method, 10, ""},
+		{"(*Builder).Write", Method, 10, ""},
+		{"(*Builder).WriteByte", Method, 10, ""},
+		{"(*Builder).WriteRune", Method, 10, ""},
+		{"(*Builder).WriteString", Method, 10, ""},
+		{"(*Reader).Len", Method, 0, ""},
+		{"(*Reader).Read", Method, 0, ""},
+		{"(*Reader).ReadAt", Method, 0, ""},
+		{"(*Reader).ReadByte", Method, 0, ""},
+		{"(*Reader).ReadRune", Method, 0, ""},
+		{"(*Reader).Reset", Method, 7, ""},
+		{"(*Reader).Seek", Method, 0, ""},
+		{"(*Reader).Size", Method, 5, ""},
+		{"(*Reader).UnreadByte", Method, 0, ""},
+		{"(*Reader).UnreadRune", Method, 0, ""},
+		{"(*Reader).WriteTo", Method, 1, ""},
+		{"(*Replacer).Replace", Method, 0, ""},
+		{"(*Replacer).WriteString", Method, 0, ""},
+		{"Builder", Type, 10, ""},
+		{"Clone", Func, 18, "func(s string) string"},
+		{"Compare", Func, 5, "func(a string, b string) int"},
+		{"Contains", Func, 0, "func(s string, substr string) bool"},
+		{"ContainsAny", Func, 0, "func(s string, chars string) bool"},
+		{"ContainsFunc", Func, 21, "func(s string, f func(rune) bool) bool"},
+		{"ContainsRune", Func, 0, "func(s string, r rune) bool"},
+		{"Count", Func, 0, "func(s string, substr string) int"},
+		{"Cut", Func, 18, "func(s string, sep string) (before string, after string, found bool)"},
+		{"CutPrefix", Func, 20, "func(s string, prefix string) (after string, found bool)"},
+		{"CutSuffix", Func, 20, "func(s string, suffix string) (before string, found bool)"},
+		{"EqualFold", Func, 0, "func(s string, t string) bool"},
+		{"Fields", Func, 0, "func(s string) []string"},
+		{"FieldsFunc", Func, 0, "func(s string, f func(rune) bool) []string"},
+		{"FieldsFuncSeq", Func, 24, "func(s string, f func(rune) bool) iter.Seq[string]"},
+		{"FieldsSeq", Func, 24, "func(s string) iter.Seq[string]"},
+		{"HasPrefix", Func, 0, "func(s string, prefix string) bool"},
+		{"HasSuffix", Func, 0, "func(s string, suffix string) bool"},
+		{"Index", Func, 0, "func(s string, substr string) int"},
+		{"IndexAny", Func, 0, "func(s string, chars string) int"},
+		{"IndexByte", Func, 2, "func(s string, c byte) int"},
+		{"IndexFunc", Func, 0, "func(s string, f func(rune) bool) int"},
+		{"IndexRune", Func, 0, "func(s string, r rune) int"},
+		{"Join", Func, 0, "func(elems []string, sep string) string"},
+		{"LastIndex", Func, 0, "func(s string, substr string) int"},
+		{"LastIndexAny", Func, 0, "func(s string, chars string) int"},
+		{"LastIndexByte", Func, 5, "func(s string, c byte) int"},
+		{"LastIndexFunc", Func, 0, "func(s string, f func(rune) bool) int"},
+		{"Lines", Func, 24, "func(s string) iter.Seq[string]"},
+		{"Map", Func, 0, "func(mapping func(rune) rune, s string) string"},
+		{"NewReader", Func, 0, "func(s string) *Reader"},
+		{"NewReplacer", Func, 0, "func(oldnew ...string) *Replacer"},
+		{"Reader", Type, 0, ""},
+		{"Repeat", Func, 0, "func(s string, count int) string"},
+		{"Replace", Func, 0, "func(s string, old string, new string, n int) string"},
+		{"ReplaceAll", Func, 12, "func(s string, old string, new string) string"},
+		{"Replacer", Type, 0, ""},
+		{"Split", Func, 0, "func(s string, sep string) []string"},
+		{"SplitAfter", Func, 0, "func(s string, sep string) []string"},
+		{"SplitAfterN", Func, 0, "func(s string, sep string, n int) []string"},
+		{"SplitAfterSeq", Func, 24, "func(s string, sep string) iter.Seq[string]"},
+		{"SplitN", Func, 0, "func(s string, sep string, n int) []string"},
+		{"SplitSeq", Func, 24, "func(s string, sep string) iter.Seq[string]"},
+		{"Title", Func, 0, "func(s string) string"},
+		{"ToLower", Func, 0, "func(s string) string"},
+		{"ToLowerSpecial", Func, 0, "func(c unicode.SpecialCase, s string) string"},
+		{"ToTitle", Func, 0, "func(s string) string"},
+		{"ToTitleSpecial", Func, 0, "func(c unicode.SpecialCase, s string) string"},
+		{"ToUpper", Func, 0, "func(s string) string"},
+		{"ToUpperSpecial", Func, 0, "func(c unicode.SpecialCase, s string) string"},
+		{"ToValidUTF8", Func, 13, "func(s string, replacement string) string"},
+		{"Trim", Func, 0, "func(s string, cutset string) string"},
+		{"TrimFunc", Func, 0, "func(s string, f func(rune) bool) string"},
+		{"TrimLeft", Func, 0, "func(s string, cutset string) string"},
+		{"TrimLeftFunc", Func, 0, "func(s string, f func(rune) bool) string"},
+		{"TrimPrefix", Func, 1, "func(s string, prefix string) string"},
+		{"TrimRight", Func, 0, "func(s string, cutset string) string"},
+		{"TrimRightFunc", Func, 0, "func(s string, f func(rune) bool) string"},
+		{"TrimSpace", Func, 0, "func(s string) string"},
+		{"TrimSuffix", Func, 1, "func(s string, suffix string) string"},
 	},
 	"structs": {
-		{"HostLayout", Type, 23},
+		{"HostLayout", Type, 23, ""},
 	},
 	"sync": {
-		{"(*Cond).Broadcast", Method, 0},
-		{"(*Cond).Signal", Method, 0},
-		{"(*Cond).Wait", Method, 0},
-		{"(*Map).Clear", Method, 23},
-		{"(*Map).CompareAndDelete", Method, 20},
-		{"(*Map).CompareAndSwap", Method, 20},
-		{"(*Map).Delete", Method, 9},
-		{"(*Map).Load", Method, 9},
-		{"(*Map).LoadAndDelete", Method, 15},
-		{"(*Map).LoadOrStore", Method, 9},
-		{"(*Map).Range", Method, 9},
-		{"(*Map).Store", Method, 9},
-		{"(*Map).Swap", Method, 20},
-		{"(*Mutex).Lock", Method, 0},
-		{"(*Mutex).TryLock", Method, 18},
-		{"(*Mutex).Unlock", Method, 0},
-		{"(*Once).Do", Method, 0},
-		{"(*Pool).Get", Method, 3},
-		{"(*Pool).Put", Method, 3},
-		{"(*RWMutex).Lock", Method, 0},
-		{"(*RWMutex).RLock", Method, 0},
-		{"(*RWMutex).RLocker", Method, 0},
-		{"(*RWMutex).RUnlock", Method, 0},
-		{"(*RWMutex).TryLock", Method, 18},
-		{"(*RWMutex).TryRLock", Method, 18},
-		{"(*RWMutex).Unlock", Method, 0},
-		{"(*WaitGroup).Add", Method, 0},
-		{"(*WaitGroup).Done", Method, 0},
-		{"(*WaitGroup).Wait", Method, 0},
-		{"Cond", Type, 0},
-		{"Cond.L", Field, 0},
-		{"Locker", Type, 0},
-		{"Map", Type, 9},
-		{"Mutex", Type, 0},
-		{"NewCond", Func, 0},
-		{"Once", Type, 0},
-		{"OnceFunc", Func, 21},
-		{"OnceValue", Func, 21},
-		{"OnceValues", Func, 21},
-		{"Pool", Type, 3},
-		{"Pool.New", Field, 3},
-		{"RWMutex", Type, 0},
-		{"WaitGroup", Type, 0},
+		{"(*Cond).Broadcast", Method, 0, ""},
+		{"(*Cond).Signal", Method, 0, ""},
+		{"(*Cond).Wait", Method, 0, ""},
+		{"(*Map).Clear", Method, 23, ""},
+		{"(*Map).CompareAndDelete", Method, 20, ""},
+		{"(*Map).CompareAndSwap", Method, 20, ""},
+		{"(*Map).Delete", Method, 9, ""},
+		{"(*Map).Load", Method, 9, ""},
+		{"(*Map).LoadAndDelete", Method, 15, ""},
+		{"(*Map).LoadOrStore", Method, 9, ""},
+		{"(*Map).Range", Method, 9, ""},
+		{"(*Map).Store", Method, 9, ""},
+		{"(*Map).Swap", Method, 20, ""},
+		{"(*Mutex).Lock", Method, 0, ""},
+		{"(*Mutex).TryLock", Method, 18, ""},
+		{"(*Mutex).Unlock", Method, 0, ""},
+		{"(*Once).Do", Method, 0, ""},
+		{"(*Pool).Get", Method, 3, ""},
+		{"(*Pool).Put", Method, 3, ""},
+		{"(*RWMutex).Lock", Method, 0, ""},
+		{"(*RWMutex).RLock", Method, 0, ""},
+		{"(*RWMutex).RLocker", Method, 0, ""},
+		{"(*RWMutex).RUnlock", Method, 0, ""},
+		{"(*RWMutex).TryLock", Method, 18, ""},
+		{"(*RWMutex).TryRLock", Method, 18, ""},
+		{"(*RWMutex).Unlock", Method, 0, ""},
+		{"(*WaitGroup).Add", Method, 0, ""},
+		{"(*WaitGroup).Done", Method, 0, ""},
+		{"(*WaitGroup).Go", Method, 25, ""},
+		{"(*WaitGroup).Wait", Method, 0, ""},
+		{"Cond", Type, 0, ""},
+		{"Cond.L", Field, 0, ""},
+		{"Locker", Type, 0, ""},
+		{"Map", Type, 9, ""},
+		{"Mutex", Type, 0, ""},
+		{"NewCond", Func, 0, "func(l Locker) *Cond"},
+		{"Once", Type, 0, ""},
+		{"OnceFunc", Func, 21, "func(f func()) func()"},
+		{"OnceValue", Func, 21, "func[T any](f func() T) func() T"},
+		{"OnceValues", Func, 21, "func[T1, T2 any](f func() (T1, T2)) func() (T1, T2)"},
+		{"Pool", Type, 3, ""},
+		{"Pool.New", Field, 3, ""},
+		{"RWMutex", Type, 0, ""},
+		{"WaitGroup", Type, 0, ""},
 	},
 	"sync/atomic": {
-		{"(*Bool).CompareAndSwap", Method, 19},
-		{"(*Bool).Load", Method, 19},
-		{"(*Bool).Store", Method, 19},
-		{"(*Bool).Swap", Method, 19},
-		{"(*Int32).Add", Method, 19},
-		{"(*Int32).And", Method, 23},
-		{"(*Int32).CompareAndSwap", Method, 19},
-		{"(*Int32).Load", Method, 19},
-		{"(*Int32).Or", Method, 23},
-		{"(*Int32).Store", Method, 19},
-		{"(*Int32).Swap", Method, 19},
-		{"(*Int64).Add", Method, 19},
-		{"(*Int64).And", Method, 23},
-		{"(*Int64).CompareAndSwap", Method, 19},
-		{"(*Int64).Load", Method, 19},
-		{"(*Int64).Or", Method, 23},
-		{"(*Int64).Store", Method, 19},
-		{"(*Int64).Swap", Method, 19},
-		{"(*Pointer).CompareAndSwap", Method, 19},
-		{"(*Pointer).Load", Method, 19},
-		{"(*Pointer).Store", Method, 19},
-		{"(*Pointer).Swap", Method, 19},
-		{"(*Uint32).Add", Method, 19},
-		{"(*Uint32).And", Method, 23},
-		{"(*Uint32).CompareAndSwap", Method, 19},
-		{"(*Uint32).Load", Method, 19},
-		{"(*Uint32).Or", Method, 23},
-		{"(*Uint32).Store", Method, 19},
-		{"(*Uint32).Swap", Method, 19},
-		{"(*Uint64).Add", Method, 19},
-		{"(*Uint64).And", Method, 23},
-		{"(*Uint64).CompareAndSwap", Method, 19},
-		{"(*Uint64).Load", Method, 19},
-		{"(*Uint64).Or", Method, 23},
-		{"(*Uint64).Store", Method, 19},
-		{"(*Uint64).Swap", Method, 19},
-		{"(*Uintptr).Add", Method, 19},
-		{"(*Uintptr).And", Method, 23},
-		{"(*Uintptr).CompareAndSwap", Method, 19},
-		{"(*Uintptr).Load", Method, 19},
-		{"(*Uintptr).Or", Method, 23},
-		{"(*Uintptr).Store", Method, 19},
-		{"(*Uintptr).Swap", Method, 19},
-		{"(*Value).CompareAndSwap", Method, 17},
-		{"(*Value).Load", Method, 4},
-		{"(*Value).Store", Method, 4},
-		{"(*Value).Swap", Method, 17},
-		{"AddInt32", Func, 0},
-		{"AddInt64", Func, 0},
-		{"AddUint32", Func, 0},
-		{"AddUint64", Func, 0},
-		{"AddUintptr", Func, 0},
-		{"AndInt32", Func, 23},
-		{"AndInt64", Func, 23},
-		{"AndUint32", Func, 23},
-		{"AndUint64", Func, 23},
-		{"AndUintptr", Func, 23},
-		{"Bool", Type, 19},
-		{"CompareAndSwapInt32", Func, 0},
-		{"CompareAndSwapInt64", Func, 0},
-		{"CompareAndSwapPointer", Func, 0},
-		{"CompareAndSwapUint32", Func, 0},
-		{"CompareAndSwapUint64", Func, 0},
-		{"CompareAndSwapUintptr", Func, 0},
-		{"Int32", Type, 19},
-		{"Int64", Type, 19},
-		{"LoadInt32", Func, 0},
-		{"LoadInt64", Func, 0},
-		{"LoadPointer", Func, 0},
-		{"LoadUint32", Func, 0},
-		{"LoadUint64", Func, 0},
-		{"LoadUintptr", Func, 0},
-		{"OrInt32", Func, 23},
-		{"OrInt64", Func, 23},
-		{"OrUint32", Func, 23},
-		{"OrUint64", Func, 23},
-		{"OrUintptr", Func, 23},
-		{"Pointer", Type, 19},
-		{"StoreInt32", Func, 0},
-		{"StoreInt64", Func, 0},
-		{"StorePointer", Func, 0},
-		{"StoreUint32", Func, 0},
-		{"StoreUint64", Func, 0},
-		{"StoreUintptr", Func, 0},
-		{"SwapInt32", Func, 2},
-		{"SwapInt64", Func, 2},
-		{"SwapPointer", Func, 2},
-		{"SwapUint32", Func, 2},
-		{"SwapUint64", Func, 2},
-		{"SwapUintptr", Func, 2},
-		{"Uint32", Type, 19},
-		{"Uint64", Type, 19},
-		{"Uintptr", Type, 19},
-		{"Value", Type, 4},
+		{"(*Bool).CompareAndSwap", Method, 19, ""},
+		{"(*Bool).Load", Method, 19, ""},
+		{"(*Bool).Store", Method, 19, ""},
+		{"(*Bool).Swap", Method, 19, ""},
+		{"(*Int32).Add", Method, 19, ""},
+		{"(*Int32).And", Method, 23, ""},
+		{"(*Int32).CompareAndSwap", Method, 19, ""},
+		{"(*Int32).Load", Method, 19, ""},
+		{"(*Int32).Or", Method, 23, ""},
+		{"(*Int32).Store", Method, 19, ""},
+		{"(*Int32).Swap", Method, 19, ""},
+		{"(*Int64).Add", Method, 19, ""},
+		{"(*Int64).And", Method, 23, ""},
+		{"(*Int64).CompareAndSwap", Method, 19, ""},
+		{"(*Int64).Load", Method, 19, ""},
+		{"(*Int64).Or", Method, 23, ""},
+		{"(*Int64).Store", Method, 19, ""},
+		{"(*Int64).Swap", Method, 19, ""},
+		{"(*Pointer).CompareAndSwap", Method, 19, ""},
+		{"(*Pointer).Load", Method, 19, ""},
+		{"(*Pointer).Store", Method, 19, ""},
+		{"(*Pointer).Swap", Method, 19, ""},
+		{"(*Uint32).Add", Method, 19, ""},
+		{"(*Uint32).And", Method, 23, ""},
+		{"(*Uint32).CompareAndSwap", Method, 19, ""},
+		{"(*Uint32).Load", Method, 19, ""},
+		{"(*Uint32).Or", Method, 23, ""},
+		{"(*Uint32).Store", Method, 19, ""},
+		{"(*Uint32).Swap", Method, 19, ""},
+		{"(*Uint64).Add", Method, 19, ""},
+		{"(*Uint64).And", Method, 23, ""},
+		{"(*Uint64).CompareAndSwap", Method, 19, ""},
+		{"(*Uint64).Load", Method, 19, ""},
+		{"(*Uint64).Or", Method, 23, ""},
+		{"(*Uint64).Store", Method, 19, ""},
+		{"(*Uint64).Swap", Method, 19, ""},
+		{"(*Uintptr).Add", Method, 19, ""},
+		{"(*Uintptr).And", Method, 23, ""},
+		{"(*Uintptr).CompareAndSwap", Method, 19, ""},
+		{"(*Uintptr).Load", Method, 19, ""},
+		{"(*Uintptr).Or", Method, 23, ""},
+		{"(*Uintptr).Store", Method, 19, ""},
+		{"(*Uintptr).Swap", Method, 19, ""},
+		{"(*Value).CompareAndSwap", Method, 17, ""},
+		{"(*Value).Load", Method, 4, ""},
+		{"(*Value).Store", Method, 4, ""},
+		{"(*Value).Swap", Method, 17, ""},
+		{"AddInt32", Func, 0, "func(addr *int32, delta int32) (new int32)"},
+		{"AddInt64", Func, 0, "func(addr *int64, delta int64) (new int64)"},
+		{"AddUint32", Func, 0, "func(addr *uint32, delta uint32) (new uint32)"},
+		{"AddUint64", Func, 0, "func(addr *uint64, delta uint64) (new uint64)"},
+		{"AddUintptr", Func, 0, "func(addr *uintptr, delta uintptr) (new uintptr)"},
+		{"AndInt32", Func, 23, "func(addr *int32, mask int32) (old int32)"},
+		{"AndInt64", Func, 23, "func(addr *int64, mask int64) (old int64)"},
+		{"AndUint32", Func, 23, "func(addr *uint32, mask uint32) (old uint32)"},
+		{"AndUint64", Func, 23, "func(addr *uint64, mask uint64) (old uint64)"},
+		{"AndUintptr", Func, 23, "func(addr *uintptr, mask uintptr) (old uintptr)"},
+		{"Bool", Type, 19, ""},
+		{"CompareAndSwapInt32", Func, 0, "func(addr *int32, old int32, new int32) (swapped bool)"},
+		{"CompareAndSwapInt64", Func, 0, "func(addr *int64, old int64, new int64) (swapped bool)"},
+		{"CompareAndSwapPointer", Func, 0, "func(addr *unsafe.Pointer, old unsafe.Pointer, new unsafe.Pointer) (swapped bool)"},
+		{"CompareAndSwapUint32", Func, 0, "func(addr *uint32, old uint32, new uint32) (swapped bool)"},
+		{"CompareAndSwapUint64", Func, 0, "func(addr *uint64, old uint64, new uint64) (swapped bool)"},
+		{"CompareAndSwapUintptr", Func, 0, "func(addr *uintptr, old uintptr, new uintptr) (swapped bool)"},
+		{"Int32", Type, 19, ""},
+		{"Int64", Type, 19, ""},
+		{"LoadInt32", Func, 0, "func(addr *int32) (val int32)"},
+		{"LoadInt64", Func, 0, "func(addr *int64) (val int64)"},
+		{"LoadPointer", Func, 0, "func(addr *unsafe.Pointer) (val unsafe.Pointer)"},
+		{"LoadUint32", Func, 0, "func(addr *uint32) (val uint32)"},
+		{"LoadUint64", Func, 0, "func(addr *uint64) (val uint64)"},
+		{"LoadUintptr", Func, 0, "func(addr *uintptr) (val uintptr)"},
+		{"OrInt32", Func, 23, "func(addr *int32, mask int32) (old int32)"},
+		{"OrInt64", Func, 23, "func(addr *int64, mask int64) (old int64)"},
+		{"OrUint32", Func, 23, "func(addr *uint32, mask uint32) (old uint32)"},
+		{"OrUint64", Func, 23, "func(addr *uint64, mask uint64) (old uint64)"},
+		{"OrUintptr", Func, 23, "func(addr *uintptr, mask uintptr) (old uintptr)"},
+		{"Pointer", Type, 19, ""},
+		{"StoreInt32", Func, 0, "func(addr *int32, val int32)"},
+		{"StoreInt64", Func, 0, "func(addr *int64, val int64)"},
+		{"StorePointer", Func, 0, "func(addr *unsafe.Pointer, val unsafe.Pointer)"},
+		{"StoreUint32", Func, 0, "func(addr *uint32, val uint32)"},
+		{"StoreUint64", Func, 0, "func(addr *uint64, val uint64)"},
+		{"StoreUintptr", Func, 0, "func(addr *uintptr, val uintptr)"},
+		{"SwapInt32", Func, 2, "func(addr *int32, new int32) (old int32)"},
+		{"SwapInt64", Func, 2, "func(addr *int64, new int64) (old int64)"},
+		{"SwapPointer", Func, 2, "func(addr *unsafe.Pointer, new unsafe.Pointer) (old unsafe.Pointer)"},
+		{"SwapUint32", Func, 2, "func(addr *uint32, new uint32) (old uint32)"},
+		{"SwapUint64", Func, 2, "func(addr *uint64, new uint64) (old uint64)"},
+		{"SwapUintptr", Func, 2, "func(addr *uintptr, new uintptr) (old uintptr)"},
+		{"Uint32", Type, 19, ""},
+		{"Uint64", Type, 19, ""},
+		{"Uintptr", Type, 19, ""},
+		{"Value", Type, 4, ""},
 	},
 	"syscall": {
-		{"(*Cmsghdr).SetLen", Method, 0},
-		{"(*DLL).FindProc", Method, 0},
-		{"(*DLL).MustFindProc", Method, 0},
-		{"(*DLL).Release", Method, 0},
-		{"(*DLLError).Error", Method, 0},
-		{"(*DLLError).Unwrap", Method, 16},
-		{"(*Filetime).Nanoseconds", Method, 0},
-		{"(*Iovec).SetLen", Method, 0},
-		{"(*LazyDLL).Handle", Method, 0},
-		{"(*LazyDLL).Load", Method, 0},
-		{"(*LazyDLL).NewProc", Method, 0},
-		{"(*LazyProc).Addr", Method, 0},
-		{"(*LazyProc).Call", Method, 0},
-		{"(*LazyProc).Find", Method, 0},
-		{"(*Msghdr).SetControllen", Method, 0},
-		{"(*Proc).Addr", Method, 0},
-		{"(*Proc).Call", Method, 0},
-		{"(*PtraceRegs).PC", Method, 0},
-		{"(*PtraceRegs).SetPC", Method, 0},
-		{"(*RawSockaddrAny).Sockaddr", Method, 0},
-		{"(*SID).Copy", Method, 0},
-		{"(*SID).Len", Method, 0},
-		{"(*SID).LookupAccount", Method, 0},
-		{"(*SID).String", Method, 0},
-		{"(*Timespec).Nano", Method, 0},
-		{"(*Timespec).Unix", Method, 0},
-		{"(*Timeval).Nano", Method, 0},
-		{"(*Timeval).Nanoseconds", Method, 0},
-		{"(*Timeval).Unix", Method, 0},
-		{"(Errno).Error", Method, 0},
-		{"(Errno).Is", Method, 13},
-		{"(Errno).Temporary", Method, 0},
-		{"(Errno).Timeout", Method, 0},
-		{"(Signal).Signal", Method, 0},
-		{"(Signal).String", Method, 0},
-		{"(Token).Close", Method, 0},
-		{"(Token).GetTokenPrimaryGroup", Method, 0},
-		{"(Token).GetTokenUser", Method, 0},
-		{"(Token).GetUserProfileDirectory", Method, 0},
-		{"(WaitStatus).Continued", Method, 0},
-		{"(WaitStatus).CoreDump", Method, 0},
-		{"(WaitStatus).ExitStatus", Method, 0},
-		{"(WaitStatus).Exited", Method, 0},
-		{"(WaitStatus).Signal", Method, 0},
-		{"(WaitStatus).Signaled", Method, 0},
-		{"(WaitStatus).StopSignal", Method, 0},
-		{"(WaitStatus).Stopped", Method, 0},
-		{"(WaitStatus).TrapCause", Method, 0},
-		{"AF_ALG", Const, 0},
-		{"AF_APPLETALK", Const, 0},
-		{"AF_ARP", Const, 0},
-		{"AF_ASH", Const, 0},
-		{"AF_ATM", Const, 0},
-		{"AF_ATMPVC", Const, 0},
-		{"AF_ATMSVC", Const, 0},
-		{"AF_AX25", Const, 0},
-		{"AF_BLUETOOTH", Const, 0},
-		{"AF_BRIDGE", Const, 0},
-		{"AF_CAIF", Const, 0},
-		{"AF_CAN", Const, 0},
-		{"AF_CCITT", Const, 0},
-		{"AF_CHAOS", Const, 0},
-		{"AF_CNT", Const, 0},
-		{"AF_COIP", Const, 0},
-		{"AF_DATAKIT", Const, 0},
-		{"AF_DECnet", Const, 0},
-		{"AF_DLI", Const, 0},
-		{"AF_E164", Const, 0},
-		{"AF_ECMA", Const, 0},
-		{"AF_ECONET", Const, 0},
-		{"AF_ENCAP", Const, 1},
-		{"AF_FILE", Const, 0},
-		{"AF_HYLINK", Const, 0},
-		{"AF_IEEE80211", Const, 0},
-		{"AF_IEEE802154", Const, 0},
-		{"AF_IMPLINK", Const, 0},
-		{"AF_INET", Const, 0},
-		{"AF_INET6", Const, 0},
-		{"AF_INET6_SDP", Const, 3},
-		{"AF_INET_SDP", Const, 3},
-		{"AF_IPX", Const, 0},
-		{"AF_IRDA", Const, 0},
-		{"AF_ISDN", Const, 0},
-		{"AF_ISO", Const, 0},
-		{"AF_IUCV", Const, 0},
-		{"AF_KEY", Const, 0},
-		{"AF_LAT", Const, 0},
-		{"AF_LINK", Const, 0},
-		{"AF_LLC", Const, 0},
-		{"AF_LOCAL", Const, 0},
-		{"AF_MAX", Const, 0},
-		{"AF_MPLS", Const, 1},
-		{"AF_NATM", Const, 0},
-		{"AF_NDRV", Const, 0},
-		{"AF_NETBEUI", Const, 0},
-		{"AF_NETBIOS", Const, 0},
-		{"AF_NETGRAPH", Const, 0},
-		{"AF_NETLINK", Const, 0},
-		{"AF_NETROM", Const, 0},
-		{"AF_NS", Const, 0},
-		{"AF_OROUTE", Const, 1},
-		{"AF_OSI", Const, 0},
-		{"AF_PACKET", Const, 0},
-		{"AF_PHONET", Const, 0},
-		{"AF_PPP", Const, 0},
-		{"AF_PPPOX", Const, 0},
-		{"AF_PUP", Const, 0},
-		{"AF_RDS", Const, 0},
-		{"AF_RESERVED_36", Const, 0},
-		{"AF_ROSE", Const, 0},
-		{"AF_ROUTE", Const, 0},
-		{"AF_RXRPC", Const, 0},
-		{"AF_SCLUSTER", Const, 0},
-		{"AF_SECURITY", Const, 0},
-		{"AF_SIP", Const, 0},
-		{"AF_SLOW", Const, 0},
-		{"AF_SNA", Const, 0},
-		{"AF_SYSTEM", Const, 0},
-		{"AF_TIPC", Const, 0},
-		{"AF_UNIX", Const, 0},
-		{"AF_UNSPEC", Const, 0},
-		{"AF_UTUN", Const, 16},
-		{"AF_VENDOR00", Const, 0},
-		{"AF_VENDOR01", Const, 0},
-		{"AF_VENDOR02", Const, 0},
-		{"AF_VENDOR03", Const, 0},
-		{"AF_VENDOR04", Const, 0},
-		{"AF_VENDOR05", Const, 0},
-		{"AF_VENDOR06", Const, 0},
-		{"AF_VENDOR07", Const, 0},
-		{"AF_VENDOR08", Const, 0},
-		{"AF_VENDOR09", Const, 0},
-		{"AF_VENDOR10", Const, 0},
-		{"AF_VENDOR11", Const, 0},
-		{"AF_VENDOR12", Const, 0},
-		{"AF_VENDOR13", Const, 0},
-		{"AF_VENDOR14", Const, 0},
-		{"AF_VENDOR15", Const, 0},
-		{"AF_VENDOR16", Const, 0},
-		{"AF_VENDOR17", Const, 0},
-		{"AF_VENDOR18", Const, 0},
-		{"AF_VENDOR19", Const, 0},
-		{"AF_VENDOR20", Const, 0},
-		{"AF_VENDOR21", Const, 0},
-		{"AF_VENDOR22", Const, 0},
-		{"AF_VENDOR23", Const, 0},
-		{"AF_VENDOR24", Const, 0},
-		{"AF_VENDOR25", Const, 0},
-		{"AF_VENDOR26", Const, 0},
-		{"AF_VENDOR27", Const, 0},
-		{"AF_VENDOR28", Const, 0},
-		{"AF_VENDOR29", Const, 0},
-		{"AF_VENDOR30", Const, 0},
-		{"AF_VENDOR31", Const, 0},
-		{"AF_VENDOR32", Const, 0},
-		{"AF_VENDOR33", Const, 0},
-		{"AF_VENDOR34", Const, 0},
-		{"AF_VENDOR35", Const, 0},
-		{"AF_VENDOR36", Const, 0},
-		{"AF_VENDOR37", Const, 0},
-		{"AF_VENDOR38", Const, 0},
-		{"AF_VENDOR39", Const, 0},
-		{"AF_VENDOR40", Const, 0},
-		{"AF_VENDOR41", Const, 0},
-		{"AF_VENDOR42", Const, 0},
-		{"AF_VENDOR43", Const, 0},
-		{"AF_VENDOR44", Const, 0},
-		{"AF_VENDOR45", Const, 0},
-		{"AF_VENDOR46", Const, 0},
-		{"AF_VENDOR47", Const, 0},
-		{"AF_WANPIPE", Const, 0},
-		{"AF_X25", Const, 0},
-		{"AI_CANONNAME", Const, 1},
-		{"AI_NUMERICHOST", Const, 1},
-		{"AI_PASSIVE", Const, 1},
-		{"APPLICATION_ERROR", Const, 0},
-		{"ARPHRD_ADAPT", Const, 0},
-		{"ARPHRD_APPLETLK", Const, 0},
-		{"ARPHRD_ARCNET", Const, 0},
-		{"ARPHRD_ASH", Const, 0},
-		{"ARPHRD_ATM", Const, 0},
-		{"ARPHRD_AX25", Const, 0},
-		{"ARPHRD_BIF", Const, 0},
-		{"ARPHRD_CHAOS", Const, 0},
-		{"ARPHRD_CISCO", Const, 0},
-		{"ARPHRD_CSLIP", Const, 0},
-		{"ARPHRD_CSLIP6", Const, 0},
-		{"ARPHRD_DDCMP", Const, 0},
-		{"ARPHRD_DLCI", Const, 0},
-		{"ARPHRD_ECONET", Const, 0},
-		{"ARPHRD_EETHER", Const, 0},
-		{"ARPHRD_ETHER", Const, 0},
-		{"ARPHRD_EUI64", Const, 0},
-		{"ARPHRD_FCAL", Const, 0},
-		{"ARPHRD_FCFABRIC", Const, 0},
-		{"ARPHRD_FCPL", Const, 0},
-		{"ARPHRD_FCPP", Const, 0},
-		{"ARPHRD_FDDI", Const, 0},
-		{"ARPHRD_FRAD", Const, 0},
-		{"ARPHRD_FRELAY", Const, 1},
-		{"ARPHRD_HDLC", Const, 0},
-		{"ARPHRD_HIPPI", Const, 0},
-		{"ARPHRD_HWX25", Const, 0},
-		{"ARPHRD_IEEE1394", Const, 0},
-		{"ARPHRD_IEEE802", Const, 0},
-		{"ARPHRD_IEEE80211", Const, 0},
-		{"ARPHRD_IEEE80211_PRISM", Const, 0},
-		{"ARPHRD_IEEE80211_RADIOTAP", Const, 0},
-		{"ARPHRD_IEEE802154", Const, 0},
-		{"ARPHRD_IEEE802154_PHY", Const, 0},
-		{"ARPHRD_IEEE802_TR", Const, 0},
-		{"ARPHRD_INFINIBAND", Const, 0},
-		{"ARPHRD_IPDDP", Const, 0},
-		{"ARPHRD_IPGRE", Const, 0},
-		{"ARPHRD_IRDA", Const, 0},
-		{"ARPHRD_LAPB", Const, 0},
-		{"ARPHRD_LOCALTLK", Const, 0},
-		{"ARPHRD_LOOPBACK", Const, 0},
-		{"ARPHRD_METRICOM", Const, 0},
-		{"ARPHRD_NETROM", Const, 0},
-		{"ARPHRD_NONE", Const, 0},
-		{"ARPHRD_PIMREG", Const, 0},
-		{"ARPHRD_PPP", Const, 0},
-		{"ARPHRD_PRONET", Const, 0},
-		{"ARPHRD_RAWHDLC", Const, 0},
-		{"ARPHRD_ROSE", Const, 0},
-		{"ARPHRD_RSRVD", Const, 0},
-		{"ARPHRD_SIT", Const, 0},
-		{"ARPHRD_SKIP", Const, 0},
-		{"ARPHRD_SLIP", Const, 0},
-		{"ARPHRD_SLIP6", Const, 0},
-		{"ARPHRD_STRIP", Const, 1},
-		{"ARPHRD_TUNNEL", Const, 0},
-		{"ARPHRD_TUNNEL6", Const, 0},
-		{"ARPHRD_VOID", Const, 0},
-		{"ARPHRD_X25", Const, 0},
-		{"AUTHTYPE_CLIENT", Const, 0},
-		{"AUTHTYPE_SERVER", Const, 0},
-		{"Accept", Func, 0},
-		{"Accept4", Func, 1},
-		{"AcceptEx", Func, 0},
-		{"Access", Func, 0},
-		{"Acct", Func, 0},
-		{"AddrinfoW", Type, 1},
-		{"AddrinfoW.Addr", Field, 1},
-		{"AddrinfoW.Addrlen", Field, 1},
-		{"AddrinfoW.Canonname", Field, 1},
-		{"AddrinfoW.Family", Field, 1},
-		{"AddrinfoW.Flags", Field, 1},
-		{"AddrinfoW.Next", Field, 1},
-		{"AddrinfoW.Protocol", Field, 1},
-		{"AddrinfoW.Socktype", Field, 1},
-		{"Adjtime", Func, 0},
-		{"Adjtimex", Func, 0},
-		{"AllThreadsSyscall", Func, 16},
-		{"AllThreadsSyscall6", Func, 16},
-		{"AttachLsf", Func, 0},
-		{"B0", Const, 0},
-		{"B1000000", Const, 0},
-		{"B110", Const, 0},
-		{"B115200", Const, 0},
-		{"B1152000", Const, 0},
-		{"B1200", Const, 0},
-		{"B134", Const, 0},
-		{"B14400", Const, 1},
-		{"B150", Const, 0},
-		{"B1500000", Const, 0},
-		{"B1800", Const, 0},
-		{"B19200", Const, 0},
-		{"B200", Const, 0},
-		{"B2000000", Const, 0},
-		{"B230400", Const, 0},
-		{"B2400", Const, 0},
-		{"B2500000", Const, 0},
-		{"B28800", Const, 1},
-		{"B300", Const, 0},
-		{"B3000000", Const, 0},
-		{"B3500000", Const, 0},
-		{"B38400", Const, 0},
-		{"B4000000", Const, 0},
-		{"B460800", Const, 0},
-		{"B4800", Const, 0},
-		{"B50", Const, 0},
-		{"B500000", Const, 0},
-		{"B57600", Const, 0},
-		{"B576000", Const, 0},
-		{"B600", Const, 0},
-		{"B7200", Const, 1},
-		{"B75", Const, 0},
-		{"B76800", Const, 1},
-		{"B921600", Const, 0},
-		{"B9600", Const, 0},
-		{"BASE_PROTOCOL", Const, 2},
-		{"BIOCFEEDBACK", Const, 0},
-		{"BIOCFLUSH", Const, 0},
-		{"BIOCGBLEN", Const, 0},
-		{"BIOCGDIRECTION", Const, 0},
-		{"BIOCGDIRFILT", Const, 1},
-		{"BIOCGDLT", Const, 0},
-		{"BIOCGDLTLIST", Const, 0},
-		{"BIOCGETBUFMODE", Const, 0},
-		{"BIOCGETIF", Const, 0},
-		{"BIOCGETZMAX", Const, 0},
-		{"BIOCGFEEDBACK", Const, 1},
-		{"BIOCGFILDROP", Const, 1},
-		{"BIOCGHDRCMPLT", Const, 0},
-		{"BIOCGRSIG", Const, 0},
-		{"BIOCGRTIMEOUT", Const, 0},
-		{"BIOCGSEESENT", Const, 0},
-		{"BIOCGSTATS", Const, 0},
-		{"BIOCGSTATSOLD", Const, 1},
-		{"BIOCGTSTAMP", Const, 1},
-		{"BIOCIMMEDIATE", Const, 0},
-		{"BIOCLOCK", Const, 0},
-		{"BIOCPROMISC", Const, 0},
-		{"BIOCROTZBUF", Const, 0},
-		{"BIOCSBLEN", Const, 0},
-		{"BIOCSDIRECTION", Const, 0},
-		{"BIOCSDIRFILT", Const, 1},
-		{"BIOCSDLT", Const, 0},
-		{"BIOCSETBUFMODE", Const, 0},
-		{"BIOCSETF", Const, 0},
-		{"BIOCSETFNR", Const, 0},
-		{"BIOCSETIF", Const, 0},
-		{"BIOCSETWF", Const, 0},
-		{"BIOCSETZBUF", Const, 0},
-		{"BIOCSFEEDBACK", Const, 1},
-		{"BIOCSFILDROP", Const, 1},
-		{"BIOCSHDRCMPLT", Const, 0},
-		{"BIOCSRSIG", Const, 0},
-		{"BIOCSRTIMEOUT", Const, 0},
-		{"BIOCSSEESENT", Const, 0},
-		{"BIOCSTCPF", Const, 1},
-		{"BIOCSTSTAMP", Const, 1},
-		{"BIOCSUDPF", Const, 1},
-		{"BIOCVERSION", Const, 0},
-		{"BPF_A", Const, 0},
-		{"BPF_ABS", Const, 0},
-		{"BPF_ADD", Const, 0},
-		{"BPF_ALIGNMENT", Const, 0},
-		{"BPF_ALIGNMENT32", Const, 1},
-		{"BPF_ALU", Const, 0},
-		{"BPF_AND", Const, 0},
-		{"BPF_B", Const, 0},
-		{"BPF_BUFMODE_BUFFER", Const, 0},
-		{"BPF_BUFMODE_ZBUF", Const, 0},
-		{"BPF_DFLTBUFSIZE", Const, 1},
-		{"BPF_DIRECTION_IN", Const, 1},
-		{"BPF_DIRECTION_OUT", Const, 1},
-		{"BPF_DIV", Const, 0},
-		{"BPF_H", Const, 0},
-		{"BPF_IMM", Const, 0},
-		{"BPF_IND", Const, 0},
-		{"BPF_JA", Const, 0},
-		{"BPF_JEQ", Const, 0},
-		{"BPF_JGE", Const, 0},
-		{"BPF_JGT", Const, 0},
-		{"BPF_JMP", Const, 0},
-		{"BPF_JSET", Const, 0},
-		{"BPF_K", Const, 0},
-		{"BPF_LD", Const, 0},
-		{"BPF_LDX", Const, 0},
-		{"BPF_LEN", Const, 0},
-		{"BPF_LSH", Const, 0},
-		{"BPF_MAJOR_VERSION", Const, 0},
-		{"BPF_MAXBUFSIZE", Const, 0},
-		{"BPF_MAXINSNS", Const, 0},
-		{"BPF_MEM", Const, 0},
-		{"BPF_MEMWORDS", Const, 0},
-		{"BPF_MINBUFSIZE", Const, 0},
-		{"BPF_MINOR_VERSION", Const, 0},
-		{"BPF_MISC", Const, 0},
-		{"BPF_MSH", Const, 0},
-		{"BPF_MUL", Const, 0},
-		{"BPF_NEG", Const, 0},
-		{"BPF_OR", Const, 0},
-		{"BPF_RELEASE", Const, 0},
-		{"BPF_RET", Const, 0},
-		{"BPF_RSH", Const, 0},
-		{"BPF_ST", Const, 0},
-		{"BPF_STX", Const, 0},
-		{"BPF_SUB", Const, 0},
-		{"BPF_TAX", Const, 0},
-		{"BPF_TXA", Const, 0},
-		{"BPF_T_BINTIME", Const, 1},
-		{"BPF_T_BINTIME_FAST", Const, 1},
-		{"BPF_T_BINTIME_MONOTONIC", Const, 1},
-		{"BPF_T_BINTIME_MONOTONIC_FAST", Const, 1},
-		{"BPF_T_FAST", Const, 1},
-		{"BPF_T_FLAG_MASK", Const, 1},
-		{"BPF_T_FORMAT_MASK", Const, 1},
-		{"BPF_T_MICROTIME", Const, 1},
-		{"BPF_T_MICROTIME_FAST", Const, 1},
-		{"BPF_T_MICROTIME_MONOTONIC", Const, 1},
-		{"BPF_T_MICROTIME_MONOTONIC_FAST", Const, 1},
-		{"BPF_T_MONOTONIC", Const, 1},
-		{"BPF_T_MONOTONIC_FAST", Const, 1},
-		{"BPF_T_NANOTIME", Const, 1},
-		{"BPF_T_NANOTIME_FAST", Const, 1},
-		{"BPF_T_NANOTIME_MONOTONIC", Const, 1},
-		{"BPF_T_NANOTIME_MONOTONIC_FAST", Const, 1},
-		{"BPF_T_NONE", Const, 1},
-		{"BPF_T_NORMAL", Const, 1},
-		{"BPF_W", Const, 0},
-		{"BPF_X", Const, 0},
-		{"BRKINT", Const, 0},
-		{"Bind", Func, 0},
-		{"BindToDevice", Func, 0},
-		{"BpfBuflen", Func, 0},
-		{"BpfDatalink", Func, 0},
-		{"BpfHdr", Type, 0},
-		{"BpfHdr.Caplen", Field, 0},
-		{"BpfHdr.Datalen", Field, 0},
-		{"BpfHdr.Hdrlen", Field, 0},
-		{"BpfHdr.Pad_cgo_0", Field, 0},
-		{"BpfHdr.Tstamp", Field, 0},
-		{"BpfHeadercmpl", Func, 0},
-		{"BpfInsn", Type, 0},
-		{"BpfInsn.Code", Field, 0},
-		{"BpfInsn.Jf", Field, 0},
-		{"BpfInsn.Jt", Field, 0},
-		{"BpfInsn.K", Field, 0},
-		{"BpfInterface", Func, 0},
-		{"BpfJump", Func, 0},
-		{"BpfProgram", Type, 0},
-		{"BpfProgram.Insns", Field, 0},
-		{"BpfProgram.Len", Field, 0},
-		{"BpfProgram.Pad_cgo_0", Field, 0},
-		{"BpfStat", Type, 0},
-		{"BpfStat.Capt", Field, 2},
-		{"BpfStat.Drop", Field, 0},
-		{"BpfStat.Padding", Field, 2},
-		{"BpfStat.Recv", Field, 0},
-		{"BpfStats", Func, 0},
-		{"BpfStmt", Func, 0},
-		{"BpfTimeout", Func, 0},
-		{"BpfTimeval", Type, 2},
-		{"BpfTimeval.Sec", Field, 2},
-		{"BpfTimeval.Usec", Field, 2},
-		{"BpfVersion", Type, 0},
-		{"BpfVersion.Major", Field, 0},
-		{"BpfVersion.Minor", Field, 0},
-		{"BpfZbuf", Type, 0},
-		{"BpfZbuf.Bufa", Field, 0},
-		{"BpfZbuf.Bufb", Field, 0},
-		{"BpfZbuf.Buflen", Field, 0},
-		{"BpfZbufHeader", Type, 0},
-		{"BpfZbufHeader.Kernel_gen", Field, 0},
-		{"BpfZbufHeader.Kernel_len", Field, 0},
-		{"BpfZbufHeader.User_gen", Field, 0},
-		{"BpfZbufHeader.X_bzh_pad", Field, 0},
-		{"ByHandleFileInformation", Type, 0},
-		{"ByHandleFileInformation.CreationTime", Field, 0},
-		{"ByHandleFileInformation.FileAttributes", Field, 0},
-		{"ByHandleFileInformation.FileIndexHigh", Field, 0},
-		{"ByHandleFileInformation.FileIndexLow", Field, 0},
-		{"ByHandleFileInformation.FileSizeHigh", Field, 0},
-		{"ByHandleFileInformation.FileSizeLow", Field, 0},
-		{"ByHandleFileInformation.LastAccessTime", Field, 0},
-		{"ByHandleFileInformation.LastWriteTime", Field, 0},
-		{"ByHandleFileInformation.NumberOfLinks", Field, 0},
-		{"ByHandleFileInformation.VolumeSerialNumber", Field, 0},
-		{"BytePtrFromString", Func, 1},
-		{"ByteSliceFromString", Func, 1},
-		{"CCR0_FLUSH", Const, 1},
-		{"CERT_CHAIN_POLICY_AUTHENTICODE", Const, 0},
-		{"CERT_CHAIN_POLICY_AUTHENTICODE_TS", Const, 0},
-		{"CERT_CHAIN_POLICY_BASE", Const, 0},
-		{"CERT_CHAIN_POLICY_BASIC_CONSTRAINTS", Const, 0},
-		{"CERT_CHAIN_POLICY_EV", Const, 0},
-		{"CERT_CHAIN_POLICY_MICROSOFT_ROOT", Const, 0},
-		{"CERT_CHAIN_POLICY_NT_AUTH", Const, 0},
-		{"CERT_CHAIN_POLICY_SSL", Const, 0},
-		{"CERT_E_CN_NO_MATCH", Const, 0},
-		{"CERT_E_EXPIRED", Const, 0},
-		{"CERT_E_PURPOSE", Const, 0},
-		{"CERT_E_ROLE", Const, 0},
-		{"CERT_E_UNTRUSTEDROOT", Const, 0},
-		{"CERT_STORE_ADD_ALWAYS", Const, 0},
-		{"CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG", Const, 0},
-		{"CERT_STORE_PROV_MEMORY", Const, 0},
-		{"CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT", Const, 0},
-		{"CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT", Const, 0},
-		{"CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT", Const, 0},
-		{"CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT", Const, 0},
-		{"CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT", Const, 0},
-		{"CERT_TRUST_INVALID_BASIC_CONSTRAINTS", Const, 0},
-		{"CERT_TRUST_INVALID_EXTENSION", Const, 0},
-		{"CERT_TRUST_INVALID_NAME_CONSTRAINTS", Const, 0},
-		{"CERT_TRUST_INVALID_POLICY_CONSTRAINTS", Const, 0},
-		{"CERT_TRUST_IS_CYCLIC", Const, 0},
-		{"CERT_TRUST_IS_EXPLICIT_DISTRUST", Const, 0},
-		{"CERT_TRUST_IS_NOT_SIGNATURE_VALID", Const, 0},
-		{"CERT_TRUST_IS_NOT_TIME_VALID", Const, 0},
-		{"CERT_TRUST_IS_NOT_VALID_FOR_USAGE", Const, 0},
-		{"CERT_TRUST_IS_OFFLINE_REVOCATION", Const, 0},
-		{"CERT_TRUST_IS_REVOKED", Const, 0},
-		{"CERT_TRUST_IS_UNTRUSTED_ROOT", Const, 0},
-		{"CERT_TRUST_NO_ERROR", Const, 0},
-		{"CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY", Const, 0},
-		{"CERT_TRUST_REVOCATION_STATUS_UNKNOWN", Const, 0},
-		{"CFLUSH", Const, 1},
-		{"CLOCAL", Const, 0},
-		{"CLONE_CHILD_CLEARTID", Const, 2},
-		{"CLONE_CHILD_SETTID", Const, 2},
-		{"CLONE_CLEAR_SIGHAND", Const, 20},
-		{"CLONE_CSIGNAL", Const, 3},
-		{"CLONE_DETACHED", Const, 2},
-		{"CLONE_FILES", Const, 2},
-		{"CLONE_FS", Const, 2},
-		{"CLONE_INTO_CGROUP", Const, 20},
-		{"CLONE_IO", Const, 2},
-		{"CLONE_NEWCGROUP", Const, 20},
-		{"CLONE_NEWIPC", Const, 2},
-		{"CLONE_NEWNET", Const, 2},
-		{"CLONE_NEWNS", Const, 2},
-		{"CLONE_NEWPID", Const, 2},
-		{"CLONE_NEWTIME", Const, 20},
-		{"CLONE_NEWUSER", Const, 2},
-		{"CLONE_NEWUTS", Const, 2},
-		{"CLONE_PARENT", Const, 2},
-		{"CLONE_PARENT_SETTID", Const, 2},
-		{"CLONE_PID", Const, 3},
-		{"CLONE_PIDFD", Const, 20},
-		{"CLONE_PTRACE", Const, 2},
-		{"CLONE_SETTLS", Const, 2},
-		{"CLONE_SIGHAND", Const, 2},
-		{"CLONE_SYSVSEM", Const, 2},
-		{"CLONE_THREAD", Const, 2},
-		{"CLONE_UNTRACED", Const, 2},
-		{"CLONE_VFORK", Const, 2},
-		{"CLONE_VM", Const, 2},
-		{"CPUID_CFLUSH", Const, 1},
-		{"CREAD", Const, 0},
-		{"CREATE_ALWAYS", Const, 0},
-		{"CREATE_NEW", Const, 0},
-		{"CREATE_NEW_PROCESS_GROUP", Const, 1},
-		{"CREATE_UNICODE_ENVIRONMENT", Const, 0},
-		{"CRYPT_DEFAULT_CONTAINER_OPTIONAL", Const, 0},
-		{"CRYPT_DELETEKEYSET", Const, 0},
-		{"CRYPT_MACHINE_KEYSET", Const, 0},
-		{"CRYPT_NEWKEYSET", Const, 0},
-		{"CRYPT_SILENT", Const, 0},
-		{"CRYPT_VERIFYCONTEXT", Const, 0},
-		{"CS5", Const, 0},
-		{"CS6", Const, 0},
-		{"CS7", Const, 0},
-		{"CS8", Const, 0},
-		{"CSIZE", Const, 0},
-		{"CSTART", Const, 1},
-		{"CSTATUS", Const, 1},
-		{"CSTOP", Const, 1},
-		{"CSTOPB", Const, 0},
-		{"CSUSP", Const, 1},
-		{"CTL_MAXNAME", Const, 0},
-		{"CTL_NET", Const, 0},
-		{"CTL_QUERY", Const, 1},
-		{"CTRL_BREAK_EVENT", Const, 1},
-		{"CTRL_CLOSE_EVENT", Const, 14},
-		{"CTRL_C_EVENT", Const, 1},
-		{"CTRL_LOGOFF_EVENT", Const, 14},
-		{"CTRL_SHUTDOWN_EVENT", Const, 14},
-		{"CancelIo", Func, 0},
-		{"CancelIoEx", Func, 1},
-		{"CertAddCertificateContextToStore", Func, 0},
-		{"CertChainContext", Type, 0},
-		{"CertChainContext.ChainCount", Field, 0},
-		{"CertChainContext.Chains", Field, 0},
-		{"CertChainContext.HasRevocationFreshnessTime", Field, 0},
-		{"CertChainContext.LowerQualityChainCount", Field, 0},
-		{"CertChainContext.LowerQualityChains", Field, 0},
-		{"CertChainContext.RevocationFreshnessTime", Field, 0},
-		{"CertChainContext.Size", Field, 0},
-		{"CertChainContext.TrustStatus", Field, 0},
-		{"CertChainElement", Type, 0},
-		{"CertChainElement.ApplicationUsage", Field, 0},
-		{"CertChainElement.CertContext", Field, 0},
-		{"CertChainElement.ExtendedErrorInfo", Field, 0},
-		{"CertChainElement.IssuanceUsage", Field, 0},
-		{"CertChainElement.RevocationInfo", Field, 0},
-		{"CertChainElement.Size", Field, 0},
-		{"CertChainElement.TrustStatus", Field, 0},
-		{"CertChainPara", Type, 0},
-		{"CertChainPara.CacheResync", Field, 0},
-		{"CertChainPara.CheckRevocationFreshnessTime", Field, 0},
-		{"CertChainPara.RequestedUsage", Field, 0},
-		{"CertChainPara.RequstedIssuancePolicy", Field, 0},
-		{"CertChainPara.RevocationFreshnessTime", Field, 0},
-		{"CertChainPara.Size", Field, 0},
-		{"CertChainPara.URLRetrievalTimeout", Field, 0},
-		{"CertChainPolicyPara", Type, 0},
-		{"CertChainPolicyPara.ExtraPolicyPara", Field, 0},
-		{"CertChainPolicyPara.Flags", Field, 0},
-		{"CertChainPolicyPara.Size", Field, 0},
-		{"CertChainPolicyStatus", Type, 0},
-		{"CertChainPolicyStatus.ChainIndex", Field, 0},
-		{"CertChainPolicyStatus.ElementIndex", Field, 0},
-		{"CertChainPolicyStatus.Error", Field, 0},
-		{"CertChainPolicyStatus.ExtraPolicyStatus", Field, 0},
-		{"CertChainPolicyStatus.Size", Field, 0},
-		{"CertCloseStore", Func, 0},
-		{"CertContext", Type, 0},
-		{"CertContext.CertInfo", Field, 0},
-		{"CertContext.EncodedCert", Field, 0},
-		{"CertContext.EncodingType", Field, 0},
-		{"CertContext.Length", Field, 0},
-		{"CertContext.Store", Field, 0},
-		{"CertCreateCertificateContext", Func, 0},
-		{"CertEnhKeyUsage", Type, 0},
-		{"CertEnhKeyUsage.Length", Field, 0},
-		{"CertEnhKeyUsage.UsageIdentifiers", Field, 0},
-		{"CertEnumCertificatesInStore", Func, 0},
-		{"CertFreeCertificateChain", Func, 0},
-		{"CertFreeCertificateContext", Func, 0},
-		{"CertGetCertificateChain", Func, 0},
-		{"CertInfo", Type, 11},
-		{"CertOpenStore", Func, 0},
-		{"CertOpenSystemStore", Func, 0},
-		{"CertRevocationCrlInfo", Type, 11},
-		{"CertRevocationInfo", Type, 0},
-		{"CertRevocationInfo.CrlInfo", Field, 0},
-		{"CertRevocationInfo.FreshnessTime", Field, 0},
-		{"CertRevocationInfo.HasFreshnessTime", Field, 0},
-		{"CertRevocationInfo.OidSpecificInfo", Field, 0},
-		{"CertRevocationInfo.RevocationOid", Field, 0},
-		{"CertRevocationInfo.RevocationResult", Field, 0},
-		{"CertRevocationInfo.Size", Field, 0},
-		{"CertSimpleChain", Type, 0},
-		{"CertSimpleChain.Elements", Field, 0},
-		{"CertSimpleChain.HasRevocationFreshnessTime", Field, 0},
-		{"CertSimpleChain.NumElements", Field, 0},
-		{"CertSimpleChain.RevocationFreshnessTime", Field, 0},
-		{"CertSimpleChain.Size", Field, 0},
-		{"CertSimpleChain.TrustListInfo", Field, 0},
-		{"CertSimpleChain.TrustStatus", Field, 0},
-		{"CertTrustListInfo", Type, 11},
-		{"CertTrustStatus", Type, 0},
-		{"CertTrustStatus.ErrorStatus", Field, 0},
-		{"CertTrustStatus.InfoStatus", Field, 0},
-		{"CertUsageMatch", Type, 0},
-		{"CertUsageMatch.Type", Field, 0},
-		{"CertUsageMatch.Usage", Field, 0},
-		{"CertVerifyCertificateChainPolicy", Func, 0},
-		{"Chdir", Func, 0},
-		{"CheckBpfVersion", Func, 0},
-		{"Chflags", Func, 0},
-		{"Chmod", Func, 0},
-		{"Chown", Func, 0},
-		{"Chroot", Func, 0},
-		{"Clearenv", Func, 0},
-		{"Close", Func, 0},
-		{"CloseHandle", Func, 0},
-		{"CloseOnExec", Func, 0},
-		{"Closesocket", Func, 0},
-		{"CmsgLen", Func, 0},
-		{"CmsgSpace", Func, 0},
-		{"Cmsghdr", Type, 0},
-		{"Cmsghdr.Len", Field, 0},
-		{"Cmsghdr.Level", Field, 0},
-		{"Cmsghdr.Type", Field, 0},
-		{"Cmsghdr.X__cmsg_data", Field, 0},
-		{"CommandLineToArgv", Func, 0},
-		{"ComputerName", Func, 0},
-		{"Conn", Type, 9},
-		{"Connect", Func, 0},
-		{"ConnectEx", Func, 1},
-		{"ConvertSidToStringSid", Func, 0},
-		{"ConvertStringSidToSid", Func, 0},
-		{"CopySid", Func, 0},
-		{"Creat", Func, 0},
-		{"CreateDirectory", Func, 0},
-		{"CreateFile", Func, 0},
-		{"CreateFileMapping", Func, 0},
-		{"CreateHardLink", Func, 4},
-		{"CreateIoCompletionPort", Func, 0},
-		{"CreatePipe", Func, 0},
-		{"CreateProcess", Func, 0},
-		{"CreateProcessAsUser", Func, 10},
-		{"CreateSymbolicLink", Func, 4},
-		{"CreateToolhelp32Snapshot", Func, 4},
-		{"Credential", Type, 0},
-		{"Credential.Gid", Field, 0},
-		{"Credential.Groups", Field, 0},
-		{"Credential.NoSetGroups", Field, 9},
-		{"Credential.Uid", Field, 0},
-		{"CryptAcquireContext", Func, 0},
-		{"CryptGenRandom", Func, 0},
-		{"CryptReleaseContext", Func, 0},
-		{"DIOCBSFLUSH", Const, 1},
-		{"DIOCOSFPFLUSH", Const, 1},
-		{"DLL", Type, 0},
-		{"DLL.Handle", Field, 0},
-		{"DLL.Name", Field, 0},
-		{"DLLError", Type, 0},
-		{"DLLError.Err", Field, 0},
-		{"DLLError.Msg", Field, 0},
-		{"DLLError.ObjName", Field, 0},
-		{"DLT_A429", Const, 0},
-		{"DLT_A653_ICM", Const, 0},
-		{"DLT_AIRONET_HEADER", Const, 0},
-		{"DLT_AOS", Const, 1},
-		{"DLT_APPLE_IP_OVER_IEEE1394", Const, 0},
-		{"DLT_ARCNET", Const, 0},
-		{"DLT_ARCNET_LINUX", Const, 0},
-		{"DLT_ATM_CLIP", Const, 0},
-		{"DLT_ATM_RFC1483", Const, 0},
-		{"DLT_AURORA", Const, 0},
-		{"DLT_AX25", Const, 0},
-		{"DLT_AX25_KISS", Const, 0},
-		{"DLT_BACNET_MS_TP", Const, 0},
-		{"DLT_BLUETOOTH_HCI_H4", Const, 0},
-		{"DLT_BLUETOOTH_HCI_H4_WITH_PHDR", Const, 0},
-		{"DLT_CAN20B", Const, 0},
-		{"DLT_CAN_SOCKETCAN", Const, 1},
-		{"DLT_CHAOS", Const, 0},
-		{"DLT_CHDLC", Const, 0},
-		{"DLT_CISCO_IOS", Const, 0},
-		{"DLT_C_HDLC", Const, 0},
-		{"DLT_C_HDLC_WITH_DIR", Const, 0},
-		{"DLT_DBUS", Const, 1},
-		{"DLT_DECT", Const, 1},
-		{"DLT_DOCSIS", Const, 0},
-		{"DLT_DVB_CI", Const, 1},
-		{"DLT_ECONET", Const, 0},
-		{"DLT_EN10MB", Const, 0},
-		{"DLT_EN3MB", Const, 0},
-		{"DLT_ENC", Const, 0},
-		{"DLT_ERF", Const, 0},
-		{"DLT_ERF_ETH", Const, 0},
-		{"DLT_ERF_POS", Const, 0},
-		{"DLT_FC_2", Const, 1},
-		{"DLT_FC_2_WITH_FRAME_DELIMS", Const, 1},
-		{"DLT_FDDI", Const, 0},
-		{"DLT_FLEXRAY", Const, 0},
-		{"DLT_FRELAY", Const, 0},
-		{"DLT_FRELAY_WITH_DIR", Const, 0},
-		{"DLT_GCOM_SERIAL", Const, 0},
-		{"DLT_GCOM_T1E1", Const, 0},
-		{"DLT_GPF_F", Const, 0},
-		{"DLT_GPF_T", Const, 0},
-		{"DLT_GPRS_LLC", Const, 0},
-		{"DLT_GSMTAP_ABIS", Const, 1},
-		{"DLT_GSMTAP_UM", Const, 1},
-		{"DLT_HDLC", Const, 1},
-		{"DLT_HHDLC", Const, 0},
-		{"DLT_HIPPI", Const, 1},
-		{"DLT_IBM_SN", Const, 0},
-		{"DLT_IBM_SP", Const, 0},
-		{"DLT_IEEE802", Const, 0},
-		{"DLT_IEEE802_11", Const, 0},
-		{"DLT_IEEE802_11_RADIO", Const, 0},
-		{"DLT_IEEE802_11_RADIO_AVS", Const, 0},
-		{"DLT_IEEE802_15_4", Const, 0},
-		{"DLT_IEEE802_15_4_LINUX", Const, 0},
-		{"DLT_IEEE802_15_4_NOFCS", Const, 1},
-		{"DLT_IEEE802_15_4_NONASK_PHY", Const, 0},
-		{"DLT_IEEE802_16_MAC_CPS", Const, 0},
-		{"DLT_IEEE802_16_MAC_CPS_RADIO", Const, 0},
-		{"DLT_IPFILTER", Const, 0},
-		{"DLT_IPMB", Const, 0},
-		{"DLT_IPMB_LINUX", Const, 0},
-		{"DLT_IPNET", Const, 1},
-		{"DLT_IPOIB", Const, 1},
-		{"DLT_IPV4", Const, 1},
-		{"DLT_IPV6", Const, 1},
-		{"DLT_IP_OVER_FC", Const, 0},
-		{"DLT_JUNIPER_ATM1", Const, 0},
-		{"DLT_JUNIPER_ATM2", Const, 0},
-		{"DLT_JUNIPER_ATM_CEMIC", Const, 1},
-		{"DLT_JUNIPER_CHDLC", Const, 0},
-		{"DLT_JUNIPER_ES", Const, 0},
-		{"DLT_JUNIPER_ETHER", Const, 0},
-		{"DLT_JUNIPER_FIBRECHANNEL", Const, 1},
-		{"DLT_JUNIPER_FRELAY", Const, 0},
-		{"DLT_JUNIPER_GGSN", Const, 0},
-		{"DLT_JUNIPER_ISM", Const, 0},
-		{"DLT_JUNIPER_MFR", Const, 0},
-		{"DLT_JUNIPER_MLFR", Const, 0},
-		{"DLT_JUNIPER_MLPPP", Const, 0},
-		{"DLT_JUNIPER_MONITOR", Const, 0},
-		{"DLT_JUNIPER_PIC_PEER", Const, 0},
-		{"DLT_JUNIPER_PPP", Const, 0},
-		{"DLT_JUNIPER_PPPOE", Const, 0},
-		{"DLT_JUNIPER_PPPOE_ATM", Const, 0},
-		{"DLT_JUNIPER_SERVICES", Const, 0},
-		{"DLT_JUNIPER_SRX_E2E", Const, 1},
-		{"DLT_JUNIPER_ST", Const, 0},
-		{"DLT_JUNIPER_VP", Const, 0},
-		{"DLT_JUNIPER_VS", Const, 1},
-		{"DLT_LAPB_WITH_DIR", Const, 0},
-		{"DLT_LAPD", Const, 0},
-		{"DLT_LIN", Const, 0},
-		{"DLT_LINUX_EVDEV", Const, 1},
-		{"DLT_LINUX_IRDA", Const, 0},
-		{"DLT_LINUX_LAPD", Const, 0},
-		{"DLT_LINUX_PPP_WITHDIRECTION", Const, 0},
-		{"DLT_LINUX_SLL", Const, 0},
-		{"DLT_LOOP", Const, 0},
-		{"DLT_LTALK", Const, 0},
-		{"DLT_MATCHING_MAX", Const, 1},
-		{"DLT_MATCHING_MIN", Const, 1},
-		{"DLT_MFR", Const, 0},
-		{"DLT_MOST", Const, 0},
-		{"DLT_MPEG_2_TS", Const, 1},
-		{"DLT_MPLS", Const, 1},
-		{"DLT_MTP2", Const, 0},
-		{"DLT_MTP2_WITH_PHDR", Const, 0},
-		{"DLT_MTP3", Const, 0},
-		{"DLT_MUX27010", Const, 1},
-		{"DLT_NETANALYZER", Const, 1},
-		{"DLT_NETANALYZER_TRANSPARENT", Const, 1},
-		{"DLT_NFC_LLCP", Const, 1},
-		{"DLT_NFLOG", Const, 1},
-		{"DLT_NG40", Const, 1},
-		{"DLT_NULL", Const, 0},
-		{"DLT_PCI_EXP", Const, 0},
-		{"DLT_PFLOG", Const, 0},
-		{"DLT_PFSYNC", Const, 0},
-		{"DLT_PPI", Const, 0},
-		{"DLT_PPP", Const, 0},
-		{"DLT_PPP_BSDOS", Const, 0},
-		{"DLT_PPP_ETHER", Const, 0},
-		{"DLT_PPP_PPPD", Const, 0},
-		{"DLT_PPP_SERIAL", Const, 0},
-		{"DLT_PPP_WITH_DIR", Const, 0},
-		{"DLT_PPP_WITH_DIRECTION", Const, 0},
-		{"DLT_PRISM_HEADER", Const, 0},
-		{"DLT_PRONET", Const, 0},
-		{"DLT_RAIF1", Const, 0},
-		{"DLT_RAW", Const, 0},
-		{"DLT_RAWAF_MASK", Const, 1},
-		{"DLT_RIO", Const, 0},
-		{"DLT_SCCP", Const, 0},
-		{"DLT_SITA", Const, 0},
-		{"DLT_SLIP", Const, 0},
-		{"DLT_SLIP_BSDOS", Const, 0},
-		{"DLT_STANAG_5066_D_PDU", Const, 1},
-		{"DLT_SUNATM", Const, 0},
-		{"DLT_SYMANTEC_FIREWALL", Const, 0},
-		{"DLT_TZSP", Const, 0},
-		{"DLT_USB", Const, 0},
-		{"DLT_USB_LINUX", Const, 0},
-		{"DLT_USB_LINUX_MMAPPED", Const, 1},
-		{"DLT_USER0", Const, 0},
-		{"DLT_USER1", Const, 0},
-		{"DLT_USER10", Const, 0},
-		{"DLT_USER11", Const, 0},
-		{"DLT_USER12", Const, 0},
-		{"DLT_USER13", Const, 0},
-		{"DLT_USER14", Const, 0},
-		{"DLT_USER15", Const, 0},
-		{"DLT_USER2", Const, 0},
-		{"DLT_USER3", Const, 0},
-		{"DLT_USER4", Const, 0},
-		{"DLT_USER5", Const, 0},
-		{"DLT_USER6", Const, 0},
-		{"DLT_USER7", Const, 0},
-		{"DLT_USER8", Const, 0},
-		{"DLT_USER9", Const, 0},
-		{"DLT_WIHART", Const, 1},
-		{"DLT_X2E_SERIAL", Const, 0},
-		{"DLT_X2E_XORAYA", Const, 0},
-		{"DNSMXData", Type, 0},
-		{"DNSMXData.NameExchange", Field, 0},
-		{"DNSMXData.Pad", Field, 0},
-		{"DNSMXData.Preference", Field, 0},
-		{"DNSPTRData", Type, 0},
-		{"DNSPTRData.Host", Field, 0},
-		{"DNSRecord", Type, 0},
-		{"DNSRecord.Data", Field, 0},
-		{"DNSRecord.Dw", Field, 0},
-		{"DNSRecord.Length", Field, 0},
-		{"DNSRecord.Name", Field, 0},
-		{"DNSRecord.Next", Field, 0},
-		{"DNSRecord.Reserved", Field, 0},
-		{"DNSRecord.Ttl", Field, 0},
-		{"DNSRecord.Type", Field, 0},
-		{"DNSSRVData", Type, 0},
-		{"DNSSRVData.Pad", Field, 0},
-		{"DNSSRVData.Port", Field, 0},
-		{"DNSSRVData.Priority", Field, 0},
-		{"DNSSRVData.Target", Field, 0},
-		{"DNSSRVData.Weight", Field, 0},
-		{"DNSTXTData", Type, 0},
-		{"DNSTXTData.StringArray", Field, 0},
-		{"DNSTXTData.StringCount", Field, 0},
-		{"DNS_INFO_NO_RECORDS", Const, 4},
-		{"DNS_TYPE_A", Const, 0},
-		{"DNS_TYPE_A6", Const, 0},
-		{"DNS_TYPE_AAAA", Const, 0},
-		{"DNS_TYPE_ADDRS", Const, 0},
-		{"DNS_TYPE_AFSDB", Const, 0},
-		{"DNS_TYPE_ALL", Const, 0},
-		{"DNS_TYPE_ANY", Const, 0},
-		{"DNS_TYPE_ATMA", Const, 0},
-		{"DNS_TYPE_AXFR", Const, 0},
-		{"DNS_TYPE_CERT", Const, 0},
-		{"DNS_TYPE_CNAME", Const, 0},
-		{"DNS_TYPE_DHCID", Const, 0},
-		{"DNS_TYPE_DNAME", Const, 0},
-		{"DNS_TYPE_DNSKEY", Const, 0},
-		{"DNS_TYPE_DS", Const, 0},
-		{"DNS_TYPE_EID", Const, 0},
-		{"DNS_TYPE_GID", Const, 0},
-		{"DNS_TYPE_GPOS", Const, 0},
-		{"DNS_TYPE_HINFO", Const, 0},
-		{"DNS_TYPE_ISDN", Const, 0},
-		{"DNS_TYPE_IXFR", Const, 0},
-		{"DNS_TYPE_KEY", Const, 0},
-		{"DNS_TYPE_KX", Const, 0},
-		{"DNS_TYPE_LOC", Const, 0},
-		{"DNS_TYPE_MAILA", Const, 0},
-		{"DNS_TYPE_MAILB", Const, 0},
-		{"DNS_TYPE_MB", Const, 0},
-		{"DNS_TYPE_MD", Const, 0},
-		{"DNS_TYPE_MF", Const, 0},
-		{"DNS_TYPE_MG", Const, 0},
-		{"DNS_TYPE_MINFO", Const, 0},
-		{"DNS_TYPE_MR", Const, 0},
-		{"DNS_TYPE_MX", Const, 0},
-		{"DNS_TYPE_NAPTR", Const, 0},
-		{"DNS_TYPE_NBSTAT", Const, 0},
-		{"DNS_TYPE_NIMLOC", Const, 0},
-		{"DNS_TYPE_NS", Const, 0},
-		{"DNS_TYPE_NSAP", Const, 0},
-		{"DNS_TYPE_NSAPPTR", Const, 0},
-		{"DNS_TYPE_NSEC", Const, 0},
-		{"DNS_TYPE_NULL", Const, 0},
-		{"DNS_TYPE_NXT", Const, 0},
-		{"DNS_TYPE_OPT", Const, 0},
-		{"DNS_TYPE_PTR", Const, 0},
-		{"DNS_TYPE_PX", Const, 0},
-		{"DNS_TYPE_RP", Const, 0},
-		{"DNS_TYPE_RRSIG", Const, 0},
-		{"DNS_TYPE_RT", Const, 0},
-		{"DNS_TYPE_SIG", Const, 0},
-		{"DNS_TYPE_SINK", Const, 0},
-		{"DNS_TYPE_SOA", Const, 0},
-		{"DNS_TYPE_SRV", Const, 0},
-		{"DNS_TYPE_TEXT", Const, 0},
-		{"DNS_TYPE_TKEY", Const, 0},
-		{"DNS_TYPE_TSIG", Const, 0},
-		{"DNS_TYPE_UID", Const, 0},
-		{"DNS_TYPE_UINFO", Const, 0},
-		{"DNS_TYPE_UNSPEC", Const, 0},
-		{"DNS_TYPE_WINS", Const, 0},
-		{"DNS_TYPE_WINSR", Const, 0},
-		{"DNS_TYPE_WKS", Const, 0},
-		{"DNS_TYPE_X25", Const, 0},
-		{"DT_BLK", Const, 0},
-		{"DT_CHR", Const, 0},
-		{"DT_DIR", Const, 0},
-		{"DT_FIFO", Const, 0},
-		{"DT_LNK", Const, 0},
-		{"DT_REG", Const, 0},
-		{"DT_SOCK", Const, 0},
-		{"DT_UNKNOWN", Const, 0},
-		{"DT_WHT", Const, 0},
-		{"DUPLICATE_CLOSE_SOURCE", Const, 0},
-		{"DUPLICATE_SAME_ACCESS", Const, 0},
-		{"DeleteFile", Func, 0},
-		{"DetachLsf", Func, 0},
-		{"DeviceIoControl", Func, 4},
-		{"Dirent", Type, 0},
-		{"Dirent.Fileno", Field, 0},
-		{"Dirent.Ino", Field, 0},
-		{"Dirent.Name", Field, 0},
-		{"Dirent.Namlen", Field, 0},
-		{"Dirent.Off", Field, 0},
-		{"Dirent.Pad0", Field, 12},
-		{"Dirent.Pad1", Field, 12},
-		{"Dirent.Pad_cgo_0", Field, 0},
-		{"Dirent.Reclen", Field, 0},
-		{"Dirent.Seekoff", Field, 0},
-		{"Dirent.Type", Field, 0},
-		{"Dirent.X__d_padding", Field, 3},
-		{"DnsNameCompare", Func, 4},
-		{"DnsQuery", Func, 0},
-		{"DnsRecordListFree", Func, 0},
-		{"DnsSectionAdditional", Const, 4},
-		{"DnsSectionAnswer", Const, 4},
-		{"DnsSectionAuthority", Const, 4},
-		{"DnsSectionQuestion", Const, 4},
-		{"Dup", Func, 0},
-		{"Dup2", Func, 0},
-		{"Dup3", Func, 2},
-		{"DuplicateHandle", Func, 0},
-		{"E2BIG", Const, 0},
-		{"EACCES", Const, 0},
-		{"EADDRINUSE", Const, 0},
-		{"EADDRNOTAVAIL", Const, 0},
-		{"EADV", Const, 0},
-		{"EAFNOSUPPORT", Const, 0},
-		{"EAGAIN", Const, 0},
-		{"EALREADY", Const, 0},
-		{"EAUTH", Const, 0},
-		{"EBADARCH", Const, 0},
-		{"EBADE", Const, 0},
-		{"EBADEXEC", Const, 0},
-		{"EBADF", Const, 0},
-		{"EBADFD", Const, 0},
-		{"EBADMACHO", Const, 0},
-		{"EBADMSG", Const, 0},
-		{"EBADR", Const, 0},
-		{"EBADRPC", Const, 0},
-		{"EBADRQC", Const, 0},
-		{"EBADSLT", Const, 0},
-		{"EBFONT", Const, 0},
-		{"EBUSY", Const, 0},
-		{"ECANCELED", Const, 0},
-		{"ECAPMODE", Const, 1},
-		{"ECHILD", Const, 0},
-		{"ECHO", Const, 0},
-		{"ECHOCTL", Const, 0},
-		{"ECHOE", Const, 0},
-		{"ECHOK", Const, 0},
-		{"ECHOKE", Const, 0},
-		{"ECHONL", Const, 0},
-		{"ECHOPRT", Const, 0},
-		{"ECHRNG", Const, 0},
-		{"ECOMM", Const, 0},
-		{"ECONNABORTED", Const, 0},
-		{"ECONNREFUSED", Const, 0},
-		{"ECONNRESET", Const, 0},
-		{"EDEADLK", Const, 0},
-		{"EDEADLOCK", Const, 0},
-		{"EDESTADDRREQ", Const, 0},
-		{"EDEVERR", Const, 0},
-		{"EDOM", Const, 0},
-		{"EDOOFUS", Const, 0},
-		{"EDOTDOT", Const, 0},
-		{"EDQUOT", Const, 0},
-		{"EEXIST", Const, 0},
-		{"EFAULT", Const, 0},
-		{"EFBIG", Const, 0},
-		{"EFER_LMA", Const, 1},
-		{"EFER_LME", Const, 1},
-		{"EFER_NXE", Const, 1},
-		{"EFER_SCE", Const, 1},
-		{"EFTYPE", Const, 0},
-		{"EHOSTDOWN", Const, 0},
-		{"EHOSTUNREACH", Const, 0},
-		{"EHWPOISON", Const, 0},
-		{"EIDRM", Const, 0},
-		{"EILSEQ", Const, 0},
-		{"EINPROGRESS", Const, 0},
-		{"EINTR", Const, 0},
-		{"EINVAL", Const, 0},
-		{"EIO", Const, 0},
-		{"EIPSEC", Const, 1},
-		{"EISCONN", Const, 0},
-		{"EISDIR", Const, 0},
-		{"EISNAM", Const, 0},
-		{"EKEYEXPIRED", Const, 0},
-		{"EKEYREJECTED", Const, 0},
-		{"EKEYREVOKED", Const, 0},
-		{"EL2HLT", Const, 0},
-		{"EL2NSYNC", Const, 0},
-		{"EL3HLT", Const, 0},
-		{"EL3RST", Const, 0},
-		{"ELAST", Const, 0},
-		{"ELF_NGREG", Const, 0},
-		{"ELF_PRARGSZ", Const, 0},
-		{"ELIBACC", Const, 0},
-		{"ELIBBAD", Const, 0},
-		{"ELIBEXEC", Const, 0},
-		{"ELIBMAX", Const, 0},
-		{"ELIBSCN", Const, 0},
-		{"ELNRNG", Const, 0},
-		{"ELOOP", Const, 0},
-		{"EMEDIUMTYPE", Const, 0},
-		{"EMFILE", Const, 0},
-		{"EMLINK", Const, 0},
-		{"EMSGSIZE", Const, 0},
-		{"EMT_TAGOVF", Const, 1},
-		{"EMULTIHOP", Const, 0},
-		{"EMUL_ENABLED", Const, 1},
-		{"EMUL_LINUX", Const, 1},
-		{"EMUL_LINUX32", Const, 1},
-		{"EMUL_MAXID", Const, 1},
-		{"EMUL_NATIVE", Const, 1},
-		{"ENAMETOOLONG", Const, 0},
-		{"ENAVAIL", Const, 0},
-		{"ENDRUNDISC", Const, 1},
-		{"ENEEDAUTH", Const, 0},
-		{"ENETDOWN", Const, 0},
-		{"ENETRESET", Const, 0},
-		{"ENETUNREACH", Const, 0},
-		{"ENFILE", Const, 0},
-		{"ENOANO", Const, 0},
-		{"ENOATTR", Const, 0},
-		{"ENOBUFS", Const, 0},
-		{"ENOCSI", Const, 0},
-		{"ENODATA", Const, 0},
-		{"ENODEV", Const, 0},
-		{"ENOENT", Const, 0},
-		{"ENOEXEC", Const, 0},
-		{"ENOKEY", Const, 0},
-		{"ENOLCK", Const, 0},
-		{"ENOLINK", Const, 0},
-		{"ENOMEDIUM", Const, 0},
-		{"ENOMEM", Const, 0},
-		{"ENOMSG", Const, 0},
-		{"ENONET", Const, 0},
-		{"ENOPKG", Const, 0},
-		{"ENOPOLICY", Const, 0},
-		{"ENOPROTOOPT", Const, 0},
-		{"ENOSPC", Const, 0},
-		{"ENOSR", Const, 0},
-		{"ENOSTR", Const, 0},
-		{"ENOSYS", Const, 0},
-		{"ENOTBLK", Const, 0},
-		{"ENOTCAPABLE", Const, 0},
-		{"ENOTCONN", Const, 0},
-		{"ENOTDIR", Const, 0},
-		{"ENOTEMPTY", Const, 0},
-		{"ENOTNAM", Const, 0},
-		{"ENOTRECOVERABLE", Const, 0},
-		{"ENOTSOCK", Const, 0},
-		{"ENOTSUP", Const, 0},
-		{"ENOTTY", Const, 0},
-		{"ENOTUNIQ", Const, 0},
-		{"ENXIO", Const, 0},
-		{"EN_SW_CTL_INF", Const, 1},
-		{"EN_SW_CTL_PREC", Const, 1},
-		{"EN_SW_CTL_ROUND", Const, 1},
-		{"EN_SW_DATACHAIN", Const, 1},
-		{"EN_SW_DENORM", Const, 1},
-		{"EN_SW_INVOP", Const, 1},
-		{"EN_SW_OVERFLOW", Const, 1},
-		{"EN_SW_PRECLOSS", Const, 1},
-		{"EN_SW_UNDERFLOW", Const, 1},
-		{"EN_SW_ZERODIV", Const, 1},
-		{"EOPNOTSUPP", Const, 0},
-		{"EOVERFLOW", Const, 0},
-		{"EOWNERDEAD", Const, 0},
-		{"EPERM", Const, 0},
-		{"EPFNOSUPPORT", Const, 0},
-		{"EPIPE", Const, 0},
-		{"EPOLLERR", Const, 0},
-		{"EPOLLET", Const, 0},
-		{"EPOLLHUP", Const, 0},
-		{"EPOLLIN", Const, 0},
-		{"EPOLLMSG", Const, 0},
-		{"EPOLLONESHOT", Const, 0},
-		{"EPOLLOUT", Const, 0},
-		{"EPOLLPRI", Const, 0},
-		{"EPOLLRDBAND", Const, 0},
-		{"EPOLLRDHUP", Const, 0},
-		{"EPOLLRDNORM", Const, 0},
-		{"EPOLLWRBAND", Const, 0},
-		{"EPOLLWRNORM", Const, 0},
-		{"EPOLL_CLOEXEC", Const, 0},
-		{"EPOLL_CTL_ADD", Const, 0},
-		{"EPOLL_CTL_DEL", Const, 0},
-		{"EPOLL_CTL_MOD", Const, 0},
-		{"EPOLL_NONBLOCK", Const, 0},
-		{"EPROCLIM", Const, 0},
-		{"EPROCUNAVAIL", Const, 0},
-		{"EPROGMISMATCH", Const, 0},
-		{"EPROGUNAVAIL", Const, 0},
-		{"EPROTO", Const, 0},
-		{"EPROTONOSUPPORT", Const, 0},
-		{"EPROTOTYPE", Const, 0},
-		{"EPWROFF", Const, 0},
-		{"EQFULL", Const, 16},
-		{"ERANGE", Const, 0},
-		{"EREMCHG", Const, 0},
-		{"EREMOTE", Const, 0},
-		{"EREMOTEIO", Const, 0},
-		{"ERESTART", Const, 0},
-		{"ERFKILL", Const, 0},
-		{"EROFS", Const, 0},
-		{"ERPCMISMATCH", Const, 0},
-		{"ERROR_ACCESS_DENIED", Const, 0},
-		{"ERROR_ALREADY_EXISTS", Const, 0},
-		{"ERROR_BROKEN_PIPE", Const, 0},
-		{"ERROR_BUFFER_OVERFLOW", Const, 0},
-		{"ERROR_DIR_NOT_EMPTY", Const, 8},
-		{"ERROR_ENVVAR_NOT_FOUND", Const, 0},
-		{"ERROR_FILE_EXISTS", Const, 0},
-		{"ERROR_FILE_NOT_FOUND", Const, 0},
-		{"ERROR_HANDLE_EOF", Const, 2},
-		{"ERROR_INSUFFICIENT_BUFFER", Const, 0},
-		{"ERROR_IO_PENDING", Const, 0},
-		{"ERROR_MOD_NOT_FOUND", Const, 0},
-		{"ERROR_MORE_DATA", Const, 3},
-		{"ERROR_NETNAME_DELETED", Const, 3},
-		{"ERROR_NOT_FOUND", Const, 1},
-		{"ERROR_NO_MORE_FILES", Const, 0},
-		{"ERROR_OPERATION_ABORTED", Const, 0},
-		{"ERROR_PATH_NOT_FOUND", Const, 0},
-		{"ERROR_PRIVILEGE_NOT_HELD", Const, 4},
-		{"ERROR_PROC_NOT_FOUND", Const, 0},
-		{"ESHLIBVERS", Const, 0},
-		{"ESHUTDOWN", Const, 0},
-		{"ESOCKTNOSUPPORT", Const, 0},
-		{"ESPIPE", Const, 0},
-		{"ESRCH", Const, 0},
-		{"ESRMNT", Const, 0},
-		{"ESTALE", Const, 0},
-		{"ESTRPIPE", Const, 0},
-		{"ETHERCAP_JUMBO_MTU", Const, 1},
-		{"ETHERCAP_VLAN_HWTAGGING", Const, 1},
-		{"ETHERCAP_VLAN_MTU", Const, 1},
-		{"ETHERMIN", Const, 1},
-		{"ETHERMTU", Const, 1},
-		{"ETHERMTU_JUMBO", Const, 1},
-		{"ETHERTYPE_8023", Const, 1},
-		{"ETHERTYPE_AARP", Const, 1},
-		{"ETHERTYPE_ACCTON", Const, 1},
-		{"ETHERTYPE_AEONIC", Const, 1},
-		{"ETHERTYPE_ALPHA", Const, 1},
-		{"ETHERTYPE_AMBER", Const, 1},
-		{"ETHERTYPE_AMOEBA", Const, 1},
-		{"ETHERTYPE_AOE", Const, 1},
-		{"ETHERTYPE_APOLLO", Const, 1},
-		{"ETHERTYPE_APOLLODOMAIN", Const, 1},
-		{"ETHERTYPE_APPLETALK", Const, 1},
-		{"ETHERTYPE_APPLITEK", Const, 1},
-		{"ETHERTYPE_ARGONAUT", Const, 1},
-		{"ETHERTYPE_ARP", Const, 1},
-		{"ETHERTYPE_AT", Const, 1},
-		{"ETHERTYPE_ATALK", Const, 1},
-		{"ETHERTYPE_ATOMIC", Const, 1},
-		{"ETHERTYPE_ATT", Const, 1},
-		{"ETHERTYPE_ATTSTANFORD", Const, 1},
-		{"ETHERTYPE_AUTOPHON", Const, 1},
-		{"ETHERTYPE_AXIS", Const, 1},
-		{"ETHERTYPE_BCLOOP", Const, 1},
-		{"ETHERTYPE_BOFL", Const, 1},
-		{"ETHERTYPE_CABLETRON", Const, 1},
-		{"ETHERTYPE_CHAOS", Const, 1},
-		{"ETHERTYPE_COMDESIGN", Const, 1},
-		{"ETHERTYPE_COMPUGRAPHIC", Const, 1},
-		{"ETHERTYPE_COUNTERPOINT", Const, 1},
-		{"ETHERTYPE_CRONUS", Const, 1},
-		{"ETHERTYPE_CRONUSVLN", Const, 1},
-		{"ETHERTYPE_DCA", Const, 1},
-		{"ETHERTYPE_DDE", Const, 1},
-		{"ETHERTYPE_DEBNI", Const, 1},
-		{"ETHERTYPE_DECAM", Const, 1},
-		{"ETHERTYPE_DECCUST", Const, 1},
-		{"ETHERTYPE_DECDIAG", Const, 1},
-		{"ETHERTYPE_DECDNS", Const, 1},
-		{"ETHERTYPE_DECDTS", Const, 1},
-		{"ETHERTYPE_DECEXPER", Const, 1},
-		{"ETHERTYPE_DECLAST", Const, 1},
-		{"ETHERTYPE_DECLTM", Const, 1},
-		{"ETHERTYPE_DECMUMPS", Const, 1},
-		{"ETHERTYPE_DECNETBIOS", Const, 1},
-		{"ETHERTYPE_DELTACON", Const, 1},
-		{"ETHERTYPE_DIDDLE", Const, 1},
-		{"ETHERTYPE_DLOG1", Const, 1},
-		{"ETHERTYPE_DLOG2", Const, 1},
-		{"ETHERTYPE_DN", Const, 1},
-		{"ETHERTYPE_DOGFIGHT", Const, 1},
-		{"ETHERTYPE_DSMD", Const, 1},
-		{"ETHERTYPE_ECMA", Const, 1},
-		{"ETHERTYPE_ENCRYPT", Const, 1},
-		{"ETHERTYPE_ES", Const, 1},
-		{"ETHERTYPE_EXCELAN", Const, 1},
-		{"ETHERTYPE_EXPERDATA", Const, 1},
-		{"ETHERTYPE_FLIP", Const, 1},
-		{"ETHERTYPE_FLOWCONTROL", Const, 1},
-		{"ETHERTYPE_FRARP", Const, 1},
-		{"ETHERTYPE_GENDYN", Const, 1},
-		{"ETHERTYPE_HAYES", Const, 1},
-		{"ETHERTYPE_HIPPI_FP", Const, 1},
-		{"ETHERTYPE_HITACHI", Const, 1},
-		{"ETHERTYPE_HP", Const, 1},
-		{"ETHERTYPE_IEEEPUP", Const, 1},
-		{"ETHERTYPE_IEEEPUPAT", Const, 1},
-		{"ETHERTYPE_IMLBL", Const, 1},
-		{"ETHERTYPE_IMLBLDIAG", Const, 1},
-		{"ETHERTYPE_IP", Const, 1},
-		{"ETHERTYPE_IPAS", Const, 1},
-		{"ETHERTYPE_IPV6", Const, 1},
-		{"ETHERTYPE_IPX", Const, 1},
-		{"ETHERTYPE_IPXNEW", Const, 1},
-		{"ETHERTYPE_KALPANA", Const, 1},
-		{"ETHERTYPE_LANBRIDGE", Const, 1},
-		{"ETHERTYPE_LANPROBE", Const, 1},
-		{"ETHERTYPE_LAT", Const, 1},
-		{"ETHERTYPE_LBACK", Const, 1},
-		{"ETHERTYPE_LITTLE", Const, 1},
-		{"ETHERTYPE_LLDP", Const, 1},
-		{"ETHERTYPE_LOGICRAFT", Const, 1},
-		{"ETHERTYPE_LOOPBACK", Const, 1},
-		{"ETHERTYPE_MATRA", Const, 1},
-		{"ETHERTYPE_MAX", Const, 1},
-		{"ETHERTYPE_MERIT", Const, 1},
-		{"ETHERTYPE_MICP", Const, 1},
-		{"ETHERTYPE_MOPDL", Const, 1},
-		{"ETHERTYPE_MOPRC", Const, 1},
-		{"ETHERTYPE_MOTOROLA", Const, 1},
-		{"ETHERTYPE_MPLS", Const, 1},
-		{"ETHERTYPE_MPLS_MCAST", Const, 1},
-		{"ETHERTYPE_MUMPS", Const, 1},
-		{"ETHERTYPE_NBPCC", Const, 1},
-		{"ETHERTYPE_NBPCLAIM", Const, 1},
-		{"ETHERTYPE_NBPCLREQ", Const, 1},
-		{"ETHERTYPE_NBPCLRSP", Const, 1},
-		{"ETHERTYPE_NBPCREQ", Const, 1},
-		{"ETHERTYPE_NBPCRSP", Const, 1},
-		{"ETHERTYPE_NBPDG", Const, 1},
-		{"ETHERTYPE_NBPDGB", Const, 1},
-		{"ETHERTYPE_NBPDLTE", Const, 1},
-		{"ETHERTYPE_NBPRAR", Const, 1},
-		{"ETHERTYPE_NBPRAS", Const, 1},
-		{"ETHERTYPE_NBPRST", Const, 1},
-		{"ETHERTYPE_NBPSCD", Const, 1},
-		{"ETHERTYPE_NBPVCD", Const, 1},
-		{"ETHERTYPE_NBS", Const, 1},
-		{"ETHERTYPE_NCD", Const, 1},
-		{"ETHERTYPE_NESTAR", Const, 1},
-		{"ETHERTYPE_NETBEUI", Const, 1},
-		{"ETHERTYPE_NOVELL", Const, 1},
-		{"ETHERTYPE_NS", Const, 1},
-		{"ETHERTYPE_NSAT", Const, 1},
-		{"ETHERTYPE_NSCOMPAT", Const, 1},
-		{"ETHERTYPE_NTRAILER", Const, 1},
-		{"ETHERTYPE_OS9", Const, 1},
-		{"ETHERTYPE_OS9NET", Const, 1},
-		{"ETHERTYPE_PACER", Const, 1},
-		{"ETHERTYPE_PAE", Const, 1},
-		{"ETHERTYPE_PCS", Const, 1},
-		{"ETHERTYPE_PLANNING", Const, 1},
-		{"ETHERTYPE_PPP", Const, 1},
-		{"ETHERTYPE_PPPOE", Const, 1},
-		{"ETHERTYPE_PPPOEDISC", Const, 1},
-		{"ETHERTYPE_PRIMENTS", Const, 1},
-		{"ETHERTYPE_PUP", Const, 1},
-		{"ETHERTYPE_PUPAT", Const, 1},
-		{"ETHERTYPE_QINQ", Const, 1},
-		{"ETHERTYPE_RACAL", Const, 1},
-		{"ETHERTYPE_RATIONAL", Const, 1},
-		{"ETHERTYPE_RAWFR", Const, 1},
-		{"ETHERTYPE_RCL", Const, 1},
-		{"ETHERTYPE_RDP", Const, 1},
-		{"ETHERTYPE_RETIX", Const, 1},
-		{"ETHERTYPE_REVARP", Const, 1},
-		{"ETHERTYPE_SCA", Const, 1},
-		{"ETHERTYPE_SECTRA", Const, 1},
-		{"ETHERTYPE_SECUREDATA", Const, 1},
-		{"ETHERTYPE_SGITW", Const, 1},
-		{"ETHERTYPE_SG_BOUNCE", Const, 1},
-		{"ETHERTYPE_SG_DIAG", Const, 1},
-		{"ETHERTYPE_SG_NETGAMES", Const, 1},
-		{"ETHERTYPE_SG_RESV", Const, 1},
-		{"ETHERTYPE_SIMNET", Const, 1},
-		{"ETHERTYPE_SLOW", Const, 1},
-		{"ETHERTYPE_SLOWPROTOCOLS", Const, 1},
-		{"ETHERTYPE_SNA", Const, 1},
-		{"ETHERTYPE_SNMP", Const, 1},
-		{"ETHERTYPE_SONIX", Const, 1},
-		{"ETHERTYPE_SPIDER", Const, 1},
-		{"ETHERTYPE_SPRITE", Const, 1},
-		{"ETHERTYPE_STP", Const, 1},
-		{"ETHERTYPE_TALARIS", Const, 1},
-		{"ETHERTYPE_TALARISMC", Const, 1},
-		{"ETHERTYPE_TCPCOMP", Const, 1},
-		{"ETHERTYPE_TCPSM", Const, 1},
-		{"ETHERTYPE_TEC", Const, 1},
-		{"ETHERTYPE_TIGAN", Const, 1},
-		{"ETHERTYPE_TRAIL", Const, 1},
-		{"ETHERTYPE_TRANSETHER", Const, 1},
-		{"ETHERTYPE_TYMSHARE", Const, 1},
-		{"ETHERTYPE_UBBST", Const, 1},
-		{"ETHERTYPE_UBDEBUG", Const, 1},
-		{"ETHERTYPE_UBDIAGLOOP", Const, 1},
-		{"ETHERTYPE_UBDL", Const, 1},
-		{"ETHERTYPE_UBNIU", Const, 1},
-		{"ETHERTYPE_UBNMC", Const, 1},
-		{"ETHERTYPE_VALID", Const, 1},
-		{"ETHERTYPE_VARIAN", Const, 1},
-		{"ETHERTYPE_VAXELN", Const, 1},
-		{"ETHERTYPE_VEECO", Const, 1},
-		{"ETHERTYPE_VEXP", Const, 1},
-		{"ETHERTYPE_VGLAB", Const, 1},
-		{"ETHERTYPE_VINES", Const, 1},
-		{"ETHERTYPE_VINESECHO", Const, 1},
-		{"ETHERTYPE_VINESLOOP", Const, 1},
-		{"ETHERTYPE_VITAL", Const, 1},
-		{"ETHERTYPE_VLAN", Const, 1},
-		{"ETHERTYPE_VLTLMAN", Const, 1},
-		{"ETHERTYPE_VPROD", Const, 1},
-		{"ETHERTYPE_VURESERVED", Const, 1},
-		{"ETHERTYPE_WATERLOO", Const, 1},
-		{"ETHERTYPE_WELLFLEET", Const, 1},
-		{"ETHERTYPE_X25", Const, 1},
-		{"ETHERTYPE_X75", Const, 1},
-		{"ETHERTYPE_XNSSM", Const, 1},
-		{"ETHERTYPE_XTP", Const, 1},
-		{"ETHER_ADDR_LEN", Const, 1},
-		{"ETHER_ALIGN", Const, 1},
-		{"ETHER_CRC_LEN", Const, 1},
-		{"ETHER_CRC_POLY_BE", Const, 1},
-		{"ETHER_CRC_POLY_LE", Const, 1},
-		{"ETHER_HDR_LEN", Const, 1},
-		{"ETHER_MAX_DIX_LEN", Const, 1},
-		{"ETHER_MAX_LEN", Const, 1},
-		{"ETHER_MAX_LEN_JUMBO", Const, 1},
-		{"ETHER_MIN_LEN", Const, 1},
-		{"ETHER_PPPOE_ENCAP_LEN", Const, 1},
-		{"ETHER_TYPE_LEN", Const, 1},
-		{"ETHER_VLAN_ENCAP_LEN", Const, 1},
-		{"ETH_P_1588", Const, 0},
-		{"ETH_P_8021Q", Const, 0},
-		{"ETH_P_802_2", Const, 0},
-		{"ETH_P_802_3", Const, 0},
-		{"ETH_P_AARP", Const, 0},
-		{"ETH_P_ALL", Const, 0},
-		{"ETH_P_AOE", Const, 0},
-		{"ETH_P_ARCNET", Const, 0},
-		{"ETH_P_ARP", Const, 0},
-		{"ETH_P_ATALK", Const, 0},
-		{"ETH_P_ATMFATE", Const, 0},
-		{"ETH_P_ATMMPOA", Const, 0},
-		{"ETH_P_AX25", Const, 0},
-		{"ETH_P_BPQ", Const, 0},
-		{"ETH_P_CAIF", Const, 0},
-		{"ETH_P_CAN", Const, 0},
-		{"ETH_P_CONTROL", Const, 0},
-		{"ETH_P_CUST", Const, 0},
-		{"ETH_P_DDCMP", Const, 0},
-		{"ETH_P_DEC", Const, 0},
-		{"ETH_P_DIAG", Const, 0},
-		{"ETH_P_DNA_DL", Const, 0},
-		{"ETH_P_DNA_RC", Const, 0},
-		{"ETH_P_DNA_RT", Const, 0},
-		{"ETH_P_DSA", Const, 0},
-		{"ETH_P_ECONET", Const, 0},
-		{"ETH_P_EDSA", Const, 0},
-		{"ETH_P_FCOE", Const, 0},
-		{"ETH_P_FIP", Const, 0},
-		{"ETH_P_HDLC", Const, 0},
-		{"ETH_P_IEEE802154", Const, 0},
-		{"ETH_P_IEEEPUP", Const, 0},
-		{"ETH_P_IEEEPUPAT", Const, 0},
-		{"ETH_P_IP", Const, 0},
-		{"ETH_P_IPV6", Const, 0},
-		{"ETH_P_IPX", Const, 0},
-		{"ETH_P_IRDA", Const, 0},
-		{"ETH_P_LAT", Const, 0},
-		{"ETH_P_LINK_CTL", Const, 0},
-		{"ETH_P_LOCALTALK", Const, 0},
-		{"ETH_P_LOOP", Const, 0},
-		{"ETH_P_MOBITEX", Const, 0},
-		{"ETH_P_MPLS_MC", Const, 0},
-		{"ETH_P_MPLS_UC", Const, 0},
-		{"ETH_P_PAE", Const, 0},
-		{"ETH_P_PAUSE", Const, 0},
-		{"ETH_P_PHONET", Const, 0},
-		{"ETH_P_PPPTALK", Const, 0},
-		{"ETH_P_PPP_DISC", Const, 0},
-		{"ETH_P_PPP_MP", Const, 0},
-		{"ETH_P_PPP_SES", Const, 0},
-		{"ETH_P_PUP", Const, 0},
-		{"ETH_P_PUPAT", Const, 0},
-		{"ETH_P_RARP", Const, 0},
-		{"ETH_P_SCA", Const, 0},
-		{"ETH_P_SLOW", Const, 0},
-		{"ETH_P_SNAP", Const, 0},
-		{"ETH_P_TEB", Const, 0},
-		{"ETH_P_TIPC", Const, 0},
-		{"ETH_P_TRAILER", Const, 0},
-		{"ETH_P_TR_802_2", Const, 0},
-		{"ETH_P_WAN_PPP", Const, 0},
-		{"ETH_P_WCCP", Const, 0},
-		{"ETH_P_X25", Const, 0},
-		{"ETIME", Const, 0},
-		{"ETIMEDOUT", Const, 0},
-		{"ETOOMANYREFS", Const, 0},
-		{"ETXTBSY", Const, 0},
-		{"EUCLEAN", Const, 0},
-		{"EUNATCH", Const, 0},
-		{"EUSERS", Const, 0},
-		{"EVFILT_AIO", Const, 0},
-		{"EVFILT_FS", Const, 0},
-		{"EVFILT_LIO", Const, 0},
-		{"EVFILT_MACHPORT", Const, 0},
-		{"EVFILT_PROC", Const, 0},
-		{"EVFILT_READ", Const, 0},
-		{"EVFILT_SIGNAL", Const, 0},
-		{"EVFILT_SYSCOUNT", Const, 0},
-		{"EVFILT_THREADMARKER", Const, 0},
-		{"EVFILT_TIMER", Const, 0},
-		{"EVFILT_USER", Const, 0},
-		{"EVFILT_VM", Const, 0},
-		{"EVFILT_VNODE", Const, 0},
-		{"EVFILT_WRITE", Const, 0},
-		{"EV_ADD", Const, 0},
-		{"EV_CLEAR", Const, 0},
-		{"EV_DELETE", Const, 0},
-		{"EV_DISABLE", Const, 0},
-		{"EV_DISPATCH", Const, 0},
-		{"EV_DROP", Const, 3},
-		{"EV_ENABLE", Const, 0},
-		{"EV_EOF", Const, 0},
-		{"EV_ERROR", Const, 0},
-		{"EV_FLAG0", Const, 0},
-		{"EV_FLAG1", Const, 0},
-		{"EV_ONESHOT", Const, 0},
-		{"EV_OOBAND", Const, 0},
-		{"EV_POLL", Const, 0},
-		{"EV_RECEIPT", Const, 0},
-		{"EV_SYSFLAGS", Const, 0},
-		{"EWINDOWS", Const, 0},
-		{"EWOULDBLOCK", Const, 0},
-		{"EXDEV", Const, 0},
-		{"EXFULL", Const, 0},
-		{"EXTA", Const, 0},
-		{"EXTB", Const, 0},
-		{"EXTPROC", Const, 0},
-		{"Environ", Func, 0},
-		{"EpollCreate", Func, 0},
-		{"EpollCreate1", Func, 0},
-		{"EpollCtl", Func, 0},
-		{"EpollEvent", Type, 0},
-		{"EpollEvent.Events", Field, 0},
-		{"EpollEvent.Fd", Field, 0},
-		{"EpollEvent.Pad", Field, 0},
-		{"EpollEvent.PadFd", Field, 0},
-		{"EpollWait", Func, 0},
-		{"Errno", Type, 0},
-		{"EscapeArg", Func, 0},
-		{"Exchangedata", Func, 0},
-		{"Exec", Func, 0},
-		{"Exit", Func, 0},
-		{"ExitProcess", Func, 0},
-		{"FD_CLOEXEC", Const, 0},
-		{"FD_SETSIZE", Const, 0},
-		{"FILE_ACTION_ADDED", Const, 0},
-		{"FILE_ACTION_MODIFIED", Const, 0},
-		{"FILE_ACTION_REMOVED", Const, 0},
-		{"FILE_ACTION_RENAMED_NEW_NAME", Const, 0},
-		{"FILE_ACTION_RENAMED_OLD_NAME", Const, 0},
-		{"FILE_APPEND_DATA", Const, 0},
-		{"FILE_ATTRIBUTE_ARCHIVE", Const, 0},
-		{"FILE_ATTRIBUTE_DIRECTORY", Const, 0},
-		{"FILE_ATTRIBUTE_HIDDEN", Const, 0},
-		{"FILE_ATTRIBUTE_NORMAL", Const, 0},
-		{"FILE_ATTRIBUTE_READONLY", Const, 0},
-		{"FILE_ATTRIBUTE_REPARSE_POINT", Const, 4},
-		{"FILE_ATTRIBUTE_SYSTEM", Const, 0},
-		{"FILE_BEGIN", Const, 0},
-		{"FILE_CURRENT", Const, 0},
-		{"FILE_END", Const, 0},
-		{"FILE_FLAG_BACKUP_SEMANTICS", Const, 0},
-		{"FILE_FLAG_OPEN_REPARSE_POINT", Const, 4},
-		{"FILE_FLAG_OVERLAPPED", Const, 0},
-		{"FILE_LIST_DIRECTORY", Const, 0},
-		{"FILE_MAP_COPY", Const, 0},
-		{"FILE_MAP_EXECUTE", Const, 0},
-		{"FILE_MAP_READ", Const, 0},
-		{"FILE_MAP_WRITE", Const, 0},
-		{"FILE_NOTIFY_CHANGE_ATTRIBUTES", Const, 0},
-		{"FILE_NOTIFY_CHANGE_CREATION", Const, 0},
-		{"FILE_NOTIFY_CHANGE_DIR_NAME", Const, 0},
-		{"FILE_NOTIFY_CHANGE_FILE_NAME", Const, 0},
-		{"FILE_NOTIFY_CHANGE_LAST_ACCESS", Const, 0},
-		{"FILE_NOTIFY_CHANGE_LAST_WRITE", Const, 0},
-		{"FILE_NOTIFY_CHANGE_SIZE", Const, 0},
-		{"FILE_SHARE_DELETE", Const, 0},
-		{"FILE_SHARE_READ", Const, 0},
-		{"FILE_SHARE_WRITE", Const, 0},
-		{"FILE_SKIP_COMPLETION_PORT_ON_SUCCESS", Const, 2},
-		{"FILE_SKIP_SET_EVENT_ON_HANDLE", Const, 2},
-		{"FILE_TYPE_CHAR", Const, 0},
-		{"FILE_TYPE_DISK", Const, 0},
-		{"FILE_TYPE_PIPE", Const, 0},
-		{"FILE_TYPE_REMOTE", Const, 0},
-		{"FILE_TYPE_UNKNOWN", Const, 0},
-		{"FILE_WRITE_ATTRIBUTES", Const, 0},
-		{"FLUSHO", Const, 0},
-		{"FORMAT_MESSAGE_ALLOCATE_BUFFER", Const, 0},
-		{"FORMAT_MESSAGE_ARGUMENT_ARRAY", Const, 0},
-		{"FORMAT_MESSAGE_FROM_HMODULE", Const, 0},
-		{"FORMAT_MESSAGE_FROM_STRING", Const, 0},
-		{"FORMAT_MESSAGE_FROM_SYSTEM", Const, 0},
-		{"FORMAT_MESSAGE_IGNORE_INSERTS", Const, 0},
-		{"FORMAT_MESSAGE_MAX_WIDTH_MASK", Const, 0},
-		{"FSCTL_GET_REPARSE_POINT", Const, 4},
-		{"F_ADDFILESIGS", Const, 0},
-		{"F_ADDSIGS", Const, 0},
-		{"F_ALLOCATEALL", Const, 0},
-		{"F_ALLOCATECONTIG", Const, 0},
-		{"F_CANCEL", Const, 0},
-		{"F_CHKCLEAN", Const, 0},
-		{"F_CLOSEM", Const, 1},
-		{"F_DUP2FD", Const, 0},
-		{"F_DUP2FD_CLOEXEC", Const, 1},
-		{"F_DUPFD", Const, 0},
-		{"F_DUPFD_CLOEXEC", Const, 0},
-		{"F_EXLCK", Const, 0},
-		{"F_FINDSIGS", Const, 16},
-		{"F_FLUSH_DATA", Const, 0},
-		{"F_FREEZE_FS", Const, 0},
-		{"F_FSCTL", Const, 1},
-		{"F_FSDIRMASK", Const, 1},
-		{"F_FSIN", Const, 1},
-		{"F_FSINOUT", Const, 1},
-		{"F_FSOUT", Const, 1},
-		{"F_FSPRIV", Const, 1},
-		{"F_FSVOID", Const, 1},
-		{"F_FULLFSYNC", Const, 0},
-		{"F_GETCODEDIR", Const, 16},
-		{"F_GETFD", Const, 0},
-		{"F_GETFL", Const, 0},
-		{"F_GETLEASE", Const, 0},
-		{"F_GETLK", Const, 0},
-		{"F_GETLK64", Const, 0},
-		{"F_GETLKPID", Const, 0},
-		{"F_GETNOSIGPIPE", Const, 0},
-		{"F_GETOWN", Const, 0},
-		{"F_GETOWN_EX", Const, 0},
-		{"F_GETPATH", Const, 0},
-		{"F_GETPATH_MTMINFO", Const, 0},
-		{"F_GETPIPE_SZ", Const, 0},
-		{"F_GETPROTECTIONCLASS", Const, 0},
-		{"F_GETPROTECTIONLEVEL", Const, 16},
-		{"F_GETSIG", Const, 0},
-		{"F_GLOBAL_NOCACHE", Const, 0},
-		{"F_LOCK", Const, 0},
-		{"F_LOG2PHYS", Const, 0},
-		{"F_LOG2PHYS_EXT", Const, 0},
-		{"F_MARKDEPENDENCY", Const, 0},
-		{"F_MAXFD", Const, 1},
-		{"F_NOCACHE", Const, 0},
-		{"F_NODIRECT", Const, 0},
-		{"F_NOTIFY", Const, 0},
-		{"F_OGETLK", Const, 0},
-		{"F_OK", Const, 0},
-		{"F_OSETLK", Const, 0},
-		{"F_OSETLKW", Const, 0},
-		{"F_PARAM_MASK", Const, 1},
-		{"F_PARAM_MAX", Const, 1},
-		{"F_PATHPKG_CHECK", Const, 0},
-		{"F_PEOFPOSMODE", Const, 0},
-		{"F_PREALLOCATE", Const, 0},
-		{"F_RDADVISE", Const, 0},
-		{"F_RDAHEAD", Const, 0},
-		{"F_RDLCK", Const, 0},
-		{"F_READAHEAD", Const, 0},
-		{"F_READBOOTSTRAP", Const, 0},
-		{"F_SETBACKINGSTORE", Const, 0},
-		{"F_SETFD", Const, 0},
-		{"F_SETFL", Const, 0},
-		{"F_SETLEASE", Const, 0},
-		{"F_SETLK", Const, 0},
-		{"F_SETLK64", Const, 0},
-		{"F_SETLKW", Const, 0},
-		{"F_SETLKW64", Const, 0},
-		{"F_SETLKWTIMEOUT", Const, 16},
-		{"F_SETLK_REMOTE", Const, 0},
-		{"F_SETNOSIGPIPE", Const, 0},
-		{"F_SETOWN", Const, 0},
-		{"F_SETOWN_EX", Const, 0},
-		{"F_SETPIPE_SZ", Const, 0},
-		{"F_SETPROTECTIONCLASS", Const, 0},
-		{"F_SETSIG", Const, 0},
-		{"F_SETSIZE", Const, 0},
-		{"F_SHLCK", Const, 0},
-		{"F_SINGLE_WRITER", Const, 16},
-		{"F_TEST", Const, 0},
-		{"F_THAW_FS", Const, 0},
-		{"F_TLOCK", Const, 0},
-		{"F_TRANSCODEKEY", Const, 16},
-		{"F_ULOCK", Const, 0},
-		{"F_UNLCK", Const, 0},
-		{"F_UNLCKSYS", Const, 0},
-		{"F_VOLPOSMODE", Const, 0},
-		{"F_WRITEBOOTSTRAP", Const, 0},
-		{"F_WRLCK", Const, 0},
-		{"Faccessat", Func, 0},
-		{"Fallocate", Func, 0},
-		{"Fbootstraptransfer_t", Type, 0},
-		{"Fbootstraptransfer_t.Buffer", Field, 0},
-		{"Fbootstraptransfer_t.Length", Field, 0},
-		{"Fbootstraptransfer_t.Offset", Field, 0},
-		{"Fchdir", Func, 0},
-		{"Fchflags", Func, 0},
-		{"Fchmod", Func, 0},
-		{"Fchmodat", Func, 0},
-		{"Fchown", Func, 0},
-		{"Fchownat", Func, 0},
-		{"FcntlFlock", Func, 3},
-		{"FdSet", Type, 0},
-		{"FdSet.Bits", Field, 0},
-		{"FdSet.X__fds_bits", Field, 0},
-		{"Fdatasync", Func, 0},
-		{"FileNotifyInformation", Type, 0},
-		{"FileNotifyInformation.Action", Field, 0},
-		{"FileNotifyInformation.FileName", Field, 0},
-		{"FileNotifyInformation.FileNameLength", Field, 0},
-		{"FileNotifyInformation.NextEntryOffset", Field, 0},
-		{"Filetime", Type, 0},
-		{"Filetime.HighDateTime", Field, 0},
-		{"Filetime.LowDateTime", Field, 0},
-		{"FindClose", Func, 0},
-		{"FindFirstFile", Func, 0},
-		{"FindNextFile", Func, 0},
-		{"Flock", Func, 0},
-		{"Flock_t", Type, 0},
-		{"Flock_t.Len", Field, 0},
-		{"Flock_t.Pad_cgo_0", Field, 0},
-		{"Flock_t.Pad_cgo_1", Field, 3},
-		{"Flock_t.Pid", Field, 0},
-		{"Flock_t.Start", Field, 0},
-		{"Flock_t.Sysid", Field, 0},
-		{"Flock_t.Type", Field, 0},
-		{"Flock_t.Whence", Field, 0},
-		{"FlushBpf", Func, 0},
-		{"FlushFileBuffers", Func, 0},
-		{"FlushViewOfFile", Func, 0},
-		{"ForkExec", Func, 0},
-		{"ForkLock", Var, 0},
-		{"FormatMessage", Func, 0},
-		{"Fpathconf", Func, 0},
-		{"FreeAddrInfoW", Func, 1},
-		{"FreeEnvironmentStrings", Func, 0},
-		{"FreeLibrary", Func, 0},
-		{"Fsid", Type, 0},
-		{"Fsid.Val", Field, 0},
-		{"Fsid.X__fsid_val", Field, 2},
-		{"Fsid.X__val", Field, 0},
-		{"Fstat", Func, 0},
-		{"Fstatat", Func, 12},
-		{"Fstatfs", Func, 0},
-		{"Fstore_t", Type, 0},
-		{"Fstore_t.Bytesalloc", Field, 0},
-		{"Fstore_t.Flags", Field, 0},
-		{"Fstore_t.Length", Field, 0},
-		{"Fstore_t.Offset", Field, 0},
-		{"Fstore_t.Posmode", Field, 0},
-		{"Fsync", Func, 0},
-		{"Ftruncate", Func, 0},
-		{"FullPath", Func, 4},
-		{"Futimes", Func, 0},
-		{"Futimesat", Func, 0},
-		{"GENERIC_ALL", Const, 0},
-		{"GENERIC_EXECUTE", Const, 0},
-		{"GENERIC_READ", Const, 0},
-		{"GENERIC_WRITE", Const, 0},
-		{"GUID", Type, 1},
-		{"GUID.Data1", Field, 1},
-		{"GUID.Data2", Field, 1},
-		{"GUID.Data3", Field, 1},
-		{"GUID.Data4", Field, 1},
-		{"GetAcceptExSockaddrs", Func, 0},
-		{"GetAdaptersInfo", Func, 0},
-		{"GetAddrInfoW", Func, 1},
-		{"GetCommandLine", Func, 0},
-		{"GetComputerName", Func, 0},
-		{"GetConsoleMode", Func, 1},
-		{"GetCurrentDirectory", Func, 0},
-		{"GetCurrentProcess", Func, 0},
-		{"GetEnvironmentStrings", Func, 0},
-		{"GetEnvironmentVariable", Func, 0},
-		{"GetExitCodeProcess", Func, 0},
-		{"GetFileAttributes", Func, 0},
-		{"GetFileAttributesEx", Func, 0},
-		{"GetFileExInfoStandard", Const, 0},
-		{"GetFileExMaxInfoLevel", Const, 0},
-		{"GetFileInformationByHandle", Func, 0},
-		{"GetFileType", Func, 0},
-		{"GetFullPathName", Func, 0},
-		{"GetHostByName", Func, 0},
-		{"GetIfEntry", Func, 0},
-		{"GetLastError", Func, 0},
-		{"GetLengthSid", Func, 0},
-		{"GetLongPathName", Func, 0},
-		{"GetProcAddress", Func, 0},
-		{"GetProcessTimes", Func, 0},
-		{"GetProtoByName", Func, 0},
-		{"GetQueuedCompletionStatus", Func, 0},
-		{"GetServByName", Func, 0},
-		{"GetShortPathName", Func, 0},
-		{"GetStartupInfo", Func, 0},
-		{"GetStdHandle", Func, 0},
-		{"GetSystemTimeAsFileTime", Func, 0},
-		{"GetTempPath", Func, 0},
-		{"GetTimeZoneInformation", Func, 0},
-		{"GetTokenInformation", Func, 0},
-		{"GetUserNameEx", Func, 0},
-		{"GetUserProfileDirectory", Func, 0},
-		{"GetVersion", Func, 0},
-		{"Getcwd", Func, 0},
-		{"Getdents", Func, 0},
-		{"Getdirentries", Func, 0},
-		{"Getdtablesize", Func, 0},
-		{"Getegid", Func, 0},
-		{"Getenv", Func, 0},
-		{"Geteuid", Func, 0},
-		{"Getfsstat", Func, 0},
-		{"Getgid", Func, 0},
-		{"Getgroups", Func, 0},
-		{"Getpagesize", Func, 0},
-		{"Getpeername", Func, 0},
-		{"Getpgid", Func, 0},
-		{"Getpgrp", Func, 0},
-		{"Getpid", Func, 0},
-		{"Getppid", Func, 0},
-		{"Getpriority", Func, 0},
-		{"Getrlimit", Func, 0},
-		{"Getrusage", Func, 0},
-		{"Getsid", Func, 0},
-		{"Getsockname", Func, 0},
-		{"Getsockopt", Func, 1},
-		{"GetsockoptByte", Func, 0},
-		{"GetsockoptICMPv6Filter", Func, 2},
-		{"GetsockoptIPMreq", Func, 0},
-		{"GetsockoptIPMreqn", Func, 0},
-		{"GetsockoptIPv6MTUInfo", Func, 2},
-		{"GetsockoptIPv6Mreq", Func, 0},
-		{"GetsockoptInet4Addr", Func, 0},
-		{"GetsockoptInt", Func, 0},
-		{"GetsockoptUcred", Func, 1},
-		{"Gettid", Func, 0},
-		{"Gettimeofday", Func, 0},
-		{"Getuid", Func, 0},
-		{"Getwd", Func, 0},
-		{"Getxattr", Func, 1},
-		{"HANDLE_FLAG_INHERIT", Const, 0},
-		{"HKEY_CLASSES_ROOT", Const, 0},
-		{"HKEY_CURRENT_CONFIG", Const, 0},
-		{"HKEY_CURRENT_USER", Const, 0},
-		{"HKEY_DYN_DATA", Const, 0},
-		{"HKEY_LOCAL_MACHINE", Const, 0},
-		{"HKEY_PERFORMANCE_DATA", Const, 0},
-		{"HKEY_USERS", Const, 0},
-		{"HUPCL", Const, 0},
-		{"Handle", Type, 0},
-		{"Hostent", Type, 0},
-		{"Hostent.AddrList", Field, 0},
-		{"Hostent.AddrType", Field, 0},
-		{"Hostent.Aliases", Field, 0},
-		{"Hostent.Length", Field, 0},
-		{"Hostent.Name", Field, 0},
-		{"ICANON", Const, 0},
-		{"ICMP6_FILTER", Const, 2},
-		{"ICMPV6_FILTER", Const, 2},
-		{"ICMPv6Filter", Type, 2},
-		{"ICMPv6Filter.Data", Field, 2},
-		{"ICMPv6Filter.Filt", Field, 2},
-		{"ICRNL", Const, 0},
-		{"IEXTEN", Const, 0},
-		{"IFAN_ARRIVAL", Const, 1},
-		{"IFAN_DEPARTURE", Const, 1},
-		{"IFA_ADDRESS", Const, 0},
-		{"IFA_ANYCAST", Const, 0},
-		{"IFA_BROADCAST", Const, 0},
-		{"IFA_CACHEINFO", Const, 0},
-		{"IFA_F_DADFAILED", Const, 0},
-		{"IFA_F_DEPRECATED", Const, 0},
-		{"IFA_F_HOMEADDRESS", Const, 0},
-		{"IFA_F_NODAD", Const, 0},
-		{"IFA_F_OPTIMISTIC", Const, 0},
-		{"IFA_F_PERMANENT", Const, 0},
-		{"IFA_F_SECONDARY", Const, 0},
-		{"IFA_F_TEMPORARY", Const, 0},
-		{"IFA_F_TENTATIVE", Const, 0},
-		{"IFA_LABEL", Const, 0},
-		{"IFA_LOCAL", Const, 0},
-		{"IFA_MAX", Const, 0},
-		{"IFA_MULTICAST", Const, 0},
-		{"IFA_ROUTE", Const, 1},
-		{"IFA_UNSPEC", Const, 0},
-		{"IFF_ALLMULTI", Const, 0},
-		{"IFF_ALTPHYS", Const, 0},
-		{"IFF_AUTOMEDIA", Const, 0},
-		{"IFF_BROADCAST", Const, 0},
-		{"IFF_CANTCHANGE", Const, 0},
-		{"IFF_CANTCONFIG", Const, 1},
-		{"IFF_DEBUG", Const, 0},
-		{"IFF_DRV_OACTIVE", Const, 0},
-		{"IFF_DRV_RUNNING", Const, 0},
-		{"IFF_DYING", Const, 0},
-		{"IFF_DYNAMIC", Const, 0},
-		{"IFF_LINK0", Const, 0},
-		{"IFF_LINK1", Const, 0},
-		{"IFF_LINK2", Const, 0},
-		{"IFF_LOOPBACK", Const, 0},
-		{"IFF_MASTER", Const, 0},
-		{"IFF_MONITOR", Const, 0},
-		{"IFF_MULTICAST", Const, 0},
-		{"IFF_NOARP", Const, 0},
-		{"IFF_NOTRAILERS", Const, 0},
-		{"IFF_NO_PI", Const, 0},
-		{"IFF_OACTIVE", Const, 0},
-		{"IFF_ONE_QUEUE", Const, 0},
-		{"IFF_POINTOPOINT", Const, 0},
-		{"IFF_POINTTOPOINT", Const, 0},
-		{"IFF_PORTSEL", Const, 0},
-		{"IFF_PPROMISC", Const, 0},
-		{"IFF_PROMISC", Const, 0},
-		{"IFF_RENAMING", Const, 0},
-		{"IFF_RUNNING", Const, 0},
-		{"IFF_SIMPLEX", Const, 0},
-		{"IFF_SLAVE", Const, 0},
-		{"IFF_SMART", Const, 0},
-		{"IFF_STATICARP", Const, 0},
-		{"IFF_TAP", Const, 0},
-		{"IFF_TUN", Const, 0},
-		{"IFF_TUN_EXCL", Const, 0},
-		{"IFF_UP", Const, 0},
-		{"IFF_VNET_HDR", Const, 0},
-		{"IFLA_ADDRESS", Const, 0},
-		{"IFLA_BROADCAST", Const, 0},
-		{"IFLA_COST", Const, 0},
-		{"IFLA_IFALIAS", Const, 0},
-		{"IFLA_IFNAME", Const, 0},
-		{"IFLA_LINK", Const, 0},
-		{"IFLA_LINKINFO", Const, 0},
-		{"IFLA_LINKMODE", Const, 0},
-		{"IFLA_MAP", Const, 0},
-		{"IFLA_MASTER", Const, 0},
-		{"IFLA_MAX", Const, 0},
-		{"IFLA_MTU", Const, 0},
-		{"IFLA_NET_NS_PID", Const, 0},
-		{"IFLA_OPERSTATE", Const, 0},
-		{"IFLA_PRIORITY", Const, 0},
-		{"IFLA_PROTINFO", Const, 0},
-		{"IFLA_QDISC", Const, 0},
-		{"IFLA_STATS", Const, 0},
-		{"IFLA_TXQLEN", Const, 0},
-		{"IFLA_UNSPEC", Const, 0},
-		{"IFLA_WEIGHT", Const, 0},
-		{"IFLA_WIRELESS", Const, 0},
-		{"IFNAMSIZ", Const, 0},
-		{"IFT_1822", Const, 0},
-		{"IFT_A12MPPSWITCH", Const, 0},
-		{"IFT_AAL2", Const, 0},
-		{"IFT_AAL5", Const, 0},
-		{"IFT_ADSL", Const, 0},
-		{"IFT_AFLANE8023", Const, 0},
-		{"IFT_AFLANE8025", Const, 0},
-		{"IFT_ARAP", Const, 0},
-		{"IFT_ARCNET", Const, 0},
-		{"IFT_ARCNETPLUS", Const, 0},
-		{"IFT_ASYNC", Const, 0},
-		{"IFT_ATM", Const, 0},
-		{"IFT_ATMDXI", Const, 0},
-		{"IFT_ATMFUNI", Const, 0},
-		{"IFT_ATMIMA", Const, 0},
-		{"IFT_ATMLOGICAL", Const, 0},
-		{"IFT_ATMRADIO", Const, 0},
-		{"IFT_ATMSUBINTERFACE", Const, 0},
-		{"IFT_ATMVCIENDPT", Const, 0},
-		{"IFT_ATMVIRTUAL", Const, 0},
-		{"IFT_BGPPOLICYACCOUNTING", Const, 0},
-		{"IFT_BLUETOOTH", Const, 1},
-		{"IFT_BRIDGE", Const, 0},
-		{"IFT_BSC", Const, 0},
-		{"IFT_CARP", Const, 0},
-		{"IFT_CCTEMUL", Const, 0},
-		{"IFT_CELLULAR", Const, 0},
-		{"IFT_CEPT", Const, 0},
-		{"IFT_CES", Const, 0},
-		{"IFT_CHANNEL", Const, 0},
-		{"IFT_CNR", Const, 0},
-		{"IFT_COFFEE", Const, 0},
-		{"IFT_COMPOSITELINK", Const, 0},
-		{"IFT_DCN", Const, 0},
-		{"IFT_DIGITALPOWERLINE", Const, 0},
-		{"IFT_DIGITALWRAPPEROVERHEADCHANNEL", Const, 0},
-		{"IFT_DLSW", Const, 0},
-		{"IFT_DOCSCABLEDOWNSTREAM", Const, 0},
-		{"IFT_DOCSCABLEMACLAYER", Const, 0},
-		{"IFT_DOCSCABLEUPSTREAM", Const, 0},
-		{"IFT_DOCSCABLEUPSTREAMCHANNEL", Const, 1},
-		{"IFT_DS0", Const, 0},
-		{"IFT_DS0BUNDLE", Const, 0},
-		{"IFT_DS1FDL", Const, 0},
-		{"IFT_DS3", Const, 0},
-		{"IFT_DTM", Const, 0},
-		{"IFT_DUMMY", Const, 1},
-		{"IFT_DVBASILN", Const, 0},
-		{"IFT_DVBASIOUT", Const, 0},
-		{"IFT_DVBRCCDOWNSTREAM", Const, 0},
-		{"IFT_DVBRCCMACLAYER", Const, 0},
-		{"IFT_DVBRCCUPSTREAM", Const, 0},
-		{"IFT_ECONET", Const, 1},
-		{"IFT_ENC", Const, 0},
-		{"IFT_EON", Const, 0},
-		{"IFT_EPLRS", Const, 0},
-		{"IFT_ESCON", Const, 0},
-		{"IFT_ETHER", Const, 0},
-		{"IFT_FAITH", Const, 0},
-		{"IFT_FAST", Const, 0},
-		{"IFT_FASTETHER", Const, 0},
-		{"IFT_FASTETHERFX", Const, 0},
-		{"IFT_FDDI", Const, 0},
-		{"IFT_FIBRECHANNEL", Const, 0},
-		{"IFT_FRAMERELAYINTERCONNECT", Const, 0},
-		{"IFT_FRAMERELAYMPI", Const, 0},
-		{"IFT_FRDLCIENDPT", Const, 0},
-		{"IFT_FRELAY", Const, 0},
-		{"IFT_FRELAYDCE", Const, 0},
-		{"IFT_FRF16MFRBUNDLE", Const, 0},
-		{"IFT_FRFORWARD", Const, 0},
-		{"IFT_G703AT2MB", Const, 0},
-		{"IFT_G703AT64K", Const, 0},
-		{"IFT_GIF", Const, 0},
-		{"IFT_GIGABITETHERNET", Const, 0},
-		{"IFT_GR303IDT", Const, 0},
-		{"IFT_GR303RDT", Const, 0},
-		{"IFT_H323GATEKEEPER", Const, 0},
-		{"IFT_H323PROXY", Const, 0},
-		{"IFT_HDH1822", Const, 0},
-		{"IFT_HDLC", Const, 0},
-		{"IFT_HDSL2", Const, 0},
-		{"IFT_HIPERLAN2", Const, 0},
-		{"IFT_HIPPI", Const, 0},
-		{"IFT_HIPPIINTERFACE", Const, 0},
-		{"IFT_HOSTPAD", Const, 0},
-		{"IFT_HSSI", Const, 0},
-		{"IFT_HY", Const, 0},
-		{"IFT_IBM370PARCHAN", Const, 0},
-		{"IFT_IDSL", Const, 0},
-		{"IFT_IEEE1394", Const, 0},
-		{"IFT_IEEE80211", Const, 0},
-		{"IFT_IEEE80212", Const, 0},
-		{"IFT_IEEE8023ADLAG", Const, 0},
-		{"IFT_IFGSN", Const, 0},
-		{"IFT_IMT", Const, 0},
-		{"IFT_INFINIBAND", Const, 1},
-		{"IFT_INTERLEAVE", Const, 0},
-		{"IFT_IP", Const, 0},
-		{"IFT_IPFORWARD", Const, 0},
-		{"IFT_IPOVERATM", Const, 0},
-		{"IFT_IPOVERCDLC", Const, 0},
-		{"IFT_IPOVERCLAW", Const, 0},
-		{"IFT_IPSWITCH", Const, 0},
-		{"IFT_IPXIP", Const, 0},
-		{"IFT_ISDN", Const, 0},
-		{"IFT_ISDNBASIC", Const, 0},
-		{"IFT_ISDNPRIMARY", Const, 0},
-		{"IFT_ISDNS", Const, 0},
-		{"IFT_ISDNU", Const, 0},
-		{"IFT_ISO88022LLC", Const, 0},
-		{"IFT_ISO88023", Const, 0},
-		{"IFT_ISO88024", Const, 0},
-		{"IFT_ISO88025", Const, 0},
-		{"IFT_ISO88025CRFPINT", Const, 0},
-		{"IFT_ISO88025DTR", Const, 0},
-		{"IFT_ISO88025FIBER", Const, 0},
-		{"IFT_ISO88026", Const, 0},
-		{"IFT_ISUP", Const, 0},
-		{"IFT_L2VLAN", Const, 0},
-		{"IFT_L3IPVLAN", Const, 0},
-		{"IFT_L3IPXVLAN", Const, 0},
-		{"IFT_LAPB", Const, 0},
-		{"IFT_LAPD", Const, 0},
-		{"IFT_LAPF", Const, 0},
-		{"IFT_LINEGROUP", Const, 1},
-		{"IFT_LOCALTALK", Const, 0},
-		{"IFT_LOOP", Const, 0},
-		{"IFT_MEDIAMAILOVERIP", Const, 0},
-		{"IFT_MFSIGLINK", Const, 0},
-		{"IFT_MIOX25", Const, 0},
-		{"IFT_MODEM", Const, 0},
-		{"IFT_MPC", Const, 0},
-		{"IFT_MPLS", Const, 0},
-		{"IFT_MPLSTUNNEL", Const, 0},
-		{"IFT_MSDSL", Const, 0},
-		{"IFT_MVL", Const, 0},
-		{"IFT_MYRINET", Const, 0},
-		{"IFT_NFAS", Const, 0},
-		{"IFT_NSIP", Const, 0},
-		{"IFT_OPTICALCHANNEL", Const, 0},
-		{"IFT_OPTICALTRANSPORT", Const, 0},
-		{"IFT_OTHER", Const, 0},
-		{"IFT_P10", Const, 0},
-		{"IFT_P80", Const, 0},
-		{"IFT_PARA", Const, 0},
-		{"IFT_PDP", Const, 0},
-		{"IFT_PFLOG", Const, 0},
-		{"IFT_PFLOW", Const, 1},
-		{"IFT_PFSYNC", Const, 0},
-		{"IFT_PLC", Const, 0},
-		{"IFT_PON155", Const, 1},
-		{"IFT_PON622", Const, 1},
-		{"IFT_POS", Const, 0},
-		{"IFT_PPP", Const, 0},
-		{"IFT_PPPMULTILINKBUNDLE", Const, 0},
-		{"IFT_PROPATM", Const, 1},
-		{"IFT_PROPBWAP2MP", Const, 0},
-		{"IFT_PROPCNLS", Const, 0},
-		{"IFT_PROPDOCSWIRELESSDOWNSTREAM", Const, 0},
-		{"IFT_PROPDOCSWIRELESSMACLAYER", Const, 0},
-		{"IFT_PROPDOCSWIRELESSUPSTREAM", Const, 0},
-		{"IFT_PROPMUX", Const, 0},
-		{"IFT_PROPVIRTUAL", Const, 0},
-		{"IFT_PROPWIRELESSP2P", Const, 0},
-		{"IFT_PTPSERIAL", Const, 0},
-		{"IFT_PVC", Const, 0},
-		{"IFT_Q2931", Const, 1},
-		{"IFT_QLLC", Const, 0},
-		{"IFT_RADIOMAC", Const, 0},
-		{"IFT_RADSL", Const, 0},
-		{"IFT_REACHDSL", Const, 0},
-		{"IFT_RFC1483", Const, 0},
-		{"IFT_RS232", Const, 0},
-		{"IFT_RSRB", Const, 0},
-		{"IFT_SDLC", Const, 0},
-		{"IFT_SDSL", Const, 0},
-		{"IFT_SHDSL", Const, 0},
-		{"IFT_SIP", Const, 0},
-		{"IFT_SIPSIG", Const, 1},
-		{"IFT_SIPTG", Const, 1},
-		{"IFT_SLIP", Const, 0},
-		{"IFT_SMDSDXI", Const, 0},
-		{"IFT_SMDSICIP", Const, 0},
-		{"IFT_SONET", Const, 0},
-		{"IFT_SONETOVERHEADCHANNEL", Const, 0},
-		{"IFT_SONETPATH", Const, 0},
-		{"IFT_SONETVT", Const, 0},
-		{"IFT_SRP", Const, 0},
-		{"IFT_SS7SIGLINK", Const, 0},
-		{"IFT_STACKTOSTACK", Const, 0},
-		{"IFT_STARLAN", Const, 0},
-		{"IFT_STF", Const, 0},
-		{"IFT_T1", Const, 0},
-		{"IFT_TDLC", Const, 0},
-		{"IFT_TELINK", Const, 1},
-		{"IFT_TERMPAD", Const, 0},
-		{"IFT_TR008", Const, 0},
-		{"IFT_TRANSPHDLC", Const, 0},
-		{"IFT_TUNNEL", Const, 0},
-		{"IFT_ULTRA", Const, 0},
-		{"IFT_USB", Const, 0},
-		{"IFT_V11", Const, 0},
-		{"IFT_V35", Const, 0},
-		{"IFT_V36", Const, 0},
-		{"IFT_V37", Const, 0},
-		{"IFT_VDSL", Const, 0},
-		{"IFT_VIRTUALIPADDRESS", Const, 0},
-		{"IFT_VIRTUALTG", Const, 1},
-		{"IFT_VOICEDID", Const, 1},
-		{"IFT_VOICEEM", Const, 0},
-		{"IFT_VOICEEMFGD", Const, 1},
-		{"IFT_VOICEENCAP", Const, 0},
-		{"IFT_VOICEFGDEANA", Const, 1},
-		{"IFT_VOICEFXO", Const, 0},
-		{"IFT_VOICEFXS", Const, 0},
-		{"IFT_VOICEOVERATM", Const, 0},
-		{"IFT_VOICEOVERCABLE", Const, 1},
-		{"IFT_VOICEOVERFRAMERELAY", Const, 0},
-		{"IFT_VOICEOVERIP", Const, 0},
-		{"IFT_X213", Const, 0},
-		{"IFT_X25", Const, 0},
-		{"IFT_X25DDN", Const, 0},
-		{"IFT_X25HUNTGROUP", Const, 0},
-		{"IFT_X25MLP", Const, 0},
-		{"IFT_X25PLE", Const, 0},
-		{"IFT_XETHER", Const, 0},
-		{"IGNBRK", Const, 0},
-		{"IGNCR", Const, 0},
-		{"IGNORE", Const, 0},
-		{"IGNPAR", Const, 0},
-		{"IMAXBEL", Const, 0},
-		{"INFINITE", Const, 0},
-		{"INLCR", Const, 0},
-		{"INPCK", Const, 0},
-		{"INVALID_FILE_ATTRIBUTES", Const, 0},
-		{"IN_ACCESS", Const, 0},
-		{"IN_ALL_EVENTS", Const, 0},
-		{"IN_ATTRIB", Const, 0},
-		{"IN_CLASSA_HOST", Const, 0},
-		{"IN_CLASSA_MAX", Const, 0},
-		{"IN_CLASSA_NET", Const, 0},
-		{"IN_CLASSA_NSHIFT", Const, 0},
-		{"IN_CLASSB_HOST", Const, 0},
-		{"IN_CLASSB_MAX", Const, 0},
-		{"IN_CLASSB_NET", Const, 0},
-		{"IN_CLASSB_NSHIFT", Const, 0},
-		{"IN_CLASSC_HOST", Const, 0},
-		{"IN_CLASSC_NET", Const, 0},
-		{"IN_CLASSC_NSHIFT", Const, 0},
-		{"IN_CLASSD_HOST", Const, 0},
-		{"IN_CLASSD_NET", Const, 0},
-		{"IN_CLASSD_NSHIFT", Const, 0},
-		{"IN_CLOEXEC", Const, 0},
-		{"IN_CLOSE", Const, 0},
-		{"IN_CLOSE_NOWRITE", Const, 0},
-		{"IN_CLOSE_WRITE", Const, 0},
-		{"IN_CREATE", Const, 0},
-		{"IN_DELETE", Const, 0},
-		{"IN_DELETE_SELF", Const, 0},
-		{"IN_DONT_FOLLOW", Const, 0},
-		{"IN_EXCL_UNLINK", Const, 0},
-		{"IN_IGNORED", Const, 0},
-		{"IN_ISDIR", Const, 0},
-		{"IN_LINKLOCALNETNUM", Const, 0},
-		{"IN_LOOPBACKNET", Const, 0},
-		{"IN_MASK_ADD", Const, 0},
-		{"IN_MODIFY", Const, 0},
-		{"IN_MOVE", Const, 0},
-		{"IN_MOVED_FROM", Const, 0},
-		{"IN_MOVED_TO", Const, 0},
-		{"IN_MOVE_SELF", Const, 0},
-		{"IN_NONBLOCK", Const, 0},
-		{"IN_ONESHOT", Const, 0},
-		{"IN_ONLYDIR", Const, 0},
-		{"IN_OPEN", Const, 0},
-		{"IN_Q_OVERFLOW", Const, 0},
-		{"IN_RFC3021_HOST", Const, 1},
-		{"IN_RFC3021_MASK", Const, 1},
-		{"IN_RFC3021_NET", Const, 1},
-		{"IN_RFC3021_NSHIFT", Const, 1},
-		{"IN_UNMOUNT", Const, 0},
-		{"IOC_IN", Const, 1},
-		{"IOC_INOUT", Const, 1},
-		{"IOC_OUT", Const, 1},
-		{"IOC_VENDOR", Const, 3},
-		{"IOC_WS2", Const, 1},
-		{"IO_REPARSE_TAG_SYMLINK", Const, 4},
-		{"IPMreq", Type, 0},
-		{"IPMreq.Interface", Field, 0},
-		{"IPMreq.Multiaddr", Field, 0},
-		{"IPMreqn", Type, 0},
-		{"IPMreqn.Address", Field, 0},
-		{"IPMreqn.Ifindex", Field, 0},
-		{"IPMreqn.Multiaddr", Field, 0},
-		{"IPPROTO_3PC", Const, 0},
-		{"IPPROTO_ADFS", Const, 0},
-		{"IPPROTO_AH", Const, 0},
-		{"IPPROTO_AHIP", Const, 0},
-		{"IPPROTO_APES", Const, 0},
-		{"IPPROTO_ARGUS", Const, 0},
-		{"IPPROTO_AX25", Const, 0},
-		{"IPPROTO_BHA", Const, 0},
-		{"IPPROTO_BLT", Const, 0},
-		{"IPPROTO_BRSATMON", Const, 0},
-		{"IPPROTO_CARP", Const, 0},
-		{"IPPROTO_CFTP", Const, 0},
-		{"IPPROTO_CHAOS", Const, 0},
-		{"IPPROTO_CMTP", Const, 0},
-		{"IPPROTO_COMP", Const, 0},
-		{"IPPROTO_CPHB", Const, 0},
-		{"IPPROTO_CPNX", Const, 0},
-		{"IPPROTO_DCCP", Const, 0},
-		{"IPPROTO_DDP", Const, 0},
-		{"IPPROTO_DGP", Const, 0},
-		{"IPPROTO_DIVERT", Const, 0},
-		{"IPPROTO_DIVERT_INIT", Const, 3},
-		{"IPPROTO_DIVERT_RESP", Const, 3},
-		{"IPPROTO_DONE", Const, 0},
-		{"IPPROTO_DSTOPTS", Const, 0},
-		{"IPPROTO_EGP", Const, 0},
-		{"IPPROTO_EMCON", Const, 0},
-		{"IPPROTO_ENCAP", Const, 0},
-		{"IPPROTO_EON", Const, 0},
-		{"IPPROTO_ESP", Const, 0},
-		{"IPPROTO_ETHERIP", Const, 0},
-		{"IPPROTO_FRAGMENT", Const, 0},
-		{"IPPROTO_GGP", Const, 0},
-		{"IPPROTO_GMTP", Const, 0},
-		{"IPPROTO_GRE", Const, 0},
-		{"IPPROTO_HELLO", Const, 0},
-		{"IPPROTO_HMP", Const, 0},
-		{"IPPROTO_HOPOPTS", Const, 0},
-		{"IPPROTO_ICMP", Const, 0},
-		{"IPPROTO_ICMPV6", Const, 0},
-		{"IPPROTO_IDP", Const, 0},
-		{"IPPROTO_IDPR", Const, 0},
-		{"IPPROTO_IDRP", Const, 0},
-		{"IPPROTO_IGMP", Const, 0},
-		{"IPPROTO_IGP", Const, 0},
-		{"IPPROTO_IGRP", Const, 0},
-		{"IPPROTO_IL", Const, 0},
-		{"IPPROTO_INLSP", Const, 0},
-		{"IPPROTO_INP", Const, 0},
-		{"IPPROTO_IP", Const, 0},
-		{"IPPROTO_IPCOMP", Const, 0},
-		{"IPPROTO_IPCV", Const, 0},
-		{"IPPROTO_IPEIP", Const, 0},
-		{"IPPROTO_IPIP", Const, 0},
-		{"IPPROTO_IPPC", Const, 0},
-		{"IPPROTO_IPV4", Const, 0},
-		{"IPPROTO_IPV6", Const, 0},
-		{"IPPROTO_IPV6_ICMP", Const, 1},
-		{"IPPROTO_IRTP", Const, 0},
-		{"IPPROTO_KRYPTOLAN", Const, 0},
-		{"IPPROTO_LARP", Const, 0},
-		{"IPPROTO_LEAF1", Const, 0},
-		{"IPPROTO_LEAF2", Const, 0},
-		{"IPPROTO_MAX", Const, 0},
-		{"IPPROTO_MAXID", Const, 0},
-		{"IPPROTO_MEAS", Const, 0},
-		{"IPPROTO_MH", Const, 1},
-		{"IPPROTO_MHRP", Const, 0},
-		{"IPPROTO_MICP", Const, 0},
-		{"IPPROTO_MOBILE", Const, 0},
-		{"IPPROTO_MPLS", Const, 1},
-		{"IPPROTO_MTP", Const, 0},
-		{"IPPROTO_MUX", Const, 0},
-		{"IPPROTO_ND", Const, 0},
-		{"IPPROTO_NHRP", Const, 0},
-		{"IPPROTO_NONE", Const, 0},
-		{"IPPROTO_NSP", Const, 0},
-		{"IPPROTO_NVPII", Const, 0},
-		{"IPPROTO_OLD_DIVERT", Const, 0},
-		{"IPPROTO_OSPFIGP", Const, 0},
-		{"IPPROTO_PFSYNC", Const, 0},
-		{"IPPROTO_PGM", Const, 0},
-		{"IPPROTO_PIGP", Const, 0},
-		{"IPPROTO_PIM", Const, 0},
-		{"IPPROTO_PRM", Const, 0},
-		{"IPPROTO_PUP", Const, 0},
-		{"IPPROTO_PVP", Const, 0},
-		{"IPPROTO_RAW", Const, 0},
-		{"IPPROTO_RCCMON", Const, 0},
-		{"IPPROTO_RDP", Const, 0},
-		{"IPPROTO_ROUTING", Const, 0},
-		{"IPPROTO_RSVP", Const, 0},
-		{"IPPROTO_RVD", Const, 0},
-		{"IPPROTO_SATEXPAK", Const, 0},
-		{"IPPROTO_SATMON", Const, 0},
-		{"IPPROTO_SCCSP", Const, 0},
-		{"IPPROTO_SCTP", Const, 0},
-		{"IPPROTO_SDRP", Const, 0},
-		{"IPPROTO_SEND", Const, 1},
-		{"IPPROTO_SEP", Const, 0},
-		{"IPPROTO_SKIP", Const, 0},
-		{"IPPROTO_SPACER", Const, 0},
-		{"IPPROTO_SRPC", Const, 0},
-		{"IPPROTO_ST", Const, 0},
-		{"IPPROTO_SVMTP", Const, 0},
-		{"IPPROTO_SWIPE", Const, 0},
-		{"IPPROTO_TCF", Const, 0},
-		{"IPPROTO_TCP", Const, 0},
-		{"IPPROTO_TLSP", Const, 0},
-		{"IPPROTO_TP", Const, 0},
-		{"IPPROTO_TPXX", Const, 0},
-		{"IPPROTO_TRUNK1", Const, 0},
-		{"IPPROTO_TRUNK2", Const, 0},
-		{"IPPROTO_TTP", Const, 0},
-		{"IPPROTO_UDP", Const, 0},
-		{"IPPROTO_UDPLITE", Const, 0},
-		{"IPPROTO_VINES", Const, 0},
-		{"IPPROTO_VISA", Const, 0},
-		{"IPPROTO_VMTP", Const, 0},
-		{"IPPROTO_VRRP", Const, 1},
-		{"IPPROTO_WBEXPAK", Const, 0},
-		{"IPPROTO_WBMON", Const, 0},
-		{"IPPROTO_WSN", Const, 0},
-		{"IPPROTO_XNET", Const, 0},
-		{"IPPROTO_XTP", Const, 0},
-		{"IPV6_2292DSTOPTS", Const, 0},
-		{"IPV6_2292HOPLIMIT", Const, 0},
-		{"IPV6_2292HOPOPTS", Const, 0},
-		{"IPV6_2292NEXTHOP", Const, 0},
-		{"IPV6_2292PKTINFO", Const, 0},
-		{"IPV6_2292PKTOPTIONS", Const, 0},
-		{"IPV6_2292RTHDR", Const, 0},
-		{"IPV6_ADDRFORM", Const, 0},
-		{"IPV6_ADD_MEMBERSHIP", Const, 0},
-		{"IPV6_AUTHHDR", Const, 0},
-		{"IPV6_AUTH_LEVEL", Const, 1},
-		{"IPV6_AUTOFLOWLABEL", Const, 0},
-		{"IPV6_BINDANY", Const, 0},
-		{"IPV6_BINDV6ONLY", Const, 0},
-		{"IPV6_BOUND_IF", Const, 0},
-		{"IPV6_CHECKSUM", Const, 0},
-		{"IPV6_DEFAULT_MULTICAST_HOPS", Const, 0},
-		{"IPV6_DEFAULT_MULTICAST_LOOP", Const, 0},
-		{"IPV6_DEFHLIM", Const, 0},
-		{"IPV6_DONTFRAG", Const, 0},
-		{"IPV6_DROP_MEMBERSHIP", Const, 0},
-		{"IPV6_DSTOPTS", Const, 0},
-		{"IPV6_ESP_NETWORK_LEVEL", Const, 1},
-		{"IPV6_ESP_TRANS_LEVEL", Const, 1},
-		{"IPV6_FAITH", Const, 0},
-		{"IPV6_FLOWINFO_MASK", Const, 0},
-		{"IPV6_FLOWLABEL_MASK", Const, 0},
-		{"IPV6_FRAGTTL", Const, 0},
-		{"IPV6_FW_ADD", Const, 0},
-		{"IPV6_FW_DEL", Const, 0},
-		{"IPV6_FW_FLUSH", Const, 0},
-		{"IPV6_FW_GET", Const, 0},
-		{"IPV6_FW_ZERO", Const, 0},
-		{"IPV6_HLIMDEC", Const, 0},
-		{"IPV6_HOPLIMIT", Const, 0},
-		{"IPV6_HOPOPTS", Const, 0},
-		{"IPV6_IPCOMP_LEVEL", Const, 1},
-		{"IPV6_IPSEC_POLICY", Const, 0},
-		{"IPV6_JOIN_ANYCAST", Const, 0},
-		{"IPV6_JOIN_GROUP", Const, 0},
-		{"IPV6_LEAVE_ANYCAST", Const, 0},
-		{"IPV6_LEAVE_GROUP", Const, 0},
-		{"IPV6_MAXHLIM", Const, 0},
-		{"IPV6_MAXOPTHDR", Const, 0},
-		{"IPV6_MAXPACKET", Const, 0},
-		{"IPV6_MAX_GROUP_SRC_FILTER", Const, 0},
-		{"IPV6_MAX_MEMBERSHIPS", Const, 0},
-		{"IPV6_MAX_SOCK_SRC_FILTER", Const, 0},
-		{"IPV6_MIN_MEMBERSHIPS", Const, 0},
-		{"IPV6_MMTU", Const, 0},
-		{"IPV6_MSFILTER", Const, 0},
-		{"IPV6_MTU", Const, 0},
-		{"IPV6_MTU_DISCOVER", Const, 0},
-		{"IPV6_MULTICAST_HOPS", Const, 0},
-		{"IPV6_MULTICAST_IF", Const, 0},
-		{"IPV6_MULTICAST_LOOP", Const, 0},
-		{"IPV6_NEXTHOP", Const, 0},
-		{"IPV6_OPTIONS", Const, 1},
-		{"IPV6_PATHMTU", Const, 0},
-		{"IPV6_PIPEX", Const, 1},
-		{"IPV6_PKTINFO", Const, 0},
-		{"IPV6_PMTUDISC_DO", Const, 0},
-		{"IPV6_PMTUDISC_DONT", Const, 0},
-		{"IPV6_PMTUDISC_PROBE", Const, 0},
-		{"IPV6_PMTUDISC_WANT", Const, 0},
-		{"IPV6_PORTRANGE", Const, 0},
-		{"IPV6_PORTRANGE_DEFAULT", Const, 0},
-		{"IPV6_PORTRANGE_HIGH", Const, 0},
-		{"IPV6_PORTRANGE_LOW", Const, 0},
-		{"IPV6_PREFER_TEMPADDR", Const, 0},
-		{"IPV6_RECVDSTOPTS", Const, 0},
-		{"IPV6_RECVDSTPORT", Const, 3},
-		{"IPV6_RECVERR", Const, 0},
-		{"IPV6_RECVHOPLIMIT", Const, 0},
-		{"IPV6_RECVHOPOPTS", Const, 0},
-		{"IPV6_RECVPATHMTU", Const, 0},
-		{"IPV6_RECVPKTINFO", Const, 0},
-		{"IPV6_RECVRTHDR", Const, 0},
-		{"IPV6_RECVTCLASS", Const, 0},
-		{"IPV6_ROUTER_ALERT", Const, 0},
-		{"IPV6_RTABLE", Const, 1},
-		{"IPV6_RTHDR", Const, 0},
-		{"IPV6_RTHDRDSTOPTS", Const, 0},
-		{"IPV6_RTHDR_LOOSE", Const, 0},
-		{"IPV6_RTHDR_STRICT", Const, 0},
-		{"IPV6_RTHDR_TYPE_0", Const, 0},
-		{"IPV6_RXDSTOPTS", Const, 0},
-		{"IPV6_RXHOPOPTS", Const, 0},
-		{"IPV6_SOCKOPT_RESERVED1", Const, 0},
-		{"IPV6_TCLASS", Const, 0},
-		{"IPV6_UNICAST_HOPS", Const, 0},
-		{"IPV6_USE_MIN_MTU", Const, 0},
-		{"IPV6_V6ONLY", Const, 0},
-		{"IPV6_VERSION", Const, 0},
-		{"IPV6_VERSION_MASK", Const, 0},
-		{"IPV6_XFRM_POLICY", Const, 0},
-		{"IP_ADD_MEMBERSHIP", Const, 0},
-		{"IP_ADD_SOURCE_MEMBERSHIP", Const, 0},
-		{"IP_AUTH_LEVEL", Const, 1},
-		{"IP_BINDANY", Const, 0},
-		{"IP_BLOCK_SOURCE", Const, 0},
-		{"IP_BOUND_IF", Const, 0},
-		{"IP_DEFAULT_MULTICAST_LOOP", Const, 0},
-		{"IP_DEFAULT_MULTICAST_TTL", Const, 0},
-		{"IP_DF", Const, 0},
-		{"IP_DIVERTFL", Const, 3},
-		{"IP_DONTFRAG", Const, 0},
-		{"IP_DROP_MEMBERSHIP", Const, 0},
-		{"IP_DROP_SOURCE_MEMBERSHIP", Const, 0},
-		{"IP_DUMMYNET3", Const, 0},
-		{"IP_DUMMYNET_CONFIGURE", Const, 0},
-		{"IP_DUMMYNET_DEL", Const, 0},
-		{"IP_DUMMYNET_FLUSH", Const, 0},
-		{"IP_DUMMYNET_GET", Const, 0},
-		{"IP_EF", Const, 1},
-		{"IP_ERRORMTU", Const, 1},
-		{"IP_ESP_NETWORK_LEVEL", Const, 1},
-		{"IP_ESP_TRANS_LEVEL", Const, 1},
-		{"IP_FAITH", Const, 0},
-		{"IP_FREEBIND", Const, 0},
-		{"IP_FW3", Const, 0},
-		{"IP_FW_ADD", Const, 0},
-		{"IP_FW_DEL", Const, 0},
-		{"IP_FW_FLUSH", Const, 0},
-		{"IP_FW_GET", Const, 0},
-		{"IP_FW_NAT_CFG", Const, 0},
-		{"IP_FW_NAT_DEL", Const, 0},
-		{"IP_FW_NAT_GET_CONFIG", Const, 0},
-		{"IP_FW_NAT_GET_LOG", Const, 0},
-		{"IP_FW_RESETLOG", Const, 0},
-		{"IP_FW_TABLE_ADD", Const, 0},
-		{"IP_FW_TABLE_DEL", Const, 0},
-		{"IP_FW_TABLE_FLUSH", Const, 0},
-		{"IP_FW_TABLE_GETSIZE", Const, 0},
-		{"IP_FW_TABLE_LIST", Const, 0},
-		{"IP_FW_ZERO", Const, 0},
-		{"IP_HDRINCL", Const, 0},
-		{"IP_IPCOMP_LEVEL", Const, 1},
-		{"IP_IPSECFLOWINFO", Const, 1},
-		{"IP_IPSEC_LOCAL_AUTH", Const, 1},
-		{"IP_IPSEC_LOCAL_CRED", Const, 1},
-		{"IP_IPSEC_LOCAL_ID", Const, 1},
-		{"IP_IPSEC_POLICY", Const, 0},
-		{"IP_IPSEC_REMOTE_AUTH", Const, 1},
-		{"IP_IPSEC_REMOTE_CRED", Const, 1},
-		{"IP_IPSEC_REMOTE_ID", Const, 1},
-		{"IP_MAXPACKET", Const, 0},
-		{"IP_MAX_GROUP_SRC_FILTER", Const, 0},
-		{"IP_MAX_MEMBERSHIPS", Const, 0},
-		{"IP_MAX_SOCK_MUTE_FILTER", Const, 0},
-		{"IP_MAX_SOCK_SRC_FILTER", Const, 0},
-		{"IP_MAX_SOURCE_FILTER", Const, 0},
-		{"IP_MF", Const, 0},
-		{"IP_MINFRAGSIZE", Const, 1},
-		{"IP_MINTTL", Const, 0},
-		{"IP_MIN_MEMBERSHIPS", Const, 0},
-		{"IP_MSFILTER", Const, 0},
-		{"IP_MSS", Const, 0},
-		{"IP_MTU", Const, 0},
-		{"IP_MTU_DISCOVER", Const, 0},
-		{"IP_MULTICAST_IF", Const, 0},
-		{"IP_MULTICAST_IFINDEX", Const, 0},
-		{"IP_MULTICAST_LOOP", Const, 0},
-		{"IP_MULTICAST_TTL", Const, 0},
-		{"IP_MULTICAST_VIF", Const, 0},
-		{"IP_NAT__XXX", Const, 0},
-		{"IP_OFFMASK", Const, 0},
-		{"IP_OLD_FW_ADD", Const, 0},
-		{"IP_OLD_FW_DEL", Const, 0},
-		{"IP_OLD_FW_FLUSH", Const, 0},
-		{"IP_OLD_FW_GET", Const, 0},
-		{"IP_OLD_FW_RESETLOG", Const, 0},
-		{"IP_OLD_FW_ZERO", Const, 0},
-		{"IP_ONESBCAST", Const, 0},
-		{"IP_OPTIONS", Const, 0},
-		{"IP_ORIGDSTADDR", Const, 0},
-		{"IP_PASSSEC", Const, 0},
-		{"IP_PIPEX", Const, 1},
-		{"IP_PKTINFO", Const, 0},
-		{"IP_PKTOPTIONS", Const, 0},
-		{"IP_PMTUDISC", Const, 0},
-		{"IP_PMTUDISC_DO", Const, 0},
-		{"IP_PMTUDISC_DONT", Const, 0},
-		{"IP_PMTUDISC_PROBE", Const, 0},
-		{"IP_PMTUDISC_WANT", Const, 0},
-		{"IP_PORTRANGE", Const, 0},
-		{"IP_PORTRANGE_DEFAULT", Const, 0},
-		{"IP_PORTRANGE_HIGH", Const, 0},
-		{"IP_PORTRANGE_LOW", Const, 0},
-		{"IP_RECVDSTADDR", Const, 0},
-		{"IP_RECVDSTPORT", Const, 1},
-		{"IP_RECVERR", Const, 0},
-		{"IP_RECVIF", Const, 0},
-		{"IP_RECVOPTS", Const, 0},
-		{"IP_RECVORIGDSTADDR", Const, 0},
-		{"IP_RECVPKTINFO", Const, 0},
-		{"IP_RECVRETOPTS", Const, 0},
-		{"IP_RECVRTABLE", Const, 1},
-		{"IP_RECVTOS", Const, 0},
-		{"IP_RECVTTL", Const, 0},
-		{"IP_RETOPTS", Const, 0},
-		{"IP_RF", Const, 0},
-		{"IP_ROUTER_ALERT", Const, 0},
-		{"IP_RSVP_OFF", Const, 0},
-		{"IP_RSVP_ON", Const, 0},
-		{"IP_RSVP_VIF_OFF", Const, 0},
-		{"IP_RSVP_VIF_ON", Const, 0},
-		{"IP_RTABLE", Const, 1},
-		{"IP_SENDSRCADDR", Const, 0},
-		{"IP_STRIPHDR", Const, 0},
-		{"IP_TOS", Const, 0},
-		{"IP_TRAFFIC_MGT_BACKGROUND", Const, 0},
-		{"IP_TRANSPARENT", Const, 0},
-		{"IP_TTL", Const, 0},
-		{"IP_UNBLOCK_SOURCE", Const, 0},
-		{"IP_XFRM_POLICY", Const, 0},
-		{"IPv6MTUInfo", Type, 2},
-		{"IPv6MTUInfo.Addr", Field, 2},
-		{"IPv6MTUInfo.Mtu", Field, 2},
-		{"IPv6Mreq", Type, 0},
-		{"IPv6Mreq.Interface", Field, 0},
-		{"IPv6Mreq.Multiaddr", Field, 0},
-		{"ISIG", Const, 0},
-		{"ISTRIP", Const, 0},
-		{"IUCLC", Const, 0},
-		{"IUTF8", Const, 0},
-		{"IXANY", Const, 0},
-		{"IXOFF", Const, 0},
-		{"IXON", Const, 0},
-		{"IfAddrmsg", Type, 0},
-		{"IfAddrmsg.Family", Field, 0},
-		{"IfAddrmsg.Flags", Field, 0},
-		{"IfAddrmsg.Index", Field, 0},
-		{"IfAddrmsg.Prefixlen", Field, 0},
-		{"IfAddrmsg.Scope", Field, 0},
-		{"IfAnnounceMsghdr", Type, 1},
-		{"IfAnnounceMsghdr.Hdrlen", Field, 2},
-		{"IfAnnounceMsghdr.Index", Field, 1},
-		{"IfAnnounceMsghdr.Msglen", Field, 1},
-		{"IfAnnounceMsghdr.Name", Field, 1},
-		{"IfAnnounceMsghdr.Type", Field, 1},
-		{"IfAnnounceMsghdr.Version", Field, 1},
-		{"IfAnnounceMsghdr.What", Field, 1},
-		{"IfData", Type, 0},
-		{"IfData.Addrlen", Field, 0},
-		{"IfData.Baudrate", Field, 0},
-		{"IfData.Capabilities", Field, 2},
-		{"IfData.Collisions", Field, 0},
-		{"IfData.Datalen", Field, 0},
-		{"IfData.Epoch", Field, 0},
-		{"IfData.Hdrlen", Field, 0},
-		{"IfData.Hwassist", Field, 0},
-		{"IfData.Ibytes", Field, 0},
-		{"IfData.Ierrors", Field, 0},
-		{"IfData.Imcasts", Field, 0},
-		{"IfData.Ipackets", Field, 0},
-		{"IfData.Iqdrops", Field, 0},
-		{"IfData.Lastchange", Field, 0},
-		{"IfData.Link_state", Field, 0},
-		{"IfData.Mclpool", Field, 2},
-		{"IfData.Metric", Field, 0},
-		{"IfData.Mtu", Field, 0},
-		{"IfData.Noproto", Field, 0},
-		{"IfData.Obytes", Field, 0},
-		{"IfData.Oerrors", Field, 0},
-		{"IfData.Omcasts", Field, 0},
-		{"IfData.Opackets", Field, 0},
-		{"IfData.Pad", Field, 2},
-		{"IfData.Pad_cgo_0", Field, 2},
-		{"IfData.Pad_cgo_1", Field, 2},
-		{"IfData.Physical", Field, 0},
-		{"IfData.Recvquota", Field, 0},
-		{"IfData.Recvtiming", Field, 0},
-		{"IfData.Reserved1", Field, 0},
-		{"IfData.Reserved2", Field, 0},
-		{"IfData.Spare_char1", Field, 0},
-		{"IfData.Spare_char2", Field, 0},
-		{"IfData.Type", Field, 0},
-		{"IfData.Typelen", Field, 0},
-		{"IfData.Unused1", Field, 0},
-		{"IfData.Unused2", Field, 0},
-		{"IfData.Xmitquota", Field, 0},
-		{"IfData.Xmittiming", Field, 0},
-		{"IfInfomsg", Type, 0},
-		{"IfInfomsg.Change", Field, 0},
-		{"IfInfomsg.Family", Field, 0},
-		{"IfInfomsg.Flags", Field, 0},
-		{"IfInfomsg.Index", Field, 0},
-		{"IfInfomsg.Type", Field, 0},
-		{"IfInfomsg.X__ifi_pad", Field, 0},
-		{"IfMsghdr", Type, 0},
-		{"IfMsghdr.Addrs", Field, 0},
-		{"IfMsghdr.Data", Field, 0},
-		{"IfMsghdr.Flags", Field, 0},
-		{"IfMsghdr.Hdrlen", Field, 2},
-		{"IfMsghdr.Index", Field, 0},
-		{"IfMsghdr.Msglen", Field, 0},
-		{"IfMsghdr.Pad1", Field, 2},
-		{"IfMsghdr.Pad2", Field, 2},
-		{"IfMsghdr.Pad_cgo_0", Field, 0},
-		{"IfMsghdr.Pad_cgo_1", Field, 2},
-		{"IfMsghdr.Tableid", Field, 2},
-		{"IfMsghdr.Type", Field, 0},
-		{"IfMsghdr.Version", Field, 0},
-		{"IfMsghdr.Xflags", Field, 2},
-		{"IfaMsghdr", Type, 0},
-		{"IfaMsghdr.Addrs", Field, 0},
-		{"IfaMsghdr.Flags", Field, 0},
-		{"IfaMsghdr.Hdrlen", Field, 2},
-		{"IfaMsghdr.Index", Field, 0},
-		{"IfaMsghdr.Metric", Field, 0},
-		{"IfaMsghdr.Msglen", Field, 0},
-		{"IfaMsghdr.Pad1", Field, 2},
-		{"IfaMsghdr.Pad2", Field, 2},
-		{"IfaMsghdr.Pad_cgo_0", Field, 0},
-		{"IfaMsghdr.Tableid", Field, 2},
-		{"IfaMsghdr.Type", Field, 0},
-		{"IfaMsghdr.Version", Field, 0},
-		{"IfmaMsghdr", Type, 0},
-		{"IfmaMsghdr.Addrs", Field, 0},
-		{"IfmaMsghdr.Flags", Field, 0},
-		{"IfmaMsghdr.Index", Field, 0},
-		{"IfmaMsghdr.Msglen", Field, 0},
-		{"IfmaMsghdr.Pad_cgo_0", Field, 0},
-		{"IfmaMsghdr.Type", Field, 0},
-		{"IfmaMsghdr.Version", Field, 0},
-		{"IfmaMsghdr2", Type, 0},
-		{"IfmaMsghdr2.Addrs", Field, 0},
-		{"IfmaMsghdr2.Flags", Field, 0},
-		{"IfmaMsghdr2.Index", Field, 0},
-		{"IfmaMsghdr2.Msglen", Field, 0},
-		{"IfmaMsghdr2.Pad_cgo_0", Field, 0},
-		{"IfmaMsghdr2.Refcount", Field, 0},
-		{"IfmaMsghdr2.Type", Field, 0},
-		{"IfmaMsghdr2.Version", Field, 0},
-		{"ImplementsGetwd", Const, 0},
-		{"Inet4Pktinfo", Type, 0},
-		{"Inet4Pktinfo.Addr", Field, 0},
-		{"Inet4Pktinfo.Ifindex", Field, 0},
-		{"Inet4Pktinfo.Spec_dst", Field, 0},
-		{"Inet6Pktinfo", Type, 0},
-		{"Inet6Pktinfo.Addr", Field, 0},
-		{"Inet6Pktinfo.Ifindex", Field, 0},
-		{"InotifyAddWatch", Func, 0},
-		{"InotifyEvent", Type, 0},
-		{"InotifyEvent.Cookie", Field, 0},
-		{"InotifyEvent.Len", Field, 0},
-		{"InotifyEvent.Mask", Field, 0},
-		{"InotifyEvent.Name", Field, 0},
-		{"InotifyEvent.Wd", Field, 0},
-		{"InotifyInit", Func, 0},
-		{"InotifyInit1", Func, 0},
-		{"InotifyRmWatch", Func, 0},
-		{"InterfaceAddrMessage", Type, 0},
-		{"InterfaceAddrMessage.Data", Field, 0},
-		{"InterfaceAddrMessage.Header", Field, 0},
-		{"InterfaceAnnounceMessage", Type, 1},
-		{"InterfaceAnnounceMessage.Header", Field, 1},
-		{"InterfaceInfo", Type, 0},
-		{"InterfaceInfo.Address", Field, 0},
-		{"InterfaceInfo.BroadcastAddress", Field, 0},
-		{"InterfaceInfo.Flags", Field, 0},
-		{"InterfaceInfo.Netmask", Field, 0},
-		{"InterfaceMessage", Type, 0},
-		{"InterfaceMessage.Data", Field, 0},
-		{"InterfaceMessage.Header", Field, 0},
-		{"InterfaceMulticastAddrMessage", Type, 0},
-		{"InterfaceMulticastAddrMessage.Data", Field, 0},
-		{"InterfaceMulticastAddrMessage.Header", Field, 0},
-		{"InvalidHandle", Const, 0},
-		{"Ioperm", Func, 0},
-		{"Iopl", Func, 0},
-		{"Iovec", Type, 0},
-		{"Iovec.Base", Field, 0},
-		{"Iovec.Len", Field, 0},
-		{"IpAdapterInfo", Type, 0},
-		{"IpAdapterInfo.AdapterName", Field, 0},
-		{"IpAdapterInfo.Address", Field, 0},
-		{"IpAdapterInfo.AddressLength", Field, 0},
-		{"IpAdapterInfo.ComboIndex", Field, 0},
-		{"IpAdapterInfo.CurrentIpAddress", Field, 0},
-		{"IpAdapterInfo.Description", Field, 0},
-		{"IpAdapterInfo.DhcpEnabled", Field, 0},
-		{"IpAdapterInfo.DhcpServer", Field, 0},
-		{"IpAdapterInfo.GatewayList", Field, 0},
-		{"IpAdapterInfo.HaveWins", Field, 0},
-		{"IpAdapterInfo.Index", Field, 0},
-		{"IpAdapterInfo.IpAddressList", Field, 0},
-		{"IpAdapterInfo.LeaseExpires", Field, 0},
-		{"IpAdapterInfo.LeaseObtained", Field, 0},
-		{"IpAdapterInfo.Next", Field, 0},
-		{"IpAdapterInfo.PrimaryWinsServer", Field, 0},
-		{"IpAdapterInfo.SecondaryWinsServer", Field, 0},
-		{"IpAdapterInfo.Type", Field, 0},
-		{"IpAddrString", Type, 0},
-		{"IpAddrString.Context", Field, 0},
-		{"IpAddrString.IpAddress", Field, 0},
-		{"IpAddrString.IpMask", Field, 0},
-		{"IpAddrString.Next", Field, 0},
-		{"IpAddressString", Type, 0},
-		{"IpAddressString.String", Field, 0},
-		{"IpMaskString", Type, 0},
-		{"IpMaskString.String", Field, 2},
-		{"Issetugid", Func, 0},
-		{"KEY_ALL_ACCESS", Const, 0},
-		{"KEY_CREATE_LINK", Const, 0},
-		{"KEY_CREATE_SUB_KEY", Const, 0},
-		{"KEY_ENUMERATE_SUB_KEYS", Const, 0},
-		{"KEY_EXECUTE", Const, 0},
-		{"KEY_NOTIFY", Const, 0},
-		{"KEY_QUERY_VALUE", Const, 0},
-		{"KEY_READ", Const, 0},
-		{"KEY_SET_VALUE", Const, 0},
-		{"KEY_WOW64_32KEY", Const, 0},
-		{"KEY_WOW64_64KEY", Const, 0},
-		{"KEY_WRITE", Const, 0},
-		{"Kevent", Func, 0},
-		{"Kevent_t", Type, 0},
-		{"Kevent_t.Data", Field, 0},
-		{"Kevent_t.Fflags", Field, 0},
-		{"Kevent_t.Filter", Field, 0},
-		{"Kevent_t.Flags", Field, 0},
-		{"Kevent_t.Ident", Field, 0},
-		{"Kevent_t.Pad_cgo_0", Field, 2},
-		{"Kevent_t.Udata", Field, 0},
-		{"Kill", Func, 0},
-		{"Klogctl", Func, 0},
-		{"Kqueue", Func, 0},
-		{"LANG_ENGLISH", Const, 0},
-		{"LAYERED_PROTOCOL", Const, 2},
-		{"LCNT_OVERLOAD_FLUSH", Const, 1},
-		{"LINUX_REBOOT_CMD_CAD_OFF", Const, 0},
-		{"LINUX_REBOOT_CMD_CAD_ON", Const, 0},
-		{"LINUX_REBOOT_CMD_HALT", Const, 0},
-		{"LINUX_REBOOT_CMD_KEXEC", Const, 0},
-		{"LINUX_REBOOT_CMD_POWER_OFF", Const, 0},
-		{"LINUX_REBOOT_CMD_RESTART", Const, 0},
-		{"LINUX_REBOOT_CMD_RESTART2", Const, 0},
-		{"LINUX_REBOOT_CMD_SW_SUSPEND", Const, 0},
-		{"LINUX_REBOOT_MAGIC1", Const, 0},
-		{"LINUX_REBOOT_MAGIC2", Const, 0},
-		{"LOCK_EX", Const, 0},
-		{"LOCK_NB", Const, 0},
-		{"LOCK_SH", Const, 0},
-		{"LOCK_UN", Const, 0},
-		{"LazyDLL", Type, 0},
-		{"LazyDLL.Name", Field, 0},
-		{"LazyProc", Type, 0},
-		{"LazyProc.Name", Field, 0},
-		{"Lchown", Func, 0},
-		{"Linger", Type, 0},
-		{"Linger.Linger", Field, 0},
-		{"Linger.Onoff", Field, 0},
-		{"Link", Func, 0},
-		{"Listen", Func, 0},
-		{"Listxattr", Func, 1},
-		{"LoadCancelIoEx", Func, 1},
-		{"LoadConnectEx", Func, 1},
-		{"LoadCreateSymbolicLink", Func, 4},
-		{"LoadDLL", Func, 0},
-		{"LoadGetAddrInfo", Func, 1},
-		{"LoadLibrary", Func, 0},
-		{"LoadSetFileCompletionNotificationModes", Func, 2},
-		{"LocalFree", Func, 0},
-		{"Log2phys_t", Type, 0},
-		{"Log2phys_t.Contigbytes", Field, 0},
-		{"Log2phys_t.Devoffset", Field, 0},
-		{"Log2phys_t.Flags", Field, 0},
-		{"LookupAccountName", Func, 0},
-		{"LookupAccountSid", Func, 0},
-		{"LookupSID", Func, 0},
-		{"LsfJump", Func, 0},
-		{"LsfSocket", Func, 0},
-		{"LsfStmt", Func, 0},
-		{"Lstat", Func, 0},
-		{"MADV_AUTOSYNC", Const, 1},
-		{"MADV_CAN_REUSE", Const, 0},
-		{"MADV_CORE", Const, 1},
-		{"MADV_DOFORK", Const, 0},
-		{"MADV_DONTFORK", Const, 0},
-		{"MADV_DONTNEED", Const, 0},
-		{"MADV_FREE", Const, 0},
-		{"MADV_FREE_REUSABLE", Const, 0},
-		{"MADV_FREE_REUSE", Const, 0},
-		{"MADV_HUGEPAGE", Const, 0},
-		{"MADV_HWPOISON", Const, 0},
-		{"MADV_MERGEABLE", Const, 0},
-		{"MADV_NOCORE", Const, 1},
-		{"MADV_NOHUGEPAGE", Const, 0},
-		{"MADV_NORMAL", Const, 0},
-		{"MADV_NOSYNC", Const, 1},
-		{"MADV_PROTECT", Const, 1},
-		{"MADV_RANDOM", Const, 0},
-		{"MADV_REMOVE", Const, 0},
-		{"MADV_SEQUENTIAL", Const, 0},
-		{"MADV_SPACEAVAIL", Const, 3},
-		{"MADV_UNMERGEABLE", Const, 0},
-		{"MADV_WILLNEED", Const, 0},
-		{"MADV_ZERO_WIRED_PAGES", Const, 0},
-		{"MAP_32BIT", Const, 0},
-		{"MAP_ALIGNED_SUPER", Const, 3},
-		{"MAP_ALIGNMENT_16MB", Const, 3},
-		{"MAP_ALIGNMENT_1TB", Const, 3},
-		{"MAP_ALIGNMENT_256TB", Const, 3},
-		{"MAP_ALIGNMENT_4GB", Const, 3},
-		{"MAP_ALIGNMENT_64KB", Const, 3},
-		{"MAP_ALIGNMENT_64PB", Const, 3},
-		{"MAP_ALIGNMENT_MASK", Const, 3},
-		{"MAP_ALIGNMENT_SHIFT", Const, 3},
-		{"MAP_ANON", Const, 0},
-		{"MAP_ANONYMOUS", Const, 0},
-		{"MAP_COPY", Const, 0},
-		{"MAP_DENYWRITE", Const, 0},
-		{"MAP_EXECUTABLE", Const, 0},
-		{"MAP_FILE", Const, 0},
-		{"MAP_FIXED", Const, 0},
-		{"MAP_FLAGMASK", Const, 3},
-		{"MAP_GROWSDOWN", Const, 0},
-		{"MAP_HASSEMAPHORE", Const, 0},
-		{"MAP_HUGETLB", Const, 0},
-		{"MAP_INHERIT", Const, 3},
-		{"MAP_INHERIT_COPY", Const, 3},
-		{"MAP_INHERIT_DEFAULT", Const, 3},
-		{"MAP_INHERIT_DONATE_COPY", Const, 3},
-		{"MAP_INHERIT_NONE", Const, 3},
-		{"MAP_INHERIT_SHARE", Const, 3},
-		{"MAP_JIT", Const, 0},
-		{"MAP_LOCKED", Const, 0},
-		{"MAP_NOCACHE", Const, 0},
-		{"MAP_NOCORE", Const, 1},
-		{"MAP_NOEXTEND", Const, 0},
-		{"MAP_NONBLOCK", Const, 0},
-		{"MAP_NORESERVE", Const, 0},
-		{"MAP_NOSYNC", Const, 1},
-		{"MAP_POPULATE", Const, 0},
-		{"MAP_PREFAULT_READ", Const, 1},
-		{"MAP_PRIVATE", Const, 0},
-		{"MAP_RENAME", Const, 0},
-		{"MAP_RESERVED0080", Const, 0},
-		{"MAP_RESERVED0100", Const, 1},
-		{"MAP_SHARED", Const, 0},
-		{"MAP_STACK", Const, 0},
-		{"MAP_TRYFIXED", Const, 3},
-		{"MAP_TYPE", Const, 0},
-		{"MAP_WIRED", Const, 3},
-		{"MAXIMUM_REPARSE_DATA_BUFFER_SIZE", Const, 4},
-		{"MAXLEN_IFDESCR", Const, 0},
-		{"MAXLEN_PHYSADDR", Const, 0},
-		{"MAX_ADAPTER_ADDRESS_LENGTH", Const, 0},
-		{"MAX_ADAPTER_DESCRIPTION_LENGTH", Const, 0},
-		{"MAX_ADAPTER_NAME_LENGTH", Const, 0},
-		{"MAX_COMPUTERNAME_LENGTH", Const, 0},
-		{"MAX_INTERFACE_NAME_LEN", Const, 0},
-		{"MAX_LONG_PATH", Const, 0},
-		{"MAX_PATH", Const, 0},
-		{"MAX_PROTOCOL_CHAIN", Const, 2},
-		{"MCL_CURRENT", Const, 0},
-		{"MCL_FUTURE", Const, 0},
-		{"MNT_DETACH", Const, 0},
-		{"MNT_EXPIRE", Const, 0},
-		{"MNT_FORCE", Const, 0},
-		{"MSG_BCAST", Const, 1},
-		{"MSG_CMSG_CLOEXEC", Const, 0},
-		{"MSG_COMPAT", Const, 0},
-		{"MSG_CONFIRM", Const, 0},
-		{"MSG_CONTROLMBUF", Const, 1},
-		{"MSG_CTRUNC", Const, 0},
-		{"MSG_DONTROUTE", Const, 0},
-		{"MSG_DONTWAIT", Const, 0},
-		{"MSG_EOF", Const, 0},
-		{"MSG_EOR", Const, 0},
-		{"MSG_ERRQUEUE", Const, 0},
-		{"MSG_FASTOPEN", Const, 1},
-		{"MSG_FIN", Const, 0},
-		{"MSG_FLUSH", Const, 0},
-		{"MSG_HAVEMORE", Const, 0},
-		{"MSG_HOLD", Const, 0},
-		{"MSG_IOVUSRSPACE", Const, 1},
-		{"MSG_LENUSRSPACE", Const, 1},
-		{"MSG_MCAST", Const, 1},
-		{"MSG_MORE", Const, 0},
-		{"MSG_NAMEMBUF", Const, 1},
-		{"MSG_NBIO", Const, 0},
-		{"MSG_NEEDSA", Const, 0},
-		{"MSG_NOSIGNAL", Const, 0},
-		{"MSG_NOTIFICATION", Const, 0},
-		{"MSG_OOB", Const, 0},
-		{"MSG_PEEK", Const, 0},
-		{"MSG_PROXY", Const, 0},
-		{"MSG_RCVMORE", Const, 0},
-		{"MSG_RST", Const, 0},
-		{"MSG_SEND", Const, 0},
-		{"MSG_SYN", Const, 0},
-		{"MSG_TRUNC", Const, 0},
-		{"MSG_TRYHARD", Const, 0},
-		{"MSG_USERFLAGS", Const, 1},
-		{"MSG_WAITALL", Const, 0},
-		{"MSG_WAITFORONE", Const, 0},
-		{"MSG_WAITSTREAM", Const, 0},
-		{"MS_ACTIVE", Const, 0},
-		{"MS_ASYNC", Const, 0},
-		{"MS_BIND", Const, 0},
-		{"MS_DEACTIVATE", Const, 0},
-		{"MS_DIRSYNC", Const, 0},
-		{"MS_INVALIDATE", Const, 0},
-		{"MS_I_VERSION", Const, 0},
-		{"MS_KERNMOUNT", Const, 0},
-		{"MS_KILLPAGES", Const, 0},
-		{"MS_MANDLOCK", Const, 0},
-		{"MS_MGC_MSK", Const, 0},
-		{"MS_MGC_VAL", Const, 0},
-		{"MS_MOVE", Const, 0},
-		{"MS_NOATIME", Const, 0},
-		{"MS_NODEV", Const, 0},
-		{"MS_NODIRATIME", Const, 0},
-		{"MS_NOEXEC", Const, 0},
-		{"MS_NOSUID", Const, 0},
-		{"MS_NOUSER", Const, 0},
-		{"MS_POSIXACL", Const, 0},
-		{"MS_PRIVATE", Const, 0},
-		{"MS_RDONLY", Const, 0},
-		{"MS_REC", Const, 0},
-		{"MS_RELATIME", Const, 0},
-		{"MS_REMOUNT", Const, 0},
-		{"MS_RMT_MASK", Const, 0},
-		{"MS_SHARED", Const, 0},
-		{"MS_SILENT", Const, 0},
-		{"MS_SLAVE", Const, 0},
-		{"MS_STRICTATIME", Const, 0},
-		{"MS_SYNC", Const, 0},
-		{"MS_SYNCHRONOUS", Const, 0},
-		{"MS_UNBINDABLE", Const, 0},
-		{"Madvise", Func, 0},
-		{"MapViewOfFile", Func, 0},
-		{"MaxTokenInfoClass", Const, 0},
-		{"Mclpool", Type, 2},
-		{"Mclpool.Alive", Field, 2},
-		{"Mclpool.Cwm", Field, 2},
-		{"Mclpool.Grown", Field, 2},
-		{"Mclpool.Hwm", Field, 2},
-		{"Mclpool.Lwm", Field, 2},
-		{"MibIfRow", Type, 0},
-		{"MibIfRow.AdminStatus", Field, 0},
-		{"MibIfRow.Descr", Field, 0},
-		{"MibIfRow.DescrLen", Field, 0},
-		{"MibIfRow.InDiscards", Field, 0},
-		{"MibIfRow.InErrors", Field, 0},
-		{"MibIfRow.InNUcastPkts", Field, 0},
-		{"MibIfRow.InOctets", Field, 0},
-		{"MibIfRow.InUcastPkts", Field, 0},
-		{"MibIfRow.InUnknownProtos", Field, 0},
-		{"MibIfRow.Index", Field, 0},
-		{"MibIfRow.LastChange", Field, 0},
-		{"MibIfRow.Mtu", Field, 0},
-		{"MibIfRow.Name", Field, 0},
-		{"MibIfRow.OperStatus", Field, 0},
-		{"MibIfRow.OutDiscards", Field, 0},
-		{"MibIfRow.OutErrors", Field, 0},
-		{"MibIfRow.OutNUcastPkts", Field, 0},
-		{"MibIfRow.OutOctets", Field, 0},
-		{"MibIfRow.OutQLen", Field, 0},
-		{"MibIfRow.OutUcastPkts", Field, 0},
-		{"MibIfRow.PhysAddr", Field, 0},
-		{"MibIfRow.PhysAddrLen", Field, 0},
-		{"MibIfRow.Speed", Field, 0},
-		{"MibIfRow.Type", Field, 0},
-		{"Mkdir", Func, 0},
-		{"Mkdirat", Func, 0},
-		{"Mkfifo", Func, 0},
-		{"Mknod", Func, 0},
-		{"Mknodat", Func, 0},
-		{"Mlock", Func, 0},
-		{"Mlockall", Func, 0},
-		{"Mmap", Func, 0},
-		{"Mount", Func, 0},
-		{"MoveFile", Func, 0},
-		{"Mprotect", Func, 0},
-		{"Msghdr", Type, 0},
-		{"Msghdr.Control", Field, 0},
-		{"Msghdr.Controllen", Field, 0},
-		{"Msghdr.Flags", Field, 0},
-		{"Msghdr.Iov", Field, 0},
-		{"Msghdr.Iovlen", Field, 0},
-		{"Msghdr.Name", Field, 0},
-		{"Msghdr.Namelen", Field, 0},
-		{"Msghdr.Pad_cgo_0", Field, 0},
-		{"Msghdr.Pad_cgo_1", Field, 0},
-		{"Munlock", Func, 0},
-		{"Munlockall", Func, 0},
-		{"Munmap", Func, 0},
-		{"MustLoadDLL", Func, 0},
-		{"NAME_MAX", Const, 0},
-		{"NETLINK_ADD_MEMBERSHIP", Const, 0},
-		{"NETLINK_AUDIT", Const, 0},
-		{"NETLINK_BROADCAST_ERROR", Const, 0},
-		{"NETLINK_CONNECTOR", Const, 0},
-		{"NETLINK_DNRTMSG", Const, 0},
-		{"NETLINK_DROP_MEMBERSHIP", Const, 0},
-		{"NETLINK_ECRYPTFS", Const, 0},
-		{"NETLINK_FIB_LOOKUP", Const, 0},
-		{"NETLINK_FIREWALL", Const, 0},
-		{"NETLINK_GENERIC", Const, 0},
-		{"NETLINK_INET_DIAG", Const, 0},
-		{"NETLINK_IP6_FW", Const, 0},
-		{"NETLINK_ISCSI", Const, 0},
-		{"NETLINK_KOBJECT_UEVENT", Const, 0},
-		{"NETLINK_NETFILTER", Const, 0},
-		{"NETLINK_NFLOG", Const, 0},
-		{"NETLINK_NO_ENOBUFS", Const, 0},
-		{"NETLINK_PKTINFO", Const, 0},
-		{"NETLINK_RDMA", Const, 0},
-		{"NETLINK_ROUTE", Const, 0},
-		{"NETLINK_SCSITRANSPORT", Const, 0},
-		{"NETLINK_SELINUX", Const, 0},
-		{"NETLINK_UNUSED", Const, 0},
-		{"NETLINK_USERSOCK", Const, 0},
-		{"NETLINK_XFRM", Const, 0},
-		{"NET_RT_DUMP", Const, 0},
-		{"NET_RT_DUMP2", Const, 0},
-		{"NET_RT_FLAGS", Const, 0},
-		{"NET_RT_IFLIST", Const, 0},
-		{"NET_RT_IFLIST2", Const, 0},
-		{"NET_RT_IFLISTL", Const, 1},
-		{"NET_RT_IFMALIST", Const, 0},
-		{"NET_RT_MAXID", Const, 0},
-		{"NET_RT_OIFLIST", Const, 1},
-		{"NET_RT_OOIFLIST", Const, 1},
-		{"NET_RT_STAT", Const, 0},
-		{"NET_RT_STATS", Const, 1},
-		{"NET_RT_TABLE", Const, 1},
-		{"NET_RT_TRASH", Const, 0},
-		{"NLA_ALIGNTO", Const, 0},
-		{"NLA_F_NESTED", Const, 0},
-		{"NLA_F_NET_BYTEORDER", Const, 0},
-		{"NLA_HDRLEN", Const, 0},
-		{"NLMSG_ALIGNTO", Const, 0},
-		{"NLMSG_DONE", Const, 0},
-		{"NLMSG_ERROR", Const, 0},
-		{"NLMSG_HDRLEN", Const, 0},
-		{"NLMSG_MIN_TYPE", Const, 0},
-		{"NLMSG_NOOP", Const, 0},
-		{"NLMSG_OVERRUN", Const, 0},
-		{"NLM_F_ACK", Const, 0},
-		{"NLM_F_APPEND", Const, 0},
-		{"NLM_F_ATOMIC", Const, 0},
-		{"NLM_F_CREATE", Const, 0},
-		{"NLM_F_DUMP", Const, 0},
-		{"NLM_F_ECHO", Const, 0},
-		{"NLM_F_EXCL", Const, 0},
-		{"NLM_F_MATCH", Const, 0},
-		{"NLM_F_MULTI", Const, 0},
-		{"NLM_F_REPLACE", Const, 0},
-		{"NLM_F_REQUEST", Const, 0},
-		{"NLM_F_ROOT", Const, 0},
-		{"NOFLSH", Const, 0},
-		{"NOTE_ABSOLUTE", Const, 0},
-		{"NOTE_ATTRIB", Const, 0},
-		{"NOTE_BACKGROUND", Const, 16},
-		{"NOTE_CHILD", Const, 0},
-		{"NOTE_CRITICAL", Const, 16},
-		{"NOTE_DELETE", Const, 0},
-		{"NOTE_EOF", Const, 1},
-		{"NOTE_EXEC", Const, 0},
-		{"NOTE_EXIT", Const, 0},
-		{"NOTE_EXITSTATUS", Const, 0},
-		{"NOTE_EXIT_CSERROR", Const, 16},
-		{"NOTE_EXIT_DECRYPTFAIL", Const, 16},
-		{"NOTE_EXIT_DETAIL", Const, 16},
-		{"NOTE_EXIT_DETAIL_MASK", Const, 16},
-		{"NOTE_EXIT_MEMORY", Const, 16},
-		{"NOTE_EXIT_REPARENTED", Const, 16},
-		{"NOTE_EXTEND", Const, 0},
-		{"NOTE_FFAND", Const, 0},
-		{"NOTE_FFCOPY", Const, 0},
-		{"NOTE_FFCTRLMASK", Const, 0},
-		{"NOTE_FFLAGSMASK", Const, 0},
-		{"NOTE_FFNOP", Const, 0},
-		{"NOTE_FFOR", Const, 0},
-		{"NOTE_FORK", Const, 0},
-		{"NOTE_LEEWAY", Const, 16},
-		{"NOTE_LINK", Const, 0},
-		{"NOTE_LOWAT", Const, 0},
-		{"NOTE_NONE", Const, 0},
-		{"NOTE_NSECONDS", Const, 0},
-		{"NOTE_PCTRLMASK", Const, 0},
-		{"NOTE_PDATAMASK", Const, 0},
-		{"NOTE_REAP", Const, 0},
-		{"NOTE_RENAME", Const, 0},
-		{"NOTE_RESOURCEEND", Const, 0},
-		{"NOTE_REVOKE", Const, 0},
-		{"NOTE_SECONDS", Const, 0},
-		{"NOTE_SIGNAL", Const, 0},
-		{"NOTE_TRACK", Const, 0},
-		{"NOTE_TRACKERR", Const, 0},
-		{"NOTE_TRIGGER", Const, 0},
-		{"NOTE_TRUNCATE", Const, 1},
-		{"NOTE_USECONDS", Const, 0},
-		{"NOTE_VM_ERROR", Const, 0},
-		{"NOTE_VM_PRESSURE", Const, 0},
-		{"NOTE_VM_PRESSURE_SUDDEN_TERMINATE", Const, 0},
-		{"NOTE_VM_PRESSURE_TERMINATE", Const, 0},
-		{"NOTE_WRITE", Const, 0},
-		{"NameCanonical", Const, 0},
-		{"NameCanonicalEx", Const, 0},
-		{"NameDisplay", Const, 0},
-		{"NameDnsDomain", Const, 0},
-		{"NameFullyQualifiedDN", Const, 0},
-		{"NameSamCompatible", Const, 0},
-		{"NameServicePrincipal", Const, 0},
-		{"NameUniqueId", Const, 0},
-		{"NameUnknown", Const, 0},
-		{"NameUserPrincipal", Const, 0},
-		{"Nanosleep", Func, 0},
-		{"NetApiBufferFree", Func, 0},
-		{"NetGetJoinInformation", Func, 2},
-		{"NetSetupDomainName", Const, 2},
-		{"NetSetupUnjoined", Const, 2},
-		{"NetSetupUnknownStatus", Const, 2},
-		{"NetSetupWorkgroupName", Const, 2},
-		{"NetUserGetInfo", Func, 0},
-		{"NetlinkMessage", Type, 0},
-		{"NetlinkMessage.Data", Field, 0},
-		{"NetlinkMessage.Header", Field, 0},
-		{"NetlinkRIB", Func, 0},
-		{"NetlinkRouteAttr", Type, 0},
-		{"NetlinkRouteAttr.Attr", Field, 0},
-		{"NetlinkRouteAttr.Value", Field, 0},
-		{"NetlinkRouteRequest", Type, 0},
-		{"NetlinkRouteRequest.Data", Field, 0},
-		{"NetlinkRouteRequest.Header", Field, 0},
-		{"NewCallback", Func, 0},
-		{"NewCallbackCDecl", Func, 3},
-		{"NewLazyDLL", Func, 0},
-		{"NlAttr", Type, 0},
-		{"NlAttr.Len", Field, 0},
-		{"NlAttr.Type", Field, 0},
-		{"NlMsgerr", Type, 0},
-		{"NlMsgerr.Error", Field, 0},
-		{"NlMsgerr.Msg", Field, 0},
-		{"NlMsghdr", Type, 0},
-		{"NlMsghdr.Flags", Field, 0},
-		{"NlMsghdr.Len", Field, 0},
-		{"NlMsghdr.Pid", Field, 0},
-		{"NlMsghdr.Seq", Field, 0},
-		{"NlMsghdr.Type", Field, 0},
-		{"NsecToFiletime", Func, 0},
-		{"NsecToTimespec", Func, 0},
-		{"NsecToTimeval", Func, 0},
-		{"Ntohs", Func, 0},
-		{"OCRNL", Const, 0},
-		{"OFDEL", Const, 0},
-		{"OFILL", Const, 0},
-		{"OFIOGETBMAP", Const, 1},
-		{"OID_PKIX_KP_SERVER_AUTH", Var, 0},
-		{"OID_SERVER_GATED_CRYPTO", Var, 0},
-		{"OID_SGC_NETSCAPE", Var, 0},
-		{"OLCUC", Const, 0},
-		{"ONLCR", Const, 0},
-		{"ONLRET", Const, 0},
-		{"ONOCR", Const, 0},
-		{"ONOEOT", Const, 1},
-		{"OPEN_ALWAYS", Const, 0},
-		{"OPEN_EXISTING", Const, 0},
-		{"OPOST", Const, 0},
-		{"O_ACCMODE", Const, 0},
-		{"O_ALERT", Const, 0},
-		{"O_ALT_IO", Const, 1},
-		{"O_APPEND", Const, 0},
-		{"O_ASYNC", Const, 0},
-		{"O_CLOEXEC", Const, 0},
-		{"O_CREAT", Const, 0},
-		{"O_DIRECT", Const, 0},
-		{"O_DIRECTORY", Const, 0},
-		{"O_DP_GETRAWENCRYPTED", Const, 16},
-		{"O_DSYNC", Const, 0},
-		{"O_EVTONLY", Const, 0},
-		{"O_EXCL", Const, 0},
-		{"O_EXEC", Const, 0},
-		{"O_EXLOCK", Const, 0},
-		{"O_FSYNC", Const, 0},
-		{"O_LARGEFILE", Const, 0},
-		{"O_NDELAY", Const, 0},
-		{"O_NOATIME", Const, 0},
-		{"O_NOCTTY", Const, 0},
-		{"O_NOFOLLOW", Const, 0},
-		{"O_NONBLOCK", Const, 0},
-		{"O_NOSIGPIPE", Const, 1},
-		{"O_POPUP", Const, 0},
-		{"O_RDONLY", Const, 0},
-		{"O_RDWR", Const, 0},
-		{"O_RSYNC", Const, 0},
-		{"O_SHLOCK", Const, 0},
-		{"O_SYMLINK", Const, 0},
-		{"O_SYNC", Const, 0},
-		{"O_TRUNC", Const, 0},
-		{"O_TTY_INIT", Const, 0},
-		{"O_WRONLY", Const, 0},
-		{"Open", Func, 0},
-		{"OpenCurrentProcessToken", Func, 0},
-		{"OpenProcess", Func, 0},
-		{"OpenProcessToken", Func, 0},
-		{"Openat", Func, 0},
-		{"Overlapped", Type, 0},
-		{"Overlapped.HEvent", Field, 0},
-		{"Overlapped.Internal", Field, 0},
-		{"Overlapped.InternalHigh", Field, 0},
-		{"Overlapped.Offset", Field, 0},
-		{"Overlapped.OffsetHigh", Field, 0},
-		{"PACKET_ADD_MEMBERSHIP", Const, 0},
-		{"PACKET_BROADCAST", Const, 0},
-		{"PACKET_DROP_MEMBERSHIP", Const, 0},
-		{"PACKET_FASTROUTE", Const, 0},
-		{"PACKET_HOST", Const, 0},
-		{"PACKET_LOOPBACK", Const, 0},
-		{"PACKET_MR_ALLMULTI", Const, 0},
-		{"PACKET_MR_MULTICAST", Const, 0},
-		{"PACKET_MR_PROMISC", Const, 0},
-		{"PACKET_MULTICAST", Const, 0},
-		{"PACKET_OTHERHOST", Const, 0},
-		{"PACKET_OUTGOING", Const, 0},
-		{"PACKET_RECV_OUTPUT", Const, 0},
-		{"PACKET_RX_RING", Const, 0},
-		{"PACKET_STATISTICS", Const, 0},
-		{"PAGE_EXECUTE_READ", Const, 0},
-		{"PAGE_EXECUTE_READWRITE", Const, 0},
-		{"PAGE_EXECUTE_WRITECOPY", Const, 0},
-		{"PAGE_READONLY", Const, 0},
-		{"PAGE_READWRITE", Const, 0},
-		{"PAGE_WRITECOPY", Const, 0},
-		{"PARENB", Const, 0},
-		{"PARMRK", Const, 0},
-		{"PARODD", Const, 0},
-		{"PENDIN", Const, 0},
-		{"PFL_HIDDEN", Const, 2},
-		{"PFL_MATCHES_PROTOCOL_ZERO", Const, 2},
-		{"PFL_MULTIPLE_PROTO_ENTRIES", Const, 2},
-		{"PFL_NETWORKDIRECT_PROVIDER", Const, 2},
-		{"PFL_RECOMMENDED_PROTO_ENTRY", Const, 2},
-		{"PF_FLUSH", Const, 1},
-		{"PKCS_7_ASN_ENCODING", Const, 0},
-		{"PMC5_PIPELINE_FLUSH", Const, 1},
-		{"PRIO_PGRP", Const, 2},
-		{"PRIO_PROCESS", Const, 2},
-		{"PRIO_USER", Const, 2},
-		{"PRI_IOFLUSH", Const, 1},
-		{"PROCESS_QUERY_INFORMATION", Const, 0},
-		{"PROCESS_TERMINATE", Const, 2},
-		{"PROT_EXEC", Const, 0},
-		{"PROT_GROWSDOWN", Const, 0},
-		{"PROT_GROWSUP", Const, 0},
-		{"PROT_NONE", Const, 0},
-		{"PROT_READ", Const, 0},
-		{"PROT_WRITE", Const, 0},
-		{"PROV_DH_SCHANNEL", Const, 0},
-		{"PROV_DSS", Const, 0},
-		{"PROV_DSS_DH", Const, 0},
-		{"PROV_EC_ECDSA_FULL", Const, 0},
-		{"PROV_EC_ECDSA_SIG", Const, 0},
-		{"PROV_EC_ECNRA_FULL", Const, 0},
-		{"PROV_EC_ECNRA_SIG", Const, 0},
-		{"PROV_FORTEZZA", Const, 0},
-		{"PROV_INTEL_SEC", Const, 0},
-		{"PROV_MS_EXCHANGE", Const, 0},
-		{"PROV_REPLACE_OWF", Const, 0},
-		{"PROV_RNG", Const, 0},
-		{"PROV_RSA_AES", Const, 0},
-		{"PROV_RSA_FULL", Const, 0},
-		{"PROV_RSA_SCHANNEL", Const, 0},
-		{"PROV_RSA_SIG", Const, 0},
-		{"PROV_SPYRUS_LYNKS", Const, 0},
-		{"PROV_SSL", Const, 0},
-		{"PR_CAPBSET_DROP", Const, 0},
-		{"PR_CAPBSET_READ", Const, 0},
-		{"PR_CLEAR_SECCOMP_FILTER", Const, 0},
-		{"PR_ENDIAN_BIG", Const, 0},
-		{"PR_ENDIAN_LITTLE", Const, 0},
-		{"PR_ENDIAN_PPC_LITTLE", Const, 0},
-		{"PR_FPEMU_NOPRINT", Const, 0},
-		{"PR_FPEMU_SIGFPE", Const, 0},
-		{"PR_FP_EXC_ASYNC", Const, 0},
-		{"PR_FP_EXC_DISABLED", Const, 0},
-		{"PR_FP_EXC_DIV", Const, 0},
-		{"PR_FP_EXC_INV", Const, 0},
-		{"PR_FP_EXC_NONRECOV", Const, 0},
-		{"PR_FP_EXC_OVF", Const, 0},
-		{"PR_FP_EXC_PRECISE", Const, 0},
-		{"PR_FP_EXC_RES", Const, 0},
-		{"PR_FP_EXC_SW_ENABLE", Const, 0},
-		{"PR_FP_EXC_UND", Const, 0},
-		{"PR_GET_DUMPABLE", Const, 0},
-		{"PR_GET_ENDIAN", Const, 0},
-		{"PR_GET_FPEMU", Const, 0},
-		{"PR_GET_FPEXC", Const, 0},
-		{"PR_GET_KEEPCAPS", Const, 0},
-		{"PR_GET_NAME", Const, 0},
-		{"PR_GET_PDEATHSIG", Const, 0},
-		{"PR_GET_SECCOMP", Const, 0},
-		{"PR_GET_SECCOMP_FILTER", Const, 0},
-		{"PR_GET_SECUREBITS", Const, 0},
-		{"PR_GET_TIMERSLACK", Const, 0},
-		{"PR_GET_TIMING", Const, 0},
-		{"PR_GET_TSC", Const, 0},
-		{"PR_GET_UNALIGN", Const, 0},
-		{"PR_MCE_KILL", Const, 0},
-		{"PR_MCE_KILL_CLEAR", Const, 0},
-		{"PR_MCE_KILL_DEFAULT", Const, 0},
-		{"PR_MCE_KILL_EARLY", Const, 0},
-		{"PR_MCE_KILL_GET", Const, 0},
-		{"PR_MCE_KILL_LATE", Const, 0},
-		{"PR_MCE_KILL_SET", Const, 0},
-		{"PR_SECCOMP_FILTER_EVENT", Const, 0},
-		{"PR_SECCOMP_FILTER_SYSCALL", Const, 0},
-		{"PR_SET_DUMPABLE", Const, 0},
-		{"PR_SET_ENDIAN", Const, 0},
-		{"PR_SET_FPEMU", Const, 0},
-		{"PR_SET_FPEXC", Const, 0},
-		{"PR_SET_KEEPCAPS", Const, 0},
-		{"PR_SET_NAME", Const, 0},
-		{"PR_SET_PDEATHSIG", Const, 0},
-		{"PR_SET_PTRACER", Const, 0},
-		{"PR_SET_SECCOMP", Const, 0},
-		{"PR_SET_SECCOMP_FILTER", Const, 0},
-		{"PR_SET_SECUREBITS", Const, 0},
-		{"PR_SET_TIMERSLACK", Const, 0},
-		{"PR_SET_TIMING", Const, 0},
-		{"PR_SET_TSC", Const, 0},
-		{"PR_SET_UNALIGN", Const, 0},
-		{"PR_TASK_PERF_EVENTS_DISABLE", Const, 0},
-		{"PR_TASK_PERF_EVENTS_ENABLE", Const, 0},
-		{"PR_TIMING_STATISTICAL", Const, 0},
-		{"PR_TIMING_TIMESTAMP", Const, 0},
-		{"PR_TSC_ENABLE", Const, 0},
-		{"PR_TSC_SIGSEGV", Const, 0},
-		{"PR_UNALIGN_NOPRINT", Const, 0},
-		{"PR_UNALIGN_SIGBUS", Const, 0},
-		{"PTRACE_ARCH_PRCTL", Const, 0},
-		{"PTRACE_ATTACH", Const, 0},
-		{"PTRACE_CONT", Const, 0},
-		{"PTRACE_DETACH", Const, 0},
-		{"PTRACE_EVENT_CLONE", Const, 0},
-		{"PTRACE_EVENT_EXEC", Const, 0},
-		{"PTRACE_EVENT_EXIT", Const, 0},
-		{"PTRACE_EVENT_FORK", Const, 0},
-		{"PTRACE_EVENT_VFORK", Const, 0},
-		{"PTRACE_EVENT_VFORK_DONE", Const, 0},
-		{"PTRACE_GETCRUNCHREGS", Const, 0},
-		{"PTRACE_GETEVENTMSG", Const, 0},
-		{"PTRACE_GETFPREGS", Const, 0},
-		{"PTRACE_GETFPXREGS", Const, 0},
-		{"PTRACE_GETHBPREGS", Const, 0},
-		{"PTRACE_GETREGS", Const, 0},
-		{"PTRACE_GETREGSET", Const, 0},
-		{"PTRACE_GETSIGINFO", Const, 0},
-		{"PTRACE_GETVFPREGS", Const, 0},
-		{"PTRACE_GETWMMXREGS", Const, 0},
-		{"PTRACE_GET_THREAD_AREA", Const, 0},
-		{"PTRACE_KILL", Const, 0},
-		{"PTRACE_OLDSETOPTIONS", Const, 0},
-		{"PTRACE_O_MASK", Const, 0},
-		{"PTRACE_O_TRACECLONE", Const, 0},
-		{"PTRACE_O_TRACEEXEC", Const, 0},
-		{"PTRACE_O_TRACEEXIT", Const, 0},
-		{"PTRACE_O_TRACEFORK", Const, 0},
-		{"PTRACE_O_TRACESYSGOOD", Const, 0},
-		{"PTRACE_O_TRACEVFORK", Const, 0},
-		{"PTRACE_O_TRACEVFORKDONE", Const, 0},
-		{"PTRACE_PEEKDATA", Const, 0},
-		{"PTRACE_PEEKTEXT", Const, 0},
-		{"PTRACE_PEEKUSR", Const, 0},
-		{"PTRACE_POKEDATA", Const, 0},
-		{"PTRACE_POKETEXT", Const, 0},
-		{"PTRACE_POKEUSR", Const, 0},
-		{"PTRACE_SETCRUNCHREGS", Const, 0},
-		{"PTRACE_SETFPREGS", Const, 0},
-		{"PTRACE_SETFPXREGS", Const, 0},
-		{"PTRACE_SETHBPREGS", Const, 0},
-		{"PTRACE_SETOPTIONS", Const, 0},
-		{"PTRACE_SETREGS", Const, 0},
-		{"PTRACE_SETREGSET", Const, 0},
-		{"PTRACE_SETSIGINFO", Const, 0},
-		{"PTRACE_SETVFPREGS", Const, 0},
-		{"PTRACE_SETWMMXREGS", Const, 0},
-		{"PTRACE_SET_SYSCALL", Const, 0},
-		{"PTRACE_SET_THREAD_AREA", Const, 0},
-		{"PTRACE_SINGLEBLOCK", Const, 0},
-		{"PTRACE_SINGLESTEP", Const, 0},
-		{"PTRACE_SYSCALL", Const, 0},
-		{"PTRACE_SYSEMU", Const, 0},
-		{"PTRACE_SYSEMU_SINGLESTEP", Const, 0},
-		{"PTRACE_TRACEME", Const, 0},
-		{"PT_ATTACH", Const, 0},
-		{"PT_ATTACHEXC", Const, 0},
-		{"PT_CONTINUE", Const, 0},
-		{"PT_DATA_ADDR", Const, 0},
-		{"PT_DENY_ATTACH", Const, 0},
-		{"PT_DETACH", Const, 0},
-		{"PT_FIRSTMACH", Const, 0},
-		{"PT_FORCEQUOTA", Const, 0},
-		{"PT_KILL", Const, 0},
-		{"PT_MASK", Const, 1},
-		{"PT_READ_D", Const, 0},
-		{"PT_READ_I", Const, 0},
-		{"PT_READ_U", Const, 0},
-		{"PT_SIGEXC", Const, 0},
-		{"PT_STEP", Const, 0},
-		{"PT_TEXT_ADDR", Const, 0},
-		{"PT_TEXT_END_ADDR", Const, 0},
-		{"PT_THUPDATE", Const, 0},
-		{"PT_TRACE_ME", Const, 0},
-		{"PT_WRITE_D", Const, 0},
-		{"PT_WRITE_I", Const, 0},
-		{"PT_WRITE_U", Const, 0},
-		{"ParseDirent", Func, 0},
-		{"ParseNetlinkMessage", Func, 0},
-		{"ParseNetlinkRouteAttr", Func, 0},
-		{"ParseRoutingMessage", Func, 0},
-		{"ParseRoutingSockaddr", Func, 0},
-		{"ParseSocketControlMessage", Func, 0},
-		{"ParseUnixCredentials", Func, 0},
-		{"ParseUnixRights", Func, 0},
-		{"PathMax", Const, 0},
-		{"Pathconf", Func, 0},
-		{"Pause", Func, 0},
-		{"Pipe", Func, 0},
-		{"Pipe2", Func, 1},
-		{"PivotRoot", Func, 0},
-		{"Pointer", Type, 11},
-		{"PostQueuedCompletionStatus", Func, 0},
-		{"Pread", Func, 0},
-		{"Proc", Type, 0},
-		{"Proc.Dll", Field, 0},
-		{"Proc.Name", Field, 0},
-		{"ProcAttr", Type, 0},
-		{"ProcAttr.Dir", Field, 0},
-		{"ProcAttr.Env", Field, 0},
-		{"ProcAttr.Files", Field, 0},
-		{"ProcAttr.Sys", Field, 0},
-		{"Process32First", Func, 4},
-		{"Process32Next", Func, 4},
-		{"ProcessEntry32", Type, 4},
-		{"ProcessEntry32.DefaultHeapID", Field, 4},
-		{"ProcessEntry32.ExeFile", Field, 4},
-		{"ProcessEntry32.Flags", Field, 4},
-		{"ProcessEntry32.ModuleID", Field, 4},
-		{"ProcessEntry32.ParentProcessID", Field, 4},
-		{"ProcessEntry32.PriClassBase", Field, 4},
-		{"ProcessEntry32.ProcessID", Field, 4},
-		{"ProcessEntry32.Size", Field, 4},
-		{"ProcessEntry32.Threads", Field, 4},
-		{"ProcessEntry32.Usage", Field, 4},
-		{"ProcessInformation", Type, 0},
-		{"ProcessInformation.Process", Field, 0},
-		{"ProcessInformation.ProcessId", Field, 0},
-		{"ProcessInformation.Thread", Field, 0},
-		{"ProcessInformation.ThreadId", Field, 0},
-		{"Protoent", Type, 0},
-		{"Protoent.Aliases", Field, 0},
-		{"Protoent.Name", Field, 0},
-		{"Protoent.Proto", Field, 0},
-		{"PtraceAttach", Func, 0},
-		{"PtraceCont", Func, 0},
-		{"PtraceDetach", Func, 0},
-		{"PtraceGetEventMsg", Func, 0},
-		{"PtraceGetRegs", Func, 0},
-		{"PtracePeekData", Func, 0},
-		{"PtracePeekText", Func, 0},
-		{"PtracePokeData", Func, 0},
-		{"PtracePokeText", Func, 0},
-		{"PtraceRegs", Type, 0},
-		{"PtraceRegs.Cs", Field, 0},
-		{"PtraceRegs.Ds", Field, 0},
-		{"PtraceRegs.Eax", Field, 0},
-		{"PtraceRegs.Ebp", Field, 0},
-		{"PtraceRegs.Ebx", Field, 0},
-		{"PtraceRegs.Ecx", Field, 0},
-		{"PtraceRegs.Edi", Field, 0},
-		{"PtraceRegs.Edx", Field, 0},
-		{"PtraceRegs.Eflags", Field, 0},
-		{"PtraceRegs.Eip", Field, 0},
-		{"PtraceRegs.Es", Field, 0},
-		{"PtraceRegs.Esi", Field, 0},
-		{"PtraceRegs.Esp", Field, 0},
-		{"PtraceRegs.Fs", Field, 0},
-		{"PtraceRegs.Fs_base", Field, 0},
-		{"PtraceRegs.Gs", Field, 0},
-		{"PtraceRegs.Gs_base", Field, 0},
-		{"PtraceRegs.Orig_eax", Field, 0},
-		{"PtraceRegs.Orig_rax", Field, 0},
-		{"PtraceRegs.R10", Field, 0},
-		{"PtraceRegs.R11", Field, 0},
-		{"PtraceRegs.R12", Field, 0},
-		{"PtraceRegs.R13", Field, 0},
-		{"PtraceRegs.R14", Field, 0},
-		{"PtraceRegs.R15", Field, 0},
-		{"PtraceRegs.R8", Field, 0},
-		{"PtraceRegs.R9", Field, 0},
-		{"PtraceRegs.Rax", Field, 0},
-		{"PtraceRegs.Rbp", Field, 0},
-		{"PtraceRegs.Rbx", Field, 0},
-		{"PtraceRegs.Rcx", Field, 0},
-		{"PtraceRegs.Rdi", Field, 0},
-		{"PtraceRegs.Rdx", Field, 0},
-		{"PtraceRegs.Rip", Field, 0},
-		{"PtraceRegs.Rsi", Field, 0},
-		{"PtraceRegs.Rsp", Field, 0},
-		{"PtraceRegs.Ss", Field, 0},
-		{"PtraceRegs.Uregs", Field, 0},
-		{"PtraceRegs.Xcs", Field, 0},
-		{"PtraceRegs.Xds", Field, 0},
-		{"PtraceRegs.Xes", Field, 0},
-		{"PtraceRegs.Xfs", Field, 0},
-		{"PtraceRegs.Xgs", Field, 0},
-		{"PtraceRegs.Xss", Field, 0},
-		{"PtraceSetOptions", Func, 0},
-		{"PtraceSetRegs", Func, 0},
-		{"PtraceSingleStep", Func, 0},
-		{"PtraceSyscall", Func, 1},
-		{"Pwrite", Func, 0},
-		{"REG_BINARY", Const, 0},
-		{"REG_DWORD", Const, 0},
-		{"REG_DWORD_BIG_ENDIAN", Const, 0},
-		{"REG_DWORD_LITTLE_ENDIAN", Const, 0},
-		{"REG_EXPAND_SZ", Const, 0},
-		{"REG_FULL_RESOURCE_DESCRIPTOR", Const, 0},
-		{"REG_LINK", Const, 0},
-		{"REG_MULTI_SZ", Const, 0},
-		{"REG_NONE", Const, 0},
-		{"REG_QWORD", Const, 0},
-		{"REG_QWORD_LITTLE_ENDIAN", Const, 0},
-		{"REG_RESOURCE_LIST", Const, 0},
-		{"REG_RESOURCE_REQUIREMENTS_LIST", Const, 0},
-		{"REG_SZ", Const, 0},
-		{"RLIMIT_AS", Const, 0},
-		{"RLIMIT_CORE", Const, 0},
-		{"RLIMIT_CPU", Const, 0},
-		{"RLIMIT_CPU_USAGE_MONITOR", Const, 16},
-		{"RLIMIT_DATA", Const, 0},
-		{"RLIMIT_FSIZE", Const, 0},
-		{"RLIMIT_NOFILE", Const, 0},
-		{"RLIMIT_STACK", Const, 0},
-		{"RLIM_INFINITY", Const, 0},
-		{"RTAX_ADVMSS", Const, 0},
-		{"RTAX_AUTHOR", Const, 0},
-		{"RTAX_BRD", Const, 0},
-		{"RTAX_CWND", Const, 0},
-		{"RTAX_DST", Const, 0},
-		{"RTAX_FEATURES", Const, 0},
-		{"RTAX_FEATURE_ALLFRAG", Const, 0},
-		{"RTAX_FEATURE_ECN", Const, 0},
-		{"RTAX_FEATURE_SACK", Const, 0},
-		{"RTAX_FEATURE_TIMESTAMP", Const, 0},
-		{"RTAX_GATEWAY", Const, 0},
-		{"RTAX_GENMASK", Const, 0},
-		{"RTAX_HOPLIMIT", Const, 0},
-		{"RTAX_IFA", Const, 0},
-		{"RTAX_IFP", Const, 0},
-		{"RTAX_INITCWND", Const, 0},
-		{"RTAX_INITRWND", Const, 0},
-		{"RTAX_LABEL", Const, 1},
-		{"RTAX_LOCK", Const, 0},
-		{"RTAX_MAX", Const, 0},
-		{"RTAX_MTU", Const, 0},
-		{"RTAX_NETMASK", Const, 0},
-		{"RTAX_REORDERING", Const, 0},
-		{"RTAX_RTO_MIN", Const, 0},
-		{"RTAX_RTT", Const, 0},
-		{"RTAX_RTTVAR", Const, 0},
-		{"RTAX_SRC", Const, 1},
-		{"RTAX_SRCMASK", Const, 1},
-		{"RTAX_SSTHRESH", Const, 0},
-		{"RTAX_TAG", Const, 1},
-		{"RTAX_UNSPEC", Const, 0},
-		{"RTAX_WINDOW", Const, 0},
-		{"RTA_ALIGNTO", Const, 0},
-		{"RTA_AUTHOR", Const, 0},
-		{"RTA_BRD", Const, 0},
-		{"RTA_CACHEINFO", Const, 0},
-		{"RTA_DST", Const, 0},
-		{"RTA_FLOW", Const, 0},
-		{"RTA_GATEWAY", Const, 0},
-		{"RTA_GENMASK", Const, 0},
-		{"RTA_IFA", Const, 0},
-		{"RTA_IFP", Const, 0},
-		{"RTA_IIF", Const, 0},
-		{"RTA_LABEL", Const, 1},
-		{"RTA_MAX", Const, 0},
-		{"RTA_METRICS", Const, 0},
-		{"RTA_MULTIPATH", Const, 0},
-		{"RTA_NETMASK", Const, 0},
-		{"RTA_OIF", Const, 0},
-		{"RTA_PREFSRC", Const, 0},
-		{"RTA_PRIORITY", Const, 0},
-		{"RTA_SRC", Const, 0},
-		{"RTA_SRCMASK", Const, 1},
-		{"RTA_TABLE", Const, 0},
-		{"RTA_TAG", Const, 1},
-		{"RTA_UNSPEC", Const, 0},
-		{"RTCF_DIRECTSRC", Const, 0},
-		{"RTCF_DOREDIRECT", Const, 0},
-		{"RTCF_LOG", Const, 0},
-		{"RTCF_MASQ", Const, 0},
-		{"RTCF_NAT", Const, 0},
-		{"RTCF_VALVE", Const, 0},
-		{"RTF_ADDRCLASSMASK", Const, 0},
-		{"RTF_ADDRCONF", Const, 0},
-		{"RTF_ALLONLINK", Const, 0},
-		{"RTF_ANNOUNCE", Const, 1},
-		{"RTF_BLACKHOLE", Const, 0},
-		{"RTF_BROADCAST", Const, 0},
-		{"RTF_CACHE", Const, 0},
-		{"RTF_CLONED", Const, 1},
-		{"RTF_CLONING", Const, 0},
-		{"RTF_CONDEMNED", Const, 0},
-		{"RTF_DEFAULT", Const, 0},
-		{"RTF_DELCLONE", Const, 0},
-		{"RTF_DONE", Const, 0},
-		{"RTF_DYNAMIC", Const, 0},
-		{"RTF_FLOW", Const, 0},
-		{"RTF_FMASK", Const, 0},
-		{"RTF_GATEWAY", Const, 0},
-		{"RTF_GWFLAG_COMPAT", Const, 3},
-		{"RTF_HOST", Const, 0},
-		{"RTF_IFREF", Const, 0},
-		{"RTF_IFSCOPE", Const, 0},
-		{"RTF_INTERFACE", Const, 0},
-		{"RTF_IRTT", Const, 0},
-		{"RTF_LINKRT", Const, 0},
-		{"RTF_LLDATA", Const, 0},
-		{"RTF_LLINFO", Const, 0},
-		{"RTF_LOCAL", Const, 0},
-		{"RTF_MASK", Const, 1},
-		{"RTF_MODIFIED", Const, 0},
-		{"RTF_MPATH", Const, 1},
-		{"RTF_MPLS", Const, 1},
-		{"RTF_MSS", Const, 0},
-		{"RTF_MTU", Const, 0},
-		{"RTF_MULTICAST", Const, 0},
-		{"RTF_NAT", Const, 0},
-		{"RTF_NOFORWARD", Const, 0},
-		{"RTF_NONEXTHOP", Const, 0},
-		{"RTF_NOPMTUDISC", Const, 0},
-		{"RTF_PERMANENT_ARP", Const, 1},
-		{"RTF_PINNED", Const, 0},
-		{"RTF_POLICY", Const, 0},
-		{"RTF_PRCLONING", Const, 0},
-		{"RTF_PROTO1", Const, 0},
-		{"RTF_PROTO2", Const, 0},
-		{"RTF_PROTO3", Const, 0},
-		{"RTF_PROXY", Const, 16},
-		{"RTF_REINSTATE", Const, 0},
-		{"RTF_REJECT", Const, 0},
-		{"RTF_RNH_LOCKED", Const, 0},
-		{"RTF_ROUTER", Const, 16},
-		{"RTF_SOURCE", Const, 1},
-		{"RTF_SRC", Const, 1},
-		{"RTF_STATIC", Const, 0},
-		{"RTF_STICKY", Const, 0},
-		{"RTF_THROW", Const, 0},
-		{"RTF_TUNNEL", Const, 1},
-		{"RTF_UP", Const, 0},
-		{"RTF_USETRAILERS", Const, 1},
-		{"RTF_WASCLONED", Const, 0},
-		{"RTF_WINDOW", Const, 0},
-		{"RTF_XRESOLVE", Const, 0},
-		{"RTM_ADD", Const, 0},
-		{"RTM_BASE", Const, 0},
-		{"RTM_CHANGE", Const, 0},
-		{"RTM_CHGADDR", Const, 1},
-		{"RTM_DELACTION", Const, 0},
-		{"RTM_DELADDR", Const, 0},
-		{"RTM_DELADDRLABEL", Const, 0},
-		{"RTM_DELETE", Const, 0},
-		{"RTM_DELLINK", Const, 0},
-		{"RTM_DELMADDR", Const, 0},
-		{"RTM_DELNEIGH", Const, 0},
-		{"RTM_DELQDISC", Const, 0},
-		{"RTM_DELROUTE", Const, 0},
-		{"RTM_DELRULE", Const, 0},
-		{"RTM_DELTCLASS", Const, 0},
-		{"RTM_DELTFILTER", Const, 0},
-		{"RTM_DESYNC", Const, 1},
-		{"RTM_F_CLONED", Const, 0},
-		{"RTM_F_EQUALIZE", Const, 0},
-		{"RTM_F_NOTIFY", Const, 0},
-		{"RTM_F_PREFIX", Const, 0},
-		{"RTM_GET", Const, 0},
-		{"RTM_GET2", Const, 0},
-		{"RTM_GETACTION", Const, 0},
-		{"RTM_GETADDR", Const, 0},
-		{"RTM_GETADDRLABEL", Const, 0},
-		{"RTM_GETANYCAST", Const, 0},
-		{"RTM_GETDCB", Const, 0},
-		{"RTM_GETLINK", Const, 0},
-		{"RTM_GETMULTICAST", Const, 0},
-		{"RTM_GETNEIGH", Const, 0},
-		{"RTM_GETNEIGHTBL", Const, 0},
-		{"RTM_GETQDISC", Const, 0},
-		{"RTM_GETROUTE", Const, 0},
-		{"RTM_GETRULE", Const, 0},
-		{"RTM_GETTCLASS", Const, 0},
-		{"RTM_GETTFILTER", Const, 0},
-		{"RTM_IEEE80211", Const, 0},
-		{"RTM_IFANNOUNCE", Const, 0},
-		{"RTM_IFINFO", Const, 0},
-		{"RTM_IFINFO2", Const, 0},
-		{"RTM_LLINFO_UPD", Const, 1},
-		{"RTM_LOCK", Const, 0},
-		{"RTM_LOSING", Const, 0},
-		{"RTM_MAX", Const, 0},
-		{"RTM_MAXSIZE", Const, 1},
-		{"RTM_MISS", Const, 0},
-		{"RTM_NEWACTION", Const, 0},
-		{"RTM_NEWADDR", Const, 0},
-		{"RTM_NEWADDRLABEL", Const, 0},
-		{"RTM_NEWLINK", Const, 0},
-		{"RTM_NEWMADDR", Const, 0},
-		{"RTM_NEWMADDR2", Const, 0},
-		{"RTM_NEWNDUSEROPT", Const, 0},
-		{"RTM_NEWNEIGH", Const, 0},
-		{"RTM_NEWNEIGHTBL", Const, 0},
-		{"RTM_NEWPREFIX", Const, 0},
-		{"RTM_NEWQDISC", Const, 0},
-		{"RTM_NEWROUTE", Const, 0},
-		{"RTM_NEWRULE", Const, 0},
-		{"RTM_NEWTCLASS", Const, 0},
-		{"RTM_NEWTFILTER", Const, 0},
-		{"RTM_NR_FAMILIES", Const, 0},
-		{"RTM_NR_MSGTYPES", Const, 0},
-		{"RTM_OIFINFO", Const, 1},
-		{"RTM_OLDADD", Const, 0},
-		{"RTM_OLDDEL", Const, 0},
-		{"RTM_OOIFINFO", Const, 1},
-		{"RTM_REDIRECT", Const, 0},
-		{"RTM_RESOLVE", Const, 0},
-		{"RTM_RTTUNIT", Const, 0},
-		{"RTM_SETDCB", Const, 0},
-		{"RTM_SETGATE", Const, 1},
-		{"RTM_SETLINK", Const, 0},
-		{"RTM_SETNEIGHTBL", Const, 0},
-		{"RTM_VERSION", Const, 0},
-		{"RTNH_ALIGNTO", Const, 0},
-		{"RTNH_F_DEAD", Const, 0},
-		{"RTNH_F_ONLINK", Const, 0},
-		{"RTNH_F_PERVASIVE", Const, 0},
-		{"RTNLGRP_IPV4_IFADDR", Const, 1},
-		{"RTNLGRP_IPV4_MROUTE", Const, 1},
-		{"RTNLGRP_IPV4_ROUTE", Const, 1},
-		{"RTNLGRP_IPV4_RULE", Const, 1},
-		{"RTNLGRP_IPV6_IFADDR", Const, 1},
-		{"RTNLGRP_IPV6_IFINFO", Const, 1},
-		{"RTNLGRP_IPV6_MROUTE", Const, 1},
-		{"RTNLGRP_IPV6_PREFIX", Const, 1},
-		{"RTNLGRP_IPV6_ROUTE", Const, 1},
-		{"RTNLGRP_IPV6_RULE", Const, 1},
-		{"RTNLGRP_LINK", Const, 1},
-		{"RTNLGRP_ND_USEROPT", Const, 1},
-		{"RTNLGRP_NEIGH", Const, 1},
-		{"RTNLGRP_NONE", Const, 1},
-		{"RTNLGRP_NOTIFY", Const, 1},
-		{"RTNLGRP_TC", Const, 1},
-		{"RTN_ANYCAST", Const, 0},
-		{"RTN_BLACKHOLE", Const, 0},
-		{"RTN_BROADCAST", Const, 0},
-		{"RTN_LOCAL", Const, 0},
-		{"RTN_MAX", Const, 0},
-		{"RTN_MULTICAST", Const, 0},
-		{"RTN_NAT", Const, 0},
-		{"RTN_PROHIBIT", Const, 0},
-		{"RTN_THROW", Const, 0},
-		{"RTN_UNICAST", Const, 0},
-		{"RTN_UNREACHABLE", Const, 0},
-		{"RTN_UNSPEC", Const, 0},
-		{"RTN_XRESOLVE", Const, 0},
-		{"RTPROT_BIRD", Const, 0},
-		{"RTPROT_BOOT", Const, 0},
-		{"RTPROT_DHCP", Const, 0},
-		{"RTPROT_DNROUTED", Const, 0},
-		{"RTPROT_GATED", Const, 0},
-		{"RTPROT_KERNEL", Const, 0},
-		{"RTPROT_MRT", Const, 0},
-		{"RTPROT_NTK", Const, 0},
-		{"RTPROT_RA", Const, 0},
-		{"RTPROT_REDIRECT", Const, 0},
-		{"RTPROT_STATIC", Const, 0},
-		{"RTPROT_UNSPEC", Const, 0},
-		{"RTPROT_XORP", Const, 0},
-		{"RTPROT_ZEBRA", Const, 0},
-		{"RTV_EXPIRE", Const, 0},
-		{"RTV_HOPCOUNT", Const, 0},
-		{"RTV_MTU", Const, 0},
-		{"RTV_RPIPE", Const, 0},
-		{"RTV_RTT", Const, 0},
-		{"RTV_RTTVAR", Const, 0},
-		{"RTV_SPIPE", Const, 0},
-		{"RTV_SSTHRESH", Const, 0},
-		{"RTV_WEIGHT", Const, 0},
-		{"RT_CACHING_CONTEXT", Const, 1},
-		{"RT_CLASS_DEFAULT", Const, 0},
-		{"RT_CLASS_LOCAL", Const, 0},
-		{"RT_CLASS_MAIN", Const, 0},
-		{"RT_CLASS_MAX", Const, 0},
-		{"RT_CLASS_UNSPEC", Const, 0},
-		{"RT_DEFAULT_FIB", Const, 1},
-		{"RT_NORTREF", Const, 1},
-		{"RT_SCOPE_HOST", Const, 0},
-		{"RT_SCOPE_LINK", Const, 0},
-		{"RT_SCOPE_NOWHERE", Const, 0},
-		{"RT_SCOPE_SITE", Const, 0},
-		{"RT_SCOPE_UNIVERSE", Const, 0},
-		{"RT_TABLEID_MAX", Const, 1},
-		{"RT_TABLE_COMPAT", Const, 0},
-		{"RT_TABLE_DEFAULT", Const, 0},
-		{"RT_TABLE_LOCAL", Const, 0},
-		{"RT_TABLE_MAIN", Const, 0},
-		{"RT_TABLE_MAX", Const, 0},
-		{"RT_TABLE_UNSPEC", Const, 0},
-		{"RUSAGE_CHILDREN", Const, 0},
-		{"RUSAGE_SELF", Const, 0},
-		{"RUSAGE_THREAD", Const, 0},
-		{"Radvisory_t", Type, 0},
-		{"Radvisory_t.Count", Field, 0},
-		{"Radvisory_t.Offset", Field, 0},
-		{"Radvisory_t.Pad_cgo_0", Field, 0},
-		{"RawConn", Type, 9},
-		{"RawSockaddr", Type, 0},
-		{"RawSockaddr.Data", Field, 0},
-		{"RawSockaddr.Family", Field, 0},
-		{"RawSockaddr.Len", Field, 0},
-		{"RawSockaddrAny", Type, 0},
-		{"RawSockaddrAny.Addr", Field, 0},
-		{"RawSockaddrAny.Pad", Field, 0},
-		{"RawSockaddrDatalink", Type, 0},
-		{"RawSockaddrDatalink.Alen", Field, 0},
-		{"RawSockaddrDatalink.Data", Field, 0},
-		{"RawSockaddrDatalink.Family", Field, 0},
-		{"RawSockaddrDatalink.Index", Field, 0},
-		{"RawSockaddrDatalink.Len", Field, 0},
-		{"RawSockaddrDatalink.Nlen", Field, 0},
-		{"RawSockaddrDatalink.Pad_cgo_0", Field, 2},
-		{"RawSockaddrDatalink.Slen", Field, 0},
-		{"RawSockaddrDatalink.Type", Field, 0},
-		{"RawSockaddrInet4", Type, 0},
-		{"RawSockaddrInet4.Addr", Field, 0},
-		{"RawSockaddrInet4.Family", Field, 0},
-		{"RawSockaddrInet4.Len", Field, 0},
-		{"RawSockaddrInet4.Port", Field, 0},
-		{"RawSockaddrInet4.Zero", Field, 0},
-		{"RawSockaddrInet6", Type, 0},
-		{"RawSockaddrInet6.Addr", Field, 0},
-		{"RawSockaddrInet6.Family", Field, 0},
-		{"RawSockaddrInet6.Flowinfo", Field, 0},
-		{"RawSockaddrInet6.Len", Field, 0},
-		{"RawSockaddrInet6.Port", Field, 0},
-		{"RawSockaddrInet6.Scope_id", Field, 0},
-		{"RawSockaddrLinklayer", Type, 0},
-		{"RawSockaddrLinklayer.Addr", Field, 0},
-		{"RawSockaddrLinklayer.Family", Field, 0},
-		{"RawSockaddrLinklayer.Halen", Field, 0},
-		{"RawSockaddrLinklayer.Hatype", Field, 0},
-		{"RawSockaddrLinklayer.Ifindex", Field, 0},
-		{"RawSockaddrLinklayer.Pkttype", Field, 0},
-		{"RawSockaddrLinklayer.Protocol", Field, 0},
-		{"RawSockaddrNetlink", Type, 0},
-		{"RawSockaddrNetlink.Family", Field, 0},
-		{"RawSockaddrNetlink.Groups", Field, 0},
-		{"RawSockaddrNetlink.Pad", Field, 0},
-		{"RawSockaddrNetlink.Pid", Field, 0},
-		{"RawSockaddrUnix", Type, 0},
-		{"RawSockaddrUnix.Family", Field, 0},
-		{"RawSockaddrUnix.Len", Field, 0},
-		{"RawSockaddrUnix.Pad_cgo_0", Field, 2},
-		{"RawSockaddrUnix.Path", Field, 0},
-		{"RawSyscall", Func, 0},
-		{"RawSyscall6", Func, 0},
-		{"Read", Func, 0},
-		{"ReadConsole", Func, 1},
-		{"ReadDirectoryChanges", Func, 0},
-		{"ReadDirent", Func, 0},
-		{"ReadFile", Func, 0},
-		{"Readlink", Func, 0},
-		{"Reboot", Func, 0},
-		{"Recvfrom", Func, 0},
-		{"Recvmsg", Func, 0},
-		{"RegCloseKey", Func, 0},
-		{"RegEnumKeyEx", Func, 0},
-		{"RegOpenKeyEx", Func, 0},
-		{"RegQueryInfoKey", Func, 0},
-		{"RegQueryValueEx", Func, 0},
-		{"RemoveDirectory", Func, 0},
-		{"Removexattr", Func, 1},
-		{"Rename", Func, 0},
-		{"Renameat", Func, 0},
-		{"Revoke", Func, 0},
-		{"Rlimit", Type, 0},
-		{"Rlimit.Cur", Field, 0},
-		{"Rlimit.Max", Field, 0},
-		{"Rmdir", Func, 0},
-		{"RouteMessage", Type, 0},
-		{"RouteMessage.Data", Field, 0},
-		{"RouteMessage.Header", Field, 0},
-		{"RouteRIB", Func, 0},
-		{"RoutingMessage", Type, 0},
-		{"RtAttr", Type, 0},
-		{"RtAttr.Len", Field, 0},
-		{"RtAttr.Type", Field, 0},
-		{"RtGenmsg", Type, 0},
-		{"RtGenmsg.Family", Field, 0},
-		{"RtMetrics", Type, 0},
-		{"RtMetrics.Expire", Field, 0},
-		{"RtMetrics.Filler", Field, 0},
-		{"RtMetrics.Hopcount", Field, 0},
-		{"RtMetrics.Locks", Field, 0},
-		{"RtMetrics.Mtu", Field, 0},
-		{"RtMetrics.Pad", Field, 3},
-		{"RtMetrics.Pksent", Field, 0},
-		{"RtMetrics.Recvpipe", Field, 0},
-		{"RtMetrics.Refcnt", Field, 2},
-		{"RtMetrics.Rtt", Field, 0},
-		{"RtMetrics.Rttvar", Field, 0},
-		{"RtMetrics.Sendpipe", Field, 0},
-		{"RtMetrics.Ssthresh", Field, 0},
-		{"RtMetrics.Weight", Field, 0},
-		{"RtMsg", Type, 0},
-		{"RtMsg.Dst_len", Field, 0},
-		{"RtMsg.Family", Field, 0},
-		{"RtMsg.Flags", Field, 0},
-		{"RtMsg.Protocol", Field, 0},
-		{"RtMsg.Scope", Field, 0},
-		{"RtMsg.Src_len", Field, 0},
-		{"RtMsg.Table", Field, 0},
-		{"RtMsg.Tos", Field, 0},
-		{"RtMsg.Type", Field, 0},
-		{"RtMsghdr", Type, 0},
-		{"RtMsghdr.Addrs", Field, 0},
-		{"RtMsghdr.Errno", Field, 0},
-		{"RtMsghdr.Flags", Field, 0},
-		{"RtMsghdr.Fmask", Field, 0},
-		{"RtMsghdr.Hdrlen", Field, 2},
-		{"RtMsghdr.Index", Field, 0},
-		{"RtMsghdr.Inits", Field, 0},
-		{"RtMsghdr.Mpls", Field, 2},
-		{"RtMsghdr.Msglen", Field, 0},
-		{"RtMsghdr.Pad_cgo_0", Field, 0},
-		{"RtMsghdr.Pad_cgo_1", Field, 2},
-		{"RtMsghdr.Pid", Field, 0},
-		{"RtMsghdr.Priority", Field, 2},
-		{"RtMsghdr.Rmx", Field, 0},
-		{"RtMsghdr.Seq", Field, 0},
-		{"RtMsghdr.Tableid", Field, 2},
-		{"RtMsghdr.Type", Field, 0},
-		{"RtMsghdr.Use", Field, 0},
-		{"RtMsghdr.Version", Field, 0},
-		{"RtNexthop", Type, 0},
-		{"RtNexthop.Flags", Field, 0},
-		{"RtNexthop.Hops", Field, 0},
-		{"RtNexthop.Ifindex", Field, 0},
-		{"RtNexthop.Len", Field, 0},
-		{"Rusage", Type, 0},
-		{"Rusage.CreationTime", Field, 0},
-		{"Rusage.ExitTime", Field, 0},
-		{"Rusage.Idrss", Field, 0},
-		{"Rusage.Inblock", Field, 0},
-		{"Rusage.Isrss", Field, 0},
-		{"Rusage.Ixrss", Field, 0},
-		{"Rusage.KernelTime", Field, 0},
-		{"Rusage.Majflt", Field, 0},
-		{"Rusage.Maxrss", Field, 0},
-		{"Rusage.Minflt", Field, 0},
-		{"Rusage.Msgrcv", Field, 0},
-		{"Rusage.Msgsnd", Field, 0},
-		{"Rusage.Nivcsw", Field, 0},
-		{"Rusage.Nsignals", Field, 0},
-		{"Rusage.Nswap", Field, 0},
-		{"Rusage.Nvcsw", Field, 0},
-		{"Rusage.Oublock", Field, 0},
-		{"Rusage.Stime", Field, 0},
-		{"Rusage.UserTime", Field, 0},
-		{"Rusage.Utime", Field, 0},
-		{"SCM_BINTIME", Const, 0},
-		{"SCM_CREDENTIALS", Const, 0},
-		{"SCM_CREDS", Const, 0},
-		{"SCM_RIGHTS", Const, 0},
-		{"SCM_TIMESTAMP", Const, 0},
-		{"SCM_TIMESTAMPING", Const, 0},
-		{"SCM_TIMESTAMPNS", Const, 0},
-		{"SCM_TIMESTAMP_MONOTONIC", Const, 0},
-		{"SHUT_RD", Const, 0},
-		{"SHUT_RDWR", Const, 0},
-		{"SHUT_WR", Const, 0},
-		{"SID", Type, 0},
-		{"SIDAndAttributes", Type, 0},
-		{"SIDAndAttributes.Attributes", Field, 0},
-		{"SIDAndAttributes.Sid", Field, 0},
-		{"SIGABRT", Const, 0},
-		{"SIGALRM", Const, 0},
-		{"SIGBUS", Const, 0},
-		{"SIGCHLD", Const, 0},
-		{"SIGCLD", Const, 0},
-		{"SIGCONT", Const, 0},
-		{"SIGEMT", Const, 0},
-		{"SIGFPE", Const, 0},
-		{"SIGHUP", Const, 0},
-		{"SIGILL", Const, 0},
-		{"SIGINFO", Const, 0},
-		{"SIGINT", Const, 0},
-		{"SIGIO", Const, 0},
-		{"SIGIOT", Const, 0},
-		{"SIGKILL", Const, 0},
-		{"SIGLIBRT", Const, 1},
-		{"SIGLWP", Const, 0},
-		{"SIGPIPE", Const, 0},
-		{"SIGPOLL", Const, 0},
-		{"SIGPROF", Const, 0},
-		{"SIGPWR", Const, 0},
-		{"SIGQUIT", Const, 0},
-		{"SIGSEGV", Const, 0},
-		{"SIGSTKFLT", Const, 0},
-		{"SIGSTOP", Const, 0},
-		{"SIGSYS", Const, 0},
-		{"SIGTERM", Const, 0},
-		{"SIGTHR", Const, 0},
-		{"SIGTRAP", Const, 0},
-		{"SIGTSTP", Const, 0},
-		{"SIGTTIN", Const, 0},
-		{"SIGTTOU", Const, 0},
-		{"SIGUNUSED", Const, 0},
-		{"SIGURG", Const, 0},
-		{"SIGUSR1", Const, 0},
-		{"SIGUSR2", Const, 0},
-		{"SIGVTALRM", Const, 0},
-		{"SIGWINCH", Const, 0},
-		{"SIGXCPU", Const, 0},
-		{"SIGXFSZ", Const, 0},
-		{"SIOCADDDLCI", Const, 0},
-		{"SIOCADDMULTI", Const, 0},
-		{"SIOCADDRT", Const, 0},
-		{"SIOCAIFADDR", Const, 0},
-		{"SIOCAIFGROUP", Const, 0},
-		{"SIOCALIFADDR", Const, 0},
-		{"SIOCARPIPLL", Const, 0},
-		{"SIOCATMARK", Const, 0},
-		{"SIOCAUTOADDR", Const, 0},
-		{"SIOCAUTONETMASK", Const, 0},
-		{"SIOCBRDGADD", Const, 1},
-		{"SIOCBRDGADDS", Const, 1},
-		{"SIOCBRDGARL", Const, 1},
-		{"SIOCBRDGDADDR", Const, 1},
-		{"SIOCBRDGDEL", Const, 1},
-		{"SIOCBRDGDELS", Const, 1},
-		{"SIOCBRDGFLUSH", Const, 1},
-		{"SIOCBRDGFRL", Const, 1},
-		{"SIOCBRDGGCACHE", Const, 1},
-		{"SIOCBRDGGFD", Const, 1},
-		{"SIOCBRDGGHT", Const, 1},
-		{"SIOCBRDGGIFFLGS", Const, 1},
-		{"SIOCBRDGGMA", Const, 1},
-		{"SIOCBRDGGPARAM", Const, 1},
-		{"SIOCBRDGGPRI", Const, 1},
-		{"SIOCBRDGGRL", Const, 1},
-		{"SIOCBRDGGSIFS", Const, 1},
-		{"SIOCBRDGGTO", Const, 1},
-		{"SIOCBRDGIFS", Const, 1},
-		{"SIOCBRDGRTS", Const, 1},
-		{"SIOCBRDGSADDR", Const, 1},
-		{"SIOCBRDGSCACHE", Const, 1},
-		{"SIOCBRDGSFD", Const, 1},
-		{"SIOCBRDGSHT", Const, 1},
-		{"SIOCBRDGSIFCOST", Const, 1},
-		{"SIOCBRDGSIFFLGS", Const, 1},
-		{"SIOCBRDGSIFPRIO", Const, 1},
-		{"SIOCBRDGSMA", Const, 1},
-		{"SIOCBRDGSPRI", Const, 1},
-		{"SIOCBRDGSPROTO", Const, 1},
-		{"SIOCBRDGSTO", Const, 1},
-		{"SIOCBRDGSTXHC", Const, 1},
-		{"SIOCDARP", Const, 0},
-		{"SIOCDELDLCI", Const, 0},
-		{"SIOCDELMULTI", Const, 0},
-		{"SIOCDELRT", Const, 0},
-		{"SIOCDEVPRIVATE", Const, 0},
-		{"SIOCDIFADDR", Const, 0},
-		{"SIOCDIFGROUP", Const, 0},
-		{"SIOCDIFPHYADDR", Const, 0},
-		{"SIOCDLIFADDR", Const, 0},
-		{"SIOCDRARP", Const, 0},
-		{"SIOCGARP", Const, 0},
-		{"SIOCGDRVSPEC", Const, 0},
-		{"SIOCGETKALIVE", Const, 1},
-		{"SIOCGETLABEL", Const, 1},
-		{"SIOCGETPFLOW", Const, 1},
-		{"SIOCGETPFSYNC", Const, 1},
-		{"SIOCGETSGCNT", Const, 0},
-		{"SIOCGETVIFCNT", Const, 0},
-		{"SIOCGETVLAN", Const, 0},
-		{"SIOCGHIWAT", Const, 0},
-		{"SIOCGIFADDR", Const, 0},
-		{"SIOCGIFADDRPREF", Const, 1},
-		{"SIOCGIFALIAS", Const, 1},
-		{"SIOCGIFALTMTU", Const, 0},
-		{"SIOCGIFASYNCMAP", Const, 0},
-		{"SIOCGIFBOND", Const, 0},
-		{"SIOCGIFBR", Const, 0},
-		{"SIOCGIFBRDADDR", Const, 0},
-		{"SIOCGIFCAP", Const, 0},
-		{"SIOCGIFCONF", Const, 0},
-		{"SIOCGIFCOUNT", Const, 0},
-		{"SIOCGIFDATA", Const, 1},
-		{"SIOCGIFDESCR", Const, 0},
-		{"SIOCGIFDEVMTU", Const, 0},
-		{"SIOCGIFDLT", Const, 1},
-		{"SIOCGIFDSTADDR", Const, 0},
-		{"SIOCGIFENCAP", Const, 0},
-		{"SIOCGIFFIB", Const, 1},
-		{"SIOCGIFFLAGS", Const, 0},
-		{"SIOCGIFGATTR", Const, 1},
-		{"SIOCGIFGENERIC", Const, 0},
-		{"SIOCGIFGMEMB", Const, 0},
-		{"SIOCGIFGROUP", Const, 0},
-		{"SIOCGIFHARDMTU", Const, 3},
-		{"SIOCGIFHWADDR", Const, 0},
-		{"SIOCGIFINDEX", Const, 0},
-		{"SIOCGIFKPI", Const, 0},
-		{"SIOCGIFMAC", Const, 0},
-		{"SIOCGIFMAP", Const, 0},
-		{"SIOCGIFMEDIA", Const, 0},
-		{"SIOCGIFMEM", Const, 0},
-		{"SIOCGIFMETRIC", Const, 0},
-		{"SIOCGIFMTU", Const, 0},
-		{"SIOCGIFNAME", Const, 0},
-		{"SIOCGIFNETMASK", Const, 0},
-		{"SIOCGIFPDSTADDR", Const, 0},
-		{"SIOCGIFPFLAGS", Const, 0},
-		{"SIOCGIFPHYS", Const, 0},
-		{"SIOCGIFPRIORITY", Const, 1},
-		{"SIOCGIFPSRCADDR", Const, 0},
-		{"SIOCGIFRDOMAIN", Const, 1},
-		{"SIOCGIFRTLABEL", Const, 1},
-		{"SIOCGIFSLAVE", Const, 0},
-		{"SIOCGIFSTATUS", Const, 0},
-		{"SIOCGIFTIMESLOT", Const, 1},
-		{"SIOCGIFTXQLEN", Const, 0},
-		{"SIOCGIFVLAN", Const, 0},
-		{"SIOCGIFWAKEFLAGS", Const, 0},
-		{"SIOCGIFXFLAGS", Const, 1},
-		{"SIOCGLIFADDR", Const, 0},
-		{"SIOCGLIFPHYADDR", Const, 0},
-		{"SIOCGLIFPHYRTABLE", Const, 1},
-		{"SIOCGLIFPHYTTL", Const, 3},
-		{"SIOCGLINKSTR", Const, 1},
-		{"SIOCGLOWAT", Const, 0},
-		{"SIOCGPGRP", Const, 0},
-		{"SIOCGPRIVATE_0", Const, 0},
-		{"SIOCGPRIVATE_1", Const, 0},
-		{"SIOCGRARP", Const, 0},
-		{"SIOCGSPPPPARAMS", Const, 3},
-		{"SIOCGSTAMP", Const, 0},
-		{"SIOCGSTAMPNS", Const, 0},
-		{"SIOCGVH", Const, 1},
-		{"SIOCGVNETID", Const, 3},
-		{"SIOCIFCREATE", Const, 0},
-		{"SIOCIFCREATE2", Const, 0},
-		{"SIOCIFDESTROY", Const, 0},
-		{"SIOCIFGCLONERS", Const, 0},
-		{"SIOCINITIFADDR", Const, 1},
-		{"SIOCPROTOPRIVATE", Const, 0},
-		{"SIOCRSLVMULTI", Const, 0},
-		{"SIOCRTMSG", Const, 0},
-		{"SIOCSARP", Const, 0},
-		{"SIOCSDRVSPEC", Const, 0},
-		{"SIOCSETKALIVE", Const, 1},
-		{"SIOCSETLABEL", Const, 1},
-		{"SIOCSETPFLOW", Const, 1},
-		{"SIOCSETPFSYNC", Const, 1},
-		{"SIOCSETVLAN", Const, 0},
-		{"SIOCSHIWAT", Const, 0},
-		{"SIOCSIFADDR", Const, 0},
-		{"SIOCSIFADDRPREF", Const, 1},
-		{"SIOCSIFALTMTU", Const, 0},
-		{"SIOCSIFASYNCMAP", Const, 0},
-		{"SIOCSIFBOND", Const, 0},
-		{"SIOCSIFBR", Const, 0},
-		{"SIOCSIFBRDADDR", Const, 0},
-		{"SIOCSIFCAP", Const, 0},
-		{"SIOCSIFDESCR", Const, 0},
-		{"SIOCSIFDSTADDR", Const, 0},
-		{"SIOCSIFENCAP", Const, 0},
-		{"SIOCSIFFIB", Const, 1},
-		{"SIOCSIFFLAGS", Const, 0},
-		{"SIOCSIFGATTR", Const, 1},
-		{"SIOCSIFGENERIC", Const, 0},
-		{"SIOCSIFHWADDR", Const, 0},
-		{"SIOCSIFHWBROADCAST", Const, 0},
-		{"SIOCSIFKPI", Const, 0},
-		{"SIOCSIFLINK", Const, 0},
-		{"SIOCSIFLLADDR", Const, 0},
-		{"SIOCSIFMAC", Const, 0},
-		{"SIOCSIFMAP", Const, 0},
-		{"SIOCSIFMEDIA", Const, 0},
-		{"SIOCSIFMEM", Const, 0},
-		{"SIOCSIFMETRIC", Const, 0},
-		{"SIOCSIFMTU", Const, 0},
-		{"SIOCSIFNAME", Const, 0},
-		{"SIOCSIFNETMASK", Const, 0},
-		{"SIOCSIFPFLAGS", Const, 0},
-		{"SIOCSIFPHYADDR", Const, 0},
-		{"SIOCSIFPHYS", Const, 0},
-		{"SIOCSIFPRIORITY", Const, 1},
-		{"SIOCSIFRDOMAIN", Const, 1},
-		{"SIOCSIFRTLABEL", Const, 1},
-		{"SIOCSIFRVNET", Const, 0},
-		{"SIOCSIFSLAVE", Const, 0},
-		{"SIOCSIFTIMESLOT", Const, 1},
-		{"SIOCSIFTXQLEN", Const, 0},
-		{"SIOCSIFVLAN", Const, 0},
-		{"SIOCSIFVNET", Const, 0},
-		{"SIOCSIFXFLAGS", Const, 1},
-		{"SIOCSLIFPHYADDR", Const, 0},
-		{"SIOCSLIFPHYRTABLE", Const, 1},
-		{"SIOCSLIFPHYTTL", Const, 3},
-		{"SIOCSLINKSTR", Const, 1},
-		{"SIOCSLOWAT", Const, 0},
-		{"SIOCSPGRP", Const, 0},
-		{"SIOCSRARP", Const, 0},
-		{"SIOCSSPPPPARAMS", Const, 3},
-		{"SIOCSVH", Const, 1},
-		{"SIOCSVNETID", Const, 3},
-		{"SIOCZIFDATA", Const, 1},
-		{"SIO_GET_EXTENSION_FUNCTION_POINTER", Const, 1},
-		{"SIO_GET_INTERFACE_LIST", Const, 0},
-		{"SIO_KEEPALIVE_VALS", Const, 3},
-		{"SIO_UDP_CONNRESET", Const, 4},
-		{"SOCK_CLOEXEC", Const, 0},
-		{"SOCK_DCCP", Const, 0},
-		{"SOCK_DGRAM", Const, 0},
-		{"SOCK_FLAGS_MASK", Const, 1},
-		{"SOCK_MAXADDRLEN", Const, 0},
-		{"SOCK_NONBLOCK", Const, 0},
-		{"SOCK_NOSIGPIPE", Const, 1},
-		{"SOCK_PACKET", Const, 0},
-		{"SOCK_RAW", Const, 0},
-		{"SOCK_RDM", Const, 0},
-		{"SOCK_SEQPACKET", Const, 0},
-		{"SOCK_STREAM", Const, 0},
-		{"SOL_AAL", Const, 0},
-		{"SOL_ATM", Const, 0},
-		{"SOL_DECNET", Const, 0},
-		{"SOL_ICMPV6", Const, 0},
-		{"SOL_IP", Const, 0},
-		{"SOL_IPV6", Const, 0},
-		{"SOL_IRDA", Const, 0},
-		{"SOL_PACKET", Const, 0},
-		{"SOL_RAW", Const, 0},
-		{"SOL_SOCKET", Const, 0},
-		{"SOL_TCP", Const, 0},
-		{"SOL_X25", Const, 0},
-		{"SOMAXCONN", Const, 0},
-		{"SO_ACCEPTCONN", Const, 0},
-		{"SO_ACCEPTFILTER", Const, 0},
-		{"SO_ATTACH_FILTER", Const, 0},
-		{"SO_BINDANY", Const, 1},
-		{"SO_BINDTODEVICE", Const, 0},
-		{"SO_BINTIME", Const, 0},
-		{"SO_BROADCAST", Const, 0},
-		{"SO_BSDCOMPAT", Const, 0},
-		{"SO_DEBUG", Const, 0},
-		{"SO_DETACH_FILTER", Const, 0},
-		{"SO_DOMAIN", Const, 0},
-		{"SO_DONTROUTE", Const, 0},
-		{"SO_DONTTRUNC", Const, 0},
-		{"SO_ERROR", Const, 0},
-		{"SO_KEEPALIVE", Const, 0},
-		{"SO_LABEL", Const, 0},
-		{"SO_LINGER", Const, 0},
-		{"SO_LINGER_SEC", Const, 0},
-		{"SO_LISTENINCQLEN", Const, 0},
-		{"SO_LISTENQLEN", Const, 0},
-		{"SO_LISTENQLIMIT", Const, 0},
-		{"SO_MARK", Const, 0},
-		{"SO_NETPROC", Const, 1},
-		{"SO_NKE", Const, 0},
-		{"SO_NOADDRERR", Const, 0},
-		{"SO_NOHEADER", Const, 1},
-		{"SO_NOSIGPIPE", Const, 0},
-		{"SO_NOTIFYCONFLICT", Const, 0},
-		{"SO_NO_CHECK", Const, 0},
-		{"SO_NO_DDP", Const, 0},
-		{"SO_NO_OFFLOAD", Const, 0},
-		{"SO_NP_EXTENSIONS", Const, 0},
-		{"SO_NREAD", Const, 0},
-		{"SO_NUMRCVPKT", Const, 16},
-		{"SO_NWRITE", Const, 0},
-		{"SO_OOBINLINE", Const, 0},
-		{"SO_OVERFLOWED", Const, 1},
-		{"SO_PASSCRED", Const, 0},
-		{"SO_PASSSEC", Const, 0},
-		{"SO_PEERCRED", Const, 0},
-		{"SO_PEERLABEL", Const, 0},
-		{"SO_PEERNAME", Const, 0},
-		{"SO_PEERSEC", Const, 0},
-		{"SO_PRIORITY", Const, 0},
-		{"SO_PROTOCOL", Const, 0},
-		{"SO_PROTOTYPE", Const, 1},
-		{"SO_RANDOMPORT", Const, 0},
-		{"SO_RCVBUF", Const, 0},
-		{"SO_RCVBUFFORCE", Const, 0},
-		{"SO_RCVLOWAT", Const, 0},
-		{"SO_RCVTIMEO", Const, 0},
-		{"SO_RESTRICTIONS", Const, 0},
-		{"SO_RESTRICT_DENYIN", Const, 0},
-		{"SO_RESTRICT_DENYOUT", Const, 0},
-		{"SO_RESTRICT_DENYSET", Const, 0},
-		{"SO_REUSEADDR", Const, 0},
-		{"SO_REUSEPORT", Const, 0},
-		{"SO_REUSESHAREUID", Const, 0},
-		{"SO_RTABLE", Const, 1},
-		{"SO_RXQ_OVFL", Const, 0},
-		{"SO_SECURITY_AUTHENTICATION", Const, 0},
-		{"SO_SECURITY_ENCRYPTION_NETWORK", Const, 0},
-		{"SO_SECURITY_ENCRYPTION_TRANSPORT", Const, 0},
-		{"SO_SETFIB", Const, 0},
-		{"SO_SNDBUF", Const, 0},
-		{"SO_SNDBUFFORCE", Const, 0},
-		{"SO_SNDLOWAT", Const, 0},
-		{"SO_SNDTIMEO", Const, 0},
-		{"SO_SPLICE", Const, 1},
-		{"SO_TIMESTAMP", Const, 0},
-		{"SO_TIMESTAMPING", Const, 0},
-		{"SO_TIMESTAMPNS", Const, 0},
-		{"SO_TIMESTAMP_MONOTONIC", Const, 0},
-		{"SO_TYPE", Const, 0},
-		{"SO_UPCALLCLOSEWAIT", Const, 0},
-		{"SO_UPDATE_ACCEPT_CONTEXT", Const, 0},
-		{"SO_UPDATE_CONNECT_CONTEXT", Const, 1},
-		{"SO_USELOOPBACK", Const, 0},
-		{"SO_USER_COOKIE", Const, 1},
-		{"SO_VENDOR", Const, 3},
-		{"SO_WANTMORE", Const, 0},
-		{"SO_WANTOOBFLAG", Const, 0},
-		{"SSLExtraCertChainPolicyPara", Type, 0},
-		{"SSLExtraCertChainPolicyPara.AuthType", Field, 0},
-		{"SSLExtraCertChainPolicyPara.Checks", Field, 0},
-		{"SSLExtraCertChainPolicyPara.ServerName", Field, 0},
-		{"SSLExtraCertChainPolicyPara.Size", Field, 0},
-		{"STANDARD_RIGHTS_ALL", Const, 0},
-		{"STANDARD_RIGHTS_EXECUTE", Const, 0},
-		{"STANDARD_RIGHTS_READ", Const, 0},
-		{"STANDARD_RIGHTS_REQUIRED", Const, 0},
-		{"STANDARD_RIGHTS_WRITE", Const, 0},
-		{"STARTF_USESHOWWINDOW", Const, 0},
-		{"STARTF_USESTDHANDLES", Const, 0},
-		{"STD_ERROR_HANDLE", Const, 0},
-		{"STD_INPUT_HANDLE", Const, 0},
-		{"STD_OUTPUT_HANDLE", Const, 0},
-		{"SUBLANG_ENGLISH_US", Const, 0},
-		{"SW_FORCEMINIMIZE", Const, 0},
-		{"SW_HIDE", Const, 0},
-		{"SW_MAXIMIZE", Const, 0},
-		{"SW_MINIMIZE", Const, 0},
-		{"SW_NORMAL", Const, 0},
-		{"SW_RESTORE", Const, 0},
-		{"SW_SHOW", Const, 0},
-		{"SW_SHOWDEFAULT", Const, 0},
-		{"SW_SHOWMAXIMIZED", Const, 0},
-		{"SW_SHOWMINIMIZED", Const, 0},
-		{"SW_SHOWMINNOACTIVE", Const, 0},
-		{"SW_SHOWNA", Const, 0},
-		{"SW_SHOWNOACTIVATE", Const, 0},
-		{"SW_SHOWNORMAL", Const, 0},
-		{"SYMBOLIC_LINK_FLAG_DIRECTORY", Const, 4},
-		{"SYNCHRONIZE", Const, 0},
-		{"SYSCTL_VERSION", Const, 1},
-		{"SYSCTL_VERS_0", Const, 1},
-		{"SYSCTL_VERS_1", Const, 1},
-		{"SYSCTL_VERS_MASK", Const, 1},
-		{"SYS_ABORT2", Const, 0},
-		{"SYS_ACCEPT", Const, 0},
-		{"SYS_ACCEPT4", Const, 0},
-		{"SYS_ACCEPT_NOCANCEL", Const, 0},
-		{"SYS_ACCESS", Const, 0},
-		{"SYS_ACCESS_EXTENDED", Const, 0},
-		{"SYS_ACCT", Const, 0},
-		{"SYS_ADD_KEY", Const, 0},
-		{"SYS_ADD_PROFIL", Const, 0},
-		{"SYS_ADJFREQ", Const, 1},
-		{"SYS_ADJTIME", Const, 0},
-		{"SYS_ADJTIMEX", Const, 0},
-		{"SYS_AFS_SYSCALL", Const, 0},
-		{"SYS_AIO_CANCEL", Const, 0},
-		{"SYS_AIO_ERROR", Const, 0},
-		{"SYS_AIO_FSYNC", Const, 0},
-		{"SYS_AIO_MLOCK", Const, 14},
-		{"SYS_AIO_READ", Const, 0},
-		{"SYS_AIO_RETURN", Const, 0},
-		{"SYS_AIO_SUSPEND", Const, 0},
-		{"SYS_AIO_SUSPEND_NOCANCEL", Const, 0},
-		{"SYS_AIO_WAITCOMPLETE", Const, 14},
-		{"SYS_AIO_WRITE", Const, 0},
-		{"SYS_ALARM", Const, 0},
-		{"SYS_ARCH_PRCTL", Const, 0},
-		{"SYS_ARM_FADVISE64_64", Const, 0},
-		{"SYS_ARM_SYNC_FILE_RANGE", Const, 0},
-		{"SYS_ATGETMSG", Const, 0},
-		{"SYS_ATPGETREQ", Const, 0},
-		{"SYS_ATPGETRSP", Const, 0},
-		{"SYS_ATPSNDREQ", Const, 0},
-		{"SYS_ATPSNDRSP", Const, 0},
-		{"SYS_ATPUTMSG", Const, 0},
-		{"SYS_ATSOCKET", Const, 0},
-		{"SYS_AUDIT", Const, 0},
-		{"SYS_AUDITCTL", Const, 0},
-		{"SYS_AUDITON", Const, 0},
-		{"SYS_AUDIT_SESSION_JOIN", Const, 0},
-		{"SYS_AUDIT_SESSION_PORT", Const, 0},
-		{"SYS_AUDIT_SESSION_SELF", Const, 0},
-		{"SYS_BDFLUSH", Const, 0},
-		{"SYS_BIND", Const, 0},
-		{"SYS_BINDAT", Const, 3},
-		{"SYS_BREAK", Const, 0},
-		{"SYS_BRK", Const, 0},
-		{"SYS_BSDTHREAD_CREATE", Const, 0},
-		{"SYS_BSDTHREAD_REGISTER", Const, 0},
-		{"SYS_BSDTHREAD_TERMINATE", Const, 0},
-		{"SYS_CAPGET", Const, 0},
-		{"SYS_CAPSET", Const, 0},
-		{"SYS_CAP_ENTER", Const, 0},
-		{"SYS_CAP_FCNTLS_GET", Const, 1},
-		{"SYS_CAP_FCNTLS_LIMIT", Const, 1},
-		{"SYS_CAP_GETMODE", Const, 0},
-		{"SYS_CAP_GETRIGHTS", Const, 0},
-		{"SYS_CAP_IOCTLS_GET", Const, 1},
-		{"SYS_CAP_IOCTLS_LIMIT", Const, 1},
-		{"SYS_CAP_NEW", Const, 0},
-		{"SYS_CAP_RIGHTS_GET", Const, 1},
-		{"SYS_CAP_RIGHTS_LIMIT", Const, 1},
-		{"SYS_CHDIR", Const, 0},
-		{"SYS_CHFLAGS", Const, 0},
-		{"SYS_CHFLAGSAT", Const, 3},
-		{"SYS_CHMOD", Const, 0},
-		{"SYS_CHMOD_EXTENDED", Const, 0},
-		{"SYS_CHOWN", Const, 0},
-		{"SYS_CHOWN32", Const, 0},
-		{"SYS_CHROOT", Const, 0},
-		{"SYS_CHUD", Const, 0},
-		{"SYS_CLOCK_ADJTIME", Const, 0},
-		{"SYS_CLOCK_GETCPUCLOCKID2", Const, 1},
-		{"SYS_CLOCK_GETRES", Const, 0},
-		{"SYS_CLOCK_GETTIME", Const, 0},
-		{"SYS_CLOCK_NANOSLEEP", Const, 0},
-		{"SYS_CLOCK_SETTIME", Const, 0},
-		{"SYS_CLONE", Const, 0},
-		{"SYS_CLOSE", Const, 0},
-		{"SYS_CLOSEFROM", Const, 0},
-		{"SYS_CLOSE_NOCANCEL", Const, 0},
-		{"SYS_CONNECT", Const, 0},
-		{"SYS_CONNECTAT", Const, 3},
-		{"SYS_CONNECT_NOCANCEL", Const, 0},
-		{"SYS_COPYFILE", Const, 0},
-		{"SYS_CPUSET", Const, 0},
-		{"SYS_CPUSET_GETAFFINITY", Const, 0},
-		{"SYS_CPUSET_GETID", Const, 0},
-		{"SYS_CPUSET_SETAFFINITY", Const, 0},
-		{"SYS_CPUSET_SETID", Const, 0},
-		{"SYS_CREAT", Const, 0},
-		{"SYS_CREATE_MODULE", Const, 0},
-		{"SYS_CSOPS", Const, 0},
-		{"SYS_CSOPS_AUDITTOKEN", Const, 16},
-		{"SYS_DELETE", Const, 0},
-		{"SYS_DELETE_MODULE", Const, 0},
-		{"SYS_DUP", Const, 0},
-		{"SYS_DUP2", Const, 0},
-		{"SYS_DUP3", Const, 0},
-		{"SYS_EACCESS", Const, 0},
-		{"SYS_EPOLL_CREATE", Const, 0},
-		{"SYS_EPOLL_CREATE1", Const, 0},
-		{"SYS_EPOLL_CTL", Const, 0},
-		{"SYS_EPOLL_CTL_OLD", Const, 0},
-		{"SYS_EPOLL_PWAIT", Const, 0},
-		{"SYS_EPOLL_WAIT", Const, 0},
-		{"SYS_EPOLL_WAIT_OLD", Const, 0},
-		{"SYS_EVENTFD", Const, 0},
-		{"SYS_EVENTFD2", Const, 0},
-		{"SYS_EXCHANGEDATA", Const, 0},
-		{"SYS_EXECVE", Const, 0},
-		{"SYS_EXIT", Const, 0},
-		{"SYS_EXIT_GROUP", Const, 0},
-		{"SYS_EXTATTRCTL", Const, 0},
-		{"SYS_EXTATTR_DELETE_FD", Const, 0},
-		{"SYS_EXTATTR_DELETE_FILE", Const, 0},
-		{"SYS_EXTATTR_DELETE_LINK", Const, 0},
-		{"SYS_EXTATTR_GET_FD", Const, 0},
-		{"SYS_EXTATTR_GET_FILE", Const, 0},
-		{"SYS_EXTATTR_GET_LINK", Const, 0},
-		{"SYS_EXTATTR_LIST_FD", Const, 0},
-		{"SYS_EXTATTR_LIST_FILE", Const, 0},
-		{"SYS_EXTATTR_LIST_LINK", Const, 0},
-		{"SYS_EXTATTR_SET_FD", Const, 0},
-		{"SYS_EXTATTR_SET_FILE", Const, 0},
-		{"SYS_EXTATTR_SET_LINK", Const, 0},
-		{"SYS_FACCESSAT", Const, 0},
-		{"SYS_FADVISE64", Const, 0},
-		{"SYS_FADVISE64_64", Const, 0},
-		{"SYS_FALLOCATE", Const, 0},
-		{"SYS_FANOTIFY_INIT", Const, 0},
-		{"SYS_FANOTIFY_MARK", Const, 0},
-		{"SYS_FCHDIR", Const, 0},
-		{"SYS_FCHFLAGS", Const, 0},
-		{"SYS_FCHMOD", Const, 0},
-		{"SYS_FCHMODAT", Const, 0},
-		{"SYS_FCHMOD_EXTENDED", Const, 0},
-		{"SYS_FCHOWN", Const, 0},
-		{"SYS_FCHOWN32", Const, 0},
-		{"SYS_FCHOWNAT", Const, 0},
-		{"SYS_FCHROOT", Const, 1},
-		{"SYS_FCNTL", Const, 0},
-		{"SYS_FCNTL64", Const, 0},
-		{"SYS_FCNTL_NOCANCEL", Const, 0},
-		{"SYS_FDATASYNC", Const, 0},
-		{"SYS_FEXECVE", Const, 0},
-		{"SYS_FFCLOCK_GETCOUNTER", Const, 0},
-		{"SYS_FFCLOCK_GETESTIMATE", Const, 0},
-		{"SYS_FFCLOCK_SETESTIMATE", Const, 0},
-		{"SYS_FFSCTL", Const, 0},
-		{"SYS_FGETATTRLIST", Const, 0},
-		{"SYS_FGETXATTR", Const, 0},
-		{"SYS_FHOPEN", Const, 0},
-		{"SYS_FHSTAT", Const, 0},
-		{"SYS_FHSTATFS", Const, 0},
-		{"SYS_FILEPORT_MAKEFD", Const, 0},
-		{"SYS_FILEPORT_MAKEPORT", Const, 0},
-		{"SYS_FKTRACE", Const, 1},
-		{"SYS_FLISTXATTR", Const, 0},
-		{"SYS_FLOCK", Const, 0},
-		{"SYS_FORK", Const, 0},
-		{"SYS_FPATHCONF", Const, 0},
-		{"SYS_FREEBSD6_FTRUNCATE", Const, 0},
-		{"SYS_FREEBSD6_LSEEK", Const, 0},
-		{"SYS_FREEBSD6_MMAP", Const, 0},
-		{"SYS_FREEBSD6_PREAD", Const, 0},
-		{"SYS_FREEBSD6_PWRITE", Const, 0},
-		{"SYS_FREEBSD6_TRUNCATE", Const, 0},
-		{"SYS_FREMOVEXATTR", Const, 0},
-		{"SYS_FSCTL", Const, 0},
-		{"SYS_FSETATTRLIST", Const, 0},
-		{"SYS_FSETXATTR", Const, 0},
-		{"SYS_FSGETPATH", Const, 0},
-		{"SYS_FSTAT", Const, 0},
-		{"SYS_FSTAT64", Const, 0},
-		{"SYS_FSTAT64_EXTENDED", Const, 0},
-		{"SYS_FSTATAT", Const, 0},
-		{"SYS_FSTATAT64", Const, 0},
-		{"SYS_FSTATFS", Const, 0},
-		{"SYS_FSTATFS64", Const, 0},
-		{"SYS_FSTATV", Const, 0},
-		{"SYS_FSTATVFS1", Const, 1},
-		{"SYS_FSTAT_EXTENDED", Const, 0},
-		{"SYS_FSYNC", Const, 0},
-		{"SYS_FSYNC_NOCANCEL", Const, 0},
-		{"SYS_FSYNC_RANGE", Const, 1},
-		{"SYS_FTIME", Const, 0},
-		{"SYS_FTRUNCATE", Const, 0},
-		{"SYS_FTRUNCATE64", Const, 0},
-		{"SYS_FUTEX", Const, 0},
-		{"SYS_FUTIMENS", Const, 1},
-		{"SYS_FUTIMES", Const, 0},
-		{"SYS_FUTIMESAT", Const, 0},
-		{"SYS_GETATTRLIST", Const, 0},
-		{"SYS_GETAUDIT", Const, 0},
-		{"SYS_GETAUDIT_ADDR", Const, 0},
-		{"SYS_GETAUID", Const, 0},
-		{"SYS_GETCONTEXT", Const, 0},
-		{"SYS_GETCPU", Const, 0},
-		{"SYS_GETCWD", Const, 0},
-		{"SYS_GETDENTS", Const, 0},
-		{"SYS_GETDENTS64", Const, 0},
-		{"SYS_GETDIRENTRIES", Const, 0},
-		{"SYS_GETDIRENTRIES64", Const, 0},
-		{"SYS_GETDIRENTRIESATTR", Const, 0},
-		{"SYS_GETDTABLECOUNT", Const, 1},
-		{"SYS_GETDTABLESIZE", Const, 0},
-		{"SYS_GETEGID", Const, 0},
-		{"SYS_GETEGID32", Const, 0},
-		{"SYS_GETEUID", Const, 0},
-		{"SYS_GETEUID32", Const, 0},
-		{"SYS_GETFH", Const, 0},
-		{"SYS_GETFSSTAT", Const, 0},
-		{"SYS_GETFSSTAT64", Const, 0},
-		{"SYS_GETGID", Const, 0},
-		{"SYS_GETGID32", Const, 0},
-		{"SYS_GETGROUPS", Const, 0},
-		{"SYS_GETGROUPS32", Const, 0},
-		{"SYS_GETHOSTUUID", Const, 0},
-		{"SYS_GETITIMER", Const, 0},
-		{"SYS_GETLCID", Const, 0},
-		{"SYS_GETLOGIN", Const, 0},
-		{"SYS_GETLOGINCLASS", Const, 0},
-		{"SYS_GETPEERNAME", Const, 0},
-		{"SYS_GETPGID", Const, 0},
-		{"SYS_GETPGRP", Const, 0},
-		{"SYS_GETPID", Const, 0},
-		{"SYS_GETPMSG", Const, 0},
-		{"SYS_GETPPID", Const, 0},
-		{"SYS_GETPRIORITY", Const, 0},
-		{"SYS_GETRESGID", Const, 0},
-		{"SYS_GETRESGID32", Const, 0},
-		{"SYS_GETRESUID", Const, 0},
-		{"SYS_GETRESUID32", Const, 0},
-		{"SYS_GETRLIMIT", Const, 0},
-		{"SYS_GETRTABLE", Const, 1},
-		{"SYS_GETRUSAGE", Const, 0},
-		{"SYS_GETSGROUPS", Const, 0},
-		{"SYS_GETSID", Const, 0},
-		{"SYS_GETSOCKNAME", Const, 0},
-		{"SYS_GETSOCKOPT", Const, 0},
-		{"SYS_GETTHRID", Const, 1},
-		{"SYS_GETTID", Const, 0},
-		{"SYS_GETTIMEOFDAY", Const, 0},
-		{"SYS_GETUID", Const, 0},
-		{"SYS_GETUID32", Const, 0},
-		{"SYS_GETVFSSTAT", Const, 1},
-		{"SYS_GETWGROUPS", Const, 0},
-		{"SYS_GETXATTR", Const, 0},
-		{"SYS_GET_KERNEL_SYMS", Const, 0},
-		{"SYS_GET_MEMPOLICY", Const, 0},
-		{"SYS_GET_ROBUST_LIST", Const, 0},
-		{"SYS_GET_THREAD_AREA", Const, 0},
-		{"SYS_GSSD_SYSCALL", Const, 14},
-		{"SYS_GTTY", Const, 0},
-		{"SYS_IDENTITYSVC", Const, 0},
-		{"SYS_IDLE", Const, 0},
-		{"SYS_INITGROUPS", Const, 0},
-		{"SYS_INIT_MODULE", Const, 0},
-		{"SYS_INOTIFY_ADD_WATCH", Const, 0},
-		{"SYS_INOTIFY_INIT", Const, 0},
-		{"SYS_INOTIFY_INIT1", Const, 0},
-		{"SYS_INOTIFY_RM_WATCH", Const, 0},
-		{"SYS_IOCTL", Const, 0},
-		{"SYS_IOPERM", Const, 0},
-		{"SYS_IOPL", Const, 0},
-		{"SYS_IOPOLICYSYS", Const, 0},
-		{"SYS_IOPRIO_GET", Const, 0},
-		{"SYS_IOPRIO_SET", Const, 0},
-		{"SYS_IO_CANCEL", Const, 0},
-		{"SYS_IO_DESTROY", Const, 0},
-		{"SYS_IO_GETEVENTS", Const, 0},
-		{"SYS_IO_SETUP", Const, 0},
-		{"SYS_IO_SUBMIT", Const, 0},
-		{"SYS_IPC", Const, 0},
-		{"SYS_ISSETUGID", Const, 0},
-		{"SYS_JAIL", Const, 0},
-		{"SYS_JAIL_ATTACH", Const, 0},
-		{"SYS_JAIL_GET", Const, 0},
-		{"SYS_JAIL_REMOVE", Const, 0},
-		{"SYS_JAIL_SET", Const, 0},
-		{"SYS_KAS_INFO", Const, 16},
-		{"SYS_KDEBUG_TRACE", Const, 0},
-		{"SYS_KENV", Const, 0},
-		{"SYS_KEVENT", Const, 0},
-		{"SYS_KEVENT64", Const, 0},
-		{"SYS_KEXEC_LOAD", Const, 0},
-		{"SYS_KEYCTL", Const, 0},
-		{"SYS_KILL", Const, 0},
-		{"SYS_KLDFIND", Const, 0},
-		{"SYS_KLDFIRSTMOD", Const, 0},
-		{"SYS_KLDLOAD", Const, 0},
-		{"SYS_KLDNEXT", Const, 0},
-		{"SYS_KLDSTAT", Const, 0},
-		{"SYS_KLDSYM", Const, 0},
-		{"SYS_KLDUNLOAD", Const, 0},
-		{"SYS_KLDUNLOADF", Const, 0},
-		{"SYS_KMQ_NOTIFY", Const, 14},
-		{"SYS_KMQ_OPEN", Const, 14},
-		{"SYS_KMQ_SETATTR", Const, 14},
-		{"SYS_KMQ_TIMEDRECEIVE", Const, 14},
-		{"SYS_KMQ_TIMEDSEND", Const, 14},
-		{"SYS_KMQ_UNLINK", Const, 14},
-		{"SYS_KQUEUE", Const, 0},
-		{"SYS_KQUEUE1", Const, 1},
-		{"SYS_KSEM_CLOSE", Const, 14},
-		{"SYS_KSEM_DESTROY", Const, 14},
-		{"SYS_KSEM_GETVALUE", Const, 14},
-		{"SYS_KSEM_INIT", Const, 14},
-		{"SYS_KSEM_OPEN", Const, 14},
-		{"SYS_KSEM_POST", Const, 14},
-		{"SYS_KSEM_TIMEDWAIT", Const, 14},
-		{"SYS_KSEM_TRYWAIT", Const, 14},
-		{"SYS_KSEM_UNLINK", Const, 14},
-		{"SYS_KSEM_WAIT", Const, 14},
-		{"SYS_KTIMER_CREATE", Const, 0},
-		{"SYS_KTIMER_DELETE", Const, 0},
-		{"SYS_KTIMER_GETOVERRUN", Const, 0},
-		{"SYS_KTIMER_GETTIME", Const, 0},
-		{"SYS_KTIMER_SETTIME", Const, 0},
-		{"SYS_KTRACE", Const, 0},
-		{"SYS_LCHFLAGS", Const, 0},
-		{"SYS_LCHMOD", Const, 0},
-		{"SYS_LCHOWN", Const, 0},
-		{"SYS_LCHOWN32", Const, 0},
-		{"SYS_LEDGER", Const, 16},
-		{"SYS_LGETFH", Const, 0},
-		{"SYS_LGETXATTR", Const, 0},
-		{"SYS_LINK", Const, 0},
-		{"SYS_LINKAT", Const, 0},
-		{"SYS_LIO_LISTIO", Const, 0},
-		{"SYS_LISTEN", Const, 0},
-		{"SYS_LISTXATTR", Const, 0},
-		{"SYS_LLISTXATTR", Const, 0},
-		{"SYS_LOCK", Const, 0},
-		{"SYS_LOOKUP_DCOOKIE", Const, 0},
-		{"SYS_LPATHCONF", Const, 0},
-		{"SYS_LREMOVEXATTR", Const, 0},
-		{"SYS_LSEEK", Const, 0},
-		{"SYS_LSETXATTR", Const, 0},
-		{"SYS_LSTAT", Const, 0},
-		{"SYS_LSTAT64", Const, 0},
-		{"SYS_LSTAT64_EXTENDED", Const, 0},
-		{"SYS_LSTATV", Const, 0},
-		{"SYS_LSTAT_EXTENDED", Const, 0},
-		{"SYS_LUTIMES", Const, 0},
-		{"SYS_MAC_SYSCALL", Const, 0},
-		{"SYS_MADVISE", Const, 0},
-		{"SYS_MADVISE1", Const, 0},
-		{"SYS_MAXSYSCALL", Const, 0},
-		{"SYS_MBIND", Const, 0},
-		{"SYS_MIGRATE_PAGES", Const, 0},
-		{"SYS_MINCORE", Const, 0},
-		{"SYS_MINHERIT", Const, 0},
-		{"SYS_MKCOMPLEX", Const, 0},
-		{"SYS_MKDIR", Const, 0},
-		{"SYS_MKDIRAT", Const, 0},
-		{"SYS_MKDIR_EXTENDED", Const, 0},
-		{"SYS_MKFIFO", Const, 0},
-		{"SYS_MKFIFOAT", Const, 0},
-		{"SYS_MKFIFO_EXTENDED", Const, 0},
-		{"SYS_MKNOD", Const, 0},
-		{"SYS_MKNODAT", Const, 0},
-		{"SYS_MLOCK", Const, 0},
-		{"SYS_MLOCKALL", Const, 0},
-		{"SYS_MMAP", Const, 0},
-		{"SYS_MMAP2", Const, 0},
-		{"SYS_MODCTL", Const, 1},
-		{"SYS_MODFIND", Const, 0},
-		{"SYS_MODFNEXT", Const, 0},
-		{"SYS_MODIFY_LDT", Const, 0},
-		{"SYS_MODNEXT", Const, 0},
-		{"SYS_MODSTAT", Const, 0},
-		{"SYS_MODWATCH", Const, 0},
-		{"SYS_MOUNT", Const, 0},
-		{"SYS_MOVE_PAGES", Const, 0},
-		{"SYS_MPROTECT", Const, 0},
-		{"SYS_MPX", Const, 0},
-		{"SYS_MQUERY", Const, 1},
-		{"SYS_MQ_GETSETATTR", Const, 0},
-		{"SYS_MQ_NOTIFY", Const, 0},
-		{"SYS_MQ_OPEN", Const, 0},
-		{"SYS_MQ_TIMEDRECEIVE", Const, 0},
-		{"SYS_MQ_TIMEDSEND", Const, 0},
-		{"SYS_MQ_UNLINK", Const, 0},
-		{"SYS_MREMAP", Const, 0},
-		{"SYS_MSGCTL", Const, 0},
-		{"SYS_MSGGET", Const, 0},
-		{"SYS_MSGRCV", Const, 0},
-		{"SYS_MSGRCV_NOCANCEL", Const, 0},
-		{"SYS_MSGSND", Const, 0},
-		{"SYS_MSGSND_NOCANCEL", Const, 0},
-		{"SYS_MSGSYS", Const, 0},
-		{"SYS_MSYNC", Const, 0},
-		{"SYS_MSYNC_NOCANCEL", Const, 0},
-		{"SYS_MUNLOCK", Const, 0},
-		{"SYS_MUNLOCKALL", Const, 0},
-		{"SYS_MUNMAP", Const, 0},
-		{"SYS_NAME_TO_HANDLE_AT", Const, 0},
-		{"SYS_NANOSLEEP", Const, 0},
-		{"SYS_NEWFSTATAT", Const, 0},
-		{"SYS_NFSCLNT", Const, 0},
-		{"SYS_NFSSERVCTL", Const, 0},
-		{"SYS_NFSSVC", Const, 0},
-		{"SYS_NFSTAT", Const, 0},
-		{"SYS_NICE", Const, 0},
-		{"SYS_NLM_SYSCALL", Const, 14},
-		{"SYS_NLSTAT", Const, 0},
-		{"SYS_NMOUNT", Const, 0},
-		{"SYS_NSTAT", Const, 0},
-		{"SYS_NTP_ADJTIME", Const, 0},
-		{"SYS_NTP_GETTIME", Const, 0},
-		{"SYS_NUMA_GETAFFINITY", Const, 14},
-		{"SYS_NUMA_SETAFFINITY", Const, 14},
-		{"SYS_OABI_SYSCALL_BASE", Const, 0},
-		{"SYS_OBREAK", Const, 0},
-		{"SYS_OLDFSTAT", Const, 0},
-		{"SYS_OLDLSTAT", Const, 0},
-		{"SYS_OLDOLDUNAME", Const, 0},
-		{"SYS_OLDSTAT", Const, 0},
-		{"SYS_OLDUNAME", Const, 0},
-		{"SYS_OPEN", Const, 0},
-		{"SYS_OPENAT", Const, 0},
-		{"SYS_OPENBSD_POLL", Const, 0},
-		{"SYS_OPEN_BY_HANDLE_AT", Const, 0},
-		{"SYS_OPEN_DPROTECTED_NP", Const, 16},
-		{"SYS_OPEN_EXTENDED", Const, 0},
-		{"SYS_OPEN_NOCANCEL", Const, 0},
-		{"SYS_OVADVISE", Const, 0},
-		{"SYS_PACCEPT", Const, 1},
-		{"SYS_PATHCONF", Const, 0},
-		{"SYS_PAUSE", Const, 0},
-		{"SYS_PCICONFIG_IOBASE", Const, 0},
-		{"SYS_PCICONFIG_READ", Const, 0},
-		{"SYS_PCICONFIG_WRITE", Const, 0},
-		{"SYS_PDFORK", Const, 0},
-		{"SYS_PDGETPID", Const, 0},
-		{"SYS_PDKILL", Const, 0},
-		{"SYS_PERF_EVENT_OPEN", Const, 0},
-		{"SYS_PERSONALITY", Const, 0},
-		{"SYS_PID_HIBERNATE", Const, 0},
-		{"SYS_PID_RESUME", Const, 0},
-		{"SYS_PID_SHUTDOWN_SOCKETS", Const, 0},
-		{"SYS_PID_SUSPEND", Const, 0},
-		{"SYS_PIPE", Const, 0},
-		{"SYS_PIPE2", Const, 0},
-		{"SYS_PIVOT_ROOT", Const, 0},
-		{"SYS_PMC_CONTROL", Const, 1},
-		{"SYS_PMC_GET_INFO", Const, 1},
-		{"SYS_POLL", Const, 0},
-		{"SYS_POLLTS", Const, 1},
-		{"SYS_POLL_NOCANCEL", Const, 0},
-		{"SYS_POSIX_FADVISE", Const, 0},
-		{"SYS_POSIX_FALLOCATE", Const, 0},
-		{"SYS_POSIX_OPENPT", Const, 0},
-		{"SYS_POSIX_SPAWN", Const, 0},
-		{"SYS_PPOLL", Const, 0},
-		{"SYS_PRCTL", Const, 0},
-		{"SYS_PREAD", Const, 0},
-		{"SYS_PREAD64", Const, 0},
-		{"SYS_PREADV", Const, 0},
-		{"SYS_PREAD_NOCANCEL", Const, 0},
-		{"SYS_PRLIMIT64", Const, 0},
-		{"SYS_PROCCTL", Const, 3},
-		{"SYS_PROCESS_POLICY", Const, 0},
-		{"SYS_PROCESS_VM_READV", Const, 0},
-		{"SYS_PROCESS_VM_WRITEV", Const, 0},
-		{"SYS_PROC_INFO", Const, 0},
-		{"SYS_PROF", Const, 0},
-		{"SYS_PROFIL", Const, 0},
-		{"SYS_PSELECT", Const, 0},
-		{"SYS_PSELECT6", Const, 0},
-		{"SYS_PSET_ASSIGN", Const, 1},
-		{"SYS_PSET_CREATE", Const, 1},
-		{"SYS_PSET_DESTROY", Const, 1},
-		{"SYS_PSYNCH_CVBROAD", Const, 0},
-		{"SYS_PSYNCH_CVCLRPREPOST", Const, 0},
-		{"SYS_PSYNCH_CVSIGNAL", Const, 0},
-		{"SYS_PSYNCH_CVWAIT", Const, 0},
-		{"SYS_PSYNCH_MUTEXDROP", Const, 0},
-		{"SYS_PSYNCH_MUTEXWAIT", Const, 0},
-		{"SYS_PSYNCH_RW_DOWNGRADE", Const, 0},
-		{"SYS_PSYNCH_RW_LONGRDLOCK", Const, 0},
-		{"SYS_PSYNCH_RW_RDLOCK", Const, 0},
-		{"SYS_PSYNCH_RW_UNLOCK", Const, 0},
-		{"SYS_PSYNCH_RW_UNLOCK2", Const, 0},
-		{"SYS_PSYNCH_RW_UPGRADE", Const, 0},
-		{"SYS_PSYNCH_RW_WRLOCK", Const, 0},
-		{"SYS_PSYNCH_RW_YIELDWRLOCK", Const, 0},
-		{"SYS_PTRACE", Const, 0},
-		{"SYS_PUTPMSG", Const, 0},
-		{"SYS_PWRITE", Const, 0},
-		{"SYS_PWRITE64", Const, 0},
-		{"SYS_PWRITEV", Const, 0},
-		{"SYS_PWRITE_NOCANCEL", Const, 0},
-		{"SYS_QUERY_MODULE", Const, 0},
-		{"SYS_QUOTACTL", Const, 0},
-		{"SYS_RASCTL", Const, 1},
-		{"SYS_RCTL_ADD_RULE", Const, 0},
-		{"SYS_RCTL_GET_LIMITS", Const, 0},
-		{"SYS_RCTL_GET_RACCT", Const, 0},
-		{"SYS_RCTL_GET_RULES", Const, 0},
-		{"SYS_RCTL_REMOVE_RULE", Const, 0},
-		{"SYS_READ", Const, 0},
-		{"SYS_READAHEAD", Const, 0},
-		{"SYS_READDIR", Const, 0},
-		{"SYS_READLINK", Const, 0},
-		{"SYS_READLINKAT", Const, 0},
-		{"SYS_READV", Const, 0},
-		{"SYS_READV_NOCANCEL", Const, 0},
-		{"SYS_READ_NOCANCEL", Const, 0},
-		{"SYS_REBOOT", Const, 0},
-		{"SYS_RECV", Const, 0},
-		{"SYS_RECVFROM", Const, 0},
-		{"SYS_RECVFROM_NOCANCEL", Const, 0},
-		{"SYS_RECVMMSG", Const, 0},
-		{"SYS_RECVMSG", Const, 0},
-		{"SYS_RECVMSG_NOCANCEL", Const, 0},
-		{"SYS_REMAP_FILE_PAGES", Const, 0},
-		{"SYS_REMOVEXATTR", Const, 0},
-		{"SYS_RENAME", Const, 0},
-		{"SYS_RENAMEAT", Const, 0},
-		{"SYS_REQUEST_KEY", Const, 0},
-		{"SYS_RESTART_SYSCALL", Const, 0},
-		{"SYS_REVOKE", Const, 0},
-		{"SYS_RFORK", Const, 0},
-		{"SYS_RMDIR", Const, 0},
-		{"SYS_RTPRIO", Const, 0},
-		{"SYS_RTPRIO_THREAD", Const, 0},
-		{"SYS_RT_SIGACTION", Const, 0},
-		{"SYS_RT_SIGPENDING", Const, 0},
-		{"SYS_RT_SIGPROCMASK", Const, 0},
-		{"SYS_RT_SIGQUEUEINFO", Const, 0},
-		{"SYS_RT_SIGRETURN", Const, 0},
-		{"SYS_RT_SIGSUSPEND", Const, 0},
-		{"SYS_RT_SIGTIMEDWAIT", Const, 0},
-		{"SYS_RT_TGSIGQUEUEINFO", Const, 0},
-		{"SYS_SBRK", Const, 0},
-		{"SYS_SCHED_GETAFFINITY", Const, 0},
-		{"SYS_SCHED_GETPARAM", Const, 0},
-		{"SYS_SCHED_GETSCHEDULER", Const, 0},
-		{"SYS_SCHED_GET_PRIORITY_MAX", Const, 0},
-		{"SYS_SCHED_GET_PRIORITY_MIN", Const, 0},
-		{"SYS_SCHED_RR_GET_INTERVAL", Const, 0},
-		{"SYS_SCHED_SETAFFINITY", Const, 0},
-		{"SYS_SCHED_SETPARAM", Const, 0},
-		{"SYS_SCHED_SETSCHEDULER", Const, 0},
-		{"SYS_SCHED_YIELD", Const, 0},
-		{"SYS_SCTP_GENERIC_RECVMSG", Const, 0},
-		{"SYS_SCTP_GENERIC_SENDMSG", Const, 0},
-		{"SYS_SCTP_GENERIC_SENDMSG_IOV", Const, 0},
-		{"SYS_SCTP_PEELOFF", Const, 0},
-		{"SYS_SEARCHFS", Const, 0},
-		{"SYS_SECURITY", Const, 0},
-		{"SYS_SELECT", Const, 0},
-		{"SYS_SELECT_NOCANCEL", Const, 0},
-		{"SYS_SEMCONFIG", Const, 1},
-		{"SYS_SEMCTL", Const, 0},
-		{"SYS_SEMGET", Const, 0},
-		{"SYS_SEMOP", Const, 0},
-		{"SYS_SEMSYS", Const, 0},
-		{"SYS_SEMTIMEDOP", Const, 0},
-		{"SYS_SEM_CLOSE", Const, 0},
-		{"SYS_SEM_DESTROY", Const, 0},
-		{"SYS_SEM_GETVALUE", Const, 0},
-		{"SYS_SEM_INIT", Const, 0},
-		{"SYS_SEM_OPEN", Const, 0},
-		{"SYS_SEM_POST", Const, 0},
-		{"SYS_SEM_TRYWAIT", Const, 0},
-		{"SYS_SEM_UNLINK", Const, 0},
-		{"SYS_SEM_WAIT", Const, 0},
-		{"SYS_SEM_WAIT_NOCANCEL", Const, 0},
-		{"SYS_SEND", Const, 0},
-		{"SYS_SENDFILE", Const, 0},
-		{"SYS_SENDFILE64", Const, 0},
-		{"SYS_SENDMMSG", Const, 0},
-		{"SYS_SENDMSG", Const, 0},
-		{"SYS_SENDMSG_NOCANCEL", Const, 0},
-		{"SYS_SENDTO", Const, 0},
-		{"SYS_SENDTO_NOCANCEL", Const, 0},
-		{"SYS_SETATTRLIST", Const, 0},
-		{"SYS_SETAUDIT", Const, 0},
-		{"SYS_SETAUDIT_ADDR", Const, 0},
-		{"SYS_SETAUID", Const, 0},
-		{"SYS_SETCONTEXT", Const, 0},
-		{"SYS_SETDOMAINNAME", Const, 0},
-		{"SYS_SETEGID", Const, 0},
-		{"SYS_SETEUID", Const, 0},
-		{"SYS_SETFIB", Const, 0},
-		{"SYS_SETFSGID", Const, 0},
-		{"SYS_SETFSGID32", Const, 0},
-		{"SYS_SETFSUID", Const, 0},
-		{"SYS_SETFSUID32", Const, 0},
-		{"SYS_SETGID", Const, 0},
-		{"SYS_SETGID32", Const, 0},
-		{"SYS_SETGROUPS", Const, 0},
-		{"SYS_SETGROUPS32", Const, 0},
-		{"SYS_SETHOSTNAME", Const, 0},
-		{"SYS_SETITIMER", Const, 0},
-		{"SYS_SETLCID", Const, 0},
-		{"SYS_SETLOGIN", Const, 0},
-		{"SYS_SETLOGINCLASS", Const, 0},
-		{"SYS_SETNS", Const, 0},
-		{"SYS_SETPGID", Const, 0},
-		{"SYS_SETPRIORITY", Const, 0},
-		{"SYS_SETPRIVEXEC", Const, 0},
-		{"SYS_SETREGID", Const, 0},
-		{"SYS_SETREGID32", Const, 0},
-		{"SYS_SETRESGID", Const, 0},
-		{"SYS_SETRESGID32", Const, 0},
-		{"SYS_SETRESUID", Const, 0},
-		{"SYS_SETRESUID32", Const, 0},
-		{"SYS_SETREUID", Const, 0},
-		{"SYS_SETREUID32", Const, 0},
-		{"SYS_SETRLIMIT", Const, 0},
-		{"SYS_SETRTABLE", Const, 1},
-		{"SYS_SETSGROUPS", Const, 0},
-		{"SYS_SETSID", Const, 0},
-		{"SYS_SETSOCKOPT", Const, 0},
-		{"SYS_SETTID", Const, 0},
-		{"SYS_SETTID_WITH_PID", Const, 0},
-		{"SYS_SETTIMEOFDAY", Const, 0},
-		{"SYS_SETUID", Const, 0},
-		{"SYS_SETUID32", Const, 0},
-		{"SYS_SETWGROUPS", Const, 0},
-		{"SYS_SETXATTR", Const, 0},
-		{"SYS_SET_MEMPOLICY", Const, 0},
-		{"SYS_SET_ROBUST_LIST", Const, 0},
-		{"SYS_SET_THREAD_AREA", Const, 0},
-		{"SYS_SET_TID_ADDRESS", Const, 0},
-		{"SYS_SGETMASK", Const, 0},
-		{"SYS_SHARED_REGION_CHECK_NP", Const, 0},
-		{"SYS_SHARED_REGION_MAP_AND_SLIDE_NP", Const, 0},
-		{"SYS_SHMAT", Const, 0},
-		{"SYS_SHMCTL", Const, 0},
-		{"SYS_SHMDT", Const, 0},
-		{"SYS_SHMGET", Const, 0},
-		{"SYS_SHMSYS", Const, 0},
-		{"SYS_SHM_OPEN", Const, 0},
-		{"SYS_SHM_UNLINK", Const, 0},
-		{"SYS_SHUTDOWN", Const, 0},
-		{"SYS_SIGACTION", Const, 0},
-		{"SYS_SIGALTSTACK", Const, 0},
-		{"SYS_SIGNAL", Const, 0},
-		{"SYS_SIGNALFD", Const, 0},
-		{"SYS_SIGNALFD4", Const, 0},
-		{"SYS_SIGPENDING", Const, 0},
-		{"SYS_SIGPROCMASK", Const, 0},
-		{"SYS_SIGQUEUE", Const, 0},
-		{"SYS_SIGQUEUEINFO", Const, 1},
-		{"SYS_SIGRETURN", Const, 0},
-		{"SYS_SIGSUSPEND", Const, 0},
-		{"SYS_SIGSUSPEND_NOCANCEL", Const, 0},
-		{"SYS_SIGTIMEDWAIT", Const, 0},
-		{"SYS_SIGWAIT", Const, 0},
-		{"SYS_SIGWAITINFO", Const, 0},
-		{"SYS_SOCKET", Const, 0},
-		{"SYS_SOCKETCALL", Const, 0},
-		{"SYS_SOCKETPAIR", Const, 0},
-		{"SYS_SPLICE", Const, 0},
-		{"SYS_SSETMASK", Const, 0},
-		{"SYS_SSTK", Const, 0},
-		{"SYS_STACK_SNAPSHOT", Const, 0},
-		{"SYS_STAT", Const, 0},
-		{"SYS_STAT64", Const, 0},
-		{"SYS_STAT64_EXTENDED", Const, 0},
-		{"SYS_STATFS", Const, 0},
-		{"SYS_STATFS64", Const, 0},
-		{"SYS_STATV", Const, 0},
-		{"SYS_STATVFS1", Const, 1},
-		{"SYS_STAT_EXTENDED", Const, 0},
-		{"SYS_STIME", Const, 0},
-		{"SYS_STTY", Const, 0},
-		{"SYS_SWAPCONTEXT", Const, 0},
-		{"SYS_SWAPCTL", Const, 1},
-		{"SYS_SWAPOFF", Const, 0},
-		{"SYS_SWAPON", Const, 0},
-		{"SYS_SYMLINK", Const, 0},
-		{"SYS_SYMLINKAT", Const, 0},
-		{"SYS_SYNC", Const, 0},
-		{"SYS_SYNCFS", Const, 0},
-		{"SYS_SYNC_FILE_RANGE", Const, 0},
-		{"SYS_SYSARCH", Const, 0},
-		{"SYS_SYSCALL", Const, 0},
-		{"SYS_SYSCALL_BASE", Const, 0},
-		{"SYS_SYSFS", Const, 0},
-		{"SYS_SYSINFO", Const, 0},
-		{"SYS_SYSLOG", Const, 0},
-		{"SYS_TEE", Const, 0},
-		{"SYS_TGKILL", Const, 0},
-		{"SYS_THREAD_SELFID", Const, 0},
-		{"SYS_THR_CREATE", Const, 0},
-		{"SYS_THR_EXIT", Const, 0},
-		{"SYS_THR_KILL", Const, 0},
-		{"SYS_THR_KILL2", Const, 0},
-		{"SYS_THR_NEW", Const, 0},
-		{"SYS_THR_SELF", Const, 0},
-		{"SYS_THR_SET_NAME", Const, 0},
-		{"SYS_THR_SUSPEND", Const, 0},
-		{"SYS_THR_WAKE", Const, 0},
-		{"SYS_TIME", Const, 0},
-		{"SYS_TIMERFD_CREATE", Const, 0},
-		{"SYS_TIMERFD_GETTIME", Const, 0},
-		{"SYS_TIMERFD_SETTIME", Const, 0},
-		{"SYS_TIMER_CREATE", Const, 0},
-		{"SYS_TIMER_DELETE", Const, 0},
-		{"SYS_TIMER_GETOVERRUN", Const, 0},
-		{"SYS_TIMER_GETTIME", Const, 0},
-		{"SYS_TIMER_SETTIME", Const, 0},
-		{"SYS_TIMES", Const, 0},
-		{"SYS_TKILL", Const, 0},
-		{"SYS_TRUNCATE", Const, 0},
-		{"SYS_TRUNCATE64", Const, 0},
-		{"SYS_TUXCALL", Const, 0},
-		{"SYS_UGETRLIMIT", Const, 0},
-		{"SYS_ULIMIT", Const, 0},
-		{"SYS_UMASK", Const, 0},
-		{"SYS_UMASK_EXTENDED", Const, 0},
-		{"SYS_UMOUNT", Const, 0},
-		{"SYS_UMOUNT2", Const, 0},
-		{"SYS_UNAME", Const, 0},
-		{"SYS_UNDELETE", Const, 0},
-		{"SYS_UNLINK", Const, 0},
-		{"SYS_UNLINKAT", Const, 0},
-		{"SYS_UNMOUNT", Const, 0},
-		{"SYS_UNSHARE", Const, 0},
-		{"SYS_USELIB", Const, 0},
-		{"SYS_USTAT", Const, 0},
-		{"SYS_UTIME", Const, 0},
-		{"SYS_UTIMENSAT", Const, 0},
-		{"SYS_UTIMES", Const, 0},
-		{"SYS_UTRACE", Const, 0},
-		{"SYS_UUIDGEN", Const, 0},
-		{"SYS_VADVISE", Const, 1},
-		{"SYS_VFORK", Const, 0},
-		{"SYS_VHANGUP", Const, 0},
-		{"SYS_VM86", Const, 0},
-		{"SYS_VM86OLD", Const, 0},
-		{"SYS_VMSPLICE", Const, 0},
-		{"SYS_VM_PRESSURE_MONITOR", Const, 0},
-		{"SYS_VSERVER", Const, 0},
-		{"SYS_WAIT4", Const, 0},
-		{"SYS_WAIT4_NOCANCEL", Const, 0},
-		{"SYS_WAIT6", Const, 1},
-		{"SYS_WAITEVENT", Const, 0},
-		{"SYS_WAITID", Const, 0},
-		{"SYS_WAITID_NOCANCEL", Const, 0},
-		{"SYS_WAITPID", Const, 0},
-		{"SYS_WATCHEVENT", Const, 0},
-		{"SYS_WORKQ_KERNRETURN", Const, 0},
-		{"SYS_WORKQ_OPEN", Const, 0},
-		{"SYS_WRITE", Const, 0},
-		{"SYS_WRITEV", Const, 0},
-		{"SYS_WRITEV_NOCANCEL", Const, 0},
-		{"SYS_WRITE_NOCANCEL", Const, 0},
-		{"SYS_YIELD", Const, 0},
-		{"SYS__LLSEEK", Const, 0},
-		{"SYS__LWP_CONTINUE", Const, 1},
-		{"SYS__LWP_CREATE", Const, 1},
-		{"SYS__LWP_CTL", Const, 1},
-		{"SYS__LWP_DETACH", Const, 1},
-		{"SYS__LWP_EXIT", Const, 1},
-		{"SYS__LWP_GETNAME", Const, 1},
-		{"SYS__LWP_GETPRIVATE", Const, 1},
-		{"SYS__LWP_KILL", Const, 1},
-		{"SYS__LWP_PARK", Const, 1},
-		{"SYS__LWP_SELF", Const, 1},
-		{"SYS__LWP_SETNAME", Const, 1},
-		{"SYS__LWP_SETPRIVATE", Const, 1},
-		{"SYS__LWP_SUSPEND", Const, 1},
-		{"SYS__LWP_UNPARK", Const, 1},
-		{"SYS__LWP_UNPARK_ALL", Const, 1},
-		{"SYS__LWP_WAIT", Const, 1},
-		{"SYS__LWP_WAKEUP", Const, 1},
-		{"SYS__NEWSELECT", Const, 0},
-		{"SYS__PSET_BIND", Const, 1},
-		{"SYS__SCHED_GETAFFINITY", Const, 1},
-		{"SYS__SCHED_GETPARAM", Const, 1},
-		{"SYS__SCHED_SETAFFINITY", Const, 1},
-		{"SYS__SCHED_SETPARAM", Const, 1},
-		{"SYS__SYSCTL", Const, 0},
-		{"SYS__UMTX_LOCK", Const, 0},
-		{"SYS__UMTX_OP", Const, 0},
-		{"SYS__UMTX_UNLOCK", Const, 0},
-		{"SYS___ACL_ACLCHECK_FD", Const, 0},
-		{"SYS___ACL_ACLCHECK_FILE", Const, 0},
-		{"SYS___ACL_ACLCHECK_LINK", Const, 0},
-		{"SYS___ACL_DELETE_FD", Const, 0},
-		{"SYS___ACL_DELETE_FILE", Const, 0},
-		{"SYS___ACL_DELETE_LINK", Const, 0},
-		{"SYS___ACL_GET_FD", Const, 0},
-		{"SYS___ACL_GET_FILE", Const, 0},
-		{"SYS___ACL_GET_LINK", Const, 0},
-		{"SYS___ACL_SET_FD", Const, 0},
-		{"SYS___ACL_SET_FILE", Const, 0},
-		{"SYS___ACL_SET_LINK", Const, 0},
-		{"SYS___CAP_RIGHTS_GET", Const, 14},
-		{"SYS___CLONE", Const, 1},
-		{"SYS___DISABLE_THREADSIGNAL", Const, 0},
-		{"SYS___GETCWD", Const, 0},
-		{"SYS___GETLOGIN", Const, 1},
-		{"SYS___GET_TCB", Const, 1},
-		{"SYS___MAC_EXECVE", Const, 0},
-		{"SYS___MAC_GETFSSTAT", Const, 0},
-		{"SYS___MAC_GET_FD", Const, 0},
-		{"SYS___MAC_GET_FILE", Const, 0},
-		{"SYS___MAC_GET_LCID", Const, 0},
-		{"SYS___MAC_GET_LCTX", Const, 0},
-		{"SYS___MAC_GET_LINK", Const, 0},
-		{"SYS___MAC_GET_MOUNT", Const, 0},
-		{"SYS___MAC_GET_PID", Const, 0},
-		{"SYS___MAC_GET_PROC", Const, 0},
-		{"SYS___MAC_MOUNT", Const, 0},
-		{"SYS___MAC_SET_FD", Const, 0},
-		{"SYS___MAC_SET_FILE", Const, 0},
-		{"SYS___MAC_SET_LCTX", Const, 0},
-		{"SYS___MAC_SET_LINK", Const, 0},
-		{"SYS___MAC_SET_PROC", Const, 0},
-		{"SYS___MAC_SYSCALL", Const, 0},
-		{"SYS___OLD_SEMWAIT_SIGNAL", Const, 0},
-		{"SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL", Const, 0},
-		{"SYS___POSIX_CHOWN", Const, 1},
-		{"SYS___POSIX_FCHOWN", Const, 1},
-		{"SYS___POSIX_LCHOWN", Const, 1},
-		{"SYS___POSIX_RENAME", Const, 1},
-		{"SYS___PTHREAD_CANCELED", Const, 0},
-		{"SYS___PTHREAD_CHDIR", Const, 0},
-		{"SYS___PTHREAD_FCHDIR", Const, 0},
-		{"SYS___PTHREAD_KILL", Const, 0},
-		{"SYS___PTHREAD_MARKCANCEL", Const, 0},
-		{"SYS___PTHREAD_SIGMASK", Const, 0},
-		{"SYS___QUOTACTL", Const, 1},
-		{"SYS___SEMCTL", Const, 1},
-		{"SYS___SEMWAIT_SIGNAL", Const, 0},
-		{"SYS___SEMWAIT_SIGNAL_NOCANCEL", Const, 0},
-		{"SYS___SETLOGIN", Const, 1},
-		{"SYS___SETUGID", Const, 0},
-		{"SYS___SET_TCB", Const, 1},
-		{"SYS___SIGACTION_SIGTRAMP", Const, 1},
-		{"SYS___SIGTIMEDWAIT", Const, 1},
-		{"SYS___SIGWAIT", Const, 0},
-		{"SYS___SIGWAIT_NOCANCEL", Const, 0},
-		{"SYS___SYSCTL", Const, 0},
-		{"SYS___TFORK", Const, 1},
-		{"SYS___THREXIT", Const, 1},
-		{"SYS___THRSIGDIVERT", Const, 1},
-		{"SYS___THRSLEEP", Const, 1},
-		{"SYS___THRWAKEUP", Const, 1},
-		{"S_ARCH1", Const, 1},
-		{"S_ARCH2", Const, 1},
-		{"S_BLKSIZE", Const, 0},
-		{"S_IEXEC", Const, 0},
-		{"S_IFBLK", Const, 0},
-		{"S_IFCHR", Const, 0},
-		{"S_IFDIR", Const, 0},
-		{"S_IFIFO", Const, 0},
-		{"S_IFLNK", Const, 0},
-		{"S_IFMT", Const, 0},
-		{"S_IFREG", Const, 0},
-		{"S_IFSOCK", Const, 0},
-		{"S_IFWHT", Const, 0},
-		{"S_IREAD", Const, 0},
-		{"S_IRGRP", Const, 0},
-		{"S_IROTH", Const, 0},
-		{"S_IRUSR", Const, 0},
-		{"S_IRWXG", Const, 0},
-		{"S_IRWXO", Const, 0},
-		{"S_IRWXU", Const, 0},
-		{"S_ISGID", Const, 0},
-		{"S_ISTXT", Const, 0},
-		{"S_ISUID", Const, 0},
-		{"S_ISVTX", Const, 0},
-		{"S_IWGRP", Const, 0},
-		{"S_IWOTH", Const, 0},
-		{"S_IWRITE", Const, 0},
-		{"S_IWUSR", Const, 0},
-		{"S_IXGRP", Const, 0},
-		{"S_IXOTH", Const, 0},
-		{"S_IXUSR", Const, 0},
-		{"S_LOGIN_SET", Const, 1},
-		{"SecurityAttributes", Type, 0},
-		{"SecurityAttributes.InheritHandle", Field, 0},
-		{"SecurityAttributes.Length", Field, 0},
-		{"SecurityAttributes.SecurityDescriptor", Field, 0},
-		{"Seek", Func, 0},
-		{"Select", Func, 0},
-		{"Sendfile", Func, 0},
-		{"Sendmsg", Func, 0},
-		{"SendmsgN", Func, 3},
-		{"Sendto", Func, 0},
-		{"Servent", Type, 0},
-		{"Servent.Aliases", Field, 0},
-		{"Servent.Name", Field, 0},
-		{"Servent.Port", Field, 0},
-		{"Servent.Proto", Field, 0},
-		{"SetBpf", Func, 0},
-		{"SetBpfBuflen", Func, 0},
-		{"SetBpfDatalink", Func, 0},
-		{"SetBpfHeadercmpl", Func, 0},
-		{"SetBpfImmediate", Func, 0},
-		{"SetBpfInterface", Func, 0},
-		{"SetBpfPromisc", Func, 0},
-		{"SetBpfTimeout", Func, 0},
-		{"SetCurrentDirectory", Func, 0},
-		{"SetEndOfFile", Func, 0},
-		{"SetEnvironmentVariable", Func, 0},
-		{"SetFileAttributes", Func, 0},
-		{"SetFileCompletionNotificationModes", Func, 2},
-		{"SetFilePointer", Func, 0},
-		{"SetFileTime", Func, 0},
-		{"SetHandleInformation", Func, 0},
-		{"SetKevent", Func, 0},
-		{"SetLsfPromisc", Func, 0},
-		{"SetNonblock", Func, 0},
-		{"Setdomainname", Func, 0},
-		{"Setegid", Func, 0},
-		{"Setenv", Func, 0},
-		{"Seteuid", Func, 0},
-		{"Setfsgid", Func, 0},
-		{"Setfsuid", Func, 0},
-		{"Setgid", Func, 0},
-		{"Setgroups", Func, 0},
-		{"Sethostname", Func, 0},
-		{"Setlogin", Func, 0},
-		{"Setpgid", Func, 0},
-		{"Setpriority", Func, 0},
-		{"Setprivexec", Func, 0},
-		{"Setregid", Func, 0},
-		{"Setresgid", Func, 0},
-		{"Setresuid", Func, 0},
-		{"Setreuid", Func, 0},
-		{"Setrlimit", Func, 0},
-		{"Setsid", Func, 0},
-		{"Setsockopt", Func, 0},
-		{"SetsockoptByte", Func, 0},
-		{"SetsockoptICMPv6Filter", Func, 2},
-		{"SetsockoptIPMreq", Func, 0},
-		{"SetsockoptIPMreqn", Func, 0},
-		{"SetsockoptIPv6Mreq", Func, 0},
-		{"SetsockoptInet4Addr", Func, 0},
-		{"SetsockoptInt", Func, 0},
-		{"SetsockoptLinger", Func, 0},
-		{"SetsockoptString", Func, 0},
-		{"SetsockoptTimeval", Func, 0},
-		{"Settimeofday", Func, 0},
-		{"Setuid", Func, 0},
-		{"Setxattr", Func, 1},
-		{"Shutdown", Func, 0},
-		{"SidTypeAlias", Const, 0},
-		{"SidTypeComputer", Const, 0},
-		{"SidTypeDeletedAccount", Const, 0},
-		{"SidTypeDomain", Const, 0},
-		{"SidTypeGroup", Const, 0},
-		{"SidTypeInvalid", Const, 0},
-		{"SidTypeLabel", Const, 0},
-		{"SidTypeUnknown", Const, 0},
-		{"SidTypeUser", Const, 0},
-		{"SidTypeWellKnownGroup", Const, 0},
-		{"Signal", Type, 0},
-		{"SizeofBpfHdr", Const, 0},
-		{"SizeofBpfInsn", Const, 0},
-		{"SizeofBpfProgram", Const, 0},
-		{"SizeofBpfStat", Const, 0},
-		{"SizeofBpfVersion", Const, 0},
-		{"SizeofBpfZbuf", Const, 0},
-		{"SizeofBpfZbufHeader", Const, 0},
-		{"SizeofCmsghdr", Const, 0},
-		{"SizeofICMPv6Filter", Const, 2},
-		{"SizeofIPMreq", Const, 0},
-		{"SizeofIPMreqn", Const, 0},
-		{"SizeofIPv6MTUInfo", Const, 2},
-		{"SizeofIPv6Mreq", Const, 0},
-		{"SizeofIfAddrmsg", Const, 0},
-		{"SizeofIfAnnounceMsghdr", Const, 1},
-		{"SizeofIfData", Const, 0},
-		{"SizeofIfInfomsg", Const, 0},
-		{"SizeofIfMsghdr", Const, 0},
-		{"SizeofIfaMsghdr", Const, 0},
-		{"SizeofIfmaMsghdr", Const, 0},
-		{"SizeofIfmaMsghdr2", Const, 0},
-		{"SizeofInet4Pktinfo", Const, 0},
-		{"SizeofInet6Pktinfo", Const, 0},
-		{"SizeofInotifyEvent", Const, 0},
-		{"SizeofLinger", Const, 0},
-		{"SizeofMsghdr", Const, 0},
-		{"SizeofNlAttr", Const, 0},
-		{"SizeofNlMsgerr", Const, 0},
-		{"SizeofNlMsghdr", Const, 0},
-		{"SizeofRtAttr", Const, 0},
-		{"SizeofRtGenmsg", Const, 0},
-		{"SizeofRtMetrics", Const, 0},
-		{"SizeofRtMsg", Const, 0},
-		{"SizeofRtMsghdr", Const, 0},
-		{"SizeofRtNexthop", Const, 0},
-		{"SizeofSockFilter", Const, 0},
-		{"SizeofSockFprog", Const, 0},
-		{"SizeofSockaddrAny", Const, 0},
-		{"SizeofSockaddrDatalink", Const, 0},
-		{"SizeofSockaddrInet4", Const, 0},
-		{"SizeofSockaddrInet6", Const, 0},
-		{"SizeofSockaddrLinklayer", Const, 0},
-		{"SizeofSockaddrNetlink", Const, 0},
-		{"SizeofSockaddrUnix", Const, 0},
-		{"SizeofTCPInfo", Const, 1},
-		{"SizeofUcred", Const, 0},
-		{"SlicePtrFromStrings", Func, 1},
-		{"SockFilter", Type, 0},
-		{"SockFilter.Code", Field, 0},
-		{"SockFilter.Jf", Field, 0},
-		{"SockFilter.Jt", Field, 0},
-		{"SockFilter.K", Field, 0},
-		{"SockFprog", Type, 0},
-		{"SockFprog.Filter", Field, 0},
-		{"SockFprog.Len", Field, 0},
-		{"SockFprog.Pad_cgo_0", Field, 0},
-		{"Sockaddr", Type, 0},
-		{"SockaddrDatalink", Type, 0},
-		{"SockaddrDatalink.Alen", Field, 0},
-		{"SockaddrDatalink.Data", Field, 0},
-		{"SockaddrDatalink.Family", Field, 0},
-		{"SockaddrDatalink.Index", Field, 0},
-		{"SockaddrDatalink.Len", Field, 0},
-		{"SockaddrDatalink.Nlen", Field, 0},
-		{"SockaddrDatalink.Slen", Field, 0},
-		{"SockaddrDatalink.Type", Field, 0},
-		{"SockaddrGen", Type, 0},
-		{"SockaddrInet4", Type, 0},
-		{"SockaddrInet4.Addr", Field, 0},
-		{"SockaddrInet4.Port", Field, 0},
-		{"SockaddrInet6", Type, 0},
-		{"SockaddrInet6.Addr", Field, 0},
-		{"SockaddrInet6.Port", Field, 0},
-		{"SockaddrInet6.ZoneId", Field, 0},
-		{"SockaddrLinklayer", Type, 0},
-		{"SockaddrLinklayer.Addr", Field, 0},
-		{"SockaddrLinklayer.Halen", Field, 0},
-		{"SockaddrLinklayer.Hatype", Field, 0},
-		{"SockaddrLinklayer.Ifindex", Field, 0},
-		{"SockaddrLinklayer.Pkttype", Field, 0},
-		{"SockaddrLinklayer.Protocol", Field, 0},
-		{"SockaddrNetlink", Type, 0},
-		{"SockaddrNetlink.Family", Field, 0},
-		{"SockaddrNetlink.Groups", Field, 0},
-		{"SockaddrNetlink.Pad", Field, 0},
-		{"SockaddrNetlink.Pid", Field, 0},
-		{"SockaddrUnix", Type, 0},
-		{"SockaddrUnix.Name", Field, 0},
-		{"Socket", Func, 0},
-		{"SocketControlMessage", Type, 0},
-		{"SocketControlMessage.Data", Field, 0},
-		{"SocketControlMessage.Header", Field, 0},
-		{"SocketDisableIPv6", Var, 0},
-		{"Socketpair", Func, 0},
-		{"Splice", Func, 0},
-		{"StartProcess", Func, 0},
-		{"StartupInfo", Type, 0},
-		{"StartupInfo.Cb", Field, 0},
-		{"StartupInfo.Desktop", Field, 0},
-		{"StartupInfo.FillAttribute", Field, 0},
-		{"StartupInfo.Flags", Field, 0},
-		{"StartupInfo.ShowWindow", Field, 0},
-		{"StartupInfo.StdErr", Field, 0},
-		{"StartupInfo.StdInput", Field, 0},
-		{"StartupInfo.StdOutput", Field, 0},
-		{"StartupInfo.Title", Field, 0},
-		{"StartupInfo.X", Field, 0},
-		{"StartupInfo.XCountChars", Field, 0},
-		{"StartupInfo.XSize", Field, 0},
-		{"StartupInfo.Y", Field, 0},
-		{"StartupInfo.YCountChars", Field, 0},
-		{"StartupInfo.YSize", Field, 0},
-		{"Stat", Func, 0},
-		{"Stat_t", Type, 0},
-		{"Stat_t.Atim", Field, 0},
-		{"Stat_t.Atim_ext", Field, 12},
-		{"Stat_t.Atimespec", Field, 0},
-		{"Stat_t.Birthtimespec", Field, 0},
-		{"Stat_t.Blksize", Field, 0},
-		{"Stat_t.Blocks", Field, 0},
-		{"Stat_t.Btim_ext", Field, 12},
-		{"Stat_t.Ctim", Field, 0},
-		{"Stat_t.Ctim_ext", Field, 12},
-		{"Stat_t.Ctimespec", Field, 0},
-		{"Stat_t.Dev", Field, 0},
-		{"Stat_t.Flags", Field, 0},
-		{"Stat_t.Gen", Field, 0},
-		{"Stat_t.Gid", Field, 0},
-		{"Stat_t.Ino", Field, 0},
-		{"Stat_t.Lspare", Field, 0},
-		{"Stat_t.Lspare0", Field, 2},
-		{"Stat_t.Lspare1", Field, 2},
-		{"Stat_t.Mode", Field, 0},
-		{"Stat_t.Mtim", Field, 0},
-		{"Stat_t.Mtim_ext", Field, 12},
-		{"Stat_t.Mtimespec", Field, 0},
-		{"Stat_t.Nlink", Field, 0},
-		{"Stat_t.Pad_cgo_0", Field, 0},
-		{"Stat_t.Pad_cgo_1", Field, 0},
-		{"Stat_t.Pad_cgo_2", Field, 0},
-		{"Stat_t.Padding0", Field, 12},
-		{"Stat_t.Padding1", Field, 12},
-		{"Stat_t.Qspare", Field, 0},
-		{"Stat_t.Rdev", Field, 0},
-		{"Stat_t.Size", Field, 0},
-		{"Stat_t.Spare", Field, 2},
-		{"Stat_t.Uid", Field, 0},
-		{"Stat_t.X__pad0", Field, 0},
-		{"Stat_t.X__pad1", Field, 0},
-		{"Stat_t.X__pad2", Field, 0},
-		{"Stat_t.X__st_birthtim", Field, 2},
-		{"Stat_t.X__st_ino", Field, 0},
-		{"Stat_t.X__unused", Field, 0},
-		{"Statfs", Func, 0},
-		{"Statfs_t", Type, 0},
-		{"Statfs_t.Asyncreads", Field, 0},
-		{"Statfs_t.Asyncwrites", Field, 0},
-		{"Statfs_t.Bavail", Field, 0},
-		{"Statfs_t.Bfree", Field, 0},
-		{"Statfs_t.Blocks", Field, 0},
-		{"Statfs_t.Bsize", Field, 0},
-		{"Statfs_t.Charspare", Field, 0},
-		{"Statfs_t.F_asyncreads", Field, 2},
-		{"Statfs_t.F_asyncwrites", Field, 2},
-		{"Statfs_t.F_bavail", Field, 2},
-		{"Statfs_t.F_bfree", Field, 2},
-		{"Statfs_t.F_blocks", Field, 2},
-		{"Statfs_t.F_bsize", Field, 2},
-		{"Statfs_t.F_ctime", Field, 2},
-		{"Statfs_t.F_favail", Field, 2},
-		{"Statfs_t.F_ffree", Field, 2},
-		{"Statfs_t.F_files", Field, 2},
-		{"Statfs_t.F_flags", Field, 2},
-		{"Statfs_t.F_fsid", Field, 2},
-		{"Statfs_t.F_fstypename", Field, 2},
-		{"Statfs_t.F_iosize", Field, 2},
-		{"Statfs_t.F_mntfromname", Field, 2},
-		{"Statfs_t.F_mntfromspec", Field, 3},
-		{"Statfs_t.F_mntonname", Field, 2},
-		{"Statfs_t.F_namemax", Field, 2},
-		{"Statfs_t.F_owner", Field, 2},
-		{"Statfs_t.F_spare", Field, 2},
-		{"Statfs_t.F_syncreads", Field, 2},
-		{"Statfs_t.F_syncwrites", Field, 2},
-		{"Statfs_t.Ffree", Field, 0},
-		{"Statfs_t.Files", Field, 0},
-		{"Statfs_t.Flags", Field, 0},
-		{"Statfs_t.Frsize", Field, 0},
-		{"Statfs_t.Fsid", Field, 0},
-		{"Statfs_t.Fssubtype", Field, 0},
-		{"Statfs_t.Fstypename", Field, 0},
-		{"Statfs_t.Iosize", Field, 0},
-		{"Statfs_t.Mntfromname", Field, 0},
-		{"Statfs_t.Mntonname", Field, 0},
-		{"Statfs_t.Mount_info", Field, 2},
-		{"Statfs_t.Namelen", Field, 0},
-		{"Statfs_t.Namemax", Field, 0},
-		{"Statfs_t.Owner", Field, 0},
-		{"Statfs_t.Pad_cgo_0", Field, 0},
-		{"Statfs_t.Pad_cgo_1", Field, 2},
-		{"Statfs_t.Reserved", Field, 0},
-		{"Statfs_t.Spare", Field, 0},
-		{"Statfs_t.Syncreads", Field, 0},
-		{"Statfs_t.Syncwrites", Field, 0},
-		{"Statfs_t.Type", Field, 0},
-		{"Statfs_t.Version", Field, 0},
-		{"Stderr", Var, 0},
-		{"Stdin", Var, 0},
-		{"Stdout", Var, 0},
-		{"StringBytePtr", Func, 0},
-		{"StringByteSlice", Func, 0},
-		{"StringSlicePtr", Func, 0},
-		{"StringToSid", Func, 0},
-		{"StringToUTF16", Func, 0},
-		{"StringToUTF16Ptr", Func, 0},
-		{"Symlink", Func, 0},
-		{"Sync", Func, 0},
-		{"SyncFileRange", Func, 0},
-		{"SysProcAttr", Type, 0},
-		{"SysProcAttr.AdditionalInheritedHandles", Field, 17},
-		{"SysProcAttr.AmbientCaps", Field, 9},
-		{"SysProcAttr.CgroupFD", Field, 20},
-		{"SysProcAttr.Chroot", Field, 0},
-		{"SysProcAttr.Cloneflags", Field, 2},
-		{"SysProcAttr.CmdLine", Field, 0},
-		{"SysProcAttr.CreationFlags", Field, 1},
-		{"SysProcAttr.Credential", Field, 0},
-		{"SysProcAttr.Ctty", Field, 1},
-		{"SysProcAttr.Foreground", Field, 5},
-		{"SysProcAttr.GidMappings", Field, 4},
-		{"SysProcAttr.GidMappingsEnableSetgroups", Field, 5},
-		{"SysProcAttr.HideWindow", Field, 0},
-		{"SysProcAttr.Jail", Field, 21},
-		{"SysProcAttr.NoInheritHandles", Field, 16},
-		{"SysProcAttr.Noctty", Field, 0},
-		{"SysProcAttr.ParentProcess", Field, 17},
-		{"SysProcAttr.Pdeathsig", Field, 0},
-		{"SysProcAttr.Pgid", Field, 5},
-		{"SysProcAttr.PidFD", Field, 22},
-		{"SysProcAttr.ProcessAttributes", Field, 13},
-		{"SysProcAttr.Ptrace", Field, 0},
-		{"SysProcAttr.Setctty", Field, 0},
-		{"SysProcAttr.Setpgid", Field, 0},
-		{"SysProcAttr.Setsid", Field, 0},
-		{"SysProcAttr.ThreadAttributes", Field, 13},
-		{"SysProcAttr.Token", Field, 10},
-		{"SysProcAttr.UidMappings", Field, 4},
-		{"SysProcAttr.Unshareflags", Field, 7},
-		{"SysProcAttr.UseCgroupFD", Field, 20},
-		{"SysProcIDMap", Type, 4},
-		{"SysProcIDMap.ContainerID", Field, 4},
-		{"SysProcIDMap.HostID", Field, 4},
-		{"SysProcIDMap.Size", Field, 4},
-		{"Syscall", Func, 0},
-		{"Syscall12", Func, 0},
-		{"Syscall15", Func, 0},
-		{"Syscall18", Func, 12},
-		{"Syscall6", Func, 0},
-		{"Syscall9", Func, 0},
-		{"SyscallN", Func, 18},
-		{"Sysctl", Func, 0},
-		{"SysctlUint32", Func, 0},
-		{"Sysctlnode", Type, 2},
-		{"Sysctlnode.Flags", Field, 2},
-		{"Sysctlnode.Name", Field, 2},
-		{"Sysctlnode.Num", Field, 2},
-		{"Sysctlnode.Un", Field, 2},
-		{"Sysctlnode.Ver", Field, 2},
-		{"Sysctlnode.X__rsvd", Field, 2},
-		{"Sysctlnode.X_sysctl_desc", Field, 2},
-		{"Sysctlnode.X_sysctl_func", Field, 2},
-		{"Sysctlnode.X_sysctl_parent", Field, 2},
-		{"Sysctlnode.X_sysctl_size", Field, 2},
-		{"Sysinfo", Func, 0},
-		{"Sysinfo_t", Type, 0},
-		{"Sysinfo_t.Bufferram", Field, 0},
-		{"Sysinfo_t.Freehigh", Field, 0},
-		{"Sysinfo_t.Freeram", Field, 0},
-		{"Sysinfo_t.Freeswap", Field, 0},
-		{"Sysinfo_t.Loads", Field, 0},
-		{"Sysinfo_t.Pad", Field, 0},
-		{"Sysinfo_t.Pad_cgo_0", Field, 0},
-		{"Sysinfo_t.Pad_cgo_1", Field, 0},
-		{"Sysinfo_t.Procs", Field, 0},
-		{"Sysinfo_t.Sharedram", Field, 0},
-		{"Sysinfo_t.Totalhigh", Field, 0},
-		{"Sysinfo_t.Totalram", Field, 0},
-		{"Sysinfo_t.Totalswap", Field, 0},
-		{"Sysinfo_t.Unit", Field, 0},
-		{"Sysinfo_t.Uptime", Field, 0},
-		{"Sysinfo_t.X_f", Field, 0},
-		{"Systemtime", Type, 0},
-		{"Systemtime.Day", Field, 0},
-		{"Systemtime.DayOfWeek", Field, 0},
-		{"Systemtime.Hour", Field, 0},
-		{"Systemtime.Milliseconds", Field, 0},
-		{"Systemtime.Minute", Field, 0},
-		{"Systemtime.Month", Field, 0},
-		{"Systemtime.Second", Field, 0},
-		{"Systemtime.Year", Field, 0},
-		{"TCGETS", Const, 0},
-		{"TCIFLUSH", Const, 1},
-		{"TCIOFLUSH", Const, 1},
-		{"TCOFLUSH", Const, 1},
-		{"TCPInfo", Type, 1},
-		{"TCPInfo.Advmss", Field, 1},
-		{"TCPInfo.Ato", Field, 1},
-		{"TCPInfo.Backoff", Field, 1},
-		{"TCPInfo.Ca_state", Field, 1},
-		{"TCPInfo.Fackets", Field, 1},
-		{"TCPInfo.Last_ack_recv", Field, 1},
-		{"TCPInfo.Last_ack_sent", Field, 1},
-		{"TCPInfo.Last_data_recv", Field, 1},
-		{"TCPInfo.Last_data_sent", Field, 1},
-		{"TCPInfo.Lost", Field, 1},
-		{"TCPInfo.Options", Field, 1},
-		{"TCPInfo.Pad_cgo_0", Field, 1},
-		{"TCPInfo.Pmtu", Field, 1},
-		{"TCPInfo.Probes", Field, 1},
-		{"TCPInfo.Rcv_mss", Field, 1},
-		{"TCPInfo.Rcv_rtt", Field, 1},
-		{"TCPInfo.Rcv_space", Field, 1},
-		{"TCPInfo.Rcv_ssthresh", Field, 1},
-		{"TCPInfo.Reordering", Field, 1},
-		{"TCPInfo.Retrans", Field, 1},
-		{"TCPInfo.Retransmits", Field, 1},
-		{"TCPInfo.Rto", Field, 1},
-		{"TCPInfo.Rtt", Field, 1},
-		{"TCPInfo.Rttvar", Field, 1},
-		{"TCPInfo.Sacked", Field, 1},
-		{"TCPInfo.Snd_cwnd", Field, 1},
-		{"TCPInfo.Snd_mss", Field, 1},
-		{"TCPInfo.Snd_ssthresh", Field, 1},
-		{"TCPInfo.State", Field, 1},
-		{"TCPInfo.Total_retrans", Field, 1},
-		{"TCPInfo.Unacked", Field, 1},
-		{"TCPKeepalive", Type, 3},
-		{"TCPKeepalive.Interval", Field, 3},
-		{"TCPKeepalive.OnOff", Field, 3},
-		{"TCPKeepalive.Time", Field, 3},
-		{"TCP_CA_NAME_MAX", Const, 0},
-		{"TCP_CONGCTL", Const, 1},
-		{"TCP_CONGESTION", Const, 0},
-		{"TCP_CONNECTIONTIMEOUT", Const, 0},
-		{"TCP_CORK", Const, 0},
-		{"TCP_DEFER_ACCEPT", Const, 0},
-		{"TCP_ENABLE_ECN", Const, 16},
-		{"TCP_INFO", Const, 0},
-		{"TCP_KEEPALIVE", Const, 0},
-		{"TCP_KEEPCNT", Const, 0},
-		{"TCP_KEEPIDLE", Const, 0},
-		{"TCP_KEEPINIT", Const, 1},
-		{"TCP_KEEPINTVL", Const, 0},
-		{"TCP_LINGER2", Const, 0},
-		{"TCP_MAXBURST", Const, 0},
-		{"TCP_MAXHLEN", Const, 0},
-		{"TCP_MAXOLEN", Const, 0},
-		{"TCP_MAXSEG", Const, 0},
-		{"TCP_MAXWIN", Const, 0},
-		{"TCP_MAX_SACK", Const, 0},
-		{"TCP_MAX_WINSHIFT", Const, 0},
-		{"TCP_MD5SIG", Const, 0},
-		{"TCP_MD5SIG_MAXKEYLEN", Const, 0},
-		{"TCP_MINMSS", Const, 0},
-		{"TCP_MINMSSOVERLOAD", Const, 0},
-		{"TCP_MSS", Const, 0},
-		{"TCP_NODELAY", Const, 0},
-		{"TCP_NOOPT", Const, 0},
-		{"TCP_NOPUSH", Const, 0},
-		{"TCP_NOTSENT_LOWAT", Const, 16},
-		{"TCP_NSTATES", Const, 1},
-		{"TCP_QUICKACK", Const, 0},
-		{"TCP_RXT_CONNDROPTIME", Const, 0},
-		{"TCP_RXT_FINDROP", Const, 0},
-		{"TCP_SACK_ENABLE", Const, 1},
-		{"TCP_SENDMOREACKS", Const, 16},
-		{"TCP_SYNCNT", Const, 0},
-		{"TCP_VENDOR", Const, 3},
-		{"TCP_WINDOW_CLAMP", Const, 0},
-		{"TCSAFLUSH", Const, 1},
-		{"TCSETS", Const, 0},
-		{"TF_DISCONNECT", Const, 0},
-		{"TF_REUSE_SOCKET", Const, 0},
-		{"TF_USE_DEFAULT_WORKER", Const, 0},
-		{"TF_USE_KERNEL_APC", Const, 0},
-		{"TF_USE_SYSTEM_THREAD", Const, 0},
-		{"TF_WRITE_BEHIND", Const, 0},
-		{"TH32CS_INHERIT", Const, 4},
-		{"TH32CS_SNAPALL", Const, 4},
-		{"TH32CS_SNAPHEAPLIST", Const, 4},
-		{"TH32CS_SNAPMODULE", Const, 4},
-		{"TH32CS_SNAPMODULE32", Const, 4},
-		{"TH32CS_SNAPPROCESS", Const, 4},
-		{"TH32CS_SNAPTHREAD", Const, 4},
-		{"TIME_ZONE_ID_DAYLIGHT", Const, 0},
-		{"TIME_ZONE_ID_STANDARD", Const, 0},
-		{"TIME_ZONE_ID_UNKNOWN", Const, 0},
-		{"TIOCCBRK", Const, 0},
-		{"TIOCCDTR", Const, 0},
-		{"TIOCCONS", Const, 0},
-		{"TIOCDCDTIMESTAMP", Const, 0},
-		{"TIOCDRAIN", Const, 0},
-		{"TIOCDSIMICROCODE", Const, 0},
-		{"TIOCEXCL", Const, 0},
-		{"TIOCEXT", Const, 0},
-		{"TIOCFLAG_CDTRCTS", Const, 1},
-		{"TIOCFLAG_CLOCAL", Const, 1},
-		{"TIOCFLAG_CRTSCTS", Const, 1},
-		{"TIOCFLAG_MDMBUF", Const, 1},
-		{"TIOCFLAG_PPS", Const, 1},
-		{"TIOCFLAG_SOFTCAR", Const, 1},
-		{"TIOCFLUSH", Const, 0},
-		{"TIOCGDEV", Const, 0},
-		{"TIOCGDRAINWAIT", Const, 0},
-		{"TIOCGETA", Const, 0},
-		{"TIOCGETD", Const, 0},
-		{"TIOCGFLAGS", Const, 1},
-		{"TIOCGICOUNT", Const, 0},
-		{"TIOCGLCKTRMIOS", Const, 0},
-		{"TIOCGLINED", Const, 1},
-		{"TIOCGPGRP", Const, 0},
-		{"TIOCGPTN", Const, 0},
-		{"TIOCGQSIZE", Const, 1},
-		{"TIOCGRANTPT", Const, 1},
-		{"TIOCGRS485", Const, 0},
-		{"TIOCGSERIAL", Const, 0},
-		{"TIOCGSID", Const, 0},
-		{"TIOCGSIZE", Const, 1},
-		{"TIOCGSOFTCAR", Const, 0},
-		{"TIOCGTSTAMP", Const, 1},
-		{"TIOCGWINSZ", Const, 0},
-		{"TIOCINQ", Const, 0},
-		{"TIOCIXOFF", Const, 0},
-		{"TIOCIXON", Const, 0},
-		{"TIOCLINUX", Const, 0},
-		{"TIOCMBIC", Const, 0},
-		{"TIOCMBIS", Const, 0},
-		{"TIOCMGDTRWAIT", Const, 0},
-		{"TIOCMGET", Const, 0},
-		{"TIOCMIWAIT", Const, 0},
-		{"TIOCMODG", Const, 0},
-		{"TIOCMODS", Const, 0},
-		{"TIOCMSDTRWAIT", Const, 0},
-		{"TIOCMSET", Const, 0},
-		{"TIOCM_CAR", Const, 0},
-		{"TIOCM_CD", Const, 0},
-		{"TIOCM_CTS", Const, 0},
-		{"TIOCM_DCD", Const, 0},
-		{"TIOCM_DSR", Const, 0},
-		{"TIOCM_DTR", Const, 0},
-		{"TIOCM_LE", Const, 0},
-		{"TIOCM_RI", Const, 0},
-		{"TIOCM_RNG", Const, 0},
-		{"TIOCM_RTS", Const, 0},
-		{"TIOCM_SR", Const, 0},
-		{"TIOCM_ST", Const, 0},
-		{"TIOCNOTTY", Const, 0},
-		{"TIOCNXCL", Const, 0},
-		{"TIOCOUTQ", Const, 0},
-		{"TIOCPKT", Const, 0},
-		{"TIOCPKT_DATA", Const, 0},
-		{"TIOCPKT_DOSTOP", Const, 0},
-		{"TIOCPKT_FLUSHREAD", Const, 0},
-		{"TIOCPKT_FLUSHWRITE", Const, 0},
-		{"TIOCPKT_IOCTL", Const, 0},
-		{"TIOCPKT_NOSTOP", Const, 0},
-		{"TIOCPKT_START", Const, 0},
-		{"TIOCPKT_STOP", Const, 0},
-		{"TIOCPTMASTER", Const, 0},
-		{"TIOCPTMGET", Const, 1},
-		{"TIOCPTSNAME", Const, 1},
-		{"TIOCPTYGNAME", Const, 0},
-		{"TIOCPTYGRANT", Const, 0},
-		{"TIOCPTYUNLK", Const, 0},
-		{"TIOCRCVFRAME", Const, 1},
-		{"TIOCREMOTE", Const, 0},
-		{"TIOCSBRK", Const, 0},
-		{"TIOCSCONS", Const, 0},
-		{"TIOCSCTTY", Const, 0},
-		{"TIOCSDRAINWAIT", Const, 0},
-		{"TIOCSDTR", Const, 0},
-		{"TIOCSERCONFIG", Const, 0},
-		{"TIOCSERGETLSR", Const, 0},
-		{"TIOCSERGETMULTI", Const, 0},
-		{"TIOCSERGSTRUCT", Const, 0},
-		{"TIOCSERGWILD", Const, 0},
-		{"TIOCSERSETMULTI", Const, 0},
-		{"TIOCSERSWILD", Const, 0},
-		{"TIOCSER_TEMT", Const, 0},
-		{"TIOCSETA", Const, 0},
-		{"TIOCSETAF", Const, 0},
-		{"TIOCSETAW", Const, 0},
-		{"TIOCSETD", Const, 0},
-		{"TIOCSFLAGS", Const, 1},
-		{"TIOCSIG", Const, 0},
-		{"TIOCSLCKTRMIOS", Const, 0},
-		{"TIOCSLINED", Const, 1},
-		{"TIOCSPGRP", Const, 0},
-		{"TIOCSPTLCK", Const, 0},
-		{"TIOCSQSIZE", Const, 1},
-		{"TIOCSRS485", Const, 0},
-		{"TIOCSSERIAL", Const, 0},
-		{"TIOCSSIZE", Const, 1},
-		{"TIOCSSOFTCAR", Const, 0},
-		{"TIOCSTART", Const, 0},
-		{"TIOCSTAT", Const, 0},
-		{"TIOCSTI", Const, 0},
-		{"TIOCSTOP", Const, 0},
-		{"TIOCSTSTAMP", Const, 1},
-		{"TIOCSWINSZ", Const, 0},
-		{"TIOCTIMESTAMP", Const, 0},
-		{"TIOCUCNTL", Const, 0},
-		{"TIOCVHANGUP", Const, 0},
-		{"TIOCXMTFRAME", Const, 1},
-		{"TOKEN_ADJUST_DEFAULT", Const, 0},
-		{"TOKEN_ADJUST_GROUPS", Const, 0},
-		{"TOKEN_ADJUST_PRIVILEGES", Const, 0},
-		{"TOKEN_ADJUST_SESSIONID", Const, 11},
-		{"TOKEN_ALL_ACCESS", Const, 0},
-		{"TOKEN_ASSIGN_PRIMARY", Const, 0},
-		{"TOKEN_DUPLICATE", Const, 0},
-		{"TOKEN_EXECUTE", Const, 0},
-		{"TOKEN_IMPERSONATE", Const, 0},
-		{"TOKEN_QUERY", Const, 0},
-		{"TOKEN_QUERY_SOURCE", Const, 0},
-		{"TOKEN_READ", Const, 0},
-		{"TOKEN_WRITE", Const, 0},
-		{"TOSTOP", Const, 0},
-		{"TRUNCATE_EXISTING", Const, 0},
-		{"TUNATTACHFILTER", Const, 0},
-		{"TUNDETACHFILTER", Const, 0},
-		{"TUNGETFEATURES", Const, 0},
-		{"TUNGETIFF", Const, 0},
-		{"TUNGETSNDBUF", Const, 0},
-		{"TUNGETVNETHDRSZ", Const, 0},
-		{"TUNSETDEBUG", Const, 0},
-		{"TUNSETGROUP", Const, 0},
-		{"TUNSETIFF", Const, 0},
-		{"TUNSETLINK", Const, 0},
-		{"TUNSETNOCSUM", Const, 0},
-		{"TUNSETOFFLOAD", Const, 0},
-		{"TUNSETOWNER", Const, 0},
-		{"TUNSETPERSIST", Const, 0},
-		{"TUNSETSNDBUF", Const, 0},
-		{"TUNSETTXFILTER", Const, 0},
-		{"TUNSETVNETHDRSZ", Const, 0},
-		{"Tee", Func, 0},
-		{"TerminateProcess", Func, 0},
-		{"Termios", Type, 0},
-		{"Termios.Cc", Field, 0},
-		{"Termios.Cflag", Field, 0},
-		{"Termios.Iflag", Field, 0},
-		{"Termios.Ispeed", Field, 0},
-		{"Termios.Lflag", Field, 0},
-		{"Termios.Line", Field, 0},
-		{"Termios.Oflag", Field, 0},
-		{"Termios.Ospeed", Field, 0},
-		{"Termios.Pad_cgo_0", Field, 0},
-		{"Tgkill", Func, 0},
-		{"Time", Func, 0},
-		{"Time_t", Type, 0},
-		{"Times", Func, 0},
-		{"Timespec", Type, 0},
-		{"Timespec.Nsec", Field, 0},
-		{"Timespec.Pad_cgo_0", Field, 2},
-		{"Timespec.Sec", Field, 0},
-		{"TimespecToNsec", Func, 0},
-		{"Timeval", Type, 0},
-		{"Timeval.Pad_cgo_0", Field, 0},
-		{"Timeval.Sec", Field, 0},
-		{"Timeval.Usec", Field, 0},
-		{"Timeval32", Type, 0},
-		{"Timeval32.Sec", Field, 0},
-		{"Timeval32.Usec", Field, 0},
-		{"TimevalToNsec", Func, 0},
-		{"Timex", Type, 0},
-		{"Timex.Calcnt", Field, 0},
-		{"Timex.Constant", Field, 0},
-		{"Timex.Errcnt", Field, 0},
-		{"Timex.Esterror", Field, 0},
-		{"Timex.Freq", Field, 0},
-		{"Timex.Jitcnt", Field, 0},
-		{"Timex.Jitter", Field, 0},
-		{"Timex.Maxerror", Field, 0},
-		{"Timex.Modes", Field, 0},
-		{"Timex.Offset", Field, 0},
-		{"Timex.Pad_cgo_0", Field, 0},
-		{"Timex.Pad_cgo_1", Field, 0},
-		{"Timex.Pad_cgo_2", Field, 0},
-		{"Timex.Pad_cgo_3", Field, 0},
-		{"Timex.Ppsfreq", Field, 0},
-		{"Timex.Precision", Field, 0},
-		{"Timex.Shift", Field, 0},
-		{"Timex.Stabil", Field, 0},
-		{"Timex.Status", Field, 0},
-		{"Timex.Stbcnt", Field, 0},
-		{"Timex.Tai", Field, 0},
-		{"Timex.Tick", Field, 0},
-		{"Timex.Time", Field, 0},
-		{"Timex.Tolerance", Field, 0},
-		{"Timezoneinformation", Type, 0},
-		{"Timezoneinformation.Bias", Field, 0},
-		{"Timezoneinformation.DaylightBias", Field, 0},
-		{"Timezoneinformation.DaylightDate", Field, 0},
-		{"Timezoneinformation.DaylightName", Field, 0},
-		{"Timezoneinformation.StandardBias", Field, 0},
-		{"Timezoneinformation.StandardDate", Field, 0},
-		{"Timezoneinformation.StandardName", Field, 0},
-		{"Tms", Type, 0},
-		{"Tms.Cstime", Field, 0},
-		{"Tms.Cutime", Field, 0},
-		{"Tms.Stime", Field, 0},
-		{"Tms.Utime", Field, 0},
-		{"Token", Type, 0},
-		{"TokenAccessInformation", Const, 0},
-		{"TokenAuditPolicy", Const, 0},
-		{"TokenDefaultDacl", Const, 0},
-		{"TokenElevation", Const, 0},
-		{"TokenElevationType", Const, 0},
-		{"TokenGroups", Const, 0},
-		{"TokenGroupsAndPrivileges", Const, 0},
-		{"TokenHasRestrictions", Const, 0},
-		{"TokenImpersonationLevel", Const, 0},
-		{"TokenIntegrityLevel", Const, 0},
-		{"TokenLinkedToken", Const, 0},
-		{"TokenLogonSid", Const, 0},
-		{"TokenMandatoryPolicy", Const, 0},
-		{"TokenOrigin", Const, 0},
-		{"TokenOwner", Const, 0},
-		{"TokenPrimaryGroup", Const, 0},
-		{"TokenPrivileges", Const, 0},
-		{"TokenRestrictedSids", Const, 0},
-		{"TokenSandBoxInert", Const, 0},
-		{"TokenSessionId", Const, 0},
-		{"TokenSessionReference", Const, 0},
-		{"TokenSource", Const, 0},
-		{"TokenStatistics", Const, 0},
-		{"TokenType", Const, 0},
-		{"TokenUIAccess", Const, 0},
-		{"TokenUser", Const, 0},
-		{"TokenVirtualizationAllowed", Const, 0},
-		{"TokenVirtualizationEnabled", Const, 0},
-		{"Tokenprimarygroup", Type, 0},
-		{"Tokenprimarygroup.PrimaryGroup", Field, 0},
-		{"Tokenuser", Type, 0},
-		{"Tokenuser.User", Field, 0},
-		{"TranslateAccountName", Func, 0},
-		{"TranslateName", Func, 0},
-		{"TransmitFile", Func, 0},
-		{"TransmitFileBuffers", Type, 0},
-		{"TransmitFileBuffers.Head", Field, 0},
-		{"TransmitFileBuffers.HeadLength", Field, 0},
-		{"TransmitFileBuffers.Tail", Field, 0},
-		{"TransmitFileBuffers.TailLength", Field, 0},
-		{"Truncate", Func, 0},
-		{"UNIX_PATH_MAX", Const, 12},
-		{"USAGE_MATCH_TYPE_AND", Const, 0},
-		{"USAGE_MATCH_TYPE_OR", Const, 0},
-		{"UTF16FromString", Func, 1},
-		{"UTF16PtrFromString", Func, 1},
-		{"UTF16ToString", Func, 0},
-		{"Ucred", Type, 0},
-		{"Ucred.Gid", Field, 0},
-		{"Ucred.Pid", Field, 0},
-		{"Ucred.Uid", Field, 0},
-		{"Umask", Func, 0},
-		{"Uname", Func, 0},
-		{"Undelete", Func, 0},
-		{"UnixCredentials", Func, 0},
-		{"UnixRights", Func, 0},
-		{"Unlink", Func, 0},
-		{"Unlinkat", Func, 0},
-		{"UnmapViewOfFile", Func, 0},
-		{"Unmount", Func, 0},
-		{"Unsetenv", Func, 4},
-		{"Unshare", Func, 0},
-		{"UserInfo10", Type, 0},
-		{"UserInfo10.Comment", Field, 0},
-		{"UserInfo10.FullName", Field, 0},
-		{"UserInfo10.Name", Field, 0},
-		{"UserInfo10.UsrComment", Field, 0},
-		{"Ustat", Func, 0},
-		{"Ustat_t", Type, 0},
-		{"Ustat_t.Fname", Field, 0},
-		{"Ustat_t.Fpack", Field, 0},
-		{"Ustat_t.Pad_cgo_0", Field, 0},
-		{"Ustat_t.Pad_cgo_1", Field, 0},
-		{"Ustat_t.Tfree", Field, 0},
-		{"Ustat_t.Tinode", Field, 0},
-		{"Utimbuf", Type, 0},
-		{"Utimbuf.Actime", Field, 0},
-		{"Utimbuf.Modtime", Field, 0},
-		{"Utime", Func, 0},
-		{"Utimes", Func, 0},
-		{"UtimesNano", Func, 1},
-		{"Utsname", Type, 0},
-		{"Utsname.Domainname", Field, 0},
-		{"Utsname.Machine", Field, 0},
-		{"Utsname.Nodename", Field, 0},
-		{"Utsname.Release", Field, 0},
-		{"Utsname.Sysname", Field, 0},
-		{"Utsname.Version", Field, 0},
-		{"VDISCARD", Const, 0},
-		{"VDSUSP", Const, 1},
-		{"VEOF", Const, 0},
-		{"VEOL", Const, 0},
-		{"VEOL2", Const, 0},
-		{"VERASE", Const, 0},
-		{"VERASE2", Const, 1},
-		{"VINTR", Const, 0},
-		{"VKILL", Const, 0},
-		{"VLNEXT", Const, 0},
-		{"VMIN", Const, 0},
-		{"VQUIT", Const, 0},
-		{"VREPRINT", Const, 0},
-		{"VSTART", Const, 0},
-		{"VSTATUS", Const, 1},
-		{"VSTOP", Const, 0},
-		{"VSUSP", Const, 0},
-		{"VSWTC", Const, 0},
-		{"VT0", Const, 1},
-		{"VT1", Const, 1},
-		{"VTDLY", Const, 1},
-		{"VTIME", Const, 0},
-		{"VWERASE", Const, 0},
-		{"VirtualLock", Func, 0},
-		{"VirtualUnlock", Func, 0},
-		{"WAIT_ABANDONED", Const, 0},
-		{"WAIT_FAILED", Const, 0},
-		{"WAIT_OBJECT_0", Const, 0},
-		{"WAIT_TIMEOUT", Const, 0},
-		{"WALL", Const, 0},
-		{"WALLSIG", Const, 1},
-		{"WALTSIG", Const, 1},
-		{"WCLONE", Const, 0},
-		{"WCONTINUED", Const, 0},
-		{"WCOREFLAG", Const, 0},
-		{"WEXITED", Const, 0},
-		{"WLINUXCLONE", Const, 0},
-		{"WNOHANG", Const, 0},
-		{"WNOTHREAD", Const, 0},
-		{"WNOWAIT", Const, 0},
-		{"WNOZOMBIE", Const, 1},
-		{"WOPTSCHECKED", Const, 1},
-		{"WORDSIZE", Const, 0},
-		{"WSABuf", Type, 0},
-		{"WSABuf.Buf", Field, 0},
-		{"WSABuf.Len", Field, 0},
-		{"WSACleanup", Func, 0},
-		{"WSADESCRIPTION_LEN", Const, 0},
-		{"WSAData", Type, 0},
-		{"WSAData.Description", Field, 0},
-		{"WSAData.HighVersion", Field, 0},
-		{"WSAData.MaxSockets", Field, 0},
-		{"WSAData.MaxUdpDg", Field, 0},
-		{"WSAData.SystemStatus", Field, 0},
-		{"WSAData.VendorInfo", Field, 0},
-		{"WSAData.Version", Field, 0},
-		{"WSAEACCES", Const, 2},
-		{"WSAECONNABORTED", Const, 9},
-		{"WSAECONNRESET", Const, 3},
-		{"WSAENOPROTOOPT", Const, 23},
-		{"WSAEnumProtocols", Func, 2},
-		{"WSAID_CONNECTEX", Var, 1},
-		{"WSAIoctl", Func, 0},
-		{"WSAPROTOCOL_LEN", Const, 2},
-		{"WSAProtocolChain", Type, 2},
-		{"WSAProtocolChain.ChainEntries", Field, 2},
-		{"WSAProtocolChain.ChainLen", Field, 2},
-		{"WSAProtocolInfo", Type, 2},
-		{"WSAProtocolInfo.AddressFamily", Field, 2},
-		{"WSAProtocolInfo.CatalogEntryId", Field, 2},
-		{"WSAProtocolInfo.MaxSockAddr", Field, 2},
-		{"WSAProtocolInfo.MessageSize", Field, 2},
-		{"WSAProtocolInfo.MinSockAddr", Field, 2},
-		{"WSAProtocolInfo.NetworkByteOrder", Field, 2},
-		{"WSAProtocolInfo.Protocol", Field, 2},
-		{"WSAProtocolInfo.ProtocolChain", Field, 2},
-		{"WSAProtocolInfo.ProtocolMaxOffset", Field, 2},
-		{"WSAProtocolInfo.ProtocolName", Field, 2},
-		{"WSAProtocolInfo.ProviderFlags", Field, 2},
-		{"WSAProtocolInfo.ProviderId", Field, 2},
-		{"WSAProtocolInfo.ProviderReserved", Field, 2},
-		{"WSAProtocolInfo.SecurityScheme", Field, 2},
-		{"WSAProtocolInfo.ServiceFlags1", Field, 2},
-		{"WSAProtocolInfo.ServiceFlags2", Field, 2},
-		{"WSAProtocolInfo.ServiceFlags3", Field, 2},
-		{"WSAProtocolInfo.ServiceFlags4", Field, 2},
-		{"WSAProtocolInfo.SocketType", Field, 2},
-		{"WSAProtocolInfo.Version", Field, 2},
-		{"WSARecv", Func, 0},
-		{"WSARecvFrom", Func, 0},
-		{"WSASYS_STATUS_LEN", Const, 0},
-		{"WSASend", Func, 0},
-		{"WSASendTo", Func, 0},
-		{"WSASendto", Func, 0},
-		{"WSAStartup", Func, 0},
-		{"WSTOPPED", Const, 0},
-		{"WTRAPPED", Const, 1},
-		{"WUNTRACED", Const, 0},
-		{"Wait4", Func, 0},
-		{"WaitForSingleObject", Func, 0},
-		{"WaitStatus", Type, 0},
-		{"WaitStatus.ExitCode", Field, 0},
-		{"Win32FileAttributeData", Type, 0},
-		{"Win32FileAttributeData.CreationTime", Field, 0},
-		{"Win32FileAttributeData.FileAttributes", Field, 0},
-		{"Win32FileAttributeData.FileSizeHigh", Field, 0},
-		{"Win32FileAttributeData.FileSizeLow", Field, 0},
-		{"Win32FileAttributeData.LastAccessTime", Field, 0},
-		{"Win32FileAttributeData.LastWriteTime", Field, 0},
-		{"Win32finddata", Type, 0},
-		{"Win32finddata.AlternateFileName", Field, 0},
-		{"Win32finddata.CreationTime", Field, 0},
-		{"Win32finddata.FileAttributes", Field, 0},
-		{"Win32finddata.FileName", Field, 0},
-		{"Win32finddata.FileSizeHigh", Field, 0},
-		{"Win32finddata.FileSizeLow", Field, 0},
-		{"Win32finddata.LastAccessTime", Field, 0},
-		{"Win32finddata.LastWriteTime", Field, 0},
-		{"Win32finddata.Reserved0", Field, 0},
-		{"Win32finddata.Reserved1", Field, 0},
-		{"Write", Func, 0},
-		{"WriteConsole", Func, 1},
-		{"WriteFile", Func, 0},
-		{"X509_ASN_ENCODING", Const, 0},
-		{"XCASE", Const, 0},
-		{"XP1_CONNECTIONLESS", Const, 2},
-		{"XP1_CONNECT_DATA", Const, 2},
-		{"XP1_DISCONNECT_DATA", Const, 2},
-		{"XP1_EXPEDITED_DATA", Const, 2},
-		{"XP1_GRACEFUL_CLOSE", Const, 2},
-		{"XP1_GUARANTEED_DELIVERY", Const, 2},
-		{"XP1_GUARANTEED_ORDER", Const, 2},
-		{"XP1_IFS_HANDLES", Const, 2},
-		{"XP1_MESSAGE_ORIENTED", Const, 2},
-		{"XP1_MULTIPOINT_CONTROL_PLANE", Const, 2},
-		{"XP1_MULTIPOINT_DATA_PLANE", Const, 2},
-		{"XP1_PARTIAL_MESSAGE", Const, 2},
-		{"XP1_PSEUDO_STREAM", Const, 2},
-		{"XP1_QOS_SUPPORTED", Const, 2},
-		{"XP1_SAN_SUPPORT_SDP", Const, 2},
-		{"XP1_SUPPORT_BROADCAST", Const, 2},
-		{"XP1_SUPPORT_MULTIPOINT", Const, 2},
-		{"XP1_UNI_RECV", Const, 2},
-		{"XP1_UNI_SEND", Const, 2},
+		{"(*Cmsghdr).SetLen", Method, 0, ""},
+		{"(*DLL).FindProc", Method, 0, ""},
+		{"(*DLL).MustFindProc", Method, 0, ""},
+		{"(*DLL).Release", Method, 0, ""},
+		{"(*DLLError).Error", Method, 0, ""},
+		{"(*DLLError).Unwrap", Method, 16, ""},
+		{"(*Filetime).Nanoseconds", Method, 0, ""},
+		{"(*Iovec).SetLen", Method, 0, ""},
+		{"(*LazyDLL).Handle", Method, 0, ""},
+		{"(*LazyDLL).Load", Method, 0, ""},
+		{"(*LazyDLL).NewProc", Method, 0, ""},
+		{"(*LazyProc).Addr", Method, 0, ""},
+		{"(*LazyProc).Call", Method, 0, ""},
+		{"(*LazyProc).Find", Method, 0, ""},
+		{"(*Msghdr).SetControllen", Method, 0, ""},
+		{"(*Proc).Addr", Method, 0, ""},
+		{"(*Proc).Call", Method, 0, ""},
+		{"(*PtraceRegs).PC", Method, 0, ""},
+		{"(*PtraceRegs).SetPC", Method, 0, ""},
+		{"(*RawSockaddrAny).Sockaddr", Method, 0, ""},
+		{"(*SID).Copy", Method, 0, ""},
+		{"(*SID).Len", Method, 0, ""},
+		{"(*SID).LookupAccount", Method, 0, ""},
+		{"(*SID).String", Method, 0, ""},
+		{"(*Timespec).Nano", Method, 0, ""},
+		{"(*Timespec).Unix", Method, 0, ""},
+		{"(*Timeval).Nano", Method, 0, ""},
+		{"(*Timeval).Nanoseconds", Method, 0, ""},
+		{"(*Timeval).Unix", Method, 0, ""},
+		{"(Errno).Error", Method, 0, ""},
+		{"(Errno).Is", Method, 13, ""},
+		{"(Errno).Temporary", Method, 0, ""},
+		{"(Errno).Timeout", Method, 0, ""},
+		{"(Signal).Signal", Method, 0, ""},
+		{"(Signal).String", Method, 0, ""},
+		{"(Token).Close", Method, 0, ""},
+		{"(Token).GetTokenPrimaryGroup", Method, 0, ""},
+		{"(Token).GetTokenUser", Method, 0, ""},
+		{"(Token).GetUserProfileDirectory", Method, 0, ""},
+		{"(WaitStatus).Continued", Method, 0, ""},
+		{"(WaitStatus).CoreDump", Method, 0, ""},
+		{"(WaitStatus).ExitStatus", Method, 0, ""},
+		{"(WaitStatus).Exited", Method, 0, ""},
+		{"(WaitStatus).Signal", Method, 0, ""},
+		{"(WaitStatus).Signaled", Method, 0, ""},
+		{"(WaitStatus).StopSignal", Method, 0, ""},
+		{"(WaitStatus).Stopped", Method, 0, ""},
+		{"(WaitStatus).TrapCause", Method, 0, ""},
+		{"AF_ALG", Const, 0, ""},
+		{"AF_APPLETALK", Const, 0, ""},
+		{"AF_ARP", Const, 0, ""},
+		{"AF_ASH", Const, 0, ""},
+		{"AF_ATM", Const, 0, ""},
+		{"AF_ATMPVC", Const, 0, ""},
+		{"AF_ATMSVC", Const, 0, ""},
+		{"AF_AX25", Const, 0, ""},
+		{"AF_BLUETOOTH", Const, 0, ""},
+		{"AF_BRIDGE", Const, 0, ""},
+		{"AF_CAIF", Const, 0, ""},
+		{"AF_CAN", Const, 0, ""},
+		{"AF_CCITT", Const, 0, ""},
+		{"AF_CHAOS", Const, 0, ""},
+		{"AF_CNT", Const, 0, ""},
+		{"AF_COIP", Const, 0, ""},
+		{"AF_DATAKIT", Const, 0, ""},
+		{"AF_DECnet", Const, 0, ""},
+		{"AF_DLI", Const, 0, ""},
+		{"AF_E164", Const, 0, ""},
+		{"AF_ECMA", Const, 0, ""},
+		{"AF_ECONET", Const, 0, ""},
+		{"AF_ENCAP", Const, 1, ""},
+		{"AF_FILE", Const, 0, ""},
+		{"AF_HYLINK", Const, 0, ""},
+		{"AF_IEEE80211", Const, 0, ""},
+		{"AF_IEEE802154", Const, 0, ""},
+		{"AF_IMPLINK", Const, 0, ""},
+		{"AF_INET", Const, 0, ""},
+		{"AF_INET6", Const, 0, ""},
+		{"AF_INET6_SDP", Const, 3, ""},
+		{"AF_INET_SDP", Const, 3, ""},
+		{"AF_IPX", Const, 0, ""},
+		{"AF_IRDA", Const, 0, ""},
+		{"AF_ISDN", Const, 0, ""},
+		{"AF_ISO", Const, 0, ""},
+		{"AF_IUCV", Const, 0, ""},
+		{"AF_KEY", Const, 0, ""},
+		{"AF_LAT", Const, 0, ""},
+		{"AF_LINK", Const, 0, ""},
+		{"AF_LLC", Const, 0, ""},
+		{"AF_LOCAL", Const, 0, ""},
+		{"AF_MAX", Const, 0, ""},
+		{"AF_MPLS", Const, 1, ""},
+		{"AF_NATM", Const, 0, ""},
+		{"AF_NDRV", Const, 0, ""},
+		{"AF_NETBEUI", Const, 0, ""},
+		{"AF_NETBIOS", Const, 0, ""},
+		{"AF_NETGRAPH", Const, 0, ""},
+		{"AF_NETLINK", Const, 0, ""},
+		{"AF_NETROM", Const, 0, ""},
+		{"AF_NS", Const, 0, ""},
+		{"AF_OROUTE", Const, 1, ""},
+		{"AF_OSI", Const, 0, ""},
+		{"AF_PACKET", Const, 0, ""},
+		{"AF_PHONET", Const, 0, ""},
+		{"AF_PPP", Const, 0, ""},
+		{"AF_PPPOX", Const, 0, ""},
+		{"AF_PUP", Const, 0, ""},
+		{"AF_RDS", Const, 0, ""},
+		{"AF_RESERVED_36", Const, 0, ""},
+		{"AF_ROSE", Const, 0, ""},
+		{"AF_ROUTE", Const, 0, ""},
+		{"AF_RXRPC", Const, 0, ""},
+		{"AF_SCLUSTER", Const, 0, ""},
+		{"AF_SECURITY", Const, 0, ""},
+		{"AF_SIP", Const, 0, ""},
+		{"AF_SLOW", Const, 0, ""},
+		{"AF_SNA", Const, 0, ""},
+		{"AF_SYSTEM", Const, 0, ""},
+		{"AF_TIPC", Const, 0, ""},
+		{"AF_UNIX", Const, 0, ""},
+		{"AF_UNSPEC", Const, 0, ""},
+		{"AF_UTUN", Const, 16, ""},
+		{"AF_VENDOR00", Const, 0, ""},
+		{"AF_VENDOR01", Const, 0, ""},
+		{"AF_VENDOR02", Const, 0, ""},
+		{"AF_VENDOR03", Const, 0, ""},
+		{"AF_VENDOR04", Const, 0, ""},
+		{"AF_VENDOR05", Const, 0, ""},
+		{"AF_VENDOR06", Const, 0, ""},
+		{"AF_VENDOR07", Const, 0, ""},
+		{"AF_VENDOR08", Const, 0, ""},
+		{"AF_VENDOR09", Const, 0, ""},
+		{"AF_VENDOR10", Const, 0, ""},
+		{"AF_VENDOR11", Const, 0, ""},
+		{"AF_VENDOR12", Const, 0, ""},
+		{"AF_VENDOR13", Const, 0, ""},
+		{"AF_VENDOR14", Const, 0, ""},
+		{"AF_VENDOR15", Const, 0, ""},
+		{"AF_VENDOR16", Const, 0, ""},
+		{"AF_VENDOR17", Const, 0, ""},
+		{"AF_VENDOR18", Const, 0, ""},
+		{"AF_VENDOR19", Const, 0, ""},
+		{"AF_VENDOR20", Const, 0, ""},
+		{"AF_VENDOR21", Const, 0, ""},
+		{"AF_VENDOR22", Const, 0, ""},
+		{"AF_VENDOR23", Const, 0, ""},
+		{"AF_VENDOR24", Const, 0, ""},
+		{"AF_VENDOR25", Const, 0, ""},
+		{"AF_VENDOR26", Const, 0, ""},
+		{"AF_VENDOR27", Const, 0, ""},
+		{"AF_VENDOR28", Const, 0, ""},
+		{"AF_VENDOR29", Const, 0, ""},
+		{"AF_VENDOR30", Const, 0, ""},
+		{"AF_VENDOR31", Const, 0, ""},
+		{"AF_VENDOR32", Const, 0, ""},
+		{"AF_VENDOR33", Const, 0, ""},
+		{"AF_VENDOR34", Const, 0, ""},
+		{"AF_VENDOR35", Const, 0, ""},
+		{"AF_VENDOR36", Const, 0, ""},
+		{"AF_VENDOR37", Const, 0, ""},
+		{"AF_VENDOR38", Const, 0, ""},
+		{"AF_VENDOR39", Const, 0, ""},
+		{"AF_VENDOR40", Const, 0, ""},
+		{"AF_VENDOR41", Const, 0, ""},
+		{"AF_VENDOR42", Const, 0, ""},
+		{"AF_VENDOR43", Const, 0, ""},
+		{"AF_VENDOR44", Const, 0, ""},
+		{"AF_VENDOR45", Const, 0, ""},
+		{"AF_VENDOR46", Const, 0, ""},
+		{"AF_VENDOR47", Const, 0, ""},
+		{"AF_WANPIPE", Const, 0, ""},
+		{"AF_X25", Const, 0, ""},
+		{"AI_CANONNAME", Const, 1, ""},
+		{"AI_NUMERICHOST", Const, 1, ""},
+		{"AI_PASSIVE", Const, 1, ""},
+		{"APPLICATION_ERROR", Const, 0, ""},
+		{"ARPHRD_ADAPT", Const, 0, ""},
+		{"ARPHRD_APPLETLK", Const, 0, ""},
+		{"ARPHRD_ARCNET", Const, 0, ""},
+		{"ARPHRD_ASH", Const, 0, ""},
+		{"ARPHRD_ATM", Const, 0, ""},
+		{"ARPHRD_AX25", Const, 0, ""},
+		{"ARPHRD_BIF", Const, 0, ""},
+		{"ARPHRD_CHAOS", Const, 0, ""},
+		{"ARPHRD_CISCO", Const, 0, ""},
+		{"ARPHRD_CSLIP", Const, 0, ""},
+		{"ARPHRD_CSLIP6", Const, 0, ""},
+		{"ARPHRD_DDCMP", Const, 0, ""},
+		{"ARPHRD_DLCI", Const, 0, ""},
+		{"ARPHRD_ECONET", Const, 0, ""},
+		{"ARPHRD_EETHER", Const, 0, ""},
+		{"ARPHRD_ETHER", Const, 0, ""},
+		{"ARPHRD_EUI64", Const, 0, ""},
+		{"ARPHRD_FCAL", Const, 0, ""},
+		{"ARPHRD_FCFABRIC", Const, 0, ""},
+		{"ARPHRD_FCPL", Const, 0, ""},
+		{"ARPHRD_FCPP", Const, 0, ""},
+		{"ARPHRD_FDDI", Const, 0, ""},
+		{"ARPHRD_FRAD", Const, 0, ""},
+		{"ARPHRD_FRELAY", Const, 1, ""},
+		{"ARPHRD_HDLC", Const, 0, ""},
+		{"ARPHRD_HIPPI", Const, 0, ""},
+		{"ARPHRD_HWX25", Const, 0, ""},
+		{"ARPHRD_IEEE1394", Const, 0, ""},
+		{"ARPHRD_IEEE802", Const, 0, ""},
+		{"ARPHRD_IEEE80211", Const, 0, ""},
+		{"ARPHRD_IEEE80211_PRISM", Const, 0, ""},
+		{"ARPHRD_IEEE80211_RADIOTAP", Const, 0, ""},
+		{"ARPHRD_IEEE802154", Const, 0, ""},
+		{"ARPHRD_IEEE802154_PHY", Const, 0, ""},
+		{"ARPHRD_IEEE802_TR", Const, 0, ""},
+		{"ARPHRD_INFINIBAND", Const, 0, ""},
+		{"ARPHRD_IPDDP", Const, 0, ""},
+		{"ARPHRD_IPGRE", Const, 0, ""},
+		{"ARPHRD_IRDA", Const, 0, ""},
+		{"ARPHRD_LAPB", Const, 0, ""},
+		{"ARPHRD_LOCALTLK", Const, 0, ""},
+		{"ARPHRD_LOOPBACK", Const, 0, ""},
+		{"ARPHRD_METRICOM", Const, 0, ""},
+		{"ARPHRD_NETROM", Const, 0, ""},
+		{"ARPHRD_NONE", Const, 0, ""},
+		{"ARPHRD_PIMREG", Const, 0, ""},
+		{"ARPHRD_PPP", Const, 0, ""},
+		{"ARPHRD_PRONET", Const, 0, ""},
+		{"ARPHRD_RAWHDLC", Const, 0, ""},
+		{"ARPHRD_ROSE", Const, 0, ""},
+		{"ARPHRD_RSRVD", Const, 0, ""},
+		{"ARPHRD_SIT", Const, 0, ""},
+		{"ARPHRD_SKIP", Const, 0, ""},
+		{"ARPHRD_SLIP", Const, 0, ""},
+		{"ARPHRD_SLIP6", Const, 0, ""},
+		{"ARPHRD_STRIP", Const, 1, ""},
+		{"ARPHRD_TUNNEL", Const, 0, ""},
+		{"ARPHRD_TUNNEL6", Const, 0, ""},
+		{"ARPHRD_VOID", Const, 0, ""},
+		{"ARPHRD_X25", Const, 0, ""},
+		{"AUTHTYPE_CLIENT", Const, 0, ""},
+		{"AUTHTYPE_SERVER", Const, 0, ""},
+		{"Accept", Func, 0, "func(fd int) (nfd int, sa Sockaddr, err error)"},
+		{"Accept4", Func, 1, "func(fd int, flags int) (nfd int, sa Sockaddr, err error)"},
+		{"AcceptEx", Func, 0, ""},
+		{"Access", Func, 0, "func(path string, mode uint32) (err error)"},
+		{"Acct", Func, 0, "func(path string) (err error)"},
+		{"AddrinfoW", Type, 1, ""},
+		{"AddrinfoW.Addr", Field, 1, ""},
+		{"AddrinfoW.Addrlen", Field, 1, ""},
+		{"AddrinfoW.Canonname", Field, 1, ""},
+		{"AddrinfoW.Family", Field, 1, ""},
+		{"AddrinfoW.Flags", Field, 1, ""},
+		{"AddrinfoW.Next", Field, 1, ""},
+		{"AddrinfoW.Protocol", Field, 1, ""},
+		{"AddrinfoW.Socktype", Field, 1, ""},
+		{"Adjtime", Func, 0, ""},
+		{"Adjtimex", Func, 0, "func(buf *Timex) (state int, err error)"},
+		{"AllThreadsSyscall", Func, 16, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr) (r1 uintptr, r2 uintptr, err Errno)"},
+		{"AllThreadsSyscall6", Func, 16, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr, a4 uintptr, a5 uintptr, a6 uintptr) (r1 uintptr, r2 uintptr, err Errno)"},
+		{"AttachLsf", Func, 0, "func(fd int, i []SockFilter) error"},
+		{"B0", Const, 0, ""},
+		{"B1000000", Const, 0, ""},
+		{"B110", Const, 0, ""},
+		{"B115200", Const, 0, ""},
+		{"B1152000", Const, 0, ""},
+		{"B1200", Const, 0, ""},
+		{"B134", Const, 0, ""},
+		{"B14400", Const, 1, ""},
+		{"B150", Const, 0, ""},
+		{"B1500000", Const, 0, ""},
+		{"B1800", Const, 0, ""},
+		{"B19200", Const, 0, ""},
+		{"B200", Const, 0, ""},
+		{"B2000000", Const, 0, ""},
+		{"B230400", Const, 0, ""},
+		{"B2400", Const, 0, ""},
+		{"B2500000", Const, 0, ""},
+		{"B28800", Const, 1, ""},
+		{"B300", Const, 0, ""},
+		{"B3000000", Const, 0, ""},
+		{"B3500000", Const, 0, ""},
+		{"B38400", Const, 0, ""},
+		{"B4000000", Const, 0, ""},
+		{"B460800", Const, 0, ""},
+		{"B4800", Const, 0, ""},
+		{"B50", Const, 0, ""},
+		{"B500000", Const, 0, ""},
+		{"B57600", Const, 0, ""},
+		{"B576000", Const, 0, ""},
+		{"B600", Const, 0, ""},
+		{"B7200", Const, 1, ""},
+		{"B75", Const, 0, ""},
+		{"B76800", Const, 1, ""},
+		{"B921600", Const, 0, ""},
+		{"B9600", Const, 0, ""},
+		{"BASE_PROTOCOL", Const, 2, ""},
+		{"BIOCFEEDBACK", Const, 0, ""},
+		{"BIOCFLUSH", Const, 0, ""},
+		{"BIOCGBLEN", Const, 0, ""},
+		{"BIOCGDIRECTION", Const, 0, ""},
+		{"BIOCGDIRFILT", Const, 1, ""},
+		{"BIOCGDLT", Const, 0, ""},
+		{"BIOCGDLTLIST", Const, 0, ""},
+		{"BIOCGETBUFMODE", Const, 0, ""},
+		{"BIOCGETIF", Const, 0, ""},
+		{"BIOCGETZMAX", Const, 0, ""},
+		{"BIOCGFEEDBACK", Const, 1, ""},
+		{"BIOCGFILDROP", Const, 1, ""},
+		{"BIOCGHDRCMPLT", Const, 0, ""},
+		{"BIOCGRSIG", Const, 0, ""},
+		{"BIOCGRTIMEOUT", Const, 0, ""},
+		{"BIOCGSEESENT", Const, 0, ""},
+		{"BIOCGSTATS", Const, 0, ""},
+		{"BIOCGSTATSOLD", Const, 1, ""},
+		{"BIOCGTSTAMP", Const, 1, ""},
+		{"BIOCIMMEDIATE", Const, 0, ""},
+		{"BIOCLOCK", Const, 0, ""},
+		{"BIOCPROMISC", Const, 0, ""},
+		{"BIOCROTZBUF", Const, 0, ""},
+		{"BIOCSBLEN", Const, 0, ""},
+		{"BIOCSDIRECTION", Const, 0, ""},
+		{"BIOCSDIRFILT", Const, 1, ""},
+		{"BIOCSDLT", Const, 0, ""},
+		{"BIOCSETBUFMODE", Const, 0, ""},
+		{"BIOCSETF", Const, 0, ""},
+		{"BIOCSETFNR", Const, 0, ""},
+		{"BIOCSETIF", Const, 0, ""},
+		{"BIOCSETWF", Const, 0, ""},
+		{"BIOCSETZBUF", Const, 0, ""},
+		{"BIOCSFEEDBACK", Const, 1, ""},
+		{"BIOCSFILDROP", Const, 1, ""},
+		{"BIOCSHDRCMPLT", Const, 0, ""},
+		{"BIOCSRSIG", Const, 0, ""},
+		{"BIOCSRTIMEOUT", Const, 0, ""},
+		{"BIOCSSEESENT", Const, 0, ""},
+		{"BIOCSTCPF", Const, 1, ""},
+		{"BIOCSTSTAMP", Const, 1, ""},
+		{"BIOCSUDPF", Const, 1, ""},
+		{"BIOCVERSION", Const, 0, ""},
+		{"BPF_A", Const, 0, ""},
+		{"BPF_ABS", Const, 0, ""},
+		{"BPF_ADD", Const, 0, ""},
+		{"BPF_ALIGNMENT", Const, 0, ""},
+		{"BPF_ALIGNMENT32", Const, 1, ""},
+		{"BPF_ALU", Const, 0, ""},
+		{"BPF_AND", Const, 0, ""},
+		{"BPF_B", Const, 0, ""},
+		{"BPF_BUFMODE_BUFFER", Const, 0, ""},
+		{"BPF_BUFMODE_ZBUF", Const, 0, ""},
+		{"BPF_DFLTBUFSIZE", Const, 1, ""},
+		{"BPF_DIRECTION_IN", Const, 1, ""},
+		{"BPF_DIRECTION_OUT", Const, 1, ""},
+		{"BPF_DIV", Const, 0, ""},
+		{"BPF_H", Const, 0, ""},
+		{"BPF_IMM", Const, 0, ""},
+		{"BPF_IND", Const, 0, ""},
+		{"BPF_JA", Const, 0, ""},
+		{"BPF_JEQ", Const, 0, ""},
+		{"BPF_JGE", Const, 0, ""},
+		{"BPF_JGT", Const, 0, ""},
+		{"BPF_JMP", Const, 0, ""},
+		{"BPF_JSET", Const, 0, ""},
+		{"BPF_K", Const, 0, ""},
+		{"BPF_LD", Const, 0, ""},
+		{"BPF_LDX", Const, 0, ""},
+		{"BPF_LEN", Const, 0, ""},
+		{"BPF_LSH", Const, 0, ""},
+		{"BPF_MAJOR_VERSION", Const, 0, ""},
+		{"BPF_MAXBUFSIZE", Const, 0, ""},
+		{"BPF_MAXINSNS", Const, 0, ""},
+		{"BPF_MEM", Const, 0, ""},
+		{"BPF_MEMWORDS", Const, 0, ""},
+		{"BPF_MINBUFSIZE", Const, 0, ""},
+		{"BPF_MINOR_VERSION", Const, 0, ""},
+		{"BPF_MISC", Const, 0, ""},
+		{"BPF_MSH", Const, 0, ""},
+		{"BPF_MUL", Const, 0, ""},
+		{"BPF_NEG", Const, 0, ""},
+		{"BPF_OR", Const, 0, ""},
+		{"BPF_RELEASE", Const, 0, ""},
+		{"BPF_RET", Const, 0, ""},
+		{"BPF_RSH", Const, 0, ""},
+		{"BPF_ST", Const, 0, ""},
+		{"BPF_STX", Const, 0, ""},
+		{"BPF_SUB", Const, 0, ""},
+		{"BPF_TAX", Const, 0, ""},
+		{"BPF_TXA", Const, 0, ""},
+		{"BPF_T_BINTIME", Const, 1, ""},
+		{"BPF_T_BINTIME_FAST", Const, 1, ""},
+		{"BPF_T_BINTIME_MONOTONIC", Const, 1, ""},
+		{"BPF_T_BINTIME_MONOTONIC_FAST", Const, 1, ""},
+		{"BPF_T_FAST", Const, 1, ""},
+		{"BPF_T_FLAG_MASK", Const, 1, ""},
+		{"BPF_T_FORMAT_MASK", Const, 1, ""},
+		{"BPF_T_MICROTIME", Const, 1, ""},
+		{"BPF_T_MICROTIME_FAST", Const, 1, ""},
+		{"BPF_T_MICROTIME_MONOTONIC", Const, 1, ""},
+		{"BPF_T_MICROTIME_MONOTONIC_FAST", Const, 1, ""},
+		{"BPF_T_MONOTONIC", Const, 1, ""},
+		{"BPF_T_MONOTONIC_FAST", Const, 1, ""},
+		{"BPF_T_NANOTIME", Const, 1, ""},
+		{"BPF_T_NANOTIME_FAST", Const, 1, ""},
+		{"BPF_T_NANOTIME_MONOTONIC", Const, 1, ""},
+		{"BPF_T_NANOTIME_MONOTONIC_FAST", Const, 1, ""},
+		{"BPF_T_NONE", Const, 1, ""},
+		{"BPF_T_NORMAL", Const, 1, ""},
+		{"BPF_W", Const, 0, ""},
+		{"BPF_X", Const, 0, ""},
+		{"BRKINT", Const, 0, ""},
+		{"Bind", Func, 0, "func(fd int, sa Sockaddr) (err error)"},
+		{"BindToDevice", Func, 0, "func(fd int, device string) (err error)"},
+		{"BpfBuflen", Func, 0, ""},
+		{"BpfDatalink", Func, 0, ""},
+		{"BpfHdr", Type, 0, ""},
+		{"BpfHdr.Caplen", Field, 0, ""},
+		{"BpfHdr.Datalen", Field, 0, ""},
+		{"BpfHdr.Hdrlen", Field, 0, ""},
+		{"BpfHdr.Pad_cgo_0", Field, 0, ""},
+		{"BpfHdr.Tstamp", Field, 0, ""},
+		{"BpfHeadercmpl", Func, 0, ""},
+		{"BpfInsn", Type, 0, ""},
+		{"BpfInsn.Code", Field, 0, ""},
+		{"BpfInsn.Jf", Field, 0, ""},
+		{"BpfInsn.Jt", Field, 0, ""},
+		{"BpfInsn.K", Field, 0, ""},
+		{"BpfInterface", Func, 0, ""},
+		{"BpfJump", Func, 0, ""},
+		{"BpfProgram", Type, 0, ""},
+		{"BpfProgram.Insns", Field, 0, ""},
+		{"BpfProgram.Len", Field, 0, ""},
+		{"BpfProgram.Pad_cgo_0", Field, 0, ""},
+		{"BpfStat", Type, 0, ""},
+		{"BpfStat.Capt", Field, 2, ""},
+		{"BpfStat.Drop", Field, 0, ""},
+		{"BpfStat.Padding", Field, 2, ""},
+		{"BpfStat.Recv", Field, 0, ""},
+		{"BpfStats", Func, 0, ""},
+		{"BpfStmt", Func, 0, ""},
+		{"BpfTimeout", Func, 0, ""},
+		{"BpfTimeval", Type, 2, ""},
+		{"BpfTimeval.Sec", Field, 2, ""},
+		{"BpfTimeval.Usec", Field, 2, ""},
+		{"BpfVersion", Type, 0, ""},
+		{"BpfVersion.Major", Field, 0, ""},
+		{"BpfVersion.Minor", Field, 0, ""},
+		{"BpfZbuf", Type, 0, ""},
+		{"BpfZbuf.Bufa", Field, 0, ""},
+		{"BpfZbuf.Bufb", Field, 0, ""},
+		{"BpfZbuf.Buflen", Field, 0, ""},
+		{"BpfZbufHeader", Type, 0, ""},
+		{"BpfZbufHeader.Kernel_gen", Field, 0, ""},
+		{"BpfZbufHeader.Kernel_len", Field, 0, ""},
+		{"BpfZbufHeader.User_gen", Field, 0, ""},
+		{"BpfZbufHeader.X_bzh_pad", Field, 0, ""},
+		{"ByHandleFileInformation", Type, 0, ""},
+		{"ByHandleFileInformation.CreationTime", Field, 0, ""},
+		{"ByHandleFileInformation.FileAttributes", Field, 0, ""},
+		{"ByHandleFileInformation.FileIndexHigh", Field, 0, ""},
+		{"ByHandleFileInformation.FileIndexLow", Field, 0, ""},
+		{"ByHandleFileInformation.FileSizeHigh", Field, 0, ""},
+		{"ByHandleFileInformation.FileSizeLow", Field, 0, ""},
+		{"ByHandleFileInformation.LastAccessTime", Field, 0, ""},
+		{"ByHandleFileInformation.LastWriteTime", Field, 0, ""},
+		{"ByHandleFileInformation.NumberOfLinks", Field, 0, ""},
+		{"ByHandleFileInformation.VolumeSerialNumber", Field, 0, ""},
+		{"BytePtrFromString", Func, 1, "func(s string) (*byte, error)"},
+		{"ByteSliceFromString", Func, 1, "func(s string) ([]byte, error)"},
+		{"CCR0_FLUSH", Const, 1, ""},
+		{"CERT_CHAIN_POLICY_AUTHENTICODE", Const, 0, ""},
+		{"CERT_CHAIN_POLICY_AUTHENTICODE_TS", Const, 0, ""},
+		{"CERT_CHAIN_POLICY_BASE", Const, 0, ""},
+		{"CERT_CHAIN_POLICY_BASIC_CONSTRAINTS", Const, 0, ""},
+		{"CERT_CHAIN_POLICY_EV", Const, 0, ""},
+		{"CERT_CHAIN_POLICY_MICROSOFT_ROOT", Const, 0, ""},
+		{"CERT_CHAIN_POLICY_NT_AUTH", Const, 0, ""},
+		{"CERT_CHAIN_POLICY_SSL", Const, 0, ""},
+		{"CERT_E_CN_NO_MATCH", Const, 0, ""},
+		{"CERT_E_EXPIRED", Const, 0, ""},
+		{"CERT_E_PURPOSE", Const, 0, ""},
+		{"CERT_E_ROLE", Const, 0, ""},
+		{"CERT_E_UNTRUSTEDROOT", Const, 0, ""},
+		{"CERT_STORE_ADD_ALWAYS", Const, 0, ""},
+		{"CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG", Const, 0, ""},
+		{"CERT_STORE_PROV_MEMORY", Const, 0, ""},
+		{"CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT", Const, 0, ""},
+		{"CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT", Const, 0, ""},
+		{"CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT", Const, 0, ""},
+		{"CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT", Const, 0, ""},
+		{"CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT", Const, 0, ""},
+		{"CERT_TRUST_INVALID_BASIC_CONSTRAINTS", Const, 0, ""},
+		{"CERT_TRUST_INVALID_EXTENSION", Const, 0, ""},
+		{"CERT_TRUST_INVALID_NAME_CONSTRAINTS", Const, 0, ""},
+		{"CERT_TRUST_INVALID_POLICY_CONSTRAINTS", Const, 0, ""},
+		{"CERT_TRUST_IS_CYCLIC", Const, 0, ""},
+		{"CERT_TRUST_IS_EXPLICIT_DISTRUST", Const, 0, ""},
+		{"CERT_TRUST_IS_NOT_SIGNATURE_VALID", Const, 0, ""},
+		{"CERT_TRUST_IS_NOT_TIME_VALID", Const, 0, ""},
+		{"CERT_TRUST_IS_NOT_VALID_FOR_USAGE", Const, 0, ""},
+		{"CERT_TRUST_IS_OFFLINE_REVOCATION", Const, 0, ""},
+		{"CERT_TRUST_IS_REVOKED", Const, 0, ""},
+		{"CERT_TRUST_IS_UNTRUSTED_ROOT", Const, 0, ""},
+		{"CERT_TRUST_NO_ERROR", Const, 0, ""},
+		{"CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY", Const, 0, ""},
+		{"CERT_TRUST_REVOCATION_STATUS_UNKNOWN", Const, 0, ""},
+		{"CFLUSH", Const, 1, ""},
+		{"CLOCAL", Const, 0, ""},
+		{"CLONE_CHILD_CLEARTID", Const, 2, ""},
+		{"CLONE_CHILD_SETTID", Const, 2, ""},
+		{"CLONE_CLEAR_SIGHAND", Const, 20, ""},
+		{"CLONE_CSIGNAL", Const, 3, ""},
+		{"CLONE_DETACHED", Const, 2, ""},
+		{"CLONE_FILES", Const, 2, ""},
+		{"CLONE_FS", Const, 2, ""},
+		{"CLONE_INTO_CGROUP", Const, 20, ""},
+		{"CLONE_IO", Const, 2, ""},
+		{"CLONE_NEWCGROUP", Const, 20, ""},
+		{"CLONE_NEWIPC", Const, 2, ""},
+		{"CLONE_NEWNET", Const, 2, ""},
+		{"CLONE_NEWNS", Const, 2, ""},
+		{"CLONE_NEWPID", Const, 2, ""},
+		{"CLONE_NEWTIME", Const, 20, ""},
+		{"CLONE_NEWUSER", Const, 2, ""},
+		{"CLONE_NEWUTS", Const, 2, ""},
+		{"CLONE_PARENT", Const, 2, ""},
+		{"CLONE_PARENT_SETTID", Const, 2, ""},
+		{"CLONE_PID", Const, 3, ""},
+		{"CLONE_PIDFD", Const, 20, ""},
+		{"CLONE_PTRACE", Const, 2, ""},
+		{"CLONE_SETTLS", Const, 2, ""},
+		{"CLONE_SIGHAND", Const, 2, ""},
+		{"CLONE_SYSVSEM", Const, 2, ""},
+		{"CLONE_THREAD", Const, 2, ""},
+		{"CLONE_UNTRACED", Const, 2, ""},
+		{"CLONE_VFORK", Const, 2, ""},
+		{"CLONE_VM", Const, 2, ""},
+		{"CPUID_CFLUSH", Const, 1, ""},
+		{"CREAD", Const, 0, ""},
+		{"CREATE_ALWAYS", Const, 0, ""},
+		{"CREATE_NEW", Const, 0, ""},
+		{"CREATE_NEW_PROCESS_GROUP", Const, 1, ""},
+		{"CREATE_UNICODE_ENVIRONMENT", Const, 0, ""},
+		{"CRYPT_DEFAULT_CONTAINER_OPTIONAL", Const, 0, ""},
+		{"CRYPT_DELETEKEYSET", Const, 0, ""},
+		{"CRYPT_MACHINE_KEYSET", Const, 0, ""},
+		{"CRYPT_NEWKEYSET", Const, 0, ""},
+		{"CRYPT_SILENT", Const, 0, ""},
+		{"CRYPT_VERIFYCONTEXT", Const, 0, ""},
+		{"CS5", Const, 0, ""},
+		{"CS6", Const, 0, ""},
+		{"CS7", Const, 0, ""},
+		{"CS8", Const, 0, ""},
+		{"CSIZE", Const, 0, ""},
+		{"CSTART", Const, 1, ""},
+		{"CSTATUS", Const, 1, ""},
+		{"CSTOP", Const, 1, ""},
+		{"CSTOPB", Const, 0, ""},
+		{"CSUSP", Const, 1, ""},
+		{"CTL_MAXNAME", Const, 0, ""},
+		{"CTL_NET", Const, 0, ""},
+		{"CTL_QUERY", Const, 1, ""},
+		{"CTRL_BREAK_EVENT", Const, 1, ""},
+		{"CTRL_CLOSE_EVENT", Const, 14, ""},
+		{"CTRL_C_EVENT", Const, 1, ""},
+		{"CTRL_LOGOFF_EVENT", Const, 14, ""},
+		{"CTRL_SHUTDOWN_EVENT", Const, 14, ""},
+		{"CancelIo", Func, 0, ""},
+		{"CancelIoEx", Func, 1, ""},
+		{"CertAddCertificateContextToStore", Func, 0, ""},
+		{"CertChainContext", Type, 0, ""},
+		{"CertChainContext.ChainCount", Field, 0, ""},
+		{"CertChainContext.Chains", Field, 0, ""},
+		{"CertChainContext.HasRevocationFreshnessTime", Field, 0, ""},
+		{"CertChainContext.LowerQualityChainCount", Field, 0, ""},
+		{"CertChainContext.LowerQualityChains", Field, 0, ""},
+		{"CertChainContext.RevocationFreshnessTime", Field, 0, ""},
+		{"CertChainContext.Size", Field, 0, ""},
+		{"CertChainContext.TrustStatus", Field, 0, ""},
+		{"CertChainElement", Type, 0, ""},
+		{"CertChainElement.ApplicationUsage", Field, 0, ""},
+		{"CertChainElement.CertContext", Field, 0, ""},
+		{"CertChainElement.ExtendedErrorInfo", Field, 0, ""},
+		{"CertChainElement.IssuanceUsage", Field, 0, ""},
+		{"CertChainElement.RevocationInfo", Field, 0, ""},
+		{"CertChainElement.Size", Field, 0, ""},
+		{"CertChainElement.TrustStatus", Field, 0, ""},
+		{"CertChainPara", Type, 0, ""},
+		{"CertChainPara.CacheResync", Field, 0, ""},
+		{"CertChainPara.CheckRevocationFreshnessTime", Field, 0, ""},
+		{"CertChainPara.RequestedUsage", Field, 0, ""},
+		{"CertChainPara.RequstedIssuancePolicy", Field, 0, ""},
+		{"CertChainPara.RevocationFreshnessTime", Field, 0, ""},
+		{"CertChainPara.Size", Field, 0, ""},
+		{"CertChainPara.URLRetrievalTimeout", Field, 0, ""},
+		{"CertChainPolicyPara", Type, 0, ""},
+		{"CertChainPolicyPara.ExtraPolicyPara", Field, 0, ""},
+		{"CertChainPolicyPara.Flags", Field, 0, ""},
+		{"CertChainPolicyPara.Size", Field, 0, ""},
+		{"CertChainPolicyStatus", Type, 0, ""},
+		{"CertChainPolicyStatus.ChainIndex", Field, 0, ""},
+		{"CertChainPolicyStatus.ElementIndex", Field, 0, ""},
+		{"CertChainPolicyStatus.Error", Field, 0, ""},
+		{"CertChainPolicyStatus.ExtraPolicyStatus", Field, 0, ""},
+		{"CertChainPolicyStatus.Size", Field, 0, ""},
+		{"CertCloseStore", Func, 0, ""},
+		{"CertContext", Type, 0, ""},
+		{"CertContext.CertInfo", Field, 0, ""},
+		{"CertContext.EncodedCert", Field, 0, ""},
+		{"CertContext.EncodingType", Field, 0, ""},
+		{"CertContext.Length", Field, 0, ""},
+		{"CertContext.Store", Field, 0, ""},
+		{"CertCreateCertificateContext", Func, 0, ""},
+		{"CertEnhKeyUsage", Type, 0, ""},
+		{"CertEnhKeyUsage.Length", Field, 0, ""},
+		{"CertEnhKeyUsage.UsageIdentifiers", Field, 0, ""},
+		{"CertEnumCertificatesInStore", Func, 0, ""},
+		{"CertFreeCertificateChain", Func, 0, ""},
+		{"CertFreeCertificateContext", Func, 0, ""},
+		{"CertGetCertificateChain", Func, 0, ""},
+		{"CertInfo", Type, 11, ""},
+		{"CertOpenStore", Func, 0, ""},
+		{"CertOpenSystemStore", Func, 0, ""},
+		{"CertRevocationCrlInfo", Type, 11, ""},
+		{"CertRevocationInfo", Type, 0, ""},
+		{"CertRevocationInfo.CrlInfo", Field, 0, ""},
+		{"CertRevocationInfo.FreshnessTime", Field, 0, ""},
+		{"CertRevocationInfo.HasFreshnessTime", Field, 0, ""},
+		{"CertRevocationInfo.OidSpecificInfo", Field, 0, ""},
+		{"CertRevocationInfo.RevocationOid", Field, 0, ""},
+		{"CertRevocationInfo.RevocationResult", Field, 0, ""},
+		{"CertRevocationInfo.Size", Field, 0, ""},
+		{"CertSimpleChain", Type, 0, ""},
+		{"CertSimpleChain.Elements", Field, 0, ""},
+		{"CertSimpleChain.HasRevocationFreshnessTime", Field, 0, ""},
+		{"CertSimpleChain.NumElements", Field, 0, ""},
+		{"CertSimpleChain.RevocationFreshnessTime", Field, 0, ""},
+		{"CertSimpleChain.Size", Field, 0, ""},
+		{"CertSimpleChain.TrustListInfo", Field, 0, ""},
+		{"CertSimpleChain.TrustStatus", Field, 0, ""},
+		{"CertTrustListInfo", Type, 11, ""},
+		{"CertTrustStatus", Type, 0, ""},
+		{"CertTrustStatus.ErrorStatus", Field, 0, ""},
+		{"CertTrustStatus.InfoStatus", Field, 0, ""},
+		{"CertUsageMatch", Type, 0, ""},
+		{"CertUsageMatch.Type", Field, 0, ""},
+		{"CertUsageMatch.Usage", Field, 0, ""},
+		{"CertVerifyCertificateChainPolicy", Func, 0, ""},
+		{"Chdir", Func, 0, "func(path string) (err error)"},
+		{"CheckBpfVersion", Func, 0, ""},
+		{"Chflags", Func, 0, ""},
+		{"Chmod", Func, 0, "func(path string, mode uint32) (err error)"},
+		{"Chown", Func, 0, "func(path string, uid int, gid int) (err error)"},
+		{"Chroot", Func, 0, "func(path string) (err error)"},
+		{"Clearenv", Func, 0, "func()"},
+		{"Close", Func, 0, "func(fd int) (err error)"},
+		{"CloseHandle", Func, 0, ""},
+		{"CloseOnExec", Func, 0, "func(fd int)"},
+		{"Closesocket", Func, 0, ""},
+		{"CmsgLen", Func, 0, "func(datalen int) int"},
+		{"CmsgSpace", Func, 0, "func(datalen int) int"},
+		{"Cmsghdr", Type, 0, ""},
+		{"Cmsghdr.Len", Field, 0, ""},
+		{"Cmsghdr.Level", Field, 0, ""},
+		{"Cmsghdr.Type", Field, 0, ""},
+		{"Cmsghdr.X__cmsg_data", Field, 0, ""},
+		{"CommandLineToArgv", Func, 0, ""},
+		{"ComputerName", Func, 0, ""},
+		{"Conn", Type, 9, ""},
+		{"Connect", Func, 0, "func(fd int, sa Sockaddr) (err error)"},
+		{"ConnectEx", Func, 1, ""},
+		{"ConvertSidToStringSid", Func, 0, ""},
+		{"ConvertStringSidToSid", Func, 0, ""},
+		{"CopySid", Func, 0, ""},
+		{"Creat", Func, 0, "func(path string, mode uint32) (fd int, err error)"},
+		{"CreateDirectory", Func, 0, ""},
+		{"CreateFile", Func, 0, ""},
+		{"CreateFileMapping", Func, 0, ""},
+		{"CreateHardLink", Func, 4, ""},
+		{"CreateIoCompletionPort", Func, 0, ""},
+		{"CreatePipe", Func, 0, ""},
+		{"CreateProcess", Func, 0, ""},
+		{"CreateProcessAsUser", Func, 10, ""},
+		{"CreateSymbolicLink", Func, 4, ""},
+		{"CreateToolhelp32Snapshot", Func, 4, ""},
+		{"Credential", Type, 0, ""},
+		{"Credential.Gid", Field, 0, ""},
+		{"Credential.Groups", Field, 0, ""},
+		{"Credential.NoSetGroups", Field, 9, ""},
+		{"Credential.Uid", Field, 0, ""},
+		{"CryptAcquireContext", Func, 0, ""},
+		{"CryptGenRandom", Func, 0, ""},
+		{"CryptReleaseContext", Func, 0, ""},
+		{"DIOCBSFLUSH", Const, 1, ""},
+		{"DIOCOSFPFLUSH", Const, 1, ""},
+		{"DLL", Type, 0, ""},
+		{"DLL.Handle", Field, 0, ""},
+		{"DLL.Name", Field, 0, ""},
+		{"DLLError", Type, 0, ""},
+		{"DLLError.Err", Field, 0, ""},
+		{"DLLError.Msg", Field, 0, ""},
+		{"DLLError.ObjName", Field, 0, ""},
+		{"DLT_A429", Const, 0, ""},
+		{"DLT_A653_ICM", Const, 0, ""},
+		{"DLT_AIRONET_HEADER", Const, 0, ""},
+		{"DLT_AOS", Const, 1, ""},
+		{"DLT_APPLE_IP_OVER_IEEE1394", Const, 0, ""},
+		{"DLT_ARCNET", Const, 0, ""},
+		{"DLT_ARCNET_LINUX", Const, 0, ""},
+		{"DLT_ATM_CLIP", Const, 0, ""},
+		{"DLT_ATM_RFC1483", Const, 0, ""},
+		{"DLT_AURORA", Const, 0, ""},
+		{"DLT_AX25", Const, 0, ""},
+		{"DLT_AX25_KISS", Const, 0, ""},
+		{"DLT_BACNET_MS_TP", Const, 0, ""},
+		{"DLT_BLUETOOTH_HCI_H4", Const, 0, ""},
+		{"DLT_BLUETOOTH_HCI_H4_WITH_PHDR", Const, 0, ""},
+		{"DLT_CAN20B", Const, 0, ""},
+		{"DLT_CAN_SOCKETCAN", Const, 1, ""},
+		{"DLT_CHAOS", Const, 0, ""},
+		{"DLT_CHDLC", Const, 0, ""},
+		{"DLT_CISCO_IOS", Const, 0, ""},
+		{"DLT_C_HDLC", Const, 0, ""},
+		{"DLT_C_HDLC_WITH_DIR", Const, 0, ""},
+		{"DLT_DBUS", Const, 1, ""},
+		{"DLT_DECT", Const, 1, ""},
+		{"DLT_DOCSIS", Const, 0, ""},
+		{"DLT_DVB_CI", Const, 1, ""},
+		{"DLT_ECONET", Const, 0, ""},
+		{"DLT_EN10MB", Const, 0, ""},
+		{"DLT_EN3MB", Const, 0, ""},
+		{"DLT_ENC", Const, 0, ""},
+		{"DLT_ERF", Const, 0, ""},
+		{"DLT_ERF_ETH", Const, 0, ""},
+		{"DLT_ERF_POS", Const, 0, ""},
+		{"DLT_FC_2", Const, 1, ""},
+		{"DLT_FC_2_WITH_FRAME_DELIMS", Const, 1, ""},
+		{"DLT_FDDI", Const, 0, ""},
+		{"DLT_FLEXRAY", Const, 0, ""},
+		{"DLT_FRELAY", Const, 0, ""},
+		{"DLT_FRELAY_WITH_DIR", Const, 0, ""},
+		{"DLT_GCOM_SERIAL", Const, 0, ""},
+		{"DLT_GCOM_T1E1", Const, 0, ""},
+		{"DLT_GPF_F", Const, 0, ""},
+		{"DLT_GPF_T", Const, 0, ""},
+		{"DLT_GPRS_LLC", Const, 0, ""},
+		{"DLT_GSMTAP_ABIS", Const, 1, ""},
+		{"DLT_GSMTAP_UM", Const, 1, ""},
+		{"DLT_HDLC", Const, 1, ""},
+		{"DLT_HHDLC", Const, 0, ""},
+		{"DLT_HIPPI", Const, 1, ""},
+		{"DLT_IBM_SN", Const, 0, ""},
+		{"DLT_IBM_SP", Const, 0, ""},
+		{"DLT_IEEE802", Const, 0, ""},
+		{"DLT_IEEE802_11", Const, 0, ""},
+		{"DLT_IEEE802_11_RADIO", Const, 0, ""},
+		{"DLT_IEEE802_11_RADIO_AVS", Const, 0, ""},
+		{"DLT_IEEE802_15_4", Const, 0, ""},
+		{"DLT_IEEE802_15_4_LINUX", Const, 0, ""},
+		{"DLT_IEEE802_15_4_NOFCS", Const, 1, ""},
+		{"DLT_IEEE802_15_4_NONASK_PHY", Const, 0, ""},
+		{"DLT_IEEE802_16_MAC_CPS", Const, 0, ""},
+		{"DLT_IEEE802_16_MAC_CPS_RADIO", Const, 0, ""},
+		{"DLT_IPFILTER", Const, 0, ""},
+		{"DLT_IPMB", Const, 0, ""},
+		{"DLT_IPMB_LINUX", Const, 0, ""},
+		{"DLT_IPNET", Const, 1, ""},
+		{"DLT_IPOIB", Const, 1, ""},
+		{"DLT_IPV4", Const, 1, ""},
+		{"DLT_IPV6", Const, 1, ""},
+		{"DLT_IP_OVER_FC", Const, 0, ""},
+		{"DLT_JUNIPER_ATM1", Const, 0, ""},
+		{"DLT_JUNIPER_ATM2", Const, 0, ""},
+		{"DLT_JUNIPER_ATM_CEMIC", Const, 1, ""},
+		{"DLT_JUNIPER_CHDLC", Const, 0, ""},
+		{"DLT_JUNIPER_ES", Const, 0, ""},
+		{"DLT_JUNIPER_ETHER", Const, 0, ""},
+		{"DLT_JUNIPER_FIBRECHANNEL", Const, 1, ""},
+		{"DLT_JUNIPER_FRELAY", Const, 0, ""},
+		{"DLT_JUNIPER_GGSN", Const, 0, ""},
+		{"DLT_JUNIPER_ISM", Const, 0, ""},
+		{"DLT_JUNIPER_MFR", Const, 0, ""},
+		{"DLT_JUNIPER_MLFR", Const, 0, ""},
+		{"DLT_JUNIPER_MLPPP", Const, 0, ""},
+		{"DLT_JUNIPER_MONITOR", Const, 0, ""},
+		{"DLT_JUNIPER_PIC_PEER", Const, 0, ""},
+		{"DLT_JUNIPER_PPP", Const, 0, ""},
+		{"DLT_JUNIPER_PPPOE", Const, 0, ""},
+		{"DLT_JUNIPER_PPPOE_ATM", Const, 0, ""},
+		{"DLT_JUNIPER_SERVICES", Const, 0, ""},
+		{"DLT_JUNIPER_SRX_E2E", Const, 1, ""},
+		{"DLT_JUNIPER_ST", Const, 0, ""},
+		{"DLT_JUNIPER_VP", Const, 0, ""},
+		{"DLT_JUNIPER_VS", Const, 1, ""},
+		{"DLT_LAPB_WITH_DIR", Const, 0, ""},
+		{"DLT_LAPD", Const, 0, ""},
+		{"DLT_LIN", Const, 0, ""},
+		{"DLT_LINUX_EVDEV", Const, 1, ""},
+		{"DLT_LINUX_IRDA", Const, 0, ""},
+		{"DLT_LINUX_LAPD", Const, 0, ""},
+		{"DLT_LINUX_PPP_WITHDIRECTION", Const, 0, ""},
+		{"DLT_LINUX_SLL", Const, 0, ""},
+		{"DLT_LOOP", Const, 0, ""},
+		{"DLT_LTALK", Const, 0, ""},
+		{"DLT_MATCHING_MAX", Const, 1, ""},
+		{"DLT_MATCHING_MIN", Const, 1, ""},
+		{"DLT_MFR", Const, 0, ""},
+		{"DLT_MOST", Const, 0, ""},
+		{"DLT_MPEG_2_TS", Const, 1, ""},
+		{"DLT_MPLS", Const, 1, ""},
+		{"DLT_MTP2", Const, 0, ""},
+		{"DLT_MTP2_WITH_PHDR", Const, 0, ""},
+		{"DLT_MTP3", Const, 0, ""},
+		{"DLT_MUX27010", Const, 1, ""},
+		{"DLT_NETANALYZER", Const, 1, ""},
+		{"DLT_NETANALYZER_TRANSPARENT", Const, 1, ""},
+		{"DLT_NFC_LLCP", Const, 1, ""},
+		{"DLT_NFLOG", Const, 1, ""},
+		{"DLT_NG40", Const, 1, ""},
+		{"DLT_NULL", Const, 0, ""},
+		{"DLT_PCI_EXP", Const, 0, ""},
+		{"DLT_PFLOG", Const, 0, ""},
+		{"DLT_PFSYNC", Const, 0, ""},
+		{"DLT_PPI", Const, 0, ""},
+		{"DLT_PPP", Const, 0, ""},
+		{"DLT_PPP_BSDOS", Const, 0, ""},
+		{"DLT_PPP_ETHER", Const, 0, ""},
+		{"DLT_PPP_PPPD", Const, 0, ""},
+		{"DLT_PPP_SERIAL", Const, 0, ""},
+		{"DLT_PPP_WITH_DIR", Const, 0, ""},
+		{"DLT_PPP_WITH_DIRECTION", Const, 0, ""},
+		{"DLT_PRISM_HEADER", Const, 0, ""},
+		{"DLT_PRONET", Const, 0, ""},
+		{"DLT_RAIF1", Const, 0, ""},
+		{"DLT_RAW", Const, 0, ""},
+		{"DLT_RAWAF_MASK", Const, 1, ""},
+		{"DLT_RIO", Const, 0, ""},
+		{"DLT_SCCP", Const, 0, ""},
+		{"DLT_SITA", Const, 0, ""},
+		{"DLT_SLIP", Const, 0, ""},
+		{"DLT_SLIP_BSDOS", Const, 0, ""},
+		{"DLT_STANAG_5066_D_PDU", Const, 1, ""},
+		{"DLT_SUNATM", Const, 0, ""},
+		{"DLT_SYMANTEC_FIREWALL", Const, 0, ""},
+		{"DLT_TZSP", Const, 0, ""},
+		{"DLT_USB", Const, 0, ""},
+		{"DLT_USB_LINUX", Const, 0, ""},
+		{"DLT_USB_LINUX_MMAPPED", Const, 1, ""},
+		{"DLT_USER0", Const, 0, ""},
+		{"DLT_USER1", Const, 0, ""},
+		{"DLT_USER10", Const, 0, ""},
+		{"DLT_USER11", Const, 0, ""},
+		{"DLT_USER12", Const, 0, ""},
+		{"DLT_USER13", Const, 0, ""},
+		{"DLT_USER14", Const, 0, ""},
+		{"DLT_USER15", Const, 0, ""},
+		{"DLT_USER2", Const, 0, ""},
+		{"DLT_USER3", Const, 0, ""},
+		{"DLT_USER4", Const, 0, ""},
+		{"DLT_USER5", Const, 0, ""},
+		{"DLT_USER6", Const, 0, ""},
+		{"DLT_USER7", Const, 0, ""},
+		{"DLT_USER8", Const, 0, ""},
+		{"DLT_USER9", Const, 0, ""},
+		{"DLT_WIHART", Const, 1, ""},
+		{"DLT_X2E_SERIAL", Const, 0, ""},
+		{"DLT_X2E_XORAYA", Const, 0, ""},
+		{"DNSMXData", Type, 0, ""},
+		{"DNSMXData.NameExchange", Field, 0, ""},
+		{"DNSMXData.Pad", Field, 0, ""},
+		{"DNSMXData.Preference", Field, 0, ""},
+		{"DNSPTRData", Type, 0, ""},
+		{"DNSPTRData.Host", Field, 0, ""},
+		{"DNSRecord", Type, 0, ""},
+		{"DNSRecord.Data", Field, 0, ""},
+		{"DNSRecord.Dw", Field, 0, ""},
+		{"DNSRecord.Length", Field, 0, ""},
+		{"DNSRecord.Name", Field, 0, ""},
+		{"DNSRecord.Next", Field, 0, ""},
+		{"DNSRecord.Reserved", Field, 0, ""},
+		{"DNSRecord.Ttl", Field, 0, ""},
+		{"DNSRecord.Type", Field, 0, ""},
+		{"DNSSRVData", Type, 0, ""},
+		{"DNSSRVData.Pad", Field, 0, ""},
+		{"DNSSRVData.Port", Field, 0, ""},
+		{"DNSSRVData.Priority", Field, 0, ""},
+		{"DNSSRVData.Target", Field, 0, ""},
+		{"DNSSRVData.Weight", Field, 0, ""},
+		{"DNSTXTData", Type, 0, ""},
+		{"DNSTXTData.StringArray", Field, 0, ""},
+		{"DNSTXTData.StringCount", Field, 0, ""},
+		{"DNS_INFO_NO_RECORDS", Const, 4, ""},
+		{"DNS_TYPE_A", Const, 0, ""},
+		{"DNS_TYPE_A6", Const, 0, ""},
+		{"DNS_TYPE_AAAA", Const, 0, ""},
+		{"DNS_TYPE_ADDRS", Const, 0, ""},
+		{"DNS_TYPE_AFSDB", Const, 0, ""},
+		{"DNS_TYPE_ALL", Const, 0, ""},
+		{"DNS_TYPE_ANY", Const, 0, ""},
+		{"DNS_TYPE_ATMA", Const, 0, ""},
+		{"DNS_TYPE_AXFR", Const, 0, ""},
+		{"DNS_TYPE_CERT", Const, 0, ""},
+		{"DNS_TYPE_CNAME", Const, 0, ""},
+		{"DNS_TYPE_DHCID", Const, 0, ""},
+		{"DNS_TYPE_DNAME", Const, 0, ""},
+		{"DNS_TYPE_DNSKEY", Const, 0, ""},
+		{"DNS_TYPE_DS", Const, 0, ""},
+		{"DNS_TYPE_EID", Const, 0, ""},
+		{"DNS_TYPE_GID", Const, 0, ""},
+		{"DNS_TYPE_GPOS", Const, 0, ""},
+		{"DNS_TYPE_HINFO", Const, 0, ""},
+		{"DNS_TYPE_ISDN", Const, 0, ""},
+		{"DNS_TYPE_IXFR", Const, 0, ""},
+		{"DNS_TYPE_KEY", Const, 0, ""},
+		{"DNS_TYPE_KX", Const, 0, ""},
+		{"DNS_TYPE_LOC", Const, 0, ""},
+		{"DNS_TYPE_MAILA", Const, 0, ""},
+		{"DNS_TYPE_MAILB", Const, 0, ""},
+		{"DNS_TYPE_MB", Const, 0, ""},
+		{"DNS_TYPE_MD", Const, 0, ""},
+		{"DNS_TYPE_MF", Const, 0, ""},
+		{"DNS_TYPE_MG", Const, 0, ""},
+		{"DNS_TYPE_MINFO", Const, 0, ""},
+		{"DNS_TYPE_MR", Const, 0, ""},
+		{"DNS_TYPE_MX", Const, 0, ""},
+		{"DNS_TYPE_NAPTR", Const, 0, ""},
+		{"DNS_TYPE_NBSTAT", Const, 0, ""},
+		{"DNS_TYPE_NIMLOC", Const, 0, ""},
+		{"DNS_TYPE_NS", Const, 0, ""},
+		{"DNS_TYPE_NSAP", Const, 0, ""},
+		{"DNS_TYPE_NSAPPTR", Const, 0, ""},
+		{"DNS_TYPE_NSEC", Const, 0, ""},
+		{"DNS_TYPE_NULL", Const, 0, ""},
+		{"DNS_TYPE_NXT", Const, 0, ""},
+		{"DNS_TYPE_OPT", Const, 0, ""},
+		{"DNS_TYPE_PTR", Const, 0, ""},
+		{"DNS_TYPE_PX", Const, 0, ""},
+		{"DNS_TYPE_RP", Const, 0, ""},
+		{"DNS_TYPE_RRSIG", Const, 0, ""},
+		{"DNS_TYPE_RT", Const, 0, ""},
+		{"DNS_TYPE_SIG", Const, 0, ""},
+		{"DNS_TYPE_SINK", Const, 0, ""},
+		{"DNS_TYPE_SOA", Const, 0, ""},
+		{"DNS_TYPE_SRV", Const, 0, ""},
+		{"DNS_TYPE_TEXT", Const, 0, ""},
+		{"DNS_TYPE_TKEY", Const, 0, ""},
+		{"DNS_TYPE_TSIG", Const, 0, ""},
+		{"DNS_TYPE_UID", Const, 0, ""},
+		{"DNS_TYPE_UINFO", Const, 0, ""},
+		{"DNS_TYPE_UNSPEC", Const, 0, ""},
+		{"DNS_TYPE_WINS", Const, 0, ""},
+		{"DNS_TYPE_WINSR", Const, 0, ""},
+		{"DNS_TYPE_WKS", Const, 0, ""},
+		{"DNS_TYPE_X25", Const, 0, ""},
+		{"DT_BLK", Const, 0, ""},
+		{"DT_CHR", Const, 0, ""},
+		{"DT_DIR", Const, 0, ""},
+		{"DT_FIFO", Const, 0, ""},
+		{"DT_LNK", Const, 0, ""},
+		{"DT_REG", Const, 0, ""},
+		{"DT_SOCK", Const, 0, ""},
+		{"DT_UNKNOWN", Const, 0, ""},
+		{"DT_WHT", Const, 0, ""},
+		{"DUPLICATE_CLOSE_SOURCE", Const, 0, ""},
+		{"DUPLICATE_SAME_ACCESS", Const, 0, ""},
+		{"DeleteFile", Func, 0, ""},
+		{"DetachLsf", Func, 0, "func(fd int) error"},
+		{"DeviceIoControl", Func, 4, ""},
+		{"Dirent", Type, 0, ""},
+		{"Dirent.Fileno", Field, 0, ""},
+		{"Dirent.Ino", Field, 0, ""},
+		{"Dirent.Name", Field, 0, ""},
+		{"Dirent.Namlen", Field, 0, ""},
+		{"Dirent.Off", Field, 0, ""},
+		{"Dirent.Pad0", Field, 12, ""},
+		{"Dirent.Pad1", Field, 12, ""},
+		{"Dirent.Pad_cgo_0", Field, 0, ""},
+		{"Dirent.Reclen", Field, 0, ""},
+		{"Dirent.Seekoff", Field, 0, ""},
+		{"Dirent.Type", Field, 0, ""},
+		{"Dirent.X__d_padding", Field, 3, ""},
+		{"DnsNameCompare", Func, 4, ""},
+		{"DnsQuery", Func, 0, ""},
+		{"DnsRecordListFree", Func, 0, ""},
+		{"DnsSectionAdditional", Const, 4, ""},
+		{"DnsSectionAnswer", Const, 4, ""},
+		{"DnsSectionAuthority", Const, 4, ""},
+		{"DnsSectionQuestion", Const, 4, ""},
+		{"Dup", Func, 0, "func(oldfd int) (fd int, err error)"},
+		{"Dup2", Func, 0, "func(oldfd int, newfd int) (err error)"},
+		{"Dup3", Func, 2, "func(oldfd int, newfd int, flags int) (err error)"},
+		{"DuplicateHandle", Func, 0, ""},
+		{"E2BIG", Const, 0, ""},
+		{"EACCES", Const, 0, ""},
+		{"EADDRINUSE", Const, 0, ""},
+		{"EADDRNOTAVAIL", Const, 0, ""},
+		{"EADV", Const, 0, ""},
+		{"EAFNOSUPPORT", Const, 0, ""},
+		{"EAGAIN", Const, 0, ""},
+		{"EALREADY", Const, 0, ""},
+		{"EAUTH", Const, 0, ""},
+		{"EBADARCH", Const, 0, ""},
+		{"EBADE", Const, 0, ""},
+		{"EBADEXEC", Const, 0, ""},
+		{"EBADF", Const, 0, ""},
+		{"EBADFD", Const, 0, ""},
+		{"EBADMACHO", Const, 0, ""},
+		{"EBADMSG", Const, 0, ""},
+		{"EBADR", Const, 0, ""},
+		{"EBADRPC", Const, 0, ""},
+		{"EBADRQC", Const, 0, ""},
+		{"EBADSLT", Const, 0, ""},
+		{"EBFONT", Const, 0, ""},
+		{"EBUSY", Const, 0, ""},
+		{"ECANCELED", Const, 0, ""},
+		{"ECAPMODE", Const, 1, ""},
+		{"ECHILD", Const, 0, ""},
+		{"ECHO", Const, 0, ""},
+		{"ECHOCTL", Const, 0, ""},
+		{"ECHOE", Const, 0, ""},
+		{"ECHOK", Const, 0, ""},
+		{"ECHOKE", Const, 0, ""},
+		{"ECHONL", Const, 0, ""},
+		{"ECHOPRT", Const, 0, ""},
+		{"ECHRNG", Const, 0, ""},
+		{"ECOMM", Const, 0, ""},
+		{"ECONNABORTED", Const, 0, ""},
+		{"ECONNREFUSED", Const, 0, ""},
+		{"ECONNRESET", Const, 0, ""},
+		{"EDEADLK", Const, 0, ""},
+		{"EDEADLOCK", Const, 0, ""},
+		{"EDESTADDRREQ", Const, 0, ""},
+		{"EDEVERR", Const, 0, ""},
+		{"EDOM", Const, 0, ""},
+		{"EDOOFUS", Const, 0, ""},
+		{"EDOTDOT", Const, 0, ""},
+		{"EDQUOT", Const, 0, ""},
+		{"EEXIST", Const, 0, ""},
+		{"EFAULT", Const, 0, ""},
+		{"EFBIG", Const, 0, ""},
+		{"EFER_LMA", Const, 1, ""},
+		{"EFER_LME", Const, 1, ""},
+		{"EFER_NXE", Const, 1, ""},
+		{"EFER_SCE", Const, 1, ""},
+		{"EFTYPE", Const, 0, ""},
+		{"EHOSTDOWN", Const, 0, ""},
+		{"EHOSTUNREACH", Const, 0, ""},
+		{"EHWPOISON", Const, 0, ""},
+		{"EIDRM", Const, 0, ""},
+		{"EILSEQ", Const, 0, ""},
+		{"EINPROGRESS", Const, 0, ""},
+		{"EINTR", Const, 0, ""},
+		{"EINVAL", Const, 0, ""},
+		{"EIO", Const, 0, ""},
+		{"EIPSEC", Const, 1, ""},
+		{"EISCONN", Const, 0, ""},
+		{"EISDIR", Const, 0, ""},
+		{"EISNAM", Const, 0, ""},
+		{"EKEYEXPIRED", Const, 0, ""},
+		{"EKEYREJECTED", Const, 0, ""},
+		{"EKEYREVOKED", Const, 0, ""},
+		{"EL2HLT", Const, 0, ""},
+		{"EL2NSYNC", Const, 0, ""},
+		{"EL3HLT", Const, 0, ""},
+		{"EL3RST", Const, 0, ""},
+		{"ELAST", Const, 0, ""},
+		{"ELF_NGREG", Const, 0, ""},
+		{"ELF_PRARGSZ", Const, 0, ""},
+		{"ELIBACC", Const, 0, ""},
+		{"ELIBBAD", Const, 0, ""},
+		{"ELIBEXEC", Const, 0, ""},
+		{"ELIBMAX", Const, 0, ""},
+		{"ELIBSCN", Const, 0, ""},
+		{"ELNRNG", Const, 0, ""},
+		{"ELOOP", Const, 0, ""},
+		{"EMEDIUMTYPE", Const, 0, ""},
+		{"EMFILE", Const, 0, ""},
+		{"EMLINK", Const, 0, ""},
+		{"EMSGSIZE", Const, 0, ""},
+		{"EMT_TAGOVF", Const, 1, ""},
+		{"EMULTIHOP", Const, 0, ""},
+		{"EMUL_ENABLED", Const, 1, ""},
+		{"EMUL_LINUX", Const, 1, ""},
+		{"EMUL_LINUX32", Const, 1, ""},
+		{"EMUL_MAXID", Const, 1, ""},
+		{"EMUL_NATIVE", Const, 1, ""},
+		{"ENAMETOOLONG", Const, 0, ""},
+		{"ENAVAIL", Const, 0, ""},
+		{"ENDRUNDISC", Const, 1, ""},
+		{"ENEEDAUTH", Const, 0, ""},
+		{"ENETDOWN", Const, 0, ""},
+		{"ENETRESET", Const, 0, ""},
+		{"ENETUNREACH", Const, 0, ""},
+		{"ENFILE", Const, 0, ""},
+		{"ENOANO", Const, 0, ""},
+		{"ENOATTR", Const, 0, ""},
+		{"ENOBUFS", Const, 0, ""},
+		{"ENOCSI", Const, 0, ""},
+		{"ENODATA", Const, 0, ""},
+		{"ENODEV", Const, 0, ""},
+		{"ENOENT", Const, 0, ""},
+		{"ENOEXEC", Const, 0, ""},
+		{"ENOKEY", Const, 0, ""},
+		{"ENOLCK", Const, 0, ""},
+		{"ENOLINK", Const, 0, ""},
+		{"ENOMEDIUM", Const, 0, ""},
+		{"ENOMEM", Const, 0, ""},
+		{"ENOMSG", Const, 0, ""},
+		{"ENONET", Const, 0, ""},
+		{"ENOPKG", Const, 0, ""},
+		{"ENOPOLICY", Const, 0, ""},
+		{"ENOPROTOOPT", Const, 0, ""},
+		{"ENOSPC", Const, 0, ""},
+		{"ENOSR", Const, 0, ""},
+		{"ENOSTR", Const, 0, ""},
+		{"ENOSYS", Const, 0, ""},
+		{"ENOTBLK", Const, 0, ""},
+		{"ENOTCAPABLE", Const, 0, ""},
+		{"ENOTCONN", Const, 0, ""},
+		{"ENOTDIR", Const, 0, ""},
+		{"ENOTEMPTY", Const, 0, ""},
+		{"ENOTNAM", Const, 0, ""},
+		{"ENOTRECOVERABLE", Const, 0, ""},
+		{"ENOTSOCK", Const, 0, ""},
+		{"ENOTSUP", Const, 0, ""},
+		{"ENOTTY", Const, 0, ""},
+		{"ENOTUNIQ", Const, 0, ""},
+		{"ENXIO", Const, 0, ""},
+		{"EN_SW_CTL_INF", Const, 1, ""},
+		{"EN_SW_CTL_PREC", Const, 1, ""},
+		{"EN_SW_CTL_ROUND", Const, 1, ""},
+		{"EN_SW_DATACHAIN", Const, 1, ""},
+		{"EN_SW_DENORM", Const, 1, ""},
+		{"EN_SW_INVOP", Const, 1, ""},
+		{"EN_SW_OVERFLOW", Const, 1, ""},
+		{"EN_SW_PRECLOSS", Const, 1, ""},
+		{"EN_SW_UNDERFLOW", Const, 1, ""},
+		{"EN_SW_ZERODIV", Const, 1, ""},
+		{"EOPNOTSUPP", Const, 0, ""},
+		{"EOVERFLOW", Const, 0, ""},
+		{"EOWNERDEAD", Const, 0, ""},
+		{"EPERM", Const, 0, ""},
+		{"EPFNOSUPPORT", Const, 0, ""},
+		{"EPIPE", Const, 0, ""},
+		{"EPOLLERR", Const, 0, ""},
+		{"EPOLLET", Const, 0, ""},
+		{"EPOLLHUP", Const, 0, ""},
+		{"EPOLLIN", Const, 0, ""},
+		{"EPOLLMSG", Const, 0, ""},
+		{"EPOLLONESHOT", Const, 0, ""},
+		{"EPOLLOUT", Const, 0, ""},
+		{"EPOLLPRI", Const, 0, ""},
+		{"EPOLLRDBAND", Const, 0, ""},
+		{"EPOLLRDHUP", Const, 0, ""},
+		{"EPOLLRDNORM", Const, 0, ""},
+		{"EPOLLWRBAND", Const, 0, ""},
+		{"EPOLLWRNORM", Const, 0, ""},
+		{"EPOLL_CLOEXEC", Const, 0, ""},
+		{"EPOLL_CTL_ADD", Const, 0, ""},
+		{"EPOLL_CTL_DEL", Const, 0, ""},
+		{"EPOLL_CTL_MOD", Const, 0, ""},
+		{"EPOLL_NONBLOCK", Const, 0, ""},
+		{"EPROCLIM", Const, 0, ""},
+		{"EPROCUNAVAIL", Const, 0, ""},
+		{"EPROGMISMATCH", Const, 0, ""},
+		{"EPROGUNAVAIL", Const, 0, ""},
+		{"EPROTO", Const, 0, ""},
+		{"EPROTONOSUPPORT", Const, 0, ""},
+		{"EPROTOTYPE", Const, 0, ""},
+		{"EPWROFF", Const, 0, ""},
+		{"EQFULL", Const, 16, ""},
+		{"ERANGE", Const, 0, ""},
+		{"EREMCHG", Const, 0, ""},
+		{"EREMOTE", Const, 0, ""},
+		{"EREMOTEIO", Const, 0, ""},
+		{"ERESTART", Const, 0, ""},
+		{"ERFKILL", Const, 0, ""},
+		{"EROFS", Const, 0, ""},
+		{"ERPCMISMATCH", Const, 0, ""},
+		{"ERROR_ACCESS_DENIED", Const, 0, ""},
+		{"ERROR_ALREADY_EXISTS", Const, 0, ""},
+		{"ERROR_BROKEN_PIPE", Const, 0, ""},
+		{"ERROR_BUFFER_OVERFLOW", Const, 0, ""},
+		{"ERROR_DIR_NOT_EMPTY", Const, 8, ""},
+		{"ERROR_ENVVAR_NOT_FOUND", Const, 0, ""},
+		{"ERROR_FILE_EXISTS", Const, 0, ""},
+		{"ERROR_FILE_NOT_FOUND", Const, 0, ""},
+		{"ERROR_HANDLE_EOF", Const, 2, ""},
+		{"ERROR_INSUFFICIENT_BUFFER", Const, 0, ""},
+		{"ERROR_IO_PENDING", Const, 0, ""},
+		{"ERROR_MOD_NOT_FOUND", Const, 0, ""},
+		{"ERROR_MORE_DATA", Const, 3, ""},
+		{"ERROR_NETNAME_DELETED", Const, 3, ""},
+		{"ERROR_NOT_FOUND", Const, 1, ""},
+		{"ERROR_NO_MORE_FILES", Const, 0, ""},
+		{"ERROR_OPERATION_ABORTED", Const, 0, ""},
+		{"ERROR_PATH_NOT_FOUND", Const, 0, ""},
+		{"ERROR_PRIVILEGE_NOT_HELD", Const, 4, ""},
+		{"ERROR_PROC_NOT_FOUND", Const, 0, ""},
+		{"ESHLIBVERS", Const, 0, ""},
+		{"ESHUTDOWN", Const, 0, ""},
+		{"ESOCKTNOSUPPORT", Const, 0, ""},
+		{"ESPIPE", Const, 0, ""},
+		{"ESRCH", Const, 0, ""},
+		{"ESRMNT", Const, 0, ""},
+		{"ESTALE", Const, 0, ""},
+		{"ESTRPIPE", Const, 0, ""},
+		{"ETHERCAP_JUMBO_MTU", Const, 1, ""},
+		{"ETHERCAP_VLAN_HWTAGGING", Const, 1, ""},
+		{"ETHERCAP_VLAN_MTU", Const, 1, ""},
+		{"ETHERMIN", Const, 1, ""},
+		{"ETHERMTU", Const, 1, ""},
+		{"ETHERMTU_JUMBO", Const, 1, ""},
+		{"ETHERTYPE_8023", Const, 1, ""},
+		{"ETHERTYPE_AARP", Const, 1, ""},
+		{"ETHERTYPE_ACCTON", Const, 1, ""},
+		{"ETHERTYPE_AEONIC", Const, 1, ""},
+		{"ETHERTYPE_ALPHA", Const, 1, ""},
+		{"ETHERTYPE_AMBER", Const, 1, ""},
+		{"ETHERTYPE_AMOEBA", Const, 1, ""},
+		{"ETHERTYPE_AOE", Const, 1, ""},
+		{"ETHERTYPE_APOLLO", Const, 1, ""},
+		{"ETHERTYPE_APOLLODOMAIN", Const, 1, ""},
+		{"ETHERTYPE_APPLETALK", Const, 1, ""},
+		{"ETHERTYPE_APPLITEK", Const, 1, ""},
+		{"ETHERTYPE_ARGONAUT", Const, 1, ""},
+		{"ETHERTYPE_ARP", Const, 1, ""},
+		{"ETHERTYPE_AT", Const, 1, ""},
+		{"ETHERTYPE_ATALK", Const, 1, ""},
+		{"ETHERTYPE_ATOMIC", Const, 1, ""},
+		{"ETHERTYPE_ATT", Const, 1, ""},
+		{"ETHERTYPE_ATTSTANFORD", Const, 1, ""},
+		{"ETHERTYPE_AUTOPHON", Const, 1, ""},
+		{"ETHERTYPE_AXIS", Const, 1, ""},
+		{"ETHERTYPE_BCLOOP", Const, 1, ""},
+		{"ETHERTYPE_BOFL", Const, 1, ""},
+		{"ETHERTYPE_CABLETRON", Const, 1, ""},
+		{"ETHERTYPE_CHAOS", Const, 1, ""},
+		{"ETHERTYPE_COMDESIGN", Const, 1, ""},
+		{"ETHERTYPE_COMPUGRAPHIC", Const, 1, ""},
+		{"ETHERTYPE_COUNTERPOINT", Const, 1, ""},
+		{"ETHERTYPE_CRONUS", Const, 1, ""},
+		{"ETHERTYPE_CRONUSVLN", Const, 1, ""},
+		{"ETHERTYPE_DCA", Const, 1, ""},
+		{"ETHERTYPE_DDE", Const, 1, ""},
+		{"ETHERTYPE_DEBNI", Const, 1, ""},
+		{"ETHERTYPE_DECAM", Const, 1, ""},
+		{"ETHERTYPE_DECCUST", Const, 1, ""},
+		{"ETHERTYPE_DECDIAG", Const, 1, ""},
+		{"ETHERTYPE_DECDNS", Const, 1, ""},
+		{"ETHERTYPE_DECDTS", Const, 1, ""},
+		{"ETHERTYPE_DECEXPER", Const, 1, ""},
+		{"ETHERTYPE_DECLAST", Const, 1, ""},
+		{"ETHERTYPE_DECLTM", Const, 1, ""},
+		{"ETHERTYPE_DECMUMPS", Const, 1, ""},
+		{"ETHERTYPE_DECNETBIOS", Const, 1, ""},
+		{"ETHERTYPE_DELTACON", Const, 1, ""},
+		{"ETHERTYPE_DIDDLE", Const, 1, ""},
+		{"ETHERTYPE_DLOG1", Const, 1, ""},
+		{"ETHERTYPE_DLOG2", Const, 1, ""},
+		{"ETHERTYPE_DN", Const, 1, ""},
+		{"ETHERTYPE_DOGFIGHT", Const, 1, ""},
+		{"ETHERTYPE_DSMD", Const, 1, ""},
+		{"ETHERTYPE_ECMA", Const, 1, ""},
+		{"ETHERTYPE_ENCRYPT", Const, 1, ""},
+		{"ETHERTYPE_ES", Const, 1, ""},
+		{"ETHERTYPE_EXCELAN", Const, 1, ""},
+		{"ETHERTYPE_EXPERDATA", Const, 1, ""},
+		{"ETHERTYPE_FLIP", Const, 1, ""},
+		{"ETHERTYPE_FLOWCONTROL", Const, 1, ""},
+		{"ETHERTYPE_FRARP", Const, 1, ""},
+		{"ETHERTYPE_GENDYN", Const, 1, ""},
+		{"ETHERTYPE_HAYES", Const, 1, ""},
+		{"ETHERTYPE_HIPPI_FP", Const, 1, ""},
+		{"ETHERTYPE_HITACHI", Const, 1, ""},
+		{"ETHERTYPE_HP", Const, 1, ""},
+		{"ETHERTYPE_IEEEPUP", Const, 1, ""},
+		{"ETHERTYPE_IEEEPUPAT", Const, 1, ""},
+		{"ETHERTYPE_IMLBL", Const, 1, ""},
+		{"ETHERTYPE_IMLBLDIAG", Const, 1, ""},
+		{"ETHERTYPE_IP", Const, 1, ""},
+		{"ETHERTYPE_IPAS", Const, 1, ""},
+		{"ETHERTYPE_IPV6", Const, 1, ""},
+		{"ETHERTYPE_IPX", Const, 1, ""},
+		{"ETHERTYPE_IPXNEW", Const, 1, ""},
+		{"ETHERTYPE_KALPANA", Const, 1, ""},
+		{"ETHERTYPE_LANBRIDGE", Const, 1, ""},
+		{"ETHERTYPE_LANPROBE", Const, 1, ""},
+		{"ETHERTYPE_LAT", Const, 1, ""},
+		{"ETHERTYPE_LBACK", Const, 1, ""},
+		{"ETHERTYPE_LITTLE", Const, 1, ""},
+		{"ETHERTYPE_LLDP", Const, 1, ""},
+		{"ETHERTYPE_LOGICRAFT", Const, 1, ""},
+		{"ETHERTYPE_LOOPBACK", Const, 1, ""},
+		{"ETHERTYPE_MATRA", Const, 1, ""},
+		{"ETHERTYPE_MAX", Const, 1, ""},
+		{"ETHERTYPE_MERIT", Const, 1, ""},
+		{"ETHERTYPE_MICP", Const, 1, ""},
+		{"ETHERTYPE_MOPDL", Const, 1, ""},
+		{"ETHERTYPE_MOPRC", Const, 1, ""},
+		{"ETHERTYPE_MOTOROLA", Const, 1, ""},
+		{"ETHERTYPE_MPLS", Const, 1, ""},
+		{"ETHERTYPE_MPLS_MCAST", Const, 1, ""},
+		{"ETHERTYPE_MUMPS", Const, 1, ""},
+		{"ETHERTYPE_NBPCC", Const, 1, ""},
+		{"ETHERTYPE_NBPCLAIM", Const, 1, ""},
+		{"ETHERTYPE_NBPCLREQ", Const, 1, ""},
+		{"ETHERTYPE_NBPCLRSP", Const, 1, ""},
+		{"ETHERTYPE_NBPCREQ", Const, 1, ""},
+		{"ETHERTYPE_NBPCRSP", Const, 1, ""},
+		{"ETHERTYPE_NBPDG", Const, 1, ""},
+		{"ETHERTYPE_NBPDGB", Const, 1, ""},
+		{"ETHERTYPE_NBPDLTE", Const, 1, ""},
+		{"ETHERTYPE_NBPRAR", Const, 1, ""},
+		{"ETHERTYPE_NBPRAS", Const, 1, ""},
+		{"ETHERTYPE_NBPRST", Const, 1, ""},
+		{"ETHERTYPE_NBPSCD", Const, 1, ""},
+		{"ETHERTYPE_NBPVCD", Const, 1, ""},
+		{"ETHERTYPE_NBS", Const, 1, ""},
+		{"ETHERTYPE_NCD", Const, 1, ""},
+		{"ETHERTYPE_NESTAR", Const, 1, ""},
+		{"ETHERTYPE_NETBEUI", Const, 1, ""},
+		{"ETHERTYPE_NOVELL", Const, 1, ""},
+		{"ETHERTYPE_NS", Const, 1, ""},
+		{"ETHERTYPE_NSAT", Const, 1, ""},
+		{"ETHERTYPE_NSCOMPAT", Const, 1, ""},
+		{"ETHERTYPE_NTRAILER", Const, 1, ""},
+		{"ETHERTYPE_OS9", Const, 1, ""},
+		{"ETHERTYPE_OS9NET", Const, 1, ""},
+		{"ETHERTYPE_PACER", Const, 1, ""},
+		{"ETHERTYPE_PAE", Const, 1, ""},
+		{"ETHERTYPE_PCS", Const, 1, ""},
+		{"ETHERTYPE_PLANNING", Const, 1, ""},
+		{"ETHERTYPE_PPP", Const, 1, ""},
+		{"ETHERTYPE_PPPOE", Const, 1, ""},
+		{"ETHERTYPE_PPPOEDISC", Const, 1, ""},
+		{"ETHERTYPE_PRIMENTS", Const, 1, ""},
+		{"ETHERTYPE_PUP", Const, 1, ""},
+		{"ETHERTYPE_PUPAT", Const, 1, ""},
+		{"ETHERTYPE_QINQ", Const, 1, ""},
+		{"ETHERTYPE_RACAL", Const, 1, ""},
+		{"ETHERTYPE_RATIONAL", Const, 1, ""},
+		{"ETHERTYPE_RAWFR", Const, 1, ""},
+		{"ETHERTYPE_RCL", Const, 1, ""},
+		{"ETHERTYPE_RDP", Const, 1, ""},
+		{"ETHERTYPE_RETIX", Const, 1, ""},
+		{"ETHERTYPE_REVARP", Const, 1, ""},
+		{"ETHERTYPE_SCA", Const, 1, ""},
+		{"ETHERTYPE_SECTRA", Const, 1, ""},
+		{"ETHERTYPE_SECUREDATA", Const, 1, ""},
+		{"ETHERTYPE_SGITW", Const, 1, ""},
+		{"ETHERTYPE_SG_BOUNCE", Const, 1, ""},
+		{"ETHERTYPE_SG_DIAG", Const, 1, ""},
+		{"ETHERTYPE_SG_NETGAMES", Const, 1, ""},
+		{"ETHERTYPE_SG_RESV", Const, 1, ""},
+		{"ETHERTYPE_SIMNET", Const, 1, ""},
+		{"ETHERTYPE_SLOW", Const, 1, ""},
+		{"ETHERTYPE_SLOWPROTOCOLS", Const, 1, ""},
+		{"ETHERTYPE_SNA", Const, 1, ""},
+		{"ETHERTYPE_SNMP", Const, 1, ""},
+		{"ETHERTYPE_SONIX", Const, 1, ""},
+		{"ETHERTYPE_SPIDER", Const, 1, ""},
+		{"ETHERTYPE_SPRITE", Const, 1, ""},
+		{"ETHERTYPE_STP", Const, 1, ""},
+		{"ETHERTYPE_TALARIS", Const, 1, ""},
+		{"ETHERTYPE_TALARISMC", Const, 1, ""},
+		{"ETHERTYPE_TCPCOMP", Const, 1, ""},
+		{"ETHERTYPE_TCPSM", Const, 1, ""},
+		{"ETHERTYPE_TEC", Const, 1, ""},
+		{"ETHERTYPE_TIGAN", Const, 1, ""},
+		{"ETHERTYPE_TRAIL", Const, 1, ""},
+		{"ETHERTYPE_TRANSETHER", Const, 1, ""},
+		{"ETHERTYPE_TYMSHARE", Const, 1, ""},
+		{"ETHERTYPE_UBBST", Const, 1, ""},
+		{"ETHERTYPE_UBDEBUG", Const, 1, ""},
+		{"ETHERTYPE_UBDIAGLOOP", Const, 1, ""},
+		{"ETHERTYPE_UBDL", Const, 1, ""},
+		{"ETHERTYPE_UBNIU", Const, 1, ""},
+		{"ETHERTYPE_UBNMC", Const, 1, ""},
+		{"ETHERTYPE_VALID", Const, 1, ""},
+		{"ETHERTYPE_VARIAN", Const, 1, ""},
+		{"ETHERTYPE_VAXELN", Const, 1, ""},
+		{"ETHERTYPE_VEECO", Const, 1, ""},
+		{"ETHERTYPE_VEXP", Const, 1, ""},
+		{"ETHERTYPE_VGLAB", Const, 1, ""},
+		{"ETHERTYPE_VINES", Const, 1, ""},
+		{"ETHERTYPE_VINESECHO", Const, 1, ""},
+		{"ETHERTYPE_VINESLOOP", Const, 1, ""},
+		{"ETHERTYPE_VITAL", Const, 1, ""},
+		{"ETHERTYPE_VLAN", Const, 1, ""},
+		{"ETHERTYPE_VLTLMAN", Const, 1, ""},
+		{"ETHERTYPE_VPROD", Const, 1, ""},
+		{"ETHERTYPE_VURESERVED", Const, 1, ""},
+		{"ETHERTYPE_WATERLOO", Const, 1, ""},
+		{"ETHERTYPE_WELLFLEET", Const, 1, ""},
+		{"ETHERTYPE_X25", Const, 1, ""},
+		{"ETHERTYPE_X75", Const, 1, ""},
+		{"ETHERTYPE_XNSSM", Const, 1, ""},
+		{"ETHERTYPE_XTP", Const, 1, ""},
+		{"ETHER_ADDR_LEN", Const, 1, ""},
+		{"ETHER_ALIGN", Const, 1, ""},
+		{"ETHER_CRC_LEN", Const, 1, ""},
+		{"ETHER_CRC_POLY_BE", Const, 1, ""},
+		{"ETHER_CRC_POLY_LE", Const, 1, ""},
+		{"ETHER_HDR_LEN", Const, 1, ""},
+		{"ETHER_MAX_DIX_LEN", Const, 1, ""},
+		{"ETHER_MAX_LEN", Const, 1, ""},
+		{"ETHER_MAX_LEN_JUMBO", Const, 1, ""},
+		{"ETHER_MIN_LEN", Const, 1, ""},
+		{"ETHER_PPPOE_ENCAP_LEN", Const, 1, ""},
+		{"ETHER_TYPE_LEN", Const, 1, ""},
+		{"ETHER_VLAN_ENCAP_LEN", Const, 1, ""},
+		{"ETH_P_1588", Const, 0, ""},
+		{"ETH_P_8021Q", Const, 0, ""},
+		{"ETH_P_802_2", Const, 0, ""},
+		{"ETH_P_802_3", Const, 0, ""},
+		{"ETH_P_AARP", Const, 0, ""},
+		{"ETH_P_ALL", Const, 0, ""},
+		{"ETH_P_AOE", Const, 0, ""},
+		{"ETH_P_ARCNET", Const, 0, ""},
+		{"ETH_P_ARP", Const, 0, ""},
+		{"ETH_P_ATALK", Const, 0, ""},
+		{"ETH_P_ATMFATE", Const, 0, ""},
+		{"ETH_P_ATMMPOA", Const, 0, ""},
+		{"ETH_P_AX25", Const, 0, ""},
+		{"ETH_P_BPQ", Const, 0, ""},
+		{"ETH_P_CAIF", Const, 0, ""},
+		{"ETH_P_CAN", Const, 0, ""},
+		{"ETH_P_CONTROL", Const, 0, ""},
+		{"ETH_P_CUST", Const, 0, ""},
+		{"ETH_P_DDCMP", Const, 0, ""},
+		{"ETH_P_DEC", Const, 0, ""},
+		{"ETH_P_DIAG", Const, 0, ""},
+		{"ETH_P_DNA_DL", Const, 0, ""},
+		{"ETH_P_DNA_RC", Const, 0, ""},
+		{"ETH_P_DNA_RT", Const, 0, ""},
+		{"ETH_P_DSA", Const, 0, ""},
+		{"ETH_P_ECONET", Const, 0, ""},
+		{"ETH_P_EDSA", Const, 0, ""},
+		{"ETH_P_FCOE", Const, 0, ""},
+		{"ETH_P_FIP", Const, 0, ""},
+		{"ETH_P_HDLC", Const, 0, ""},
+		{"ETH_P_IEEE802154", Const, 0, ""},
+		{"ETH_P_IEEEPUP", Const, 0, ""},
+		{"ETH_P_IEEEPUPAT", Const, 0, ""},
+		{"ETH_P_IP", Const, 0, ""},
+		{"ETH_P_IPV6", Const, 0, ""},
+		{"ETH_P_IPX", Const, 0, ""},
+		{"ETH_P_IRDA", Const, 0, ""},
+		{"ETH_P_LAT", Const, 0, ""},
+		{"ETH_P_LINK_CTL", Const, 0, ""},
+		{"ETH_P_LOCALTALK", Const, 0, ""},
+		{"ETH_P_LOOP", Const, 0, ""},
+		{"ETH_P_MOBITEX", Const, 0, ""},
+		{"ETH_P_MPLS_MC", Const, 0, ""},
+		{"ETH_P_MPLS_UC", Const, 0, ""},
+		{"ETH_P_PAE", Const, 0, ""},
+		{"ETH_P_PAUSE", Const, 0, ""},
+		{"ETH_P_PHONET", Const, 0, ""},
+		{"ETH_P_PPPTALK", Const, 0, ""},
+		{"ETH_P_PPP_DISC", Const, 0, ""},
+		{"ETH_P_PPP_MP", Const, 0, ""},
+		{"ETH_P_PPP_SES", Const, 0, ""},
+		{"ETH_P_PUP", Const, 0, ""},
+		{"ETH_P_PUPAT", Const, 0, ""},
+		{"ETH_P_RARP", Const, 0, ""},
+		{"ETH_P_SCA", Const, 0, ""},
+		{"ETH_P_SLOW", Const, 0, ""},
+		{"ETH_P_SNAP", Const, 0, ""},
+		{"ETH_P_TEB", Const, 0, ""},
+		{"ETH_P_TIPC", Const, 0, ""},
+		{"ETH_P_TRAILER", Const, 0, ""},
+		{"ETH_P_TR_802_2", Const, 0, ""},
+		{"ETH_P_WAN_PPP", Const, 0, ""},
+		{"ETH_P_WCCP", Const, 0, ""},
+		{"ETH_P_X25", Const, 0, ""},
+		{"ETIME", Const, 0, ""},
+		{"ETIMEDOUT", Const, 0, ""},
+		{"ETOOMANYREFS", Const, 0, ""},
+		{"ETXTBSY", Const, 0, ""},
+		{"EUCLEAN", Const, 0, ""},
+		{"EUNATCH", Const, 0, ""},
+		{"EUSERS", Const, 0, ""},
+		{"EVFILT_AIO", Const, 0, ""},
+		{"EVFILT_FS", Const, 0, ""},
+		{"EVFILT_LIO", Const, 0, ""},
+		{"EVFILT_MACHPORT", Const, 0, ""},
+		{"EVFILT_PROC", Const, 0, ""},
+		{"EVFILT_READ", Const, 0, ""},
+		{"EVFILT_SIGNAL", Const, 0, ""},
+		{"EVFILT_SYSCOUNT", Const, 0, ""},
+		{"EVFILT_THREADMARKER", Const, 0, ""},
+		{"EVFILT_TIMER", Const, 0, ""},
+		{"EVFILT_USER", Const, 0, ""},
+		{"EVFILT_VM", Const, 0, ""},
+		{"EVFILT_VNODE", Const, 0, ""},
+		{"EVFILT_WRITE", Const, 0, ""},
+		{"EV_ADD", Const, 0, ""},
+		{"EV_CLEAR", Const, 0, ""},
+		{"EV_DELETE", Const, 0, ""},
+		{"EV_DISABLE", Const, 0, ""},
+		{"EV_DISPATCH", Const, 0, ""},
+		{"EV_DROP", Const, 3, ""},
+		{"EV_ENABLE", Const, 0, ""},
+		{"EV_EOF", Const, 0, ""},
+		{"EV_ERROR", Const, 0, ""},
+		{"EV_FLAG0", Const, 0, ""},
+		{"EV_FLAG1", Const, 0, ""},
+		{"EV_ONESHOT", Const, 0, ""},
+		{"EV_OOBAND", Const, 0, ""},
+		{"EV_POLL", Const, 0, ""},
+		{"EV_RECEIPT", Const, 0, ""},
+		{"EV_SYSFLAGS", Const, 0, ""},
+		{"EWINDOWS", Const, 0, ""},
+		{"EWOULDBLOCK", Const, 0, ""},
+		{"EXDEV", Const, 0, ""},
+		{"EXFULL", Const, 0, ""},
+		{"EXTA", Const, 0, ""},
+		{"EXTB", Const, 0, ""},
+		{"EXTPROC", Const, 0, ""},
+		{"Environ", Func, 0, "func() []string"},
+		{"EpollCreate", Func, 0, "func(size int) (fd int, err error)"},
+		{"EpollCreate1", Func, 0, "func(flag int) (fd int, err error)"},
+		{"EpollCtl", Func, 0, "func(epfd int, op int, fd int, event *EpollEvent) (err error)"},
+		{"EpollEvent", Type, 0, ""},
+		{"EpollEvent.Events", Field, 0, ""},
+		{"EpollEvent.Fd", Field, 0, ""},
+		{"EpollEvent.Pad", Field, 0, ""},
+		{"EpollEvent.PadFd", Field, 0, ""},
+		{"EpollWait", Func, 0, "func(epfd int, events []EpollEvent, msec int) (n int, err error)"},
+		{"Errno", Type, 0, ""},
+		{"EscapeArg", Func, 0, ""},
+		{"Exchangedata", Func, 0, ""},
+		{"Exec", Func, 0, "func(argv0 string, argv []string, envv []string) (err error)"},
+		{"Exit", Func, 0, "func(code int)"},
+		{"ExitProcess", Func, 0, ""},
+		{"FD_CLOEXEC", Const, 0, ""},
+		{"FD_SETSIZE", Const, 0, ""},
+		{"FILE_ACTION_ADDED", Const, 0, ""},
+		{"FILE_ACTION_MODIFIED", Const, 0, ""},
+		{"FILE_ACTION_REMOVED", Const, 0, ""},
+		{"FILE_ACTION_RENAMED_NEW_NAME", Const, 0, ""},
+		{"FILE_ACTION_RENAMED_OLD_NAME", Const, 0, ""},
+		{"FILE_APPEND_DATA", Const, 0, ""},
+		{"FILE_ATTRIBUTE_ARCHIVE", Const, 0, ""},
+		{"FILE_ATTRIBUTE_DIRECTORY", Const, 0, ""},
+		{"FILE_ATTRIBUTE_HIDDEN", Const, 0, ""},
+		{"FILE_ATTRIBUTE_NORMAL", Const, 0, ""},
+		{"FILE_ATTRIBUTE_READONLY", Const, 0, ""},
+		{"FILE_ATTRIBUTE_REPARSE_POINT", Const, 4, ""},
+		{"FILE_ATTRIBUTE_SYSTEM", Const, 0, ""},
+		{"FILE_BEGIN", Const, 0, ""},
+		{"FILE_CURRENT", Const, 0, ""},
+		{"FILE_END", Const, 0, ""},
+		{"FILE_FLAG_BACKUP_SEMANTICS", Const, 0, ""},
+		{"FILE_FLAG_OPEN_REPARSE_POINT", Const, 4, ""},
+		{"FILE_FLAG_OVERLAPPED", Const, 0, ""},
+		{"FILE_LIST_DIRECTORY", Const, 0, ""},
+		{"FILE_MAP_COPY", Const, 0, ""},
+		{"FILE_MAP_EXECUTE", Const, 0, ""},
+		{"FILE_MAP_READ", Const, 0, ""},
+		{"FILE_MAP_WRITE", Const, 0, ""},
+		{"FILE_NOTIFY_CHANGE_ATTRIBUTES", Const, 0, ""},
+		{"FILE_NOTIFY_CHANGE_CREATION", Const, 0, ""},
+		{"FILE_NOTIFY_CHANGE_DIR_NAME", Const, 0, ""},
+		{"FILE_NOTIFY_CHANGE_FILE_NAME", Const, 0, ""},
+		{"FILE_NOTIFY_CHANGE_LAST_ACCESS", Const, 0, ""},
+		{"FILE_NOTIFY_CHANGE_LAST_WRITE", Const, 0, ""},
+		{"FILE_NOTIFY_CHANGE_SIZE", Const, 0, ""},
+		{"FILE_SHARE_DELETE", Const, 0, ""},
+		{"FILE_SHARE_READ", Const, 0, ""},
+		{"FILE_SHARE_WRITE", Const, 0, ""},
+		{"FILE_SKIP_COMPLETION_PORT_ON_SUCCESS", Const, 2, ""},
+		{"FILE_SKIP_SET_EVENT_ON_HANDLE", Const, 2, ""},
+		{"FILE_TYPE_CHAR", Const, 0, ""},
+		{"FILE_TYPE_DISK", Const, 0, ""},
+		{"FILE_TYPE_PIPE", Const, 0, ""},
+		{"FILE_TYPE_REMOTE", Const, 0, ""},
+		{"FILE_TYPE_UNKNOWN", Const, 0, ""},
+		{"FILE_WRITE_ATTRIBUTES", Const, 0, ""},
+		{"FLUSHO", Const, 0, ""},
+		{"FORMAT_MESSAGE_ALLOCATE_BUFFER", Const, 0, ""},
+		{"FORMAT_MESSAGE_ARGUMENT_ARRAY", Const, 0, ""},
+		{"FORMAT_MESSAGE_FROM_HMODULE", Const, 0, ""},
+		{"FORMAT_MESSAGE_FROM_STRING", Const, 0, ""},
+		{"FORMAT_MESSAGE_FROM_SYSTEM", Const, 0, ""},
+		{"FORMAT_MESSAGE_IGNORE_INSERTS", Const, 0, ""},
+		{"FORMAT_MESSAGE_MAX_WIDTH_MASK", Const, 0, ""},
+		{"FSCTL_GET_REPARSE_POINT", Const, 4, ""},
+		{"F_ADDFILESIGS", Const, 0, ""},
+		{"F_ADDSIGS", Const, 0, ""},
+		{"F_ALLOCATEALL", Const, 0, ""},
+		{"F_ALLOCATECONTIG", Const, 0, ""},
+		{"F_CANCEL", Const, 0, ""},
+		{"F_CHKCLEAN", Const, 0, ""},
+		{"F_CLOSEM", Const, 1, ""},
+		{"F_DUP2FD", Const, 0, ""},
+		{"F_DUP2FD_CLOEXEC", Const, 1, ""},
+		{"F_DUPFD", Const, 0, ""},
+		{"F_DUPFD_CLOEXEC", Const, 0, ""},
+		{"F_EXLCK", Const, 0, ""},
+		{"F_FINDSIGS", Const, 16, ""},
+		{"F_FLUSH_DATA", Const, 0, ""},
+		{"F_FREEZE_FS", Const, 0, ""},
+		{"F_FSCTL", Const, 1, ""},
+		{"F_FSDIRMASK", Const, 1, ""},
+		{"F_FSIN", Const, 1, ""},
+		{"F_FSINOUT", Const, 1, ""},
+		{"F_FSOUT", Const, 1, ""},
+		{"F_FSPRIV", Const, 1, ""},
+		{"F_FSVOID", Const, 1, ""},
+		{"F_FULLFSYNC", Const, 0, ""},
+		{"F_GETCODEDIR", Const, 16, ""},
+		{"F_GETFD", Const, 0, ""},
+		{"F_GETFL", Const, 0, ""},
+		{"F_GETLEASE", Const, 0, ""},
+		{"F_GETLK", Const, 0, ""},
+		{"F_GETLK64", Const, 0, ""},
+		{"F_GETLKPID", Const, 0, ""},
+		{"F_GETNOSIGPIPE", Const, 0, ""},
+		{"F_GETOWN", Const, 0, ""},
+		{"F_GETOWN_EX", Const, 0, ""},
+		{"F_GETPATH", Const, 0, ""},
+		{"F_GETPATH_MTMINFO", Const, 0, ""},
+		{"F_GETPIPE_SZ", Const, 0, ""},
+		{"F_GETPROTECTIONCLASS", Const, 0, ""},
+		{"F_GETPROTECTIONLEVEL", Const, 16, ""},
+		{"F_GETSIG", Const, 0, ""},
+		{"F_GLOBAL_NOCACHE", Const, 0, ""},
+		{"F_LOCK", Const, 0, ""},
+		{"F_LOG2PHYS", Const, 0, ""},
+		{"F_LOG2PHYS_EXT", Const, 0, ""},
+		{"F_MARKDEPENDENCY", Const, 0, ""},
+		{"F_MAXFD", Const, 1, ""},
+		{"F_NOCACHE", Const, 0, ""},
+		{"F_NODIRECT", Const, 0, ""},
+		{"F_NOTIFY", Const, 0, ""},
+		{"F_OGETLK", Const, 0, ""},
+		{"F_OK", Const, 0, ""},
+		{"F_OSETLK", Const, 0, ""},
+		{"F_OSETLKW", Const, 0, ""},
+		{"F_PARAM_MASK", Const, 1, ""},
+		{"F_PARAM_MAX", Const, 1, ""},
+		{"F_PATHPKG_CHECK", Const, 0, ""},
+		{"F_PEOFPOSMODE", Const, 0, ""},
+		{"F_PREALLOCATE", Const, 0, ""},
+		{"F_RDADVISE", Const, 0, ""},
+		{"F_RDAHEAD", Const, 0, ""},
+		{"F_RDLCK", Const, 0, ""},
+		{"F_READAHEAD", Const, 0, ""},
+		{"F_READBOOTSTRAP", Const, 0, ""},
+		{"F_SETBACKINGSTORE", Const, 0, ""},
+		{"F_SETFD", Const, 0, ""},
+		{"F_SETFL", Const, 0, ""},
+		{"F_SETLEASE", Const, 0, ""},
+		{"F_SETLK", Const, 0, ""},
+		{"F_SETLK64", Const, 0, ""},
+		{"F_SETLKW", Const, 0, ""},
+		{"F_SETLKW64", Const, 0, ""},
+		{"F_SETLKWTIMEOUT", Const, 16, ""},
+		{"F_SETLK_REMOTE", Const, 0, ""},
+		{"F_SETNOSIGPIPE", Const, 0, ""},
+		{"F_SETOWN", Const, 0, ""},
+		{"F_SETOWN_EX", Const, 0, ""},
+		{"F_SETPIPE_SZ", Const, 0, ""},
+		{"F_SETPROTECTIONCLASS", Const, 0, ""},
+		{"F_SETSIG", Const, 0, ""},
+		{"F_SETSIZE", Const, 0, ""},
+		{"F_SHLCK", Const, 0, ""},
+		{"F_SINGLE_WRITER", Const, 16, ""},
+		{"F_TEST", Const, 0, ""},
+		{"F_THAW_FS", Const, 0, ""},
+		{"F_TLOCK", Const, 0, ""},
+		{"F_TRANSCODEKEY", Const, 16, ""},
+		{"F_ULOCK", Const, 0, ""},
+		{"F_UNLCK", Const, 0, ""},
+		{"F_UNLCKSYS", Const, 0, ""},
+		{"F_VOLPOSMODE", Const, 0, ""},
+		{"F_WRITEBOOTSTRAP", Const, 0, ""},
+		{"F_WRLCK", Const, 0, ""},
+		{"Faccessat", Func, 0, "func(dirfd int, path string, mode uint32, flags int) (err error)"},
+		{"Fallocate", Func, 0, "func(fd int, mode uint32, off int64, len int64) (err error)"},
+		{"Fbootstraptransfer_t", Type, 0, ""},
+		{"Fbootstraptransfer_t.Buffer", Field, 0, ""},
+		{"Fbootstraptransfer_t.Length", Field, 0, ""},
+		{"Fbootstraptransfer_t.Offset", Field, 0, ""},
+		{"Fchdir", Func, 0, "func(fd int) (err error)"},
+		{"Fchflags", Func, 0, ""},
+		{"Fchmod", Func, 0, "func(fd int, mode uint32) (err error)"},
+		{"Fchmodat", Func, 0, "func(dirfd int, path string, mode uint32, flags int) error"},
+		{"Fchown", Func, 0, "func(fd int, uid int, gid int) (err error)"},
+		{"Fchownat", Func, 0, "func(dirfd int, path string, uid int, gid int, flags int) (err error)"},
+		{"FcntlFlock", Func, 3, "func(fd uintptr, cmd int, lk *Flock_t) error"},
+		{"FdSet", Type, 0, ""},
+		{"FdSet.Bits", Field, 0, ""},
+		{"FdSet.X__fds_bits", Field, 0, ""},
+		{"Fdatasync", Func, 0, "func(fd int) (err error)"},
+		{"FileNotifyInformation", Type, 0, ""},
+		{"FileNotifyInformation.Action", Field, 0, ""},
+		{"FileNotifyInformation.FileName", Field, 0, ""},
+		{"FileNotifyInformation.FileNameLength", Field, 0, ""},
+		{"FileNotifyInformation.NextEntryOffset", Field, 0, ""},
+		{"Filetime", Type, 0, ""},
+		{"Filetime.HighDateTime", Field, 0, ""},
+		{"Filetime.LowDateTime", Field, 0, ""},
+		{"FindClose", Func, 0, ""},
+		{"FindFirstFile", Func, 0, ""},
+		{"FindNextFile", Func, 0, ""},
+		{"Flock", Func, 0, "func(fd int, how int) (err error)"},
+		{"Flock_t", Type, 0, ""},
+		{"Flock_t.Len", Field, 0, ""},
+		{"Flock_t.Pad_cgo_0", Field, 0, ""},
+		{"Flock_t.Pad_cgo_1", Field, 3, ""},
+		{"Flock_t.Pid", Field, 0, ""},
+		{"Flock_t.Start", Field, 0, ""},
+		{"Flock_t.Sysid", Field, 0, ""},
+		{"Flock_t.Type", Field, 0, ""},
+		{"Flock_t.Whence", Field, 0, ""},
+		{"FlushBpf", Func, 0, ""},
+		{"FlushFileBuffers", Func, 0, ""},
+		{"FlushViewOfFile", Func, 0, ""},
+		{"ForkExec", Func, 0, "func(argv0 string, argv []string, attr *ProcAttr) (pid int, err error)"},
+		{"ForkLock", Var, 0, ""},
+		{"FormatMessage", Func, 0, ""},
+		{"Fpathconf", Func, 0, ""},
+		{"FreeAddrInfoW", Func, 1, ""},
+		{"FreeEnvironmentStrings", Func, 0, ""},
+		{"FreeLibrary", Func, 0, ""},
+		{"Fsid", Type, 0, ""},
+		{"Fsid.Val", Field, 0, ""},
+		{"Fsid.X__fsid_val", Field, 2, ""},
+		{"Fsid.X__val", Field, 0, ""},
+		{"Fstat", Func, 0, "func(fd int, stat *Stat_t) (err error)"},
+		{"Fstatat", Func, 12, ""},
+		{"Fstatfs", Func, 0, "func(fd int, buf *Statfs_t) (err error)"},
+		{"Fstore_t", Type, 0, ""},
+		{"Fstore_t.Bytesalloc", Field, 0, ""},
+		{"Fstore_t.Flags", Field, 0, ""},
+		{"Fstore_t.Length", Field, 0, ""},
+		{"Fstore_t.Offset", Field, 0, ""},
+		{"Fstore_t.Posmode", Field, 0, ""},
+		{"Fsync", Func, 0, "func(fd int) (err error)"},
+		{"Ftruncate", Func, 0, "func(fd int, length int64) (err error)"},
+		{"FullPath", Func, 4, ""},
+		{"Futimes", Func, 0, "func(fd int, tv []Timeval) (err error)"},
+		{"Futimesat", Func, 0, "func(dirfd int, path string, tv []Timeval) (err error)"},
+		{"GENERIC_ALL", Const, 0, ""},
+		{"GENERIC_EXECUTE", Const, 0, ""},
+		{"GENERIC_READ", Const, 0, ""},
+		{"GENERIC_WRITE", Const, 0, ""},
+		{"GUID", Type, 1, ""},
+		{"GUID.Data1", Field, 1, ""},
+		{"GUID.Data2", Field, 1, ""},
+		{"GUID.Data3", Field, 1, ""},
+		{"GUID.Data4", Field, 1, ""},
+		{"GetAcceptExSockaddrs", Func, 0, ""},
+		{"GetAdaptersInfo", Func, 0, ""},
+		{"GetAddrInfoW", Func, 1, ""},
+		{"GetCommandLine", Func, 0, ""},
+		{"GetComputerName", Func, 0, ""},
+		{"GetConsoleMode", Func, 1, ""},
+		{"GetCurrentDirectory", Func, 0, ""},
+		{"GetCurrentProcess", Func, 0, ""},
+		{"GetEnvironmentStrings", Func, 0, ""},
+		{"GetEnvironmentVariable", Func, 0, ""},
+		{"GetExitCodeProcess", Func, 0, ""},
+		{"GetFileAttributes", Func, 0, ""},
+		{"GetFileAttributesEx", Func, 0, ""},
+		{"GetFileExInfoStandard", Const, 0, ""},
+		{"GetFileExMaxInfoLevel", Const, 0, ""},
+		{"GetFileInformationByHandle", Func, 0, ""},
+		{"GetFileType", Func, 0, ""},
+		{"GetFullPathName", Func, 0, ""},
+		{"GetHostByName", Func, 0, ""},
+		{"GetIfEntry", Func, 0, ""},
+		{"GetLastError", Func, 0, ""},
+		{"GetLengthSid", Func, 0, ""},
+		{"GetLongPathName", Func, 0, ""},
+		{"GetProcAddress", Func, 0, ""},
+		{"GetProcessTimes", Func, 0, ""},
+		{"GetProtoByName", Func, 0, ""},
+		{"GetQueuedCompletionStatus", Func, 0, ""},
+		{"GetServByName", Func, 0, ""},
+		{"GetShortPathName", Func, 0, ""},
+		{"GetStartupInfo", Func, 0, ""},
+		{"GetStdHandle", Func, 0, ""},
+		{"GetSystemTimeAsFileTime", Func, 0, ""},
+		{"GetTempPath", Func, 0, ""},
+		{"GetTimeZoneInformation", Func, 0, ""},
+		{"GetTokenInformation", Func, 0, ""},
+		{"GetUserNameEx", Func, 0, ""},
+		{"GetUserProfileDirectory", Func, 0, ""},
+		{"GetVersion", Func, 0, ""},
+		{"Getcwd", Func, 0, "func(buf []byte) (n int, err error)"},
+		{"Getdents", Func, 0, "func(fd int, buf []byte) (n int, err error)"},
+		{"Getdirentries", Func, 0, ""},
+		{"Getdtablesize", Func, 0, ""},
+		{"Getegid", Func, 0, "func() (egid int)"},
+		{"Getenv", Func, 0, "func(key string) (value string, found bool)"},
+		{"Geteuid", Func, 0, "func() (euid int)"},
+		{"Getfsstat", Func, 0, ""},
+		{"Getgid", Func, 0, "func() (gid int)"},
+		{"Getgroups", Func, 0, "func() (gids []int, err error)"},
+		{"Getpagesize", Func, 0, "func() int"},
+		{"Getpeername", Func, 0, "func(fd int) (sa Sockaddr, err error)"},
+		{"Getpgid", Func, 0, "func(pid int) (pgid int, err error)"},
+		{"Getpgrp", Func, 0, "func() (pid int)"},
+		{"Getpid", Func, 0, "func() (pid int)"},
+		{"Getppid", Func, 0, "func() (ppid int)"},
+		{"Getpriority", Func, 0, "func(which int, who int) (prio int, err error)"},
+		{"Getrlimit", Func, 0, "func(resource int, rlim *Rlimit) (err error)"},
+		{"Getrusage", Func, 0, "func(who int, rusage *Rusage) (err error)"},
+		{"Getsid", Func, 0, ""},
+		{"Getsockname", Func, 0, "func(fd int) (sa Sockaddr, err error)"},
+		{"Getsockopt", Func, 1, ""},
+		{"GetsockoptByte", Func, 0, ""},
+		{"GetsockoptICMPv6Filter", Func, 2, "func(fd int, level int, opt int) (*ICMPv6Filter, error)"},
+		{"GetsockoptIPMreq", Func, 0, "func(fd int, level int, opt int) (*IPMreq, error)"},
+		{"GetsockoptIPMreqn", Func, 0, "func(fd int, level int, opt int) (*IPMreqn, error)"},
+		{"GetsockoptIPv6MTUInfo", Func, 2, "func(fd int, level int, opt int) (*IPv6MTUInfo, error)"},
+		{"GetsockoptIPv6Mreq", Func, 0, "func(fd int, level int, opt int) (*IPv6Mreq, error)"},
+		{"GetsockoptInet4Addr", Func, 0, "func(fd int, level int, opt int) (value [4]byte, err error)"},
+		{"GetsockoptInt", Func, 0, "func(fd int, level int, opt int) (value int, err error)"},
+		{"GetsockoptUcred", Func, 1, "func(fd int, level int, opt int) (*Ucred, error)"},
+		{"Gettid", Func, 0, "func() (tid int)"},
+		{"Gettimeofday", Func, 0, "func(tv *Timeval) (err error)"},
+		{"Getuid", Func, 0, "func() (uid int)"},
+		{"Getwd", Func, 0, "func() (wd string, err error)"},
+		{"Getxattr", Func, 1, "func(path string, attr string, dest []byte) (sz int, err error)"},
+		{"HANDLE_FLAG_INHERIT", Const, 0, ""},
+		{"HKEY_CLASSES_ROOT", Const, 0, ""},
+		{"HKEY_CURRENT_CONFIG", Const, 0, ""},
+		{"HKEY_CURRENT_USER", Const, 0, ""},
+		{"HKEY_DYN_DATA", Const, 0, ""},
+		{"HKEY_LOCAL_MACHINE", Const, 0, ""},
+		{"HKEY_PERFORMANCE_DATA", Const, 0, ""},
+		{"HKEY_USERS", Const, 0, ""},
+		{"HUPCL", Const, 0, ""},
+		{"Handle", Type, 0, ""},
+		{"Hostent", Type, 0, ""},
+		{"Hostent.AddrList", Field, 0, ""},
+		{"Hostent.AddrType", Field, 0, ""},
+		{"Hostent.Aliases", Field, 0, ""},
+		{"Hostent.Length", Field, 0, ""},
+		{"Hostent.Name", Field, 0, ""},
+		{"ICANON", Const, 0, ""},
+		{"ICMP6_FILTER", Const, 2, ""},
+		{"ICMPV6_FILTER", Const, 2, ""},
+		{"ICMPv6Filter", Type, 2, ""},
+		{"ICMPv6Filter.Data", Field, 2, ""},
+		{"ICMPv6Filter.Filt", Field, 2, ""},
+		{"ICRNL", Const, 0, ""},
+		{"IEXTEN", Const, 0, ""},
+		{"IFAN_ARRIVAL", Const, 1, ""},
+		{"IFAN_DEPARTURE", Const, 1, ""},
+		{"IFA_ADDRESS", Const, 0, ""},
+		{"IFA_ANYCAST", Const, 0, ""},
+		{"IFA_BROADCAST", Const, 0, ""},
+		{"IFA_CACHEINFO", Const, 0, ""},
+		{"IFA_F_DADFAILED", Const, 0, ""},
+		{"IFA_F_DEPRECATED", Const, 0, ""},
+		{"IFA_F_HOMEADDRESS", Const, 0, ""},
+		{"IFA_F_NODAD", Const, 0, ""},
+		{"IFA_F_OPTIMISTIC", Const, 0, ""},
+		{"IFA_F_PERMANENT", Const, 0, ""},
+		{"IFA_F_SECONDARY", Const, 0, ""},
+		{"IFA_F_TEMPORARY", Const, 0, ""},
+		{"IFA_F_TENTATIVE", Const, 0, ""},
+		{"IFA_LABEL", Const, 0, ""},
+		{"IFA_LOCAL", Const, 0, ""},
+		{"IFA_MAX", Const, 0, ""},
+		{"IFA_MULTICAST", Const, 0, ""},
+		{"IFA_ROUTE", Const, 1, ""},
+		{"IFA_UNSPEC", Const, 0, ""},
+		{"IFF_ALLMULTI", Const, 0, ""},
+		{"IFF_ALTPHYS", Const, 0, ""},
+		{"IFF_AUTOMEDIA", Const, 0, ""},
+		{"IFF_BROADCAST", Const, 0, ""},
+		{"IFF_CANTCHANGE", Const, 0, ""},
+		{"IFF_CANTCONFIG", Const, 1, ""},
+		{"IFF_DEBUG", Const, 0, ""},
+		{"IFF_DRV_OACTIVE", Const, 0, ""},
+		{"IFF_DRV_RUNNING", Const, 0, ""},
+		{"IFF_DYING", Const, 0, ""},
+		{"IFF_DYNAMIC", Const, 0, ""},
+		{"IFF_LINK0", Const, 0, ""},
+		{"IFF_LINK1", Const, 0, ""},
+		{"IFF_LINK2", Const, 0, ""},
+		{"IFF_LOOPBACK", Const, 0, ""},
+		{"IFF_MASTER", Const, 0, ""},
+		{"IFF_MONITOR", Const, 0, ""},
+		{"IFF_MULTICAST", Const, 0, ""},
+		{"IFF_NOARP", Const, 0, ""},
+		{"IFF_NOTRAILERS", Const, 0, ""},
+		{"IFF_NO_PI", Const, 0, ""},
+		{"IFF_OACTIVE", Const, 0, ""},
+		{"IFF_ONE_QUEUE", Const, 0, ""},
+		{"IFF_POINTOPOINT", Const, 0, ""},
+		{"IFF_POINTTOPOINT", Const, 0, ""},
+		{"IFF_PORTSEL", Const, 0, ""},
+		{"IFF_PPROMISC", Const, 0, ""},
+		{"IFF_PROMISC", Const, 0, ""},
+		{"IFF_RENAMING", Const, 0, ""},
+		{"IFF_RUNNING", Const, 0, ""},
+		{"IFF_SIMPLEX", Const, 0, ""},
+		{"IFF_SLAVE", Const, 0, ""},
+		{"IFF_SMART", Const, 0, ""},
+		{"IFF_STATICARP", Const, 0, ""},
+		{"IFF_TAP", Const, 0, ""},
+		{"IFF_TUN", Const, 0, ""},
+		{"IFF_TUN_EXCL", Const, 0, ""},
+		{"IFF_UP", Const, 0, ""},
+		{"IFF_VNET_HDR", Const, 0, ""},
+		{"IFLA_ADDRESS", Const, 0, ""},
+		{"IFLA_BROADCAST", Const, 0, ""},
+		{"IFLA_COST", Const, 0, ""},
+		{"IFLA_IFALIAS", Const, 0, ""},
+		{"IFLA_IFNAME", Const, 0, ""},
+		{"IFLA_LINK", Const, 0, ""},
+		{"IFLA_LINKINFO", Const, 0, ""},
+		{"IFLA_LINKMODE", Const, 0, ""},
+		{"IFLA_MAP", Const, 0, ""},
+		{"IFLA_MASTER", Const, 0, ""},
+		{"IFLA_MAX", Const, 0, ""},
+		{"IFLA_MTU", Const, 0, ""},
+		{"IFLA_NET_NS_PID", Const, 0, ""},
+		{"IFLA_OPERSTATE", Const, 0, ""},
+		{"IFLA_PRIORITY", Const, 0, ""},
+		{"IFLA_PROTINFO", Const, 0, ""},
+		{"IFLA_QDISC", Const, 0, ""},
+		{"IFLA_STATS", Const, 0, ""},
+		{"IFLA_TXQLEN", Const, 0, ""},
+		{"IFLA_UNSPEC", Const, 0, ""},
+		{"IFLA_WEIGHT", Const, 0, ""},
+		{"IFLA_WIRELESS", Const, 0, ""},
+		{"IFNAMSIZ", Const, 0, ""},
+		{"IFT_1822", Const, 0, ""},
+		{"IFT_A12MPPSWITCH", Const, 0, ""},
+		{"IFT_AAL2", Const, 0, ""},
+		{"IFT_AAL5", Const, 0, ""},
+		{"IFT_ADSL", Const, 0, ""},
+		{"IFT_AFLANE8023", Const, 0, ""},
+		{"IFT_AFLANE8025", Const, 0, ""},
+		{"IFT_ARAP", Const, 0, ""},
+		{"IFT_ARCNET", Const, 0, ""},
+		{"IFT_ARCNETPLUS", Const, 0, ""},
+		{"IFT_ASYNC", Const, 0, ""},
+		{"IFT_ATM", Const, 0, ""},
+		{"IFT_ATMDXI", Const, 0, ""},
+		{"IFT_ATMFUNI", Const, 0, ""},
+		{"IFT_ATMIMA", Const, 0, ""},
+		{"IFT_ATMLOGICAL", Const, 0, ""},
+		{"IFT_ATMRADIO", Const, 0, ""},
+		{"IFT_ATMSUBINTERFACE", Const, 0, ""},
+		{"IFT_ATMVCIENDPT", Const, 0, ""},
+		{"IFT_ATMVIRTUAL", Const, 0, ""},
+		{"IFT_BGPPOLICYACCOUNTING", Const, 0, ""},
+		{"IFT_BLUETOOTH", Const, 1, ""},
+		{"IFT_BRIDGE", Const, 0, ""},
+		{"IFT_BSC", Const, 0, ""},
+		{"IFT_CARP", Const, 0, ""},
+		{"IFT_CCTEMUL", Const, 0, ""},
+		{"IFT_CELLULAR", Const, 0, ""},
+		{"IFT_CEPT", Const, 0, ""},
+		{"IFT_CES", Const, 0, ""},
+		{"IFT_CHANNEL", Const, 0, ""},
+		{"IFT_CNR", Const, 0, ""},
+		{"IFT_COFFEE", Const, 0, ""},
+		{"IFT_COMPOSITELINK", Const, 0, ""},
+		{"IFT_DCN", Const, 0, ""},
+		{"IFT_DIGITALPOWERLINE", Const, 0, ""},
+		{"IFT_DIGITALWRAPPEROVERHEADCHANNEL", Const, 0, ""},
+		{"IFT_DLSW", Const, 0, ""},
+		{"IFT_DOCSCABLEDOWNSTREAM", Const, 0, ""},
+		{"IFT_DOCSCABLEMACLAYER", Const, 0, ""},
+		{"IFT_DOCSCABLEUPSTREAM", Const, 0, ""},
+		{"IFT_DOCSCABLEUPSTREAMCHANNEL", Const, 1, ""},
+		{"IFT_DS0", Const, 0, ""},
+		{"IFT_DS0BUNDLE", Const, 0, ""},
+		{"IFT_DS1FDL", Const, 0, ""},
+		{"IFT_DS3", Const, 0, ""},
+		{"IFT_DTM", Const, 0, ""},
+		{"IFT_DUMMY", Const, 1, ""},
+		{"IFT_DVBASILN", Const, 0, ""},
+		{"IFT_DVBASIOUT", Const, 0, ""},
+		{"IFT_DVBRCCDOWNSTREAM", Const, 0, ""},
+		{"IFT_DVBRCCMACLAYER", Const, 0, ""},
+		{"IFT_DVBRCCUPSTREAM", Const, 0, ""},
+		{"IFT_ECONET", Const, 1, ""},
+		{"IFT_ENC", Const, 0, ""},
+		{"IFT_EON", Const, 0, ""},
+		{"IFT_EPLRS", Const, 0, ""},
+		{"IFT_ESCON", Const, 0, ""},
+		{"IFT_ETHER", Const, 0, ""},
+		{"IFT_FAITH", Const, 0, ""},
+		{"IFT_FAST", Const, 0, ""},
+		{"IFT_FASTETHER", Const, 0, ""},
+		{"IFT_FASTETHERFX", Const, 0, ""},
+		{"IFT_FDDI", Const, 0, ""},
+		{"IFT_FIBRECHANNEL", Const, 0, ""},
+		{"IFT_FRAMERELAYINTERCONNECT", Const, 0, ""},
+		{"IFT_FRAMERELAYMPI", Const, 0, ""},
+		{"IFT_FRDLCIENDPT", Const, 0, ""},
+		{"IFT_FRELAY", Const, 0, ""},
+		{"IFT_FRELAYDCE", Const, 0, ""},
+		{"IFT_FRF16MFRBUNDLE", Const, 0, ""},
+		{"IFT_FRFORWARD", Const, 0, ""},
+		{"IFT_G703AT2MB", Const, 0, ""},
+		{"IFT_G703AT64K", Const, 0, ""},
+		{"IFT_GIF", Const, 0, ""},
+		{"IFT_GIGABITETHERNET", Const, 0, ""},
+		{"IFT_GR303IDT", Const, 0, ""},
+		{"IFT_GR303RDT", Const, 0, ""},
+		{"IFT_H323GATEKEEPER", Const, 0, ""},
+		{"IFT_H323PROXY", Const, 0, ""},
+		{"IFT_HDH1822", Const, 0, ""},
+		{"IFT_HDLC", Const, 0, ""},
+		{"IFT_HDSL2", Const, 0, ""},
+		{"IFT_HIPERLAN2", Const, 0, ""},
+		{"IFT_HIPPI", Const, 0, ""},
+		{"IFT_HIPPIINTERFACE", Const, 0, ""},
+		{"IFT_HOSTPAD", Const, 0, ""},
+		{"IFT_HSSI", Const, 0, ""},
+		{"IFT_HY", Const, 0, ""},
+		{"IFT_IBM370PARCHAN", Const, 0, ""},
+		{"IFT_IDSL", Const, 0, ""},
+		{"IFT_IEEE1394", Const, 0, ""},
+		{"IFT_IEEE80211", Const, 0, ""},
+		{"IFT_IEEE80212", Const, 0, ""},
+		{"IFT_IEEE8023ADLAG", Const, 0, ""},
+		{"IFT_IFGSN", Const, 0, ""},
+		{"IFT_IMT", Const, 0, ""},
+		{"IFT_INFINIBAND", Const, 1, ""},
+		{"IFT_INTERLEAVE", Const, 0, ""},
+		{"IFT_IP", Const, 0, ""},
+		{"IFT_IPFORWARD", Const, 0, ""},
+		{"IFT_IPOVERATM", Const, 0, ""},
+		{"IFT_IPOVERCDLC", Const, 0, ""},
+		{"IFT_IPOVERCLAW", Const, 0, ""},
+		{"IFT_IPSWITCH", Const, 0, ""},
+		{"IFT_IPXIP", Const, 0, ""},
+		{"IFT_ISDN", Const, 0, ""},
+		{"IFT_ISDNBASIC", Const, 0, ""},
+		{"IFT_ISDNPRIMARY", Const, 0, ""},
+		{"IFT_ISDNS", Const, 0, ""},
+		{"IFT_ISDNU", Const, 0, ""},
+		{"IFT_ISO88022LLC", Const, 0, ""},
+		{"IFT_ISO88023", Const, 0, ""},
+		{"IFT_ISO88024", Const, 0, ""},
+		{"IFT_ISO88025", Const, 0, ""},
+		{"IFT_ISO88025CRFPINT", Const, 0, ""},
+		{"IFT_ISO88025DTR", Const, 0, ""},
+		{"IFT_ISO88025FIBER", Const, 0, ""},
+		{"IFT_ISO88026", Const, 0, ""},
+		{"IFT_ISUP", Const, 0, ""},
+		{"IFT_L2VLAN", Const, 0, ""},
+		{"IFT_L3IPVLAN", Const, 0, ""},
+		{"IFT_L3IPXVLAN", Const, 0, ""},
+		{"IFT_LAPB", Const, 0, ""},
+		{"IFT_LAPD", Const, 0, ""},
+		{"IFT_LAPF", Const, 0, ""},
+		{"IFT_LINEGROUP", Const, 1, ""},
+		{"IFT_LOCALTALK", Const, 0, ""},
+		{"IFT_LOOP", Const, 0, ""},
+		{"IFT_MEDIAMAILOVERIP", Const, 0, ""},
+		{"IFT_MFSIGLINK", Const, 0, ""},
+		{"IFT_MIOX25", Const, 0, ""},
+		{"IFT_MODEM", Const, 0, ""},
+		{"IFT_MPC", Const, 0, ""},
+		{"IFT_MPLS", Const, 0, ""},
+		{"IFT_MPLSTUNNEL", Const, 0, ""},
+		{"IFT_MSDSL", Const, 0, ""},
+		{"IFT_MVL", Const, 0, ""},
+		{"IFT_MYRINET", Const, 0, ""},
+		{"IFT_NFAS", Const, 0, ""},
+		{"IFT_NSIP", Const, 0, ""},
+		{"IFT_OPTICALCHANNEL", Const, 0, ""},
+		{"IFT_OPTICALTRANSPORT", Const, 0, ""},
+		{"IFT_OTHER", Const, 0, ""},
+		{"IFT_P10", Const, 0, ""},
+		{"IFT_P80", Const, 0, ""},
+		{"IFT_PARA", Const, 0, ""},
+		{"IFT_PDP", Const, 0, ""},
+		{"IFT_PFLOG", Const, 0, ""},
+		{"IFT_PFLOW", Const, 1, ""},
+		{"IFT_PFSYNC", Const, 0, ""},
+		{"IFT_PLC", Const, 0, ""},
+		{"IFT_PON155", Const, 1, ""},
+		{"IFT_PON622", Const, 1, ""},
+		{"IFT_POS", Const, 0, ""},
+		{"IFT_PPP", Const, 0, ""},
+		{"IFT_PPPMULTILINKBUNDLE", Const, 0, ""},
+		{"IFT_PROPATM", Const, 1, ""},
+		{"IFT_PROPBWAP2MP", Const, 0, ""},
+		{"IFT_PROPCNLS", Const, 0, ""},
+		{"IFT_PROPDOCSWIRELESSDOWNSTREAM", Const, 0, ""},
+		{"IFT_PROPDOCSWIRELESSMACLAYER", Const, 0, ""},
+		{"IFT_PROPDOCSWIRELESSUPSTREAM", Const, 0, ""},
+		{"IFT_PROPMUX", Const, 0, ""},
+		{"IFT_PROPVIRTUAL", Const, 0, ""},
+		{"IFT_PROPWIRELESSP2P", Const, 0, ""},
+		{"IFT_PTPSERIAL", Const, 0, ""},
+		{"IFT_PVC", Const, 0, ""},
+		{"IFT_Q2931", Const, 1, ""},
+		{"IFT_QLLC", Const, 0, ""},
+		{"IFT_RADIOMAC", Const, 0, ""},
+		{"IFT_RADSL", Const, 0, ""},
+		{"IFT_REACHDSL", Const, 0, ""},
+		{"IFT_RFC1483", Const, 0, ""},
+		{"IFT_RS232", Const, 0, ""},
+		{"IFT_RSRB", Const, 0, ""},
+		{"IFT_SDLC", Const, 0, ""},
+		{"IFT_SDSL", Const, 0, ""},
+		{"IFT_SHDSL", Const, 0, ""},
+		{"IFT_SIP", Const, 0, ""},
+		{"IFT_SIPSIG", Const, 1, ""},
+		{"IFT_SIPTG", Const, 1, ""},
+		{"IFT_SLIP", Const, 0, ""},
+		{"IFT_SMDSDXI", Const, 0, ""},
+		{"IFT_SMDSICIP", Const, 0, ""},
+		{"IFT_SONET", Const, 0, ""},
+		{"IFT_SONETOVERHEADCHANNEL", Const, 0, ""},
+		{"IFT_SONETPATH", Const, 0, ""},
+		{"IFT_SONETVT", Const, 0, ""},
+		{"IFT_SRP", Const, 0, ""},
+		{"IFT_SS7SIGLINK", Const, 0, ""},
+		{"IFT_STACKTOSTACK", Const, 0, ""},
+		{"IFT_STARLAN", Const, 0, ""},
+		{"IFT_STF", Const, 0, ""},
+		{"IFT_T1", Const, 0, ""},
+		{"IFT_TDLC", Const, 0, ""},
+		{"IFT_TELINK", Const, 1, ""},
+		{"IFT_TERMPAD", Const, 0, ""},
+		{"IFT_TR008", Const, 0, ""},
+		{"IFT_TRANSPHDLC", Const, 0, ""},
+		{"IFT_TUNNEL", Const, 0, ""},
+		{"IFT_ULTRA", Const, 0, ""},
+		{"IFT_USB", Const, 0, ""},
+		{"IFT_V11", Const, 0, ""},
+		{"IFT_V35", Const, 0, ""},
+		{"IFT_V36", Const, 0, ""},
+		{"IFT_V37", Const, 0, ""},
+		{"IFT_VDSL", Const, 0, ""},
+		{"IFT_VIRTUALIPADDRESS", Const, 0, ""},
+		{"IFT_VIRTUALTG", Const, 1, ""},
+		{"IFT_VOICEDID", Const, 1, ""},
+		{"IFT_VOICEEM", Const, 0, ""},
+		{"IFT_VOICEEMFGD", Const, 1, ""},
+		{"IFT_VOICEENCAP", Const, 0, ""},
+		{"IFT_VOICEFGDEANA", Const, 1, ""},
+		{"IFT_VOICEFXO", Const, 0, ""},
+		{"IFT_VOICEFXS", Const, 0, ""},
+		{"IFT_VOICEOVERATM", Const, 0, ""},
+		{"IFT_VOICEOVERCABLE", Const, 1, ""},
+		{"IFT_VOICEOVERFRAMERELAY", Const, 0, ""},
+		{"IFT_VOICEOVERIP", Const, 0, ""},
+		{"IFT_X213", Const, 0, ""},
+		{"IFT_X25", Const, 0, ""},
+		{"IFT_X25DDN", Const, 0, ""},
+		{"IFT_X25HUNTGROUP", Const, 0, ""},
+		{"IFT_X25MLP", Const, 0, ""},
+		{"IFT_X25PLE", Const, 0, ""},
+		{"IFT_XETHER", Const, 0, ""},
+		{"IGNBRK", Const, 0, ""},
+		{"IGNCR", Const, 0, ""},
+		{"IGNORE", Const, 0, ""},
+		{"IGNPAR", Const, 0, ""},
+		{"IMAXBEL", Const, 0, ""},
+		{"INFINITE", Const, 0, ""},
+		{"INLCR", Const, 0, ""},
+		{"INPCK", Const, 0, ""},
+		{"INVALID_FILE_ATTRIBUTES", Const, 0, ""},
+		{"IN_ACCESS", Const, 0, ""},
+		{"IN_ALL_EVENTS", Const, 0, ""},
+		{"IN_ATTRIB", Const, 0, ""},
+		{"IN_CLASSA_HOST", Const, 0, ""},
+		{"IN_CLASSA_MAX", Const, 0, ""},
+		{"IN_CLASSA_NET", Const, 0, ""},
+		{"IN_CLASSA_NSHIFT", Const, 0, ""},
+		{"IN_CLASSB_HOST", Const, 0, ""},
+		{"IN_CLASSB_MAX", Const, 0, ""},
+		{"IN_CLASSB_NET", Const, 0, ""},
+		{"IN_CLASSB_NSHIFT", Const, 0, ""},
+		{"IN_CLASSC_HOST", Const, 0, ""},
+		{"IN_CLASSC_NET", Const, 0, ""},
+		{"IN_CLASSC_NSHIFT", Const, 0, ""},
+		{"IN_CLASSD_HOST", Const, 0, ""},
+		{"IN_CLASSD_NET", Const, 0, ""},
+		{"IN_CLASSD_NSHIFT", Const, 0, ""},
+		{"IN_CLOEXEC", Const, 0, ""},
+		{"IN_CLOSE", Const, 0, ""},
+		{"IN_CLOSE_NOWRITE", Const, 0, ""},
+		{"IN_CLOSE_WRITE", Const, 0, ""},
+		{"IN_CREATE", Const, 0, ""},
+		{"IN_DELETE", Const, 0, ""},
+		{"IN_DELETE_SELF", Const, 0, ""},
+		{"IN_DONT_FOLLOW", Const, 0, ""},
+		{"IN_EXCL_UNLINK", Const, 0, ""},
+		{"IN_IGNORED", Const, 0, ""},
+		{"IN_ISDIR", Const, 0, ""},
+		{"IN_LINKLOCALNETNUM", Const, 0, ""},
+		{"IN_LOOPBACKNET", Const, 0, ""},
+		{"IN_MASK_ADD", Const, 0, ""},
+		{"IN_MODIFY", Const, 0, ""},
+		{"IN_MOVE", Const, 0, ""},
+		{"IN_MOVED_FROM", Const, 0, ""},
+		{"IN_MOVED_TO", Const, 0, ""},
+		{"IN_MOVE_SELF", Const, 0, ""},
+		{"IN_NONBLOCK", Const, 0, ""},
+		{"IN_ONESHOT", Const, 0, ""},
+		{"IN_ONLYDIR", Const, 0, ""},
+		{"IN_OPEN", Const, 0, ""},
+		{"IN_Q_OVERFLOW", Const, 0, ""},
+		{"IN_RFC3021_HOST", Const, 1, ""},
+		{"IN_RFC3021_MASK", Const, 1, ""},
+		{"IN_RFC3021_NET", Const, 1, ""},
+		{"IN_RFC3021_NSHIFT", Const, 1, ""},
+		{"IN_UNMOUNT", Const, 0, ""},
+		{"IOC_IN", Const, 1, ""},
+		{"IOC_INOUT", Const, 1, ""},
+		{"IOC_OUT", Const, 1, ""},
+		{"IOC_VENDOR", Const, 3, ""},
+		{"IOC_WS2", Const, 1, ""},
+		{"IO_REPARSE_TAG_SYMLINK", Const, 4, ""},
+		{"IPMreq", Type, 0, ""},
+		{"IPMreq.Interface", Field, 0, ""},
+		{"IPMreq.Multiaddr", Field, 0, ""},
+		{"IPMreqn", Type, 0, ""},
+		{"IPMreqn.Address", Field, 0, ""},
+		{"IPMreqn.Ifindex", Field, 0, ""},
+		{"IPMreqn.Multiaddr", Field, 0, ""},
+		{"IPPROTO_3PC", Const, 0, ""},
+		{"IPPROTO_ADFS", Const, 0, ""},
+		{"IPPROTO_AH", Const, 0, ""},
+		{"IPPROTO_AHIP", Const, 0, ""},
+		{"IPPROTO_APES", Const, 0, ""},
+		{"IPPROTO_ARGUS", Const, 0, ""},
+		{"IPPROTO_AX25", Const, 0, ""},
+		{"IPPROTO_BHA", Const, 0, ""},
+		{"IPPROTO_BLT", Const, 0, ""},
+		{"IPPROTO_BRSATMON", Const, 0, ""},
+		{"IPPROTO_CARP", Const, 0, ""},
+		{"IPPROTO_CFTP", Const, 0, ""},
+		{"IPPROTO_CHAOS", Const, 0, ""},
+		{"IPPROTO_CMTP", Const, 0, ""},
+		{"IPPROTO_COMP", Const, 0, ""},
+		{"IPPROTO_CPHB", Const, 0, ""},
+		{"IPPROTO_CPNX", Const, 0, ""},
+		{"IPPROTO_DCCP", Const, 0, ""},
+		{"IPPROTO_DDP", Const, 0, ""},
+		{"IPPROTO_DGP", Const, 0, ""},
+		{"IPPROTO_DIVERT", Const, 0, ""},
+		{"IPPROTO_DIVERT_INIT", Const, 3, ""},
+		{"IPPROTO_DIVERT_RESP", Const, 3, ""},
+		{"IPPROTO_DONE", Const, 0, ""},
+		{"IPPROTO_DSTOPTS", Const, 0, ""},
+		{"IPPROTO_EGP", Const, 0, ""},
+		{"IPPROTO_EMCON", Const, 0, ""},
+		{"IPPROTO_ENCAP", Const, 0, ""},
+		{"IPPROTO_EON", Const, 0, ""},
+		{"IPPROTO_ESP", Const, 0, ""},
+		{"IPPROTO_ETHERIP", Const, 0, ""},
+		{"IPPROTO_FRAGMENT", Const, 0, ""},
+		{"IPPROTO_GGP", Const, 0, ""},
+		{"IPPROTO_GMTP", Const, 0, ""},
+		{"IPPROTO_GRE", Const, 0, ""},
+		{"IPPROTO_HELLO", Const, 0, ""},
+		{"IPPROTO_HMP", Const, 0, ""},
+		{"IPPROTO_HOPOPTS", Const, 0, ""},
+		{"IPPROTO_ICMP", Const, 0, ""},
+		{"IPPROTO_ICMPV6", Const, 0, ""},
+		{"IPPROTO_IDP", Const, 0, ""},
+		{"IPPROTO_IDPR", Const, 0, ""},
+		{"IPPROTO_IDRP", Const, 0, ""},
+		{"IPPROTO_IGMP", Const, 0, ""},
+		{"IPPROTO_IGP", Const, 0, ""},
+		{"IPPROTO_IGRP", Const, 0, ""},
+		{"IPPROTO_IL", Const, 0, ""},
+		{"IPPROTO_INLSP", Const, 0, ""},
+		{"IPPROTO_INP", Const, 0, ""},
+		{"IPPROTO_IP", Const, 0, ""},
+		{"IPPROTO_IPCOMP", Const, 0, ""},
+		{"IPPROTO_IPCV", Const, 0, ""},
+		{"IPPROTO_IPEIP", Const, 0, ""},
+		{"IPPROTO_IPIP", Const, 0, ""},
+		{"IPPROTO_IPPC", Const, 0, ""},
+		{"IPPROTO_IPV4", Const, 0, ""},
+		{"IPPROTO_IPV6", Const, 0, ""},
+		{"IPPROTO_IPV6_ICMP", Const, 1, ""},
+		{"IPPROTO_IRTP", Const, 0, ""},
+		{"IPPROTO_KRYPTOLAN", Const, 0, ""},
+		{"IPPROTO_LARP", Const, 0, ""},
+		{"IPPROTO_LEAF1", Const, 0, ""},
+		{"IPPROTO_LEAF2", Const, 0, ""},
+		{"IPPROTO_MAX", Const, 0, ""},
+		{"IPPROTO_MAXID", Const, 0, ""},
+		{"IPPROTO_MEAS", Const, 0, ""},
+		{"IPPROTO_MH", Const, 1, ""},
+		{"IPPROTO_MHRP", Const, 0, ""},
+		{"IPPROTO_MICP", Const, 0, ""},
+		{"IPPROTO_MOBILE", Const, 0, ""},
+		{"IPPROTO_MPLS", Const, 1, ""},
+		{"IPPROTO_MTP", Const, 0, ""},
+		{"IPPROTO_MUX", Const, 0, ""},
+		{"IPPROTO_ND", Const, 0, ""},
+		{"IPPROTO_NHRP", Const, 0, ""},
+		{"IPPROTO_NONE", Const, 0, ""},
+		{"IPPROTO_NSP", Const, 0, ""},
+		{"IPPROTO_NVPII", Const, 0, ""},
+		{"IPPROTO_OLD_DIVERT", Const, 0, ""},
+		{"IPPROTO_OSPFIGP", Const, 0, ""},
+		{"IPPROTO_PFSYNC", Const, 0, ""},
+		{"IPPROTO_PGM", Const, 0, ""},
+		{"IPPROTO_PIGP", Const, 0, ""},
+		{"IPPROTO_PIM", Const, 0, ""},
+		{"IPPROTO_PRM", Const, 0, ""},
+		{"IPPROTO_PUP", Const, 0, ""},
+		{"IPPROTO_PVP", Const, 0, ""},
+		{"IPPROTO_RAW", Const, 0, ""},
+		{"IPPROTO_RCCMON", Const, 0, ""},
+		{"IPPROTO_RDP", Const, 0, ""},
+		{"IPPROTO_ROUTING", Const, 0, ""},
+		{"IPPROTO_RSVP", Const, 0, ""},
+		{"IPPROTO_RVD", Const, 0, ""},
+		{"IPPROTO_SATEXPAK", Const, 0, ""},
+		{"IPPROTO_SATMON", Const, 0, ""},
+		{"IPPROTO_SCCSP", Const, 0, ""},
+		{"IPPROTO_SCTP", Const, 0, ""},
+		{"IPPROTO_SDRP", Const, 0, ""},
+		{"IPPROTO_SEND", Const, 1, ""},
+		{"IPPROTO_SEP", Const, 0, ""},
+		{"IPPROTO_SKIP", Const, 0, ""},
+		{"IPPROTO_SPACER", Const, 0, ""},
+		{"IPPROTO_SRPC", Const, 0, ""},
+		{"IPPROTO_ST", Const, 0, ""},
+		{"IPPROTO_SVMTP", Const, 0, ""},
+		{"IPPROTO_SWIPE", Const, 0, ""},
+		{"IPPROTO_TCF", Const, 0, ""},
+		{"IPPROTO_TCP", Const, 0, ""},
+		{"IPPROTO_TLSP", Const, 0, ""},
+		{"IPPROTO_TP", Const, 0, ""},
+		{"IPPROTO_TPXX", Const, 0, ""},
+		{"IPPROTO_TRUNK1", Const, 0, ""},
+		{"IPPROTO_TRUNK2", Const, 0, ""},
+		{"IPPROTO_TTP", Const, 0, ""},
+		{"IPPROTO_UDP", Const, 0, ""},
+		{"IPPROTO_UDPLITE", Const, 0, ""},
+		{"IPPROTO_VINES", Const, 0, ""},
+		{"IPPROTO_VISA", Const, 0, ""},
+		{"IPPROTO_VMTP", Const, 0, ""},
+		{"IPPROTO_VRRP", Const, 1, ""},
+		{"IPPROTO_WBEXPAK", Const, 0, ""},
+		{"IPPROTO_WBMON", Const, 0, ""},
+		{"IPPROTO_WSN", Const, 0, ""},
+		{"IPPROTO_XNET", Const, 0, ""},
+		{"IPPROTO_XTP", Const, 0, ""},
+		{"IPV6_2292DSTOPTS", Const, 0, ""},
+		{"IPV6_2292HOPLIMIT", Const, 0, ""},
+		{"IPV6_2292HOPOPTS", Const, 0, ""},
+		{"IPV6_2292NEXTHOP", Const, 0, ""},
+		{"IPV6_2292PKTINFO", Const, 0, ""},
+		{"IPV6_2292PKTOPTIONS", Const, 0, ""},
+		{"IPV6_2292RTHDR", Const, 0, ""},
+		{"IPV6_ADDRFORM", Const, 0, ""},
+		{"IPV6_ADD_MEMBERSHIP", Const, 0, ""},
+		{"IPV6_AUTHHDR", Const, 0, ""},
+		{"IPV6_AUTH_LEVEL", Const, 1, ""},
+		{"IPV6_AUTOFLOWLABEL", Const, 0, ""},
+		{"IPV6_BINDANY", Const, 0, ""},
+		{"IPV6_BINDV6ONLY", Const, 0, ""},
+		{"IPV6_BOUND_IF", Const, 0, ""},
+		{"IPV6_CHECKSUM", Const, 0, ""},
+		{"IPV6_DEFAULT_MULTICAST_HOPS", Const, 0, ""},
+		{"IPV6_DEFAULT_MULTICAST_LOOP", Const, 0, ""},
+		{"IPV6_DEFHLIM", Const, 0, ""},
+		{"IPV6_DONTFRAG", Const, 0, ""},
+		{"IPV6_DROP_MEMBERSHIP", Const, 0, ""},
+		{"IPV6_DSTOPTS", Const, 0, ""},
+		{"IPV6_ESP_NETWORK_LEVEL", Const, 1, ""},
+		{"IPV6_ESP_TRANS_LEVEL", Const, 1, ""},
+		{"IPV6_FAITH", Const, 0, ""},
+		{"IPV6_FLOWINFO_MASK", Const, 0, ""},
+		{"IPV6_FLOWLABEL_MASK", Const, 0, ""},
+		{"IPV6_FRAGTTL", Const, 0, ""},
+		{"IPV6_FW_ADD", Const, 0, ""},
+		{"IPV6_FW_DEL", Const, 0, ""},
+		{"IPV6_FW_FLUSH", Const, 0, ""},
+		{"IPV6_FW_GET", Const, 0, ""},
+		{"IPV6_FW_ZERO", Const, 0, ""},
+		{"IPV6_HLIMDEC", Const, 0, ""},
+		{"IPV6_HOPLIMIT", Const, 0, ""},
+		{"IPV6_HOPOPTS", Const, 0, ""},
+		{"IPV6_IPCOMP_LEVEL", Const, 1, ""},
+		{"IPV6_IPSEC_POLICY", Const, 0, ""},
+		{"IPV6_JOIN_ANYCAST", Const, 0, ""},
+		{"IPV6_JOIN_GROUP", Const, 0, ""},
+		{"IPV6_LEAVE_ANYCAST", Const, 0, ""},
+		{"IPV6_LEAVE_GROUP", Const, 0, ""},
+		{"IPV6_MAXHLIM", Const, 0, ""},
+		{"IPV6_MAXOPTHDR", Const, 0, ""},
+		{"IPV6_MAXPACKET", Const, 0, ""},
+		{"IPV6_MAX_GROUP_SRC_FILTER", Const, 0, ""},
+		{"IPV6_MAX_MEMBERSHIPS", Const, 0, ""},
+		{"IPV6_MAX_SOCK_SRC_FILTER", Const, 0, ""},
+		{"IPV6_MIN_MEMBERSHIPS", Const, 0, ""},
+		{"IPV6_MMTU", Const, 0, ""},
+		{"IPV6_MSFILTER", Const, 0, ""},
+		{"IPV6_MTU", Const, 0, ""},
+		{"IPV6_MTU_DISCOVER", Const, 0, ""},
+		{"IPV6_MULTICAST_HOPS", Const, 0, ""},
+		{"IPV6_MULTICAST_IF", Const, 0, ""},
+		{"IPV6_MULTICAST_LOOP", Const, 0, ""},
+		{"IPV6_NEXTHOP", Const, 0, ""},
+		{"IPV6_OPTIONS", Const, 1, ""},
+		{"IPV6_PATHMTU", Const, 0, ""},
+		{"IPV6_PIPEX", Const, 1, ""},
+		{"IPV6_PKTINFO", Const, 0, ""},
+		{"IPV6_PMTUDISC_DO", Const, 0, ""},
+		{"IPV6_PMTUDISC_DONT", Const, 0, ""},
+		{"IPV6_PMTUDISC_PROBE", Const, 0, ""},
+		{"IPV6_PMTUDISC_WANT", Const, 0, ""},
+		{"IPV6_PORTRANGE", Const, 0, ""},
+		{"IPV6_PORTRANGE_DEFAULT", Const, 0, ""},
+		{"IPV6_PORTRANGE_HIGH", Const, 0, ""},
+		{"IPV6_PORTRANGE_LOW", Const, 0, ""},
+		{"IPV6_PREFER_TEMPADDR", Const, 0, ""},
+		{"IPV6_RECVDSTOPTS", Const, 0, ""},
+		{"IPV6_RECVDSTPORT", Const, 3, ""},
+		{"IPV6_RECVERR", Const, 0, ""},
+		{"IPV6_RECVHOPLIMIT", Const, 0, ""},
+		{"IPV6_RECVHOPOPTS", Const, 0, ""},
+		{"IPV6_RECVPATHMTU", Const, 0, ""},
+		{"IPV6_RECVPKTINFO", Const, 0, ""},
+		{"IPV6_RECVRTHDR", Const, 0, ""},
+		{"IPV6_RECVTCLASS", Const, 0, ""},
+		{"IPV6_ROUTER_ALERT", Const, 0, ""},
+		{"IPV6_RTABLE", Const, 1, ""},
+		{"IPV6_RTHDR", Const, 0, ""},
+		{"IPV6_RTHDRDSTOPTS", Const, 0, ""},
+		{"IPV6_RTHDR_LOOSE", Const, 0, ""},
+		{"IPV6_RTHDR_STRICT", Const, 0, ""},
+		{"IPV6_RTHDR_TYPE_0", Const, 0, ""},
+		{"IPV6_RXDSTOPTS", Const, 0, ""},
+		{"IPV6_RXHOPOPTS", Const, 0, ""},
+		{"IPV6_SOCKOPT_RESERVED1", Const, 0, ""},
+		{"IPV6_TCLASS", Const, 0, ""},
+		{"IPV6_UNICAST_HOPS", Const, 0, ""},
+		{"IPV6_USE_MIN_MTU", Const, 0, ""},
+		{"IPV6_V6ONLY", Const, 0, ""},
+		{"IPV6_VERSION", Const, 0, ""},
+		{"IPV6_VERSION_MASK", Const, 0, ""},
+		{"IPV6_XFRM_POLICY", Const, 0, ""},
+		{"IP_ADD_MEMBERSHIP", Const, 0, ""},
+		{"IP_ADD_SOURCE_MEMBERSHIP", Const, 0, ""},
+		{"IP_AUTH_LEVEL", Const, 1, ""},
+		{"IP_BINDANY", Const, 0, ""},
+		{"IP_BLOCK_SOURCE", Const, 0, ""},
+		{"IP_BOUND_IF", Const, 0, ""},
+		{"IP_DEFAULT_MULTICAST_LOOP", Const, 0, ""},
+		{"IP_DEFAULT_MULTICAST_TTL", Const, 0, ""},
+		{"IP_DF", Const, 0, ""},
+		{"IP_DIVERTFL", Const, 3, ""},
+		{"IP_DONTFRAG", Const, 0, ""},
+		{"IP_DROP_MEMBERSHIP", Const, 0, ""},
+		{"IP_DROP_SOURCE_MEMBERSHIP", Const, 0, ""},
+		{"IP_DUMMYNET3", Const, 0, ""},
+		{"IP_DUMMYNET_CONFIGURE", Const, 0, ""},
+		{"IP_DUMMYNET_DEL", Const, 0, ""},
+		{"IP_DUMMYNET_FLUSH", Const, 0, ""},
+		{"IP_DUMMYNET_GET", Const, 0, ""},
+		{"IP_EF", Const, 1, ""},
+		{"IP_ERRORMTU", Const, 1, ""},
+		{"IP_ESP_NETWORK_LEVEL", Const, 1, ""},
+		{"IP_ESP_TRANS_LEVEL", Const, 1, ""},
+		{"IP_FAITH", Const, 0, ""},
+		{"IP_FREEBIND", Const, 0, ""},
+		{"IP_FW3", Const, 0, ""},
+		{"IP_FW_ADD", Const, 0, ""},
+		{"IP_FW_DEL", Const, 0, ""},
+		{"IP_FW_FLUSH", Const, 0, ""},
+		{"IP_FW_GET", Const, 0, ""},
+		{"IP_FW_NAT_CFG", Const, 0, ""},
+		{"IP_FW_NAT_DEL", Const, 0, ""},
+		{"IP_FW_NAT_GET_CONFIG", Const, 0, ""},
+		{"IP_FW_NAT_GET_LOG", Const, 0, ""},
+		{"IP_FW_RESETLOG", Const, 0, ""},
+		{"IP_FW_TABLE_ADD", Const, 0, ""},
+		{"IP_FW_TABLE_DEL", Const, 0, ""},
+		{"IP_FW_TABLE_FLUSH", Const, 0, ""},
+		{"IP_FW_TABLE_GETSIZE", Const, 0, ""},
+		{"IP_FW_TABLE_LIST", Const, 0, ""},
+		{"IP_FW_ZERO", Const, 0, ""},
+		{"IP_HDRINCL", Const, 0, ""},
+		{"IP_IPCOMP_LEVEL", Const, 1, ""},
+		{"IP_IPSECFLOWINFO", Const, 1, ""},
+		{"IP_IPSEC_LOCAL_AUTH", Const, 1, ""},
+		{"IP_IPSEC_LOCAL_CRED", Const, 1, ""},
+		{"IP_IPSEC_LOCAL_ID", Const, 1, ""},
+		{"IP_IPSEC_POLICY", Const, 0, ""},
+		{"IP_IPSEC_REMOTE_AUTH", Const, 1, ""},
+		{"IP_IPSEC_REMOTE_CRED", Const, 1, ""},
+		{"IP_IPSEC_REMOTE_ID", Const, 1, ""},
+		{"IP_MAXPACKET", Const, 0, ""},
+		{"IP_MAX_GROUP_SRC_FILTER", Const, 0, ""},
+		{"IP_MAX_MEMBERSHIPS", Const, 0, ""},
+		{"IP_MAX_SOCK_MUTE_FILTER", Const, 0, ""},
+		{"IP_MAX_SOCK_SRC_FILTER", Const, 0, ""},
+		{"IP_MAX_SOURCE_FILTER", Const, 0, ""},
+		{"IP_MF", Const, 0, ""},
+		{"IP_MINFRAGSIZE", Const, 1, ""},
+		{"IP_MINTTL", Const, 0, ""},
+		{"IP_MIN_MEMBERSHIPS", Const, 0, ""},
+		{"IP_MSFILTER", Const, 0, ""},
+		{"IP_MSS", Const, 0, ""},
+		{"IP_MTU", Const, 0, ""},
+		{"IP_MTU_DISCOVER", Const, 0, ""},
+		{"IP_MULTICAST_IF", Const, 0, ""},
+		{"IP_MULTICAST_IFINDEX", Const, 0, ""},
+		{"IP_MULTICAST_LOOP", Const, 0, ""},
+		{"IP_MULTICAST_TTL", Const, 0, ""},
+		{"IP_MULTICAST_VIF", Const, 0, ""},
+		{"IP_NAT__XXX", Const, 0, ""},
+		{"IP_OFFMASK", Const, 0, ""},
+		{"IP_OLD_FW_ADD", Const, 0, ""},
+		{"IP_OLD_FW_DEL", Const, 0, ""},
+		{"IP_OLD_FW_FLUSH", Const, 0, ""},
+		{"IP_OLD_FW_GET", Const, 0, ""},
+		{"IP_OLD_FW_RESETLOG", Const, 0, ""},
+		{"IP_OLD_FW_ZERO", Const, 0, ""},
+		{"IP_ONESBCAST", Const, 0, ""},
+		{"IP_OPTIONS", Const, 0, ""},
+		{"IP_ORIGDSTADDR", Const, 0, ""},
+		{"IP_PASSSEC", Const, 0, ""},
+		{"IP_PIPEX", Const, 1, ""},
+		{"IP_PKTINFO", Const, 0, ""},
+		{"IP_PKTOPTIONS", Const, 0, ""},
+		{"IP_PMTUDISC", Const, 0, ""},
+		{"IP_PMTUDISC_DO", Const, 0, ""},
+		{"IP_PMTUDISC_DONT", Const, 0, ""},
+		{"IP_PMTUDISC_PROBE", Const, 0, ""},
+		{"IP_PMTUDISC_WANT", Const, 0, ""},
+		{"IP_PORTRANGE", Const, 0, ""},
+		{"IP_PORTRANGE_DEFAULT", Const, 0, ""},
+		{"IP_PORTRANGE_HIGH", Const, 0, ""},
+		{"IP_PORTRANGE_LOW", Const, 0, ""},
+		{"IP_RECVDSTADDR", Const, 0, ""},
+		{"IP_RECVDSTPORT", Const, 1, ""},
+		{"IP_RECVERR", Const, 0, ""},
+		{"IP_RECVIF", Const, 0, ""},
+		{"IP_RECVOPTS", Const, 0, ""},
+		{"IP_RECVORIGDSTADDR", Const, 0, ""},
+		{"IP_RECVPKTINFO", Const, 0, ""},
+		{"IP_RECVRETOPTS", Const, 0, ""},
+		{"IP_RECVRTABLE", Const, 1, ""},
+		{"IP_RECVTOS", Const, 0, ""},
+		{"IP_RECVTTL", Const, 0, ""},
+		{"IP_RETOPTS", Const, 0, ""},
+		{"IP_RF", Const, 0, ""},
+		{"IP_ROUTER_ALERT", Const, 0, ""},
+		{"IP_RSVP_OFF", Const, 0, ""},
+		{"IP_RSVP_ON", Const, 0, ""},
+		{"IP_RSVP_VIF_OFF", Const, 0, ""},
+		{"IP_RSVP_VIF_ON", Const, 0, ""},
+		{"IP_RTABLE", Const, 1, ""},
+		{"IP_SENDSRCADDR", Const, 0, ""},
+		{"IP_STRIPHDR", Const, 0, ""},
+		{"IP_TOS", Const, 0, ""},
+		{"IP_TRAFFIC_MGT_BACKGROUND", Const, 0, ""},
+		{"IP_TRANSPARENT", Const, 0, ""},
+		{"IP_TTL", Const, 0, ""},
+		{"IP_UNBLOCK_SOURCE", Const, 0, ""},
+		{"IP_XFRM_POLICY", Const, 0, ""},
+		{"IPv6MTUInfo", Type, 2, ""},
+		{"IPv6MTUInfo.Addr", Field, 2, ""},
+		{"IPv6MTUInfo.Mtu", Field, 2, ""},
+		{"IPv6Mreq", Type, 0, ""},
+		{"IPv6Mreq.Interface", Field, 0, ""},
+		{"IPv6Mreq.Multiaddr", Field, 0, ""},
+		{"ISIG", Const, 0, ""},
+		{"ISTRIP", Const, 0, ""},
+		{"IUCLC", Const, 0, ""},
+		{"IUTF8", Const, 0, ""},
+		{"IXANY", Const, 0, ""},
+		{"IXOFF", Const, 0, ""},
+		{"IXON", Const, 0, ""},
+		{"IfAddrmsg", Type, 0, ""},
+		{"IfAddrmsg.Family", Field, 0, ""},
+		{"IfAddrmsg.Flags", Field, 0, ""},
+		{"IfAddrmsg.Index", Field, 0, ""},
+		{"IfAddrmsg.Prefixlen", Field, 0, ""},
+		{"IfAddrmsg.Scope", Field, 0, ""},
+		{"IfAnnounceMsghdr", Type, 1, ""},
+		{"IfAnnounceMsghdr.Hdrlen", Field, 2, ""},
+		{"IfAnnounceMsghdr.Index", Field, 1, ""},
+		{"IfAnnounceMsghdr.Msglen", Field, 1, ""},
+		{"IfAnnounceMsghdr.Name", Field, 1, ""},
+		{"IfAnnounceMsghdr.Type", Field, 1, ""},
+		{"IfAnnounceMsghdr.Version", Field, 1, ""},
+		{"IfAnnounceMsghdr.What", Field, 1, ""},
+		{"IfData", Type, 0, ""},
+		{"IfData.Addrlen", Field, 0, ""},
+		{"IfData.Baudrate", Field, 0, ""},
+		{"IfData.Capabilities", Field, 2, ""},
+		{"IfData.Collisions", Field, 0, ""},
+		{"IfData.Datalen", Field, 0, ""},
+		{"IfData.Epoch", Field, 0, ""},
+		{"IfData.Hdrlen", Field, 0, ""},
+		{"IfData.Hwassist", Field, 0, ""},
+		{"IfData.Ibytes", Field, 0, ""},
+		{"IfData.Ierrors", Field, 0, ""},
+		{"IfData.Imcasts", Field, 0, ""},
+		{"IfData.Ipackets", Field, 0, ""},
+		{"IfData.Iqdrops", Field, 0, ""},
+		{"IfData.Lastchange", Field, 0, ""},
+		{"IfData.Link_state", Field, 0, ""},
+		{"IfData.Mclpool", Field, 2, ""},
+		{"IfData.Metric", Field, 0, ""},
+		{"IfData.Mtu", Field, 0, ""},
+		{"IfData.Noproto", Field, 0, ""},
+		{"IfData.Obytes", Field, 0, ""},
+		{"IfData.Oerrors", Field, 0, ""},
+		{"IfData.Omcasts", Field, 0, ""},
+		{"IfData.Opackets", Field, 0, ""},
+		{"IfData.Pad", Field, 2, ""},
+		{"IfData.Pad_cgo_0", Field, 2, ""},
+		{"IfData.Pad_cgo_1", Field, 2, ""},
+		{"IfData.Physical", Field, 0, ""},
+		{"IfData.Recvquota", Field, 0, ""},
+		{"IfData.Recvtiming", Field, 0, ""},
+		{"IfData.Reserved1", Field, 0, ""},
+		{"IfData.Reserved2", Field, 0, ""},
+		{"IfData.Spare_char1", Field, 0, ""},
+		{"IfData.Spare_char2", Field, 0, ""},
+		{"IfData.Type", Field, 0, ""},
+		{"IfData.Typelen", Field, 0, ""},
+		{"IfData.Unused1", Field, 0, ""},
+		{"IfData.Unused2", Field, 0, ""},
+		{"IfData.Xmitquota", Field, 0, ""},
+		{"IfData.Xmittiming", Field, 0, ""},
+		{"IfInfomsg", Type, 0, ""},
+		{"IfInfomsg.Change", Field, 0, ""},
+		{"IfInfomsg.Family", Field, 0, ""},
+		{"IfInfomsg.Flags", Field, 0, ""},
+		{"IfInfomsg.Index", Field, 0, ""},
+		{"IfInfomsg.Type", Field, 0, ""},
+		{"IfInfomsg.X__ifi_pad", Field, 0, ""},
+		{"IfMsghdr", Type, 0, ""},
+		{"IfMsghdr.Addrs", Field, 0, ""},
+		{"IfMsghdr.Data", Field, 0, ""},
+		{"IfMsghdr.Flags", Field, 0, ""},
+		{"IfMsghdr.Hdrlen", Field, 2, ""},
+		{"IfMsghdr.Index", Field, 0, ""},
+		{"IfMsghdr.Msglen", Field, 0, ""},
+		{"IfMsghdr.Pad1", Field, 2, ""},
+		{"IfMsghdr.Pad2", Field, 2, ""},
+		{"IfMsghdr.Pad_cgo_0", Field, 0, ""},
+		{"IfMsghdr.Pad_cgo_1", Field, 2, ""},
+		{"IfMsghdr.Tableid", Field, 2, ""},
+		{"IfMsghdr.Type", Field, 0, ""},
+		{"IfMsghdr.Version", Field, 0, ""},
+		{"IfMsghdr.Xflags", Field, 2, ""},
+		{"IfaMsghdr", Type, 0, ""},
+		{"IfaMsghdr.Addrs", Field, 0, ""},
+		{"IfaMsghdr.Flags", Field, 0, ""},
+		{"IfaMsghdr.Hdrlen", Field, 2, ""},
+		{"IfaMsghdr.Index", Field, 0, ""},
+		{"IfaMsghdr.Metric", Field, 0, ""},
+		{"IfaMsghdr.Msglen", Field, 0, ""},
+		{"IfaMsghdr.Pad1", Field, 2, ""},
+		{"IfaMsghdr.Pad2", Field, 2, ""},
+		{"IfaMsghdr.Pad_cgo_0", Field, 0, ""},
+		{"IfaMsghdr.Tableid", Field, 2, ""},
+		{"IfaMsghdr.Type", Field, 0, ""},
+		{"IfaMsghdr.Version", Field, 0, ""},
+		{"IfmaMsghdr", Type, 0, ""},
+		{"IfmaMsghdr.Addrs", Field, 0, ""},
+		{"IfmaMsghdr.Flags", Field, 0, ""},
+		{"IfmaMsghdr.Index", Field, 0, ""},
+		{"IfmaMsghdr.Msglen", Field, 0, ""},
+		{"IfmaMsghdr.Pad_cgo_0", Field, 0, ""},
+		{"IfmaMsghdr.Type", Field, 0, ""},
+		{"IfmaMsghdr.Version", Field, 0, ""},
+		{"IfmaMsghdr2", Type, 0, ""},
+		{"IfmaMsghdr2.Addrs", Field, 0, ""},
+		{"IfmaMsghdr2.Flags", Field, 0, ""},
+		{"IfmaMsghdr2.Index", Field, 0, ""},
+		{"IfmaMsghdr2.Msglen", Field, 0, ""},
+		{"IfmaMsghdr2.Pad_cgo_0", Field, 0, ""},
+		{"IfmaMsghdr2.Refcount", Field, 0, ""},
+		{"IfmaMsghdr2.Type", Field, 0, ""},
+		{"IfmaMsghdr2.Version", Field, 0, ""},
+		{"ImplementsGetwd", Const, 0, ""},
+		{"Inet4Pktinfo", Type, 0, ""},
+		{"Inet4Pktinfo.Addr", Field, 0, ""},
+		{"Inet4Pktinfo.Ifindex", Field, 0, ""},
+		{"Inet4Pktinfo.Spec_dst", Field, 0, ""},
+		{"Inet6Pktinfo", Type, 0, ""},
+		{"Inet6Pktinfo.Addr", Field, 0, ""},
+		{"Inet6Pktinfo.Ifindex", Field, 0, ""},
+		{"InotifyAddWatch", Func, 0, "func(fd int, pathname string, mask uint32) (watchdesc int, err error)"},
+		{"InotifyEvent", Type, 0, ""},
+		{"InotifyEvent.Cookie", Field, 0, ""},
+		{"InotifyEvent.Len", Field, 0, ""},
+		{"InotifyEvent.Mask", Field, 0, ""},
+		{"InotifyEvent.Name", Field, 0, ""},
+		{"InotifyEvent.Wd", Field, 0, ""},
+		{"InotifyInit", Func, 0, "func() (fd int, err error)"},
+		{"InotifyInit1", Func, 0, "func(flags int) (fd int, err error)"},
+		{"InotifyRmWatch", Func, 0, "func(fd int, watchdesc uint32) (success int, err error)"},
+		{"InterfaceAddrMessage", Type, 0, ""},
+		{"InterfaceAddrMessage.Data", Field, 0, ""},
+		{"InterfaceAddrMessage.Header", Field, 0, ""},
+		{"InterfaceAnnounceMessage", Type, 1, ""},
+		{"InterfaceAnnounceMessage.Header", Field, 1, ""},
+		{"InterfaceInfo", Type, 0, ""},
+		{"InterfaceInfo.Address", Field, 0, ""},
+		{"InterfaceInfo.BroadcastAddress", Field, 0, ""},
+		{"InterfaceInfo.Flags", Field, 0, ""},
+		{"InterfaceInfo.Netmask", Field, 0, ""},
+		{"InterfaceMessage", Type, 0, ""},
+		{"InterfaceMessage.Data", Field, 0, ""},
+		{"InterfaceMessage.Header", Field, 0, ""},
+		{"InterfaceMulticastAddrMessage", Type, 0, ""},
+		{"InterfaceMulticastAddrMessage.Data", Field, 0, ""},
+		{"InterfaceMulticastAddrMessage.Header", Field, 0, ""},
+		{"InvalidHandle", Const, 0, ""},
+		{"Ioperm", Func, 0, "func(from int, num int, on int) (err error)"},
+		{"Iopl", Func, 0, "func(level int) (err error)"},
+		{"Iovec", Type, 0, ""},
+		{"Iovec.Base", Field, 0, ""},
+		{"Iovec.Len", Field, 0, ""},
+		{"IpAdapterInfo", Type, 0, ""},
+		{"IpAdapterInfo.AdapterName", Field, 0, ""},
+		{"IpAdapterInfo.Address", Field, 0, ""},
+		{"IpAdapterInfo.AddressLength", Field, 0, ""},
+		{"IpAdapterInfo.ComboIndex", Field, 0, ""},
+		{"IpAdapterInfo.CurrentIpAddress", Field, 0, ""},
+		{"IpAdapterInfo.Description", Field, 0, ""},
+		{"IpAdapterInfo.DhcpEnabled", Field, 0, ""},
+		{"IpAdapterInfo.DhcpServer", Field, 0, ""},
+		{"IpAdapterInfo.GatewayList", Field, 0, ""},
+		{"IpAdapterInfo.HaveWins", Field, 0, ""},
+		{"IpAdapterInfo.Index", Field, 0, ""},
+		{"IpAdapterInfo.IpAddressList", Field, 0, ""},
+		{"IpAdapterInfo.LeaseExpires", Field, 0, ""},
+		{"IpAdapterInfo.LeaseObtained", Field, 0, ""},
+		{"IpAdapterInfo.Next", Field, 0, ""},
+		{"IpAdapterInfo.PrimaryWinsServer", Field, 0, ""},
+		{"IpAdapterInfo.SecondaryWinsServer", Field, 0, ""},
+		{"IpAdapterInfo.Type", Field, 0, ""},
+		{"IpAddrString", Type, 0, ""},
+		{"IpAddrString.Context", Field, 0, ""},
+		{"IpAddrString.IpAddress", Field, 0, ""},
+		{"IpAddrString.IpMask", Field, 0, ""},
+		{"IpAddrString.Next", Field, 0, ""},
+		{"IpAddressString", Type, 0, ""},
+		{"IpAddressString.String", Field, 0, ""},
+		{"IpMaskString", Type, 0, ""},
+		{"IpMaskString.String", Field, 2, ""},
+		{"Issetugid", Func, 0, ""},
+		{"KEY_ALL_ACCESS", Const, 0, ""},
+		{"KEY_CREATE_LINK", Const, 0, ""},
+		{"KEY_CREATE_SUB_KEY", Const, 0, ""},
+		{"KEY_ENUMERATE_SUB_KEYS", Const, 0, ""},
+		{"KEY_EXECUTE", Const, 0, ""},
+		{"KEY_NOTIFY", Const, 0, ""},
+		{"KEY_QUERY_VALUE", Const, 0, ""},
+		{"KEY_READ", Const, 0, ""},
+		{"KEY_SET_VALUE", Const, 0, ""},
+		{"KEY_WOW64_32KEY", Const, 0, ""},
+		{"KEY_WOW64_64KEY", Const, 0, ""},
+		{"KEY_WRITE", Const, 0, ""},
+		{"Kevent", Func, 0, ""},
+		{"Kevent_t", Type, 0, ""},
+		{"Kevent_t.Data", Field, 0, ""},
+		{"Kevent_t.Fflags", Field, 0, ""},
+		{"Kevent_t.Filter", Field, 0, ""},
+		{"Kevent_t.Flags", Field, 0, ""},
+		{"Kevent_t.Ident", Field, 0, ""},
+		{"Kevent_t.Pad_cgo_0", Field, 2, ""},
+		{"Kevent_t.Udata", Field, 0, ""},
+		{"Kill", Func, 0, "func(pid int, sig Signal) (err error)"},
+		{"Klogctl", Func, 0, "func(typ int, buf []byte) (n int, err error)"},
+		{"Kqueue", Func, 0, ""},
+		{"LANG_ENGLISH", Const, 0, ""},
+		{"LAYERED_PROTOCOL", Const, 2, ""},
+		{"LCNT_OVERLOAD_FLUSH", Const, 1, ""},
+		{"LINUX_REBOOT_CMD_CAD_OFF", Const, 0, ""},
+		{"LINUX_REBOOT_CMD_CAD_ON", Const, 0, ""},
+		{"LINUX_REBOOT_CMD_HALT", Const, 0, ""},
+		{"LINUX_REBOOT_CMD_KEXEC", Const, 0, ""},
+		{"LINUX_REBOOT_CMD_POWER_OFF", Const, 0, ""},
+		{"LINUX_REBOOT_CMD_RESTART", Const, 0, ""},
+		{"LINUX_REBOOT_CMD_RESTART2", Const, 0, ""},
+		{"LINUX_REBOOT_CMD_SW_SUSPEND", Const, 0, ""},
+		{"LINUX_REBOOT_MAGIC1", Const, 0, ""},
+		{"LINUX_REBOOT_MAGIC2", Const, 0, ""},
+		{"LOCK_EX", Const, 0, ""},
+		{"LOCK_NB", Const, 0, ""},
+		{"LOCK_SH", Const, 0, ""},
+		{"LOCK_UN", Const, 0, ""},
+		{"LazyDLL", Type, 0, ""},
+		{"LazyDLL.Name", Field, 0, ""},
+		{"LazyProc", Type, 0, ""},
+		{"LazyProc.Name", Field, 0, ""},
+		{"Lchown", Func, 0, "func(path string, uid int, gid int) (err error)"},
+		{"Linger", Type, 0, ""},
+		{"Linger.Linger", Field, 0, ""},
+		{"Linger.Onoff", Field, 0, ""},
+		{"Link", Func, 0, "func(oldpath string, newpath string) (err error)"},
+		{"Listen", Func, 0, "func(s int, n int) (err error)"},
+		{"Listxattr", Func, 1, "func(path string, dest []byte) (sz int, err error)"},
+		{"LoadCancelIoEx", Func, 1, ""},
+		{"LoadConnectEx", Func, 1, ""},
+		{"LoadCreateSymbolicLink", Func, 4, ""},
+		{"LoadDLL", Func, 0, ""},
+		{"LoadGetAddrInfo", Func, 1, ""},
+		{"LoadLibrary", Func, 0, ""},
+		{"LoadSetFileCompletionNotificationModes", Func, 2, ""},
+		{"LocalFree", Func, 0, ""},
+		{"Log2phys_t", Type, 0, ""},
+		{"Log2phys_t.Contigbytes", Field, 0, ""},
+		{"Log2phys_t.Devoffset", Field, 0, ""},
+		{"Log2phys_t.Flags", Field, 0, ""},
+		{"LookupAccountName", Func, 0, ""},
+		{"LookupAccountSid", Func, 0, ""},
+		{"LookupSID", Func, 0, ""},
+		{"LsfJump", Func, 0, "func(code int, k int, jt int, jf int) *SockFilter"},
+		{"LsfSocket", Func, 0, "func(ifindex int, proto int) (int, error)"},
+		{"LsfStmt", Func, 0, "func(code int, k int) *SockFilter"},
+		{"Lstat", Func, 0, "func(path string, stat *Stat_t) (err error)"},
+		{"MADV_AUTOSYNC", Const, 1, ""},
+		{"MADV_CAN_REUSE", Const, 0, ""},
+		{"MADV_CORE", Const, 1, ""},
+		{"MADV_DOFORK", Const, 0, ""},
+		{"MADV_DONTFORK", Const, 0, ""},
+		{"MADV_DONTNEED", Const, 0, ""},
+		{"MADV_FREE", Const, 0, ""},
+		{"MADV_FREE_REUSABLE", Const, 0, ""},
+		{"MADV_FREE_REUSE", Const, 0, ""},
+		{"MADV_HUGEPAGE", Const, 0, ""},
+		{"MADV_HWPOISON", Const, 0, ""},
+		{"MADV_MERGEABLE", Const, 0, ""},
+		{"MADV_NOCORE", Const, 1, ""},
+		{"MADV_NOHUGEPAGE", Const, 0, ""},
+		{"MADV_NORMAL", Const, 0, ""},
+		{"MADV_NOSYNC", Const, 1, ""},
+		{"MADV_PROTECT", Const, 1, ""},
+		{"MADV_RANDOM", Const, 0, ""},
+		{"MADV_REMOVE", Const, 0, ""},
+		{"MADV_SEQUENTIAL", Const, 0, ""},
+		{"MADV_SPACEAVAIL", Const, 3, ""},
+		{"MADV_UNMERGEABLE", Const, 0, ""},
+		{"MADV_WILLNEED", Const, 0, ""},
+		{"MADV_ZERO_WIRED_PAGES", Const, 0, ""},
+		{"MAP_32BIT", Const, 0, ""},
+		{"MAP_ALIGNED_SUPER", Const, 3, ""},
+		{"MAP_ALIGNMENT_16MB", Const, 3, ""},
+		{"MAP_ALIGNMENT_1TB", Const, 3, ""},
+		{"MAP_ALIGNMENT_256TB", Const, 3, ""},
+		{"MAP_ALIGNMENT_4GB", Const, 3, ""},
+		{"MAP_ALIGNMENT_64KB", Const, 3, ""},
+		{"MAP_ALIGNMENT_64PB", Const, 3, ""},
+		{"MAP_ALIGNMENT_MASK", Const, 3, ""},
+		{"MAP_ALIGNMENT_SHIFT", Const, 3, ""},
+		{"MAP_ANON", Const, 0, ""},
+		{"MAP_ANONYMOUS", Const, 0, ""},
+		{"MAP_COPY", Const, 0, ""},
+		{"MAP_DENYWRITE", Const, 0, ""},
+		{"MAP_EXECUTABLE", Const, 0, ""},
+		{"MAP_FILE", Const, 0, ""},
+		{"MAP_FIXED", Const, 0, ""},
+		{"MAP_FLAGMASK", Const, 3, ""},
+		{"MAP_GROWSDOWN", Const, 0, ""},
+		{"MAP_HASSEMAPHORE", Const, 0, ""},
+		{"MAP_HUGETLB", Const, 0, ""},
+		{"MAP_INHERIT", Const, 3, ""},
+		{"MAP_INHERIT_COPY", Const, 3, ""},
+		{"MAP_INHERIT_DEFAULT", Const, 3, ""},
+		{"MAP_INHERIT_DONATE_COPY", Const, 3, ""},
+		{"MAP_INHERIT_NONE", Const, 3, ""},
+		{"MAP_INHERIT_SHARE", Const, 3, ""},
+		{"MAP_JIT", Const, 0, ""},
+		{"MAP_LOCKED", Const, 0, ""},
+		{"MAP_NOCACHE", Const, 0, ""},
+		{"MAP_NOCORE", Const, 1, ""},
+		{"MAP_NOEXTEND", Const, 0, ""},
+		{"MAP_NONBLOCK", Const, 0, ""},
+		{"MAP_NORESERVE", Const, 0, ""},
+		{"MAP_NOSYNC", Const, 1, ""},
+		{"MAP_POPULATE", Const, 0, ""},
+		{"MAP_PREFAULT_READ", Const, 1, ""},
+		{"MAP_PRIVATE", Const, 0, ""},
+		{"MAP_RENAME", Const, 0, ""},
+		{"MAP_RESERVED0080", Const, 0, ""},
+		{"MAP_RESERVED0100", Const, 1, ""},
+		{"MAP_SHARED", Const, 0, ""},
+		{"MAP_STACK", Const, 0, ""},
+		{"MAP_TRYFIXED", Const, 3, ""},
+		{"MAP_TYPE", Const, 0, ""},
+		{"MAP_WIRED", Const, 3, ""},
+		{"MAXIMUM_REPARSE_DATA_BUFFER_SIZE", Const, 4, ""},
+		{"MAXLEN_IFDESCR", Const, 0, ""},
+		{"MAXLEN_PHYSADDR", Const, 0, ""},
+		{"MAX_ADAPTER_ADDRESS_LENGTH", Const, 0, ""},
+		{"MAX_ADAPTER_DESCRIPTION_LENGTH", Const, 0, ""},
+		{"MAX_ADAPTER_NAME_LENGTH", Const, 0, ""},
+		{"MAX_COMPUTERNAME_LENGTH", Const, 0, ""},
+		{"MAX_INTERFACE_NAME_LEN", Const, 0, ""},
+		{"MAX_LONG_PATH", Const, 0, ""},
+		{"MAX_PATH", Const, 0, ""},
+		{"MAX_PROTOCOL_CHAIN", Const, 2, ""},
+		{"MCL_CURRENT", Const, 0, ""},
+		{"MCL_FUTURE", Const, 0, ""},
+		{"MNT_DETACH", Const, 0, ""},
+		{"MNT_EXPIRE", Const, 0, ""},
+		{"MNT_FORCE", Const, 0, ""},
+		{"MSG_BCAST", Const, 1, ""},
+		{"MSG_CMSG_CLOEXEC", Const, 0, ""},
+		{"MSG_COMPAT", Const, 0, ""},
+		{"MSG_CONFIRM", Const, 0, ""},
+		{"MSG_CONTROLMBUF", Const, 1, ""},
+		{"MSG_CTRUNC", Const, 0, ""},
+		{"MSG_DONTROUTE", Const, 0, ""},
+		{"MSG_DONTWAIT", Const, 0, ""},
+		{"MSG_EOF", Const, 0, ""},
+		{"MSG_EOR", Const, 0, ""},
+		{"MSG_ERRQUEUE", Const, 0, ""},
+		{"MSG_FASTOPEN", Const, 1, ""},
+		{"MSG_FIN", Const, 0, ""},
+		{"MSG_FLUSH", Const, 0, ""},
+		{"MSG_HAVEMORE", Const, 0, ""},
+		{"MSG_HOLD", Const, 0, ""},
+		{"MSG_IOVUSRSPACE", Const, 1, ""},
+		{"MSG_LENUSRSPACE", Const, 1, ""},
+		{"MSG_MCAST", Const, 1, ""},
+		{"MSG_MORE", Const, 0, ""},
+		{"MSG_NAMEMBUF", Const, 1, ""},
+		{"MSG_NBIO", Const, 0, ""},
+		{"MSG_NEEDSA", Const, 0, ""},
+		{"MSG_NOSIGNAL", Const, 0, ""},
+		{"MSG_NOTIFICATION", Const, 0, ""},
+		{"MSG_OOB", Const, 0, ""},
+		{"MSG_PEEK", Const, 0, ""},
+		{"MSG_PROXY", Const, 0, ""},
+		{"MSG_RCVMORE", Const, 0, ""},
+		{"MSG_RST", Const, 0, ""},
+		{"MSG_SEND", Const, 0, ""},
+		{"MSG_SYN", Const, 0, ""},
+		{"MSG_TRUNC", Const, 0, ""},
+		{"MSG_TRYHARD", Const, 0, ""},
+		{"MSG_USERFLAGS", Const, 1, ""},
+		{"MSG_WAITALL", Const, 0, ""},
+		{"MSG_WAITFORONE", Const, 0, ""},
+		{"MSG_WAITSTREAM", Const, 0, ""},
+		{"MS_ACTIVE", Const, 0, ""},
+		{"MS_ASYNC", Const, 0, ""},
+		{"MS_BIND", Const, 0, ""},
+		{"MS_DEACTIVATE", Const, 0, ""},
+		{"MS_DIRSYNC", Const, 0, ""},
+		{"MS_INVALIDATE", Const, 0, ""},
+		{"MS_I_VERSION", Const, 0, ""},
+		{"MS_KERNMOUNT", Const, 0, ""},
+		{"MS_KILLPAGES", Const, 0, ""},
+		{"MS_MANDLOCK", Const, 0, ""},
+		{"MS_MGC_MSK", Const, 0, ""},
+		{"MS_MGC_VAL", Const, 0, ""},
+		{"MS_MOVE", Const, 0, ""},
+		{"MS_NOATIME", Const, 0, ""},
+		{"MS_NODEV", Const, 0, ""},
+		{"MS_NODIRATIME", Const, 0, ""},
+		{"MS_NOEXEC", Const, 0, ""},
+		{"MS_NOSUID", Const, 0, ""},
+		{"MS_NOUSER", Const, 0, ""},
+		{"MS_POSIXACL", Const, 0, ""},
+		{"MS_PRIVATE", Const, 0, ""},
+		{"MS_RDONLY", Const, 0, ""},
+		{"MS_REC", Const, 0, ""},
+		{"MS_RELATIME", Const, 0, ""},
+		{"MS_REMOUNT", Const, 0, ""},
+		{"MS_RMT_MASK", Const, 0, ""},
+		{"MS_SHARED", Const, 0, ""},
+		{"MS_SILENT", Const, 0, ""},
+		{"MS_SLAVE", Const, 0, ""},
+		{"MS_STRICTATIME", Const, 0, ""},
+		{"MS_SYNC", Const, 0, ""},
+		{"MS_SYNCHRONOUS", Const, 0, ""},
+		{"MS_UNBINDABLE", Const, 0, ""},
+		{"Madvise", Func, 0, "func(b []byte, advice int) (err error)"},
+		{"MapViewOfFile", Func, 0, ""},
+		{"MaxTokenInfoClass", Const, 0, ""},
+		{"Mclpool", Type, 2, ""},
+		{"Mclpool.Alive", Field, 2, ""},
+		{"Mclpool.Cwm", Field, 2, ""},
+		{"Mclpool.Grown", Field, 2, ""},
+		{"Mclpool.Hwm", Field, 2, ""},
+		{"Mclpool.Lwm", Field, 2, ""},
+		{"MibIfRow", Type, 0, ""},
+		{"MibIfRow.AdminStatus", Field, 0, ""},
+		{"MibIfRow.Descr", Field, 0, ""},
+		{"MibIfRow.DescrLen", Field, 0, ""},
+		{"MibIfRow.InDiscards", Field, 0, ""},
+		{"MibIfRow.InErrors", Field, 0, ""},
+		{"MibIfRow.InNUcastPkts", Field, 0, ""},
+		{"MibIfRow.InOctets", Field, 0, ""},
+		{"MibIfRow.InUcastPkts", Field, 0, ""},
+		{"MibIfRow.InUnknownProtos", Field, 0, ""},
+		{"MibIfRow.Index", Field, 0, ""},
+		{"MibIfRow.LastChange", Field, 0, ""},
+		{"MibIfRow.Mtu", Field, 0, ""},
+		{"MibIfRow.Name", Field, 0, ""},
+		{"MibIfRow.OperStatus", Field, 0, ""},
+		{"MibIfRow.OutDiscards", Field, 0, ""},
+		{"MibIfRow.OutErrors", Field, 0, ""},
+		{"MibIfRow.OutNUcastPkts", Field, 0, ""},
+		{"MibIfRow.OutOctets", Field, 0, ""},
+		{"MibIfRow.OutQLen", Field, 0, ""},
+		{"MibIfRow.OutUcastPkts", Field, 0, ""},
+		{"MibIfRow.PhysAddr", Field, 0, ""},
+		{"MibIfRow.PhysAddrLen", Field, 0, ""},
+		{"MibIfRow.Speed", Field, 0, ""},
+		{"MibIfRow.Type", Field, 0, ""},
+		{"Mkdir", Func, 0, "func(path string, mode uint32) (err error)"},
+		{"Mkdirat", Func, 0, "func(dirfd int, path string, mode uint32) (err error)"},
+		{"Mkfifo", Func, 0, "func(path string, mode uint32) (err error)"},
+		{"Mknod", Func, 0, "func(path string, mode uint32, dev int) (err error)"},
+		{"Mknodat", Func, 0, "func(dirfd int, path string, mode uint32, dev int) (err error)"},
+		{"Mlock", Func, 0, "func(b []byte) (err error)"},
+		{"Mlockall", Func, 0, "func(flags int) (err error)"},
+		{"Mmap", Func, 0, "func(fd int, offset int64, length int, prot int, flags int) (data []byte, err error)"},
+		{"Mount", Func, 0, "func(source string, target string, fstype string, flags uintptr, data string) (err error)"},
+		{"MoveFile", Func, 0, ""},
+		{"Mprotect", Func, 0, "func(b []byte, prot int) (err error)"},
+		{"Msghdr", Type, 0, ""},
+		{"Msghdr.Control", Field, 0, ""},
+		{"Msghdr.Controllen", Field, 0, ""},
+		{"Msghdr.Flags", Field, 0, ""},
+		{"Msghdr.Iov", Field, 0, ""},
+		{"Msghdr.Iovlen", Field, 0, ""},
+		{"Msghdr.Name", Field, 0, ""},
+		{"Msghdr.Namelen", Field, 0, ""},
+		{"Msghdr.Pad_cgo_0", Field, 0, ""},
+		{"Msghdr.Pad_cgo_1", Field, 0, ""},
+		{"Munlock", Func, 0, "func(b []byte) (err error)"},
+		{"Munlockall", Func, 0, "func() (err error)"},
+		{"Munmap", Func, 0, "func(b []byte) (err error)"},
+		{"MustLoadDLL", Func, 0, ""},
+		{"NAME_MAX", Const, 0, ""},
+		{"NETLINK_ADD_MEMBERSHIP", Const, 0, ""},
+		{"NETLINK_AUDIT", Const, 0, ""},
+		{"NETLINK_BROADCAST_ERROR", Const, 0, ""},
+		{"NETLINK_CONNECTOR", Const, 0, ""},
+		{"NETLINK_DNRTMSG", Const, 0, ""},
+		{"NETLINK_DROP_MEMBERSHIP", Const, 0, ""},
+		{"NETLINK_ECRYPTFS", Const, 0, ""},
+		{"NETLINK_FIB_LOOKUP", Const, 0, ""},
+		{"NETLINK_FIREWALL", Const, 0, ""},
+		{"NETLINK_GENERIC", Const, 0, ""},
+		{"NETLINK_INET_DIAG", Const, 0, ""},
+		{"NETLINK_IP6_FW", Const, 0, ""},
+		{"NETLINK_ISCSI", Const, 0, ""},
+		{"NETLINK_KOBJECT_UEVENT", Const, 0, ""},
+		{"NETLINK_NETFILTER", Const, 0, ""},
+		{"NETLINK_NFLOG", Const, 0, ""},
+		{"NETLINK_NO_ENOBUFS", Const, 0, ""},
+		{"NETLINK_PKTINFO", Const, 0, ""},
+		{"NETLINK_RDMA", Const, 0, ""},
+		{"NETLINK_ROUTE", Const, 0, ""},
+		{"NETLINK_SCSITRANSPORT", Const, 0, ""},
+		{"NETLINK_SELINUX", Const, 0, ""},
+		{"NETLINK_UNUSED", Const, 0, ""},
+		{"NETLINK_USERSOCK", Const, 0, ""},
+		{"NETLINK_XFRM", Const, 0, ""},
+		{"NET_RT_DUMP", Const, 0, ""},
+		{"NET_RT_DUMP2", Const, 0, ""},
+		{"NET_RT_FLAGS", Const, 0, ""},
+		{"NET_RT_IFLIST", Const, 0, ""},
+		{"NET_RT_IFLIST2", Const, 0, ""},
+		{"NET_RT_IFLISTL", Const, 1, ""},
+		{"NET_RT_IFMALIST", Const, 0, ""},
+		{"NET_RT_MAXID", Const, 0, ""},
+		{"NET_RT_OIFLIST", Const, 1, ""},
+		{"NET_RT_OOIFLIST", Const, 1, ""},
+		{"NET_RT_STAT", Const, 0, ""},
+		{"NET_RT_STATS", Const, 1, ""},
+		{"NET_RT_TABLE", Const, 1, ""},
+		{"NET_RT_TRASH", Const, 0, ""},
+		{"NLA_ALIGNTO", Const, 0, ""},
+		{"NLA_F_NESTED", Const, 0, ""},
+		{"NLA_F_NET_BYTEORDER", Const, 0, ""},
+		{"NLA_HDRLEN", Const, 0, ""},
+		{"NLMSG_ALIGNTO", Const, 0, ""},
+		{"NLMSG_DONE", Const, 0, ""},
+		{"NLMSG_ERROR", Const, 0, ""},
+		{"NLMSG_HDRLEN", Const, 0, ""},
+		{"NLMSG_MIN_TYPE", Const, 0, ""},
+		{"NLMSG_NOOP", Const, 0, ""},
+		{"NLMSG_OVERRUN", Const, 0, ""},
+		{"NLM_F_ACK", Const, 0, ""},
+		{"NLM_F_APPEND", Const, 0, ""},
+		{"NLM_F_ATOMIC", Const, 0, ""},
+		{"NLM_F_CREATE", Const, 0, ""},
+		{"NLM_F_DUMP", Const, 0, ""},
+		{"NLM_F_ECHO", Const, 0, ""},
+		{"NLM_F_EXCL", Const, 0, ""},
+		{"NLM_F_MATCH", Const, 0, ""},
+		{"NLM_F_MULTI", Const, 0, ""},
+		{"NLM_F_REPLACE", Const, 0, ""},
+		{"NLM_F_REQUEST", Const, 0, ""},
+		{"NLM_F_ROOT", Const, 0, ""},
+		{"NOFLSH", Const, 0, ""},
+		{"NOTE_ABSOLUTE", Const, 0, ""},
+		{"NOTE_ATTRIB", Const, 0, ""},
+		{"NOTE_BACKGROUND", Const, 16, ""},
+		{"NOTE_CHILD", Const, 0, ""},
+		{"NOTE_CRITICAL", Const, 16, ""},
+		{"NOTE_DELETE", Const, 0, ""},
+		{"NOTE_EOF", Const, 1, ""},
+		{"NOTE_EXEC", Const, 0, ""},
+		{"NOTE_EXIT", Const, 0, ""},
+		{"NOTE_EXITSTATUS", Const, 0, ""},
+		{"NOTE_EXIT_CSERROR", Const, 16, ""},
+		{"NOTE_EXIT_DECRYPTFAIL", Const, 16, ""},
+		{"NOTE_EXIT_DETAIL", Const, 16, ""},
+		{"NOTE_EXIT_DETAIL_MASK", Const, 16, ""},
+		{"NOTE_EXIT_MEMORY", Const, 16, ""},
+		{"NOTE_EXIT_REPARENTED", Const, 16, ""},
+		{"NOTE_EXTEND", Const, 0, ""},
+		{"NOTE_FFAND", Const, 0, ""},
+		{"NOTE_FFCOPY", Const, 0, ""},
+		{"NOTE_FFCTRLMASK", Const, 0, ""},
+		{"NOTE_FFLAGSMASK", Const, 0, ""},
+		{"NOTE_FFNOP", Const, 0, ""},
+		{"NOTE_FFOR", Const, 0, ""},
+		{"NOTE_FORK", Const, 0, ""},
+		{"NOTE_LEEWAY", Const, 16, ""},
+		{"NOTE_LINK", Const, 0, ""},
+		{"NOTE_LOWAT", Const, 0, ""},
+		{"NOTE_NONE", Const, 0, ""},
+		{"NOTE_NSECONDS", Const, 0, ""},
+		{"NOTE_PCTRLMASK", Const, 0, ""},
+		{"NOTE_PDATAMASK", Const, 0, ""},
+		{"NOTE_REAP", Const, 0, ""},
+		{"NOTE_RENAME", Const, 0, ""},
+		{"NOTE_RESOURCEEND", Const, 0, ""},
+		{"NOTE_REVOKE", Const, 0, ""},
+		{"NOTE_SECONDS", Const, 0, ""},
+		{"NOTE_SIGNAL", Const, 0, ""},
+		{"NOTE_TRACK", Const, 0, ""},
+		{"NOTE_TRACKERR", Const, 0, ""},
+		{"NOTE_TRIGGER", Const, 0, ""},
+		{"NOTE_TRUNCATE", Const, 1, ""},
+		{"NOTE_USECONDS", Const, 0, ""},
+		{"NOTE_VM_ERROR", Const, 0, ""},
+		{"NOTE_VM_PRESSURE", Const, 0, ""},
+		{"NOTE_VM_PRESSURE_SUDDEN_TERMINATE", Const, 0, ""},
+		{"NOTE_VM_PRESSURE_TERMINATE", Const, 0, ""},
+		{"NOTE_WRITE", Const, 0, ""},
+		{"NameCanonical", Const, 0, ""},
+		{"NameCanonicalEx", Const, 0, ""},
+		{"NameDisplay", Const, 0, ""},
+		{"NameDnsDomain", Const, 0, ""},
+		{"NameFullyQualifiedDN", Const, 0, ""},
+		{"NameSamCompatible", Const, 0, ""},
+		{"NameServicePrincipal", Const, 0, ""},
+		{"NameUniqueId", Const, 0, ""},
+		{"NameUnknown", Const, 0, ""},
+		{"NameUserPrincipal", Const, 0, ""},
+		{"Nanosleep", Func, 0, "func(time *Timespec, leftover *Timespec) (err error)"},
+		{"NetApiBufferFree", Func, 0, ""},
+		{"NetGetJoinInformation", Func, 2, ""},
+		{"NetSetupDomainName", Const, 2, ""},
+		{"NetSetupUnjoined", Const, 2, ""},
+		{"NetSetupUnknownStatus", Const, 2, ""},
+		{"NetSetupWorkgroupName", Const, 2, ""},
+		{"NetUserGetInfo", Func, 0, ""},
+		{"NetlinkMessage", Type, 0, ""},
+		{"NetlinkMessage.Data", Field, 0, ""},
+		{"NetlinkMessage.Header", Field, 0, ""},
+		{"NetlinkRIB", Func, 0, "func(proto int, family int) ([]byte, error)"},
+		{"NetlinkRouteAttr", Type, 0, ""},
+		{"NetlinkRouteAttr.Attr", Field, 0, ""},
+		{"NetlinkRouteAttr.Value", Field, 0, ""},
+		{"NetlinkRouteRequest", Type, 0, ""},
+		{"NetlinkRouteRequest.Data", Field, 0, ""},
+		{"NetlinkRouteRequest.Header", Field, 0, ""},
+		{"NewCallback", Func, 0, ""},
+		{"NewCallbackCDecl", Func, 3, ""},
+		{"NewLazyDLL", Func, 0, ""},
+		{"NlAttr", Type, 0, ""},
+		{"NlAttr.Len", Field, 0, ""},
+		{"NlAttr.Type", Field, 0, ""},
+		{"NlMsgerr", Type, 0, ""},
+		{"NlMsgerr.Error", Field, 0, ""},
+		{"NlMsgerr.Msg", Field, 0, ""},
+		{"NlMsghdr", Type, 0, ""},
+		{"NlMsghdr.Flags", Field, 0, ""},
+		{"NlMsghdr.Len", Field, 0, ""},
+		{"NlMsghdr.Pid", Field, 0, ""},
+		{"NlMsghdr.Seq", Field, 0, ""},
+		{"NlMsghdr.Type", Field, 0, ""},
+		{"NsecToFiletime", Func, 0, ""},
+		{"NsecToTimespec", Func, 0, "func(nsec int64) Timespec"},
+		{"NsecToTimeval", Func, 0, "func(nsec int64) Timeval"},
+		{"Ntohs", Func, 0, ""},
+		{"OCRNL", Const, 0, ""},
+		{"OFDEL", Const, 0, ""},
+		{"OFILL", Const, 0, ""},
+		{"OFIOGETBMAP", Const, 1, ""},
+		{"OID_PKIX_KP_SERVER_AUTH", Var, 0, ""},
+		{"OID_SERVER_GATED_CRYPTO", Var, 0, ""},
+		{"OID_SGC_NETSCAPE", Var, 0, ""},
+		{"OLCUC", Const, 0, ""},
+		{"ONLCR", Const, 0, ""},
+		{"ONLRET", Const, 0, ""},
+		{"ONOCR", Const, 0, ""},
+		{"ONOEOT", Const, 1, ""},
+		{"OPEN_ALWAYS", Const, 0, ""},
+		{"OPEN_EXISTING", Const, 0, ""},
+		{"OPOST", Const, 0, ""},
+		{"O_ACCMODE", Const, 0, ""},
+		{"O_ALERT", Const, 0, ""},
+		{"O_ALT_IO", Const, 1, ""},
+		{"O_APPEND", Const, 0, ""},
+		{"O_ASYNC", Const, 0, ""},
+		{"O_CLOEXEC", Const, 0, ""},
+		{"O_CREAT", Const, 0, ""},
+		{"O_DIRECT", Const, 0, ""},
+		{"O_DIRECTORY", Const, 0, ""},
+		{"O_DP_GETRAWENCRYPTED", Const, 16, ""},
+		{"O_DSYNC", Const, 0, ""},
+		{"O_EVTONLY", Const, 0, ""},
+		{"O_EXCL", Const, 0, ""},
+		{"O_EXEC", Const, 0, ""},
+		{"O_EXLOCK", Const, 0, ""},
+		{"O_FSYNC", Const, 0, ""},
+		{"O_LARGEFILE", Const, 0, ""},
+		{"O_NDELAY", Const, 0, ""},
+		{"O_NOATIME", Const, 0, ""},
+		{"O_NOCTTY", Const, 0, ""},
+		{"O_NOFOLLOW", Const, 0, ""},
+		{"O_NONBLOCK", Const, 0, ""},
+		{"O_NOSIGPIPE", Const, 1, ""},
+		{"O_POPUP", Const, 0, ""},
+		{"O_RDONLY", Const, 0, ""},
+		{"O_RDWR", Const, 0, ""},
+		{"O_RSYNC", Const, 0, ""},
+		{"O_SHLOCK", Const, 0, ""},
+		{"O_SYMLINK", Const, 0, ""},
+		{"O_SYNC", Const, 0, ""},
+		{"O_TRUNC", Const, 0, ""},
+		{"O_TTY_INIT", Const, 0, ""},
+		{"O_WRONLY", Const, 0, ""},
+		{"Open", Func, 0, "func(path string, mode int, perm uint32) (fd int, err error)"},
+		{"OpenCurrentProcessToken", Func, 0, ""},
+		{"OpenProcess", Func, 0, ""},
+		{"OpenProcessToken", Func, 0, ""},
+		{"Openat", Func, 0, "func(dirfd int, path string, flags int, mode uint32) (fd int, err error)"},
+		{"Overlapped", Type, 0, ""},
+		{"Overlapped.HEvent", Field, 0, ""},
+		{"Overlapped.Internal", Field, 0, ""},
+		{"Overlapped.InternalHigh", Field, 0, ""},
+		{"Overlapped.Offset", Field, 0, ""},
+		{"Overlapped.OffsetHigh", Field, 0, ""},
+		{"PACKET_ADD_MEMBERSHIP", Const, 0, ""},
+		{"PACKET_BROADCAST", Const, 0, ""},
+		{"PACKET_DROP_MEMBERSHIP", Const, 0, ""},
+		{"PACKET_FASTROUTE", Const, 0, ""},
+		{"PACKET_HOST", Const, 0, ""},
+		{"PACKET_LOOPBACK", Const, 0, ""},
+		{"PACKET_MR_ALLMULTI", Const, 0, ""},
+		{"PACKET_MR_MULTICAST", Const, 0, ""},
+		{"PACKET_MR_PROMISC", Const, 0, ""},
+		{"PACKET_MULTICAST", Const, 0, ""},
+		{"PACKET_OTHERHOST", Const, 0, ""},
+		{"PACKET_OUTGOING", Const, 0, ""},
+		{"PACKET_RECV_OUTPUT", Const, 0, ""},
+		{"PACKET_RX_RING", Const, 0, ""},
+		{"PACKET_STATISTICS", Const, 0, ""},
+		{"PAGE_EXECUTE_READ", Const, 0, ""},
+		{"PAGE_EXECUTE_READWRITE", Const, 0, ""},
+		{"PAGE_EXECUTE_WRITECOPY", Const, 0, ""},
+		{"PAGE_READONLY", Const, 0, ""},
+		{"PAGE_READWRITE", Const, 0, ""},
+		{"PAGE_WRITECOPY", Const, 0, ""},
+		{"PARENB", Const, 0, ""},
+		{"PARMRK", Const, 0, ""},
+		{"PARODD", Const, 0, ""},
+		{"PENDIN", Const, 0, ""},
+		{"PFL_HIDDEN", Const, 2, ""},
+		{"PFL_MATCHES_PROTOCOL_ZERO", Const, 2, ""},
+		{"PFL_MULTIPLE_PROTO_ENTRIES", Const, 2, ""},
+		{"PFL_NETWORKDIRECT_PROVIDER", Const, 2, ""},
+		{"PFL_RECOMMENDED_PROTO_ENTRY", Const, 2, ""},
+		{"PF_FLUSH", Const, 1, ""},
+		{"PKCS_7_ASN_ENCODING", Const, 0, ""},
+		{"PMC5_PIPELINE_FLUSH", Const, 1, ""},
+		{"PRIO_PGRP", Const, 2, ""},
+		{"PRIO_PROCESS", Const, 2, ""},
+		{"PRIO_USER", Const, 2, ""},
+		{"PRI_IOFLUSH", Const, 1, ""},
+		{"PROCESS_QUERY_INFORMATION", Const, 0, ""},
+		{"PROCESS_TERMINATE", Const, 2, ""},
+		{"PROT_EXEC", Const, 0, ""},
+		{"PROT_GROWSDOWN", Const, 0, ""},
+		{"PROT_GROWSUP", Const, 0, ""},
+		{"PROT_NONE", Const, 0, ""},
+		{"PROT_READ", Const, 0, ""},
+		{"PROT_WRITE", Const, 0, ""},
+		{"PROV_DH_SCHANNEL", Const, 0, ""},
+		{"PROV_DSS", Const, 0, ""},
+		{"PROV_DSS_DH", Const, 0, ""},
+		{"PROV_EC_ECDSA_FULL", Const, 0, ""},
+		{"PROV_EC_ECDSA_SIG", Const, 0, ""},
+		{"PROV_EC_ECNRA_FULL", Const, 0, ""},
+		{"PROV_EC_ECNRA_SIG", Const, 0, ""},
+		{"PROV_FORTEZZA", Const, 0, ""},
+		{"PROV_INTEL_SEC", Const, 0, ""},
+		{"PROV_MS_EXCHANGE", Const, 0, ""},
+		{"PROV_REPLACE_OWF", Const, 0, ""},
+		{"PROV_RNG", Const, 0, ""},
+		{"PROV_RSA_AES", Const, 0, ""},
+		{"PROV_RSA_FULL", Const, 0, ""},
+		{"PROV_RSA_SCHANNEL", Const, 0, ""},
+		{"PROV_RSA_SIG", Const, 0, ""},
+		{"PROV_SPYRUS_LYNKS", Const, 0, ""},
+		{"PROV_SSL", Const, 0, ""},
+		{"PR_CAPBSET_DROP", Const, 0, ""},
+		{"PR_CAPBSET_READ", Const, 0, ""},
+		{"PR_CLEAR_SECCOMP_FILTER", Const, 0, ""},
+		{"PR_ENDIAN_BIG", Const, 0, ""},
+		{"PR_ENDIAN_LITTLE", Const, 0, ""},
+		{"PR_ENDIAN_PPC_LITTLE", Const, 0, ""},
+		{"PR_FPEMU_NOPRINT", Const, 0, ""},
+		{"PR_FPEMU_SIGFPE", Const, 0, ""},
+		{"PR_FP_EXC_ASYNC", Const, 0, ""},
+		{"PR_FP_EXC_DISABLED", Const, 0, ""},
+		{"PR_FP_EXC_DIV", Const, 0, ""},
+		{"PR_FP_EXC_INV", Const, 0, ""},
+		{"PR_FP_EXC_NONRECOV", Const, 0, ""},
+		{"PR_FP_EXC_OVF", Const, 0, ""},
+		{"PR_FP_EXC_PRECISE", Const, 0, ""},
+		{"PR_FP_EXC_RES", Const, 0, ""},
+		{"PR_FP_EXC_SW_ENABLE", Const, 0, ""},
+		{"PR_FP_EXC_UND", Const, 0, ""},
+		{"PR_GET_DUMPABLE", Const, 0, ""},
+		{"PR_GET_ENDIAN", Const, 0, ""},
+		{"PR_GET_FPEMU", Const, 0, ""},
+		{"PR_GET_FPEXC", Const, 0, ""},
+		{"PR_GET_KEEPCAPS", Const, 0, ""},
+		{"PR_GET_NAME", Const, 0, ""},
+		{"PR_GET_PDEATHSIG", Const, 0, ""},
+		{"PR_GET_SECCOMP", Const, 0, ""},
+		{"PR_GET_SECCOMP_FILTER", Const, 0, ""},
+		{"PR_GET_SECUREBITS", Const, 0, ""},
+		{"PR_GET_TIMERSLACK", Const, 0, ""},
+		{"PR_GET_TIMING", Const, 0, ""},
+		{"PR_GET_TSC", Const, 0, ""},
+		{"PR_GET_UNALIGN", Const, 0, ""},
+		{"PR_MCE_KILL", Const, 0, ""},
+		{"PR_MCE_KILL_CLEAR", Const, 0, ""},
+		{"PR_MCE_KILL_DEFAULT", Const, 0, ""},
+		{"PR_MCE_KILL_EARLY", Const, 0, ""},
+		{"PR_MCE_KILL_GET", Const, 0, ""},
+		{"PR_MCE_KILL_LATE", Const, 0, ""},
+		{"PR_MCE_KILL_SET", Const, 0, ""},
+		{"PR_SECCOMP_FILTER_EVENT", Const, 0, ""},
+		{"PR_SECCOMP_FILTER_SYSCALL", Const, 0, ""},
+		{"PR_SET_DUMPABLE", Const, 0, ""},
+		{"PR_SET_ENDIAN", Const, 0, ""},
+		{"PR_SET_FPEMU", Const, 0, ""},
+		{"PR_SET_FPEXC", Const, 0, ""},
+		{"PR_SET_KEEPCAPS", Const, 0, ""},
+		{"PR_SET_NAME", Const, 0, ""},
+		{"PR_SET_PDEATHSIG", Const, 0, ""},
+		{"PR_SET_PTRACER", Const, 0, ""},
+		{"PR_SET_SECCOMP", Const, 0, ""},
+		{"PR_SET_SECCOMP_FILTER", Const, 0, ""},
+		{"PR_SET_SECUREBITS", Const, 0, ""},
+		{"PR_SET_TIMERSLACK", Const, 0, ""},
+		{"PR_SET_TIMING", Const, 0, ""},
+		{"PR_SET_TSC", Const, 0, ""},
+		{"PR_SET_UNALIGN", Const, 0, ""},
+		{"PR_TASK_PERF_EVENTS_DISABLE", Const, 0, ""},
+		{"PR_TASK_PERF_EVENTS_ENABLE", Const, 0, ""},
+		{"PR_TIMING_STATISTICAL", Const, 0, ""},
+		{"PR_TIMING_TIMESTAMP", Const, 0, ""},
+		{"PR_TSC_ENABLE", Const, 0, ""},
+		{"PR_TSC_SIGSEGV", Const, 0, ""},
+		{"PR_UNALIGN_NOPRINT", Const, 0, ""},
+		{"PR_UNALIGN_SIGBUS", Const, 0, ""},
+		{"PTRACE_ARCH_PRCTL", Const, 0, ""},
+		{"PTRACE_ATTACH", Const, 0, ""},
+		{"PTRACE_CONT", Const, 0, ""},
+		{"PTRACE_DETACH", Const, 0, ""},
+		{"PTRACE_EVENT_CLONE", Const, 0, ""},
+		{"PTRACE_EVENT_EXEC", Const, 0, ""},
+		{"PTRACE_EVENT_EXIT", Const, 0, ""},
+		{"PTRACE_EVENT_FORK", Const, 0, ""},
+		{"PTRACE_EVENT_VFORK", Const, 0, ""},
+		{"PTRACE_EVENT_VFORK_DONE", Const, 0, ""},
+		{"PTRACE_GETCRUNCHREGS", Const, 0, ""},
+		{"PTRACE_GETEVENTMSG", Const, 0, ""},
+		{"PTRACE_GETFPREGS", Const, 0, ""},
+		{"PTRACE_GETFPXREGS", Const, 0, ""},
+		{"PTRACE_GETHBPREGS", Const, 0, ""},
+		{"PTRACE_GETREGS", Const, 0, ""},
+		{"PTRACE_GETREGSET", Const, 0, ""},
+		{"PTRACE_GETSIGINFO", Const, 0, ""},
+		{"PTRACE_GETVFPREGS", Const, 0, ""},
+		{"PTRACE_GETWMMXREGS", Const, 0, ""},
+		{"PTRACE_GET_THREAD_AREA", Const, 0, ""},
+		{"PTRACE_KILL", Const, 0, ""},
+		{"PTRACE_OLDSETOPTIONS", Const, 0, ""},
+		{"PTRACE_O_MASK", Const, 0, ""},
+		{"PTRACE_O_TRACECLONE", Const, 0, ""},
+		{"PTRACE_O_TRACEEXEC", Const, 0, ""},
+		{"PTRACE_O_TRACEEXIT", Const, 0, ""},
+		{"PTRACE_O_TRACEFORK", Const, 0, ""},
+		{"PTRACE_O_TRACESYSGOOD", Const, 0, ""},
+		{"PTRACE_O_TRACEVFORK", Const, 0, ""},
+		{"PTRACE_O_TRACEVFORKDONE", Const, 0, ""},
+		{"PTRACE_PEEKDATA", Const, 0, ""},
+		{"PTRACE_PEEKTEXT", Const, 0, ""},
+		{"PTRACE_PEEKUSR", Const, 0, ""},
+		{"PTRACE_POKEDATA", Const, 0, ""},
+		{"PTRACE_POKETEXT", Const, 0, ""},
+		{"PTRACE_POKEUSR", Const, 0, ""},
+		{"PTRACE_SETCRUNCHREGS", Const, 0, ""},
+		{"PTRACE_SETFPREGS", Const, 0, ""},
+		{"PTRACE_SETFPXREGS", Const, 0, ""},
+		{"PTRACE_SETHBPREGS", Const, 0, ""},
+		{"PTRACE_SETOPTIONS", Const, 0, ""},
+		{"PTRACE_SETREGS", Const, 0, ""},
+		{"PTRACE_SETREGSET", Const, 0, ""},
+		{"PTRACE_SETSIGINFO", Const, 0, ""},
+		{"PTRACE_SETVFPREGS", Const, 0, ""},
+		{"PTRACE_SETWMMXREGS", Const, 0, ""},
+		{"PTRACE_SET_SYSCALL", Const, 0, ""},
+		{"PTRACE_SET_THREAD_AREA", Const, 0, ""},
+		{"PTRACE_SINGLEBLOCK", Const, 0, ""},
+		{"PTRACE_SINGLESTEP", Const, 0, ""},
+		{"PTRACE_SYSCALL", Const, 0, ""},
+		{"PTRACE_SYSEMU", Const, 0, ""},
+		{"PTRACE_SYSEMU_SINGLESTEP", Const, 0, ""},
+		{"PTRACE_TRACEME", Const, 0, ""},
+		{"PT_ATTACH", Const, 0, ""},
+		{"PT_ATTACHEXC", Const, 0, ""},
+		{"PT_CONTINUE", Const, 0, ""},
+		{"PT_DATA_ADDR", Const, 0, ""},
+		{"PT_DENY_ATTACH", Const, 0, ""},
+		{"PT_DETACH", Const, 0, ""},
+		{"PT_FIRSTMACH", Const, 0, ""},
+		{"PT_FORCEQUOTA", Const, 0, ""},
+		{"PT_KILL", Const, 0, ""},
+		{"PT_MASK", Const, 1, ""},
+		{"PT_READ_D", Const, 0, ""},
+		{"PT_READ_I", Const, 0, ""},
+		{"PT_READ_U", Const, 0, ""},
+		{"PT_SIGEXC", Const, 0, ""},
+		{"PT_STEP", Const, 0, ""},
+		{"PT_TEXT_ADDR", Const, 0, ""},
+		{"PT_TEXT_END_ADDR", Const, 0, ""},
+		{"PT_THUPDATE", Const, 0, ""},
+		{"PT_TRACE_ME", Const, 0, ""},
+		{"PT_WRITE_D", Const, 0, ""},
+		{"PT_WRITE_I", Const, 0, ""},
+		{"PT_WRITE_U", Const, 0, ""},
+		{"ParseDirent", Func, 0, "func(buf []byte, max int, names []string) (consumed int, count int, newnames []string)"},
+		{"ParseNetlinkMessage", Func, 0, "func(b []byte) ([]NetlinkMessage, error)"},
+		{"ParseNetlinkRouteAttr", Func, 0, "func(m *NetlinkMessage) ([]NetlinkRouteAttr, error)"},
+		{"ParseRoutingMessage", Func, 0, ""},
+		{"ParseRoutingSockaddr", Func, 0, ""},
+		{"ParseSocketControlMessage", Func, 0, "func(b []byte) ([]SocketControlMessage, error)"},
+		{"ParseUnixCredentials", Func, 0, "func(m *SocketControlMessage) (*Ucred, error)"},
+		{"ParseUnixRights", Func, 0, "func(m *SocketControlMessage) ([]int, error)"},
+		{"PathMax", Const, 0, ""},
+		{"Pathconf", Func, 0, ""},
+		{"Pause", Func, 0, "func() (err error)"},
+		{"Pipe", Func, 0, "func(p []int) error"},
+		{"Pipe2", Func, 1, "func(p []int, flags int) error"},
+		{"PivotRoot", Func, 0, "func(newroot string, putold string) (err error)"},
+		{"Pointer", Type, 11, ""},
+		{"PostQueuedCompletionStatus", Func, 0, ""},
+		{"Pread", Func, 0, "func(fd int, p []byte, offset int64) (n int, err error)"},
+		{"Proc", Type, 0, ""},
+		{"Proc.Dll", Field, 0, ""},
+		{"Proc.Name", Field, 0, ""},
+		{"ProcAttr", Type, 0, ""},
+		{"ProcAttr.Dir", Field, 0, ""},
+		{"ProcAttr.Env", Field, 0, ""},
+		{"ProcAttr.Files", Field, 0, ""},
+		{"ProcAttr.Sys", Field, 0, ""},
+		{"Process32First", Func, 4, ""},
+		{"Process32Next", Func, 4, ""},
+		{"ProcessEntry32", Type, 4, ""},
+		{"ProcessEntry32.DefaultHeapID", Field, 4, ""},
+		{"ProcessEntry32.ExeFile", Field, 4, ""},
+		{"ProcessEntry32.Flags", Field, 4, ""},
+		{"ProcessEntry32.ModuleID", Field, 4, ""},
+		{"ProcessEntry32.ParentProcessID", Field, 4, ""},
+		{"ProcessEntry32.PriClassBase", Field, 4, ""},
+		{"ProcessEntry32.ProcessID", Field, 4, ""},
+		{"ProcessEntry32.Size", Field, 4, ""},
+		{"ProcessEntry32.Threads", Field, 4, ""},
+		{"ProcessEntry32.Usage", Field, 4, ""},
+		{"ProcessInformation", Type, 0, ""},
+		{"ProcessInformation.Process", Field, 0, ""},
+		{"ProcessInformation.ProcessId", Field, 0, ""},
+		{"ProcessInformation.Thread", Field, 0, ""},
+		{"ProcessInformation.ThreadId", Field, 0, ""},
+		{"Protoent", Type, 0, ""},
+		{"Protoent.Aliases", Field, 0, ""},
+		{"Protoent.Name", Field, 0, ""},
+		{"Protoent.Proto", Field, 0, ""},
+		{"PtraceAttach", Func, 0, "func(pid int) (err error)"},
+		{"PtraceCont", Func, 0, "func(pid int, signal int) (err error)"},
+		{"PtraceDetach", Func, 0, "func(pid int) (err error)"},
+		{"PtraceGetEventMsg", Func, 0, "func(pid int) (msg uint, err error)"},
+		{"PtraceGetRegs", Func, 0, "func(pid int, regsout *PtraceRegs) (err error)"},
+		{"PtracePeekData", Func, 0, "func(pid int, addr uintptr, out []byte) (count int, err error)"},
+		{"PtracePeekText", Func, 0, "func(pid int, addr uintptr, out []byte) (count int, err error)"},
+		{"PtracePokeData", Func, 0, "func(pid int, addr uintptr, data []byte) (count int, err error)"},
+		{"PtracePokeText", Func, 0, "func(pid int, addr uintptr, data []byte) (count int, err error)"},
+		{"PtraceRegs", Type, 0, ""},
+		{"PtraceRegs.Cs", Field, 0, ""},
+		{"PtraceRegs.Ds", Field, 0, ""},
+		{"PtraceRegs.Eax", Field, 0, ""},
+		{"PtraceRegs.Ebp", Field, 0, ""},
+		{"PtraceRegs.Ebx", Field, 0, ""},
+		{"PtraceRegs.Ecx", Field, 0, ""},
+		{"PtraceRegs.Edi", Field, 0, ""},
+		{"PtraceRegs.Edx", Field, 0, ""},
+		{"PtraceRegs.Eflags", Field, 0, ""},
+		{"PtraceRegs.Eip", Field, 0, ""},
+		{"PtraceRegs.Es", Field, 0, ""},
+		{"PtraceRegs.Esi", Field, 0, ""},
+		{"PtraceRegs.Esp", Field, 0, ""},
+		{"PtraceRegs.Fs", Field, 0, ""},
+		{"PtraceRegs.Fs_base", Field, 0, ""},
+		{"PtraceRegs.Gs", Field, 0, ""},
+		{"PtraceRegs.Gs_base", Field, 0, ""},
+		{"PtraceRegs.Orig_eax", Field, 0, ""},
+		{"PtraceRegs.Orig_rax", Field, 0, ""},
+		{"PtraceRegs.R10", Field, 0, ""},
+		{"PtraceRegs.R11", Field, 0, ""},
+		{"PtraceRegs.R12", Field, 0, ""},
+		{"PtraceRegs.R13", Field, 0, ""},
+		{"PtraceRegs.R14", Field, 0, ""},
+		{"PtraceRegs.R15", Field, 0, ""},
+		{"PtraceRegs.R8", Field, 0, ""},
+		{"PtraceRegs.R9", Field, 0, ""},
+		{"PtraceRegs.Rax", Field, 0, ""},
+		{"PtraceRegs.Rbp", Field, 0, ""},
+		{"PtraceRegs.Rbx", Field, 0, ""},
+		{"PtraceRegs.Rcx", Field, 0, ""},
+		{"PtraceRegs.Rdi", Field, 0, ""},
+		{"PtraceRegs.Rdx", Field, 0, ""},
+		{"PtraceRegs.Rip", Field, 0, ""},
+		{"PtraceRegs.Rsi", Field, 0, ""},
+		{"PtraceRegs.Rsp", Field, 0, ""},
+		{"PtraceRegs.Ss", Field, 0, ""},
+		{"PtraceRegs.Uregs", Field, 0, ""},
+		{"PtraceRegs.Xcs", Field, 0, ""},
+		{"PtraceRegs.Xds", Field, 0, ""},
+		{"PtraceRegs.Xes", Field, 0, ""},
+		{"PtraceRegs.Xfs", Field, 0, ""},
+		{"PtraceRegs.Xgs", Field, 0, ""},
+		{"PtraceRegs.Xss", Field, 0, ""},
+		{"PtraceSetOptions", Func, 0, "func(pid int, options int) (err error)"},
+		{"PtraceSetRegs", Func, 0, "func(pid int, regs *PtraceRegs) (err error)"},
+		{"PtraceSingleStep", Func, 0, "func(pid int) (err error)"},
+		{"PtraceSyscall", Func, 1, "func(pid int, signal int) (err error)"},
+		{"Pwrite", Func, 0, "func(fd int, p []byte, offset int64) (n int, err error)"},
+		{"REG_BINARY", Const, 0, ""},
+		{"REG_DWORD", Const, 0, ""},
+		{"REG_DWORD_BIG_ENDIAN", Const, 0, ""},
+		{"REG_DWORD_LITTLE_ENDIAN", Const, 0, ""},
+		{"REG_EXPAND_SZ", Const, 0, ""},
+		{"REG_FULL_RESOURCE_DESCRIPTOR", Const, 0, ""},
+		{"REG_LINK", Const, 0, ""},
+		{"REG_MULTI_SZ", Const, 0, ""},
+		{"REG_NONE", Const, 0, ""},
+		{"REG_QWORD", Const, 0, ""},
+		{"REG_QWORD_LITTLE_ENDIAN", Const, 0, ""},
+		{"REG_RESOURCE_LIST", Const, 0, ""},
+		{"REG_RESOURCE_REQUIREMENTS_LIST", Const, 0, ""},
+		{"REG_SZ", Const, 0, ""},
+		{"RLIMIT_AS", Const, 0, ""},
+		{"RLIMIT_CORE", Const, 0, ""},
+		{"RLIMIT_CPU", Const, 0, ""},
+		{"RLIMIT_CPU_USAGE_MONITOR", Const, 16, ""},
+		{"RLIMIT_DATA", Const, 0, ""},
+		{"RLIMIT_FSIZE", Const, 0, ""},
+		{"RLIMIT_NOFILE", Const, 0, ""},
+		{"RLIMIT_STACK", Const, 0, ""},
+		{"RLIM_INFINITY", Const, 0, ""},
+		{"RTAX_ADVMSS", Const, 0, ""},
+		{"RTAX_AUTHOR", Const, 0, ""},
+		{"RTAX_BRD", Const, 0, ""},
+		{"RTAX_CWND", Const, 0, ""},
+		{"RTAX_DST", Const, 0, ""},
+		{"RTAX_FEATURES", Const, 0, ""},
+		{"RTAX_FEATURE_ALLFRAG", Const, 0, ""},
+		{"RTAX_FEATURE_ECN", Const, 0, ""},
+		{"RTAX_FEATURE_SACK", Const, 0, ""},
+		{"RTAX_FEATURE_TIMESTAMP", Const, 0, ""},
+		{"RTAX_GATEWAY", Const, 0, ""},
+		{"RTAX_GENMASK", Const, 0, ""},
+		{"RTAX_HOPLIMIT", Const, 0, ""},
+		{"RTAX_IFA", Const, 0, ""},
+		{"RTAX_IFP", Const, 0, ""},
+		{"RTAX_INITCWND", Const, 0, ""},
+		{"RTAX_INITRWND", Const, 0, ""},
+		{"RTAX_LABEL", Const, 1, ""},
+		{"RTAX_LOCK", Const, 0, ""},
+		{"RTAX_MAX", Const, 0, ""},
+		{"RTAX_MTU", Const, 0, ""},
+		{"RTAX_NETMASK", Const, 0, ""},
+		{"RTAX_REORDERING", Const, 0, ""},
+		{"RTAX_RTO_MIN", Const, 0, ""},
+		{"RTAX_RTT", Const, 0, ""},
+		{"RTAX_RTTVAR", Const, 0, ""},
+		{"RTAX_SRC", Const, 1, ""},
+		{"RTAX_SRCMASK", Const, 1, ""},
+		{"RTAX_SSTHRESH", Const, 0, ""},
+		{"RTAX_TAG", Const, 1, ""},
+		{"RTAX_UNSPEC", Const, 0, ""},
+		{"RTAX_WINDOW", Const, 0, ""},
+		{"RTA_ALIGNTO", Const, 0, ""},
+		{"RTA_AUTHOR", Const, 0, ""},
+		{"RTA_BRD", Const, 0, ""},
+		{"RTA_CACHEINFO", Const, 0, ""},
+		{"RTA_DST", Const, 0, ""},
+		{"RTA_FLOW", Const, 0, ""},
+		{"RTA_GATEWAY", Const, 0, ""},
+		{"RTA_GENMASK", Const, 0, ""},
+		{"RTA_IFA", Const, 0, ""},
+		{"RTA_IFP", Const, 0, ""},
+		{"RTA_IIF", Const, 0, ""},
+		{"RTA_LABEL", Const, 1, ""},
+		{"RTA_MAX", Const, 0, ""},
+		{"RTA_METRICS", Const, 0, ""},
+		{"RTA_MULTIPATH", Const, 0, ""},
+		{"RTA_NETMASK", Const, 0, ""},
+		{"RTA_OIF", Const, 0, ""},
+		{"RTA_PREFSRC", Const, 0, ""},
+		{"RTA_PRIORITY", Const, 0, ""},
+		{"RTA_SRC", Const, 0, ""},
+		{"RTA_SRCMASK", Const, 1, ""},
+		{"RTA_TABLE", Const, 0, ""},
+		{"RTA_TAG", Const, 1, ""},
+		{"RTA_UNSPEC", Const, 0, ""},
+		{"RTCF_DIRECTSRC", Const, 0, ""},
+		{"RTCF_DOREDIRECT", Const, 0, ""},
+		{"RTCF_LOG", Const, 0, ""},
+		{"RTCF_MASQ", Const, 0, ""},
+		{"RTCF_NAT", Const, 0, ""},
+		{"RTCF_VALVE", Const, 0, ""},
+		{"RTF_ADDRCLASSMASK", Const, 0, ""},
+		{"RTF_ADDRCONF", Const, 0, ""},
+		{"RTF_ALLONLINK", Const, 0, ""},
+		{"RTF_ANNOUNCE", Const, 1, ""},
+		{"RTF_BLACKHOLE", Const, 0, ""},
+		{"RTF_BROADCAST", Const, 0, ""},
+		{"RTF_CACHE", Const, 0, ""},
+		{"RTF_CLONED", Const, 1, ""},
+		{"RTF_CLONING", Const, 0, ""},
+		{"RTF_CONDEMNED", Const, 0, ""},
+		{"RTF_DEFAULT", Const, 0, ""},
+		{"RTF_DELCLONE", Const, 0, ""},
+		{"RTF_DONE", Const, 0, ""},
+		{"RTF_DYNAMIC", Const, 0, ""},
+		{"RTF_FLOW", Const, 0, ""},
+		{"RTF_FMASK", Const, 0, ""},
+		{"RTF_GATEWAY", Const, 0, ""},
+		{"RTF_GWFLAG_COMPAT", Const, 3, ""},
+		{"RTF_HOST", Const, 0, ""},
+		{"RTF_IFREF", Const, 0, ""},
+		{"RTF_IFSCOPE", Const, 0, ""},
+		{"RTF_INTERFACE", Const, 0, ""},
+		{"RTF_IRTT", Const, 0, ""},
+		{"RTF_LINKRT", Const, 0, ""},
+		{"RTF_LLDATA", Const, 0, ""},
+		{"RTF_LLINFO", Const, 0, ""},
+		{"RTF_LOCAL", Const, 0, ""},
+		{"RTF_MASK", Const, 1, ""},
+		{"RTF_MODIFIED", Const, 0, ""},
+		{"RTF_MPATH", Const, 1, ""},
+		{"RTF_MPLS", Const, 1, ""},
+		{"RTF_MSS", Const, 0, ""},
+		{"RTF_MTU", Const, 0, ""},
+		{"RTF_MULTICAST", Const, 0, ""},
+		{"RTF_NAT", Const, 0, ""},
+		{"RTF_NOFORWARD", Const, 0, ""},
+		{"RTF_NONEXTHOP", Const, 0, ""},
+		{"RTF_NOPMTUDISC", Const, 0, ""},
+		{"RTF_PERMANENT_ARP", Const, 1, ""},
+		{"RTF_PINNED", Const, 0, ""},
+		{"RTF_POLICY", Const, 0, ""},
+		{"RTF_PRCLONING", Const, 0, ""},
+		{"RTF_PROTO1", Const, 0, ""},
+		{"RTF_PROTO2", Const, 0, ""},
+		{"RTF_PROTO3", Const, 0, ""},
+		{"RTF_PROXY", Const, 16, ""},
+		{"RTF_REINSTATE", Const, 0, ""},
+		{"RTF_REJECT", Const, 0, ""},
+		{"RTF_RNH_LOCKED", Const, 0, ""},
+		{"RTF_ROUTER", Const, 16, ""},
+		{"RTF_SOURCE", Const, 1, ""},
+		{"RTF_SRC", Const, 1, ""},
+		{"RTF_STATIC", Const, 0, ""},
+		{"RTF_STICKY", Const, 0, ""},
+		{"RTF_THROW", Const, 0, ""},
+		{"RTF_TUNNEL", Const, 1, ""},
+		{"RTF_UP", Const, 0, ""},
+		{"RTF_USETRAILERS", Const, 1, ""},
+		{"RTF_WASCLONED", Const, 0, ""},
+		{"RTF_WINDOW", Const, 0, ""},
+		{"RTF_XRESOLVE", Const, 0, ""},
+		{"RTM_ADD", Const, 0, ""},
+		{"RTM_BASE", Const, 0, ""},
+		{"RTM_CHANGE", Const, 0, ""},
+		{"RTM_CHGADDR", Const, 1, ""},
+		{"RTM_DELACTION", Const, 0, ""},
+		{"RTM_DELADDR", Const, 0, ""},
+		{"RTM_DELADDRLABEL", Const, 0, ""},
+		{"RTM_DELETE", Const, 0, ""},
+		{"RTM_DELLINK", Const, 0, ""},
+		{"RTM_DELMADDR", Const, 0, ""},
+		{"RTM_DELNEIGH", Const, 0, ""},
+		{"RTM_DELQDISC", Const, 0, ""},
+		{"RTM_DELROUTE", Const, 0, ""},
+		{"RTM_DELRULE", Const, 0, ""},
+		{"RTM_DELTCLASS", Const, 0, ""},
+		{"RTM_DELTFILTER", Const, 0, ""},
+		{"RTM_DESYNC", Const, 1, ""},
+		{"RTM_F_CLONED", Const, 0, ""},
+		{"RTM_F_EQUALIZE", Const, 0, ""},
+		{"RTM_F_NOTIFY", Const, 0, ""},
+		{"RTM_F_PREFIX", Const, 0, ""},
+		{"RTM_GET", Const, 0, ""},
+		{"RTM_GET2", Const, 0, ""},
+		{"RTM_GETACTION", Const, 0, ""},
+		{"RTM_GETADDR", Const, 0, ""},
+		{"RTM_GETADDRLABEL", Const, 0, ""},
+		{"RTM_GETANYCAST", Const, 0, ""},
+		{"RTM_GETDCB", Const, 0, ""},
+		{"RTM_GETLINK", Const, 0, ""},
+		{"RTM_GETMULTICAST", Const, 0, ""},
+		{"RTM_GETNEIGH", Const, 0, ""},
+		{"RTM_GETNEIGHTBL", Const, 0, ""},
+		{"RTM_GETQDISC", Const, 0, ""},
+		{"RTM_GETROUTE", Const, 0, ""},
+		{"RTM_GETRULE", Const, 0, ""},
+		{"RTM_GETTCLASS", Const, 0, ""},
+		{"RTM_GETTFILTER", Const, 0, ""},
+		{"RTM_IEEE80211", Const, 0, ""},
+		{"RTM_IFANNOUNCE", Const, 0, ""},
+		{"RTM_IFINFO", Const, 0, ""},
+		{"RTM_IFINFO2", Const, 0, ""},
+		{"RTM_LLINFO_UPD", Const, 1, ""},
+		{"RTM_LOCK", Const, 0, ""},
+		{"RTM_LOSING", Const, 0, ""},
+		{"RTM_MAX", Const, 0, ""},
+		{"RTM_MAXSIZE", Const, 1, ""},
+		{"RTM_MISS", Const, 0, ""},
+		{"RTM_NEWACTION", Const, 0, ""},
+		{"RTM_NEWADDR", Const, 0, ""},
+		{"RTM_NEWADDRLABEL", Const, 0, ""},
+		{"RTM_NEWLINK", Const, 0, ""},
+		{"RTM_NEWMADDR", Const, 0, ""},
+		{"RTM_NEWMADDR2", Const, 0, ""},
+		{"RTM_NEWNDUSEROPT", Const, 0, ""},
+		{"RTM_NEWNEIGH", Const, 0, ""},
+		{"RTM_NEWNEIGHTBL", Const, 0, ""},
+		{"RTM_NEWPREFIX", Const, 0, ""},
+		{"RTM_NEWQDISC", Const, 0, ""},
+		{"RTM_NEWROUTE", Const, 0, ""},
+		{"RTM_NEWRULE", Const, 0, ""},
+		{"RTM_NEWTCLASS", Const, 0, ""},
+		{"RTM_NEWTFILTER", Const, 0, ""},
+		{"RTM_NR_FAMILIES", Const, 0, ""},
+		{"RTM_NR_MSGTYPES", Const, 0, ""},
+		{"RTM_OIFINFO", Const, 1, ""},
+		{"RTM_OLDADD", Const, 0, ""},
+		{"RTM_OLDDEL", Const, 0, ""},
+		{"RTM_OOIFINFO", Const, 1, ""},
+		{"RTM_REDIRECT", Const, 0, ""},
+		{"RTM_RESOLVE", Const, 0, ""},
+		{"RTM_RTTUNIT", Const, 0, ""},
+		{"RTM_SETDCB", Const, 0, ""},
+		{"RTM_SETGATE", Const, 1, ""},
+		{"RTM_SETLINK", Const, 0, ""},
+		{"RTM_SETNEIGHTBL", Const, 0, ""},
+		{"RTM_VERSION", Const, 0, ""},
+		{"RTNH_ALIGNTO", Const, 0, ""},
+		{"RTNH_F_DEAD", Const, 0, ""},
+		{"RTNH_F_ONLINK", Const, 0, ""},
+		{"RTNH_F_PERVASIVE", Const, 0, ""},
+		{"RTNLGRP_IPV4_IFADDR", Const, 1, ""},
+		{"RTNLGRP_IPV4_MROUTE", Const, 1, ""},
+		{"RTNLGRP_IPV4_ROUTE", Const, 1, ""},
+		{"RTNLGRP_IPV4_RULE", Const, 1, ""},
+		{"RTNLGRP_IPV6_IFADDR", Const, 1, ""},
+		{"RTNLGRP_IPV6_IFINFO", Const, 1, ""},
+		{"RTNLGRP_IPV6_MROUTE", Const, 1, ""},
+		{"RTNLGRP_IPV6_PREFIX", Const, 1, ""},
+		{"RTNLGRP_IPV6_ROUTE", Const, 1, ""},
+		{"RTNLGRP_IPV6_RULE", Const, 1, ""},
+		{"RTNLGRP_LINK", Const, 1, ""},
+		{"RTNLGRP_ND_USEROPT", Const, 1, ""},
+		{"RTNLGRP_NEIGH", Const, 1, ""},
+		{"RTNLGRP_NONE", Const, 1, ""},
+		{"RTNLGRP_NOTIFY", Const, 1, ""},
+		{"RTNLGRP_TC", Const, 1, ""},
+		{"RTN_ANYCAST", Const, 0, ""},
+		{"RTN_BLACKHOLE", Const, 0, ""},
+		{"RTN_BROADCAST", Const, 0, ""},
+		{"RTN_LOCAL", Const, 0, ""},
+		{"RTN_MAX", Const, 0, ""},
+		{"RTN_MULTICAST", Const, 0, ""},
+		{"RTN_NAT", Const, 0, ""},
+		{"RTN_PROHIBIT", Const, 0, ""},
+		{"RTN_THROW", Const, 0, ""},
+		{"RTN_UNICAST", Const, 0, ""},
+		{"RTN_UNREACHABLE", Const, 0, ""},
+		{"RTN_UNSPEC", Const, 0, ""},
+		{"RTN_XRESOLVE", Const, 0, ""},
+		{"RTPROT_BIRD", Const, 0, ""},
+		{"RTPROT_BOOT", Const, 0, ""},
+		{"RTPROT_DHCP", Const, 0, ""},
+		{"RTPROT_DNROUTED", Const, 0, ""},
+		{"RTPROT_GATED", Const, 0, ""},
+		{"RTPROT_KERNEL", Const, 0, ""},
+		{"RTPROT_MRT", Const, 0, ""},
+		{"RTPROT_NTK", Const, 0, ""},
+		{"RTPROT_RA", Const, 0, ""},
+		{"RTPROT_REDIRECT", Const, 0, ""},
+		{"RTPROT_STATIC", Const, 0, ""},
+		{"RTPROT_UNSPEC", Const, 0, ""},
+		{"RTPROT_XORP", Const, 0, ""},
+		{"RTPROT_ZEBRA", Const, 0, ""},
+		{"RTV_EXPIRE", Const, 0, ""},
+		{"RTV_HOPCOUNT", Const, 0, ""},
+		{"RTV_MTU", Const, 0, ""},
+		{"RTV_RPIPE", Const, 0, ""},
+		{"RTV_RTT", Const, 0, ""},
+		{"RTV_RTTVAR", Const, 0, ""},
+		{"RTV_SPIPE", Const, 0, ""},
+		{"RTV_SSTHRESH", Const, 0, ""},
+		{"RTV_WEIGHT", Const, 0, ""},
+		{"RT_CACHING_CONTEXT", Const, 1, ""},
+		{"RT_CLASS_DEFAULT", Const, 0, ""},
+		{"RT_CLASS_LOCAL", Const, 0, ""},
+		{"RT_CLASS_MAIN", Const, 0, ""},
+		{"RT_CLASS_MAX", Const, 0, ""},
+		{"RT_CLASS_UNSPEC", Const, 0, ""},
+		{"RT_DEFAULT_FIB", Const, 1, ""},
+		{"RT_NORTREF", Const, 1, ""},
+		{"RT_SCOPE_HOST", Const, 0, ""},
+		{"RT_SCOPE_LINK", Const, 0, ""},
+		{"RT_SCOPE_NOWHERE", Const, 0, ""},
+		{"RT_SCOPE_SITE", Const, 0, ""},
+		{"RT_SCOPE_UNIVERSE", Const, 0, ""},
+		{"RT_TABLEID_MAX", Const, 1, ""},
+		{"RT_TABLE_COMPAT", Const, 0, ""},
+		{"RT_TABLE_DEFAULT", Const, 0, ""},
+		{"RT_TABLE_LOCAL", Const, 0, ""},
+		{"RT_TABLE_MAIN", Const, 0, ""},
+		{"RT_TABLE_MAX", Const, 0, ""},
+		{"RT_TABLE_UNSPEC", Const, 0, ""},
+		{"RUSAGE_CHILDREN", Const, 0, ""},
+		{"RUSAGE_SELF", Const, 0, ""},
+		{"RUSAGE_THREAD", Const, 0, ""},
+		{"Radvisory_t", Type, 0, ""},
+		{"Radvisory_t.Count", Field, 0, ""},
+		{"Radvisory_t.Offset", Field, 0, ""},
+		{"Radvisory_t.Pad_cgo_0", Field, 0, ""},
+		{"RawConn", Type, 9, ""},
+		{"RawSockaddr", Type, 0, ""},
+		{"RawSockaddr.Data", Field, 0, ""},
+		{"RawSockaddr.Family", Field, 0, ""},
+		{"RawSockaddr.Len", Field, 0, ""},
+		{"RawSockaddrAny", Type, 0, ""},
+		{"RawSockaddrAny.Addr", Field, 0, ""},
+		{"RawSockaddrAny.Pad", Field, 0, ""},
+		{"RawSockaddrDatalink", Type, 0, ""},
+		{"RawSockaddrDatalink.Alen", Field, 0, ""},
+		{"RawSockaddrDatalink.Data", Field, 0, ""},
+		{"RawSockaddrDatalink.Family", Field, 0, ""},
+		{"RawSockaddrDatalink.Index", Field, 0, ""},
+		{"RawSockaddrDatalink.Len", Field, 0, ""},
+		{"RawSockaddrDatalink.Nlen", Field, 0, ""},
+		{"RawSockaddrDatalink.Pad_cgo_0", Field, 2, ""},
+		{"RawSockaddrDatalink.Slen", Field, 0, ""},
+		{"RawSockaddrDatalink.Type", Field, 0, ""},
+		{"RawSockaddrInet4", Type, 0, ""},
+		{"RawSockaddrInet4.Addr", Field, 0, ""},
+		{"RawSockaddrInet4.Family", Field, 0, ""},
+		{"RawSockaddrInet4.Len", Field, 0, ""},
+		{"RawSockaddrInet4.Port", Field, 0, ""},
+		{"RawSockaddrInet4.Zero", Field, 0, ""},
+		{"RawSockaddrInet6", Type, 0, ""},
+		{"RawSockaddrInet6.Addr", Field, 0, ""},
+		{"RawSockaddrInet6.Family", Field, 0, ""},
+		{"RawSockaddrInet6.Flowinfo", Field, 0, ""},
+		{"RawSockaddrInet6.Len", Field, 0, ""},
+		{"RawSockaddrInet6.Port", Field, 0, ""},
+		{"RawSockaddrInet6.Scope_id", Field, 0, ""},
+		{"RawSockaddrLinklayer", Type, 0, ""},
+		{"RawSockaddrLinklayer.Addr", Field, 0, ""},
+		{"RawSockaddrLinklayer.Family", Field, 0, ""},
+		{"RawSockaddrLinklayer.Halen", Field, 0, ""},
+		{"RawSockaddrLinklayer.Hatype", Field, 0, ""},
+		{"RawSockaddrLinklayer.Ifindex", Field, 0, ""},
+		{"RawSockaddrLinklayer.Pkttype", Field, 0, ""},
+		{"RawSockaddrLinklayer.Protocol", Field, 0, ""},
+		{"RawSockaddrNetlink", Type, 0, ""},
+		{"RawSockaddrNetlink.Family", Field, 0, ""},
+		{"RawSockaddrNetlink.Groups", Field, 0, ""},
+		{"RawSockaddrNetlink.Pad", Field, 0, ""},
+		{"RawSockaddrNetlink.Pid", Field, 0, ""},
+		{"RawSockaddrUnix", Type, 0, ""},
+		{"RawSockaddrUnix.Family", Field, 0, ""},
+		{"RawSockaddrUnix.Len", Field, 0, ""},
+		{"RawSockaddrUnix.Pad_cgo_0", Field, 2, ""},
+		{"RawSockaddrUnix.Path", Field, 0, ""},
+		{"RawSyscall", Func, 0, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr) (r1 uintptr, r2 uintptr, err Errno)"},
+		{"RawSyscall6", Func, 0, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr, a4 uintptr, a5 uintptr, a6 uintptr) (r1 uintptr, r2 uintptr, err Errno)"},
+		{"Read", Func, 0, "func(fd int, p []byte) (n int, err error)"},
+		{"ReadConsole", Func, 1, ""},
+		{"ReadDirectoryChanges", Func, 0, ""},
+		{"ReadDirent", Func, 0, "func(fd int, buf []byte) (n int, err error)"},
+		{"ReadFile", Func, 0, ""},
+		{"Readlink", Func, 0, "func(path string, buf []byte) (n int, err error)"},
+		{"Reboot", Func, 0, "func(cmd int) (err error)"},
+		{"Recvfrom", Func, 0, "func(fd int, p []byte, flags int) (n int, from Sockaddr, err error)"},
+		{"Recvmsg", Func, 0, "func(fd int, p []byte, oob []byte, flags int) (n int, oobn int, recvflags int, from Sockaddr, err error)"},
+		{"RegCloseKey", Func, 0, ""},
+		{"RegEnumKeyEx", Func, 0, ""},
+		{"RegOpenKeyEx", Func, 0, ""},
+		{"RegQueryInfoKey", Func, 0, ""},
+		{"RegQueryValueEx", Func, 0, ""},
+		{"RemoveDirectory", Func, 0, ""},
+		{"Removexattr", Func, 1, "func(path string, attr string) (err error)"},
+		{"Rename", Func, 0, "func(oldpath string, newpath string) (err error)"},
+		{"Renameat", Func, 0, "func(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)"},
+		{"Revoke", Func, 0, ""},
+		{"Rlimit", Type, 0, ""},
+		{"Rlimit.Cur", Field, 0, ""},
+		{"Rlimit.Max", Field, 0, ""},
+		{"Rmdir", Func, 0, "func(path string) error"},
+		{"RouteMessage", Type, 0, ""},
+		{"RouteMessage.Data", Field, 0, ""},
+		{"RouteMessage.Header", Field, 0, ""},
+		{"RouteRIB", Func, 0, ""},
+		{"RoutingMessage", Type, 0, ""},
+		{"RtAttr", Type, 0, ""},
+		{"RtAttr.Len", Field, 0, ""},
+		{"RtAttr.Type", Field, 0, ""},
+		{"RtGenmsg", Type, 0, ""},
+		{"RtGenmsg.Family", Field, 0, ""},
+		{"RtMetrics", Type, 0, ""},
+		{"RtMetrics.Expire", Field, 0, ""},
+		{"RtMetrics.Filler", Field, 0, ""},
+		{"RtMetrics.Hopcount", Field, 0, ""},
+		{"RtMetrics.Locks", Field, 0, ""},
+		{"RtMetrics.Mtu", Field, 0, ""},
+		{"RtMetrics.Pad", Field, 3, ""},
+		{"RtMetrics.Pksent", Field, 0, ""},
+		{"RtMetrics.Recvpipe", Field, 0, ""},
+		{"RtMetrics.Refcnt", Field, 2, ""},
+		{"RtMetrics.Rtt", Field, 0, ""},
+		{"RtMetrics.Rttvar", Field, 0, ""},
+		{"RtMetrics.Sendpipe", Field, 0, ""},
+		{"RtMetrics.Ssthresh", Field, 0, ""},
+		{"RtMetrics.Weight", Field, 0, ""},
+		{"RtMsg", Type, 0, ""},
+		{"RtMsg.Dst_len", Field, 0, ""},
+		{"RtMsg.Family", Field, 0, ""},
+		{"RtMsg.Flags", Field, 0, ""},
+		{"RtMsg.Protocol", Field, 0, ""},
+		{"RtMsg.Scope", Field, 0, ""},
+		{"RtMsg.Src_len", Field, 0, ""},
+		{"RtMsg.Table", Field, 0, ""},
+		{"RtMsg.Tos", Field, 0, ""},
+		{"RtMsg.Type", Field, 0, ""},
+		{"RtMsghdr", Type, 0, ""},
+		{"RtMsghdr.Addrs", Field, 0, ""},
+		{"RtMsghdr.Errno", Field, 0, ""},
+		{"RtMsghdr.Flags", Field, 0, ""},
+		{"RtMsghdr.Fmask", Field, 0, ""},
+		{"RtMsghdr.Hdrlen", Field, 2, ""},
+		{"RtMsghdr.Index", Field, 0, ""},
+		{"RtMsghdr.Inits", Field, 0, ""},
+		{"RtMsghdr.Mpls", Field, 2, ""},
+		{"RtMsghdr.Msglen", Field, 0, ""},
+		{"RtMsghdr.Pad_cgo_0", Field, 0, ""},
+		{"RtMsghdr.Pad_cgo_1", Field, 2, ""},
+		{"RtMsghdr.Pid", Field, 0, ""},
+		{"RtMsghdr.Priority", Field, 2, ""},
+		{"RtMsghdr.Rmx", Field, 0, ""},
+		{"RtMsghdr.Seq", Field, 0, ""},
+		{"RtMsghdr.Tableid", Field, 2, ""},
+		{"RtMsghdr.Type", Field, 0, ""},
+		{"RtMsghdr.Use", Field, 0, ""},
+		{"RtMsghdr.Version", Field, 0, ""},
+		{"RtNexthop", Type, 0, ""},
+		{"RtNexthop.Flags", Field, 0, ""},
+		{"RtNexthop.Hops", Field, 0, ""},
+		{"RtNexthop.Ifindex", Field, 0, ""},
+		{"RtNexthop.Len", Field, 0, ""},
+		{"Rusage", Type, 0, ""},
+		{"Rusage.CreationTime", Field, 0, ""},
+		{"Rusage.ExitTime", Field, 0, ""},
+		{"Rusage.Idrss", Field, 0, ""},
+		{"Rusage.Inblock", Field, 0, ""},
+		{"Rusage.Isrss", Field, 0, ""},
+		{"Rusage.Ixrss", Field, 0, ""},
+		{"Rusage.KernelTime", Field, 0, ""},
+		{"Rusage.Majflt", Field, 0, ""},
+		{"Rusage.Maxrss", Field, 0, ""},
+		{"Rusage.Minflt", Field, 0, ""},
+		{"Rusage.Msgrcv", Field, 0, ""},
+		{"Rusage.Msgsnd", Field, 0, ""},
+		{"Rusage.Nivcsw", Field, 0, ""},
+		{"Rusage.Nsignals", Field, 0, ""},
+		{"Rusage.Nswap", Field, 0, ""},
+		{"Rusage.Nvcsw", Field, 0, ""},
+		{"Rusage.Oublock", Field, 0, ""},
+		{"Rusage.Stime", Field, 0, ""},
+		{"Rusage.UserTime", Field, 0, ""},
+		{"Rusage.Utime", Field, 0, ""},
+		{"SCM_BINTIME", Const, 0, ""},
+		{"SCM_CREDENTIALS", Const, 0, ""},
+		{"SCM_CREDS", Const, 0, ""},
+		{"SCM_RIGHTS", Const, 0, ""},
+		{"SCM_TIMESTAMP", Const, 0, ""},
+		{"SCM_TIMESTAMPING", Const, 0, ""},
+		{"SCM_TIMESTAMPNS", Const, 0, ""},
+		{"SCM_TIMESTAMP_MONOTONIC", Const, 0, ""},
+		{"SHUT_RD", Const, 0, ""},
+		{"SHUT_RDWR", Const, 0, ""},
+		{"SHUT_WR", Const, 0, ""},
+		{"SID", Type, 0, ""},
+		{"SIDAndAttributes", Type, 0, ""},
+		{"SIDAndAttributes.Attributes", Field, 0, ""},
+		{"SIDAndAttributes.Sid", Field, 0, ""},
+		{"SIGABRT", Const, 0, ""},
+		{"SIGALRM", Const, 0, ""},
+		{"SIGBUS", Const, 0, ""},
+		{"SIGCHLD", Const, 0, ""},
+		{"SIGCLD", Const, 0, ""},
+		{"SIGCONT", Const, 0, ""},
+		{"SIGEMT", Const, 0, ""},
+		{"SIGFPE", Const, 0, ""},
+		{"SIGHUP", Const, 0, ""},
+		{"SIGILL", Const, 0, ""},
+		{"SIGINFO", Const, 0, ""},
+		{"SIGINT", Const, 0, ""},
+		{"SIGIO", Const, 0, ""},
+		{"SIGIOT", Const, 0, ""},
+		{"SIGKILL", Const, 0, ""},
+		{"SIGLIBRT", Const, 1, ""},
+		{"SIGLWP", Const, 0, ""},
+		{"SIGPIPE", Const, 0, ""},
+		{"SIGPOLL", Const, 0, ""},
+		{"SIGPROF", Const, 0, ""},
+		{"SIGPWR", Const, 0, ""},
+		{"SIGQUIT", Const, 0, ""},
+		{"SIGSEGV", Const, 0, ""},
+		{"SIGSTKFLT", Const, 0, ""},
+		{"SIGSTOP", Const, 0, ""},
+		{"SIGSYS", Const, 0, ""},
+		{"SIGTERM", Const, 0, ""},
+		{"SIGTHR", Const, 0, ""},
+		{"SIGTRAP", Const, 0, ""},
+		{"SIGTSTP", Const, 0, ""},
+		{"SIGTTIN", Const, 0, ""},
+		{"SIGTTOU", Const, 0, ""},
+		{"SIGUNUSED", Const, 0, ""},
+		{"SIGURG", Const, 0, ""},
+		{"SIGUSR1", Const, 0, ""},
+		{"SIGUSR2", Const, 0, ""},
+		{"SIGVTALRM", Const, 0, ""},
+		{"SIGWINCH", Const, 0, ""},
+		{"SIGXCPU", Const, 0, ""},
+		{"SIGXFSZ", Const, 0, ""},
+		{"SIOCADDDLCI", Const, 0, ""},
+		{"SIOCADDMULTI", Const, 0, ""},
+		{"SIOCADDRT", Const, 0, ""},
+		{"SIOCAIFADDR", Const, 0, ""},
+		{"SIOCAIFGROUP", Const, 0, ""},
+		{"SIOCALIFADDR", Const, 0, ""},
+		{"SIOCARPIPLL", Const, 0, ""},
+		{"SIOCATMARK", Const, 0, ""},
+		{"SIOCAUTOADDR", Const, 0, ""},
+		{"SIOCAUTONETMASK", Const, 0, ""},
+		{"SIOCBRDGADD", Const, 1, ""},
+		{"SIOCBRDGADDS", Const, 1, ""},
+		{"SIOCBRDGARL", Const, 1, ""},
+		{"SIOCBRDGDADDR", Const, 1, ""},
+		{"SIOCBRDGDEL", Const, 1, ""},
+		{"SIOCBRDGDELS", Const, 1, ""},
+		{"SIOCBRDGFLUSH", Const, 1, ""},
+		{"SIOCBRDGFRL", Const, 1, ""},
+		{"SIOCBRDGGCACHE", Const, 1, ""},
+		{"SIOCBRDGGFD", Const, 1, ""},
+		{"SIOCBRDGGHT", Const, 1, ""},
+		{"SIOCBRDGGIFFLGS", Const, 1, ""},
+		{"SIOCBRDGGMA", Const, 1, ""},
+		{"SIOCBRDGGPARAM", Const, 1, ""},
+		{"SIOCBRDGGPRI", Const, 1, ""},
+		{"SIOCBRDGGRL", Const, 1, ""},
+		{"SIOCBRDGGSIFS", Const, 1, ""},
+		{"SIOCBRDGGTO", Const, 1, ""},
+		{"SIOCBRDGIFS", Const, 1, ""},
+		{"SIOCBRDGRTS", Const, 1, ""},
+		{"SIOCBRDGSADDR", Const, 1, ""},
+		{"SIOCBRDGSCACHE", Const, 1, ""},
+		{"SIOCBRDGSFD", Const, 1, ""},
+		{"SIOCBRDGSHT", Const, 1, ""},
+		{"SIOCBRDGSIFCOST", Const, 1, ""},
+		{"SIOCBRDGSIFFLGS", Const, 1, ""},
+		{"SIOCBRDGSIFPRIO", Const, 1, ""},
+		{"SIOCBRDGSMA", Const, 1, ""},
+		{"SIOCBRDGSPRI", Const, 1, ""},
+		{"SIOCBRDGSPROTO", Const, 1, ""},
+		{"SIOCBRDGSTO", Const, 1, ""},
+		{"SIOCBRDGSTXHC", Const, 1, ""},
+		{"SIOCDARP", Const, 0, ""},
+		{"SIOCDELDLCI", Const, 0, ""},
+		{"SIOCDELMULTI", Const, 0, ""},
+		{"SIOCDELRT", Const, 0, ""},
+		{"SIOCDEVPRIVATE", Const, 0, ""},
+		{"SIOCDIFADDR", Const, 0, ""},
+		{"SIOCDIFGROUP", Const, 0, ""},
+		{"SIOCDIFPHYADDR", Const, 0, ""},
+		{"SIOCDLIFADDR", Const, 0, ""},
+		{"SIOCDRARP", Const, 0, ""},
+		{"SIOCGARP", Const, 0, ""},
+		{"SIOCGDRVSPEC", Const, 0, ""},
+		{"SIOCGETKALIVE", Const, 1, ""},
+		{"SIOCGETLABEL", Const, 1, ""},
+		{"SIOCGETPFLOW", Const, 1, ""},
+		{"SIOCGETPFSYNC", Const, 1, ""},
+		{"SIOCGETSGCNT", Const, 0, ""},
+		{"SIOCGETVIFCNT", Const, 0, ""},
+		{"SIOCGETVLAN", Const, 0, ""},
+		{"SIOCGHIWAT", Const, 0, ""},
+		{"SIOCGIFADDR", Const, 0, ""},
+		{"SIOCGIFADDRPREF", Const, 1, ""},
+		{"SIOCGIFALIAS", Const, 1, ""},
+		{"SIOCGIFALTMTU", Const, 0, ""},
+		{"SIOCGIFASYNCMAP", Const, 0, ""},
+		{"SIOCGIFBOND", Const, 0, ""},
+		{"SIOCGIFBR", Const, 0, ""},
+		{"SIOCGIFBRDADDR", Const, 0, ""},
+		{"SIOCGIFCAP", Const, 0, ""},
+		{"SIOCGIFCONF", Const, 0, ""},
+		{"SIOCGIFCOUNT", Const, 0, ""},
+		{"SIOCGIFDATA", Const, 1, ""},
+		{"SIOCGIFDESCR", Const, 0, ""},
+		{"SIOCGIFDEVMTU", Const, 0, ""},
+		{"SIOCGIFDLT", Const, 1, ""},
+		{"SIOCGIFDSTADDR", Const, 0, ""},
+		{"SIOCGIFENCAP", Const, 0, ""},
+		{"SIOCGIFFIB", Const, 1, ""},
+		{"SIOCGIFFLAGS", Const, 0, ""},
+		{"SIOCGIFGATTR", Const, 1, ""},
+		{"SIOCGIFGENERIC", Const, 0, ""},
+		{"SIOCGIFGMEMB", Const, 0, ""},
+		{"SIOCGIFGROUP", Const, 0, ""},
+		{"SIOCGIFHARDMTU", Const, 3, ""},
+		{"SIOCGIFHWADDR", Const, 0, ""},
+		{"SIOCGIFINDEX", Const, 0, ""},
+		{"SIOCGIFKPI", Const, 0, ""},
+		{"SIOCGIFMAC", Const, 0, ""},
+		{"SIOCGIFMAP", Const, 0, ""},
+		{"SIOCGIFMEDIA", Const, 0, ""},
+		{"SIOCGIFMEM", Const, 0, ""},
+		{"SIOCGIFMETRIC", Const, 0, ""},
+		{"SIOCGIFMTU", Const, 0, ""},
+		{"SIOCGIFNAME", Const, 0, ""},
+		{"SIOCGIFNETMASK", Const, 0, ""},
+		{"SIOCGIFPDSTADDR", Const, 0, ""},
+		{"SIOCGIFPFLAGS", Const, 0, ""},
+		{"SIOCGIFPHYS", Const, 0, ""},
+		{"SIOCGIFPRIORITY", Const, 1, ""},
+		{"SIOCGIFPSRCADDR", Const, 0, ""},
+		{"SIOCGIFRDOMAIN", Const, 1, ""},
+		{"SIOCGIFRTLABEL", Const, 1, ""},
+		{"SIOCGIFSLAVE", Const, 0, ""},
+		{"SIOCGIFSTATUS", Const, 0, ""},
+		{"SIOCGIFTIMESLOT", Const, 1, ""},
+		{"SIOCGIFTXQLEN", Const, 0, ""},
+		{"SIOCGIFVLAN", Const, 0, ""},
+		{"SIOCGIFWAKEFLAGS", Const, 0, ""},
+		{"SIOCGIFXFLAGS", Const, 1, ""},
+		{"SIOCGLIFADDR", Const, 0, ""},
+		{"SIOCGLIFPHYADDR", Const, 0, ""},
+		{"SIOCGLIFPHYRTABLE", Const, 1, ""},
+		{"SIOCGLIFPHYTTL", Const, 3, ""},
+		{"SIOCGLINKSTR", Const, 1, ""},
+		{"SIOCGLOWAT", Const, 0, ""},
+		{"SIOCGPGRP", Const, 0, ""},
+		{"SIOCGPRIVATE_0", Const, 0, ""},
+		{"SIOCGPRIVATE_1", Const, 0, ""},
+		{"SIOCGRARP", Const, 0, ""},
+		{"SIOCGSPPPPARAMS", Const, 3, ""},
+		{"SIOCGSTAMP", Const, 0, ""},
+		{"SIOCGSTAMPNS", Const, 0, ""},
+		{"SIOCGVH", Const, 1, ""},
+		{"SIOCGVNETID", Const, 3, ""},
+		{"SIOCIFCREATE", Const, 0, ""},
+		{"SIOCIFCREATE2", Const, 0, ""},
+		{"SIOCIFDESTROY", Const, 0, ""},
+		{"SIOCIFGCLONERS", Const, 0, ""},
+		{"SIOCINITIFADDR", Const, 1, ""},
+		{"SIOCPROTOPRIVATE", Const, 0, ""},
+		{"SIOCRSLVMULTI", Const, 0, ""},
+		{"SIOCRTMSG", Const, 0, ""},
+		{"SIOCSARP", Const, 0, ""},
+		{"SIOCSDRVSPEC", Const, 0, ""},
+		{"SIOCSETKALIVE", Const, 1, ""},
+		{"SIOCSETLABEL", Const, 1, ""},
+		{"SIOCSETPFLOW", Const, 1, ""},
+		{"SIOCSETPFSYNC", Const, 1, ""},
+		{"SIOCSETVLAN", Const, 0, ""},
+		{"SIOCSHIWAT", Const, 0, ""},
+		{"SIOCSIFADDR", Const, 0, ""},
+		{"SIOCSIFADDRPREF", Const, 1, ""},
+		{"SIOCSIFALTMTU", Const, 0, ""},
+		{"SIOCSIFASYNCMAP", Const, 0, ""},
+		{"SIOCSIFBOND", Const, 0, ""},
+		{"SIOCSIFBR", Const, 0, ""},
+		{"SIOCSIFBRDADDR", Const, 0, ""},
+		{"SIOCSIFCAP", Const, 0, ""},
+		{"SIOCSIFDESCR", Const, 0, ""},
+		{"SIOCSIFDSTADDR", Const, 0, ""},
+		{"SIOCSIFENCAP", Const, 0, ""},
+		{"SIOCSIFFIB", Const, 1, ""},
+		{"SIOCSIFFLAGS", Const, 0, ""},
+		{"SIOCSIFGATTR", Const, 1, ""},
+		{"SIOCSIFGENERIC", Const, 0, ""},
+		{"SIOCSIFHWADDR", Const, 0, ""},
+		{"SIOCSIFHWBROADCAST", Const, 0, ""},
+		{"SIOCSIFKPI", Const, 0, ""},
+		{"SIOCSIFLINK", Const, 0, ""},
+		{"SIOCSIFLLADDR", Const, 0, ""},
+		{"SIOCSIFMAC", Const, 0, ""},
+		{"SIOCSIFMAP", Const, 0, ""},
+		{"SIOCSIFMEDIA", Const, 0, ""},
+		{"SIOCSIFMEM", Const, 0, ""},
+		{"SIOCSIFMETRIC", Const, 0, ""},
+		{"SIOCSIFMTU", Const, 0, ""},
+		{"SIOCSIFNAME", Const, 0, ""},
+		{"SIOCSIFNETMASK", Const, 0, ""},
+		{"SIOCSIFPFLAGS", Const, 0, ""},
+		{"SIOCSIFPHYADDR", Const, 0, ""},
+		{"SIOCSIFPHYS", Const, 0, ""},
+		{"SIOCSIFPRIORITY", Const, 1, ""},
+		{"SIOCSIFRDOMAIN", Const, 1, ""},
+		{"SIOCSIFRTLABEL", Const, 1, ""},
+		{"SIOCSIFRVNET", Const, 0, ""},
+		{"SIOCSIFSLAVE", Const, 0, ""},
+		{"SIOCSIFTIMESLOT", Const, 1, ""},
+		{"SIOCSIFTXQLEN", Const, 0, ""},
+		{"SIOCSIFVLAN", Const, 0, ""},
+		{"SIOCSIFVNET", Const, 0, ""},
+		{"SIOCSIFXFLAGS", Const, 1, ""},
+		{"SIOCSLIFPHYADDR", Const, 0, ""},
+		{"SIOCSLIFPHYRTABLE", Const, 1, ""},
+		{"SIOCSLIFPHYTTL", Const, 3, ""},
+		{"SIOCSLINKSTR", Const, 1, ""},
+		{"SIOCSLOWAT", Const, 0, ""},
+		{"SIOCSPGRP", Const, 0, ""},
+		{"SIOCSRARP", Const, 0, ""},
+		{"SIOCSSPPPPARAMS", Const, 3, ""},
+		{"SIOCSVH", Const, 1, ""},
+		{"SIOCSVNETID", Const, 3, ""},
+		{"SIOCZIFDATA", Const, 1, ""},
+		{"SIO_GET_EXTENSION_FUNCTION_POINTER", Const, 1, ""},
+		{"SIO_GET_INTERFACE_LIST", Const, 0, ""},
+		{"SIO_KEEPALIVE_VALS", Const, 3, ""},
+		{"SIO_UDP_CONNRESET", Const, 4, ""},
+		{"SOCK_CLOEXEC", Const, 0, ""},
+		{"SOCK_DCCP", Const, 0, ""},
+		{"SOCK_DGRAM", Const, 0, ""},
+		{"SOCK_FLAGS_MASK", Const, 1, ""},
+		{"SOCK_MAXADDRLEN", Const, 0, ""},
+		{"SOCK_NONBLOCK", Const, 0, ""},
+		{"SOCK_NOSIGPIPE", Const, 1, ""},
+		{"SOCK_PACKET", Const, 0, ""},
+		{"SOCK_RAW", Const, 0, ""},
+		{"SOCK_RDM", Const, 0, ""},
+		{"SOCK_SEQPACKET", Const, 0, ""},
+		{"SOCK_STREAM", Const, 0, ""},
+		{"SOL_AAL", Const, 0, ""},
+		{"SOL_ATM", Const, 0, ""},
+		{"SOL_DECNET", Const, 0, ""},
+		{"SOL_ICMPV6", Const, 0, ""},
+		{"SOL_IP", Const, 0, ""},
+		{"SOL_IPV6", Const, 0, ""},
+		{"SOL_IRDA", Const, 0, ""},
+		{"SOL_PACKET", Const, 0, ""},
+		{"SOL_RAW", Const, 0, ""},
+		{"SOL_SOCKET", Const, 0, ""},
+		{"SOL_TCP", Const, 0, ""},
+		{"SOL_X25", Const, 0, ""},
+		{"SOMAXCONN", Const, 0, ""},
+		{"SO_ACCEPTCONN", Const, 0, ""},
+		{"SO_ACCEPTFILTER", Const, 0, ""},
+		{"SO_ATTACH_FILTER", Const, 0, ""},
+		{"SO_BINDANY", Const, 1, ""},
+		{"SO_BINDTODEVICE", Const, 0, ""},
+		{"SO_BINTIME", Const, 0, ""},
+		{"SO_BROADCAST", Const, 0, ""},
+		{"SO_BSDCOMPAT", Const, 0, ""},
+		{"SO_DEBUG", Const, 0, ""},
+		{"SO_DETACH_FILTER", Const, 0, ""},
+		{"SO_DOMAIN", Const, 0, ""},
+		{"SO_DONTROUTE", Const, 0, ""},
+		{"SO_DONTTRUNC", Const, 0, ""},
+		{"SO_ERROR", Const, 0, ""},
+		{"SO_KEEPALIVE", Const, 0, ""},
+		{"SO_LABEL", Const, 0, ""},
+		{"SO_LINGER", Const, 0, ""},
+		{"SO_LINGER_SEC", Const, 0, ""},
+		{"SO_LISTENINCQLEN", Const, 0, ""},
+		{"SO_LISTENQLEN", Const, 0, ""},
+		{"SO_LISTENQLIMIT", Const, 0, ""},
+		{"SO_MARK", Const, 0, ""},
+		{"SO_NETPROC", Const, 1, ""},
+		{"SO_NKE", Const, 0, ""},
+		{"SO_NOADDRERR", Const, 0, ""},
+		{"SO_NOHEADER", Const, 1, ""},
+		{"SO_NOSIGPIPE", Const, 0, ""},
+		{"SO_NOTIFYCONFLICT", Const, 0, ""},
+		{"SO_NO_CHECK", Const, 0, ""},
+		{"SO_NO_DDP", Const, 0, ""},
+		{"SO_NO_OFFLOAD", Const, 0, ""},
+		{"SO_NP_EXTENSIONS", Const, 0, ""},
+		{"SO_NREAD", Const, 0, ""},
+		{"SO_NUMRCVPKT", Const, 16, ""},
+		{"SO_NWRITE", Const, 0, ""},
+		{"SO_OOBINLINE", Const, 0, ""},
+		{"SO_OVERFLOWED", Const, 1, ""},
+		{"SO_PASSCRED", Const, 0, ""},
+		{"SO_PASSSEC", Const, 0, ""},
+		{"SO_PEERCRED", Const, 0, ""},
+		{"SO_PEERLABEL", Const, 0, ""},
+		{"SO_PEERNAME", Const, 0, ""},
+		{"SO_PEERSEC", Const, 0, ""},
+		{"SO_PRIORITY", Const, 0, ""},
+		{"SO_PROTOCOL", Const, 0, ""},
+		{"SO_PROTOTYPE", Const, 1, ""},
+		{"SO_RANDOMPORT", Const, 0, ""},
+		{"SO_RCVBUF", Const, 0, ""},
+		{"SO_RCVBUFFORCE", Const, 0, ""},
+		{"SO_RCVLOWAT", Const, 0, ""},
+		{"SO_RCVTIMEO", Const, 0, ""},
+		{"SO_RESTRICTIONS", Const, 0, ""},
+		{"SO_RESTRICT_DENYIN", Const, 0, ""},
+		{"SO_RESTRICT_DENYOUT", Const, 0, ""},
+		{"SO_RESTRICT_DENYSET", Const, 0, ""},
+		{"SO_REUSEADDR", Const, 0, ""},
+		{"SO_REUSEPORT", Const, 0, ""},
+		{"SO_REUSESHAREUID", Const, 0, ""},
+		{"SO_RTABLE", Const, 1, ""},
+		{"SO_RXQ_OVFL", Const, 0, ""},
+		{"SO_SECURITY_AUTHENTICATION", Const, 0, ""},
+		{"SO_SECURITY_ENCRYPTION_NETWORK", Const, 0, ""},
+		{"SO_SECURITY_ENCRYPTION_TRANSPORT", Const, 0, ""},
+		{"SO_SETFIB", Const, 0, ""},
+		{"SO_SNDBUF", Const, 0, ""},
+		{"SO_SNDBUFFORCE", Const, 0, ""},
+		{"SO_SNDLOWAT", Const, 0, ""},
+		{"SO_SNDTIMEO", Const, 0, ""},
+		{"SO_SPLICE", Const, 1, ""},
+		{"SO_TIMESTAMP", Const, 0, ""},
+		{"SO_TIMESTAMPING", Const, 0, ""},
+		{"SO_TIMESTAMPNS", Const, 0, ""},
+		{"SO_TIMESTAMP_MONOTONIC", Const, 0, ""},
+		{"SO_TYPE", Const, 0, ""},
+		{"SO_UPCALLCLOSEWAIT", Const, 0, ""},
+		{"SO_UPDATE_ACCEPT_CONTEXT", Const, 0, ""},
+		{"SO_UPDATE_CONNECT_CONTEXT", Const, 1, ""},
+		{"SO_USELOOPBACK", Const, 0, ""},
+		{"SO_USER_COOKIE", Const, 1, ""},
+		{"SO_VENDOR", Const, 3, ""},
+		{"SO_WANTMORE", Const, 0, ""},
+		{"SO_WANTOOBFLAG", Const, 0, ""},
+		{"SSLExtraCertChainPolicyPara", Type, 0, ""},
+		{"SSLExtraCertChainPolicyPara.AuthType", Field, 0, ""},
+		{"SSLExtraCertChainPolicyPara.Checks", Field, 0, ""},
+		{"SSLExtraCertChainPolicyPara.ServerName", Field, 0, ""},
+		{"SSLExtraCertChainPolicyPara.Size", Field, 0, ""},
+		{"STANDARD_RIGHTS_ALL", Const, 0, ""},
+		{"STANDARD_RIGHTS_EXECUTE", Const, 0, ""},
+		{"STANDARD_RIGHTS_READ", Const, 0, ""},
+		{"STANDARD_RIGHTS_REQUIRED", Const, 0, ""},
+		{"STANDARD_RIGHTS_WRITE", Const, 0, ""},
+		{"STARTF_USESHOWWINDOW", Const, 0, ""},
+		{"STARTF_USESTDHANDLES", Const, 0, ""},
+		{"STD_ERROR_HANDLE", Const, 0, ""},
+		{"STD_INPUT_HANDLE", Const, 0, ""},
+		{"STD_OUTPUT_HANDLE", Const, 0, ""},
+		{"SUBLANG_ENGLISH_US", Const, 0, ""},
+		{"SW_FORCEMINIMIZE", Const, 0, ""},
+		{"SW_HIDE", Const, 0, ""},
+		{"SW_MAXIMIZE", Const, 0, ""},
+		{"SW_MINIMIZE", Const, 0, ""},
+		{"SW_NORMAL", Const, 0, ""},
+		{"SW_RESTORE", Const, 0, ""},
+		{"SW_SHOW", Const, 0, ""},
+		{"SW_SHOWDEFAULT", Const, 0, ""},
+		{"SW_SHOWMAXIMIZED", Const, 0, ""},
+		{"SW_SHOWMINIMIZED", Const, 0, ""},
+		{"SW_SHOWMINNOACTIVE", Const, 0, ""},
+		{"SW_SHOWNA", Const, 0, ""},
+		{"SW_SHOWNOACTIVATE", Const, 0, ""},
+		{"SW_SHOWNORMAL", Const, 0, ""},
+		{"SYMBOLIC_LINK_FLAG_DIRECTORY", Const, 4, ""},
+		{"SYNCHRONIZE", Const, 0, ""},
+		{"SYSCTL_VERSION", Const, 1, ""},
+		{"SYSCTL_VERS_0", Const, 1, ""},
+		{"SYSCTL_VERS_1", Const, 1, ""},
+		{"SYSCTL_VERS_MASK", Const, 1, ""},
+		{"SYS_ABORT2", Const, 0, ""},
+		{"SYS_ACCEPT", Const, 0, ""},
+		{"SYS_ACCEPT4", Const, 0, ""},
+		{"SYS_ACCEPT_NOCANCEL", Const, 0, ""},
+		{"SYS_ACCESS", Const, 0, ""},
+		{"SYS_ACCESS_EXTENDED", Const, 0, ""},
+		{"SYS_ACCT", Const, 0, ""},
+		{"SYS_ADD_KEY", Const, 0, ""},
+		{"SYS_ADD_PROFIL", Const, 0, ""},
+		{"SYS_ADJFREQ", Const, 1, ""},
+		{"SYS_ADJTIME", Const, 0, ""},
+		{"SYS_ADJTIMEX", Const, 0, ""},
+		{"SYS_AFS_SYSCALL", Const, 0, ""},
+		{"SYS_AIO_CANCEL", Const, 0, ""},
+		{"SYS_AIO_ERROR", Const, 0, ""},
+		{"SYS_AIO_FSYNC", Const, 0, ""},
+		{"SYS_AIO_MLOCK", Const, 14, ""},
+		{"SYS_AIO_READ", Const, 0, ""},
+		{"SYS_AIO_RETURN", Const, 0, ""},
+		{"SYS_AIO_SUSPEND", Const, 0, ""},
+		{"SYS_AIO_SUSPEND_NOCANCEL", Const, 0, ""},
+		{"SYS_AIO_WAITCOMPLETE", Const, 14, ""},
+		{"SYS_AIO_WRITE", Const, 0, ""},
+		{"SYS_ALARM", Const, 0, ""},
+		{"SYS_ARCH_PRCTL", Const, 0, ""},
+		{"SYS_ARM_FADVISE64_64", Const, 0, ""},
+		{"SYS_ARM_SYNC_FILE_RANGE", Const, 0, ""},
+		{"SYS_ATGETMSG", Const, 0, ""},
+		{"SYS_ATPGETREQ", Const, 0, ""},
+		{"SYS_ATPGETRSP", Const, 0, ""},
+		{"SYS_ATPSNDREQ", Const, 0, ""},
+		{"SYS_ATPSNDRSP", Const, 0, ""},
+		{"SYS_ATPUTMSG", Const, 0, ""},
+		{"SYS_ATSOCKET", Const, 0, ""},
+		{"SYS_AUDIT", Const, 0, ""},
+		{"SYS_AUDITCTL", Const, 0, ""},
+		{"SYS_AUDITON", Const, 0, ""},
+		{"SYS_AUDIT_SESSION_JOIN", Const, 0, ""},
+		{"SYS_AUDIT_SESSION_PORT", Const, 0, ""},
+		{"SYS_AUDIT_SESSION_SELF", Const, 0, ""},
+		{"SYS_BDFLUSH", Const, 0, ""},
+		{"SYS_BIND", Const, 0, ""},
+		{"SYS_BINDAT", Const, 3, ""},
+		{"SYS_BREAK", Const, 0, ""},
+		{"SYS_BRK", Const, 0, ""},
+		{"SYS_BSDTHREAD_CREATE", Const, 0, ""},
+		{"SYS_BSDTHREAD_REGISTER", Const, 0, ""},
+		{"SYS_BSDTHREAD_TERMINATE", Const, 0, ""},
+		{"SYS_CAPGET", Const, 0, ""},
+		{"SYS_CAPSET", Const, 0, ""},
+		{"SYS_CAP_ENTER", Const, 0, ""},
+		{"SYS_CAP_FCNTLS_GET", Const, 1, ""},
+		{"SYS_CAP_FCNTLS_LIMIT", Const, 1, ""},
+		{"SYS_CAP_GETMODE", Const, 0, ""},
+		{"SYS_CAP_GETRIGHTS", Const, 0, ""},
+		{"SYS_CAP_IOCTLS_GET", Const, 1, ""},
+		{"SYS_CAP_IOCTLS_LIMIT", Const, 1, ""},
+		{"SYS_CAP_NEW", Const, 0, ""},
+		{"SYS_CAP_RIGHTS_GET", Const, 1, ""},
+		{"SYS_CAP_RIGHTS_LIMIT", Const, 1, ""},
+		{"SYS_CHDIR", Const, 0, ""},
+		{"SYS_CHFLAGS", Const, 0, ""},
+		{"SYS_CHFLAGSAT", Const, 3, ""},
+		{"SYS_CHMOD", Const, 0, ""},
+		{"SYS_CHMOD_EXTENDED", Const, 0, ""},
+		{"SYS_CHOWN", Const, 0, ""},
+		{"SYS_CHOWN32", Const, 0, ""},
+		{"SYS_CHROOT", Const, 0, ""},
+		{"SYS_CHUD", Const, 0, ""},
+		{"SYS_CLOCK_ADJTIME", Const, 0, ""},
+		{"SYS_CLOCK_GETCPUCLOCKID2", Const, 1, ""},
+		{"SYS_CLOCK_GETRES", Const, 0, ""},
+		{"SYS_CLOCK_GETTIME", Const, 0, ""},
+		{"SYS_CLOCK_NANOSLEEP", Const, 0, ""},
+		{"SYS_CLOCK_SETTIME", Const, 0, ""},
+		{"SYS_CLONE", Const, 0, ""},
+		{"SYS_CLOSE", Const, 0, ""},
+		{"SYS_CLOSEFROM", Const, 0, ""},
+		{"SYS_CLOSE_NOCANCEL", Const, 0, ""},
+		{"SYS_CONNECT", Const, 0, ""},
+		{"SYS_CONNECTAT", Const, 3, ""},
+		{"SYS_CONNECT_NOCANCEL", Const, 0, ""},
+		{"SYS_COPYFILE", Const, 0, ""},
+		{"SYS_CPUSET", Const, 0, ""},
+		{"SYS_CPUSET_GETAFFINITY", Const, 0, ""},
+		{"SYS_CPUSET_GETID", Const, 0, ""},
+		{"SYS_CPUSET_SETAFFINITY", Const, 0, ""},
+		{"SYS_CPUSET_SETID", Const, 0, ""},
+		{"SYS_CREAT", Const, 0, ""},
+		{"SYS_CREATE_MODULE", Const, 0, ""},
+		{"SYS_CSOPS", Const, 0, ""},
+		{"SYS_CSOPS_AUDITTOKEN", Const, 16, ""},
+		{"SYS_DELETE", Const, 0, ""},
+		{"SYS_DELETE_MODULE", Const, 0, ""},
+		{"SYS_DUP", Const, 0, ""},
+		{"SYS_DUP2", Const, 0, ""},
+		{"SYS_DUP3", Const, 0, ""},
+		{"SYS_EACCESS", Const, 0, ""},
+		{"SYS_EPOLL_CREATE", Const, 0, ""},
+		{"SYS_EPOLL_CREATE1", Const, 0, ""},
+		{"SYS_EPOLL_CTL", Const, 0, ""},
+		{"SYS_EPOLL_CTL_OLD", Const, 0, ""},
+		{"SYS_EPOLL_PWAIT", Const, 0, ""},
+		{"SYS_EPOLL_WAIT", Const, 0, ""},
+		{"SYS_EPOLL_WAIT_OLD", Const, 0, ""},
+		{"SYS_EVENTFD", Const, 0, ""},
+		{"SYS_EVENTFD2", Const, 0, ""},
+		{"SYS_EXCHANGEDATA", Const, 0, ""},
+		{"SYS_EXECVE", Const, 0, ""},
+		{"SYS_EXIT", Const, 0, ""},
+		{"SYS_EXIT_GROUP", Const, 0, ""},
+		{"SYS_EXTATTRCTL", Const, 0, ""},
+		{"SYS_EXTATTR_DELETE_FD", Const, 0, ""},
+		{"SYS_EXTATTR_DELETE_FILE", Const, 0, ""},
+		{"SYS_EXTATTR_DELETE_LINK", Const, 0, ""},
+		{"SYS_EXTATTR_GET_FD", Const, 0, ""},
+		{"SYS_EXTATTR_GET_FILE", Const, 0, ""},
+		{"SYS_EXTATTR_GET_LINK", Const, 0, ""},
+		{"SYS_EXTATTR_LIST_FD", Const, 0, ""},
+		{"SYS_EXTATTR_LIST_FILE", Const, 0, ""},
+		{"SYS_EXTATTR_LIST_LINK", Const, 0, ""},
+		{"SYS_EXTATTR_SET_FD", Const, 0, ""},
+		{"SYS_EXTATTR_SET_FILE", Const, 0, ""},
+		{"SYS_EXTATTR_SET_LINK", Const, 0, ""},
+		{"SYS_FACCESSAT", Const, 0, ""},
+		{"SYS_FADVISE64", Const, 0, ""},
+		{"SYS_FADVISE64_64", Const, 0, ""},
+		{"SYS_FALLOCATE", Const, 0, ""},
+		{"SYS_FANOTIFY_INIT", Const, 0, ""},
+		{"SYS_FANOTIFY_MARK", Const, 0, ""},
+		{"SYS_FCHDIR", Const, 0, ""},
+		{"SYS_FCHFLAGS", Const, 0, ""},
+		{"SYS_FCHMOD", Const, 0, ""},
+		{"SYS_FCHMODAT", Const, 0, ""},
+		{"SYS_FCHMOD_EXTENDED", Const, 0, ""},
+		{"SYS_FCHOWN", Const, 0, ""},
+		{"SYS_FCHOWN32", Const, 0, ""},
+		{"SYS_FCHOWNAT", Const, 0, ""},
+		{"SYS_FCHROOT", Const, 1, ""},
+		{"SYS_FCNTL", Const, 0, ""},
+		{"SYS_FCNTL64", Const, 0, ""},
+		{"SYS_FCNTL_NOCANCEL", Const, 0, ""},
+		{"SYS_FDATASYNC", Const, 0, ""},
+		{"SYS_FEXECVE", Const, 0, ""},
+		{"SYS_FFCLOCK_GETCOUNTER", Const, 0, ""},
+		{"SYS_FFCLOCK_GETESTIMATE", Const, 0, ""},
+		{"SYS_FFCLOCK_SETESTIMATE", Const, 0, ""},
+		{"SYS_FFSCTL", Const, 0, ""},
+		{"SYS_FGETATTRLIST", Const, 0, ""},
+		{"SYS_FGETXATTR", Const, 0, ""},
+		{"SYS_FHOPEN", Const, 0, ""},
+		{"SYS_FHSTAT", Const, 0, ""},
+		{"SYS_FHSTATFS", Const, 0, ""},
+		{"SYS_FILEPORT_MAKEFD", Const, 0, ""},
+		{"SYS_FILEPORT_MAKEPORT", Const, 0, ""},
+		{"SYS_FKTRACE", Const, 1, ""},
+		{"SYS_FLISTXATTR", Const, 0, ""},
+		{"SYS_FLOCK", Const, 0, ""},
+		{"SYS_FORK", Const, 0, ""},
+		{"SYS_FPATHCONF", Const, 0, ""},
+		{"SYS_FREEBSD6_FTRUNCATE", Const, 0, ""},
+		{"SYS_FREEBSD6_LSEEK", Const, 0, ""},
+		{"SYS_FREEBSD6_MMAP", Const, 0, ""},
+		{"SYS_FREEBSD6_PREAD", Const, 0, ""},
+		{"SYS_FREEBSD6_PWRITE", Const, 0, ""},
+		{"SYS_FREEBSD6_TRUNCATE", Const, 0, ""},
+		{"SYS_FREMOVEXATTR", Const, 0, ""},
+		{"SYS_FSCTL", Const, 0, ""},
+		{"SYS_FSETATTRLIST", Const, 0, ""},
+		{"SYS_FSETXATTR", Const, 0, ""},
+		{"SYS_FSGETPATH", Const, 0, ""},
+		{"SYS_FSTAT", Const, 0, ""},
+		{"SYS_FSTAT64", Const, 0, ""},
+		{"SYS_FSTAT64_EXTENDED", Const, 0, ""},
+		{"SYS_FSTATAT", Const, 0, ""},
+		{"SYS_FSTATAT64", Const, 0, ""},
+		{"SYS_FSTATFS", Const, 0, ""},
+		{"SYS_FSTATFS64", Const, 0, ""},
+		{"SYS_FSTATV", Const, 0, ""},
+		{"SYS_FSTATVFS1", Const, 1, ""},
+		{"SYS_FSTAT_EXTENDED", Const, 0, ""},
+		{"SYS_FSYNC", Const, 0, ""},
+		{"SYS_FSYNC_NOCANCEL", Const, 0, ""},
+		{"SYS_FSYNC_RANGE", Const, 1, ""},
+		{"SYS_FTIME", Const, 0, ""},
+		{"SYS_FTRUNCATE", Const, 0, ""},
+		{"SYS_FTRUNCATE64", Const, 0, ""},
+		{"SYS_FUTEX", Const, 0, ""},
+		{"SYS_FUTIMENS", Const, 1, ""},
+		{"SYS_FUTIMES", Const, 0, ""},
+		{"SYS_FUTIMESAT", Const, 0, ""},
+		{"SYS_GETATTRLIST", Const, 0, ""},
+		{"SYS_GETAUDIT", Const, 0, ""},
+		{"SYS_GETAUDIT_ADDR", Const, 0, ""},
+		{"SYS_GETAUID", Const, 0, ""},
+		{"SYS_GETCONTEXT", Const, 0, ""},
+		{"SYS_GETCPU", Const, 0, ""},
+		{"SYS_GETCWD", Const, 0, ""},
+		{"SYS_GETDENTS", Const, 0, ""},
+		{"SYS_GETDENTS64", Const, 0, ""},
+		{"SYS_GETDIRENTRIES", Const, 0, ""},
+		{"SYS_GETDIRENTRIES64", Const, 0, ""},
+		{"SYS_GETDIRENTRIESATTR", Const, 0, ""},
+		{"SYS_GETDTABLECOUNT", Const, 1, ""},
+		{"SYS_GETDTABLESIZE", Const, 0, ""},
+		{"SYS_GETEGID", Const, 0, ""},
+		{"SYS_GETEGID32", Const, 0, ""},
+		{"SYS_GETEUID", Const, 0, ""},
+		{"SYS_GETEUID32", Const, 0, ""},
+		{"SYS_GETFH", Const, 0, ""},
+		{"SYS_GETFSSTAT", Const, 0, ""},
+		{"SYS_GETFSSTAT64", Const, 0, ""},
+		{"SYS_GETGID", Const, 0, ""},
+		{"SYS_GETGID32", Const, 0, ""},
+		{"SYS_GETGROUPS", Const, 0, ""},
+		{"SYS_GETGROUPS32", Const, 0, ""},
+		{"SYS_GETHOSTUUID", Const, 0, ""},
+		{"SYS_GETITIMER", Const, 0, ""},
+		{"SYS_GETLCID", Const, 0, ""},
+		{"SYS_GETLOGIN", Const, 0, ""},
+		{"SYS_GETLOGINCLASS", Const, 0, ""},
+		{"SYS_GETPEERNAME", Const, 0, ""},
+		{"SYS_GETPGID", Const, 0, ""},
+		{"SYS_GETPGRP", Const, 0, ""},
+		{"SYS_GETPID", Const, 0, ""},
+		{"SYS_GETPMSG", Const, 0, ""},
+		{"SYS_GETPPID", Const, 0, ""},
+		{"SYS_GETPRIORITY", Const, 0, ""},
+		{"SYS_GETRESGID", Const, 0, ""},
+		{"SYS_GETRESGID32", Const, 0, ""},
+		{"SYS_GETRESUID", Const, 0, ""},
+		{"SYS_GETRESUID32", Const, 0, ""},
+		{"SYS_GETRLIMIT", Const, 0, ""},
+		{"SYS_GETRTABLE", Const, 1, ""},
+		{"SYS_GETRUSAGE", Const, 0, ""},
+		{"SYS_GETSGROUPS", Const, 0, ""},
+		{"SYS_GETSID", Const, 0, ""},
+		{"SYS_GETSOCKNAME", Const, 0, ""},
+		{"SYS_GETSOCKOPT", Const, 0, ""},
+		{"SYS_GETTHRID", Const, 1, ""},
+		{"SYS_GETTID", Const, 0, ""},
+		{"SYS_GETTIMEOFDAY", Const, 0, ""},
+		{"SYS_GETUID", Const, 0, ""},
+		{"SYS_GETUID32", Const, 0, ""},
+		{"SYS_GETVFSSTAT", Const, 1, ""},
+		{"SYS_GETWGROUPS", Const, 0, ""},
+		{"SYS_GETXATTR", Const, 0, ""},
+		{"SYS_GET_KERNEL_SYMS", Const, 0, ""},
+		{"SYS_GET_MEMPOLICY", Const, 0, ""},
+		{"SYS_GET_ROBUST_LIST", Const, 0, ""},
+		{"SYS_GET_THREAD_AREA", Const, 0, ""},
+		{"SYS_GSSD_SYSCALL", Const, 14, ""},
+		{"SYS_GTTY", Const, 0, ""},
+		{"SYS_IDENTITYSVC", Const, 0, ""},
+		{"SYS_IDLE", Const, 0, ""},
+		{"SYS_INITGROUPS", Const, 0, ""},
+		{"SYS_INIT_MODULE", Const, 0, ""},
+		{"SYS_INOTIFY_ADD_WATCH", Const, 0, ""},
+		{"SYS_INOTIFY_INIT", Const, 0, ""},
+		{"SYS_INOTIFY_INIT1", Const, 0, ""},
+		{"SYS_INOTIFY_RM_WATCH", Const, 0, ""},
+		{"SYS_IOCTL", Const, 0, ""},
+		{"SYS_IOPERM", Const, 0, ""},
+		{"SYS_IOPL", Const, 0, ""},
+		{"SYS_IOPOLICYSYS", Const, 0, ""},
+		{"SYS_IOPRIO_GET", Const, 0, ""},
+		{"SYS_IOPRIO_SET", Const, 0, ""},
+		{"SYS_IO_CANCEL", Const, 0, ""},
+		{"SYS_IO_DESTROY", Const, 0, ""},
+		{"SYS_IO_GETEVENTS", Const, 0, ""},
+		{"SYS_IO_SETUP", Const, 0, ""},
+		{"SYS_IO_SUBMIT", Const, 0, ""},
+		{"SYS_IPC", Const, 0, ""},
+		{"SYS_ISSETUGID", Const, 0, ""},
+		{"SYS_JAIL", Const, 0, ""},
+		{"SYS_JAIL_ATTACH", Const, 0, ""},
+		{"SYS_JAIL_GET", Const, 0, ""},
+		{"SYS_JAIL_REMOVE", Const, 0, ""},
+		{"SYS_JAIL_SET", Const, 0, ""},
+		{"SYS_KAS_INFO", Const, 16, ""},
+		{"SYS_KDEBUG_TRACE", Const, 0, ""},
+		{"SYS_KENV", Const, 0, ""},
+		{"SYS_KEVENT", Const, 0, ""},
+		{"SYS_KEVENT64", Const, 0, ""},
+		{"SYS_KEXEC_LOAD", Const, 0, ""},
+		{"SYS_KEYCTL", Const, 0, ""},
+		{"SYS_KILL", Const, 0, ""},
+		{"SYS_KLDFIND", Const, 0, ""},
+		{"SYS_KLDFIRSTMOD", Const, 0, ""},
+		{"SYS_KLDLOAD", Const, 0, ""},
+		{"SYS_KLDNEXT", Const, 0, ""},
+		{"SYS_KLDSTAT", Const, 0, ""},
+		{"SYS_KLDSYM", Const, 0, ""},
+		{"SYS_KLDUNLOAD", Const, 0, ""},
+		{"SYS_KLDUNLOADF", Const, 0, ""},
+		{"SYS_KMQ_NOTIFY", Const, 14, ""},
+		{"SYS_KMQ_OPEN", Const, 14, ""},
+		{"SYS_KMQ_SETATTR", Const, 14, ""},
+		{"SYS_KMQ_TIMEDRECEIVE", Const, 14, ""},
+		{"SYS_KMQ_TIMEDSEND", Const, 14, ""},
+		{"SYS_KMQ_UNLINK", Const, 14, ""},
+		{"SYS_KQUEUE", Const, 0, ""},
+		{"SYS_KQUEUE1", Const, 1, ""},
+		{"SYS_KSEM_CLOSE", Const, 14, ""},
+		{"SYS_KSEM_DESTROY", Const, 14, ""},
+		{"SYS_KSEM_GETVALUE", Const, 14, ""},
+		{"SYS_KSEM_INIT", Const, 14, ""},
+		{"SYS_KSEM_OPEN", Const, 14, ""},
+		{"SYS_KSEM_POST", Const, 14, ""},
+		{"SYS_KSEM_TIMEDWAIT", Const, 14, ""},
+		{"SYS_KSEM_TRYWAIT", Const, 14, ""},
+		{"SYS_KSEM_UNLINK", Const, 14, ""},
+		{"SYS_KSEM_WAIT", Const, 14, ""},
+		{"SYS_KTIMER_CREATE", Const, 0, ""},
+		{"SYS_KTIMER_DELETE", Const, 0, ""},
+		{"SYS_KTIMER_GETOVERRUN", Const, 0, ""},
+		{"SYS_KTIMER_GETTIME", Const, 0, ""},
+		{"SYS_KTIMER_SETTIME", Const, 0, ""},
+		{"SYS_KTRACE", Const, 0, ""},
+		{"SYS_LCHFLAGS", Const, 0, ""},
+		{"SYS_LCHMOD", Const, 0, ""},
+		{"SYS_LCHOWN", Const, 0, ""},
+		{"SYS_LCHOWN32", Const, 0, ""},
+		{"SYS_LEDGER", Const, 16, ""},
+		{"SYS_LGETFH", Const, 0, ""},
+		{"SYS_LGETXATTR", Const, 0, ""},
+		{"SYS_LINK", Const, 0, ""},
+		{"SYS_LINKAT", Const, 0, ""},
+		{"SYS_LIO_LISTIO", Const, 0, ""},
+		{"SYS_LISTEN", Const, 0, ""},
+		{"SYS_LISTXATTR", Const, 0, ""},
+		{"SYS_LLISTXATTR", Const, 0, ""},
+		{"SYS_LOCK", Const, 0, ""},
+		{"SYS_LOOKUP_DCOOKIE", Const, 0, ""},
+		{"SYS_LPATHCONF", Const, 0, ""},
+		{"SYS_LREMOVEXATTR", Const, 0, ""},
+		{"SYS_LSEEK", Const, 0, ""},
+		{"SYS_LSETXATTR", Const, 0, ""},
+		{"SYS_LSTAT", Const, 0, ""},
+		{"SYS_LSTAT64", Const, 0, ""},
+		{"SYS_LSTAT64_EXTENDED", Const, 0, ""},
+		{"SYS_LSTATV", Const, 0, ""},
+		{"SYS_LSTAT_EXTENDED", Const, 0, ""},
+		{"SYS_LUTIMES", Const, 0, ""},
+		{"SYS_MAC_SYSCALL", Const, 0, ""},
+		{"SYS_MADVISE", Const, 0, ""},
+		{"SYS_MADVISE1", Const, 0, ""},
+		{"SYS_MAXSYSCALL", Const, 0, ""},
+		{"SYS_MBIND", Const, 0, ""},
+		{"SYS_MIGRATE_PAGES", Const, 0, ""},
+		{"SYS_MINCORE", Const, 0, ""},
+		{"SYS_MINHERIT", Const, 0, ""},
+		{"SYS_MKCOMPLEX", Const, 0, ""},
+		{"SYS_MKDIR", Const, 0, ""},
+		{"SYS_MKDIRAT", Const, 0, ""},
+		{"SYS_MKDIR_EXTENDED", Const, 0, ""},
+		{"SYS_MKFIFO", Const, 0, ""},
+		{"SYS_MKFIFOAT", Const, 0, ""},
+		{"SYS_MKFIFO_EXTENDED", Const, 0, ""},
+		{"SYS_MKNOD", Const, 0, ""},
+		{"SYS_MKNODAT", Const, 0, ""},
+		{"SYS_MLOCK", Const, 0, ""},
+		{"SYS_MLOCKALL", Const, 0, ""},
+		{"SYS_MMAP", Const, 0, ""},
+		{"SYS_MMAP2", Const, 0, ""},
+		{"SYS_MODCTL", Const, 1, ""},
+		{"SYS_MODFIND", Const, 0, ""},
+		{"SYS_MODFNEXT", Const, 0, ""},
+		{"SYS_MODIFY_LDT", Const, 0, ""},
+		{"SYS_MODNEXT", Const, 0, ""},
+		{"SYS_MODSTAT", Const, 0, ""},
+		{"SYS_MODWATCH", Const, 0, ""},
+		{"SYS_MOUNT", Const, 0, ""},
+		{"SYS_MOVE_PAGES", Const, 0, ""},
+		{"SYS_MPROTECT", Const, 0, ""},
+		{"SYS_MPX", Const, 0, ""},
+		{"SYS_MQUERY", Const, 1, ""},
+		{"SYS_MQ_GETSETATTR", Const, 0, ""},
+		{"SYS_MQ_NOTIFY", Const, 0, ""},
+		{"SYS_MQ_OPEN", Const, 0, ""},
+		{"SYS_MQ_TIMEDRECEIVE", Const, 0, ""},
+		{"SYS_MQ_TIMEDSEND", Const, 0, ""},
+		{"SYS_MQ_UNLINK", Const, 0, ""},
+		{"SYS_MREMAP", Const, 0, ""},
+		{"SYS_MSGCTL", Const, 0, ""},
+		{"SYS_MSGGET", Const, 0, ""},
+		{"SYS_MSGRCV", Const, 0, ""},
+		{"SYS_MSGRCV_NOCANCEL", Const, 0, ""},
+		{"SYS_MSGSND", Const, 0, ""},
+		{"SYS_MSGSND_NOCANCEL", Const, 0, ""},
+		{"SYS_MSGSYS", Const, 0, ""},
+		{"SYS_MSYNC", Const, 0, ""},
+		{"SYS_MSYNC_NOCANCEL", Const, 0, ""},
+		{"SYS_MUNLOCK", Const, 0, ""},
+		{"SYS_MUNLOCKALL", Const, 0, ""},
+		{"SYS_MUNMAP", Const, 0, ""},
+		{"SYS_NAME_TO_HANDLE_AT", Const, 0, ""},
+		{"SYS_NANOSLEEP", Const, 0, ""},
+		{"SYS_NEWFSTATAT", Const, 0, ""},
+		{"SYS_NFSCLNT", Const, 0, ""},
+		{"SYS_NFSSERVCTL", Const, 0, ""},
+		{"SYS_NFSSVC", Const, 0, ""},
+		{"SYS_NFSTAT", Const, 0, ""},
+		{"SYS_NICE", Const, 0, ""},
+		{"SYS_NLM_SYSCALL", Const, 14, ""},
+		{"SYS_NLSTAT", Const, 0, ""},
+		{"SYS_NMOUNT", Const, 0, ""},
+		{"SYS_NSTAT", Const, 0, ""},
+		{"SYS_NTP_ADJTIME", Const, 0, ""},
+		{"SYS_NTP_GETTIME", Const, 0, ""},
+		{"SYS_NUMA_GETAFFINITY", Const, 14, ""},
+		{"SYS_NUMA_SETAFFINITY", Const, 14, ""},
+		{"SYS_OABI_SYSCALL_BASE", Const, 0, ""},
+		{"SYS_OBREAK", Const, 0, ""},
+		{"SYS_OLDFSTAT", Const, 0, ""},
+		{"SYS_OLDLSTAT", Const, 0, ""},
+		{"SYS_OLDOLDUNAME", Const, 0, ""},
+		{"SYS_OLDSTAT", Const, 0, ""},
+		{"SYS_OLDUNAME", Const, 0, ""},
+		{"SYS_OPEN", Const, 0, ""},
+		{"SYS_OPENAT", Const, 0, ""},
+		{"SYS_OPENBSD_POLL", Const, 0, ""},
+		{"SYS_OPEN_BY_HANDLE_AT", Const, 0, ""},
+		{"SYS_OPEN_DPROTECTED_NP", Const, 16, ""},
+		{"SYS_OPEN_EXTENDED", Const, 0, ""},
+		{"SYS_OPEN_NOCANCEL", Const, 0, ""},
+		{"SYS_OVADVISE", Const, 0, ""},
+		{"SYS_PACCEPT", Const, 1, ""},
+		{"SYS_PATHCONF", Const, 0, ""},
+		{"SYS_PAUSE", Const, 0, ""},
+		{"SYS_PCICONFIG_IOBASE", Const, 0, ""},
+		{"SYS_PCICONFIG_READ", Const, 0, ""},
+		{"SYS_PCICONFIG_WRITE", Const, 0, ""},
+		{"SYS_PDFORK", Const, 0, ""},
+		{"SYS_PDGETPID", Const, 0, ""},
+		{"SYS_PDKILL", Const, 0, ""},
+		{"SYS_PERF_EVENT_OPEN", Const, 0, ""},
+		{"SYS_PERSONALITY", Const, 0, ""},
+		{"SYS_PID_HIBERNATE", Const, 0, ""},
+		{"SYS_PID_RESUME", Const, 0, ""},
+		{"SYS_PID_SHUTDOWN_SOCKETS", Const, 0, ""},
+		{"SYS_PID_SUSPEND", Const, 0, ""},
+		{"SYS_PIPE", Const, 0, ""},
+		{"SYS_PIPE2", Const, 0, ""},
+		{"SYS_PIVOT_ROOT", Const, 0, ""},
+		{"SYS_PMC_CONTROL", Const, 1, ""},
+		{"SYS_PMC_GET_INFO", Const, 1, ""},
+		{"SYS_POLL", Const, 0, ""},
+		{"SYS_POLLTS", Const, 1, ""},
+		{"SYS_POLL_NOCANCEL", Const, 0, ""},
+		{"SYS_POSIX_FADVISE", Const, 0, ""},
+		{"SYS_POSIX_FALLOCATE", Const, 0, ""},
+		{"SYS_POSIX_OPENPT", Const, 0, ""},
+		{"SYS_POSIX_SPAWN", Const, 0, ""},
+		{"SYS_PPOLL", Const, 0, ""},
+		{"SYS_PRCTL", Const, 0, ""},
+		{"SYS_PREAD", Const, 0, ""},
+		{"SYS_PREAD64", Const, 0, ""},
+		{"SYS_PREADV", Const, 0, ""},
+		{"SYS_PREAD_NOCANCEL", Const, 0, ""},
+		{"SYS_PRLIMIT64", Const, 0, ""},
+		{"SYS_PROCCTL", Const, 3, ""},
+		{"SYS_PROCESS_POLICY", Const, 0, ""},
+		{"SYS_PROCESS_VM_READV", Const, 0, ""},
+		{"SYS_PROCESS_VM_WRITEV", Const, 0, ""},
+		{"SYS_PROC_INFO", Const, 0, ""},
+		{"SYS_PROF", Const, 0, ""},
+		{"SYS_PROFIL", Const, 0, ""},
+		{"SYS_PSELECT", Const, 0, ""},
+		{"SYS_PSELECT6", Const, 0, ""},
+		{"SYS_PSET_ASSIGN", Const, 1, ""},
+		{"SYS_PSET_CREATE", Const, 1, ""},
+		{"SYS_PSET_DESTROY", Const, 1, ""},
+		{"SYS_PSYNCH_CVBROAD", Const, 0, ""},
+		{"SYS_PSYNCH_CVCLRPREPOST", Const, 0, ""},
+		{"SYS_PSYNCH_CVSIGNAL", Const, 0, ""},
+		{"SYS_PSYNCH_CVWAIT", Const, 0, ""},
+		{"SYS_PSYNCH_MUTEXDROP", Const, 0, ""},
+		{"SYS_PSYNCH_MUTEXWAIT", Const, 0, ""},
+		{"SYS_PSYNCH_RW_DOWNGRADE", Const, 0, ""},
+		{"SYS_PSYNCH_RW_LONGRDLOCK", Const, 0, ""},
+		{"SYS_PSYNCH_RW_RDLOCK", Const, 0, ""},
+		{"SYS_PSYNCH_RW_UNLOCK", Const, 0, ""},
+		{"SYS_PSYNCH_RW_UNLOCK2", Const, 0, ""},
+		{"SYS_PSYNCH_RW_UPGRADE", Const, 0, ""},
+		{"SYS_PSYNCH_RW_WRLOCK", Const, 0, ""},
+		{"SYS_PSYNCH_RW_YIELDWRLOCK", Const, 0, ""},
+		{"SYS_PTRACE", Const, 0, ""},
+		{"SYS_PUTPMSG", Const, 0, ""},
+		{"SYS_PWRITE", Const, 0, ""},
+		{"SYS_PWRITE64", Const, 0, ""},
+		{"SYS_PWRITEV", Const, 0, ""},
+		{"SYS_PWRITE_NOCANCEL", Const, 0, ""},
+		{"SYS_QUERY_MODULE", Const, 0, ""},
+		{"SYS_QUOTACTL", Const, 0, ""},
+		{"SYS_RASCTL", Const, 1, ""},
+		{"SYS_RCTL_ADD_RULE", Const, 0, ""},
+		{"SYS_RCTL_GET_LIMITS", Const, 0, ""},
+		{"SYS_RCTL_GET_RACCT", Const, 0, ""},
+		{"SYS_RCTL_GET_RULES", Const, 0, ""},
+		{"SYS_RCTL_REMOVE_RULE", Const, 0, ""},
+		{"SYS_READ", Const, 0, ""},
+		{"SYS_READAHEAD", Const, 0, ""},
+		{"SYS_READDIR", Const, 0, ""},
+		{"SYS_READLINK", Const, 0, ""},
+		{"SYS_READLINKAT", Const, 0, ""},
+		{"SYS_READV", Const, 0, ""},
+		{"SYS_READV_NOCANCEL", Const, 0, ""},
+		{"SYS_READ_NOCANCEL", Const, 0, ""},
+		{"SYS_REBOOT", Const, 0, ""},
+		{"SYS_RECV", Const, 0, ""},
+		{"SYS_RECVFROM", Const, 0, ""},
+		{"SYS_RECVFROM_NOCANCEL", Const, 0, ""},
+		{"SYS_RECVMMSG", Const, 0, ""},
+		{"SYS_RECVMSG", Const, 0, ""},
+		{"SYS_RECVMSG_NOCANCEL", Const, 0, ""},
+		{"SYS_REMAP_FILE_PAGES", Const, 0, ""},
+		{"SYS_REMOVEXATTR", Const, 0, ""},
+		{"SYS_RENAME", Const, 0, ""},
+		{"SYS_RENAMEAT", Const, 0, ""},
+		{"SYS_REQUEST_KEY", Const, 0, ""},
+		{"SYS_RESTART_SYSCALL", Const, 0, ""},
+		{"SYS_REVOKE", Const, 0, ""},
+		{"SYS_RFORK", Const, 0, ""},
+		{"SYS_RMDIR", Const, 0, ""},
+		{"SYS_RTPRIO", Const, 0, ""},
+		{"SYS_RTPRIO_THREAD", Const, 0, ""},
+		{"SYS_RT_SIGACTION", Const, 0, ""},
+		{"SYS_RT_SIGPENDING", Const, 0, ""},
+		{"SYS_RT_SIGPROCMASK", Const, 0, ""},
+		{"SYS_RT_SIGQUEUEINFO", Const, 0, ""},
+		{"SYS_RT_SIGRETURN", Const, 0, ""},
+		{"SYS_RT_SIGSUSPEND", Const, 0, ""},
+		{"SYS_RT_SIGTIMEDWAIT", Const, 0, ""},
+		{"SYS_RT_TGSIGQUEUEINFO", Const, 0, ""},
+		{"SYS_SBRK", Const, 0, ""},
+		{"SYS_SCHED_GETAFFINITY", Const, 0, ""},
+		{"SYS_SCHED_GETPARAM", Const, 0, ""},
+		{"SYS_SCHED_GETSCHEDULER", Const, 0, ""},
+		{"SYS_SCHED_GET_PRIORITY_MAX", Const, 0, ""},
+		{"SYS_SCHED_GET_PRIORITY_MIN", Const, 0, ""},
+		{"SYS_SCHED_RR_GET_INTERVAL", Const, 0, ""},
+		{"SYS_SCHED_SETAFFINITY", Const, 0, ""},
+		{"SYS_SCHED_SETPARAM", Const, 0, ""},
+		{"SYS_SCHED_SETSCHEDULER", Const, 0, ""},
+		{"SYS_SCHED_YIELD", Const, 0, ""},
+		{"SYS_SCTP_GENERIC_RECVMSG", Const, 0, ""},
+		{"SYS_SCTP_GENERIC_SENDMSG", Const, 0, ""},
+		{"SYS_SCTP_GENERIC_SENDMSG_IOV", Const, 0, ""},
+		{"SYS_SCTP_PEELOFF", Const, 0, ""},
+		{"SYS_SEARCHFS", Const, 0, ""},
+		{"SYS_SECURITY", Const, 0, ""},
+		{"SYS_SELECT", Const, 0, ""},
+		{"SYS_SELECT_NOCANCEL", Const, 0, ""},
+		{"SYS_SEMCONFIG", Const, 1, ""},
+		{"SYS_SEMCTL", Const, 0, ""},
+		{"SYS_SEMGET", Const, 0, ""},
+		{"SYS_SEMOP", Const, 0, ""},
+		{"SYS_SEMSYS", Const, 0, ""},
+		{"SYS_SEMTIMEDOP", Const, 0, ""},
+		{"SYS_SEM_CLOSE", Const, 0, ""},
+		{"SYS_SEM_DESTROY", Const, 0, ""},
+		{"SYS_SEM_GETVALUE", Const, 0, ""},
+		{"SYS_SEM_INIT", Const, 0, ""},
+		{"SYS_SEM_OPEN", Const, 0, ""},
+		{"SYS_SEM_POST", Const, 0, ""},
+		{"SYS_SEM_TRYWAIT", Const, 0, ""},
+		{"SYS_SEM_UNLINK", Const, 0, ""},
+		{"SYS_SEM_WAIT", Const, 0, ""},
+		{"SYS_SEM_WAIT_NOCANCEL", Const, 0, ""},
+		{"SYS_SEND", Const, 0, ""},
+		{"SYS_SENDFILE", Const, 0, ""},
+		{"SYS_SENDFILE64", Const, 0, ""},
+		{"SYS_SENDMMSG", Const, 0, ""},
+		{"SYS_SENDMSG", Const, 0, ""},
+		{"SYS_SENDMSG_NOCANCEL", Const, 0, ""},
+		{"SYS_SENDTO", Const, 0, ""},
+		{"SYS_SENDTO_NOCANCEL", Const, 0, ""},
+		{"SYS_SETATTRLIST", Const, 0, ""},
+		{"SYS_SETAUDIT", Const, 0, ""},
+		{"SYS_SETAUDIT_ADDR", Const, 0, ""},
+		{"SYS_SETAUID", Const, 0, ""},
+		{"SYS_SETCONTEXT", Const, 0, ""},
+		{"SYS_SETDOMAINNAME", Const, 0, ""},
+		{"SYS_SETEGID", Const, 0, ""},
+		{"SYS_SETEUID", Const, 0, ""},
+		{"SYS_SETFIB", Const, 0, ""},
+		{"SYS_SETFSGID", Const, 0, ""},
+		{"SYS_SETFSGID32", Const, 0, ""},
+		{"SYS_SETFSUID", Const, 0, ""},
+		{"SYS_SETFSUID32", Const, 0, ""},
+		{"SYS_SETGID", Const, 0, ""},
+		{"SYS_SETGID32", Const, 0, ""},
+		{"SYS_SETGROUPS", Const, 0, ""},
+		{"SYS_SETGROUPS32", Const, 0, ""},
+		{"SYS_SETHOSTNAME", Const, 0, ""},
+		{"SYS_SETITIMER", Const, 0, ""},
+		{"SYS_SETLCID", Const, 0, ""},
+		{"SYS_SETLOGIN", Const, 0, ""},
+		{"SYS_SETLOGINCLASS", Const, 0, ""},
+		{"SYS_SETNS", Const, 0, ""},
+		{"SYS_SETPGID", Const, 0, ""},
+		{"SYS_SETPRIORITY", Const, 0, ""},
+		{"SYS_SETPRIVEXEC", Const, 0, ""},
+		{"SYS_SETREGID", Const, 0, ""},
+		{"SYS_SETREGID32", Const, 0, ""},
+		{"SYS_SETRESGID", Const, 0, ""},
+		{"SYS_SETRESGID32", Const, 0, ""},
+		{"SYS_SETRESUID", Const, 0, ""},
+		{"SYS_SETRESUID32", Const, 0, ""},
+		{"SYS_SETREUID", Const, 0, ""},
+		{"SYS_SETREUID32", Const, 0, ""},
+		{"SYS_SETRLIMIT", Const, 0, ""},
+		{"SYS_SETRTABLE", Const, 1, ""},
+		{"SYS_SETSGROUPS", Const, 0, ""},
+		{"SYS_SETSID", Const, 0, ""},
+		{"SYS_SETSOCKOPT", Const, 0, ""},
+		{"SYS_SETTID", Const, 0, ""},
+		{"SYS_SETTID_WITH_PID", Const, 0, ""},
+		{"SYS_SETTIMEOFDAY", Const, 0, ""},
+		{"SYS_SETUID", Const, 0, ""},
+		{"SYS_SETUID32", Const, 0, ""},
+		{"SYS_SETWGROUPS", Const, 0, ""},
+		{"SYS_SETXATTR", Const, 0, ""},
+		{"SYS_SET_MEMPOLICY", Const, 0, ""},
+		{"SYS_SET_ROBUST_LIST", Const, 0, ""},
+		{"SYS_SET_THREAD_AREA", Const, 0, ""},
+		{"SYS_SET_TID_ADDRESS", Const, 0, ""},
+		{"SYS_SGETMASK", Const, 0, ""},
+		{"SYS_SHARED_REGION_CHECK_NP", Const, 0, ""},
+		{"SYS_SHARED_REGION_MAP_AND_SLIDE_NP", Const, 0, ""},
+		{"SYS_SHMAT", Const, 0, ""},
+		{"SYS_SHMCTL", Const, 0, ""},
+		{"SYS_SHMDT", Const, 0, ""},
+		{"SYS_SHMGET", Const, 0, ""},
+		{"SYS_SHMSYS", Const, 0, ""},
+		{"SYS_SHM_OPEN", Const, 0, ""},
+		{"SYS_SHM_UNLINK", Const, 0, ""},
+		{"SYS_SHUTDOWN", Const, 0, ""},
+		{"SYS_SIGACTION", Const, 0, ""},
+		{"SYS_SIGALTSTACK", Const, 0, ""},
+		{"SYS_SIGNAL", Const, 0, ""},
+		{"SYS_SIGNALFD", Const, 0, ""},
+		{"SYS_SIGNALFD4", Const, 0, ""},
+		{"SYS_SIGPENDING", Const, 0, ""},
+		{"SYS_SIGPROCMASK", Const, 0, ""},
+		{"SYS_SIGQUEUE", Const, 0, ""},
+		{"SYS_SIGQUEUEINFO", Const, 1, ""},
+		{"SYS_SIGRETURN", Const, 0, ""},
+		{"SYS_SIGSUSPEND", Const, 0, ""},
+		{"SYS_SIGSUSPEND_NOCANCEL", Const, 0, ""},
+		{"SYS_SIGTIMEDWAIT", Const, 0, ""},
+		{"SYS_SIGWAIT", Const, 0, ""},
+		{"SYS_SIGWAITINFO", Const, 0, ""},
+		{"SYS_SOCKET", Const, 0, ""},
+		{"SYS_SOCKETCALL", Const, 0, ""},
+		{"SYS_SOCKETPAIR", Const, 0, ""},
+		{"SYS_SPLICE", Const, 0, ""},
+		{"SYS_SSETMASK", Const, 0, ""},
+		{"SYS_SSTK", Const, 0, ""},
+		{"SYS_STACK_SNAPSHOT", Const, 0, ""},
+		{"SYS_STAT", Const, 0, ""},
+		{"SYS_STAT64", Const, 0, ""},
+		{"SYS_STAT64_EXTENDED", Const, 0, ""},
+		{"SYS_STATFS", Const, 0, ""},
+		{"SYS_STATFS64", Const, 0, ""},
+		{"SYS_STATV", Const, 0, ""},
+		{"SYS_STATVFS1", Const, 1, ""},
+		{"SYS_STAT_EXTENDED", Const, 0, ""},
+		{"SYS_STIME", Const, 0, ""},
+		{"SYS_STTY", Const, 0, ""},
+		{"SYS_SWAPCONTEXT", Const, 0, ""},
+		{"SYS_SWAPCTL", Const, 1, ""},
+		{"SYS_SWAPOFF", Const, 0, ""},
+		{"SYS_SWAPON", Const, 0, ""},
+		{"SYS_SYMLINK", Const, 0, ""},
+		{"SYS_SYMLINKAT", Const, 0, ""},
+		{"SYS_SYNC", Const, 0, ""},
+		{"SYS_SYNCFS", Const, 0, ""},
+		{"SYS_SYNC_FILE_RANGE", Const, 0, ""},
+		{"SYS_SYSARCH", Const, 0, ""},
+		{"SYS_SYSCALL", Const, 0, ""},
+		{"SYS_SYSCALL_BASE", Const, 0, ""},
+		{"SYS_SYSFS", Const, 0, ""},
+		{"SYS_SYSINFO", Const, 0, ""},
+		{"SYS_SYSLOG", Const, 0, ""},
+		{"SYS_TEE", Const, 0, ""},
+		{"SYS_TGKILL", Const, 0, ""},
+		{"SYS_THREAD_SELFID", Const, 0, ""},
+		{"SYS_THR_CREATE", Const, 0, ""},
+		{"SYS_THR_EXIT", Const, 0, ""},
+		{"SYS_THR_KILL", Const, 0, ""},
+		{"SYS_THR_KILL2", Const, 0, ""},
+		{"SYS_THR_NEW", Const, 0, ""},
+		{"SYS_THR_SELF", Const, 0, ""},
+		{"SYS_THR_SET_NAME", Const, 0, ""},
+		{"SYS_THR_SUSPEND", Const, 0, ""},
+		{"SYS_THR_WAKE", Const, 0, ""},
+		{"SYS_TIME", Const, 0, ""},
+		{"SYS_TIMERFD_CREATE", Const, 0, ""},
+		{"SYS_TIMERFD_GETTIME", Const, 0, ""},
+		{"SYS_TIMERFD_SETTIME", Const, 0, ""},
+		{"SYS_TIMER_CREATE", Const, 0, ""},
+		{"SYS_TIMER_DELETE", Const, 0, ""},
+		{"SYS_TIMER_GETOVERRUN", Const, 0, ""},
+		{"SYS_TIMER_GETTIME", Const, 0, ""},
+		{"SYS_TIMER_SETTIME", Const, 0, ""},
+		{"SYS_TIMES", Const, 0, ""},
+		{"SYS_TKILL", Const, 0, ""},
+		{"SYS_TRUNCATE", Const, 0, ""},
+		{"SYS_TRUNCATE64", Const, 0, ""},
+		{"SYS_TUXCALL", Const, 0, ""},
+		{"SYS_UGETRLIMIT", Const, 0, ""},
+		{"SYS_ULIMIT", Const, 0, ""},
+		{"SYS_UMASK", Const, 0, ""},
+		{"SYS_UMASK_EXTENDED", Const, 0, ""},
+		{"SYS_UMOUNT", Const, 0, ""},
+		{"SYS_UMOUNT2", Const, 0, ""},
+		{"SYS_UNAME", Const, 0, ""},
+		{"SYS_UNDELETE", Const, 0, ""},
+		{"SYS_UNLINK", Const, 0, ""},
+		{"SYS_UNLINKAT", Const, 0, ""},
+		{"SYS_UNMOUNT", Const, 0, ""},
+		{"SYS_UNSHARE", Const, 0, ""},
+		{"SYS_USELIB", Const, 0, ""},
+		{"SYS_USTAT", Const, 0, ""},
+		{"SYS_UTIME", Const, 0, ""},
+		{"SYS_UTIMENSAT", Const, 0, ""},
+		{"SYS_UTIMES", Const, 0, ""},
+		{"SYS_UTRACE", Const, 0, ""},
+		{"SYS_UUIDGEN", Const, 0, ""},
+		{"SYS_VADVISE", Const, 1, ""},
+		{"SYS_VFORK", Const, 0, ""},
+		{"SYS_VHANGUP", Const, 0, ""},
+		{"SYS_VM86", Const, 0, ""},
+		{"SYS_VM86OLD", Const, 0, ""},
+		{"SYS_VMSPLICE", Const, 0, ""},
+		{"SYS_VM_PRESSURE_MONITOR", Const, 0, ""},
+		{"SYS_VSERVER", Const, 0, ""},
+		{"SYS_WAIT4", Const, 0, ""},
+		{"SYS_WAIT4_NOCANCEL", Const, 0, ""},
+		{"SYS_WAIT6", Const, 1, ""},
+		{"SYS_WAITEVENT", Const, 0, ""},
+		{"SYS_WAITID", Const, 0, ""},
+		{"SYS_WAITID_NOCANCEL", Const, 0, ""},
+		{"SYS_WAITPID", Const, 0, ""},
+		{"SYS_WATCHEVENT", Const, 0, ""},
+		{"SYS_WORKQ_KERNRETURN", Const, 0, ""},
+		{"SYS_WORKQ_OPEN", Const, 0, ""},
+		{"SYS_WRITE", Const, 0, ""},
+		{"SYS_WRITEV", Const, 0, ""},
+		{"SYS_WRITEV_NOCANCEL", Const, 0, ""},
+		{"SYS_WRITE_NOCANCEL", Const, 0, ""},
+		{"SYS_YIELD", Const, 0, ""},
+		{"SYS__LLSEEK", Const, 0, ""},
+		{"SYS__LWP_CONTINUE", Const, 1, ""},
+		{"SYS__LWP_CREATE", Const, 1, ""},
+		{"SYS__LWP_CTL", Const, 1, ""},
+		{"SYS__LWP_DETACH", Const, 1, ""},
+		{"SYS__LWP_EXIT", Const, 1, ""},
+		{"SYS__LWP_GETNAME", Const, 1, ""},
+		{"SYS__LWP_GETPRIVATE", Const, 1, ""},
+		{"SYS__LWP_KILL", Const, 1, ""},
+		{"SYS__LWP_PARK", Const, 1, ""},
+		{"SYS__LWP_SELF", Const, 1, ""},
+		{"SYS__LWP_SETNAME", Const, 1, ""},
+		{"SYS__LWP_SETPRIVATE", Const, 1, ""},
+		{"SYS__LWP_SUSPEND", Const, 1, ""},
+		{"SYS__LWP_UNPARK", Const, 1, ""},
+		{"SYS__LWP_UNPARK_ALL", Const, 1, ""},
+		{"SYS__LWP_WAIT", Const, 1, ""},
+		{"SYS__LWP_WAKEUP", Const, 1, ""},
+		{"SYS__NEWSELECT", Const, 0, ""},
+		{"SYS__PSET_BIND", Const, 1, ""},
+		{"SYS__SCHED_GETAFFINITY", Const, 1, ""},
+		{"SYS__SCHED_GETPARAM", Const, 1, ""},
+		{"SYS__SCHED_SETAFFINITY", Const, 1, ""},
+		{"SYS__SCHED_SETPARAM", Const, 1, ""},
+		{"SYS__SYSCTL", Const, 0, ""},
+		{"SYS__UMTX_LOCK", Const, 0, ""},
+		{"SYS__UMTX_OP", Const, 0, ""},
+		{"SYS__UMTX_UNLOCK", Const, 0, ""},
+		{"SYS___ACL_ACLCHECK_FD", Const, 0, ""},
+		{"SYS___ACL_ACLCHECK_FILE", Const, 0, ""},
+		{"SYS___ACL_ACLCHECK_LINK", Const, 0, ""},
+		{"SYS___ACL_DELETE_FD", Const, 0, ""},
+		{"SYS___ACL_DELETE_FILE", Const, 0, ""},
+		{"SYS___ACL_DELETE_LINK", Const, 0, ""},
+		{"SYS___ACL_GET_FD", Const, 0, ""},
+		{"SYS___ACL_GET_FILE", Const, 0, ""},
+		{"SYS___ACL_GET_LINK", Const, 0, ""},
+		{"SYS___ACL_SET_FD", Const, 0, ""},
+		{"SYS___ACL_SET_FILE", Const, 0, ""},
+		{"SYS___ACL_SET_LINK", Const, 0, ""},
+		{"SYS___CAP_RIGHTS_GET", Const, 14, ""},
+		{"SYS___CLONE", Const, 1, ""},
+		{"SYS___DISABLE_THREADSIGNAL", Const, 0, ""},
+		{"SYS___GETCWD", Const, 0, ""},
+		{"SYS___GETLOGIN", Const, 1, ""},
+		{"SYS___GET_TCB", Const, 1, ""},
+		{"SYS___MAC_EXECVE", Const, 0, ""},
+		{"SYS___MAC_GETFSSTAT", Const, 0, ""},
+		{"SYS___MAC_GET_FD", Const, 0, ""},
+		{"SYS___MAC_GET_FILE", Const, 0, ""},
+		{"SYS___MAC_GET_LCID", Const, 0, ""},
+		{"SYS___MAC_GET_LCTX", Const, 0, ""},
+		{"SYS___MAC_GET_LINK", Const, 0, ""},
+		{"SYS___MAC_GET_MOUNT", Const, 0, ""},
+		{"SYS___MAC_GET_PID", Const, 0, ""},
+		{"SYS___MAC_GET_PROC", Const, 0, ""},
+		{"SYS___MAC_MOUNT", Const, 0, ""},
+		{"SYS___MAC_SET_FD", Const, 0, ""},
+		{"SYS___MAC_SET_FILE", Const, 0, ""},
+		{"SYS___MAC_SET_LCTX", Const, 0, ""},
+		{"SYS___MAC_SET_LINK", Const, 0, ""},
+		{"SYS___MAC_SET_PROC", Const, 0, ""},
+		{"SYS___MAC_SYSCALL", Const, 0, ""},
+		{"SYS___OLD_SEMWAIT_SIGNAL", Const, 0, ""},
+		{"SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL", Const, 0, ""},
+		{"SYS___POSIX_CHOWN", Const, 1, ""},
+		{"SYS___POSIX_FCHOWN", Const, 1, ""},
+		{"SYS___POSIX_LCHOWN", Const, 1, ""},
+		{"SYS___POSIX_RENAME", Const, 1, ""},
+		{"SYS___PTHREAD_CANCELED", Const, 0, ""},
+		{"SYS___PTHREAD_CHDIR", Const, 0, ""},
+		{"SYS___PTHREAD_FCHDIR", Const, 0, ""},
+		{"SYS___PTHREAD_KILL", Const, 0, ""},
+		{"SYS___PTHREAD_MARKCANCEL", Const, 0, ""},
+		{"SYS___PTHREAD_SIGMASK", Const, 0, ""},
+		{"SYS___QUOTACTL", Const, 1, ""},
+		{"SYS___SEMCTL", Const, 1, ""},
+		{"SYS___SEMWAIT_SIGNAL", Const, 0, ""},
+		{"SYS___SEMWAIT_SIGNAL_NOCANCEL", Const, 0, ""},
+		{"SYS___SETLOGIN", Const, 1, ""},
+		{"SYS___SETUGID", Const, 0, ""},
+		{"SYS___SET_TCB", Const, 1, ""},
+		{"SYS___SIGACTION_SIGTRAMP", Const, 1, ""},
+		{"SYS___SIGTIMEDWAIT", Const, 1, ""},
+		{"SYS___SIGWAIT", Const, 0, ""},
+		{"SYS___SIGWAIT_NOCANCEL", Const, 0, ""},
+		{"SYS___SYSCTL", Const, 0, ""},
+		{"SYS___TFORK", Const, 1, ""},
+		{"SYS___THREXIT", Const, 1, ""},
+		{"SYS___THRSIGDIVERT", Const, 1, ""},
+		{"SYS___THRSLEEP", Const, 1, ""},
+		{"SYS___THRWAKEUP", Const, 1, ""},
+		{"S_ARCH1", Const, 1, ""},
+		{"S_ARCH2", Const, 1, ""},
+		{"S_BLKSIZE", Const, 0, ""},
+		{"S_IEXEC", Const, 0, ""},
+		{"S_IFBLK", Const, 0, ""},
+		{"S_IFCHR", Const, 0, ""},
+		{"S_IFDIR", Const, 0, ""},
+		{"S_IFIFO", Const, 0, ""},
+		{"S_IFLNK", Const, 0, ""},
+		{"S_IFMT", Const, 0, ""},
+		{"S_IFREG", Const, 0, ""},
+		{"S_IFSOCK", Const, 0, ""},
+		{"S_IFWHT", Const, 0, ""},
+		{"S_IREAD", Const, 0, ""},
+		{"S_IRGRP", Const, 0, ""},
+		{"S_IROTH", Const, 0, ""},
+		{"S_IRUSR", Const, 0, ""},
+		{"S_IRWXG", Const, 0, ""},
+		{"S_IRWXO", Const, 0, ""},
+		{"S_IRWXU", Const, 0, ""},
+		{"S_ISGID", Const, 0, ""},
+		{"S_ISTXT", Const, 0, ""},
+		{"S_ISUID", Const, 0, ""},
+		{"S_ISVTX", Const, 0, ""},
+		{"S_IWGRP", Const, 0, ""},
+		{"S_IWOTH", Const, 0, ""},
+		{"S_IWRITE", Const, 0, ""},
+		{"S_IWUSR", Const, 0, ""},
+		{"S_IXGRP", Const, 0, ""},
+		{"S_IXOTH", Const, 0, ""},
+		{"S_IXUSR", Const, 0, ""},
+		{"S_LOGIN_SET", Const, 1, ""},
+		{"SecurityAttributes", Type, 0, ""},
+		{"SecurityAttributes.InheritHandle", Field, 0, ""},
+		{"SecurityAttributes.Length", Field, 0, ""},
+		{"SecurityAttributes.SecurityDescriptor", Field, 0, ""},
+		{"Seek", Func, 0, "func(fd int, offset int64, whence int) (off int64, err error)"},
+		{"Select", Func, 0, "func(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)"},
+		{"Sendfile", Func, 0, "func(outfd int, infd int, offset *int64, count int) (written int, err error)"},
+		{"Sendmsg", Func, 0, "func(fd int, p []byte, oob []byte, to Sockaddr, flags int) (err error)"},
+		{"SendmsgN", Func, 3, "func(fd int, p []byte, oob []byte, to Sockaddr, flags int) (n int, err error)"},
+		{"Sendto", Func, 0, "func(fd int, p []byte, flags int, to Sockaddr) (err error)"},
+		{"Servent", Type, 0, ""},
+		{"Servent.Aliases", Field, 0, ""},
+		{"Servent.Name", Field, 0, ""},
+		{"Servent.Port", Field, 0, ""},
+		{"Servent.Proto", Field, 0, ""},
+		{"SetBpf", Func, 0, ""},
+		{"SetBpfBuflen", Func, 0, ""},
+		{"SetBpfDatalink", Func, 0, ""},
+		{"SetBpfHeadercmpl", Func, 0, ""},
+		{"SetBpfImmediate", Func, 0, ""},
+		{"SetBpfInterface", Func, 0, ""},
+		{"SetBpfPromisc", Func, 0, ""},
+		{"SetBpfTimeout", Func, 0, ""},
+		{"SetCurrentDirectory", Func, 0, ""},
+		{"SetEndOfFile", Func, 0, ""},
+		{"SetEnvironmentVariable", Func, 0, ""},
+		{"SetFileAttributes", Func, 0, ""},
+		{"SetFileCompletionNotificationModes", Func, 2, ""},
+		{"SetFilePointer", Func, 0, ""},
+		{"SetFileTime", Func, 0, ""},
+		{"SetHandleInformation", Func, 0, ""},
+		{"SetKevent", Func, 0, ""},
+		{"SetLsfPromisc", Func, 0, "func(name string, m bool) error"},
+		{"SetNonblock", Func, 0, "func(fd int, nonblocking bool) (err error)"},
+		{"Setdomainname", Func, 0, "func(p []byte) (err error)"},
+		{"Setegid", Func, 0, "func(egid int) (err error)"},
+		{"Setenv", Func, 0, "func(key string, value string) error"},
+		{"Seteuid", Func, 0, "func(euid int) (err error)"},
+		{"Setfsgid", Func, 0, "func(gid int) (err error)"},
+		{"Setfsuid", Func, 0, "func(uid int) (err error)"},
+		{"Setgid", Func, 0, "func(gid int) (err error)"},
+		{"Setgroups", Func, 0, "func(gids []int) (err error)"},
+		{"Sethostname", Func, 0, "func(p []byte) (err error)"},
+		{"Setlogin", Func, 0, ""},
+		{"Setpgid", Func, 0, "func(pid int, pgid int) (err error)"},
+		{"Setpriority", Func, 0, "func(which int, who int, prio int) (err error)"},
+		{"Setprivexec", Func, 0, ""},
+		{"Setregid", Func, 0, "func(rgid int, egid int) (err error)"},
+		{"Setresgid", Func, 0, "func(rgid int, egid int, sgid int) (err error)"},
+		{"Setresuid", Func, 0, "func(ruid int, euid int, suid int) (err error)"},
+		{"Setreuid", Func, 0, "func(ruid int, euid int) (err error)"},
+		{"Setrlimit", Func, 0, "func(resource int, rlim *Rlimit) error"},
+		{"Setsid", Func, 0, "func() (pid int, err error)"},
+		{"Setsockopt", Func, 0, ""},
+		{"SetsockoptByte", Func, 0, "func(fd int, level int, opt int, value byte) (err error)"},
+		{"SetsockoptICMPv6Filter", Func, 2, "func(fd int, level int, opt int, filter *ICMPv6Filter) error"},
+		{"SetsockoptIPMreq", Func, 0, "func(fd int, level int, opt int, mreq *IPMreq) (err error)"},
+		{"SetsockoptIPMreqn", Func, 0, "func(fd int, level int, opt int, mreq *IPMreqn) (err error)"},
+		{"SetsockoptIPv6Mreq", Func, 0, "func(fd int, level int, opt int, mreq *IPv6Mreq) (err error)"},
+		{"SetsockoptInet4Addr", Func, 0, "func(fd int, level int, opt int, value [4]byte) (err error)"},
+		{"SetsockoptInt", Func, 0, "func(fd int, level int, opt int, value int) (err error)"},
+		{"SetsockoptLinger", Func, 0, "func(fd int, level int, opt int, l *Linger) (err error)"},
+		{"SetsockoptString", Func, 0, "func(fd int, level int, opt int, s string) (err error)"},
+		{"SetsockoptTimeval", Func, 0, "func(fd int, level int, opt int, tv *Timeval) (err error)"},
+		{"Settimeofday", Func, 0, "func(tv *Timeval) (err error)"},
+		{"Setuid", Func, 0, "func(uid int) (err error)"},
+		{"Setxattr", Func, 1, "func(path string, attr string, data []byte, flags int) (err error)"},
+		{"Shutdown", Func, 0, "func(fd int, how int) (err error)"},
+		{"SidTypeAlias", Const, 0, ""},
+		{"SidTypeComputer", Const, 0, ""},
+		{"SidTypeDeletedAccount", Const, 0, ""},
+		{"SidTypeDomain", Const, 0, ""},
+		{"SidTypeGroup", Const, 0, ""},
+		{"SidTypeInvalid", Const, 0, ""},
+		{"SidTypeLabel", Const, 0, ""},
+		{"SidTypeUnknown", Const, 0, ""},
+		{"SidTypeUser", Const, 0, ""},
+		{"SidTypeWellKnownGroup", Const, 0, ""},
+		{"Signal", Type, 0, ""},
+		{"SizeofBpfHdr", Const, 0, ""},
+		{"SizeofBpfInsn", Const, 0, ""},
+		{"SizeofBpfProgram", Const, 0, ""},
+		{"SizeofBpfStat", Const, 0, ""},
+		{"SizeofBpfVersion", Const, 0, ""},
+		{"SizeofBpfZbuf", Const, 0, ""},
+		{"SizeofBpfZbufHeader", Const, 0, ""},
+		{"SizeofCmsghdr", Const, 0, ""},
+		{"SizeofICMPv6Filter", Const, 2, ""},
+		{"SizeofIPMreq", Const, 0, ""},
+		{"SizeofIPMreqn", Const, 0, ""},
+		{"SizeofIPv6MTUInfo", Const, 2, ""},
+		{"SizeofIPv6Mreq", Const, 0, ""},
+		{"SizeofIfAddrmsg", Const, 0, ""},
+		{"SizeofIfAnnounceMsghdr", Const, 1, ""},
+		{"SizeofIfData", Const, 0, ""},
+		{"SizeofIfInfomsg", Const, 0, ""},
+		{"SizeofIfMsghdr", Const, 0, ""},
+		{"SizeofIfaMsghdr", Const, 0, ""},
+		{"SizeofIfmaMsghdr", Const, 0, ""},
+		{"SizeofIfmaMsghdr2", Const, 0, ""},
+		{"SizeofInet4Pktinfo", Const, 0, ""},
+		{"SizeofInet6Pktinfo", Const, 0, ""},
+		{"SizeofInotifyEvent", Const, 0, ""},
+		{"SizeofLinger", Const, 0, ""},
+		{"SizeofMsghdr", Const, 0, ""},
+		{"SizeofNlAttr", Const, 0, ""},
+		{"SizeofNlMsgerr", Const, 0, ""},
+		{"SizeofNlMsghdr", Const, 0, ""},
+		{"SizeofRtAttr", Const, 0, ""},
+		{"SizeofRtGenmsg", Const, 0, ""},
+		{"SizeofRtMetrics", Const, 0, ""},
+		{"SizeofRtMsg", Const, 0, ""},
+		{"SizeofRtMsghdr", Const, 0, ""},
+		{"SizeofRtNexthop", Const, 0, ""},
+		{"SizeofSockFilter", Const, 0, ""},
+		{"SizeofSockFprog", Const, 0, ""},
+		{"SizeofSockaddrAny", Const, 0, ""},
+		{"SizeofSockaddrDatalink", Const, 0, ""},
+		{"SizeofSockaddrInet4", Const, 0, ""},
+		{"SizeofSockaddrInet6", Const, 0, ""},
+		{"SizeofSockaddrLinklayer", Const, 0, ""},
+		{"SizeofSockaddrNetlink", Const, 0, ""},
+		{"SizeofSockaddrUnix", Const, 0, ""},
+		{"SizeofTCPInfo", Const, 1, ""},
+		{"SizeofUcred", Const, 0, ""},
+		{"SlicePtrFromStrings", Func, 1, "func(ss []string) ([]*byte, error)"},
+		{"SockFilter", Type, 0, ""},
+		{"SockFilter.Code", Field, 0, ""},
+		{"SockFilter.Jf", Field, 0, ""},
+		{"SockFilter.Jt", Field, 0, ""},
+		{"SockFilter.K", Field, 0, ""},
+		{"SockFprog", Type, 0, ""},
+		{"SockFprog.Filter", Field, 0, ""},
+		{"SockFprog.Len", Field, 0, ""},
+		{"SockFprog.Pad_cgo_0", Field, 0, ""},
+		{"Sockaddr", Type, 0, ""},
+		{"SockaddrDatalink", Type, 0, ""},
+		{"SockaddrDatalink.Alen", Field, 0, ""},
+		{"SockaddrDatalink.Data", Field, 0, ""},
+		{"SockaddrDatalink.Family", Field, 0, ""},
+		{"SockaddrDatalink.Index", Field, 0, ""},
+		{"SockaddrDatalink.Len", Field, 0, ""},
+		{"SockaddrDatalink.Nlen", Field, 0, ""},
+		{"SockaddrDatalink.Slen", Field, 0, ""},
+		{"SockaddrDatalink.Type", Field, 0, ""},
+		{"SockaddrGen", Type, 0, ""},
+		{"SockaddrInet4", Type, 0, ""},
+		{"SockaddrInet4.Addr", Field, 0, ""},
+		{"SockaddrInet4.Port", Field, 0, ""},
+		{"SockaddrInet6", Type, 0, ""},
+		{"SockaddrInet6.Addr", Field, 0, ""},
+		{"SockaddrInet6.Port", Field, 0, ""},
+		{"SockaddrInet6.ZoneId", Field, 0, ""},
+		{"SockaddrLinklayer", Type, 0, ""},
+		{"SockaddrLinklayer.Addr", Field, 0, ""},
+		{"SockaddrLinklayer.Halen", Field, 0, ""},
+		{"SockaddrLinklayer.Hatype", Field, 0, ""},
+		{"SockaddrLinklayer.Ifindex", Field, 0, ""},
+		{"SockaddrLinklayer.Pkttype", Field, 0, ""},
+		{"SockaddrLinklayer.Protocol", Field, 0, ""},
+		{"SockaddrNetlink", Type, 0, ""},
+		{"SockaddrNetlink.Family", Field, 0, ""},
+		{"SockaddrNetlink.Groups", Field, 0, ""},
+		{"SockaddrNetlink.Pad", Field, 0, ""},
+		{"SockaddrNetlink.Pid", Field, 0, ""},
+		{"SockaddrUnix", Type, 0, ""},
+		{"SockaddrUnix.Name", Field, 0, ""},
+		{"Socket", Func, 0, "func(domain int, typ int, proto int) (fd int, err error)"},
+		{"SocketControlMessage", Type, 0, ""},
+		{"SocketControlMessage.Data", Field, 0, ""},
+		{"SocketControlMessage.Header", Field, 0, ""},
+		{"SocketDisableIPv6", Var, 0, ""},
+		{"Socketpair", Func, 0, "func(domain int, typ int, proto int) (fd [2]int, err error)"},
+		{"Splice", Func, 0, "func(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)"},
+		{"StartProcess", Func, 0, "func(argv0 string, argv []string, attr *ProcAttr) (pid int, handle uintptr, err error)"},
+		{"StartupInfo", Type, 0, ""},
+		{"StartupInfo.Cb", Field, 0, ""},
+		{"StartupInfo.Desktop", Field, 0, ""},
+		{"StartupInfo.FillAttribute", Field, 0, ""},
+		{"StartupInfo.Flags", Field, 0, ""},
+		{"StartupInfo.ShowWindow", Field, 0, ""},
+		{"StartupInfo.StdErr", Field, 0, ""},
+		{"StartupInfo.StdInput", Field, 0, ""},
+		{"StartupInfo.StdOutput", Field, 0, ""},
+		{"StartupInfo.Title", Field, 0, ""},
+		{"StartupInfo.X", Field, 0, ""},
+		{"StartupInfo.XCountChars", Field, 0, ""},
+		{"StartupInfo.XSize", Field, 0, ""},
+		{"StartupInfo.Y", Field, 0, ""},
+		{"StartupInfo.YCountChars", Field, 0, ""},
+		{"StartupInfo.YSize", Field, 0, ""},
+		{"Stat", Func, 0, "func(path string, stat *Stat_t) (err error)"},
+		{"Stat_t", Type, 0, ""},
+		{"Stat_t.Atim", Field, 0, ""},
+		{"Stat_t.Atim_ext", Field, 12, ""},
+		{"Stat_t.Atimespec", Field, 0, ""},
+		{"Stat_t.Birthtimespec", Field, 0, ""},
+		{"Stat_t.Blksize", Field, 0, ""},
+		{"Stat_t.Blocks", Field, 0, ""},
+		{"Stat_t.Btim_ext", Field, 12, ""},
+		{"Stat_t.Ctim", Field, 0, ""},
+		{"Stat_t.Ctim_ext", Field, 12, ""},
+		{"Stat_t.Ctimespec", Field, 0, ""},
+		{"Stat_t.Dev", Field, 0, ""},
+		{"Stat_t.Flags", Field, 0, ""},
+		{"Stat_t.Gen", Field, 0, ""},
+		{"Stat_t.Gid", Field, 0, ""},
+		{"Stat_t.Ino", Field, 0, ""},
+		{"Stat_t.Lspare", Field, 0, ""},
+		{"Stat_t.Lspare0", Field, 2, ""},
+		{"Stat_t.Lspare1", Field, 2, ""},
+		{"Stat_t.Mode", Field, 0, ""},
+		{"Stat_t.Mtim", Field, 0, ""},
+		{"Stat_t.Mtim_ext", Field, 12, ""},
+		{"Stat_t.Mtimespec", Field, 0, ""},
+		{"Stat_t.Nlink", Field, 0, ""},
+		{"Stat_t.Pad_cgo_0", Field, 0, ""},
+		{"Stat_t.Pad_cgo_1", Field, 0, ""},
+		{"Stat_t.Pad_cgo_2", Field, 0, ""},
+		{"Stat_t.Padding0", Field, 12, ""},
+		{"Stat_t.Padding1", Field, 12, ""},
+		{"Stat_t.Qspare", Field, 0, ""},
+		{"Stat_t.Rdev", Field, 0, ""},
+		{"Stat_t.Size", Field, 0, ""},
+		{"Stat_t.Spare", Field, 2, ""},
+		{"Stat_t.Uid", Field, 0, ""},
+		{"Stat_t.X__pad0", Field, 0, ""},
+		{"Stat_t.X__pad1", Field, 0, ""},
+		{"Stat_t.X__pad2", Field, 0, ""},
+		{"Stat_t.X__st_birthtim", Field, 2, ""},
+		{"Stat_t.X__st_ino", Field, 0, ""},
+		{"Stat_t.X__unused", Field, 0, ""},
+		{"Statfs", Func, 0, "func(path string, buf *Statfs_t) (err error)"},
+		{"Statfs_t", Type, 0, ""},
+		{"Statfs_t.Asyncreads", Field, 0, ""},
+		{"Statfs_t.Asyncwrites", Field, 0, ""},
+		{"Statfs_t.Bavail", Field, 0, ""},
+		{"Statfs_t.Bfree", Field, 0, ""},
+		{"Statfs_t.Blocks", Field, 0, ""},
+		{"Statfs_t.Bsize", Field, 0, ""},
+		{"Statfs_t.Charspare", Field, 0, ""},
+		{"Statfs_t.F_asyncreads", Field, 2, ""},
+		{"Statfs_t.F_asyncwrites", Field, 2, ""},
+		{"Statfs_t.F_bavail", Field, 2, ""},
+		{"Statfs_t.F_bfree", Field, 2, ""},
+		{"Statfs_t.F_blocks", Field, 2, ""},
+		{"Statfs_t.F_bsize", Field, 2, ""},
+		{"Statfs_t.F_ctime", Field, 2, ""},
+		{"Statfs_t.F_favail", Field, 2, ""},
+		{"Statfs_t.F_ffree", Field, 2, ""},
+		{"Statfs_t.F_files", Field, 2, ""},
+		{"Statfs_t.F_flags", Field, 2, ""},
+		{"Statfs_t.F_fsid", Field, 2, ""},
+		{"Statfs_t.F_fstypename", Field, 2, ""},
+		{"Statfs_t.F_iosize", Field, 2, ""},
+		{"Statfs_t.F_mntfromname", Field, 2, ""},
+		{"Statfs_t.F_mntfromspec", Field, 3, ""},
+		{"Statfs_t.F_mntonname", Field, 2, ""},
+		{"Statfs_t.F_namemax", Field, 2, ""},
+		{"Statfs_t.F_owner", Field, 2, ""},
+		{"Statfs_t.F_spare", Field, 2, ""},
+		{"Statfs_t.F_syncreads", Field, 2, ""},
+		{"Statfs_t.F_syncwrites", Field, 2, ""},
+		{"Statfs_t.Ffree", Field, 0, ""},
+		{"Statfs_t.Files", Field, 0, ""},
+		{"Statfs_t.Flags", Field, 0, ""},
+		{"Statfs_t.Frsize", Field, 0, ""},
+		{"Statfs_t.Fsid", Field, 0, ""},
+		{"Statfs_t.Fssubtype", Field, 0, ""},
+		{"Statfs_t.Fstypename", Field, 0, ""},
+		{"Statfs_t.Iosize", Field, 0, ""},
+		{"Statfs_t.Mntfromname", Field, 0, ""},
+		{"Statfs_t.Mntonname", Field, 0, ""},
+		{"Statfs_t.Mount_info", Field, 2, ""},
+		{"Statfs_t.Namelen", Field, 0, ""},
+		{"Statfs_t.Namemax", Field, 0, ""},
+		{"Statfs_t.Owner", Field, 0, ""},
+		{"Statfs_t.Pad_cgo_0", Field, 0, ""},
+		{"Statfs_t.Pad_cgo_1", Field, 2, ""},
+		{"Statfs_t.Reserved", Field, 0, ""},
+		{"Statfs_t.Spare", Field, 0, ""},
+		{"Statfs_t.Syncreads", Field, 0, ""},
+		{"Statfs_t.Syncwrites", Field, 0, ""},
+		{"Statfs_t.Type", Field, 0, ""},
+		{"Statfs_t.Version", Field, 0, ""},
+		{"Stderr", Var, 0, ""},
+		{"Stdin", Var, 0, ""},
+		{"Stdout", Var, 0, ""},
+		{"StringBytePtr", Func, 0, "func(s string) *byte"},
+		{"StringByteSlice", Func, 0, "func(s string) []byte"},
+		{"StringSlicePtr", Func, 0, "func(ss []string) []*byte"},
+		{"StringToSid", Func, 0, ""},
+		{"StringToUTF16", Func, 0, ""},
+		{"StringToUTF16Ptr", Func, 0, ""},
+		{"Symlink", Func, 0, "func(oldpath string, newpath string) (err error)"},
+		{"Sync", Func, 0, "func()"},
+		{"SyncFileRange", Func, 0, "func(fd int, off int64, n int64, flags int) (err error)"},
+		{"SysProcAttr", Type, 0, ""},
+		{"SysProcAttr.AdditionalInheritedHandles", Field, 17, ""},
+		{"SysProcAttr.AmbientCaps", Field, 9, ""},
+		{"SysProcAttr.CgroupFD", Field, 20, ""},
+		{"SysProcAttr.Chroot", Field, 0, ""},
+		{"SysProcAttr.Cloneflags", Field, 2, ""},
+		{"SysProcAttr.CmdLine", Field, 0, ""},
+		{"SysProcAttr.CreationFlags", Field, 1, ""},
+		{"SysProcAttr.Credential", Field, 0, ""},
+		{"SysProcAttr.Ctty", Field, 1, ""},
+		{"SysProcAttr.Foreground", Field, 5, ""},
+		{"SysProcAttr.GidMappings", Field, 4, ""},
+		{"SysProcAttr.GidMappingsEnableSetgroups", Field, 5, ""},
+		{"SysProcAttr.HideWindow", Field, 0, ""},
+		{"SysProcAttr.Jail", Field, 21, ""},
+		{"SysProcAttr.NoInheritHandles", Field, 16, ""},
+		{"SysProcAttr.Noctty", Field, 0, ""},
+		{"SysProcAttr.ParentProcess", Field, 17, ""},
+		{"SysProcAttr.Pdeathsig", Field, 0, ""},
+		{"SysProcAttr.Pgid", Field, 5, ""},
+		{"SysProcAttr.PidFD", Field, 22, ""},
+		{"SysProcAttr.ProcessAttributes", Field, 13, ""},
+		{"SysProcAttr.Ptrace", Field, 0, ""},
+		{"SysProcAttr.Setctty", Field, 0, ""},
+		{"SysProcAttr.Setpgid", Field, 0, ""},
+		{"SysProcAttr.Setsid", Field, 0, ""},
+		{"SysProcAttr.ThreadAttributes", Field, 13, ""},
+		{"SysProcAttr.Token", Field, 10, ""},
+		{"SysProcAttr.UidMappings", Field, 4, ""},
+		{"SysProcAttr.Unshareflags", Field, 7, ""},
+		{"SysProcAttr.UseCgroupFD", Field, 20, ""},
+		{"SysProcIDMap", Type, 4, ""},
+		{"SysProcIDMap.ContainerID", Field, 4, ""},
+		{"SysProcIDMap.HostID", Field, 4, ""},
+		{"SysProcIDMap.Size", Field, 4, ""},
+		{"Syscall", Func, 0, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr) (r1 uintptr, r2 uintptr, err Errno)"},
+		{"Syscall12", Func, 0, ""},
+		{"Syscall15", Func, 0, ""},
+		{"Syscall18", Func, 12, ""},
+		{"Syscall6", Func, 0, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr, a4 uintptr, a5 uintptr, a6 uintptr) (r1 uintptr, r2 uintptr, err Errno)"},
+		{"Syscall9", Func, 0, ""},
+		{"SyscallN", Func, 18, ""},
+		{"Sysctl", Func, 0, ""},
+		{"SysctlUint32", Func, 0, ""},
+		{"Sysctlnode", Type, 2, ""},
+		{"Sysctlnode.Flags", Field, 2, ""},
+		{"Sysctlnode.Name", Field, 2, ""},
+		{"Sysctlnode.Num", Field, 2, ""},
+		{"Sysctlnode.Un", Field, 2, ""},
+		{"Sysctlnode.Ver", Field, 2, ""},
+		{"Sysctlnode.X__rsvd", Field, 2, ""},
+		{"Sysctlnode.X_sysctl_desc", Field, 2, ""},
+		{"Sysctlnode.X_sysctl_func", Field, 2, ""},
+		{"Sysctlnode.X_sysctl_parent", Field, 2, ""},
+		{"Sysctlnode.X_sysctl_size", Field, 2, ""},
+		{"Sysinfo", Func, 0, "func(info *Sysinfo_t) (err error)"},
+		{"Sysinfo_t", Type, 0, ""},
+		{"Sysinfo_t.Bufferram", Field, 0, ""},
+		{"Sysinfo_t.Freehigh", Field, 0, ""},
+		{"Sysinfo_t.Freeram", Field, 0, ""},
+		{"Sysinfo_t.Freeswap", Field, 0, ""},
+		{"Sysinfo_t.Loads", Field, 0, ""},
+		{"Sysinfo_t.Pad", Field, 0, ""},
+		{"Sysinfo_t.Pad_cgo_0", Field, 0, ""},
+		{"Sysinfo_t.Pad_cgo_1", Field, 0, ""},
+		{"Sysinfo_t.Procs", Field, 0, ""},
+		{"Sysinfo_t.Sharedram", Field, 0, ""},
+		{"Sysinfo_t.Totalhigh", Field, 0, ""},
+		{"Sysinfo_t.Totalram", Field, 0, ""},
+		{"Sysinfo_t.Totalswap", Field, 0, ""},
+		{"Sysinfo_t.Unit", Field, 0, ""},
+		{"Sysinfo_t.Uptime", Field, 0, ""},
+		{"Sysinfo_t.X_f", Field, 0, ""},
+		{"Systemtime", Type, 0, ""},
+		{"Systemtime.Day", Field, 0, ""},
+		{"Systemtime.DayOfWeek", Field, 0, ""},
+		{"Systemtime.Hour", Field, 0, ""},
+		{"Systemtime.Milliseconds", Field, 0, ""},
+		{"Systemtime.Minute", Field, 0, ""},
+		{"Systemtime.Month", Field, 0, ""},
+		{"Systemtime.Second", Field, 0, ""},
+		{"Systemtime.Year", Field, 0, ""},
+		{"TCGETS", Const, 0, ""},
+		{"TCIFLUSH", Const, 1, ""},
+		{"TCIOFLUSH", Const, 1, ""},
+		{"TCOFLUSH", Const, 1, ""},
+		{"TCPInfo", Type, 1, ""},
+		{"TCPInfo.Advmss", Field, 1, ""},
+		{"TCPInfo.Ato", Field, 1, ""},
+		{"TCPInfo.Backoff", Field, 1, ""},
+		{"TCPInfo.Ca_state", Field, 1, ""},
+		{"TCPInfo.Fackets", Field, 1, ""},
+		{"TCPInfo.Last_ack_recv", Field, 1, ""},
+		{"TCPInfo.Last_ack_sent", Field, 1, ""},
+		{"TCPInfo.Last_data_recv", Field, 1, ""},
+		{"TCPInfo.Last_data_sent", Field, 1, ""},
+		{"TCPInfo.Lost", Field, 1, ""},
+		{"TCPInfo.Options", Field, 1, ""},
+		{"TCPInfo.Pad_cgo_0", Field, 1, ""},
+		{"TCPInfo.Pmtu", Field, 1, ""},
+		{"TCPInfo.Probes", Field, 1, ""},
+		{"TCPInfo.Rcv_mss", Field, 1, ""},
+		{"TCPInfo.Rcv_rtt", Field, 1, ""},
+		{"TCPInfo.Rcv_space", Field, 1, ""},
+		{"TCPInfo.Rcv_ssthresh", Field, 1, ""},
+		{"TCPInfo.Reordering", Field, 1, ""},
+		{"TCPInfo.Retrans", Field, 1, ""},
+		{"TCPInfo.Retransmits", Field, 1, ""},
+		{"TCPInfo.Rto", Field, 1, ""},
+		{"TCPInfo.Rtt", Field, 1, ""},
+		{"TCPInfo.Rttvar", Field, 1, ""},
+		{"TCPInfo.Sacked", Field, 1, ""},
+		{"TCPInfo.Snd_cwnd", Field, 1, ""},
+		{"TCPInfo.Snd_mss", Field, 1, ""},
+		{"TCPInfo.Snd_ssthresh", Field, 1, ""},
+		{"TCPInfo.State", Field, 1, ""},
+		{"TCPInfo.Total_retrans", Field, 1, ""},
+		{"TCPInfo.Unacked", Field, 1, ""},
+		{"TCPKeepalive", Type, 3, ""},
+		{"TCPKeepalive.Interval", Field, 3, ""},
+		{"TCPKeepalive.OnOff", Field, 3, ""},
+		{"TCPKeepalive.Time", Field, 3, ""},
+		{"TCP_CA_NAME_MAX", Const, 0, ""},
+		{"TCP_CONGCTL", Const, 1, ""},
+		{"TCP_CONGESTION", Const, 0, ""},
+		{"TCP_CONNECTIONTIMEOUT", Const, 0, ""},
+		{"TCP_CORK", Const, 0, ""},
+		{"TCP_DEFER_ACCEPT", Const, 0, ""},
+		{"TCP_ENABLE_ECN", Const, 16, ""},
+		{"TCP_INFO", Const, 0, ""},
+		{"TCP_KEEPALIVE", Const, 0, ""},
+		{"TCP_KEEPCNT", Const, 0, ""},
+		{"TCP_KEEPIDLE", Const, 0, ""},
+		{"TCP_KEEPINIT", Const, 1, ""},
+		{"TCP_KEEPINTVL", Const, 0, ""},
+		{"TCP_LINGER2", Const, 0, ""},
+		{"TCP_MAXBURST", Const, 0, ""},
+		{"TCP_MAXHLEN", Const, 0, ""},
+		{"TCP_MAXOLEN", Const, 0, ""},
+		{"TCP_MAXSEG", Const, 0, ""},
+		{"TCP_MAXWIN", Const, 0, ""},
+		{"TCP_MAX_SACK", Const, 0, ""},
+		{"TCP_MAX_WINSHIFT", Const, 0, ""},
+		{"TCP_MD5SIG", Const, 0, ""},
+		{"TCP_MD5SIG_MAXKEYLEN", Const, 0, ""},
+		{"TCP_MINMSS", Const, 0, ""},
+		{"TCP_MINMSSOVERLOAD", Const, 0, ""},
+		{"TCP_MSS", Const, 0, ""},
+		{"TCP_NODELAY", Const, 0, ""},
+		{"TCP_NOOPT", Const, 0, ""},
+		{"TCP_NOPUSH", Const, 0, ""},
+		{"TCP_NOTSENT_LOWAT", Const, 16, ""},
+		{"TCP_NSTATES", Const, 1, ""},
+		{"TCP_QUICKACK", Const, 0, ""},
+		{"TCP_RXT_CONNDROPTIME", Const, 0, ""},
+		{"TCP_RXT_FINDROP", Const, 0, ""},
+		{"TCP_SACK_ENABLE", Const, 1, ""},
+		{"TCP_SENDMOREACKS", Const, 16, ""},
+		{"TCP_SYNCNT", Const, 0, ""},
+		{"TCP_VENDOR", Const, 3, ""},
+		{"TCP_WINDOW_CLAMP", Const, 0, ""},
+		{"TCSAFLUSH", Const, 1, ""},
+		{"TCSETS", Const, 0, ""},
+		{"TF_DISCONNECT", Const, 0, ""},
+		{"TF_REUSE_SOCKET", Const, 0, ""},
+		{"TF_USE_DEFAULT_WORKER", Const, 0, ""},
+		{"TF_USE_KERNEL_APC", Const, 0, ""},
+		{"TF_USE_SYSTEM_THREAD", Const, 0, ""},
+		{"TF_WRITE_BEHIND", Const, 0, ""},
+		{"TH32CS_INHERIT", Const, 4, ""},
+		{"TH32CS_SNAPALL", Const, 4, ""},
+		{"TH32CS_SNAPHEAPLIST", Const, 4, ""},
+		{"TH32CS_SNAPMODULE", Const, 4, ""},
+		{"TH32CS_SNAPMODULE32", Const, 4, ""},
+		{"TH32CS_SNAPPROCESS", Const, 4, ""},
+		{"TH32CS_SNAPTHREAD", Const, 4, ""},
+		{"TIME_ZONE_ID_DAYLIGHT", Const, 0, ""},
+		{"TIME_ZONE_ID_STANDARD", Const, 0, ""},
+		{"TIME_ZONE_ID_UNKNOWN", Const, 0, ""},
+		{"TIOCCBRK", Const, 0, ""},
+		{"TIOCCDTR", Const, 0, ""},
+		{"TIOCCONS", Const, 0, ""},
+		{"TIOCDCDTIMESTAMP", Const, 0, ""},
+		{"TIOCDRAIN", Const, 0, ""},
+		{"TIOCDSIMICROCODE", Const, 0, ""},
+		{"TIOCEXCL", Const, 0, ""},
+		{"TIOCEXT", Const, 0, ""},
+		{"TIOCFLAG_CDTRCTS", Const, 1, ""},
+		{"TIOCFLAG_CLOCAL", Const, 1, ""},
+		{"TIOCFLAG_CRTSCTS", Const, 1, ""},
+		{"TIOCFLAG_MDMBUF", Const, 1, ""},
+		{"TIOCFLAG_PPS", Const, 1, ""},
+		{"TIOCFLAG_SOFTCAR", Const, 1, ""},
+		{"TIOCFLUSH", Const, 0, ""},
+		{"TIOCGDEV", Const, 0, ""},
+		{"TIOCGDRAINWAIT", Const, 0, ""},
+		{"TIOCGETA", Const, 0, ""},
+		{"TIOCGETD", Const, 0, ""},
+		{"TIOCGFLAGS", Const, 1, ""},
+		{"TIOCGICOUNT", Const, 0, ""},
+		{"TIOCGLCKTRMIOS", Const, 0, ""},
+		{"TIOCGLINED", Const, 1, ""},
+		{"TIOCGPGRP", Const, 0, ""},
+		{"TIOCGPTN", Const, 0, ""},
+		{"TIOCGQSIZE", Const, 1, ""},
+		{"TIOCGRANTPT", Const, 1, ""},
+		{"TIOCGRS485", Const, 0, ""},
+		{"TIOCGSERIAL", Const, 0, ""},
+		{"TIOCGSID", Const, 0, ""},
+		{"TIOCGSIZE", Const, 1, ""},
+		{"TIOCGSOFTCAR", Const, 0, ""},
+		{"TIOCGTSTAMP", Const, 1, ""},
+		{"TIOCGWINSZ", Const, 0, ""},
+		{"TIOCINQ", Const, 0, ""},
+		{"TIOCIXOFF", Const, 0, ""},
+		{"TIOCIXON", Const, 0, ""},
+		{"TIOCLINUX", Const, 0, ""},
+		{"TIOCMBIC", Const, 0, ""},
+		{"TIOCMBIS", Const, 0, ""},
+		{"TIOCMGDTRWAIT", Const, 0, ""},
+		{"TIOCMGET", Const, 0, ""},
+		{"TIOCMIWAIT", Const, 0, ""},
+		{"TIOCMODG", Const, 0, ""},
+		{"TIOCMODS", Const, 0, ""},
+		{"TIOCMSDTRWAIT", Const, 0, ""},
+		{"TIOCMSET", Const, 0, ""},
+		{"TIOCM_CAR", Const, 0, ""},
+		{"TIOCM_CD", Const, 0, ""},
+		{"TIOCM_CTS", Const, 0, ""},
+		{"TIOCM_DCD", Const, 0, ""},
+		{"TIOCM_DSR", Const, 0, ""},
+		{"TIOCM_DTR", Const, 0, ""},
+		{"TIOCM_LE", Const, 0, ""},
+		{"TIOCM_RI", Const, 0, ""},
+		{"TIOCM_RNG", Const, 0, ""},
+		{"TIOCM_RTS", Const, 0, ""},
+		{"TIOCM_SR", Const, 0, ""},
+		{"TIOCM_ST", Const, 0, ""},
+		{"TIOCNOTTY", Const, 0, ""},
+		{"TIOCNXCL", Const, 0, ""},
+		{"TIOCOUTQ", Const, 0, ""},
+		{"TIOCPKT", Const, 0, ""},
+		{"TIOCPKT_DATA", Const, 0, ""},
+		{"TIOCPKT_DOSTOP", Const, 0, ""},
+		{"TIOCPKT_FLUSHREAD", Const, 0, ""},
+		{"TIOCPKT_FLUSHWRITE", Const, 0, ""},
+		{"TIOCPKT_IOCTL", Const, 0, ""},
+		{"TIOCPKT_NOSTOP", Const, 0, ""},
+		{"TIOCPKT_START", Const, 0, ""},
+		{"TIOCPKT_STOP", Const, 0, ""},
+		{"TIOCPTMASTER", Const, 0, ""},
+		{"TIOCPTMGET", Const, 1, ""},
+		{"TIOCPTSNAME", Const, 1, ""},
+		{"TIOCPTYGNAME", Const, 0, ""},
+		{"TIOCPTYGRANT", Const, 0, ""},
+		{"TIOCPTYUNLK", Const, 0, ""},
+		{"TIOCRCVFRAME", Const, 1, ""},
+		{"TIOCREMOTE", Const, 0, ""},
+		{"TIOCSBRK", Const, 0, ""},
+		{"TIOCSCONS", Const, 0, ""},
+		{"TIOCSCTTY", Const, 0, ""},
+		{"TIOCSDRAINWAIT", Const, 0, ""},
+		{"TIOCSDTR", Const, 0, ""},
+		{"TIOCSERCONFIG", Const, 0, ""},
+		{"TIOCSERGETLSR", Const, 0, ""},
+		{"TIOCSERGETMULTI", Const, 0, ""},
+		{"TIOCSERGSTRUCT", Const, 0, ""},
+		{"TIOCSERGWILD", Const, 0, ""},
+		{"TIOCSERSETMULTI", Const, 0, ""},
+		{"TIOCSERSWILD", Const, 0, ""},
+		{"TIOCSER_TEMT", Const, 0, ""},
+		{"TIOCSETA", Const, 0, ""},
+		{"TIOCSETAF", Const, 0, ""},
+		{"TIOCSETAW", Const, 0, ""},
+		{"TIOCSETD", Const, 0, ""},
+		{"TIOCSFLAGS", Const, 1, ""},
+		{"TIOCSIG", Const, 0, ""},
+		{"TIOCSLCKTRMIOS", Const, 0, ""},
+		{"TIOCSLINED", Const, 1, ""},
+		{"TIOCSPGRP", Const, 0, ""},
+		{"TIOCSPTLCK", Const, 0, ""},
+		{"TIOCSQSIZE", Const, 1, ""},
+		{"TIOCSRS485", Const, 0, ""},
+		{"TIOCSSERIAL", Const, 0, ""},
+		{"TIOCSSIZE", Const, 1, ""},
+		{"TIOCSSOFTCAR", Const, 0, ""},
+		{"TIOCSTART", Const, 0, ""},
+		{"TIOCSTAT", Const, 0, ""},
+		{"TIOCSTI", Const, 0, ""},
+		{"TIOCSTOP", Const, 0, ""},
+		{"TIOCSTSTAMP", Const, 1, ""},
+		{"TIOCSWINSZ", Const, 0, ""},
+		{"TIOCTIMESTAMP", Const, 0, ""},
+		{"TIOCUCNTL", Const, 0, ""},
+		{"TIOCVHANGUP", Const, 0, ""},
+		{"TIOCXMTFRAME", Const, 1, ""},
+		{"TOKEN_ADJUST_DEFAULT", Const, 0, ""},
+		{"TOKEN_ADJUST_GROUPS", Const, 0, ""},
+		{"TOKEN_ADJUST_PRIVILEGES", Const, 0, ""},
+		{"TOKEN_ADJUST_SESSIONID", Const, 11, ""},
+		{"TOKEN_ALL_ACCESS", Const, 0, ""},
+		{"TOKEN_ASSIGN_PRIMARY", Const, 0, ""},
+		{"TOKEN_DUPLICATE", Const, 0, ""},
+		{"TOKEN_EXECUTE", Const, 0, ""},
+		{"TOKEN_IMPERSONATE", Const, 0, ""},
+		{"TOKEN_QUERY", Const, 0, ""},
+		{"TOKEN_QUERY_SOURCE", Const, 0, ""},
+		{"TOKEN_READ", Const, 0, ""},
+		{"TOKEN_WRITE", Const, 0, ""},
+		{"TOSTOP", Const, 0, ""},
+		{"TRUNCATE_EXISTING", Const, 0, ""},
+		{"TUNATTACHFILTER", Const, 0, ""},
+		{"TUNDETACHFILTER", Const, 0, ""},
+		{"TUNGETFEATURES", Const, 0, ""},
+		{"TUNGETIFF", Const, 0, ""},
+		{"TUNGETSNDBUF", Const, 0, ""},
+		{"TUNGETVNETHDRSZ", Const, 0, ""},
+		{"TUNSETDEBUG", Const, 0, ""},
+		{"TUNSETGROUP", Const, 0, ""},
+		{"TUNSETIFF", Const, 0, ""},
+		{"TUNSETLINK", Const, 0, ""},
+		{"TUNSETNOCSUM", Const, 0, ""},
+		{"TUNSETOFFLOAD", Const, 0, ""},
+		{"TUNSETOWNER", Const, 0, ""},
+		{"TUNSETPERSIST", Const, 0, ""},
+		{"TUNSETSNDBUF", Const, 0, ""},
+		{"TUNSETTXFILTER", Const, 0, ""},
+		{"TUNSETVNETHDRSZ", Const, 0, ""},
+		{"Tee", Func, 0, "func(rfd int, wfd int, len int, flags int) (n int64, err error)"},
+		{"TerminateProcess", Func, 0, ""},
+		{"Termios", Type, 0, ""},
+		{"Termios.Cc", Field, 0, ""},
+		{"Termios.Cflag", Field, 0, ""},
+		{"Termios.Iflag", Field, 0, ""},
+		{"Termios.Ispeed", Field, 0, ""},
+		{"Termios.Lflag", Field, 0, ""},
+		{"Termios.Line", Field, 0, ""},
+		{"Termios.Oflag", Field, 0, ""},
+		{"Termios.Ospeed", Field, 0, ""},
+		{"Termios.Pad_cgo_0", Field, 0, ""},
+		{"Tgkill", Func, 0, "func(tgid int, tid int, sig Signal) (err error)"},
+		{"Time", Func, 0, "func(t *Time_t) (tt Time_t, err error)"},
+		{"Time_t", Type, 0, ""},
+		{"Times", Func, 0, "func(tms *Tms) (ticks uintptr, err error)"},
+		{"Timespec", Type, 0, ""},
+		{"Timespec.Nsec", Field, 0, ""},
+		{"Timespec.Pad_cgo_0", Field, 2, ""},
+		{"Timespec.Sec", Field, 0, ""},
+		{"TimespecToNsec", Func, 0, "func(ts Timespec) int64"},
+		{"Timeval", Type, 0, ""},
+		{"Timeval.Pad_cgo_0", Field, 0, ""},
+		{"Timeval.Sec", Field, 0, ""},
+		{"Timeval.Usec", Field, 0, ""},
+		{"Timeval32", Type, 0, ""},
+		{"Timeval32.Sec", Field, 0, ""},
+		{"Timeval32.Usec", Field, 0, ""},
+		{"TimevalToNsec", Func, 0, "func(tv Timeval) int64"},
+		{"Timex", Type, 0, ""},
+		{"Timex.Calcnt", Field, 0, ""},
+		{"Timex.Constant", Field, 0, ""},
+		{"Timex.Errcnt", Field, 0, ""},
+		{"Timex.Esterror", Field, 0, ""},
+		{"Timex.Freq", Field, 0, ""},
+		{"Timex.Jitcnt", Field, 0, ""},
+		{"Timex.Jitter", Field, 0, ""},
+		{"Timex.Maxerror", Field, 0, ""},
+		{"Timex.Modes", Field, 0, ""},
+		{"Timex.Offset", Field, 0, ""},
+		{"Timex.Pad_cgo_0", Field, 0, ""},
+		{"Timex.Pad_cgo_1", Field, 0, ""},
+		{"Timex.Pad_cgo_2", Field, 0, ""},
+		{"Timex.Pad_cgo_3", Field, 0, ""},
+		{"Timex.Ppsfreq", Field, 0, ""},
+		{"Timex.Precision", Field, 0, ""},
+		{"Timex.Shift", Field, 0, ""},
+		{"Timex.Stabil", Field, 0, ""},
+		{"Timex.Status", Field, 0, ""},
+		{"Timex.Stbcnt", Field, 0, ""},
+		{"Timex.Tai", Field, 0, ""},
+		{"Timex.Tick", Field, 0, ""},
+		{"Timex.Time", Field, 0, ""},
+		{"Timex.Tolerance", Field, 0, ""},
+		{"Timezoneinformation", Type, 0, ""},
+		{"Timezoneinformation.Bias", Field, 0, ""},
+		{"Timezoneinformation.DaylightBias", Field, 0, ""},
+		{"Timezoneinformation.DaylightDate", Field, 0, ""},
+		{"Timezoneinformation.DaylightName", Field, 0, ""},
+		{"Timezoneinformation.StandardBias", Field, 0, ""},
+		{"Timezoneinformation.StandardDate", Field, 0, ""},
+		{"Timezoneinformation.StandardName", Field, 0, ""},
+		{"Tms", Type, 0, ""},
+		{"Tms.Cstime", Field, 0, ""},
+		{"Tms.Cutime", Field, 0, ""},
+		{"Tms.Stime", Field, 0, ""},
+		{"Tms.Utime", Field, 0, ""},
+		{"Token", Type, 0, ""},
+		{"TokenAccessInformation", Const, 0, ""},
+		{"TokenAuditPolicy", Const, 0, ""},
+		{"TokenDefaultDacl", Const, 0, ""},
+		{"TokenElevation", Const, 0, ""},
+		{"TokenElevationType", Const, 0, ""},
+		{"TokenGroups", Const, 0, ""},
+		{"TokenGroupsAndPrivileges", Const, 0, ""},
+		{"TokenHasRestrictions", Const, 0, ""},
+		{"TokenImpersonationLevel", Const, 0, ""},
+		{"TokenIntegrityLevel", Const, 0, ""},
+		{"TokenLinkedToken", Const, 0, ""},
+		{"TokenLogonSid", Const, 0, ""},
+		{"TokenMandatoryPolicy", Const, 0, ""},
+		{"TokenOrigin", Const, 0, ""},
+		{"TokenOwner", Const, 0, ""},
+		{"TokenPrimaryGroup", Const, 0, ""},
+		{"TokenPrivileges", Const, 0, ""},
+		{"TokenRestrictedSids", Const, 0, ""},
+		{"TokenSandBoxInert", Const, 0, ""},
+		{"TokenSessionId", Const, 0, ""},
+		{"TokenSessionReference", Const, 0, ""},
+		{"TokenSource", Const, 0, ""},
+		{"TokenStatistics", Const, 0, ""},
+		{"TokenType", Const, 0, ""},
+		{"TokenUIAccess", Const, 0, ""},
+		{"TokenUser", Const, 0, ""},
+		{"TokenVirtualizationAllowed", Const, 0, ""},
+		{"TokenVirtualizationEnabled", Const, 0, ""},
+		{"Tokenprimarygroup", Type, 0, ""},
+		{"Tokenprimarygroup.PrimaryGroup", Field, 0, ""},
+		{"Tokenuser", Type, 0, ""},
+		{"Tokenuser.User", Field, 0, ""},
+		{"TranslateAccountName", Func, 0, ""},
+		{"TranslateName", Func, 0, ""},
+		{"TransmitFile", Func, 0, ""},
+		{"TransmitFileBuffers", Type, 0, ""},
+		{"TransmitFileBuffers.Head", Field, 0, ""},
+		{"TransmitFileBuffers.HeadLength", Field, 0, ""},
+		{"TransmitFileBuffers.Tail", Field, 0, ""},
+		{"TransmitFileBuffers.TailLength", Field, 0, ""},
+		{"Truncate", Func, 0, "func(path string, length int64) (err error)"},
+		{"UNIX_PATH_MAX", Const, 12, ""},
+		{"USAGE_MATCH_TYPE_AND", Const, 0, ""},
+		{"USAGE_MATCH_TYPE_OR", Const, 0, ""},
+		{"UTF16FromString", Func, 1, ""},
+		{"UTF16PtrFromString", Func, 1, ""},
+		{"UTF16ToString", Func, 0, ""},
+		{"Ucred", Type, 0, ""},
+		{"Ucred.Gid", Field, 0, ""},
+		{"Ucred.Pid", Field, 0, ""},
+		{"Ucred.Uid", Field, 0, ""},
+		{"Umask", Func, 0, "func(mask int) (oldmask int)"},
+		{"Uname", Func, 0, "func(buf *Utsname) (err error)"},
+		{"Undelete", Func, 0, ""},
+		{"UnixCredentials", Func, 0, "func(ucred *Ucred) []byte"},
+		{"UnixRights", Func, 0, "func(fds ...int) []byte"},
+		{"Unlink", Func, 0, "func(path string) error"},
+		{"Unlinkat", Func, 0, "func(dirfd int, path string) error"},
+		{"UnmapViewOfFile", Func, 0, ""},
+		{"Unmount", Func, 0, "func(target string, flags int) (err error)"},
+		{"Unsetenv", Func, 4, "func(key string) error"},
+		{"Unshare", Func, 0, "func(flags int) (err error)"},
+		{"UserInfo10", Type, 0, ""},
+		{"UserInfo10.Comment", Field, 0, ""},
+		{"UserInfo10.FullName", Field, 0, ""},
+		{"UserInfo10.Name", Field, 0, ""},
+		{"UserInfo10.UsrComment", Field, 0, ""},
+		{"Ustat", Func, 0, "func(dev int, ubuf *Ustat_t) (err error)"},
+		{"Ustat_t", Type, 0, ""},
+		{"Ustat_t.Fname", Field, 0, ""},
+		{"Ustat_t.Fpack", Field, 0, ""},
+		{"Ustat_t.Pad_cgo_0", Field, 0, ""},
+		{"Ustat_t.Pad_cgo_1", Field, 0, ""},
+		{"Ustat_t.Tfree", Field, 0, ""},
+		{"Ustat_t.Tinode", Field, 0, ""},
+		{"Utimbuf", Type, 0, ""},
+		{"Utimbuf.Actime", Field, 0, ""},
+		{"Utimbuf.Modtime", Field, 0, ""},
+		{"Utime", Func, 0, "func(path string, buf *Utimbuf) (err error)"},
+		{"Utimes", Func, 0, "func(path string, tv []Timeval) (err error)"},
+		{"UtimesNano", Func, 1, "func(path string, ts []Timespec) (err error)"},
+		{"Utsname", Type, 0, ""},
+		{"Utsname.Domainname", Field, 0, ""},
+		{"Utsname.Machine", Field, 0, ""},
+		{"Utsname.Nodename", Field, 0, ""},
+		{"Utsname.Release", Field, 0, ""},
+		{"Utsname.Sysname", Field, 0, ""},
+		{"Utsname.Version", Field, 0, ""},
+		{"VDISCARD", Const, 0, ""},
+		{"VDSUSP", Const, 1, ""},
+		{"VEOF", Const, 0, ""},
+		{"VEOL", Const, 0, ""},
+		{"VEOL2", Const, 0, ""},
+		{"VERASE", Const, 0, ""},
+		{"VERASE2", Const, 1, ""},
+		{"VINTR", Const, 0, ""},
+		{"VKILL", Const, 0, ""},
+		{"VLNEXT", Const, 0, ""},
+		{"VMIN", Const, 0, ""},
+		{"VQUIT", Const, 0, ""},
+		{"VREPRINT", Const, 0, ""},
+		{"VSTART", Const, 0, ""},
+		{"VSTATUS", Const, 1, ""},
+		{"VSTOP", Const, 0, ""},
+		{"VSUSP", Const, 0, ""},
+		{"VSWTC", Const, 0, ""},
+		{"VT0", Const, 1, ""},
+		{"VT1", Const, 1, ""},
+		{"VTDLY", Const, 1, ""},
+		{"VTIME", Const, 0, ""},
+		{"VWERASE", Const, 0, ""},
+		{"VirtualLock", Func, 0, ""},
+		{"VirtualUnlock", Func, 0, ""},
+		{"WAIT_ABANDONED", Const, 0, ""},
+		{"WAIT_FAILED", Const, 0, ""},
+		{"WAIT_OBJECT_0", Const, 0, ""},
+		{"WAIT_TIMEOUT", Const, 0, ""},
+		{"WALL", Const, 0, ""},
+		{"WALLSIG", Const, 1, ""},
+		{"WALTSIG", Const, 1, ""},
+		{"WCLONE", Const, 0, ""},
+		{"WCONTINUED", Const, 0, ""},
+		{"WCOREFLAG", Const, 0, ""},
+		{"WEXITED", Const, 0, ""},
+		{"WLINUXCLONE", Const, 0, ""},
+		{"WNOHANG", Const, 0, ""},
+		{"WNOTHREAD", Const, 0, ""},
+		{"WNOWAIT", Const, 0, ""},
+		{"WNOZOMBIE", Const, 1, ""},
+		{"WOPTSCHECKED", Const, 1, ""},
+		{"WORDSIZE", Const, 0, ""},
+		{"WSABuf", Type, 0, ""},
+		{"WSABuf.Buf", Field, 0, ""},
+		{"WSABuf.Len", Field, 0, ""},
+		{"WSACleanup", Func, 0, ""},
+		{"WSADESCRIPTION_LEN", Const, 0, ""},
+		{"WSAData", Type, 0, ""},
+		{"WSAData.Description", Field, 0, ""},
+		{"WSAData.HighVersion", Field, 0, ""},
+		{"WSAData.MaxSockets", Field, 0, ""},
+		{"WSAData.MaxUdpDg", Field, 0, ""},
+		{"WSAData.SystemStatus", Field, 0, ""},
+		{"WSAData.VendorInfo", Field, 0, ""},
+		{"WSAData.Version", Field, 0, ""},
+		{"WSAEACCES", Const, 2, ""},
+		{"WSAECONNABORTED", Const, 9, ""},
+		{"WSAECONNRESET", Const, 3, ""},
+		{"WSAENOPROTOOPT", Const, 23, ""},
+		{"WSAEnumProtocols", Func, 2, ""},
+		{"WSAID_CONNECTEX", Var, 1, ""},
+		{"WSAIoctl", Func, 0, ""},
+		{"WSAPROTOCOL_LEN", Const, 2, ""},
+		{"WSAProtocolChain", Type, 2, ""},
+		{"WSAProtocolChain.ChainEntries", Field, 2, ""},
+		{"WSAProtocolChain.ChainLen", Field, 2, ""},
+		{"WSAProtocolInfo", Type, 2, ""},
+		{"WSAProtocolInfo.AddressFamily", Field, 2, ""},
+		{"WSAProtocolInfo.CatalogEntryId", Field, 2, ""},
+		{"WSAProtocolInfo.MaxSockAddr", Field, 2, ""},
+		{"WSAProtocolInfo.MessageSize", Field, 2, ""},
+		{"WSAProtocolInfo.MinSockAddr", Field, 2, ""},
+		{"WSAProtocolInfo.NetworkByteOrder", Field, 2, ""},
+		{"WSAProtocolInfo.Protocol", Field, 2, ""},
+		{"WSAProtocolInfo.ProtocolChain", Field, 2, ""},
+		{"WSAProtocolInfo.ProtocolMaxOffset", Field, 2, ""},
+		{"WSAProtocolInfo.ProtocolName", Field, 2, ""},
+		{"WSAProtocolInfo.ProviderFlags", Field, 2, ""},
+		{"WSAProtocolInfo.ProviderId", Field, 2, ""},
+		{"WSAProtocolInfo.ProviderReserved", Field, 2, ""},
+		{"WSAProtocolInfo.SecurityScheme", Field, 2, ""},
+		{"WSAProtocolInfo.ServiceFlags1", Field, 2, ""},
+		{"WSAProtocolInfo.ServiceFlags2", Field, 2, ""},
+		{"WSAProtocolInfo.ServiceFlags3", Field, 2, ""},
+		{"WSAProtocolInfo.ServiceFlags4", Field, 2, ""},
+		{"WSAProtocolInfo.SocketType", Field, 2, ""},
+		{"WSAProtocolInfo.Version", Field, 2, ""},
+		{"WSARecv", Func, 0, ""},
+		{"WSARecvFrom", Func, 0, ""},
+		{"WSASYS_STATUS_LEN", Const, 0, ""},
+		{"WSASend", Func, 0, ""},
+		{"WSASendTo", Func, 0, ""},
+		{"WSASendto", Func, 0, ""},
+		{"WSAStartup", Func, 0, ""},
+		{"WSTOPPED", Const, 0, ""},
+		{"WTRAPPED", Const, 1, ""},
+		{"WUNTRACED", Const, 0, ""},
+		{"Wait4", Func, 0, "func(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error)"},
+		{"WaitForSingleObject", Func, 0, ""},
+		{"WaitStatus", Type, 0, ""},
+		{"WaitStatus.ExitCode", Field, 0, ""},
+		{"Win32FileAttributeData", Type, 0, ""},
+		{"Win32FileAttributeData.CreationTime", Field, 0, ""},
+		{"Win32FileAttributeData.FileAttributes", Field, 0, ""},
+		{"Win32FileAttributeData.FileSizeHigh", Field, 0, ""},
+		{"Win32FileAttributeData.FileSizeLow", Field, 0, ""},
+		{"Win32FileAttributeData.LastAccessTime", Field, 0, ""},
+		{"Win32FileAttributeData.LastWriteTime", Field, 0, ""},
+		{"Win32finddata", Type, 0, ""},
+		{"Win32finddata.AlternateFileName", Field, 0, ""},
+		{"Win32finddata.CreationTime", Field, 0, ""},
+		{"Win32finddata.FileAttributes", Field, 0, ""},
+		{"Win32finddata.FileName", Field, 0, ""},
+		{"Win32finddata.FileSizeHigh", Field, 0, ""},
+		{"Win32finddata.FileSizeLow", Field, 0, ""},
+		{"Win32finddata.LastAccessTime", Field, 0, ""},
+		{"Win32finddata.LastWriteTime", Field, 0, ""},
+		{"Win32finddata.Reserved0", Field, 0, ""},
+		{"Win32finddata.Reserved1", Field, 0, ""},
+		{"Write", Func, 0, "func(fd int, p []byte) (n int, err error)"},
+		{"WriteConsole", Func, 1, ""},
+		{"WriteFile", Func, 0, ""},
+		{"X509_ASN_ENCODING", Const, 0, ""},
+		{"XCASE", Const, 0, ""},
+		{"XP1_CONNECTIONLESS", Const, 2, ""},
+		{"XP1_CONNECT_DATA", Const, 2, ""},
+		{"XP1_DISCONNECT_DATA", Const, 2, ""},
+		{"XP1_EXPEDITED_DATA", Const, 2, ""},
+		{"XP1_GRACEFUL_CLOSE", Const, 2, ""},
+		{"XP1_GUARANTEED_DELIVERY", Const, 2, ""},
+		{"XP1_GUARANTEED_ORDER", Const, 2, ""},
+		{"XP1_IFS_HANDLES", Const, 2, ""},
+		{"XP1_MESSAGE_ORIENTED", Const, 2, ""},
+		{"XP1_MULTIPOINT_CONTROL_PLANE", Const, 2, ""},
+		{"XP1_MULTIPOINT_DATA_PLANE", Const, 2, ""},
+		{"XP1_PARTIAL_MESSAGE", Const, 2, ""},
+		{"XP1_PSEUDO_STREAM", Const, 2, ""},
+		{"XP1_QOS_SUPPORTED", Const, 2, ""},
+		{"XP1_SAN_SUPPORT_SDP", Const, 2, ""},
+		{"XP1_SUPPORT_BROADCAST", Const, 2, ""},
+		{"XP1_SUPPORT_MULTIPOINT", Const, 2, ""},
+		{"XP1_UNI_RECV", Const, 2, ""},
+		{"XP1_UNI_SEND", Const, 2, ""},
 	},
 	"syscall/js": {
-		{"CopyBytesToGo", Func, 0},
-		{"CopyBytesToJS", Func, 0},
-		{"Error", Type, 0},
-		{"Func", Type, 0},
-		{"FuncOf", Func, 0},
-		{"Global", Func, 0},
-		{"Null", Func, 0},
-		{"Type", Type, 0},
-		{"TypeBoolean", Const, 0},
-		{"TypeFunction", Const, 0},
-		{"TypeNull", Const, 0},
-		{"TypeNumber", Const, 0},
-		{"TypeObject", Const, 0},
-		{"TypeString", Const, 0},
-		{"TypeSymbol", Const, 0},
-		{"TypeUndefined", Const, 0},
-		{"Undefined", Func, 0},
-		{"Value", Type, 0},
-		{"ValueError", Type, 0},
-		{"ValueOf", Func, 0},
+		{"CopyBytesToGo", Func, 0, ""},
+		{"CopyBytesToJS", Func, 0, ""},
+		{"Error", Type, 0, ""},
+		{"Func", Type, 0, ""},
+		{"FuncOf", Func, 0, ""},
+		{"Global", Func, 0, ""},
+		{"Null", Func, 0, ""},
+		{"Type", Type, 0, ""},
+		{"TypeBoolean", Const, 0, ""},
+		{"TypeFunction", Const, 0, ""},
+		{"TypeNull", Const, 0, ""},
+		{"TypeNumber", Const, 0, ""},
+		{"TypeObject", Const, 0, ""},
+		{"TypeString", Const, 0, ""},
+		{"TypeSymbol", Const, 0, ""},
+		{"TypeUndefined", Const, 0, ""},
+		{"Undefined", Func, 0, ""},
+		{"Value", Type, 0, ""},
+		{"ValueError", Type, 0, ""},
+		{"ValueOf", Func, 0, ""},
 	},
 	"testing": {
-		{"(*B).Chdir", Method, 24},
-		{"(*B).Cleanup", Method, 14},
-		{"(*B).Context", Method, 24},
-		{"(*B).Elapsed", Method, 20},
-		{"(*B).Error", Method, 0},
-		{"(*B).Errorf", Method, 0},
-		{"(*B).Fail", Method, 0},
-		{"(*B).FailNow", Method, 0},
-		{"(*B).Failed", Method, 0},
-		{"(*B).Fatal", Method, 0},
-		{"(*B).Fatalf", Method, 0},
-		{"(*B).Helper", Method, 9},
-		{"(*B).Log", Method, 0},
-		{"(*B).Logf", Method, 0},
-		{"(*B).Loop", Method, 24},
-		{"(*B).Name", Method, 8},
-		{"(*B).ReportAllocs", Method, 1},
-		{"(*B).ReportMetric", Method, 13},
-		{"(*B).ResetTimer", Method, 0},
-		{"(*B).Run", Method, 7},
-		{"(*B).RunParallel", Method, 3},
-		{"(*B).SetBytes", Method, 0},
-		{"(*B).SetParallelism", Method, 3},
-		{"(*B).Setenv", Method, 17},
-		{"(*B).Skip", Method, 1},
-		{"(*B).SkipNow", Method, 1},
-		{"(*B).Skipf", Method, 1},
-		{"(*B).Skipped", Method, 1},
-		{"(*B).StartTimer", Method, 0},
-		{"(*B).StopTimer", Method, 0},
-		{"(*B).TempDir", Method, 15},
-		{"(*F).Add", Method, 18},
-		{"(*F).Chdir", Method, 24},
-		{"(*F).Cleanup", Method, 18},
-		{"(*F).Context", Method, 24},
-		{"(*F).Error", Method, 18},
-		{"(*F).Errorf", Method, 18},
-		{"(*F).Fail", Method, 18},
-		{"(*F).FailNow", Method, 18},
-		{"(*F).Failed", Method, 18},
-		{"(*F).Fatal", Method, 18},
-		{"(*F).Fatalf", Method, 18},
-		{"(*F).Fuzz", Method, 18},
-		{"(*F).Helper", Method, 18},
-		{"(*F).Log", Method, 18},
-		{"(*F).Logf", Method, 18},
-		{"(*F).Name", Method, 18},
-		{"(*F).Setenv", Method, 18},
-		{"(*F).Skip", Method, 18},
-		{"(*F).SkipNow", Method, 18},
-		{"(*F).Skipf", Method, 18},
-		{"(*F).Skipped", Method, 18},
-		{"(*F).TempDir", Method, 18},
-		{"(*M).Run", Method, 4},
-		{"(*PB).Next", Method, 3},
-		{"(*T).Chdir", Method, 24},
-		{"(*T).Cleanup", Method, 14},
-		{"(*T).Context", Method, 24},
-		{"(*T).Deadline", Method, 15},
-		{"(*T).Error", Method, 0},
-		{"(*T).Errorf", Method, 0},
-		{"(*T).Fail", Method, 0},
-		{"(*T).FailNow", Method, 0},
-		{"(*T).Failed", Method, 0},
-		{"(*T).Fatal", Method, 0},
-		{"(*T).Fatalf", Method, 0},
-		{"(*T).Helper", Method, 9},
-		{"(*T).Log", Method, 0},
-		{"(*T).Logf", Method, 0},
-		{"(*T).Name", Method, 8},
-		{"(*T).Parallel", Method, 0},
-		{"(*T).Run", Method, 7},
-		{"(*T).Setenv", Method, 17},
-		{"(*T).Skip", Method, 1},
-		{"(*T).SkipNow", Method, 1},
-		{"(*T).Skipf", Method, 1},
-		{"(*T).Skipped", Method, 1},
-		{"(*T).TempDir", Method, 15},
-		{"(BenchmarkResult).AllocedBytesPerOp", Method, 1},
-		{"(BenchmarkResult).AllocsPerOp", Method, 1},
-		{"(BenchmarkResult).MemString", Method, 1},
-		{"(BenchmarkResult).NsPerOp", Method, 0},
-		{"(BenchmarkResult).String", Method, 0},
-		{"AllocsPerRun", Func, 1},
-		{"B", Type, 0},
-		{"B.N", Field, 0},
-		{"Benchmark", Func, 0},
-		{"BenchmarkResult", Type, 0},
-		{"BenchmarkResult.Bytes", Field, 0},
-		{"BenchmarkResult.Extra", Field, 13},
-		{"BenchmarkResult.MemAllocs", Field, 1},
-		{"BenchmarkResult.MemBytes", Field, 1},
-		{"BenchmarkResult.N", Field, 0},
-		{"BenchmarkResult.T", Field, 0},
-		{"Cover", Type, 2},
-		{"Cover.Blocks", Field, 2},
-		{"Cover.Counters", Field, 2},
-		{"Cover.CoveredPackages", Field, 2},
-		{"Cover.Mode", Field, 2},
-		{"CoverBlock", Type, 2},
-		{"CoverBlock.Col0", Field, 2},
-		{"CoverBlock.Col1", Field, 2},
-		{"CoverBlock.Line0", Field, 2},
-		{"CoverBlock.Line1", Field, 2},
-		{"CoverBlock.Stmts", Field, 2},
-		{"CoverMode", Func, 8},
-		{"Coverage", Func, 4},
-		{"F", Type, 18},
-		{"Init", Func, 13},
-		{"InternalBenchmark", Type, 0},
-		{"InternalBenchmark.F", Field, 0},
-		{"InternalBenchmark.Name", Field, 0},
-		{"InternalExample", Type, 0},
-		{"InternalExample.F", Field, 0},
-		{"InternalExample.Name", Field, 0},
-		{"InternalExample.Output", Field, 0},
-		{"InternalExample.Unordered", Field, 7},
-		{"InternalFuzzTarget", Type, 18},
-		{"InternalFuzzTarget.Fn", Field, 18},
-		{"InternalFuzzTarget.Name", Field, 18},
-		{"InternalTest", Type, 0},
-		{"InternalTest.F", Field, 0},
-		{"InternalTest.Name", Field, 0},
-		{"M", Type, 4},
-		{"Main", Func, 0},
-		{"MainStart", Func, 4},
-		{"PB", Type, 3},
-		{"RegisterCover", Func, 2},
-		{"RunBenchmarks", Func, 0},
-		{"RunExamples", Func, 0},
-		{"RunTests", Func, 0},
-		{"Short", Func, 0},
-		{"T", Type, 0},
-		{"TB", Type, 2},
-		{"Testing", Func, 21},
-		{"Verbose", Func, 1},
+		{"(*B).Attr", Method, 25, ""},
+		{"(*B).Chdir", Method, 24, ""},
+		{"(*B).Cleanup", Method, 14, ""},
+		{"(*B).Context", Method, 24, ""},
+		{"(*B).Elapsed", Method, 20, ""},
+		{"(*B).Error", Method, 0, ""},
+		{"(*B).Errorf", Method, 0, ""},
+		{"(*B).Fail", Method, 0, ""},
+		{"(*B).FailNow", Method, 0, ""},
+		{"(*B).Failed", Method, 0, ""},
+		{"(*B).Fatal", Method, 0, ""},
+		{"(*B).Fatalf", Method, 0, ""},
+		{"(*B).Helper", Method, 9, ""},
+		{"(*B).Log", Method, 0, ""},
+		{"(*B).Logf", Method, 0, ""},
+		{"(*B).Loop", Method, 24, ""},
+		{"(*B).Name", Method, 8, ""},
+		{"(*B).Output", Method, 25, ""},
+		{"(*B).ReportAllocs", Method, 1, ""},
+		{"(*B).ReportMetric", Method, 13, ""},
+		{"(*B).ResetTimer", Method, 0, ""},
+		{"(*B).Run", Method, 7, ""},
+		{"(*B).RunParallel", Method, 3, ""},
+		{"(*B).SetBytes", Method, 0, ""},
+		{"(*B).SetParallelism", Method, 3, ""},
+		{"(*B).Setenv", Method, 17, ""},
+		{"(*B).Skip", Method, 1, ""},
+		{"(*B).SkipNow", Method, 1, ""},
+		{"(*B).Skipf", Method, 1, ""},
+		{"(*B).Skipped", Method, 1, ""},
+		{"(*B).StartTimer", Method, 0, ""},
+		{"(*B).StopTimer", Method, 0, ""},
+		{"(*B).TempDir", Method, 15, ""},
+		{"(*F).Add", Method, 18, ""},
+		{"(*F).Attr", Method, 25, ""},
+		{"(*F).Chdir", Method, 24, ""},
+		{"(*F).Cleanup", Method, 18, ""},
+		{"(*F).Context", Method, 24, ""},
+		{"(*F).Error", Method, 18, ""},
+		{"(*F).Errorf", Method, 18, ""},
+		{"(*F).Fail", Method, 18, ""},
+		{"(*F).FailNow", Method, 18, ""},
+		{"(*F).Failed", Method, 18, ""},
+		{"(*F).Fatal", Method, 18, ""},
+		{"(*F).Fatalf", Method, 18, ""},
+		{"(*F).Fuzz", Method, 18, ""},
+		{"(*F).Helper", Method, 18, ""},
+		{"(*F).Log", Method, 18, ""},
+		{"(*F).Logf", Method, 18, ""},
+		{"(*F).Name", Method, 18, ""},
+		{"(*F).Output", Method, 25, ""},
+		{"(*F).Setenv", Method, 18, ""},
+		{"(*F).Skip", Method, 18, ""},
+		{"(*F).SkipNow", Method, 18, ""},
+		{"(*F).Skipf", Method, 18, ""},
+		{"(*F).Skipped", Method, 18, ""},
+		{"(*F).TempDir", Method, 18, ""},
+		{"(*M).Run", Method, 4, ""},
+		{"(*PB).Next", Method, 3, ""},
+		{"(*T).Attr", Method, 25, ""},
+		{"(*T).Chdir", Method, 24, ""},
+		{"(*T).Cleanup", Method, 14, ""},
+		{"(*T).Context", Method, 24, ""},
+		{"(*T).Deadline", Method, 15, ""},
+		{"(*T).Error", Method, 0, ""},
+		{"(*T).Errorf", Method, 0, ""},
+		{"(*T).Fail", Method, 0, ""},
+		{"(*T).FailNow", Method, 0, ""},
+		{"(*T).Failed", Method, 0, ""},
+		{"(*T).Fatal", Method, 0, ""},
+		{"(*T).Fatalf", Method, 0, ""},
+		{"(*T).Helper", Method, 9, ""},
+		{"(*T).Log", Method, 0, ""},
+		{"(*T).Logf", Method, 0, ""},
+		{"(*T).Name", Method, 8, ""},
+		{"(*T).Output", Method, 25, ""},
+		{"(*T).Parallel", Method, 0, ""},
+		{"(*T).Run", Method, 7, ""},
+		{"(*T).Setenv", Method, 17, ""},
+		{"(*T).Skip", Method, 1, ""},
+		{"(*T).SkipNow", Method, 1, ""},
+		{"(*T).Skipf", Method, 1, ""},
+		{"(*T).Skipped", Method, 1, ""},
+		{"(*T).TempDir", Method, 15, ""},
+		{"(BenchmarkResult).AllocedBytesPerOp", Method, 1, ""},
+		{"(BenchmarkResult).AllocsPerOp", Method, 1, ""},
+		{"(BenchmarkResult).MemString", Method, 1, ""},
+		{"(BenchmarkResult).NsPerOp", Method, 0, ""},
+		{"(BenchmarkResult).String", Method, 0, ""},
+		{"AllocsPerRun", Func, 1, "func(runs int, f func()) (avg float64)"},
+		{"B", Type, 0, ""},
+		{"B.N", Field, 0, ""},
+		{"Benchmark", Func, 0, "func(f func(b *B)) BenchmarkResult"},
+		{"BenchmarkResult", Type, 0, ""},
+		{"BenchmarkResult.Bytes", Field, 0, ""},
+		{"BenchmarkResult.Extra", Field, 13, ""},
+		{"BenchmarkResult.MemAllocs", Field, 1, ""},
+		{"BenchmarkResult.MemBytes", Field, 1, ""},
+		{"BenchmarkResult.N", Field, 0, ""},
+		{"BenchmarkResult.T", Field, 0, ""},
+		{"Cover", Type, 2, ""},
+		{"Cover.Blocks", Field, 2, ""},
+		{"Cover.Counters", Field, 2, ""},
+		{"Cover.CoveredPackages", Field, 2, ""},
+		{"Cover.Mode", Field, 2, ""},
+		{"CoverBlock", Type, 2, ""},
+		{"CoverBlock.Col0", Field, 2, ""},
+		{"CoverBlock.Col1", Field, 2, ""},
+		{"CoverBlock.Line0", Field, 2, ""},
+		{"CoverBlock.Line1", Field, 2, ""},
+		{"CoverBlock.Stmts", Field, 2, ""},
+		{"CoverMode", Func, 8, "func() string"},
+		{"Coverage", Func, 4, "func() float64"},
+		{"F", Type, 18, ""},
+		{"Init", Func, 13, "func()"},
+		{"InternalBenchmark", Type, 0, ""},
+		{"InternalBenchmark.F", Field, 0, ""},
+		{"InternalBenchmark.Name", Field, 0, ""},
+		{"InternalExample", Type, 0, ""},
+		{"InternalExample.F", Field, 0, ""},
+		{"InternalExample.Name", Field, 0, ""},
+		{"InternalExample.Output", Field, 0, ""},
+		{"InternalExample.Unordered", Field, 7, ""},
+		{"InternalFuzzTarget", Type, 18, ""},
+		{"InternalFuzzTarget.Fn", Field, 18, ""},
+		{"InternalFuzzTarget.Name", Field, 18, ""},
+		{"InternalTest", Type, 0, ""},
+		{"InternalTest.F", Field, 0, ""},
+		{"InternalTest.Name", Field, 0, ""},
+		{"M", Type, 4, ""},
+		{"Main", Func, 0, "func(matchString func(pat string, str string) (bool, error), tests []InternalTest, benchmarks []InternalBenchmark, examples []InternalExample)"},
+		{"MainStart", Func, 4, "func(deps testDeps, tests []InternalTest, benchmarks []InternalBenchmark, fuzzTargets []InternalFuzzTarget, examples []InternalExample) *M"},
+		{"PB", Type, 3, ""},
+		{"RegisterCover", Func, 2, "func(c Cover)"},
+		{"RunBenchmarks", Func, 0, "func(matchString func(pat string, str string) (bool, error), benchmarks []InternalBenchmark)"},
+		{"RunExamples", Func, 0, "func(matchString func(pat string, str string) (bool, error), examples []InternalExample) (ok bool)"},
+		{"RunTests", Func, 0, "func(matchString func(pat string, str string) (bool, error), tests []InternalTest) (ok bool)"},
+		{"Short", Func, 0, "func() bool"},
+		{"T", Type, 0, ""},
+		{"TB", Type, 2, ""},
+		{"Testing", Func, 21, "func() bool"},
+		{"Verbose", Func, 1, "func() bool"},
 	},
 	"testing/fstest": {
-		{"(MapFS).Glob", Method, 16},
-		{"(MapFS).Open", Method, 16},
-		{"(MapFS).ReadDir", Method, 16},
-		{"(MapFS).ReadFile", Method, 16},
-		{"(MapFS).Stat", Method, 16},
-		{"(MapFS).Sub", Method, 16},
-		{"MapFS", Type, 16},
-		{"MapFile", Type, 16},
-		{"MapFile.Data", Field, 16},
-		{"MapFile.ModTime", Field, 16},
-		{"MapFile.Mode", Field, 16},
-		{"MapFile.Sys", Field, 16},
-		{"TestFS", Func, 16},
+		{"(MapFS).Glob", Method, 16, ""},
+		{"(MapFS).Lstat", Method, 25, ""},
+		{"(MapFS).Open", Method, 16, ""},
+		{"(MapFS).ReadDir", Method, 16, ""},
+		{"(MapFS).ReadFile", Method, 16, ""},
+		{"(MapFS).ReadLink", Method, 25, ""},
+		{"(MapFS).Stat", Method, 16, ""},
+		{"(MapFS).Sub", Method, 16, ""},
+		{"MapFS", Type, 16, ""},
+		{"MapFile", Type, 16, ""},
+		{"MapFile.Data", Field, 16, ""},
+		{"MapFile.ModTime", Field, 16, ""},
+		{"MapFile.Mode", Field, 16, ""},
+		{"MapFile.Sys", Field, 16, ""},
+		{"TestFS", Func, 16, "func(fsys fs.FS, expected ...string) error"},
 	},
 	"testing/iotest": {
-		{"DataErrReader", Func, 0},
-		{"ErrReader", Func, 16},
-		{"ErrTimeout", Var, 0},
-		{"HalfReader", Func, 0},
-		{"NewReadLogger", Func, 0},
-		{"NewWriteLogger", Func, 0},
-		{"OneByteReader", Func, 0},
-		{"TestReader", Func, 16},
-		{"TimeoutReader", Func, 0},
-		{"TruncateWriter", Func, 0},
+		{"DataErrReader", Func, 0, "func(r io.Reader) io.Reader"},
+		{"ErrReader", Func, 16, "func(err error) io.Reader"},
+		{"ErrTimeout", Var, 0, ""},
+		{"HalfReader", Func, 0, "func(r io.Reader) io.Reader"},
+		{"NewReadLogger", Func, 0, "func(prefix string, r io.Reader) io.Reader"},
+		{"NewWriteLogger", Func, 0, "func(prefix string, w io.Writer) io.Writer"},
+		{"OneByteReader", Func, 0, "func(r io.Reader) io.Reader"},
+		{"TestReader", Func, 16, "func(r io.Reader, content []byte) error"},
+		{"TimeoutReader", Func, 0, "func(r io.Reader) io.Reader"},
+		{"TruncateWriter", Func, 0, "func(w io.Writer, n int64) io.Writer"},
 	},
 	"testing/quick": {
-		{"(*CheckEqualError).Error", Method, 0},
-		{"(*CheckError).Error", Method, 0},
-		{"(SetupError).Error", Method, 0},
-		{"Check", Func, 0},
-		{"CheckEqual", Func, 0},
-		{"CheckEqualError", Type, 0},
-		{"CheckEqualError.CheckError", Field, 0},
-		{"CheckEqualError.Out1", Field, 0},
-		{"CheckEqualError.Out2", Field, 0},
-		{"CheckError", Type, 0},
-		{"CheckError.Count", Field, 0},
-		{"CheckError.In", Field, 0},
-		{"Config", Type, 0},
-		{"Config.MaxCount", Field, 0},
-		{"Config.MaxCountScale", Field, 0},
-		{"Config.Rand", Field, 0},
-		{"Config.Values", Field, 0},
-		{"Generator", Type, 0},
-		{"SetupError", Type, 0},
-		{"Value", Func, 0},
+		{"(*CheckEqualError).Error", Method, 0, ""},
+		{"(*CheckError).Error", Method, 0, ""},
+		{"(SetupError).Error", Method, 0, ""},
+		{"Check", Func, 0, "func(f any, config *Config) error"},
+		{"CheckEqual", Func, 0, "func(f any, g any, config *Config) error"},
+		{"CheckEqualError", Type, 0, ""},
+		{"CheckEqualError.CheckError", Field, 0, ""},
+		{"CheckEqualError.Out1", Field, 0, ""},
+		{"CheckEqualError.Out2", Field, 0, ""},
+		{"CheckError", Type, 0, ""},
+		{"CheckError.Count", Field, 0, ""},
+		{"CheckError.In", Field, 0, ""},
+		{"Config", Type, 0, ""},
+		{"Config.MaxCount", Field, 0, ""},
+		{"Config.MaxCountScale", Field, 0, ""},
+		{"Config.Rand", Field, 0, ""},
+		{"Config.Values", Field, 0, ""},
+		{"Generator", Type, 0, ""},
+		{"SetupError", Type, 0, ""},
+		{"Value", Func, 0, "func(t reflect.Type, rand *rand.Rand) (value reflect.Value, ok bool)"},
 	},
 	"testing/slogtest": {
-		{"Run", Func, 22},
-		{"TestHandler", Func, 21},
+		{"Run", Func, 22, "func(t *testing.T, newHandler func(*testing.T) slog.Handler, result func(*testing.T) map[string]any)"},
+		{"TestHandler", Func, 21, "func(h slog.Handler, results func() []map[string]any) error"},
+	},
+	"testing/synctest": {
+		{"Test", Func, 25, "func(t *testing.T, f func(*testing.T))"},
+		{"Wait", Func, 25, "func()"},
 	},
 	"text/scanner": {
-		{"(*Position).IsValid", Method, 0},
-		{"(*Scanner).Init", Method, 0},
-		{"(*Scanner).IsValid", Method, 0},
-		{"(*Scanner).Next", Method, 0},
-		{"(*Scanner).Peek", Method, 0},
-		{"(*Scanner).Pos", Method, 0},
-		{"(*Scanner).Scan", Method, 0},
-		{"(*Scanner).TokenText", Method, 0},
-		{"(Position).String", Method, 0},
-		{"(Scanner).String", Method, 0},
-		{"Char", Const, 0},
-		{"Comment", Const, 0},
-		{"EOF", Const, 0},
-		{"Float", Const, 0},
-		{"GoTokens", Const, 0},
-		{"GoWhitespace", Const, 0},
-		{"Ident", Const, 0},
-		{"Int", Const, 0},
-		{"Position", Type, 0},
-		{"Position.Column", Field, 0},
-		{"Position.Filename", Field, 0},
-		{"Position.Line", Field, 0},
-		{"Position.Offset", Field, 0},
-		{"RawString", Const, 0},
-		{"ScanChars", Const, 0},
-		{"ScanComments", Const, 0},
-		{"ScanFloats", Const, 0},
-		{"ScanIdents", Const, 0},
-		{"ScanInts", Const, 0},
-		{"ScanRawStrings", Const, 0},
-		{"ScanStrings", Const, 0},
-		{"Scanner", Type, 0},
-		{"Scanner.Error", Field, 0},
-		{"Scanner.ErrorCount", Field, 0},
-		{"Scanner.IsIdentRune", Field, 4},
-		{"Scanner.Mode", Field, 0},
-		{"Scanner.Position", Field, 0},
-		{"Scanner.Whitespace", Field, 0},
-		{"SkipComments", Const, 0},
-		{"String", Const, 0},
-		{"TokenString", Func, 0},
+		{"(*Position).IsValid", Method, 0, ""},
+		{"(*Scanner).Init", Method, 0, ""},
+		{"(*Scanner).IsValid", Method, 0, ""},
+		{"(*Scanner).Next", Method, 0, ""},
+		{"(*Scanner).Peek", Method, 0, ""},
+		{"(*Scanner).Pos", Method, 0, ""},
+		{"(*Scanner).Scan", Method, 0, ""},
+		{"(*Scanner).TokenText", Method, 0, ""},
+		{"(Position).String", Method, 0, ""},
+		{"(Scanner).String", Method, 0, ""},
+		{"Char", Const, 0, ""},
+		{"Comment", Const, 0, ""},
+		{"EOF", Const, 0, ""},
+		{"Float", Const, 0, ""},
+		{"GoTokens", Const, 0, ""},
+		{"GoWhitespace", Const, 0, ""},
+		{"Ident", Const, 0, ""},
+		{"Int", Const, 0, ""},
+		{"Position", Type, 0, ""},
+		{"Position.Column", Field, 0, ""},
+		{"Position.Filename", Field, 0, ""},
+		{"Position.Line", Field, 0, ""},
+		{"Position.Offset", Field, 0, ""},
+		{"RawString", Const, 0, ""},
+		{"ScanChars", Const, 0, ""},
+		{"ScanComments", Const, 0, ""},
+		{"ScanFloats", Const, 0, ""},
+		{"ScanIdents", Const, 0, ""},
+		{"ScanInts", Const, 0, ""},
+		{"ScanRawStrings", Const, 0, ""},
+		{"ScanStrings", Const, 0, ""},
+		{"Scanner", Type, 0, ""},
+		{"Scanner.Error", Field, 0, ""},
+		{"Scanner.ErrorCount", Field, 0, ""},
+		{"Scanner.IsIdentRune", Field, 4, ""},
+		{"Scanner.Mode", Field, 0, ""},
+		{"Scanner.Position", Field, 0, ""},
+		{"Scanner.Whitespace", Field, 0, ""},
+		{"SkipComments", Const, 0, ""},
+		{"String", Const, 0, ""},
+		{"TokenString", Func, 0, "func(tok rune) string"},
 	},
 	"text/tabwriter": {
-		{"(*Writer).Flush", Method, 0},
-		{"(*Writer).Init", Method, 0},
-		{"(*Writer).Write", Method, 0},
-		{"AlignRight", Const, 0},
-		{"Debug", Const, 0},
-		{"DiscardEmptyColumns", Const, 0},
-		{"Escape", Const, 0},
-		{"FilterHTML", Const, 0},
-		{"NewWriter", Func, 0},
-		{"StripEscape", Const, 0},
-		{"TabIndent", Const, 0},
-		{"Writer", Type, 0},
+		{"(*Writer).Flush", Method, 0, ""},
+		{"(*Writer).Init", Method, 0, ""},
+		{"(*Writer).Write", Method, 0, ""},
+		{"AlignRight", Const, 0, ""},
+		{"Debug", Const, 0, ""},
+		{"DiscardEmptyColumns", Const, 0, ""},
+		{"Escape", Const, 0, ""},
+		{"FilterHTML", Const, 0, ""},
+		{"NewWriter", Func, 0, "func(output io.Writer, minwidth int, tabwidth int, padding int, padchar byte, flags uint) *Writer"},
+		{"StripEscape", Const, 0, ""},
+		{"TabIndent", Const, 0, ""},
+		{"Writer", Type, 0, ""},
 	},
 	"text/template": {
-		{"(*Template).AddParseTree", Method, 0},
-		{"(*Template).Clone", Method, 0},
-		{"(*Template).DefinedTemplates", Method, 5},
-		{"(*Template).Delims", Method, 0},
-		{"(*Template).Execute", Method, 0},
-		{"(*Template).ExecuteTemplate", Method, 0},
-		{"(*Template).Funcs", Method, 0},
-		{"(*Template).Lookup", Method, 0},
-		{"(*Template).Name", Method, 0},
-		{"(*Template).New", Method, 0},
-		{"(*Template).Option", Method, 5},
-		{"(*Template).Parse", Method, 0},
-		{"(*Template).ParseFS", Method, 16},
-		{"(*Template).ParseFiles", Method, 0},
-		{"(*Template).ParseGlob", Method, 0},
-		{"(*Template).Templates", Method, 0},
-		{"(ExecError).Error", Method, 6},
-		{"(ExecError).Unwrap", Method, 13},
-		{"(Template).Copy", Method, 2},
-		{"(Template).ErrorContext", Method, 1},
-		{"ExecError", Type, 6},
-		{"ExecError.Err", Field, 6},
-		{"ExecError.Name", Field, 6},
-		{"FuncMap", Type, 0},
-		{"HTMLEscape", Func, 0},
-		{"HTMLEscapeString", Func, 0},
-		{"HTMLEscaper", Func, 0},
-		{"IsTrue", Func, 6},
-		{"JSEscape", Func, 0},
-		{"JSEscapeString", Func, 0},
-		{"JSEscaper", Func, 0},
-		{"Must", Func, 0},
-		{"New", Func, 0},
-		{"ParseFS", Func, 16},
-		{"ParseFiles", Func, 0},
-		{"ParseGlob", Func, 0},
-		{"Template", Type, 0},
-		{"Template.Tree", Field, 0},
-		{"URLQueryEscaper", Func, 0},
+		{"(*Template).AddParseTree", Method, 0, ""},
+		{"(*Template).Clone", Method, 0, ""},
+		{"(*Template).DefinedTemplates", Method, 5, ""},
+		{"(*Template).Delims", Method, 0, ""},
+		{"(*Template).Execute", Method, 0, ""},
+		{"(*Template).ExecuteTemplate", Method, 0, ""},
+		{"(*Template).Funcs", Method, 0, ""},
+		{"(*Template).Lookup", Method, 0, ""},
+		{"(*Template).Name", Method, 0, ""},
+		{"(*Template).New", Method, 0, ""},
+		{"(*Template).Option", Method, 5, ""},
+		{"(*Template).Parse", Method, 0, ""},
+		{"(*Template).ParseFS", Method, 16, ""},
+		{"(*Template).ParseFiles", Method, 0, ""},
+		{"(*Template).ParseGlob", Method, 0, ""},
+		{"(*Template).Templates", Method, 0, ""},
+		{"(ExecError).Error", Method, 6, ""},
+		{"(ExecError).Unwrap", Method, 13, ""},
+		{"(Template).Copy", Method, 2, ""},
+		{"(Template).ErrorContext", Method, 1, ""},
+		{"ExecError", Type, 6, ""},
+		{"ExecError.Err", Field, 6, ""},
+		{"ExecError.Name", Field, 6, ""},
+		{"FuncMap", Type, 0, ""},
+		{"HTMLEscape", Func, 0, "func(w io.Writer, b []byte)"},
+		{"HTMLEscapeString", Func, 0, "func(s string) string"},
+		{"HTMLEscaper", Func, 0, "func(args ...any) string"},
+		{"IsTrue", Func, 6, "func(val any) (truth bool, ok bool)"},
+		{"JSEscape", Func, 0, "func(w io.Writer, b []byte)"},
+		{"JSEscapeString", Func, 0, "func(s string) string"},
+		{"JSEscaper", Func, 0, "func(args ...any) string"},
+		{"Must", Func, 0, "func(t *Template, err error) *Template"},
+		{"New", Func, 0, "func(name string) *Template"},
+		{"ParseFS", Func, 16, "func(fsys fs.FS, patterns ...string) (*Template, error)"},
+		{"ParseFiles", Func, 0, "func(filenames ...string) (*Template, error)"},
+		{"ParseGlob", Func, 0, "func(pattern string) (*Template, error)"},
+		{"Template", Type, 0, ""},
+		{"Template.Tree", Field, 0, ""},
+		{"URLQueryEscaper", Func, 0, "func(args ...any) string"},
 	},
 	"text/template/parse": {
-		{"(*ActionNode).Copy", Method, 0},
-		{"(*ActionNode).String", Method, 0},
-		{"(*BoolNode).Copy", Method, 0},
-		{"(*BoolNode).String", Method, 0},
-		{"(*BranchNode).Copy", Method, 4},
-		{"(*BranchNode).String", Method, 0},
-		{"(*BreakNode).Copy", Method, 18},
-		{"(*BreakNode).String", Method, 18},
-		{"(*ChainNode).Add", Method, 1},
-		{"(*ChainNode).Copy", Method, 1},
-		{"(*ChainNode).String", Method, 1},
-		{"(*CommandNode).Copy", Method, 0},
-		{"(*CommandNode).String", Method, 0},
-		{"(*CommentNode).Copy", Method, 16},
-		{"(*CommentNode).String", Method, 16},
-		{"(*ContinueNode).Copy", Method, 18},
-		{"(*ContinueNode).String", Method, 18},
-		{"(*DotNode).Copy", Method, 0},
-		{"(*DotNode).String", Method, 0},
-		{"(*DotNode).Type", Method, 0},
-		{"(*FieldNode).Copy", Method, 0},
-		{"(*FieldNode).String", Method, 0},
-		{"(*IdentifierNode).Copy", Method, 0},
-		{"(*IdentifierNode).SetPos", Method, 1},
-		{"(*IdentifierNode).SetTree", Method, 4},
-		{"(*IdentifierNode).String", Method, 0},
-		{"(*IfNode).Copy", Method, 0},
-		{"(*IfNode).String", Method, 0},
-		{"(*ListNode).Copy", Method, 0},
-		{"(*ListNode).CopyList", Method, 0},
-		{"(*ListNode).String", Method, 0},
-		{"(*NilNode).Copy", Method, 1},
-		{"(*NilNode).String", Method, 1},
-		{"(*NilNode).Type", Method, 1},
-		{"(*NumberNode).Copy", Method, 0},
-		{"(*NumberNode).String", Method, 0},
-		{"(*PipeNode).Copy", Method, 0},
-		{"(*PipeNode).CopyPipe", Method, 0},
-		{"(*PipeNode).String", Method, 0},
-		{"(*RangeNode).Copy", Method, 0},
-		{"(*RangeNode).String", Method, 0},
-		{"(*StringNode).Copy", Method, 0},
-		{"(*StringNode).String", Method, 0},
-		{"(*TemplateNode).Copy", Method, 0},
-		{"(*TemplateNode).String", Method, 0},
-		{"(*TextNode).Copy", Method, 0},
-		{"(*TextNode).String", Method, 0},
-		{"(*Tree).Copy", Method, 2},
-		{"(*Tree).ErrorContext", Method, 1},
-		{"(*Tree).Parse", Method, 0},
-		{"(*VariableNode).Copy", Method, 0},
-		{"(*VariableNode).String", Method, 0},
-		{"(*WithNode).Copy", Method, 0},
-		{"(*WithNode).String", Method, 0},
-		{"(ActionNode).Position", Method, 1},
-		{"(ActionNode).Type", Method, 0},
-		{"(BoolNode).Position", Method, 1},
-		{"(BoolNode).Type", Method, 0},
-		{"(BranchNode).Position", Method, 1},
-		{"(BranchNode).Type", Method, 0},
-		{"(BreakNode).Position", Method, 18},
-		{"(BreakNode).Type", Method, 18},
-		{"(ChainNode).Position", Method, 1},
-		{"(ChainNode).Type", Method, 1},
-		{"(CommandNode).Position", Method, 1},
-		{"(CommandNode).Type", Method, 0},
-		{"(CommentNode).Position", Method, 16},
-		{"(CommentNode).Type", Method, 16},
-		{"(ContinueNode).Position", Method, 18},
-		{"(ContinueNode).Type", Method, 18},
-		{"(DotNode).Position", Method, 1},
-		{"(FieldNode).Position", Method, 1},
-		{"(FieldNode).Type", Method, 0},
-		{"(IdentifierNode).Position", Method, 1},
-		{"(IdentifierNode).Type", Method, 0},
-		{"(IfNode).Position", Method, 1},
-		{"(IfNode).Type", Method, 0},
-		{"(ListNode).Position", Method, 1},
-		{"(ListNode).Type", Method, 0},
-		{"(NilNode).Position", Method, 1},
-		{"(NodeType).Type", Method, 0},
-		{"(NumberNode).Position", Method, 1},
-		{"(NumberNode).Type", Method, 0},
-		{"(PipeNode).Position", Method, 1},
-		{"(PipeNode).Type", Method, 0},
-		{"(Pos).Position", Method, 1},
-		{"(RangeNode).Position", Method, 1},
-		{"(RangeNode).Type", Method, 0},
-		{"(StringNode).Position", Method, 1},
-		{"(StringNode).Type", Method, 0},
-		{"(TemplateNode).Position", Method, 1},
-		{"(TemplateNode).Type", Method, 0},
-		{"(TextNode).Position", Method, 1},
-		{"(TextNode).Type", Method, 0},
-		{"(VariableNode).Position", Method, 1},
-		{"(VariableNode).Type", Method, 0},
-		{"(WithNode).Position", Method, 1},
-		{"(WithNode).Type", Method, 0},
-		{"ActionNode", Type, 0},
-		{"ActionNode.Line", Field, 0},
-		{"ActionNode.NodeType", Field, 0},
-		{"ActionNode.Pipe", Field, 0},
-		{"ActionNode.Pos", Field, 1},
-		{"BoolNode", Type, 0},
-		{"BoolNode.NodeType", Field, 0},
-		{"BoolNode.Pos", Field, 1},
-		{"BoolNode.True", Field, 0},
-		{"BranchNode", Type, 0},
-		{"BranchNode.ElseList", Field, 0},
-		{"BranchNode.Line", Field, 0},
-		{"BranchNode.List", Field, 0},
-		{"BranchNode.NodeType", Field, 0},
-		{"BranchNode.Pipe", Field, 0},
-		{"BranchNode.Pos", Field, 1},
-		{"BreakNode", Type, 18},
-		{"BreakNode.Line", Field, 18},
-		{"BreakNode.NodeType", Field, 18},
-		{"BreakNode.Pos", Field, 18},
-		{"ChainNode", Type, 1},
-		{"ChainNode.Field", Field, 1},
-		{"ChainNode.Node", Field, 1},
-		{"ChainNode.NodeType", Field, 1},
-		{"ChainNode.Pos", Field, 1},
-		{"CommandNode", Type, 0},
-		{"CommandNode.Args", Field, 0},
-		{"CommandNode.NodeType", Field, 0},
-		{"CommandNode.Pos", Field, 1},
-		{"CommentNode", Type, 16},
-		{"CommentNode.NodeType", Field, 16},
-		{"CommentNode.Pos", Field, 16},
-		{"CommentNode.Text", Field, 16},
-		{"ContinueNode", Type, 18},
-		{"ContinueNode.Line", Field, 18},
-		{"ContinueNode.NodeType", Field, 18},
-		{"ContinueNode.Pos", Field, 18},
-		{"DotNode", Type, 0},
-		{"DotNode.NodeType", Field, 4},
-		{"DotNode.Pos", Field, 1},
-		{"FieldNode", Type, 0},
-		{"FieldNode.Ident", Field, 0},
-		{"FieldNode.NodeType", Field, 0},
-		{"FieldNode.Pos", Field, 1},
-		{"IdentifierNode", Type, 0},
-		{"IdentifierNode.Ident", Field, 0},
-		{"IdentifierNode.NodeType", Field, 0},
-		{"IdentifierNode.Pos", Field, 1},
-		{"IfNode", Type, 0},
-		{"IfNode.BranchNode", Field, 0},
-		{"IsEmptyTree", Func, 0},
-		{"ListNode", Type, 0},
-		{"ListNode.NodeType", Field, 0},
-		{"ListNode.Nodes", Field, 0},
-		{"ListNode.Pos", Field, 1},
-		{"Mode", Type, 16},
-		{"New", Func, 0},
-		{"NewIdentifier", Func, 0},
-		{"NilNode", Type, 1},
-		{"NilNode.NodeType", Field, 4},
-		{"NilNode.Pos", Field, 1},
-		{"Node", Type, 0},
-		{"NodeAction", Const, 0},
-		{"NodeBool", Const, 0},
-		{"NodeBreak", Const, 18},
-		{"NodeChain", Const, 1},
-		{"NodeCommand", Const, 0},
-		{"NodeComment", Const, 16},
-		{"NodeContinue", Const, 18},
-		{"NodeDot", Const, 0},
-		{"NodeField", Const, 0},
-		{"NodeIdentifier", Const, 0},
-		{"NodeIf", Const, 0},
-		{"NodeList", Const, 0},
-		{"NodeNil", Const, 1},
-		{"NodeNumber", Const, 0},
-		{"NodePipe", Const, 0},
-		{"NodeRange", Const, 0},
-		{"NodeString", Const, 0},
-		{"NodeTemplate", Const, 0},
-		{"NodeText", Const, 0},
-		{"NodeType", Type, 0},
-		{"NodeVariable", Const, 0},
-		{"NodeWith", Const, 0},
-		{"NumberNode", Type, 0},
-		{"NumberNode.Complex128", Field, 0},
-		{"NumberNode.Float64", Field, 0},
-		{"NumberNode.Int64", Field, 0},
-		{"NumberNode.IsComplex", Field, 0},
-		{"NumberNode.IsFloat", Field, 0},
-		{"NumberNode.IsInt", Field, 0},
-		{"NumberNode.IsUint", Field, 0},
-		{"NumberNode.NodeType", Field, 0},
-		{"NumberNode.Pos", Field, 1},
-		{"NumberNode.Text", Field, 0},
-		{"NumberNode.Uint64", Field, 0},
-		{"Parse", Func, 0},
-		{"ParseComments", Const, 16},
-		{"PipeNode", Type, 0},
-		{"PipeNode.Cmds", Field, 0},
-		{"PipeNode.Decl", Field, 0},
-		{"PipeNode.IsAssign", Field, 11},
-		{"PipeNode.Line", Field, 0},
-		{"PipeNode.NodeType", Field, 0},
-		{"PipeNode.Pos", Field, 1},
-		{"Pos", Type, 1},
-		{"RangeNode", Type, 0},
-		{"RangeNode.BranchNode", Field, 0},
-		{"SkipFuncCheck", Const, 17},
-		{"StringNode", Type, 0},
-		{"StringNode.NodeType", Field, 0},
-		{"StringNode.Pos", Field, 1},
-		{"StringNode.Quoted", Field, 0},
-		{"StringNode.Text", Field, 0},
-		{"TemplateNode", Type, 0},
-		{"TemplateNode.Line", Field, 0},
-		{"TemplateNode.Name", Field, 0},
-		{"TemplateNode.NodeType", Field, 0},
-		{"TemplateNode.Pipe", Field, 0},
-		{"TemplateNode.Pos", Field, 1},
-		{"TextNode", Type, 0},
-		{"TextNode.NodeType", Field, 0},
-		{"TextNode.Pos", Field, 1},
-		{"TextNode.Text", Field, 0},
-		{"Tree", Type, 0},
-		{"Tree.Mode", Field, 16},
-		{"Tree.Name", Field, 0},
-		{"Tree.ParseName", Field, 1},
-		{"Tree.Root", Field, 0},
-		{"VariableNode", Type, 0},
-		{"VariableNode.Ident", Field, 0},
-		{"VariableNode.NodeType", Field, 0},
-		{"VariableNode.Pos", Field, 1},
-		{"WithNode", Type, 0},
-		{"WithNode.BranchNode", Field, 0},
+		{"(*ActionNode).Copy", Method, 0, ""},
+		{"(*ActionNode).String", Method, 0, ""},
+		{"(*BoolNode).Copy", Method, 0, ""},
+		{"(*BoolNode).String", Method, 0, ""},
+		{"(*BranchNode).Copy", Method, 4, ""},
+		{"(*BranchNode).String", Method, 0, ""},
+		{"(*BreakNode).Copy", Method, 18, ""},
+		{"(*BreakNode).String", Method, 18, ""},
+		{"(*ChainNode).Add", Method, 1, ""},
+		{"(*ChainNode).Copy", Method, 1, ""},
+		{"(*ChainNode).String", Method, 1, ""},
+		{"(*CommandNode).Copy", Method, 0, ""},
+		{"(*CommandNode).String", Method, 0, ""},
+		{"(*CommentNode).Copy", Method, 16, ""},
+		{"(*CommentNode).String", Method, 16, ""},
+		{"(*ContinueNode).Copy", Method, 18, ""},
+		{"(*ContinueNode).String", Method, 18, ""},
+		{"(*DotNode).Copy", Method, 0, ""},
+		{"(*DotNode).String", Method, 0, ""},
+		{"(*DotNode).Type", Method, 0, ""},
+		{"(*FieldNode).Copy", Method, 0, ""},
+		{"(*FieldNode).String", Method, 0, ""},
+		{"(*IdentifierNode).Copy", Method, 0, ""},
+		{"(*IdentifierNode).SetPos", Method, 1, ""},
+		{"(*IdentifierNode).SetTree", Method, 4, ""},
+		{"(*IdentifierNode).String", Method, 0, ""},
+		{"(*IfNode).Copy", Method, 0, ""},
+		{"(*IfNode).String", Method, 0, ""},
+		{"(*ListNode).Copy", Method, 0, ""},
+		{"(*ListNode).CopyList", Method, 0, ""},
+		{"(*ListNode).String", Method, 0, ""},
+		{"(*NilNode).Copy", Method, 1, ""},
+		{"(*NilNode).String", Method, 1, ""},
+		{"(*NilNode).Type", Method, 1, ""},
+		{"(*NumberNode).Copy", Method, 0, ""},
+		{"(*NumberNode).String", Method, 0, ""},
+		{"(*PipeNode).Copy", Method, 0, ""},
+		{"(*PipeNode).CopyPipe", Method, 0, ""},
+		{"(*PipeNode).String", Method, 0, ""},
+		{"(*RangeNode).Copy", Method, 0, ""},
+		{"(*RangeNode).String", Method, 0, ""},
+		{"(*StringNode).Copy", Method, 0, ""},
+		{"(*StringNode).String", Method, 0, ""},
+		{"(*TemplateNode).Copy", Method, 0, ""},
+		{"(*TemplateNode).String", Method, 0, ""},
+		{"(*TextNode).Copy", Method, 0, ""},
+		{"(*TextNode).String", Method, 0, ""},
+		{"(*Tree).Copy", Method, 2, ""},
+		{"(*Tree).ErrorContext", Method, 1, ""},
+		{"(*Tree).Parse", Method, 0, ""},
+		{"(*VariableNode).Copy", Method, 0, ""},
+		{"(*VariableNode).String", Method, 0, ""},
+		{"(*WithNode).Copy", Method, 0, ""},
+		{"(*WithNode).String", Method, 0, ""},
+		{"(ActionNode).Position", Method, 1, ""},
+		{"(ActionNode).Type", Method, 0, ""},
+		{"(BoolNode).Position", Method, 1, ""},
+		{"(BoolNode).Type", Method, 0, ""},
+		{"(BranchNode).Position", Method, 1, ""},
+		{"(BranchNode).Type", Method, 0, ""},
+		{"(BreakNode).Position", Method, 18, ""},
+		{"(BreakNode).Type", Method, 18, ""},
+		{"(ChainNode).Position", Method, 1, ""},
+		{"(ChainNode).Type", Method, 1, ""},
+		{"(CommandNode).Position", Method, 1, ""},
+		{"(CommandNode).Type", Method, 0, ""},
+		{"(CommentNode).Position", Method, 16, ""},
+		{"(CommentNode).Type", Method, 16, ""},
+		{"(ContinueNode).Position", Method, 18, ""},
+		{"(ContinueNode).Type", Method, 18, ""},
+		{"(DotNode).Position", Method, 1, ""},
+		{"(FieldNode).Position", Method, 1, ""},
+		{"(FieldNode).Type", Method, 0, ""},
+		{"(IdentifierNode).Position", Method, 1, ""},
+		{"(IdentifierNode).Type", Method, 0, ""},
+		{"(IfNode).Position", Method, 1, ""},
+		{"(IfNode).Type", Method, 0, ""},
+		{"(ListNode).Position", Method, 1, ""},
+		{"(ListNode).Type", Method, 0, ""},
+		{"(NilNode).Position", Method, 1, ""},
+		{"(NodeType).Type", Method, 0, ""},
+		{"(NumberNode).Position", Method, 1, ""},
+		{"(NumberNode).Type", Method, 0, ""},
+		{"(PipeNode).Position", Method, 1, ""},
+		{"(PipeNode).Type", Method, 0, ""},
+		{"(Pos).Position", Method, 1, ""},
+		{"(RangeNode).Position", Method, 1, ""},
+		{"(RangeNode).Type", Method, 0, ""},
+		{"(StringNode).Position", Method, 1, ""},
+		{"(StringNode).Type", Method, 0, ""},
+		{"(TemplateNode).Position", Method, 1, ""},
+		{"(TemplateNode).Type", Method, 0, ""},
+		{"(TextNode).Position", Method, 1, ""},
+		{"(TextNode).Type", Method, 0, ""},
+		{"(VariableNode).Position", Method, 1, ""},
+		{"(VariableNode).Type", Method, 0, ""},
+		{"(WithNode).Position", Method, 1, ""},
+		{"(WithNode).Type", Method, 0, ""},
+		{"ActionNode", Type, 0, ""},
+		{"ActionNode.Line", Field, 0, ""},
+		{"ActionNode.NodeType", Field, 0, ""},
+		{"ActionNode.Pipe", Field, 0, ""},
+		{"ActionNode.Pos", Field, 1, ""},
+		{"BoolNode", Type, 0, ""},
+		{"BoolNode.NodeType", Field, 0, ""},
+		{"BoolNode.Pos", Field, 1, ""},
+		{"BoolNode.True", Field, 0, ""},
+		{"BranchNode", Type, 0, ""},
+		{"BranchNode.ElseList", Field, 0, ""},
+		{"BranchNode.Line", Field, 0, ""},
+		{"BranchNode.List", Field, 0, ""},
+		{"BranchNode.NodeType", Field, 0, ""},
+		{"BranchNode.Pipe", Field, 0, ""},
+		{"BranchNode.Pos", Field, 1, ""},
+		{"BreakNode", Type, 18, ""},
+		{"BreakNode.Line", Field, 18, ""},
+		{"BreakNode.NodeType", Field, 18, ""},
+		{"BreakNode.Pos", Field, 18, ""},
+		{"ChainNode", Type, 1, ""},
+		{"ChainNode.Field", Field, 1, ""},
+		{"ChainNode.Node", Field, 1, ""},
+		{"ChainNode.NodeType", Field, 1, ""},
+		{"ChainNode.Pos", Field, 1, ""},
+		{"CommandNode", Type, 0, ""},
+		{"CommandNode.Args", Field, 0, ""},
+		{"CommandNode.NodeType", Field, 0, ""},
+		{"CommandNode.Pos", Field, 1, ""},
+		{"CommentNode", Type, 16, ""},
+		{"CommentNode.NodeType", Field, 16, ""},
+		{"CommentNode.Pos", Field, 16, ""},
+		{"CommentNode.Text", Field, 16, ""},
+		{"ContinueNode", Type, 18, ""},
+		{"ContinueNode.Line", Field, 18, ""},
+		{"ContinueNode.NodeType", Field, 18, ""},
+		{"ContinueNode.Pos", Field, 18, ""},
+		{"DotNode", Type, 0, ""},
+		{"DotNode.NodeType", Field, 4, ""},
+		{"DotNode.Pos", Field, 1, ""},
+		{"FieldNode", Type, 0, ""},
+		{"FieldNode.Ident", Field, 0, ""},
+		{"FieldNode.NodeType", Field, 0, ""},
+		{"FieldNode.Pos", Field, 1, ""},
+		{"IdentifierNode", Type, 0, ""},
+		{"IdentifierNode.Ident", Field, 0, ""},
+		{"IdentifierNode.NodeType", Field, 0, ""},
+		{"IdentifierNode.Pos", Field, 1, ""},
+		{"IfNode", Type, 0, ""},
+		{"IfNode.BranchNode", Field, 0, ""},
+		{"IsEmptyTree", Func, 0, "func(n Node) bool"},
+		{"ListNode", Type, 0, ""},
+		{"ListNode.NodeType", Field, 0, ""},
+		{"ListNode.Nodes", Field, 0, ""},
+		{"ListNode.Pos", Field, 1, ""},
+		{"Mode", Type, 16, ""},
+		{"New", Func, 0, "func(name string, funcs ...map[string]any) *Tree"},
+		{"NewIdentifier", Func, 0, "func(ident string) *IdentifierNode"},
+		{"NilNode", Type, 1, ""},
+		{"NilNode.NodeType", Field, 4, ""},
+		{"NilNode.Pos", Field, 1, ""},
+		{"Node", Type, 0, ""},
+		{"NodeAction", Const, 0, ""},
+		{"NodeBool", Const, 0, ""},
+		{"NodeBreak", Const, 18, ""},
+		{"NodeChain", Const, 1, ""},
+		{"NodeCommand", Const, 0, ""},
+		{"NodeComment", Const, 16, ""},
+		{"NodeContinue", Const, 18, ""},
+		{"NodeDot", Const, 0, ""},
+		{"NodeField", Const, 0, ""},
+		{"NodeIdentifier", Const, 0, ""},
+		{"NodeIf", Const, 0, ""},
+		{"NodeList", Const, 0, ""},
+		{"NodeNil", Const, 1, ""},
+		{"NodeNumber", Const, 0, ""},
+		{"NodePipe", Const, 0, ""},
+		{"NodeRange", Const, 0, ""},
+		{"NodeString", Const, 0, ""},
+		{"NodeTemplate", Const, 0, ""},
+		{"NodeText", Const, 0, ""},
+		{"NodeType", Type, 0, ""},
+		{"NodeVariable", Const, 0, ""},
+		{"NodeWith", Const, 0, ""},
+		{"NumberNode", Type, 0, ""},
+		{"NumberNode.Complex128", Field, 0, ""},
+		{"NumberNode.Float64", Field, 0, ""},
+		{"NumberNode.Int64", Field, 0, ""},
+		{"NumberNode.IsComplex", Field, 0, ""},
+		{"NumberNode.IsFloat", Field, 0, ""},
+		{"NumberNode.IsInt", Field, 0, ""},
+		{"NumberNode.IsUint", Field, 0, ""},
+		{"NumberNode.NodeType", Field, 0, ""},
+		{"NumberNode.Pos", Field, 1, ""},
+		{"NumberNode.Text", Field, 0, ""},
+		{"NumberNode.Uint64", Field, 0, ""},
+		{"Parse", Func, 0, "func(name string, text string, leftDelim string, rightDelim string, funcs ...map[string]any) (map[string]*Tree, error)"},
+		{"ParseComments", Const, 16, ""},
+		{"PipeNode", Type, 0, ""},
+		{"PipeNode.Cmds", Field, 0, ""},
+		{"PipeNode.Decl", Field, 0, ""},
+		{"PipeNode.IsAssign", Field, 11, ""},
+		{"PipeNode.Line", Field, 0, ""},
+		{"PipeNode.NodeType", Field, 0, ""},
+		{"PipeNode.Pos", Field, 1, ""},
+		{"Pos", Type, 1, ""},
+		{"RangeNode", Type, 0, ""},
+		{"RangeNode.BranchNode", Field, 0, ""},
+		{"SkipFuncCheck", Const, 17, ""},
+		{"StringNode", Type, 0, ""},
+		{"StringNode.NodeType", Field, 0, ""},
+		{"StringNode.Pos", Field, 1, ""},
+		{"StringNode.Quoted", Field, 0, ""},
+		{"StringNode.Text", Field, 0, ""},
+		{"TemplateNode", Type, 0, ""},
+		{"TemplateNode.Line", Field, 0, ""},
+		{"TemplateNode.Name", Field, 0, ""},
+		{"TemplateNode.NodeType", Field, 0, ""},
+		{"TemplateNode.Pipe", Field, 0, ""},
+		{"TemplateNode.Pos", Field, 1, ""},
+		{"TextNode", Type, 0, ""},
+		{"TextNode.NodeType", Field, 0, ""},
+		{"TextNode.Pos", Field, 1, ""},
+		{"TextNode.Text", Field, 0, ""},
+		{"Tree", Type, 0, ""},
+		{"Tree.Mode", Field, 16, ""},
+		{"Tree.Name", Field, 0, ""},
+		{"Tree.ParseName", Field, 1, ""},
+		{"Tree.Root", Field, 0, ""},
+		{"VariableNode", Type, 0, ""},
+		{"VariableNode.Ident", Field, 0, ""},
+		{"VariableNode.NodeType", Field, 0, ""},
+		{"VariableNode.Pos", Field, 1, ""},
+		{"WithNode", Type, 0, ""},
+		{"WithNode.BranchNode", Field, 0, ""},
 	},
 	"time": {
-		{"(*Location).String", Method, 0},
-		{"(*ParseError).Error", Method, 0},
-		{"(*Ticker).Reset", Method, 15},
-		{"(*Ticker).Stop", Method, 0},
-		{"(*Time).GobDecode", Method, 0},
-		{"(*Time).UnmarshalBinary", Method, 2},
-		{"(*Time).UnmarshalJSON", Method, 0},
-		{"(*Time).UnmarshalText", Method, 2},
-		{"(*Timer).Reset", Method, 1},
-		{"(*Timer).Stop", Method, 0},
-		{"(Duration).Abs", Method, 19},
-		{"(Duration).Hours", Method, 0},
-		{"(Duration).Microseconds", Method, 13},
-		{"(Duration).Milliseconds", Method, 13},
-		{"(Duration).Minutes", Method, 0},
-		{"(Duration).Nanoseconds", Method, 0},
-		{"(Duration).Round", Method, 9},
-		{"(Duration).Seconds", Method, 0},
-		{"(Duration).String", Method, 0},
-		{"(Duration).Truncate", Method, 9},
-		{"(Month).String", Method, 0},
-		{"(Time).Add", Method, 0},
-		{"(Time).AddDate", Method, 0},
-		{"(Time).After", Method, 0},
-		{"(Time).AppendBinary", Method, 24},
-		{"(Time).AppendFormat", Method, 5},
-		{"(Time).AppendText", Method, 24},
-		{"(Time).Before", Method, 0},
-		{"(Time).Clock", Method, 0},
-		{"(Time).Compare", Method, 20},
-		{"(Time).Date", Method, 0},
-		{"(Time).Day", Method, 0},
-		{"(Time).Equal", Method, 0},
-		{"(Time).Format", Method, 0},
-		{"(Time).GoString", Method, 17},
-		{"(Time).GobEncode", Method, 0},
-		{"(Time).Hour", Method, 0},
-		{"(Time).ISOWeek", Method, 0},
-		{"(Time).In", Method, 0},
-		{"(Time).IsDST", Method, 17},
-		{"(Time).IsZero", Method, 0},
-		{"(Time).Local", Method, 0},
-		{"(Time).Location", Method, 0},
-		{"(Time).MarshalBinary", Method, 2},
-		{"(Time).MarshalJSON", Method, 0},
-		{"(Time).MarshalText", Method, 2},
-		{"(Time).Minute", Method, 0},
-		{"(Time).Month", Method, 0},
-		{"(Time).Nanosecond", Method, 0},
-		{"(Time).Round", Method, 1},
-		{"(Time).Second", Method, 0},
-		{"(Time).String", Method, 0},
-		{"(Time).Sub", Method, 0},
-		{"(Time).Truncate", Method, 1},
-		{"(Time).UTC", Method, 0},
-		{"(Time).Unix", Method, 0},
-		{"(Time).UnixMicro", Method, 17},
-		{"(Time).UnixMilli", Method, 17},
-		{"(Time).UnixNano", Method, 0},
-		{"(Time).Weekday", Method, 0},
-		{"(Time).Year", Method, 0},
-		{"(Time).YearDay", Method, 1},
-		{"(Time).Zone", Method, 0},
-		{"(Time).ZoneBounds", Method, 19},
-		{"(Weekday).String", Method, 0},
-		{"ANSIC", Const, 0},
-		{"After", Func, 0},
-		{"AfterFunc", Func, 0},
-		{"April", Const, 0},
-		{"August", Const, 0},
-		{"Date", Func, 0},
-		{"DateOnly", Const, 20},
-		{"DateTime", Const, 20},
-		{"December", Const, 0},
-		{"Duration", Type, 0},
-		{"February", Const, 0},
-		{"FixedZone", Func, 0},
-		{"Friday", Const, 0},
-		{"Hour", Const, 0},
-		{"January", Const, 0},
-		{"July", Const, 0},
-		{"June", Const, 0},
-		{"Kitchen", Const, 0},
-		{"Layout", Const, 17},
-		{"LoadLocation", Func, 0},
-		{"LoadLocationFromTZData", Func, 10},
-		{"Local", Var, 0},
-		{"Location", Type, 0},
-		{"March", Const, 0},
-		{"May", Const, 0},
-		{"Microsecond", Const, 0},
-		{"Millisecond", Const, 0},
-		{"Minute", Const, 0},
-		{"Monday", Const, 0},
-		{"Month", Type, 0},
-		{"Nanosecond", Const, 0},
-		{"NewTicker", Func, 0},
-		{"NewTimer", Func, 0},
-		{"November", Const, 0},
-		{"Now", Func, 0},
-		{"October", Const, 0},
-		{"Parse", Func, 0},
-		{"ParseDuration", Func, 0},
-		{"ParseError", Type, 0},
-		{"ParseError.Layout", Field, 0},
-		{"ParseError.LayoutElem", Field, 0},
-		{"ParseError.Message", Field, 0},
-		{"ParseError.Value", Field, 0},
-		{"ParseError.ValueElem", Field, 0},
-		{"ParseInLocation", Func, 1},
-		{"RFC1123", Const, 0},
-		{"RFC1123Z", Const, 0},
-		{"RFC3339", Const, 0},
-		{"RFC3339Nano", Const, 0},
-		{"RFC822", Const, 0},
-		{"RFC822Z", Const, 0},
-		{"RFC850", Const, 0},
-		{"RubyDate", Const, 0},
-		{"Saturday", Const, 0},
-		{"Second", Const, 0},
-		{"September", Const, 0},
-		{"Since", Func, 0},
-		{"Sleep", Func, 0},
-		{"Stamp", Const, 0},
-		{"StampMicro", Const, 0},
-		{"StampMilli", Const, 0},
-		{"StampNano", Const, 0},
-		{"Sunday", Const, 0},
-		{"Thursday", Const, 0},
-		{"Tick", Func, 0},
-		{"Ticker", Type, 0},
-		{"Ticker.C", Field, 0},
-		{"Time", Type, 0},
-		{"TimeOnly", Const, 20},
-		{"Timer", Type, 0},
-		{"Timer.C", Field, 0},
-		{"Tuesday", Const, 0},
-		{"UTC", Var, 0},
-		{"Unix", Func, 0},
-		{"UnixDate", Const, 0},
-		{"UnixMicro", Func, 17},
-		{"UnixMilli", Func, 17},
-		{"Until", Func, 8},
-		{"Wednesday", Const, 0},
-		{"Weekday", Type, 0},
+		{"(*Location).String", Method, 0, ""},
+		{"(*ParseError).Error", Method, 0, ""},
+		{"(*Ticker).Reset", Method, 15, ""},
+		{"(*Ticker).Stop", Method, 0, ""},
+		{"(*Time).GobDecode", Method, 0, ""},
+		{"(*Time).UnmarshalBinary", Method, 2, ""},
+		{"(*Time).UnmarshalJSON", Method, 0, ""},
+		{"(*Time).UnmarshalText", Method, 2, ""},
+		{"(*Timer).Reset", Method, 1, ""},
+		{"(*Timer).Stop", Method, 0, ""},
+		{"(Duration).Abs", Method, 19, ""},
+		{"(Duration).Hours", Method, 0, ""},
+		{"(Duration).Microseconds", Method, 13, ""},
+		{"(Duration).Milliseconds", Method, 13, ""},
+		{"(Duration).Minutes", Method, 0, ""},
+		{"(Duration).Nanoseconds", Method, 0, ""},
+		{"(Duration).Round", Method, 9, ""},
+		{"(Duration).Seconds", Method, 0, ""},
+		{"(Duration).String", Method, 0, ""},
+		{"(Duration).Truncate", Method, 9, ""},
+		{"(Month).String", Method, 0, ""},
+		{"(Time).Add", Method, 0, ""},
+		{"(Time).AddDate", Method, 0, ""},
+		{"(Time).After", Method, 0, ""},
+		{"(Time).AppendBinary", Method, 24, ""},
+		{"(Time).AppendFormat", Method, 5, ""},
+		{"(Time).AppendText", Method, 24, ""},
+		{"(Time).Before", Method, 0, ""},
+		{"(Time).Clock", Method, 0, ""},
+		{"(Time).Compare", Method, 20, ""},
+		{"(Time).Date", Method, 0, ""},
+		{"(Time).Day", Method, 0, ""},
+		{"(Time).Equal", Method, 0, ""},
+		{"(Time).Format", Method, 0, ""},
+		{"(Time).GoString", Method, 17, ""},
+		{"(Time).GobEncode", Method, 0, ""},
+		{"(Time).Hour", Method, 0, ""},
+		{"(Time).ISOWeek", Method, 0, ""},
+		{"(Time).In", Method, 0, ""},
+		{"(Time).IsDST", Method, 17, ""},
+		{"(Time).IsZero", Method, 0, ""},
+		{"(Time).Local", Method, 0, ""},
+		{"(Time).Location", Method, 0, ""},
+		{"(Time).MarshalBinary", Method, 2, ""},
+		{"(Time).MarshalJSON", Method, 0, ""},
+		{"(Time).MarshalText", Method, 2, ""},
+		{"(Time).Minute", Method, 0, ""},
+		{"(Time).Month", Method, 0, ""},
+		{"(Time).Nanosecond", Method, 0, ""},
+		{"(Time).Round", Method, 1, ""},
+		{"(Time).Second", Method, 0, ""},
+		{"(Time).String", Method, 0, ""},
+		{"(Time).Sub", Method, 0, ""},
+		{"(Time).Truncate", Method, 1, ""},
+		{"(Time).UTC", Method, 0, ""},
+		{"(Time).Unix", Method, 0, ""},
+		{"(Time).UnixMicro", Method, 17, ""},
+		{"(Time).UnixMilli", Method, 17, ""},
+		{"(Time).UnixNano", Method, 0, ""},
+		{"(Time).Weekday", Method, 0, ""},
+		{"(Time).Year", Method, 0, ""},
+		{"(Time).YearDay", Method, 1, ""},
+		{"(Time).Zone", Method, 0, ""},
+		{"(Time).ZoneBounds", Method, 19, ""},
+		{"(Weekday).String", Method, 0, ""},
+		{"ANSIC", Const, 0, ""},
+		{"After", Func, 0, "func(d Duration) <-chan Time"},
+		{"AfterFunc", Func, 0, "func(d Duration, f func()) *Timer"},
+		{"April", Const, 0, ""},
+		{"August", Const, 0, ""},
+		{"Date", Func, 0, "func(year int, month Month, day int, hour int, min int, sec int, nsec int, loc *Location) Time"},
+		{"DateOnly", Const, 20, ""},
+		{"DateTime", Const, 20, ""},
+		{"December", Const, 0, ""},
+		{"Duration", Type, 0, ""},
+		{"February", Const, 0, ""},
+		{"FixedZone", Func, 0, "func(name string, offset int) *Location"},
+		{"Friday", Const, 0, ""},
+		{"Hour", Const, 0, ""},
+		{"January", Const, 0, ""},
+		{"July", Const, 0, ""},
+		{"June", Const, 0, ""},
+		{"Kitchen", Const, 0, ""},
+		{"Layout", Const, 17, ""},
+		{"LoadLocation", Func, 0, "func(name string) (*Location, error)"},
+		{"LoadLocationFromTZData", Func, 10, "func(name string, data []byte) (*Location, error)"},
+		{"Local", Var, 0, ""},
+		{"Location", Type, 0, ""},
+		{"March", Const, 0, ""},
+		{"May", Const, 0, ""},
+		{"Microsecond", Const, 0, ""},
+		{"Millisecond", Const, 0, ""},
+		{"Minute", Const, 0, ""},
+		{"Monday", Const, 0, ""},
+		{"Month", Type, 0, ""},
+		{"Nanosecond", Const, 0, ""},
+		{"NewTicker", Func, 0, "func(d Duration) *Ticker"},
+		{"NewTimer", Func, 0, "func(d Duration) *Timer"},
+		{"November", Const, 0, ""},
+		{"Now", Func, 0, "func() Time"},
+		{"October", Const, 0, ""},
+		{"Parse", Func, 0, "func(layout string, value string) (Time, error)"},
+		{"ParseDuration", Func, 0, "func(s string) (Duration, error)"},
+		{"ParseError", Type, 0, ""},
+		{"ParseError.Layout", Field, 0, ""},
+		{"ParseError.LayoutElem", Field, 0, ""},
+		{"ParseError.Message", Field, 0, ""},
+		{"ParseError.Value", Field, 0, ""},
+		{"ParseError.ValueElem", Field, 0, ""},
+		{"ParseInLocation", Func, 1, "func(layout string, value string, loc *Location) (Time, error)"},
+		{"RFC1123", Const, 0, ""},
+		{"RFC1123Z", Const, 0, ""},
+		{"RFC3339", Const, 0, ""},
+		{"RFC3339Nano", Const, 0, ""},
+		{"RFC822", Const, 0, ""},
+		{"RFC822Z", Const, 0, ""},
+		{"RFC850", Const, 0, ""},
+		{"RubyDate", Const, 0, ""},
+		{"Saturday", Const, 0, ""},
+		{"Second", Const, 0, ""},
+		{"September", Const, 0, ""},
+		{"Since", Func, 0, "func(t Time) Duration"},
+		{"Sleep", Func, 0, "func(d Duration)"},
+		{"Stamp", Const, 0, ""},
+		{"StampMicro", Const, 0, ""},
+		{"StampMilli", Const, 0, ""},
+		{"StampNano", Const, 0, ""},
+		{"Sunday", Const, 0, ""},
+		{"Thursday", Const, 0, ""},
+		{"Tick", Func, 0, "func(d Duration) <-chan Time"},
+		{"Ticker", Type, 0, ""},
+		{"Ticker.C", Field, 0, ""},
+		{"Time", Type, 0, ""},
+		{"TimeOnly", Const, 20, ""},
+		{"Timer", Type, 0, ""},
+		{"Timer.C", Field, 0, ""},
+		{"Tuesday", Const, 0, ""},
+		{"UTC", Var, 0, ""},
+		{"Unix", Func, 0, "func(sec int64, nsec int64) Time"},
+		{"UnixDate", Const, 0, ""},
+		{"UnixMicro", Func, 17, "func(usec int64) Time"},
+		{"UnixMilli", Func, 17, "func(msec int64) Time"},
+		{"Until", Func, 8, "func(t Time) Duration"},
+		{"Wednesday", Const, 0, ""},
+		{"Weekday", Type, 0, ""},
 	},
 	"unicode": {
-		{"(SpecialCase).ToLower", Method, 0},
-		{"(SpecialCase).ToTitle", Method, 0},
-		{"(SpecialCase).ToUpper", Method, 0},
-		{"ASCII_Hex_Digit", Var, 0},
-		{"Adlam", Var, 7},
-		{"Ahom", Var, 5},
-		{"Anatolian_Hieroglyphs", Var, 5},
-		{"Arabic", Var, 0},
-		{"Armenian", Var, 0},
-		{"Avestan", Var, 0},
-		{"AzeriCase", Var, 0},
-		{"Balinese", Var, 0},
-		{"Bamum", Var, 0},
-		{"Bassa_Vah", Var, 4},
-		{"Batak", Var, 0},
-		{"Bengali", Var, 0},
-		{"Bhaiksuki", Var, 7},
-		{"Bidi_Control", Var, 0},
-		{"Bopomofo", Var, 0},
-		{"Brahmi", Var, 0},
-		{"Braille", Var, 0},
-		{"Buginese", Var, 0},
-		{"Buhid", Var, 0},
-		{"C", Var, 0},
-		{"Canadian_Aboriginal", Var, 0},
-		{"Carian", Var, 0},
-		{"CaseRange", Type, 0},
-		{"CaseRange.Delta", Field, 0},
-		{"CaseRange.Hi", Field, 0},
-		{"CaseRange.Lo", Field, 0},
-		{"CaseRanges", Var, 0},
-		{"Categories", Var, 0},
-		{"Caucasian_Albanian", Var, 4},
-		{"Cc", Var, 0},
-		{"Cf", Var, 0},
-		{"Chakma", Var, 1},
-		{"Cham", Var, 0},
-		{"Cherokee", Var, 0},
-		{"Chorasmian", Var, 16},
-		{"Co", Var, 0},
-		{"Common", Var, 0},
-		{"Coptic", Var, 0},
-		{"Cs", Var, 0},
-		{"Cuneiform", Var, 0},
-		{"Cypriot", Var, 0},
-		{"Cypro_Minoan", Var, 21},
-		{"Cyrillic", Var, 0},
-		{"Dash", Var, 0},
-		{"Deprecated", Var, 0},
-		{"Deseret", Var, 0},
-		{"Devanagari", Var, 0},
-		{"Diacritic", Var, 0},
-		{"Digit", Var, 0},
-		{"Dives_Akuru", Var, 16},
-		{"Dogra", Var, 13},
-		{"Duployan", Var, 4},
-		{"Egyptian_Hieroglyphs", Var, 0},
-		{"Elbasan", Var, 4},
-		{"Elymaic", Var, 14},
-		{"Ethiopic", Var, 0},
-		{"Extender", Var, 0},
-		{"FoldCategory", Var, 0},
-		{"FoldScript", Var, 0},
-		{"Georgian", Var, 0},
-		{"Glagolitic", Var, 0},
-		{"Gothic", Var, 0},
-		{"Grantha", Var, 4},
-		{"GraphicRanges", Var, 0},
-		{"Greek", Var, 0},
-		{"Gujarati", Var, 0},
-		{"Gunjala_Gondi", Var, 13},
-		{"Gurmukhi", Var, 0},
-		{"Han", Var, 0},
-		{"Hangul", Var, 0},
-		{"Hanifi_Rohingya", Var, 13},
-		{"Hanunoo", Var, 0},
-		{"Hatran", Var, 5},
-		{"Hebrew", Var, 0},
-		{"Hex_Digit", Var, 0},
-		{"Hiragana", Var, 0},
-		{"Hyphen", Var, 0},
-		{"IDS_Binary_Operator", Var, 0},
-		{"IDS_Trinary_Operator", Var, 0},
-		{"Ideographic", Var, 0},
-		{"Imperial_Aramaic", Var, 0},
-		{"In", Func, 2},
-		{"Inherited", Var, 0},
-		{"Inscriptional_Pahlavi", Var, 0},
-		{"Inscriptional_Parthian", Var, 0},
-		{"Is", Func, 0},
-		{"IsControl", Func, 0},
-		{"IsDigit", Func, 0},
-		{"IsGraphic", Func, 0},
-		{"IsLetter", Func, 0},
-		{"IsLower", Func, 0},
-		{"IsMark", Func, 0},
-		{"IsNumber", Func, 0},
-		{"IsOneOf", Func, 0},
-		{"IsPrint", Func, 0},
-		{"IsPunct", Func, 0},
-		{"IsSpace", Func, 0},
-		{"IsSymbol", Func, 0},
-		{"IsTitle", Func, 0},
-		{"IsUpper", Func, 0},
-		{"Javanese", Var, 0},
-		{"Join_Control", Var, 0},
-		{"Kaithi", Var, 0},
-		{"Kannada", Var, 0},
-		{"Katakana", Var, 0},
-		{"Kawi", Var, 21},
-		{"Kayah_Li", Var, 0},
-		{"Kharoshthi", Var, 0},
-		{"Khitan_Small_Script", Var, 16},
-		{"Khmer", Var, 0},
-		{"Khojki", Var, 4},
-		{"Khudawadi", Var, 4},
-		{"L", Var, 0},
-		{"Lao", Var, 0},
-		{"Latin", Var, 0},
-		{"Lepcha", Var, 0},
-		{"Letter", Var, 0},
-		{"Limbu", Var, 0},
-		{"Linear_A", Var, 4},
-		{"Linear_B", Var, 0},
-		{"Lisu", Var, 0},
-		{"Ll", Var, 0},
-		{"Lm", Var, 0},
-		{"Lo", Var, 0},
-		{"Logical_Order_Exception", Var, 0},
-		{"Lower", Var, 0},
-		{"LowerCase", Const, 0},
-		{"Lt", Var, 0},
-		{"Lu", Var, 0},
-		{"Lycian", Var, 0},
-		{"Lydian", Var, 0},
-		{"M", Var, 0},
-		{"Mahajani", Var, 4},
-		{"Makasar", Var, 13},
-		{"Malayalam", Var, 0},
-		{"Mandaic", Var, 0},
-		{"Manichaean", Var, 4},
-		{"Marchen", Var, 7},
-		{"Mark", Var, 0},
-		{"Masaram_Gondi", Var, 10},
-		{"MaxASCII", Const, 0},
-		{"MaxCase", Const, 0},
-		{"MaxLatin1", Const, 0},
-		{"MaxRune", Const, 0},
-		{"Mc", Var, 0},
-		{"Me", Var, 0},
-		{"Medefaidrin", Var, 13},
-		{"Meetei_Mayek", Var, 0},
-		{"Mende_Kikakui", Var, 4},
-		{"Meroitic_Cursive", Var, 1},
-		{"Meroitic_Hieroglyphs", Var, 1},
-		{"Miao", Var, 1},
-		{"Mn", Var, 0},
-		{"Modi", Var, 4},
-		{"Mongolian", Var, 0},
-		{"Mro", Var, 4},
-		{"Multani", Var, 5},
-		{"Myanmar", Var, 0},
-		{"N", Var, 0},
-		{"Nabataean", Var, 4},
-		{"Nag_Mundari", Var, 21},
-		{"Nandinagari", Var, 14},
-		{"Nd", Var, 0},
-		{"New_Tai_Lue", Var, 0},
-		{"Newa", Var, 7},
-		{"Nko", Var, 0},
-		{"Nl", Var, 0},
-		{"No", Var, 0},
-		{"Noncharacter_Code_Point", Var, 0},
-		{"Number", Var, 0},
-		{"Nushu", Var, 10},
-		{"Nyiakeng_Puachue_Hmong", Var, 14},
-		{"Ogham", Var, 0},
-		{"Ol_Chiki", Var, 0},
-		{"Old_Hungarian", Var, 5},
-		{"Old_Italic", Var, 0},
-		{"Old_North_Arabian", Var, 4},
-		{"Old_Permic", Var, 4},
-		{"Old_Persian", Var, 0},
-		{"Old_Sogdian", Var, 13},
-		{"Old_South_Arabian", Var, 0},
-		{"Old_Turkic", Var, 0},
-		{"Old_Uyghur", Var, 21},
-		{"Oriya", Var, 0},
-		{"Osage", Var, 7},
-		{"Osmanya", Var, 0},
-		{"Other", Var, 0},
-		{"Other_Alphabetic", Var, 0},
-		{"Other_Default_Ignorable_Code_Point", Var, 0},
-		{"Other_Grapheme_Extend", Var, 0},
-		{"Other_ID_Continue", Var, 0},
-		{"Other_ID_Start", Var, 0},
-		{"Other_Lowercase", Var, 0},
-		{"Other_Math", Var, 0},
-		{"Other_Uppercase", Var, 0},
-		{"P", Var, 0},
-		{"Pahawh_Hmong", Var, 4},
-		{"Palmyrene", Var, 4},
-		{"Pattern_Syntax", Var, 0},
-		{"Pattern_White_Space", Var, 0},
-		{"Pau_Cin_Hau", Var, 4},
-		{"Pc", Var, 0},
-		{"Pd", Var, 0},
-		{"Pe", Var, 0},
-		{"Pf", Var, 0},
-		{"Phags_Pa", Var, 0},
-		{"Phoenician", Var, 0},
-		{"Pi", Var, 0},
-		{"Po", Var, 0},
-		{"Prepended_Concatenation_Mark", Var, 7},
-		{"PrintRanges", Var, 0},
-		{"Properties", Var, 0},
-		{"Ps", Var, 0},
-		{"Psalter_Pahlavi", Var, 4},
-		{"Punct", Var, 0},
-		{"Quotation_Mark", Var, 0},
-		{"Radical", Var, 0},
-		{"Range16", Type, 0},
-		{"Range16.Hi", Field, 0},
-		{"Range16.Lo", Field, 0},
-		{"Range16.Stride", Field, 0},
-		{"Range32", Type, 0},
-		{"Range32.Hi", Field, 0},
-		{"Range32.Lo", Field, 0},
-		{"Range32.Stride", Field, 0},
-		{"RangeTable", Type, 0},
-		{"RangeTable.LatinOffset", Field, 1},
-		{"RangeTable.R16", Field, 0},
-		{"RangeTable.R32", Field, 0},
-		{"Regional_Indicator", Var, 10},
-		{"Rejang", Var, 0},
-		{"ReplacementChar", Const, 0},
-		{"Runic", Var, 0},
-		{"S", Var, 0},
-		{"STerm", Var, 0},
-		{"Samaritan", Var, 0},
-		{"Saurashtra", Var, 0},
-		{"Sc", Var, 0},
-		{"Scripts", Var, 0},
-		{"Sentence_Terminal", Var, 7},
-		{"Sharada", Var, 1},
-		{"Shavian", Var, 0},
-		{"Siddham", Var, 4},
-		{"SignWriting", Var, 5},
-		{"SimpleFold", Func, 0},
-		{"Sinhala", Var, 0},
-		{"Sk", Var, 0},
-		{"Sm", Var, 0},
-		{"So", Var, 0},
-		{"Soft_Dotted", Var, 0},
-		{"Sogdian", Var, 13},
-		{"Sora_Sompeng", Var, 1},
-		{"Soyombo", Var, 10},
-		{"Space", Var, 0},
-		{"SpecialCase", Type, 0},
-		{"Sundanese", Var, 0},
-		{"Syloti_Nagri", Var, 0},
-		{"Symbol", Var, 0},
-		{"Syriac", Var, 0},
-		{"Tagalog", Var, 0},
-		{"Tagbanwa", Var, 0},
-		{"Tai_Le", Var, 0},
-		{"Tai_Tham", Var, 0},
-		{"Tai_Viet", Var, 0},
-		{"Takri", Var, 1},
-		{"Tamil", Var, 0},
-		{"Tangsa", Var, 21},
-		{"Tangut", Var, 7},
-		{"Telugu", Var, 0},
-		{"Terminal_Punctuation", Var, 0},
-		{"Thaana", Var, 0},
-		{"Thai", Var, 0},
-		{"Tibetan", Var, 0},
-		{"Tifinagh", Var, 0},
-		{"Tirhuta", Var, 4},
-		{"Title", Var, 0},
-		{"TitleCase", Const, 0},
-		{"To", Func, 0},
-		{"ToLower", Func, 0},
-		{"ToTitle", Func, 0},
-		{"ToUpper", Func, 0},
-		{"Toto", Var, 21},
-		{"TurkishCase", Var, 0},
-		{"Ugaritic", Var, 0},
-		{"Unified_Ideograph", Var, 0},
-		{"Upper", Var, 0},
-		{"UpperCase", Const, 0},
-		{"UpperLower", Const, 0},
-		{"Vai", Var, 0},
-		{"Variation_Selector", Var, 0},
-		{"Version", Const, 0},
-		{"Vithkuqi", Var, 21},
-		{"Wancho", Var, 14},
-		{"Warang_Citi", Var, 4},
-		{"White_Space", Var, 0},
-		{"Yezidi", Var, 16},
-		{"Yi", Var, 0},
-		{"Z", Var, 0},
-		{"Zanabazar_Square", Var, 10},
-		{"Zl", Var, 0},
-		{"Zp", Var, 0},
-		{"Zs", Var, 0},
+		{"(SpecialCase).ToLower", Method, 0, ""},
+		{"(SpecialCase).ToTitle", Method, 0, ""},
+		{"(SpecialCase).ToUpper", Method, 0, ""},
+		{"ASCII_Hex_Digit", Var, 0, ""},
+		{"Adlam", Var, 7, ""},
+		{"Ahom", Var, 5, ""},
+		{"Anatolian_Hieroglyphs", Var, 5, ""},
+		{"Arabic", Var, 0, ""},
+		{"Armenian", Var, 0, ""},
+		{"Avestan", Var, 0, ""},
+		{"AzeriCase", Var, 0, ""},
+		{"Balinese", Var, 0, ""},
+		{"Bamum", Var, 0, ""},
+		{"Bassa_Vah", Var, 4, ""},
+		{"Batak", Var, 0, ""},
+		{"Bengali", Var, 0, ""},
+		{"Bhaiksuki", Var, 7, ""},
+		{"Bidi_Control", Var, 0, ""},
+		{"Bopomofo", Var, 0, ""},
+		{"Brahmi", Var, 0, ""},
+		{"Braille", Var, 0, ""},
+		{"Buginese", Var, 0, ""},
+		{"Buhid", Var, 0, ""},
+		{"C", Var, 0, ""},
+		{"Canadian_Aboriginal", Var, 0, ""},
+		{"Carian", Var, 0, ""},
+		{"CaseRange", Type, 0, ""},
+		{"CaseRange.Delta", Field, 0, ""},
+		{"CaseRange.Hi", Field, 0, ""},
+		{"CaseRange.Lo", Field, 0, ""},
+		{"CaseRanges", Var, 0, ""},
+		{"Categories", Var, 0, ""},
+		{"CategoryAliases", Var, 25, ""},
+		{"Caucasian_Albanian", Var, 4, ""},
+		{"Cc", Var, 0, ""},
+		{"Cf", Var, 0, ""},
+		{"Chakma", Var, 1, ""},
+		{"Cham", Var, 0, ""},
+		{"Cherokee", Var, 0, ""},
+		{"Chorasmian", Var, 16, ""},
+		{"Cn", Var, 25, ""},
+		{"Co", Var, 0, ""},
+		{"Common", Var, 0, ""},
+		{"Coptic", Var, 0, ""},
+		{"Cs", Var, 0, ""},
+		{"Cuneiform", Var, 0, ""},
+		{"Cypriot", Var, 0, ""},
+		{"Cypro_Minoan", Var, 21, ""},
+		{"Cyrillic", Var, 0, ""},
+		{"Dash", Var, 0, ""},
+		{"Deprecated", Var, 0, ""},
+		{"Deseret", Var, 0, ""},
+		{"Devanagari", Var, 0, ""},
+		{"Diacritic", Var, 0, ""},
+		{"Digit", Var, 0, ""},
+		{"Dives_Akuru", Var, 16, ""},
+		{"Dogra", Var, 13, ""},
+		{"Duployan", Var, 4, ""},
+		{"Egyptian_Hieroglyphs", Var, 0, ""},
+		{"Elbasan", Var, 4, ""},
+		{"Elymaic", Var, 14, ""},
+		{"Ethiopic", Var, 0, ""},
+		{"Extender", Var, 0, ""},
+		{"FoldCategory", Var, 0, ""},
+		{"FoldScript", Var, 0, ""},
+		{"Georgian", Var, 0, ""},
+		{"Glagolitic", Var, 0, ""},
+		{"Gothic", Var, 0, ""},
+		{"Grantha", Var, 4, ""},
+		{"GraphicRanges", Var, 0, ""},
+		{"Greek", Var, 0, ""},
+		{"Gujarati", Var, 0, ""},
+		{"Gunjala_Gondi", Var, 13, ""},
+		{"Gurmukhi", Var, 0, ""},
+		{"Han", Var, 0, ""},
+		{"Hangul", Var, 0, ""},
+		{"Hanifi_Rohingya", Var, 13, ""},
+		{"Hanunoo", Var, 0, ""},
+		{"Hatran", Var, 5, ""},
+		{"Hebrew", Var, 0, ""},
+		{"Hex_Digit", Var, 0, ""},
+		{"Hiragana", Var, 0, ""},
+		{"Hyphen", Var, 0, ""},
+		{"IDS_Binary_Operator", Var, 0, ""},
+		{"IDS_Trinary_Operator", Var, 0, ""},
+		{"Ideographic", Var, 0, ""},
+		{"Imperial_Aramaic", Var, 0, ""},
+		{"In", Func, 2, "func(r rune, ranges ...*RangeTable) bool"},
+		{"Inherited", Var, 0, ""},
+		{"Inscriptional_Pahlavi", Var, 0, ""},
+		{"Inscriptional_Parthian", Var, 0, ""},
+		{"Is", Func, 0, "func(rangeTab *RangeTable, r rune) bool"},
+		{"IsControl", Func, 0, "func(r rune) bool"},
+		{"IsDigit", Func, 0, "func(r rune) bool"},
+		{"IsGraphic", Func, 0, "func(r rune) bool"},
+		{"IsLetter", Func, 0, "func(r rune) bool"},
+		{"IsLower", Func, 0, "func(r rune) bool"},
+		{"IsMark", Func, 0, "func(r rune) bool"},
+		{"IsNumber", Func, 0, "func(r rune) bool"},
+		{"IsOneOf", Func, 0, "func(ranges []*RangeTable, r rune) bool"},
+		{"IsPrint", Func, 0, "func(r rune) bool"},
+		{"IsPunct", Func, 0, "func(r rune) bool"},
+		{"IsSpace", Func, 0, "func(r rune) bool"},
+		{"IsSymbol", Func, 0, "func(r rune) bool"},
+		{"IsTitle", Func, 0, "func(r rune) bool"},
+		{"IsUpper", Func, 0, "func(r rune) bool"},
+		{"Javanese", Var, 0, ""},
+		{"Join_Control", Var, 0, ""},
+		{"Kaithi", Var, 0, ""},
+		{"Kannada", Var, 0, ""},
+		{"Katakana", Var, 0, ""},
+		{"Kawi", Var, 21, ""},
+		{"Kayah_Li", Var, 0, ""},
+		{"Kharoshthi", Var, 0, ""},
+		{"Khitan_Small_Script", Var, 16, ""},
+		{"Khmer", Var, 0, ""},
+		{"Khojki", Var, 4, ""},
+		{"Khudawadi", Var, 4, ""},
+		{"L", Var, 0, ""},
+		{"LC", Var, 25, ""},
+		{"Lao", Var, 0, ""},
+		{"Latin", Var, 0, ""},
+		{"Lepcha", Var, 0, ""},
+		{"Letter", Var, 0, ""},
+		{"Limbu", Var, 0, ""},
+		{"Linear_A", Var, 4, ""},
+		{"Linear_B", Var, 0, ""},
+		{"Lisu", Var, 0, ""},
+		{"Ll", Var, 0, ""},
+		{"Lm", Var, 0, ""},
+		{"Lo", Var, 0, ""},
+		{"Logical_Order_Exception", Var, 0, ""},
+		{"Lower", Var, 0, ""},
+		{"LowerCase", Const, 0, ""},
+		{"Lt", Var, 0, ""},
+		{"Lu", Var, 0, ""},
+		{"Lycian", Var, 0, ""},
+		{"Lydian", Var, 0, ""},
+		{"M", Var, 0, ""},
+		{"Mahajani", Var, 4, ""},
+		{"Makasar", Var, 13, ""},
+		{"Malayalam", Var, 0, ""},
+		{"Mandaic", Var, 0, ""},
+		{"Manichaean", Var, 4, ""},
+		{"Marchen", Var, 7, ""},
+		{"Mark", Var, 0, ""},
+		{"Masaram_Gondi", Var, 10, ""},
+		{"MaxASCII", Const, 0, ""},
+		{"MaxCase", Const, 0, ""},
+		{"MaxLatin1", Const, 0, ""},
+		{"MaxRune", Const, 0, ""},
+		{"Mc", Var, 0, ""},
+		{"Me", Var, 0, ""},
+		{"Medefaidrin", Var, 13, ""},
+		{"Meetei_Mayek", Var, 0, ""},
+		{"Mende_Kikakui", Var, 4, ""},
+		{"Meroitic_Cursive", Var, 1, ""},
+		{"Meroitic_Hieroglyphs", Var, 1, ""},
+		{"Miao", Var, 1, ""},
+		{"Mn", Var, 0, ""},
+		{"Modi", Var, 4, ""},
+		{"Mongolian", Var, 0, ""},
+		{"Mro", Var, 4, ""},
+		{"Multani", Var, 5, ""},
+		{"Myanmar", Var, 0, ""},
+		{"N", Var, 0, ""},
+		{"Nabataean", Var, 4, ""},
+		{"Nag_Mundari", Var, 21, ""},
+		{"Nandinagari", Var, 14, ""},
+		{"Nd", Var, 0, ""},
+		{"New_Tai_Lue", Var, 0, ""},
+		{"Newa", Var, 7, ""},
+		{"Nko", Var, 0, ""},
+		{"Nl", Var, 0, ""},
+		{"No", Var, 0, ""},
+		{"Noncharacter_Code_Point", Var, 0, ""},
+		{"Number", Var, 0, ""},
+		{"Nushu", Var, 10, ""},
+		{"Nyiakeng_Puachue_Hmong", Var, 14, ""},
+		{"Ogham", Var, 0, ""},
+		{"Ol_Chiki", Var, 0, ""},
+		{"Old_Hungarian", Var, 5, ""},
+		{"Old_Italic", Var, 0, ""},
+		{"Old_North_Arabian", Var, 4, ""},
+		{"Old_Permic", Var, 4, ""},
+		{"Old_Persian", Var, 0, ""},
+		{"Old_Sogdian", Var, 13, ""},
+		{"Old_South_Arabian", Var, 0, ""},
+		{"Old_Turkic", Var, 0, ""},
+		{"Old_Uyghur", Var, 21, ""},
+		{"Oriya", Var, 0, ""},
+		{"Osage", Var, 7, ""},
+		{"Osmanya", Var, 0, ""},
+		{"Other", Var, 0, ""},
+		{"Other_Alphabetic", Var, 0, ""},
+		{"Other_Default_Ignorable_Code_Point", Var, 0, ""},
+		{"Other_Grapheme_Extend", Var, 0, ""},
+		{"Other_ID_Continue", Var, 0, ""},
+		{"Other_ID_Start", Var, 0, ""},
+		{"Other_Lowercase", Var, 0, ""},
+		{"Other_Math", Var, 0, ""},
+		{"Other_Uppercase", Var, 0, ""},
+		{"P", Var, 0, ""},
+		{"Pahawh_Hmong", Var, 4, ""},
+		{"Palmyrene", Var, 4, ""},
+		{"Pattern_Syntax", Var, 0, ""},
+		{"Pattern_White_Space", Var, 0, ""},
+		{"Pau_Cin_Hau", Var, 4, ""},
+		{"Pc", Var, 0, ""},
+		{"Pd", Var, 0, ""},
+		{"Pe", Var, 0, ""},
+		{"Pf", Var, 0, ""},
+		{"Phags_Pa", Var, 0, ""},
+		{"Phoenician", Var, 0, ""},
+		{"Pi", Var, 0, ""},
+		{"Po", Var, 0, ""},
+		{"Prepended_Concatenation_Mark", Var, 7, ""},
+		{"PrintRanges", Var, 0, ""},
+		{"Properties", Var, 0, ""},
+		{"Ps", Var, 0, ""},
+		{"Psalter_Pahlavi", Var, 4, ""},
+		{"Punct", Var, 0, ""},
+		{"Quotation_Mark", Var, 0, ""},
+		{"Radical", Var, 0, ""},
+		{"Range16", Type, 0, ""},
+		{"Range16.Hi", Field, 0, ""},
+		{"Range16.Lo", Field, 0, ""},
+		{"Range16.Stride", Field, 0, ""},
+		{"Range32", Type, 0, ""},
+		{"Range32.Hi", Field, 0, ""},
+		{"Range32.Lo", Field, 0, ""},
+		{"Range32.Stride", Field, 0, ""},
+		{"RangeTable", Type, 0, ""},
+		{"RangeTable.LatinOffset", Field, 1, ""},
+		{"RangeTable.R16", Field, 0, ""},
+		{"RangeTable.R32", Field, 0, ""},
+		{"Regional_Indicator", Var, 10, ""},
+		{"Rejang", Var, 0, ""},
+		{"ReplacementChar", Const, 0, ""},
+		{"Runic", Var, 0, ""},
+		{"S", Var, 0, ""},
+		{"STerm", Var, 0, ""},
+		{"Samaritan", Var, 0, ""},
+		{"Saurashtra", Var, 0, ""},
+		{"Sc", Var, 0, ""},
+		{"Scripts", Var, 0, ""},
+		{"Sentence_Terminal", Var, 7, ""},
+		{"Sharada", Var, 1, ""},
+		{"Shavian", Var, 0, ""},
+		{"Siddham", Var, 4, ""},
+		{"SignWriting", Var, 5, ""},
+		{"SimpleFold", Func, 0, "func(r rune) rune"},
+		{"Sinhala", Var, 0, ""},
+		{"Sk", Var, 0, ""},
+		{"Sm", Var, 0, ""},
+		{"So", Var, 0, ""},
+		{"Soft_Dotted", Var, 0, ""},
+		{"Sogdian", Var, 13, ""},
+		{"Sora_Sompeng", Var, 1, ""},
+		{"Soyombo", Var, 10, ""},
+		{"Space", Var, 0, ""},
+		{"SpecialCase", Type, 0, ""},
+		{"Sundanese", Var, 0, ""},
+		{"Syloti_Nagri", Var, 0, ""},
+		{"Symbol", Var, 0, ""},
+		{"Syriac", Var, 0, ""},
+		{"Tagalog", Var, 0, ""},
+		{"Tagbanwa", Var, 0, ""},
+		{"Tai_Le", Var, 0, ""},
+		{"Tai_Tham", Var, 0, ""},
+		{"Tai_Viet", Var, 0, ""},
+		{"Takri", Var, 1, ""},
+		{"Tamil", Var, 0, ""},
+		{"Tangsa", Var, 21, ""},
+		{"Tangut", Var, 7, ""},
+		{"Telugu", Var, 0, ""},
+		{"Terminal_Punctuation", Var, 0, ""},
+		{"Thaana", Var, 0, ""},
+		{"Thai", Var, 0, ""},
+		{"Tibetan", Var, 0, ""},
+		{"Tifinagh", Var, 0, ""},
+		{"Tirhuta", Var, 4, ""},
+		{"Title", Var, 0, ""},
+		{"TitleCase", Const, 0, ""},
+		{"To", Func, 0, "func(_case int, r rune) rune"},
+		{"ToLower", Func, 0, "func(r rune) rune"},
+		{"ToTitle", Func, 0, "func(r rune) rune"},
+		{"ToUpper", Func, 0, "func(r rune) rune"},
+		{"Toto", Var, 21, ""},
+		{"TurkishCase", Var, 0, ""},
+		{"Ugaritic", Var, 0, ""},
+		{"Unified_Ideograph", Var, 0, ""},
+		{"Upper", Var, 0, ""},
+		{"UpperCase", Const, 0, ""},
+		{"UpperLower", Const, 0, ""},
+		{"Vai", Var, 0, ""},
+		{"Variation_Selector", Var, 0, ""},
+		{"Version", Const, 0, ""},
+		{"Vithkuqi", Var, 21, ""},
+		{"Wancho", Var, 14, ""},
+		{"Warang_Citi", Var, 4, ""},
+		{"White_Space", Var, 0, ""},
+		{"Yezidi", Var, 16, ""},
+		{"Yi", Var, 0, ""},
+		{"Z", Var, 0, ""},
+		{"Zanabazar_Square", Var, 10, ""},
+		{"Zl", Var, 0, ""},
+		{"Zp", Var, 0, ""},
+		{"Zs", Var, 0, ""},
 	},
 	"unicode/utf16": {
-		{"AppendRune", Func, 20},
-		{"Decode", Func, 0},
-		{"DecodeRune", Func, 0},
-		{"Encode", Func, 0},
-		{"EncodeRune", Func, 0},
-		{"IsSurrogate", Func, 0},
-		{"RuneLen", Func, 23},
+		{"AppendRune", Func, 20, "func(a []uint16, r rune) []uint16"},
+		{"Decode", Func, 0, "func(s []uint16) []rune"},
+		{"DecodeRune", Func, 0, "func(r1 rune, r2 rune) rune"},
+		{"Encode", Func, 0, "func(s []rune) []uint16"},
+		{"EncodeRune", Func, 0, "func(r rune) (r1 rune, r2 rune)"},
+		{"IsSurrogate", Func, 0, "func(r rune) bool"},
+		{"RuneLen", Func, 23, "func(r rune) int"},
 	},
 	"unicode/utf8": {
-		{"AppendRune", Func, 18},
-		{"DecodeLastRune", Func, 0},
-		{"DecodeLastRuneInString", Func, 0},
-		{"DecodeRune", Func, 0},
-		{"DecodeRuneInString", Func, 0},
-		{"EncodeRune", Func, 0},
-		{"FullRune", Func, 0},
-		{"FullRuneInString", Func, 0},
-		{"MaxRune", Const, 0},
-		{"RuneCount", Func, 0},
-		{"RuneCountInString", Func, 0},
-		{"RuneError", Const, 0},
-		{"RuneLen", Func, 0},
-		{"RuneSelf", Const, 0},
-		{"RuneStart", Func, 0},
-		{"UTFMax", Const, 0},
-		{"Valid", Func, 0},
-		{"ValidRune", Func, 1},
-		{"ValidString", Func, 0},
+		{"AppendRune", Func, 18, "func(p []byte, r rune) []byte"},
+		{"DecodeLastRune", Func, 0, "func(p []byte) (r rune, size int)"},
+		{"DecodeLastRuneInString", Func, 0, "func(s string) (r rune, size int)"},
+		{"DecodeRune", Func, 0, "func(p []byte) (r rune, size int)"},
+		{"DecodeRuneInString", Func, 0, "func(s string) (r rune, size int)"},
+		{"EncodeRune", Func, 0, "func(p []byte, r rune) int"},
+		{"FullRune", Func, 0, "func(p []byte) bool"},
+		{"FullRuneInString", Func, 0, "func(s string) bool"},
+		{"MaxRune", Const, 0, ""},
+		{"RuneCount", Func, 0, "func(p []byte) int"},
+		{"RuneCountInString", Func, 0, "func(s string) (n int)"},
+		{"RuneError", Const, 0, ""},
+		{"RuneLen", Func, 0, "func(r rune) int"},
+		{"RuneSelf", Const, 0, ""},
+		{"RuneStart", Func, 0, "func(b byte) bool"},
+		{"UTFMax", Const, 0, ""},
+		{"Valid", Func, 0, "func(p []byte) bool"},
+		{"ValidRune", Func, 1, "func(r rune) bool"},
+		{"ValidString", Func, 0, "func(s string) bool"},
 	},
 	"unique": {
-		{"(Handle).Value", Method, 23},
-		{"Handle", Type, 23},
-		{"Make", Func, 23},
+		{"(Handle).Value", Method, 23, ""},
+		{"Handle", Type, 23, ""},
+		{"Make", Func, 23, "func[T comparable](value T) Handle[T]"},
 	},
 	"unsafe": {
-		{"Add", Func, 0},
-		{"Alignof", Func, 0},
-		{"Offsetof", Func, 0},
-		{"Pointer", Type, 0},
-		{"Sizeof", Func, 0},
-		{"Slice", Func, 0},
-		{"SliceData", Func, 0},
-		{"String", Func, 0},
-		{"StringData", Func, 0},
+		{"Add", Func, 0, ""},
+		{"Alignof", Func, 0, ""},
+		{"Offsetof", Func, 0, ""},
+		{"Pointer", Type, 0, ""},
+		{"Sizeof", Func, 0, ""},
+		{"Slice", Func, 0, ""},
+		{"SliceData", Func, 0, ""},
+		{"String", Func, 0, ""},
+		{"StringData", Func, 0, ""},
 	},
 	"weak": {
-		{"(Pointer).Value", Method, 24},
-		{"Make", Func, 24},
-		{"Pointer", Type, 24},
+		{"(Pointer).Value", Method, 24, ""},
+		{"Make", Func, 24, "func[T any](ptr *T) Pointer[T]"},
+		{"Pointer", Type, 24, ""},
 	},
 }
diff --git a/vendor/golang.org/x/tools/internal/stdlib/stdlib.go b/vendor/golang.org/x/tools/internal/stdlib/stdlib.go
index 3d96d3bf6..e223e0f34 100644
--- a/vendor/golang.org/x/tools/internal/stdlib/stdlib.go
+++ b/vendor/golang.org/x/tools/internal/stdlib/stdlib.go
@@ -18,6 +18,14 @@ type Symbol struct {
 	Name    string
 	Kind    Kind
 	Version Version // Go version that first included the symbol
+	// Signature provides the type of a function (defined only for Kind=Func).
+	// Imported types are denoted as pkg.T; pkg is not fully qualified.
+	// TODO(adonovan): use an unambiguous encoding that is parseable.
+	//
+	// Example2:
+	//    func[M ~map[K]V, K comparable, V any](m M) M
+	//    func(fi fs.FileInfo, link string) (*Header, error)
+	Signature string // if Kind == stdlib.Func
 }
 
 // A Kind indicates the kind of a symbol:
diff --git a/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go b/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go
index 649c82b6b..3db2a135b 100644
--- a/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go
+++ b/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go
@@ -65,14 +65,16 @@ func ClassifyCall(info *types.Info, call *ast.CallExpr) CallKind {
 	if info.Types == nil {
 		panic("ClassifyCall: info.Types is nil")
 	}
-	if info.Types[call.Fun].IsType() {
+	tv := info.Types[call.Fun]
+	if tv.IsType() {
 		return CallConversion
 	}
+	if tv.IsBuiltin() {
+		return CallBuiltin
+	}
 	obj := info.Uses[UsedIdent(info, call.Fun)]
 	// Classify the call by the type of the object, if any.
 	switch obj := obj.(type) {
-	case *types.Builtin:
-		return CallBuiltin
 	case *types.Func:
 		if interfaceMethod(obj) {
 			return CallInterface
diff --git a/vendor/golang.org/x/tools/internal/typesinternal/fx.go b/vendor/golang.org/x/tools/internal/typesinternal/fx.go
new file mode 100644
index 000000000..93acff217
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/typesinternal/fx.go
@@ -0,0 +1,49 @@
+// Copyright 2025 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.
+
+package typesinternal
+
+import (
+	"go/ast"
+	"go/token"
+	"go/types"
+)
+
+// NoEffects reports whether the expression has no side effects, i.e., it
+// does not modify the memory state. This function is conservative: it may
+// return false even when the expression has no effect.
+func NoEffects(info *types.Info, expr ast.Expr) bool {
+	noEffects := true
+	ast.Inspect(expr, func(n ast.Node) bool {
+		switch v := n.(type) {
+		case nil, *ast.Ident, *ast.BasicLit, *ast.BinaryExpr, *ast.ParenExpr,
+			*ast.SelectorExpr, *ast.IndexExpr, *ast.SliceExpr, *ast.TypeAssertExpr,
+			*ast.StarExpr, *ast.CompositeLit, *ast.ArrayType, *ast.StructType,
+			*ast.MapType, *ast.InterfaceType, *ast.KeyValueExpr:
+			// No effect
+		case *ast.UnaryExpr:
+			// Channel send <-ch has effects
+			if v.Op == token.ARROW {
+				noEffects = false
+			}
+		case *ast.CallExpr:
+			// Type conversion has no effects
+			if !info.Types[v.Fun].IsType() {
+				// TODO(adonovan): Add a case for built-in functions without side
+				// effects (by using callsPureBuiltin from tools/internal/refactor/inline)
+
+				noEffects = false
+			}
+		case *ast.FuncLit:
+			// A FuncLit has no effects, but do not descend into it.
+			return false
+		default:
+			// All other expressions have effects
+			noEffects = false
+		}
+
+		return noEffects
+	})
+	return noEffects
+}
diff --git a/vendor/golang.org/x/tools/internal/typesinternal/isnamed.go b/vendor/golang.org/x/tools/internal/typesinternal/isnamed.go
new file mode 100644
index 000000000..f2affec4f
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/typesinternal/isnamed.go
@@ -0,0 +1,71 @@
+// Copyright 2025 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.
+
+package typesinternal
+
+import (
+	"go/types"
+	"slices"
+)
+
+// IsTypeNamed reports whether t is (or is an alias for) a
+// package-level defined type with the given package path and one of
+// the given names. It returns false if t is nil.
+//
+// This function avoids allocating the concatenation of "pkg.Name",
+// which is important for the performance of syntax matching.
+func IsTypeNamed(t types.Type, pkgPath string, names ...string) bool {
+	if named, ok := types.Unalias(t).(*types.Named); ok {
+		tname := named.Obj()
+		return tname != nil &&
+			IsPackageLevel(tname) &&
+			tname.Pkg().Path() == pkgPath &&
+			slices.Contains(names, tname.Name())
+	}
+	return false
+}
+
+// IsPointerToNamed reports whether t is (or is an alias for) a pointer to a
+// package-level defined type with the given package path and one of the given
+// names. It returns false if t is not a pointer type.
+func IsPointerToNamed(t types.Type, pkgPath string, names ...string) bool {
+	r := Unpointer(t)
+	if r == t {
+		return false
+	}
+	return IsTypeNamed(r, pkgPath, names...)
+}
+
+// IsFunctionNamed reports whether obj is a package-level function
+// defined in the given package and has one of the given names.
+// It returns false if obj is nil.
+//
+// This function avoids allocating the concatenation of "pkg.Name",
+// which is important for the performance of syntax matching.
+func IsFunctionNamed(obj types.Object, pkgPath string, names ...string) bool {
+	f, ok := obj.(*types.Func)
+	return ok &&
+		IsPackageLevel(obj) &&
+		f.Pkg().Path() == pkgPath &&
+		f.Type().(*types.Signature).Recv() == nil &&
+		slices.Contains(names, f.Name())
+}
+
+// IsMethodNamed reports whether obj is a method defined on a
+// package-level type with the given package and type name, and has
+// one of the given names. It returns false if obj is nil.
+//
+// This function avoids allocating the concatenation of "pkg.TypeName.Name",
+// which is important for the performance of syntax matching.
+func IsMethodNamed(obj types.Object, pkgPath string, typeName string, names ...string) bool {
+	if fn, ok := obj.(*types.Func); ok {
+		if recv := fn.Type().(*types.Signature).Recv(); recv != nil {
+			_, T := ReceiverNamed(recv)
+			return T != nil &&
+				IsTypeNamed(T, pkgPath, typeName) &&
+				slices.Contains(names, fn.Name())
+		}
+	}
+	return false
+}
diff --git a/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go b/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go
index b64f714eb..64f47919f 100644
--- a/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go
+++ b/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go
@@ -15,6 +15,14 @@ import (
 // file.
 // If the same package is imported multiple times, the last appearance is
 // recorded.
+//
+// TODO(adonovan): this function ignores the effect of shadowing. It
+// should accept a [token.Pos] and a [types.Info] and compute only the
+// set of imports that are not shadowed at that point, analogous to
+// [analysisinternal.AddImport]. It could also compute (as a side
+// effect) the set of additional imports required to ensure that there
+// is an accessible import for each necessary package, making it
+// converge even more closely with AddImport.
 func FileQualifier(f *ast.File, pkg *types.Package) types.Qualifier {
 	// Construct mapping of import paths to their defined names.
 	// It is only necessary to look at renaming imports.
diff --git a/vendor/golang.org/x/tools/internal/typesinternal/types.go b/vendor/golang.org/x/tools/internal/typesinternal/types.go
index cc244689e..fef74a785 100644
--- a/vendor/golang.org/x/tools/internal/typesinternal/types.go
+++ b/vendor/golang.org/x/tools/internal/typesinternal/types.go
@@ -2,8 +2,20 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Package typesinternal provides access to internal go/types APIs that are not
-// yet exported.
+// Package typesinternal provides helpful operators for dealing with
+// go/types:
+//
+//   - operators for querying typed syntax trees (e.g. [Imports], [IsFunctionNamed]);
+//   - functions for converting types to strings or syntax (e.g. [TypeExpr], FileQualifier]);
+//   - helpers for working with the [go/types] API (e.g. [NewTypesInfo]);
+//   - access to internal go/types APIs that are not yet
+//     exported (e.g. [SetUsesCgo], [ErrorCodeStartEnd], [VarKind]); and
+//   - common algorithms related to types (e.g. [TooNewStdSymbols]).
+//
+// See also:
+//   - [golang.org/x/tools/internal/astutil], for operations on untyped syntax;
+//   - [golang.org/x/tools/internal/analysisinernal], for helpers for analyzers;
+//   - [golang.org/x/tools/internal/refactor], for operators to compute text edits.
 package typesinternal
 
 import (
@@ -13,6 +25,7 @@ import (
 	"reflect"
 	"unsafe"
 
+	"golang.org/x/tools/go/ast/inspector"
 	"golang.org/x/tools/internal/aliases"
 )
 
@@ -60,6 +73,9 @@ func ErrorCodeStartEnd(err types.Error) (code ErrorCode, start, end token.Pos, o
 // which is often excessive.)
 //
 // If pkg is nil, it is equivalent to [*types.Package.Name].
+//
+// TODO(adonovan): all uses of this with TypeString should be
+// eliminated when https://go.dev/issues/75604 is resolved.
 func NameRelativeTo(pkg *types.Package) types.Qualifier {
 	return func(other *types.Package) string {
 		if pkg != nil && pkg == other {
@@ -69,6 +85,34 @@ func NameRelativeTo(pkg *types.Package) types.Qualifier {
 	}
 }
 
+// TypeNameFor returns the type name symbol for the specified type, if
+// it is a [*types.Alias], [*types.Named], [*types.TypeParam], or a
+// [*types.Basic] representing a type.
+//
+// For all other types, and for Basic types representing a builtin,
+// constant, or nil, it returns nil. Be careful not to convert the
+// resulting nil pointer to a [types.Object]!
+//
+// If t is the type of a constant, it may be an "untyped" type, which
+// has no TypeName. To access the name of such types (e.g. "untyped
+// int"), use [types.Basic.Name].
+func TypeNameFor(t types.Type) *types.TypeName {
+	switch t := t.(type) {
+	case *types.Alias:
+		return t.Obj()
+	case *types.Named:
+		return t.Obj()
+	case *types.TypeParam:
+		return t.Obj()
+	case *types.Basic:
+		// See issues #71886 and #66890 for some history.
+		if tname, ok := types.Universe.Lookup(t.Name()).(*types.TypeName); ok {
+			return tname
+		}
+	}
+	return nil
+}
+
 // A NamedOrAlias is a [types.Type] that is named (as
 // defined by the spec) and capable of bearing type parameters: it
 // abstracts aliases ([types.Alias]) and defined types
@@ -77,7 +121,7 @@ func NameRelativeTo(pkg *types.Package) types.Qualifier {
 // Every type declared by an explicit "type" declaration is a
 // NamedOrAlias. (Built-in type symbols may additionally
 // have type [types.Basic], which is not a NamedOrAlias,
-// though the spec regards them as "named".)
+// though the spec regards them as "named"; see [TypeNameFor].)
 //
 // NamedOrAlias cannot expose the Origin method, because
 // [types.Alias.Origin] and [types.Named.Origin] have different
@@ -85,32 +129,15 @@ func NameRelativeTo(pkg *types.Package) types.Qualifier {
 type NamedOrAlias interface {
 	types.Type
 	Obj() *types.TypeName
-	// TODO(hxjiang): add method TypeArgs() *types.TypeList after stop supporting go1.22.
-}
-
-// TypeParams is a light shim around t.TypeParams().
-// (go/types.Alias).TypeParams requires >= 1.23.
-func TypeParams(t NamedOrAlias) *types.TypeParamList {
-	switch t := t.(type) {
-	case *types.Alias:
-		return aliases.TypeParams(t)
-	case *types.Named:
-		return t.TypeParams()
-	}
-	return nil
+	TypeArgs() *types.TypeList
+	TypeParams() *types.TypeParamList
+	SetTypeParams(tparams []*types.TypeParam)
 }
 
-// TypeArgs is a light shim around t.TypeArgs().
-// (go/types.Alias).TypeArgs requires >= 1.23.
-func TypeArgs(t NamedOrAlias) *types.TypeList {
-	switch t := t.(type) {
-	case *types.Alias:
-		return aliases.TypeArgs(t)
-	case *types.Named:
-		return t.TypeArgs()
-	}
-	return nil
-}
+var (
+	_ NamedOrAlias = (*types.Alias)(nil)
+	_ NamedOrAlias = (*types.Named)(nil)
+)
 
 // Origin returns the generic type of the Named or Alias type t if it
 // is instantiated, otherwise it returns t.
@@ -142,3 +169,31 @@ func NewTypesInfo() *types.Info {
 		FileVersions: map[*ast.File]string{},
 	}
 }
+
+// EnclosingScope returns the innermost block logically enclosing the cursor.
+func EnclosingScope(info *types.Info, cur inspector.Cursor) *types.Scope {
+	for cur := range cur.Enclosing() {
+		n := cur.Node()
+		// A function's Scope is associated with its FuncType.
+		switch f := n.(type) {
+		case *ast.FuncDecl:
+			n = f.Type
+		case *ast.FuncLit:
+			n = f.Type
+		}
+		if b := info.Scopes[n]; b != nil {
+			return b
+		}
+	}
+	panic("no Scope for *ast.File")
+}
+
+// Imports reports whether path is imported by pkg.
+func Imports(pkg *types.Package, path string) bool {
+	for _, imp := range pkg.Imports() {
+		if imp.Path() == path {
+			return true
+		}
+	}
+	return false
+}
diff --git a/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go b/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go
index d272949c1..453bba2ad 100644
--- a/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go
+++ b/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go
@@ -204,23 +204,12 @@ func ZeroExpr(t types.Type, qual types.Qualifier) (_ ast.Expr, isValid bool) {
 	}
 }
 
-// IsZeroExpr uses simple syntactic heuristics to report whether expr
-// is a obvious zero value, such as 0, "", nil, or false.
-// It cannot do better without type information.
-func IsZeroExpr(expr ast.Expr) bool {
-	switch e := expr.(type) {
-	case *ast.BasicLit:
-		return e.Value == "0" || e.Value == `""`
-	case *ast.Ident:
-		return e.Name == "nil" || e.Name == "false"
-	default:
-		return false
-	}
-}
-
 // TypeExpr returns syntax for the specified type. References to named types
 // are qualified by an appropriate (optional) qualifier function.
 // It may panic for types such as Tuple or Union.
+//
+// See also https://go.dev/issues/75604, which will provide a robust
+// Type-to-valid-Go-syntax formatter.
 func TypeExpr(t types.Type, qual types.Qualifier) ast.Expr {
 	switch t := t.(type) {
 	case *types.Basic:
diff --git a/vendor/modules.txt b/vendor/modules.txt
index e18c58ea1..9dad49166 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -322,8 +322,8 @@ github.com/zclconf/go-cty/cty/function/stdlib
 github.com/zclconf/go-cty/cty/gocty
 github.com/zclconf/go-cty/cty/json
 github.com/zclconf/go-cty/cty/set
-# golang.org/x/crypto v0.37.0
-## explicit; go 1.23.0
+# golang.org/x/crypto v0.45.0
+## explicit; go 1.24.0
 golang.org/x/crypto/argon2
 golang.org/x/crypto/blake2b
 golang.org/x/crypto/blowfish
@@ -339,14 +339,14 @@ golang.org/x/crypto/ssh/internal/bcrypt_pbkdf
 # golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0
 ## explicit; go 1.23.0
 golang.org/x/exp/slices
-# golang.org/x/mod v0.24.0
-## explicit; go 1.23.0
+# golang.org/x/mod v0.29.0
+## explicit; go 1.24.0
 golang.org/x/mod/internal/lazyregexp
 golang.org/x/mod/modfile
 golang.org/x/mod/module
 golang.org/x/mod/semver
-# golang.org/x/net v0.39.0
-## explicit; go 1.23.0
+# golang.org/x/net v0.47.0
+## explicit; go 1.24.0
 golang.org/x/net/html
 golang.org/x/net/html/atom
 golang.org/x/net/http/httpguts
@@ -356,16 +356,22 @@ golang.org/x/net/idna
 golang.org/x/net/internal/httpcommon
 golang.org/x/net/internal/timeseries
 golang.org/x/net/trace
-# golang.org/x/sync v0.13.0
-## explicit; go 1.23.0
+# golang.org/x/sync v0.18.0
+## explicit; go 1.24.0
 golang.org/x/sync/errgroup
-# golang.org/x/sys v0.32.0
-## explicit; go 1.23.0
+# golang.org/x/sys v0.38.0
+## explicit; go 1.24.0
 golang.org/x/sys/cpu
 golang.org/x/sys/unix
 golang.org/x/sys/windows
-# golang.org/x/text v0.24.0
-## explicit; go 1.23.0
+# golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8
+## explicit; go 1.24.0
+golang.org/x/telemetry/counter
+golang.org/x/telemetry/internal/counter
+golang.org/x/telemetry/internal/mmap
+golang.org/x/telemetry/internal/telemetry
+# golang.org/x/text v0.31.0
+## explicit; go 1.24.0
 golang.org/x/text/cases
 golang.org/x/text/internal
 golang.org/x/text/internal/language
@@ -376,11 +382,13 @@ 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.32.0
-## explicit; go 1.23.0
+# golang.org/x/tools v0.38.0
+## explicit; go 1.24.0
 golang.org/x/tools/cmd/goimports
 golang.org/x/tools/cmd/stringer
 golang.org/x/tools/go/ast/astutil
+golang.org/x/tools/go/ast/edge
+golang.org/x/tools/go/ast/inspector
 golang.org/x/tools/go/gcexportdata
 golang.org/x/tools/go/packages
 golang.org/x/tools/go/types/objectpath